Switec to cmake/vs code, fixed issue with windows 7
This commit is contained in:
parent
68e63a7ccb
commit
e07ed53620
27
.github/workflows/msbuild.yml
vendored
27
.github/workflows/msbuild.yml
vendored
@ -1,27 +0,0 @@
|
|||||||
name: MSBuild
|
|
||||||
|
|
||||||
on: [push]
|
|
||||||
|
|
||||||
env:
|
|
||||||
# Path to the solution file relative to the root of the project.
|
|
||||||
SOLUTION_FILE_PATH: .
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: windows-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Add MSBuild to PATH
|
|
||||||
uses: microsoft/setup-msbuild@v1
|
|
||||||
|
|
||||||
- name: Restore NuGet packages
|
|
||||||
working-directory: ${{env.GITHUB_WORKSPACE}}
|
|
||||||
run: nuget restore ${{env.SOLUTION_FILE_PATH}}
|
|
||||||
|
|
||||||
- name: Build
|
|
||||||
working-directory: ${{env.GITHUB_WORKSPACE}}
|
|
||||||
# Add additional options to the MSBuild command line here (like platform or verbosity level).
|
|
||||||
# See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
|
|
||||||
run: msbuild /m /p:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}}
|
|
11
.vscode/settings.json
vendored
Normal file
11
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools",
|
||||||
|
"files.associations": {
|
||||||
|
"iosfwd": "cpp",
|
||||||
|
"xlocbuf": "cpp",
|
||||||
|
"filesystem": "cpp",
|
||||||
|
"xlocale": "cpp",
|
||||||
|
"xstring": "cpp",
|
||||||
|
"xutility": "cpp"
|
||||||
|
}
|
||||||
|
}
|
@ -1,22 +0,0 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio 14
|
|
||||||
VisualStudioVersion = 14.0.25420.1
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CheatMenu", "CheatMenu\CheatMenu.vcxproj.vcxproj", "{B212DDA4-2A8E-45B2-914D-7BEEB31D06B1}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
GTASA Release|x86 = GTASA Release|x86
|
|
||||||
GTASA zDebug|x86 = GTASA zDebug|x86
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{B212DDA4-2A8E-45B2-914D-7BEEB31D06B1}.GTASA Release|x86.ActiveCfg = GTASA Release|Win32
|
|
||||||
{B212DDA4-2A8E-45B2-914D-7BEEB31D06B1}.GTASA Release|x86.Build.0 = GTASA Release|Win32
|
|
||||||
{B212DDA4-2A8E-45B2-914D-7BEEB31D06B1}.GTASA zDebug|x86.ActiveCfg = GTASA zDebug|Win32
|
|
||||||
{B212DDA4-2A8E-45B2-914D-7BEEB31D06B1}.GTASA zDebug|x86.Build.0 = GTASA zDebug|Win32
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
|
||||||
HideSolutionNode = FALSE
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
@ -1,72 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="include\imgui\imgui.cpp">
|
|
||||||
<Filter>include\imgui</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="include\imgui\imgui_demo.cpp">
|
|
||||||
<Filter>include\imgui</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="include\imgui\imgui_draw.cpp">
|
|
||||||
<Filter>include\imgui</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="include\imgui\imgui_impl_dx9.cpp">
|
|
||||||
<Filter>include\imgui</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="include\imgui\imgui_impl_win32.cpp">
|
|
||||||
<Filter>include\imgui</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="include\imgui\imgui_widgets.cpp">
|
|
||||||
<Filter>include\imgui</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CheatMenu.cpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="include\imgui\imconfig.h">
|
|
||||||
<Filter>include\imgui</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="include\imgui\imgui.h">
|
|
||||||
<Filter>include\imgui</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="include\imgui\imgui_impl_dx9.h">
|
|
||||||
<Filter>include\imgui</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="include\imgui\imgui_impl_win32.h">
|
|
||||||
<Filter>include\imgui</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="include\imgui\imgui_internal.h">
|
|
||||||
<Filter>include\imgui</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="include\imgui\imstb_rectpack.h">
|
|
||||||
<Filter>include\imgui</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="include\imgui\imstb_textedit.h">
|
|
||||||
<Filter>include\imgui</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="include\imgui\imstb_truetype.h">
|
|
||||||
<Filter>include\imgui</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="include\detours.h">
|
|
||||||
<Filter>include</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="CheatMenu.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="include">
|
|
||||||
<UniqueIdentifier>{76d7c5f4-7966-4299-babe-1441756fd761}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
<Filter Include="include\imgui">
|
|
||||||
<UniqueIdentifier>{b4b37f77-034a-404c-9ec1-8fcec9d1052e}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Library Include="include\detours.lib">
|
|
||||||
<Filter>include</Filter>
|
|
||||||
</Library>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="include\detours.pdb">
|
|
||||||
<Filter>include</Filter>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
@ -1,226 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="GTASA Release|Win32">
|
|
||||||
<Configuration>GTASA Release</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="GTASA zDebug|Win32">
|
|
||||||
<Configuration>GTASA zDebug</Configuration>
|
|
||||||
<Platform>Win32</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{B212DDA4-2A8E-45B2-914D-7BEEB31D06B1}</ProjectGuid>
|
|
||||||
<IgnoreWarnCompileDuplicatedFilename>true</IgnoreWarnCompileDuplicatedFilename>
|
|
||||||
<Keyword>Win32Proj</Keyword>
|
|
||||||
<RootNamespace>CheatMenu</RootNamespace>
|
|
||||||
<ProjectName>CheatMenu</ProjectName>
|
|
||||||
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='GTASA Release|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>false</UseDebugLibraries>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
<PlatformToolset>v140</PlatformToolset>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='GTASA zDebug|Win32'" Label="Configuration">
|
|
||||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
||||||
<UseDebugLibraries>true</UseDebugLibraries>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
<PlatformToolset>v140</PlatformToolset>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='GTASA Release|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='GTASA zDebug|Win32'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='GTASA Release|Win32'">
|
|
||||||
<OutDir>F:\GTASanAndreas\</OutDir>
|
|
||||||
<IntDir>$(ProjectDir).obj\GTASA\Release\</IntDir>
|
|
||||||
<TargetExt>.asi</TargetExt>
|
|
||||||
<IncludePath>$(IncludePath);$(DIRECTX9_SDK_DIR)\Include\</IncludePath>
|
|
||||||
<LibraryPath>$(LibraryPath);$(DIRECTX9_SDK_DIR)\Lib\x86\</LibraryPath>
|
|
||||||
<TargetName>$(ProjectName)</TargetName>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='GTASA zDebug|Win32'">
|
|
||||||
<OutDir>F:\GTASanAndreas\</OutDir>
|
|
||||||
<IntDir>$(ProjectDir).obj\GTASA\Debug\</IntDir>
|
|
||||||
<TargetName>$(ProjectName)</TargetName>
|
|
||||||
<TargetExt>.asi</TargetExt>
|
|
||||||
<IncludePath>$(IncludePath);$(DIRECTX9_SDK_DIR)\Include\</IncludePath>
|
|
||||||
<LibraryPath>$(LibraryPath);$(DIRECTX9_SDK_DIR)\Lib\x86\</LibraryPath>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='GTASA Release|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<Optimization>MaxSpeed</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<SDLCheck>false</SDLCheck>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<AdditionalIncludeDirectories>$(PLUGIN_SDK_DIR)\plugin_sa\;$(PLUGIN_SDK_DIR)\plugin_sa\game_sa\;$(PLUGIN_SDK_DIR)\shared\;$(PLUGIN_SDK_DIR)\shared\game\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>_NDEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS;GTASA;GTAGAME_NAME="San Andreas";GTAGAME_ABBR="SA";GTAGAME_ABBRLOW="sa";GTAGAME_PROTAGONISTNAME="CJ";GTAGAME_CITYNAME="San Andreas";_LA_SUPPORT;_DX9_SDK_INSTALLED;PLUGIN_SGV_10US;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
<GenerateDebugInformation>No</GenerateDebugInformation>
|
|
||||||
<LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
|
||||||
<AdditionalLibraryDirectories>$(PLUGIN_SDK_DIR)\output\lib\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
<AdditionalDependencies>plugin.lib;d3d9.lib;d3dx9.lib;d3d11.lib;d3dx11.lib;$(ProjectDir)external\kiero\minhook\lib\libMinHook-x86-v140-mt.lib;$(ProjectDir)external\kiero\minhook\lib\libMinHook-x86-v140-md.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
|
|
||||||
</Link>
|
|
||||||
<PreBuildEvent>
|
|
||||||
<Command>taskkill /f /fi "imagename eq gta_sa.exe"</Command>
|
|
||||||
</PreBuildEvent>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='GTASA zDebug|Win32'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<SDLCheck>false</SDLCheck>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
||||||
<AdditionalIncludeDirectories>$(PLUGIN_SDK_DIR)\plugin_sa\;$(PLUGIN_SDK_DIR)\plugin_sa\game_sa\;$(PLUGIN_SDK_DIR)\shared\;$(PLUGIN_SDK_DIR)\shared\game\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
||||||
<PreprocessorDefinitions>_DEBUG;_CRT_SECURE_NO_WARNINGS;_CRT_NON_CONFORMING_SWPRINTFS;GTASA;GTAGAME_NAME="San Andreas";GTAGAME_ABBR="SA";GTAGAME_ABBRLOW="sa";GTAGAME_PROTAGONISTNAME="CJ";GTAGAME_CITYNAME="San Andreas";_LA_SUPPORT;_DX9_SDK_INSTALLED;PLUGIN_SGV_10US;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
||||||
<LanguageStandard>stdcpplatest</LanguageStandard>
|
|
||||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<GenerateDebugInformation>Debug</GenerateDebugInformation>
|
|
||||||
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
|
|
||||||
<AdditionalLibraryDirectories>$(PLUGIN_SDK_DIR)\output\lib\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
||||||
<AdditionalDependencies>plugin_d.lib;d3d9.lib;d3dx9.lib;d3d11.lib;d3dx11.lib;$(ProjectDir)external\kiero\minhook\lib\libMinHook-x86-v140-mtd.lib;$(ProjectDir)external\kiero\minhook\lib\libMinHook-x86-v140-mdd.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
||||||
<SubSystem>Windows</SubSystem>
|
|
||||||
</Link>
|
|
||||||
<PreBuildEvent>
|
|
||||||
<Command>taskkill /f /fi "imagename eq gta_sa.exe"</Command>
|
|
||||||
</PreBuildEvent>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="Animation.cpp" />
|
|
||||||
<ClCompile Include="CustomWidgets.cpp" />
|
|
||||||
<ClCompile Include="external\imgui\imgui_impl_dx11.cpp">
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA zDebug|Win32'">NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA Release|Win32'">NotUsing</PrecompiledHeader>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="external\kiero\kiero.cpp">
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA zDebug|Win32'">NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA Release|Win32'">NotUsing</PrecompiledHeader>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="Paint.cpp" />
|
|
||||||
<ClCompile Include="Events.cpp" />
|
|
||||||
<ClCompile Include="external\moon\texture_manager.cpp">
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA zDebug|Win32'">NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA Release|Win32'">NotUsing</PrecompiledHeader>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="external\moon\vehicle_renderer.cpp">
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA zDebug|Win32'">NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA Release|Win32'">NotUsing</PrecompiledHeader>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="Game.cpp" />
|
|
||||||
<ClCompile Include="Hook.cpp" />
|
|
||||||
<ClCompile Include="Json.cpp" />
|
|
||||||
<ClCompile Include="Menu.cpp" />
|
|
||||||
<ClCompile Include="NeonAPI.cpp" />
|
|
||||||
<ClCompile Include="Ped.cpp" />
|
|
||||||
<ClCompile Include="Player.cpp" />
|
|
||||||
<ClCompile Include="Teleport.cpp" />
|
|
||||||
<ClCompile Include="Ui.cpp" />
|
|
||||||
<ClCompile Include="external\imgui\imgui.cpp">
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA zDebug|Win32'">NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA Release|Win32'">NotUsing</PrecompiledHeader>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="external\imgui\imgui_demo.cpp">
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA zDebug|Win32'">NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA Release|Win32'">NotUsing</PrecompiledHeader>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="external\imgui\imgui_draw.cpp">
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA zDebug|Win32'">NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA Release|Win32'">NotUsing</PrecompiledHeader>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="external\imgui\imgui_impl_dx9.cpp">
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA zDebug|Win32'">NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA Release|Win32'">NotUsing</PrecompiledHeader>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="external\imgui\imgui_impl_win32.cpp">
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA zDebug|Win32'">NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA Release|Win32'">NotUsing</PrecompiledHeader>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="external\imgui\imgui_widgets.cpp">
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA zDebug|Win32'">NotUsing</PrecompiledHeader>
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA Release|Win32'">NotUsing</PrecompiledHeader>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="CheatMenu.cpp">
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA zDebug|Win32'">Use</PrecompiledHeader>
|
|
||||||
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='GTASA zDebug|Win32'">pch.h</PrecompiledHeaderFile>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="pch.cpp">
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA zDebug|Win32'">Create</PrecompiledHeader>
|
|
||||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='GTASA Release|Win32'">Create</PrecompiledHeader>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="Util.cpp" />
|
|
||||||
<ClCompile Include="Vehicle.cpp" />
|
|
||||||
<ClCompile Include="Visual.cpp" />
|
|
||||||
<ClCompile Include="Weapon.cpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="CustomWidgets.h" />
|
|
||||||
<ClInclude Include="Events.h" />
|
|
||||||
<ClInclude Include="Animation.h" />
|
|
||||||
<ClInclude Include="external\imgui\imgui_impl_dx11.h" />
|
|
||||||
<ClInclude Include="external\imgui\stb_image.h" />
|
|
||||||
<ClInclude Include="external\json.hpp" />
|
|
||||||
<ClInclude Include="external\kiero\kiero.h" />
|
|
||||||
<ClInclude Include="external\kiero\minhook\include\MinHook.h" />
|
|
||||||
<ClInclude Include="external\moon\pool_object_extender.h" />
|
|
||||||
<ClInclude Include="external\moon\texture_manager.h" />
|
|
||||||
<ClInclude Include="external\moon\vehicle_renderer.h" />
|
|
||||||
<ClInclude Include="Game.h" />
|
|
||||||
<ClInclude Include="Hook.h" />
|
|
||||||
<ClInclude Include="Json.h" />
|
|
||||||
<ClInclude Include="Menu.h" />
|
|
||||||
<ClInclude Include="NeonAPI.h" />
|
|
||||||
<ClInclude Include="Paint.h" />
|
|
||||||
<ClInclude Include="Ped.h" />
|
|
||||||
<ClInclude Include="Player.h" />
|
|
||||||
<ClInclude Include="Teleport.h" />
|
|
||||||
<ClInclude Include="Ui.h" />
|
|
||||||
<ClInclude Include="external\imgui\imconfig.h" />
|
|
||||||
<ClInclude Include="external\imgui\imgui.h" />
|
|
||||||
<ClInclude Include="external\imgui\imgui_impl_dx9.h" />
|
|
||||||
<ClInclude Include="external\imgui\imgui_impl_win32.h" />
|
|
||||||
<ClInclude Include="external\imgui\imgui_internal.h" />
|
|
||||||
<ClInclude Include="external\imgui\imstb_rectpack.h" />
|
|
||||||
<ClInclude Include="external\imgui\imstb_textedit.h" />
|
|
||||||
<ClInclude Include="external\imgui\imstb_truetype.h" />
|
|
||||||
<ClInclude Include="CheatMenu.h" />
|
|
||||||
<ClInclude Include="pch.h" />
|
|
||||||
<ClInclude Include="Util.h" />
|
|
||||||
<ClInclude Include="Vehicle.h" />
|
|
||||||
<ClInclude Include="Visual.h" />
|
|
||||||
<ClInclude Include="VKeys.h" />
|
|
||||||
<ClInclude Include="Weapon.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Library Include="external\kiero\minhook\lib\libMinHook-x86-v140-md.lib" />
|
|
||||||
<Library Include="external\kiero\minhook\lib\libMinHook-x86-v140-mdd.lib" />
|
|
||||||
<Library Include="external\kiero\minhook\lib\libMinHook-x86-v140-mt.lib" />
|
|
||||||
<Library Include="external\kiero\minhook\lib\libMinHook-x86-v140-mtd.lib" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
@ -1,111 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="CheatMenu.cpp" />
|
|
||||||
<ClCompile Include="external\imgui\imgui_widgets.cpp">
|
|
||||||
<Filter>external</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="external\imgui\imgui.cpp">
|
|
||||||
<Filter>external</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="external\imgui\imgui_demo.cpp">
|
|
||||||
<Filter>external</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="external\imgui\imgui_draw.cpp">
|
|
||||||
<Filter>external</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="external\imgui\imgui_impl_dx9.cpp">
|
|
||||||
<Filter>external</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="external\imgui\imgui_impl_win32.cpp">
|
|
||||||
<Filter>external</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="pch.cpp" />
|
|
||||||
<ClCompile Include="Animation.cpp" />
|
|
||||||
<ClCompile Include="Teleport.cpp" />
|
|
||||||
<ClCompile Include="Json.cpp" />
|
|
||||||
<ClCompile Include="Ui.cpp" />
|
|
||||||
<ClCompile Include="Player.cpp" />
|
|
||||||
<ClCompile Include="Util.cpp" />
|
|
||||||
<ClCompile Include="Ped.cpp" />
|
|
||||||
<ClCompile Include="Weapon.cpp" />
|
|
||||||
<ClCompile Include="Visual.cpp" />
|
|
||||||
<ClCompile Include="Game.cpp" />
|
|
||||||
<ClCompile Include="Menu.cpp" />
|
|
||||||
<ClCompile Include="Hook.cpp" />
|
|
||||||
<ClCompile Include="Vehicle.cpp" />
|
|
||||||
<ClCompile Include="NeonAPI.cpp" />
|
|
||||||
<ClCompile Include="Events.cpp" />
|
|
||||||
<ClCompile Include="external\moon\texture_manager.cpp" />
|
|
||||||
<ClCompile Include="external\moon\vehicle_renderer.cpp" />
|
|
||||||
<ClCompile Include="Paint.cpp" />
|
|
||||||
<ClCompile Include="external\kiero\kiero.cpp" />
|
|
||||||
<ClCompile Include="external\imgui\imgui_impl_dx11.cpp" />
|
|
||||||
<ClCompile Include="CustomWidgets.cpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClInclude Include="CheatMenu.h" />
|
|
||||||
<ClInclude Include="pch.h" />
|
|
||||||
<ClInclude Include="external\imgui\imstb_truetype.h">
|
|
||||||
<Filter>external</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="external\imgui\imconfig.h">
|
|
||||||
<Filter>external</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="external\imgui\imgui.h">
|
|
||||||
<Filter>external</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="external\imgui\imgui_impl_dx9.h">
|
|
||||||
<Filter>external</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="external\imgui\imgui_impl_win32.h">
|
|
||||||
<Filter>external</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="external\imgui\imgui_internal.h">
|
|
||||||
<Filter>external</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="external\imgui\imstb_rectpack.h">
|
|
||||||
<Filter>external</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="external\imgui\imstb_textedit.h">
|
|
||||||
<Filter>external</Filter>
|
|
||||||
</ClInclude>
|
|
||||||
<ClInclude Include="Animation.h" />
|
|
||||||
<ClInclude Include="Teleport.h" />
|
|
||||||
<ClInclude Include="Json.h" />
|
|
||||||
<ClInclude Include="Ui.h" />
|
|
||||||
<ClInclude Include="VKeys.h" />
|
|
||||||
<ClInclude Include="Player.h" />
|
|
||||||
<ClInclude Include="Util.h" />
|
|
||||||
<ClInclude Include="Ped.h" />
|
|
||||||
<ClInclude Include="Weapon.h" />
|
|
||||||
<ClInclude Include="Visual.h" />
|
|
||||||
<ClInclude Include="Game.h" />
|
|
||||||
<ClInclude Include="Menu.h" />
|
|
||||||
<ClInclude Include="Hook.h" />
|
|
||||||
<ClInclude Include="Vehicle.h" />
|
|
||||||
<ClInclude Include="NeonAPI.h" />
|
|
||||||
<ClInclude Include="Events.h" />
|
|
||||||
<ClInclude Include="external\json.hpp" />
|
|
||||||
<ClInclude Include="external\moon\pool_object_extender.h" />
|
|
||||||
<ClInclude Include="external\moon\texture_manager.h" />
|
|
||||||
<ClInclude Include="external\moon\vehicle_renderer.h" />
|
|
||||||
<ClInclude Include="Paint.h" />
|
|
||||||
<ClInclude Include="external\kiero\kiero.h" />
|
|
||||||
<ClInclude Include="external\kiero\minhook\include\MinHook.h" />
|
|
||||||
<ClInclude Include="external\imgui\imgui_impl_dx11.h" />
|
|
||||||
<ClInclude Include="external\imgui\stb_image.h" />
|
|
||||||
<ClInclude Include="CustomWidgets.h" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Filter Include="external">
|
|
||||||
<UniqueIdentifier>{f1569096-fe99-4d5d-871f-c0e55624f9d4}</UniqueIdentifier>
|
|
||||||
</Filter>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Library Include="external\kiero\minhook\lib\libMinHook-x86-v140-md.lib" />
|
|
||||||
<Library Include="external\kiero\minhook\lib\libMinHook-x86-v140-mdd.lib" />
|
|
||||||
<Library Include="external\kiero\minhook\lib\libMinHook-x86-v140-mt.lib" />
|
|
||||||
<Library Include="external\kiero\minhook\lib\libMinHook-x86-v140-mtd.lib" />
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<PropertyGroup>
|
|
||||||
<ShowAllFiles>true</ShowAllFiles>
|
|
||||||
</PropertyGroup>
|
|
||||||
</Project>
|
|
757
CheatMenu/Ui.cpp
757
CheatMenu/Ui.cpp
@ -1,757 +0,0 @@
|
|||||||
#include "pch.h"
|
|
||||||
#include "Ui.h"
|
|
||||||
#include "CustomWidgets.h"
|
|
||||||
|
|
||||||
std::string Ui::current_hotkey = "";
|
|
||||||
|
|
||||||
static Ui::JsonPopUpData json_popup;
|
|
||||||
static Ui::ImgPopUpData img_popup;
|
|
||||||
|
|
||||||
bool Ui::ListBox(const char* label, std::vector<std::string>& all_items, int& selected)
|
|
||||||
{
|
|
||||||
bool rtn = false;
|
|
||||||
if (ImGui::BeginCombo(label, all_items[selected].c_str()))
|
|
||||||
{
|
|
||||||
for (size_t index = 0; index < all_items.size(); index++)
|
|
||||||
{
|
|
||||||
if (selected != index)
|
|
||||||
{
|
|
||||||
if (ImGui::MenuItem(all_items[index].c_str()))
|
|
||||||
{
|
|
||||||
selected = index;
|
|
||||||
rtn = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ImGui::EndCombo();
|
|
||||||
}
|
|
||||||
return rtn;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Ui::ListBoxStr(const char* label, std::vector<std::string>& all_items, std::string& selected)
|
|
||||||
{
|
|
||||||
bool rtn = false;
|
|
||||||
if (ImGui::BeginCombo(label, selected.c_str()))
|
|
||||||
{
|
|
||||||
for (std::string current_item : all_items)
|
|
||||||
{
|
|
||||||
if (current_item != label)
|
|
||||||
{
|
|
||||||
if (ImGui::MenuItem(current_item.c_str()))
|
|
||||||
{
|
|
||||||
selected = current_item;
|
|
||||||
rtn = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ImGui::EndCombo();
|
|
||||||
}
|
|
||||||
|
|
||||||
return rtn;
|
|
||||||
}
|
|
||||||
|
|
||||||
ImVec2 Ui::GetSize(short count,bool spacing)
|
|
||||||
{
|
|
||||||
if (count == 1)
|
|
||||||
spacing = false;
|
|
||||||
|
|
||||||
float factor = ImGui::GetStyle().ItemSpacing.x / 2.0f;
|
|
||||||
float x;
|
|
||||||
|
|
||||||
if (count == 3)
|
|
||||||
factor = ImGui::GetStyle().ItemSpacing.x / 1.403f;
|
|
||||||
|
|
||||||
if (spacing)
|
|
||||||
x = ImGui::GetWindowContentRegionWidth() / count - factor;
|
|
||||||
else
|
|
||||||
x = ImGui::GetWindowContentRegionWidth() / count;
|
|
||||||
|
|
||||||
return ImVec2(x, ImGui::GetFrameHeight()*1.3f);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Ui::DrawHeaders(unsortedMap& data)
|
|
||||||
{
|
|
||||||
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0, 0));
|
|
||||||
|
|
||||||
short i = 1;
|
|
||||||
auto colors = ImGui::GetStyle().Colors;
|
|
||||||
ImVec4 btn_col = colors[ImGuiCol_Button];
|
|
||||||
static void* func;
|
|
||||||
for (auto it = data.begin(); it != data.end(); ++it)
|
|
||||||
{
|
|
||||||
const char* btn_text = it->first.c_str();
|
|
||||||
|
|
||||||
if (btn_text == Globals::header_id)
|
|
||||||
colors[ImGuiCol_Button] = colors[ImGuiCol_ButtonActive];
|
|
||||||
|
|
||||||
|
|
||||||
if (ImGui::Button(btn_text, GetSize(3, false)))
|
|
||||||
{
|
|
||||||
Globals::header_id = btn_text;
|
|
||||||
func = it->second;
|
|
||||||
}
|
|
||||||
|
|
||||||
colors[ImGuiCol_Button] = btn_col;
|
|
||||||
|
|
||||||
if (i % 3 != 0)
|
|
||||||
ImGui::SameLine();
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
ImGui::PopStyleVar();
|
|
||||||
ImGui::Dummy(ImVec2(0, 10));
|
|
||||||
|
|
||||||
if (Globals::header_id != "" && func != nullptr)
|
|
||||||
{
|
|
||||||
if (ImGui::BeginChild("TABSBAR"))
|
|
||||||
{
|
|
||||||
((void(*)(void))func)();
|
|
||||||
ImGui::EndChild();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Ui::ShowTooltip(const char* text)
|
|
||||||
{
|
|
||||||
ImGui::SameLine();
|
|
||||||
ImGui::TextDisabled("?");
|
|
||||||
|
|
||||||
if (ImGui::IsItemHovered())
|
|
||||||
{
|
|
||||||
ImGui::BeginTooltip();
|
|
||||||
ImGui::Text(text);
|
|
||||||
ImGui::EndTooltip();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Ui::CheckboxWithHint(const char* label, bool* state, const char* hint, const bool is_disabled)
|
|
||||||
{
|
|
||||||
bool rtn = false;
|
|
||||||
|
|
||||||
if (CustomWidgets::Checkbox(label,state,hint,is_disabled))
|
|
||||||
rtn = true;
|
|
||||||
|
|
||||||
return rtn;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Ui::CheckboxAddress(const char* label, const int addr, const char* hint)
|
|
||||||
{
|
|
||||||
bool rtn = false;
|
|
||||||
bool state = patch::Get<bool>(addr,false);
|
|
||||||
|
|
||||||
if (CheckboxWithHint(label, &state, hint) && addr != NULL)
|
|
||||||
{
|
|
||||||
patch::Set<bool>(addr, state, false);
|
|
||||||
rtn = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return rtn;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Ui::CheckboxAddressEx(const char* label, const int addr, int enabled_val, int disabled_val, const char* hint)
|
|
||||||
{
|
|
||||||
bool rtn = false;
|
|
||||||
|
|
||||||
bool state = false;
|
|
||||||
int val = 0;
|
|
||||||
patch::GetRaw(addr, &val, 1, false);
|
|
||||||
|
|
||||||
if (val == enabled_val)
|
|
||||||
state = true;
|
|
||||||
|
|
||||||
if (CheckboxWithHint(label, &state, hint) && addr != NULL)
|
|
||||||
{
|
|
||||||
if (state)
|
|
||||||
patch::SetRaw(addr, &enabled_val, 1, false);
|
|
||||||
else
|
|
||||||
patch::SetRaw(addr, &disabled_val, 1, false);
|
|
||||||
rtn = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return rtn;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Ui::CheckboxAddressVar(const char* label, bool val, int addr, const char* hint)
|
|
||||||
{
|
|
||||||
bool rtn = false;
|
|
||||||
bool state = val;
|
|
||||||
if (CheckboxWithHint(label, &state, hint))
|
|
||||||
{
|
|
||||||
patch::Set<bool>(addr, state, false);
|
|
||||||
rtn = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return rtn;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Ui::CheckboxAddressVarEx(const char* label, bool val, int addr, int enabled_val, int disabled_val, const char* hint)
|
|
||||||
{
|
|
||||||
bool rtn = false;
|
|
||||||
bool state = val;
|
|
||||||
if (CheckboxWithHint(label, &state, hint))
|
|
||||||
{
|
|
||||||
if (state)
|
|
||||||
patch::SetRaw(addr, &enabled_val, 1, false);
|
|
||||||
else
|
|
||||||
patch::SetRaw(addr, &disabled_val, 1, false);
|
|
||||||
|
|
||||||
rtn = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return rtn;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Ui::CheckboxBitFlag(const char* label,uint flag, const char* hint)
|
|
||||||
{
|
|
||||||
bool rtn = false;
|
|
||||||
bool state = (flag == 1) ? true : false;
|
|
||||||
if (CheckboxWithHint(label, &state, hint))
|
|
||||||
{
|
|
||||||
flag = state ? 1 : 0;
|
|
||||||
rtn = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return rtn;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Ui::DrawJSON(CJson& json, std::vector<std::string>& combo_items, std::string& selected_item, ImGuiTextFilter& filter , std::function<void(std::string&, std::string&, std::string&)> func_left_click, std::function<void(std::string&, std::string&, std::string&)> func_right_click)
|
|
||||||
{
|
|
||||||
ImGui::PushItemWidth(ImGui::GetContentRegionAvailWidth()/2 - 5);
|
|
||||||
ListBoxStr("##Categories", combo_items, selected_item);
|
|
||||||
ImGui::SameLine();
|
|
||||||
|
|
||||||
filter.Draw("##Filter");
|
|
||||||
if (strlen(filter.InputBuf) == 0)
|
|
||||||
{
|
|
||||||
ImDrawList *drawlist = ImGui::GetWindowDrawList();
|
|
||||||
|
|
||||||
ImVec2 min = ImGui::GetItemRectMin();
|
|
||||||
min.x += ImGui::GetStyle().FramePadding.x;
|
|
||||||
min.y += ImGui::GetStyle().FramePadding.y;
|
|
||||||
|
|
||||||
drawlist->AddText(min, ImGui::GetColorU32(ImGuiCol_TextDisabled), "Search");
|
|
||||||
}
|
|
||||||
|
|
||||||
ImGui::PopItemWidth();
|
|
||||||
|
|
||||||
ImGui::Spacing();
|
|
||||||
|
|
||||||
if (ImGui::IsMouseClicked(1))
|
|
||||||
json_popup.function = nullptr;
|
|
||||||
|
|
||||||
|
|
||||||
ImGui::BeginChild(1);
|
|
||||||
for (auto root : json.data.items())
|
|
||||||
{
|
|
||||||
if (root.key() == selected_item || selected_item == "All")
|
|
||||||
{
|
|
||||||
for (auto _data : root.value().items())
|
|
||||||
{
|
|
||||||
|
|
||||||
std::string name = _data.key();
|
|
||||||
if (filter.PassFilter(name.c_str()))
|
|
||||||
{
|
|
||||||
if (ImGui::MenuItem(name.c_str()) && func_left_click != nullptr)
|
|
||||||
{
|
|
||||||
func_left_click(std::string(root.key()),std::string(_data.key()), std::string(_data.value()));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ImGui::IsItemClicked(1) && func_right_click != nullptr)
|
|
||||||
{
|
|
||||||
json_popup.function = func_right_click;
|
|
||||||
json_popup.root_key = root.key();
|
|
||||||
json_popup.key = name;
|
|
||||||
json_popup.value = _data.value();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (json_popup.function != nullptr)
|
|
||||||
{
|
|
||||||
if (ImGui::BeginPopupContextWindow())
|
|
||||||
{
|
|
||||||
ImGui::Text(json_popup.key.c_str());
|
|
||||||
ImGui::Separator();
|
|
||||||
if (ImGui::MenuItem("Remove"))
|
|
||||||
json_popup.function(json_popup.root_key,json_popup.key,json_popup.value);
|
|
||||||
|
|
||||||
|
|
||||||
if (ImGui::MenuItem("Close"))
|
|
||||||
json_popup.function = nullptr;
|
|
||||||
|
|
||||||
ImGui::EndPopup();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ImGui::EndChild();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void Ui::EditStat(const char *label, const int stat_id, const int min, const int def, const int max)
|
|
||||||
{
|
|
||||||
if (ImGui::CollapsingHeader(label))
|
|
||||||
{
|
|
||||||
int val = static_cast<int>(CStats::GetStatValue(stat_id));
|
|
||||||
|
|
||||||
ImGui::Columns(3, 0, false);
|
|
||||||
ImGui::Text(("Min: " + std::to_string(min)).c_str());
|
|
||||||
ImGui::NextColumn();
|
|
||||||
ImGui::Text(("Def: " + std::to_string(def)).c_str());
|
|
||||||
ImGui::NextColumn();
|
|
||||||
ImGui::Text(("Max: " + std::to_string(max)).c_str());
|
|
||||||
ImGui::Columns(1);
|
|
||||||
|
|
||||||
ImGui::Spacing();
|
|
||||||
|
|
||||||
if (ImGui::InputInt(("Set value##" + std::string(label)).c_str(), &val))
|
|
||||||
CStats::SetStatValue(stat_id, static_cast<float>(val));
|
|
||||||
|
|
||||||
ImGui::Spacing();
|
|
||||||
|
|
||||||
if (ImGui::Button(("Minimum##" + std::string(label)).c_str(), Ui::GetSize(3)))
|
|
||||||
CStats::SetStatValue(stat_id, static_cast<float>(min));
|
|
||||||
|
|
||||||
ImGui::SameLine();
|
|
||||||
|
|
||||||
if (ImGui::Button(("Default##" + std::string(label)).c_str(), Ui::GetSize(3)))
|
|
||||||
CStats::SetStatValue(stat_id, static_cast<float>(def));
|
|
||||||
|
|
||||||
ImGui::SameLine();
|
|
||||||
|
|
||||||
if (ImGui::Button(("Maximum##" + std::string(label)).c_str(), Ui::GetSize(3)))
|
|
||||||
CStats::SetStatValue(stat_id, static_cast<float>(max));
|
|
||||||
|
|
||||||
ImGui::Spacing();
|
|
||||||
ImGui::Separator();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Ui::FilterWithHint(const char* label, ImGuiTextFilter& filter, const char* hint)
|
|
||||||
{
|
|
||||||
filter.Draw(label);
|
|
||||||
|
|
||||||
if (strlen(filter.InputBuf) == 0)
|
|
||||||
{
|
|
||||||
ImDrawList *drawlist = ImGui::GetWindowDrawList();
|
|
||||||
|
|
||||||
ImVec2 min = ImGui::GetItemRectMin();
|
|
||||||
min.x += ImGui::GetStyle().FramePadding.x;
|
|
||||||
min.y += ImGui::GetStyle().FramePadding.y;
|
|
||||||
|
|
||||||
drawlist->AddText(min, ImGui::GetColorU32(ImGuiCol_TextDisabled), hint);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// clean up the code someday
|
|
||||||
void Ui::DrawImages(std::vector<std::unique_ptr<TextureStructure>> &img_vec, ImVec2 image_size,
|
|
||||||
std::vector<std::string>& category_vec,std::string& selected_item, ImGuiTextFilter& filter,
|
|
||||||
std::function<void(std::string&)> on_left_click, std::function<void(std::string&)> on_right_click,
|
|
||||||
std::function<std::string(std::string&)> get_name_func, std::function<bool(std::string&)> verify_func)
|
|
||||||
{
|
|
||||||
|
|
||||||
int images_in_row = static_cast<int>(ImGui::GetWindowContentRegionWidth() / image_size.x);
|
|
||||||
image_size.x = ImGui::GetWindowContentRegionWidth() / images_in_row - ImGuiStyleVar_ItemSpacing*0.65f;
|
|
||||||
|
|
||||||
int images_count = 1;
|
|
||||||
|
|
||||||
ImGui::Spacing();
|
|
||||||
|
|
||||||
if (ImGui::IsMouseClicked(1))
|
|
||||||
img_popup.function = nullptr;
|
|
||||||
|
|
||||||
ImGui::PushItemWidth(ImGui::GetContentRegionAvailWidth() / 2 - 5);
|
|
||||||
ListBoxStr("##Categories", category_vec, selected_item);
|
|
||||||
ImGui::SameLine();
|
|
||||||
FilterWithHint("##Filter", filter, "Search");
|
|
||||||
|
|
||||||
ImGui::Spacing();
|
|
||||||
|
|
||||||
ImGui::BeginChild("DrawImages");
|
|
||||||
for (uint i = 0; i < img_vec.size(); i++)
|
|
||||||
{
|
|
||||||
std::string text = img_vec[i]->file_name;
|
|
||||||
std::string model_name = get_name_func(text);
|
|
||||||
|
|
||||||
if (filter.PassFilter(model_name.c_str())
|
|
||||||
&& (img_vec[i]->category_name == selected_item || selected_item == "All")
|
|
||||||
&& (verify_func == nullptr || verify_func(text))
|
|
||||||
)
|
|
||||||
{
|
|
||||||
void *texture = nullptr;
|
|
||||||
|
|
||||||
if (Globals::renderer == Render_DirectX9)
|
|
||||||
texture = img_vec[i]->texture9;
|
|
||||||
else // consider 11
|
|
||||||
texture = img_vec[i]->texture11;
|
|
||||||
|
|
||||||
if (ImGui::ImageButton(texture, image_size, ImVec2(0, 0), ImVec2(1, 1), 1, ImVec4(1, 1, 1, 1), ImVec4(1, 1, 1, 1)))
|
|
||||||
on_left_click(text);
|
|
||||||
|
|
||||||
if (ImGui::IsItemClicked(1) && on_right_click != nullptr)
|
|
||||||
{
|
|
||||||
img_popup.function = on_right_click;
|
|
||||||
img_popup.value = model_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ImGui::IsItemHovered())
|
|
||||||
{
|
|
||||||
ImDrawList *drawlist = ImGui::GetWindowDrawList();
|
|
||||||
|
|
||||||
ImVec2 btn_min = ImGui::GetItemRectMin();
|
|
||||||
ImVec2 btn_max = ImGui::GetItemRectMax();
|
|
||||||
|
|
||||||
drawlist->AddRectFilled(btn_min, btn_max, ImGui::GetColorU32(ImGuiCol_ModalWindowDimBg));
|
|
||||||
|
|
||||||
ImVec2 text_size = ImGui::CalcTextSize(model_name.c_str());
|
|
||||||
if (text_size.x < image_size.x)
|
|
||||||
{
|
|
||||||
float offsetX = (ImGui::GetItemRectSize().x - text_size.x) / 2;
|
|
||||||
drawlist->AddText(ImVec2(btn_min.x + offsetX, btn_min.y + 10), ImGui::GetColorU32(ImGuiCol_Text), model_name.c_str());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
std::string buff = "";
|
|
||||||
|
|
||||||
std::stringstream ss(model_name);
|
|
||||||
short count = 1;
|
|
||||||
|
|
||||||
while (ss >> buff)
|
|
||||||
{
|
|
||||||
text_size = ImGui::CalcTextSize(buff.c_str());
|
|
||||||
float offsetX = (ImGui::GetItemRectSize().x - text_size.x) / 2;
|
|
||||||
drawlist->AddText(ImVec2(btn_min.x + offsetX, btn_min.y + 10 * count), ImGui::GetColorU32(ImGuiCol_Text), buff.c_str());
|
|
||||||
++count;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (images_count % images_in_row != 0)
|
|
||||||
ImGui::SameLine(0.0, 4.0);
|
|
||||||
|
|
||||||
images_count++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (img_popup.function != nullptr)
|
|
||||||
{
|
|
||||||
if (ImGui::BeginPopupContextWindow())
|
|
||||||
{
|
|
||||||
ImGui::Text(img_popup.value.c_str());
|
|
||||||
ImGui::Separator();
|
|
||||||
if (ImGui::MenuItem("Remove"))
|
|
||||||
img_popup.function(img_popup.value);
|
|
||||||
|
|
||||||
|
|
||||||
if (ImGui::MenuItem("Close"))
|
|
||||||
img_popup.function = nullptr;
|
|
||||||
|
|
||||||
ImGui::EndPopup();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ImGui::EndChild();
|
|
||||||
}
|
|
||||||
|
|
||||||
void Ui::RadioButtonAddress(const char* label, std::vector<NamedMemory> &named_mem)
|
|
||||||
{
|
|
||||||
size_t btn_in_column = named_mem.size() / 2 -1;
|
|
||||||
|
|
||||||
ImGui::Text(label);
|
|
||||||
ImGui::Columns(2, 0, false);
|
|
||||||
|
|
||||||
bool state = true;
|
|
||||||
|
|
||||||
for (size_t i = 0; i < named_mem.size(); i++)
|
|
||||||
{
|
|
||||||
if (patch::Get<bool>(named_mem[i].addr, false))
|
|
||||||
state = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ImGui::RadioButton("None", state))
|
|
||||||
{
|
|
||||||
for (size_t i = 0; i < named_mem.size(); i++)
|
|
||||||
patch::Set<bool>(named_mem[i].addr, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (size_t i = 0; i < named_mem.size(); i++)
|
|
||||||
{
|
|
||||||
state = patch::Get<bool>(named_mem[i].addr, false);
|
|
||||||
|
|
||||||
if (ImGui::RadioButton(named_mem[i].name.c_str(), state))
|
|
||||||
{
|
|
||||||
for (size_t i = 0; i < named_mem.size(); i++)
|
|
||||||
patch::Set<bool>(named_mem[i].addr, false);
|
|
||||||
|
|
||||||
patch::Set<bool>(named_mem[i].addr, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (i == btn_in_column)
|
|
||||||
ImGui::NextColumn();
|
|
||||||
}
|
|
||||||
ImGui::Columns(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Ui::RadioButtonAddressEx(const char* label, int addr, std::vector<NamedValue> &named_val)
|
|
||||||
{
|
|
||||||
size_t btn_in_column = named_val.size() / 2;
|
|
||||||
|
|
||||||
ImGui::Text(label);
|
|
||||||
ImGui::Columns(2, 0, false);
|
|
||||||
|
|
||||||
int mem_val = 0;
|
|
||||||
patch::GetRaw(addr, &mem_val, 1, false);
|
|
||||||
|
|
||||||
for (size_t i = 0; i < named_val.size(); i++)
|
|
||||||
{
|
|
||||||
if (ImGui::RadioButton(named_val[i].name.c_str(), &mem_val, named_val[i].value))
|
|
||||||
patch::SetRaw(addr, &named_val[i].value, 1, false);
|
|
||||||
|
|
||||||
if (i == btn_in_column)
|
|
||||||
ImGui::NextColumn();
|
|
||||||
}
|
|
||||||
ImGui::Columns(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Ui::EditRadioButtonAddress(const char* label, std::vector<NamedMemory> &named_mem)
|
|
||||||
{
|
|
||||||
if (ImGui::CollapsingHeader(label))
|
|
||||||
{
|
|
||||||
RadioButtonAddress(label, named_mem);
|
|
||||||
ImGui::Spacing();
|
|
||||||
ImGui::Separator();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Ui::EditRadioButtonAddressEx(const char* label, int addr, std::vector<NamedValue> &named_val)
|
|
||||||
{
|
|
||||||
if (ImGui::CollapsingHeader(label))
|
|
||||||
{
|
|
||||||
RadioButtonAddressEx(label,addr,named_val);
|
|
||||||
ImGui::Spacing();
|
|
||||||
ImGui::Separator();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Ui::ColorPickerAddress(const char* label, int base_addr, ImVec4&& default_color)
|
|
||||||
{
|
|
||||||
if (ImGui::CollapsingHeader(label))
|
|
||||||
{
|
|
||||||
float cur_color[4];
|
|
||||||
cur_color[0] = patch::Get<BYTE>(base_addr, false);
|
|
||||||
cur_color[1] = patch::Get<BYTE>(base_addr + 1, false);
|
|
||||||
cur_color[2] = patch::Get<BYTE>(base_addr + 2, false);
|
|
||||||
cur_color[3] = patch::Get<BYTE>(base_addr + 3,false);
|
|
||||||
|
|
||||||
// 0-255 -> 0-1
|
|
||||||
cur_color[0] /= 255;
|
|
||||||
cur_color[1] /= 255;
|
|
||||||
cur_color[2] /= 255;
|
|
||||||
cur_color[3] /= 255;
|
|
||||||
|
|
||||||
if (ImGui::ColorPicker4(std::string("Pick color##" + std::string(label)).c_str(), cur_color))
|
|
||||||
{
|
|
||||||
// 0-1 -> 0-255
|
|
||||||
cur_color[0] *= 255;
|
|
||||||
cur_color[1] *= 255;
|
|
||||||
cur_color[2] *= 255;
|
|
||||||
cur_color[3] *= 255;
|
|
||||||
|
|
||||||
patch::Set<BYTE>(base_addr, cur_color[0], false);
|
|
||||||
patch::Set<BYTE>(base_addr+1, cur_color[1], false);
|
|
||||||
patch::Set<BYTE>(base_addr+2, cur_color[2], false);
|
|
||||||
patch::Set<BYTE>(base_addr+3, cur_color[3], false);
|
|
||||||
}
|
|
||||||
ImGui::Spacing();
|
|
||||||
|
|
||||||
if (ImGui::Button("Reset to default", Ui::GetSize()))
|
|
||||||
{
|
|
||||||
patch::SetRaw(base_addr, &default_color.w, 1, false);
|
|
||||||
patch::SetRaw(base_addr + 1, &default_color.x, 1, false);
|
|
||||||
patch::SetRaw(base_addr + 2, &default_color.y, 1, false);
|
|
||||||
patch::SetRaw(base_addr + 3, &default_color.z, 1, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
ImGui::Spacing();
|
|
||||||
ImGui::Separator();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Ui::EditBits(const char *label, const int address, const std::vector<std::string>& names)
|
|
||||||
{
|
|
||||||
int *mem_val = (int*)address;
|
|
||||||
|
|
||||||
if (ImGui::CollapsingHeader(label))
|
|
||||||
{
|
|
||||||
ImGui::Columns(2, NULL, false);
|
|
||||||
|
|
||||||
for (int i = 0; i < 32; ++i)
|
|
||||||
{
|
|
||||||
int mask = 1 << i;
|
|
||||||
bool state = static_cast<bool>(*mem_val & mask);
|
|
||||||
|
|
||||||
if (ImGui::Checkbox(names[i].c_str(), &state))
|
|
||||||
*mem_val ^= mask;
|
|
||||||
|
|
||||||
if (i + 1 == 32 / 2)
|
|
||||||
ImGui::NextColumn();
|
|
||||||
}
|
|
||||||
ImGui::Columns(1);
|
|
||||||
|
|
||||||
ImGui::Spacing();
|
|
||||||
ImGui::Separator();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Ui::EditFloat(const char *label, const int address, const float min, const float def, const float max, const float mul)
|
|
||||||
{
|
|
||||||
if (ImGui::CollapsingHeader(label))
|
|
||||||
{
|
|
||||||
float val = patch::Get<float>(address, false)*mul;
|
|
||||||
|
|
||||||
int items = 3;
|
|
||||||
|
|
||||||
if (min == def)
|
|
||||||
items = 2;
|
|
||||||
|
|
||||||
ImGui::Columns(items, 0, false);
|
|
||||||
|
|
||||||
ImGui::Text(("Min: " + std::to_string(min)).c_str());
|
|
||||||
|
|
||||||
if (items == 3)
|
|
||||||
{
|
|
||||||
ImGui::NextColumn();
|
|
||||||
ImGui::Text(("Def: " + std::to_string(def)).c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
ImGui::NextColumn();
|
|
||||||
ImGui::Text(("Max: " + std::to_string(max)).c_str());
|
|
||||||
ImGui::Columns(1);
|
|
||||||
|
|
||||||
ImGui::Spacing();
|
|
||||||
|
|
||||||
int size = ImGui::GetFrameHeight();
|
|
||||||
|
|
||||||
if (ImGui::InputFloat(("##" + std::string(label)).c_str(), &val))
|
|
||||||
patch::Set<float>(address, val/mul, false);
|
|
||||||
|
|
||||||
ImGui::SameLine(0.0, 4.0);
|
|
||||||
if (ImGui::Button("-",ImVec2(size, size)))
|
|
||||||
{
|
|
||||||
val -= 1;
|
|
||||||
patch::Set<float>(address, val / mul, false);
|
|
||||||
}
|
|
||||||
ImGui::SameLine(0.0, 4.0);
|
|
||||||
if (ImGui::Button("+",ImVec2(size, size)))
|
|
||||||
{
|
|
||||||
val += 1;
|
|
||||||
patch::Set<float>(address, val / mul, false);
|
|
||||||
}
|
|
||||||
ImGui::SameLine(0.0, 4.0);
|
|
||||||
ImGui::Text("Set");
|
|
||||||
|
|
||||||
|
|
||||||
ImGui::Spacing();
|
|
||||||
|
|
||||||
if (ImGui::Button(("Minimum##" + std::string(label)).c_str(), Ui::GetSize(items)))
|
|
||||||
patch::Set<float>(address, min/mul, false);
|
|
||||||
|
|
||||||
if (items == 3)
|
|
||||||
{
|
|
||||||
ImGui::SameLine();
|
|
||||||
|
|
||||||
if (ImGui::Button(("Default##" + std::string(label)).c_str(), Ui::GetSize(items)))
|
|
||||||
patch::Set<float>(address, def/mul, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
ImGui::SameLine();
|
|
||||||
|
|
||||||
if (ImGui::Button(("Maximum##" + std::string(label)).c_str(), Ui::GetSize(items)))
|
|
||||||
patch::Set<float>(address, max/mul, false);
|
|
||||||
|
|
||||||
ImGui::Spacing();
|
|
||||||
ImGui::Separator();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Ui::HotKey(const char* label, int* key_array)
|
|
||||||
{
|
|
||||||
bool active = current_hotkey == label;
|
|
||||||
|
|
||||||
if (active)
|
|
||||||
{
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_Button, ImGui::GetStyle().Colors[ImGuiCol_ButtonActive]);
|
|
||||||
|
|
||||||
for (int key = 2; key != 90; ++key)
|
|
||||||
{
|
|
||||||
if (KeyPressed(key))
|
|
||||||
{
|
|
||||||
key_array[0] = key;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int key = 90; key != 2; --key)
|
|
||||||
{
|
|
||||||
if (KeyPressed(key))
|
|
||||||
{
|
|
||||||
key_array[1] = key;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string text = key_names[key_array[0]-1];
|
|
||||||
|
|
||||||
if (key_array[0] != key_array[1])
|
|
||||||
text += (" + " + key_names[key_array[1]-1]);
|
|
||||||
|
|
||||||
if (ImGui::Button((text + std::string("##") + std::string(label)).c_str(), ImVec2(ImGui::GetWindowContentRegionWidth() / 3, ImGui::GetFrameHeight())))
|
|
||||||
{
|
|
||||||
if (active)
|
|
||||||
current_hotkey = "";
|
|
||||||
else
|
|
||||||
current_hotkey = label;;
|
|
||||||
}
|
|
||||||
ImGui::SameLine();
|
|
||||||
ImGui::Text(label);
|
|
||||||
|
|
||||||
if (active)
|
|
||||||
ImGui::PopStyleColor();
|
|
||||||
|
|
||||||
if (!(ImGui::IsWindowFocused() || ImGui::IsItemVisible()))
|
|
||||||
current_hotkey = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Ui::HotKeyPressed(int *hotkey)
|
|
||||||
{
|
|
||||||
return current_hotkey == "" && KeyPressed(hotkey[0]) && KeyPressed(hotkey[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string Ui::GetHotKeyNameString(int *hotkey)
|
|
||||||
{
|
|
||||||
std::string text = key_names[hotkey[0] - 1];
|
|
||||||
|
|
||||||
if (hotkey[0] != hotkey[1])
|
|
||||||
text += (" + " + key_names[hotkey[1] - 1]);
|
|
||||||
|
|
||||||
return text;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool Ui::ColorButton(int color_id, std::vector<float> &color, ImVec2 size)
|
|
||||||
{
|
|
||||||
bool rtn = false;
|
|
||||||
std::string label = "Color " + std::to_string(color_id);
|
|
||||||
|
|
||||||
if (ImGui::ColorButton(label.c_str(), ImVec4(color[0], color[1], color[2], 1), 0, size))
|
|
||||||
rtn = true;
|
|
||||||
|
|
||||||
if (ImGui::IsItemHovered())
|
|
||||||
{
|
|
||||||
ImDrawList *drawlist = ImGui::GetWindowDrawList();
|
|
||||||
drawlist->AddRectFilled(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), ImGui::GetColorU32(ImGuiCol_ModalWindowDimBg));
|
|
||||||
}
|
|
||||||
|
|
||||||
return rtn;
|
|
||||||
}
|
|
244
src/CMakeLists.txt
Normal file
244
src/CMakeLists.txt
Normal file
@ -0,0 +1,244 @@
|
|||||||
|
################################################################################
|
||||||
|
# Source groups
|
||||||
|
################################################################################
|
||||||
|
set(no_group_source_files
|
||||||
|
"Animation.cpp"
|
||||||
|
"Animation.h"
|
||||||
|
"CheatMenu.cpp"
|
||||||
|
"CheatMenu.h"
|
||||||
|
"CustomWidgets.cpp"
|
||||||
|
"CustomWidgets.h"
|
||||||
|
"Events.cpp"
|
||||||
|
"Events.h"
|
||||||
|
"external/imgui/imgui_impl_dx11.cpp"
|
||||||
|
"external/imgui/imgui_impl_dx11.h"
|
||||||
|
"external/imgui/stb_image.h"
|
||||||
|
"external/json.hpp"
|
||||||
|
"external/kiero/kiero.cpp"
|
||||||
|
"external/kiero/kiero.h"
|
||||||
|
"external/kiero/minhook/include/MinHook.h"
|
||||||
|
"external/moon/pool_object_extender.h"
|
||||||
|
"external/moon/texture_manager.cpp"
|
||||||
|
"external/moon/texture_manager.h"
|
||||||
|
"external/moon/vehicle_renderer.cpp"
|
||||||
|
"external/moon/vehicle_renderer.h"
|
||||||
|
"Game.cpp"
|
||||||
|
"Game.h"
|
||||||
|
"Hook.cpp"
|
||||||
|
"Hook.h"
|
||||||
|
"Json.cpp"
|
||||||
|
"Json.h"
|
||||||
|
"Menu.cpp"
|
||||||
|
"Menu.h"
|
||||||
|
"NeonAPI.cpp"
|
||||||
|
"NeonAPI.h"
|
||||||
|
"Paint.cpp"
|
||||||
|
"Paint.h"
|
||||||
|
"pch.cpp"
|
||||||
|
"pch.h"
|
||||||
|
"Ped.cpp"
|
||||||
|
"Ped.h"
|
||||||
|
"Player.cpp"
|
||||||
|
"Player.h"
|
||||||
|
"Teleport.cpp"
|
||||||
|
"Teleport.h"
|
||||||
|
"Ui.cpp"
|
||||||
|
"Ui.h"
|
||||||
|
"Util.cpp"
|
||||||
|
"Util.h"
|
||||||
|
"Vehicle.cpp"
|
||||||
|
"Vehicle.h"
|
||||||
|
"Visual.cpp"
|
||||||
|
"Visual.h"
|
||||||
|
"VKeys.h"
|
||||||
|
"Weapon.cpp"
|
||||||
|
"Weapon.h"
|
||||||
|
)
|
||||||
|
source_group("" FILES ${no_group_source_files})
|
||||||
|
|
||||||
|
set(external
|
||||||
|
"external/imgui/imconfig.h"
|
||||||
|
"external/imgui/imgui.cpp"
|
||||||
|
"external/imgui/imgui.h"
|
||||||
|
"external/imgui/imgui_demo.cpp"
|
||||||
|
"external/imgui/imgui_draw.cpp"
|
||||||
|
"external/imgui/imgui_impl_dx9.cpp"
|
||||||
|
"external/imgui/imgui_impl_dx9.h"
|
||||||
|
"external/imgui/imgui_impl_win32.cpp"
|
||||||
|
"external/imgui/imgui_impl_win32.h"
|
||||||
|
"external/imgui/imgui_internal.h"
|
||||||
|
"external/imgui/imgui_widgets.cpp"
|
||||||
|
"external/imgui/imstb_rectpack.h"
|
||||||
|
"external/imgui/imstb_textedit.h"
|
||||||
|
"external/imgui/imstb_truetype.h"
|
||||||
|
)
|
||||||
|
source_group("external" FILES ${external})
|
||||||
|
|
||||||
|
set(ALL_FILES
|
||||||
|
${no_group_source_files}
|
||||||
|
${external}
|
||||||
|
)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Target
|
||||||
|
################################################################################
|
||||||
|
add_library(${PROJECT_NAME} SHARED ${ALL_FILES})
|
||||||
|
|
||||||
|
add_precompiled_header(${PROJECT_NAME} "pch.h" "pch.cpp")
|
||||||
|
|
||||||
|
string(CONCAT "MSVC_RUNTIME_LIBRARY_STR"
|
||||||
|
$<$<CONFIG:Release>:
|
||||||
|
MultiThreaded
|
||||||
|
>
|
||||||
|
$<$<CONFIG:Debug>:
|
||||||
|
MultiThreadedDebug
|
||||||
|
>
|
||||||
|
)
|
||||||
|
|
||||||
|
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||||
|
RUNTIME_OUTPUT_DIRECTORY "F:/GTASanAndreas/$<0:>/"
|
||||||
|
SUFFIX ".asi"
|
||||||
|
MSVC_RUNTIME_LIBRARY ${MSVC_RUNTIME_LIBRARY_STR}
|
||||||
|
)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Include directories
|
||||||
|
################################################################################
|
||||||
|
include_directories(
|
||||||
|
"$ENV{PLUGIN_SDK_DIR}/plugin_sa"
|
||||||
|
"$ENV{PLUGIN_SDK_DIR}/plugin_sa/game_sa"
|
||||||
|
"$ENV{PLUGIN_SDK_DIR}/shared"
|
||||||
|
"$ENV{PLUGIN_SDK_DIR}/shared/game"
|
||||||
|
"$ENV{DIRECTX9_SDK_DIR}/include"
|
||||||
|
)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Compile definitions
|
||||||
|
################################################################################
|
||||||
|
target_compile_definitions(${PROJECT_NAME} PRIVATE
|
||||||
|
"$<$<CONFIG:GTASARelease>:"
|
||||||
|
"_NDEBUG"
|
||||||
|
">"
|
||||||
|
"$<$<CONFIG:GTASAzDebug>:"
|
||||||
|
"_DEBUG"
|
||||||
|
">"
|
||||||
|
"_CRT_SECURE_NO_WARNINGS;"
|
||||||
|
"_CRT_NON_CONFORMING_SWPRINTFS;"
|
||||||
|
"GTASA;"
|
||||||
|
"GTAGAME_NAME=\"San Andreas\";"
|
||||||
|
"GTAGAME_ABBR=\"SA\";"
|
||||||
|
"GTAGAME_ABBRLOW=\"sa\";"
|
||||||
|
"GTAGAME_PROTAGONISTNAME=\"CJ\";"
|
||||||
|
"GTAGAME_CITYNAME=\"San Andreas\";"
|
||||||
|
"_LA_SUPPORT;"
|
||||||
|
"_DX9_SDK_INSTALLED;"
|
||||||
|
"PLUGIN_SGV_10US;"
|
||||||
|
"_MBCS"
|
||||||
|
)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Compile and link options
|
||||||
|
################################################################################
|
||||||
|
if(MSVC)
|
||||||
|
target_compile_options(${PROJECT_NAME} PRIVATE
|
||||||
|
$<$<CONFIG:GTASARelease>:
|
||||||
|
/O2;
|
||||||
|
/Oi;
|
||||||
|
/Gy
|
||||||
|
>
|
||||||
|
$<$<CONFIG:GTASAzDebug>:
|
||||||
|
/Od
|
||||||
|
>
|
||||||
|
/std:c++latest;
|
||||||
|
/sdl-;
|
||||||
|
/W3;
|
||||||
|
${DEFAULT_CXX_DEBUG_INFORMATION_FORMAT};
|
||||||
|
${DEFAULT_CXX_EXCEPTION_HANDLING}
|
||||||
|
/w44005
|
||||||
|
)
|
||||||
|
string(CONCAT FILE_CL_OPTIONS
|
||||||
|
"/Y-"
|
||||||
|
)
|
||||||
|
source_file_compile_options(external/imgui/imgui_impl_dx11.cpp ${FILE_CL_OPTIONS})
|
||||||
|
string(CONCAT FILE_CL_OPTIONS
|
||||||
|
"/Y-"
|
||||||
|
)
|
||||||
|
source_file_compile_options(external/kiero/kiero.cpp ${FILE_CL_OPTIONS})
|
||||||
|
string(CONCAT FILE_CL_OPTIONS
|
||||||
|
"/Y-"
|
||||||
|
)
|
||||||
|
source_file_compile_options(external/moon/texture_manager.cpp ${FILE_CL_OPTIONS})
|
||||||
|
string(CONCAT FILE_CL_OPTIONS
|
||||||
|
"/Y-"
|
||||||
|
)
|
||||||
|
source_file_compile_options(external/moon/vehicle_renderer.cpp ${FILE_CL_OPTIONS})
|
||||||
|
string(CONCAT FILE_CL_OPTIONS
|
||||||
|
"/Y-"
|
||||||
|
)
|
||||||
|
source_file_compile_options(external/imgui/imgui.cpp ${FILE_CL_OPTIONS})
|
||||||
|
string(CONCAT FILE_CL_OPTIONS
|
||||||
|
"/Y-"
|
||||||
|
)
|
||||||
|
source_file_compile_options(external/imgui/imgui_demo.cpp ${FILE_CL_OPTIONS})
|
||||||
|
string(CONCAT FILE_CL_OPTIONS
|
||||||
|
"/Y-"
|
||||||
|
)
|
||||||
|
source_file_compile_options(external/imgui/imgui_draw.cpp ${FILE_CL_OPTIONS})
|
||||||
|
string(CONCAT FILE_CL_OPTIONS
|
||||||
|
"/Y-"
|
||||||
|
)
|
||||||
|
source_file_compile_options(external/imgui/imgui_impl_dx9.cpp ${FILE_CL_OPTIONS})
|
||||||
|
string(CONCAT FILE_CL_OPTIONS
|
||||||
|
"/Y-"
|
||||||
|
)
|
||||||
|
source_file_compile_options(external/imgui/imgui_impl_win32.cpp ${FILE_CL_OPTIONS})
|
||||||
|
string(CONCAT FILE_CL_OPTIONS
|
||||||
|
"/Y-"
|
||||||
|
)
|
||||||
|
source_file_compile_options(external/imgui/imgui_widgets.cpp ${FILE_CL_OPTIONS})
|
||||||
|
target_link_options(${PROJECT_NAME} PRIVATE
|
||||||
|
$<$<CONFIG:GTASARelease>:
|
||||||
|
/SAFESEH:NO;
|
||||||
|
/OPT:REF;
|
||||||
|
/LTCG;
|
||||||
|
/OPT:ICF
|
||||||
|
>
|
||||||
|
/DEBUG:FULL;
|
||||||
|
/SUBSYSTEM:WINDOWS
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Pre build events
|
||||||
|
################################################################################
|
||||||
|
add_custom_command_if(
|
||||||
|
TARGET ${PROJECT_NAME}
|
||||||
|
PRE_BUILD
|
||||||
|
COMMANDS
|
||||||
|
COMMAND $<CONFIG:GTASARelease> taskkill /f /fi "imagename eq gta_sa.exe"
|
||||||
|
COMMAND $<CONFIG:GTASAzDebug> taskkill /f /fi "imagename eq gta_sa.exe"
|
||||||
|
)
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# Dependencies
|
||||||
|
################################################################################
|
||||||
|
target_link_libraries(${PROJECT_NAME} PUBLIC
|
||||||
|
optimized plugin
|
||||||
|
optimized libMinHook-x86-v140-mt
|
||||||
|
optimized libMinHook-x86-v140-md
|
||||||
|
debug plugin_d
|
||||||
|
debug libMinHook-x86-v140-mtd
|
||||||
|
debug libMinHook-x86-v140-mdd
|
||||||
|
d3d9
|
||||||
|
d3dx9
|
||||||
|
d3d11
|
||||||
|
d3dx11
|
||||||
|
XInput9_1_0
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_directories(${PROJECT_NAME} PUBLIC
|
||||||
|
"$ENV{PLUGIN_SDK_DIR}/output/lib/"
|
||||||
|
"$ENV{DIRECTX9_SDK_DIR}/lib/x86/"
|
||||||
|
"external/kiero/minhook/lib/"
|
||||||
|
)
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#pragma warning(disable:4503 4244)
|
#pragma warning(disable:4503 4244 4005)
|
||||||
|
|
||||||
#define INPUT_BUFFER_SIZE 64
|
#define INPUT_BUFFER_SIZE 64
|
||||||
#define SPAWN_PED_LIMIT 20
|
#define SPAWN_PED_LIMIT 20
|
Loading…
Reference in New Issue
Block a user