diff --git a/.gitignore b/.gitignore index 30636f37..3beed6c9 100755 --- a/.gitignore +++ b/.gitignore @@ -266,3 +266,10 @@ CTestTestfile.cmake Data Folder /core .vscode/settings.json + +.idea +cmake-build-debug +libcathook.so +build +# idk where it comes from +cathook.cbp \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 765ec3bc..33204fe1 100755 --- a/.gitmodules +++ b/.gitmodules @@ -1,18 +1,9 @@ [submodule "source-sdk-2013"] path = source-sdk-2013 url = https://github.com/ValveSoftware/source-sdk-2013 -[submodule "simple-ipc"] - path = simple-ipc - url = https://github.com/nullifiedcat/simple-ipc [submodule "ucccccp"] path = ucccccp url = https://github.com/nullifiedcat/ucccccp -[submodule "libxoverlay"] - path = libxoverlay - url = https://github.com/nullifiedcat/libxoverlay -[submodule "libglez"] - path = libglez - url = https://github.com/BenCat07/libglez [submodule "source-sdk-2013-headers"] path = source-sdk-2013-headers url = https://github.com/nullifiedcat/source-sdk-2013-headers diff --git a/CMakeLists.txt b/CMakeLists.txt index 4cd8b26d..02a21605 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,12 +1,131 @@ # UNFINISHED - DO NOT USE. -cmake_minimum_required ( VERSION 3.0 ) -project ( cathook ) +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build type") +endif() +set(CMAKE_BUILD_TYPE_VALUES "Debug;Release" CACHE INTERNAL "List of supported build") +set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_BUILD_TYPE_VALUES}) -set (SOURCESDK "source-sdk-2013-headers") +cmake_minimum_required(VERSION 3.0) +project(cathook VERSION 0.0.1 DESCRIPTION "Free Source Engine Trainer") +add_library(cathook SHARED "") -include_directories ( . include ucccccp SYSTEM ${SOURCESDK} ${SOURCESDK}/public ${SOURCESDK}/mathlib ${SOURCESDK}/common ${SOURCESDK}/public/tier0 ${SOURCESDK}/public/tier1) +set(GameSpecific 1 CACHE BOOL "Build for specific target game (As opposed to universal, but slower, lib)") +set(Game "tf2" CACHE STRING "Target game") +set(GameValues "tf2;hl2dm;dab;tf2c;css;dynamic" CACHE INTERNAL "List of supported game types") +set_property(CACHE Game PROPERTY STRINGS ${GameValues}) +set(EnableVisuals 1 CACHE BOOL "Enable Visuals") +set(ExternalDrawing 0 CACHE BOOL "External Visuals") +set(EnableGUI 1 CACHE BOOL "Enable GUI") +set(EnableIPC 1 CACHE BOOL "Enable IPC") +set(DataPath "/opt/cathook/data" CACHE STRING "Data location") +set(VACBypass 0 CACHE BOOL "Textmode VAC bypass") +set(Textmode 0 CACHE BOOL "Various textmode-only features for bots") +set(EnableTextmodeStdin 0 CACHE BOOL "Textmode Stdin -> Console bridge (EXPERIMENTAL)") +set(EnableWarnings 1 CACHE BOOL "Enable compile warnings") +set(EnableNullGraphics 0 CACHE BOOL "Enable experimental textmode hooks (CRASHES)") -add_subdirectory (src) \ No newline at end of file +if(NOT EnableVisuals) + set(EnableGUI 0) +endif() + +find_package(Git REQUIRED) +find_package(OpenSSL REQUIRED) + +# cat packages + +execute_process(COMMAND + "${GIT_EXECUTABLE}" log -1 --pretty=\"%h\" + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + OUTPUT_VARIABLE GIT_COMMIT_HASH + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) + +execute_process(COMMAND + "${GIT_EXECUTABLE}" log -1 --pretty=\"%ai\" + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + OUTPUT_VARIABLE GIT_COMMIT_TIME + ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) + +find_library(ValveLibrarySDL2 NAMES libSDL2-2.0.so.0 PATHS "${PROJECT_SOURCE_DIR}/lib" NO_DEFAULT_PATH) +find_library(ValveLibraryTier0 NAMES tier0 PATHS "${PROJECT_SOURCE_DIR}/lib" NO_DEFAULT_PATH) +find_library(ValveLibraryVStdLib NAMES vstdlib PATHS "${PROJECT_SOURCE_DIR}/lib" NO_DEFAULT_PATH) + +if(EnableIPC) + find_package(SimpleIPC REQUIRED) + get_target_property(SimpleIPC_INCLUDE_DIRS SimpleIPC INTERFACE_INCLUDE_DIRECTORIES) + target_include_directories(cathook PRIVATE "${SimpleIPC_INCLUDE_DIRS}") +endif() + +if(EnableVisuals) + find_package(glez REQUIRED) + get_target_property(glez_INCLUDE_DIRS glez INTERFACE_INCLUDE_DIRECTORIES) + find_package(SDL2 REQUIRED) + find_package(GLEW REQUIRED) + if(ExternalDrawing) + find_package(xoverlay REQUIRED) + get_target_property(xoverlay_INCLUDE_DIRS xoverlay INTERFACE_INCLUDE_DIRECTORIES) + target_include_directories(cathook PRIVATE + "${xoverlay_INCLUDE_DIRS}") + target_link_libraries(cathook xoverlay) + endif() + target_include_directories(cathook PRIVATE + "${SDL2_INCLUDE_DIRS}" + "${glez_INCLUDE_DIRS}") + target_link_libraries(cathook ${ValveLibrarySDL2} glez ${GLEW_LIBRARIES}) +endif() + +configure_file(include/config.h.in ${CMAKE_SOURCE_DIR}/include/config.h @ONLY) +configure_file(include/version.h.in ${CMAKE_SOURCE_DIR}/include/version.h @ONLY) + +set_target_properties(cathook PROPERTIES COMPILE_FLAGS "-m32 -msse -msse2 -msse3" LINK_FLAGS "-m32 -static") + +target_compile_definitions(cathook PRIVATE + _GLIBCXX_USE_CXX11_ABI=0 + _POSIX=1 + FREETYPE_GL_USE_VAO=1 + RAD_TELEMETRY_DISABLED=1 + LINUX=1 + USE_SDL=1 + _LINUX=1 + POSIX=1 + GNUC=1 + NO_MALLOC_OVERRIDE=1) + +target_include_directories(cathook SYSTEM PRIVATE + "source-sdk-2013-headers/mp/src/mathlib" + "source-sdk-2013-headers/mp/src/public" + "source-sdk-2013-headers/mp/src/common" + "source-sdk-2013-headers/mp/src/public/tier0" + "source-sdk-2013-headers/mp/src/public/tier1" + "source-sdk-2013-headers/mp/src/tier1" + "source-sdk-2013-headers/mp/src") + +target_include_directories(cathook PRIVATE "ucccccp") + +if(EnableWarnings) + target_compile_options(cathook PRIVATE -Wall -Wextra) +endif() + +add_subdirectory(include) +add_subdirectory(src) + +add_custom_target(data + bash ./install-data "${DataPath}" + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + VERBATIM) + +# TODO glez_LIBRARIES? +target_link_libraries(cathook ${ValveLibraryTier0} ${ValveLibraryVStdLib} ssl stdc++) +set_target_properties(cathook PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) + +# Strip +if(CMAKE_BUILD_TYPE STREQUAL "Release") + message("Stripping info from library") + add_custom_command(TARGET cathook POST_BUILD + COMMAND strip --strip-all "$") +endif() + +add_custom_command(TARGET cathook POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy $ "${CMAKE_SOURCE_DIR}/bin/$") \ No newline at end of file diff --git a/README.md b/README.md index 98ce1873..e28b47ee 100755 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [cathook announcements channel in telegram](https://t.me/cathook_cheat) -# Detected +## Risk of VAC detection The software is most likely detected. Only use it on accounts you won't regret getting VAC banned. @@ -37,6 +37,24 @@ and a lot of useful features, including # INSTALLATION +You need CMake to build cathook, CMake should take care of dependencies + +Install [libglez](https://github.com/nullifiedcat/libglez) and [libxoverlay](https://github.com/nullifiedcat/libxoverlay) + +* Clone the repo of library (`git clone `) +* `mkdir build && cd build` +* `cmake ..` +* `make && sudo make install` + +Install cathook + +* `git clone --recursive https://github.com/nullifiedcat/cathook` +* `cd cathook && mkdir build && cd build` +* `cmake .. && make` +* `sudo make data` + +### Outdated (but might be helpful): + You can use gcc-7 for compiling cathook if you add `-e CC=gcc-7 CXX=g++-7` to make command line Ubuntu gcc6 installation: (check if you have gcc-6 installed already by typing `gcc-6 -v` @@ -58,10 +76,12 @@ sudo pacman -U https://archive.archlinux.org/packages/g/gcc-multilib/gcc-multili If you don't use Ubuntu or Arch (or if Arch script gets outdated), here's the list of what cathook requires: -* `gcc-6` -* `g++-6` -* `gcc-6-multilib` -* `g++-6-multilib` +* `cmake-qt-gui` (optional, for easy configuring) +* `cmake` +* `gcc-7` +* `g++-7` +* `gcc-7-multilib` +* `g++-7-multilib` * `glew` * `gdb` (for the injection script, you can use different injector if you want) * `libssl-dev:i386` @@ -81,15 +101,16 @@ git clone --recursive https://github.com/nullifiedcat/cathook && cd cathook && b **Errors while installing?** `/usr/include/c++/5/string:38:28: fatal error: bits/c++config.h: No such file or directory` -You don't have gcc-multilib-6 installed correctly. +You don't have gcc-7-multilib installed correctly. -`/usr/bin/ld: cannot find -lxoverlay` -You don't have cathook libs installed. Use ./catlibs script in scripts folder to install them. +Anything related to `glez` or `xoverlay` + +Install libglez and libxoverlay. `src/: fatal error: mathlib/vector.h: No such file or directory` You didn't download Source SDK. **DO NOT DOWNLOAD CATHOOK USING "DOWNLOAD .ZIP" FROM GITHUB. USE git clone --recursive!** -If you are using another distro, make sure to have g++-6, gdb, libc6 and build essentials installed. +If you are using another distro, make sure to have required dependencies installed. ## Updating cathook Run the `update` script in cathook folder. diff --git a/cathook.sln b/cathook.sln deleted file mode 100755 index 7a8639b7..00000000 --- a/cathook.sln +++ /dev/null @@ -1,28 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26403.7 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cathook", "cathook.vcxproj", "{B8CA8341-A6F9-425D-8F9A-1B8F27786B80}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B8CA8341-A6F9-425D-8F9A-1B8F27786B80}.Debug|x64.ActiveCfg = Debug|x64 - {B8CA8341-A6F9-425D-8F9A-1B8F27786B80}.Debug|x64.Build.0 = Debug|x64 - {B8CA8341-A6F9-425D-8F9A-1B8F27786B80}.Debug|x86.ActiveCfg = Debug|Win32 - {B8CA8341-A6F9-425D-8F9A-1B8F27786B80}.Debug|x86.Build.0 = Debug|Win32 - {B8CA8341-A6F9-425D-8F9A-1B8F27786B80}.Release|x64.ActiveCfg = Release|x64 - {B8CA8341-A6F9-425D-8F9A-1B8F27786B80}.Release|x64.Build.0 = Release|x64 - {B8CA8341-A6F9-425D-8F9A-1B8F27786B80}.Release|x86.ActiveCfg = Release|Win32 - {B8CA8341-A6F9-425D-8F9A-1B8F27786B80}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/cathook.vcxproj b/cathook.vcxproj deleted file mode 100755 index 444195b0..00000000 --- a/cathook.vcxproj +++ /dev/null @@ -1,7572 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 15.0 - {B8CA8341-A6F9-425D-8F9A-1B8F27786B80} - Win32Proj - 10.0.15063.0 - - - - DynamicLibrary - true - v141 - - - DynamicLibrary - false - v141 - - - Application - true - v141 - - - Application - false - v141 - - - - - - - - - - - - - - - - - - - - - true - - - true - - - - WIN32;_DEBUG;_WINDOWS;_USRDLL;CATHOOK_EXPORTS;_DEVELOPER=1 RAD_TELEMETRY_DISABLED NO_MALLOC_OVERRIDE;%(PreprocessorDefinitions) - source-sdk-2013/mp/src/public source-sdk-2013/mp/src/mathlib source-sdk-2013/mp/src/common source-sdk-2013/mp/src/public/tier1 source-sdk-2013/mp/src/public/tier0 source-sdk-2013/mp/src;%(AdditionalIncludeDirectories) - MultiThreadedDebugDLL - Level3 - ProgramDatabase - Disabled - - - MachineX86 - true - Windows - - - - - WIN32;NDEBUG;_WINDOWS;_USRDLL;CATHOOK_EXPORTS;_DEVELOPER=1 RAD_TELEMETRY_DISABLED NO_MALLOC_OVERRIDE;%(PreprocessorDefinitions) - source-sdk-2013/mp/src/public source-sdk-2013/mp/src/mathlib source-sdk-2013/mp/src/common source-sdk-2013/mp/src/public/tier1 source-sdk-2013/mp/src/public/tier0 source-sdk-2013/mp/src;%(AdditionalIncludeDirectories) - MultiThreadedDLL - Level3 - ProgramDatabase - - - MachineX86 - true - Windows - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/cathook.vcxproj.filters b/cathook.vcxproj.filters deleted file mode 100755 index b2ae988c..00000000 --- a/cathook.vcxproj.filters +++ /dev/null @@ -1,22399 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Resource Files - - - Resource Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - \ No newline at end of file diff --git a/check-data b/check-data deleted file mode 100755 index ca4414a1..00000000 --- a/check-data +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash - -if ! [ -d "$1" ]; then - echo "Creating cathook data directory at $1" - sudo mkdir -p "$1" - sudo chown -R $USER "$1" - sudo chmod -R 777 "$1" -fi - -rsync -avh --progress "data/" "$1" - -if ! [ -d "$1/res" ]; then - echo "Creating cathook data directory at $1/res" - sudo mkdir -p "$1/res" - sudo chown -R $USER "$1/res" - sudo chmod -R 777 "$1/res" -fi - -rsync -avh --progress "res/" "$1/res" diff --git a/classdump-css.txt b/class_dumping/classdump-css.txt similarity index 100% rename from classdump-css.txt rename to class_dumping/classdump-css.txt diff --git a/classdump-dab.txt b/class_dumping/classdump-dab.txt similarity index 100% rename from classdump-dab.txt rename to class_dumping/classdump-dab.txt diff --git a/classdump-hl2dm.txt b/class_dumping/classdump-hl2dm.txt similarity index 100% rename from classdump-hl2dm.txt rename to class_dumping/classdump-hl2dm.txt diff --git a/classdump-tf2.txt b/class_dumping/classdump-tf2.txt similarity index 100% rename from classdump-tf2.txt rename to class_dumping/classdump-tf2.txt diff --git a/classdump-tf2c.txt b/class_dumping/classdump-tf2c.txt similarity index 100% rename from classdump-tf2c.txt rename to class_dumping/classdump-tf2c.txt diff --git a/full-class-table.json b/class_dumping/full-class-table.json similarity index 100% rename from full-class-table.json rename to class_dumping/full-class-table.json diff --git a/generate-class-headers.js b/class_dumping/generate-class-headers.js similarity index 100% rename from generate-class-headers.js rename to class_dumping/generate-class-headers.js diff --git a/generate-dummy-header.js b/class_dumping/generate-dummy-header.js similarity index 100% rename from generate-dummy-header.js rename to class_dumping/generate-dummy-header.js diff --git a/generate-dynamic-header.js b/class_dumping/generate-dynamic-header.js similarity index 100% rename from generate-dynamic-header.js rename to class_dumping/generate-dynamic-header.js diff --git a/res/killsays.txt b/data/killsays.txt similarity index 100% rename from res/killsays.txt rename to data/killsays.txt diff --git a/data/shaders/v2f-c4f.frag b/data/shaders/v2f-c4f.frag deleted file mode 100755 index 89946792..00000000 --- a/data/shaders/v2f-c4f.frag +++ /dev/null @@ -1,4 +0,0 @@ -// 2D drawing shader -void main() { - gl_FragColor = gl_Color; -} diff --git a/data/shaders/v2f-c4f.vert b/data/shaders/v2f-c4f.vert deleted file mode 100755 index dda5f179..00000000 --- a/data/shaders/v2f-c4f.vert +++ /dev/null @@ -1,13 +0,0 @@ -// 2D drawing shader -uniform mat4 model; -uniform mat4 view; -uniform mat4 projection; - -attribute vec2 vertex; -attribute vec4 color; - -void main() -{ - gl_FrontColor = color; - gl_Position = projection*(view*(model*vec4(vertex,0.0,1.0))); -} diff --git a/data/shaders/v2f-t2f-c4f.frag b/data/shaders/v2f-t2f-c4f.frag deleted file mode 100755 index 3cdf9801..00000000 --- a/data/shaders/v2f-t2f-c4f.frag +++ /dev/null @@ -1,6 +0,0 @@ -// 2D drawing shader -uniform sampler2D texture; -void main() -{ - gl_FragColor = texture2D(texture, gl_TexCoord[0].xy) * gl_Color; -} diff --git a/data/shaders/v2f-t2f-c4f.vert b/data/shaders/v2f-t2f-c4f.vert deleted file mode 100755 index 1927b815..00000000 --- a/data/shaders/v2f-t2f-c4f.vert +++ /dev/null @@ -1,15 +0,0 @@ -// 2D drawing shader - modified freetype-gl shader -uniform mat4 model; -uniform mat4 view; -uniform mat4 projection; - -attribute vec2 vertex; -attribute vec2 tex_coord; -attribute vec4 color; - -void main() -{ - gl_TexCoord[0].xy = tex_coord.xy; - gl_FrontColor = color; - gl_Position = projection*(view*(model*vec4(vertex,0.0,1.0))); -} diff --git a/data/shaders/v3f-t2f-c4f.frag b/data/shaders/v3f-t2f-c4f.frag deleted file mode 100755 index 4b37f859..00000000 --- a/data/shaders/v3f-t2f-c4f.frag +++ /dev/null @@ -1,11 +0,0 @@ -/* Freetype GL - A C OpenGL Freetype engine - * - * Distributed under the OSI-approved BSD 2-Clause License. See accompanying - * file `LICENSE` for more details. - */ -uniform sampler2D texture; -void main() -{ - float a = texture2D(texture, gl_TexCoord[0].xy).r; - gl_FragColor = vec4(gl_Color.rgb, gl_Color.a*a); -} diff --git a/data/shaders/v3f-t2f-c4f.vert b/data/shaders/v3f-t2f-c4f.vert deleted file mode 100755 index 5d0232c3..00000000 --- a/data/shaders/v3f-t2f-c4f.vert +++ /dev/null @@ -1,18 +0,0 @@ -/* Freetype GL - A C OpenGL Freetype engine - * - * Distributed under the OSI-approved BSD 2-Clause License. See accompanying - * file `LICENSE` for more details. - */ -uniform mat4 model; -uniform mat4 view; -uniform mat4 projection; - -attribute vec3 vertex; -attribute vec2 tex_coord; -attribute vec4 color; -void main() -{ - gl_TexCoord[0].xy = tex_coord.xy; - gl_FrontColor = color; - gl_Position = projection*(view*(model*vec4(vertex,1.0))); -} diff --git a/res/spam.txt b/data/spam.txt similarity index 100% rename from res/spam.txt rename to data/spam.txt diff --git a/res/atlas.png b/data/textures/atlas.png similarity index 100% rename from res/atlas.png rename to data/textures/atlas.png diff --git a/res/atlas.xcf b/data/textures/atlas.xcf similarity index 100% rename from res/atlas.xcf rename to data/textures/atlas.xcf diff --git a/res/idspec.png b/data/textures/idspec.png similarity index 100% rename from res/idspec.png rename to data/textures/idspec.png diff --git a/fonts/opensans.ttf b/fonts/opensans.ttf deleted file mode 100755 index fd79d43b..00000000 Binary files a/fonts/opensans.ttf and /dev/null differ diff --git a/fonts/roboto.ttf b/fonts/roboto.ttf deleted file mode 100755 index aaf374d2..00000000 Binary files a/fonts/roboto.ttf and /dev/null differ diff --git a/fonts/tf2build.ttf b/fonts/tf2build.ttf deleted file mode 100755 index d59eec96..00000000 Binary files a/fonts/tf2build.ttf and /dev/null differ diff --git a/fonts/unispace.ttf b/fonts/unispace.ttf deleted file mode 100755 index 89a1aadc..00000000 Binary files a/fonts/unispace.ttf and /dev/null differ diff --git a/fonts/verasans.ttf b/fonts/verasans.ttf deleted file mode 100755 index 9be6547e..00000000 Binary files a/fonts/verasans.ttf and /dev/null differ diff --git a/include/.gitignore b/include/.gitignore new file mode 100644 index 00000000..a8158ca5 --- /dev/null +++ b/include/.gitignore @@ -0,0 +1,2 @@ +config.h +version.h \ No newline at end of file diff --git a/include/CDumper.hpp b/include/CDumper.hpp index 46143cd7..a7450ac1 100755 --- a/include/CDumper.hpp +++ b/include/CDumper.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef CDUMPER_HPP_ -#define CDUMPER_HPP_ +#pragma once #include #include @@ -116,5 +115,3 @@ public: private: std::fstream m_file; }; - -#endif /* CDUMPER_HPP_ */ diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt new file mode 100644 index 00000000..fb289fd6 --- /dev/null +++ b/include/CMakeLists.txt @@ -0,0 +1,69 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/angles.hpp" + "${CMAKE_CURRENT_LIST_DIR}/averager.hpp" + "${CMAKE_CURRENT_LIST_DIR}/backpacktf.hpp" + "${CMAKE_CURRENT_LIST_DIR}/base64.hpp" + "${CMAKE_CURRENT_LIST_DIR}/CDumper.hpp" + "${CMAKE_CURRENT_LIST_DIR}/chatlog.hpp" + "${CMAKE_CURRENT_LIST_DIR}/chatstack.hpp" + "${CMAKE_CURRENT_LIST_DIR}/common.hpp" + "${CMAKE_CURRENT_LIST_DIR}/conditions.hpp" + "${CMAKE_CURRENT_LIST_DIR}/crits.hpp" + "${CMAKE_CURRENT_LIST_DIR}/cvwrapper.hpp" + "${CMAKE_CURRENT_LIST_DIR}/e8call.hpp" + "${CMAKE_CURRENT_LIST_DIR}/entitycache.hpp" + "${CMAKE_CURRENT_LIST_DIR}/entityhitboxcache.hpp" + "${CMAKE_CURRENT_LIST_DIR}/enums.hpp" + "${CMAKE_CURRENT_LIST_DIR}/gameinfo.hpp" + "${CMAKE_CURRENT_LIST_DIR}/globals.h" + "${CMAKE_CURRENT_LIST_DIR}/hack.hpp" + "${CMAKE_CURRENT_LIST_DIR}/headshake.hpp" + "${CMAKE_CURRENT_LIST_DIR}/helpers.hpp" + "${CMAKE_CURRENT_LIST_DIR}/hitrate.hpp" + "${CMAKE_CURRENT_LIST_DIR}/hooks.hpp" + "${CMAKE_CURRENT_LIST_DIR}/hoovy.hpp" + "${CMAKE_CURRENT_LIST_DIR}/https_request.hpp" + "${CMAKE_CURRENT_LIST_DIR}/init.hpp" + "${CMAKE_CURRENT_LIST_DIR}/interfaces.hpp" + "${CMAKE_CURRENT_LIST_DIR}/ipc.hpp" + "${CMAKE_CURRENT_LIST_DIR}/itemtypes.hpp" + "${CMAKE_CURRENT_LIST_DIR}/json.hpp" + "${CMAKE_CURRENT_LIST_DIR}/localplayer.hpp" + "${CMAKE_CURRENT_LIST_DIR}/logging.hpp" + "${CMAKE_CURRENT_LIST_DIR}/macros.hpp" + "${CMAKE_CURRENT_LIST_DIR}/netmessage.hpp" + "${CMAKE_CURRENT_LIST_DIR}/netvars.hpp" + "${CMAKE_CURRENT_LIST_DIR}/offsets.hpp" + "${CMAKE_CURRENT_LIST_DIR}/playerlist.hpp" + "${CMAKE_CURRENT_LIST_DIR}/playerresource.h" + "${CMAKE_CURRENT_LIST_DIR}/prediction.hpp" + "${CMAKE_CURRENT_LIST_DIR}/profiler.hpp" + "${CMAKE_CURRENT_LIST_DIR}/projlogging.hpp" + "${CMAKE_CURRENT_LIST_DIR}/sconvars.hpp" + "${CMAKE_CURRENT_LIST_DIR}/sdk.hpp" + "${CMAKE_CURRENT_LIST_DIR}/sharedobj.hpp" + "${CMAKE_CURRENT_LIST_DIR}/targethelper.hpp" + "${CMAKE_CURRENT_LIST_DIR}/textfile.hpp" + "${CMAKE_CURRENT_LIST_DIR}/textmode.hpp" + "${CMAKE_CURRENT_LIST_DIR}/tfmm.hpp" + "${CMAKE_CURRENT_LIST_DIR}/timer.hpp" + "${CMAKE_CURRENT_LIST_DIR}/trace.hpp" + "${CMAKE_CURRENT_LIST_DIR}/ucccccp_cmds.hpp" + "${CMAKE_CURRENT_LIST_DIR}/usercmd.hpp" + "${CMAKE_CURRENT_LIST_DIR}/velocity.hpp" + "${CMAKE_CURRENT_LIST_DIR}/vfunc.hpp" + "${CMAKE_CURRENT_LIST_DIR}/votelogger.hpp" + "${CMAKE_CURRENT_LIST_DIR}/xorstring.hpp") + +target_include_directories(cathook PRIVATE "${CMAKE_CURRENT_LIST_DIR}") + +add_subdirectory(classinfo) +add_subdirectory(copypasted) +add_subdirectory(hacks) +add_subdirectory(hooks) +add_subdirectory(reclasses) +add_subdirectory(sdk) + +if(EnableVisuals) + add_subdirectory(visual) +endif() \ No newline at end of file diff --git a/include/chatstack.hpp b/include/chatstack.hpp index b8193341..d0bcaa7f 100755 --- a/include/chatstack.hpp +++ b/include/chatstack.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef CHATSTACK_HPP_ -#define CHATSTACK_HPP_ +#pragma once #define CHATSTACK_INTERVAL 0.8f @@ -30,5 +29,3 @@ void Reset(); extern std::stack stack; extern float last_say; } - -#endif /* CHATSTACK_HPP_ */ diff --git a/include/classinfo/CMakeLists.txt b/include/classinfo/CMakeLists.txt new file mode 100644 index 00000000..48c6748b --- /dev/null +++ b/include/classinfo/CMakeLists.txt @@ -0,0 +1,5 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/classinfo.hpp" + "${CMAKE_CURRENT_LIST_DIR}/dump.hpp") + +target_include_directories(cathook PRIVATE "${CMAKE_CURRENT_LIST_DIR}") \ No newline at end of file diff --git a/include/classinfo/classinfo.hpp b/include/classinfo/classinfo.hpp index 444478b2..fe124e32 100755 --- a/include/classinfo/classinfo.hpp +++ b/include/classinfo/classinfo.hpp @@ -5,10 +5,9 @@ * Author: nullifiedcat */ -#ifndef CLASSINFO_HPP_ -#define CLASSINFO_HPP_ +#pragma once -#include "common.hpp" +#include "config.h" #include "dummy.gen.hpp" @@ -27,10 +26,10 @@ void InitClassTable(); extern client_classes::dummy *client_class_list; -#if not defined(BUILD_GAME) or defined(DYNAMIC_CLASSES) +#if not GAME_SPECIFIC #define CL_CLASS(x) (client_class_list->x) #else -#define CL_CLASS(x) (client_classes_constexpr::BUILD_GAME::x) +#define CL_CLASS(x) (client_classes_constexpr::GAME::x) #endif #define RCC_CLASS(tf, hl2dm, css, def) \ @@ -40,5 +39,3 @@ extern client_classes::dummy *client_class_list; #define RCC_PLAYER RCC_CLASS(CTFPlayer, CHL2MP_Player, CCSPlayer, 0) #define RCC_PLAYERRESOURCE \ RCC_CLASS(CTFPlayerResource, CPlayerResource, CCSPlayerResource, 0) - -#endif /* CLASSINFO_HPP_ */ diff --git a/include/classinfo/dump.hpp b/include/classinfo/dump.hpp index 5d5fad4b..20841f26 100755 --- a/include/classinfo/dump.hpp +++ b/include/classinfo/dump.hpp @@ -5,9 +5,6 @@ * Author: nullifiedcat */ -#ifndef DUMP_HPP_ -#define DUMP_HPP_ +#pragma once void PerformClassDump(); - -#endif /* DUMP_HPP_ */ diff --git a/include/common.hpp b/include/common.hpp index 1da083d7..0df4b0f6 100755 --- a/include/common.hpp +++ b/include/common.hpp @@ -1,18 +1,13 @@ /* - * common.h + * common.hpp * * Created on: Dec 5, 2016 * Author: nullifiedcat */ -#ifndef COMMON_H_ -#define COMMON_H_ +#pragma once -#if defined(LINUX) and not defined(NO_IPC) -#define ENABLE_IPC 1 -#else -#undef ENABLE_IPC -#endif +#include "config.h" #include #include @@ -41,12 +36,12 @@ #include #include #include -#include #include #include -#include #include -#include +#include +#include +#include #include "timer.hpp" #include "averager.hpp" @@ -54,7 +49,7 @@ #include "macros.hpp" #include -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS #include #include @@ -113,8 +108,7 @@ #include "copypasted/CSignature.h" #if ENABLE_GUI -#include "gui/GUI.hpp" -#include "menu/GUI.h" +#include "GUI.h" #endif #include @@ -152,5 +146,3 @@ template constexpr T _clamp(T _min, T _max, T _val) #define GET_RENDER_CONTEXT \ (IsTF2() ? g_IMaterialSystem->GetRenderContext() \ : g_IMaterialSystemHL->GetRenderContext()) - -#endif /* COMMON_H_ */ diff --git a/include/conditions.hpp b/include/conditions.hpp index 0d5967e4..5020ed20 100755 --- a/include/conditions.hpp +++ b/include/conditions.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef CONDITIONS_HPP_ -#define CONDITIONS_HPP_ +#pragma once #include #include "netvars.hpp" @@ -314,6 +313,4 @@ template inline void RemoveCondition(CachedEntity *ent) CE_VAR(ent, netvar._condition_bits, condition_data_s)); } CondBitSet(CE_VAR(ent, netvar.iCond, condition_data_s)); -} - -#endif /* CONDITIONS_HPP_ */ +} \ No newline at end of file diff --git a/include/config.h.in b/include/config.h.in new file mode 100644 index 00000000..bfe053d3 --- /dev/null +++ b/include/config.h.in @@ -0,0 +1,16 @@ +#pragma once + +#define OFF 0 +#define ON 1 + +#define GAME_SPECIFIC @GameSpecific@ +#define GAME @Game@ +#define ENABLE_VISUALS @EnableVisuals@ +#define EXTERNAL_DRAWING @ExternalDrawing@ +#define ENABLE_GUI @EnableGUI@ +#define ENABLE_IPC @EnableIPC@ +#define DATA_PATH "@DataPath@" +#define ENABLE_VAC_BYPASS @VACBypass@ +#define ENABLE_TEXTMODE_STDIN @EnableTextmodeStdin@ +#define ENABLE_NULL_GRAPHICS @EnableNullGraphics@ +#define TEXTMODE @Textmode@ \ No newline at end of file diff --git a/include/copypasted/CMakeLists.txt b/include/copypasted/CMakeLists.txt new file mode 100644 index 00000000..20d1b4b2 --- /dev/null +++ b/include/copypasted/CMakeLists.txt @@ -0,0 +1,5 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/CSignature.h" + "${CMAKE_CURRENT_LIST_DIR}/Netvar.h") + +target_include_directories(cathook PRIVATE "${CMAKE_CURRENT_LIST_DIR}") \ No newline at end of file diff --git a/include/copypasted/CSignature.h b/include/copypasted/CSignature.h index bc164722..c5991737 100755 --- a/include/copypasted/CSignature.h +++ b/include/copypasted/CSignature.h @@ -11,9 +11,9 @@ public: uintptr_t dwFindPattern(uintptr_t dwAddress, uintptr_t dwLength, const char *szPattern); void *GetModuleHandleSafe(const char *pszModuleName); - uintptr_t GetClientSignature(char *chPattern); - uintptr_t GetEngineSignature(char *chPattern); - uintptr_t GetVstdSignature(char *chPattern); + uintptr_t GetClientSignature(const char *chPattern); + uintptr_t GetEngineSignature(const char *chPattern); + uintptr_t GetVstdSignature(const char *chPattern); }; extern CSignature gSignatures; diff --git a/include/crits.hpp b/include/crits.hpp index ec210990..025a1d5c 100755 --- a/include/crits.hpp +++ b/include/crits.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef CRITS_HPP_ -#define CRITS_HPP_ +#pragma once class CUserCmd; class IClientEntity; @@ -42,5 +41,3 @@ bool random_crits_enabled(); extern int *g_PredictionRandomSeed; extern std::unordered_map command_number_mod; - -#endif /* CRITS_HPP_ */ diff --git a/include/cvwrapper.hpp b/include/cvwrapper.hpp index 23a7d356..f27c109f 100755 --- a/include/cvwrapper.hpp +++ b/include/cvwrapper.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef CVWRAPPER_HPP_ -#define CVWRAPPER_HPP_ +#pragma once class ConVar; @@ -189,5 +188,3 @@ std::vector &CatVarList(); void RegisterCatCommands(); void RegisterCatVars(); int GetRebasedCatVarCount(); - -#endif /* CVWRAPPER_HPP_ */ diff --git a/include/entitycache.hpp b/include/entitycache.hpp index c250a389..fe79b49b 100755 --- a/include/entitycache.hpp +++ b/include/entitycache.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef ENTITYCACHE_HPP_ -#define ENTITYCACHE_HPP_ +#pragma once #include "entityhitboxcache.hpp" #include "averager.hpp" @@ -135,6 +134,4 @@ inline CachedEntity &Get(int idx) void Update(); void Invalidate(); extern int max; -} - -#endif /* ENTITYCACHE_HPP_ */ +} \ No newline at end of file diff --git a/include/entityhitboxcache.hpp b/include/entityhitboxcache.hpp index 551ad556..15956378 100755 --- a/include/entityhitboxcache.hpp +++ b/include/entityhitboxcache.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef ENTITYHITBOXCACHE_HPP_ -#define ENTITYHITBOXCACHE_HPP_ +#pragma once #include #include @@ -70,5 +69,3 @@ inline EntityHitboxCache &Get(unsigned i) return array[i]; } } - -#endif /* ENTITYHITBOXCACHE_HPP_ */ diff --git a/include/enums.hpp b/include/enums.hpp index ec8d7785..d9bb8c1b 100755 --- a/include/enums.hpp +++ b/include/enums.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef ENUMS_HPP_ -#define ENUMS_HPP_ +#pragma once enum EntityType { @@ -103,6 +102,4 @@ enum hitbox_t hip_R = 15, knee_R = 16, foot_R = 17 -}; - -#endif /* ENUMS_HPP_ */ +}; \ No newline at end of file diff --git a/include/gameinfo.hpp b/include/gameinfo.hpp index 1acafb4d..865ea6e5 100755 --- a/include/gameinfo.hpp +++ b/include/gameinfo.hpp @@ -5,32 +5,34 @@ * Author: nullifiedcat */ -#ifndef GAMEINFO_HPP_ -#define GAMEINFO_HPP_ +#pragma once -#include "common.hpp" +#include "config.h" +#include "macros.hpp" -#ifdef BUILD_GAME +extern int g_AppID; + +#if GAME_SPECIFIC constexpr bool IsTF2() { - return !c_strcmp(TO_STRING(BUILD_GAME), "tf2"); + return !c_strcmp(TO_STRING(GAME), "tf2"); } constexpr bool IsTF2C() { - return !c_strcmp(TO_STRING(BUILD_GAME), "tf2c"); + return !c_strcmp(TO_STRING(GAME), "tf2c"); } constexpr bool IsHL2DM() { - return !c_strcmp(TO_STRING(BUILD_GAME), "hl2dm"); + return !c_strcmp(TO_STRING(GAME), "hl2dm"); } constexpr bool IsCSS() { - return !c_strcmp(TO_STRING(BUILD_GAME), "css"); + return !c_strcmp(TO_STRING(GAME), "css"); } constexpr bool IsDynamic() { - return !c_strcmp(TO_STRING(BUILD_GAME), "dynamic"); + return !c_strcmp(TO_STRING(GAME), "dynamic"); } constexpr bool IsTF() @@ -42,6 +44,7 @@ constexpr bool IsTF() #define IF_GAME(x) if (x) #else + inline bool IsTF2() { return g_AppID == 440; @@ -71,5 +74,3 @@ inline bool IsTF() #define IF_GAME(x) if (x) #endif - -#endif /* GAMEINFO_HPP_ */ diff --git a/include/globals.h b/include/globals.h index 44aaa6bc..b626eeaf 100755 --- a/include/globals.h +++ b/include/globals.h @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef GLOBALS_H_ -#define GLOBALS_H_ +#pragma once #include @@ -54,5 +53,3 @@ class CUserCmd; extern CUserCmd *g_pUserCmd; extern GlobalSettings g_Settings; - -#endif /* GLOBALS_H_ */ diff --git a/include/gui/GUI.hpp b/include/gui/GUI.hpp deleted file mode 100755 index eda8ec13..00000000 --- a/include/gui/GUI.hpp +++ /dev/null @@ -1,18 +0,0 @@ -/* - * GUI.hpp - * - * Created on: Nov 14, 2017 - * Author: nullifiedcat - */ - -#pragma once - -#include "cmdui/cmdui.hpp" - -namespace gui -{ - -void init(); -void update(); -void draw(); -} diff --git a/include/gui/cmdui/cmdui.hpp b/include/gui/cmdui/cmdui.hpp deleted file mode 100755 index 7cf87dbc..00000000 --- a/include/gui/cmdui/cmdui.hpp +++ /dev/null @@ -1,19 +0,0 @@ -/* - * cmdui.hpp - * - * Created on: Nov 17, 2017 - * Author: nullifiedcat - */ - -#pragma once - -namespace gui -{ -namespace cmdui -{ - -void init(); -void update(); -void draw(); -} -} diff --git a/include/hack.hpp b/include/hack.hpp index 60441e53..c5437817 100755 --- a/include/hack.hpp +++ b/include/hack.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HACK_H_ -#define HACK_H_ +#pragma once class IHack; class CUserCmd; @@ -38,5 +37,3 @@ void Shutdown(); void CC_Cat(const CCommand &args); extern ConCommand *c_Cat; } - -#endif /* HACK_H_ */ diff --git a/include/hacks/Achievement.hpp b/include/hacks/Achievement.hpp index 785a7186..4e2bafa9 100755 --- a/include/hacks/Achievement.hpp +++ b/include/hacks/Achievement.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HACKS_ACHIEVEMENT_HPP_ -#define HACKS_ACHIEVEMENT_HPP_ +#pragma once namespace hacks { @@ -20,5 +19,3 @@ void Unlock(); } } } - -#endif /* HACKS_ACHIEVEMENT_HPP_ */ diff --git a/include/hacks/Aimbot.hpp b/include/hacks/Aimbot.hpp index 603794f3..f5ddef05 100755 --- a/include/hacks/Aimbot.hpp +++ b/include/hacks/Aimbot.hpp @@ -5,10 +5,10 @@ * Author: nullifiedcat */ -#ifndef HAIMBOT_H_ -#define HAIMBOT_H_ +#pragma once #include "common.hpp" +#include "config.h" class ConVar; class IClientEntity; @@ -43,7 +43,7 @@ extern int target_eid; // Functions called by other functions for when certian game calls are run void CreateMove(); -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS void DrawText(); #endif void Reset(); @@ -63,5 +63,3 @@ float EffectiveTargetingRange(); } } } - -#endif /* HAIMBOT_H_ */ diff --git a/include/hacks/AntiAim.hpp b/include/hacks/AntiAim.hpp index e3c7a91f..fb14de2d 100755 --- a/include/hacks/AntiAim.hpp +++ b/include/hacks/AntiAim.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef ANTIAIM_H_ -#define ANTIAIM_H_ +#pragma once class CatVar; class CUserCmd; @@ -39,5 +38,3 @@ void ProcessUserCmd(CUserCmd *cmd); } } } - -#endif /* ANTIAIM_H_ */ diff --git a/include/hacks/AntiBackstab.hpp b/include/hacks/AntiBackstab.hpp index 2e979d81..91f8275a 100755 --- a/include/hacks/AntiBackstab.hpp +++ b/include/hacks/AntiBackstab.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HACKS_ANTIBACKSTAB_HPP_ -#define HACKS_ANTIBACKSTAB_HPP_ +#pragma once namespace hacks { @@ -20,5 +19,3 @@ void PaintTraverse(); } } } - -#endif /* HACKS_ANTIBACKSTAB_HPP_ */ diff --git a/include/hacks/AntiDisguise.hpp b/include/hacks/AntiDisguise.hpp index 01e82228..5571a54d 100755 --- a/include/hacks/AntiDisguise.hpp +++ b/include/hacks/AntiDisguise.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HACKS_ANTIDISGUISE_HPP_ -#define HACKS_ANTIDISGUISE_HPP_ +#pragma once #include "common.hpp" @@ -23,5 +22,3 @@ void Draw(); } } } - -#endif /* HACKS_ANTIDISGUISE_HPP_ */ diff --git a/include/hacks/AutoBackstab.hpp b/include/hacks/AutoBackstab.hpp index e0154c42..9f5f6ec5 100755 --- a/include/hacks/AutoBackstab.hpp +++ b/include/hacks/AutoBackstab.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HACKS_AUTOBACKSTAB_HPP_ -#define HACKS_AUTOBACKSTAB_HPP_ +#pragma once namespace hacks { @@ -20,5 +19,3 @@ const Vector GetWorldSpaceCenter(CachedEntity *ent); } } } - -#endif /* HACKS_AUTOBACKSTAB_HPP_ */ diff --git a/include/hacks/AutoDetonator.hpp b/include/hacks/AutoDetonator.hpp index 6989e523..ab213202 100755 --- a/include/hacks/AutoDetonator.hpp +++ b/include/hacks/AutoDetonator.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat & Lighty */ -#ifndef HACKS_AUTODETONATOR_HPP_ -#define HACKS_AUTODETONATOR_HPP_ +#pragma once #include "common.hpp" @@ -20,5 +19,3 @@ void CreateMove(); } } } - -#endif /* HACKS_AUTODETONATOR_HPP_ */ diff --git a/include/hacks/AutoHeal.hpp b/include/hacks/AutoHeal.hpp index 24e22d75..87ea120b 100755 --- a/include/hacks/AutoHeal.hpp +++ b/include/hacks/AutoHeal.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HACKS_AUTOHEAL_HPP_ -#define HACKS_AUTOHEAL_HPP_ +#pragma once #include "common.hpp" @@ -41,5 +40,3 @@ bool CanHeal(int idx); } } } - -#endif /* HACKS_AUTOHEAL_HPP_ */ diff --git a/include/hacks/AutoReflect.hpp b/include/hacks/AutoReflect.hpp index 48653f2d..cfcda97d 100755 --- a/include/hacks/AutoReflect.hpp +++ b/include/hacks/AutoReflect.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HACKS_AUTOREFLECT_HPP_ -#define HACKS_AUTOREFLECT_HPP_ +#pragma once #include "common.hpp" @@ -29,5 +28,3 @@ bool IsEntStickyBomb(CachedEntity *ent); } } } - -#endif /* HACKS_AUTOREFLECT_HPP_ */ diff --git a/include/hacks/AutoSticky.hpp b/include/hacks/AutoSticky.hpp index ec32fec3..0bd407fc 100755 --- a/include/hacks/AutoSticky.hpp +++ b/include/hacks/AutoSticky.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HACKS_AUTOSTICKY_HPP_ -#define HACKS_AUTOSTICKY_HPP_ +#pragma once #include "common.hpp" @@ -26,5 +25,3 @@ void CreateMove(); } } } - -#endif /* HACKS_AUTOSTICKY_HPP_ */ diff --git a/include/hacks/Bunnyhop.hpp b/include/hacks/Bunnyhop.hpp index c41f9de8..8728b144 100755 --- a/include/hacks/Bunnyhop.hpp +++ b/include/hacks/Bunnyhop.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HBUNNYHOP_H_ -#define HBUNNYHOP_H_ +#pragma once #include "common.hpp" @@ -23,5 +22,3 @@ void CreateMove(); } } } - -#endif /* HBUNNYHOP_H_ */ diff --git a/include/hacks/CMakeLists.txt b/include/hacks/CMakeLists.txt new file mode 100644 index 00000000..e4abc6b0 --- /dev/null +++ b/include/hacks/CMakeLists.txt @@ -0,0 +1,42 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/Achievement.hpp" + "${CMAKE_CURRENT_LIST_DIR}/Aimbot.hpp" + "${CMAKE_CURRENT_LIST_DIR}/Announcer.hpp" + "${CMAKE_CURRENT_LIST_DIR}/AntiAim.hpp" + "${CMAKE_CURRENT_LIST_DIR}/AntiBackstab.hpp" + "${CMAKE_CURRENT_LIST_DIR}/AntiCheat.hpp" + "${CMAKE_CURRENT_LIST_DIR}/AntiDisguise.hpp" + "${CMAKE_CURRENT_LIST_DIR}/AutoBackstab.hpp" + "${CMAKE_CURRENT_LIST_DIR}/AutoDeadringer.hpp" + "${CMAKE_CURRENT_LIST_DIR}/AutoDetonator.hpp" + "${CMAKE_CURRENT_LIST_DIR}/AutoHeal.hpp" + "${CMAKE_CURRENT_LIST_DIR}/AutoJoin.hpp" + "${CMAKE_CURRENT_LIST_DIR}/AutoReflect.hpp" + "${CMAKE_CURRENT_LIST_DIR}/AutoSticky.hpp" + "${CMAKE_CURRENT_LIST_DIR}/AutoTaunt.hpp" + "${CMAKE_CURRENT_LIST_DIR}/Bunnyhop.hpp" + "${CMAKE_CURRENT_LIST_DIR}/CatBot.hpp" + "${CMAKE_CURRENT_LIST_DIR}/FollowBot.hpp" + "${CMAKE_CURRENT_LIST_DIR}/hacklist.hpp" + "${CMAKE_CURRENT_LIST_DIR}/HealArrows.hpp" + "${CMAKE_CURRENT_LIST_DIR}/KillSay.hpp" + "${CMAKE_CURRENT_LIST_DIR}/Killstreak.hpp" + "${CMAKE_CURRENT_LIST_DIR}/LagExploit.hpp" + "${CMAKE_CURRENT_LIST_DIR}/Misc.hpp" + "${CMAKE_CURRENT_LIST_DIR}/Noisemaker.hpp" + "${CMAKE_CURRENT_LIST_DIR}/Spam.hpp" + "${CMAKE_CURRENT_LIST_DIR}/Trigger.hpp" + "${CMAKE_CURRENT_LIST_DIR}/UberSpam.hpp" + "${CMAKE_CURRENT_LIST_DIR}/Walkbot.hpp") + +if(EnableVisuals) +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/ESP.hpp" + "${CMAKE_CURRENT_LIST_DIR}/Radar.hpp" + "${CMAKE_CURRENT_LIST_DIR}/SkinChanger.hpp" + "${CMAKE_CURRENT_LIST_DIR}/SpyAlert.hpp") +endif() + +target_include_directories(cathook PRIVATE "${CMAKE_CURRENT_LIST_DIR}") + +add_subdirectory(ac) \ No newline at end of file diff --git a/include/hacks/CatBot.hpp b/include/hacks/CatBot.hpp index aa480fb9..27eb5565 100755 --- a/include/hacks/CatBot.hpp +++ b/include/hacks/CatBot.hpp @@ -18,10 +18,13 @@ namespace catbot bool is_a_catbot(unsigned steamID); bool should_ignore_player(CachedEntity *player); -void update_ipc_data(ipc::user_data_s &data); void update(); void init(); void level_init(); + +#if ENABLE_IPC +void update_ipc_data(ipc::user_data_s &data); +#endif } } } diff --git a/include/hacks/ESP.hpp b/include/hacks/ESP.hpp index e134434d..319265fd 100755 --- a/include/hacks/ESP.hpp +++ b/include/hacks/ESP.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HESP_H_ -#define HESP_H_ +#pragma once #include "common.hpp" @@ -64,5 +63,3 @@ void ResetEntityStrings(); } } } - -#endif /* HESP_H_ */ diff --git a/include/hacks/FollowBot.hpp b/include/hacks/FollowBot.hpp index f23cef26..9110bc69 100644 --- a/include/hacks/FollowBot.hpp +++ b/include/hacks/FollowBot.hpp @@ -5,7 +5,7 @@ * */ -#include "common.hpp"; +#include "common.hpp" namespace hacks { diff --git a/include/hacks/KillSay.hpp b/include/hacks/KillSay.hpp index b2eb88dc..820992b0 100755 --- a/include/hacks/KillSay.hpp +++ b/include/hacks/KillSay.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HACKS_KILLSAY_HPP_ -#define HACKS_KILLSAY_HPP_ +#pragma once #include "common.hpp" @@ -35,5 +34,3 @@ extern const std::vector builtin_nonecore_mlg; } } } - -#endif /* HACKS_KILLSAY_HPP_ */ diff --git a/include/hacks/LagExploit.hpp b/include/hacks/LagExploit.hpp index ae816ed0..e58cf38c 100755 --- a/include/hacks/LagExploit.hpp +++ b/include/hacks/LagExploit.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HACKS_LAGEXPLOIT_HPP_ -#define HACKS_LAGEXPLOIT_HPP_ +#pragma once #include "common.hpp" @@ -26,6 +25,4 @@ void AddExploitTicks(int ticks); bool ExploitActive(); } } -} - -#endif /* HACKS_LAGEXPLOIT_HPP_ */ +} \ No newline at end of file diff --git a/include/hacks/Misc.hpp b/include/hacks/Misc.hpp index 3f70fbe6..9bda212a 100755 --- a/include/hacks/Misc.hpp +++ b/include/hacks/Misc.hpp @@ -5,10 +5,10 @@ * Author: nullifiedcat */ -#ifndef HACKS_MISC_HPP_ -#define HACKS_MISC_HPP_ +#pragma once #include "common.hpp" +#include "config.h" namespace hacks { @@ -18,7 +18,7 @@ namespace misc { void CreateMove(); -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS void DrawText(); #endif @@ -85,6 +85,4 @@ public: void Schema_Reload(); void CC_Misc_Disconnect_VAC(); -DECLARE_HACK_SINGLETON(Misc);*/ - -#endif /* HACKS_MISC_HPP_ */ +DECLARE_HACK_SINGLETON(Misc);*/ \ No newline at end of file diff --git a/include/hacks/Noisemaker.hpp b/include/hacks/Noisemaker.hpp index f4f32c99..4631b64d 100755 --- a/include/hacks/Noisemaker.hpp +++ b/include/hacks/Noisemaker.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HACKS_NOISEMAKER_HPP_ -#define HACKS_NOISEMAKER_HPP_ +#pragma once #include "common.hpp" @@ -23,5 +22,3 @@ void CreateMove(); } } } - -#endif /* HACKS_NOISEMAKER_HPP_ */ diff --git a/include/hacks/Radar.hpp b/include/hacks/Radar.hpp index a83fa1ae..7f87dc45 100755 --- a/include/hacks/Radar.hpp +++ b/include/hacks/Radar.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HACKS_RADAR_HPP_ -#define HACKS_RADAR_HPP_ +#pragma once #include "visual/atlas.hpp" #include "common.hpp" @@ -30,5 +29,3 @@ void Draw(); } } } - -#endif /* HACKS_RADAR_HPP_ */ diff --git a/include/hacks/SkinChanger.hpp b/include/hacks/SkinChanger.hpp index 76151786..dadb1542 100755 --- a/include/hacks/SkinChanger.hpp +++ b/include/hacks/SkinChanger.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HACKS_SKINCHANGER_HPP_ -#define HACKS_SKINCHANGER_HPP_ +#pragma once #include "common.hpp" @@ -145,5 +144,3 @@ void DrawText(); } } } - -#endif /* HACKS_SKINCHANGER_HPP_ */ diff --git a/include/hacks/Spam.hpp b/include/hacks/Spam.hpp index 76870fdd..03b0eb43 100755 --- a/include/hacks/Spam.hpp +++ b/include/hacks/Spam.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HACKS_SPAM_HPP_ -#define HACKS_SPAM_HPP_ +#pragma once #include "common.hpp" @@ -36,5 +35,3 @@ void Reload(); } } } - -#endif /* HACKS_SPAM_HPP_ */ diff --git a/include/hacks/SpyAlert.hpp b/include/hacks/SpyAlert.hpp index d8babf77..ba5869f3 100755 --- a/include/hacks/SpyAlert.hpp +++ b/include/hacks/SpyAlert.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HACKS_SPYALERT_HPP_ -#define HACKS_SPYALERT_HPP_ +#pragma once #include "common.hpp" @@ -25,5 +24,3 @@ void Draw(); } } } - -#endif /* HACKS_SPYALERT_HPP_ */ diff --git a/include/hacks/Trigger.hpp b/include/hacks/Trigger.hpp index f8bdd600..9a9ae85a 100755 --- a/include/hacks/Trigger.hpp +++ b/include/hacks/Trigger.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HTRIGGER_H_ -#define HTRIGGER_H_ +#pragma once #include "common.hpp" @@ -31,5 +30,3 @@ bool CheckLineBox(Vector B1, Vector B2, Vector L1, Vector L2, Vector &Hit); } } } - -#endif /* HTRIGGER_H_ */ diff --git a/include/hacks/UberSpam.hpp b/include/hacks/UberSpam.hpp index 4664ddee..cdb58558 100755 --- a/include/hacks/UberSpam.hpp +++ b/include/hacks/UberSpam.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HACKS_UBERSPAM_HPP_ -#define HACKS_UBERSPAM_HPP_ +#pragma once #include "common.hpp" @@ -26,5 +25,3 @@ extern const std::vector builtin_nonecore; } } } - -#endif /* HACKS_UBERSPAM_HPP_ */ diff --git a/include/hacks/Walkbot.hpp b/include/hacks/Walkbot.hpp index 1d65f025..291a4d7b 100755 --- a/include/hacks/Walkbot.hpp +++ b/include/hacks/Walkbot.hpp @@ -7,6 +7,8 @@ #pragma once +#include "config.h" + namespace hacks { namespace shared @@ -15,7 +17,7 @@ namespace walkbot { void Initialize(); -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS void Draw(); #endif void Move(); diff --git a/include/hacks/ac/CMakeLists.txt b/include/hacks/ac/CMakeLists.txt new file mode 100644 index 00000000..a751ec7c --- /dev/null +++ b/include/hacks/ac/CMakeLists.txt @@ -0,0 +1,6 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/aimbot.hpp" + "${CMAKE_CURRENT_LIST_DIR}/antiaim.hpp" + "${CMAKE_CURRENT_LIST_DIR}/bhop.hpp") + +target_include_directories(cathook PRIVATE "${CMAKE_CURRENT_LIST_DIR}") \ No newline at end of file diff --git a/include/hacks/hacklist.hpp b/include/hacks/hacklist.hpp index bcaa1faa..b5c7177f 100755 --- a/include/hacks/hacklist.hpp +++ b/include/hacks/hacklist.hpp @@ -5,10 +5,11 @@ * Author: nullifiedcat */ -#ifndef HACKS_HACKLIST_HPP_ -#define HACKS_HACKLIST_HPP_ +#pragma once -#if ENABLE_VISUALS == 1 +#include "config.h" + +#if ENABLE_VISUALS #include "ESP.hpp" #include "SkinChanger.hpp" @@ -45,5 +46,3 @@ #include "Announcer.hpp" #include "Killstreak.hpp" #include "CatBot.hpp" - -#endif /* HACKS_HACKLIST_HPP_ */ diff --git a/include/helpers.hpp b/include/helpers.hpp index 9a6a929a..d4e201d3 100755 --- a/include/helpers.hpp +++ b/include/helpers.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HELPERS_HPP_ -#define HELPERS_HPP_ +#pragma once class CachedEntity; class IClientEntity; @@ -168,5 +167,3 @@ template std::string format(const Args &... args) extern const std::string classes[10]; extern const char *powerups[POWERUP_COUNT]; - -#endif /* HELPERS_HPP_ */ diff --git a/include/hooks.hpp b/include/hooks.hpp index de6dd311..0fc2b157 100755 --- a/include/hooks.hpp +++ b/include/hooks.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HOOKS_H_ -#define HOOKS_H_ +#pragma once // Parts of copypasted code // Credits: Casual_Hacker @@ -66,5 +65,3 @@ extern VMTHook materialsystem; extern VMTHook enginevgui; extern VMTHook vstd; } - -#endif /* HOOKS_H_ */ diff --git a/include/hooks/CMakeLists.txt b/include/hooks/CMakeLists.txt new file mode 100644 index 00000000..cb48678f --- /dev/null +++ b/include/hooks/CMakeLists.txt @@ -0,0 +1,11 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/CreateMove.hpp" + "${CMAKE_CURRENT_LIST_DIR}/hookedmethods.hpp" + "${CMAKE_CURRENT_LIST_DIR}/others.hpp") + +if(EnableVisuals) + target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/PaintTraverse.hpp") +endif() + +target_include_directories(cathook PRIVATE "${CMAKE_CURRENT_LIST_DIR}") \ No newline at end of file diff --git a/include/hooks/CreateMove.hpp b/include/hooks/CreateMove.hpp index 50f0eb2c..b5a13f77 100755 --- a/include/hooks/CreateMove.hpp +++ b/include/hooks/CreateMove.hpp @@ -5,12 +5,9 @@ * Author: nullifiedcat */ -#ifndef CREATEMOVE_H_ -#define CREATEMOVE_H_ +#pragma once class CUserCmd; extern bool *bSendPackets; bool CreateMove_hook(void *, float, CUserCmd *); - -#endif /* CREATEMOVE_H_ */ diff --git a/include/hooks/PaintTraverse.hpp b/include/hooks/PaintTraverse.hpp index 32d1fdf3..147ab016 100755 --- a/include/hooks/PaintTraverse.hpp +++ b/include/hooks/PaintTraverse.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef PAINTTRAVERSE_H_ -#define PAINTTRAVERSE_H_ +#pragma once class CatVar; @@ -14,5 +13,3 @@ extern CatVar no_zoom; extern CatVar clean_screenshots; extern CatVar disable_visuals; void PaintTraverse_hook(void *, unsigned int, bool, bool); - -#endif /* PAINTTRAVERSE_H_ */ diff --git a/include/hooks/hookedmethods.hpp b/include/hooks/hookedmethods.hpp index 74069865..15513884 100644 --- a/include/hooks/hookedmethods.hpp +++ b/include/hooks/hookedmethods.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef HOOKEDMETHODS_H_ -#define HOOKEDMETHODS_H_ +#pragma once #include "common.hpp" @@ -50,6 +49,7 @@ CUserCmd *GetUserCmd_hook(IInput *, int); void DrawModelExecute_hook(IVModelRender *_this, const DrawModelState_t &state, const ModelRenderInfo_t &info, matrix3x4_t *matrix); +#if ENABLE_VISUALS void Paint_hook(IEngineVGui *_this, PaintMode_t mode); /* SDL HOOKS */ @@ -66,9 +66,8 @@ void SDL_GL_SwapWindow_hook(SDL_Window *window); void DoSDLHooking(); void DoSDLUnhooking(); +#endif #include "CreateMove.hpp" #include "PaintTraverse.hpp" #include "others.hpp" - -#endif /* HOOKEDMETHODS_H_ */ diff --git a/include/hooks/others.hpp b/include/hooks/others.hpp index aa361fb9..4f284fc4 100755 --- a/include/hooks/others.hpp +++ b/include/hooks/others.hpp @@ -5,8 +5,9 @@ * Author: nullifiedcat */ -#ifndef OTHERS_H_ -#define OTHERS_H_ +#pragma once + +#include "config.h" class INetMessage; class CViewSetup; @@ -15,7 +16,7 @@ class SDL_Window; class CatVar; extern CatVar disconnect_reason; -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS extern int spectator_target; #endif @@ -30,7 +31,7 @@ void LevelInit_hook(void *, const char *); void LevelShutdown_hook(void *); int RandomInt_hook(void *, int, int); -#if ENABLE_NULL_GRAPHICS == 1 +#if ENABLE_NULL_GRAPHICS typedef ITexture *(*FindTexture_t)(void *, const char *, const char *, bool, int); typedef IMaterial *(*FindMaterialEx_t)(void *, const char *, const char *, int, @@ -60,5 +61,3 @@ typedef IMaterial *(*FindMaterial_t)(void *, const char *, const char *, bool, // extern unsigned int* swapwindow_ptr; // extern unsigned int swapwindow_orig; - -#endif /* OTHERS_H_ */ diff --git a/include/hoovy.hpp b/include/hoovy.hpp index 0cc0c2fd..f0d7eb34 100755 --- a/include/hoovy.hpp +++ b/include/hoovy.hpp @@ -5,10 +5,7 @@ * Author: nullifiedcat */ -#ifndef HOOVY_HPP_ -#define HOOVY_HPP_ +#pragma once void UpdateHoovyList(); bool IsHoovy(CachedEntity *entity); - -#endif /* HOOVY_HPP_ */ diff --git a/include/interfaces.hpp b/include/interfaces.hpp index 2fae3973..36674986 100755 --- a/include/interfaces.hpp +++ b/include/interfaces.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef INTERFACES_HPP_ -#define INTERFACES_HPP_ +#pragma once #include #include @@ -88,5 +87,3 @@ extern IEngineVGui *g_IEngineVGui; extern IUniformRandomStream *g_pUniformStream; void CreateInterfaces(); - -#endif /* INTERFACES_HPP_ */ diff --git a/include/ipc.hpp b/include/ipc.hpp index 2ab947f0..d6b18b14 100755 --- a/include/ipc.hpp +++ b/include/ipc.hpp @@ -5,10 +5,11 @@ * Author: nullifiedcat */ -#if ENABLE_IPC == 1 +#pragma once -#ifndef IPC_H_ -#define IPC_H_ +#include "config.h" + +#if ENABLE_IPC #include "ipcb.hpp" #include "pthread.h" @@ -112,6 +113,4 @@ void StoreClientData(); void UpdatePlayerlist(); } -#endif /* IPC_H_ */ - #endif diff --git a/include/itemtypes.hpp b/include/itemtypes.hpp index 3997785e..ccf57e6e 100755 --- a/include/itemtypes.hpp +++ b/include/itemtypes.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef ITEMTYPES_HPP_ -#define ITEMTYPES_HPP_ +#pragma once #include #include @@ -229,6 +228,4 @@ public: ItemModelMapper mapper; }; -extern ItemManager g_ItemManager; - -#endif /* ITEMTYPES_HPP_ */ +extern ItemManager g_ItemManager; \ No newline at end of file diff --git a/include/localplayer.hpp b/include/localplayer.hpp index b1d53930..5945a4be 100755 --- a/include/localplayer.hpp +++ b/include/localplayer.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef LOCALPLAYER_HPP_ -#define LOCALPLAYER_HPP_ +#pragma once #include @@ -42,6 +41,4 @@ public: #define LOCAL_E g_pLocalPlayer->entity #define LOCAL_W g_pLocalPlayer->weapon() -extern LocalPlayer *g_pLocalPlayer; - -#endif /* LOCALPLAYER_HPP_ */ +extern LocalPlayer *g_pLocalPlayer; \ No newline at end of file diff --git a/include/logging.hpp b/include/logging.hpp index d59acf14..06151652 100755 --- a/include/logging.hpp +++ b/include/logging.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef LOGGING_HPP_ -#define LOGGING_HPP_ +#pragma once #include @@ -26,5 +25,3 @@ void Info(const char *fmt, ...); #ifdef __cplusplus } #endif - -#endif /* LOGGING_HPP_ */ diff --git a/include/macros.hpp b/include/macros.hpp index 28ae6788..725dbfb3 100755 --- a/include/macros.hpp +++ b/include/macros.hpp @@ -23,9 +23,5 @@ constexpr int c_strcmp(char const *lhs, char const *rhs) : c_strcmp(lhs + 1, rhs + 1); } -#ifndef DATA_PATH -#define DATA_PATH "/opt/cathook" -#endif - #define FEATURE_RADAR_DISABLED #define FEATURE_FIDGET_SPINNER_DISABLED diff --git a/include/netmessage.hpp b/include/netmessage.hpp index 768abc92..7212c14b 100755 --- a/include/netmessage.hpp +++ b/include/netmessage.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef NETMESSAGE_HPP_ -#define NETMESSAGE_HPP_ +#pragma once #include #include @@ -310,5 +309,3 @@ public: private: char m_szCommandBuffer[1024]; // buffer for received messages }; - -#endif /* NETMESSAGE_HPP_ */ diff --git a/include/netvars.hpp b/include/netvars.hpp index d856d99d..4bb5d556 100755 --- a/include/netvars.hpp +++ b/include/netvars.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef NETVARS_HPP_ -#define NETVARS_HPP_ +#pragma once #include @@ -146,5 +145,3 @@ public: }; extern NetVars netvar; - -#endif /* NETVARS_HPP_ */ diff --git a/include/offsets.hpp b/include/offsets.hpp index 27f2a139..8f78a6b7 100755 --- a/include/offsets.hpp +++ b/include/offsets.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef OFFSETS_HPP_ -#define OFFSETS_HPP_ +#pragma once #include #include @@ -166,5 +165,3 @@ struct offsets return PlatformOffset(2, undefined, undefined); } }; - -#endif /* OFFSETS_HPP_ */ diff --git a/include/playerlist.hpp b/include/playerlist.hpp index 946b433d..db4a9b2e 100755 --- a/include/playerlist.hpp +++ b/include/playerlist.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef PLAYERLIST_HPP_ -#define PLAYERLIST_HPP_ +#pragma once #include "common.hpp" @@ -59,5 +58,3 @@ userdata &AccessData(CachedEntity *player); bool IsDefault(unsigned steamid); bool IsDefault(CachedEntity *player); } - -#endif /* PLAYERLIST_HPP_ */ diff --git a/include/playerresource.h b/include/playerresource.h index 10efe582..0991cc04 100755 --- a/include/playerresource.h +++ b/include/playerresource.h @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef PLAYERRESOURCE_H_ -#define PLAYERRESOURCE_H_ +#pragma once class CachedEntity; @@ -24,5 +23,3 @@ public: }; extern TFPlayerResource *g_pPlayerResource; - -#endif /* PLAYERRESOURCE_H_ */ diff --git a/include/prediction.hpp b/include/prediction.hpp index e892e967..8d8171f2 100755 --- a/include/prediction.hpp +++ b/include/prediction.hpp @@ -5,10 +5,10 @@ * Author: nullifiedcat */ -#ifndef PREDICTION_HPP_ -#define PREDICTION_HPP_ +#pragma once #include +#include "config.h" class CachedEntity; class Vector; @@ -27,11 +27,9 @@ float PlayerGravityMod(CachedEntity *player); Vector EnginePrediction(CachedEntity *player, float time); void Prediction_CreateMove(); -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS void Prediction_PaintTraverse(); #endif float DistanceToGround(CachedEntity *ent); float DistanceToGround(Vector origin); - -#endif /* PREDICTION_HPP_ */ diff --git a/include/profiler.hpp b/include/profiler.hpp index 84e668ff..8c4111f8 100755 --- a/include/profiler.hpp +++ b/include/profiler.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef PROFILER_H_ -#define PROFILER_H_ +#pragma once #include #include @@ -48,5 +47,3 @@ public: #else #define PROF_SECTION(id) #endif - -#endif /* PROFILER_H_ */ diff --git a/include/projlogging.hpp b/include/projlogging.hpp index 15915a6e..e7ab9b17 100755 --- a/include/projlogging.hpp +++ b/include/projlogging.hpp @@ -5,13 +5,11 @@ * Author: nullifiedcat */ -#ifndef PROJLOGGING_HPP_ -#define PROJLOGGING_HPP_ + +#pragma once namespace projectile_logging { void Update(); } - -#endif /* PROJLOGGING_HPP_ */ diff --git a/include/reclasses/CMakeLists.txt b/include/reclasses/CMakeLists.txt new file mode 100644 index 00000000..39381075 --- /dev/null +++ b/include/reclasses/CMakeLists.txt @@ -0,0 +1,17 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/C_BaseCombatWeapon.hpp" + "${CMAKE_CURRENT_LIST_DIR}/C_BaseEntity.hpp" + "${CMAKE_CURRENT_LIST_DIR}/C_BasePlayer.hpp" + "${CMAKE_CURRENT_LIST_DIR}/C_MannVsMachineStats.hpp" + "${CMAKE_CURRENT_LIST_DIR}/CTFGCClientSystem.hpp" + "${CMAKE_CURRENT_LIST_DIR}/CTFInventoryManager.hpp" + "${CMAKE_CURRENT_LIST_DIR}/CTFPartyClient.hpp" + "${CMAKE_CURRENT_LIST_DIR}/CTFParty.hpp" + "${CMAKE_CURRENT_LIST_DIR}/CTFPlayerShared.hpp" + "${CMAKE_CURRENT_LIST_DIR}/C_TFWeaponBaseGun.hpp" + "${CMAKE_CURRENT_LIST_DIR}/C_TFWeaponBase.hpp" + "${CMAKE_CURRENT_LIST_DIR}/C_TFWeaponBaseMelee.hpp" + "${CMAKE_CURRENT_LIST_DIR}/ITFGroupMatchCriteria.hpp" + "${CMAKE_CURRENT_LIST_DIR}/reclasses.hpp") + +target_include_directories(cathook PRIVATE "${CMAKE_CURRENT_LIST_DIR}") \ No newline at end of file diff --git a/include/sconvars.hpp b/include/sconvars.hpp index 78233a7d..195e9190 100755 --- a/include/sconvars.hpp +++ b/include/sconvars.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef SCONVARS_HPP_ -#define SCONVARS_HPP_ +#pragma once #include "common.hpp" @@ -28,5 +27,3 @@ public: ConVar *spoof; }; } - -#endif /* SCONVARS_HPP_ */ diff --git a/include/sdk.hpp b/include/sdk.hpp index 03a2fe99..d9b84cce 100755 --- a/include/sdk.hpp +++ b/include/sdk.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef SDK_HPP_ -#define SDK_HPP_ +#pragma once #define private public #define protected public @@ -64,4 +63,5 @@ #include "sdk/HUD.h" #include "sdk/CGameRules.h" -#endif /* SDK_HPP_ */ +#undef private +#undef protected \ No newline at end of file diff --git a/include/sdk/CMakeLists.txt b/include/sdk/CMakeLists.txt new file mode 100644 index 00000000..554a9b21 --- /dev/null +++ b/include/sdk/CMakeLists.txt @@ -0,0 +1,10 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/CGameRules.h" + "${CMAKE_CURRENT_LIST_DIR}/HUD.h" + "${CMAKE_CURRENT_LIST_DIR}/igamemovement.h" + "${CMAKE_CURRENT_LIST_DIR}/iinput.h" + "${CMAKE_CURRENT_LIST_DIR}/imaterialsystemfixed.h" + "${CMAKE_CURRENT_LIST_DIR}/in_buttons.h" + "${CMAKE_CURRENT_LIST_DIR}/ScreenSpaceEffects.h") + +target_include_directories(cathook PRIVATE "${CMAKE_CURRENT_LIST_DIR}") \ No newline at end of file diff --git a/include/sdk/ScreenSpaceEffects.h b/include/sdk/ScreenSpaceEffects.h index d9318a75..8818d482 100755 --- a/include/sdk/ScreenSpaceEffects.h +++ b/include/sdk/ScreenSpaceEffects.h @@ -6,8 +6,7 @@ // //=====================================================================================// -#ifndef SCREENSPACEEFFECTS_H -#define SCREENSPACEEFFECTS_H +#pragma once #ifdef _WIN32 #pragma once @@ -89,4 +88,3 @@ extern CScreenSpaceEffectRegistration **g_ppScreenSpaceRegistrationHead; CScreenSpaceEffectRegistration pEffectName##_reg(#pEffectName, \ &pEffectName##_effect); -#endif diff --git a/include/sdk/igamemovement.h b/include/sdk/igamemovement.h index 8071e6ee..1f3fb07d 100755 --- a/include/sdk/igamemovement.h +++ b/include/sdk/igamemovement.h @@ -7,8 +7,7 @@ // $NoKeywords: $ //=============================================================================// -#if !defined(IGAMEMOVEMENT_H) -#define IGAMEMOVEMENT_H +#pragma once #ifdef _WIN32 #pragma once @@ -131,5 +130,3 @@ public: virtual Vector GetPlayerMaxs(bool ducked) const = 0; virtual Vector GetPlayerViewOffset(bool ducked) const = 0; }; - -#endif // IGAMEMOVEMENT_H diff --git a/include/sdk/iinput.h b/include/sdk/iinput.h index 87e4d8d8..39bddee6 100755 --- a/include/sdk/iinput.h +++ b/include/sdk/iinput.h @@ -5,8 +5,8 @@ // $NoKeywords: $ // //=============================================================================// -#if !defined(IINPUT_H) -#define IINPUT_H +#pragma once + #ifdef _WIN32 #pragma once #endif @@ -121,5 +121,3 @@ public: }; // extern ::IInput *input; - -#endif // IINPUT_H diff --git a/include/sdk/imaterialsystemfixed.h b/include/sdk/imaterialsystemfixed.h index 6f4a22b0..b9a98f78 100755 --- a/include/sdk/imaterialsystemfixed.h +++ b/include/sdk/imaterialsystemfixed.h @@ -6,18 +6,12 @@ // //===========================================================================// -#ifndef IMATERIALSYSTEMFIXED_H -#define IMATERIALSYSTEMFIXED_H +#pragma once #ifdef _WIN32 #pragma once #endif -#define OVERBRIGHT 2.0f -#define OO_OVERBRIGHT (1.0f / 2.0f) -#define GAMMA 2.2f -#define TEXGAMMA 2.2f - #include "tier1/interface.h" #include "tier1/refcount.h" #include "mathlib/vector.h" @@ -627,5 +621,3 @@ public: int mips, ImageFormat fmt, int srcBufferSize, byte *srcBits, int nFlags) = 0; }; - -#endif // IMATERIALSYSTEMFIXED_H diff --git a/include/sdk/in_buttons.h b/include/sdk/in_buttons.h index 9b6ed0ca..d35ba36d 100755 --- a/include/sdk/in_buttons.h +++ b/include/sdk/in_buttons.h @@ -5,8 +5,8 @@ // $NoKeywords: $ // //=============================================================================// -#ifndef IN_BUTTONS_H -#define IN_BUTTONS_H +#pragma once + #ifdef _WIN32 #pragma once #endif @@ -38,5 +38,3 @@ #define IN_GRENADE1 (1 << 23) // grenade 1 #define IN_GRENADE2 (1 << 24) // grenade 2 #define IN_ATTACK3 (1 << 25) - -#endif // IN_BUTTONS_H diff --git a/include/sharedobj.hpp b/include/sharedobj.hpp index 5de1f85a..7211e977 100755 --- a/include/sharedobj.hpp +++ b/include/sharedobj.hpp @@ -5,11 +5,11 @@ * Author: nullifiedcat */ -#ifndef SHAREDOBJ_HPP_ -#define SHAREDOBJ_HPP_ +#pragma once #include #include +#include "config.h" struct link_map; typedef void *(*fn_CreateInterface_t)(const char *, int *); @@ -44,7 +44,7 @@ SharedObject &vstdlib(); SharedObject &tier0(); SharedObject &inputsystem(); SharedObject &materialsystem(); -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS SharedObject &vguimatsurface(); SharedObject &vgui2(); SharedObject &studiorender(); @@ -53,5 +53,3 @@ SharedObject &libsdl(); void LoadAllSharedObjects(); } - -#endif /* SHAREDOBJ_HPP_ */ diff --git a/include/targethelper.hpp b/include/targethelper.hpp index 13bcc157..582e60ae 100755 --- a/include/targethelper.hpp +++ b/include/targethelper.hpp @@ -5,11 +5,8 @@ * Author: nullifiedcat */ -#ifndef TARGETHELPER_HPP_ -#define TARGETHELPER_HPP_ +#pragma once class CachedEntity; -int GetScoreForEntity(CachedEntity *entity); - -#endif /* TARGETHELPER_HPP_ */ +int GetScoreForEntity(CachedEntity *entity); \ No newline at end of file diff --git a/include/textfile.hpp b/include/textfile.hpp index f0ea7812..bb6740de 100755 --- a/include/textfile.hpp +++ b/include/textfile.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef TEXTFILE_HPP_ -#define TEXTFILE_HPP_ +#pragma once #include #include @@ -23,5 +22,3 @@ public: public: std::vector lines; }; - -#endif /* TEXTFILE_HPP_ */ diff --git a/include/trace.hpp b/include/trace.hpp index 44d56f27..8a0c5dc7 100755 --- a/include/trace.hpp +++ b/include/trace.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef TRACE_HPP_ -#define TRACE_HPP_ +#pragma once #include @@ -62,5 +61,3 @@ extern FilterDefault filter_default; extern FilterNoPlayer filter_no_player; extern FilterPenetration filter_penetration; } - -#endif /* TRACE_HPP_ */ diff --git a/include/usercmd.hpp b/include/usercmd.hpp index 0a56a19c..6608cabf 100755 --- a/include/usercmd.hpp +++ b/include/usercmd.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef USERCMD_HPP_ -#define USERCMD_HPP_ +#pragma once #include @@ -31,5 +30,3 @@ public: short mousedy; bool hasbeenpredicted; }; - -#endif /* USERCMD_HPP_ */ diff --git a/include/velocity.hpp b/include/velocity.hpp index 1bb33249..365c52f4 100755 --- a/include/velocity.hpp +++ b/include/velocity.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef VELOCITY_HPP_ -#define VELOCITY_HPP_ +#pragma once #include "common.hpp" @@ -17,6 +16,4 @@ typedef std::function EstimateAbsVelocity_t; extern EstimateAbsVelocity_t EstimateAbsVelocity; void Init(); -} - -#endif /* VELOCITY_HPP_ */ +} \ No newline at end of file diff --git a/include/version.h.in b/include/version.h.in new file mode 100644 index 00000000..e4f26097 --- /dev/null +++ b/include/version.h.in @@ -0,0 +1,4 @@ +#pragma once + +#define GIT_COMMIT_HASH @GIT_COMMIT_HASH@ +#define GIT_COMMIT_DATE @GIT_COMMIT_DATE@ \ No newline at end of file diff --git a/include/vfunc.hpp b/include/vfunc.hpp index 5fdab957..62b80101 100755 --- a/include/vfunc.hpp +++ b/include/vfunc.hpp @@ -5,14 +5,11 @@ * Author: nullifiedcat */ -#ifndef VFUNC_HPP_ -#define VFUNC_HPP_ +#pragma once template inline F vfunc(void *thisptr, uintptr_t idx, uintptr_t offset = 0) { void **vmt = *reinterpret_cast(uintptr_t(thisptr) + offset); return reinterpret_cast((vmt)[idx]); -} - -#endif /* VFUNC_HPP_ */ +} \ No newline at end of file diff --git a/include/visual/CMakeLists.txt b/include/visual/CMakeLists.txt new file mode 100644 index 00000000..ef6ce432 --- /dev/null +++ b/include/visual/CMakeLists.txt @@ -0,0 +1,15 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/atlas.hpp" + "${CMAKE_CURRENT_LIST_DIR}/colors.hpp" + "${CMAKE_CURRENT_LIST_DIR}/drawex.hpp" + "${CMAKE_CURRENT_LIST_DIR}/drawing.hpp" + "${CMAKE_CURRENT_LIST_DIR}/drawmgr.hpp" + "${CMAKE_CURRENT_LIST_DIR}/EffectChams.hpp" + "${CMAKE_CURRENT_LIST_DIR}/EffectGlow.hpp" + "${CMAKE_CURRENT_LIST_DIR}/fidgetspinner.hpp") + +if(EnableGUI) + add_subdirectory(menu) +endif() + +target_include_directories(cathook PRIVATE "${CMAKE_CURRENT_LIST_DIR}") \ No newline at end of file diff --git a/include/visual/EffectChams.hpp b/include/visual/EffectChams.hpp index 22e6eaec..6c214141 100644 --- a/include/visual/EffectChams.hpp +++ b/include/visual/EffectChams.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef EFFECTCHAMS_HPP_ -#define EFFECTCHAMS_HPP_ +#pragma once #include "common.hpp" #include "sdk/ScreenSpaceEffects.h" @@ -55,6 +54,4 @@ public: extern EffectChams g_EffectChams; extern CScreenSpaceEffectRegistration *g_pEffectChams; -} - -#endif /* EFFECTCHAMS_HPP_ */ +} \ No newline at end of file diff --git a/include/visual/EffectGlow.hpp b/include/visual/EffectGlow.hpp index 386fe9a4..32aef158 100755 --- a/include/visual/EffectGlow.hpp +++ b/include/visual/EffectGlow.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef EFFECTGLOW_HPP_ -#define EFFECTGLOW_HPP_ +#pragma once #include "common.hpp" #include "sdk.hpp" @@ -59,5 +58,3 @@ public: extern EffectGlow g_EffectGlow; extern CScreenSpaceEffectRegistration *g_pEffectGlow; } - -#endif /* EFFECTGLOW_HPP_ */ diff --git a/include/visual/atlas.hpp b/include/visual/atlas.hpp index 02cdcac9..f214c3ea 100755 --- a/include/visual/atlas.hpp +++ b/include/visual/atlas.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef ATLAS_HPP_ -#define ATLAS_HPP_ +#pragma once #include "common.hpp" #include "visual/drawex.hpp" @@ -52,5 +51,3 @@ public: texture_atlas &atlas(); } - -#endif /* ATLAS_HPP_ */ diff --git a/include/visual/colors.hpp b/include/visual/colors.hpp index ed041d4f..31637de7 100755 --- a/include/visual/colors.hpp +++ b/include/visual/colors.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef COLORS_HPP_ -#define COLORS_HPP_ +#pragma once class CachedEntity; @@ -147,5 +146,3 @@ rgba_t EntityF(CachedEntity *ent); } using rgba_t = colors::rgba_t; - -#endif /* COLORS_HPP_ */ diff --git a/include/visual/drawex.hpp b/include/visual/drawex.hpp index c2bb45a4..f23a70c9 100755 --- a/include/visual/drawex.hpp +++ b/include/visual/drawex.hpp @@ -10,8 +10,10 @@ #include extern "C" { -#include "visual/glez.h" -#include "visual/xoverlay.h" +#include +#if EXTERNAL_DRAWING +#include +#endif } #define draw_api drawex::api diff --git a/include/visual/drawing.hpp b/include/visual/drawing.hpp index 488174fa..f12449b2 100755 --- a/include/visual/drawing.hpp +++ b/include/visual/drawing.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef DRAWING_HPP_ -#define DRAWING_HPP_ +#pragma once #include "common.hpp" @@ -68,5 +67,3 @@ void UpdateWTS(); bool WorldToScreen(const Vector &origin, Vector &screen); bool EntityCenterToScreen(CachedEntity *entity, Vector &out); } - -#endif /* DRAWING_HPP_ */ diff --git a/include/visual/drawmgr.hpp b/include/visual/drawmgr.hpp index 4331862e..5bddcb22 100755 --- a/include/visual/drawmgr.hpp +++ b/include/visual/drawmgr.hpp @@ -5,8 +5,7 @@ * Author: nullifiedcat */ -#ifndef DRAWMGR_HPP_ -#define DRAWMGR_HPP_ +#pragma once #include @@ -17,5 +16,3 @@ void render_cheat_visuals(); void BeginCheatVisuals(); void DrawCheatVisuals(); void EndCheatVisuals(); - -#endif /* DRAWMGR_HPP_ */ diff --git a/include/fidgetspinner.hpp b/include/visual/fidgetspinner.hpp similarity index 100% rename from include/fidgetspinner.hpp rename to include/visual/fidgetspinner.hpp diff --git a/include/visual/glez.h b/include/visual/glez.h deleted file mode 100755 index 01c160be..00000000 --- a/include/visual/glez.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * glez.h - * - * Created on: Dec 7, 2017 - * Author: nullifiedcat - */ - -#pragma once - -/* Types */ - -typedef struct glez_vec4_s -{ - union { - float data[4]; - struct - { - float r; - float g; - float b; - float a; - }; - struct - { - float x; - float y; - float z; - float w; - }; - }; -} glez_vec4_t, glez_rgba_t; - -typedef unsigned int glez_texture_t; -typedef unsigned int glez_font_t; - -/* State functions */ - -void glez_init(int width, int height); - -void glez_shutdown(); - -void glez_begin(); - -void glez_end(); - -void glez_resize(int width, int height); - -/* Helper functions */ - -static inline glez_rgba_t glez_rgba(unsigned char r, unsigned char g, - unsigned char b, unsigned char a) -{ - glez_rgba_t result; - result.r = (float) r / 255.0f; - result.g = (float) g / 255.0f; - result.b = (float) b / 255.0f; - result.a = (float) a / 255.0f; - return result; -} - -/* Font-related functions */ - -#define GLEZ_FONT_COUNT 64 -#define GLEZ_FONT_INVALID ((glez_font_t) 0xFFFFFFFF) - -glez_font_t glez_font_load(const char *path, float size); - -void glez_font_unload(glez_font_t handle); - -void glez_font_string_size(glez_font_t font, const char *string, float *out_x, - float *out_y); - -/* Texture-related functions */ - -#define GLEZ_TEXTURE_COUNT 64 -#define GLEZ_TEXTURE_INVALID ((glez_texture_t) 0xFFFFFFFF) - -glez_texture_t glez_texture_load_png_rgba(const char *path); - -void glez_texture_unload(glez_texture_t handle); - -void glez_texture_size(glez_texture_t handle, int *width, int *height); - -/* Drawing functions */ - -void glez_line(float x, float y, float dx, float dy, glez_rgba_t color, - float thickness); - -void glez_rect(float x, float y, float w, float h, glez_rgba_t color); - -void glez_rect_outline(float x, float y, float w, float h, glez_rgba_t color, - float thickness); - -void glez_rect_textured(float x, float y, float w, float h, glez_rgba_t color, - glez_texture_t texture, float tx, float ty, float tw, - float th, float angle); - -void glez_string(float x, float y, const char *string, glez_font_t font, - glez_rgba_t color, float *out_x, float *out_y); - -void glez_string_with_outline(float x, float y, const char *string, - glez_font_t font, glez_rgba_t color, - glez_rgba_t outline_color, float outline_width, - int adjust_outline_alpha, float *out_x, - float *out_y); - -void glez_circle(float x, float y, float radius, glez_rgba_t color, - float thickness, int steps); diff --git a/include/menu/CBaseContainer.h b/include/visual/menu/CBaseContainer.h similarity index 92% rename from include/menu/CBaseContainer.h rename to include/visual/menu/CBaseContainer.h index fb91acc1..031d99a9 100755 --- a/include/menu/CBaseContainer.h +++ b/include/visual/menu/CBaseContainer.h @@ -5,9 +5,8 @@ * Author: nullifiedcat */ -#ifndef CBASECONTAINER_H_ -#define CBASECONTAINER_H_ -#if TEXTMODE_VAC != 1 +#pragma once + #include "menu/CBaseWidget.h" class CBaseContainer : public CBaseWidget, public virtual IWidget @@ -53,5 +52,3 @@ public: std::vector m_children; }; -#endif -#endif /* CBASECONTAINER_H_ */ diff --git a/include/menu/CBaseWidget.h b/include/visual/menu/CBaseWidget.h similarity index 96% rename from include/menu/CBaseWidget.h rename to include/visual/menu/CBaseWidget.h index 30ae8368..0c5f749a 100755 --- a/include/menu/CBaseWidget.h +++ b/include/visual/menu/CBaseWidget.h @@ -5,19 +5,14 @@ * Author: nullifiedcat */ -#ifndef CBASEWIDGET_H_ -#define CBASEWIDGET_H_ -#if TEXTMODE_VAC != 1 +#pragma once + #include "menu/IWidget.h" -// #include "../beforecheaders.h" #include #include #include #include -// #include "../aftercheaders.h" - #include "logging.hpp" - #include class CBaseWidget : public virtual IWidget @@ -177,5 +172,3 @@ public: KeyValues::AutoDelete m_KeyValues; IWidget *m_pParent; }; -#endif -#endif /* CBASEWIDGET_H_ */ diff --git a/include/menu/CBaseWindow.h b/include/visual/menu/CBaseWindow.h similarity index 83% rename from include/menu/CBaseWindow.h rename to include/visual/menu/CBaseWindow.h index 504dd681..7936a018 100755 --- a/include/menu/CBaseWindow.h +++ b/include/visual/menu/CBaseWindow.h @@ -5,9 +5,8 @@ * Author: nullifiedcat */ -#ifndef CBASEWINDOW_H_ -#define CBASEWINDOW_H_ -#if TEXTMODE_VAC != 1 +#pragma once + #include "menu/CBaseContainer.h" class CBaseWindow : public CBaseContainer @@ -24,5 +23,3 @@ public: virtual void Draw(int x, int y) override; virtual void MoveChildren() override; }; -#endif -#endif /* CBASEWINDOW_H_ */ diff --git a/include/visual/menu/CMakeLists.txt b/include/visual/menu/CMakeLists.txt new file mode 100644 index 00000000..b0965dc1 --- /dev/null +++ b/include/visual/menu/CMakeLists.txt @@ -0,0 +1,13 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/CBaseContainer.h" + "${CMAKE_CURRENT_LIST_DIR}/CBaseWidget.h" + "${CMAKE_CURRENT_LIST_DIR}/CBaseWindow.h" + "${CMAKE_CURRENT_LIST_DIR}/compatlayer.hpp" + "${CMAKE_CURRENT_LIST_DIR}/CTextLabel.h" + "${CMAKE_CURRENT_LIST_DIR}/guicommon.h" + "${CMAKE_CURRENT_LIST_DIR}/GUI.h" + "${CMAKE_CURRENT_LIST_DIR}/IWidget.h") + +target_include_directories(cathook PRIVATE "${CMAKE_CURRENT_LIST_DIR}") + +add_subdirectory(ncc) \ No newline at end of file diff --git a/include/menu/CTextLabel.h b/include/visual/menu/CTextLabel.h similarity index 84% rename from include/menu/CTextLabel.h rename to include/visual/menu/CTextLabel.h index 4b2a3472..bc74357e 100755 --- a/include/menu/CTextLabel.h +++ b/include/visual/menu/CTextLabel.h @@ -5,9 +5,8 @@ * Author: nullifiedcat */ -#ifndef CTEXTLABEL_H_ -#define CTEXTLABEL_H_ -#if TEXTMODE_VAC != 1 +#pragma once + #include "menu/CBaseWidget.h" #include "Color.h" @@ -26,5 +25,3 @@ public: virtual void Draw(int x, int y); }; -#endif -#endif /* CTEXTLABEL_H_ */ diff --git a/include/menu/GUI.h b/include/visual/menu/GUI.h similarity index 88% rename from include/menu/GUI.h rename to include/visual/menu/GUI.h index 8a7c4fb4..af701ff3 100755 --- a/include/menu/GUI.h +++ b/include/visual/menu/GUI.h @@ -5,10 +5,8 @@ * Author: nullifiedcat */ -#ifndef GUI_H_ -#define GUI_H_ -#if TEXTMODE_VAC != 1 -#undef RootWindow +#pragma once + class IWidget; class CatVar; @@ -56,6 +54,4 @@ public: int mouse_dy; }; -extern CatGUI *g_pGUI; -#endif -#endif /* GUI_H_ */ +extern CatGUI *g_pGUI; \ No newline at end of file diff --git a/include/menu/IWidget.h b/include/visual/menu/IWidget.h similarity index 95% rename from include/menu/IWidget.h rename to include/visual/menu/IWidget.h index 4a5ab1c4..4abb3adb 100755 --- a/include/menu/IWidget.h +++ b/include/visual/menu/IWidget.h @@ -5,9 +5,8 @@ * Author: nullifiedcat */ -#ifndef IWIDGET_H_ -#define IWIDGET_H_ -#if TEXTMODE_VAC != 1 +#pragma once + #include #include #include @@ -77,5 +76,3 @@ public: virtual void SetParent(IWidget *) = 0; virtual std::string GetName() = 0; }; -#endif -#endif /* IWIDGET_H_ */ diff --git a/include/menu/compatlayer.hpp b/include/visual/menu/compatlayer.hpp similarity index 95% rename from include/menu/compatlayer.hpp rename to include/visual/menu/compatlayer.hpp index 5b49e159..825cfd23 100755 --- a/include/menu/compatlayer.hpp +++ b/include/visual/menu/compatlayer.hpp @@ -1,4 +1,3 @@ -#if TEXTMODE_VAC != 1 namespace colorsint { constexpr int Create(int r, int g, int b, int a) @@ -50,8 +49,7 @@ void FString(unsigned long font, int x, int y, int color, int shadow, void DrawRect(int x, int y, int w, int h, int color); void DrawLine(int x, int y, int dx, int dy, int color); void OutlineRect(int x, int y, int w, int h, int color); -void GetStringLength(unsigned long font, char *string, int &length, +void GetStringLength(unsigned long font, const char *string, int &length, int &height); std::pair GetStringLength(unsigned long font, std::string string); } -#endif diff --git a/include/menu/guicommon.h b/include/visual/menu/guicommon.h similarity index 63% rename from include/menu/guicommon.h rename to include/visual/menu/guicommon.h index b54f7e77..a5f5d58e 100755 --- a/include/menu/guicommon.h +++ b/include/visual/menu/guicommon.h @@ -5,11 +5,8 @@ * Author: nullifiedcat */ -#ifndef GUICOMMON_H_ -#define GUICOMMON_H_ -#if TEXTMODE_VAC != 1 +#pragma once + #include "menu/CBaseContainer.h" #include "menu/CBaseWidget.h" #include "menu/GUI.h" -#endif -#endif /* GUICOMMON_H_ */ diff --git a/include/visual/menu/ncc/CMakeLists.txt b/include/visual/menu/ncc/CMakeLists.txt new file mode 100644 index 00000000..a35af28b --- /dev/null +++ b/include/visual/menu/ncc/CMakeLists.txt @@ -0,0 +1,13 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/Item.hpp" + "${CMAKE_CURRENT_LIST_DIR}/ItemSublist.hpp" + "${CMAKE_CURRENT_LIST_DIR}/ItemTitle.hpp" + "${CMAKE_CURRENT_LIST_DIR}/ItemVariable.hpp" + "${CMAKE_CURRENT_LIST_DIR}/List.hpp" + "${CMAKE_CURRENT_LIST_DIR}/Menu.hpp" + "${CMAKE_CURRENT_LIST_DIR}/PlayerListEntry.hpp" + "${CMAKE_CURRENT_LIST_DIR}/PlayerList.hpp" + "${CMAKE_CURRENT_LIST_DIR}/Root.hpp" + "${CMAKE_CURRENT_LIST_DIR}/Tooltip.hpp") + +target_include_directories(cathook PRIVATE "${CMAKE_CURRENT_LIST_DIR}") \ No newline at end of file diff --git a/include/menu/ncc/Item.hpp b/include/visual/menu/ncc/Item.hpp similarity index 84% rename from include/menu/ncc/Item.hpp rename to include/visual/menu/ncc/Item.hpp index 4e36a899..047d251c 100755 --- a/include/menu/ncc/Item.hpp +++ b/include/visual/menu/ncc/Item.hpp @@ -5,9 +5,8 @@ * Author: nullifiedcat */ -#ifndef ITEM_HPP_ -#define ITEM_HPP_ -#if TEXTMODE_VAC != 1 +#pragma once + #include "../CBaseWidget.h" namespace menu @@ -31,5 +30,3 @@ public: }; } } -#endif -#endif /* ITEM_HPP_ */ diff --git a/include/menu/ncc/ItemSublist.hpp b/include/visual/menu/ncc/ItemSublist.hpp similarity index 86% rename from include/menu/ncc/ItemSublist.hpp rename to include/visual/menu/ncc/ItemSublist.hpp index d058a4ee..3c949f1b 100755 --- a/include/menu/ncc/ItemSublist.hpp +++ b/include/visual/menu/ncc/ItemSublist.hpp @@ -5,9 +5,7 @@ * Author: nullifiedcat */ -#ifndef ITEMSUBLIST_HPP_ -#define ITEMSUBLIST_HPP_ -#if TEXTMODE_VAC != 1 +#pragma once #include "menu/ncc/Item.hpp" #include "menu/ncc/List.hpp" @@ -40,5 +38,3 @@ public: }; } } -#endif -#endif /* ITEMSUBLIST_HPP_ */ diff --git a/include/menu/ncc/ItemTitle.hpp b/include/visual/menu/ncc/ItemTitle.hpp similarity index 75% rename from include/menu/ncc/ItemTitle.hpp rename to include/visual/menu/ncc/ItemTitle.hpp index d3e9584f..3373effa 100755 --- a/include/menu/ncc/ItemTitle.hpp +++ b/include/visual/menu/ncc/ItemTitle.hpp @@ -5,9 +5,8 @@ * Author: nullifiedcat */ -#ifndef ITEMTITLE_HPP_ -#define ITEMTITLE_HPP_ -#if TEXTMODE_VAC != 1 +#pragma once + #include "menu/ncc/Item.hpp" namespace menu @@ -27,5 +26,3 @@ public: }; } } -#endif -#endif /* ITEMTITLE_HPP_ */ diff --git a/include/menu/ncc/ItemVariable.hpp b/include/visual/menu/ncc/ItemVariable.hpp similarity index 85% rename from include/menu/ncc/ItemVariable.hpp rename to include/visual/menu/ncc/ItemVariable.hpp index 6ef44bc9..d0b56cdf 100755 --- a/include/menu/ncc/ItemVariable.hpp +++ b/include/visual/menu/ncc/ItemVariable.hpp @@ -5,9 +5,8 @@ * Author: nullifiedcat */ -#ifndef ITEMVARIABLE_HPP_ -#define ITEMVARIABLE_HPP_ -#if TEXTMODE_VAC != 1 +#pragma once + #include "menu/ncc/Item.hpp" class CatVar; @@ -38,5 +37,3 @@ public: }; } } -#endif -#endif /* ITEMVARIABLE_HPP_ */ diff --git a/include/menu/ncc/List.hpp b/include/visual/menu/ncc/List.hpp similarity index 94% rename from include/menu/ncc/List.hpp rename to include/visual/menu/ncc/List.hpp index ecd9acad..4d0f3df4 100755 --- a/include/menu/ncc/List.hpp +++ b/include/visual/menu/ncc/List.hpp @@ -5,9 +5,8 @@ * Author: nullifiedcat */ -#ifndef LIST_HPP_ -#define LIST_HPP_ -#if TEXTMODE_VAC != 1 +#pragma once + #include "../CBaseContainer.h" #include "common.hpp" @@ -66,5 +65,3 @@ public: }; } } -#endif -#endif /* LIST_HPP_ */ diff --git a/include/menu/ncc/Menu.hpp b/include/visual/menu/ncc/Menu.hpp similarity index 91% rename from include/menu/ncc/Menu.hpp rename to include/visual/menu/ncc/Menu.hpp index 896ec119..c40e4bbc 100755 --- a/include/menu/ncc/Menu.hpp +++ b/include/visual/menu/ncc/Menu.hpp @@ -5,9 +5,8 @@ * Author: nullifiedcat */ -#ifndef MENU_HPP_ -#define MENU_HPP_ -#if TEXTMODE_VAC != 1 +#pragma once + #include "visual/drawing.hpp" #include "visual/colors.hpp" @@ -52,5 +51,3 @@ void Init(); List &MainList(); } } -#endif -#endif /* MENU_HPP_ */ diff --git a/include/menu/ncc/PlayerList.hpp b/include/visual/menu/ncc/PlayerList.hpp similarity index 83% rename from include/menu/ncc/PlayerList.hpp rename to include/visual/menu/ncc/PlayerList.hpp index ebb2c12b..84497aa1 100755 --- a/include/menu/ncc/PlayerList.hpp +++ b/include/visual/menu/ncc/PlayerList.hpp @@ -5,9 +5,8 @@ * Author: nullifiedcat */ -#ifndef GUI_NCC_PLAYERLIST_HPP_ -#define GUI_NCC_PLAYERLIST_HPP_ -#if TEXTMODE_VAC != 1 +#pragma once + #include "../CBaseContainer.h" #include "menu/ncc/Menu.hpp" namespace menu @@ -32,5 +31,3 @@ public: }; } } -#endif -#endif /* GUI_NCC_PLAYERLIST_HPP_ */ diff --git a/include/menu/ncc/PlayerListEntry.hpp b/include/visual/menu/ncc/PlayerListEntry.hpp similarity index 92% rename from include/menu/ncc/PlayerListEntry.hpp rename to include/visual/menu/ncc/PlayerListEntry.hpp index c09e301c..230a1be3 100755 --- a/include/menu/ncc/PlayerListEntry.hpp +++ b/include/visual/menu/ncc/PlayerListEntry.hpp @@ -5,9 +5,8 @@ * Author: nullifiedcat */ -#ifndef PLAYERLISTENTRY_HPP_ -#define PLAYERLISTENTRY_HPP_ -#if TEXTMODE_VAC != 1 +#pragma once + #include "menu/ncc/Menu.hpp" namespace menu @@ -78,5 +77,3 @@ public: } } } -#endif -#endif /* PLAYERLISTENTRY_HPP_ */ diff --git a/include/menu/ncc/Root.hpp b/include/visual/menu/ncc/Root.hpp similarity index 82% rename from include/menu/ncc/Root.hpp rename to include/visual/menu/ncc/Root.hpp index 462f23fe..ba699fb0 100755 --- a/include/menu/ncc/Root.hpp +++ b/include/visual/menu/ncc/Root.hpp @@ -5,9 +5,8 @@ * Author: nullifiedcat */ -#ifndef ROOT_HPP_ -#define ROOT_HPP_ -#if TEXTMODE_VAC != 1 +#pragma once + #include "../CBaseWindow.h" namespace menu @@ -27,5 +26,3 @@ public: }; } } -#endif -#endif /* ROOT_HPP_ */ diff --git a/include/menu/ncc/Tooltip.hpp b/include/visual/menu/ncc/Tooltip.hpp similarity index 82% rename from include/menu/ncc/Tooltip.hpp rename to include/visual/menu/ncc/Tooltip.hpp index 5bb65e30..5d77fbd4 100755 --- a/include/menu/ncc/Tooltip.hpp +++ b/include/visual/menu/ncc/Tooltip.hpp @@ -5,9 +5,8 @@ * Author: nullifiedcat */ -#ifndef TOOLTIP_HPP_ -#define TOOLTIP_HPP_ -#if TEXTMODE_VAC != 1 +#pragma once + #include "menu/CTextLabel.h" #include "common.hpp" @@ -30,6 +29,4 @@ public: } }; } -} -#endif -#endif /* TOOLTIP_HPP_ */ +} \ No newline at end of file diff --git a/include/visual/xoverlay.h b/include/visual/xoverlay.h deleted file mode 100755 index 0c1d2cc0..00000000 --- a/include/visual/xoverlay.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * overlay.hpp - * - * Created on: Nov 8, 2017 - * Author: nullifiedcat - */ - -#pragma once - -#include -#include - -struct xoverlay_library -{ - Display *display; - Window window; - Colormap colormap; - GC gc; - XGCValues gcvalues; - XFontStruct font; - int screen; - - int width; - int height; - - struct - { - int x; - int y; - } mouse; - - char init; - char drawing; - char mapped; -}; - -extern struct xoverlay_library xoverlay_library; - -int xoverlay_init(); -void xoverlay_destroy(); - -void xoverlay_show(); - -void xoverlay_hide(); - -void xoverlay_draw_begin(); - -void xoverlay_draw_end(); diff --git a/install-data b/install-data new file mode 100755 index 00000000..1047ec0b --- /dev/null +++ b/install-data @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +if ! [ -d "$1" ]; then + echo "Creating cathook data directory at $1" + mkdir -p "$1" + chown -R $USER "$1" + chmod -R 777 "$1" +fi + +echo "Installing cathook data to $1" +rsync -avh --progress "data/" "$1" diff --git a/lib/libGLEW.so b/lib/libGLEW.so deleted file mode 100755 index 7a9a14dc..00000000 Binary files a/lib/libGLEW.so and /dev/null differ diff --git a/lib/libSDL2-2.0.so.0 b/lib/libSDL2-2.0.so.0 index 4e8ca343..d71fc3c0 100755 Binary files a/lib/libSDL2-2.0.so.0 and b/lib/libSDL2-2.0.so.0 differ diff --git a/lib/libc.so.6 b/lib/libc.so.6 deleted file mode 100755 index 5d436ee4..00000000 Binary files a/lib/libc.so.6 and /dev/null differ diff --git a/lib/libfreetype.so b/lib/libfreetype.so deleted file mode 100755 index be575fee..00000000 Binary files a/lib/libfreetype.so and /dev/null differ diff --git a/lib/libstdc++.so.6 b/lib/libstdc++.so.6 deleted file mode 100755 index 974fdf7f..00000000 Binary files a/lib/libstdc++.so.6 and /dev/null differ diff --git a/lib/libtier0.so b/lib/libtier0.so index 8740421a..f1501b83 100755 Binary files a/lib/libtier0.so and b/lib/libtier0.so differ diff --git a/lib/libvstdlib.so b/lib/libvstdlib.so index 4e00f5f3..3f758c3d 100755 Binary files a/lib/libvstdlib.so and b/lib/libvstdlib.so differ diff --git a/libglez b/libglez deleted file mode 160000 index e3bdf1c9..00000000 --- a/libglez +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e3bdf1c994da95544b84896efe8de0099dffe023 diff --git a/libxoverlay b/libxoverlay deleted file mode 160000 index ad741134..00000000 --- a/libxoverlay +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ad74113459abc092f81cb56ecd77909d17a22e0d diff --git a/makefile b/makefile deleted file mode 100755 index bf90d070..00000000 --- a/makefile +++ /dev/null @@ -1,191 +0,0 @@ -# -# MAKEFILE OPTIONS (make OPTION=1 ...args) -# -# GAME - compile for specific game (tf2, hl2dm, dab, tf2c, css, dynamic), tf2 by default, other ones probably won't compile/crash on inject -# CLANG - compile with clang instead of g++ -# BUILD_DEBUG - include debug info in the build -# NO_STRIP - Don't Strip library (for use with debug build, can get you vacced) -# NO_VISUALS - disable all visuals completely -# NO_IPC - disable IPC module completely (also disables followbot lol) -# NO_GUI - disable GUI -# NO_LTO - disable Link-Time Optimization -# NO_WARNINGS - disable warnings during compilation -# NO_TF2_RENDERING - disable in-game rendering (does not work yet) -# TEXTMODE_STDIN - allows using console with textmode tf2 -# TEXTMODE_VAC - allows joining VAC-secured servers in textmode -# - -GAME=tf2 - -ENABLE_VISUALS=1 -ENABLE_GUI=1 -ENABLE_IPC=1 -ENABLE_NULL_GRAPHICS=0 -TEXTMODE_STDIN=0 -TEXTMODE_VAC=0 -DATA_PATH="/opt/cathook/data" -NO_LTO=0 -ifdef CLANG -override NO_LTO=1 -endif - -ifdef NO_VISUALS -ENABLE_VISUALS:=0 -ENABLE_GUI:=0 -endif -ifdef NO_IPC -ENABLE_IPC:=0 -endif -ifdef NO_GUI -ENABLE_GUI:=0 -endif -ifdef NO_TF2_RENDERING -ENABLE_NULL_GRAPHICS:=1 -endif - -OUT_NAME = libcathook.so -SSDK_DIR=$(realpath source-sdk-2013-headers/mp/src) -SIPC_DIR=$(realpath simple-ipc/src/include) -LIB_DIR=lib -SRC_DIR=src -RES_DIR=res -OUT_DIR=bin -TARGET = $(OUT_DIR)/$(OUT_NAME) - -INCLUDES=-Iinclude -I. -Iucccccp -isystem$(SSDK_DIR)/public -isystem$(SSDK_DIR)/mathlib -isystem$(SSDK_DIR)/common -isystem$(SSDK_DIR)/public/tier1 -isystem$(SSDK_DIR)/public/tier0 -isystem$(SSDK_DIR) -LDLIBS=-static -l:libc.so.6 -l:libstdc++.so.6 -l:libtier0.so -l:libvstdlib.so -LDFLAGS=-shared -L$(realpath $(LIB_DIR)) -#LDFLAGS+=-Wl,--no-undefined -SOURCES=$(shell find $(SRC_DIR) -name "*.c*" -print) - -ifndef CLANG -CXX=$(shell sh -c "which g++-7 || which g++-6 || which g++") -CC=$(shell sh -c "which gcc-7 || which g++-6 || which gcc") -LD=$(CXX) -LDFLAGS+=-m32 -fno-gnu-unique -else -CXX=clang++ -CC=clang -LD=ld.lld -LDFLAGS+=-melf_i386 -endif - -DEFINES+=_GLIBCXX_USE_CXX11_ABI=0 _POSIX=1 FREETYPE_GL_USE_VAO=1 RAD_TELEMETRY_DISABLED=1 LINUX=1 USE_SDL=1 _LINUX=1 POSIX=1 GNUC=1 NO_MALLOC_OVERRIDE=1 -DEFINES+=ENABLE_VISUALS=$(ENABLE_VISUALS) ENABLE_GUI=$(ENABLE_GUI) ENABLE_IPC=$(ENABLE_IPC) BUILD_GAME=$(GAME) ENABLE_NULL_GRAPHICS=$(ENABLE_NULL_GRAPHICS) TEXTMODE_STDIN=$(TEXTMODE_STDIN) TEXTMODE_VAC=$(TEXTMODE_VAC) DATA_PATH="\"$(DATA_PATH)\"" - -WARNING_FLAGS=-pedantic -Wall -Wextra -Wcast-align -Wcast-qual -Wctor-dtor-privacy -Wdisabled-optimization -Wformat=2 -Winit-self -Wlogical-op -Wmissing-declarations -Wmissing-include-dirs -Wnoexcept -Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wshadow -Wsign-conversion -Wsign-promo -Wstrict-null-sentinel -Wstrict-overflow=5 -Wswitch-default -Wundef -COMMON_FLAGS=-O3 -shared -Wno-unknown-pragmas -fmessage-length=0 -m32 -fvisibility=hidden -fPIC -march=native -mtune=native - -ifdef CLANG -COMMON_FLAGS+=-Wno-c++11-narrowing -endif - -ifdef BUILD_DEBUG -COMMON_FLAGS+=-g3 -ggdb -else -ifneq ($(NO_LTO),1) -COMMON_FLAGS+=-flto -endif -endif - -CFLAGS=$(COMMON_FLAGS) -CXXFLAGS=-std=gnu++1z $(COMMON_FLAGS) - -ifdef NO_WARNINGS -CFLAGS+=-w -CXXFLAGS+=-w -else -CFLAGS+=$(WARNING_FLAGS) -CXXFLAGS+=$(WARNING_FLAGS) -endif - -ifeq ($(ENABLE_VISUALS),1) -LDLIBS+=-lssl -l:libSDL2-2.0.so.0 -l:libGLEW.so -lglez -lxoverlay -CXXFLAGS+=$(shell sdl2-config --cflags) -CFLAGS+=$(shell sdl2-config --cflags) -else -EXCL_SOURCES:=visual/atlas.cpp visual/colors.cpp visual/drawex.cpp visual/drawing.cpp visual/drawmgr.cpp visual/EffectChams.cpp visual/EffectGlow.cpp hacks/ESP.cpp hacks/SkinChanger.cpp hacks/SpyAlert.cpp hacks/Radar.cpp fidgetspinner.cpp hooks/sdl.cpp drawing.cpp hooks/PaintTraverse.cpp -EXCL_SOURCES:=$(addprefix $(SRC_DIR)/,$(EXCL_SOURCES)) - -SOURCES:=$(filter-out $(shell find $(SRC_DIR)/gui -name "*.cpp" -print),$(SOURCES)) -SOURCES:=$(filter-out $(EXCL_SOURCES),$(SOURCES)) -endif - -ifneq ($(ENABLE_GUI),1) -SOURCES := $(filter-out $(shell find $(SRC_DIR)/gui -name "*.cpp" -print),$(SOURCES)) -endif - - -GIT_COMMIT_HASH=$(shell git log -1 --pretty="%h") -GIT_COMMIT_DATE=$(shell git log -1 --pretty="%ai") - -DEFINES+=GIT_COMMIT_HASH="\"$(GIT_COMMIT_HASH)\"" GIT_COMMIT_DATE="\"$(GIT_COMMIT_DATE)\"" - -ifeq ($(ENABLE_IPC),1) -SOURCES+=$(shell find $(SIPC_DIR) -name "*.cpp" -print) -INCLUDES+=-I$(SIPC_DIR) -endif - -CXXFLAGS+=$(addprefix -D,$(DEFINES)) -CFLAGS+=$(addprefix -D,$(DEFINES)) - -CXXFLAGS+=$(INCLUDES) -CFLAGS+=$(INCLUDES) - -OBJECTS = $(patsubst %.c,%.o, $(patsubst %.cpp,%.o, $(SOURCES))) -OBJECTS += $(shell find $(RES_DIR) -name "*.o" -print) -DEPENDS = $(patsubst %.c,%.d, $(patsubst %.cpp,%.d, $(SOURCES))) - -.PHONY: clean directories echo data - -all: - mkdir -p $(OUT_DIR) - $(MAKE) data - $(MAKE) $(TARGET) - -echo: - echo $(OBJECTS) - -data: - ./check-data "$(DATA_PATH)" - -# 3rd party source files, we don't need warnings there - -# c++ -src/sdk/checksum_md5.o : CXXFLAGS+=-w -src/sdk/convar.o : CXXFLAGS+=-w -src/sdk/KeyValues.o : CXXFLAGS+=-w -src/sdk/MaterialSystemUtil.o : CXXFLAGS+=-w -src/sdk/tier1.o : CXXFLAGS+=-w -src/sdk/utlbuffer.o : CXXFLAGS+=-w - -# end of 3rd party sources - -.cpp.o: - @echo Compiling $< - $(CXX) $(CXXFLAGS) -c $< -o $@ - -.c.o: - @echo Compiling $< - $(CC) $(CFLAGS) -c $< -o $@ - -%.d: %.cpp - @$(CXX) -M $(CXXFLAGS) $< > $@ - -$(TARGET): $(OBJECTS) - @echo Building cathook - $(LD) -o $@ $(LDFLAGS) $(OBJECTS) $(LDLIBS) -ifndef NO_STRIP - strip --strip-all $@ -endif - -clean: - find src -type f -name '*.o' -delete - find src -type f -name '*.d' -delete - find simple-ipc -type f -name '*.o' -delete - find simple-ipc -type f -name '*.d' -delete - rm -rf ./bin - -ifneq ($(MAKECMDGOALS), clean) --include $(DEPENDS) -endif diff --git a/menu.json b/menu.json deleted file mode 100755 index dc546321..00000000 --- a/menu.json +++ /dev/null @@ -1,550 +0,0 @@ -[ - { - "type": "list", - "name": "Aim Bot", - "list": [ - "aimbot_enabled", - "aimbot_aimkey", - "aimbot_aimkey_mode", - "aimbot_autoshoot", - "aimbot_hitboxmode", - "aimbot_fov", - "aimbot_fov_draw", - "aimbot_fov_draw_opacity", - "aimbot_prioritymode", - "aimbot_charge", - "aimbot_auto_unzoom", - "aimbot_auto_zoom", - "aimbot_rage_only", - { - "type": "list", - "name": "Ignore", - "list": [ - "aimbot_ignore_cloak", - "aimbot_ignore_deadringer", - "aimbot_ignore_vaccinator", - "ignore_taunting", - "aimbot_ignore_hoovy", - "aimbot_teammates", - "aimbot_buildings_sentry", - "aimbot_buildings_other", - "aimbot_stickys" - ] - }, - { - "type": "list", - "name": "Auto Heal", - "list": [ - "autoheal_enabled", - "autoheal_uber", - "autoheal_uber_health", - "autoheal_silent", - "autoheal_share_uber" - ] - }, - { - "type": "list", - "name": "Preferences", - "list": [ - "aimbot_miss_chance", - "aimbot_silent", - "aimbot_target_lock", - "aimbot_hitbox", - "aimbot_zoomed", - "aimbot_only_when_can_shoot", - "aimbot_maxrange", - "aimbot_slow", - { - "type": "list", - "name": "Projectile Aimbot Tweaks", - "list": [ - "aimbot_projectile", - "aimbot_proj_gravity", - "aimbot_proj_speed", - "aimbot_huntsman_charge" - ] - } - ] - } - ] - }, - { - "type": "list", - "name": "Trigger Bot", - "list": [ - "trigger_enabled", - "autobackstab", - { - "type": "list", - "name": "Auto Vaccinator", - "list": [ - "auto_vacc", - "auto_vacc_reset_timer", - "auto_vacc_default_resist", - "auto_vacc_bullets", - "auto_vacc_blast", - "auto_vacc_fire", - "auto_vacc_sniper_pop", - "auto_vacc_blast_pop_health", - "auto_vacc_blast_pop_crit", - "auto_vacc_rocket_range", - "auto_vacc_fire_pop_pyro", - "auto_vacc_afterburn", - "auto_vacc_pyro_range", - "auto_vacc_bullet_pop_ubers", - "auto_vacc_blast_pop_ubers", - "auto_vacc_fire_pop_ubers" - ] - }, - { - "type": "list", - "name": "Auto Sticky", - "list": [ - "sticky_enabled", - "sticky_buildings", - "sticky_legit" - ] - }, - { - "type": "list", - "name": "Auto Reflect", - "list": [ - "reflect_enabled", - "reflect_key", - "reflect_legit", - "reflect_only_idle", - "reflect_stickybombs", - "reflect_dodgeball" - ] - }, - { - "type": "list", - "name": "Triggerbot Ignores", - "list": [ - "trigger_ignore_cloak", - "trigger_ignore_hoovy", - "trigger_ignore_vaccinator", - "trigger_buildings_sentry", - "trigger_buildings_other", - "trigger_stickys", - "trigger_teammates" - ] - }, - { - "type": "list", - "name": "Triggerbot Preferences", - "list": [ - "trigger_delay", - "trigger_accuracy", - "trigger_zoomed", - "trigger_maxrange", - "trigger_charge", - "trigger_hitboxmode", - "trigger_key_mode", - "trigger_key" - ] - } - ] - }, - { - "type": "list", - "name": "Visuals", - "list": [ - { - "type": "list", - "name": "ESP", - "list": [ - "esp_enabled", - "esp_box", - "esp_box_corner_size", - "esp_health", - "esp_expand", - "esp_tracers", - "esp_text_position", - "esp_legit", - "esp_vischeck", - "esp_bones", - "esp_buildings", - "esp_teammates", - "esp_name", - "esp_class", - "esp_distance", - "esp_conds", - "esp_ubercharge", - "esp_weapon", - "esp_powerups", - "esp_show_tank", - "esp_weapon_spawners", - "esp_followbot_id", - "esp_local", - "esp_sightlines", - "esp_entity", - "esp_model_name", - "esp_entity_id", - "esp_spellbooks", - { - "type": "list", - "name": "Colors", - "list": [ - "esp_color_red_r", - "esp_color_red_g", - "esp_color_red_b", - "esp_color_blue_r", - "esp_color_blue_g", - "esp_color_blue_b" - ] - }, - { - "type": "list", - "name": "Emoji ESP", - "list": [ - "esp_emoji", - "esp_emoji_size", - "esp_emoji_scaling", - "esp_emoji_min_size" - ] - }, - { - "type": "list", - "name": "Item ESP", - "list": [ - "esp_item", - "esp_item_adrenaline", - "esp_item_powerups", - "esp_item_health", - "esp_item_ammo", - "esp_item_weapons", - "esp_money_red", - "esp_money" - ] - }, - { - "type": "list", - "name": "Projectile ESP", - "list": [ - "esp_proj", - "esp_proj_enemy", - "esp_proj_stickies", - "esp_proj_pipes", - "esp_proj_arrows", - "esp_proj_rockets" - ] - } - ] - }, - { - "type": "list", - "name": "Radar", - "list": [ - "radar", - "radar_size", - "radar_zoom", - "radar_health", - "radar_enemies_top", - "radar_icon_size", - "radar_x", - "radar_y", - "radar_healthpacks", - "radar_ammopacks", - "radar_teammates", - "radar_icons" - ] - }, - { - "type": "list", - "name": "Chams", - "list": [ - "chams_enable", - "chams_legit", - "chams_singlepass", - "chams_health", - "chams_players", - "chams_teammates", - "chams_buildings", - "chams_teammate_buildings", - "chams_flat", - "chams_recursive", - "chams_weapons_white", - "chams_medkits", - "chams_ammo", - "chams_stickies" - ] - }, - { - "type": "list", - "name": "Glow", - "list": [ - "glow_enable", - "glow_solid_when", - "glow_blur_scale", - "glow_health", - "glow_players", - "glow_teammates", - "glow_buildings", - "glow_teammate_buildings", - "glow_medkits", - "glow_ammo", - "glow_stickies", - "glow_powerups", - "glow_weapons_white" - ] - }, - { - "type": "list", - "name": "GUI Settings", - "list": [ - "gui_color_b", - "gui_color_g", - "gui_color_r", - "imgui_color_head_r", - "imgui_color_head_g", - "imgui_color_head_b", - "imgui_color_area_r", - "imgui_color_area_g", - "imgui_color_area_b", - "imgui_color_body_r", - "imgui_color_body_g", - "imgui_color_body_b", - "imgui_color_pops_r", - "imgui_color_pops_g", - "imgui_color_pops_b", - "imgui_color_text", - "imgui_custom", - "gui_rainbow" - ] - }, - { - "type": "list", - "name": "Miscellaneous Settings", - "list": [ - "pure_bypass", - "antidisguise", - "no_arms", - "no_hats", - "thirdperson", - "thirdperson_angles", - "render_zoomed", - "fov", - "fov_zoomed", - "no_zoom", - "clean_screenshots", - "info", - "font_ftgl_esp" - ] - } - ] - }, - { - "type": "list", - "name": "Anti-/Anti-Aim", - "list": [ - "aa_enabled", - "aa_pitch", - "aa_pitch_mode", - "aa_yaw", - "aa_yaw_mode", - "aa_spin", - "aa_roll", - "aa_no_clamp", - "resolver", - { - "type": "list", - "name": "Anti-Anti-Anti-Aim", - "list": [ - "aa_aaaa_enabled", - "aa_aaaa_interval", - "aa_aaaa_interval_low", - "aa_aaaa_interval_high", - "aa_aaaa_mode", - "aa_aaaa_flip_key" - ] - } - ] - }, - { - "type": "list", - "name": "Crit Hack", - "list": [ - "crit_info", - "crit_hack_next", - "crit_hack", - "crit_suppress", - "crit_melee", - "crit_hack_experimental" - ] - }, - { - "type": "list", - "name": "Chat Settings", - "list": [ - "spam", - "killsay", - "uberspam", - "spam_file", - "killsay_file", - "spam_random", - "chat_newlines", - "clean_chat", - "chat_crypto", - "uberspam_ready", - "uberspam_used", - "uberspam_ended", - "uberspam_team", - "uberspam_build", - "uberspam_file", - "spam_voicecommand", - "spam_teamname", - "chat_log", - "chat_log_noipc", - "chat_log_nospam", - "chat_log_template" - ] - }, - { - "type": "list", - "name": "Anti-Cheat", - "list": [ - "ac_enabled", - "ac_ignore_local", - "ac_chat", - "ac_aimbot", - "ac_aimbot_detections", - "ac_aimbot_angle", - "ac_removecond", - "ac_removecond_timer", - "ac_bhop_count" - ] - }, - { - "type": "list", - "name": "Followbot", - "list": [ - "fb_bot", - "fb_distance", - "fb_activation", - "fb_roaming", - "fb_mimic_slot", - "fb_always_medigun", - "fb_sync_taunt", - "fb_crumb_draw" - ] - }, - { - "type": "list", - "name": "Miscellaneous", - "list": [ - "name", - "disconnect_reason", - "name_stealer", - "bhop_enabled", - "nopush_enabled", - "noisemaker", - "tauntslide_tf2", - "anti_afk", - "events", - "airstuck", - "fast_vischeck", - "instant_weapon_switch", - "fakelag", - "skinchanger", - "autoqueue", - "autotaunt", - "autotaunt_chance", - "autojoin_team", - "autojoin_class", - "minigun_jump", - "tauntslide", - "flashlight", - "rollspeedhack", - "info", - "request_balance_spam", - { - "type": "list", - "name": "Remove Conditions", - "list": [ - "removecond_master", - "removecond_value", - "removecond_key", - "removecond_fire", - "removecond_taunt", - "removecond_bleeding", - "removecond_stun", - "spycrab", - "instant_decloak", - "instant_rezoom", - "infinite_packs", - "lagexploit_mini" - ] - }, - { - "type": "list", - "name": "Fidget Spinner", - "list": [ - "fidgetspinner", - "fidgetspinner_scale", - "fidgetspinner_decay_speed", - "fidgetspinner_speed_scale", - "fidgetspinner_speed_cap", - "fidgetspinner_min_speed" - ] - }, - { - "type": "list", - "name": "Heal Arrows", - "list": [ - "healarrow", - "healarrow_charge", - "healarrow_timeout", - "healarrow_callout", - "healarrow_callout_text" - ] - }, - { - "type": "list", - "name": "Spy Alert", - "list": [ - "spyalert_enabled", - "spyalert_warning", - "spyalert_backstab", - "spyalert_sound", - "spyalert_interval" - ] - }, - { - "type": "list", - "name": "Anti Backstab", - "list": [ - "antibackstab", - "antibackstab_nope", - "antibackstab_angle", - "antibackstab_distance", - "antibackstab_silent" - ] - }, - { - "type": "list", - "name": "Debug Settings", - "list": [ - "enabled", - "debug_projectiles", - "debug_aimbot_engine_pp", - "debug_ve_window", - "debug_ve_smooth", - "debug_ve_averaging", - "no_visuals", - "aimbot_debug", - "debug_info", - "log", - "setupbones_time", - "nolerp", - "skinchanger_debug", - "software_cursor_mode", - "experimental_cursor_fix", - "engine_prediction" - ] - } - ] - } -] - - diff --git a/res/atlas b/res/atlas deleted file mode 100755 index b0bdc81f..00000000 Binary files a/res/atlas and /dev/null differ diff --git a/res/bin/atlas.o b/res/bin/atlas.o deleted file mode 100755 index 784afb0f..00000000 Binary files a/res/bin/atlas.o and /dev/null differ diff --git a/res/convert.sh b/res/convert.sh deleted file mode 100755 index 74158ff5..00000000 --- a/res/convert.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash -convert "$1".png -depth 8 -format rgba "$1".rgba -mv "$1".rgba "$1" -objcopy --input binary --output elf32-i386 --binary-architecture i386 "$1" "$1".o -mv "$1".o bin/"$1".o diff --git a/res/shaders/v2f-c4f.frag b/res/shaders/v2f-c4f.frag deleted file mode 100755 index 89946792..00000000 --- a/res/shaders/v2f-c4f.frag +++ /dev/null @@ -1,4 +0,0 @@ -// 2D drawing shader -void main() { - gl_FragColor = gl_Color; -} diff --git a/res/shaders/v2f-c4f.vert b/res/shaders/v2f-c4f.vert deleted file mode 100755 index dda5f179..00000000 --- a/res/shaders/v2f-c4f.vert +++ /dev/null @@ -1,13 +0,0 @@ -// 2D drawing shader -uniform mat4 model; -uniform mat4 view; -uniform mat4 projection; - -attribute vec2 vertex; -attribute vec4 color; - -void main() -{ - gl_FrontColor = color; - gl_Position = projection*(view*(model*vec4(vertex,0.0,1.0))); -} diff --git a/res/shaders/v2f-t2f-c4f.frag b/res/shaders/v2f-t2f-c4f.frag deleted file mode 100755 index 3cdf9801..00000000 --- a/res/shaders/v2f-t2f-c4f.frag +++ /dev/null @@ -1,6 +0,0 @@ -// 2D drawing shader -uniform sampler2D texture; -void main() -{ - gl_FragColor = texture2D(texture, gl_TexCoord[0].xy) * gl_Color; -} diff --git a/res/shaders/v2f-t2f-c4f.vert b/res/shaders/v2f-t2f-c4f.vert deleted file mode 100755 index 1927b815..00000000 --- a/res/shaders/v2f-t2f-c4f.vert +++ /dev/null @@ -1,15 +0,0 @@ -// 2D drawing shader - modified freetype-gl shader -uniform mat4 model; -uniform mat4 view; -uniform mat4 projection; - -attribute vec2 vertex; -attribute vec2 tex_coord; -attribute vec4 color; - -void main() -{ - gl_TexCoord[0].xy = tex_coord.xy; - gl_FrontColor = color; - gl_Position = projection*(view*(model*vec4(vertex,0.0,1.0))); -} diff --git a/res/shaders/v3f-t2f-c4f.frag b/res/shaders/v3f-t2f-c4f.frag deleted file mode 100755 index 4b37f859..00000000 --- a/res/shaders/v3f-t2f-c4f.frag +++ /dev/null @@ -1,11 +0,0 @@ -/* Freetype GL - A C OpenGL Freetype engine - * - * Distributed under the OSI-approved BSD 2-Clause License. See accompanying - * file `LICENSE` for more details. - */ -uniform sampler2D texture; -void main() -{ - float a = texture2D(texture, gl_TexCoord[0].xy).r; - gl_FragColor = vec4(gl_Color.rgb, gl_Color.a*a); -} diff --git a/res/shaders/v3f-t2f-c4f.vert b/res/shaders/v3f-t2f-c4f.vert deleted file mode 100755 index 5d0232c3..00000000 --- a/res/shaders/v3f-t2f-c4f.vert +++ /dev/null @@ -1,18 +0,0 @@ -/* Freetype GL - A C OpenGL Freetype engine - * - * Distributed under the OSI-approved BSD 2-Clause License. See accompanying - * file `LICENSE` for more details. - */ -uniform mat4 model; -uniform mat4 view; -uniform mat4 projection; - -attribute vec3 vertex; -attribute vec2 tex_coord; -attribute vec4 color; -void main() -{ - gl_TexCoord[0].xy = tex_coord.xy; - gl_FrontColor = color; - gl_Position = projection*(view*(model*vec4(vertex,1.0))); -} diff --git a/shaders/v2f-c4f.frag b/shaders/v2f-c4f.frag deleted file mode 100755 index 89946792..00000000 --- a/shaders/v2f-c4f.frag +++ /dev/null @@ -1,4 +0,0 @@ -// 2D drawing shader -void main() { - gl_FragColor = gl_Color; -} diff --git a/shaders/v2f-c4f.vert b/shaders/v2f-c4f.vert deleted file mode 100755 index dda5f179..00000000 --- a/shaders/v2f-c4f.vert +++ /dev/null @@ -1,13 +0,0 @@ -// 2D drawing shader -uniform mat4 model; -uniform mat4 view; -uniform mat4 projection; - -attribute vec2 vertex; -attribute vec4 color; - -void main() -{ - gl_FrontColor = color; - gl_Position = projection*(view*(model*vec4(vertex,0.0,1.0))); -} diff --git a/shaders/v2f-t2f-c4f.frag b/shaders/v2f-t2f-c4f.frag deleted file mode 100755 index 3cdf9801..00000000 --- a/shaders/v2f-t2f-c4f.frag +++ /dev/null @@ -1,6 +0,0 @@ -// 2D drawing shader -uniform sampler2D texture; -void main() -{ - gl_FragColor = texture2D(texture, gl_TexCoord[0].xy) * gl_Color; -} diff --git a/shaders/v2f-t2f-c4f.vert b/shaders/v2f-t2f-c4f.vert deleted file mode 100755 index 1927b815..00000000 --- a/shaders/v2f-t2f-c4f.vert +++ /dev/null @@ -1,15 +0,0 @@ -// 2D drawing shader - modified freetype-gl shader -uniform mat4 model; -uniform mat4 view; -uniform mat4 projection; - -attribute vec2 vertex; -attribute vec2 tex_coord; -attribute vec4 color; - -void main() -{ - gl_TexCoord[0].xy = tex_coord.xy; - gl_FrontColor = color; - gl_Position = projection*(view*(model*vec4(vertex,0.0,1.0))); -} diff --git a/shaders/v3f-t2f-c4f.frag b/shaders/v3f-t2f-c4f.frag deleted file mode 100755 index 4b37f859..00000000 --- a/shaders/v3f-t2f-c4f.frag +++ /dev/null @@ -1,11 +0,0 @@ -/* Freetype GL - A C OpenGL Freetype engine - * - * Distributed under the OSI-approved BSD 2-Clause License. See accompanying - * file `LICENSE` for more details. - */ -uniform sampler2D texture; -void main() -{ - float a = texture2D(texture, gl_TexCoord[0].xy).r; - gl_FragColor = vec4(gl_Color.rgb, gl_Color.a*a); -} diff --git a/shaders/v3f-t2f-c4f.vert b/shaders/v3f-t2f-c4f.vert deleted file mode 100755 index 5d0232c3..00000000 --- a/shaders/v3f-t2f-c4f.vert +++ /dev/null @@ -1,18 +0,0 @@ -/* Freetype GL - A C OpenGL Freetype engine - * - * Distributed under the OSI-approved BSD 2-Clause License. See accompanying - * file `LICENSE` for more details. - */ -uniform mat4 model; -uniform mat4 view; -uniform mat4 projection; - -attribute vec3 vertex; -attribute vec2 tex_coord; -attribute vec4 color; -void main() -{ - gl_TexCoord[0].xy = tex_coord.xy; - gl_FrontColor = color; - gl_Position = projection*(view*(model*vec4(vertex,1.0))); -} diff --git a/simple-ipc b/simple-ipc deleted file mode 160000 index 45f56984..00000000 --- a/simple-ipc +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 45f56984beb1de4c648911e65e4019c83683b3d0 diff --git a/sound/combowhore.wav b/sound/combowhore.wav deleted file mode 100755 index 802efbe4..00000000 Binary files a/sound/combowhore.wav and /dev/null differ diff --git a/sound/dominating.wav b/sound/dominating.wav deleted file mode 100755 index 1c19acb7..00000000 Binary files a/sound/dominating.wav and /dev/null differ diff --git a/sound/doublekill.wav b/sound/doublekill.wav deleted file mode 100755 index df6022ee..00000000 Binary files a/sound/doublekill.wav and /dev/null differ diff --git a/sound/firstblood.wav b/sound/firstblood.wav deleted file mode 100755 index 3646b4a2..00000000 Binary files a/sound/firstblood.wav and /dev/null differ diff --git a/sound/godlike.wav b/sound/godlike.wav deleted file mode 100755 index 6c3dce8a..00000000 Binary files a/sound/godlike.wav and /dev/null differ diff --git a/sound/hattrick.wav b/sound/hattrick.wav deleted file mode 100755 index 59071307..00000000 Binary files a/sound/hattrick.wav and /dev/null differ diff --git a/sound/headhunter.wav b/sound/headhunter.wav deleted file mode 100755 index e7396023..00000000 Binary files a/sound/headhunter.wav and /dev/null differ diff --git a/sound/headshot.wav b/sound/headshot.wav deleted file mode 100755 index 6a768614..00000000 Binary files a/sound/headshot.wav and /dev/null differ diff --git a/sound/holyshit.wav b/sound/holyshit.wav deleted file mode 100755 index 4b2da972..00000000 Binary files a/sound/holyshit.wav and /dev/null differ diff --git a/sound/humiliation.wav b/sound/humiliation.wav deleted file mode 100755 index 170eabc2..00000000 Binary files a/sound/humiliation.wav and /dev/null differ diff --git a/sound/impressive.wav b/sound/impressive.wav deleted file mode 100755 index 09a48715..00000000 Binary files a/sound/impressive.wav and /dev/null differ diff --git a/sound/killingspree.wav b/sound/killingspree.wav deleted file mode 100755 index e7cb3ba9..00000000 Binary files a/sound/killingspree.wav and /dev/null differ diff --git a/sound/ludicrouskill.wav b/sound/ludicrouskill.wav deleted file mode 100755 index a6c0aca2..00000000 Binary files a/sound/ludicrouskill.wav and /dev/null differ diff --git a/sound/megakill.wav b/sound/megakill.wav deleted file mode 100755 index 022d135c..00000000 Binary files a/sound/megakill.wav and /dev/null differ diff --git a/sound/monsterkill.wav b/sound/monsterkill.wav deleted file mode 100755 index 1dfb0698..00000000 Binary files a/sound/monsterkill.wav and /dev/null differ diff --git a/sound/multikill.wav b/sound/multikill.wav deleted file mode 100755 index 0a9f1f66..00000000 Binary files a/sound/multikill.wav and /dev/null differ diff --git a/sound/perfect.wav b/sound/perfect.wav deleted file mode 100755 index a0a6c25c..00000000 Binary files a/sound/perfect.wav and /dev/null differ diff --git a/sound/play.wav b/sound/play.wav deleted file mode 100755 index f9300dbb..00000000 Binary files a/sound/play.wav and /dev/null differ diff --git a/sound/prepare.wav b/sound/prepare.wav deleted file mode 100755 index 4ac754eb..00000000 Binary files a/sound/prepare.wav and /dev/null differ diff --git a/sound/rampage.wav b/sound/rampage.wav deleted file mode 100755 index 97324ab1..00000000 Binary files a/sound/rampage.wav and /dev/null differ diff --git a/sound/teamkiller.wav b/sound/teamkiller.wav deleted file mode 100755 index f9bbb140..00000000 Binary files a/sound/teamkiller.wav and /dev/null differ diff --git a/sound/triplekill.wav b/sound/triplekill.wav deleted file mode 100755 index 39485e73..00000000 Binary files a/sound/triplekill.wav and /dev/null differ diff --git a/sound/ultrakill.wav b/sound/ultrakill.wav deleted file mode 100755 index 448e67e9..00000000 Binary files a/sound/ultrakill.wav and /dev/null differ diff --git a/sound/unstoppable.wav b/sound/unstoppable.wav deleted file mode 100755 index 59e202f1..00000000 Binary files a/sound/unstoppable.wav and /dev/null differ diff --git a/sound/wickedsick.wav b/sound/wickedsick.wav deleted file mode 100755 index 937709df..00000000 Binary files a/sound/wickedsick.wav and /dev/null differ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt old mode 100755 new mode 100644 index aed8123d..4b38b43f --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1 +1,53 @@ -aux_source_directory (. SOURCES) \ No newline at end of file +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/angles.cpp" + "${CMAKE_CURRENT_LIST_DIR}/backpacktf.cpp" + "${CMAKE_CURRENT_LIST_DIR}/chatlog.cpp" + "${CMAKE_CURRENT_LIST_DIR}/chatstack.cpp" + "${CMAKE_CURRENT_LIST_DIR}/conditions.cpp" + "${CMAKE_CURRENT_LIST_DIR}/crits.cpp" + "${CMAKE_CURRENT_LIST_DIR}/cvwrapper.cpp" + "${CMAKE_CURRENT_LIST_DIR}/entitycache.cpp" + "${CMAKE_CURRENT_LIST_DIR}/entityhitboxcache.cpp" + "${CMAKE_CURRENT_LIST_DIR}/entry.cpp" + "${CMAKE_CURRENT_LIST_DIR}/globals.cpp" + "${CMAKE_CURRENT_LIST_DIR}/hack.cpp" + "${CMAKE_CURRENT_LIST_DIR}/headshake.cpp" + "${CMAKE_CURRENT_LIST_DIR}/helpers.cpp" + "${CMAKE_CURRENT_LIST_DIR}/hitrate.cpp" + "${CMAKE_CURRENT_LIST_DIR}/hooks.cpp" + "${CMAKE_CURRENT_LIST_DIR}/hoovy.cpp" + "${CMAKE_CURRENT_LIST_DIR}/https_request.cpp" + "${CMAKE_CURRENT_LIST_DIR}/init.cpp" + "${CMAKE_CURRENT_LIST_DIR}/interfaces.cpp" + "${CMAKE_CURRENT_LIST_DIR}/ipc.cpp" + "${CMAKE_CURRENT_LIST_DIR}/itemtypes.cpp" + "${CMAKE_CURRENT_LIST_DIR}/localplayer.cpp" + "${CMAKE_CURRENT_LIST_DIR}/logging.cpp" + "${CMAKE_CURRENT_LIST_DIR}/netmessage.cpp" + "${CMAKE_CURRENT_LIST_DIR}/netvars.cpp" + "${CMAKE_CURRENT_LIST_DIR}/playerlist.cpp" + "${CMAKE_CURRENT_LIST_DIR}/playerresource.cpp" + "${CMAKE_CURRENT_LIST_DIR}/prediction.cpp" + "${CMAKE_CURRENT_LIST_DIR}/profiler.cpp" + "${CMAKE_CURRENT_LIST_DIR}/projlogging.cpp" + "${CMAKE_CURRENT_LIST_DIR}/sconvars.cpp" + "${CMAKE_CURRENT_LIST_DIR}/sharedobj.cpp" + "${CMAKE_CURRENT_LIST_DIR}/targethelper.cpp" + "${CMAKE_CURRENT_LIST_DIR}/textfile.cpp" + "${CMAKE_CURRENT_LIST_DIR}/textmode.cpp" + "${CMAKE_CURRENT_LIST_DIR}/tfmm.cpp" + "${CMAKE_CURRENT_LIST_DIR}/trace.cpp" + "${CMAKE_CURRENT_LIST_DIR}/ucccccp_cmds.cpp" + "${CMAKE_CURRENT_LIST_DIR}/velocity.cpp" + "${CMAKE_CURRENT_LIST_DIR}/votelogger.cpp") + +add_subdirectory(classinfo) +add_subdirectory(copypasted) +add_subdirectory(hacks) +add_subdirectory(hooks) +add_subdirectory(reclasses) +add_subdirectory(sdk) + +if(EnableVisuals) + add_subdirectory(visual) +endif() \ No newline at end of file diff --git a/src/chatlog.cpp b/src/chatlog.cpp index 073d0283..6fa8e67c 100755 --- a/src/chatlog.cpp +++ b/src/chatlog.cpp @@ -26,8 +26,7 @@ public: struct end_t { }; - static constexpr end_t end{}; - + static end_t end; public: csv_stream() { @@ -57,6 +56,8 @@ public: std::ofstream stream; }; +csv_stream::end_t csv_stream::end{}; + csv_stream &operator<<(csv_stream &log, const std::string &string) { if (!log.stream.good()) diff --git a/src/classinfo/CMakeLists.txt b/src/classinfo/CMakeLists.txt new file mode 100644 index 00000000..5d82ad42 --- /dev/null +++ b/src/classinfo/CMakeLists.txt @@ -0,0 +1,4 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/classinfo.cpp" + "${CMAKE_CURRENT_LIST_DIR}/dump.cpp" + "${CMAKE_CURRENT_LIST_DIR}/dynamic.gen.cpp") \ No newline at end of file diff --git a/src/classinfo/classinfo.cpp b/src/classinfo/classinfo.cpp index bc05cb9b..7dfe41be 100755 --- a/src/classinfo/classinfo.cpp +++ b/src/classinfo/classinfo.cpp @@ -5,7 +5,7 @@ * Author: nullifiedcat */ -#include "classinfo/classinfo.hpp" +#include "common.hpp" client_classes::dummy *client_class_list = nullptr; diff --git a/src/copypasted/CMakeLists.txt b/src/copypasted/CMakeLists.txt new file mode 100644 index 00000000..101f70e8 --- /dev/null +++ b/src/copypasted/CMakeLists.txt @@ -0,0 +1,3 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/CSignature.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Netvar.cpp") \ No newline at end of file diff --git a/src/copypasted/CSignature.cpp b/src/copypasted/CSignature.cpp index 2ca9e495..fc077bf2 100755 --- a/src/copypasted/CSignature.cpp +++ b/src/copypasted/CSignature.cpp @@ -61,16 +61,16 @@ uintptr_t CSignature::dwFindPattern(uintptr_t dwAddress, uintptr_t dwLength, { if (!*pat) return firstMatch; - if (*(uint8_t *) pat == '\?' || *(uint8_t *) pCur == getByte(pat)) + if (*pat == '\?' || *(uint8_t *) pCur == getByte(pat)) { if (!firstMatch) firstMatch = pCur; if (!pat[2]) return firstMatch; - if (*(uintptr_t *) pat == '\?\?' || *(uint8_t *) pat != '\?') - pat += 3; - else + if (*pat == '\?') pat += 2; + else + pat += 3; } else { @@ -78,6 +78,9 @@ uintptr_t CSignature::dwFindPattern(uintptr_t dwAddress, uintptr_t dwLength, firstMatch = 0; } } + + logging::Info("THIS IS SERIOUS: Could not locate signature: \n============\n\"%s\"\n============", szPattern); + return NULL; } //=================================================================================== @@ -94,7 +97,7 @@ void *CSignature::GetModuleHandleSafe(const char *pszModuleName) return moduleHandle; } //=================================================================================== -uintptr_t CSignature::GetClientSignature(char *chPattern) +uintptr_t CSignature::GetClientSignature(const char *chPattern) { // we need to do this becuase (i assume that) under the hood, dlopen only // loads up the sections that it needs into memory, meaning that we cannot @@ -121,7 +124,7 @@ uintptr_t CSignature::GetClientSignature(char *chPattern) (uintptr_t)(module) + moduleMap->l_addr; } //=================================================================================== -uintptr_t CSignature::GetEngineSignature(char *chPattern) +uintptr_t CSignature::GetEngineSignature(const char *chPattern) { // we need to do this becuase (i assume that) under the hood, dlopen only // loads up the sections that it needs into memory, meaning that we cannot @@ -148,7 +151,7 @@ uintptr_t CSignature::GetEngineSignature(char *chPattern) (uintptr_t)(module) + moduleMap->l_addr; } //=================================================================================== -uintptr_t CSignature::GetVstdSignature(char *chPattern) +uintptr_t CSignature::GetVstdSignature(const char *chPattern) { // we need to do this becuase (i assume that) under the hood, dlopen only // loads up the sections that it needs into memory, meaning that we cannot diff --git a/src/crits.cpp b/src/crits.cpp index 130d93cd..a1e277ee 100644 --- a/src/crits.cpp +++ b/src/crits.cpp @@ -6,7 +6,6 @@ */ #include "common.hpp" -#include CatVar crit_info(CV_SWITCH, "crit_info", "0", "Show crit info"); CatVar crit_key(CV_KEY, "crit_key", "0", "Crit Key"); @@ -192,7 +191,7 @@ bool random_crits_enabled() return tf_weapon_criticals->GetBool(); } -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS void draw() { if (CE_BAD(LOCAL_W)) diff --git a/src/gui/GUI.cpp b/src/gui/GUI.cpp deleted file mode 100755 index 19c5eb1d..00000000 --- a/src/gui/GUI.cpp +++ /dev/null @@ -1,27 +0,0 @@ -/* - * GUI.cpp - * - * Created on: Nov 17, 2017 - * Author: nullifiedcat - */ - -#include "common.hpp" - -namespace gui -{ - -void init() -{ - cmdui::init(); -} - -void update() -{ - cmdui::update(); -} - -void draw() -{ - cmdui::draw(); -} -} diff --git a/src/gui/cmdui/cmdui.cpp b/src/gui/cmdui/cmdui.cpp deleted file mode 100755 index d66c58b2..00000000 --- a/src/gui/cmdui/cmdui.cpp +++ /dev/null @@ -1,29 +0,0 @@ -/* - * cmdui.cpp - * - * Created on: Nov 17, 2017 - * Author: nullifiedcat - */ - -#include "common.hpp" - -namespace gui -{ -namespace cmdui -{ - -bool active = false; - -void init() -{ -} - -void update() -{ -} - -void draw() -{ -} -} -} diff --git a/src/hack.cpp b/src/hack.cpp index 1fb6855d..ddbcdf2a 100644 --- a/src/hack.cpp +++ b/src/hack.cpp @@ -12,6 +12,7 @@ #define TO_STRING(x) STRINGIFY(x) #include "CDumper.hpp" +#include "version.h" /* * Credits to josh33901 aka F1ssi0N for butifel F1Public and Darkstorm 2015 @@ -41,19 +42,19 @@ const std::string &hack::GetType() if (version_set) return version; version = ""; -#if not defined(ENABLE_IPC) +#if not ENABLE_IPC version += " NOIPC"; #endif #if not ENABLE_GUI version += " NOGUI"; #else - version += " IMGUI"; + version += " GUI"; #endif #ifndef DYNAMIC_CLASSES -#ifdef BUILD_GAME - version += " GAME " TO_STRING(BUILD_GAME); +#ifdef GAME_SPECIFIC + version += " GAME " TO_STRING(GAME); #else version += " UNIVERSAL"; #endif @@ -78,7 +79,7 @@ std::stack &hack::command_stack() return stack; } -#if ENABLE_VISUALS == 1 /* Why would we need colored chat stuff in textmode? \ +#if ENABLE_VISUALS /* Why would we need colored chat stuff in textmode? \ */ #define red 184, 56, 59, 255 #define blu 88, 133, 162, 255 @@ -233,25 +234,19 @@ freopen(logname, "w", stderr); free(logname);*/ // Essential files must always exist, except when the game is running in text // mode. -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS { - std::vector essential = { "shaders/v2f-c4f.frag", - "shaders/v2f-c4f.vert", - "shaders/v2f-t2f-c4f.frag", - "shaders/v2f-t2f-c4f.vert", - "shaders/v3f-t2f-c4f.frag", - "shaders/v3f-t2f-c4f.vert", - "menu.json", + std::vector essential = { "menu.json", "fonts/tf2build.ttf" }; for (const auto &s : essential) { std::ifstream exists(DATA_PATH "/" + s, std::ios::in); if (not exists) { - Error("Missing essential file: " DATA_PATH - "/%s\nYou MUST run check-data script to finish " - "installation", + Error(("Missing essential file: " + s + + "/%s\nYou MUST run install-data script to finish " + "installation").c_str(), s.c_str()); } } @@ -277,7 +272,7 @@ free(logname);*/ g_Settings.Init(); EndConVars(); -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS draw::Initialize(); #if ENABLE_GUI @@ -292,7 +287,7 @@ free(logname);*/ InitNetVars(); g_pLocalPlayer = new LocalPlayer(); g_pPlayerResource = new TFPlayerResource(); -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS hooks::panel.Set(g_IPanel); hooks::panel.HookMethod((void *) PaintTraverse_hook, offsets::PaintTraverse()); @@ -310,7 +305,7 @@ free(logname);*/ hooks::clientmode.Set((void *) clientMode); hooks::clientmode.HookMethod((void *) CreateMove_hook, offsets::CreateMove()); -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS hooks::clientmode.HookMethod((void *) OverrideView_hook, offsets::OverrideView()); #endif @@ -324,20 +319,20 @@ free(logname);*/ hooks::clientmode4.Apply(); hooks::client.Set(g_IBaseClient); -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS hooks::client.HookMethod((void *) FrameStageNotify_hook, offsets::FrameStageNotify()); #endif hooks::client.HookMethod((void *) DispatchUserMessage_hook, offsets::DispatchUserMessage()); -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS hooks::vstd.Set((void *) g_pUniformStream); hooks::vstd.HookMethod((void *) RandomInt_hook, offsets::RandomInt()); hooks::vstd.Apply(); #endif -#if ENABLE_NULL_GRAPHICS == 1 +#if ENABLE_NULL_GRAPHICS g_IMaterialSystem->SetInStubMode(true); IF_GAME(IsTF2()) { @@ -359,7 +354,7 @@ free(logname);*/ // hooks::materialsystem.HookMethod(); } #endif -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS hooks::client.HookMethod((void *) IN_KeyEvent_hook, offsets::IN_KeyEvent()); #endif hooks::client.Apply(); @@ -367,18 +362,18 @@ free(logname);*/ hooks::input.HookMethod((void *) GetUserCmd_hook, offsets::GetUserCmd()); hooks::input.Apply(); #ifndef HOOK_DME_DISABLED -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS hooks::modelrender.Set(g_IVModelRender); hooks::modelrender.HookMethod((void *) DrawModelExecute_hook, offsets::DrawModelExecute()); hooks::modelrender.Apply(); -#endif -#endif hooks::enginevgui.Set(g_IEngineVGui); hooks::enginevgui.HookMethod( (void *) Paint_hook, offsets::PlatformOffset(14, offsets::undefined, offsets::undefined)); hooks::enginevgui.Apply(); +#endif +#endif hooks::steamfriends.Set(g_ISteamFriends); hooks::steamfriends.HookMethod((void *) GetFriendPersonaName_hook, offsets::GetFriendPersonaName()); @@ -405,7 +400,7 @@ free(logname);*/ velocity::Init(); playerlist::Load(); -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS InitStrings(); #if ENABLE_GUI @@ -434,7 +429,7 @@ free(logname);*/ hacks::shared::anticheat::Init(); hacks::tf2::healarrow::Init(); -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS #ifndef FEATURE_FIDGET_SPINNER_ENABLED InitSpinner(); logging::Info("Initialized Fidget Spinner"); @@ -474,7 +469,9 @@ void hack::Shutdown() return; hack::shutdown = true; playerlist::Save(); +#if ENABLE_VISUALS DoSDLUnhooking(); +#endif logging::Info("Unregistering convars.."); ConVar_Unregister(); logging::Info("Shutting down killsay..."); diff --git a/src/hacks/Aimbot.cpp b/src/hacks/Aimbot.cpp index d1e23102..56c750b5 100644 --- a/src/hacks/Aimbot.cpp +++ b/src/hacks/Aimbot.cpp @@ -215,7 +215,7 @@ void CreateMove() } } -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS static effect_chams::EffectChams Effectchams; hacks::shared::esp::SetEntityColor(target_entity, colors::pink); Effectchams.SetEntityColor(target_entity, colors::pink); @@ -1150,7 +1150,7 @@ void Reset() projectile_mode = false; } -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS static CatVar fov_draw(CV_SWITCH, "aimbot_fov_draw", "0", "Draw Fov Ring", "Draws a ring to represent your current aimbot fov"); void DrawText() diff --git a/src/hacks/AutoHeal.cpp b/src/hacks/AutoHeal.cpp index 388623b6..18b0b1e4 100644 --- a/src/hacks/AutoHeal.cpp +++ b/src/hacks/AutoHeal.cpp @@ -553,7 +553,7 @@ int HealingPriority(int idx) priority += 50 * (1 - healthp); priority += 10 * (1 - overhealp); } -#if ENABLE_IPC == 1 +#if ENABLE_IPC if (ipc::peer) { if (hacks::shared::followbot::followbot && diff --git a/src/hacks/AutoReflect.cpp b/src/hacks/AutoReflect.cpp index 16315005..23308cce 100755 --- a/src/hacks/AutoReflect.cpp +++ b/src/hacks/AutoReflect.cpp @@ -202,7 +202,7 @@ bool IsEntStickyBomb(CachedEntity *ent) } void Draw() { -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS // Dont draw to screen when reflect is disabled if (!enabled) return; diff --git a/src/hacks/CMakeLists.txt b/src/hacks/CMakeLists.txt new file mode 100644 index 00000000..f8477efe --- /dev/null +++ b/src/hacks/CMakeLists.txt @@ -0,0 +1,40 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/Achievement.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Aimbot.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Announcer.cpp" + "${CMAKE_CURRENT_LIST_DIR}/AntiAim.cpp" + "${CMAKE_CURRENT_LIST_DIR}/AntiBackstab.cpp" + "${CMAKE_CURRENT_LIST_DIR}/AntiCheat.cpp" + "${CMAKE_CURRENT_LIST_DIR}/AntiDisguise.cpp" + "${CMAKE_CURRENT_LIST_DIR}/AutoBackstab.cpp" + "${CMAKE_CURRENT_LIST_DIR}/AutoDeadringer.cpp" + "${CMAKE_CURRENT_LIST_DIR}/AutoDetonator.cpp" + "${CMAKE_CURRENT_LIST_DIR}/AutoEquip.cpp" + "${CMAKE_CURRENT_LIST_DIR}/AutoHeal.cpp" + "${CMAKE_CURRENT_LIST_DIR}/AutoJoin.cpp" + "${CMAKE_CURRENT_LIST_DIR}/AutoReflect.cpp" + "${CMAKE_CURRENT_LIST_DIR}/AutoSticky.cpp" + "${CMAKE_CURRENT_LIST_DIR}/AutoTaunt.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Bunnyhop.cpp" + "${CMAKE_CURRENT_LIST_DIR}/CatBot.cpp" + "${CMAKE_CURRENT_LIST_DIR}/FollowBot.cpp" + "${CMAKE_CURRENT_LIST_DIR}/HealArrows.cpp" + "${CMAKE_CURRENT_LIST_DIR}/KillSay.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Killstreak.cpp" + "${CMAKE_CURRENT_LIST_DIR}/LagExploit.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Misc.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Noisemaker.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Spam.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Trigger.cpp" + "${CMAKE_CURRENT_LIST_DIR}/UberSpam.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Walkbot.cpp") + +if(EnableVisuals) + target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/ESP.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Radar.cpp" + "${CMAKE_CURRENT_LIST_DIR}/SkinChanger.cpp" + "${CMAKE_CURRENT_LIST_DIR}/SpyAlert.cpp") +endif() + +add_subdirectory(ac) \ No newline at end of file diff --git a/src/hacks/CatBot.cpp b/src/hacks/CatBot.cpp index 3150b4fd..23bbc073 100644 --- a/src/hacks/CatBot.cpp +++ b/src/hacks/CatBot.cpp @@ -172,10 +172,12 @@ bool should_ignore_player(CachedEntity *player) return is_a_catbot(player->player_info.friendsID); } +#if ENABLE_IPC void update_ipc_data(ipc::user_data_s &data) { data.ingame.bot_count = count_bots; } +#endif Timer level_init_timer{}; diff --git a/src/hacks/ESP.cpp b/src/hacks/ESP.cpp index 5702a897..43e9f65b 100644 --- a/src/hacks/ESP.cpp +++ b/src/hacks/ESP.cpp @@ -378,7 +378,7 @@ void _FASTCALL emoji(CachedEntity *ent) if (ent->m_Type == ENTITY_PLAYER) { static glez_texture_t textur = - glez_texture_load_png_rgba(DATA_PATH "/res/atlas.png"); + glez_texture_load_png_rgba(DATA_PATH "/textures/atlas.png"); static glez_texture_t idspecific; if (emoji_ok) auto hit = hitboxcache[ent->m_IDX][0]; @@ -403,7 +403,7 @@ void _FASTCALL emoji(CachedEntity *ent) glez_rgba_t white = glez_rgba(255, 255, 255, 255); while (!textur || textur == 4294967295) textur = glez_texture_load_png_rgba(DATA_PATH - "/res/atlas.png"); + "/textures/atlas.png"); player_info_s info; unsigned int steamID; unsigned int steamidarray[32]{}; @@ -416,7 +416,7 @@ void _FASTCALL emoji(CachedEntity *ent) steamID = info.friendsID; if (!idspecific) idspecific = glez_texture_load_png_rgba( - DATA_PATH "/res/idspec.png"); + DATA_PATH "/textures/idspec.png"); if (idspecific && playerlist::AccessData(steamID).state == playerlist::k_EState::CAT) @@ -429,7 +429,7 @@ void _FASTCALL emoji(CachedEntity *ent) { while (!idspecific) idspecific = glez_texture_load_png_rgba( - DATA_PATH "/res/idspec.png"); + DATA_PATH "/textures/idspec.png"); if (idspecific) glez_rect_textured(head_scr.x - size / 2, head_scr.y - size / 2, size, @@ -1173,7 +1173,7 @@ void _FASTCALL ProcessEntity(CachedEntity *ent) AddEntityString(ent, classes[pclass - 1]); } -#if ENABLE_IPC == 1 +#if ENABLE_IPC // ipc bot esp if (show_bot_id && ipc::peer && ent != LOCAL_E) { diff --git a/src/hacks/FollowBot.cpp b/src/hacks/FollowBot.cpp index d4f64bcc..5f9820f0 100644 --- a/src/hacks/FollowBot.cpp +++ b/src/hacks/FollowBot.cpp @@ -257,7 +257,7 @@ void WorldTick() void DrawTick() { -#if TEXTMODE_VAC != 1 +#if ENABLE_VISUALS if (!followbot || !draw_crumb) return; if (breadcrumbs.size() < 2) @@ -281,6 +281,7 @@ void DrawTick() #endif } +#if ENABLE_IPC static CatCommand follow_me("fb_follow_me", "IPC connected bots will follow you", []() { if (!ipc::peer) @@ -317,6 +318,7 @@ static CatCommand ipc::commands::execute_client_cmd, 0, 0); } }); +#endif } } } diff --git a/src/hacks/HealArrows.cpp b/src/hacks/HealArrows.cpp index 621150d1..16374dd1 100755 --- a/src/hacks/HealArrows.cpp +++ b/src/hacks/HealArrows.cpp @@ -118,7 +118,7 @@ void CreateMove() void Draw() { -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS if (healarrow) { if ((g_GlobalVars->curtime - healarrow_time) < float(healarrow_timeout)) diff --git a/src/hacks/LagExploit.cpp b/src/hacks/LagExploit.cpp index bf25dedf..7c6451e5 100644 --- a/src/hacks/LagExploit.cpp +++ b/src/hacks/LagExploit.cpp @@ -547,7 +547,7 @@ void CreateMove() } void Draw() { -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS if (doom && (servertime - nextattack > 0.0f || servertime - nextattack2)) { auto amount = servertime - nextattack; diff --git a/src/hacks/Misc.cpp b/src/hacks/Misc.cpp index 9e67945f..4be81b36 100644 --- a/src/hacks/Misc.cpp +++ b/src/hacks/Misc.cpp @@ -351,7 +351,7 @@ void CreateMove() } } -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS void DrawText() { diff --git a/src/hacks/SkinChanger.cpp b/src/hacks/SkinChanger.cpp index 227e3251..eae1044e 100755 --- a/src/hacks/SkinChanger.cpp +++ b/src/hacks/SkinChanger.cpp @@ -398,7 +398,7 @@ void def_attribute_modifier::Set(int id, float value) logging::Info("Woah there, that's too many! Remove some."); return; } - modifiers.push_back(attribute_s{ id, value }); + modifiers.push_back(attribute_s{ (uint16_t)id, value }); logging::Info("Added new attribute: %i %.2f (%i)", id, value, modifiers.size()); } diff --git a/src/hacks/Walkbot.cpp b/src/hacks/Walkbot.cpp index 27be9238..cdd255fc 100644 --- a/src/hacks/Walkbot.cpp +++ b/src/hacks/Walkbot.cpp @@ -979,7 +979,7 @@ void RecordNode() state::active_node = node; } -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS // Draws a single colored connection between 2 nodes void DrawConnection(index_t a, connection_s &b) diff --git a/src/hacks/ac/CMakeLists.txt b/src/hacks/ac/CMakeLists.txt new file mode 100644 index 00000000..a41b8f5c --- /dev/null +++ b/src/hacks/ac/CMakeLists.txt @@ -0,0 +1,4 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/aimbot.cpp" + "${CMAKE_CURRENT_LIST_DIR}/antiaim.cpp" + "${CMAKE_CURRENT_LIST_DIR}/bhop.cpp") \ No newline at end of file diff --git a/src/hooks.cpp b/src/hooks.cpp index 36a525d5..dfca7408 100755 --- a/src/hooks.cpp +++ b/src/hooks.cpp @@ -79,8 +79,8 @@ void *VMTHook::GetMethod(uint32_t idx) const void VMTHook::HookMethod(ptr_t func, uint32_t idx) { - logging::Info("Hooking method %d of vtable 0x%08x, replacing 0x%08x", idx, - vtable_original, GetMethod(idx)); + logging::Info("Hooking method %d of vtable 0x%08x, replacing 0x%08x with 0x%08x", idx, + vtable_original, GetMethod(idx), func); vtable_hooked[2 + idx] = func; } diff --git a/src/hooks/CMakeLists.txt b/src/hooks/CMakeLists.txt new file mode 100644 index 00000000..7b815ce0 --- /dev/null +++ b/src/hooks/CMakeLists.txt @@ -0,0 +1,11 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/CreateMove.cpp" + "${CMAKE_CURRENT_LIST_DIR}/nographics.cpp" + "${CMAKE_CURRENT_LIST_DIR}/others.cpp") + +if(EnableVisuals) + target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/Paint.cpp" + "${CMAKE_CURRENT_LIST_DIR}/PaintTraverse.cpp" + "${CMAKE_CURRENT_LIST_DIR}/sdl.cpp") +endif() \ No newline at end of file diff --git a/src/hooks/CreateMove.cpp b/src/hooks/CreateMove.cpp index beee24d0..6c045fae 100644 --- a/src/hooks/CreateMove.cpp +++ b/src/hooks/CreateMove.cpp @@ -234,7 +234,7 @@ bool CreateMove_hook(void *thisptr, float inputSample, CUserCmd *cmd) hacks::shared::autojoin::Update(); -#if ENABLE_IPC == 1 +#if ENABLE_IPC static int team_joining_state = 0; static float last_jointeam_try = 0; CachedEntity *found_entity, *ent; @@ -310,7 +310,7 @@ bool CreateMove_hook(void *thisptr, float inputSample, CUserCmd *cmd) UpdateHoovyList(); } g_pLocalPlayer->v_OrigViewangles = cmd->viewangles; -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS { PROF_SECTION(CM_esp); hacks::shared::esp::CreateMove(); diff --git a/src/hooks/Paint.cpp b/src/hooks/Paint.cpp index 4c9e6d7d..86b8729b 100755 --- a/src/hooks/Paint.cpp +++ b/src/hooks/Paint.cpp @@ -65,7 +65,7 @@ void Paint_hook(IEngineVGui *_this, PaintMode_t mode) hack::command_stack().pop(); } } -#if TEXTMODE_STDIN == 1 +#if ENABLE_TEXTMODE_STDIN == 1 static auto last_stdin = std::chrono::system_clock::from_time_t(0); auto ms = std::chrono::duration_cast( std::chrono::system_clock::now() - last_stdin) diff --git a/src/hooks/PaintTraverse.cpp b/src/hooks/PaintTraverse.cpp index 2aad10e3..dbb5e442 100644 --- a/src/hooks/PaintTraverse.cpp +++ b/src/hooks/PaintTraverse.cpp @@ -6,7 +6,10 @@ */ #include "common.hpp" -#include "hack.hpp" + +#if ENABLE_GUI +#include "GUI.h" +#endif CatVar clean_screenshots(CV_SWITCH, "clean_screenshots", "1", "Clean screenshots", @@ -41,7 +44,7 @@ void PaintTraverse_hook(void *_this, unsigned int vp, bool fr, bool ar) static const char *name; static std::string name_s, name_stripped, reason_stripped; -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS if (!textures_loaded) { textures_loaded = true; @@ -159,7 +162,9 @@ void PaintTraverse_hook(void *_this, unsigned int vp, bool fr, bool ar) if (clean_screenshots && g_IEngine->IsTakingScreenshot()) return; +#if ENABLE_GUI g_pGUI->Update(); +#endif PROF_SECTION(PT_active); draw::UpdateWTS(); } diff --git a/src/hooks/others.cpp b/src/hooks/others.cpp index 0719dd9b..0e11dee4 100644 --- a/src/hooks/others.cpp +++ b/src/hooks/others.cpp @@ -6,14 +6,14 @@ */ #include "common.hpp" -#include "ucccccp/ucccccp.hpp" +#include "ucccccp.hpp" #include "hack.hpp" #include "hitrate.hpp" #include "chatlog.hpp" #include "netmessage.hpp" #include -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS static CatVar medal_flip(CV_SWITCH, "medal_flip", "0", "Infinite Medal Flip", ""); @@ -587,7 +587,7 @@ void FireGameEvent_hook(void *_this, IGameEvent *event) original(_this, event); } CatVar nightmode(CV_SWITCH, "nightmode", "0", "Enable nightmode", ""); -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS void FrameStageNotify_hook(void *_this, int stage) { if (nightmode) @@ -718,11 +718,13 @@ static CatVar clean_chat(CV_SWITCH, "clean_chat", "0", "Clean chat", static CatVar dispatch_log(CV_SWITCH, "debug_log_usermessages", "0", "Log dispatched user messages"); std::string clear = ""; -Timer sendmsg{}; -Timer gitgud{}; std::string lastfilter{}; std::string lastname{}; static bool retrun = false; + +static Timer sendmsg{}; +static Timer gitgud{}; + bool DispatchUserMessage_hook(void *_this, int type, bf_read &buf) { if (retrun && gitgud.test_and_set(10000)) @@ -1041,12 +1043,13 @@ void LevelInit_hook(void *_this, const char *newmap) playerlist::Save(); votelogger::antikick_ticks = 0; hacks::shared::lagexploit::bcalled = false; +#if ENABLE_VISUALS typedef bool *(*LoadNamedSkys_Fn)(const char *); uintptr_t addr = - gSignatures.GetEngineSignature("55 89 E5 57 31 FF 56 8D B5 ? ? ? ? 53 " - "81 EC ? ? ? ? C7 85 ? ? ? ? ? ? ? ?"); + gSignatures.GetEngineSignature("55 89 E5 57 31 FF 56 8D B5 ? ? ? ? 53 81 EC 6C 01 00 00"); static LoadNamedSkys_Fn LoadNamedSkys = LoadNamedSkys_Fn(addr); bool succ; + logging::Info("Going to load the skybox"); #ifdef __clang__ asm("movl %1, %%edi; push skynum[(int) skybox_changer]; call %%edi; mov " "%%eax, %0; add %%esp, 4h" @@ -1062,6 +1065,7 @@ void LevelInit_hook(void *_this, const char *newmap) holiday->SetValue(2); else if (holiday->m_nValue == 2) holiday->SetValue(2); +#endif g_IEngine->ClientCmd_Unrestricted("exec cat_matchexec"); hacks::shared::aimbot::Reset(); @@ -1097,7 +1101,7 @@ void LevelShutdown_hook(void *_this) } #endif } -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS int RandomInt_hook(void *_this, int iMinVal, int iMaxVal) { static const RandomInt_t original = diff --git a/src/hooks/sdl.cpp b/src/hooks/sdl.cpp index 0afa74d5..092e7ec6 100755 --- a/src/hooks/sdl.cpp +++ b/src/hooks/sdl.cpp @@ -10,7 +10,7 @@ #include "hooks/hookedmethods.hpp" #include "hack.hpp" -#include +#include #include #include #include diff --git a/src/interfaces.cpp b/src/interfaces.cpp index 15dd99d3..dff030a3 100755 --- a/src/interfaces.cpp +++ b/src/interfaces.cpp @@ -198,7 +198,7 @@ void CreateInterfaces() g_IMaterialSystem = BruteforceInterface( "VMaterialSystem", sharedobj::materialsystem()); -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS g_pUniformStream = **(IUniformRandomStream ***) (gSignatures.GetVstdSignature( "A3 ? ? ? ? C3 89 F6") + diff --git a/src/ipc.cpp b/src/ipc.cpp index afcde677..b5d02af7 100755 --- a/src/ipc.cpp +++ b/src/ipc.cpp @@ -11,7 +11,7 @@ #include "hack.hpp" #include "hitrate.hpp" -#if ENABLE_IPC == 1 +#if ENABLE_IPC namespace ipc { diff --git a/src/logging.cpp b/src/logging.cpp index dffb63f6..49dfba62 100755 --- a/src/logging.cpp +++ b/src/logging.cpp @@ -42,7 +42,7 @@ void logging::Info(const char *fmt, ...) sprintf(result, "%% [%s] %s\n", timeString, buffer); fprintf(logging::handle, "%s", result); fflush(logging::handle); -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS if (g_ICvar) { if (console_logging.convar_parent && console_logging) diff --git a/src/prediction.cpp b/src/prediction.cpp index b77621ae..c01e0405 100755 --- a/src/prediction.cpp +++ b/src/prediction.cpp @@ -79,7 +79,7 @@ void Prediction_CreateMove() } } } -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS void Prediction_PaintTraverse() { if (!debug_enginepred) diff --git a/src/reclasses/CMakeLists.txt b/src/reclasses/CMakeLists.txt new file mode 100644 index 00000000..23e158b6 --- /dev/null +++ b/src/reclasses/CMakeLists.txt @@ -0,0 +1,7 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/C_MannVsMachineStats.cpp" + "${CMAKE_CURRENT_LIST_DIR}/CTFGCClientSystem.cpp" + "${CMAKE_CURRENT_LIST_DIR}/CTFInventoryManager.cpp" + "${CMAKE_CURRENT_LIST_DIR}/CTFPartyClient.cpp" + "${CMAKE_CURRENT_LIST_DIR}/CTFParty.cpp" + "${CMAKE_CURRENT_LIST_DIR}/ITFGroupMatchCriteria.cpp") \ No newline at end of file diff --git a/src/sdk/CMakeLists.txt b/src/sdk/CMakeLists.txt new file mode 100644 index 00000000..0bce3644 --- /dev/null +++ b/src/sdk/CMakeLists.txt @@ -0,0 +1,8 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/checksum_md5.cpp" + "${CMAKE_CURRENT_LIST_DIR}/convar.cpp" + "${CMAKE_CURRENT_LIST_DIR}/HUD.cpp" + "${CMAKE_CURRENT_LIST_DIR}/KeyValues.cpp" + "${CMAKE_CURRENT_LIST_DIR}/MaterialSystemUtil.cpp" + "${CMAKE_CURRENT_LIST_DIR}/tier1.cpp" + "${CMAKE_CURRENT_LIST_DIR}/utlbuffer.cpp") \ No newline at end of file diff --git a/src/sdk/convar.cpp b/src/sdk/convar.cpp index f749880d..16c61ad0 100755 --- a/src/sdk/convar.cpp +++ b/src/sdk/convar.cpp @@ -29,7 +29,6 @@ #define ALLOW_DEVELOPMENT_CVARS #endif -#define Q_snprintf snprintf #include #include diff --git a/src/sharedobj.cpp b/src/sharedobj.cpp index f1d3e6e4..6a9a8447 100755 --- a/src/sharedobj.cpp +++ b/src/sharedobj.cpp @@ -97,7 +97,7 @@ void LoadAllSharedObjects() tier0().Load(); inputsystem().Load(); materialsystem().Load(); -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS vguimatsurface().Load(); vgui2().Load(); studiorender().Load(); @@ -145,7 +145,7 @@ SharedObject &materialsystem() static SharedObject obj("materialsystem.so", true); return obj; } -#if ENABLE_VISUALS == 1 +#if ENABLE_VISUALS SharedObject &vguimatsurface() { static SharedObject obj("vguimatsurface.so", true); diff --git a/src/textmode.cpp b/src/textmode.cpp index 563c511c..3e4c35d0 100755 --- a/src/textmode.cpp +++ b/src/textmode.cpp @@ -7,9 +7,6 @@ #include "common.hpp" -#include -#include - bool *allowSecureServers{ nullptr }; // valve pls no ban @@ -42,19 +39,19 @@ CatCommand fixvac("fixvac", "Lemme in to secure servers", []() { *allowSecureServers = true; }); InitRoutine init([]() { -#if TEXTMODE_STDIN == 1 +#if ENABLE_TEXTMODE_STDIN logging::Info("[TEXTMODE] Setting up input handling"); int flags = fcntl(0, F_GETFL, 0); flags |= O_NONBLOCK; fcntl(0, F_SETFL, flags); logging::Info("[TEXTMODE] stdin is now non-blocking"); #endif -#if TEXTMODE_VAC == 1 +#if ENABLE_VAC_BYPASS EXPOSED_Epic_VACBypass_1337_DoNotSteal_xXx_$1_xXx_MLG(); #endif }); -#if TEXTMODE_STDIN == 1 +#if ENABLE_TEXTMODE_STDIN void UpdateInput() { char buffer[256]; diff --git a/src/velocity.cpp b/src/velocity.cpp index 23f4bd08..4e3b5a11 100755 --- a/src/velocity.cpp +++ b/src/velocity.cpp @@ -14,15 +14,14 @@ namespace velocity EstimateAbsVelocity_t EstimateAbsVelocity{}; -void Init() -{ +void Init() { EstimateAbsVelocity = - (void (*)(IClientEntity *, Vector &)) gSignatures.GetClientSignature( - "55 89 E5 56 53 83 EC 20 8B 5D 08 8B 75 0C E8 ? ? ? ? 39 D8 74 79 " - "0F B6 05 ? ? ? ? 81 C3 B8 02 00 00 C6 05 ? ? ? ? 01 F3 0F 10 05 ? " - "? ? ? F3 0F 11 45 F0 88 45 EC A1 ? ? ? ? 89 45 E8 8D 45 E8 A3 ? ? " - "? ? A1 ? ? ? ? F3 0F 10 40 0C 89 74 24 04 89 1C 24 F3 0F 11 44 24 " - "08 E8 ? ? ? ? 0F B6 45 EC F3 0F 10 45 F0 F3 0F 11 05 ? ? ? ? A2 ? " - "? ? ? 8B 45 E8 A3 ? ? ? ? 83 C4 20 5B 5E 5D C3"); + (void (*)(IClientEntity *, Vector &)) gSignatures.GetClientSignature( + "55 89 E5 56 53 83 EC 20 8B 5D 08 8B 75 0C E8 ? ? ? ? 39 D8 74 79 " + "0F B6 05 ? ? ? ? 81 C3 B8 02 00 00 C6 05 ? ? ? ? 01 F3 0F 10 05 ? " + "? ? ? F3 0F 11 45 F0 88 45 EC A1 ? ? ? ? 89 45 E8 8D 45 E8 A3 ? ? " + "? ? A1 ? ? ? ? F3 0F 10 40 0C 89 74 24 04 89 1C 24 F3 0F 11 44 24 " + "08 E8 ? ? ? ? 0F B6 45 EC F3 0F 10 45 F0 F3 0F 11 05 ? ? ? ? A2 ? " + "? ? ? 8B 45 E8 A3 ? ? ? ? 83 C4 20 5B 5E 5D C3"); } } diff --git a/src/visual/CMakeLists.txt b/src/visual/CMakeLists.txt new file mode 100644 index 00000000..580c2e88 --- /dev/null +++ b/src/visual/CMakeLists.txt @@ -0,0 +1,13 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/atlas.cpp" + "${CMAKE_CURRENT_LIST_DIR}/colors.cpp" + "${CMAKE_CURRENT_LIST_DIR}/drawex.cpp" + "${CMAKE_CURRENT_LIST_DIR}/drawing.cpp" + "${CMAKE_CURRENT_LIST_DIR}/drawmgr.cpp" + "${CMAKE_CURRENT_LIST_DIR}/EffectChams.cpp" + "${CMAKE_CURRENT_LIST_DIR}/EffectGlow.cpp" + "${CMAKE_CURRENT_LIST_DIR}/fidgetspinner.cpp") + +if(EnableGUI) + add_subdirectory(menu) +endif() \ No newline at end of file diff --git a/src/visual/atlas.cpp b/src/visual/atlas.cpp index 974e40ec..d808d824 100755 --- a/src/visual/atlas.cpp +++ b/src/visual/atlas.cpp @@ -5,8 +5,6 @@ * Author: nullifiedcat */ -#if ENABLE_VISUALS == 1 - #include "common.hpp" namespace textures @@ -42,5 +40,3 @@ texture_atlas &atlas() return object; } } - -#endif diff --git a/src/visual/drawex.cpp b/src/visual/drawex.cpp index d82a326b..7b5ccfde 100755 --- a/src/visual/drawex.cpp +++ b/src/visual/drawex.cpp @@ -8,16 +8,16 @@ #include "common.hpp" #include "hack.hpp" -#include +#include #include #include +#if EXTERNAL_DRAWING extern "C" { -#include "visual/xoverlay.h" +#include } - -#define DRAW_XOVERLAY 0 +#endif SDL_GLContext context = nullptr; @@ -62,7 +62,7 @@ bool ready() void initialize() { -#if DRAW_XOVERLAY +#if EXTERNAL_DRAWING int status = xoverlay_init(); xoverlay_draw_begin(); glez_init(xoverlay_library.width, xoverlay_library.height); @@ -156,7 +156,7 @@ void get_string_size(const char *string, font_handle_t &font, float *x, void draw_begin() { PROF_SECTION(DRAWEX_draw_begin); -#if DRAW_XOVERLAY +#if EXTERNAL_DRAWING xoverlay_draw_begin(); #else SDL_GL_MakeCurrent(sdl_current_window, context); @@ -169,7 +169,7 @@ void draw_end() PROF_SECTION(DRAWEX_draw_end); glez_end(); SDL_GL_MakeCurrent(sdl_current_window, nullptr); -#if DRAW_XOVERLAY +#if EXTERNAL_DRAWING xoverlay_draw_end(); #endif } diff --git a/src/visual/drawing.cpp b/src/visual/drawing.cpp index 119a148c..7918fc7a 100755 --- a/src/visual/drawing.cpp +++ b/src/visual/drawing.cpp @@ -5,8 +5,6 @@ * Author: nullifiedcat */ -#if ENABLE_VISUALS == 1 - #include "common.hpp" #include @@ -134,5 +132,3 @@ bool draw::WorldToScreen(const Vector &origin, Vector &screen) } return false; } - -#endif diff --git a/src/visual/drawmgr.cpp b/src/visual/drawmgr.cpp index 6a50cd45..96340e1c 100644 --- a/src/visual/drawmgr.cpp +++ b/src/visual/drawmgr.cpp @@ -27,9 +27,9 @@ void render_cheat_visuals() void BeginCheatVisuals() { -#if RENDERING_ENGINE_OPENGL +/*#if RENDERING_ENGINE_OPENGL std::lock_guard draw_lock(drawing_mutex); -#endif +#endif*/ draw_api::draw_begin(); ResetStrings(); } @@ -45,9 +45,9 @@ CatVar enable_logo(CV_SWITCH, "nullcore_mode_logo", "1", void DrawCheatVisuals() { -#if RENDERING_ENGINE_OPENGL +/*#if RENDERING_ENGINE_OPENGL std::lock_guard draw_lock(drawing_mutex); -#endif +#endif*/ { PROF_SECTION(DRAW_misc); hacks::shared::misc::DrawText(); @@ -144,7 +144,7 @@ void DrawCheatVisuals() PROF_SECTION(PT_spyalert); hacks::tf::spyalert::Draw(); } -#if ENABLE_IPC == 1 +#if ENABLE_IPC IF_GAME(IsTF()) hacks::shared::followbot::DrawTick(); #endif { diff --git a/src/fidgetspinner.cpp b/src/visual/fidgetspinner.cpp similarity index 94% rename from src/fidgetspinner.cpp rename to src/visual/fidgetspinner.cpp index ac5d2997..4d013b3f 100644 --- a/src/fidgetspinner.cpp +++ b/src/visual/fidgetspinner.cpp @@ -5,7 +5,7 @@ * Author: nullifiedcat */ -#include "fidgetspinner.hpp" +#include "visual/fidgetspinner.hpp" #include "common.hpp" #include @@ -93,9 +93,9 @@ void DrawSpinner() const glez_rgba_t color = glez_rgba(255, 255, 255, 255); draw_api::texture_handle_t text = - draw_api::create_texture(DATA_PATH "/res/atlas.png"); + draw_api::create_texture(DATA_PATH "/textures/atlas.png"); while (!text.handle || text.handle == 4294967295) - text = draw_api::create_texture(DATA_PATH "/res/atlas.png"); + text = draw_api::create_texture(DATA_PATH "/textures/atlas.png"); draw_api::draw_rect_textured(draw::width / 2, draw::height / 2, size, size, colors::white, text, 0 + 64 * state, (3 + (v9mode ? 1 : 0)) * 64, 64, 64, angle); diff --git a/src/menu/CBaseContainer.cpp b/src/visual/menu/CBaseContainer.cpp similarity index 99% rename from src/menu/CBaseContainer.cpp rename to src/visual/menu/CBaseContainer.cpp index 5237836a..1ecade33 100755 --- a/src/menu/CBaseContainer.cpp +++ b/src/visual/menu/CBaseContainer.cpp @@ -10,7 +10,6 @@ #include "common.hpp" #include "sdk.hpp" -#if TEXTMODE_VAC != 1 class IMemAlloc; IMemAlloc *g_pMemAlloc = 0; @@ -256,4 +255,3 @@ void CBaseContainer::Update() } CBaseWidget::Update(); } -#endif diff --git a/src/menu/CBaseWidget.cpp b/src/visual/menu/CBaseWidget.cpp similarity index 98% rename from src/menu/CBaseWidget.cpp rename to src/visual/menu/CBaseWidget.cpp index 58011cb3..9b848538 100755 --- a/src/menu/CBaseWidget.cpp +++ b/src/visual/menu/CBaseWidget.cpp @@ -7,7 +7,8 @@ #include "menu/CBaseWidget.h" #include "common.hpp" -#if TEXTMODE_VAC != 1 +#include "GUI.h" + void CBaseWidget::DrawBounds(int x, int y) { if (m_KeyValues->IsEmpty("bounds_color")) @@ -66,4 +67,3 @@ std::pair CBaseWidget::AbsolutePosition() } return result; } -#endif diff --git a/src/menu/CBaseWindow.cpp b/src/visual/menu/CBaseWindow.cpp similarity index 98% rename from src/menu/CBaseWindow.cpp rename to src/visual/menu/CBaseWindow.cpp index 80b0967a..ad2c056a 100755 --- a/src/menu/CBaseWindow.cpp +++ b/src/visual/menu/CBaseWindow.cpp @@ -9,7 +9,6 @@ #include "common.hpp" #include "menu/GUI.h" -#if TEXTMODE_VAC != 1 void CBaseWindow::MoveChildren() { @@ -63,4 +62,3 @@ void CBaseWindow::Draw(int x, int y) NCGUIColor()); CBaseContainer::Draw(x, y); } -#endif diff --git a/src/visual/menu/CMakeLists.txt b/src/visual/menu/CMakeLists.txt new file mode 100644 index 00000000..f5308e1c --- /dev/null +++ b/src/visual/menu/CMakeLists.txt @@ -0,0 +1,10 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/CBaseContainer.cpp" + "${CMAKE_CURRENT_LIST_DIR}/CBaseWidget.cpp" + "${CMAKE_CURRENT_LIST_DIR}/CBaseWindow.cpp" + "${CMAKE_CURRENT_LIST_DIR}/compatibilitylayer.cpp" + "${CMAKE_CURRENT_LIST_DIR}/CTextLabel.cpp" + "${CMAKE_CURRENT_LIST_DIR}/GUI.cpp" + "${CMAKE_CURRENT_LIST_DIR}/IWidget.cpp") + +add_subdirectory(ncc) \ No newline at end of file diff --git a/src/menu/CTextLabel.cpp b/src/visual/menu/CTextLabel.cpp similarity index 99% rename from src/menu/CTextLabel.cpp rename to src/visual/menu/CTextLabel.cpp index 6359754e..2da8fe9e 100755 --- a/src/menu/CTextLabel.cpp +++ b/src/visual/menu/CTextLabel.cpp @@ -9,8 +9,8 @@ #include "common.hpp" #include "sdk.hpp" +#include "GUI.h" -#if TEXTMODE_VAC != 1 std::string WordWrap(std::string &in, int max, unsigned long font) { std::stringstream result, line, wordstream, next; @@ -133,4 +133,3 @@ void CTextLabel::Draw(int x, int y) else draw::String(fonts::MENU, x, y, colorsint::white, 1, GetText()); } -#endif diff --git a/src/menu/GUI.cpp b/src/visual/menu/GUI.cpp similarity index 99% rename from src/menu/GUI.cpp rename to src/visual/menu/GUI.cpp index 0754c629..5c2fa26b 100644 --- a/src/menu/GUI.cpp +++ b/src/visual/menu/GUI.cpp @@ -11,7 +11,6 @@ #include "common.hpp" #include "sdk.hpp" -#if TEXTMODE_VAC != 1 #undef RootWindow void GUIVisibleCallback(IConVar *var, const char *pOldValue, float flOldValue) @@ -239,4 +238,3 @@ bool CatGUI::ConsumesKey(ButtonCode_t key) } CatGUI *g_pGUI = 0; -#endif diff --git a/src/menu/IWidget.cpp b/src/visual/menu/IWidget.cpp similarity index 82% rename from src/menu/IWidget.cpp rename to src/visual/menu/IWidget.cpp index 24c23c8f..f4cda6d1 100755 --- a/src/menu/IWidget.cpp +++ b/src/visual/menu/IWidget.cpp @@ -6,8 +6,7 @@ */ #include "menu/IWidget.h" -#if TEXTMODE_VAC != 1 + IWidget::~IWidget() { } -#endif diff --git a/src/menu/compatibilitylayer.cpp b/src/visual/menu/compatibilitylayer.cpp similarity index 98% rename from src/menu/compatibilitylayer.cpp rename to src/visual/menu/compatibilitylayer.cpp index ae79fdb9..b6a4300b 100755 --- a/src/menu/compatibilitylayer.cpp +++ b/src/visual/menu/compatibilitylayer.cpp @@ -1,6 +1,5 @@ #include "common.hpp" -#if TEXTMODE_VAC != 1 namespace fonts { unsigned long MENU = 0; @@ -74,7 +73,7 @@ void draw::OutlineRect(int x, int y, int w, int h, int color) g_ISurface->DrawOutlinedRect(x, y, x + w, y + h); } -void draw::GetStringLength(unsigned long font, char *string, int &length, +void draw::GetStringLength(unsigned long font, const char *string, int &length, int &height) { wchar_t buf[512]; @@ -186,4 +185,3 @@ std::pair draw::GetStringLength(unsigned long font, draw::GetStringLength(font, (char *) string.c_str(), l, h); return std::make_pair(l, h); } -#endif diff --git a/src/visual/menu/ncc/CMakeLists.txt b/src/visual/menu/ncc/CMakeLists.txt new file mode 100644 index 00000000..13886b3d --- /dev/null +++ b/src/visual/menu/ncc/CMakeLists.txt @@ -0,0 +1,11 @@ +target_sources(cathook PRIVATE + "${CMAKE_CURRENT_LIST_DIR}/Item.cpp" + "${CMAKE_CURRENT_LIST_DIR}/ItemSublist.cpp" + "${CMAKE_CURRENT_LIST_DIR}/ItemTitle.cpp" + "${CMAKE_CURRENT_LIST_DIR}/ItemVariable.cpp" + "${CMAKE_CURRENT_LIST_DIR}/List.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Menu.cpp" + "${CMAKE_CURRENT_LIST_DIR}/PlayerList.cpp" + "${CMAKE_CURRENT_LIST_DIR}/PlayerListEntry.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Root.cpp" + "${CMAKE_CURRENT_LIST_DIR}/Tooltip.cpp") \ No newline at end of file diff --git a/src/menu/ncc/Item.cpp b/src/visual/menu/ncc/Item.cpp similarity index 97% rename from src/menu/ncc/Item.cpp rename to src/visual/menu/ncc/Item.cpp index a8dd7bee..5864cb89 100755 --- a/src/menu/ncc/Item.cpp +++ b/src/visual/menu/ncc/Item.cpp @@ -9,7 +9,6 @@ #include "menu/ncc/Menu.hpp" #include "common.hpp" -#if TEXTMODE_VAC != 1 namespace menu { namespace ncc @@ -49,4 +48,3 @@ void Item::HandleCustomEvent(KeyValues *event) } } } -#endif diff --git a/src/menu/ncc/ItemSublist.cpp b/src/visual/menu/ncc/ItemSublist.cpp similarity index 98% rename from src/menu/ncc/ItemSublist.cpp rename to src/visual/menu/ncc/ItemSublist.cpp index 12e5f2a0..f3e269ff 100755 --- a/src/menu/ncc/ItemSublist.cpp +++ b/src/visual/menu/ncc/ItemSublist.cpp @@ -9,7 +9,6 @@ #include "menu/ncc/Menu.hpp" #include "common.hpp" -#if TEXTMODE_VAC != 1 namespace menu { namespace ncc @@ -97,4 +96,3 @@ void ItemSublist::OnMouseLeave() } } } -#endif diff --git a/src/menu/ncc/ItemTitle.cpp b/src/visual/menu/ncc/ItemTitle.cpp similarity index 96% rename from src/menu/ncc/ItemTitle.cpp rename to src/visual/menu/ncc/ItemTitle.cpp index 3fde459e..b8ae6ce4 100755 --- a/src/menu/ncc/ItemTitle.cpp +++ b/src/visual/menu/ncc/ItemTitle.cpp @@ -9,7 +9,6 @@ #include "menu/ncc/Menu.hpp" #include "common.hpp" -#if TEXTMODE_VAC != 1 namespace menu { namespace ncc @@ -32,4 +31,3 @@ void ItemTitle::Draw(int x, int y) } } } -#endif diff --git a/src/menu/ncc/ItemVariable.cpp b/src/visual/menu/ncc/ItemVariable.cpp similarity index 99% rename from src/menu/ncc/ItemVariable.cpp rename to src/visual/menu/ncc/ItemVariable.cpp index 4d6a5093..190ae653 100644 --- a/src/menu/ncc/ItemVariable.cpp +++ b/src/visual/menu/ncc/ItemVariable.cpp @@ -10,7 +10,6 @@ #include "menu/ncc/Menu.hpp" #include "common.hpp" -#if TEXTMODE_VAC != 1 namespace menu { namespace ncc @@ -245,4 +244,3 @@ void ItemVariable::Draw(int x, int y) } } } -#endif diff --git a/src/menu/ncc/List.cpp b/src/visual/menu/ncc/List.cpp similarity index 99% rename from src/menu/ncc/List.cpp rename to src/visual/menu/ncc/List.cpp index 6a5c23b6..deccf5b5 100755 --- a/src/menu/ncc/List.cpp +++ b/src/visual/menu/ncc/List.cpp @@ -13,7 +13,6 @@ #include "menu/ncc/ItemSublist.hpp" #include "common.hpp" -#if TEXTMODE_VAC != 1 namespace menu { namespace ncc @@ -347,4 +346,3 @@ void List::MoveChildren() } } } -#endif diff --git a/src/menu/ncc/Menu.cpp b/src/visual/menu/ncc/Menu.cpp similarity index 99% rename from src/menu/ncc/Menu.cpp rename to src/visual/menu/ncc/Menu.cpp index 3c644f27..9d26dd5b 100644 --- a/src/menu/ncc/Menu.cpp +++ b/src/visual/menu/ncc/Menu.cpp @@ -12,7 +12,6 @@ #include "menu/ncc/ItemSublist.hpp" #include "menu/ncc/Tooltip.hpp" -#if TEXTMODE_VAC != 1 namespace menu { namespace ncc @@ -783,4 +782,3 @@ List &MainList() } } } -#endif diff --git a/src/menu/ncc/PlayerList.cpp b/src/visual/menu/ncc/PlayerList.cpp similarity index 98% rename from src/menu/ncc/PlayerList.cpp rename to src/visual/menu/ncc/PlayerList.cpp index 7b779ea3..2419f50e 100755 --- a/src/menu/ncc/PlayerList.cpp +++ b/src/visual/menu/ncc/PlayerList.cpp @@ -6,7 +6,6 @@ */ #include "menu/ncc/Menu.hpp" -#if TEXTMODE_VAC != 1 namespace menu { namespace ncc @@ -91,4 +90,3 @@ void PlayerList::MoveChildren() } } } -#endif diff --git a/src/menu/ncc/PlayerListEntry.cpp b/src/visual/menu/ncc/PlayerListEntry.cpp similarity index 99% rename from src/menu/ncc/PlayerListEntry.cpp rename to src/visual/menu/ncc/PlayerListEntry.cpp index 1660e5d8..28f265e8 100755 --- a/src/menu/ncc/PlayerListEntry.cpp +++ b/src/visual/menu/ncc/PlayerListEntry.cpp @@ -7,7 +7,6 @@ #include "menu/ncc/PlayerListEntry.hpp" #include "helpers.hpp" -#if TEXTMODE_VAC != 1 namespace menu { namespace ncc @@ -307,4 +306,3 @@ void SubState::OnKeyPress(ButtonCode_t key, bool repeat) } } } -#endif diff --git a/src/menu/ncc/Root.cpp b/src/visual/menu/ncc/Root.cpp similarity index 97% rename from src/menu/ncc/Root.cpp rename to src/visual/menu/ncc/Root.cpp index 8f31622e..09ab8d4a 100755 --- a/src/menu/ncc/Root.cpp +++ b/src/visual/menu/ncc/Root.cpp @@ -9,7 +9,6 @@ #include "menu/ncc/Menu.hpp" #include "menu/ncc/Tooltip.hpp" #include "common.hpp" -#if TEXTMODE_VAC != 1 namespace menu { namespace ncc @@ -57,4 +56,3 @@ void Root::OnKeyPress(ButtonCode_t key, bool repeat) } } } -#endif diff --git a/src/menu/ncc/Tooltip.cpp b/src/visual/menu/ncc/Tooltip.cpp similarity index 97% rename from src/menu/ncc/Tooltip.cpp rename to src/visual/menu/ncc/Tooltip.cpp index 7990b801..7c0264ca 100755 --- a/src/menu/ncc/Tooltip.cpp +++ b/src/visual/menu/ncc/Tooltip.cpp @@ -8,7 +8,7 @@ #include "menu/ncc/Tooltip.hpp" #include "menu/CTextLabel.h" #include "common.hpp" -#if TEXTMODE_VAC != 1 +#include "GUI.h" namespace menu { namespace ncc @@ -56,4 +56,3 @@ void Tooltip::Draw(int x, int y) } } } -#endif