From 43a733098e7b5aa898e136f39fc6e451533dddf2 Mon Sep 17 00:00:00 2001 From: Till Schreiber Date: Fri, 31 Mar 2023 21:07:21 +0200 Subject: [PATCH 01/51] Rc (#743) * add GetPedBonePos * shared: Add main solution folders * shared: New CApi interop generator closes #736 * server: Fixed outdated SDK warning * sdk: Added SDKs * sdk/ci: Fixed build, added SDK to CI * sdk: Build fix * Fixed CApi gen bug * Updated submodule runtime * server|client|shared: Change Remove -> Destroy * fix Client VoiceControlsEnabled setter * add missing Alt.VoiceControlsEnabled getter * client: fix naming * Added AltV.Net.Sdk.Shared package * Disabled doc and debug symbols on client Release build * Added AltV.Net.Sdk.Shared to CI * Implemented .NET templates * Reverted debug CI changes * Fixed AltV.Net.Sdk.Shared CI build * Changed CI output binary versioning order * CI fix * CI fix 2 * CI fix 3 * mark "Alt.Remove*" Methods obsolete * clear alt api entities on resource stop * server|client|shared: Readd Remove() but obsolete * server: remove unneeded method * upd: docs, remove alt-cfg (#740) * upd: docs, remove alt-cfg * fix typo esources folder * moved the [voice] variable to the end of the file * library: update to latest runtime * update latest runtime * Write FnvString to console by build * Updated submodule runtime * client: add some missing vehicle properties * Runtime update * Build fix * Build fix 2 * server: extend vehiclemodelinfo with bones * Updated submodule runtime * server: fix async event handling --------- Co-authored-by: Artem Dzhemesiuk Co-authored-by: Egor <32245758+JustCup@users.noreply.github.com> Co-authored-by: Artem Dzhemesiuk --- .github/workflows/release.yml | 93 +- api/AltV.Net.Async/AltAsync.Checkpoint.cs | 6 +- api/AltV.Net.Async/AltAsync.Vehicle.cs | 4 +- api/AltV.Net.Async/AltAsync.cs | 32 +- api/AltV.Net.Async/AsyncBaseObjectPool.cs | 8 +- api/AltV.Net.Async/AsyncCore.cs | 64 +- api/AltV.Net.Async/AsyncEntityPool.cs | 16 +- .../Elements/Entities/AsyncBaseObject.cs | 15 +- .../Elements/Entities/AsyncBlip.cs | 102 +- api/AltV.Net.Benchmarks/BenchmarkVehicle.cs | 2 +- .../AltV.Net.CApi.Generator.csproj} | 0 api/AltV.Net.CApi.Generator/FnvHash.cs | 16 + api/AltV.Net.CApi.Generator/Parser.cs | 99 + api/AltV.Net.CApi.Generator/Program.cs | 156 + .../StringExtensions.cs | 14 + api/AltV.Net.CApi.Generator/TypeRegistry.cs | 165 + .../Exceptions/OutdatedSdkException.cs | 13 + api/AltV.Net.CApi/Libraries/ClientLibrary.cs | 2918 +++++++++++++---- api/AltV.Net.CApi/Libraries/ServerLibrary.cs | 1454 ++++++-- api/AltV.Net.CApi/Libraries/SharedLibrary.cs | 1030 ++++-- api/AltV.Net.CApi/Library.cs | 18 +- api/AltV.Net.Client/Alt.Globals.cs | 2 +- api/AltV.Net.Client/Alt.cs | 2 + api/AltV.Net.Client/Core.Globals.cs | 6 +- api/AltV.Net.Client/Core.cs | 20 +- .../Elements/Entities/RmlElement.cs | 2 +- .../Elements/Entities/Vehicle.cs | 168 +- .../Elements/Interfaces/IBaseObject.cs | 2 + .../Elements/Interfaces/IRmlElement.cs | 2 +- .../Elements/Interfaces/IVehicle.cs | 20 +- .../Elements/Pools/BaseObjectPool.cs | 4 +- .../Elements/Pools/EntityPool.cs | 6 +- api/AltV.Net.Client/ICore.cs | 1 + api/AltV.Net.Client/ModuleWrapper.cs | 5 + api/AltV.Net.CodeGen/Generator.cs | 380 --- api/AltV.Net.CodeGen/ParseExports.cs | 194 -- api/AltV.Net.CodeGen/Program.cs | 102 - api/AltV.Net.CodeGen/WriteLibrary.cs | 227 -- api/AltV.Net.CodeGen/WritePInvokes.cs | 148 - api/AltV.Net.Example/SampleResource.cs | 10 +- api/AltV.Net.Host/Config.cs | 2 +- api/AltV.Net.Host/Host.cs | 8 +- api/AltV.Net.Mock/MockBlip.cs | 2 +- api/AltV.Net.Mock/MockColShape.cs | 2 +- api/AltV.Net.Mock/MockCore.cs | 12 +- api/AltV.Net.Mock/MockEntity.cs | 6 +- api/AltV.Net.Mock/MockVoiceChannel.cs | 2 +- .../AltV.Net.Sdk.Client.csproj | 40 + api/AltV.Net.Sdk.Client/Sdk/Sdk.props | 18 + api/AltV.Net.Sdk.Client/Sdk/Sdk.targets | 7 + api/AltV.Net.Sdk.Client/icon.png | Bin 0 -> 6049 bytes api/AltV.Net.Sdk.Client/license/license.txt | 21 + .../AltV.Net.Sdk.Server.csproj | 40 + api/AltV.Net.Sdk.Server/Sdk/Sdk.props | 12 + api/AltV.Net.Sdk.Server/Sdk/Sdk.targets | 7 + api/AltV.Net.Sdk.Server/icon.png | Bin 0 -> 6049 bytes api/AltV.Net.Sdk.Server/license/license.txt | 21 + .../AltV.Net.Sdk.Shared.csproj | 40 + api/AltV.Net.Sdk.Shared/Sdk/Sdk.props | 12 + api/AltV.Net.Sdk.Shared/Sdk/Sdk.targets | 7 + api/AltV.Net.Sdk.Shared/icon.png | Bin 0 -> 6049 bytes api/AltV.Net.Sdk.Shared/license/license.txt | 21 + .../Elements/Entities/ISharedBaseObject.cs | 12 +- .../Elements/Entities/ISharedBlip.cs | 73 +- .../Elements/Entities/SharedBaseObject.cs | 19 +- api/AltV.Net.sln | 45 +- api/AltV.Net/Alt.Entity.cs | 15 +- api/AltV.Net/Alt.VoiceChannel.cs | 5 +- api/AltV.Net/Core.cs | 36 +- api/AltV.Net/Data/BoneInfo.cs | 13 + api/AltV.Net/Data/PedModelInfo.cs | 20 +- api/AltV.Net/Data/VehicleModelInfo.cs | 97 +- api/AltV.Net/Elements/Entities/IColShape.cs | 17 +- api/AltV.Net/Elements/Entities/IVehicle.cs | 7 +- .../Elements/Entities/IVoiceChannel.cs | 27 +- api/AltV.Net/Elements/Pools/BaseObjectPool.cs | 8 +- api/AltV.Net/Elements/Pools/EntityPool.cs | 12 +- api/AltV.Net/ICore.cs | 17 +- api/AltV.Net/ModuleWrapper.cs | 9 +- docs/articles/client.md | 4 +- .../getting-started/create-resource.md | 8 +- .../getting-started/resource-communication.md | 2 +- docs/articles/getting-started/setup.md | 2 +- docs/articles/getting-started/voice.md | 40 +- docs/articles/internal-information.md | 4 +- runtime | 2 +- templates/AltV.Net.Templates.csproj | 41 + templates/icon.png | Bin 0 -> 6049 bytes templates/license/license.txt | 21 + .../.template.config/icon.png | Bin 0 -> 15556 bytes .../.template.config/ide.host.json | 23 + .../.template.config/template.json | 57 + .../altv-project-client/ClientResource.cs | 16 + .../Template.Client.csproj | 13 + .../.template.config/icon.png | Bin 0 -> 16169 bytes .../.template.config/ide.host.json | 23 + .../.template.config/template.json | 57 + .../altv-project-server/ServerResource.cs | 16 + .../Template.Server.csproj | 13 + .../.template.config/icon.png | Bin 0 -> 16165 bytes .../.template.config/ide.host.json | 23 + .../.template.config/template.json | 57 + .../altv-project-shared/SharedClass.cs | 16 + .../Template.Shared.csproj | 13 + .../altv-resource/.template.config/icon.png | Bin 0 -> 17322 bytes .../.template.config/ide.host.json | 75 + .../.template.config/template.json | 151 + .../Template.Client/ClientResource.cs | 16 + .../Template.Client/Template.Client.csproj | 19 + .../Template.Server/ServerResource.cs | 16 + .../Template.Server/Template.Server.csproj | 19 + .../Template.Shared/SharedClass.cs | 6 + .../Template.Shared/Template.Shared.csproj | 13 + .../templates/altv-resource/Template.app.sln | 40 + templates/templates/altv-resource/global.json | 7 + .../templates/altv-resource/resource.toml | 11 + 116 files changed, 6295 insertions(+), 2767 deletions(-) rename api/{AltV.Net.CodeGen/AltV.Net.CodeGen.csproj => AltV.Net.CApi.Generator/AltV.Net.CApi.Generator.csproj} (100%) create mode 100644 api/AltV.Net.CApi.Generator/FnvHash.cs create mode 100644 api/AltV.Net.CApi.Generator/Parser.cs create mode 100644 api/AltV.Net.CApi.Generator/Program.cs create mode 100644 api/AltV.Net.CApi.Generator/StringExtensions.cs create mode 100644 api/AltV.Net.CApi.Generator/TypeRegistry.cs create mode 100644 api/AltV.Net.CApi/Exceptions/OutdatedSdkException.cs delete mode 100644 api/AltV.Net.CodeGen/Generator.cs delete mode 100644 api/AltV.Net.CodeGen/ParseExports.cs delete mode 100644 api/AltV.Net.CodeGen/Program.cs delete mode 100644 api/AltV.Net.CodeGen/WriteLibrary.cs delete mode 100644 api/AltV.Net.CodeGen/WritePInvokes.cs create mode 100644 api/AltV.Net.Sdk.Client/AltV.Net.Sdk.Client.csproj create mode 100644 api/AltV.Net.Sdk.Client/Sdk/Sdk.props create mode 100644 api/AltV.Net.Sdk.Client/Sdk/Sdk.targets create mode 100644 api/AltV.Net.Sdk.Client/icon.png create mode 100644 api/AltV.Net.Sdk.Client/license/license.txt create mode 100644 api/AltV.Net.Sdk.Server/AltV.Net.Sdk.Server.csproj create mode 100644 api/AltV.Net.Sdk.Server/Sdk/Sdk.props create mode 100644 api/AltV.Net.Sdk.Server/Sdk/Sdk.targets create mode 100644 api/AltV.Net.Sdk.Server/icon.png create mode 100644 api/AltV.Net.Sdk.Server/license/license.txt create mode 100644 api/AltV.Net.Sdk.Shared/AltV.Net.Sdk.Shared.csproj create mode 100644 api/AltV.Net.Sdk.Shared/Sdk/Sdk.props create mode 100644 api/AltV.Net.Sdk.Shared/Sdk/Sdk.targets create mode 100644 api/AltV.Net.Sdk.Shared/icon.png create mode 100644 api/AltV.Net.Sdk.Shared/license/license.txt create mode 100644 api/AltV.Net/Data/BoneInfo.cs create mode 100644 templates/AltV.Net.Templates.csproj create mode 100644 templates/icon.png create mode 100644 templates/license/license.txt create mode 100644 templates/templates/altv-project-client/.template.config/icon.png create mode 100644 templates/templates/altv-project-client/.template.config/ide.host.json create mode 100644 templates/templates/altv-project-client/.template.config/template.json create mode 100644 templates/templates/altv-project-client/ClientResource.cs create mode 100644 templates/templates/altv-project-client/Template.Client.csproj create mode 100644 templates/templates/altv-project-server/.template.config/icon.png create mode 100644 templates/templates/altv-project-server/.template.config/ide.host.json create mode 100644 templates/templates/altv-project-server/.template.config/template.json create mode 100644 templates/templates/altv-project-server/ServerResource.cs create mode 100644 templates/templates/altv-project-server/Template.Server.csproj create mode 100644 templates/templates/altv-project-shared/.template.config/icon.png create mode 100644 templates/templates/altv-project-shared/.template.config/ide.host.json create mode 100644 templates/templates/altv-project-shared/.template.config/template.json create mode 100644 templates/templates/altv-project-shared/SharedClass.cs create mode 100644 templates/templates/altv-project-shared/Template.Shared.csproj create mode 100644 templates/templates/altv-resource/.template.config/icon.png create mode 100644 templates/templates/altv-resource/.template.config/ide.host.json create mode 100644 templates/templates/altv-resource/.template.config/template.json create mode 100644 templates/templates/altv-resource/Template.Client/ClientResource.cs create mode 100644 templates/templates/altv-resource/Template.Client/Template.Client.csproj create mode 100644 templates/templates/altv-resource/Template.Server/ServerResource.cs create mode 100644 templates/templates/altv-resource/Template.Server/Template.Server.csproj create mode 100644 templates/templates/altv-resource/Template.Shared/SharedClass.cs create mode 100644 templates/templates/altv-resource/Template.Shared/Template.Shared.csproj create mode 100644 templates/templates/altv-resource/Template.app.sln create mode 100644 templates/templates/altv-resource/global.json create mode 100644 templates/templates/altv-resource/resource.toml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1d71f078a..034ce03b2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -49,6 +49,41 @@ jobs: version=${GITHUB_REF##*/} echo "##[set-output name=branch;]$branch" echo "##[set-output name=version;]$version" + - name: Replace package versions + run: | + echo "$(echo "`cat ./api/AltV.Net/AltV.Net.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net/AltV.Net.csproj + echo "$(echo "`cat ./api/AltV.Net/AltV.Net.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net/AltV.Net.csproj + echo "$(echo "`cat ./api/AltV.Net.Async/AltV.Net.Async.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.Async/AltV.Net.Async.csproj + echo "$(echo "`cat ./api/AltV.Net.Async/AltV.Net.Async.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net.Async/AltV.Net.Async.csproj + echo "$(echo "`cat ./api/AltV.Net.Interactions/AltV.Net.Interactions.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.Interactions/AltV.Net.Interactions.csproj + echo "$(echo "`cat ./api/AltV.Net.Interactions/AltV.Net.Interactions.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net.Interactions/AltV.Net.Interactions.csproj + echo "$(echo "`cat ./api/AltV.Net.Async.CodeGen/AltV.Net.Async.CodeGen.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.Async.CodeGen/AltV.Net.Async.CodeGen.csproj + echo "$(echo "`cat ./api/AltV.Net.Async.CodeGen/AltV.Net.Async.CodeGen.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net.Async.CodeGen/AltV.Net.Async.CodeGen.csproj + echo "$(echo "`cat ./api/AltV.Net.Resources.Chat.Api/AltV.Net.Resources.Chat.Api.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.Resources.Chat.Api/AltV.Net.Resources.Chat.Api.csproj + echo "$(echo "`cat ./api/AltV.Net.Resources.Chat.Api/AltV.Net.Resources.Chat.Api.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net.Resources.Chat.Api/AltV.Net.Resources.Chat.Api.csproj + echo "$(echo "`cat ./api/AltV.Net.EntitySync.ServerEvent/AltV.Net.EntitySync.ServerEvent.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.EntitySync.ServerEvent/AltV.Net.EntitySync.ServerEvent.csproj + echo "$(echo "`cat ./api/AltV.Net.EntitySync.ServerEvent/AltV.Net.EntitySync.ServerEvent.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net.EntitySync.ServerEvent/AltV.Net.EntitySync.ServerEvent.csproj + echo "$(echo "`cat ./api/AltV.Net.Client/AltV.Net.Client.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.Client/AltV.Net.Client.csproj + echo "$(echo "`cat ./api/AltV.Net.Client/AltV.Net.Client.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net.Client/AltV.Net.Client.csproj + echo "$(echo "`cat ./api/AltV.Net.Client.Async/AltV.Net.Client.Async.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.Client.Async/AltV.Net.Client.Async.csproj + echo "$(echo "`cat ./api/AltV.Net.Client.Async/AltV.Net.Client.Async.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net.Client.Async/AltV.Net.Client.Async.csproj + echo "$(echo "`cat ./api/AltV.Net.ColShape/AltV.Net.ColShape.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.ColShape/AltV.Net.ColShape.csproj + echo "$(echo "`cat ./api/AltV.Net.ColShape/AltV.Net.ColShape.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net.ColShape/AltV.Net.ColShape.csproj + echo "$(echo "`cat ./api/AltV.Net.CApi/AltV.Net.CApi.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.CApi/AltV.Net.CApi.csproj + echo "$(echo "`cat ./api/AltV.Net.CApi/AltV.Net.CApi.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net.CApi/AltV.Net.CApi.csproj + echo "$(echo "`cat ./api/AltV.Net.Shared/AltV.Net.Shared.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.Shared/AltV.Net.Shared.csproj + echo "$(echo "`cat ./api/AltV.Net.Shared/AltV.Net.Shared.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net.Shared/AltV.Net.Shared.csproj + echo "$(echo "`cat ./api/AltV.Net.Sdk.Server/Sdk/Sdk.targets`" | perl -pe 's/Version=\"1.0.0\"/Version=\"'${GITHUB_REF##*/}'\"/g')" > ./api/AltV.Net.Sdk.Server/Sdk/Sdk.targets + echo "$(echo "`cat ./api/AltV.Net.Sdk.Client/Sdk/Sdk.targets`" | perl -pe 's/Version=\"1.0.0\"/Version=\"'${GITHUB_REF##*/}'\"/g')" > ./api/AltV.Net.Sdk.Client/Sdk/Sdk.targets + echo "$(echo "`cat ./api/AltV.Net.Sdk.Shared/Sdk/Sdk.targets`" | perl -pe 's/Version=\"1.0.0\"/Version=\"'${GITHUB_REF##*/}'\"/g')" > ./api/AltV.Net.Sdk.Shared/Sdk/Sdk.targets + echo "$(echo "`cat ./api/AltV.Net.Sdk.Server/AltV.Net.Sdk.Server.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.Sdk.Server/AltV.Net.Sdk.Server.csproj + echo "$(echo "`cat ./api/AltV.Net.Sdk.Client/AltV.Net.Sdk.Client.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.Sdk.Client/AltV.Net.Sdk.Client.csproj + echo "$(echo "`cat ./api/AltV.Net.Sdk.Shared/AltV.Net.Sdk.Shared.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.Sdk.Shared/AltV.Net.Sdk.Shared.csproj + echo "$(echo "`cat ./templates/AltV.Net.Templates.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./templates/AltV.Net.Templates.csproj + echo "$(echo "`cat ./templates/templates/altv-resource/.template.config/template.json`" | perl -pe 's/0.0.0/'${GITHUB_REF##*/}'/g')" > ./templates/templates/altv-resource/.template.config/template.json + echo "$(echo "`cat ./templates/templates/altv-project-client/.template.config/template.json`" | perl -pe 's/0.0.0/'${GITHUB_REF##*/}'/g')" > ./templates/templates/altv-project-client/.template.config/template.json + echo "$(echo "`cat ./templates/templates/altv-project-server/.template.config/template.json`" | perl -pe 's/0.0.0/'${GITHUB_REF##*/}'/g')" > ./templates/templates/altv-project-server/.template.config/template.json + echo "$(echo "`cat ./templates/templates/altv-project-shared/.template.config/template.json`" | perl -pe 's/0.0.0/'${GITHUB_REF##*/}'/g')" > ./templates/templates/altv-project-shared/.template.config/template.json - name: Build working-directory: ./api run: | @@ -67,6 +102,9 @@ jobs: dotnet publish AltV.Net.Client -c Release -f net6.0 dotnet publish AltV.Net.Client.Async -c Release -f net6.0 dotnet publish AltV.Net.ColShape -c Release -f net6.0 + dotnet publish AltV.Net.Sdk.Server -c Release + dotnet publish AltV.Net.Sdk.Client -c Release + dotnet publish AltV.Net.Sdk.Shared -c Release - run: | mkdir -p ./modules/linux mkdir -p ./modules/windows @@ -85,29 +123,6 @@ jobs: cp ./api/AltV.Net.Async/bin/Debug/*/publish/AltV.Net.Async.dll ./modules/api-debug cp ./api/AltV.Net.Async/bin/Debug/*/publish/AltV.Net.Async.pdb ./modules/api-debug echo '${{ steps.build_info.outputs.branch }}/${{ steps.build_info.outputs.version }}' > ./modules/build_info.txt - - run: | - echo "$(echo "`cat ./api/AltV.Net/AltV.Net.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net/AltV.Net.csproj - echo "$(echo "`cat ./api/AltV.Net/AltV.Net.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net/AltV.Net.csproj - echo "$(echo "`cat ./api/AltV.Net.Async/AltV.Net.Async.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.Async/AltV.Net.Async.csproj - echo "$(echo "`cat ./api/AltV.Net.Async/AltV.Net.Async.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net.Async/AltV.Net.Async.csproj - echo "$(echo "`cat ./api/AltV.Net.Interactions/AltV.Net.Interactions.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.Interactions/AltV.Net.Interactions.csproj - echo "$(echo "`cat ./api/AltV.Net.Interactions/AltV.Net.Interactions.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net.Interactions/AltV.Net.Interactions.csproj - echo "$(echo "`cat ./api/AltV.Net.Async.CodeGen/AltV.Net.Async.CodeGen.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.Async.CodeGen/AltV.Net.Async.CodeGen.csproj - echo "$(echo "`cat ./api/AltV.Net.Async.CodeGen/AltV.Net.Async.CodeGen.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net.Async.CodeGen/AltV.Net.Async.CodeGen.csproj - echo "$(echo "`cat ./api/AltV.Net.Resources.Chat.Api/AltV.Net.Resources.Chat.Api.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.Resources.Chat.Api/AltV.Net.Resources.Chat.Api.csproj - echo "$(echo "`cat ./api/AltV.Net.Resources.Chat.Api/AltV.Net.Resources.Chat.Api.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net.Resources.Chat.Api/AltV.Net.Resources.Chat.Api.csproj - echo "$(echo "`cat ./api/AltV.Net.EntitySync.ServerEvent/AltV.Net.EntitySync.ServerEvent.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.EntitySync.ServerEvent/AltV.Net.EntitySync.ServerEvent.csproj - echo "$(echo "`cat ./api/AltV.Net.EntitySync.ServerEvent/AltV.Net.EntitySync.ServerEvent.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net.EntitySync.ServerEvent/AltV.Net.EntitySync.ServerEvent.csproj - echo "$(echo "`cat ./api/AltV.Net.Client/AltV.Net.Client.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.Client/AltV.Net.Client.csproj - echo "$(echo "`cat ./api/AltV.Net.Client/AltV.Net.Client.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net.Client/AltV.Net.Client.csproj - echo "$(echo "`cat ./api/AltV.Net.Client.Async/AltV.Net.Client.Async.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.Client.Async/AltV.Net.Client.Async.csproj - echo "$(echo "`cat ./api/AltV.Net.Client.Async/AltV.Net.Client.Async.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net.Client.Async/AltV.Net.Client.Async.csproj - echo "$(echo "`cat ./api/AltV.Net.ColShape/AltV.Net.ColShape.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.ColShape/AltV.Net.ColShape.csproj - echo "$(echo "`cat ./api/AltV.Net.ColShape/AltV.Net.ColShape.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net.ColShape/AltV.Net.ColShape.csproj - echo "$(echo "`cat ./api/AltV.Net.CApi/AltV.Net.CApi.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.CApi/AltV.Net.CApi.csproj - echo "$(echo "`cat ./api/AltV.Net.CApi/AltV.Net.CApi.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net.CApi/AltV.Net.CApi.csproj - echo "$(echo "`cat ./api/AltV.Net.Shared/AltV.Net.Shared.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net.Shared/AltV.Net.Shared.csproj - echo "$(echo "`cat ./api/AltV.Net.Shared/AltV.Net.Shared.csproj`" | perl -pe 's/(.*)<\/PackageReleaseNotes>/Changelog can be found here https:\/\/github.com\/FabianTerhorst\/coreclr-module\/releases\/tag\/'${GITHUB_REF##*/}'<\/PackageReleaseNotes>/g')" > ./api/AltV.Net.Shared/AltV.Net.Shared.csproj - uses: alirezanet/publish-nuget@v3.0.3 with: PROJECT_FILE_PATH: ./api/AltV.Net/AltV.Net.csproj @@ -196,6 +211,38 @@ jobs: INCLUDE_SYMBOLS: true TAG_COMMIT: false NO_BUILD: true + - uses: alirezanet/publish-nuget@v3.0.3 + with: + PROJECT_FILE_PATH: ./api/AltV.Net.Sdk.Client/AltV.Net.Sdk.Client.csproj + VERSION_REGEX: (.*)<\/PackageVersion> + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + INCLUDE_SYMBOLS: true + TAG_COMMIT: false + NO_BUILD: true + - uses: alirezanet/publish-nuget@v3.0.3 + with: + PROJECT_FILE_PATH: ./api/AltV.Net.Sdk.Server/AltV.Net.Sdk.Server.csproj + VERSION_REGEX: (.*)<\/PackageVersion> + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + INCLUDE_SYMBOLS: true + TAG_COMMIT: false + NO_BUILD: true + - uses: alirezanet/publish-nuget@v3.0.3 + with: + PROJECT_FILE_PATH: ./api/AltV.Net.Sdk.Shared/AltV.Net.Sdk.Shared.csproj + VERSION_REGEX: (.*)<\/PackageVersion> + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + INCLUDE_SYMBOLS: true + TAG_COMMIT: false + NO_BUILD: true + - uses: alirezanet/publish-nuget@v3.0.3 + with: + PROJECT_FILE_PATH: ./templates/AltV.Net.Templates.csproj + VERSION_REGEX: (.*)<\/PackageVersion> + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + INCLUDE_SYMBOLS: true + TAG_COMMIT: false + NO_BUILD: true - name: Pack files run: | tar -cvf ./api.tar modules diff --git a/api/AltV.Net.Async/AltAsync.Checkpoint.cs b/api/AltV.Net.Async/AltAsync.Checkpoint.cs index 6859f3863..79f86814c 100644 --- a/api/AltV.Net.Async/AltAsync.Checkpoint.cs +++ b/api/AltV.Net.Async/AltAsync.Checkpoint.cs @@ -41,13 +41,13 @@ public static Task IsPlayerInAsync(this ICheckpoint checkpoint, IPlayer pl [Obsolete("Use Checkpoint.IsEntityIn on async entity instead")] public static Task IsVehicleInAsync(this ICheckpoint checkpoint, IVehicle vehicle) => AltVAsync.Schedule(() => checkpoint.IsVehicleIn(vehicle)); - + [Obsolete("Use async entities instead")] public static Task IsEntityInAsync(this ICheckpoint checkpoint, IEntity entity) => AltVAsync.Schedule(() => checkpoint.IsEntityIn(entity)); [Obsolete("Use async entities instead")] - public static Task RemoveAsync(this ICheckpoint checkpoint) => - AltVAsync.Schedule(checkpoint.Remove); + public static Task DestroyAsync(this ICheckpoint checkpoint) => + AltVAsync.Schedule(checkpoint.Destroy); } } \ No newline at end of file diff --git a/api/AltV.Net.Async/AltAsync.Vehicle.cs b/api/AltV.Net.Async/AltAsync.Vehicle.cs index e920cf664..a6181485d 100644 --- a/api/AltV.Net.Async/AltAsync.Vehicle.cs +++ b/api/AltV.Net.Async/AltAsync.Vehicle.cs @@ -551,8 +551,8 @@ public static Task SetScriptDataAsync(this IVehicle vehicle, string text) => AltVAsync.Schedule(() => vehicle.ScriptData = text); [Obsolete("Use async entities instead")] - public static Task RemoveAsync(this IVehicle vehicle) => - AltVAsync.Schedule(vehicle.Remove); + public static Task DestroyAsync(this IVehicle vehicle) => + AltVAsync.Schedule(vehicle.Destroy); [Obsolete("Use async entities instead")] public static Task GetVisibleAsync(this IVehicle vehicle) => diff --git a/api/AltV.Net.Async/AltAsync.cs b/api/AltV.Net.Async/AltAsync.cs index 0726895bd..4c14be65f 100644 --- a/api/AltV.Net.Async/AltAsync.cs +++ b/api/AltV.Net.Async/AltAsync.cs @@ -108,50 +108,50 @@ public static event PlayerClientEventAsyncDelegate OnPlayerEvent public static event ConsoleCommandAsyncDelegate OnConsoleCommand { - add => Core.ConsoleCommandAsyncDelegateHandlers.Add(value); - remove => Core.ConsoleCommandAsyncDelegateHandlers.Remove(value); + add => Core.ConsoleCommandAsyncEventHandler.Add(value); + remove => Core.ConsoleCommandAsyncEventHandler.Remove(value); } public static event MetaDataChangeAsyncDelegate OnMetaDataChange { - add => Core.MetaDataChangeAsyncDelegateHandlers.Add(value); - remove => Core.MetaDataChangeAsyncDelegateHandlers.Remove(value); + add => Core.MetaDataChangeAsyncEventHandler.Add(value); + remove => Core.MetaDataChangeAsyncEventHandler.Remove(value); } public static event MetaDataChangeAsyncDelegate OnSyncedMetaDataChange { - add => Core.SyncedMetaDataChangeAsyncDelegateHandlers.Add(value); - remove => Core.SyncedMetaDataChangeAsyncDelegateHandlers.Remove(value); + add => Core.SyncedMetaDataChangeAsyncEventHandler.Add(value); + remove => Core.SyncedMetaDataChangeAsyncEventHandler.Remove(value); } public static event ColShapeAsyncDelegate OnColShape { - add => Core.ColShapeAsyncDelegateHandlers.Add(value); - remove => Core.ColShapeAsyncDelegateHandlers.Remove(value); + add => Core.ColShapeAsyncEventHandler.Add(value); + remove => Core.ColShapeAsyncEventHandler.Remove(value); } public static event VehicleDestroyAsyncDelegate OnVehicleDestroy { - add => Core.VehicleDestroyAsyncDelegateHandlers.Add(value); - remove => Core.VehicleDestroyAsyncDelegateHandlers.Remove(value); + add => Core.VehicleDestroyAsyncEventHandler.Add(value); + remove => Core.VehicleDestroyAsyncEventHandler.Remove(value); } public static event FireAsyncDelegate OnFire { - add => Core.FireAsyncDelegateHandlers.Add(value); - remove => Core.FireAsyncDelegateHandlers.Remove(value); + add => Core.FireAsyncEventHandler.Add(value); + remove => Core.FireAsyncEventHandler.Remove(value); } public static event StartProjectileAsyncDelegate OnStartProjectile { - add => Core.StartProjectileAsyncDelegateHandlers.Add(value); - remove => Core.StartProjectileAsyncDelegateHandlers.Remove(value); + add => Core.StartProjectileAsyncEventHandler.Add(value); + remove => Core.StartProjectileAsyncEventHandler.Remove(value); } public static event PlayerWeaponChangeAsyncDelegate OnPlayerWeaponChange { - add => Core.PlayerWeaponChangeAsyncDelegateHandlers.Add(value); - remove => Core.PlayerWeaponChangeAsyncDelegateHandlers.Remove(value); + add => Core.PlayerWeaponChangeAsyncEventHandler.Add(value); + remove => Core.PlayerWeaponChangeAsyncEventHandler.Remove(value); } public static event NetOwnerChangeAsyncDelegate OnNetworkOwnerChange diff --git a/api/AltV.Net.Async/AsyncBaseObjectPool.cs b/api/AltV.Net.Async/AsyncBaseObjectPool.cs index 0c3b8ee67..a72180de6 100644 --- a/api/AltV.Net.Async/AsyncBaseObjectPool.cs +++ b/api/AltV.Net.Async/AsyncBaseObjectPool.cs @@ -31,7 +31,7 @@ public TBaseObject Create(ICore core, IntPtr entityPointer) Add(baseObject); return baseObject; } - + public void Add(TBaseObject entity) { entities[entity.NativePointer] = entity; @@ -48,7 +48,7 @@ public bool Remove(TBaseObject entity) public bool Remove(IntPtr entityPointer) { if (!entities.TryRemove(entityPointer, out var entity) || !entity.Exists) return false; - entity.OnRemove(); + entity.OnDestroy(); lock (entity) { BaseObjectPool.SetEntityNoLongerExists(entity); @@ -80,7 +80,7 @@ public IReadOnlyCollection GetAllObjects() { return (IReadOnlyCollection) entities.Values; } - + public KeyValuePair[] GetObjectsArray() { var arr = new KeyValuePair[entities.Count]; @@ -111,7 +111,7 @@ public void Dispose() { if (!(entity is IInternalBaseObject internalEntity)) continue; internalEntity.ClearData(); - entity.OnRemove(); + entity.OnDestroy(); OnRemove(entity); } entities.Clear(); diff --git a/api/AltV.Net.Async/AsyncCore.cs b/api/AltV.Net.Async/AsyncCore.cs index 5b2ffb371..a9d271725 100644 --- a/api/AltV.Net.Async/AsyncCore.cs +++ b/api/AltV.Net.Async/AsyncCore.cs @@ -81,28 +81,28 @@ internal readonly AsyncEventHandler internal readonly AsyncEventHandler PlayerClientEventAsyncEventHandler = new(); - internal readonly AsyncEventHandler ConsoleCommandAsyncDelegateHandlers = + internal readonly AsyncEventHandler ConsoleCommandAsyncEventHandler = new(EventType.CONSOLE_COMMAND_EVENT); - internal readonly AsyncEventHandler MetaDataChangeAsyncDelegateHandlers = + internal readonly AsyncEventHandler MetaDataChangeAsyncEventHandler = new(EventType.META_CHANGE); - internal readonly AsyncEventHandler SyncedMetaDataChangeAsyncDelegateHandlers = + internal readonly AsyncEventHandler SyncedMetaDataChangeAsyncEventHandler = new(EventType.SYNCED_META_CHANGE); - internal readonly AsyncEventHandler ColShapeAsyncDelegateHandlers = + internal readonly AsyncEventHandler ColShapeAsyncEventHandler = new(EventType.COLSHAPE_EVENT); - internal readonly AsyncEventHandler VehicleDestroyAsyncDelegateHandlers = + internal readonly AsyncEventHandler VehicleDestroyAsyncEventHandler = new(EventType.VEHICLE_DESTROY); - internal readonly AsyncEventHandler FireAsyncDelegateHandlers = + internal readonly AsyncEventHandler FireAsyncEventHandler = new(EventType.FIRE_EVENT); - internal readonly AsyncEventHandler StartProjectileAsyncDelegateHandlers = + internal readonly AsyncEventHandler StartProjectileAsyncEventHandler = new(EventType.START_PROJECTILE_EVENT); - internal readonly AsyncEventHandler PlayerWeaponChangeAsyncDelegateHandlers = + internal readonly AsyncEventHandler PlayerWeaponChangeAsyncEventHandler = new(EventType.PLAYER_WEAPON_CHANGE); internal readonly AsyncEventHandler NetOwnerChangeAsyncEventHandler = @@ -478,19 +478,19 @@ public override void OnServerEventEvent(string name, IntPtr[] args, MValueConst[ public override void OnConsoleCommandEvent(string name, string[] args) { base.OnConsoleCommandEvent(name, args); - if (!ConsoleCommandAsyncDelegateHandlers.HasEvents()) return; + if (!ConsoleCommandAsyncEventHandler.HasEvents()) return; Task.Run(() => - ConsoleCommandAsyncDelegateHandlers.CallAsyncWithoutTask(@delegate => + ConsoleCommandAsyncEventHandler.CallAsyncWithoutTask(@delegate => @delegate(name, args))); } public override void OnMetaDataChangeEvent(IEntity entity, string key, object value) { base.OnMetaDataChangeEvent(entity, key, value); - if (!MetaDataChangeAsyncDelegateHandlers.HasEvents()) return; + if (!MetaDataChangeAsyncEventHandler.HasEvents()) return; Task.Run(async () => { - await MetaDataChangeAsyncDelegateHandlers.CallAsync(@delegate => + await MetaDataChangeAsyncEventHandler.CallAsync(@delegate => @delegate(entity, key, value)); }); } @@ -498,10 +498,10 @@ await MetaDataChangeAsyncDelegateHandlers.CallAsync(@delegate => public override void OnSyncedMetaDataChangeEvent(IEntity entity, string key, object value) { base.OnSyncedMetaDataChangeEvent(entity, key, value); - if (!SyncedMetaDataChangeAsyncDelegateHandlers.HasEvents()) return; + if (!SyncedMetaDataChangeAsyncEventHandler.HasEvents()) return; Task.Run(async () => { - await SyncedMetaDataChangeAsyncDelegateHandlers.CallAsync(@delegate => + await SyncedMetaDataChangeAsyncEventHandler.CallAsync(@delegate => @delegate(entity, key, value)); }); } @@ -509,10 +509,10 @@ await SyncedMetaDataChangeAsyncDelegateHandlers.CallAsync(@delegate => public override void OnColShapeEvent(IColShape colShape, IEntity entity, bool state) { base.OnColShapeEvent(colShape, entity, state); - if (!ColShapeAsyncDelegateHandlers.HasEvents()) return; + if (!ColShapeAsyncEventHandler.HasEvents()) return; Task.Run(async () => { - await ColShapeAsyncDelegateHandlers.CallAsync(@delegate => + await ColShapeAsyncEventHandler.CallAsync(@delegate => @delegate(colShape, entity, state)); }); } @@ -520,10 +520,10 @@ await ColShapeAsyncDelegateHandlers.CallAsync(@delegate => public override void OnVehicleDestroyEvent(IVehicle vehicle) { base.OnVehicleDestroyEvent(vehicle); - if (!VehicleDestroyAsyncDelegateHandlers.HasEvents()) return; + if (!VehicleDestroyAsyncEventHandler.HasEvents()) return; Task.Run(async () => { - await VehicleDestroyAsyncDelegateHandlers.CallAsync(@delegate => + await VehicleDestroyAsyncEventHandler.CallAsync(@delegate => @delegate(vehicle)); }); } @@ -531,10 +531,10 @@ await VehicleDestroyAsyncDelegateHandlers.CallAsync(@delegate => public override void OnFireEvent(IntPtr eventPointer, IPlayer player, FireInfo[] fires) { base.OnFireEvent(eventPointer, player, fires); - if (!FireAsyncDelegateHandlers.HasEvents()) return; + if (!FireAsyncEventHandler.HasEvents()) return; Task.Run(async () => { - await FireAsyncDelegateHandlers.CallAsync(@delegate => + await FireAsyncEventHandler.CallAsync(@delegate => @delegate(player, fires)); }); } @@ -544,10 +544,10 @@ public override void OnStartProjectileEvent(IntPtr eventPointer, IPlayer player, uint ammoHash, uint weaponHash) { base.OnStartProjectileEvent(eventPointer, player, startPosition, direction, ammoHash, weaponHash); - if (!StartProjectileAsyncDelegateHandlers.HasEvents()) return; + if (!StartProjectileAsyncEventHandler.HasEvents()) return; Task.Run(async () => { - await StartProjectileAsyncDelegateHandlers.CallAsync(@delegate => + await StartProjectileAsyncEventHandler.CallAsync(@delegate => @delegate(player, startPosition, direction, ammoHash, weaponHash)); }); } @@ -556,10 +556,10 @@ public override void OnPlayerWeaponChangeEvent(IntPtr eventPointer, IPlayer play uint newWeapon) { base.OnPlayerWeaponChangeEvent(eventPointer, player, oldWeapon, newWeapon); - if (!PlayerWeaponChangeAsyncDelegateHandlers.HasEvents()) return; + if (!PlayerWeaponChangeAsyncEventHandler.HasEvents()) return; Task.Run(async () => { - await PlayerWeaponChangeAsyncDelegateHandlers.CallAsync(@delegate => + await PlayerWeaponChangeAsyncEventHandler.CallAsync(@delegate => @delegate(player, oldWeapon, newWeapon)); }); } @@ -647,8 +647,8 @@ await ServerStartedAsyncEventHandler.CallAsync(@delegate => public override void OnPlayerRequestControlEvent(IEntity target, IPlayer player) { base.OnPlayerRequestControlEvent(target, player); - - if (!PlayerRequestControlHandler.HasEvents()) return; + + if (!PlayerRequestControlAsyncEventHandler.HasEvents()) return; Task.Run(async () => { await PlayerRequestControlAsyncEventHandler.CallAsync(@delegate => @delegate(target, player)); @@ -658,8 +658,8 @@ public override void OnPlayerRequestControlEvent(IEntity target, IPlayer player) public override void OnPlayerChangeAnimationEvent(IPlayer player, uint oldDict, uint newDict, uint oldName, uint newName) { base.OnPlayerChangeAnimationEvent(player, oldDict, newDict, oldName, newName); - - if (!PlayerChangeAnimationHandler.HasEvents()) return; + + if (!PlayerChangeAnimationAsyncEventHandler.HasEvents()) return; Task.Run(async () => { await PlayerChangeAnimationAsyncEventHandler.CallAsync(@delegate => @delegate(player, oldDict, newDict, oldName, newName)); @@ -669,8 +669,8 @@ public override void OnPlayerChangeAnimationEvent(IPlayer player, uint oldDict, public override void OnPlayerChangeInteriorEvent(IPlayer player, uint oldIntLoc, uint newIntLoc) { base.OnPlayerChangeInteriorEvent(player, oldIntLoc, newIntLoc); - - if (!PlayerChangeInteriorHandler.HasEvents()) return; + + if (!PlayerChangeInteriorAsyncEventHandler.HasEvents()) return; Task.Run(async () => { await PlayerChangeInteriorAsyncEventHandler.CallAsync(@delegate => @delegate(player, oldIntLoc, newIntLoc)); @@ -680,8 +680,8 @@ public override void OnPlayerChangeInteriorEvent(IPlayer player, uint oldIntLoc, public override void OnPlayerDimensionChangeEvent(IPlayer player, int oldDimension, int newDimension) { base.OnPlayerDimensionChangeEvent(player, oldDimension, newDimension); - - if (!PlayerChangeInteriorHandler.HasEvents()) return; + + if (!PlayerDimensionChangeAsyncEventHandler.HasEvents()) return; Task.Run(async () => { await PlayerDimensionChangeAsyncEventHandler.CallAsync(@delegate => @delegate(player, oldDimension, newDimension)); diff --git a/api/AltV.Net.Async/AsyncEntityPool.cs b/api/AltV.Net.Async/AsyncEntityPool.cs index beb11344d..c60eb33e1 100644 --- a/api/AltV.Net.Async/AsyncEntityPool.cs +++ b/api/AltV.Net.Async/AsyncEntityPool.cs @@ -73,7 +73,7 @@ public TEntity Create(ICore core, IntPtr entityPointer) { return Create(core, entityPointer, GetId(entityPointer)); } - + public void Add(TEntity entity) { entities[entity.NativePointer] = entity; @@ -104,8 +104,8 @@ public bool Remove(IntPtr entityPointer) cache[entity.NativePointer] = new WeakReference(entity); } } - } - entity.OnRemove(); + } + entity.OnDestroy(); BaseObjectPool.SetEntityNoLongerExists(entity); } @@ -116,7 +116,7 @@ public bool Remove(IntPtr entityPointer) public TEntity Get(IntPtr entityPointer) { if (entities.TryGetValue(entityPointer, out var entity)) return entity; - + lock (cache) { if (cache.TryGetValue(entityPointer, out var cachedEntity)) { @@ -127,7 +127,7 @@ public TEntity Get(IntPtr entityPointer) cache.Remove(entityPointer); } } - + return default; } @@ -151,7 +151,7 @@ public TEntity GetOrCreate(ICore core, IntPtr entityPointer, ushort id) } if (Get(entityPointer) is { } entity) return entity; - + return Create(core, entityPointer, id); } @@ -159,7 +159,7 @@ public IReadOnlyCollection GetAllEntities() { return (IReadOnlyCollection) entities.Values; } - + public KeyValuePair[] GetEntitiesArray() { return entities.ToArray(); @@ -183,7 +183,7 @@ public void Dispose() { if (!(entity is IInternalBaseObject internalEntity)) continue; internalEntity.ClearData(); - entity.OnRemove(); + entity.OnDestroy(); OnRemove(entity); } entities.Clear(); diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncBaseObject.cs b/api/AltV.Net.Async/Elements/Entities/AsyncBaseObject.cs index 5b0973c13..b6befcca3 100644 --- a/api/AltV.Net.Async/Elements/Entities/AsyncBaseObject.cs +++ b/api/AltV.Net.Async/Elements/Entities/AsyncBaseObject.cs @@ -126,7 +126,7 @@ public void SetMetaData(string key, in MValueConst value) lock (BaseObject) { if (!AsyncContext.CheckIfExistsNullable(BaseObject)) return; - + var @const = value; BaseObject.SetMetaData(key, in @const); } @@ -175,7 +175,7 @@ public void ClearData() { BaseObject.ClearData(); } - + public void SetCached(IntPtr pointer) { (BaseObject as IInternalBaseObject)!.SetCached(pointer); @@ -208,14 +208,17 @@ public void CheckIfEntityExistsOrCached() BaseObject.CheckIfEntityExistsOrCached(); } - public void OnRemove() + public void OnDestroy() { - BaseObject.OnRemove(); + BaseObject.OnDestroy(); } - public void Remove() + [Obsolete("Use Destroy() instead")] + public void Remove() => Destroy(); + + public void Destroy() { - AsyncContext.RunOnMainThreadBlockingNullable(() => BaseObject.Remove()); + AsyncContext.RunOnMainThreadBlockingNullable(() => BaseObject.Destroy()); } } } \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncBlip.cs b/api/AltV.Net.Async/Elements/Entities/AsyncBlip.cs index 8e398c4e1..f13051083 100644 --- a/api/AltV.Net.Async/Elements/Entities/AsyncBlip.cs +++ b/api/AltV.Net.Async/Elements/Entities/AsyncBlip.cs @@ -136,7 +136,7 @@ public Rgba RouteColor } } - public Vector2 ScaleXY + public Vector2 ScaleXY { get { @@ -154,8 +154,8 @@ public Vector2 ScaleXY } } } - - public short Display + + public short Display { get { @@ -173,8 +173,8 @@ public short Display } } } - - public Rgba SecondaryColor + + public Rgba SecondaryColor { get { @@ -192,8 +192,8 @@ public Rgba SecondaryColor } } } - - public byte Alpha + + public byte Alpha { get { @@ -211,8 +211,8 @@ public byte Alpha } } } - - public ushort FlashTimer + + public ushort FlashTimer { get { @@ -230,8 +230,8 @@ public ushort FlashTimer } } } - - public ushort FlashInterval + + public ushort FlashInterval { get { @@ -249,8 +249,8 @@ public ushort FlashInterval } } } - - public bool Friendly + + public bool Friendly { get { @@ -268,8 +268,8 @@ public bool Friendly } } } - - public bool Bright + + public bool Bright { get { @@ -287,8 +287,8 @@ public bool Bright } } } - - public ushort Number + + public ushort Number { get { @@ -306,8 +306,8 @@ public ushort Number } } } - - public bool ShowCone + + public bool ShowCone { get { @@ -325,8 +325,8 @@ public bool ShowCone } } } - - public bool Flashes + + public bool Flashes { get { @@ -344,8 +344,8 @@ public bool Flashes } } } - - public bool FlashesAlternate + + public bool FlashesAlternate { get { @@ -363,8 +363,8 @@ public bool FlashesAlternate } } } - - public bool ShortRange + + public bool ShortRange { get { @@ -382,7 +382,7 @@ public bool ShortRange } } } - + public ushort Priority { get @@ -401,8 +401,8 @@ public ushort Priority } } } - - public float Rotation + + public float Rotation { get { @@ -420,8 +420,8 @@ public float Rotation } } } - - public string GxtName + + public string GxtName { get { @@ -439,8 +439,8 @@ public string GxtName } } } - - public string Name + + public string Name { get { @@ -458,8 +458,8 @@ public string Name } } } - - public bool Pulse + + public bool Pulse { get { @@ -477,8 +477,8 @@ public bool Pulse } } } - - public bool MissionCreator + + public bool MissionCreator { get { @@ -496,8 +496,8 @@ public bool MissionCreator } } } - - public bool TickVisible + + public bool TickVisible { get { @@ -515,8 +515,8 @@ public bool TickVisible } } } - - public bool HeadingIndicatorVisible + + public bool HeadingIndicatorVisible { get { @@ -534,8 +534,8 @@ public bool HeadingIndicatorVisible } } } - - public bool OutlineIndicatorVisible + + public bool OutlineIndicatorVisible { get { @@ -553,8 +553,8 @@ public bool OutlineIndicatorVisible } } } - - public bool CrewIndicatorVisible + + public bool CrewIndicatorVisible { get { @@ -572,8 +572,8 @@ public bool CrewIndicatorVisible } } } - - public ushort Category + + public ushort Category { get { @@ -591,8 +591,8 @@ public ushort Category } } } - - public bool HighDetail + + public bool HighDetail { get { @@ -610,8 +610,8 @@ public bool HighDetail } } } - - public bool Shrinked + + public bool Shrinked { get { @@ -647,7 +647,7 @@ public void Fade(uint opacity, uint duration) Blip.Fade(opacity, duration); } } - + [Obsolete("Use new async API instead")] public IBlip ToAsync(IAsyncContext asyncContext) { diff --git a/api/AltV.Net.Benchmarks/BenchmarkVehicle.cs b/api/AltV.Net.Benchmarks/BenchmarkVehicle.cs index a6d7c8aaf..daa9abae4 100644 --- a/api/AltV.Net.Benchmarks/BenchmarkVehicle.cs +++ b/api/AltV.Net.Benchmarks/BenchmarkVehicle.cs @@ -28,7 +28,7 @@ public void GlobalCleanup() { foreach (var vehicle in vehicles) { - vehicle.Remove(); + vehicle.Destroy(); } } } diff --git a/api/AltV.Net.CodeGen/AltV.Net.CodeGen.csproj b/api/AltV.Net.CApi.Generator/AltV.Net.CApi.Generator.csproj similarity index 100% rename from api/AltV.Net.CodeGen/AltV.Net.CodeGen.csproj rename to api/AltV.Net.CApi.Generator/AltV.Net.CApi.Generator.csproj diff --git a/api/AltV.Net.CApi.Generator/FnvHash.cs b/api/AltV.Net.CApi.Generator/FnvHash.cs new file mode 100644 index 000000000..ed452316f --- /dev/null +++ b/api/AltV.Net.CApi.Generator/FnvHash.cs @@ -0,0 +1,16 @@ +namespace AltV.Net.CApi.Generator; + +public static class FnvHash +{ + private const ulong OffsetBasis = 14695981039346656037; + public static ulong Generate(string str) + { + var hash = OffsetBasis; + foreach (var c in str) + { + hash ^= c; + hash += (hash << 1) + (hash << 4) + (hash << 5) + (hash << 7) + (hash << 8) + (hash << 40); + } + return hash; + } +} \ No newline at end of file diff --git a/api/AltV.Net.CApi.Generator/Parser.cs b/api/AltV.Net.CApi.Generator/Parser.cs new file mode 100644 index 000000000..eaae1cbfd --- /dev/null +++ b/api/AltV.Net.CApi.Generator/Parser.cs @@ -0,0 +1,99 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text.RegularExpressions; + +namespace AltV.Net.CApi.Generator; + +public struct CMethod +{ + public string ReturnType; + public string Name; + public ulong Hash; + public string Target; + public CMethodParam[] Params; + public bool NoGc; + public bool OnlyManual; +} + +public struct CMethodParam +{ + public string Type; + /** Used for method signature hashing */ + public string TypeId; + public string Name; +} + +public class Parser +{ + private static readonly Regex ExportRegex = new(@"EXPORT_(?\w+)\s+(?:(?NO_GC)\s+)?(?:(?ONLY_MANUAL)\s+)?(?:(?:const\s+)?(?\S+)\s+(?\S+)\s*\((?.*?)\)|(?\S+)\s*=\s*(?\S+)\s*\(\s*\*\s*\)\s*\((?.*?)\))", RegexOptions.Compiled | RegexOptions.Singleline); + private static readonly Regex ArgsRegex = new(@"(?:const\s+)?(?:\/\**\s*(?.*?)\s*\*\/\s*)?(?.*?)\s*(?[\w\d_\-\[\]]+)(?:,\s*|$)", RegexOptions.Compiled | RegexOptions.Singleline); + private static readonly Regex CommentRegex = new(@"//.*?(?:$|[\n\r]+)", RegexOptions.Compiled); + private static readonly Regex TypeExtraSpaceRegex = new(@" {2,}| +(?=[\*\&]+$)", RegexOptions.Compiled); + + public static IEnumerable ParseMethods(string path) + { + var files = Directory.GetFiles(path, "*.h", SearchOption.AllDirectories); + + foreach (var file in files) + { + var text = CommentRegex.Replace(File.ReadAllText(file), ""); + + foreach (Match match in ExportRegex.Matches(text)) + { + var type = match.Groups["type"].Value; + var name = match.Groups["name"].Value; + var target = match.Groups["target"].Value; + var nogc = match.Groups["nogc"].Length > 0; + var onlyManual = match.Groups["onlymanual"].Length > 0; + var csReturnType = TypeRegistry.CsTypes.FirstOrDefault(t => t.Key == type).Value; + + if (csReturnType is null) throw new Exception($"Unknown return type \"{type}\" in method \"{name}\""); + + + var args = new List(); + var matches = ArgsRegex.Matches(match.Groups["args"].Value); + for (var i = 0; i < matches.Count; i++) + { + var matchArg = matches[i]; + var argType = TypeExtraSpaceRegex.Replace(matchArg.Groups["type"].Value, ""); + var argName = matchArg.Groups["name"].Value; + var csArgName = "_" + argName; + if (argName.EndsWith("[]")) + { + argType += "[]"; + csArgName = argName[..^2]; + } + + var csArgType = matchArg.Groups.ContainsKey("typeOverride") && matchArg.Groups["typeOverride"].Value is not "" + ? matchArg.Groups["typeOverride"].Value + : TypeRegistry.CsTypes.FirstOrDefault(t => t.Key == argType).Value; + + if (csArgType is null) throw new Exception($"Unknown arg type \"{argType}\" in method \"{argName}\" at index {i}"); + + args.Add(new CMethodParam + { + Name = csArgName, + Type = csArgType, + TypeId = argType.Replace("const", "").Replace(" ", "") + }); + } + + var argumentIds = string.Join("", args.Select(e => ";" + e.TypeId)); + + Console.WriteLine($"{name}{argumentIds};{type}"); + yield return new CMethod + { + Name = name, + Hash = FnvHash.Generate($"{name}{argumentIds};{type}"), + ReturnType = csReturnType, + Params = args.ToArray(), + Target = target, + NoGc = nogc, + OnlyManual = onlyManual + }; + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.CApi.Generator/Program.cs b/api/AltV.Net.CApi.Generator/Program.cs new file mode 100644 index 000000000..a1ee8a2d9 --- /dev/null +++ b/api/AltV.Net.CApi.Generator/Program.cs @@ -0,0 +1,156 @@ +using System; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text; + +namespace AltV.Net.CApi.Generator; + +public static class Codegen +{ + + private static string GetCMethodDelegateType(CMethod method) + { + var noGc = method.NoGc ? ", SuppressGCTransition" : ""; + var args = string.Join("", method.Params.Select(p => p.Type + ", ")); + return $"delegate* unmanaged[Cdecl{noGc}]<{args}{method.ReturnType}>"; + } + + private static string GetCMethodArgs(CMethod method) + { + return string.Join(", ", method.Params.Select(p => p.Type + " " + p.Name)); + } + + public static void Generate() + { + var libOutputPath = Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly()!.Location)!, "../../../../AltV.Net.CApi/Libraries"); + var tableOutputPath = Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly()!.Location)!, "../../../../../runtime/c-api/func_table.cpp"); + + var tableHashes = new StringBuilder(); + var tablePointers = new StringBuilder(); + + var parsedMethods = Parser.ParseMethods(Environment.CurrentDirectory).ToArray(); + + // Ignoring hash collisions if the names are the same + // Server and client libraries are allowed to have methods with the colliding names + var collisionFound = false; + foreach (var collision in parsedMethods.GroupBy(e => e.Hash) + .Where(e => e.Count() > 1 && e.DistinctBy(n => n.Name).Count() > 1)) + { + collisionFound = true; + Console.WriteLine("Colliding methods: " + string.Join(",", collision.Select(e => e.Name))); + } + + if (collisionFound) throw new Exception("Collision found!"); + + var capiHash = FnvHash.Generate(string.Join(";", parsedMethods.Select(e => e.Hash))); + + foreach (var group in parsedMethods.OrderBy(e => e.Name).GroupBy(e => e.Target)) + { + #region C# bindings + var target = group.Key.ForceCapitalize(); + + var methods = string.Join("\n", group.Where(e => !e.OnlyManual) + .Select(e => $" public {GetCMethodDelegateType(e)} {e.Name} {{ get; }}")); + + // todo add docs link to the exception + var fallbacks = string.Join("\n", group.Where(e => !e.OnlyManual) + .Select(e => $" [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate {e.ReturnType} {e.Name}Delegate({GetCMethodArgs(e)});\n" + + $" private static {e.ReturnType} {e.Name}Fallback({GetCMethodArgs(e)}) => throw new Exceptions.OutdatedSdkException(\"{e.Name}\", \"{e.Name} SDK method is outdated. Please update your module nuget\");")); + + var loads = string.Join("\n", group.Where(e => !e.OnlyManual) + .Select(e => $" {e.Name} = ({GetCMethodDelegateType(e)}) GetUnmanagedPtr<{e.Name}Delegate>(funcTable, {e.Hash}UL, {e.Name}Fallback);")); + + var output = new StringBuilder(); + + output.Append("// ReSharper disable InconsistentNaming\n"); + output.Append("using AltV.Net.Data;\n"); + output.Append("using System.Numerics;\n"); + output.Append("using System.Runtime.InteropServices;\n"); + output.Append("using AltV.Net.Elements.Args;\n"); + output.Append("using AltV.Net.Elements.Entities;\n\n"); + output.Append("namespace AltV.Net.CApi.Libraries\n{\n"); + + output.Append($" public unsafe interface I{target}Library\n {{\n"); + output.Append($" public bool Outdated {{ get; }}\n"); + output.Append(methods + "\n"); + output.Append(" }\n\n"); + + output.Append($" public unsafe class {target}Library : I{target}Library\n {{\n"); + output.Append($" public readonly uint Methods = {parsedMethods.Length};\n"); + output.Append(methods + "\n"); + output.Append(fallbacks + "\n"); + + output.Append($" public bool Outdated {{ get; private set; }}\n"); + output.Append($" private IntPtr GetUnmanagedPtr(IDictionary funcTable, ulong hash, T fn) where T : Delegate {{\n"); + output.Append($" if (funcTable.TryGetValue(hash, out var ptr)) return ptr;\n"); + output.Append($" Outdated = true;\n"); + output.Append($" return Marshal.GetFunctionPointerForDelegate(fn);\n"); + output.Append($" }}\n"); + output.Append($" public {target}Library(Dictionary funcTable)\n"); + output.Append($" {{\n"); + output.Append($" if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true;\n"); + output.Append($" else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != {capiHash}UL) Outdated = true;\n"); + output.Append(loads + "\n"); + output.Append(" }\n"); + + output.Append(" }\n"); + + output.Append("}"); + + File.WriteAllText(Path.Combine(libOutputPath, $"{target}Library.cs"), output.ToString()); + #endregion + + #region Func table + + if (group.Key != "SHARED") + { + tableHashes.Append($" #ifdef ALT_{group.Key}_API\n"); + tablePointers.Append($" #ifdef ALT_{group.Key}_API\n"); + } + + foreach (var e in group) + { + tableHashes.Append($" {e.Hash}UL,\n"); + tablePointers.Append($" (void*) {e.Name},\n"); + } + + if (group.Key != "SHARED") + { + tableHashes.Append($" #endif\n"); + tablePointers.Append($" #endif\n"); + } + #endregion + } + + var table = new StringBuilder(); + table.Append("#include \"func_table.h\"\n\n"); + + table.Append($"inline uint64_t capiHash = {capiHash}UL;\n"); + table.Append("inline uint64_t capiHashes[] = {\n"); + table.Append(" 0,\n"); + table.Append(tableHashes); + table.Append("};\n\n"); + + table.Append("inline void* capiPointers[] = {\n"); + table.Append(" (void*) &capiHash,\n"); + table.Append(tablePointers); + table.Append("};\n\n"); + + table.Append("const function_table_t* get_func_table() {\n"); + table.Append(" static constexpr function_table_t data {\n"); + table.Append(" std::extent::value,\n"); + table.Append(" &capiHashes[0],\n"); + table.Append(" &capiPointers[0]\n"); + table.Append(" };\n"); + table.Append(" return &data;\n"); + table.Append("}"); + + File.WriteAllText(tableOutputPath, table.ToString()); + } + + public static void Main() + { + Generate(); + } +} \ No newline at end of file diff --git a/api/AltV.Net.CApi.Generator/StringExtensions.cs b/api/AltV.Net.CApi.Generator/StringExtensions.cs new file mode 100644 index 000000000..a4f9464bf --- /dev/null +++ b/api/AltV.Net.CApi.Generator/StringExtensions.cs @@ -0,0 +1,14 @@ +using System; +using System.Linq; + +namespace AltV.Net.CApi.Generator; + +public static class StringExtensions +{ + public static string ForceCapitalize(this string input) + { + ArgumentNullException.ThrowIfNull(input); + if (input.Length < 2) return input.ToUpper(); + return input.First().ToString().ToUpper() + input[1..].ToLower(); + } +} \ No newline at end of file diff --git a/api/AltV.Net.CApi.Generator/TypeRegistry.cs b/api/AltV.Net.CApi.Generator/TypeRegistry.cs new file mode 100644 index 000000000..41d205233 --- /dev/null +++ b/api/AltV.Net.CApi.Generator/TypeRegistry.cs @@ -0,0 +1,165 @@ +using System.Collections.Generic; + +namespace AltV.Net.CApi.Generator; + +public static class TypeRegistry +{ + public static readonly SortedDictionary CsTypes = new() + { + {"int", "int"}, + {"unsigned int", "uint"}, + {"unsigned long", "ulong"}, + {"unsigned short", "ushort"}, + {"unsigned char", "byte"}, + {"long", "long"}, + {"short", "short"}, + {"char", "char"}, + {"float", "float"}, + {"float*", "float*"}, + {"double", "double"}, + {"double&", "double*"}, + {"bool", "bool"}, + {"void", "void"}, + {"char*", "nint"}, + {"char[]", "nint"}, + {"char*&", "nint*"}, + {"char*[]", "nint[]"}, + {"int*", "int*"}, + {"alt::ICore*", "nint"}, + {"alt::ILocalPlayer*", "nint"}, + {"alt::IPlayer*", "nint"}, + {"alt::IVehicle*", "nint"}, + {"alt::IHandlingData*", "nint"}, + {"alt::IHandlingData*&", "nint*"}, + {"alt::IWeaponData*", "nint"}, + {"alt::IWeaponData*&", "nint*"}, + {"alt::IObject*", "nint"}, + {"alt::IObject**", "nint"}, + {"alt::IObject*&", "nint*"}, + {"alt::IMapData*", "nint"}, + {"alt::IAudio*", "nint"}, + {"alt::IHttpClient*", "nint"}, + {"alt::IWebSocketClient*", "nint"}, + {"alt::IEntity*", "nint"}, + {"alt::IWorldObject*", "nint"}, + {"alt::IBaseObject*", "nint"}, + {"alt::IResource*", "nint"}, + {"alt::IResource**", "nint"}, + {"alt::IWebView*", "nint"}, + {"alt::ILocalStorage*", "nint"}, + {"alt::IStatData*", "nint"}, + {"alt::IRmlDocument*", "nint"}, + {"alt::IRmlElement*", "nint"}, + {"alt::IRmlElement**", "nint"}, + {"alt::IRmlElement**&", "nint*"}, + {"void**&", "nint*"}, + {"CSharpResourceImpl*", "nint"}, + {"void**", "nint*"}, + {"alt::MValueConst*", "nint"}, + {"alt::MValueConst**", "nint"}, + {"alt::MValueConst*[]", "nint[]"}, + {"int8_t", "sbyte"}, + {"int8_t&", "sbyte*"}, + {"uint8_t", "byte"}, + {"uint8_t[]", "byte[]"}, + {"uint8_t&", "byte*"}, + {"uint8_t*&", "nint*"}, + {"int16_t", "short"}, + {"int16_t&", "short*"}, + {"uint16_t", "ushort"}, + {"uint16_t&", "ushort*"}, + {"int32_t", "int"}, + {"int32_t&", "int*"}, + {"uint32_t", "uint"}, + {"uint32_t&", "uint*"}, + {"uint32_t*", "nint"}, + {"uint32_t*&", "nint*"}, + {"int64_t", "long"}, + {"int64_t&", "long*"}, + {"uint64_t", "ulong"}, + {"uint64_t&", "ulong*"}, + {"vector2_t", "Vector2"}, + {"vector2_t&", "Vector2*"}, + {"vector3_t", "Vector3"}, + {"vector3_t&", "Vector3*"}, + {"rgba_t", "Rgba"}, + {"rgba_t&", "Rgba*"}, + {"alt::Array", "UIntArray*"}, + + { "position_t&", "Vector3*" }, + { "position_t", "Vector3" }, + { "alt::Position", "Vector3" }, + { "rotation_t&", "Rotation*" }, + { "rotation_t", "Rotation" }, + { "alt::Rotation", "Rotation" }, + + { "cloth_t&", "Cloth*" }, + { "cloth_t", "Cloth" }, + { "dlccloth_t&", "DlcCloth*" }, + { "dlccloth_t", "DlcCloth" }, + { "prop_t&", "Prop*" }, + { "prop_t", "Prop" }, + { "dlcprop_t&", "DlcProp*" }, + { "dlcprop_t", "DlcProp" }, + { "const char*", "nint" }, + { "alt::MValue&", "MValue*" }, + { "alt::MValue*", "MValue*" }, + { "const char*&", "nint*" }, + { "char**", "nint" }, + { "char**&", "nint*" }, + { "alt::Array&", "UIntArray*" }, + { "alt::Array*", "UIntArray*" }, + { "void*", "nint" }, + { "alt::IBaseObject::Type&", "BaseObjectType*" }, + { "player_struct_t*", "ReadOnlyPlayer*" }, + { "alt::RGBA", "Rgba" }, + { "bool*", "byte*" }, + { "alt::IColShape*", "nint" }, + { "alt::ColShapeType", "ColShapeType" }, + { "alt::IVoiceChannel*", "nint" }, + { "alt::IBlip*", "nint" }, + { "alt::Array&", "StringArray*" }, + //{ "alt::MValue::List&", "MValueWriter2.MValueArray*" }, + { "const alt::MValue&", "MValue*" }, + { "const char**", "string[]" }, + { "alt::IResource::Impl*", "nint" }, + { "alt::MValueFunction::Invoker*", "nint" }, + { "MValueFunctionCallback", "MValueFunctionCallback" },//"MValue.Function", + { "CustomInvoker*", "nint" }, + { "alt::MValue[]", "MValue[]" }, + { "alt::MValueList&", "MValue*" }, //no c# representation for MValue list memory layout yet + { "const alt::MValueList&", "MValue*" }, //no c# representation for MValue list memory layout yet + { "alt::MValueDict&", "MValue*" }, //no c# representation for MValue dictionary memory layout yet + { "alt::ICheckpoint*", "nint" }, + {"alt::MValueFunction&", "MValue*"}, //no c# representation for MValue function memory layout yet, this is only in commented code and not required + { "alt::CEvent::Type", "ushort" }, + { "alt::CEvent*", "nint" }, + { "alt::EventCallback", "EventCallback" }, + { "alt::TickCallback", "TickCallback" }, + { "alt::CommandCallback", "CommandCallback" }, + { "alt::Array*", "PlayerPointerArray*" }, + { "alt::Array*", "VehiclePointerArray*" }, + { "alt::Array&", "PlayerPointerArray*" }, + { "alt::Array&", "VehiclePointerArray*" }, + { "alt::Array*", "StringViewArray*" }, + { "alt::Array*", "StringArray*" }, + { "alt::Array*", "MValueWriter2.MValueArray*" }, + { "alt::MValue*[]", "nint[]" }, + { "alt::IPlayer*[]", "nint[]" }, + { "alt::IVehicle*[]", "nint[]" }, + { "alt::IBlip*[]", "nint[]" }, + { "uint8_t*", "byte*" }, + { "head_blend_data_t", "HeadBlendData" }, + { "head_blend_data_t&", "HeadBlendData*" }, + { "head_overlay_t", "HeadOverlay" }, + { "head_overlay_t&", "HeadOverlay*" }, + { "weapon_t*[]", "WeaponData[]" }, + { "alt::Array&", "WeaponArray*" }, + { "vector2_t[]", "Vector2[]" }, + { "alt::IConnectionInfo*", "IntPtr" }, + { "ClrVehicleModelInfo*", "nint" }, + { "ClrPedModelInfo*" , "nint" }, + { "ClrDiscordUser*", "nint" }, + { "ClrConfigNodeData*", "nint" } + }; +} \ No newline at end of file diff --git a/api/AltV.Net.CApi/Exceptions/OutdatedSdkException.cs b/api/AltV.Net.CApi/Exceptions/OutdatedSdkException.cs new file mode 100644 index 000000000..73b8c3a19 --- /dev/null +++ b/api/AltV.Net.CApi/Exceptions/OutdatedSdkException.cs @@ -0,0 +1,13 @@ +namespace AltV.Net.CApi.Exceptions +{ + public class OutdatedSdkException : Exception + { + /** Outdated method or enum name */ + public string OutdatedSubject { get; } + + public OutdatedSdkException(string methodName, string message) : base(message) + { + OutdatedSubject = methodName; + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.CApi/Libraries/ClientLibrary.cs b/api/AltV.Net.CApi/Libraries/ClientLibrary.cs index 680e59c8a..440bb1fde 100644 --- a/api/AltV.Net.CApi/Libraries/ClientLibrary.cs +++ b/api/AltV.Net.CApi/Libraries/ClientLibrary.cs @@ -1,15 +1,15 @@ +// ReSharper disable InconsistentNaming using AltV.Net.Data; using System.Numerics; -using System.Reflection; using System.Runtime.InteropServices; using AltV.Net.Elements.Args; using AltV.Net.Elements.Entities; -using AltV.Net.Native; namespace AltV.Net.CApi.Libraries { public unsafe interface IClientLibrary { + public bool Outdated { get; } public delegate* unmanaged[Cdecl] Audio_AddOutput_Entity { get; } public delegate* unmanaged[Cdecl] Audio_AddOutput_ScriptId { get; } public delegate* unmanaged[Cdecl] Audio_GetBaseObject { get; } @@ -41,16 +41,16 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl] Core_BeginScaleformMovieMethodMinimap { get; } public delegate* unmanaged[Cdecl] Core_ClearFocusOverride { get; } public delegate* unmanaged[Cdecl] Core_ClearPedProp { get; } - public delegate* unmanaged[Cdecl] Core_Client_CreateAreaBlip { get; } - public delegate* unmanaged[Cdecl] Core_Client_CreatePointBlip { get; } - public delegate* unmanaged[Cdecl] Core_Client_CreateRadiusBlip { get; } + public delegate* unmanaged[Cdecl] Core_Client_CreateAreaBlip { get; } + public delegate* unmanaged[Cdecl] Core_Client_CreatePointBlip { get; } + public delegate* unmanaged[Cdecl] Core_Client_CreateRadiusBlip { get; } public delegate* unmanaged[Cdecl] Core_Client_FileExists { get; } public delegate* unmanaged[Cdecl] Core_Client_FileRead { get; } public delegate* unmanaged[Cdecl] Core_CopyToClipboard { get; } public delegate* unmanaged[Cdecl] Core_CreateAudio { get; } - public delegate* unmanaged[Cdecl] Core_CreateCheckpoint { get; } + public delegate* unmanaged[Cdecl] Core_CreateCheckpoint { get; } public delegate* unmanaged[Cdecl] Core_CreateHttpClient { get; } - public delegate* unmanaged[Cdecl] Core_CreateObject { get; } + public delegate* unmanaged[Cdecl] Core_CreateObject { get; } public delegate* unmanaged[Cdecl] Core_CreateRmlDocument { get; } public delegate* unmanaged[Cdecl] Core_CreateWebsocketClient { get; } public delegate* unmanaged[Cdecl] Core_CreateWebView { get; } @@ -75,6 +75,7 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl] Core_GetMapZoomDataByAlias { get; } public delegate* unmanaged[Cdecl] Core_GetMsPerGameMinute { get; } public delegate* unmanaged[Cdecl] Core_GetObjects { get; } + public delegate* unmanaged[Cdecl] Core_GetPedBonePos { get; } public delegate* unmanaged[Cdecl] Core_GetPermissionState { get; } public delegate* unmanaged[Cdecl] Core_GetPing { get; } public delegate* unmanaged[Cdecl] Core_GetScreenResolution { get; } @@ -486,20 +487,27 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_SetScrollTop { get; } public delegate* unmanaged[Cdecl] Vehicle_GetAbsLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_GetBatteryLightState { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetCurrentGear { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetCurrentRPM { get; } public delegate* unmanaged[Cdecl] Vehicle_GetEngineLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_GetEngineTemperature { get; } public delegate* unmanaged[Cdecl] Vehicle_GetFuelLevel { get; } - public delegate* unmanaged[Cdecl] Vehicle_GetGear { get; } - public delegate* unmanaged[Cdecl] Vehicle_GetIndicatorLights { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetLightsIndicator { get; } public delegate* unmanaged[Cdecl] Vehicle_GetMaxGear { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetOccupiedSeatsCount { get; } public delegate* unmanaged[Cdecl] Vehicle_GetOilLevel { get; } public delegate* unmanaged[Cdecl] Vehicle_GetOilLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_GetPetrolLightState { get; } - public delegate* unmanaged[Cdecl] Vehicle_GetRPM { get; } public delegate* unmanaged[Cdecl] Vehicle_GetSeatCount { get; } public delegate* unmanaged[Cdecl] Vehicle_GetSpeedVector { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetWheelCamber { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetWheelHeight { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetWheelRimRadius { get; } public delegate* unmanaged[Cdecl] Vehicle_GetWheelSpeed { get; } public delegate* unmanaged[Cdecl] Vehicle_GetWheelSurfaceMaterial { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetWheelTrackWidth { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetWheelTyreRadius { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetWheelTyreWidth { get; } public delegate* unmanaged[Cdecl] Vehicle_Handling_GetAcceleration { get; } public delegate* unmanaged[Cdecl] Vehicle_Handling_GetAntiRollBarBiasFront { get; } public delegate* unmanaged[Cdecl] Vehicle_Handling_GetAntiRollBarBiasRear { get; } @@ -632,19 +640,27 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl] Vehicle_Handling_SetunkFloat5 { get; } public delegate* unmanaged[Cdecl] Vehicle_Handling_SetWeaponDamageMult { get; } public delegate* unmanaged[Cdecl] Vehicle_IsHandlingModified { get; } + public delegate* unmanaged[Cdecl] Vehicle_IsTaxiLightOn { get; } public delegate* unmanaged[Cdecl] Vehicle_ResetDashboardLights { get; } public delegate* unmanaged[Cdecl] Vehicle_ResetHandling { get; } public delegate* unmanaged[Cdecl] Vehicle_SetAbsLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_SetBatteryLightState { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetCurrentGear { get; } public delegate* unmanaged[Cdecl] Vehicle_SetEngineLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_SetEngineTemperature { get; } public delegate* unmanaged[Cdecl] Vehicle_SetFuelLevel { get; } - public delegate* unmanaged[Cdecl] Vehicle_SetGear { get; } - public delegate* unmanaged[Cdecl] Vehicle_SetIndicatorLights { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetLightsIndicator { get; } public delegate* unmanaged[Cdecl] Vehicle_SetMaxGear { get; } public delegate* unmanaged[Cdecl] Vehicle_SetOilLevel { get; } public delegate* unmanaged[Cdecl] Vehicle_SetOilLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_SetPetrolLightState { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetWheelCamber { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetWheelHeight { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetWheelRimRadius { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetWheelTrackWidth { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetWheelTyreRadius { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetWheelTyreWidth { get; } + public delegate* unmanaged[Cdecl] Vehicle_ToggleTaxiLight { get; } public delegate* unmanaged[Cdecl] WeaponData_GetAccuracySpread { get; } public delegate* unmanaged[Cdecl] WeaponData_GetAnimReloadRate { get; } public delegate* unmanaged[Cdecl] WeaponData_GetClipSize { get; } @@ -710,7 +726,7 @@ public unsafe interface IClientLibrary public unsafe class ClientLibrary : IClientLibrary { - public readonly uint Methods = 1312; + public readonly uint Methods = 1328; public delegate* unmanaged[Cdecl] Audio_AddOutput_Entity { get; } public delegate* unmanaged[Cdecl] Audio_AddOutput_ScriptId { get; } public delegate* unmanaged[Cdecl] Audio_GetBaseObject { get; } @@ -742,16 +758,16 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] Core_BeginScaleformMovieMethodMinimap { get; } public delegate* unmanaged[Cdecl] Core_ClearFocusOverride { get; } public delegate* unmanaged[Cdecl] Core_ClearPedProp { get; } - public delegate* unmanaged[Cdecl] Core_Client_CreateAreaBlip { get; } - public delegate* unmanaged[Cdecl] Core_Client_CreatePointBlip { get; } - public delegate* unmanaged[Cdecl] Core_Client_CreateRadiusBlip { get; } + public delegate* unmanaged[Cdecl] Core_Client_CreateAreaBlip { get; } + public delegate* unmanaged[Cdecl] Core_Client_CreatePointBlip { get; } + public delegate* unmanaged[Cdecl] Core_Client_CreateRadiusBlip { get; } public delegate* unmanaged[Cdecl] Core_Client_FileExists { get; } public delegate* unmanaged[Cdecl] Core_Client_FileRead { get; } public delegate* unmanaged[Cdecl] Core_CopyToClipboard { get; } public delegate* unmanaged[Cdecl] Core_CreateAudio { get; } - public delegate* unmanaged[Cdecl] Core_CreateCheckpoint { get; } + public delegate* unmanaged[Cdecl] Core_CreateCheckpoint { get; } public delegate* unmanaged[Cdecl] Core_CreateHttpClient { get; } - public delegate* unmanaged[Cdecl] Core_CreateObject { get; } + public delegate* unmanaged[Cdecl] Core_CreateObject { get; } public delegate* unmanaged[Cdecl] Core_CreateRmlDocument { get; } public delegate* unmanaged[Cdecl] Core_CreateWebsocketClient { get; } public delegate* unmanaged[Cdecl] Core_CreateWebView { get; } @@ -776,6 +792,7 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] Core_GetMapZoomDataByAlias { get; } public delegate* unmanaged[Cdecl] Core_GetMsPerGameMinute { get; } public delegate* unmanaged[Cdecl] Core_GetObjects { get; } + public delegate* unmanaged[Cdecl] Core_GetPedBonePos { get; } public delegate* unmanaged[Cdecl] Core_GetPermissionState { get; } public delegate* unmanaged[Cdecl] Core_GetPing { get; } public delegate* unmanaged[Cdecl] Core_GetScreenResolution { get; } @@ -1187,20 +1204,27 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_SetScrollTop { get; } public delegate* unmanaged[Cdecl] Vehicle_GetAbsLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_GetBatteryLightState { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetCurrentGear { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetCurrentRPM { get; } public delegate* unmanaged[Cdecl] Vehicle_GetEngineLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_GetEngineTemperature { get; } public delegate* unmanaged[Cdecl] Vehicle_GetFuelLevel { get; } - public delegate* unmanaged[Cdecl] Vehicle_GetGear { get; } - public delegate* unmanaged[Cdecl] Vehicle_GetIndicatorLights { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetLightsIndicator { get; } public delegate* unmanaged[Cdecl] Vehicle_GetMaxGear { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetOccupiedSeatsCount { get; } public delegate* unmanaged[Cdecl] Vehicle_GetOilLevel { get; } public delegate* unmanaged[Cdecl] Vehicle_GetOilLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_GetPetrolLightState { get; } - public delegate* unmanaged[Cdecl] Vehicle_GetRPM { get; } public delegate* unmanaged[Cdecl] Vehicle_GetSeatCount { get; } public delegate* unmanaged[Cdecl] Vehicle_GetSpeedVector { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetWheelCamber { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetWheelHeight { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetWheelRimRadius { get; } public delegate* unmanaged[Cdecl] Vehicle_GetWheelSpeed { get; } public delegate* unmanaged[Cdecl] Vehicle_GetWheelSurfaceMaterial { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetWheelTrackWidth { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetWheelTyreRadius { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetWheelTyreWidth { get; } public delegate* unmanaged[Cdecl] Vehicle_Handling_GetAcceleration { get; } public delegate* unmanaged[Cdecl] Vehicle_Handling_GetAntiRollBarBiasFront { get; } public delegate* unmanaged[Cdecl] Vehicle_Handling_GetAntiRollBarBiasRear { get; } @@ -1333,19 +1357,27 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] Vehicle_Handling_SetunkFloat5 { get; } public delegate* unmanaged[Cdecl] Vehicle_Handling_SetWeaponDamageMult { get; } public delegate* unmanaged[Cdecl] Vehicle_IsHandlingModified { get; } + public delegate* unmanaged[Cdecl] Vehicle_IsTaxiLightOn { get; } public delegate* unmanaged[Cdecl] Vehicle_ResetDashboardLights { get; } public delegate* unmanaged[Cdecl] Vehicle_ResetHandling { get; } public delegate* unmanaged[Cdecl] Vehicle_SetAbsLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_SetBatteryLightState { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetCurrentGear { get; } public delegate* unmanaged[Cdecl] Vehicle_SetEngineLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_SetEngineTemperature { get; } public delegate* unmanaged[Cdecl] Vehicle_SetFuelLevel { get; } - public delegate* unmanaged[Cdecl] Vehicle_SetGear { get; } - public delegate* unmanaged[Cdecl] Vehicle_SetIndicatorLights { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetLightsIndicator { get; } public delegate* unmanaged[Cdecl] Vehicle_SetMaxGear { get; } public delegate* unmanaged[Cdecl] Vehicle_SetOilLevel { get; } public delegate* unmanaged[Cdecl] Vehicle_SetOilLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_SetPetrolLightState { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetWheelCamber { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetWheelHeight { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetWheelRimRadius { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetWheelTrackWidth { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetWheelTyreRadius { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetWheelTyreWidth { get; } + public delegate* unmanaged[Cdecl] Vehicle_ToggleTaxiLight { get; } public delegate* unmanaged[Cdecl] WeaponData_GetAccuracySpread { get; } public delegate* unmanaged[Cdecl] WeaponData_GetAnimReloadRate { get; } public delegate* unmanaged[Cdecl] WeaponData_GetClipSize { get; } @@ -1407,704 +1439,2152 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] WebView_SetZoomLevel { get; } public delegate* unmanaged[Cdecl] WebView_Unfocus { get; } public delegate* unmanaged[Cdecl] Win_GetTaskDialog { get; } + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_AddOutput_EntityDelegate(nint _audio, nint _value); + private static void Audio_AddOutput_EntityFallback(nint _audio, nint _value) => throw new Exceptions.OutdatedSdkException("Audio_AddOutput_Entity", "Audio_AddOutput_Entity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_AddOutput_ScriptIdDelegate(nint _audio, uint _value); + private static void Audio_AddOutput_ScriptIdFallback(nint _audio, uint _value) => throw new Exceptions.OutdatedSdkException("Audio_AddOutput_ScriptId", "Audio_AddOutput_ScriptId SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Audio_GetBaseObjectDelegate(nint _audio); + private static nint Audio_GetBaseObjectFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_GetBaseObject", "Audio_GetBaseObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Audio_GetCategoryDelegate(nint _audio); + private static uint Audio_GetCategoryFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_GetCategory", "Audio_GetCategory SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate double Audio_GetCurrentTimeDelegate(nint _audio); + private static double Audio_GetCurrentTimeFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_GetCurrentTime", "Audio_GetCurrentTime SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Audio_GetLoopedDelegate(nint _audio); + private static byte Audio_GetLoopedFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_GetLooped", "Audio_GetLooped SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate double Audio_GetMaxTimeDelegate(nint _audio); + private static double Audio_GetMaxTimeFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_GetMaxTime", "Audio_GetMaxTime SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_GetOutputsDelegate(nint _audio, nint* _entityArray, nint* _entityTypesArray, nint* _scriptIdArray, uint* _size); + private static void Audio_GetOutputsFallback(nint _audio, nint* _entityArray, nint* _entityTypesArray, nint* _scriptIdArray, uint* _size) => throw new Exceptions.OutdatedSdkException("Audio_GetOutputs", "Audio_GetOutputs SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Audio_GetSourceDelegate(nint _audio, int* _size); + private static nint Audio_GetSourceFallback(nint _audio, int* _size) => throw new Exceptions.OutdatedSdkException("Audio_GetSource", "Audio_GetSource SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Audio_GetVolumeDelegate(nint _audio); + private static float Audio_GetVolumeFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_GetVolume", "Audio_GetVolume SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Audio_IsFrontendPlayDelegate(nint _audio); + private static byte Audio_IsFrontendPlayFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_IsFrontendPlay", "Audio_IsFrontendPlay SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Audio_IsPlayingDelegate(nint _audio); + private static byte Audio_IsPlayingFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_IsPlaying", "Audio_IsPlaying SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_PauseDelegate(nint _audio); + private static void Audio_PauseFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_Pause", "Audio_Pause SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_PlayDelegate(nint _audio); + private static void Audio_PlayFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_Play", "Audio_Play SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_RemoveOutput_EntityDelegate(nint _audio, nint _value); + private static void Audio_RemoveOutput_EntityFallback(nint _audio, nint _value) => throw new Exceptions.OutdatedSdkException("Audio_RemoveOutput_Entity", "Audio_RemoveOutput_Entity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_RemoveOutput_ScriptIdDelegate(nint _audio, uint _value); + private static void Audio_RemoveOutput_ScriptIdFallback(nint _audio, uint _value) => throw new Exceptions.OutdatedSdkException("Audio_RemoveOutput_ScriptId", "Audio_RemoveOutput_ScriptId SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_ResetDelegate(nint _audio); + private static void Audio_ResetFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_Reset", "Audio_Reset SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_SeekDelegate(nint _audio, double _time); + private static void Audio_SeekFallback(nint _audio, double _time) => throw new Exceptions.OutdatedSdkException("Audio_Seek", "Audio_Seek SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_SetCategoryDelegate(nint _audio, uint _value); + private static void Audio_SetCategoryFallback(nint _audio, uint _value) => throw new Exceptions.OutdatedSdkException("Audio_SetCategory", "Audio_SetCategory SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_SetLoopedDelegate(nint _audio, byte _value); + private static void Audio_SetLoopedFallback(nint _audio, byte _value) => throw new Exceptions.OutdatedSdkException("Audio_SetLooped", "Audio_SetLooped SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_SetSourceDelegate(nint _audio, nint _source); + private static void Audio_SetSourceFallback(nint _audio, nint _source) => throw new Exceptions.OutdatedSdkException("Audio_SetSource", "Audio_SetSource SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_SetVolumeDelegate(nint _audio, float _value); + private static void Audio_SetVolumeFallback(nint _audio, float _value) => throw new Exceptions.OutdatedSdkException("Audio_SetVolume", "Audio_SetVolume SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Blip_GetScriptIDDelegate(nint _blip); + private static uint Blip_GetScriptIDFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetScriptID", "Blip_GetScriptID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_IsRemoteDelegate(nint _blip); + private static byte Blip_IsRemoteFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_IsRemote", "Blip_IsRemote SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_AddGXTTextDelegate(nint _core, nint _resource, uint _key, nint _value); + private static void Core_AddGXTTextFallback(nint _core, nint _resource, uint _key, nint _value) => throw new Exceptions.OutdatedSdkException("Core_AddGXTText", "Core_AddGXTText SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_AreGameControlsEnabledDelegate(nint _core); + private static byte Core_AreGameControlsEnabledFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_AreGameControlsEnabled", "Core_AreGameControlsEnabled SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_AreRmlControlsEnabledDelegate(nint _core); + private static byte Core_AreRmlControlsEnabledFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_AreRmlControlsEnabled", "Core_AreRmlControlsEnabled SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_AreVoiceControlsEnabledDelegate(nint _core); + private static byte Core_AreVoiceControlsEnabledFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_AreVoiceControlsEnabled", "Core_AreVoiceControlsEnabled SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_BeginScaleformMovieMethodMinimapDelegate(nint _core, nint _methodName); + private static byte Core_BeginScaleformMovieMethodMinimapFallback(nint _core, nint _methodName) => throw new Exceptions.OutdatedSdkException("Core_BeginScaleformMovieMethodMinimap", "Core_BeginScaleformMovieMethodMinimap SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ClearFocusOverrideDelegate(nint _core); + private static void Core_ClearFocusOverrideFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_ClearFocusOverride", "Core_ClearFocusOverride SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ClearPedPropDelegate(nint _core, int _scriptID, byte _component); + private static void Core_ClearPedPropFallback(nint _core, int _scriptID, byte _component) => throw new Exceptions.OutdatedSdkException("Core_ClearPedProp", "Core_ClearPedProp SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_Client_CreateAreaBlipDelegate(nint _core, Vector3 _position, float _width, float _height, nint _resource); + private static nint Core_Client_CreateAreaBlipFallback(nint _core, Vector3 _position, float _width, float _height, nint _resource) => throw new Exceptions.OutdatedSdkException("Core_Client_CreateAreaBlip", "Core_Client_CreateAreaBlip SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_Client_CreatePointBlipDelegate(nint _core, Vector3 _position, nint _resource); + private static nint Core_Client_CreatePointBlipFallback(nint _core, Vector3 _position, nint _resource) => throw new Exceptions.OutdatedSdkException("Core_Client_CreatePointBlip", "Core_Client_CreatePointBlip SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_Client_CreateRadiusBlipDelegate(nint _core, Vector3 _position, float _radius, nint _resource); + private static nint Core_Client_CreateRadiusBlipFallback(nint _core, Vector3 _position, float _radius, nint _resource) => throw new Exceptions.OutdatedSdkException("Core_Client_CreateRadiusBlip", "Core_Client_CreateRadiusBlip SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_Client_FileExistsDelegate(nint _core, nint _resource, nint _path); + private static byte Core_Client_FileExistsFallback(nint _core, nint _resource, nint _path) => throw new Exceptions.OutdatedSdkException("Core_Client_FileExists", "Core_Client_FileExists SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_Client_FileReadDelegate(nint _core, nint _resource, nint _path, int* _size); + private static nint Core_Client_FileReadFallback(nint _core, nint _resource, nint _path, int* _size) => throw new Exceptions.OutdatedSdkException("Core_Client_FileRead", "Core_Client_FileRead SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_CopyToClipboardDelegate(nint _core, nint _value); + private static byte Core_CopyToClipboardFallback(nint _core, nint _value) => throw new Exceptions.OutdatedSdkException("Core_CopyToClipboard", "Core_CopyToClipboard SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateAudioDelegate(nint _core, nint _resource, nint _source, float _volume, uint _category, byte _frontend); + private static nint Core_CreateAudioFallback(nint _core, nint _resource, nint _source, float _volume, uint _category, byte _frontend) => throw new Exceptions.OutdatedSdkException("Core_CreateAudio", "Core_CreateAudio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateCheckpointDelegate(nint _server, byte _type, Vector3 _pos, Vector3 _nextPos, float _radius, float _height, Rgba _color, nint _resource); + private static nint Core_CreateCheckpointFallback(nint _server, byte _type, Vector3 _pos, Vector3 _nextPos, float _radius, float _height, Rgba _color, nint _resource) => throw new Exceptions.OutdatedSdkException("Core_CreateCheckpoint", "Core_CreateCheckpoint SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateHttpClientDelegate(nint _core, nint _resource); + private static nint Core_CreateHttpClientFallback(nint _core, nint _resource) => throw new Exceptions.OutdatedSdkException("Core_CreateHttpClient", "Core_CreateHttpClient SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateObjectDelegate(nint _core, uint _modelHash, Vector3 _position, Vector3 _rot, byte _noOffset, byte _dynamic, nint _resource); + private static nint Core_CreateObjectFallback(nint _core, uint _modelHash, Vector3 _position, Vector3 _rot, byte _noOffset, byte _dynamic, nint _resource) => throw new Exceptions.OutdatedSdkException("Core_CreateObject", "Core_CreateObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateRmlDocumentDelegate(nint _core, nint _resource, nint _url); + private static nint Core_CreateRmlDocumentFallback(nint _core, nint _resource, nint _url) => throw new Exceptions.OutdatedSdkException("Core_CreateRmlDocument", "Core_CreateRmlDocument SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateWebsocketClientDelegate(nint _core, nint _resource, nint _url); + private static nint Core_CreateWebsocketClientFallback(nint _core, nint _resource, nint _url) => throw new Exceptions.OutdatedSdkException("Core_CreateWebsocketClient", "Core_CreateWebsocketClient SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateWebViewDelegate(nint _core, nint _resource, nint _url, Vector2 _pos, Vector2 _size, byte _isOverlay); + private static nint Core_CreateWebViewFallback(nint _core, nint _resource, nint _url, Vector2 _pos, Vector2 _size, byte _isOverlay) => throw new Exceptions.OutdatedSdkException("Core_CreateWebView", "Core_CreateWebView SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateWebView3DDelegate(nint _core, nint _resource, nint _url, uint _hash, nint _targetTexture); + private static nint Core_CreateWebView3DFallback(nint _core, nint _resource, nint _url, uint _hash, nint _targetTexture) => throw new Exceptions.OutdatedSdkException("Core_CreateWebView3D", "Core_CreateWebView3D SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DeallocDiscordUserDelegate(nint _user); + private static void Core_DeallocDiscordUserFallback(nint _user) => throw new Exceptions.OutdatedSdkException("Core_DeallocDiscordUser", "Core_DeallocDiscordUser SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_Discord_GetOAuth2TokenDelegate(nint _core, nint _appId, ClientEvents.DiscordOAuth2TokenResultModuleDelegate _delegate); + private static void Core_Discord_GetOAuth2TokenFallback(nint _core, nint _appId, ClientEvents.DiscordOAuth2TokenResultModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Core_Discord_GetOAuth2Token", "Core_Discord_GetOAuth2Token SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_DoesConfigFlagExistDelegate(nint _core, nint _flag); + private static byte Core_DoesConfigFlagExistFallback(nint _core, nint _flag) => throw new Exceptions.OutdatedSdkException("Core_DoesConfigFlagExist", "Core_DoesConfigFlagExist SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_GetCamPosDelegate(nint _core, Vector3* _out); + private static void Core_GetCamPosFallback(nint _core, Vector3* _out) => throw new Exceptions.OutdatedSdkException("Core_GetCamPos", "Core_GetCamPos SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetClientPathDelegate(nint _core, int* _size); + private static nint Core_GetClientPathFallback(nint _core, int* _size) => throw new Exceptions.OutdatedSdkException("Core_GetClientPath", "Core_GetClientPath SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_GetConfigFlagDelegate(nint _core, nint _flag); + private static byte Core_GetConfigFlagFallback(nint _core, nint _flag) => throw new Exceptions.OutdatedSdkException("Core_GetConfigFlag", "Core_GetConfigFlag SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_GetCursorPosDelegate(nint _core, Vector2* _out, byte _normalized); + private static void Core_GetCursorPosFallback(nint _core, Vector2* _out, byte _normalized) => throw new Exceptions.OutdatedSdkException("Core_GetCursorPos", "Core_GetCursorPos SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetDiscordUserDelegate(nint _core); + private static nint Core_GetDiscordUserFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetDiscordUser", "Core_GetDiscordUser SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetFocusOverrideEntityDelegate(nint _core, byte* _type); + private static nint Core_GetFocusOverrideEntityFallback(nint _core, byte* _type) => throw new Exceptions.OutdatedSdkException("Core_GetFocusOverrideEntity", "Core_GetFocusOverrideEntity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_GetFocusOverrideOffsetDelegate(nint _core, Vector3* _offset); + private static void Core_GetFocusOverrideOffsetFallback(nint _core, Vector3* _offset) => throw new Exceptions.OutdatedSdkException("Core_GetFocusOverrideOffset", "Core_GetFocusOverrideOffset SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_GetFocusOverridePosDelegate(nint _core, Vector3* _pos); + private static void Core_GetFocusOverridePosFallback(nint _core, Vector3* _pos) => throw new Exceptions.OutdatedSdkException("Core_GetFocusOverridePos", "Core_GetFocusOverridePos SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Core_GetFPSDelegate(nint _core); + private static ushort Core_GetFPSFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetFPS", "Core_GetFPS SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetGXTTextDelegate(nint _core, nint _resource, uint _key, int* _size); + private static nint Core_GetGXTTextFallback(nint _core, nint _resource, uint _key, int* _size) => throw new Exceptions.OutdatedSdkException("Core_GetGXTText", "Core_GetGXTText SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetHeadshotBase64Delegate(nint _core, byte _id, int* _size); + private static nint Core_GetHeadshotBase64Fallback(nint _core, byte _id, int* _size) => throw new Exceptions.OutdatedSdkException("Core_GetHeadshotBase64", "Core_GetHeadshotBase64 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetLicenseHashDelegate(nint _core, int* _size); + private static nint Core_GetLicenseHashFallback(nint _core, int* _size) => throw new Exceptions.OutdatedSdkException("Core_GetLicenseHash", "Core_GetLicenseHash SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetLocaleDelegate(nint _core, int* _size); + private static nint Core_GetLocaleFallback(nint _core, int* _size) => throw new Exceptions.OutdatedSdkException("Core_GetLocale", "Core_GetLocale SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetLocalMetaDelegate(nint _core, nint _key); + private static nint Core_GetLocalMetaFallback(nint _core, nint _key) => throw new Exceptions.OutdatedSdkException("Core_GetLocalMeta", "Core_GetLocalMeta SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetMapZoomDataByAliasDelegate(nint _core, nint _alias, uint* _id); + private static nint Core_GetMapZoomDataByAliasFallback(nint _core, nint _alias, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_GetMapZoomDataByAlias", "Core_GetMapZoomDataByAlias SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int Core_GetMsPerGameMinuteDelegate(nint _core); + private static int Core_GetMsPerGameMinuteFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetMsPerGameMinute", "Core_GetMsPerGameMinute SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetObjectsDelegate(nint _core, uint* _size); + private static nint Core_GetObjectsFallback(nint _core, uint* _size) => throw new Exceptions.OutdatedSdkException("Core_GetObjects", "Core_GetObjects SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_GetPedBonePosDelegate(nint _core, int _scriptId, ushort _boneId, Vector3* _pos); + private static void Core_GetPedBonePosFallback(nint _core, int _scriptId, ushort _boneId, Vector3* _pos) => throw new Exceptions.OutdatedSdkException("Core_GetPedBonePos", "Core_GetPedBonePos SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_GetPermissionStateDelegate(nint _core, byte _permission); + private static byte Core_GetPermissionStateFallback(nint _core, byte _permission) => throw new Exceptions.OutdatedSdkException("Core_GetPermissionState", "Core_GetPermissionState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Core_GetPingDelegate(nint _core); + private static ushort Core_GetPingFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetPing", "Core_GetPing SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_GetScreenResolutionDelegate(nint _core, Vector2* _out); + private static void Core_GetScreenResolutionFallback(nint _core, Vector2* _out) => throw new Exceptions.OutdatedSdkException("Core_GetScreenResolution", "Core_GetScreenResolution SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetServerIpDelegate(nint _core, int* _size); + private static nint Core_GetServerIpFallback(nint _core, int* _size) => throw new Exceptions.OutdatedSdkException("Core_GetServerIp", "Core_GetServerIp SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Core_GetServerPortDelegate(nint _core); + private static ushort Core_GetServerPortFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetServerPort", "Core_GetServerPort SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_GetStatBoolDelegate(nint _core, nint _stat); + private static byte Core_GetStatBoolFallback(nint _core, nint _stat) => throw new Exceptions.OutdatedSdkException("Core_GetStatBool", "Core_GetStatBool SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetStatDataDelegate(nint _core, nint _stat); + private static nint Core_GetStatDataFallback(nint _core, nint _stat) => throw new Exceptions.OutdatedSdkException("Core_GetStatData", "Core_GetStatData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Core_GetStatFloatDelegate(nint _core, nint _stat); + private static float Core_GetStatFloatFallback(nint _core, nint _stat) => throw new Exceptions.OutdatedSdkException("Core_GetStatFloat", "Core_GetStatFloat SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int Core_GetStatIntDelegate(nint _core, nint _stat); + private static int Core_GetStatIntFallback(nint _core, nint _stat) => throw new Exceptions.OutdatedSdkException("Core_GetStatInt", "Core_GetStatInt SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate long Core_GetStatLongDelegate(nint _core, nint _stat); + private static long Core_GetStatLongFallback(nint _core, nint _stat) => throw new Exceptions.OutdatedSdkException("Core_GetStatLong", "Core_GetStatLong SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetStatStringDelegate(nint _core, nint _stat, int* _size); + private static nint Core_GetStatStringFallback(nint _core, nint _stat, int* _size) => throw new Exceptions.OutdatedSdkException("Core_GetStatString", "Core_GetStatString SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetStatTypeDelegate(nint _core, nint _stat, int* _size); + private static nint Core_GetStatTypeFallback(nint _core, nint _stat, int* _size) => throw new Exceptions.OutdatedSdkException("Core_GetStatType", "Core_GetStatType SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Core_GetStatUInt16Delegate(nint _core, nint _stat); + private static ushort Core_GetStatUInt16Fallback(nint _core, nint _stat) => throw new Exceptions.OutdatedSdkException("Core_GetStatUInt16", "Core_GetStatUInt16 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Core_GetStatUInt32Delegate(nint _core, nint _stat); + private static uint Core_GetStatUInt32Fallback(nint _core, nint _stat) => throw new Exceptions.OutdatedSdkException("Core_GetStatUInt32", "Core_GetStatUInt32 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Core_GetStatUInt64Delegate(nint _core, nint _stat); + private static ulong Core_GetStatUInt64Fallback(nint _core, nint _stat) => throw new Exceptions.OutdatedSdkException("Core_GetStatUInt64", "Core_GetStatUInt64 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_GetStatUInt8Delegate(nint _core, nint _stat); + private static byte Core_GetStatUInt8Fallback(nint _core, nint _stat) => throw new Exceptions.OutdatedSdkException("Core_GetStatUInt8", "Core_GetStatUInt8 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Core_GetTotalPacketsLostDelegate(nint _core); + private static uint Core_GetTotalPacketsLostFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetTotalPacketsLost", "Core_GetTotalPacketsLost SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Core_GetTotalPacketsSentDelegate(nint _core); + private static ulong Core_GetTotalPacketsSentFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetTotalPacketsSent", "Core_GetTotalPacketsSent SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Core_GetVoiceActivationKeyDelegate(nint _core); + private static uint Core_GetVoiceActivationKeyFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetVoiceActivationKey", "Core_GetVoiceActivationKey SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_GetVoiceInputMutedDelegate(nint _core); + private static byte Core_GetVoiceInputMutedFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetVoiceInputMuted", "Core_GetVoiceInputMuted SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetWorldObjectsDelegate(nint _core, uint* _size); + private static nint Core_GetWorldObjectsFallback(nint _core, uint* _size) => throw new Exceptions.OutdatedSdkException("Core_GetWorldObjects", "Core_GetWorldObjects SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_HasLocalMetaDelegate(nint _core, nint _key); + private static byte Core_HasLocalMetaFallback(nint _core, nint _key) => throw new Exceptions.OutdatedSdkException("Core_HasLocalMeta", "Core_HasLocalMeta SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsCamFrozenDelegate(nint _core); + private static byte Core_IsCamFrozenFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_IsCamFrozen", "Core_IsCamFrozen SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsConsoleOpenDelegate(nint _core); + private static byte Core_IsConsoleOpenFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_IsConsoleOpen", "Core_IsConsoleOpen SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsCursorVisibleDelegate(nint _core, nint _resource); + private static byte Core_IsCursorVisibleFallback(nint _core, nint _resource) => throw new Exceptions.OutdatedSdkException("Core_IsCursorVisible", "Core_IsCursorVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsFocusOverridenDelegate(nint _core); + private static byte Core_IsFocusOverridenFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_IsFocusOverriden", "Core_IsFocusOverriden SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsGameFocusedDelegate(nint _core); + private static byte Core_IsGameFocusedFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_IsGameFocused", "Core_IsGameFocused SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsInStreamerModeDelegate(nint _core); + private static byte Core_IsInStreamerModeFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_IsInStreamerMode", "Core_IsInStreamerMode SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsKeyDownDelegate(nint _core, uint _key); + private static byte Core_IsKeyDownFallback(nint _core, uint _key) => throw new Exceptions.OutdatedSdkException("Core_IsKeyDown", "Core_IsKeyDown SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsKeyToggledDelegate(nint _core, uint _key); + private static byte Core_IsKeyToggledFallback(nint _core, uint _key) => throw new Exceptions.OutdatedSdkException("Core_IsKeyToggled", "Core_IsKeyToggled SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsMenuOpenedDelegate(nint _core); + private static byte Core_IsMenuOpenedFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_IsMenuOpened", "Core_IsMenuOpened SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsPointOnScreenDelegate(nint _core, Vector3 _pos); + private static byte Core_IsPointOnScreenFallback(nint _core, Vector3 _pos) => throw new Exceptions.OutdatedSdkException("Core_IsPointOnScreen", "Core_IsPointOnScreen SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsTextureExistInArchetypeDelegate(nint _core, uint _modelHash, nint _targetTextureName); + private static byte Core_IsTextureExistInArchetypeFallback(nint _core, uint _modelHash, nint _targetTextureName) => throw new Exceptions.OutdatedSdkException("Core_IsTextureExistInArchetype", "Core_IsTextureExistInArchetype SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsVoiceActivityInputEnabledDelegate(nint _core); + private static byte Core_IsVoiceActivityInputEnabledFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_IsVoiceActivityInputEnabled", "Core_IsVoiceActivityInputEnabled SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LoadDefaultIplsDelegate(nint _core); + private static void Core_LoadDefaultIplsFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_LoadDefaultIpls", "Core_LoadDefaultIpls SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LoadModelDelegate(nint _core, uint _modelHash); + private static void Core_LoadModelFallback(nint _core, uint _modelHash) => throw new Exceptions.OutdatedSdkException("Core_LoadModel", "Core_LoadModel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LoadModelAsyncDelegate(nint _core, uint _modelHash); + private static void Core_LoadModelAsyncFallback(nint _core, uint _modelHash) => throw new Exceptions.OutdatedSdkException("Core_LoadModelAsync", "Core_LoadModelAsync SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LoadRmlFontDelegate(nint _core, nint _resource, nint _path, nint _name, byte _italic, byte _bold); + private static void Core_LoadRmlFontFallback(nint _core, nint _resource, nint _path, nint _name, byte _italic, byte _bold) => throw new Exceptions.OutdatedSdkException("Core_LoadRmlFont", "Core_LoadRmlFont SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_LoadYtypDelegate(nint _core, nint _path); + private static byte Core_LoadYtypFallback(nint _core, nint _path) => throw new Exceptions.OutdatedSdkException("Core_LoadYtyp", "Core_LoadYtyp SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_OverrideFocusEntityDelegate(nint _core, nint _entity); + private static void Core_OverrideFocusEntityFallback(nint _core, nint _entity) => throw new Exceptions.OutdatedSdkException("Core_OverrideFocusEntity", "Core_OverrideFocusEntity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_OverrideFocusPositionDelegate(nint _core, Vector3 _pos, Vector3 _offset); + private static void Core_OverrideFocusPositionFallback(nint _core, Vector3 _pos, Vector3 _offset) => throw new Exceptions.OutdatedSdkException("Core_OverrideFocusPosition", "Core_OverrideFocusPosition SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_RemoveGXTTextDelegate(nint _core, nint _resource, uint _key); + private static void Core_RemoveGXTTextFallback(nint _core, nint _resource, uint _key) => throw new Exceptions.OutdatedSdkException("Core_RemoveGXTText", "Core_RemoveGXTText SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_RemoveIplDelegate(nint _core, nint _path); + private static void Core_RemoveIplFallback(nint _core, nint _path) => throw new Exceptions.OutdatedSdkException("Core_RemoveIpl", "Core_RemoveIpl SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_RequestIplDelegate(nint _core, nint _path); + private static void Core_RequestIplFallback(nint _core, nint _path) => throw new Exceptions.OutdatedSdkException("Core_RequestIpl", "Core_RequestIpl SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ResetAllMapZoomDataDelegate(nint _core); + private static void Core_ResetAllMapZoomDataFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_ResetAllMapZoomData", "Core_ResetAllMapZoomData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ResetMapZoomDataDelegate(nint _core, uint _id); + private static void Core_ResetMapZoomDataFallback(nint _core, uint _id) => throw new Exceptions.OutdatedSdkException("Core_ResetMapZoomData", "Core_ResetMapZoomData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ResetStatDelegate(nint _core, nint _stat); + private static void Core_ResetStatFallback(nint _core, nint _stat) => throw new Exceptions.OutdatedSdkException("Core_ResetStat", "Core_ResetStat SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ScreenToWorldDelegate(nint _core, Vector2 _in, Vector3* _out); + private static void Core_ScreenToWorldFallback(nint _core, Vector2 _in, Vector3* _out) => throw new Exceptions.OutdatedSdkException("Core_ScreenToWorld", "Core_ScreenToWorld SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetCamFrozenDelegate(nint _core, byte _value); + private static void Core_SetCamFrozenFallback(nint _core, byte _value) => throw new Exceptions.OutdatedSdkException("Core_SetCamFrozen", "Core_SetCamFrozen SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetConfigFlagDelegate(nint _core, nint _flag, byte _state); + private static void Core_SetConfigFlagFallback(nint _core, nint _flag, byte _state) => throw new Exceptions.OutdatedSdkException("Core_SetConfigFlag", "Core_SetConfigFlag SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetCursorPosDelegate(nint _core, Vector2 _pos, byte _normalized); + private static void Core_SetCursorPosFallback(nint _core, Vector2 _pos, byte _normalized) => throw new Exceptions.OutdatedSdkException("Core_SetCursorPos", "Core_SetCursorPos SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetMinimapComponentPositionDelegate(nint _core, nint _name, byte _alignX, byte _alignY, float _posX, float _posY, float _sizeX, float _sizeY); + private static void Core_SetMinimapComponentPositionFallback(nint _core, nint _name, byte _alignX, byte _alignY, float _posX, float _posY, float _sizeX, float _sizeY) => throw new Exceptions.OutdatedSdkException("Core_SetMinimapComponentPosition", "Core_SetMinimapComponentPosition SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetMinimapIsRectangleDelegate(nint _core, byte _state); + private static void Core_SetMinimapIsRectangleFallback(nint _core, byte _state) => throw new Exceptions.OutdatedSdkException("Core_SetMinimapIsRectangle", "Core_SetMinimapIsRectangle SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetMsPerGameMinuteDelegate(nint _core, int _ms); + private static void Core_SetMsPerGameMinuteFallback(nint _core, int _ms) => throw new Exceptions.OutdatedSdkException("Core_SetMsPerGameMinute", "Core_SetMsPerGameMinute SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetPedDlcClothesDelegate(nint _core, int _scriptID, uint _dlc, byte _component, byte _drawable, byte _texture, byte _palette); + private static void Core_SetPedDlcClothesFallback(nint _core, int _scriptID, uint _dlc, byte _component, byte _drawable, byte _texture, byte _palette) => throw new Exceptions.OutdatedSdkException("Core_SetPedDlcClothes", "Core_SetPedDlcClothes SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetPedDlcPropDelegate(nint _core, int _scriptID, uint _dlc, byte _component, byte _drawable, byte _texture); + private static void Core_SetPedDlcPropFallback(nint _core, int _scriptID, uint _dlc, byte _component, byte _drawable, byte _texture) => throw new Exceptions.OutdatedSdkException("Core_SetPedDlcProp", "Core_SetPedDlcProp SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetRotationVelocityDelegate(nint _core, int _scriptID, Vector3 _velocity); + private static void Core_SetRotationVelocityFallback(nint _core, int _scriptID, Vector3 _velocity) => throw new Exceptions.OutdatedSdkException("Core_SetRotationVelocity", "Core_SetRotationVelocity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetStatBoolDelegate(nint _core, nint _stat, byte _value); + private static void Core_SetStatBoolFallback(nint _core, nint _stat, byte _value) => throw new Exceptions.OutdatedSdkException("Core_SetStatBool", "Core_SetStatBool SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetStatFloatDelegate(nint _core, nint _stat, float _value); + private static void Core_SetStatFloatFallback(nint _core, nint _stat, float _value) => throw new Exceptions.OutdatedSdkException("Core_SetStatFloat", "Core_SetStatFloat SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetStatIntDelegate(nint _core, nint _stat, int _value); + private static void Core_SetStatIntFallback(nint _core, nint _stat, int _value) => throw new Exceptions.OutdatedSdkException("Core_SetStatInt", "Core_SetStatInt SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetStatLongDelegate(nint _core, nint _stat, long _value); + private static void Core_SetStatLongFallback(nint _core, nint _stat, long _value) => throw new Exceptions.OutdatedSdkException("Core_SetStatLong", "Core_SetStatLong SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetStatStringDelegate(nint _core, nint _stat, nint _value); + private static void Core_SetStatStringFallback(nint _core, nint _stat, nint _value) => throw new Exceptions.OutdatedSdkException("Core_SetStatString", "Core_SetStatString SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetStatUInt16Delegate(nint _core, nint _stat, ushort _value); + private static void Core_SetStatUInt16Fallback(nint _core, nint _stat, ushort _value) => throw new Exceptions.OutdatedSdkException("Core_SetStatUInt16", "Core_SetStatUInt16 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetStatUInt32Delegate(nint _core, nint _stat, uint _value); + private static void Core_SetStatUInt32Fallback(nint _core, nint _stat, uint _value) => throw new Exceptions.OutdatedSdkException("Core_SetStatUInt32", "Core_SetStatUInt32 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetStatUInt64Delegate(nint _core, nint _stat, ulong _value); + private static void Core_SetStatUInt64Fallback(nint _core, nint _stat, ulong _value) => throw new Exceptions.OutdatedSdkException("Core_SetStatUInt64", "Core_SetStatUInt64 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetStatUInt8Delegate(nint _core, nint _stat, byte _value); + private static void Core_SetStatUInt8Fallback(nint _core, nint _stat, byte _value) => throw new Exceptions.OutdatedSdkException("Core_SetStatUInt8", "Core_SetStatUInt8 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetVoiceInputMutedDelegate(nint _core, byte _value); + private static void Core_SetVoiceInputMutedFallback(nint _core, byte _value) => throw new Exceptions.OutdatedSdkException("Core_SetVoiceInputMuted", "Core_SetVoiceInputMuted SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetWatermarkPositionDelegate(nint _core, byte _position); + private static void Core_SetWatermarkPositionFallback(nint _core, byte _position) => throw new Exceptions.OutdatedSdkException("Core_SetWatermarkPosition", "Core_SetWatermarkPosition SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetWeatherCycleDelegate(nint _core, byte[] weathers, int _weathersSize, byte[] multipliers, int _multipliersSize); + private static void Core_SetWeatherCycleFallback(nint _core, byte[] weathers, int _weathersSize, byte[] multipliers, int _multipliersSize) => throw new Exceptions.OutdatedSdkException("Core_SetWeatherCycle", "Core_SetWeatherCycle SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetWeatherSyncActiveDelegate(nint _core, byte _state); + private static void Core_SetWeatherSyncActiveFallback(nint _core, byte _state) => throw new Exceptions.OutdatedSdkException("Core_SetWeatherSyncActive", "Core_SetWeatherSyncActive SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ShowCursorDelegate(nint _core, nint _resource, bool _state); + private static void Core_ShowCursorFallback(nint _core, nint _resource, bool _state) => throw new Exceptions.OutdatedSdkException("Core_ShowCursor", "Core_ShowCursor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_StringToSHA256Delegate(nint _core, nint _string, int* _size); + private static nint Core_StringToSHA256Fallback(nint _core, nint _string, int* _size) => throw new Exceptions.OutdatedSdkException("Core_StringToSHA256", "Core_StringToSHA256 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_TakeScreenshotDelegate(nint _core, ClientEvents.ScreenshotResultModuleDelegate _delegate); + private static byte Core_TakeScreenshotFallback(nint _core, ClientEvents.ScreenshotResultModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Core_TakeScreenshot", "Core_TakeScreenshot SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_TakeScreenshotGameOnlyDelegate(nint _core, ClientEvents.ScreenshotResultModuleDelegate _delegate); + private static byte Core_TakeScreenshotGameOnlyFallback(nint _core, ClientEvents.ScreenshotResultModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Core_TakeScreenshotGameOnly", "Core_TakeScreenshotGameOnly SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ToggleGameControlsDelegate(nint _core, nint _resource, byte _state); + private static void Core_ToggleGameControlsFallback(nint _core, nint _resource, byte _state) => throw new Exceptions.OutdatedSdkException("Core_ToggleGameControls", "Core_ToggleGameControls SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ToggleRmlControlsDelegate(nint _core, byte _state); + private static void Core_ToggleRmlControlsFallback(nint _core, byte _state) => throw new Exceptions.OutdatedSdkException("Core_ToggleRmlControls", "Core_ToggleRmlControls SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ToggleVoiceControlsDelegate(nint _core, byte _state); + private static void Core_ToggleVoiceControlsFallback(nint _core, byte _state) => throw new Exceptions.OutdatedSdkException("Core_ToggleVoiceControls", "Core_ToggleVoiceControls SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerServerEventDelegate(nint _core, nint _event, nint[] args, int _size); + private static void Core_TriggerServerEventFallback(nint _core, nint _event, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerServerEvent", "Core_TriggerServerEvent SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerWebViewEventDelegate(nint _core, nint _webview, nint _event, nint[] args, int _size); + private static void Core_TriggerWebViewEventFallback(nint _core, nint _webview, nint _event, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerWebViewEvent", "Core_TriggerWebViewEvent SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_UnloadYtypDelegate(nint _core, nint _path); + private static byte Core_UnloadYtypFallback(nint _core, nint _path) => throw new Exceptions.OutdatedSdkException("Core_UnloadYtyp", "Core_UnloadYtyp SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_WorldToScreenDelegate(nint _core, Vector3 _in, Vector2* _out); + private static void Core_WorldToScreenFallback(nint _core, Vector3 _in, Vector2* _out) => throw new Exceptions.OutdatedSdkException("Core_WorldToScreen", "Core_WorldToScreen SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int Entity_GetScriptIDDelegate(nint _entity); + private static int Entity_GetScriptIDFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_GetScriptID", "Entity_GetScriptID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetAnyResourceErrorDelegateDelegate(nint _resource, ClientEvents.AnyResourceErrorModuleDelegate _delegate); + private static void Event_SetAnyResourceErrorDelegateFallback(nint _resource, ClientEvents.AnyResourceErrorModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetAnyResourceErrorDelegate", "Event_SetAnyResourceErrorDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetAnyResourceStartDelegateDelegate(nint _resource, ClientEvents.AnyResourceStartModuleDelegate _delegate); + private static void Event_SetAnyResourceStartDelegateFallback(nint _resource, ClientEvents.AnyResourceStartModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetAnyResourceStartDelegate", "Event_SetAnyResourceStartDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetAnyResourceStopDelegateDelegate(nint _resource, ClientEvents.AnyResourceStopModuleDelegate _delegate); + private static void Event_SetAnyResourceStopDelegateFallback(nint _resource, ClientEvents.AnyResourceStopModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetAnyResourceStopDelegate", "Event_SetAnyResourceStopDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetClientEventDelegateDelegate(nint _resource, ClientEvents.ClientEventModuleDelegate _delegate); + private static void Event_SetClientEventDelegateFallback(nint _resource, ClientEvents.ClientEventModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetClientEventDelegate", "Event_SetClientEventDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetConnectionCompleteDelegateDelegate(nint _resource, ClientEvents.ConnectionCompleteModuleDelegate _delegate); + private static void Event_SetConnectionCompleteDelegateFallback(nint _resource, ClientEvents.ConnectionCompleteModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetConnectionCompleteDelegate", "Event_SetConnectionCompleteDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetConsoleCommandDelegateDelegate(nint _resource, ClientEvents.ConsoleCommandModuleDelegate _delegate); + private static void Event_SetConsoleCommandDelegateFallback(nint _resource, ClientEvents.ConsoleCommandModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetConsoleCommandDelegate", "Event_SetConsoleCommandDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateAudioDelegateDelegate(nint _resource, ClientEvents.CreateAudioModuleDelegate _delegate); + private static void Event_SetCreateAudioDelegateFallback(nint _resource, ClientEvents.CreateAudioModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateAudioDelegate", "Event_SetCreateAudioDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateBlipDelegateDelegate(nint _resource, ClientEvents.CreateBlipModuleDelegate _delegate); + private static void Event_SetCreateBlipDelegateFallback(nint _resource, ClientEvents.CreateBlipModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateBlipDelegate", "Event_SetCreateBlipDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateCheckpointDelegateDelegate(nint _resource, ClientEvents.CreateCheckpointModuleDelegate _delegate); + private static void Event_SetCreateCheckpointDelegateFallback(nint _resource, ClientEvents.CreateCheckpointModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateCheckpointDelegate", "Event_SetCreateCheckpointDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateHttpClientDelegateDelegate(nint _resource, ClientEvents.CreateHttpClientModuleDelegate _delegate); + private static void Event_SetCreateHttpClientDelegateFallback(nint _resource, ClientEvents.CreateHttpClientModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateHttpClientDelegate", "Event_SetCreateHttpClientDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateObjectDelegateDelegate(nint _resource, ClientEvents.CreateObjectModuleDelegate _delegate); + private static void Event_SetCreateObjectDelegateFallback(nint _resource, ClientEvents.CreateObjectModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateObjectDelegate", "Event_SetCreateObjectDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreatePlayerDelegateDelegate(nint _resource, ClientEvents.CreatePlayerModuleDelegate _delegate); + private static void Event_SetCreatePlayerDelegateFallback(nint _resource, ClientEvents.CreatePlayerModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreatePlayerDelegate", "Event_SetCreatePlayerDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateRmlDocumentDelegateDelegate(nint _resource, ClientEvents.CreateRmlDocumentModuleDelegate _delegate); + private static void Event_SetCreateRmlDocumentDelegateFallback(nint _resource, ClientEvents.CreateRmlDocumentModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateRmlDocumentDelegate", "Event_SetCreateRmlDocumentDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateRmlElementDelegateDelegate(nint _resource, ClientEvents.CreateRmlElementModuleDelegate _delegate); + private static void Event_SetCreateRmlElementDelegateFallback(nint _resource, ClientEvents.CreateRmlElementModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateRmlElementDelegate", "Event_SetCreateRmlElementDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateVehicleDelegateDelegate(nint _resource, ClientEvents.CreateVehicleModuleDelegate _delegate); + private static void Event_SetCreateVehicleDelegateFallback(nint _resource, ClientEvents.CreateVehicleModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateVehicleDelegate", "Event_SetCreateVehicleDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateWebSocketClientDelegateDelegate(nint _resource, ClientEvents.CreateWebSocketClientModuleDelegate _delegate); + private static void Event_SetCreateWebSocketClientDelegateFallback(nint _resource, ClientEvents.CreateWebSocketClientModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateWebSocketClientDelegate", "Event_SetCreateWebSocketClientDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateWebViewDelegateDelegate(nint _resource, ClientEvents.CreateWebViewModuleDelegate _delegate); + private static void Event_SetCreateWebViewDelegateFallback(nint _resource, ClientEvents.CreateWebViewModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateWebViewDelegate", "Event_SetCreateWebViewDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetGameEntityCreateDelegateDelegate(nint _resource, ClientEvents.GameEntityCreateModuleDelegate _delegate); + private static void Event_SetGameEntityCreateDelegateFallback(nint _resource, ClientEvents.GameEntityCreateModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetGameEntityCreateDelegate", "Event_SetGameEntityCreateDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetGameEntityDestroyDelegateDelegate(nint _resource, ClientEvents.GameEntityDestroyModuleDelegate _delegate); + private static void Event_SetGameEntityDestroyDelegateFallback(nint _resource, ClientEvents.GameEntityDestroyModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetGameEntityDestroyDelegate", "Event_SetGameEntityDestroyDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetGlobalMetaChangeDelegateDelegate(nint _resource, ClientEvents.GlobalMetaChangeModuleDelegate _delegate); + private static void Event_SetGlobalMetaChangeDelegateFallback(nint _resource, ClientEvents.GlobalMetaChangeModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetGlobalMetaChangeDelegate", "Event_SetGlobalMetaChangeDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetGlobalSyncedMetaChangeDelegateDelegate(nint _resource, ClientEvents.GlobalSyncedMetaChangeModuleDelegate _delegate); + private static void Event_SetGlobalSyncedMetaChangeDelegateFallback(nint _resource, ClientEvents.GlobalSyncedMetaChangeModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetGlobalSyncedMetaChangeDelegate", "Event_SetGlobalSyncedMetaChangeDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetKeyDownDelegateDelegate(nint _resource, ClientEvents.KeyDownModuleDelegate _delegate); + private static void Event_SetKeyDownDelegateFallback(nint _resource, ClientEvents.KeyDownModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetKeyDownDelegate", "Event_SetKeyDownDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetKeyUpDelegateDelegate(nint _resource, ClientEvents.KeyUpModuleDelegate _delegate); + private static void Event_SetKeyUpDelegateFallback(nint _resource, ClientEvents.KeyUpModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetKeyUpDelegate", "Event_SetKeyUpDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetLocalMetaChangeDelegateDelegate(nint _resource, ClientEvents.LocalMetaChangeModuleDelegate _delegate); + private static void Event_SetLocalMetaChangeDelegateFallback(nint _resource, ClientEvents.LocalMetaChangeModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetLocalMetaChangeDelegate", "Event_SetLocalMetaChangeDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetNetOwnerChangeDelegateDelegate(nint _resource, ClientEvents.NetOwnerChangeModuleDelegate _delegate); + private static void Event_SetNetOwnerChangeDelegateFallback(nint _resource, ClientEvents.NetOwnerChangeModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetNetOwnerChangeDelegate", "Event_SetNetOwnerChangeDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetPlayerChangeAnimationDelegateDelegate(nint _resource, ClientEvents.PlayerChangeAnimationModuleDelegate _delegate); + private static void Event_SetPlayerChangeAnimationDelegateFallback(nint _resource, ClientEvents.PlayerChangeAnimationModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetPlayerChangeAnimationDelegate", "Event_SetPlayerChangeAnimationDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetPlayerChangeInteriorDelegateDelegate(nint _resource, ClientEvents.PlayerChangeInteriorModuleDelegate _delegate); + private static void Event_SetPlayerChangeInteriorDelegateFallback(nint _resource, ClientEvents.PlayerChangeInteriorModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetPlayerChangeInteriorDelegate", "Event_SetPlayerChangeInteriorDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetPlayerChangeVehicleSeatDelegateDelegate(nint _resource, ClientEvents.PlayerChangeVehicleSeatModuleDelegate _delegate); + private static void Event_SetPlayerChangeVehicleSeatDelegateFallback(nint _resource, ClientEvents.PlayerChangeVehicleSeatModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetPlayerChangeVehicleSeatDelegate", "Event_SetPlayerChangeVehicleSeatDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetPlayerDisconnectDelegateDelegate(nint _resource, ClientEvents.PlayerDisconnectModuleDelegate _delegate); + private static void Event_SetPlayerDisconnectDelegateFallback(nint _resource, ClientEvents.PlayerDisconnectModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetPlayerDisconnectDelegate", "Event_SetPlayerDisconnectDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetPlayerEnterVehicleDelegateDelegate(nint _resource, ClientEvents.PlayerEnterVehicleModuleDelegate _delegate); + private static void Event_SetPlayerEnterVehicleDelegateFallback(nint _resource, ClientEvents.PlayerEnterVehicleModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetPlayerEnterVehicleDelegate", "Event_SetPlayerEnterVehicleDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetPlayerLeaveVehicleDelegateDelegate(nint _resource, ClientEvents.PlayerLeaveVehicleModuleDelegate _delegate); + private static void Event_SetPlayerLeaveVehicleDelegateFallback(nint _resource, ClientEvents.PlayerLeaveVehicleModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetPlayerLeaveVehicleDelegate", "Event_SetPlayerLeaveVehicleDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetPlayerSpawnDelegateDelegate(nint _resource, ClientEvents.PlayerSpawnModuleDelegate _delegate); + private static void Event_SetPlayerSpawnDelegateFallback(nint _resource, ClientEvents.PlayerSpawnModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetPlayerSpawnDelegate", "Event_SetPlayerSpawnDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetPlayerWeaponChangeDelegateDelegate(nint _resource, ClientEvents.PlayerWeaponChangeModuleDelegate _delegate); + private static void Event_SetPlayerWeaponChangeDelegateFallback(nint _resource, ClientEvents.PlayerWeaponChangeModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetPlayerWeaponChangeDelegate", "Event_SetPlayerWeaponChangeDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetPlayerWeaponShootDelegateDelegate(nint _resource, ClientEvents.PlayerWeaponShootModuleDelegate _delegate); + private static void Event_SetPlayerWeaponShootDelegateFallback(nint _resource, ClientEvents.PlayerWeaponShootModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetPlayerWeaponShootDelegate", "Event_SetPlayerWeaponShootDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveAudioDelegateDelegate(nint _resource, ClientEvents.RemoveAudioModuleDelegate _delegate); + private static void Event_SetRemoveAudioDelegateFallback(nint _resource, ClientEvents.RemoveAudioModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveAudioDelegate", "Event_SetRemoveAudioDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveBlipDelegateDelegate(nint _resource, ClientEvents.RemoveBlipModuleDelegate _delegate); + private static void Event_SetRemoveBlipDelegateFallback(nint _resource, ClientEvents.RemoveBlipModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveBlipDelegate", "Event_SetRemoveBlipDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveCheckpointDelegateDelegate(nint _resource, ClientEvents.RemoveCheckpointModuleDelegate _delegate); + private static void Event_SetRemoveCheckpointDelegateFallback(nint _resource, ClientEvents.RemoveCheckpointModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveCheckpointDelegate", "Event_SetRemoveCheckpointDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveEntityDelegateDelegate(nint _resource, ClientEvents.RemoveEntityModuleDelegate _delegate); + private static void Event_SetRemoveEntityDelegateFallback(nint _resource, ClientEvents.RemoveEntityModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveEntityDelegate", "Event_SetRemoveEntityDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveHttpClientDelegateDelegate(nint _resource, ClientEvents.RemoveHttpClientModuleDelegate _delegate); + private static void Event_SetRemoveHttpClientDelegateFallback(nint _resource, ClientEvents.RemoveHttpClientModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveHttpClientDelegate", "Event_SetRemoveHttpClientDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveObjectDelegateDelegate(nint _resource, ClientEvents.RemoveObjectModuleDelegate _delegate); + private static void Event_SetRemoveObjectDelegateFallback(nint _resource, ClientEvents.RemoveObjectModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveObjectDelegate", "Event_SetRemoveObjectDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemovePlayerDelegateDelegate(nint _resource, ClientEvents.RemovePlayerModuleDelegate _delegate); + private static void Event_SetRemovePlayerDelegateFallback(nint _resource, ClientEvents.RemovePlayerModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemovePlayerDelegate", "Event_SetRemovePlayerDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveRmlDocumentDelegateDelegate(nint _resource, ClientEvents.RemoveRmlDocumentModuleDelegate _delegate); + private static void Event_SetRemoveRmlDocumentDelegateFallback(nint _resource, ClientEvents.RemoveRmlDocumentModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveRmlDocumentDelegate", "Event_SetRemoveRmlDocumentDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveRmlElementDelegateDelegate(nint _resource, ClientEvents.RemoveRmlElementModuleDelegate _delegate); + private static void Event_SetRemoveRmlElementDelegateFallback(nint _resource, ClientEvents.RemoveRmlElementModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveRmlElementDelegate", "Event_SetRemoveRmlElementDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveVehicleDelegateDelegate(nint _resource, ClientEvents.RemoveVehicleModuleDelegate _delegate); + private static void Event_SetRemoveVehicleDelegateFallback(nint _resource, ClientEvents.RemoveVehicleModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveVehicleDelegate", "Event_SetRemoveVehicleDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveWebSocketClientDelegateDelegate(nint _resource, ClientEvents.RemoveWebSocketClientModuleDelegate _delegate); + private static void Event_SetRemoveWebSocketClientDelegateFallback(nint _resource, ClientEvents.RemoveWebSocketClientModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveWebSocketClientDelegate", "Event_SetRemoveWebSocketClientDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveWebViewDelegateDelegate(nint _resource, ClientEvents.RemoveWebViewModuleDelegate _delegate); + private static void Event_SetRemoveWebViewDelegateFallback(nint _resource, ClientEvents.RemoveWebViewModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveWebViewDelegate", "Event_SetRemoveWebViewDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRmlEventDelegateDelegate(nint _resource, ClientEvents.RmlEventModuleDelegate _delegate); + private static void Event_SetRmlEventDelegateFallback(nint _resource, ClientEvents.RmlEventModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRmlEventDelegate", "Event_SetRmlEventDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetServerEventDelegateDelegate(nint _resource, ClientEvents.ServerEventModuleDelegate _delegate); + private static void Event_SetServerEventDelegateFallback(nint _resource, ClientEvents.ServerEventModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetServerEventDelegate", "Event_SetServerEventDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetStreamSyncedMetaChangeDelegateDelegate(nint _resource, ClientEvents.StreamSyncedMetaChangeModuleDelegate _delegate); + private static void Event_SetStreamSyncedMetaChangeDelegateFallback(nint _resource, ClientEvents.StreamSyncedMetaChangeModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetStreamSyncedMetaChangeDelegate", "Event_SetStreamSyncedMetaChangeDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetSyncedMetaChangeDelegateDelegate(nint _resource, ClientEvents.SyncedMetaChangeModuleDelegate _delegate); + private static void Event_SetSyncedMetaChangeDelegateFallback(nint _resource, ClientEvents.SyncedMetaChangeModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetSyncedMetaChangeDelegate", "Event_SetSyncedMetaChangeDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetTaskChangeDelegateDelegate(nint _resource, ClientEvents.TaskChangeModuleDelegate _delegate); + private static void Event_SetTaskChangeDelegateFallback(nint _resource, ClientEvents.TaskChangeModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetTaskChangeDelegate", "Event_SetTaskChangeDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetTickDelegateDelegate(nint _resource, ClientEvents.TickModuleDelegate _delegate); + private static void Event_SetTickDelegateFallback(nint _resource, ClientEvents.TickModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetTickDelegate", "Event_SetTickDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetWeaponDamageDelegateDelegate(nint _resource, ClientEvents.WeaponDamageModuleDelegate _delegate); + private static void Event_SetWeaponDamageDelegateFallback(nint _resource, ClientEvents.WeaponDamageModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetWeaponDamageDelegate", "Event_SetWeaponDamageDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetWebSocketEventDelegateDelegate(nint _resource, ClientEvents.WebSocketEventModuleDelegate _delegate); + private static void Event_SetWebSocketEventDelegateFallback(nint _resource, ClientEvents.WebSocketEventModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetWebSocketEventDelegate", "Event_SetWebSocketEventDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetWebViewEventDelegateDelegate(nint _resource, ClientEvents.WebViewEventModuleDelegate _delegate); + private static void Event_SetWebViewEventDelegateFallback(nint _resource, ClientEvents.WebViewEventModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetWebViewEventDelegate", "Event_SetWebViewEventDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetWindowFocusChangeDelegateDelegate(nint _resource, ClientEvents.WindowFocusChangeModuleDelegate _delegate); + private static void Event_SetWindowFocusChangeDelegateFallback(nint _resource, ClientEvents.WindowFocusChangeModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetWindowFocusChangeDelegate", "Event_SetWindowFocusChangeDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetWindowResolutionChangeDelegateDelegate(nint _resource, ClientEvents.WindowResolutionChangeModuleDelegate _delegate); + private static void Event_SetWindowResolutionChangeDelegateFallback(nint _resource, ClientEvents.WindowResolutionChangeModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetWindowResolutionChangeDelegate", "Event_SetWindowResolutionChangeDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeRmlElementArrayDelegate(nint _rmlElementArray); + private static void FreeRmlElementArrayFallback(nint _rmlElementArray) => throw new Exceptions.OutdatedSdkException("FreeRmlElementArray", "FreeRmlElementArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint GetNativeFuncTableDelegate(); + private static nint GetNativeFuncTableFallback() => throw new Exceptions.OutdatedSdkException("GetNativeFuncTable", "GetNativeFuncTable SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetAccelerationDelegate(uint _modelHash); + private static float Handling_GetAccelerationFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetAcceleration", "Handling_GetAcceleration SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetAntiRollBarBiasFrontDelegate(uint _modelHash); + private static float Handling_GetAntiRollBarBiasFrontFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetAntiRollBarBiasFront", "Handling_GetAntiRollBarBiasFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetAntiRollBarBiasRearDelegate(uint _modelHash); + private static float Handling_GetAntiRollBarBiasRearFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetAntiRollBarBiasRear", "Handling_GetAntiRollBarBiasRear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetAntiRollBarForceDelegate(uint _modelHash); + private static float Handling_GetAntiRollBarForceFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetAntiRollBarForce", "Handling_GetAntiRollBarForce SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetBrakeBiasFrontDelegate(uint _modelHash); + private static float Handling_GetBrakeBiasFrontFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetBrakeBiasFront", "Handling_GetBrakeBiasFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetBrakeBiasRearDelegate(uint _modelHash); + private static float Handling_GetBrakeBiasRearFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetBrakeBiasRear", "Handling_GetBrakeBiasRear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetBrakeForceDelegate(uint _modelHash); + private static float Handling_GetBrakeForceFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetBrakeForce", "Handling_GetBrakeForce SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetCamberStiffnessDelegate(uint _modelHash); + private static float Handling_GetCamberStiffnessFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetCamberStiffness", "Handling_GetCamberStiffness SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_GetCentreOfMassOffsetDelegate(uint _modelHash, Vector3* _offset); + private static void Handling_GetCentreOfMassOffsetFallback(uint _modelHash, Vector3* _offset) => throw new Exceptions.OutdatedSdkException("Handling_GetCentreOfMassOffset", "Handling_GetCentreOfMassOffset SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetClutchChangeRateScaleDownShiftDelegate(uint _modelHash); + private static float Handling_GetClutchChangeRateScaleDownShiftFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetClutchChangeRateScaleDownShift", "Handling_GetClutchChangeRateScaleDownShift SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetClutchChangeRateScaleUpShiftDelegate(uint _modelHash); + private static float Handling_GetClutchChangeRateScaleUpShiftFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetClutchChangeRateScaleUpShift", "Handling_GetClutchChangeRateScaleUpShift SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetCollisionDamageMultDelegate(uint _modelHash); + private static float Handling_GetCollisionDamageMultFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetCollisionDamageMult", "Handling_GetCollisionDamageMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Handling_GetDamageFlagsDelegate(uint _modelHash); + private static uint Handling_GetDamageFlagsFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetDamageFlags", "Handling_GetDamageFlags SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetDeformationDamageMultDelegate(uint _modelHash); + private static float Handling_GetDeformationDamageMultFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetDeformationDamageMult", "Handling_GetDeformationDamageMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetDownforceModifierDelegate(uint _modelHash); + private static float Handling_GetDownforceModifierFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetDownforceModifier", "Handling_GetDownforceModifier SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetDriveBiasFrontDelegate(uint _modelHash); + private static float Handling_GetDriveBiasFrontFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetDriveBiasFront", "Handling_GetDriveBiasFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetDriveInertiaDelegate(uint _modelHash); + private static float Handling_GetDriveInertiaFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetDriveInertia", "Handling_GetDriveInertia SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetDriveMaxFlatVelDelegate(uint _modelHash); + private static float Handling_GetDriveMaxFlatVelFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetDriveMaxFlatVel", "Handling_GetDriveMaxFlatVel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetEngineDamageMultDelegate(uint _modelHash); + private static float Handling_GetEngineDamageMultFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetEngineDamageMult", "Handling_GetEngineDamageMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetHandBrakeForceDelegate(uint _modelHash); + private static float Handling_GetHandBrakeForceFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetHandBrakeForce", "Handling_GetHandBrakeForce SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Handling_GetHandlingFlagsDelegate(uint _modelHash); + private static uint Handling_GetHandlingFlagsFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetHandlingFlags", "Handling_GetHandlingFlags SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Handling_GetHandlingNameHashDelegate(uint _modelHash); + private static uint Handling_GetHandlingNameHashFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetHandlingNameHash", "Handling_GetHandlingNameHash SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_GetInertiaMultiplierDelegate(uint _modelHash, Vector3* _offset); + private static void Handling_GetInertiaMultiplierFallback(uint _modelHash, Vector3* _offset) => throw new Exceptions.OutdatedSdkException("Handling_GetInertiaMultiplier", "Handling_GetInertiaMultiplier SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetInitialDragCoeffDelegate(uint _modelHash); + private static float Handling_GetInitialDragCoeffFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetInitialDragCoeff", "Handling_GetInitialDragCoeff SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetInitialDriveForceDelegate(uint _modelHash); + private static float Handling_GetInitialDriveForceFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetInitialDriveForce", "Handling_GetInitialDriveForce SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Handling_GetInitialDriveGearsDelegate(uint _modelHash); + private static uint Handling_GetInitialDriveGearsFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetInitialDriveGears", "Handling_GetInitialDriveGears SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetInitialDriveMaxFlatVelDelegate(uint _modelHash); + private static float Handling_GetInitialDriveMaxFlatVelFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetInitialDriveMaxFlatVel", "Handling_GetInitialDriveMaxFlatVel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetLowSpeedTractionLossMultDelegate(uint _modelHash); + private static float Handling_GetLowSpeedTractionLossMultFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetLowSpeedTractionLossMult", "Handling_GetLowSpeedTractionLossMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetMassDelegate(uint _modelHash); + private static float Handling_GetMassFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetMass", "Handling_GetMass SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Handling_GetModelFlagsDelegate(uint _modelHash); + private static uint Handling_GetModelFlagsFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetModelFlags", "Handling_GetModelFlags SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Handling_GetMonetaryValueDelegate(uint _modelHash); + private static uint Handling_GetMonetaryValueFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetMonetaryValue", "Handling_GetMonetaryValue SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetOilVolumeDelegate(uint _modelHash); + private static float Handling_GetOilVolumeFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetOilVolume", "Handling_GetOilVolume SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetPercentSubmergedDelegate(uint _modelHash); + private static float Handling_GetPercentSubmergedFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetPercentSubmerged", "Handling_GetPercentSubmerged SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetPercentSubmergedRatioDelegate(uint _modelHash); + private static float Handling_GetPercentSubmergedRatioFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetPercentSubmergedRatio", "Handling_GetPercentSubmergedRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetPetrolTankVolumeDelegate(uint _modelHash); + private static float Handling_GetPetrolTankVolumeFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetPetrolTankVolume", "Handling_GetPetrolTankVolume SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetRollCentreHeightFrontDelegate(uint _modelHash); + private static float Handling_GetRollCentreHeightFrontFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetRollCentreHeightFront", "Handling_GetRollCentreHeightFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetRollCentreHeightRearDelegate(uint _modelHash); + private static float Handling_GetRollCentreHeightRearFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetRollCentreHeightRear", "Handling_GetRollCentreHeightRear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetSeatOffsetDistXDelegate(uint _modelHash); + private static float Handling_GetSeatOffsetDistXFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetSeatOffsetDistX", "Handling_GetSeatOffsetDistX SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetSeatOffsetDistYDelegate(uint _modelHash); + private static float Handling_GetSeatOffsetDistYFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetSeatOffsetDistY", "Handling_GetSeatOffsetDistY SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetSeatOffsetDistZDelegate(uint _modelHash); + private static float Handling_GetSeatOffsetDistZFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetSeatOffsetDistZ", "Handling_GetSeatOffsetDistZ SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetSteeringLockDelegate(uint _modelHash); + private static float Handling_GetSteeringLockFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetSteeringLock", "Handling_GetSteeringLock SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetSteeringLockRatioDelegate(uint _modelHash); + private static float Handling_GetSteeringLockRatioFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetSteeringLockRatio", "Handling_GetSteeringLockRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetSuspensionBiasFrontDelegate(uint _modelHash); + private static float Handling_GetSuspensionBiasFrontFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetSuspensionBiasFront", "Handling_GetSuspensionBiasFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetSuspensionBiasRearDelegate(uint _modelHash); + private static float Handling_GetSuspensionBiasRearFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetSuspensionBiasRear", "Handling_GetSuspensionBiasRear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetSuspensionCompDampDelegate(uint _modelHash); + private static float Handling_GetSuspensionCompDampFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetSuspensionCompDamp", "Handling_GetSuspensionCompDamp SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetSuspensionForceDelegate(uint _modelHash); + private static float Handling_GetSuspensionForceFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetSuspensionForce", "Handling_GetSuspensionForce SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetSuspensionLowerLimitDelegate(uint _modelHash); + private static float Handling_GetSuspensionLowerLimitFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetSuspensionLowerLimit", "Handling_GetSuspensionLowerLimit SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetSuspensionRaiseDelegate(uint _modelHash); + private static float Handling_GetSuspensionRaiseFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetSuspensionRaise", "Handling_GetSuspensionRaise SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetSuspensionReboundDampDelegate(uint _modelHash); + private static float Handling_GetSuspensionReboundDampFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetSuspensionReboundDamp", "Handling_GetSuspensionReboundDamp SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetSuspensionUpperLimitDelegate(uint _modelHash); + private static float Handling_GetSuspensionUpperLimitFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetSuspensionUpperLimit", "Handling_GetSuspensionUpperLimit SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetTractionBiasFrontDelegate(uint _modelHash); + private static float Handling_GetTractionBiasFrontFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetTractionBiasFront", "Handling_GetTractionBiasFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetTractionBiasRearDelegate(uint _modelHash); + private static float Handling_GetTractionBiasRearFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetTractionBiasRear", "Handling_GetTractionBiasRear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetTractionCurveLateralDelegate(uint _modelHash); + private static float Handling_GetTractionCurveLateralFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetTractionCurveLateral", "Handling_GetTractionCurveLateral SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetTractionCurveLateralRatioDelegate(uint _modelHash); + private static float Handling_GetTractionCurveLateralRatioFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetTractionCurveLateralRatio", "Handling_GetTractionCurveLateralRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetTractionCurveMaxDelegate(uint _modelHash); + private static float Handling_GetTractionCurveMaxFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetTractionCurveMax", "Handling_GetTractionCurveMax SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetTractionCurveMaxRatioDelegate(uint _modelHash); + private static float Handling_GetTractionCurveMaxRatioFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetTractionCurveMaxRatio", "Handling_GetTractionCurveMaxRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetTractionCurveMinDelegate(uint _modelHash); + private static float Handling_GetTractionCurveMinFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetTractionCurveMin", "Handling_GetTractionCurveMin SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetTractionCurveMinRatioDelegate(uint _modelHash); + private static float Handling_GetTractionCurveMinRatioFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetTractionCurveMinRatio", "Handling_GetTractionCurveMinRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetTractionLossMultDelegate(uint _modelHash); + private static float Handling_GetTractionLossMultFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetTractionLossMult", "Handling_GetTractionLossMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetTractionSpringDeltaMaxDelegate(uint _modelHash); + private static float Handling_GetTractionSpringDeltaMaxFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetTractionSpringDeltaMax", "Handling_GetTractionSpringDeltaMax SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetTractionSpringDeltaMaxRatioDelegate(uint _modelHash); + private static float Handling_GetTractionSpringDeltaMaxRatioFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetTractionSpringDeltaMaxRatio", "Handling_GetTractionSpringDeltaMaxRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetunkFloat1Delegate(uint _modelHash); + private static float Handling_GetunkFloat1Fallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetunkFloat1", "Handling_GetunkFloat1 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetunkFloat2Delegate(uint _modelHash); + private static float Handling_GetunkFloat2Fallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetunkFloat2", "Handling_GetunkFloat2 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetunkFloat4Delegate(uint _modelHash); + private static float Handling_GetunkFloat4Fallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetunkFloat4", "Handling_GetunkFloat4 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetunkFloat5Delegate(uint _modelHash); + private static float Handling_GetunkFloat5Fallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetunkFloat5", "Handling_GetunkFloat5 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Handling_GetWeaponDamageMultDelegate(uint _modelHash); + private static float Handling_GetWeaponDamageMultFallback(uint _modelHash) => throw new Exceptions.OutdatedSdkException("Handling_GetWeaponDamageMult", "Handling_GetWeaponDamageMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetAccelerationDelegate(uint _modelHash, float _value); + private static void Handling_SetAccelerationFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetAcceleration", "Handling_SetAcceleration SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetAntiRollBarBiasFrontDelegate(uint _modelHash, float _value); + private static void Handling_SetAntiRollBarBiasFrontFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetAntiRollBarBiasFront", "Handling_SetAntiRollBarBiasFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetAntiRollBarBiasRearDelegate(uint _modelHash, float _value); + private static void Handling_SetAntiRollBarBiasRearFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetAntiRollBarBiasRear", "Handling_SetAntiRollBarBiasRear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetAntiRollBarForceDelegate(uint _modelHash, float _value); + private static void Handling_SetAntiRollBarForceFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetAntiRollBarForce", "Handling_SetAntiRollBarForce SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetBrakeBiasFrontDelegate(uint _modelHash, float _value); + private static void Handling_SetBrakeBiasFrontFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetBrakeBiasFront", "Handling_SetBrakeBiasFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetBrakeBiasRearDelegate(uint _modelHash, float _value); + private static void Handling_SetBrakeBiasRearFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetBrakeBiasRear", "Handling_SetBrakeBiasRear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetBrakeForceDelegate(uint _modelHash, float _value); + private static void Handling_SetBrakeForceFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetBrakeForce", "Handling_SetBrakeForce SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetCamberStiffnessDelegate(uint _modelHash, float _value); + private static void Handling_SetCamberStiffnessFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetCamberStiffness", "Handling_SetCamberStiffness SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetCentreOfMassOffsetDelegate(uint _modelHash, Vector3 _value); + private static void Handling_SetCentreOfMassOffsetFallback(uint _modelHash, Vector3 _value) => throw new Exceptions.OutdatedSdkException("Handling_SetCentreOfMassOffset", "Handling_SetCentreOfMassOffset SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetClutchChangeRateScaleDownShiftDelegate(uint _modelHash, float _value); + private static void Handling_SetClutchChangeRateScaleDownShiftFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetClutchChangeRateScaleDownShift", "Handling_SetClutchChangeRateScaleDownShift SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetClutchChangeRateScaleUpShiftDelegate(uint _modelHash, float _value); + private static void Handling_SetClutchChangeRateScaleUpShiftFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetClutchChangeRateScaleUpShift", "Handling_SetClutchChangeRateScaleUpShift SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetCollisionDamageMultDelegate(uint _modelHash, float _value); + private static void Handling_SetCollisionDamageMultFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetCollisionDamageMult", "Handling_SetCollisionDamageMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetDamageFlagsDelegate(uint _modelHash, uint _value); + private static void Handling_SetDamageFlagsFallback(uint _modelHash, uint _value) => throw new Exceptions.OutdatedSdkException("Handling_SetDamageFlags", "Handling_SetDamageFlags SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetDeformationDamageMultDelegate(uint _modelHash, float _value); + private static void Handling_SetDeformationDamageMultFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetDeformationDamageMult", "Handling_SetDeformationDamageMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetDownforceModifierDelegate(uint _modelHash, float _value); + private static void Handling_SetDownforceModifierFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetDownforceModifier", "Handling_SetDownforceModifier SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetDriveBiasFrontDelegate(uint _modelHash, float _value); + private static void Handling_SetDriveBiasFrontFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetDriveBiasFront", "Handling_SetDriveBiasFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetDriveInertiaDelegate(uint _modelHash, float _value); + private static void Handling_SetDriveInertiaFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetDriveInertia", "Handling_SetDriveInertia SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetDriveMaxFlatVelDelegate(uint _modelHash, float _value); + private static void Handling_SetDriveMaxFlatVelFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetDriveMaxFlatVel", "Handling_SetDriveMaxFlatVel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetEngineDamageMultDelegate(uint _modelHash, float _value); + private static void Handling_SetEngineDamageMultFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetEngineDamageMult", "Handling_SetEngineDamageMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetHandBrakeForceDelegate(uint _modelHash, float _value); + private static void Handling_SetHandBrakeForceFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetHandBrakeForce", "Handling_SetHandBrakeForce SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetHandlingFlagsDelegate(uint _modelHash, uint _value); + private static void Handling_SetHandlingFlagsFallback(uint _modelHash, uint _value) => throw new Exceptions.OutdatedSdkException("Handling_SetHandlingFlags", "Handling_SetHandlingFlags SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetInertiaMultiplierDelegate(uint _modelHash, Vector3 _value); + private static void Handling_SetInertiaMultiplierFallback(uint _modelHash, Vector3 _value) => throw new Exceptions.OutdatedSdkException("Handling_SetInertiaMultiplier", "Handling_SetInertiaMultiplier SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetInitialDragCoeffDelegate(uint _modelHash, float _value); + private static void Handling_SetInitialDragCoeffFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetInitialDragCoeff", "Handling_SetInitialDragCoeff SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetInitialDriveForceDelegate(uint _modelHash, float _value); + private static void Handling_SetInitialDriveForceFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetInitialDriveForce", "Handling_SetInitialDriveForce SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetInitialDriveGearsDelegate(uint _modelHash, uint _value); + private static void Handling_SetInitialDriveGearsFallback(uint _modelHash, uint _value) => throw new Exceptions.OutdatedSdkException("Handling_SetInitialDriveGears", "Handling_SetInitialDriveGears SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetInitialDriveMaxFlatVelDelegate(uint _modelHash, float _value); + private static void Handling_SetInitialDriveMaxFlatVelFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetInitialDriveMaxFlatVel", "Handling_SetInitialDriveMaxFlatVel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetLowSpeedTractionLossMultDelegate(uint _modelHash, float _value); + private static void Handling_SetLowSpeedTractionLossMultFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetLowSpeedTractionLossMult", "Handling_SetLowSpeedTractionLossMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetMassDelegate(uint _modelHash, float _value); + private static void Handling_SetMassFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetMass", "Handling_SetMass SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetModelFlagsDelegate(uint _modelHash, uint _value); + private static void Handling_SetModelFlagsFallback(uint _modelHash, uint _value) => throw new Exceptions.OutdatedSdkException("Handling_SetModelFlags", "Handling_SetModelFlags SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetMonetaryValueDelegate(uint _modelHash, uint _value); + private static void Handling_SetMonetaryValueFallback(uint _modelHash, uint _value) => throw new Exceptions.OutdatedSdkException("Handling_SetMonetaryValue", "Handling_SetMonetaryValue SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetOilVolumeDelegate(uint _modelHash, float _value); + private static void Handling_SetOilVolumeFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetOilVolume", "Handling_SetOilVolume SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetPercentSubmergedDelegate(uint _modelHash, float _value); + private static void Handling_SetPercentSubmergedFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetPercentSubmerged", "Handling_SetPercentSubmerged SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetPercentSubmergedRatioDelegate(uint _modelHash, float _value); + private static void Handling_SetPercentSubmergedRatioFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetPercentSubmergedRatio", "Handling_SetPercentSubmergedRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetPetrolTankVolumeDelegate(uint _modelHash, float _value); + private static void Handling_SetPetrolTankVolumeFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetPetrolTankVolume", "Handling_SetPetrolTankVolume SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetRollCentreHeightFrontDelegate(uint _modelHash, float _value); + private static void Handling_SetRollCentreHeightFrontFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetRollCentreHeightFront", "Handling_SetRollCentreHeightFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetRollCentreHeightRearDelegate(uint _modelHash, float _value); + private static void Handling_SetRollCentreHeightRearFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetRollCentreHeightRear", "Handling_SetRollCentreHeightRear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetSeatOffsetDistXDelegate(uint _modelHash, float _value); + private static void Handling_SetSeatOffsetDistXFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetSeatOffsetDistX", "Handling_SetSeatOffsetDistX SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetSeatOffsetDistYDelegate(uint _modelHash, float _value); + private static void Handling_SetSeatOffsetDistYFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetSeatOffsetDistY", "Handling_SetSeatOffsetDistY SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetSeatOffsetDistZDelegate(uint _modelHash, float _value); + private static void Handling_SetSeatOffsetDistZFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetSeatOffsetDistZ", "Handling_SetSeatOffsetDistZ SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetSteeringLockDelegate(uint _modelHash, float _value); + private static void Handling_SetSteeringLockFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetSteeringLock", "Handling_SetSteeringLock SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetSteeringLockRatioDelegate(uint _modelHash, float _value); + private static void Handling_SetSteeringLockRatioFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetSteeringLockRatio", "Handling_SetSteeringLockRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetSuspensionBiasFrontDelegate(uint _modelHash, float _value); + private static void Handling_SetSuspensionBiasFrontFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetSuspensionBiasFront", "Handling_SetSuspensionBiasFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetSuspensionBiasRearDelegate(uint _modelHash, float _value); + private static void Handling_SetSuspensionBiasRearFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetSuspensionBiasRear", "Handling_SetSuspensionBiasRear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetSuspensionCompDampDelegate(uint _modelHash, float _value); + private static void Handling_SetSuspensionCompDampFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetSuspensionCompDamp", "Handling_SetSuspensionCompDamp SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetSuspensionForceDelegate(uint _modelHash, float _value); + private static void Handling_SetSuspensionForceFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetSuspensionForce", "Handling_SetSuspensionForce SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetSuspensionLowerLimitDelegate(uint _modelHash, float _value); + private static void Handling_SetSuspensionLowerLimitFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetSuspensionLowerLimit", "Handling_SetSuspensionLowerLimit SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetSuspensionRaiseDelegate(uint _modelHash, float _value); + private static void Handling_SetSuspensionRaiseFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetSuspensionRaise", "Handling_SetSuspensionRaise SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetSuspensionReboundDampDelegate(uint _modelHash, float _value); + private static void Handling_SetSuspensionReboundDampFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetSuspensionReboundDamp", "Handling_SetSuspensionReboundDamp SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetSuspensionUpperLimitDelegate(uint _modelHash, float _value); + private static void Handling_SetSuspensionUpperLimitFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetSuspensionUpperLimit", "Handling_SetSuspensionUpperLimit SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetTractionBiasFrontDelegate(uint _modelHash, float _value); + private static void Handling_SetTractionBiasFrontFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetTractionBiasFront", "Handling_SetTractionBiasFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetTractionBiasRearDelegate(uint _modelHash, float _value); + private static void Handling_SetTractionBiasRearFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetTractionBiasRear", "Handling_SetTractionBiasRear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetTractionCurveLateralDelegate(uint _modelHash, float _value); + private static void Handling_SetTractionCurveLateralFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetTractionCurveLateral", "Handling_SetTractionCurveLateral SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetTractionCurveLateralRatioDelegate(uint _modelHash, float _value); + private static void Handling_SetTractionCurveLateralRatioFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetTractionCurveLateralRatio", "Handling_SetTractionCurveLateralRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetTractionCurveMaxDelegate(uint _modelHash, float _value); + private static void Handling_SetTractionCurveMaxFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetTractionCurveMax", "Handling_SetTractionCurveMax SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetTractionCurveMaxRatioDelegate(uint _modelHash, float _value); + private static void Handling_SetTractionCurveMaxRatioFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetTractionCurveMaxRatio", "Handling_SetTractionCurveMaxRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetTractionCurveMinDelegate(uint _modelHash, float _value); + private static void Handling_SetTractionCurveMinFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetTractionCurveMin", "Handling_SetTractionCurveMin SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetTractionCurveMinRatioDelegate(uint _modelHash, float _value); + private static void Handling_SetTractionCurveMinRatioFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetTractionCurveMinRatio", "Handling_SetTractionCurveMinRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetTractionLossMultDelegate(uint _modelHash, float _value); + private static void Handling_SetTractionLossMultFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetTractionLossMult", "Handling_SetTractionLossMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetTractionSpringDeltaMaxDelegate(uint _modelHash, float _value); + private static void Handling_SetTractionSpringDeltaMaxFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetTractionSpringDeltaMax", "Handling_SetTractionSpringDeltaMax SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetTractionSpringDeltaMaxRatioDelegate(uint _modelHash, float _value); + private static void Handling_SetTractionSpringDeltaMaxRatioFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetTractionSpringDeltaMaxRatio", "Handling_SetTractionSpringDeltaMaxRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetunkFloat1Delegate(uint _modelHash, float _value); + private static void Handling_SetunkFloat1Fallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetunkFloat1", "Handling_SetunkFloat1 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetunkFloat2Delegate(uint _modelHash, float _value); + private static void Handling_SetunkFloat2Fallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetunkFloat2", "Handling_SetunkFloat2 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetunkFloat4Delegate(uint _modelHash, float _value); + private static void Handling_SetunkFloat4Fallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetunkFloat4", "Handling_SetunkFloat4 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetunkFloat5Delegate(uint _modelHash, float _value); + private static void Handling_SetunkFloat5Fallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetunkFloat5", "Handling_SetunkFloat5 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Handling_SetWeaponDamageMultDelegate(uint _modelHash, float _value); + private static void Handling_SetWeaponDamageMultFallback(uint _modelHash, float _value) => throw new Exceptions.OutdatedSdkException("Handling_SetWeaponDamageMult", "Handling_SetWeaponDamageMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void HttpClient_ConnectDelegate(nint _httpClient, nint _url, nint _body, ClientEvents.HttpResponseModuleDelegate _callback); + private static void HttpClient_ConnectFallback(nint _httpClient, nint _url, nint _body, ClientEvents.HttpResponseModuleDelegate _callback) => throw new Exceptions.OutdatedSdkException("HttpClient_Connect", "HttpClient_Connect SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void HttpClient_DeleteDelegate(nint _httpClient, nint _url, nint _body, ClientEvents.HttpResponseModuleDelegate _callback); + private static void HttpClient_DeleteFallback(nint _httpClient, nint _url, nint _body, ClientEvents.HttpResponseModuleDelegate _callback) => throw new Exceptions.OutdatedSdkException("HttpClient_Delete", "HttpClient_Delete SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void HttpClient_GetDelegate(nint _httpClient, nint _url, ClientEvents.HttpResponseModuleDelegate _callback); + private static void HttpClient_GetFallback(nint _httpClient, nint _url, ClientEvents.HttpResponseModuleDelegate _callback) => throw new Exceptions.OutdatedSdkException("HttpClient_Get", "HttpClient_Get SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint HttpClient_GetBaseObjectDelegate(nint _httpClient); + private static nint HttpClient_GetBaseObjectFallback(nint _httpClient) => throw new Exceptions.OutdatedSdkException("HttpClient_GetBaseObject", "HttpClient_GetBaseObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void HttpClient_GetExtraHeadersDelegate(nint _httpClient, nint* _keys, nint* _values, int* _size); + private static void HttpClient_GetExtraHeadersFallback(nint _httpClient, nint* _keys, nint* _values, int* _size) => throw new Exceptions.OutdatedSdkException("HttpClient_GetExtraHeaders", "HttpClient_GetExtraHeaders SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void HttpClient_HeadDelegate(nint _httpClient, nint _url, ClientEvents.HttpResponseModuleDelegate _callback); + private static void HttpClient_HeadFallback(nint _httpClient, nint _url, ClientEvents.HttpResponseModuleDelegate _callback) => throw new Exceptions.OutdatedSdkException("HttpClient_Head", "HttpClient_Head SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void HttpClient_OptionsDelegate(nint _httpClient, nint _url, nint _body, ClientEvents.HttpResponseModuleDelegate _callback); + private static void HttpClient_OptionsFallback(nint _httpClient, nint _url, nint _body, ClientEvents.HttpResponseModuleDelegate _callback) => throw new Exceptions.OutdatedSdkException("HttpClient_Options", "HttpClient_Options SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void HttpClient_PatchDelegate(nint _httpClient, nint _url, nint _body, ClientEvents.HttpResponseModuleDelegate _callback); + private static void HttpClient_PatchFallback(nint _httpClient, nint _url, nint _body, ClientEvents.HttpResponseModuleDelegate _callback) => throw new Exceptions.OutdatedSdkException("HttpClient_Patch", "HttpClient_Patch SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void HttpClient_PostDelegate(nint _httpClient, nint _url, nint _body, ClientEvents.HttpResponseModuleDelegate _callback); + private static void HttpClient_PostFallback(nint _httpClient, nint _url, nint _body, ClientEvents.HttpResponseModuleDelegate _callback) => throw new Exceptions.OutdatedSdkException("HttpClient_Post", "HttpClient_Post SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void HttpClient_PutDelegate(nint _httpClient, nint _url, nint _body, ClientEvents.HttpResponseModuleDelegate _callback); + private static void HttpClient_PutFallback(nint _httpClient, nint _url, nint _body, ClientEvents.HttpResponseModuleDelegate _callback) => throw new Exceptions.OutdatedSdkException("HttpClient_Put", "HttpClient_Put SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void HttpClient_SetExtraHeaderDelegate(nint _httpClient, nint _key, nint _value); + private static void HttpClient_SetExtraHeaderFallback(nint _httpClient, nint _key, nint _value) => throw new Exceptions.OutdatedSdkException("HttpClient_SetExtraHeader", "HttpClient_SetExtraHeader SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void HttpClient_TraceDelegate(nint _httpClient, nint _url, nint _body, ClientEvents.HttpResponseModuleDelegate _callback); + private static void HttpClient_TraceFallback(nint _httpClient, nint _url, nint _body, ClientEvents.HttpResponseModuleDelegate _callback) => throw new Exceptions.OutdatedSdkException("HttpClient_Trace", "HttpClient_Trace SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort LocalPlayer_GetCurrentAmmoDelegate(nint _localPlayer); + private static ushort LocalPlayer_GetCurrentAmmoFallback(nint _localPlayer) => throw new Exceptions.OutdatedSdkException("LocalPlayer_GetCurrentAmmo", "LocalPlayer_GetCurrentAmmo SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint LocalPlayer_GetCurrentWeaponHashDelegate(nint _localPlayer); + private static uint LocalPlayer_GetCurrentWeaponHashFallback(nint _localPlayer) => throw new Exceptions.OutdatedSdkException("LocalPlayer_GetCurrentWeaponHash", "LocalPlayer_GetCurrentWeaponHash SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort LocalPlayer_GetIDDelegate(nint _localPlayer); + private static ushort LocalPlayer_GetIDFallback(nint _localPlayer) => throw new Exceptions.OutdatedSdkException("LocalPlayer_GetID", "LocalPlayer_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float LocalPlayer_GetMaxStaminaDelegate(nint _localPlayer); + private static float LocalPlayer_GetMaxStaminaFallback(nint _localPlayer) => throw new Exceptions.OutdatedSdkException("LocalPlayer_GetMaxStamina", "LocalPlayer_GetMaxStamina SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint LocalPlayer_GetPlayerDelegate(nint _player); + private static nint LocalPlayer_GetPlayerFallback(nint _player) => throw new Exceptions.OutdatedSdkException("LocalPlayer_GetPlayer", "LocalPlayer_GetPlayer SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float LocalPlayer_GetStaminaDelegate(nint _localPlayer); + private static float LocalPlayer_GetStaminaFallback(nint _localPlayer) => throw new Exceptions.OutdatedSdkException("LocalPlayer_GetStamina", "LocalPlayer_GetStamina SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort LocalPlayer_GetWeaponAmmoDelegate(nint _localPlayer, uint _weaponHash); + private static ushort LocalPlayer_GetWeaponAmmoFallback(nint _localPlayer, uint _weaponHash) => throw new Exceptions.OutdatedSdkException("LocalPlayer_GetWeaponAmmo", "LocalPlayer_GetWeaponAmmo SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalPlayer_GetWeaponComponentsDelegate(nint _localPlayer, uint _weaponHash, nint* _weaponComponents, uint* _size); + private static void LocalPlayer_GetWeaponComponentsFallback(nint _localPlayer, uint _weaponHash, nint* _weaponComponents, uint* _size) => throw new Exceptions.OutdatedSdkException("LocalPlayer_GetWeaponComponents", "LocalPlayer_GetWeaponComponents SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalPlayer_GetWeaponsDelegate(nint _localPlayer, nint* _weapons, uint* _size); + private static void LocalPlayer_GetWeaponsFallback(nint _localPlayer, nint* _weapons, uint* _size) => throw new Exceptions.OutdatedSdkException("LocalPlayer_GetWeapons", "LocalPlayer_GetWeapons SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte LocalPlayer_HasWeaponDelegate(nint _localPlayer, uint _weaponHash); + private static byte LocalPlayer_HasWeaponFallback(nint _localPlayer, uint _weaponHash) => throw new Exceptions.OutdatedSdkException("LocalPlayer_HasWeapon", "LocalPlayer_HasWeapon SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalPlayer_SetMaxStaminaDelegate(nint _localPlayer, float _stamina); + private static void LocalPlayer_SetMaxStaminaFallback(nint _localPlayer, float _stamina) => throw new Exceptions.OutdatedSdkException("LocalPlayer_SetMaxStamina", "LocalPlayer_SetMaxStamina SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalPlayer_SetStaminaDelegate(nint _localPlayer, float _stamina); + private static void LocalPlayer_SetStaminaFallback(nint _localPlayer, float _stamina) => throw new Exceptions.OutdatedSdkException("LocalPlayer_SetStamina", "LocalPlayer_SetStamina SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalStorage_ClearDelegate(nint _localStorage); + private static void LocalStorage_ClearFallback(nint _localStorage) => throw new Exceptions.OutdatedSdkException("LocalStorage_Clear", "LocalStorage_Clear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalStorage_DeleteKeyDelegate(nint _localStorage, nint _key); + private static void LocalStorage_DeleteKeyFallback(nint _localStorage, nint _key) => throw new Exceptions.OutdatedSdkException("LocalStorage_DeleteKey", "LocalStorage_DeleteKey SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint LocalStorage_GetKeyDelegate(nint _localStorage, nint _key); + private static nint LocalStorage_GetKeyFallback(nint _localStorage, nint _key) => throw new Exceptions.OutdatedSdkException("LocalStorage_GetKey", "LocalStorage_GetKey SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalStorage_SaveDelegate(nint _localStorage); + private static void LocalStorage_SaveFallback(nint _localStorage) => throw new Exceptions.OutdatedSdkException("LocalStorage_Save", "LocalStorage_Save SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalStorage_SetKeyDelegate(nint _localStorage, nint _key, nint _value); + private static void LocalStorage_SetKeyFallback(nint _localStorage, nint _key, nint _value) => throw new Exceptions.OutdatedSdkException("LocalStorage_SetKey", "LocalStorage_SetKey SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float MapData_GetFScrollSpeedDelegate(uint _id); + private static float MapData_GetFScrollSpeedFallback(uint _id) => throw new Exceptions.OutdatedSdkException("MapData_GetFScrollSpeed", "MapData_GetFScrollSpeed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float MapData_GetFZoomScaleDelegate(uint _id); + private static float MapData_GetFZoomScaleFallback(uint _id) => throw new Exceptions.OutdatedSdkException("MapData_GetFZoomScale", "MapData_GetFZoomScale SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float MapData_GetFZoomSpeedDelegate(uint _id); + private static float MapData_GetFZoomSpeedFallback(uint _id) => throw new Exceptions.OutdatedSdkException("MapData_GetFZoomSpeed", "MapData_GetFZoomSpeed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float MapData_GetVTilesXDelegate(uint _id); + private static float MapData_GetVTilesXFallback(uint _id) => throw new Exceptions.OutdatedSdkException("MapData_GetVTilesX", "MapData_GetVTilesX SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float MapData_GetVTilesYDelegate(uint _id); + private static float MapData_GetVTilesYFallback(uint _id) => throw new Exceptions.OutdatedSdkException("MapData_GetVTilesY", "MapData_GetVTilesY SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void MapData_SetFScrollSpeedDelegate(uint _id, float _value); + private static void MapData_SetFScrollSpeedFallback(uint _id, float _value) => throw new Exceptions.OutdatedSdkException("MapData_SetFScrollSpeed", "MapData_SetFScrollSpeed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void MapData_SetFZoomScaleDelegate(uint _id, float _value); + private static void MapData_SetFZoomScaleFallback(uint _id, float _value) => throw new Exceptions.OutdatedSdkException("MapData_SetFZoomScale", "MapData_SetFZoomScale SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void MapData_SetFZoomSpeedDelegate(uint _id, float _value); + private static void MapData_SetFZoomSpeedFallback(uint _id, float _value) => throw new Exceptions.OutdatedSdkException("MapData_SetFZoomSpeed", "MapData_SetFZoomSpeed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void MapData_SetVTilesXDelegate(uint _id, float _value); + private static void MapData_SetVTilesXFallback(uint _id, float _value) => throw new Exceptions.OutdatedSdkException("MapData_SetVTilesX", "MapData_SetVTilesX SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void MapData_SetVTilesYDelegate(uint _id, float _value); + private static void MapData_SetVTilesYFallback(uint _id, float _value) => throw new Exceptions.OutdatedSdkException("MapData_SetVTilesY", "MapData_SetVTilesY SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Object_IsRemoteDelegate(nint _object); + private static byte Object_IsRemoteFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_IsRemote", "Object_IsRemote SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Player_GetLocalDelegate(); + private static nint Player_GetLocalFallback() => throw new Exceptions.OutdatedSdkException("Player_GetLocal", "Player_GetLocal SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Player_GetMicLevelDelegate(nint _player); + private static float Player_GetMicLevelFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetMicLevel", "Player_GetMicLevel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Player_GetNonSpatialVolumeDelegate(nint _player); + private static float Player_GetNonSpatialVolumeFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetNonSpatialVolume", "Player_GetNonSpatialVolume SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Player_GetSpatialVolumeDelegate(nint _player); + private static float Player_GetSpatialVolumeFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetSpatialVolume", "Player_GetSpatialVolume SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsTalkingDelegate(nint _player); + private static byte Player_IsTalkingFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsTalking", "Player_IsTalking SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetNonSpatialVolumeDelegate(nint _player, float _value); + private static void Player_SetNonSpatialVolumeFallback(nint _player, float _value) => throw new Exceptions.OutdatedSdkException("Player_SetNonSpatialVolume", "Player_SetNonSpatialVolume SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetSpatialVolumeDelegate(nint _player, float _value); + private static void Player_SetSpatialVolumeFallback(nint _player, float _value) => throw new Exceptions.OutdatedSdkException("Player_SetSpatialVolume", "Player_SetSpatialVolume SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate bool Resource_FileExistsDelegate(nint _resource, nint _path); + private static bool Resource_FileExistsFallback(nint _resource, nint _path) => throw new Exceptions.OutdatedSdkException("Resource_FileExists", "Resource_FileExists SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Resource_GetFileDelegate(nint _resource, nint _path, int* _bufferSize, nint* _buffer); + private static void Resource_GetFileFallback(nint _resource, nint _path, int* _bufferSize, nint* _buffer) => throw new Exceptions.OutdatedSdkException("Resource_GetFile", "Resource_GetFile SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Resource_GetLocalStorageDelegate(nint _resource); + private static nint Resource_GetLocalStorageFallback(nint _resource) => throw new Exceptions.OutdatedSdkException("Resource_GetLocalStorage", "Resource_GetLocalStorage SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlDocument_CreateElementDelegate(nint _rmlDocument, nint _tag); + private static nint RmlDocument_CreateElementFallback(nint _rmlDocument, nint _tag) => throw new Exceptions.OutdatedSdkException("RmlDocument_CreateElement", "RmlDocument_CreateElement SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlDocument_CreateTextNodeDelegate(nint _rmlDocument, nint _text); + private static nint RmlDocument_CreateTextNodeFallback(nint _rmlDocument, nint _text) => throw new Exceptions.OutdatedSdkException("RmlDocument_CreateTextNode", "RmlDocument_CreateTextNode SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlDocument_GetBodyDelegate(nint _rmlDocument); + private static nint RmlDocument_GetBodyFallback(nint _rmlDocument) => throw new Exceptions.OutdatedSdkException("RmlDocument_GetBody", "RmlDocument_GetBody SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlDocument_GetRmlElementDelegate(nint _rmlDocument); + private static nint RmlDocument_GetRmlElementFallback(nint _rmlDocument) => throw new Exceptions.OutdatedSdkException("RmlDocument_GetRmlElement", "RmlDocument_GetRmlElement SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlDocument_GetSourceUrlDelegate(nint _rmlDocument, int* _size); + private static nint RmlDocument_GetSourceUrlFallback(nint _rmlDocument, int* _size) => throw new Exceptions.OutdatedSdkException("RmlDocument_GetSourceUrl", "RmlDocument_GetSourceUrl SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlDocument_GetTitleDelegate(nint _rmlDocument, int* _size); + private static nint RmlDocument_GetTitleFallback(nint _rmlDocument, int* _size) => throw new Exceptions.OutdatedSdkException("RmlDocument_GetTitle", "RmlDocument_GetTitle SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlDocument_HideDelegate(nint _rmlDocument); + private static void RmlDocument_HideFallback(nint _rmlDocument) => throw new Exceptions.OutdatedSdkException("RmlDocument_Hide", "RmlDocument_Hide SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte RmlDocument_IsModalDelegate(nint _rmlDocument); + private static byte RmlDocument_IsModalFallback(nint _rmlDocument) => throw new Exceptions.OutdatedSdkException("RmlDocument_IsModal", "RmlDocument_IsModal SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte RmlDocument_IsVisibleDelegate(nint _rmlDocument); + private static byte RmlDocument_IsVisibleFallback(nint _rmlDocument) => throw new Exceptions.OutdatedSdkException("RmlDocument_IsVisible", "RmlDocument_IsVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlDocument_SetTitleDelegate(nint _rmlDocument, nint _title); + private static void RmlDocument_SetTitleFallback(nint _rmlDocument, nint _title) => throw new Exceptions.OutdatedSdkException("RmlDocument_SetTitle", "RmlDocument_SetTitle SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlDocument_ShowDelegate(nint _rmlDocument, byte _isModal, byte _focused); + private static void RmlDocument_ShowFallback(nint _rmlDocument, byte _isModal, byte _focused) => throw new Exceptions.OutdatedSdkException("RmlDocument_Show", "RmlDocument_Show SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlDocument_UpdateDelegate(nint _rmlDocument); + private static void RmlDocument_UpdateFallback(nint _rmlDocument) => throw new Exceptions.OutdatedSdkException("RmlDocument_Update", "RmlDocument_Update SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_AddClassDelegate(nint _rmlElement, nint _name); + private static void RmlElement_AddClassFallback(nint _rmlElement, nint _name) => throw new Exceptions.OutdatedSdkException("RmlElement_AddClass", "RmlElement_AddClass SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_AddPseudoClassDelegate(nint _rmlElement, nint _name); + private static void RmlElement_AddPseudoClassFallback(nint _rmlElement, nint _name) => throw new Exceptions.OutdatedSdkException("RmlElement_AddPseudoClass", "RmlElement_AddPseudoClass SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_AppendChildDelegate(nint _rmlElement, nint _child); + private static void RmlElement_AppendChildFallback(nint _rmlElement, nint _child) => throw new Exceptions.OutdatedSdkException("RmlElement_AppendChild", "RmlElement_AppendChild SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_BlurDelegate(nint _rmlElement); + private static void RmlElement_BlurFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_Blur", "RmlElement_Blur SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_ClickDelegate(nint _rmlElement); + private static void RmlElement_ClickFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_Click", "RmlElement_Click SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_FocusDelegate(nint _rmlElement); + private static void RmlElement_FocusFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_Focus", "RmlElement_Focus SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float RmlElement_GetAbsoluteLeftDelegate(nint _rmlElement); + private static float RmlElement_GetAbsoluteLeftFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetAbsoluteLeft", "RmlElement_GetAbsoluteLeft SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_GetAbsoluteOffsetDelegate(nint _rmlElement, Vector2* _offset); + private static void RmlElement_GetAbsoluteOffsetFallback(nint _rmlElement, Vector2* _offset) => throw new Exceptions.OutdatedSdkException("RmlElement_GetAbsoluteOffset", "RmlElement_GetAbsoluteOffset SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float RmlElement_GetAbsoluteTopDelegate(nint _rmlElement); + private static float RmlElement_GetAbsoluteTopFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetAbsoluteTop", "RmlElement_GetAbsoluteTop SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetAttributeDelegate(nint _rmlElement, nint _name, int* _size); + private static nint RmlElement_GetAttributeFallback(nint _rmlElement, nint _name, int* _size) => throw new Exceptions.OutdatedSdkException("RmlElement_GetAttribute", "RmlElement_GetAttribute SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_GetAttributesDelegate(nint _rmlElement, nint* _keys, nint* _values, uint* _size); + private static void RmlElement_GetAttributesFallback(nint _rmlElement, nint* _keys, nint* _values, uint* _size) => throw new Exceptions.OutdatedSdkException("RmlElement_GetAttributes", "RmlElement_GetAttributes SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float RmlElement_GetBaselineDelegate(nint _rmlElement); + private static float RmlElement_GetBaselineFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetBaseline", "RmlElement_GetBaseline SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetBaseObjectDelegate(nint _rmlElement); + private static nint RmlElement_GetBaseObjectFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetBaseObject", "RmlElement_GetBaseObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint RmlElement_GetChildCountDelegate(nint _rmlElement); + private static uint RmlElement_GetChildCountFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetChildCount", "RmlElement_GetChildCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_GetChildNodesDelegate(nint _rmlElement, nint* _arr, uint* _size); + private static void RmlElement_GetChildNodesFallback(nint _rmlElement, nint* _arr, uint* _size) => throw new Exceptions.OutdatedSdkException("RmlElement_GetChildNodes", "RmlElement_GetChildNodes SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_GetClassListDelegate(nint _rmlElement, nint* _classes, uint* _size); + private static void RmlElement_GetClassListFallback(nint _rmlElement, nint* _classes, uint* _size) => throw new Exceptions.OutdatedSdkException("RmlElement_GetClassList", "RmlElement_GetClassList SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float RmlElement_GetClientHeightDelegate(nint _rmlElement); + private static float RmlElement_GetClientHeightFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetClientHeight", "RmlElement_GetClientHeight SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float RmlElement_GetClientLeftDelegate(nint _rmlElement); + private static float RmlElement_GetClientLeftFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetClientLeft", "RmlElement_GetClientLeft SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float RmlElement_GetClientTopDelegate(nint _rmlElement); + private static float RmlElement_GetClientTopFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetClientTop", "RmlElement_GetClientTop SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float RmlElement_GetClientWidthDelegate(nint _rmlElement); + private static float RmlElement_GetClientWidthFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetClientWidth", "RmlElement_GetClientWidth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetClosestDelegate(nint _rmlElement, nint _selectors); + private static nint RmlElement_GetClosestFallback(nint _rmlElement, nint _selectors) => throw new Exceptions.OutdatedSdkException("RmlElement_GetClosest", "RmlElement_GetClosest SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_GetContainingBlockDelegate(nint _rmlElement, Vector2* _containingBlock); + private static void RmlElement_GetContainingBlockFallback(nint _rmlElement, Vector2* _containingBlock) => throw new Exceptions.OutdatedSdkException("RmlElement_GetContainingBlock", "RmlElement_GetContainingBlock SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetElementByIdDelegate(nint _rmlElement, nint _id); + private static nint RmlElement_GetElementByIdFallback(nint _rmlElement, nint _id) => throw new Exceptions.OutdatedSdkException("RmlElement_GetElementById", "RmlElement_GetElementById SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_GetElementsByClassNameDelegate(nint _rmlElement, nint _className, nint* _arr, uint* _size); + private static void RmlElement_GetElementsByClassNameFallback(nint _rmlElement, nint _className, nint* _arr, uint* _size) => throw new Exceptions.OutdatedSdkException("RmlElement_GetElementsByClassName", "RmlElement_GetElementsByClassName SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_GetElementsByTagNameDelegate(nint _rmlElement, nint _tagName, nint* _arr, uint* _size); + private static void RmlElement_GetElementsByTagNameFallback(nint _rmlElement, nint _tagName, nint* _arr, uint* _size) => throw new Exceptions.OutdatedSdkException("RmlElement_GetElementsByTagName", "RmlElement_GetElementsByTagName SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetFirstChildDelegate(nint _rmlElement); + private static nint RmlElement_GetFirstChildFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetFirstChild", "RmlElement_GetFirstChild SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetFocusedElementDelegate(nint _rmlElement); + private static nint RmlElement_GetFocusedElementFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetFocusedElement", "RmlElement_GetFocusedElement SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetIdDelegate(nint _rmlElement, int* _size); + private static nint RmlElement_GetIdFallback(nint _rmlElement, int* _size) => throw new Exceptions.OutdatedSdkException("RmlElement_GetId", "RmlElement_GetId SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetInnerRmlDelegate(nint _rmlElement, int* _size); + private static nint RmlElement_GetInnerRmlFallback(nint _rmlElement, int* _size) => throw new Exceptions.OutdatedSdkException("RmlElement_GetInnerRml", "RmlElement_GetInnerRml SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetLastChildDelegate(nint _rmlElement); + private static nint RmlElement_GetLastChildFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetLastChild", "RmlElement_GetLastChild SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetLocalPropertyDelegate(nint _rmlElement, nint _name, int* _size); + private static nint RmlElement_GetLocalPropertyFallback(nint _rmlElement, nint _name, int* _size) => throw new Exceptions.OutdatedSdkException("RmlElement_GetLocalProperty", "RmlElement_GetLocalProperty SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetNextSiblingDelegate(nint _rmlElement); + private static nint RmlElement_GetNextSiblingFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetNextSibling", "RmlElement_GetNextSibling SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float RmlElement_GetOffsetHeightDelegate(nint _rmlElement); + private static float RmlElement_GetOffsetHeightFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetOffsetHeight", "RmlElement_GetOffsetHeight SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float RmlElement_GetOffsetLeftDelegate(nint _rmlElement); + private static float RmlElement_GetOffsetLeftFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetOffsetLeft", "RmlElement_GetOffsetLeft SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float RmlElement_GetOffsetTopDelegate(nint _rmlElement); + private static float RmlElement_GetOffsetTopFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetOffsetTop", "RmlElement_GetOffsetTop SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float RmlElement_GetOffsetWidthDelegate(nint _rmlElement); + private static float RmlElement_GetOffsetWidthFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetOffsetWidth", "RmlElement_GetOffsetWidth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetOwnerDocumentDelegate(nint _rmlElement); + private static nint RmlElement_GetOwnerDocumentFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetOwnerDocument", "RmlElement_GetOwnerDocument SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetParentDelegate(nint _rmlElement); + private static nint RmlElement_GetParentFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetParent", "RmlElement_GetParent SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetPreviousSiblingDelegate(nint _rmlElement); + private static nint RmlElement_GetPreviousSiblingFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetPreviousSibling", "RmlElement_GetPreviousSibling SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetPropertyDelegate(nint _rmlElement, nint _name, int* _size); + private static nint RmlElement_GetPropertyFallback(nint _rmlElement, nint _name, int* _size) => throw new Exceptions.OutdatedSdkException("RmlElement_GetProperty", "RmlElement_GetProperty SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float RmlElement_GetPropertyAbsoluteValueDelegate(nint _rmlElement, nint _name); + private static float RmlElement_GetPropertyAbsoluteValueFallback(nint _rmlElement, nint _name) => throw new Exceptions.OutdatedSdkException("RmlElement_GetPropertyAbsoluteValue", "RmlElement_GetPropertyAbsoluteValue SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_GetPseudoClassListDelegate(nint _rmlElement, nint* _classes, uint* _size); + private static void RmlElement_GetPseudoClassListFallback(nint _rmlElement, nint* _classes, uint* _size) => throw new Exceptions.OutdatedSdkException("RmlElement_GetPseudoClassList", "RmlElement_GetPseudoClassList SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_GetRelativeOffsetDelegate(nint _rmlElement, Vector2* _offset); + private static void RmlElement_GetRelativeOffsetFallback(nint _rmlElement, Vector2* _offset) => throw new Exceptions.OutdatedSdkException("RmlElement_GetRelativeOffset", "RmlElement_GetRelativeOffset SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float RmlElement_GetScrollHeightDelegate(nint _rmlElement); + private static float RmlElement_GetScrollHeightFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetScrollHeight", "RmlElement_GetScrollHeight SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float RmlElement_GetScrollLeftDelegate(nint _rmlElement); + private static float RmlElement_GetScrollLeftFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetScrollLeft", "RmlElement_GetScrollLeft SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float RmlElement_GetScrollTopDelegate(nint _rmlElement); + private static float RmlElement_GetScrollTopFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetScrollTop", "RmlElement_GetScrollTop SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float RmlElement_GetScrollWidthDelegate(nint _rmlElement); + private static float RmlElement_GetScrollWidthFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetScrollWidth", "RmlElement_GetScrollWidth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetTagNameDelegate(nint _rmlElement, int* _size); + private static nint RmlElement_GetTagNameFallback(nint _rmlElement, int* _size) => throw new Exceptions.OutdatedSdkException("RmlElement_GetTagName", "RmlElement_GetTagName SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float RmlElement_GetZIndexDelegate(nint _rmlElement); + private static float RmlElement_GetZIndexFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetZIndex", "RmlElement_GetZIndex SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte RmlElement_HasAttributeDelegate(nint _rmlElement, nint _name); + private static byte RmlElement_HasAttributeFallback(nint _rmlElement, nint _name) => throw new Exceptions.OutdatedSdkException("RmlElement_HasAttribute", "RmlElement_HasAttribute SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte RmlElement_HasChildrenDelegate(nint _rmlElement); + private static byte RmlElement_HasChildrenFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_HasChildren", "RmlElement_HasChildren SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte RmlElement_HasClassDelegate(nint _rmlElement, nint _name); + private static byte RmlElement_HasClassFallback(nint _rmlElement, nint _name) => throw new Exceptions.OutdatedSdkException("RmlElement_HasClass", "RmlElement_HasClass SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte RmlElement_HasLocalPropertyDelegate(nint _rmlElement, nint _name); + private static byte RmlElement_HasLocalPropertyFallback(nint _rmlElement, nint _name) => throw new Exceptions.OutdatedSdkException("RmlElement_HasLocalProperty", "RmlElement_HasLocalProperty SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte RmlElement_HasPropertyDelegate(nint _rmlElement, nint _name); + private static byte RmlElement_HasPropertyFallback(nint _rmlElement, nint _name) => throw new Exceptions.OutdatedSdkException("RmlElement_HasProperty", "RmlElement_HasProperty SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte RmlElement_HasPseudoClassDelegate(nint _rmlElement, nint _name); + private static byte RmlElement_HasPseudoClassFallback(nint _rmlElement, nint _name) => throw new Exceptions.OutdatedSdkException("RmlElement_HasPseudoClass", "RmlElement_HasPseudoClass SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_InsertBeforeDelegate(nint _rmlElement, nint _child, nint _adjacent); + private static void RmlElement_InsertBeforeFallback(nint _rmlElement, nint _child, nint _adjacent) => throw new Exceptions.OutdatedSdkException("RmlElement_InsertBefore", "RmlElement_InsertBefore SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte RmlElement_IsOwnedDelegate(nint _rmlElement); + private static byte RmlElement_IsOwnedFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_IsOwned", "RmlElement_IsOwned SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte RmlElement_IsPointWithinElementDelegate(nint _rmlElement, Vector2 _point); + private static byte RmlElement_IsPointWithinElementFallback(nint _rmlElement, Vector2 _point) => throw new Exceptions.OutdatedSdkException("RmlElement_IsPointWithinElement", "RmlElement_IsPointWithinElement SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte RmlElement_IsVisibleDelegate(nint _rmlElement); + private static byte RmlElement_IsVisibleFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_IsVisible", "RmlElement_IsVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_QuerySelectorDelegate(nint _rmlElement, nint _selector); + private static nint RmlElement_QuerySelectorFallback(nint _rmlElement, nint _selector) => throw new Exceptions.OutdatedSdkException("RmlElement_QuerySelector", "RmlElement_QuerySelector SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_QuerySelectorAllDelegate(nint _rmlElement, nint _selector, nint* _arr, uint* _size); + private static void RmlElement_QuerySelectorAllFallback(nint _rmlElement, nint _selector, nint* _arr, uint* _size) => throw new Exceptions.OutdatedSdkException("RmlElement_QuerySelectorAll", "RmlElement_QuerySelectorAll SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte RmlElement_RemoveAttributeDelegate(nint _rmlElement, nint _name); + private static byte RmlElement_RemoveAttributeFallback(nint _rmlElement, nint _name) => throw new Exceptions.OutdatedSdkException("RmlElement_RemoveAttribute", "RmlElement_RemoveAttribute SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_RemoveChildDelegate(nint _rmlElement, nint _child); + private static void RmlElement_RemoveChildFallback(nint _rmlElement, nint _child) => throw new Exceptions.OutdatedSdkException("RmlElement_RemoveChild", "RmlElement_RemoveChild SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte RmlElement_RemoveClassDelegate(nint _rmlElement, nint _name); + private static byte RmlElement_RemoveClassFallback(nint _rmlElement, nint _name) => throw new Exceptions.OutdatedSdkException("RmlElement_RemoveClass", "RmlElement_RemoveClass SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte RmlElement_RemovePropertyDelegate(nint _rmlElement, nint _name); + private static byte RmlElement_RemovePropertyFallback(nint _rmlElement, nint _name) => throw new Exceptions.OutdatedSdkException("RmlElement_RemoveProperty", "RmlElement_RemoveProperty SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte RmlElement_RemovePseudoClassDelegate(nint _rmlElement, nint _name); + private static byte RmlElement_RemovePseudoClassFallback(nint _rmlElement, nint _name) => throw new Exceptions.OutdatedSdkException("RmlElement_RemovePseudoClass", "RmlElement_RemovePseudoClass SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_ReplaceChildDelegate(nint _rmlElement, nint _newElem, nint _oldElem); + private static void RmlElement_ReplaceChildFallback(nint _rmlElement, nint _newElem, nint _oldElem) => throw new Exceptions.OutdatedSdkException("RmlElement_ReplaceChild", "RmlElement_ReplaceChild SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_ScrollIntoViewDelegate(nint _rmlElement, byte _alignToTop); + private static void RmlElement_ScrollIntoViewFallback(nint _rmlElement, byte _alignToTop) => throw new Exceptions.OutdatedSdkException("RmlElement_ScrollIntoView", "RmlElement_ScrollIntoView SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_SetAttributeDelegate(nint _rmlElement, nint _name, nint _value); + private static void RmlElement_SetAttributeFallback(nint _rmlElement, nint _name, nint _value) => throw new Exceptions.OutdatedSdkException("RmlElement_SetAttribute", "RmlElement_SetAttribute SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_SetIdDelegate(nint _rmlElement, nint _value); + private static void RmlElement_SetIdFallback(nint _rmlElement, nint _value) => throw new Exceptions.OutdatedSdkException("RmlElement_SetId", "RmlElement_SetId SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_SetInnerRmlDelegate(nint _rmlElement, nint _value); + private static void RmlElement_SetInnerRmlFallback(nint _rmlElement, nint _value) => throw new Exceptions.OutdatedSdkException("RmlElement_SetInnerRml", "RmlElement_SetInnerRml SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_SetOffsetDelegate(nint _rmlElement, nint _element, Vector2 _offset, byte _fixed); + private static void RmlElement_SetOffsetFallback(nint _rmlElement, nint _element, Vector2 _offset, byte _fixed) => throw new Exceptions.OutdatedSdkException("RmlElement_SetOffset", "RmlElement_SetOffset SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_SetPropertyDelegate(nint _rmlElement, nint _name, nint _value); + private static void RmlElement_SetPropertyFallback(nint _rmlElement, nint _name, nint _value) => throw new Exceptions.OutdatedSdkException("RmlElement_SetProperty", "RmlElement_SetProperty SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_SetScrollLeftDelegate(nint _rmlElement, float _value); + private static void RmlElement_SetScrollLeftFallback(nint _rmlElement, float _value) => throw new Exceptions.OutdatedSdkException("RmlElement_SetScrollLeft", "RmlElement_SetScrollLeft SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_SetScrollTopDelegate(nint _rmlElement, float _value); + private static void RmlElement_SetScrollTopFallback(nint _rmlElement, float _value) => throw new Exceptions.OutdatedSdkException("RmlElement_SetScrollTop", "RmlElement_SetScrollTop SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetAbsLightStateDelegate(nint _vehicle); + private static byte Vehicle_GetAbsLightStateFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetAbsLightState", "Vehicle_GetAbsLightState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetBatteryLightStateDelegate(nint _vehicle); + private static byte Vehicle_GetBatteryLightStateFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetBatteryLightState", "Vehicle_GetBatteryLightState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Vehicle_GetCurrentGearDelegate(nint _vehicle); + private static ushort Vehicle_GetCurrentGearFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetCurrentGear", "Vehicle_GetCurrentGear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetCurrentRPMDelegate(nint _vehicle); + private static float Vehicle_GetCurrentRPMFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetCurrentRPM", "Vehicle_GetCurrentRPM SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetEngineLightStateDelegate(nint _vehicle); + private static byte Vehicle_GetEngineLightStateFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetEngineLightState", "Vehicle_GetEngineLightState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetEngineTemperatureDelegate(nint _vehicle); + private static float Vehicle_GetEngineTemperatureFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetEngineTemperature", "Vehicle_GetEngineTemperature SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetFuelLevelDelegate(nint _vehicle); + private static float Vehicle_GetFuelLevelFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetFuelLevel", "Vehicle_GetFuelLevel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetLightsIndicatorDelegate(nint _vehicle); + private static byte Vehicle_GetLightsIndicatorFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetLightsIndicator", "Vehicle_GetLightsIndicator SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Vehicle_GetMaxGearDelegate(nint _vehicle); + private static ushort Vehicle_GetMaxGearFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetMaxGear", "Vehicle_GetMaxGear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetOccupiedSeatsCountDelegate(nint _vehicle); + private static byte Vehicle_GetOccupiedSeatsCountFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetOccupiedSeatsCount", "Vehicle_GetOccupiedSeatsCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetOilLevelDelegate(nint _vehicle); + private static float Vehicle_GetOilLevelFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetOilLevel", "Vehicle_GetOilLevel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetOilLightStateDelegate(nint _vehicle); + private static byte Vehicle_GetOilLightStateFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetOilLightState", "Vehicle_GetOilLightState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetPetrolLightStateDelegate(nint _vehicle); + private static byte Vehicle_GetPetrolLightStateFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetPetrolLightState", "Vehicle_GetPetrolLightState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetSeatCountDelegate(nint _vehicle); + private static byte Vehicle_GetSeatCountFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetSeatCount", "Vehicle_GetSeatCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_GetSpeedVectorDelegate(nint _vehicle, Vector3* _vector); + private static void Vehicle_GetSpeedVectorFallback(nint _vehicle, Vector3* _vector) => throw new Exceptions.OutdatedSdkException("Vehicle_GetSpeedVector", "Vehicle_GetSpeedVector SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetWheelCamberDelegate(nint _vehicle, byte _wheel); + private static float Vehicle_GetWheelCamberFallback(nint _vehicle, byte _wheel) => throw new Exceptions.OutdatedSdkException("Vehicle_GetWheelCamber", "Vehicle_GetWheelCamber SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetWheelHeightDelegate(nint _vehicle, byte _wheel); + private static float Vehicle_GetWheelHeightFallback(nint _vehicle, byte _wheel) => throw new Exceptions.OutdatedSdkException("Vehicle_GetWheelHeight", "Vehicle_GetWheelHeight SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetWheelRimRadiusDelegate(nint _vehicle, byte _wheel); + private static float Vehicle_GetWheelRimRadiusFallback(nint _vehicle, byte _wheel) => throw new Exceptions.OutdatedSdkException("Vehicle_GetWheelRimRadius", "Vehicle_GetWheelRimRadius SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetWheelSpeedDelegate(nint _vehicle); + private static float Vehicle_GetWheelSpeedFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetWheelSpeed", "Vehicle_GetWheelSpeed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Vehicle_GetWheelSurfaceMaterialDelegate(nint _vehicle, byte _wheel); + private static uint Vehicle_GetWheelSurfaceMaterialFallback(nint _vehicle, byte _wheel) => throw new Exceptions.OutdatedSdkException("Vehicle_GetWheelSurfaceMaterial", "Vehicle_GetWheelSurfaceMaterial SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetWheelTrackWidthDelegate(nint _vehicle, byte _wheel); + private static float Vehicle_GetWheelTrackWidthFallback(nint _vehicle, byte _wheel) => throw new Exceptions.OutdatedSdkException("Vehicle_GetWheelTrackWidth", "Vehicle_GetWheelTrackWidth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetWheelTyreRadiusDelegate(nint _vehicle, byte _wheel); + private static float Vehicle_GetWheelTyreRadiusFallback(nint _vehicle, byte _wheel) => throw new Exceptions.OutdatedSdkException("Vehicle_GetWheelTyreRadius", "Vehicle_GetWheelTyreRadius SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetWheelTyreWidthDelegate(nint _vehicle, byte _wheel); + private static float Vehicle_GetWheelTyreWidthFallback(nint _vehicle, byte _wheel) => throw new Exceptions.OutdatedSdkException("Vehicle_GetWheelTyreWidth", "Vehicle_GetWheelTyreWidth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetAccelerationDelegate(nint _vehicle); + private static float Vehicle_Handling_GetAccelerationFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetAcceleration", "Vehicle_Handling_GetAcceleration SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetAntiRollBarBiasFrontDelegate(nint _vehicle); + private static float Vehicle_Handling_GetAntiRollBarBiasFrontFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetAntiRollBarBiasFront", "Vehicle_Handling_GetAntiRollBarBiasFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetAntiRollBarBiasRearDelegate(nint _vehicle); + private static float Vehicle_Handling_GetAntiRollBarBiasRearFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetAntiRollBarBiasRear", "Vehicle_Handling_GetAntiRollBarBiasRear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetAntiRollBarForceDelegate(nint _vehicle); + private static float Vehicle_Handling_GetAntiRollBarForceFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetAntiRollBarForce", "Vehicle_Handling_GetAntiRollBarForce SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetBrakeBiasFrontDelegate(nint _vehicle); + private static float Vehicle_Handling_GetBrakeBiasFrontFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetBrakeBiasFront", "Vehicle_Handling_GetBrakeBiasFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetBrakeBiasRearDelegate(nint _vehicle); + private static float Vehicle_Handling_GetBrakeBiasRearFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetBrakeBiasRear", "Vehicle_Handling_GetBrakeBiasRear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetBrakeForceDelegate(nint _vehicle); + private static float Vehicle_Handling_GetBrakeForceFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetBrakeForce", "Vehicle_Handling_GetBrakeForce SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetCamberStiffnessDelegate(nint _vehicle); + private static float Vehicle_Handling_GetCamberStiffnessFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetCamberStiffness", "Vehicle_Handling_GetCamberStiffness SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_GetCentreOfMassOffsetDelegate(nint _vehicle, Vector3* _offset); + private static void Vehicle_Handling_GetCentreOfMassOffsetFallback(nint _vehicle, Vector3* _offset) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetCentreOfMassOffset", "Vehicle_Handling_GetCentreOfMassOffset SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetClutchChangeRateScaleDownShiftDelegate(nint _vehicle); + private static float Vehicle_Handling_GetClutchChangeRateScaleDownShiftFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetClutchChangeRateScaleDownShift", "Vehicle_Handling_GetClutchChangeRateScaleDownShift SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetClutchChangeRateScaleUpShiftDelegate(nint _vehicle); + private static float Vehicle_Handling_GetClutchChangeRateScaleUpShiftFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetClutchChangeRateScaleUpShift", "Vehicle_Handling_GetClutchChangeRateScaleUpShift SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetCollisionDamageMultDelegate(nint _vehicle); + private static float Vehicle_Handling_GetCollisionDamageMultFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetCollisionDamageMult", "Vehicle_Handling_GetCollisionDamageMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Vehicle_Handling_GetDamageFlagsDelegate(nint _vehicle); + private static uint Vehicle_Handling_GetDamageFlagsFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetDamageFlags", "Vehicle_Handling_GetDamageFlags SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetDeformationDamageMultDelegate(nint _vehicle); + private static float Vehicle_Handling_GetDeformationDamageMultFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetDeformationDamageMult", "Vehicle_Handling_GetDeformationDamageMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetDownforceModifierDelegate(nint _vehicle); + private static float Vehicle_Handling_GetDownforceModifierFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetDownforceModifier", "Vehicle_Handling_GetDownforceModifier SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetDriveBiasFrontDelegate(nint _vehicle); + private static float Vehicle_Handling_GetDriveBiasFrontFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetDriveBiasFront", "Vehicle_Handling_GetDriveBiasFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetDriveInertiaDelegate(nint _vehicle); + private static float Vehicle_Handling_GetDriveInertiaFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetDriveInertia", "Vehicle_Handling_GetDriveInertia SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetDriveMaxFlatVelDelegate(nint _vehicle); + private static float Vehicle_Handling_GetDriveMaxFlatVelFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetDriveMaxFlatVel", "Vehicle_Handling_GetDriveMaxFlatVel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetEngineDamageMultDelegate(nint _vehicle); + private static float Vehicle_Handling_GetEngineDamageMultFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetEngineDamageMult", "Vehicle_Handling_GetEngineDamageMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetHandBrakeForceDelegate(nint _vehicle); + private static float Vehicle_Handling_GetHandBrakeForceFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetHandBrakeForce", "Vehicle_Handling_GetHandBrakeForce SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Vehicle_Handling_GetHandlingFlagsDelegate(nint _vehicle); + private static uint Vehicle_Handling_GetHandlingFlagsFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetHandlingFlags", "Vehicle_Handling_GetHandlingFlags SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Vehicle_Handling_GetHandlingNameHashDelegate(nint _vehicle); + private static uint Vehicle_Handling_GetHandlingNameHashFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetHandlingNameHash", "Vehicle_Handling_GetHandlingNameHash SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_GetInertiaMultiplierDelegate(nint _vehicle, Vector3* _offset); + private static void Vehicle_Handling_GetInertiaMultiplierFallback(nint _vehicle, Vector3* _offset) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetInertiaMultiplier", "Vehicle_Handling_GetInertiaMultiplier SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetInitialDragCoeffDelegate(nint _vehicle); + private static float Vehicle_Handling_GetInitialDragCoeffFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetInitialDragCoeff", "Vehicle_Handling_GetInitialDragCoeff SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetInitialDriveForceDelegate(nint _vehicle); + private static float Vehicle_Handling_GetInitialDriveForceFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetInitialDriveForce", "Vehicle_Handling_GetInitialDriveForce SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Vehicle_Handling_GetInitialDriveGearsDelegate(nint _vehicle); + private static uint Vehicle_Handling_GetInitialDriveGearsFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetInitialDriveGears", "Vehicle_Handling_GetInitialDriveGears SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetInitialDriveMaxFlatVelDelegate(nint _vehicle); + private static float Vehicle_Handling_GetInitialDriveMaxFlatVelFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetInitialDriveMaxFlatVel", "Vehicle_Handling_GetInitialDriveMaxFlatVel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetLowSpeedTractionLossMultDelegate(nint _vehicle); + private static float Vehicle_Handling_GetLowSpeedTractionLossMultFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetLowSpeedTractionLossMult", "Vehicle_Handling_GetLowSpeedTractionLossMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetMassDelegate(nint _vehicle); + private static float Vehicle_Handling_GetMassFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetMass", "Vehicle_Handling_GetMass SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Vehicle_Handling_GetModelFlagsDelegate(nint _vehicle); + private static uint Vehicle_Handling_GetModelFlagsFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetModelFlags", "Vehicle_Handling_GetModelFlags SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Vehicle_Handling_GetMonetaryValueDelegate(nint _vehicle); + private static uint Vehicle_Handling_GetMonetaryValueFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetMonetaryValue", "Vehicle_Handling_GetMonetaryValue SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetOilVolumeDelegate(nint _vehicle); + private static float Vehicle_Handling_GetOilVolumeFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetOilVolume", "Vehicle_Handling_GetOilVolume SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetPercentSubmergedDelegate(nint _vehicle); + private static float Vehicle_Handling_GetPercentSubmergedFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetPercentSubmerged", "Vehicle_Handling_GetPercentSubmerged SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetPercentSubmergedRatioDelegate(nint _vehicle); + private static float Vehicle_Handling_GetPercentSubmergedRatioFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetPercentSubmergedRatio", "Vehicle_Handling_GetPercentSubmergedRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetPetrolTankVolumeDelegate(nint _vehicle); + private static float Vehicle_Handling_GetPetrolTankVolumeFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetPetrolTankVolume", "Vehicle_Handling_GetPetrolTankVolume SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetRollCentreHeightFrontDelegate(nint _vehicle); + private static float Vehicle_Handling_GetRollCentreHeightFrontFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetRollCentreHeightFront", "Vehicle_Handling_GetRollCentreHeightFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetRollCentreHeightRearDelegate(nint _vehicle); + private static float Vehicle_Handling_GetRollCentreHeightRearFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetRollCentreHeightRear", "Vehicle_Handling_GetRollCentreHeightRear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetSeatOffsetDistXDelegate(nint _vehicle); + private static float Vehicle_Handling_GetSeatOffsetDistXFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetSeatOffsetDistX", "Vehicle_Handling_GetSeatOffsetDistX SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetSeatOffsetDistYDelegate(nint _vehicle); + private static float Vehicle_Handling_GetSeatOffsetDistYFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetSeatOffsetDistY", "Vehicle_Handling_GetSeatOffsetDistY SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetSeatOffsetDistZDelegate(nint _vehicle); + private static float Vehicle_Handling_GetSeatOffsetDistZFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetSeatOffsetDistZ", "Vehicle_Handling_GetSeatOffsetDistZ SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetSteeringLockDelegate(nint _vehicle); + private static float Vehicle_Handling_GetSteeringLockFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetSteeringLock", "Vehicle_Handling_GetSteeringLock SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetSteeringLockRatioDelegate(nint _vehicle); + private static float Vehicle_Handling_GetSteeringLockRatioFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetSteeringLockRatio", "Vehicle_Handling_GetSteeringLockRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetSuspensionBiasFrontDelegate(nint _vehicle); + private static float Vehicle_Handling_GetSuspensionBiasFrontFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetSuspensionBiasFront", "Vehicle_Handling_GetSuspensionBiasFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetSuspensionBiasRearDelegate(nint _vehicle); + private static float Vehicle_Handling_GetSuspensionBiasRearFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetSuspensionBiasRear", "Vehicle_Handling_GetSuspensionBiasRear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetSuspensionCompDampDelegate(nint _vehicle); + private static float Vehicle_Handling_GetSuspensionCompDampFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetSuspensionCompDamp", "Vehicle_Handling_GetSuspensionCompDamp SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetSuspensionForceDelegate(nint _vehicle); + private static float Vehicle_Handling_GetSuspensionForceFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetSuspensionForce", "Vehicle_Handling_GetSuspensionForce SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetSuspensionLowerLimitDelegate(nint _vehicle); + private static float Vehicle_Handling_GetSuspensionLowerLimitFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetSuspensionLowerLimit", "Vehicle_Handling_GetSuspensionLowerLimit SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetSuspensionRaiseDelegate(nint _vehicle); + private static float Vehicle_Handling_GetSuspensionRaiseFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetSuspensionRaise", "Vehicle_Handling_GetSuspensionRaise SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetSuspensionReboundDampDelegate(nint _vehicle); + private static float Vehicle_Handling_GetSuspensionReboundDampFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetSuspensionReboundDamp", "Vehicle_Handling_GetSuspensionReboundDamp SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetSuspensionUpperLimitDelegate(nint _vehicle); + private static float Vehicle_Handling_GetSuspensionUpperLimitFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetSuspensionUpperLimit", "Vehicle_Handling_GetSuspensionUpperLimit SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetTractionBiasFrontDelegate(nint _vehicle); + private static float Vehicle_Handling_GetTractionBiasFrontFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetTractionBiasFront", "Vehicle_Handling_GetTractionBiasFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetTractionBiasRearDelegate(nint _vehicle); + private static float Vehicle_Handling_GetTractionBiasRearFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetTractionBiasRear", "Vehicle_Handling_GetTractionBiasRear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetTractionCurveLateralDelegate(nint _vehicle); + private static float Vehicle_Handling_GetTractionCurveLateralFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetTractionCurveLateral", "Vehicle_Handling_GetTractionCurveLateral SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetTractionCurveLateralRatioDelegate(nint _vehicle); + private static float Vehicle_Handling_GetTractionCurveLateralRatioFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetTractionCurveLateralRatio", "Vehicle_Handling_GetTractionCurveLateralRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetTractionCurveMaxDelegate(nint _vehicle); + private static float Vehicle_Handling_GetTractionCurveMaxFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetTractionCurveMax", "Vehicle_Handling_GetTractionCurveMax SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetTractionCurveMaxRatioDelegate(nint _vehicle); + private static float Vehicle_Handling_GetTractionCurveMaxRatioFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetTractionCurveMaxRatio", "Vehicle_Handling_GetTractionCurveMaxRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetTractionCurveMinDelegate(nint _vehicle); + private static float Vehicle_Handling_GetTractionCurveMinFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetTractionCurveMin", "Vehicle_Handling_GetTractionCurveMin SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetTractionCurveMinRatioDelegate(nint _vehicle); + private static float Vehicle_Handling_GetTractionCurveMinRatioFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetTractionCurveMinRatio", "Vehicle_Handling_GetTractionCurveMinRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetTractionLossMultDelegate(nint _vehicle); + private static float Vehicle_Handling_GetTractionLossMultFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetTractionLossMult", "Vehicle_Handling_GetTractionLossMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetTractionSpringDeltaMaxDelegate(nint _vehicle); + private static float Vehicle_Handling_GetTractionSpringDeltaMaxFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetTractionSpringDeltaMax", "Vehicle_Handling_GetTractionSpringDeltaMax SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetTractionSpringDeltaMaxRatioDelegate(nint _vehicle); + private static float Vehicle_Handling_GetTractionSpringDeltaMaxRatioFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetTractionSpringDeltaMaxRatio", "Vehicle_Handling_GetTractionSpringDeltaMaxRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetunkFloat1Delegate(nint _vehicle); + private static float Vehicle_Handling_GetunkFloat1Fallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetunkFloat1", "Vehicle_Handling_GetunkFloat1 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetunkFloat2Delegate(nint _vehicle); + private static float Vehicle_Handling_GetunkFloat2Fallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetunkFloat2", "Vehicle_Handling_GetunkFloat2 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetunkFloat4Delegate(nint _vehicle); + private static float Vehicle_Handling_GetunkFloat4Fallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetunkFloat4", "Vehicle_Handling_GetunkFloat4 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetunkFloat5Delegate(nint _vehicle); + private static float Vehicle_Handling_GetunkFloat5Fallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetunkFloat5", "Vehicle_Handling_GetunkFloat5 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_Handling_GetWeaponDamageMultDelegate(nint _vehicle); + private static float Vehicle_Handling_GetWeaponDamageMultFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_GetWeaponDamageMult", "Vehicle_Handling_GetWeaponDamageMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetAccelerationDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetAccelerationFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetAcceleration", "Vehicle_Handling_SetAcceleration SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetAntiRollBarBiasFrontDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetAntiRollBarBiasFrontFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetAntiRollBarBiasFront", "Vehicle_Handling_SetAntiRollBarBiasFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetAntiRollBarBiasRearDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetAntiRollBarBiasRearFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetAntiRollBarBiasRear", "Vehicle_Handling_SetAntiRollBarBiasRear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetAntiRollBarForceDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetAntiRollBarForceFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetAntiRollBarForce", "Vehicle_Handling_SetAntiRollBarForce SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetBrakeBiasFrontDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetBrakeBiasFrontFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetBrakeBiasFront", "Vehicle_Handling_SetBrakeBiasFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetBrakeBiasRearDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetBrakeBiasRearFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetBrakeBiasRear", "Vehicle_Handling_SetBrakeBiasRear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetBrakeForceDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetBrakeForceFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetBrakeForce", "Vehicle_Handling_SetBrakeForce SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetCamberStiffnessDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetCamberStiffnessFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetCamberStiffness", "Vehicle_Handling_SetCamberStiffness SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetCentreOfMassOffsetDelegate(nint _vehicle, Vector3 _value); + private static void Vehicle_Handling_SetCentreOfMassOffsetFallback(nint _vehicle, Vector3 _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetCentreOfMassOffset", "Vehicle_Handling_SetCentreOfMassOffset SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetClutchChangeRateScaleDownShiftDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetClutchChangeRateScaleDownShiftFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetClutchChangeRateScaleDownShift", "Vehicle_Handling_SetClutchChangeRateScaleDownShift SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetClutchChangeRateScaleUpShiftDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetClutchChangeRateScaleUpShiftFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetClutchChangeRateScaleUpShift", "Vehicle_Handling_SetClutchChangeRateScaleUpShift SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetCollisionDamageMultDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetCollisionDamageMultFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetCollisionDamageMult", "Vehicle_Handling_SetCollisionDamageMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetDamageFlagsDelegate(nint _vehicle, uint _value); + private static void Vehicle_Handling_SetDamageFlagsFallback(nint _vehicle, uint _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetDamageFlags", "Vehicle_Handling_SetDamageFlags SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetDeformationDamageMultDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetDeformationDamageMultFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetDeformationDamageMult", "Vehicle_Handling_SetDeformationDamageMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetDownforceModifierDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetDownforceModifierFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetDownforceModifier", "Vehicle_Handling_SetDownforceModifier SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetDriveBiasFrontDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetDriveBiasFrontFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetDriveBiasFront", "Vehicle_Handling_SetDriveBiasFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetDriveInertiaDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetDriveInertiaFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetDriveInertia", "Vehicle_Handling_SetDriveInertia SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetDriveMaxFlatVelDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetDriveMaxFlatVelFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetDriveMaxFlatVel", "Vehicle_Handling_SetDriveMaxFlatVel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetEngineDamageMultDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetEngineDamageMultFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetEngineDamageMult", "Vehicle_Handling_SetEngineDamageMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetHandBrakeForceDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetHandBrakeForceFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetHandBrakeForce", "Vehicle_Handling_SetHandBrakeForce SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetHandlingFlagsDelegate(nint _vehicle, uint _value); + private static void Vehicle_Handling_SetHandlingFlagsFallback(nint _vehicle, uint _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetHandlingFlags", "Vehicle_Handling_SetHandlingFlags SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetInertiaMultiplierDelegate(nint _vehicle, Vector3 _value); + private static void Vehicle_Handling_SetInertiaMultiplierFallback(nint _vehicle, Vector3 _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetInertiaMultiplier", "Vehicle_Handling_SetInertiaMultiplier SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetInitialDragCoeffDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetInitialDragCoeffFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetInitialDragCoeff", "Vehicle_Handling_SetInitialDragCoeff SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetInitialDriveForceDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetInitialDriveForceFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetInitialDriveForce", "Vehicle_Handling_SetInitialDriveForce SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetInitialDriveGearsDelegate(nint _vehicle, uint _value); + private static void Vehicle_Handling_SetInitialDriveGearsFallback(nint _vehicle, uint _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetInitialDriveGears", "Vehicle_Handling_SetInitialDriveGears SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetInitialDriveMaxFlatVelDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetInitialDriveMaxFlatVelFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetInitialDriveMaxFlatVel", "Vehicle_Handling_SetInitialDriveMaxFlatVel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetLowSpeedTractionLossMultDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetLowSpeedTractionLossMultFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetLowSpeedTractionLossMult", "Vehicle_Handling_SetLowSpeedTractionLossMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetMassDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetMassFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetMass", "Vehicle_Handling_SetMass SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetModelFlagsDelegate(nint _vehicle, uint _value); + private static void Vehicle_Handling_SetModelFlagsFallback(nint _vehicle, uint _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetModelFlags", "Vehicle_Handling_SetModelFlags SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetMonetaryValueDelegate(nint _vehicle, uint _value); + private static void Vehicle_Handling_SetMonetaryValueFallback(nint _vehicle, uint _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetMonetaryValue", "Vehicle_Handling_SetMonetaryValue SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetOilVolumeDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetOilVolumeFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetOilVolume", "Vehicle_Handling_SetOilVolume SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetPercentSubmergedDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetPercentSubmergedFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetPercentSubmerged", "Vehicle_Handling_SetPercentSubmerged SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetPercentSubmergedRatioDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetPercentSubmergedRatioFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetPercentSubmergedRatio", "Vehicle_Handling_SetPercentSubmergedRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetPetrolTankVolumeDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetPetrolTankVolumeFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetPetrolTankVolume", "Vehicle_Handling_SetPetrolTankVolume SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetRollCentreHeightFrontDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetRollCentreHeightFrontFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetRollCentreHeightFront", "Vehicle_Handling_SetRollCentreHeightFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetRollCentreHeightRearDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetRollCentreHeightRearFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetRollCentreHeightRear", "Vehicle_Handling_SetRollCentreHeightRear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetSeatOffsetDistXDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetSeatOffsetDistXFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetSeatOffsetDistX", "Vehicle_Handling_SetSeatOffsetDistX SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetSeatOffsetDistYDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetSeatOffsetDistYFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetSeatOffsetDistY", "Vehicle_Handling_SetSeatOffsetDistY SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetSeatOffsetDistZDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetSeatOffsetDistZFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetSeatOffsetDistZ", "Vehicle_Handling_SetSeatOffsetDistZ SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetSteeringLockDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetSteeringLockFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetSteeringLock", "Vehicle_Handling_SetSteeringLock SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetSteeringLockRatioDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetSteeringLockRatioFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetSteeringLockRatio", "Vehicle_Handling_SetSteeringLockRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetSuspensionBiasFrontDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetSuspensionBiasFrontFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetSuspensionBiasFront", "Vehicle_Handling_SetSuspensionBiasFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetSuspensionBiasRearDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetSuspensionBiasRearFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetSuspensionBiasRear", "Vehicle_Handling_SetSuspensionBiasRear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetSuspensionCompDampDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetSuspensionCompDampFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetSuspensionCompDamp", "Vehicle_Handling_SetSuspensionCompDamp SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetSuspensionForceDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetSuspensionForceFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetSuspensionForce", "Vehicle_Handling_SetSuspensionForce SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetSuspensionLowerLimitDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetSuspensionLowerLimitFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetSuspensionLowerLimit", "Vehicle_Handling_SetSuspensionLowerLimit SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetSuspensionRaiseDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetSuspensionRaiseFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetSuspensionRaise", "Vehicle_Handling_SetSuspensionRaise SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetSuspensionReboundDampDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetSuspensionReboundDampFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetSuspensionReboundDamp", "Vehicle_Handling_SetSuspensionReboundDamp SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetSuspensionUpperLimitDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetSuspensionUpperLimitFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetSuspensionUpperLimit", "Vehicle_Handling_SetSuspensionUpperLimit SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetTractionBiasFrontDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetTractionBiasFrontFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetTractionBiasFront", "Vehicle_Handling_SetTractionBiasFront SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetTractionBiasRearDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetTractionBiasRearFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetTractionBiasRear", "Vehicle_Handling_SetTractionBiasRear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetTractionCurveLateralDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetTractionCurveLateralFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetTractionCurveLateral", "Vehicle_Handling_SetTractionCurveLateral SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetTractionCurveLateralRatioDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetTractionCurveLateralRatioFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetTractionCurveLateralRatio", "Vehicle_Handling_SetTractionCurveLateralRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetTractionCurveMaxDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetTractionCurveMaxFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetTractionCurveMax", "Vehicle_Handling_SetTractionCurveMax SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetTractionCurveMaxRatioDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetTractionCurveMaxRatioFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetTractionCurveMaxRatio", "Vehicle_Handling_SetTractionCurveMaxRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetTractionCurveMinDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetTractionCurveMinFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetTractionCurveMin", "Vehicle_Handling_SetTractionCurveMin SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetTractionCurveMinRatioDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetTractionCurveMinRatioFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetTractionCurveMinRatio", "Vehicle_Handling_SetTractionCurveMinRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetTractionLossMultDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetTractionLossMultFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetTractionLossMult", "Vehicle_Handling_SetTractionLossMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetTractionSpringDeltaMaxDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetTractionSpringDeltaMaxFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetTractionSpringDeltaMax", "Vehicle_Handling_SetTractionSpringDeltaMax SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetTractionSpringDeltaMaxRatioDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetTractionSpringDeltaMaxRatioFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetTractionSpringDeltaMaxRatio", "Vehicle_Handling_SetTractionSpringDeltaMaxRatio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetunkFloat1Delegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetunkFloat1Fallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetunkFloat1", "Vehicle_Handling_SetunkFloat1 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetunkFloat2Delegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetunkFloat2Fallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetunkFloat2", "Vehicle_Handling_SetunkFloat2 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetunkFloat4Delegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetunkFloat4Fallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetunkFloat4", "Vehicle_Handling_SetunkFloat4 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetunkFloat5Delegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetunkFloat5Fallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetunkFloat5", "Vehicle_Handling_SetunkFloat5 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_Handling_SetWeaponDamageMultDelegate(nint _vehicle, float _value); + private static void Vehicle_Handling_SetWeaponDamageMultFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_Handling_SetWeaponDamageMult", "Vehicle_Handling_SetWeaponDamageMult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsHandlingModifiedDelegate(nint _vehicle); + private static byte Vehicle_IsHandlingModifiedFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsHandlingModified", "Vehicle_IsHandlingModified SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsTaxiLightOnDelegate(nint _vehicle); + private static byte Vehicle_IsTaxiLightOnFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsTaxiLightOn", "Vehicle_IsTaxiLightOn SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_ResetDashboardLightsDelegate(nint _vehicle); + private static void Vehicle_ResetDashboardLightsFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_ResetDashboardLights", "Vehicle_ResetDashboardLights SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_ResetHandlingDelegate(nint _vehicle); + private static void Vehicle_ResetHandlingFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_ResetHandling", "Vehicle_ResetHandling SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetAbsLightStateDelegate(nint _vehicle, byte _state); + private static void Vehicle_SetAbsLightStateFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetAbsLightState", "Vehicle_SetAbsLightState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetBatteryLightStateDelegate(nint _vehicle, byte _state); + private static void Vehicle_SetBatteryLightStateFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetBatteryLightState", "Vehicle_SetBatteryLightState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetCurrentGearDelegate(nint _vehicle, ushort _value); + private static void Vehicle_SetCurrentGearFallback(nint _vehicle, ushort _value) => throw new Exceptions.OutdatedSdkException("Vehicle_SetCurrentGear", "Vehicle_SetCurrentGear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetEngineLightStateDelegate(nint _vehicle, byte _state); + private static void Vehicle_SetEngineLightStateFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetEngineLightState", "Vehicle_SetEngineLightState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetEngineTemperatureDelegate(nint _vehicle, float _value); + private static void Vehicle_SetEngineTemperatureFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_SetEngineTemperature", "Vehicle_SetEngineTemperature SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetFuelLevelDelegate(nint _vehicle, float _value); + private static void Vehicle_SetFuelLevelFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_SetFuelLevel", "Vehicle_SetFuelLevel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetLightsIndicatorDelegate(nint _vehicle, byte _value); + private static void Vehicle_SetLightsIndicatorFallback(nint _vehicle, byte _value) => throw new Exceptions.OutdatedSdkException("Vehicle_SetLightsIndicator", "Vehicle_SetLightsIndicator SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetMaxGearDelegate(nint _vehicle, ushort _value); + private static void Vehicle_SetMaxGearFallback(nint _vehicle, ushort _value) => throw new Exceptions.OutdatedSdkException("Vehicle_SetMaxGear", "Vehicle_SetMaxGear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetOilLevelDelegate(nint _vehicle, float _value); + private static void Vehicle_SetOilLevelFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_SetOilLevel", "Vehicle_SetOilLevel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetOilLightStateDelegate(nint _vehicle, byte _state); + private static void Vehicle_SetOilLightStateFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetOilLightState", "Vehicle_SetOilLightState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetPetrolLightStateDelegate(nint _vehicle, byte _state); + private static void Vehicle_SetPetrolLightStateFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetPetrolLightState", "Vehicle_SetPetrolLightState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetWheelCamberDelegate(nint _vehicle, byte _wheel, float _value); + private static void Vehicle_SetWheelCamberFallback(nint _vehicle, byte _wheel, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWheelCamber", "Vehicle_SetWheelCamber SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetWheelHeightDelegate(nint _vehicle, byte _wheel, float _value); + private static void Vehicle_SetWheelHeightFallback(nint _vehicle, byte _wheel, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWheelHeight", "Vehicle_SetWheelHeight SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetWheelRimRadiusDelegate(nint _vehicle, byte _wheel, float _value); + private static void Vehicle_SetWheelRimRadiusFallback(nint _vehicle, byte _wheel, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWheelRimRadius", "Vehicle_SetWheelRimRadius SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetWheelTrackWidthDelegate(nint _vehicle, byte _wheel, float _value); + private static void Vehicle_SetWheelTrackWidthFallback(nint _vehicle, byte _wheel, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWheelTrackWidth", "Vehicle_SetWheelTrackWidth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetWheelTyreRadiusDelegate(nint _vehicle, byte _wheel, float _value); + private static void Vehicle_SetWheelTyreRadiusFallback(nint _vehicle, byte _wheel, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWheelTyreRadius", "Vehicle_SetWheelTyreRadius SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetWheelTyreWidthDelegate(nint _vehicle, byte _wheel, float _value); + private static void Vehicle_SetWheelTyreWidthFallback(nint _vehicle, byte _wheel, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWheelTyreWidth", "Vehicle_SetWheelTyreWidth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_ToggleTaxiLightDelegate(nint _vehicle, byte _state); + private static void Vehicle_ToggleTaxiLightFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_ToggleTaxiLight", "Vehicle_ToggleTaxiLight SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float WeaponData_GetAccuracySpreadDelegate(uint _weaponHash); + private static float WeaponData_GetAccuracySpreadFallback(uint _weaponHash) => throw new Exceptions.OutdatedSdkException("WeaponData_GetAccuracySpread", "WeaponData_GetAccuracySpread SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float WeaponData_GetAnimReloadRateDelegate(uint _weaponHash); + private static float WeaponData_GetAnimReloadRateFallback(uint _weaponHash) => throw new Exceptions.OutdatedSdkException("WeaponData_GetAnimReloadRate", "WeaponData_GetAnimReloadRate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint WeaponData_GetClipSizeDelegate(uint _weaponHash); + private static uint WeaponData_GetClipSizeFallback(uint _weaponHash) => throw new Exceptions.OutdatedSdkException("WeaponData_GetClipSize", "WeaponData_GetClipSize SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float WeaponData_GetDamageDelegate(uint _weaponHash); + private static float WeaponData_GetDamageFallback(uint _weaponHash) => throw new Exceptions.OutdatedSdkException("WeaponData_GetDamage", "WeaponData_GetDamage SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float WeaponData_GetHeadshotDamageModifierDelegate(uint _weaponHash); + private static float WeaponData_GetHeadshotDamageModifierFallback(uint _weaponHash) => throw new Exceptions.OutdatedSdkException("WeaponData_GetHeadshotDamageModifier", "WeaponData_GetHeadshotDamageModifier SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float WeaponData_GetLockOnRangeDelegate(uint _weaponHash); + private static float WeaponData_GetLockOnRangeFallback(uint _weaponHash) => throw new Exceptions.OutdatedSdkException("WeaponData_GetLockOnRange", "WeaponData_GetLockOnRange SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint WeaponData_GetModelHashDelegate(uint _weaponHash); + private static uint WeaponData_GetModelHashFallback(uint _weaponHash) => throw new Exceptions.OutdatedSdkException("WeaponData_GetModelHash", "WeaponData_GetModelHash SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint WeaponData_GetNameHashDelegate(uint _weaponHash); + private static uint WeaponData_GetNameHashFallback(uint _weaponHash) => throw new Exceptions.OutdatedSdkException("WeaponData_GetNameHash", "WeaponData_GetNameHash SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float WeaponData_GetPlayerDamageModifierDelegate(uint _weaponHash); + private static float WeaponData_GetPlayerDamageModifierFallback(uint _weaponHash) => throw new Exceptions.OutdatedSdkException("WeaponData_GetPlayerDamageModifier", "WeaponData_GetPlayerDamageModifier SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float WeaponData_GetRangeDelegate(uint _weaponHash); + private static float WeaponData_GetRangeFallback(uint _weaponHash) => throw new Exceptions.OutdatedSdkException("WeaponData_GetRange", "WeaponData_GetRange SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float WeaponData_GetRecoilAccuracyMaxDelegate(uint _weaponHash); + private static float WeaponData_GetRecoilAccuracyMaxFallback(uint _weaponHash) => throw new Exceptions.OutdatedSdkException("WeaponData_GetRecoilAccuracyMax", "WeaponData_GetRecoilAccuracyMax SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float WeaponData_GetRecoilAccuracyToAllowHeadshotPlayerDelegate(uint _weaponHash); + private static float WeaponData_GetRecoilAccuracyToAllowHeadshotPlayerFallback(uint _weaponHash) => throw new Exceptions.OutdatedSdkException("WeaponData_GetRecoilAccuracyToAllowHeadshotPlayer", "WeaponData_GetRecoilAccuracyToAllowHeadshotPlayer SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float WeaponData_GetRecoilRecoveryRateDelegate(uint _weaponHash); + private static float WeaponData_GetRecoilRecoveryRateFallback(uint _weaponHash) => throw new Exceptions.OutdatedSdkException("WeaponData_GetRecoilRecoveryRate", "WeaponData_GetRecoilRecoveryRate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float WeaponData_GetRecoilShakeAmplitudeDelegate(uint _weaponHash); + private static float WeaponData_GetRecoilShakeAmplitudeFallback(uint _weaponHash) => throw new Exceptions.OutdatedSdkException("WeaponData_GetRecoilShakeAmplitude", "WeaponData_GetRecoilShakeAmplitude SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float WeaponData_GetTimeBetweenShotsDelegate(uint _weaponHash); + private static float WeaponData_GetTimeBetweenShotsFallback(uint _weaponHash) => throw new Exceptions.OutdatedSdkException("WeaponData_GetTimeBetweenShots", "WeaponData_GetTimeBetweenShots SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float WeaponData_GetVehicleReloadTimeDelegate(uint _weaponHash); + private static float WeaponData_GetVehicleReloadTimeFallback(uint _weaponHash) => throw new Exceptions.OutdatedSdkException("WeaponData_GetVehicleReloadTime", "WeaponData_GetVehicleReloadTime SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WeaponData_SetAccuracySpreadDelegate(uint _weaponHash, float _val); + private static void WeaponData_SetAccuracySpreadFallback(uint _weaponHash, float _val) => throw new Exceptions.OutdatedSdkException("WeaponData_SetAccuracySpread", "WeaponData_SetAccuracySpread SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WeaponData_SetAnimReloadRateDelegate(uint _weaponHash, float _val); + private static void WeaponData_SetAnimReloadRateFallback(uint _weaponHash, float _val) => throw new Exceptions.OutdatedSdkException("WeaponData_SetAnimReloadRate", "WeaponData_SetAnimReloadRate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WeaponData_SetDamageDelegate(uint _weaponHash, float _val); + private static void WeaponData_SetDamageFallback(uint _weaponHash, float _val) => throw new Exceptions.OutdatedSdkException("WeaponData_SetDamage", "WeaponData_SetDamage SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WeaponData_SetHeadshotDamageModifierDelegate(uint _weaponHash, float _val); + private static void WeaponData_SetHeadshotDamageModifierFallback(uint _weaponHash, float _val) => throw new Exceptions.OutdatedSdkException("WeaponData_SetHeadshotDamageModifier", "WeaponData_SetHeadshotDamageModifier SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WeaponData_SetLockOnRangeDelegate(uint _weaponHash, float _val); + private static void WeaponData_SetLockOnRangeFallback(uint _weaponHash, float _val) => throw new Exceptions.OutdatedSdkException("WeaponData_SetLockOnRange", "WeaponData_SetLockOnRange SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WeaponData_SetPlayerDamageModifierDelegate(uint _weaponHash, float _val); + private static void WeaponData_SetPlayerDamageModifierFallback(uint _weaponHash, float _val) => throw new Exceptions.OutdatedSdkException("WeaponData_SetPlayerDamageModifier", "WeaponData_SetPlayerDamageModifier SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WeaponData_SetRangeDelegate(uint _weaponHash, float _val); + private static void WeaponData_SetRangeFallback(uint _weaponHash, float _val) => throw new Exceptions.OutdatedSdkException("WeaponData_SetRange", "WeaponData_SetRange SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WeaponData_SetRecoilAccuracyMaxDelegate(uint _weaponHash, float _val); + private static void WeaponData_SetRecoilAccuracyMaxFallback(uint _weaponHash, float _val) => throw new Exceptions.OutdatedSdkException("WeaponData_SetRecoilAccuracyMax", "WeaponData_SetRecoilAccuracyMax SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WeaponData_SetRecoilAccuracyToAllowHeadshotPlayerDelegate(uint _weaponHash, float _val); + private static void WeaponData_SetRecoilAccuracyToAllowHeadshotPlayerFallback(uint _weaponHash, float _val) => throw new Exceptions.OutdatedSdkException("WeaponData_SetRecoilAccuracyToAllowHeadshotPlayer", "WeaponData_SetRecoilAccuracyToAllowHeadshotPlayer SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WeaponData_SetRecoilRecoveryRateDelegate(uint _weaponHash, float _val); + private static void WeaponData_SetRecoilRecoveryRateFallback(uint _weaponHash, float _val) => throw new Exceptions.OutdatedSdkException("WeaponData_SetRecoilRecoveryRate", "WeaponData_SetRecoilRecoveryRate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WeaponData_SetRecoilShakeAmplitudeDelegate(uint _weaponHash, float _val); + private static void WeaponData_SetRecoilShakeAmplitudeFallback(uint _weaponHash, float _val) => throw new Exceptions.OutdatedSdkException("WeaponData_SetRecoilShakeAmplitude", "WeaponData_SetRecoilShakeAmplitude SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WeaponData_SetVehicleReloadTimeDelegate(uint _weaponHash, float _val); + private static void WeaponData_SetVehicleReloadTimeFallback(uint _weaponHash, float _val) => throw new Exceptions.OutdatedSdkException("WeaponData_SetVehicleReloadTime", "WeaponData_SetVehicleReloadTime SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebSocketClient_AddSubProtocolDelegate(nint _webSocketClient, nint _protocol); + private static void WebSocketClient_AddSubProtocolFallback(nint _webSocketClient, nint _protocol) => throw new Exceptions.OutdatedSdkException("WebSocketClient_AddSubProtocol", "WebSocketClient_AddSubProtocol SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint WebSocketClient_GetBaseObjectDelegate(nint _webSocketClient); + private static nint WebSocketClient_GetBaseObjectFallback(nint _webSocketClient) => throw new Exceptions.OutdatedSdkException("WebSocketClient_GetBaseObject", "WebSocketClient_GetBaseObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort WebSocketClient_GetPingIntervalDelegate(nint _webSocketClient); + private static ushort WebSocketClient_GetPingIntervalFallback(nint _webSocketClient) => throw new Exceptions.OutdatedSdkException("WebSocketClient_GetPingInterval", "WebSocketClient_GetPingInterval SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte WebSocketClient_GetReadyStateDelegate(nint _webSocketClient); + private static byte WebSocketClient_GetReadyStateFallback(nint _webSocketClient) => throw new Exceptions.OutdatedSdkException("WebSocketClient_GetReadyState", "WebSocketClient_GetReadyState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint WebSocketClient_GetSubProtocolsDelegate(nint _webSocketClient, uint* _size); + private static nint WebSocketClient_GetSubProtocolsFallback(nint _webSocketClient, uint* _size) => throw new Exceptions.OutdatedSdkException("WebSocketClient_GetSubProtocols", "WebSocketClient_GetSubProtocols SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint WebSocketClient_GetUrlDelegate(nint _webSocketClient, int* _size); + private static nint WebSocketClient_GetUrlFallback(nint _webSocketClient, int* _size) => throw new Exceptions.OutdatedSdkException("WebSocketClient_GetUrl", "WebSocketClient_GetUrl SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte WebSocketClient_IsAutoReconnectDelegate(nint _webSocketClient); + private static byte WebSocketClient_IsAutoReconnectFallback(nint _webSocketClient) => throw new Exceptions.OutdatedSdkException("WebSocketClient_IsAutoReconnect", "WebSocketClient_IsAutoReconnect SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte WebSocketClient_IsPerMessageDeflateDelegate(nint _webSocketClient); + private static byte WebSocketClient_IsPerMessageDeflateFallback(nint _webSocketClient) => throw new Exceptions.OutdatedSdkException("WebSocketClient_IsPerMessageDeflate", "WebSocketClient_IsPerMessageDeflate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte WebSocketClient_Send_BinaryDelegate(nint _webSocketClient, nint _str, uint _size); + private static byte WebSocketClient_Send_BinaryFallback(nint _webSocketClient, nint _str, uint _size) => throw new Exceptions.OutdatedSdkException("WebSocketClient_Send_Binary", "WebSocketClient_Send_Binary SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte WebSocketClient_Send_StringDelegate(nint _webSocketClient, nint _str); + private static byte WebSocketClient_Send_StringFallback(nint _webSocketClient, nint _str) => throw new Exceptions.OutdatedSdkException("WebSocketClient_Send_String", "WebSocketClient_Send_String SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebSocketClient_SetAutoReconnectDelegate(nint _webSocketClient, byte _value); + private static void WebSocketClient_SetAutoReconnectFallback(nint _webSocketClient, byte _value) => throw new Exceptions.OutdatedSdkException("WebSocketClient_SetAutoReconnect", "WebSocketClient_SetAutoReconnect SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebSocketClient_SetExtraHeaderDelegate(nint _webSocketClient, nint _key, nint _value); + private static void WebSocketClient_SetExtraHeaderFallback(nint _webSocketClient, nint _key, nint _value) => throw new Exceptions.OutdatedSdkException("WebSocketClient_SetExtraHeader", "WebSocketClient_SetExtraHeader SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebSocketClient_SetPerMessageDeflateDelegate(nint _webSocketClient, byte _value); + private static void WebSocketClient_SetPerMessageDeflateFallback(nint _webSocketClient, byte _value) => throw new Exceptions.OutdatedSdkException("WebSocketClient_SetPerMessageDeflate", "WebSocketClient_SetPerMessageDeflate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebSocketClient_SetPingIntervalDelegate(nint _webSocketClient, ushort _value); + private static void WebSocketClient_SetPingIntervalFallback(nint _webSocketClient, ushort _value) => throw new Exceptions.OutdatedSdkException("WebSocketClient_SetPingInterval", "WebSocketClient_SetPingInterval SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebSocketClient_SetUrlDelegate(nint _webSocketClient, nint _value); + private static void WebSocketClient_SetUrlFallback(nint _webSocketClient, nint _value) => throw new Exceptions.OutdatedSdkException("WebSocketClient_SetUrl", "WebSocketClient_SetUrl SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebSocketClient_StartDelegate(nint _webSocketClient); + private static void WebSocketClient_StartFallback(nint _webSocketClient) => throw new Exceptions.OutdatedSdkException("WebSocketClient_Start", "WebSocketClient_Start SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebSocketClient_StopDelegate(nint _webSocketClient); + private static void WebSocketClient_StopFallback(nint _webSocketClient) => throw new Exceptions.OutdatedSdkException("WebSocketClient_Stop", "WebSocketClient_Stop SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebView_FocusDelegate(nint _webView); + private static void WebView_FocusFallback(nint _webView) => throw new Exceptions.OutdatedSdkException("WebView_Focus", "WebView_Focus SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint WebView_GetBaseObjectDelegate(nint _webView); + private static nint WebView_GetBaseObjectFallback(nint _webView) => throw new Exceptions.OutdatedSdkException("WebView_GetBaseObject", "WebView_GetBaseObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebView_GetPositionDelegate(nint _webView, Vector2* _pos); + private static void WebView_GetPositionFallback(nint _webView, Vector2* _pos) => throw new Exceptions.OutdatedSdkException("WebView_GetPosition", "WebView_GetPosition SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebView_GetSizeDelegate(nint _webView, Vector2* _size); + private static void WebView_GetSizeFallback(nint _webView, Vector2* _size) => throw new Exceptions.OutdatedSdkException("WebView_GetSize", "WebView_GetSize SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint WebView_GetUrlDelegate(nint _webView, int* _size); + private static nint WebView_GetUrlFallback(nint _webView, int* _size) => throw new Exceptions.OutdatedSdkException("WebView_GetUrl", "WebView_GetUrl SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte WebView_IsFocusedDelegate(nint _webView); + private static byte WebView_IsFocusedFallback(nint _webView) => throw new Exceptions.OutdatedSdkException("WebView_IsFocused", "WebView_IsFocused SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte WebView_IsOverlayDelegate(nint _webView); + private static byte WebView_IsOverlayFallback(nint _webView) => throw new Exceptions.OutdatedSdkException("WebView_IsOverlay", "WebView_IsOverlay SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte WebView_IsVisibleDelegate(nint _webView); + private static byte WebView_IsVisibleFallback(nint _webView) => throw new Exceptions.OutdatedSdkException("WebView_IsVisible", "WebView_IsVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebView_SetExtraHeaderDelegate(nint _webView, nint _key, nint _value); + private static void WebView_SetExtraHeaderFallback(nint _webView, nint _key, nint _value) => throw new Exceptions.OutdatedSdkException("WebView_SetExtraHeader", "WebView_SetExtraHeader SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebView_SetIsVisibleDelegate(nint _webView, byte _visible); + private static void WebView_SetIsVisibleFallback(nint _webView, byte _visible) => throw new Exceptions.OutdatedSdkException("WebView_SetIsVisible", "WebView_SetIsVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebView_SetPositionDelegate(nint _webView, Vector2 _pos); + private static void WebView_SetPositionFallback(nint _webView, Vector2 _pos) => throw new Exceptions.OutdatedSdkException("WebView_SetPosition", "WebView_SetPosition SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebView_SetSizeDelegate(nint _webView, Vector2 _size); + private static void WebView_SetSizeFallback(nint _webView, Vector2 _size) => throw new Exceptions.OutdatedSdkException("WebView_SetSize", "WebView_SetSize SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebView_SetUrlDelegate(nint _webView, nint _url); + private static void WebView_SetUrlFallback(nint _webView, nint _url) => throw new Exceptions.OutdatedSdkException("WebView_SetUrl", "WebView_SetUrl SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebView_SetZoomLevelDelegate(nint _webView, float _value); + private static void WebView_SetZoomLevelFallback(nint _webView, float _value) => throw new Exceptions.OutdatedSdkException("WebView_SetZoomLevel", "WebView_SetZoomLevel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebView_UnfocusDelegate(nint _webView); + private static void WebView_UnfocusFallback(nint _webView) => throw new Exceptions.OutdatedSdkException("WebView_Unfocus", "WebView_Unfocus SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Win_GetTaskDialogDelegate(); + private static nint Win_GetTaskDialogFallback() => throw new Exceptions.OutdatedSdkException("Win_GetTaskDialog", "Win_GetTaskDialog SDK method is outdated. Please update your module nuget"); + public bool Outdated { get; private set; } + private IntPtr GetUnmanagedPtr(IDictionary funcTable, ulong hash, T fn) where T : Delegate { + if (funcTable.TryGetValue(hash, out var ptr)) return ptr; + Outdated = true; + return Marshal.GetFunctionPointerForDelegate(fn); + } public ClientLibrary(Dictionary funcTable) { - Audio_AddOutput_Entity = (delegate* unmanaged[Cdecl]) funcTable[16905578002628361906UL]; - Audio_AddOutput_ScriptId = (delegate* unmanaged[Cdecl]) funcTable[5827298603098340943UL]; - Audio_GetBaseObject = (delegate* unmanaged[Cdecl]) funcTable[5745233318326249240UL]; - Audio_GetCategory = (delegate* unmanaged[Cdecl]) funcTable[15851037700138976694UL]; - Audio_GetCurrentTime = (delegate* unmanaged[Cdecl]) funcTable[11388986138037019142UL]; - Audio_GetLooped = (delegate* unmanaged[Cdecl]) funcTable[6452844773777188117UL]; - Audio_GetMaxTime = (delegate* unmanaged[Cdecl]) funcTable[14356497270925355001UL]; - Audio_GetOutputs = (delegate* unmanaged[Cdecl]) funcTable[310457562583077580UL]; - Audio_GetSource = (delegate* unmanaged[Cdecl]) funcTable[2194544719439267187UL]; - Audio_GetVolume = (delegate* unmanaged[Cdecl]) funcTable[6461029116268465856UL]; - Audio_IsFrontendPlay = (delegate* unmanaged[Cdecl]) funcTable[8802650293774203272UL]; - Audio_IsPlaying = (delegate* unmanaged[Cdecl]) funcTable[18428683720958370944UL]; - Audio_Pause = (delegate* unmanaged[Cdecl]) funcTable[4013212545266273652UL]; - Audio_Play = (delegate* unmanaged[Cdecl]) funcTable[6674157256459581756UL]; - Audio_RemoveOutput_Entity = (delegate* unmanaged[Cdecl]) funcTable[4030228605190822971UL]; - Audio_RemoveOutput_ScriptId = (delegate* unmanaged[Cdecl]) funcTable[15937992446941802542UL]; - Audio_Reset = (delegate* unmanaged[Cdecl]) funcTable[1619886962681253957UL]; - Audio_Seek = (delegate* unmanaged[Cdecl]) funcTable[754724177255938058UL]; - Audio_SetCategory = (delegate* unmanaged[Cdecl]) funcTable[9152106765223926458UL]; - Audio_SetLooped = (delegate* unmanaged[Cdecl]) funcTable[10754367750886277313UL]; - Audio_SetSource = (delegate* unmanaged[Cdecl]) funcTable[791581795911185855UL]; - Audio_SetVolume = (delegate* unmanaged[Cdecl]) funcTable[8060600266486702404UL]; - Blip_GetScriptID = (delegate* unmanaged[Cdecl]) funcTable[501721953999360323UL]; - Blip_IsRemote = (delegate* unmanaged[Cdecl]) funcTable[3408870513353193473UL]; - Core_AddGXTText = (delegate* unmanaged[Cdecl]) funcTable[5418530400531695192UL]; - Core_AreGameControlsEnabled = (delegate* unmanaged[Cdecl]) funcTable[7505799004862739448UL]; - Core_AreRmlControlsEnabled = (delegate* unmanaged[Cdecl]) funcTable[3403936900050438517UL]; - Core_AreVoiceControlsEnabled = (delegate* unmanaged[Cdecl]) funcTable[13782596125011622546UL]; - Core_BeginScaleformMovieMethodMinimap = (delegate* unmanaged[Cdecl]) funcTable[7610960948896539060UL]; - Core_ClearFocusOverride = (delegate* unmanaged[Cdecl]) funcTable[11767134789034974988UL]; - Core_ClearPedProp = (delegate* unmanaged[Cdecl]) funcTable[7241406705564868488UL]; - Core_Client_CreateAreaBlip = (delegate* unmanaged[Cdecl]) funcTable[1457536000366622407UL]; - Core_Client_CreatePointBlip = (delegate* unmanaged[Cdecl]) funcTable[10337435189885118154UL]; - Core_Client_CreateRadiusBlip = (delegate* unmanaged[Cdecl]) funcTable[1182859742647676376UL]; - Core_Client_FileExists = (delegate* unmanaged[Cdecl]) funcTable[11956902508611497191UL]; - Core_Client_FileRead = (delegate* unmanaged[Cdecl]) funcTable[10617806201607563UL]; - Core_CopyToClipboard = (delegate* unmanaged[Cdecl]) funcTable[3316379192020150055UL]; - Core_CreateAudio = (delegate* unmanaged[Cdecl]) funcTable[16041000328065974383UL]; - Core_CreateCheckpoint = (delegate* unmanaged[Cdecl]) funcTable[102161523841082289UL]; - Core_CreateHttpClient = (delegate* unmanaged[Cdecl]) funcTable[8831170399766098212UL]; - Core_CreateObject = (delegate* unmanaged[Cdecl]) funcTable[12239910895707142552UL]; - Core_CreateRmlDocument = (delegate* unmanaged[Cdecl]) funcTable[8193598009746798351UL]; - Core_CreateWebsocketClient = (delegate* unmanaged[Cdecl]) funcTable[16434074828551718169UL]; - Core_CreateWebView = (delegate* unmanaged[Cdecl]) funcTable[5367354558636304814UL]; - Core_CreateWebView3D = (delegate* unmanaged[Cdecl]) funcTable[10047886549591616921UL]; - Core_DeallocDiscordUser = (delegate* unmanaged[Cdecl]) funcTable[15118189593860798044UL]; - Core_Discord_GetOAuth2Token = (delegate* unmanaged[Cdecl]) funcTable[11931635815981319218UL]; - Core_DoesConfigFlagExist = (delegate* unmanaged[Cdecl]) funcTable[9036876578219638445UL]; - Core_GetCamPos = (delegate* unmanaged[Cdecl]) funcTable[13858125070841044430UL]; - Core_GetClientPath = (delegate* unmanaged[Cdecl]) funcTable[15647930946817256013UL]; - Core_GetConfigFlag = (delegate* unmanaged[Cdecl]) funcTable[9032464247095711729UL]; - Core_GetCursorPos = (delegate* unmanaged[Cdecl]) funcTable[16391498633294951383UL]; - Core_GetDiscordUser = (delegate* unmanaged[Cdecl]) funcTable[17782609338683863460UL]; - Core_GetFocusOverrideEntity = (delegate* unmanaged[Cdecl]) funcTable[15949137910261152748UL]; - Core_GetFocusOverrideOffset = (delegate* unmanaged[Cdecl]) funcTable[17077642725661397792UL]; - Core_GetFocusOverridePos = (delegate* unmanaged[Cdecl]) funcTable[8247812221923307363UL]; - Core_GetFPS = (delegate* unmanaged[Cdecl]) funcTable[14046862447045356112UL]; - Core_GetGXTText = (delegate* unmanaged[Cdecl]) funcTable[8354620589505894441UL]; - Core_GetHeadshotBase64 = (delegate* unmanaged[Cdecl]) funcTable[12777215372699677116UL]; - Core_GetLicenseHash = (delegate* unmanaged[Cdecl]) funcTable[2622104054008169308UL]; - Core_GetLocale = (delegate* unmanaged[Cdecl]) funcTable[8251030815154001183UL]; - Core_GetLocalMeta = (delegate* unmanaged[Cdecl]) funcTable[2183995282040000869UL]; - Core_GetMapZoomDataByAlias = (delegate* unmanaged[Cdecl]) funcTable[15467645387540161121UL]; - Core_GetMsPerGameMinute = (delegate* unmanaged[Cdecl]) funcTable[7581745445590498846UL]; - Core_GetObjects = (delegate* unmanaged[Cdecl]) funcTable[12367811699706904051UL]; - Core_GetPermissionState = (delegate* unmanaged[Cdecl]) funcTable[3859965617919065407UL]; - Core_GetPing = (delegate* unmanaged[Cdecl]) funcTable[343388931206758433UL]; - Core_GetScreenResolution = (delegate* unmanaged[Cdecl]) funcTable[5184228836792416747UL]; - Core_GetServerIp = (delegate* unmanaged[Cdecl]) funcTable[12875920274339473323UL]; - Core_GetServerPort = (delegate* unmanaged[Cdecl]) funcTable[13612895546936521317UL]; - Core_GetStatBool = (delegate* unmanaged[Cdecl]) funcTable[8298827394480893291UL]; - Core_GetStatData = (delegate* unmanaged[Cdecl]) funcTable[17824728879159590423UL]; - Core_GetStatFloat = (delegate* unmanaged[Cdecl]) funcTable[7307416501315667515UL]; - Core_GetStatInt = (delegate* unmanaged[Cdecl]) funcTable[7167729718835129856UL]; - Core_GetStatLong = (delegate* unmanaged[Cdecl]) funcTable[1154702955606022233UL]; - Core_GetStatString = (delegate* unmanaged[Cdecl]) funcTable[6938285851022152026UL]; - Core_GetStatType = (delegate* unmanaged[Cdecl]) funcTable[1836585749512071671UL]; - Core_GetStatUInt16 = (delegate* unmanaged[Cdecl]) funcTable[12241813567944212404UL]; - Core_GetStatUInt32 = (delegate* unmanaged[Cdecl]) funcTable[12239830048967298210UL]; - Core_GetStatUInt64 = (delegate* unmanaged[Cdecl]) funcTable[12237032891385697101UL]; - Core_GetStatUInt8 = (delegate* unmanaged[Cdecl]) funcTable[7393683926412120933UL]; - Core_GetTotalPacketsLost = (delegate* unmanaged[Cdecl]) funcTable[17900332284634749644UL]; - Core_GetTotalPacketsSent = (delegate* unmanaged[Cdecl]) funcTable[14317008880510264460UL]; - Core_GetVoiceActivationKey = (delegate* unmanaged[Cdecl]) funcTable[3075102187149534616UL]; - Core_GetVoiceInputMuted = (delegate* unmanaged[Cdecl]) funcTable[5064579761377174510UL]; - Core_GetWorldObjects = (delegate* unmanaged[Cdecl]) funcTable[17005623567895098393UL]; - Core_HasLocalMeta = (delegate* unmanaged[Cdecl]) funcTable[11339904639883011785UL]; - Core_IsCamFrozen = (delegate* unmanaged[Cdecl]) funcTable[8263359495025555388UL]; - Core_IsConsoleOpen = (delegate* unmanaged[Cdecl]) funcTable[6112743714019862716UL]; - Core_IsCursorVisible = (delegate* unmanaged[Cdecl]) funcTable[4651014201401555441UL]; - Core_IsFocusOverriden = (delegate* unmanaged[Cdecl]) funcTable[6340487333443957237UL]; - Core_IsGameFocused = (delegate* unmanaged[Cdecl]) funcTable[12257277232006255834UL]; - Core_IsInStreamerMode = (delegate* unmanaged[Cdecl]) funcTable[11837576841137789452UL]; - Core_IsKeyDown = (delegate* unmanaged[Cdecl]) funcTable[7832339747543811174UL]; - Core_IsKeyToggled = (delegate* unmanaged[Cdecl]) funcTable[16393292154899659654UL]; - Core_IsMenuOpened = (delegate* unmanaged[Cdecl]) funcTable[4674004737288150305UL]; - Core_IsPointOnScreen = (delegate* unmanaged[Cdecl]) funcTable[4486503442730341798UL]; - Core_IsTextureExistInArchetype = (delegate* unmanaged[Cdecl]) funcTable[7244922572803522205UL]; - Core_IsVoiceActivityInputEnabled = (delegate* unmanaged[Cdecl]) funcTable[15357067730603383667UL]; - Core_LoadDefaultIpls = (delegate* unmanaged[Cdecl]) funcTable[7329989724110956008UL]; - Core_LoadModel = (delegate* unmanaged[Cdecl]) funcTable[14785869974555852752UL]; - Core_LoadModelAsync = (delegate* unmanaged[Cdecl]) funcTable[11548332561929147700UL]; - Core_LoadRmlFont = (delegate* unmanaged[Cdecl]) funcTable[18001251951939315539UL]; - Core_LoadYtyp = (delegate* unmanaged[Cdecl]) funcTable[4601093208659730383UL]; - Core_OverrideFocusEntity = (delegate* unmanaged[Cdecl]) funcTable[16396428673743430178UL]; - Core_OverrideFocusPosition = (delegate* unmanaged[Cdecl]) funcTable[10642205490788875634UL]; - Core_RemoveGXTText = (delegate* unmanaged[Cdecl]) funcTable[667318050992389259UL]; - Core_RemoveIpl = (delegate* unmanaged[Cdecl]) funcTable[13334999182310259566UL]; - Core_RequestIpl = (delegate* unmanaged[Cdecl]) funcTable[6925033075213640227UL]; - Core_ResetAllMapZoomData = (delegate* unmanaged[Cdecl]) funcTable[8242878727879681410UL]; - Core_ResetMapZoomData = (delegate* unmanaged[Cdecl]) funcTable[12406873252395372951UL]; - Core_ResetStat = (delegate* unmanaged[Cdecl]) funcTable[16462727202164397128UL]; - Core_ScreenToWorld = (delegate* unmanaged[Cdecl]) funcTable[18039191205029818070UL]; - Core_SetCamFrozen = (delegate* unmanaged[Cdecl]) funcTable[9151730674609431682UL]; - Core_SetConfigFlag = (delegate* unmanaged[Cdecl]) funcTable[4597047729016767197UL]; - Core_SetCursorPos = (delegate* unmanaged[Cdecl]) funcTable[4696341770716269003UL]; - Core_SetMinimapComponentPosition = (delegate* unmanaged[Cdecl]) funcTable[9963658435643169452UL]; - Core_SetMinimapIsRectangle = (delegate* unmanaged[Cdecl]) funcTable[840321627262686653UL]; - Core_SetMsPerGameMinute = (delegate* unmanaged[Cdecl]) funcTable[8352251247416526730UL]; - Core_SetPedDlcClothes = (delegate* unmanaged[Cdecl]) funcTable[2641051818984616609UL]; - Core_SetPedDlcProp = (delegate* unmanaged[Cdecl]) funcTable[11299516571588720518UL]; - Core_SetRotationVelocity = (delegate* unmanaged[Cdecl]) funcTable[16295748319316595460UL]; - Core_SetStatBool = (delegate* unmanaged[Cdecl]) funcTable[16383321398330802727UL]; - Core_SetStatFloat = (delegate* unmanaged[Cdecl]) funcTable[2797222242620039223UL]; - Core_SetStatInt = (delegate* unmanaged[Cdecl]) funcTable[11392649224362214012UL]; - Core_SetStatLong = (delegate* unmanaged[Cdecl]) funcTable[11480600638667152813UL]; - Core_SetStatString = (delegate* unmanaged[Cdecl]) funcTable[2785755254553588470UL]; - Core_SetStatUInt16 = (delegate* unmanaged[Cdecl]) funcTable[10929608262219096552UL]; - Core_SetStatUInt32 = (delegate* unmanaged[Cdecl]) funcTable[10927633539335208046UL]; - Core_SetStatUInt64 = (delegate* unmanaged[Cdecl]) funcTable[10932409817847210505UL]; - Core_SetStatUInt8 = (delegate* unmanaged[Cdecl]) funcTable[2001471761436444265UL]; - Core_SetVoiceInputMuted = (delegate* unmanaged[Cdecl]) funcTable[9648705763194192850UL]; - Core_SetWatermarkPosition = (delegate* unmanaged[Cdecl]) funcTable[2862293364498039610UL]; - Core_SetWeatherCycle = (delegate* unmanaged[Cdecl]) funcTable[7963270655301960263UL]; - Core_SetWeatherSyncActive = (delegate* unmanaged[Cdecl]) funcTable[7365007530117915530UL]; - Core_ShowCursor = (delegate* unmanaged[Cdecl]) funcTable[9183993827692923828UL]; - Core_StringToSHA256 = (delegate* unmanaged[Cdecl]) funcTable[16023175963702356044UL]; - Core_TakeScreenshot = (delegate* unmanaged[Cdecl]) funcTable[5602594238455239620UL]; - Core_TakeScreenshotGameOnly = (delegate* unmanaged[Cdecl]) funcTable[5742104717135457688UL]; - Core_ToggleGameControls = (delegate* unmanaged[Cdecl]) funcTable[9429763464273101007UL]; - Core_ToggleRmlControls = (delegate* unmanaged[Cdecl]) funcTable[16327742095787259856UL]; - Core_ToggleVoiceControls = (delegate* unmanaged[Cdecl]) funcTable[11909673682429312349UL]; - Core_TriggerServerEvent = (delegate* unmanaged[Cdecl]) funcTable[12151558921348552198UL]; - Core_TriggerWebViewEvent = (delegate* unmanaged[Cdecl]) funcTable[494903379947186396UL]; - Core_UnloadYtyp = (delegate* unmanaged[Cdecl]) funcTable[16737023472725732364UL]; - Core_WorldToScreen = (delegate* unmanaged[Cdecl]) funcTable[2200757103428916860UL]; - Entity_GetScriptID = (delegate* unmanaged[Cdecl]) funcTable[4666687282706913387UL]; - Event_SetAnyResourceErrorDelegate = (delegate* unmanaged[Cdecl]) funcTable[2051700994507480739UL]; - Event_SetAnyResourceStartDelegate = (delegate* unmanaged[Cdecl]) funcTable[637610180866174749UL]; - Event_SetAnyResourceStopDelegate = (delegate* unmanaged[Cdecl]) funcTable[6904273545794070333UL]; - Event_SetClientEventDelegate = (delegate* unmanaged[Cdecl]) funcTable[9091490689786074738UL]; - Event_SetConnectionCompleteDelegate = (delegate* unmanaged[Cdecl]) funcTable[13322214633698294440UL]; - Event_SetConsoleCommandDelegate = (delegate* unmanaged[Cdecl]) funcTable[15216863314700083185UL]; - Event_SetCreateAudioDelegate = (delegate* unmanaged[Cdecl]) funcTable[1501501791265169993UL]; - Event_SetCreateBlipDelegate = (delegate* unmanaged[Cdecl]) funcTable[10027964349129237884UL]; - Event_SetCreateCheckpointDelegate = (delegate* unmanaged[Cdecl]) funcTable[16682929889509585829UL]; - Event_SetCreateHttpClientDelegate = (delegate* unmanaged[Cdecl]) funcTable[5289962328167419764UL]; - Event_SetCreateObjectDelegate = (delegate* unmanaged[Cdecl]) funcTable[8596908447804149764UL]; - Event_SetCreatePlayerDelegate = (delegate* unmanaged[Cdecl]) funcTable[782265067539102198UL]; - Event_SetCreateRmlDocumentDelegate = (delegate* unmanaged[Cdecl]) funcTable[6518274951224615377UL]; - Event_SetCreateRmlElementDelegate = (delegate* unmanaged[Cdecl]) funcTable[10951149381175963786UL]; - Event_SetCreateVehicleDelegate = (delegate* unmanaged[Cdecl]) funcTable[17044910335916169675UL]; - Event_SetCreateWebSocketClientDelegate = (delegate* unmanaged[Cdecl]) funcTable[8083766988198005595UL]; - Event_SetCreateWebViewDelegate = (delegate* unmanaged[Cdecl]) funcTable[698310834935122268UL]; - Event_SetGameEntityCreateDelegate = (delegate* unmanaged[Cdecl]) funcTable[4836811662332180478UL]; - Event_SetGameEntityDestroyDelegate = (delegate* unmanaged[Cdecl]) funcTable[8571100532037439142UL]; - Event_SetGlobalMetaChangeDelegate = (delegate* unmanaged[Cdecl]) funcTable[2598489207307002921UL]; - Event_SetGlobalSyncedMetaChangeDelegate = (delegate* unmanaged[Cdecl]) funcTable[3524597941952442491UL]; - Event_SetKeyDownDelegate = (delegate* unmanaged[Cdecl]) funcTable[9404030408280664108UL]; - Event_SetKeyUpDelegate = (delegate* unmanaged[Cdecl]) funcTable[9931752130358912669UL]; - Event_SetLocalMetaChangeDelegate = (delegate* unmanaged[Cdecl]) funcTable[14805688063406012213UL]; - Event_SetNetOwnerChangeDelegate = (delegate* unmanaged[Cdecl]) funcTable[12367901277371547469UL]; - Event_SetPlayerChangeAnimationDelegate = (delegate* unmanaged[Cdecl]) funcTable[14326612057973920746UL]; - Event_SetPlayerChangeInteriorDelegate = (delegate* unmanaged[Cdecl]) funcTable[13673383168510680058UL]; - Event_SetPlayerChangeVehicleSeatDelegate = (delegate* unmanaged[Cdecl]) funcTable[3790585998434893641UL]; - Event_SetPlayerDisconnectDelegate = (delegate* unmanaged[Cdecl]) funcTable[1549554798684622204UL]; - Event_SetPlayerEnterVehicleDelegate = (delegate* unmanaged[Cdecl]) funcTable[1923165119346441184UL]; - Event_SetPlayerLeaveVehicleDelegate = (delegate* unmanaged[Cdecl]) funcTable[14961736025769794951UL]; - Event_SetPlayerSpawnDelegate = (delegate* unmanaged[Cdecl]) funcTable[11268891869591421375UL]; - Event_SetPlayerWeaponChangeDelegate = (delegate* unmanaged[Cdecl]) funcTable[5492979685604513694UL]; - Event_SetPlayerWeaponShootDelegate = (delegate* unmanaged[Cdecl]) funcTable[6818256047375626987UL]; - Event_SetRemoveAudioDelegate = (delegate* unmanaged[Cdecl]) funcTable[11315069979801977141UL]; - Event_SetRemoveBlipDelegate = (delegate* unmanaged[Cdecl]) funcTable[8037796803964619936UL]; - Event_SetRemoveCheckpointDelegate = (delegate* unmanaged[Cdecl]) funcTable[6221955488446414337UL]; - Event_SetRemoveEntityDelegate = (delegate* unmanaged[Cdecl]) funcTable[16152155238890224004UL]; - Event_SetRemoveHttpClientDelegate = (delegate* unmanaged[Cdecl]) funcTable[13360057399041602448UL]; - Event_SetRemoveObjectDelegate = (delegate* unmanaged[Cdecl]) funcTable[6587615673997035144UL]; - Event_SetRemovePlayerDelegate = (delegate* unmanaged[Cdecl]) funcTable[10423383830368468802UL]; - Event_SetRemoveRmlDocumentDelegate = (delegate* unmanaged[Cdecl]) funcTable[14117547966752822893UL]; - Event_SetRemoveRmlElementDelegate = (delegate* unmanaged[Cdecl]) funcTable[18223771896748589182UL]; - Event_SetRemoveVehicleDelegate = (delegate* unmanaged[Cdecl]) funcTable[14424169933644660431UL]; - Event_SetRemoveWebSocketClientDelegate = (delegate* unmanaged[Cdecl]) funcTable[2032550370597953799UL]; - Event_SetRemoveWebViewDelegate = (delegate* unmanaged[Cdecl]) funcTable[10199063866704599224UL]; - Event_SetRmlEventDelegate = (delegate* unmanaged[Cdecl]) funcTable[30496965812679242UL]; - Event_SetServerEventDelegate = (delegate* unmanaged[Cdecl]) funcTable[2971692831775383478UL]; - Event_SetStreamSyncedMetaChangeDelegate = (delegate* unmanaged[Cdecl]) funcTable[5661536634945721572UL]; - Event_SetSyncedMetaChangeDelegate = (delegate* unmanaged[Cdecl]) funcTable[11449647566401505476UL]; - Event_SetTaskChangeDelegate = (delegate* unmanaged[Cdecl]) funcTable[17990382389078263474UL]; - Event_SetTickDelegate = (delegate* unmanaged[Cdecl]) funcTable[9675161512950549314UL]; - Event_SetWeaponDamageDelegate = (delegate* unmanaged[Cdecl]) funcTable[14786305860957378010UL]; - Event_SetWebSocketEventDelegate = (delegate* unmanaged[Cdecl]) funcTable[6718035728053543946UL]; - Event_SetWebViewEventDelegate = (delegate* unmanaged[Cdecl]) funcTable[9098832370734780314UL]; - Event_SetWindowFocusChangeDelegate = (delegate* unmanaged[Cdecl]) funcTable[16816237331587672803UL]; - Event_SetWindowResolutionChangeDelegate = (delegate* unmanaged[Cdecl]) funcTable[11266509741016760981UL]; - FreeRmlElementArray = (delegate* unmanaged[Cdecl]) funcTable[2759792098189334963UL]; - GetNativeFuncTable = (delegate* unmanaged[Cdecl]) funcTable[18057905405504285670UL]; - Handling_GetAcceleration = (delegate* unmanaged[Cdecl]) funcTable[13624814751546614143UL]; - Handling_GetAntiRollBarBiasFront = (delegate* unmanaged[Cdecl]) funcTable[10594740743203586123UL]; - Handling_GetAntiRollBarBiasRear = (delegate* unmanaged[Cdecl]) funcTable[8848326371558118226UL]; - Handling_GetAntiRollBarForce = (delegate* unmanaged[Cdecl]) funcTable[18144702919216862476UL]; - Handling_GetBrakeBiasFront = (delegate* unmanaged[Cdecl]) funcTable[1540917475990943978UL]; - Handling_GetBrakeBiasRear = (delegate* unmanaged[Cdecl]) funcTable[9959676847579137673UL]; - Handling_GetBrakeForce = (delegate* unmanaged[Cdecl]) funcTable[16066690649818527533UL]; - Handling_GetCamberStiffness = (delegate* unmanaged[Cdecl]) funcTable[12856149426501638164UL]; - Handling_GetCentreOfMassOffset = (delegate* unmanaged[Cdecl]) funcTable[7612983020008677754UL]; - Handling_GetClutchChangeRateScaleDownShift = (delegate* unmanaged[Cdecl]) funcTable[1299281864095515466UL]; - Handling_GetClutchChangeRateScaleUpShift = (delegate* unmanaged[Cdecl]) funcTable[8827401313805566749UL]; - Handling_GetCollisionDamageMult = (delegate* unmanaged[Cdecl]) funcTable[12237428543997087742UL]; - Handling_GetDamageFlags = (delegate* unmanaged[Cdecl]) funcTable[14947966424705389613UL]; - Handling_GetDeformationDamageMult = (delegate* unmanaged[Cdecl]) funcTable[7161067882439203788UL]; - Handling_GetDownforceModifier = (delegate* unmanaged[Cdecl]) funcTable[13379963907557264903UL]; - Handling_GetDriveBiasFront = (delegate* unmanaged[Cdecl]) funcTable[3677408191440066959UL]; - Handling_GetDriveInertia = (delegate* unmanaged[Cdecl]) funcTable[8747113372100260085UL]; - Handling_GetDriveMaxFlatVel = (delegate* unmanaged[Cdecl]) funcTable[7038895793064914469UL]; - Handling_GetEngineDamageMult = (delegate* unmanaged[Cdecl]) funcTable[11550094524282418598UL]; - Handling_GetHandBrakeForce = (delegate* unmanaged[Cdecl]) funcTable[11603414005013245572UL]; - Handling_GetHandlingFlags = (delegate* unmanaged[Cdecl]) funcTable[6943413718566419993UL]; - Handling_GetHandlingNameHash = (delegate* unmanaged[Cdecl]) funcTable[8640968326648039369UL]; - Handling_GetInertiaMultiplier = (delegate* unmanaged[Cdecl]) funcTable[11212186208992921224UL]; - Handling_GetInitialDragCoeff = (delegate* unmanaged[Cdecl]) funcTable[5688175012660882904UL]; - Handling_GetInitialDriveForce = (delegate* unmanaged[Cdecl]) funcTable[8840995133194739886UL]; - Handling_GetInitialDriveGears = (delegate* unmanaged[Cdecl]) funcTable[6687641533430313749UL]; - Handling_GetInitialDriveMaxFlatVel = (delegate* unmanaged[Cdecl]) funcTable[14144818963284424087UL]; - Handling_GetLowSpeedTractionLossMult = (delegate* unmanaged[Cdecl]) funcTable[17987394206782768947UL]; - Handling_GetMass = (delegate* unmanaged[Cdecl]) funcTable[5501036719479541711UL]; - Handling_GetModelFlags = (delegate* unmanaged[Cdecl]) funcTable[3855073073528413619UL]; - Handling_GetMonetaryValue = (delegate* unmanaged[Cdecl]) funcTable[7375093732080490105UL]; - Handling_GetOilVolume = (delegate* unmanaged[Cdecl]) funcTable[16483321693947688363UL]; - Handling_GetPercentSubmerged = (delegate* unmanaged[Cdecl]) funcTable[4127528026938310074UL]; - Handling_GetPercentSubmergedRatio = (delegate* unmanaged[Cdecl]) funcTable[8555153053561029769UL]; - Handling_GetPetrolTankVolume = (delegate* unmanaged[Cdecl]) funcTable[18414804403188978051UL]; - Handling_GetRollCentreHeightFront = (delegate* unmanaged[Cdecl]) funcTable[8497407164550207255UL]; - Handling_GetRollCentreHeightRear = (delegate* unmanaged[Cdecl]) funcTable[14075511625417471246UL]; - Handling_GetSeatOffsetDistX = (delegate* unmanaged[Cdecl]) funcTable[4005205065366672795UL]; - Handling_GetSeatOffsetDistY = (delegate* unmanaged[Cdecl]) funcTable[4005203965855044584UL]; - Handling_GetSeatOffsetDistZ = (delegate* unmanaged[Cdecl]) funcTable[4005207264389929217UL]; - Handling_GetSteeringLock = (delegate* unmanaged[Cdecl]) funcTable[7974432269354924807UL]; - Handling_GetSteeringLockRatio = (delegate* unmanaged[Cdecl]) funcTable[12905887441999468274UL]; - Handling_GetSuspensionBiasFront = (delegate* unmanaged[Cdecl]) funcTable[6741856606398893182UL]; - Handling_GetSuspensionBiasRear = (delegate* unmanaged[Cdecl]) funcTable[15901469631126965309UL]; - Handling_GetSuspensionCompDamp = (delegate* unmanaged[Cdecl]) funcTable[7515049029653772367UL]; - Handling_GetSuspensionForce = (delegate* unmanaged[Cdecl]) funcTable[4036932257369728873UL]; - Handling_GetSuspensionLowerLimit = (delegate* unmanaged[Cdecl]) funcTable[10822460398559637530UL]; - Handling_GetSuspensionRaise = (delegate* unmanaged[Cdecl]) funcTable[8425902362403546934UL]; - Handling_GetSuspensionReboundDamp = (delegate* unmanaged[Cdecl]) funcTable[483850675192275083UL]; - Handling_GetSuspensionUpperLimit = (delegate* unmanaged[Cdecl]) funcTable[7608663264912133277UL]; - Handling_GetTractionBiasFront = (delegate* unmanaged[Cdecl]) funcTable[10805860439014824609UL]; - Handling_GetTractionBiasRear = (delegate* unmanaged[Cdecl]) funcTable[4466190029644065812UL]; - Handling_GetTractionCurveLateral = (delegate* unmanaged[Cdecl]) funcTable[10570605158004541869UL]; - Handling_GetTractionCurveLateralRatio = (delegate* unmanaged[Cdecl]) funcTable[17305170651865432732UL]; - Handling_GetTractionCurveMax = (delegate* unmanaged[Cdecl]) funcTable[13012063275439258128UL]; - Handling_GetTractionCurveMaxRatio = (delegate* unmanaged[Cdecl]) funcTable[288330456725482275UL]; - Handling_GetTractionCurveMin = (delegate* unmanaged[Cdecl]) funcTable[13004487640322398138UL]; - Handling_GetTractionCurveMinRatio = (delegate* unmanaged[Cdecl]) funcTable[2861602113259983497UL]; - Handling_GetTractionLossMult = (delegate* unmanaged[Cdecl]) funcTable[15639344535663345118UL]; - Handling_GetTractionSpringDeltaMax = (delegate* unmanaged[Cdecl]) funcTable[7406735691348904958UL]; - Handling_GetTractionSpringDeltaMaxRatio = (delegate* unmanaged[Cdecl]) funcTable[9158827384634469349UL]; - Handling_GetunkFloat1 = (delegate* unmanaged[Cdecl]) funcTable[1982175074059174772UL]; - Handling_GetunkFloat2 = (delegate* unmanaged[Cdecl]) funcTable[1982178372594059405UL]; - Handling_GetunkFloat4 = (delegate* unmanaged[Cdecl]) funcTable[1982171775524290139UL]; - Handling_GetunkFloat5 = (delegate* unmanaged[Cdecl]) funcTable[1982170676012661928UL]; - Handling_GetWeaponDamageMult = (delegate* unmanaged[Cdecl]) funcTable[2413407182364190104UL]; - Handling_SetAcceleration = (delegate* unmanaged[Cdecl]) funcTable[1758592208721049987UL]; - Handling_SetAntiRollBarBiasFront = (delegate* unmanaged[Cdecl]) funcTable[16243312669711460567UL]; - Handling_SetAntiRollBarBiasRear = (delegate* unmanaged[Cdecl]) funcTable[15187606792306631886UL]; - Handling_SetAntiRollBarForce = (delegate* unmanaged[Cdecl]) funcTable[15457469788774083360UL]; - Handling_SetBrakeBiasFront = (delegate* unmanaged[Cdecl]) funcTable[11849399891457904950UL]; - Handling_SetBrakeBiasRear = (delegate* unmanaged[Cdecl]) funcTable[16722829573808656293UL]; - Handling_SetBrakeForce = (delegate* unmanaged[Cdecl]) funcTable[5919963323462108577UL]; - Handling_SetCamberStiffness = (delegate* unmanaged[Cdecl]) funcTable[2624932986328626168UL]; - Handling_SetCentreOfMassOffset = (delegate* unmanaged[Cdecl]) funcTable[13812113430490255198UL]; - Handling_SetClutchChangeRateScaleDownShift = (delegate* unmanaged[Cdecl]) funcTable[2303154151539548878UL]; - Handling_SetClutchChangeRateScaleUpShift = (delegate* unmanaged[Cdecl]) funcTable[7445885150995272041UL]; - Handling_SetCollisionDamageMult = (delegate* unmanaged[Cdecl]) funcTable[3571731783216579106UL]; - Handling_SetDamageFlags = (delegate* unmanaged[Cdecl]) funcTable[537662139595455537UL]; - Handling_SetDeformationDamageMult = (delegate* unmanaged[Cdecl]) funcTable[784308426389024792UL]; - Handling_SetDownforceModifier = (delegate* unmanaged[Cdecl]) funcTable[9145673695655900243UL]; - Handling_SetDriveBiasFront = (delegate* unmanaged[Cdecl]) funcTable[16572611112120812027UL]; - Handling_SetDriveInertia = (delegate* unmanaged[Cdecl]) funcTable[14728385455329543689UL]; - Handling_SetDriveMaxFlatVel = (delegate* unmanaged[Cdecl]) funcTable[12184195394360257745UL]; - Handling_SetEngineDamageMult = (delegate* unmanaged[Cdecl]) funcTable[15273639201901822562UL]; - Handling_SetHandBrakeForce = (delegate* unmanaged[Cdecl]) funcTable[3927236931217555944UL]; - Handling_SetHandlingFlags = (delegate* unmanaged[Cdecl]) funcTable[376016819761821317UL]; - Handling_SetInertiaMultiplier = (delegate* unmanaged[Cdecl]) funcTable[1724956346568874092UL]; - Handling_SetInitialDragCoeff = (delegate* unmanaged[Cdecl]) funcTable[17184681692411087028UL]; - Handling_SetInitialDriveForce = (delegate* unmanaged[Cdecl]) funcTable[11970016635293724434UL]; - Handling_SetInitialDriveGears = (delegate* unmanaged[Cdecl]) funcTable[3734366437378273841UL]; - Handling_SetInitialDriveMaxFlatVel = (delegate* unmanaged[Cdecl]) funcTable[7403114842201132179UL]; - Handling_SetLowSpeedTractionLossMult = (delegate* unmanaged[Cdecl]) funcTable[15289976609215981783UL]; - Handling_SetMass = (delegate* unmanaged[Cdecl]) funcTable[8190254034030138331UL]; - Handling_SetModelFlags = (delegate* unmanaged[Cdecl]) funcTable[11497460465166503559UL]; - Handling_SetMonetaryValue = (delegate* unmanaged[Cdecl]) funcTable[2594570157380173805UL]; - Handling_SetOilVolume = (delegate* unmanaged[Cdecl]) funcTable[3253947611054675143UL]; - Handling_SetPercentSubmerged = (delegate* unmanaged[Cdecl]) funcTable[13115758554391751486UL]; - Handling_SetPercentSubmergedRatio = (delegate* unmanaged[Cdecl]) funcTable[15898995197540963877UL]; - Handling_SetPetrolTankVolume = (delegate* unmanaged[Cdecl]) funcTable[966697117301139367UL]; - Handling_SetRollCentreHeightFront = (delegate* unmanaged[Cdecl]) funcTable[12619280032445944563UL]; - Handling_SetRollCentreHeightRear = (delegate* unmanaged[Cdecl]) funcTable[4523306816309501738UL]; - Handling_SetSeatOffsetDistX = (delegate* unmanaged[Cdecl]) funcTable[15308632544548493615UL]; - Handling_SetSeatOffsetDistY = (delegate* unmanaged[Cdecl]) funcTable[15308631445036865404UL]; - Handling_SetSeatOffsetDistZ = (delegate* unmanaged[Cdecl]) funcTable[15308634743571750037UL]; - Handling_SetSteeringLock = (delegate* unmanaged[Cdecl]) funcTable[394620128617625187UL]; - Handling_SetSteeringLockRatio = (delegate* unmanaged[Cdecl]) funcTable[7887478553515539366UL]; - Handling_SetSuspensionBiasFront = (delegate* unmanaged[Cdecl]) funcTable[5149586735442141938UL]; - Handling_SetSuspensionBiasRear = (delegate* unmanaged[Cdecl]) funcTable[11545810037051194625UL]; - Handling_SetSuspensionCompDamp = (delegate* unmanaged[Cdecl]) funcTable[7504016883110333899UL]; - Handling_SetSuspensionForce = (delegate* unmanaged[Cdecl]) funcTable[1810703612634991061UL]; - Handling_SetSuspensionLowerLimit = (delegate* unmanaged[Cdecl]) funcTable[12067101740945464222UL]; - Handling_SetSuspensionRaise = (delegate* unmanaged[Cdecl]) funcTable[128416076886968066UL]; - Handling_SetSuspensionReboundDamp = (delegate* unmanaged[Cdecl]) funcTable[12752057920719603847UL]; - Handling_SetSuspensionUpperLimit = (delegate* unmanaged[Cdecl]) funcTable[9464075263166591073UL]; - Handling_SetTractionBiasFront = (delegate* unmanaged[Cdecl]) funcTable[15100090231323996861UL]; - Handling_SetTractionBiasRear = (delegate* unmanaged[Cdecl]) funcTable[10850124511941666000UL]; - Handling_SetTractionCurveLateral = (delegate* unmanaged[Cdecl]) funcTable[14643574737777941385UL]; - Handling_SetTractionCurveLateralRatio = (delegate* unmanaged[Cdecl]) funcTable[8826815076074522528UL]; - Handling_SetTractionCurveMax = (delegate* unmanaged[Cdecl]) funcTable[12335988240743993172UL]; - Handling_SetTractionCurveMaxRatio = (delegate* unmanaged[Cdecl]) funcTable[16770555692902172511UL]; - Handling_SetTractionCurveMin = (delegate* unmanaged[Cdecl]) funcTable[12328368625162004742UL]; - Handling_SetTractionCurveMinRatio = (delegate* unmanaged[Cdecl]) funcTable[925954911097918237UL]; - Handling_SetTractionLossMult = (delegate* unmanaged[Cdecl]) funcTable[16760038608373822498UL]; - Handling_SetTractionSpringDeltaMax = (delegate* unmanaged[Cdecl]) funcTable[1869935309309611530UL]; - Handling_SetTractionSpringDeltaMaxRatio = (delegate* unmanaged[Cdecl]) funcTable[4808092995242021049UL]; - Handling_SetunkFloat1 = (delegate* unmanaged[Cdecl]) funcTable[15161870714787733568UL]; - Handling_SetunkFloat2 = (delegate* unmanaged[Cdecl]) funcTable[15161874013322618201UL]; - Handling_SetunkFloat4 = (delegate* unmanaged[Cdecl]) funcTable[15161876212345874623UL]; - Handling_SetunkFloat5 = (delegate* unmanaged[Cdecl]) funcTable[15161875112834246412UL]; - Handling_SetWeaponDamageMult = (delegate* unmanaged[Cdecl]) funcTable[14105911650575848876UL]; - HttpClient_Connect = (delegate* unmanaged[Cdecl]) funcTable[2365480475834603879UL]; - HttpClient_Delete = (delegate* unmanaged[Cdecl]) funcTable[8232918492481382800UL]; - HttpClient_Get = (delegate* unmanaged[Cdecl]) funcTable[4334635731329240893UL]; - HttpClient_GetBaseObject = (delegate* unmanaged[Cdecl]) funcTable[2366043818608618855UL]; - HttpClient_GetExtraHeaders = (delegate* unmanaged[Cdecl]) funcTable[10548421098226168213UL]; - HttpClient_Head = (delegate* unmanaged[Cdecl]) funcTable[7252671215097431945UL]; - HttpClient_Options = (delegate* unmanaged[Cdecl]) funcTable[7387919532121243399UL]; - HttpClient_Patch = (delegate* unmanaged[Cdecl]) funcTable[7418218987542253639UL]; - HttpClient_Post = (delegate* unmanaged[Cdecl]) funcTable[381490135483714293UL]; - HttpClient_Put = (delegate* unmanaged[Cdecl]) funcTable[12099739788502530064UL]; - HttpClient_SetExtraHeader = (delegate* unmanaged[Cdecl]) funcTable[6380481551828770088UL]; - HttpClient_Trace = (delegate* unmanaged[Cdecl]) funcTable[10929952870369787448UL]; - LocalPlayer_GetCurrentAmmo = (delegate* unmanaged[Cdecl]) funcTable[11323017524450537377UL]; - LocalPlayer_GetCurrentWeaponHash = (delegate* unmanaged[Cdecl]) funcTable[14780359424452904819UL]; - LocalPlayer_GetID = (delegate* unmanaged[Cdecl]) funcTable[16652520629046945775UL]; - LocalPlayer_GetMaxStamina = (delegate* unmanaged[Cdecl]) funcTable[5455669797567281305UL]; - LocalPlayer_GetPlayer = (delegate* unmanaged[Cdecl]) funcTable[3247950422735147003UL]; - LocalPlayer_GetStamina = (delegate* unmanaged[Cdecl]) funcTable[2236559538340714915UL]; - LocalPlayer_GetWeaponAmmo = (delegate* unmanaged[Cdecl]) funcTable[10335677192059765124UL]; - LocalPlayer_GetWeaponComponents = (delegate* unmanaged[Cdecl]) funcTable[9592241143794164726UL]; - LocalPlayer_GetWeapons = (delegate* unmanaged[Cdecl]) funcTable[10466395082714547523UL]; - LocalPlayer_HasWeapon = (delegate* unmanaged[Cdecl]) funcTable[3731445245582274998UL]; - LocalPlayer_SetMaxStamina = (delegate* unmanaged[Cdecl]) funcTable[6190252249756260581UL]; - LocalPlayer_SetStamina = (delegate* unmanaged[Cdecl]) funcTable[5386205245949220223UL]; - LocalStorage_Clear = (delegate* unmanaged[Cdecl]) funcTable[16361869751406691467UL]; - LocalStorage_DeleteKey = (delegate* unmanaged[Cdecl]) funcTable[6274499691882983444UL]; - LocalStorage_GetKey = (delegate* unmanaged[Cdecl]) funcTable[17812344948919371541UL]; - LocalStorage_Save = (delegate* unmanaged[Cdecl]) funcTable[5262946451355414287UL]; - LocalStorage_SetKey = (delegate* unmanaged[Cdecl]) funcTable[4533176811146616409UL]; - MapData_GetFScrollSpeed = (delegate* unmanaged[Cdecl]) funcTable[13751151120093323324UL]; - MapData_GetFZoomScale = (delegate* unmanaged[Cdecl]) funcTable[11933189166389491747UL]; - MapData_GetFZoomSpeed = (delegate* unmanaged[Cdecl]) funcTable[14895176095785107798UL]; - MapData_GetVTilesX = (delegate* unmanaged[Cdecl]) funcTable[2372302576683995975UL]; - MapData_GetVTilesY = (delegate* unmanaged[Cdecl]) funcTable[2372301477172367764UL]; - MapData_SetFScrollSpeed = (delegate* unmanaged[Cdecl]) funcTable[3015442569045559176UL]; - MapData_SetFZoomScale = (delegate* unmanaged[Cdecl]) funcTable[16660126263762344935UL]; - MapData_SetFZoomSpeed = (delegate* unmanaged[Cdecl]) funcTable[5404397572483975730UL]; - MapData_SetVTilesX = (delegate* unmanaged[Cdecl]) funcTable[5209892052509722515UL]; - MapData_SetVTilesY = (delegate* unmanaged[Cdecl]) funcTable[5209890952998094304UL]; - Object_IsRemote = (delegate* unmanaged[Cdecl]) funcTable[11016334243399582569UL]; - Player_GetLocal = (delegate* unmanaged[Cdecl]) funcTable[8938755572393001806UL]; - Player_GetMicLevel = (delegate* unmanaged[Cdecl]) funcTable[17456899458340282168UL]; - Player_GetNonSpatialVolume = (delegate* unmanaged[Cdecl]) funcTable[12611070433478166976UL]; - Player_GetSpatialVolume = (delegate* unmanaged[Cdecl]) funcTable[549392158271724311UL]; - Player_IsTalking = (delegate* unmanaged[Cdecl]) funcTable[5955622104882402305UL]; - Player_SetNonSpatialVolume = (delegate* unmanaged[Cdecl]) funcTable[8874972969567149348UL]; - Player_SetSpatialVolume = (delegate* unmanaged[Cdecl]) funcTable[4055666754970683163UL]; - Resource_FileExists = (delegate* unmanaged[Cdecl]) funcTable[6014125782844400152UL]; - Resource_GetFile = (delegate* unmanaged[Cdecl]) funcTable[3871814524701254220UL]; - Resource_GetLocalStorage = (delegate* unmanaged[Cdecl]) funcTable[12051979412148222794UL]; - RmlDocument_CreateElement = (delegate* unmanaged[Cdecl]) funcTable[10642752819905143098UL]; - RmlDocument_CreateTextNode = (delegate* unmanaged[Cdecl]) funcTable[13119221992970511377UL]; - RmlDocument_GetBody = (delegate* unmanaged[Cdecl]) funcTable[15665040113694440550UL]; - RmlDocument_GetRmlElement = (delegate* unmanaged[Cdecl]) funcTable[17657575332131456787UL]; - RmlDocument_GetSourceUrl = (delegate* unmanaged[Cdecl]) funcTable[16640194521382798072UL]; - RmlDocument_GetTitle = (delegate* unmanaged[Cdecl]) funcTable[18024986439806194532UL]; - RmlDocument_Hide = (delegate* unmanaged[Cdecl]) funcTable[3748615861796363270UL]; - RmlDocument_IsModal = (delegate* unmanaged[Cdecl]) funcTable[4914669130875794147UL]; - RmlDocument_IsVisible = (delegate* unmanaged[Cdecl]) funcTable[9948589942909096300UL]; - RmlDocument_SetTitle = (delegate* unmanaged[Cdecl]) funcTable[268904169853084696UL]; - RmlDocument_Show = (delegate* unmanaged[Cdecl]) funcTable[750501874769424971UL]; - RmlDocument_Update = (delegate* unmanaged[Cdecl]) funcTable[9541093055848395471UL]; - RmlElement_AddClass = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[2820183251482068224UL]; - RmlElement_AddPseudoClass = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[7641244424263498150UL]; - RmlElement_AppendChild = (delegate* unmanaged[Cdecl]) funcTable[11927563774793348621UL]; - RmlElement_Blur = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[9586147878740724260UL]; - RmlElement_Click = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[3595109554644131579UL]; - RmlElement_Focus = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[4908473844226331151UL]; - RmlElement_GetAbsoluteLeft = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[4800056776949415707UL]; - RmlElement_GetAbsoluteOffset = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[9902532974072673849UL]; - RmlElement_GetAbsoluteTop = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[2024085596978035673UL]; - RmlElement_GetAttribute = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[16965861644844510697UL]; - RmlElement_GetAttributes = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[8490637140982103214UL]; - RmlElement_GetBaseline = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[10767331024826426212UL]; - RmlElement_GetBaseObject = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[17879251354768112461UL]; - RmlElement_GetChildCount = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[1640654979607706762UL]; - RmlElement_GetChildNodes = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[17435735590641149320UL]; - RmlElement_GetClassList = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[12760509477431494769UL]; - RmlElement_GetClientHeight = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[10818546577735888199UL]; - RmlElement_GetClientLeft = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[11511990416760542485UL]; - RmlElement_GetClientTop = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[14961707319790707639UL]; - RmlElement_GetClientWidth = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[16370669061563861424UL]; - RmlElement_GetClosest = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[14584183246732471166UL]; - RmlElement_GetContainingBlock = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[8721946258576908700UL]; - RmlElement_GetElementById = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[8218622718140617609UL]; - RmlElement_GetElementsByClassName = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[18302228518552372158UL]; - RmlElement_GetElementsByTagName = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[7021646799462461682UL]; - RmlElement_GetFirstChild = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[14724327319195357191UL]; - RmlElement_GetFocusedElement = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[8533147306514776532UL]; - RmlElement_GetId = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[8955717777830966830UL]; - RmlElement_GetInnerRml = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[9121188437455194084UL]; - RmlElement_GetLastChild = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[15501254274659713275UL]; - RmlElement_GetLocalProperty = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[16271818300377620391UL]; - RmlElement_GetNextSibling = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[12361074701820253768UL]; - RmlElement_GetOffsetHeight = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[11246602282940266059UL]; - RmlElement_GetOffsetLeft = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[14818159675802816753UL]; - RmlElement_GetOffsetTop = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[10072592414721142635UL]; - RmlElement_GetOffsetWidth = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[15595715949877553980UL]; - RmlElement_GetOwnerDocument = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[12637146364043628907UL]; - RmlElement_GetParent = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[10938522686801509707UL]; - RmlElement_GetPreviousSibling = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[891239922054421668UL]; - RmlElement_GetProperty = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[15257370850213777354UL]; - RmlElement_GetPropertyAbsoluteValue = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[17328530976822535904UL]; - RmlElement_GetPseudoClassList = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[13068152492708219703UL]; - RmlElement_GetRelativeOffset = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[12160532298285136584UL]; - RmlElement_GetScrollHeight = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[832599130103298937UL]; - RmlElement_GetScrollLeft = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[738930211639948503UL]; - RmlElement_GetScrollTop = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[16746723301275513981UL]; - RmlElement_GetScrollWidth = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[16141158796341216134UL]; - RmlElement_GetTagName = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[5037799530212790618UL]; - RmlElement_GetZIndex = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[3408290893694336209UL]; - RmlElement_HasAttribute = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[9022337411770312669UL]; - RmlElement_HasChildren = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[9258967865644915936UL]; - RmlElement_HasClass = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[829832327312277641UL]; - RmlElement_HasLocalProperty = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[127541762084006323UL]; - RmlElement_HasProperty = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[2230027563475148118UL]; - RmlElement_HasPseudoClass = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[1152211250355982979UL]; - RmlElement_InsertBefore = (delegate* unmanaged[Cdecl]) funcTable[10893638794791098551UL]; - RmlElement_IsOwned = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[5906509668218647018UL]; - RmlElement_IsPointWithinElement = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[17360541281702394490UL]; - RmlElement_IsVisible = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[13297758914040133709UL]; - RmlElement_QuerySelector = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[1307214619736161022UL]; - RmlElement_QuerySelectorAll = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[16234728570293987085UL]; - RmlElement_RemoveAttribute = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[18366492142368160987UL]; - RmlElement_RemoveChild = (delegate* unmanaged[Cdecl]) funcTable[11888855452435811633UL]; - RmlElement_RemoveClass = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[4509347774832794955UL]; - RmlElement_RemoveProperty = (delegate* unmanaged[Cdecl]) funcTable[10693221490638295644UL]; - RmlElement_RemovePseudoClass = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[9790078136470308117UL]; - RmlElement_ReplaceChild = (delegate* unmanaged[Cdecl]) funcTable[2983086139257394207UL]; - RmlElement_ScrollIntoView = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[8195300208997372979UL]; - RmlElement_SetAttribute = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[15566360484909892493UL]; - RmlElement_SetId = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[9672388707467178682UL]; - RmlElement_SetInnerRml = (delegate* unmanaged[Cdecl]) funcTable[5541303684283065696UL]; - RmlElement_SetOffset = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[1617253728850426284UL]; - RmlElement_SetProperty = (delegate* unmanaged[Cdecl]) funcTable[13107304283685121926UL]; - RmlElement_SetScrollLeft = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[3020228453977319747UL]; - RmlElement_SetScrollTop = (delegate* unmanaged[Cdecl, SuppressGCTransition]) funcTable[12254382028928613937UL]; - Vehicle_GetAbsLightState = (delegate* unmanaged[Cdecl]) funcTable[11465910969401486109UL]; - Vehicle_GetBatteryLightState = (delegate* unmanaged[Cdecl]) funcTable[7848965836586438468UL]; - Vehicle_GetEngineLightState = (delegate* unmanaged[Cdecl]) funcTable[13394205865713256511UL]; - Vehicle_GetEngineTemperature = (delegate* unmanaged[Cdecl]) funcTable[17519926568328251068UL]; - Vehicle_GetFuelLevel = (delegate* unmanaged[Cdecl]) funcTable[7580042278215800086UL]; - Vehicle_GetGear = (delegate* unmanaged[Cdecl]) funcTable[9309814334597532303UL]; - Vehicle_GetIndicatorLights = (delegate* unmanaged[Cdecl]) funcTable[12221325088471441924UL]; - Vehicle_GetMaxGear = (delegate* unmanaged[Cdecl]) funcTable[12126835936703230501UL]; - Vehicle_GetOilLevel = (delegate* unmanaged[Cdecl]) funcTable[1927937236085810986UL]; - Vehicle_GetOilLightState = (delegate* unmanaged[Cdecl]) funcTable[1882387157498793117UL]; - Vehicle_GetPetrolLightState = (delegate* unmanaged[Cdecl]) funcTable[7527247142245896335UL]; - Vehicle_GetRPM = (delegate* unmanaged[Cdecl]) funcTable[2741222111971626377UL]; - Vehicle_GetSeatCount = (delegate* unmanaged[Cdecl]) funcTable[4466655922564697820UL]; - Vehicle_GetSpeedVector = (delegate* unmanaged[Cdecl]) funcTable[6222226012404492852UL]; - Vehicle_GetWheelSpeed = (delegate* unmanaged[Cdecl]) funcTable[12526415873184871038UL]; - Vehicle_GetWheelSurfaceMaterial = (delegate* unmanaged[Cdecl]) funcTable[14498368668841337331UL]; - Vehicle_Handling_GetAcceleration = (delegate* unmanaged[Cdecl]) funcTable[6447107622156387014UL]; - Vehicle_Handling_GetAntiRollBarBiasFront = (delegate* unmanaged[Cdecl]) funcTable[7256591593615684542UL]; - Vehicle_Handling_GetAntiRollBarBiasRear = (delegate* unmanaged[Cdecl]) funcTable[4077980556768758653UL]; - Vehicle_Handling_GetAntiRollBarForce = (delegate* unmanaged[Cdecl]) funcTable[18435352829241725865UL]; - Vehicle_Handling_GetBrakeBiasFront = (delegate* unmanaged[Cdecl]) funcTable[6184847547648978919UL]; - Vehicle_Handling_GetBrakeBiasRear = (delegate* unmanaged[Cdecl]) funcTable[12987368804787444734UL]; - Vehicle_Handling_GetBrakeForce = (delegate* unmanaged[Cdecl]) funcTable[3213094684959060080UL]; - Vehicle_Handling_GetCamberStiffness = (delegate* unmanaged[Cdecl]) funcTable[3732965928815068415UL]; - Vehicle_Handling_GetCentreOfMassOffset = (delegate* unmanaged[Cdecl]) funcTable[9507675400344119443UL]; - Vehicle_Handling_GetClutchChangeRateScaleDownShift = (delegate* unmanaged[Cdecl]) funcTable[6980526537418099731UL]; - Vehicle_Handling_GetClutchChangeRateScaleUpShift = (delegate* unmanaged[Cdecl]) funcTable[2887520218081357128UL]; - Vehicle_Handling_GetCollisionDamageMult = (delegate* unmanaged[Cdecl]) funcTable[16383514226076622293UL]; - Vehicle_Handling_GetDamageFlags = (delegate* unmanaged[Cdecl]) funcTable[12056759872942180618UL]; - Vehicle_Handling_GetDeformationDamageMult = (delegate* unmanaged[Cdecl]) funcTable[5659700838891907059UL]; - Vehicle_Handling_GetDownforceModifier = (delegate* unmanaged[Cdecl]) funcTable[17727616566934238384UL]; - Vehicle_Handling_GetDriveBiasFront = (delegate* unmanaged[Cdecl]) funcTable[4530996063217069670UL]; - Vehicle_Handling_GetDriveInertia = (delegate* unmanaged[Cdecl]) funcTable[12172383629611372740UL]; - Vehicle_Handling_GetDriveMaxFlatVel = (delegate* unmanaged[Cdecl]) funcTable[13020113782025083638UL]; - Vehicle_Handling_GetEngineDamageMult = (delegate* unmanaged[Cdecl]) funcTable[10051804440091844767UL]; - Vehicle_Handling_GetHandBrakeForce = (delegate* unmanaged[Cdecl]) funcTable[342229853263984485UL]; - Vehicle_Handling_GetHandlingFlags = (delegate* unmanaged[Cdecl]) funcTable[15662252560696187394UL]; - Vehicle_Handling_GetHandlingNameHash = (delegate* unmanaged[Cdecl]) funcTable[16352503887678862784UL]; - Vehicle_Handling_GetInertiaMultiplier = (delegate* unmanaged[Cdecl]) funcTable[17893067791811527415UL]; - Vehicle_Handling_GetInitialDragCoeff = (delegate* unmanaged[Cdecl]) funcTable[11536658760227957329UL]; - Vehicle_Handling_GetInitialDriveForce = (delegate* unmanaged[Cdecl]) funcTable[2706614254080389709UL]; - Vehicle_Handling_GetInitialDriveGears = (delegate* unmanaged[Cdecl]) funcTable[683714825302252806UL]; - Vehicle_Handling_GetInitialDriveMaxFlatVel = (delegate* unmanaged[Cdecl]) funcTable[12653651903821535850UL]; - Vehicle_Handling_GetLowSpeedTractionLossMult = (delegate* unmanaged[Cdecl]) funcTable[15310234787245408210UL]; - Vehicle_Handling_GetMass = (delegate* unmanaged[Cdecl]) funcTable[9591105156773969614UL]; - Vehicle_Handling_GetModelFlags = (delegate* unmanaged[Cdecl]) funcTable[4283572218989440954UL]; - Vehicle_Handling_GetMonetaryValue = (delegate* unmanaged[Cdecl]) funcTable[7557776831182655982UL]; - Vehicle_Handling_GetOilVolume = (delegate* unmanaged[Cdecl]) funcTable[17022918435085709168UL]; - Vehicle_Handling_GetPercentSubmerged = (delegate* unmanaged[Cdecl]) funcTable[1328757541459836847UL]; - Vehicle_Handling_GetPercentSubmergedRatio = (delegate* unmanaged[Cdecl]) funcTable[17218504520074703690UL]; - Vehicle_Handling_GetPetrolTankVolume = (delegate* unmanaged[Cdecl]) funcTable[5831273882635521162UL]; - Vehicle_Handling_GetRollCentreHeightFront = (delegate* unmanaged[Cdecl]) funcTable[7843856576211842228UL]; - Vehicle_Handling_GetRollCentreHeightRear = (delegate* unmanaged[Cdecl]) funcTable[6419496600324581407UL]; - Vehicle_Handling_GetSeatOffsetDistX = (delegate* unmanaged[Cdecl]) funcTable[14928232606397351664UL]; - Vehicle_Handling_GetSeatOffsetDistY = (delegate* unmanaged[Cdecl]) funcTable[14928233705908979875UL]; - Vehicle_Handling_GetSeatOffsetDistZ = (delegate* unmanaged[Cdecl]) funcTable[14928234805420608086UL]; - Vehicle_Handling_GetSteeringLock = (delegate* unmanaged[Cdecl]) funcTable[7292724090849323962UL]; - Vehicle_Handling_GetSteeringLockRatio = (delegate* unmanaged[Cdecl]) funcTable[1298215191180480137UL]; - Vehicle_Handling_GetSuspensionBiasFront = (delegate* unmanaged[Cdecl]) funcTable[6517771070232854321UL]; - Vehicle_Handling_GetSuspensionBiasRear = (delegate* unmanaged[Cdecl]) funcTable[9041966748987438852UL]; - Vehicle_Handling_GetSuspensionCompDamp = (delegate* unmanaged[Cdecl]) funcTable[7732655125904378774UL]; - Vehicle_Handling_GetSuspensionForce = (delegate* unmanaged[Cdecl]) funcTable[14555500913880272506UL]; - Vehicle_Handling_GetSuspensionLowerLimit = (delegate* unmanaged[Cdecl]) funcTable[13810088143408445943UL]; - Vehicle_Handling_GetSuspensionRaise = (delegate* unmanaged[Cdecl]) funcTable[7280457455038904649UL]; - Vehicle_Handling_GetSuspensionReboundDamp = (delegate* unmanaged[Cdecl]) funcTable[10014586847579495440UL]; - Vehicle_Handling_GetSuspensionUpperLimit = (delegate* unmanaged[Cdecl]) funcTable[2064232965778437272UL]; - Vehicle_Handling_GetTractionBiasFront = (delegate* unmanaged[Cdecl]) funcTable[11385181389226018226UL]; - Vehicle_Handling_GetTractionBiasRear = (delegate* unmanaged[Cdecl]) funcTable[9594149276752837825UL]; - Vehicle_Handling_GetTractionCurveLateral = (delegate* unmanaged[Cdecl]) funcTable[534082592445893552UL]; - Vehicle_Handling_GetTractionCurveLateralRatio = (delegate* unmanaged[Cdecl]) funcTable[5626574420149731843UL]; - Vehicle_Handling_GetTractionCurveMax = (delegate* unmanaged[Cdecl]) funcTable[9832819786632703269UL]; - Vehicle_Handling_GetTractionCurveMaxRatio = (delegate* unmanaged[Cdecl]) funcTable[4601222526193131076UL]; - Vehicle_Handling_GetTractionCurveMin = (delegate* unmanaged[Cdecl]) funcTable[9840430606121666011UL]; - Vehicle_Handling_GetTractionCurveMinRatio = (delegate* unmanaged[Cdecl]) funcTable[7136027236258291374UL]; - Vehicle_Handling_GetTractionLossMult = (delegate* unmanaged[Cdecl]) funcTable[2248564621668422635UL]; - Vehicle_Handling_GetTractionSpringDeltaMax = (delegate* unmanaged[Cdecl]) funcTable[9757970846134686035UL]; - Vehicle_Handling_GetTractionSpringDeltaMaxRatio = (delegate* unmanaged[Cdecl]) funcTable[11316631929456207478UL]; - Vehicle_Handling_GetunkFloat1 = (delegate* unmanaged[Cdecl]) funcTable[4808133989544786907UL]; - Vehicle_Handling_GetunkFloat2 = (delegate* unmanaged[Cdecl]) funcTable[4808135089056415118UL]; - Vehicle_Handling_GetunkFloat4 = (delegate* unmanaged[Cdecl]) funcTable[4808137288079671540UL]; - Vehicle_Handling_GetunkFloat5 = (delegate* unmanaged[Cdecl]) funcTable[4808138387591299751UL]; - Vehicle_Handling_GetWeaponDamageMult = (delegate* unmanaged[Cdecl]) funcTable[12323651444162571717UL]; - Vehicle_Handling_SetAcceleration = (delegate* unmanaged[Cdecl]) funcTable[15106533278746961370UL]; - Vehicle_Handling_SetAntiRollBarBiasFront = (delegate* unmanaged[Cdecl]) funcTable[16638968082430627690UL]; - Vehicle_Handling_SetAntiRollBarBiasRear = (delegate* unmanaged[Cdecl]) funcTable[3274134675670177289UL]; - Vehicle_Handling_SetAntiRollBarForce = (delegate* unmanaged[Cdecl]) funcTable[13924267053015573933UL]; - Vehicle_Handling_SetBrakeBiasFront = (delegate* unmanaged[Cdecl]) funcTable[13158394514505254339UL]; - Vehicle_Handling_SetBrakeBiasRear = (delegate* unmanaged[Cdecl]) funcTable[15054984352340739674UL]; - Vehicle_Handling_SetBrakeForce = (delegate* unmanaged[Cdecl]) funcTable[18311355750023466244UL]; - Vehicle_Handling_SetCamberStiffness = (delegate* unmanaged[Cdecl]) funcTable[9234402101822179187UL]; - Vehicle_Handling_SetCentreOfMassOffset = (delegate* unmanaged[Cdecl]) funcTable[6452421273342482743UL]; - Vehicle_Handling_SetClutchChangeRateScaleDownShift = (delegate* unmanaged[Cdecl]) funcTable[18254580469174698855UL]; - Vehicle_Handling_SetClutchChangeRateScaleUpShift = (delegate* unmanaged[Cdecl]) funcTable[5076757107666434868UL]; - Vehicle_Handling_SetCollisionDamageMult = (delegate* unmanaged[Cdecl]) funcTable[2789843895875420361UL]; - Vehicle_Handling_SetDamageFlags = (delegate* unmanaged[Cdecl]) funcTable[18178148431073907246UL]; - Vehicle_Handling_SetDeformationDamageMult = (delegate* unmanaged[Cdecl]) funcTable[18182492532635156463UL]; - Vehicle_Handling_SetDownforceModifier = (delegate* unmanaged[Cdecl]) funcTable[15514642209212203804UL]; - Vehicle_Handling_SetDriveBiasFront = (delegate* unmanaged[Cdecl]) funcTable[4564559942385746402UL]; - Vehicle_Handling_SetDriveInertia = (delegate* unmanaged[Cdecl]) funcTable[7730126370537688552UL]; - Vehicle_Handling_SetDriveMaxFlatVel = (delegate* unmanaged[Cdecl]) funcTable[4591283739989300642UL]; - Vehicle_Handling_SetEngineDamageMult = (delegate* unmanaged[Cdecl]) funcTable[6624156074364677019UL]; - Vehicle_Handling_SetHandBrakeForce = (delegate* unmanaged[Cdecl]) funcTable[10705633238916026377UL]; - Vehicle_Handling_SetHandlingFlags = (delegate* unmanaged[Cdecl]) funcTable[9906600460569644270UL]; - Vehicle_Handling_SetInertiaMultiplier = (delegate* unmanaged[Cdecl]) funcTable[1816307337051823467UL]; - Vehicle_Handling_SetInitialDragCoeff = (delegate* unmanaged[Cdecl]) funcTable[4043275867962795821UL]; - Vehicle_Handling_SetInitialDriveForce = (delegate* unmanaged[Cdecl]) funcTable[15357625830756814433UL]; - Vehicle_Handling_SetInitialDriveGears = (delegate* unmanaged[Cdecl]) funcTable[9065355636246472242UL]; - Vehicle_Handling_SetInitialDriveMaxFlatVel = (delegate* unmanaged[Cdecl]) funcTable[281293266165798950UL]; - Vehicle_Handling_SetLowSpeedTractionLossMult = (delegate* unmanaged[Cdecl]) funcTable[8895965605036240854UL]; - Vehicle_Handling_SetMass = (delegate* unmanaged[Cdecl]) funcTable[7151825199476808906UL]; - Vehicle_Handling_SetModelFlags = (delegate* unmanaged[Cdecl]) funcTable[6056936688800253742UL]; - Vehicle_Handling_SetMonetaryValue = (delegate* unmanaged[Cdecl]) funcTable[15819996972218358546UL]; - Vehicle_Handling_SetOilVolume = (delegate* unmanaged[Cdecl]) funcTable[3549287771343907724UL]; - Vehicle_Handling_SetPercentSubmerged = (delegate* unmanaged[Cdecl]) funcTable[6477141810310072643UL]; - Vehicle_Handling_SetPercentSubmergedRatio = (delegate* unmanaged[Cdecl]) funcTable[15383388972106689350UL]; - Vehicle_Handling_SetPetrolTankVolume = (delegate* unmanaged[Cdecl]) funcTable[1497531346267417774UL]; - Vehicle_Handling_SetRollCentreHeightFront = (delegate* unmanaged[Cdecl]) funcTable[4524337672947469440UL]; - Vehicle_Handling_SetRollCentreHeightRear = (delegate* unmanaged[Cdecl]) funcTable[9581089564722294907UL]; - Vehicle_Handling_SetSeatOffsetDistX = (delegate* unmanaged[Cdecl]) funcTable[15635845820584287588UL]; - Vehicle_Handling_SetSeatOffsetDistY = (delegate* unmanaged[Cdecl]) funcTable[15635846920095915799UL]; - Vehicle_Handling_SetSeatOffsetDistZ = (delegate* unmanaged[Cdecl]) funcTable[15635848019607544010UL]; - Vehicle_Handling_SetSteeringLock = (delegate* unmanaged[Cdecl]) funcTable[10188586324588770150UL]; - Vehicle_Handling_SetSteeringLockRatio = (delegate* unmanaged[Cdecl]) funcTable[6273551755216734141UL]; - Vehicle_Handling_SetSuspensionBiasFront = (delegate* unmanaged[Cdecl]) funcTable[11177545997217526949UL]; - Vehicle_Handling_SetSuspensionBiasRear = (delegate* unmanaged[Cdecl]) funcTable[16305748508626481800UL]; - Vehicle_Handling_SetSuspensionCompDamp = (delegate* unmanaged[Cdecl]) funcTable[3593876208755398802UL]; - Vehicle_Handling_SetSuspensionForce = (delegate* unmanaged[Cdecl]) funcTable[5286513994799631766UL]; - Vehicle_Handling_SetSuspensionLowerLimit = (delegate* unmanaged[Cdecl]) funcTable[13687971358154974811UL]; - Vehicle_Handling_SetSuspensionRaise = (delegate* unmanaged[Cdecl]) funcTable[8302592036766463941UL]; - Vehicle_Handling_SetSuspensionReboundDamp = (delegate* unmanaged[Cdecl]) funcTable[10090490188791414684UL]; - Vehicle_Handling_SetSuspensionUpperLimit = (delegate* unmanaged[Cdecl]) funcTable[17916460604483963228UL]; - Vehicle_Handling_SetTractionBiasFront = (delegate* unmanaged[Cdecl]) funcTable[11277773691139858062UL]; - Vehicle_Handling_SetTractionBiasRear = (delegate* unmanaged[Cdecl]) funcTable[17464553981869049773UL]; - Vehicle_Handling_SetTractionCurveLateral = (delegate* unmanaged[Cdecl]) funcTable[3019713143471126604UL]; - Vehicle_Handling_SetTractionCurveLateralRatio = (delegate* unmanaged[Cdecl]) funcTable[1819845031926358855UL]; - Vehicle_Handling_SetTractionCurveMax = (delegate* unmanaged[Cdecl]) funcTable[10772241836561203273UL]; - Vehicle_Handling_SetTractionCurveMaxRatio = (delegate* unmanaged[Cdecl]) funcTable[15065622036225381472UL]; - Vehicle_Handling_SetTractionCurveMin = (delegate* unmanaged[Cdecl]) funcTable[10764661803397830439UL]; - Vehicle_Handling_SetTractionCurveMinRatio = (delegate* unmanaged[Cdecl]) funcTable[9038485735910964562UL]; - Vehicle_Handling_SetTractionLossMult = (delegate* unmanaged[Cdecl]) funcTable[2292760461423496175UL]; - Vehicle_Handling_SetTractionSpringDeltaMax = (delegate* unmanaged[Cdecl]) funcTable[12188740530353601983UL]; - Vehicle_Handling_SetTractionSpringDeltaMaxRatio = (delegate* unmanaged[Cdecl]) funcTable[2068724641429698938UL]; - Vehicle_Handling_SetunkFloat1 = (delegate* unmanaged[Cdecl]) funcTable[1821583616903019271UL]; - Vehicle_Handling_SetunkFloat2 = (delegate* unmanaged[Cdecl]) funcTable[1821584716414647482UL]; - Vehicle_Handling_SetunkFloat4 = (delegate* unmanaged[Cdecl]) funcTable[1821578119344878216UL]; - Vehicle_Handling_SetunkFloat5 = (delegate* unmanaged[Cdecl]) funcTable[1821579218856506427UL]; - Vehicle_Handling_SetWeaponDamageMult = (delegate* unmanaged[Cdecl]) funcTable[6185502032595814905UL]; - Vehicle_IsHandlingModified = (delegate* unmanaged[Cdecl]) funcTable[13271914989488024838UL]; - Vehicle_ResetDashboardLights = (delegate* unmanaged[Cdecl]) funcTable[10347186584210476912UL]; - Vehicle_ResetHandling = (delegate* unmanaged[Cdecl]) funcTable[8789889568362468306UL]; - Vehicle_SetAbsLightState = (delegate* unmanaged[Cdecl]) funcTable[9720329968455796217UL]; - Vehicle_SetBatteryLightState = (delegate* unmanaged[Cdecl]) funcTable[6265377987717374872UL]; - Vehicle_SetEngineLightState = (delegate* unmanaged[Cdecl]) funcTable[7196701746429391243UL]; - Vehicle_SetEngineTemperature = (delegate* unmanaged[Cdecl]) funcTable[1548276320594586840UL]; - Vehicle_SetFuelLevel = (delegate* unmanaged[Cdecl]) funcTable[12489292962874585114UL]; - Vehicle_SetGear = (delegate* unmanaged[Cdecl]) funcTable[18234704538353625523UL]; - Vehicle_SetIndicatorLights = (delegate* unmanaged[Cdecl]) funcTable[14417244985087537000UL]; - Vehicle_SetMaxGear = (delegate* unmanaged[Cdecl]) funcTable[17066336397728873081UL]; - Vehicle_SetOilLevel = (delegate* unmanaged[Cdecl]) funcTable[10946448823261225590UL]; - Vehicle_SetOilLightState = (delegate* unmanaged[Cdecl]) funcTable[14482522476363790265UL]; - Vehicle_SetPetrolLightState = (delegate* unmanaged[Cdecl]) funcTable[953227185363569571UL]; - WeaponData_GetAccuracySpread = (delegate* unmanaged[Cdecl]) funcTable[6458291939687526764UL]; - WeaponData_GetAnimReloadRate = (delegate* unmanaged[Cdecl]) funcTable[12096121937914309204UL]; - WeaponData_GetClipSize = (delegate* unmanaged[Cdecl]) funcTable[7560945065168273249UL]; - WeaponData_GetDamage = (delegate* unmanaged[Cdecl]) funcTable[4924797105201757987UL]; - WeaponData_GetHeadshotDamageModifier = (delegate* unmanaged[Cdecl]) funcTable[11148147521706823012UL]; - WeaponData_GetLockOnRange = (delegate* unmanaged[Cdecl]) funcTable[8482855862564954785UL]; - WeaponData_GetModelHash = (delegate* unmanaged[Cdecl]) funcTable[8278072704993834323UL]; - WeaponData_GetNameHash = (delegate* unmanaged[Cdecl]) funcTable[13383509881679893265UL]; - WeaponData_GetPlayerDamageModifier = (delegate* unmanaged[Cdecl]) funcTable[6850449658572044547UL]; - WeaponData_GetRange = (delegate* unmanaged[Cdecl]) funcTable[15674881949419675123UL]; - WeaponData_GetRecoilAccuracyMax = (delegate* unmanaged[Cdecl]) funcTable[5516024233113413457UL]; - WeaponData_GetRecoilAccuracyToAllowHeadshotPlayer = (delegate* unmanaged[Cdecl]) funcTable[13726346651669483514UL]; - WeaponData_GetRecoilRecoveryRate = (delegate* unmanaged[Cdecl]) funcTable[11665202374263940677UL]; - WeaponData_GetRecoilShakeAmplitude = (delegate* unmanaged[Cdecl]) funcTable[8233583210732773759UL]; - WeaponData_GetTimeBetweenShots = (delegate* unmanaged[Cdecl]) funcTable[10261116904358114950UL]; - WeaponData_GetVehicleReloadTime = (delegate* unmanaged[Cdecl]) funcTable[16091036566678053054UL]; - WeaponData_SetAccuracySpread = (delegate* unmanaged[Cdecl]) funcTable[2613737423113370456UL]; - WeaponData_SetAnimReloadRate = (delegate* unmanaged[Cdecl]) funcTable[4915557895075279816UL]; - WeaponData_SetDamage = (delegate* unmanaged[Cdecl]) funcTable[17427083799982535623UL]; - WeaponData_SetHeadshotDamageModifier = (delegate* unmanaged[Cdecl]) funcTable[2355528396046901504UL]; - WeaponData_SetLockOnRange = (delegate* unmanaged[Cdecl]) funcTable[12045687920312066629UL]; - WeaponData_SetPlayerDamageModifier = (delegate* unmanaged[Cdecl]) funcTable[15300169018667300527UL]; - WeaponData_SetRange = (delegate* unmanaged[Cdecl]) funcTable[713592550431277335UL]; - WeaponData_SetRecoilAccuracyMax = (delegate* unmanaged[Cdecl]) funcTable[17114686518385801125UL]; - WeaponData_SetRecoilAccuracyToAllowHeadshotPlayer = (delegate* unmanaged[Cdecl]) funcTable[16236921157421742102UL]; - WeaponData_SetRecoilRecoveryRate = (delegate* unmanaged[Cdecl]) funcTable[7351012088533086369UL]; - WeaponData_SetRecoilShakeAmplitude = (delegate* unmanaged[Cdecl]) funcTable[17570987505440631811UL]; - WeaponData_SetVehicleReloadTime = (delegate* unmanaged[Cdecl]) funcTable[7198902818462088210UL]; - WebSocketClient_AddSubProtocol = (delegate* unmanaged[Cdecl]) funcTable[3961992883077581219UL]; - WebSocketClient_GetBaseObject = (delegate* unmanaged[Cdecl]) funcTable[14949720871466430310UL]; - WebSocketClient_GetPingInterval = (delegate* unmanaged[Cdecl]) funcTable[12773908850394117493UL]; - WebSocketClient_GetReadyState = (delegate* unmanaged[Cdecl]) funcTable[16026093225715483724UL]; - WebSocketClient_GetSubProtocols = (delegate* unmanaged[Cdecl]) funcTable[14734809972492421551UL]; - WebSocketClient_GetUrl = (delegate* unmanaged[Cdecl]) funcTable[9959653516838593909UL]; - WebSocketClient_IsAutoReconnect = (delegate* unmanaged[Cdecl]) funcTable[6298118548799262084UL]; - WebSocketClient_IsPerMessageDeflate = (delegate* unmanaged[Cdecl]) funcTable[3928425054427750161UL]; - WebSocketClient_Send_Binary = (delegate* unmanaged[Cdecl]) funcTable[7310308102899182334UL]; - WebSocketClient_Send_String = (delegate* unmanaged[Cdecl]) funcTable[2018807005983750854UL]; - WebSocketClient_SetAutoReconnect = (delegate* unmanaged[Cdecl]) funcTable[8537464875508100220UL]; - WebSocketClient_SetExtraHeader = (delegate* unmanaged[Cdecl]) funcTable[8894344070566607703UL]; - WebSocketClient_SetPerMessageDeflate = (delegate* unmanaged[Cdecl]) funcTable[2310711047425432521UL]; - WebSocketClient_SetPingInterval = (delegate* unmanaged[Cdecl]) funcTable[18336829373356940433UL]; - WebSocketClient_SetUrl = (delegate* unmanaged[Cdecl]) funcTable[12969001719297584385UL]; - WebSocketClient_Start = (delegate* unmanaged[Cdecl]) funcTable[17682468416515600732UL]; - WebSocketClient_Stop = (delegate* unmanaged[Cdecl]) funcTable[8800612367193848248UL]; - WebView_Focus = (delegate* unmanaged[Cdecl]) funcTable[11547922272787924519UL]; - WebView_GetBaseObject = (delegate* unmanaged[Cdecl]) funcTable[2968282708276401205UL]; - WebView_GetPosition = (delegate* unmanaged[Cdecl]) funcTable[9654887934276909256UL]; - WebView_GetSize = (delegate* unmanaged[Cdecl]) funcTable[11195384541242827434UL]; - WebView_GetUrl = (delegate* unmanaged[Cdecl]) funcTable[13560098099783634684UL]; - WebView_IsFocused = (delegate* unmanaged[Cdecl]) funcTable[245846713292397958UL]; - WebView_IsOverlay = (delegate* unmanaged[Cdecl]) funcTable[8799882357637942207UL]; - WebView_IsVisible = (delegate* unmanaged[Cdecl]) funcTable[12164031854344542229UL]; - WebView_SetExtraHeader = (delegate* unmanaged[Cdecl]) funcTable[15889823903084571218UL]; - WebView_SetIsVisible = (delegate* unmanaged[Cdecl]) funcTable[14291631713216556967UL]; - WebView_SetPosition = (delegate* unmanaged[Cdecl]) funcTable[12310068904464718844UL]; - WebView_SetSize = (delegate* unmanaged[Cdecl]) funcTable[8369301594100020598UL]; - WebView_SetUrl = (delegate* unmanaged[Cdecl]) funcTable[2862825641035231160UL]; - WebView_SetZoomLevel = (delegate* unmanaged[Cdecl]) funcTable[4109860120949142406UL]; - WebView_Unfocus = (delegate* unmanaged[Cdecl]) funcTable[238745989994911666UL]; - Win_GetTaskDialog = (delegate* unmanaged[Cdecl]) funcTable[3417173460843507503UL]; + if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true; + else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 10988236633214279111UL) Outdated = true; + Audio_AddOutput_Entity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9879036518735269522UL, Audio_AddOutput_EntityFallback); + Audio_AddOutput_ScriptId = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14116998947805478300UL, Audio_AddOutput_ScriptIdFallback); + Audio_GetBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6330360502401226894UL, Audio_GetBaseObjectFallback); + Audio_GetCategory = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12345892022413856728UL, Audio_GetCategoryFallback); + Audio_GetCurrentTime = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2944324482134975819UL, Audio_GetCurrentTimeFallback); + Audio_GetLooped = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10560005262055961188UL, Audio_GetLoopedFallback); + Audio_GetMaxTime = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5963004639906097584UL, Audio_GetMaxTimeFallback); + Audio_GetOutputs = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10960639574387403531UL, Audio_GetOutputsFallback); + Audio_GetSource = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12278705681242498405UL, Audio_GetSourceFallback); + Audio_GetVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8275612815502917842UL, Audio_GetVolumeFallback); + Audio_IsFrontendPlay = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 936635821185311219UL, Audio_IsFrontendPlayFallback); + Audio_IsPlaying = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14342104995157365387UL, Audio_IsPlayingFallback); + Audio_Pause = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 312129387563128742UL, Audio_PauseFallback); + Audio_Play = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18104521197990433214UL, Audio_PlayFallback); + Audio_RemoveOutput_Entity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7265503788671851963UL, Audio_RemoveOutput_EntityFallback); + Audio_RemoveOutput_ScriptId = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16157836184241443811UL, Audio_RemoveOutput_ScriptIdFallback); + Audio_Reset = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1881771096446693299UL, Audio_ResetFallback); + Audio_Seek = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11376704802141530478UL, Audio_SeekFallback); + Audio_SetCategory = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17618115768214791263UL, Audio_SetCategoryFallback); + Audio_SetLooped = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11197286000910319739UL, Audio_SetLoopedFallback); + Audio_SetSource = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1985919874242680186UL, Audio_SetSourceFallback); + Audio_SetVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12440427729460375257UL, Audio_SetVolumeFallback); + Blip_GetScriptID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16517785578451896264UL, Blip_GetScriptIDFallback); + Blip_IsRemote = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16853945182069856363UL, Blip_IsRemoteFallback); + Core_AddGXTText = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15861482869617048160UL, Core_AddGXTTextFallback); + Core_AreGameControlsEnabled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 332214446285856938UL, Core_AreGameControlsEnabledFallback); + Core_AreRmlControlsEnabled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6617672605820539119UL, Core_AreRmlControlsEnabledFallback); + Core_AreVoiceControlsEnabled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 787373906810962396UL, Core_AreVoiceControlsEnabledFallback); + Core_BeginScaleformMovieMethodMinimap = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16061113947833308071UL, Core_BeginScaleformMovieMethodMinimapFallback); + Core_ClearFocusOverride = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8870045277295379001UL, Core_ClearFocusOverrideFallback); + Core_ClearPedProp = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13130998754672555937UL, Core_ClearPedPropFallback); + Core_Client_CreateAreaBlip = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3880165778463767712UL, Core_Client_CreateAreaBlipFallback); + Core_Client_CreatePointBlip = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12509760085300417189UL, Core_Client_CreatePointBlipFallback); + Core_Client_CreateRadiusBlip = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5919598783936543582UL, Core_Client_CreateRadiusBlipFallback); + Core_Client_FileExists = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2755966381047025099UL, Core_Client_FileExistsFallback); + Core_Client_FileRead = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6889820282703247958UL, Core_Client_FileReadFallback); + Core_CopyToClipboard = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5818638619878077112UL, Core_CopyToClipboardFallback); + Core_CreateAudio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5780986328246794940UL, Core_CreateAudioFallback); + Core_CreateCheckpoint = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2492195885079699607UL, Core_CreateCheckpointFallback); + Core_CreateHttpClient = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11976854228488201775UL, Core_CreateHttpClientFallback); + Core_CreateObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6956786573334343028UL, Core_CreateObjectFallback); + Core_CreateRmlDocument = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17026352200116999522UL, Core_CreateRmlDocumentFallback); + Core_CreateWebsocketClient = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16866610409519012926UL, Core_CreateWebsocketClientFallback); + Core_CreateWebView = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9951699089018536554UL, Core_CreateWebViewFallback); + Core_CreateWebView3D = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15753124417806259319UL, Core_CreateWebView3DFallback); + Core_DeallocDiscordUser = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1212339219242517554UL, Core_DeallocDiscordUserFallback); + Core_Discord_GetOAuth2Token = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11971296438427190394UL, Core_Discord_GetOAuth2TokenFallback); + Core_DoesConfigFlagExist = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2905154853369701790UL, Core_DoesConfigFlagExistFallback); + Core_GetCamPos = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13815274607564352429UL, Core_GetCamPosFallback); + Core_GetClientPath = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10032718746164771334UL, Core_GetClientPathFallback); + Core_GetConfigFlag = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9388016697579829930UL, Core_GetConfigFlagFallback); + Core_GetCursorPos = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15134150969197995835UL, Core_GetCursorPosFallback); + Core_GetDiscordUser = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18034315400823009421UL, Core_GetDiscordUserFallback); + Core_GetFocusOverrideEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16108636330639358203UL, Core_GetFocusOverrideEntityFallback); + Core_GetFocusOverrideOffset = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14124476912621313487UL, Core_GetFocusOverrideOffsetFallback); + Core_GetFocusOverridePos = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10400898725559876700UL, Core_GetFocusOverridePosFallback); + Core_GetFPS = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15838077309260023251UL, Core_GetFPSFallback); + Core_GetGXTText = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16801614011390187646UL, Core_GetGXTTextFallback); + Core_GetHeadshotBase64 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5040479552600550005UL, Core_GetHeadshotBase64Fallback); + Core_GetLicenseHash = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10784782962609535909UL, Core_GetLicenseHashFallback); + Core_GetLocale = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6468969374274395248UL, Core_GetLocaleFallback); + Core_GetLocalMeta = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15640072761507866309UL, Core_GetLocalMetaFallback); + Core_GetMapZoomDataByAlias = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2945049114999400896UL, Core_GetMapZoomDataByAliasFallback); + Core_GetMsPerGameMinute = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12789007219848936500UL, Core_GetMsPerGameMinuteFallback); + Core_GetObjects = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12780127882459247882UL, Core_GetObjectsFallback); + Core_GetPedBonePos = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9678094278922411472UL, Core_GetPedBonePosFallback); + Core_GetPermissionState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6070013237365852957UL, Core_GetPermissionStateFallback); + Core_GetPing = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17183361268059997356UL, Core_GetPingFallback); + Core_GetScreenResolution = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16078537130538515891UL, Core_GetScreenResolutionFallback); + Core_GetServerIp = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1389091625205062844UL, Core_GetServerIpFallback); + Core_GetServerPort = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14148467334937601992UL, Core_GetServerPortFallback); + Core_GetStatBool = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4132285709171755304UL, Core_GetStatBoolFallback); + Core_GetStatData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 311843349031918009UL, Core_GetStatDataFallback); + Core_GetStatFloat = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 175428875067811253UL, Core_GetStatFloatFallback); + Core_GetStatInt = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14081919868345197535UL, Core_GetStatIntFallback); + Core_GetStatLong = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18038285482496731165UL, Core_GetStatLongFallback); + Core_GetStatString = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11498372026862319408UL, Core_GetStatStringFallback); + Core_GetStatType = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2950339715084715443UL, Core_GetStatTypeFallback); + Core_GetStatUInt16 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6152251698478014800UL, Core_GetStatUInt16Fallback); + Core_GetStatUInt32 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17019346626521204164UL, Core_GetStatUInt32Fallback); + Core_GetStatUInt64 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11902544171987303902UL, Core_GetStatUInt64Fallback); + Core_GetStatUInt8 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14377981926026585630UL, Core_GetStatUInt8Fallback); + Core_GetTotalPacketsLost = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6512224235646012609UL, Core_GetTotalPacketsLostFallback); + Core_GetTotalPacketsSent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16154816553672886942UL, Core_GetTotalPacketsSentFallback); + Core_GetVoiceActivationKey = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2249875648683273533UL, Core_GetVoiceActivationKeyFallback); + Core_GetVoiceInputMuted = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14294729290243559040UL, Core_GetVoiceInputMutedFallback); + Core_GetWorldObjects = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18414288505939983172UL, Core_GetWorldObjectsFallback); + Core_HasLocalMeta = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9239396081375157170UL, Core_HasLocalMetaFallback); + Core_IsCamFrozen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11416637200173234902UL, Core_IsCamFrozenFallback); + Core_IsConsoleOpen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 853721528952962006UL, Core_IsConsoleOpenFallback); + Core_IsCursorVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5868453964529506584UL, Core_IsCursorVisibleFallback); + Core_IsFocusOverriden = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18011869490521432431UL, Core_IsFocusOverridenFallback); + Core_IsGameFocused = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5897797979124897124UL, Core_IsGameFocusedFallback); + Core_IsInStreamerMode = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11592577439059234246UL, Core_IsInStreamerModeFallback); + Core_IsKeyDown = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 95870224445067735UL, Core_IsKeyDownFallback); + Core_IsKeyToggled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5811391940054436855UL, Core_IsKeyToggledFallback); + Core_IsMenuOpened = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6801040455860092307UL, Core_IsMenuOpenedFallback); + Core_IsPointOnScreen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9053921873104901604UL, Core_IsPointOnScreenFallback); + Core_IsTextureExistInArchetype = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5487028108265672799UL, Core_IsTextureExistInArchetypeFallback); + Core_IsVoiceActivityInputEnabled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4433142925114007365UL, Core_IsVoiceActivityInputEnabledFallback); + Core_LoadDefaultIpls = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17184217455720907957UL, Core_LoadDefaultIplsFallback); + Core_LoadModel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12272171669941913364UL, Core_LoadModelFallback); + Core_LoadModelAsync = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9589250181503294824UL, Core_LoadModelAsyncFallback); + Core_LoadRmlFont = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17080520873501735033UL, Core_LoadRmlFontFallback); + Core_LoadYtyp = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9006970651286241104UL, Core_LoadYtypFallback); + Core_OverrideFocusEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11543552066785919265UL, Core_OverrideFocusEntityFallback); + Core_OverrideFocusPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15255809094076439747UL, Core_OverrideFocusPositionFallback); + Core_RemoveGXTText = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2950682702415179672UL, Core_RemoveGXTTextFallback); + Core_RemoveIpl = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3186817815537256556UL, Core_RemoveIplFallback); + Core_RequestIpl = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6993510006268976715UL, Core_RequestIplFallback); + Core_ResetAllMapZoomData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 664982279299386907UL, Core_ResetAllMapZoomDataFallback); + Core_ResetMapZoomData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12948735896839739671UL, Core_ResetMapZoomDataFallback); + Core_ResetStat = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5460369299538905850UL, Core_ResetStatFallback); + Core_ScreenToWorld = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15701563360488661578UL, Core_ScreenToWorldFallback); + Core_SetCamFrozen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2415100583194488559UL, Core_SetCamFrozenFallback); + Core_SetConfigFlag = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9549326506872223025UL, Core_SetConfigFlagFallback); + Core_SetCursorPos = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9986862625405376281UL, Core_SetCursorPosFallback); + Core_SetMinimapComponentPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14327556077081423510UL, Core_SetMinimapComponentPositionFallback); + Core_SetMinimapIsRectangle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16400827921977308918UL, Core_SetMinimapIsRectangleFallback); + Core_SetMsPerGameMinute = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18167344434001544403UL, Core_SetMsPerGameMinuteFallback); + Core_SetPedDlcClothes = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9421218499029934377UL, Core_SetPedDlcClothesFallback); + Core_SetPedDlcProp = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18355053040011203830UL, Core_SetPedDlcPropFallback); + Core_SetRotationVelocity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6025325608795024645UL, Core_SetRotationVelocityFallback); + Core_SetStatBool = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5976505749163784383UL, Core_SetStatBoolFallback); + Core_SetStatFloat = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17910078615237601616UL, Core_SetStatFloatFallback); + Core_SetStatInt = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7586687973544236922UL, Core_SetStatIntFallback); + Core_SetStatLong = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 966754007191809072UL, Core_SetStatLongFallback); + Core_SetStatString = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7897642741297771571UL, Core_SetStatStringFallback); + Core_SetStatUInt16 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3853551070927598127UL, Core_SetStatUInt16Fallback); + Core_SetStatUInt32 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12531864998990370835UL, Core_SetStatUInt32Fallback); + Core_SetStatUInt64 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1883057044483778445UL, Core_SetStatUInt64Fallback); + Core_SetStatUInt8 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15051718600062446893UL, Core_SetStatUInt8Fallback); + Core_SetVoiceInputMuted = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7814638701493567231UL, Core_SetVoiceInputMutedFallback); + Core_SetWatermarkPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7934747004301392615UL, Core_SetWatermarkPositionFallback); + Core_SetWeatherCycle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16585286735482336540UL, Core_SetWeatherCycleFallback); + Core_SetWeatherSyncActive = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13045279996168078519UL, Core_SetWeatherSyncActiveFallback); + Core_ShowCursor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 116504442046363049UL, Core_ShowCursorFallback); + Core_StringToSHA256 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12026527936481267742UL, Core_StringToSHA256Fallback); + Core_TakeScreenshot = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3114386706331256143UL, Core_TakeScreenshotFallback); + Core_TakeScreenshotGameOnly = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9005944037868881587UL, Core_TakeScreenshotGameOnlyFallback); + Core_ToggleGameControls = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12189407258528336173UL, Core_ToggleGameControlsFallback); + Core_ToggleRmlControls = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6777794076841720469UL, Core_ToggleRmlControlsFallback); + Core_ToggleVoiceControls = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9233489201974974422UL, Core_ToggleVoiceControlsFallback); + Core_TriggerServerEvent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4092140335578989631UL, Core_TriggerServerEventFallback); + Core_TriggerWebViewEvent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3268039739443301173UL, Core_TriggerWebViewEventFallback); + Core_UnloadYtyp = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17753040748478874447UL, Core_UnloadYtypFallback); + Core_WorldToScreen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5389506501733691988UL, Core_WorldToScreenFallback); + Entity_GetScriptID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12438992660215991189UL, Entity_GetScriptIDFallback); + Event_SetAnyResourceErrorDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14079997901958077241UL, Event_SetAnyResourceErrorDelegateFallback); + Event_SetAnyResourceStartDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18259284189737259993UL, Event_SetAnyResourceStartDelegateFallback); + Event_SetAnyResourceStopDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13707820718504089625UL, Event_SetAnyResourceStopDelegateFallback); + Event_SetClientEventDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8284770729125093177UL, Event_SetClientEventDelegateFallback); + Event_SetConnectionCompleteDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12310767706503758111UL, Event_SetConnectionCompleteDelegateFallback); + Event_SetConsoleCommandDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11736526557039894433UL, Event_SetConsoleCommandDelegateFallback); + Event_SetCreateAudioDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4811795149898118457UL, Event_SetCreateAudioDelegateFallback); + Event_SetCreateBlipDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2383857916893001375UL, Event_SetCreateBlipDelegateFallback); + Event_SetCreateCheckpointDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9953884864166102937UL, Event_SetCreateCheckpointDelegateFallback); + Event_SetCreateHttpClientDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8661010150764781279UL, Event_SetCreateHttpClientDelegateFallback); + Event_SetCreateObjectDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2444689738097081331UL, Event_SetCreateObjectDelegateFallback); + Event_SetCreatePlayerDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5093871054905289947UL, Event_SetCreatePlayerDelegateFallback); + Event_SetCreateRmlDocumentDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8342662956272520745UL, Event_SetCreateRmlDocumentDelegateFallback); + Event_SetCreateRmlElementDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16534909662450648211UL, Event_SetCreateRmlElementDelegateFallback); + Event_SetCreateVehicleDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15470395866513689485UL, Event_SetCreateVehicleDelegateFallback); + Event_SetCreateWebSocketClientDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 966125284939189405UL, Event_SetCreateWebSocketClientDelegateFallback); + Event_SetCreateWebViewDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4915496630983736761UL, Event_SetCreateWebViewDelegateFallback); + Event_SetGameEntityCreateDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8846162864874241135UL, Event_SetGameEntityCreateDelegateFallback); + Event_SetGameEntityDestroyDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16291703028607344173UL, Event_SetGameEntityDestroyDelegateFallback); + Event_SetGlobalMetaChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 263634197021329745UL, Event_SetGlobalMetaChangeDelegateFallback); + Event_SetGlobalSyncedMetaChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3897147411585328099UL, Event_SetGlobalSyncedMetaChangeDelegateFallback); + Event_SetKeyDownDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9792688891158114141UL, Event_SetKeyDownDelegateFallback); + Event_SetKeyUpDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13013609938360144345UL, Event_SetKeyUpDelegateFallback); + Event_SetLocalMetaChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1555813148561817401UL, Event_SetLocalMetaChangeDelegateFallback); + Event_SetNetOwnerChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15651483423859541657UL, Event_SetNetOwnerChangeDelegateFallback); + Event_SetPlayerChangeAnimationDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1013031841840963141UL, Event_SetPlayerChangeAnimationDelegateFallback); + Event_SetPlayerChangeInteriorDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10641081887455190199UL, Event_SetPlayerChangeInteriorDelegateFallback); + Event_SetPlayerChangeVehicleSeatDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2849447755791784577UL, Event_SetPlayerChangeVehicleSeatDelegateFallback); + Event_SetPlayerDisconnectDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11526105887646755055UL, Event_SetPlayerDisconnectDelegateFallback); + Event_SetPlayerEnterVehicleDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16259534399403863387UL, Event_SetPlayerEnterVehicleDelegateFallback); + Event_SetPlayerLeaveVehicleDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10354256863799375649UL, Event_SetPlayerLeaveVehicleDelegateFallback); + Event_SetPlayerSpawnDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2502988276907442605UL, Event_SetPlayerSpawnDelegateFallback); + Event_SetPlayerWeaponChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5096554163307275927UL, Event_SetPlayerWeaponChangeDelegateFallback); + Event_SetPlayerWeaponShootDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12142428092035142689UL, Event_SetPlayerWeaponShootDelegateFallback); + Event_SetRemoveAudioDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1751684292115242169UL, Event_SetRemoveAudioDelegateFallback); + Event_SetRemoveBlipDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9369264467503520159UL, Event_SetRemoveBlipDelegateFallback); + Event_SetRemoveCheckpointDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7682690007362552345UL, Event_SetRemoveCheckpointDelegateFallback); + Event_SetRemoveEntityDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 729233064584144555UL, Event_SetRemoveEntityDelegateFallback); + Event_SetRemoveHttpClientDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12344875743007094983UL, Event_SetRemoveHttpClientDelegateFallback); + Event_SetRemoveObjectDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12310396300337329363UL, Event_SetRemoveObjectDelegateFallback); + Event_SetRemovePlayerDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13760190650054167487UL, Event_SetRemovePlayerDelegateFallback); + Event_SetRemoveRmlDocumentDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6728247303976044345UL, Event_SetRemoveRmlDocumentDelegateFallback); + Event_SetRemoveRmlElementDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5264189053177093943UL, Event_SetRemoveRmlElementDelegateFallback); + Event_SetRemoveVehicleDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10892515836379989057UL, Event_SetRemoveVehicleDelegateFallback); + Event_SetRemoveWebSocketClientDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13939862339008448305UL, Event_SetRemoveWebSocketClientDelegateFallback); + Event_SetRemoveWebViewDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16066040165060624257UL, Event_SetRemoveWebViewDelegateFallback); + Event_SetRmlEventDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1513529985252499227UL, Event_SetRmlEventDelegateFallback); + Event_SetServerEventDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5521055548998327457UL, Event_SetServerEventDelegateFallback); + Event_SetStreamSyncedMetaChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8576321635222028243UL, Event_SetStreamSyncedMetaChangeDelegateFallback); + Event_SetSyncedMetaChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12745100726667735891UL, Event_SetSyncedMetaChangeDelegateFallback); + Event_SetTaskChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11607888672861240667UL, Event_SetTaskChangeDelegateFallback); + Event_SetTickDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6297655192007422547UL, Event_SetTickDelegateFallback); + Event_SetWeaponDamageDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3915432127661349363UL, Event_SetWeaponDamageDelegateFallback); + Event_SetWebSocketEventDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1607737297081958503UL, Event_SetWebSocketEventDelegateFallback); + Event_SetWebViewEventDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12568421593610200155UL, Event_SetWebViewEventDelegateFallback); + Event_SetWindowFocusChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3313131202173863273UL, Event_SetWindowFocusChangeDelegateFallback); + Event_SetWindowResolutionChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15282055500069881033UL, Event_SetWindowResolutionChangeDelegateFallback); + FreeRmlElementArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14086618333811829142UL, FreeRmlElementArrayFallback); + GetNativeFuncTable = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15955613981878964089UL, GetNativeFuncTableFallback); + Handling_GetAcceleration = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13640121750592766571UL, Handling_GetAccelerationFallback); + Handling_GetAntiRollBarBiasFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6509087878150057559UL, Handling_GetAntiRollBarBiasFrontFallback); + Handling_GetAntiRollBarBiasRear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10256732486804859248UL, Handling_GetAntiRollBarBiasRearFallback); + Handling_GetAntiRollBarForce = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15070448398404561078UL, Handling_GetAntiRollBarForceFallback); + Handling_GetBrakeBiasFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12193334824673381544UL, Handling_GetBrakeBiasFrontFallback); + Handling_GetBrakeBiasRear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1311793400499101185UL, Handling_GetBrakeBiasRearFallback); + Handling_GetBrakeForce = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16077423409890630453UL, Handling_GetBrakeForceFallback); + Handling_GetCamberStiffness = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7034652040042312382UL, Handling_GetCamberStiffnessFallback); + Handling_GetCentreOfMassOffset = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9087734868325776496UL, Handling_GetCentreOfMassOffsetFallback); + Handling_GetClutchChangeRateScaleDownShift = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18110194879225217864UL, Handling_GetClutchChangeRateScaleDownShiftFallback); + Handling_GetClutchChangeRateScaleUpShift = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14867633031441795237UL, Handling_GetClutchChangeRateScaleUpShiftFallback); + Handling_GetCollisionDamageMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12867000272333939660UL, Handling_GetCollisionDamageMultFallback); + Handling_GetDamageFlags = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15564643496952804311UL, Handling_GetDamageFlagsFallback); + Handling_GetDeformationDamageMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5381538823265150070UL, Handling_GetDeformationDamageMultFallback); + Handling_GetDownforceModifier = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7829933718567089587UL, Handling_GetDownforceModifierFallback); + Handling_GetDriveBiasFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5342300288616537851UL, Handling_GetDriveBiasFrontFallback); + Handling_GetDriveInertia = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14153061510559409341UL, Handling_GetDriveInertiaFallback); + Handling_GetDriveMaxFlatVel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7459423795923006317UL, Handling_GetDriveMaxFlatVelFallback); + Handling_GetEngineDamageMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 496589732490112468UL, Handling_GetEngineDamageMultFallback); + Handling_GetHandBrakeForce = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6070053561112702062UL, Handling_GetHandBrakeForceFallback); + Handling_GetHandlingFlags = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6962542370431861347UL, Handling_GetHandlingFlagsFallback); + Handling_GetHandlingNameHash = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7903031557311169491UL, Handling_GetHandlingNameHashFallback); + Handling_GetInertiaMultiplier = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6225482181288706658UL, Handling_GetInertiaMultiplierFallback); + Handling_GetInitialDragCoeff = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10720335020863185538UL, Handling_GetInitialDragCoeffFallback); + Handling_GetInitialDriveForce = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2032569468200694716UL, Handling_GetInitialDriveForceFallback); + Handling_GetInitialDriveGears = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3477491608161757695UL, Handling_GetInitialDriveGearsFallback); + Handling_GetInitialDriveMaxFlatVel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14911638129270116483UL, Handling_GetInitialDriveMaxFlatVelFallback); + Handling_GetLowSpeedTractionLossMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3910172163486028031UL, Handling_GetLowSpeedTractionLossMultFallback); + Handling_GetMass = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16503753649195520827UL, Handling_GetMassFallback); + Handling_GetModelFlags = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16471152888163436925UL, Handling_GetModelFlagsFallback); + Handling_GetMonetaryValue = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15249223473075651523UL, Handling_GetMonetaryValueFallback); + Handling_GetOilVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15793792662665813751UL, Handling_GetOilVolumeFallback); + Handling_GetPercentSubmerged = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3162106568401648632UL, Handling_GetPercentSubmergedFallback); + Handling_GetPercentSubmergedRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14775477681684572161UL, Handling_GetPercentSubmergedRatioFallback); + Handling_GetPetrolTankVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9804426030471504335UL, Handling_GetPetrolTankVolumeFallback); + Handling_GetRollCentreHeightFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12195085171321915651UL, Handling_GetRollCentreHeightFrontFallback); + Handling_GetRollCentreHeightRear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11241408610602895836UL, Handling_GetRollCentreHeightRearFallback); + Handling_GetSeatOffsetDistX = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3042828230575818279UL, Handling_GetSeatOffsetDistXFallback); + Handling_GetSeatOffsetDistY = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16760108398390445714UL, Handling_GetSeatOffsetDistYFallback); + Handling_GetSeatOffsetDistZ = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6633475798662300569UL, Handling_GetSeatOffsetDistZFallback); + Handling_GetSteeringLock = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5769493266015753395UL, Handling_GetSteeringLockFallback); + Handling_GetSteeringLockRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13969835253681202000UL, Handling_GetSteeringLockRatioFallback); + Handling_GetSuspensionBiasFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13263749569856476492UL, Handling_GetSuspensionBiasFrontFallback); + Handling_GetSuspensionBiasRear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16486706265955324677UL, Handling_GetSuspensionBiasRearFallback); + Handling_GetSuspensionCompDamp = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11275793516157249723UL, Handling_GetSuspensionCompDampFallback); + Handling_GetSuspensionForce = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4725366036834847137UL, Handling_GetSuspensionForceFallback); + Handling_GetSuspensionLowerLimit = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2218754085154588696UL, Handling_GetSuspensionLowerLimitFallback); + Handling_GetSuspensionRaise = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6322519027849983332UL, Handling_GetSuspensionRaiseFallback); + Handling_GetSuspensionReboundDamp = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9970530249142124439UL, Handling_GetSuspensionReboundDampFallback); + Handling_GetSuspensionUpperLimit = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9712770424552208677UL, Handling_GetSuspensionUpperLimitFallback); + Handling_GetTractionBiasFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8208890300147464313UL, Handling_GetTractionBiasFrontFallback); + Handling_GetTractionBiasRear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 518028693101285054UL, Handling_GetTractionBiasRearFallback); + Handling_GetTractionCurveLateral = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16115188561501757109UL, Handling_GetTractionCurveLateralFallback); + Handling_GetTractionCurveLateralRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12796358647581644614UL, Handling_GetTractionCurveLateralRatioFallback); + Handling_GetTractionCurveMax = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17999502034314921050UL, Handling_GetTractionCurveMaxFallback); + Handling_GetTractionCurveMaxRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14850880836919503279UL, Handling_GetTractionCurveMaxRatioFallback); + Handling_GetTractionCurveMin = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1131939413563292152UL, Handling_GetTractionCurveMinFallback); + Handling_GetTractionCurveMinRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18223709290805191169UL, Handling_GetTractionCurveMinRatioFallback); + Handling_GetTractionLossMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11014941263668810732UL, Handling_GetTractionLossMultFallback); + Handling_GetTractionSpringDeltaMax = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12997318808710526924UL, Handling_GetTractionSpringDeltaMaxFallback); + Handling_GetTractionSpringDeltaMaxRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7706641570588997421UL, Handling_GetTractionSpringDeltaMaxRatioFallback); + Handling_GetunkFloat1 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15712892985873465694UL, Handling_GetunkFloat1Fallback); + Handling_GetunkFloat2 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8778495500291373909UL, Handling_GetunkFloat2Fallback); + Handling_GetunkFloat4 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16356297962238647527UL, Handling_GetunkFloat4Fallback); + Handling_GetunkFloat5 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4661719046437834322UL, Handling_GetunkFloat5Fallback); + Handling_GetWeaponDamageMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 277249662807444034UL, Handling_GetWeaponDamageMultFallback); + Handling_SetAcceleration = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16866255586563037390UL, Handling_SetAccelerationFallback); + Handling_SetAntiRollBarBiasFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9421920479908058850UL, Handling_SetAntiRollBarBiasFrontFallback); + Handling_SetAntiRollBarBiasRear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16105117954749420927UL, Handling_SetAntiRollBarBiasRearFallback); + Handling_SetAntiRollBarForce = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10250999986359269437UL, Handling_SetAntiRollBarForceFallback); + Handling_SetBrakeBiasFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17378707885284136007UL, Handling_SetBrakeBiasFrontFallback); + Handling_SetBrakeBiasRear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18388086088039249292UL, Handling_SetBrakeBiasRearFallback); + Handling_SetBrakeForce = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6278267294049833272UL, Handling_SetBrakeForceFallback); + Handling_SetCamberStiffness = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8006158683824150549UL, Handling_SetCamberStiffnessFallback); + Handling_SetCentreOfMassOffset = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 230584723392666224UL, Handling_SetCentreOfMassOffsetFallback); + Handling_SetClutchChangeRateScaleDownShift = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2154015959963480959UL, Handling_SetClutchChangeRateScaleDownShiftFallback); + Handling_SetClutchChangeRateScaleUpShift = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9012916550907508640UL, Handling_SetClutchChangeRateScaleUpShiftFallback); + Handling_SetCollisionDamageMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2861987634531657779UL, Handling_SetCollisionDamageMultFallback); + Handling_SetDamageFlags = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1408233360774057658UL, Handling_SetDamageFlagsFallback); + Handling_SetDeformationDamageMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10141919336511995253UL, Handling_SetDeformationDamageMultFallback); + Handling_SetDownforceModifier = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10480890064636847038UL, Handling_SetDownforceModifierFallback); + Handling_SetDriveBiasFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13201673460408288262UL, Handling_SetDriveBiasFrontFallback); + Handling_SetDriveInertia = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15611200483174743552UL, Handling_SetDriveInertiaFallback); + Handling_SetDriveMaxFlatVel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3861610181173130504UL, Handling_SetDriveMaxFlatVelFallback); + Handling_SetEngineDamageMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8781324928923140083UL, Handling_SetEngineDamageMultFallback); + Handling_SetHandBrakeForce = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7762839872036477605UL, Handling_SetHandBrakeForceFallback); + Handling_SetHandlingFlags = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3536265886880805678UL, Handling_SetHandlingFlagsFallback); + Handling_SetInertiaMultiplier = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13146875571840562122UL, Handling_SetInertiaMultiplierFallback); + Handling_SetInitialDragCoeff = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5576269511232614785UL, Handling_SetInitialDragCoeffFallback); + Handling_SetInitialDriveForce = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12390677840693118275UL, Handling_SetInitialDriveForceFallback); + Handling_SetInitialDriveGears = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10521816927365923002UL, Handling_SetInitialDriveGearsFallback); + Handling_SetInitialDriveMaxFlatVel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5271240803351310462UL, Handling_SetInitialDriveMaxFlatVelFallback); + Handling_SetLowSpeedTractionLossMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14304205891478132450UL, Handling_SetLowSpeedTractionLossMultFallback); + Handling_SetMass = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16520694489329105190UL, Handling_SetMassFallback); + Handling_SetModelFlags = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14495929787086383136UL, Handling_SetModelFlagsFallback); + Handling_SetMonetaryValue = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8625449591148959670UL, Handling_SetMonetaryValueFallback); + Handling_SetOilVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12030673134051984370UL, Handling_SetOilVolumeFallback); + Handling_SetPercentSubmerged = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13713342139114294543UL, Handling_SetPercentSubmergedFallback); + Handling_SetPercentSubmergedRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17282283658198254604UL, Handling_SetPercentSubmergedRatioFallback); + Handling_SetPetrolTankVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7763339297554302098UL, Handling_SetPetrolTankVolumeFallback); + Handling_SetRollCentreHeightFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17890615811903016862UL, Handling_SetRollCentreHeightFrontFallback); + Handling_SetRollCentreHeightRear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16676432685378347227UL, Handling_SetRollCentreHeightRearFallback); + Handling_SetSeatOffsetDistX = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2180310838557494490UL, Handling_SetSeatOffsetDistXFallback); + Handling_SetSeatOffsetDistY = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8562731924397751049UL, Handling_SetSeatOffsetDistYFallback); + Handling_SetSeatOffsetDistZ = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15289882413715294428UL, Handling_SetSeatOffsetDistZFallback); + Handling_SetSteeringLock = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12740843278827647086UL, Handling_SetSteeringLockFallback); + Handling_SetSteeringLockRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6803691727635975895UL, Handling_SetSteeringLockRatioFallback); + Handling_SetSuspensionBiasFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11639418090534943587UL, Handling_SetSuspensionBiasFrontFallback); + Handling_SetSuspensionBiasRear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1616664646841918808UL, Handling_SetSuspensionBiasRearFallback); + Handling_SetSuspensionCompDamp = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 422327979887670390UL, Handling_SetSuspensionCompDampFallback); + Handling_SetSuspensionForce = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12753752240219159964UL, Handling_SetSuspensionForceFallback); + Handling_SetSuspensionLowerLimit = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15616537274093301551UL, Handling_SetSuspensionLowerLimitFallback); + Handling_SetSuspensionRaise = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6439176005833759571UL, Handling_SetSuspensionRaiseFallback); + Handling_SetSuspensionReboundDamp = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13521637365833375026UL, Handling_SetSuspensionReboundDampFallback); + Handling_SetSuspensionUpperLimit = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8287121377107754360UL, Handling_SetSuspensionUpperLimitFallback); + Handling_SetTractionBiasFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3329439851428631524UL, Handling_SetTractionBiasFrontFallback); + Handling_SetTractionBiasRear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10770488584871025421UL, Handling_SetTractionBiasRearFallback); + Handling_SetTractionCurveLateral = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 222347075071495040UL, Handling_SetTractionCurveLateralFallback); + Handling_SetTractionCurveLateralRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5807432443172453565UL, Handling_SetTractionCurveLateralRatioFallback); + Handling_SetTractionCurveMax = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8378570435560866529UL, Handling_SetTractionCurveMaxFallback); + Handling_SetTractionCurveMaxRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10991704476147084906UL, Handling_SetTractionCurveMaxRatioFallback); + Handling_SetTractionCurveMin = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8408170480838006775UL, Handling_SetTractionCurveMinFallback); + Handling_SetTractionCurveMinRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5928252640960202372UL, Handling_SetTractionCurveMinRatioFallback); + Handling_SetTractionLossMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12791106940086909491UL, Handling_SetTractionLossMultFallback); + Handling_SetTractionSpringDeltaMax = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13427075510262679803UL, Handling_SetTractionSpringDeltaMaxFallback); + Handling_SetTractionSpringDeltaMaxRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15725739789188081296UL, Handling_SetTractionSpringDeltaMaxRatioFallback); + Handling_SetunkFloat1 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17085352889016025885UL, Handling_SetunkFloat1Fallback); + Handling_SetunkFloat2 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12067366790403314928UL, Handling_SetunkFloat2Fallback); + Handling_SetunkFloat4 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12575454135444746890UL, Handling_SetunkFloat4Fallback); + Handling_SetunkFloat5 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13881745711554294521UL, Handling_SetunkFloat5Fallback); + Handling_SetWeaponDamageMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2629584631090240089UL, Handling_SetWeaponDamageMultFallback); + HttpClient_Connect = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14518115896852316044UL, HttpClient_ConnectFallback); + HttpClient_Delete = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12738580200349269835UL, HttpClient_DeleteFallback); + HttpClient_Get = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9939859777425678379UL, HttpClient_GetFallback); + HttpClient_GetBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9733920421548981244UL, HttpClient_GetBaseObjectFallback); + HttpClient_GetExtraHeaders = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2324307793094272834UL, HttpClient_GetExtraHeadersFallback); + HttpClient_Head = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12853676315635395495UL, HttpClient_HeadFallback); + HttpClient_Options = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6917164239019746796UL, HttpClient_OptionsFallback); + HttpClient_Patch = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17492503413390795820UL, HttpClient_PatchFallback); + HttpClient_Post = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10115980172647901894UL, HttpClient_PostFallback); + HttpClient_Put = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8280976854604120523UL, HttpClient_PutFallback); + HttpClient_SetExtraHeader = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4939806300942583161UL, HttpClient_SetExtraHeaderFallback); + HttpClient_Trace = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12260251650657662947UL, HttpClient_TraceFallback); + LocalPlayer_GetCurrentAmmo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18043294013722431113UL, LocalPlayer_GetCurrentAmmoFallback); + LocalPlayer_GetCurrentWeaponHash = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10510537453292567897UL, LocalPlayer_GetCurrentWeaponHashFallback); + LocalPlayer_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11619807947618676643UL, LocalPlayer_GetIDFallback); + LocalPlayer_GetMaxStamina = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5236676524679058301UL, LocalPlayer_GetMaxStaminaFallback); + LocalPlayer_GetPlayer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12486927465188645710UL, LocalPlayer_GetPlayerFallback); + LocalPlayer_GetStamina = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13452859435150190491UL, LocalPlayer_GetStaminaFallback); + LocalPlayer_GetWeaponAmmo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15876977288054249699UL, LocalPlayer_GetWeaponAmmoFallback); + LocalPlayer_GetWeaponComponents = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8289213042275148887UL, LocalPlayer_GetWeaponComponentsFallback); + LocalPlayer_GetWeapons = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16930194824602487393UL, LocalPlayer_GetWeaponsFallback); + LocalPlayer_HasWeapon = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7339081946549932096UL, LocalPlayer_HasWeaponFallback); + LocalPlayer_SetMaxStamina = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 311823464795673480UL, LocalPlayer_SetMaxStaminaFallback); + LocalPlayer_SetStamina = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15388475796254006774UL, LocalPlayer_SetStaminaFallback); + LocalStorage_Clear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5882434795069919583UL, LocalStorage_ClearFallback); + LocalStorage_DeleteKey = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9477816035737488937UL, LocalStorage_DeleteKeyFallback); + LocalStorage_GetKey = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13895693989408516536UL, LocalStorage_GetKeyFallback); + LocalStorage_Save = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15681738723671545643UL, LocalStorage_SaveFallback); + LocalStorage_SetKey = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9720785834619501975UL, LocalStorage_SetKeyFallback); + MapData_GetFScrollSpeed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5153918154812676518UL, MapData_GetFScrollSpeedFallback); + MapData_GetFZoomScale = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9310461554478426287UL, MapData_GetFZoomScaleFallback); + MapData_GetFZoomSpeed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13681270171346140740UL, MapData_GetFZoomSpeedFallback); + MapData_GetVTilesX = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4099196628772301299UL, MapData_GetVTilesXFallback); + MapData_GetVTilesY = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17185316530570654526UL, MapData_GetVTilesYFallback); + MapData_SetFScrollSpeed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14258735547233246213UL, MapData_SetFScrollSpeedFallback); + MapData_SetFZoomScale = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 449380527313245266UL, MapData_SetFZoomScaleFallback); + MapData_SetFZoomSpeed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2665336952407925027UL, MapData_SetFZoomSpeedFallback); + MapData_SetVTilesX = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7101748004939864958UL, MapData_SetVTilesXFallback); + MapData_SetVTilesY = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4990605972443241597UL, MapData_SetVTilesYFallback); + Object_IsRemote = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9871487800950929995UL, Object_IsRemoteFallback); + Player_GetLocal = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4153837117751475501UL, Player_GetLocalFallback); + Player_GetMicLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15449156962697427469UL, Player_GetMicLevelFallback); + Player_GetNonSpatialVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3333598534924196965UL, Player_GetNonSpatialVolumeFallback); + Player_GetSpatialVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1924883508304421034UL, Player_GetSpatialVolumeFallback); + Player_IsTalking = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2228995248668686637UL, Player_IsTalkingFallback); + Player_SetNonSpatialVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13836779891982146248UL, Player_SetNonSpatialVolumeFallback); + Player_SetSpatialVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2220752195777140849UL, Player_SetSpatialVolumeFallback); + Resource_FileExists = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7333169666764702095UL, Resource_FileExistsFallback); + Resource_GetFile = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6999624240602148408UL, Resource_GetFileFallback); + Resource_GetLocalStorage = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9724925408750062794UL, Resource_GetLocalStorageFallback); + RmlDocument_CreateElement = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8394251270352122332UL, RmlDocument_CreateElementFallback); + RmlDocument_CreateTextNode = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7438392858638256497UL, RmlDocument_CreateTextNodeFallback); + RmlDocument_GetBody = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3163186035077937721UL, RmlDocument_GetBodyFallback); + RmlDocument_GetRmlElement = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13477729632222101190UL, RmlDocument_GetRmlElementFallback); + RmlDocument_GetSourceUrl = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5192820878301116090UL, RmlDocument_GetSourceUrlFallback); + RmlDocument_GetTitle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17830148757283697382UL, RmlDocument_GetTitleFallback); + RmlDocument_Hide = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5659208679942729092UL, RmlDocument_HideFallback); + RmlDocument_IsModal = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4436463553685911346UL, RmlDocument_IsModalFallback); + RmlDocument_IsVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 592516437879461567UL, RmlDocument_IsVisibleFallback); + RmlDocument_SetTitle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13775656357343568853UL, RmlDocument_SetTitleFallback); + RmlDocument_Show = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15895391050437794405UL, RmlDocument_ShowFallback); + RmlDocument_Update = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7796044476597861513UL, RmlDocument_UpdateFallback); + RmlElement_AddClass = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 14077984434351350772UL, RmlElement_AddClassFallback); + RmlElement_AddPseudoClass = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 1170410331129093106UL, RmlElement_AddPseudoClassFallback); + RmlElement_AppendChild = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17728220528843273276UL, RmlElement_AppendChildFallback); + RmlElement_Blur = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 10971872640494644843UL, RmlElement_BlurFallback); + RmlElement_Click = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 16406947797483688126UL, RmlElement_ClickFallback); + RmlElement_Focus = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 13206000731161135546UL, RmlElement_FocusFallback); + RmlElement_GetAbsoluteLeft = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 3408210961803447022UL, RmlElement_GetAbsoluteLeftFallback); + RmlElement_GetAbsoluteOffset = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 327051398557117839UL, RmlElement_GetAbsoluteOffsetFallback); + RmlElement_GetAbsoluteTop = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 2282235996872357720UL, RmlElement_GetAbsoluteTopFallback); + RmlElement_GetAttribute = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 13502901951364202503UL, RmlElement_GetAttributeFallback); + RmlElement_GetAttributes = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 15583980586965112500UL, RmlElement_GetAttributesFallback); + RmlElement_GetBaseline = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 5149977555457732673UL, RmlElement_GetBaselineFallback); + RmlElement_GetBaseObject = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 3003380013478745532UL, RmlElement_GetBaseObjectFallback); + RmlElement_GetChildCount = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 3428605514501400321UL, RmlElement_GetChildCountFallback); + RmlElement_GetChildNodes = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 4953541695606006102UL, RmlElement_GetChildNodesFallback); + RmlElement_GetClassList = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 10706410199538950394UL, RmlElement_GetClassListFallback); + RmlElement_GetClientHeight = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 9373516720903454738UL, RmlElement_GetClientHeightFallback); + RmlElement_GetClientLeft = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 11545588651999170492UL, RmlElement_GetClientLeftFallback); + RmlElement_GetClientTop = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 65608241643298882UL, RmlElement_GetClientTopFallback); + RmlElement_GetClientWidth = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 5805331239560198965UL, RmlElement_GetClientWidthFallback); + RmlElement_GetClosest = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 8510717355100354031UL, RmlElement_GetClosestFallback); + RmlElement_GetContainingBlock = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 11181576916436475402UL, RmlElement_GetContainingBlockFallback); + RmlElement_GetElementById = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 11263720171078249248UL, RmlElement_GetElementByIdFallback); + RmlElement_GetElementsByClassName = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 16780072708039950983UL, RmlElement_GetElementsByClassNameFallback); + RmlElement_GetElementsByTagName = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 13630662056285368499UL, RmlElement_GetElementsByTagNameFallback); + RmlElement_GetFirstChild = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 6553458957728450615UL, RmlElement_GetFirstChildFallback); + RmlElement_GetFocusedElement = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 13041364075361654452UL, RmlElement_GetFocusedElementFallback); + RmlElement_GetId = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 1589340925639809505UL, RmlElement_GetIdFallback); + RmlElement_GetInnerRml = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 5158963891260214371UL, RmlElement_GetInnerRmlFallback); + RmlElement_GetLastChild = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 17352588287218438411UL, RmlElement_GetLastChildFallback); + RmlElement_GetLocalProperty = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 8073218222026259545UL, RmlElement_GetLocalPropertyFallback); + RmlElement_GetNextSibling = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 10669792900656173800UL, RmlElement_GetNextSiblingFallback); + RmlElement_GetOffsetHeight = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 5197551779775381022UL, RmlElement_GetOffsetHeightFallback); + RmlElement_GetOffsetLeft = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 580277859662252592UL, RmlElement_GetOffsetLeftFallback); + RmlElement_GetOffsetTop = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 2505271217405816062UL, RmlElement_GetOffsetTopFallback); + RmlElement_GetOffsetWidth = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 6536101004380487001UL, RmlElement_GetOffsetWidthFallback); + RmlElement_GetOwnerDocument = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 10162409526272546342UL, RmlElement_GetOwnerDocumentFallback); + RmlElement_GetParent = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 6319997825989852827UL, RmlElement_GetParentFallback); + RmlElement_GetPreviousSibling = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 7154920421729537988UL, RmlElement_GetPreviousSiblingFallback); + RmlElement_GetProperty = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 3116251059678318494UL, RmlElement_GetPropertyFallback); + RmlElement_GetPropertyAbsoluteValue = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 1472783352164812952UL, RmlElement_GetPropertyAbsoluteValueFallback); + RmlElement_GetPseudoClassList = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 5954717048838062752UL, RmlElement_GetPseudoClassListFallback); + RmlElement_GetRelativeOffset = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 11910576358229328046UL, RmlElement_GetRelativeOffsetFallback); + RmlElement_GetScrollHeight = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 9108383606206669496UL, RmlElement_GetScrollHeightFallback); + RmlElement_GetScrollLeft = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 18439136340342378146UL, RmlElement_GetScrollLeftFallback); + RmlElement_GetScrollTop = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 12769945018436172868UL, RmlElement_GetScrollTopFallback); + RmlElement_GetScrollWidth = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 13102543825718521159UL, RmlElement_GetScrollWidthFallback); + RmlElement_GetTagName = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 1247944464691079813UL, RmlElement_GetTagNameFallback); + RmlElement_GetZIndex = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 2741503180404494288UL, RmlElement_GetZIndexFallback); + RmlElement_HasAttribute = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 3060759057644054684UL, RmlElement_HasAttributeFallback); + RmlElement_HasChildren = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 13491878657537994760UL, RmlElement_HasChildrenFallback); + RmlElement_HasClass = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 12580015942621427048UL, RmlElement_HasClassFallback); + RmlElement_HasLocalProperty = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 11665463956728223934UL, RmlElement_HasLocalPropertyFallback); + RmlElement_HasProperty = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 3797843305932641739UL, RmlElement_HasPropertyFallback); + RmlElement_HasPseudoClass = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 15268086550568970510UL, RmlElement_HasPseudoClassFallback); + RmlElement_InsertBefore = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6666593390906623970UL, RmlElement_InsertBeforeFallback); + RmlElement_IsOwned = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 33208906076258982UL, RmlElement_IsOwnedFallback); + RmlElement_IsPointWithinElement = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 14201942279164433661UL, RmlElement_IsPointWithinElementFallback); + RmlElement_IsVisible = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 5664161720531195301UL, RmlElement_IsVisibleFallback); + RmlElement_QuerySelector = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 17064022902486360431UL, RmlElement_QuerySelectorFallback); + RmlElement_QuerySelectorAll = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 4516995876570774730UL, RmlElement_QuerySelectorAllFallback); + RmlElement_RemoveAttribute = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 2295473148079782678UL, RmlElement_RemoveAttributeFallback); + RmlElement_RemoveChild = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14657499505158151392UL, RmlElement_RemoveChildFallback); + RmlElement_RemoveClass = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 16647214568333197574UL, RmlElement_RemoveClassFallback); + RmlElement_RemoveProperty = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11285298952870955085UL, RmlElement_RemovePropertyFallback); + RmlElement_RemovePseudoClass = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 3288811469534978852UL, RmlElement_RemovePseudoClassFallback); + RmlElement_ReplaceChild = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8859753723526739098UL, RmlElement_ReplaceChildFallback); + RmlElement_ScrollIntoView = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 9747040310019678598UL, RmlElement_ScrollIntoViewFallback); + RmlElement_SetAttribute = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 9715739411149823680UL, RmlElement_SetAttributeFallback); + RmlElement_SetId = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 7350120607458974702UL, RmlElement_SetIdFallback); + RmlElement_SetInnerRml = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14124113203556569364UL, RmlElement_SetInnerRmlFallback); + RmlElement_SetOffset = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 17706736457461964530UL, RmlElement_SetOffsetFallback); + RmlElement_SetProperty = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 909974105310409725UL, RmlElement_SetPropertyFallback); + RmlElement_SetScrollLeft = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 6756114124150098233UL, RmlElement_SetScrollLeftFallback); + RmlElement_SetScrollTop = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 14066701879635486595UL, RmlElement_SetScrollTopFallback); + Vehicle_GetAbsLightState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8108528114312743590UL, Vehicle_GetAbsLightStateFallback); + Vehicle_GetBatteryLightState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3961634604730468941UL, Vehicle_GetBatteryLightStateFallback); + Vehicle_GetCurrentGear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 940949709699448452UL, Vehicle_GetCurrentGearFallback); + Vehicle_GetCurrentRPM = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17697023829474700250UL, Vehicle_GetCurrentRPMFallback); + Vehicle_GetEngineLightState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4800919791480938200UL, Vehicle_GetEngineLightStateFallback); + Vehicle_GetEngineTemperature = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14902444857320523076UL, Vehicle_GetEngineTemperatureFallback); + Vehicle_GetFuelLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6319189367492429230UL, Vehicle_GetFuelLevelFallback); + Vehicle_GetLightsIndicator = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5449705498281195827UL, Vehicle_GetLightsIndicatorFallback); + Vehicle_GetMaxGear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2653946512437825487UL, Vehicle_GetMaxGearFallback); + Vehicle_GetOccupiedSeatsCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13154968843890943206UL, Vehicle_GetOccupiedSeatsCountFallback); + Vehicle_GetOilLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18315887447397721786UL, Vehicle_GetOilLevelFallback); + Vehicle_GetOilLightState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8681931137170346790UL, Vehicle_GetOilLightStateFallback); + Vehicle_GetPetrolLightState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16925568246751944168UL, Vehicle_GetPetrolLightStateFallback); + Vehicle_GetSeatCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9710490073882806517UL, Vehicle_GetSeatCountFallback); + Vehicle_GetSpeedVector = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9716002269308828916UL, Vehicle_GetSpeedVectorFallback); + Vehicle_GetWheelCamber = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13303370691287708161UL, Vehicle_GetWheelCamberFallback); + Vehicle_GetWheelHeight = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1338791052731372072UL, Vehicle_GetWheelHeightFallback); + Vehicle_GetWheelRimRadius = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13382865868223894905UL, Vehicle_GetWheelRimRadiusFallback); + Vehicle_GetWheelSpeed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13422594452494959622UL, Vehicle_GetWheelSpeedFallback); + Vehicle_GetWheelSurfaceMaterial = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1528473557310374151UL, Vehicle_GetWheelSurfaceMaterialFallback); + Vehicle_GetWheelTrackWidth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 491499874893114118UL, Vehicle_GetWheelTrackWidthFallback); + Vehicle_GetWheelTyreRadius = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4686947598406478597UL, Vehicle_GetWheelTyreRadiusFallback); + Vehicle_GetWheelTyreWidth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10175809585401109345UL, Vehicle_GetWheelTyreWidthFallback); + Vehicle_Handling_GetAcceleration = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10078299693896381022UL, Vehicle_Handling_GetAccelerationFallback); + Vehicle_Handling_GetAntiRollBarBiasFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2075764309745505478UL, Vehicle_Handling_GetAntiRollBarBiasFrontFallback); + Vehicle_Handling_GetAntiRollBarBiasRear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5876755422566029523UL, Vehicle_Handling_GetAntiRollBarBiasRearFallback); + Vehicle_Handling_GetAntiRollBarForce = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16400280465546780439UL, Vehicle_Handling_GetAntiRollBarForceFallback); + Vehicle_Handling_GetBrakeBiasFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16036331434020158573UL, Vehicle_Handling_GetBrakeBiasFrontFallback); + Vehicle_Handling_GetBrakeBiasRear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11815864316444209286UL, Vehicle_Handling_GetBrakeBiasRearFallback); + Vehicle_Handling_GetBrakeForce = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9123059872480092544UL, Vehicle_Handling_GetBrakeForceFallback); + Vehicle_Handling_GetCamberStiffness = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13706415439184921653UL, Vehicle_Handling_GetCamberStiffnessFallback); + Vehicle_Handling_GetCentreOfMassOffset = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 544626726408311105UL, Vehicle_Handling_GetCentreOfMassOffsetFallback); + Vehicle_Handling_GetClutchChangeRateScaleDownShift = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17823698664766581057UL, Vehicle_Handling_GetClutchChangeRateScaleDownShiftFallback); + Vehicle_Handling_GetClutchChangeRateScaleUpShift = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1847766962336073256UL, Vehicle_Handling_GetClutchChangeRateScaleUpShiftFallback); + Vehicle_Handling_GetCollisionDamageMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3640187002251451195UL, Vehicle_Handling_GetCollisionDamageMultFallback); + Vehicle_Handling_GetDamageFlags = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15724336201653917130UL, Vehicle_Handling_GetDamageFlagsFallback); + Vehicle_Handling_GetDeformationDamageMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4224890290177597729UL, Vehicle_Handling_GetDeformationDamageMultFallback); + Vehicle_Handling_GetDownforceModifier = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8794621706814880064UL, Vehicle_Handling_GetDownforceModifierFallback); + Vehicle_Handling_GetDriveBiasFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10514767894163983614UL, Vehicle_Handling_GetDriveBiasFrontFallback); + Vehicle_Handling_GetDriveInertia = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13091197092896554364UL, Vehicle_Handling_GetDriveInertiaFallback); + Vehicle_Handling_GetDriveMaxFlatVel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17653040055654987534UL, Vehicle_Handling_GetDriveMaxFlatVelFallback); + Vehicle_Handling_GetEngineDamageMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13123198670756185941UL, Vehicle_Handling_GetEngineDamageMultFallback); + Vehicle_Handling_GetHandBrakeForce = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15071042556745097419UL, Vehicle_Handling_GetHandBrakeForceFallback); + Vehicle_Handling_GetHandlingFlags = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15712800079613684274UL, Vehicle_Handling_GetHandlingFlagsFallback); + Vehicle_Handling_GetHandlingNameHash = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9056058048184508796UL, Vehicle_Handling_GetHandlingNameHashFallback); + Vehicle_Handling_GetInertiaMultiplier = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 374180732922095341UL, Vehicle_Handling_GetInertiaMultiplierFallback); + Vehicle_Handling_GetInitialDragCoeff = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6069506253388365935UL, Vehicle_Handling_GetInitialDragCoeffFallback); + Vehicle_Handling_GetInitialDriveForce = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14207124342130964195UL, Vehicle_Handling_GetInitialDriveForceFallback); + Vehicle_Handling_GetInitialDriveGears = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7988604432980063790UL, Vehicle_Handling_GetInitialDriveGearsFallback); + Vehicle_Handling_GetInitialDriveMaxFlatVel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1869896813051298938UL, Vehicle_Handling_GetInitialDriveMaxFlatVelFallback); + Vehicle_Handling_GetLowSpeedTractionLossMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12245703430179167058UL, Vehicle_Handling_GetLowSpeedTractionLossMultFallback); + Vehicle_Handling_GetMass = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6108107448568242326UL, Vehicle_Handling_GetMassFallback); + Vehicle_Handling_GetModelFlags = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4933176887065087610UL, Vehicle_Handling_GetModelFlagsFallback); + Vehicle_Handling_GetMonetaryValue = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6663124450615589926UL, Vehicle_Handling_GetMonetaryValueFallback); + Vehicle_Handling_GetOilVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17728911957820472960UL, Vehicle_Handling_GetOilVolumeFallback); + Vehicle_Handling_GetPercentSubmerged = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10907127174707713317UL, Vehicle_Handling_GetPercentSubmergedFallback); + Vehicle_Handling_GetPercentSubmergedRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4328061774659836762UL, Vehicle_Handling_GetPercentSubmergedRatioFallback); + Vehicle_Handling_GetPetrolTankVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6982194366825608730UL, Vehicle_Handling_GetPetrolTankVolumeFallback); + Vehicle_Handling_GetRollCentreHeightFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14426028478326537196UL, Vehicle_Handling_GetRollCentreHeightFrontFallback); + Vehicle_Handling_GetRollCentreHeightRear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7815129605583621589UL, Vehicle_Handling_GetRollCentreHeightRearFallback); + Vehicle_Handling_GetSeatOffsetDistX = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1825976306734658816UL, Vehicle_Handling_GetSeatOffsetDistXFallback); + Vehicle_Handling_GetSeatOffsetDistY = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7378855169663253137UL, Vehicle_Handling_GetSeatOffsetDistYFallback); + Vehicle_Handling_GetSeatOffsetDistZ = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15048519683235294830UL, Vehicle_Handling_GetSeatOffsetDistZFallback); + Vehicle_Handling_GetSteeringLock = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15159407727398897994UL, Vehicle_Handling_GetSteeringLockFallback); + Vehicle_Handling_GetSteeringLockRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13507421085391188727UL, Vehicle_Handling_GetSteeringLockRatioFallback); + Vehicle_Handling_GetSuspensionBiasFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15563431338634229199UL, Vehicle_Handling_GetSuspensionBiasFrontFallback); + Vehicle_Handling_GetSuspensionBiasRear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7154917036451016252UL, Vehicle_Handling_GetSuspensionBiasRearFallback); + Vehicle_Handling_GetSuspensionCompDamp = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3573911048335423790UL, Vehicle_Handling_GetSuspensionCompDampFallback); + Vehicle_Handling_GetSuspensionForce = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12271198816022057866UL, Vehicle_Handling_GetSuspensionForceFallback); + Vehicle_Handling_GetSuspensionLowerLimit = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4961536539817484733UL, Vehicle_Handling_GetSuspensionLowerLimitFallback); + Vehicle_Handling_GetSuspensionRaise = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14436023266494160439UL, Vehicle_Handling_GetSuspensionRaiseFallback); + Vehicle_Handling_GetSuspensionReboundDamp = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2586446577883056672UL, Vehicle_Handling_GetSuspensionReboundDampFallback); + Vehicle_Handling_GetSuspensionUpperLimit = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2718011031566821432UL, Vehicle_Handling_GetSuspensionUpperLimitFallback); + Vehicle_Handling_GetTractionBiasFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14106527674446349874UL, Vehicle_Handling_GetTractionBiasFrontFallback); + Vehicle_Handling_GetTractionBiasRear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17296437853927048671UL, Vehicle_Handling_GetTractionBiasRearFallback); + Vehicle_Handling_GetTractionCurveLateral = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1653686489521659456UL, Vehicle_Handling_GetTractionCurveLateralFallback); + Vehicle_Handling_GetTractionCurveLateralRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3343113090641609713UL, Vehicle_Handling_GetTractionCurveLateralRatioFallback); + Vehicle_Handling_GetTractionCurveMax = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7785419357218432267UL, Vehicle_Handling_GetTractionCurveMaxFallback); + Vehicle_Handling_GetTractionCurveMaxRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18254558197957842428UL, Vehicle_Handling_GetTractionCurveMaxRatioFallback); + Vehicle_Handling_GetTractionCurveMin = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17588571315194933945UL, Vehicle_Handling_GetTractionCurveMinFallback); + Vehicle_Handling_GetTractionCurveMinRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2364488402618009974UL, Vehicle_Handling_GetTractionCurveMinRatioFallback); + Vehicle_Handling_GetTractionLossMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14744673056818120329UL, Vehicle_Handling_GetTractionLossMultFallback); + Vehicle_Handling_GetTractionSpringDeltaMax = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13815466131879173121UL, Vehicle_Handling_GetTractionSpringDeltaMaxFallback); + Vehicle_Handling_GetTractionSpringDeltaMaxRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13575487466046163342UL, Vehicle_Handling_GetTractionSpringDeltaMaxRatioFallback); + Vehicle_Handling_GetunkFloat1 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12743699742158836921UL, Vehicle_Handling_GetunkFloat1Fallback); + Vehicle_Handling_GetunkFloat2 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10423513342346289878UL, Vehicle_Handling_GetunkFloat2Fallback); + Vehicle_Handling_GetunkFloat4 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11893830950833771180UL, Vehicle_Handling_GetunkFloat4Fallback); + Vehicle_Handling_GetunkFloat5 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7652662052385596845UL, Vehicle_Handling_GetunkFloat5Fallback); + Vehicle_Handling_GetWeaponDamageMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11922787843029535275UL, Vehicle_Handling_GetWeaponDamageMultFallback); + Vehicle_Handling_SetAcceleration = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18029758670461994365UL, Vehicle_Handling_SetAccelerationFallback); + Vehicle_Handling_SetAntiRollBarBiasFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17130103214803834989UL, Vehicle_Handling_SetAntiRollBarBiasFrontFallback); + Vehicle_Handling_SetAntiRollBarBiasRear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2692497708077112726UL, Vehicle_Handling_SetAntiRollBarBiasRearFallback); + Vehicle_Handling_SetAntiRollBarForce = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18369044924651600610UL, Vehicle_Handling_SetAntiRollBarForceFallback); + Vehicle_Handling_SetBrakeBiasFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10582912406802465936UL, Vehicle_Handling_SetBrakeBiasFrontFallback); + Vehicle_Handling_SetBrakeBiasRear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5096516830878001661UL, Vehicle_Handling_SetBrakeBiasRearFallback); + Vehicle_Handling_SetBrakeForce = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15871848644311504543UL, Vehicle_Handling_SetBrakeForceFallback); + Vehicle_Handling_SetCamberStiffness = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12400001208957853600UL, Vehicle_Handling_SetCamberStiffnessFallback); + Vehicle_Handling_SetCentreOfMassOffset = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17994040563171180043UL, Vehicle_Handling_SetCentreOfMassOffsetFallback); + Vehicle_Handling_SetClutchChangeRateScaleDownShift = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10096237319592134284UL, Vehicle_Handling_SetClutchChangeRateScaleDownShiftFallback); + Vehicle_Handling_SetClutchChangeRateScaleUpShift = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13111595691801697903UL, Vehicle_Handling_SetClutchChangeRateScaleUpShiftFallback); + Vehicle_Handling_SetCollisionDamageMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6438939762459316822UL, Vehicle_Handling_SetCollisionDamageMultFallback); + Vehicle_Handling_SetDamageFlags = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3908725796662714889UL, Vehicle_Handling_SetDamageFlagsFallback); + Vehicle_Handling_SetDeformationDamageMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3715895871076668228UL, Vehicle_Handling_SetDeformationDamageMultFallback); + Vehicle_Handling_SetDownforceModifier = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14978721618745882503UL, Vehicle_Handling_SetDownforceModifierFallback); + Vehicle_Handling_SetDriveBiasFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15668539880874518677UL, Vehicle_Handling_SetDriveBiasFrontFallback); + Vehicle_Handling_SetDriveInertia = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10019280768018311739UL, Vehicle_Handling_SetDriveInertiaFallback); + Vehicle_Handling_SetDriveMaxFlatVel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1702635411438007893UL, Vehicle_Handling_SetDriveMaxFlatVelFallback); + Vehicle_Handling_SetEngineDamageMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17302007799028099256UL, Vehicle_Handling_SetEngineDamageMultFallback); + Vehicle_Handling_SetHandBrakeForce = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12276253478525626262UL, Vehicle_Handling_SetHandBrakeForceFallback); + Vehicle_Handling_SetHandlingFlags = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4597845088196659657UL, Vehicle_Handling_SetHandlingFlagsFallback); + Vehicle_Handling_SetInertiaMultiplier = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2157682978198906103UL, Vehicle_Handling_SetInertiaMultiplierFallback); + Vehicle_Handling_SetInitialDragCoeff = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15532896665185257570UL, Vehicle_Handling_SetInitialDragCoeffFallback); + Vehicle_Handling_SetInitialDriveForce = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18270808580206557790UL, Vehicle_Handling_SetInitialDriveForceFallback); + Vehicle_Handling_SetInitialDriveGears = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2325663906168656981UL, Vehicle_Handling_SetInitialDriveGearsFallback); + Vehicle_Handling_SetInitialDriveMaxFlatVel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4721735489012961441UL, Vehicle_Handling_SetInitialDriveMaxFlatVelFallback); + Vehicle_Handling_SetLowSpeedTractionLossMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1596211192320289009UL, Vehicle_Handling_SetLowSpeedTractionLossMultFallback); + Vehicle_Handling_SetMass = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15366979755955923021UL, Vehicle_Handling_SetMassFallback); + Vehicle_Handling_SetModelFlags = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8268986722826371337UL, Vehicle_Handling_SetModelFlagsFallback); + Vehicle_Handling_SetMonetaryValue = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7656294773977229045UL, Vehicle_Handling_SetMonetaryValueFallback); + Vehicle_Handling_SetOilVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12136538940531187671UL, Vehicle_Handling_SetOilVolumeFallback); + Vehicle_Handling_SetPercentSubmerged = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14971386103610270736UL, Vehicle_Handling_SetPercentSubmergedFallback); + Vehicle_Handling_SetPercentSubmergedRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15496690316921237057UL, Vehicle_Handling_SetPercentSubmergedRatioFallback); + Vehicle_Handling_SetPetrolTankVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17920045702689580089UL, Vehicle_Handling_SetPetrolTankVolumeFallback); + Vehicle_Handling_SetRollCentreHeightFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 191200897835472739UL, Vehicle_Handling_SetRollCentreHeightFrontFallback); + Vehicle_Handling_SetRollCentreHeightRear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2584973866369014424UL, Vehicle_Handling_SetRollCentreHeightRearFallback); + Vehicle_Handling_SetSeatOffsetDistX = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11337807014342450303UL, Vehicle_Handling_SetSeatOffsetDistXFallback); + Vehicle_Handling_SetSeatOffsetDistY = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15894164694500761500UL, Vehicle_Handling_SetSeatOffsetDistYFallback); + Vehicle_Handling_SetSeatOffsetDistZ = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4632458476507794509UL, Vehicle_Handling_SetSeatOffsetDistZFallback); + Vehicle_Handling_SetSteeringLock = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6250520021083522785UL, Vehicle_Handling_SetSteeringLockFallback); + Vehicle_Handling_SetSteeringLockRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6937651752435158290UL, Vehicle_Handling_SetSteeringLockRatioFallback); + Vehicle_Handling_SetSuspensionBiasFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18290438802755583722UL, Vehicle_Handling_SetSuspensionBiasFrontFallback); + Vehicle_Handling_SetSuspensionBiasRear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4312208500846030555UL, Vehicle_Handling_SetSuspensionBiasRearFallback); + Vehicle_Handling_SetSuspensionCompDamp = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11059815704258404773UL, Vehicle_Handling_SetSuspensionCompDampFallback); + Vehicle_Handling_SetSuspensionForce = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6634472175858969265UL, Vehicle_Handling_SetSuspensionForceFallback); + Vehicle_Handling_SetSuspensionLowerLimit = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6634371299852484728UL, Vehicle_Handling_SetSuspensionLowerLimitFallback); + Vehicle_Handling_SetSuspensionRaise = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11035317218716750346UL, Vehicle_Handling_SetSuspensionRaiseFallback); + Vehicle_Handling_SetSuspensionReboundDamp = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11919899368398657543UL, Vehicle_Handling_SetSuspensionReboundDampFallback); + Vehicle_Handling_SetSuspensionUpperLimit = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2974358477257940935UL, Vehicle_Handling_SetSuspensionUpperLimitFallback); + Vehicle_Handling_SetTractionBiasFront = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9161433281435000857UL, Vehicle_Handling_SetTractionBiasFrontFallback); + Vehicle_Handling_SetTractionBiasRear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1803398808846216418UL, Vehicle_Handling_SetTractionBiasRearFallback); + Vehicle_Handling_SetTractionCurveLateral = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1604394664419303831UL, Vehicle_Handling_SetTractionCurveLateralFallback); + Vehicle_Handling_SetTractionCurveLateralRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14846767552647138156UL, Vehicle_Handling_SetTractionCurveLateralRatioFallback); + Vehicle_Handling_SetTractionCurveMax = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17607728305469459926UL, Vehicle_Handling_SetTractionCurveMaxFallback); + Vehicle_Handling_SetTractionCurveMaxRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5678242342192068675UL, Vehicle_Handling_SetTractionCurveMaxRatioFallback); + Vehicle_Handling_SetTractionCurveMin = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17856754155531892556UL, Vehicle_Handling_SetTractionCurveMinFallback); + Vehicle_Handling_SetTractionCurveMinRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8350236606338904165UL, Vehicle_Handling_SetTractionCurveMinRatioFallback); + Vehicle_Handling_SetTractionLossMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11393576321966669636UL, Vehicle_Handling_SetTractionLossMultFallback); + Vehicle_Handling_SetTractionSpringDeltaMax = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7604256083538583668UL, Vehicle_Handling_SetTractionSpringDeltaMaxFallback); + Vehicle_Handling_SetTractionSpringDeltaMaxRatio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12403140303173876253UL, Vehicle_Handling_SetTractionSpringDeltaMaxRatioFallback); + Vehicle_Handling_SetunkFloat1 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10206269865034437676UL, Vehicle_Handling_SetunkFloat1Fallback); + Vehicle_Handling_SetunkFloat2 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3080507646262582877UL, Vehicle_Handling_SetunkFloat2Fallback); + Vehicle_Handling_SetunkFloat4 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7252291121552322267UL, Vehicle_Handling_SetunkFloat4Fallback); + Vehicle_Handling_SetunkFloat5 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7118045643471075160UL, Vehicle_Handling_SetunkFloat5Fallback); + Vehicle_Handling_SetWeaponDamageMult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12755205586862478630UL, Vehicle_Handling_SetWeaponDamageMultFallback); + Vehicle_IsHandlingModified = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7839453310356146623UL, Vehicle_IsHandlingModifiedFallback); + Vehicle_IsTaxiLightOn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4756907206915806650UL, Vehicle_IsTaxiLightOnFallback); + Vehicle_ResetDashboardLights = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2579542930706467116UL, Vehicle_ResetDashboardLightsFallback); + Vehicle_ResetHandling = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16908138174351619522UL, Vehicle_ResetHandlingFallback); + Vehicle_SetAbsLightState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4563279063364526693UL, Vehicle_SetAbsLightStateFallback); + Vehicle_SetBatteryLightState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2853437131811490624UL, Vehicle_SetBatteryLightStateFallback); + Vehicle_SetCurrentGear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12232454538624166963UL, Vehicle_SetCurrentGearFallback); + Vehicle_SetEngineLightState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15206512772388781191UL, Vehicle_SetEngineLightStateFallback); + Vehicle_SetEngineTemperature = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 347347259026240651UL, Vehicle_SetEngineTemperatureFallback); + Vehicle_SetFuelLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1181039797416690365UL, Vehicle_SetFuelLevelFallback); + Vehicle_SetLightsIndicator = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12348151689393422822UL, Vehicle_SetLightsIndicatorFallback); + Vehicle_SetMaxGear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4269579782367060642UL, Vehicle_SetMaxGearFallback); + Vehicle_SetOilLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5809609101227239569UL, Vehicle_SetOilLevelFallback); + Vehicle_SetOilLightState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17937666064672185253UL, Vehicle_SetOilLightStateFallback); + Vehicle_SetPetrolLightState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2675407408828596847UL, Vehicle_SetPetrolLightStateFallback); + Vehicle_SetWheelCamber = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10533830814607560700UL, Vehicle_SetWheelCamberFallback); + Vehicle_SetWheelHeight = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14037400183140364255UL, Vehicle_SetWheelHeightFallback); + Vehicle_SetWheelRimRadius = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3095801372631152772UL, Vehicle_SetWheelRimRadiusFallback); + Vehicle_SetWheelTrackWidth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2293924763385881861UL, Vehicle_SetWheelTrackWidthFallback); + Vehicle_SetWheelTyreRadius = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16643704314243471312UL, Vehicle_SetWheelTyreRadiusFallback); + Vehicle_SetWheelTyreWidth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1387113924672541868UL, Vehicle_SetWheelTyreWidthFallback); + Vehicle_ToggleTaxiLight = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4622127485385870092UL, Vehicle_ToggleTaxiLightFallback); + WeaponData_GetAccuracySpread = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12282797124788259414UL, WeaponData_GetAccuracySpreadFallback); + WeaponData_GetAnimReloadRate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3872485645449808126UL, WeaponData_GetAnimReloadRateFallback); + WeaponData_GetClipSize = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16005079481042718507UL, WeaponData_GetClipSizeFallback); + WeaponData_GetDamage = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12259856190095492527UL, WeaponData_GetDamageFallback); + WeaponData_GetHeadshotDamageModifier = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9285280070621118862UL, WeaponData_GetHeadshotDamageModifierFallback); + WeaponData_GetLockOnRange = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15403499347943624825UL, WeaponData_GetLockOnRangeFallback); + WeaponData_GetModelHash = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11234559899732648733UL, WeaponData_GetModelHashFallback); + WeaponData_GetNameHash = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9846369368372041755UL, WeaponData_GetNameHashFallback); + WeaponData_GetPlayerDamageModifier = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5418586889827318863UL, WeaponData_GetPlayerDamageModifierFallback); + WeaponData_GetRange = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11435716851646181823UL, WeaponData_GetRangeFallback); + WeaponData_GetRecoilAccuracyMax = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15082342643853536041UL, WeaponData_GetRecoilAccuracyMaxFallback); + WeaponData_GetRecoilAccuracyToAllowHeadshotPlayer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8267723648257335352UL, WeaponData_GetRecoilAccuracyToAllowHeadshotPlayerFallback); + WeaponData_GetRecoilRecoveryRate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4192514354217953357UL, WeaponData_GetRecoilRecoveryRateFallback); + WeaponData_GetRecoilShakeAmplitude = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9480023621281612395UL, WeaponData_GetRecoilShakeAmplitudeFallback); + WeaponData_GetTimeBetweenShots = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5640116596268350196UL, WeaponData_GetTimeBetweenShotsFallback); + WeaponData_GetVehicleReloadTime = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11178647132814566028UL, WeaponData_GetVehicleReloadTimeFallback); + WeaponData_SetAccuracySpread = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14821451850297800757UL, WeaponData_SetAccuracySpreadFallback); + WeaponData_SetAnimReloadRate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1534659069629753541UL, WeaponData_SetAnimReloadRateFallback); + WeaponData_SetDamage = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3582991520049763058UL, WeaponData_SetDamageFallback); + WeaponData_SetHeadshotDamageModifier = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14513242844091195741UL, WeaponData_SetHeadshotDamageModifierFallback); + WeaponData_SetLockOnRange = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3815011183285354604UL, WeaponData_SetLockOnRangeFallback); + WeaponData_SetPlayerDamageModifier = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9052872854748340826UL, WeaponData_SetPlayerDamageModifierFallback); + WeaponData_SetRange = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17027516130676194978UL, WeaponData_SetRangeFallback); + WeaponData_SetRecoilAccuracyMax = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16496623387920080268UL, WeaponData_SetRecoilAccuracyMaxFallback); + WeaponData_SetRecoilAccuracyToAllowHeadshotPlayer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9883063394541868775UL, WeaponData_SetRecoilAccuracyToAllowHeadshotPlayerFallback); + WeaponData_SetRecoilRecoveryRate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4278449304231160888UL, WeaponData_SetRecoilRecoveryRateFallback); + WeaponData_SetRecoilShakeAmplitude = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11587152197260268366UL, WeaponData_SetRecoilShakeAmplitudeFallback); + WeaponData_SetVehicleReloadTime = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4671142066908734019UL, WeaponData_SetVehicleReloadTimeFallback); + WebSocketClient_AddSubProtocol = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11555750091679903352UL, WebSocketClient_AddSubProtocolFallback); + WebSocketClient_GetBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18205331954583363954UL, WebSocketClient_GetBaseObjectFallback); + WebSocketClient_GetPingInterval = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14698647012530242007UL, WebSocketClient_GetPingIntervalFallback); + WebSocketClient_GetReadyState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9387255086102683293UL, WebSocketClient_GetReadyStateFallback); + WebSocketClient_GetSubProtocols = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10900773598724192064UL, WebSocketClient_GetSubProtocolsFallback); + WebSocketClient_GetUrl = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12430231500242481077UL, WebSocketClient_GetUrlFallback); + WebSocketClient_IsAutoReconnect = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5396480563898951525UL, WebSocketClient_IsAutoReconnectFallback); + WebSocketClient_IsPerMessageDeflate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4813724348905978186UL, WebSocketClient_IsPerMessageDeflateFallback); + WebSocketClient_Send_Binary = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16264215090640453357UL, WebSocketClient_Send_BinaryFallback); + WebSocketClient_Send_String = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8369806506248139478UL, WebSocketClient_Send_StringFallback); + WebSocketClient_SetAutoReconnect = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1696064676371870540UL, WebSocketClient_SetAutoReconnectFallback); + WebSocketClient_SetExtraHeader = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3511930102272382967UL, WebSocketClient_SetExtraHeaderFallback); + WebSocketClient_SetPerMessageDeflate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7760619546648311717UL, WebSocketClient_SetPerMessageDeflateFallback); + WebSocketClient_SetPingInterval = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11135209075363899066UL, WebSocketClient_SetPingIntervalFallback); + WebSocketClient_SetUrl = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15544145713551234810UL, WebSocketClient_SetUrlFallback); + WebSocketClient_Start = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2682447818769918952UL, WebSocketClient_StartFallback); + WebSocketClient_Stop = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17422281030211529492UL, WebSocketClient_StopFallback); + WebView_Focus = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10962546642911564188UL, WebView_FocusFallback); + WebView_GetBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4337031963608011434UL, WebView_GetBaseObjectFallback); + WebView_GetPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12573435703332554258UL, WebView_GetPositionFallback); + WebView_GetSize = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17498347147301708492UL, WebView_GetSizeFallback); + WebView_GetUrl = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15835367058086887959UL, WebView_GetUrlFallback); + WebView_IsFocused = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12966075852738562650UL, WebView_IsFocusedFallback); + WebView_IsOverlay = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15699676283380308481UL, WebView_IsOverlayFallback); + WebView_IsVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15260270363629504087UL, WebView_IsVisibleFallback); + WebView_SetExtraHeader = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 685349709143430945UL, WebView_SetExtraHeaderFallback); + WebView_SetIsVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9134142886485710584UL, WebView_SetIsVisibleFallback); + WebView_SetPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10974483219111968090UL, WebView_SetPositionFallback); + WebView_SetSize = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12659655240926292772UL, WebView_SetSizeFallback); + WebView_SetUrl = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 447189513112254992UL, WebView_SetUrlFallback); + WebView_SetZoomLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1697055721043632334UL, WebView_SetZoomLevelFallback); + WebView_Unfocus = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4944474832415344657UL, WebView_UnfocusFallback); + Win_GetTaskDialog = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7613313658222329036UL, Win_GetTaskDialogFallback); } } } \ No newline at end of file diff --git a/api/AltV.Net.CApi/Libraries/ServerLibrary.cs b/api/AltV.Net.CApi/Libraries/ServerLibrary.cs index 7d7184767..9211f3d9c 100644 --- a/api/AltV.Net.CApi/Libraries/ServerLibrary.cs +++ b/api/AltV.Net.CApi/Libraries/ServerLibrary.cs @@ -1,15 +1,15 @@ +// ReSharper disable InconsistentNaming using AltV.Net.Data; using System.Numerics; -using System.Reflection; using System.Runtime.InteropServices; using AltV.Net.Elements.Args; using AltV.Net.Elements.Entities; -using AltV.Net.Native; namespace AltV.Net.CApi.Libraries { public unsafe interface IServerLibrary { + public bool Outdated { get; } public delegate* unmanaged[Cdecl] Blip_AttachedTo { get; } public delegate* unmanaged[Cdecl] Blip_IsAttached { get; } public delegate* unmanaged[Cdecl] ColShape_GetColShapeType { get; } @@ -374,7 +374,7 @@ public unsafe interface IServerLibrary public unsafe class ServerLibrary : IServerLibrary { - public readonly uint Methods = 1312; + public readonly uint Methods = 1328; public delegate* unmanaged[Cdecl] Blip_AttachedTo { get; } public delegate* unmanaged[Cdecl] Blip_IsAttached { get; } public delegate* unmanaged[Cdecl] ColShape_GetColShapeType { get; } @@ -735,368 +735,1096 @@ public unsafe class ServerLibrary : IServerLibrary public delegate* unmanaged[Cdecl] WorldObject_GetPositionCoords { get; } public delegate* unmanaged[Cdecl] WorldObject_SetDimension { get; } public delegate* unmanaged[Cdecl] WorldObject_SetPosition { get; } + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Blip_AttachedToDelegate(nint _blip, BaseObjectType* _type); + private static nint Blip_AttachedToFallback(nint _blip, BaseObjectType* _type) => throw new Exceptions.OutdatedSdkException("Blip_AttachedTo", "Blip_AttachedTo SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_IsAttachedDelegate(nint _blip); + private static byte Blip_IsAttachedFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_IsAttached", "Blip_IsAttached SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte ColShape_GetColShapeTypeDelegate(nint _colShape); + private static byte ColShape_GetColShapeTypeFallback(nint _colShape) => throw new Exceptions.OutdatedSdkException("ColShape_GetColShapeType", "ColShape_GetColShapeType SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte ColShape_IsPlayersOnlyDelegate(nint _colShape); + private static byte ColShape_IsPlayersOnlyFallback(nint _colShape) => throw new Exceptions.OutdatedSdkException("ColShape_IsPlayersOnly", "ColShape_IsPlayersOnly SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void ColShape_SetPlayersOnlyDelegate(nint _colShape, byte _state); + private static void ColShape_SetPlayersOnlyFallback(nint _colShape, byte _state) => throw new Exceptions.OutdatedSdkException("ColShape_SetPlayersOnly", "ColShape_SetPlayersOnly SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void ConnectionInfo_AcceptDelegate(IntPtr _connectionInfo, byte _sendNames); + private static void ConnectionInfo_AcceptFallback(IntPtr _connectionInfo, byte _sendNames) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_Accept", "ConnectionInfo_Accept SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void ConnectionInfo_DeclineDelegate(IntPtr _connectionInfo, nint _reason); + private static void ConnectionInfo_DeclineFallback(IntPtr _connectionInfo, nint _reason) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_Decline", "ConnectionInfo_Decline SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ConnectionInfo_GetAuthTokenDelegate(IntPtr _connectionInfo, int* _size); + private static nint ConnectionInfo_GetAuthTokenFallback(IntPtr _connectionInfo, int* _size) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetAuthToken", "ConnectionInfo_GetAuthToken SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ConnectionInfo_GetBranchDelegate(IntPtr _connectionInfo, int* _size); + private static nint ConnectionInfo_GetBranchFallback(IntPtr _connectionInfo, int* _size) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetBranch", "ConnectionInfo_GetBranch SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint ConnectionInfo_GetBuildDelegate(IntPtr _connectionInfo); + private static uint ConnectionInfo_GetBuildFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetBuild", "ConnectionInfo_GetBuild SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ConnectionInfo_GetCdnUrlDelegate(IntPtr _connectionInfo, int* _size); + private static nint ConnectionInfo_GetCdnUrlFallback(IntPtr _connectionInfo, int* _size) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetCdnUrl", "ConnectionInfo_GetCdnUrl SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate long ConnectionInfo_GetDiscordUserIDDelegate(IntPtr _connectionInfo); + private static long ConnectionInfo_GetDiscordUserIDFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetDiscordUserID", "ConnectionInfo_GetDiscordUserID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong ConnectionInfo_GetHwIdExHashDelegate(IntPtr _connectionInfo); + private static ulong ConnectionInfo_GetHwIdExHashFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetHwIdExHash", "ConnectionInfo_GetHwIdExHash SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong ConnectionInfo_GetHwIdHashDelegate(IntPtr _connectionInfo); + private static ulong ConnectionInfo_GetHwIdHashFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetHwIdHash", "ConnectionInfo_GetHwIdHash SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ConnectionInfo_GetIpDelegate(IntPtr _connectionInfo, int* _size); + private static nint ConnectionInfo_GetIpFallback(IntPtr _connectionInfo, int* _size) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetIp", "ConnectionInfo_GetIp SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte ConnectionInfo_GetIsDebugDelegate(IntPtr _connectionInfo); + private static byte ConnectionInfo_GetIsDebugFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetIsDebug", "ConnectionInfo_GetIsDebug SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ConnectionInfo_GetNameDelegate(IntPtr _connectionInfo, int* _size); + private static nint ConnectionInfo_GetNameFallback(IntPtr _connectionInfo, int* _size) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetName", "ConnectionInfo_GetName SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong ConnectionInfo_GetPasswordHashDelegate(IntPtr _connectionInfo); + private static ulong ConnectionInfo_GetPasswordHashFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetPasswordHash", "ConnectionInfo_GetPasswordHash SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong ConnectionInfo_GetSocialIdDelegate(IntPtr _connectionInfo); + private static ulong ConnectionInfo_GetSocialIdFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetSocialId", "ConnectionInfo_GetSocialId SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateBlipDelegate(nint _server, nint _target, byte _type, Vector3 _pos); + private static nint Core_CreateBlipFallback(nint _server, nint _target, byte _type, Vector3 _pos) => throw new Exceptions.OutdatedSdkException("Core_CreateBlip", "Core_CreateBlip SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateBlipAttachedDelegate(nint _server, nint _target, byte _type, nint _attachTo); + private static nint Core_CreateBlipAttachedFallback(nint _server, nint _target, byte _type, nint _attachTo) => throw new Exceptions.OutdatedSdkException("Core_CreateBlipAttached", "Core_CreateBlipAttached SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateCheckpointDelegate(nint _server, byte _type, Vector3 _pos, float _radius, float _height, Rgba _color); + private static nint Core_CreateCheckpointFallback(nint _server, byte _type, Vector3 _pos, float _radius, float _height, Rgba _color) => throw new Exceptions.OutdatedSdkException("Core_CreateCheckpoint", "Core_CreateCheckpoint SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateColShapeCircleDelegate(nint _server, Vector3 _pos, float _radius); + private static nint Core_CreateColShapeCircleFallback(nint _server, Vector3 _pos, float _radius) => throw new Exceptions.OutdatedSdkException("Core_CreateColShapeCircle", "Core_CreateColShapeCircle SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateColShapeCubeDelegate(nint _server, Vector3 _pos, Vector3 _pos2); + private static nint Core_CreateColShapeCubeFallback(nint _server, Vector3 _pos, Vector3 _pos2) => throw new Exceptions.OutdatedSdkException("Core_CreateColShapeCube", "Core_CreateColShapeCube SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateColShapeCylinderDelegate(nint _server, Vector3 _pos, float _radius, float _height); + private static nint Core_CreateColShapeCylinderFallback(nint _server, Vector3 _pos, float _radius, float _height) => throw new Exceptions.OutdatedSdkException("Core_CreateColShapeCylinder", "Core_CreateColShapeCylinder SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateColShapePolygonDelegate(nint _server, float _minZ, float _maxZ, Vector2[] points, int _pointSize); + private static nint Core_CreateColShapePolygonFallback(nint _server, float _minZ, float _maxZ, Vector2[] points, int _pointSize) => throw new Exceptions.OutdatedSdkException("Core_CreateColShapePolygon", "Core_CreateColShapePolygon SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateColShapeRectangleDelegate(nint _server, float _x1, float _y1, float _x2, float _y2, float _z); + private static nint Core_CreateColShapeRectangleFallback(nint _server, float _x1, float _y1, float _x2, float _y2, float _z) => throw new Exceptions.OutdatedSdkException("Core_CreateColShapeRectangle", "Core_CreateColShapeRectangle SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateColShapeSphereDelegate(nint _server, Vector3 _pos, float _radius); + private static nint Core_CreateColShapeSphereFallback(nint _server, Vector3 _pos, float _radius) => throw new Exceptions.OutdatedSdkException("Core_CreateColShapeSphere", "Core_CreateColShapeSphere SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateVehicleDelegate(nint _server, uint _model, Vector3 _pos, Rotation _rot, ushort* _id); + private static nint Core_CreateVehicleFallback(nint _server, uint _model, Vector3 _pos, Rotation _rot, ushort* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateVehicle", "Core_CreateVehicle SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateVoiceChannelDelegate(nint _server, byte _spatial, float _maxDistance); + private static nint Core_CreateVoiceChannelFallback(nint _server, byte _spatial, float _maxDistance) => throw new Exceptions.OutdatedSdkException("Core_CreateVoiceChannel", "Core_CreateVoiceChannel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DeallocPedModelInfoDelegate(nint _modelInfo); + private static void Core_DeallocPedModelInfoFallback(nint _modelInfo) => throw new Exceptions.OutdatedSdkException("Core_DeallocPedModelInfo", "Core_DeallocPedModelInfo SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DeallocVehicleModelInfoDelegate(nint _modelInfo); + private static void Core_DeallocVehicleModelInfoFallback(nint _modelInfo) => throw new Exceptions.OutdatedSdkException("Core_DeallocVehicleModelInfo", "Core_DeallocVehicleModelInfo SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DeleteSyncedMetaDataDelegate(nint _core, nint _key); + private static void Core_DeleteSyncedMetaDataFallback(nint _core, nint _key) => throw new Exceptions.OutdatedSdkException("Core_DeleteSyncedMetaData", "Core_DeleteSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DestroyCheckpointDelegate(nint _server, nint _baseObject); + private static void Core_DestroyCheckpointFallback(nint _server, nint _baseObject) => throw new Exceptions.OutdatedSdkException("Core_DestroyCheckpoint", "Core_DestroyCheckpoint SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DestroyColShapeDelegate(nint _server, nint _baseObject); + private static void Core_DestroyColShapeFallback(nint _server, nint _baseObject) => throw new Exceptions.OutdatedSdkException("Core_DestroyColShape", "Core_DestroyColShape SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DestroyVehicleDelegate(nint _server, nint _baseObject); + private static void Core_DestroyVehicleFallback(nint _server, nint _baseObject) => throw new Exceptions.OutdatedSdkException("Core_DestroyVehicle", "Core_DestroyVehicle SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DestroyVoiceChannelDelegate(nint _server, nint _baseObject); + private static void Core_DestroyVoiceChannelFallback(nint _server, nint _baseObject) => throw new Exceptions.OutdatedSdkException("Core_DestroyVoiceChannel", "Core_DestroyVoiceChannel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int Core_GetNetTimeDelegate(nint _server); + private static int Core_GetNetTimeFallback(nint _server) => throw new Exceptions.OutdatedSdkException("Core_GetNetTime", "Core_GetNetTime SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetPedModelInfoDelegate(nint _core, uint _hash); + private static nint Core_GetPedModelInfoFallback(nint _core, uint _hash) => throw new Exceptions.OutdatedSdkException("Core_GetPedModelInfo", "Core_GetPedModelInfo SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetRootDirectoryDelegate(nint _server, int* _size); + private static nint Core_GetRootDirectoryFallback(nint _server, int* _size) => throw new Exceptions.OutdatedSdkException("Core_GetRootDirectory", "Core_GetRootDirectory SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetServerConfigDelegate(nint _core); + private static nint Core_GetServerConfigFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetServerConfig", "Core_GetServerConfig SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetVehicleModelInfoDelegate(nint _server, uint _hash); + private static nint Core_GetVehicleModelInfoFallback(nint _server, uint _hash) => throw new Exceptions.OutdatedSdkException("Core_GetVehicleModelInfo", "Core_GetVehicleModelInfo SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Core_HashPasswordDelegate(nint _core, nint _password); + private static ulong Core_HashPasswordFallback(nint _core, nint _password) => throw new Exceptions.OutdatedSdkException("Core_HashPassword", "Core_HashPassword SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_RestartResourceDelegate(nint _server, nint _text); + private static void Core_RestartResourceFallback(nint _server, nint _text) => throw new Exceptions.OutdatedSdkException("Core_RestartResource", "Core_RestartResource SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetPasswordDelegate(nint _core, nint _value); + private static void Core_SetPasswordFallback(nint _core, nint _value) => throw new Exceptions.OutdatedSdkException("Core_SetPassword", "Core_SetPassword SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetSyncedMetaDataDelegate(nint _core, nint _key, nint _val); + private static void Core_SetSyncedMetaDataFallback(nint _core, nint _key, nint _val) => throw new Exceptions.OutdatedSdkException("Core_SetSyncedMetaData", "Core_SetSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetWorldProfilerDelegate(nint _core, byte _state); + private static void Core_SetWorldProfilerFallback(nint _core, byte _state) => throw new Exceptions.OutdatedSdkException("Core_SetWorldProfiler", "Core_SetWorldProfiler SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_StartResourceDelegate(nint _server, nint _text); + private static void Core_StartResourceFallback(nint _server, nint _text) => throw new Exceptions.OutdatedSdkException("Core_StartResource", "Core_StartResource SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_StopResourceDelegate(nint _server, nint _text); + private static void Core_StopResourceFallback(nint _server, nint _text) => throw new Exceptions.OutdatedSdkException("Core_StopResource", "Core_StopResource SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_StopServerDelegate(nint _core); + private static void Core_StopServerFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_StopServer", "Core_StopServer SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_SubscribeCommandDelegate(nint _server, nint _cmd, CommandCallback _cb); + private static byte Core_SubscribeCommandFallback(nint _server, nint _cmd, CommandCallback _cb) => throw new Exceptions.OutdatedSdkException("Core_SubscribeCommand", "Core_SubscribeCommand SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerClientEventDelegate(nint _server, nint _target, nint _ev, nint[] args, int _size); + private static void Core_TriggerClientEventFallback(nint _server, nint _target, nint _ev, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerClientEvent", "Core_TriggerClientEvent SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerClientEventForAllDelegate(nint _server, nint _ev, nint[] args, int _size); + private static void Core_TriggerClientEventForAllFallback(nint _server, nint _ev, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerClientEventForAll", "Core_TriggerClientEventForAll SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerClientEventForSomeDelegate(nint _server, nint[] targets, int _targetsSize, nint _ev, nint[] args, int _argsSize); + private static void Core_TriggerClientEventForSomeFallback(nint _server, nint[] targets, int _targetsSize, nint _ev, nint[] args, int _argsSize) => throw new Exceptions.OutdatedSdkException("Core_TriggerClientEventForSome", "Core_TriggerClientEventForSome SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerServerEventDelegate(nint _server, nint _ev, nint[] args, int _size); + private static void Core_TriggerServerEventFallback(nint _server, nint _ev, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerServerEvent", "Core_TriggerServerEvent SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_DeleteStreamSyncedMetaDataDelegate(nint _entity, nint _key); + private static void Entity_DeleteStreamSyncedMetaDataFallback(nint _entity, nint _key) => throw new Exceptions.OutdatedSdkException("Entity_DeleteStreamSyncedMetaData", "Entity_DeleteStreamSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_DeleteSyncedMetaDataDelegate(nint _entity, nint _key); + private static void Entity_DeleteSyncedMetaDataFallback(nint _entity, nint _key) => throw new Exceptions.OutdatedSdkException("Entity_DeleteSyncedMetaData", "Entity_DeleteSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Entity_GetStreamedDelegate(nint _entity); + private static byte Entity_GetStreamedFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_GetStreamed", "Entity_GetStreamed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Entity_GetVisibleDelegate(nint _entity); + private static byte Entity_GetVisibleFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_GetVisible", "Entity_GetVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Entity_HasCollisionDelegate(nint _entity); + private static byte Entity_HasCollisionFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_HasCollision", "Entity_HasCollision SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Entity_IsFrozenDelegate(nint _entity); + private static byte Entity_IsFrozenFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_IsFrozen", "Entity_IsFrozen SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_SetCollisionDelegate(nint _entity, byte _state); + private static void Entity_SetCollisionFallback(nint _entity, byte _state) => throw new Exceptions.OutdatedSdkException("Entity_SetCollision", "Entity_SetCollision SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_SetFrozenDelegate(nint _entity, byte _state); + private static void Entity_SetFrozenFallback(nint _entity, byte _state) => throw new Exceptions.OutdatedSdkException("Entity_SetFrozen", "Entity_SetFrozen SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_SetNetOwnerDelegate(nint _entity, nint _networkOwnerPlayer, byte _disableMigration); + private static void Entity_SetNetOwnerFallback(nint _entity, nint _networkOwnerPlayer, byte _disableMigration) => throw new Exceptions.OutdatedSdkException("Entity_SetNetOwner", "Entity_SetNetOwner SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_SetRotationDelegate(nint _entity, Rotation _rot); + private static void Entity_SetRotationFallback(nint _entity, Rotation _rot) => throw new Exceptions.OutdatedSdkException("Entity_SetRotation", "Entity_SetRotation SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_SetStreamedDelegate(nint _entity, byte _state); + private static void Entity_SetStreamedFallback(nint _entity, byte _state) => throw new Exceptions.OutdatedSdkException("Entity_SetStreamed", "Entity_SetStreamed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_SetStreamSyncedMetaDataDelegate(nint _entity, nint _key, nint _val); + private static void Entity_SetStreamSyncedMetaDataFallback(nint _entity, nint _key, nint _val) => throw new Exceptions.OutdatedSdkException("Entity_SetStreamSyncedMetaData", "Entity_SetStreamSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_SetSyncedMetaDataDelegate(nint _entity, nint _key, nint _val); + private static void Entity_SetSyncedMetaDataFallback(nint _entity, nint _key, nint _val) => throw new Exceptions.OutdatedSdkException("Entity_SetSyncedMetaData", "Entity_SetSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_SetVisibleDelegate(nint _entity, byte _state); + private static void Entity_SetVisibleFallback(nint _entity, byte _state) => throw new Exceptions.OutdatedSdkException("Entity_SetVisible", "Entity_SetVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_PlayerBeforeConnect_CancelDelegate(nint _event, nint _reason); + private static void Event_PlayerBeforeConnect_CancelFallback(nint _event, nint _reason) => throw new Exceptions.OutdatedSdkException("Event_PlayerBeforeConnect_Cancel", "Event_PlayerBeforeConnect_Cancel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_WeaponDamageEvent_SetDamageValueDelegate(nint _event, uint _damageValue); + private static void Event_WeaponDamageEvent_SetDamageValueFallback(nint _event, uint _damageValue) => throw new Exceptions.OutdatedSdkException("Event_WeaponDamageEvent_SetDamageValue", "Event_WeaponDamageEvent_SetDamageValue SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_AddWeaponComponentDelegate(nint _player, uint _weapon, uint _component); + private static void Player_AddWeaponComponentFallback(nint _player, uint _weapon, uint _component) => throw new Exceptions.OutdatedSdkException("Player_AddWeaponComponent", "Player_AddWeaponComponent SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_AttachToEntityDelegate(nint _player, nint _entity, short _otherBone, short _ownBone, Vector3 _pos, Rotation _rot, byte _collision, byte _noFixedRot); + private static void Player_AttachToEntityFallback(nint _player, nint _entity, short _otherBone, short _ownBone, Vector3 _pos, Rotation _rot, byte _collision, byte _noFixedRot) => throw new Exceptions.OutdatedSdkException("Player_AttachToEntity", "Player_AttachToEntity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_AttachToEntity_BoneStringDelegate(nint _player, nint _entity, nint _otherBone, nint _ownBone, Vector3 _pos, Rotation _rot, byte _collision, byte _noFixedRot); + private static void Player_AttachToEntity_BoneStringFallback(nint _player, nint _entity, nint _otherBone, nint _ownBone, Vector3 _pos, Rotation _rot, byte _collision, byte _noFixedRot) => throw new Exceptions.OutdatedSdkException("Player_AttachToEntity_BoneString", "Player_AttachToEntity_BoneString SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_ClearBloodDamageDelegate(nint _player); + private static void Player_ClearBloodDamageFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_ClearBloodDamage", "Player_ClearBloodDamage SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_ClearPropsDelegate(nint _player, byte _component); + private static void Player_ClearPropsFallback(nint _player, byte _component) => throw new Exceptions.OutdatedSdkException("Player_ClearProps", "Player_ClearProps SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_DeleteLocalMetaDataDelegate(nint _player, nint _key); + private static void Player_DeleteLocalMetaDataFallback(nint _player, nint _key) => throw new Exceptions.OutdatedSdkException("Player_DeleteLocalMetaData", "Player_DeleteLocalMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_DespawnDelegate(nint _player); + private static void Player_DespawnFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_Despawn", "Player_Despawn SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_DetachDelegate(nint _player); + private static void Player_DetachFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_Detach", "Player_Detach SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Player_GetAuthTokenDelegate(nint _player, int* _size); + private static nint Player_GetAuthTokenFallback(nint _player, int* _size) => throw new Exceptions.OutdatedSdkException("Player_GetAuthToken", "Player_GetAuthToken SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_GetClothesDelegate(nint _player, byte _component, Cloth* _cloth); + private static void Player_GetClothesFallback(nint _player, byte _component, Cloth* _cloth) => throw new Exceptions.OutdatedSdkException("Player_GetClothes", "Player_GetClothes SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_GetCurrentWeaponTintIndexDelegate(nint _player); + private static byte Player_GetCurrentWeaponTintIndexFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetCurrentWeaponTintIndex", "Player_GetCurrentWeaponTintIndex SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate long Player_GetDiscordIdDelegate(nint _player); + private static long Player_GetDiscordIdFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetDiscordId", "Player_GetDiscordId SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_GetDlcClothesDelegate(nint _player, byte _component, DlcCloth* _cloth); + private static void Player_GetDlcClothesFallback(nint _player, byte _component, DlcCloth* _cloth) => throw new Exceptions.OutdatedSdkException("Player_GetDlcClothes", "Player_GetDlcClothes SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_GetDlcPropsDelegate(nint _player, byte _component, DlcProp* _prop); + private static void Player_GetDlcPropsFallback(nint _player, byte _component, DlcProp* _prop) => throw new Exceptions.OutdatedSdkException("Player_GetDlcProps", "Player_GetDlcProps SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Player_GetEyeColorDelegate(nint _player); + private static ushort Player_GetEyeColorFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetEyeColor", "Player_GetEyeColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Player_GetFaceFeatureScaleDelegate(nint _player, byte _index); + private static float Player_GetFaceFeatureScaleFallback(nint _player, byte _index) => throw new Exceptions.OutdatedSdkException("Player_GetFaceFeatureScale", "Player_GetFaceFeatureScale SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_GetHairColorDelegate(nint _player); + private static byte Player_GetHairColorFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetHairColor", "Player_GetHairColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_GetHairHighlightColorDelegate(nint _player); + private static byte Player_GetHairHighlightColorFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetHairHighlightColor", "Player_GetHairHighlightColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_GetHeadBlendDataDelegate(nint _player, HeadBlendData* _headBlendData); + private static void Player_GetHeadBlendDataFallback(nint _player, HeadBlendData* _headBlendData) => throw new Exceptions.OutdatedSdkException("Player_GetHeadBlendData", "Player_GetHeadBlendData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_GetHeadBlendPaletteColorDelegate(nint _player, byte _id, Rgba* _headBlendPaletteColor); + private static void Player_GetHeadBlendPaletteColorFallback(nint _player, byte _id, Rgba* _headBlendPaletteColor) => throw new Exceptions.OutdatedSdkException("Player_GetHeadBlendPaletteColor", "Player_GetHeadBlendPaletteColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_GetHeadOverlayDelegate(nint _player, byte _overlayID, HeadOverlay* _headOverlay); + private static void Player_GetHeadOverlayFallback(nint _player, byte _overlayID, HeadOverlay* _headOverlay) => throw new Exceptions.OutdatedSdkException("Player_GetHeadOverlay", "Player_GetHeadOverlay SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Player_GetHwidExHashDelegate(nint _player); + private static ulong Player_GetHwidExHashFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetHwidExHash", "Player_GetHwidExHash SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Player_GetHwidHashDelegate(nint _player); + private static ulong Player_GetHwidHashFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetHwidHash", "Player_GetHwidHash SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Player_GetInteriorLocationDelegate(nint _player); + private static uint Player_GetInteriorLocationFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetInteriorLocation", "Player_GetInteriorLocation SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_GetInvincibleDelegate(nint _player); + private static byte Player_GetInvincibleFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetInvincible", "Player_GetInvincible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Player_GetIPDelegate(nint _player, int* _size); + private static nint Player_GetIPFallback(nint _player, int* _size) => throw new Exceptions.OutdatedSdkException("Player_GetIP", "Player_GetIP SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Player_GetLastDamagedBodyPartDelegate(nint _player); + private static uint Player_GetLastDamagedBodyPartFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetLastDamagedBodyPart", "Player_GetLastDamagedBodyPart SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Player_GetLocalMetaDataDelegate(nint _player, nint _key); + private static nint Player_GetLocalMetaDataFallback(nint _player, nint _key) => throw new Exceptions.OutdatedSdkException("Player_GetLocalMetaData", "Player_GetLocalMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Player_GetPingDelegate(nint _player); + private static uint Player_GetPingFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetPing", "Player_GetPing SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_GetPropsDelegate(nint _player, byte _component, Prop* _prop); + private static void Player_GetPropsFallback(nint _player, byte _component, Prop* _prop) => throw new Exceptions.OutdatedSdkException("Player_GetProps", "Player_GetProps SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_GetSendNamesDelegate(nint _player); + private static byte Player_GetSendNamesFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetSendNames", "Player_GetSendNames SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Player_GetSocialIDDelegate(nint _player); + private static ulong Player_GetSocialIDFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetSocialID", "Player_GetSocialID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Player_GetWeaponCountDelegate(nint _player); + private static ulong Player_GetWeaponCountFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetWeaponCount", "Player_GetWeaponCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_GetWeaponsDelegate(nint _player, nint* _weapons, uint* _size); + private static void Player_GetWeaponsFallback(nint _player, nint* _weapons, uint* _size) => throw new Exceptions.OutdatedSdkException("Player_GetWeapons", "Player_GetWeapons SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_GetWeaponTintIndexDelegate(nint _player, uint _weapon); + private static byte Player_GetWeaponTintIndexFallback(nint _player, uint _weapon) => throw new Exceptions.OutdatedSdkException("Player_GetWeaponTintIndex", "Player_GetWeaponTintIndex SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_GiveWeaponDelegate(nint _player, uint _weapon, int _ammo, byte _selectWeapon); + private static void Player_GiveWeaponFallback(nint _player, uint _weapon, int _ammo, byte _selectWeapon) => throw new Exceptions.OutdatedSdkException("Player_GiveWeapon", "Player_GiveWeapon SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_HasLocalMetaDataDelegate(nint _player, nint _key); + private static byte Player_HasLocalMetaDataFallback(nint _player, nint _key) => throw new Exceptions.OutdatedSdkException("Player_HasLocalMetaData", "Player_HasLocalMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_HasWeaponComponentDelegate(nint _player, uint _weapon, uint _component); + private static byte Player_HasWeaponComponentFallback(nint _player, uint _weapon, uint _component) => throw new Exceptions.OutdatedSdkException("Player_HasWeaponComponent", "Player_HasWeaponComponent SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsConnectedDelegate(nint _player); + private static byte Player_IsConnectedFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsConnected", "Player_IsConnected SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsCrouchingDelegate(nint _player); + private static byte Player_IsCrouchingFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsCrouching", "Player_IsCrouching SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsEntityInStreamingRangeDelegate(nint _player, nint _entity); + private static byte Player_IsEntityInStreamingRangeFallback(nint _player, nint _entity) => throw new Exceptions.OutdatedSdkException("Player_IsEntityInStreamingRange", "Player_IsEntityInStreamingRange SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsStealthyDelegate(nint _player); + private static byte Player_IsStealthyFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsStealthy", "Player_IsStealthy SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsSuperJumpEnabledDelegate(nint _playere); + private static byte Player_IsSuperJumpEnabledFallback(nint _playere) => throw new Exceptions.OutdatedSdkException("Player_IsSuperJumpEnabled", "Player_IsSuperJumpEnabled SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_KickDelegate(nint _player, nint _reason); + private static void Player_KickFallback(nint _player, nint _reason) => throw new Exceptions.OutdatedSdkException("Player_Kick", "Player_Kick SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_PlayAmbientSpeechDelegate(nint _player, nint _speechName, nint _speechParam, uint _speechDictHash); + private static void Player_PlayAmbientSpeechFallback(nint _player, nint _speechName, nint _speechParam, uint _speechDictHash) => throw new Exceptions.OutdatedSdkException("Player_PlayAmbientSpeech", "Player_PlayAmbientSpeech SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_RemoveAllWeaponsDelegate(nint _player); + private static void Player_RemoveAllWeaponsFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_RemoveAllWeapons", "Player_RemoveAllWeapons SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_RemoveFaceFeatureDelegate(nint _player, byte _index); + private static byte Player_RemoveFaceFeatureFallback(nint _player, byte _index) => throw new Exceptions.OutdatedSdkException("Player_RemoveFaceFeature", "Player_RemoveFaceFeature SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_RemoveHeadOverlayDelegate(nint _player, byte _overlayID); + private static byte Player_RemoveHeadOverlayFallback(nint _player, byte _overlayID) => throw new Exceptions.OutdatedSdkException("Player_RemoveHeadOverlay", "Player_RemoveHeadOverlay SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_RemoveWeaponDelegate(nint _player, uint _weapon); + private static byte Player_RemoveWeaponFallback(nint _player, uint _weapon) => throw new Exceptions.OutdatedSdkException("Player_RemoveWeapon", "Player_RemoveWeapon SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_RemoveWeaponComponentDelegate(nint _player, uint _weapon, uint _component); + private static void Player_RemoveWeaponComponentFallback(nint _player, uint _weapon, uint _component) => throw new Exceptions.OutdatedSdkException("Player_RemoveWeaponComponent", "Player_RemoveWeaponComponent SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetArmorDelegate(nint _player, ushort _armor); + private static void Player_SetArmorFallback(nint _player, ushort _armor) => throw new Exceptions.OutdatedSdkException("Player_SetArmor", "Player_SetArmor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_SetClothesDelegate(nint _player, byte _component, ushort _drawable, byte _texture, byte _palette); + private static byte Player_SetClothesFallback(nint _player, byte _component, ushort _drawable, byte _texture, byte _palette) => throw new Exceptions.OutdatedSdkException("Player_SetClothes", "Player_SetClothes SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetCurrentWeaponDelegate(nint _player, uint _weapon); + private static void Player_SetCurrentWeaponFallback(nint _player, uint _weapon) => throw new Exceptions.OutdatedSdkException("Player_SetCurrentWeapon", "Player_SetCurrentWeapon SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetDateTimeDelegate(nint _player, int _day, int _month, int _year, int _hour, int _minute, int _second); + private static void Player_SetDateTimeFallback(nint _player, int _day, int _month, int _year, int _hour, int _minute, int _second) => throw new Exceptions.OutdatedSdkException("Player_SetDateTime", "Player_SetDateTime SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_SetDlcClothesDelegate(nint _player, byte _component, ushort _drawable, byte _texture, byte _palette, uint _dlc); + private static byte Player_SetDlcClothesFallback(nint _player, byte _component, ushort _drawable, byte _texture, byte _palette, uint _dlc) => throw new Exceptions.OutdatedSdkException("Player_SetDlcClothes", "Player_SetDlcClothes SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_SetDlcPropsDelegate(nint _player, byte _component, ushort _drawable, byte _texture, uint _dlc); + private static byte Player_SetDlcPropsFallback(nint _player, byte _component, ushort _drawable, byte _texture, uint _dlc) => throw new Exceptions.OutdatedSdkException("Player_SetDlcProps", "Player_SetDlcProps SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_SetEyeColorDelegate(nint _player, ushort _eyeColor); + private static byte Player_SetEyeColorFallback(nint _player, ushort _eyeColor) => throw new Exceptions.OutdatedSdkException("Player_SetEyeColor", "Player_SetEyeColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_SetFaceFeatureDelegate(nint _player, byte _index, float _scale); + private static byte Player_SetFaceFeatureFallback(nint _player, byte _index, float _scale) => throw new Exceptions.OutdatedSdkException("Player_SetFaceFeature", "Player_SetFaceFeature SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetHairColorDelegate(nint _player, byte _hairColor); + private static void Player_SetHairColorFallback(nint _player, byte _hairColor) => throw new Exceptions.OutdatedSdkException("Player_SetHairColor", "Player_SetHairColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetHairHighlightColorDelegate(nint _player, byte _hairHighlightColor); + private static void Player_SetHairHighlightColorFallback(nint _player, byte _hairHighlightColor) => throw new Exceptions.OutdatedSdkException("Player_SetHairHighlightColor", "Player_SetHairHighlightColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetHeadBlendDataDelegate(nint _player, uint _shapeFirstID, uint _shapeSecondID, uint _shapeThirdID, uint _skinFirstID, uint _skinSecondID, uint _skinThirdID, float _shapeMix, float _skinMix, float _thirdMix); + private static void Player_SetHeadBlendDataFallback(nint _player, uint _shapeFirstID, uint _shapeSecondID, uint _shapeThirdID, uint _skinFirstID, uint _skinSecondID, uint _skinThirdID, float _shapeMix, float _skinMix, float _thirdMix) => throw new Exceptions.OutdatedSdkException("Player_SetHeadBlendData", "Player_SetHeadBlendData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_SetHeadBlendPaletteColorDelegate(nint _player, byte _id, byte _red, byte _green, byte _blue); + private static byte Player_SetHeadBlendPaletteColorFallback(nint _player, byte _id, byte _red, byte _green, byte _blue) => throw new Exceptions.OutdatedSdkException("Player_SetHeadBlendPaletteColor", "Player_SetHeadBlendPaletteColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_SetHeadOverlayDelegate(nint _player, byte _overlayID, byte _index, float _opacity); + private static byte Player_SetHeadOverlayFallback(nint _player, byte _overlayID, byte _index, float _opacity) => throw new Exceptions.OutdatedSdkException("Player_SetHeadOverlay", "Player_SetHeadOverlay SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_SetHeadOverlayColorDelegate(nint _player, byte _overlayID, byte _colorType, byte _colorIndex, byte _secondColorIndex); + private static byte Player_SetHeadOverlayColorFallback(nint _player, byte _overlayID, byte _colorType, byte _colorIndex, byte _secondColorIndex) => throw new Exceptions.OutdatedSdkException("Player_SetHeadOverlayColor", "Player_SetHeadOverlayColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetHealthDelegate(nint _player, ushort _health); + private static void Player_SetHealthFallback(nint _player, ushort _health) => throw new Exceptions.OutdatedSdkException("Player_SetHealth", "Player_SetHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetIntoVehicleDelegate(nint _player, nint _vehicle, byte _seat); + private static void Player_SetIntoVehicleFallback(nint _player, nint _vehicle, byte _seat) => throw new Exceptions.OutdatedSdkException("Player_SetIntoVehicle", "Player_SetIntoVehicle SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetInvincibleDelegate(nint _player, byte _state); + private static void Player_SetInvincibleFallback(nint _player, byte _state) => throw new Exceptions.OutdatedSdkException("Player_SetInvincible", "Player_SetInvincible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetLastDamagedBodyPartDelegate(nint _player, uint _bodyPart); + private static void Player_SetLastDamagedBodyPartFallback(nint _player, uint _bodyPart) => throw new Exceptions.OutdatedSdkException("Player_SetLastDamagedBodyPart", "Player_SetLastDamagedBodyPart SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetLocalMetaDataDelegate(nint _player, nint _key, nint _val); + private static void Player_SetLocalMetaDataFallback(nint _player, nint _key, nint _val) => throw new Exceptions.OutdatedSdkException("Player_SetLocalMetaData", "Player_SetLocalMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetMaxArmorDelegate(nint _player, ushort _armor); + private static void Player_SetMaxArmorFallback(nint _player, ushort _armor) => throw new Exceptions.OutdatedSdkException("Player_SetMaxArmor", "Player_SetMaxArmor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetMaxHealthDelegate(nint _player, ushort _maxHealth); + private static void Player_SetMaxHealthFallback(nint _player, ushort _maxHealth) => throw new Exceptions.OutdatedSdkException("Player_SetMaxHealth", "Player_SetMaxHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetModelDelegate(nint _player, uint _model); + private static void Player_SetModelFallback(nint _player, uint _model) => throw new Exceptions.OutdatedSdkException("Player_SetModel", "Player_SetModel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_SetPropsDelegate(nint _player, byte _component, ushort _drawable, byte _texture); + private static byte Player_SetPropsFallback(nint _player, byte _component, ushort _drawable, byte _texture) => throw new Exceptions.OutdatedSdkException("Player_SetProps", "Player_SetProps SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetSendNamesDelegate(nint _player, byte _state); + private static void Player_SetSendNamesFallback(nint _player, byte _state) => throw new Exceptions.OutdatedSdkException("Player_SetSendNames", "Player_SetSendNames SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetWeaponTintIndexDelegate(nint _player, uint _weapon, byte _tintIndex); + private static void Player_SetWeaponTintIndexFallback(nint _player, uint _weapon, byte _tintIndex) => throw new Exceptions.OutdatedSdkException("Player_SetWeaponTintIndex", "Player_SetWeaponTintIndex SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetWeatherDelegate(nint _player, uint _weather); + private static void Player_SetWeatherFallback(nint _player, uint _weather) => throw new Exceptions.OutdatedSdkException("Player_SetWeather", "Player_SetWeather SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SpawnDelegate(nint _player, Vector3 _pos, uint _delayMs); + private static void Player_SpawnFallback(nint _player, Vector3 _pos, uint _delayMs) => throw new Exceptions.OutdatedSdkException("Player_Spawn", "Player_Spawn SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Resource_GetConfigDelegate(nint _resource); + private static nint Resource_GetConfigFallback(nint _resource) => throw new Exceptions.OutdatedSdkException("Resource_GetConfig", "Resource_GetConfig SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Resource_GetMainDelegate(nint _resource, int* _size); + private static nint Resource_GetMainFallback(nint _resource, int* _size) => throw new Exceptions.OutdatedSdkException("Resource_GetMain", "Resource_GetMain SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Resource_GetPathDelegate(nint _resource, int* _size); + private static nint Resource_GetPathFallback(nint _resource, int* _size) => throw new Exceptions.OutdatedSdkException("Resource_GetPath", "Resource_GetPath SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Resource_StartDelegate(nint _resource); + private static void Resource_StartFallback(nint _resource) => throw new Exceptions.OutdatedSdkException("Resource_Start", "Resource_Start SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Resource_StopDelegate(nint _resource); + private static void Resource_StopFallback(nint _resource) => throw new Exceptions.OutdatedSdkException("Resource_Stop", "Resource_Stop SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_AttachToEntityDelegate(nint _vehicle, nint _entity, short _otherBone, short _ownBone, Vector3 _pos, Rotation _rot, byte _collision, byte _noFixedRot); + private static void Vehicle_AttachToEntityFallback(nint _vehicle, nint _entity, short _otherBone, short _ownBone, Vector3 _pos, Rotation _rot, byte _collision, byte _noFixedRot) => throw new Exceptions.OutdatedSdkException("Vehicle_AttachToEntity", "Vehicle_AttachToEntity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_AttachToEntity_BoneStringDelegate(nint _vehicle, nint _entity, nint _otherBone, nint _ownBone, Vector3 _pos, Rotation _rot, byte _collision, byte _noFixedRot); + private static void Vehicle_AttachToEntity_BoneStringFallback(nint _vehicle, nint _entity, nint _otherBone, nint _ownBone, Vector3 _pos, Rotation _rot, byte _collision, byte _noFixedRot) => throw new Exceptions.OutdatedSdkException("Vehicle_AttachToEntity_BoneString", "Vehicle_AttachToEntity_BoneString SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_DetachDelegate(nint _vehicle); + private static void Vehicle_DetachFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Detach", "Vehicle_Detach SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_DoesWheelHasTireDelegate(nint _vehicle, byte _wheelId); + private static byte Vehicle_DoesWheelHasTireFallback(nint _vehicle, byte _wheelId) => throw new Exceptions.OutdatedSdkException("Vehicle_DoesWheelHasTire", "Vehicle_DoesWheelHasTire SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Vehicle_GetAppearanceDataBase64Delegate(nint _vehicle, int* _size); + private static nint Vehicle_GetAppearanceDataBase64Fallback(nint _vehicle, int* _size) => throw new Exceptions.OutdatedSdkException("Vehicle_GetAppearanceDataBase64", "Vehicle_GetAppearanceDataBase64 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetArmoredWindowHealthDelegate(nint _vehicle, byte _windowId); + private static float Vehicle_GetArmoredWindowHealthFallback(nint _vehicle, byte _windowId) => throw new Exceptions.OutdatedSdkException("Vehicle_GetArmoredWindowHealth", "Vehicle_GetArmoredWindowHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetArmoredWindowShootCountDelegate(nint _vehicle, byte _windowId); + private static byte Vehicle_GetArmoredWindowShootCountFallback(nint _vehicle, byte _windowId) => throw new Exceptions.OutdatedSdkException("Vehicle_GetArmoredWindowShootCount", "Vehicle_GetArmoredWindowShootCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Vehicle_GetAttachedDelegate(nint _vehicle); + private static nint Vehicle_GetAttachedFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetAttached", "Vehicle_GetAttached SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Vehicle_GetAttachedToDelegate(nint _vehicle); + private static nint Vehicle_GetAttachedToFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetAttachedTo", "Vehicle_GetAttachedTo SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetBoatAnchorDelegate(nint _vehicle); + private static byte Vehicle_GetBoatAnchorFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetBoatAnchor", "Vehicle_GetBoatAnchor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Vehicle_GetBodyAdditionalHealthDelegate(nint _vehicle); + private static uint Vehicle_GetBodyAdditionalHealthFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetBodyAdditionalHealth", "Vehicle_GetBodyAdditionalHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Vehicle_GetBodyHealthDelegate(nint _vehicle); + private static uint Vehicle_GetBodyHealthFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetBodyHealth", "Vehicle_GetBodyHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetBumperDamageLevelDelegate(nint _vehicle, byte _bumperId); + private static byte Vehicle_GetBumperDamageLevelFallback(nint _vehicle, byte _bumperId) => throw new Exceptions.OutdatedSdkException("Vehicle_GetBumperDamageLevel", "Vehicle_GetBumperDamageLevel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Vehicle_GetCounterMeasureCountDelegate(nint _vehicle); + private static uint Vehicle_GetCounterMeasureCountFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetCounterMeasureCount", "Vehicle_GetCounterMeasureCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetCustomTiresDelegate(nint _vehicle); + private static byte Vehicle_GetCustomTiresFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetCustomTires", "Vehicle_GetCustomTires SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Vehicle_GetDamageDataBase64Delegate(nint _vehicle, int* _size); + private static nint Vehicle_GetDamageDataBase64Fallback(nint _vehicle, int* _size) => throw new Exceptions.OutdatedSdkException("Vehicle_GetDamageDataBase64", "Vehicle_GetDamageDataBase64 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetDashboardColorDelegate(nint _vehicle); + private static byte Vehicle_GetDashboardColorFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetDashboardColor", "Vehicle_GetDashboardColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetDirtLevelDelegate(nint _vehicle); + private static byte Vehicle_GetDirtLevelFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetDirtLevel", "Vehicle_GetDirtLevel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetDoorStateDelegate(nint _vehicle, byte _doorId); + private static byte Vehicle_GetDoorStateFallback(nint _vehicle, byte _doorId) => throw new Exceptions.OutdatedSdkException("Vehicle_GetDoorState", "Vehicle_GetDoorState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Vehicle_GetDriverDelegate(nint _vehicle); + private static nint Vehicle_GetDriverFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetDriver", "Vehicle_GetDriver SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetDriverIDDelegate(nint _vehicle, ushort* _id); + private static byte Vehicle_GetDriverIDFallback(nint _vehicle, ushort* _id) => throw new Exceptions.OutdatedSdkException("Vehicle_GetDriverID", "Vehicle_GetDriverID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int Vehicle_GetEngineHealthDelegate(nint _vehicle); + private static int Vehicle_GetEngineHealthFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetEngineHealth", "Vehicle_GetEngineHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Vehicle_GetGameStateBase64Delegate(nint _vehicle, int* _size); + private static nint Vehicle_GetGameStateBase64Fallback(nint _vehicle, int* _size) => throw new Exceptions.OutdatedSdkException("Vehicle_GetGameStateBase64", "Vehicle_GetGameStateBase64 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetHeadlightColorDelegate(nint _vehicle); + private static byte Vehicle_GetHeadlightColorFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetHeadlightColor", "Vehicle_GetHeadlightColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Vehicle_GetHealthDataBase64Delegate(nint _vehicle, int* _size); + private static nint Vehicle_GetHealthDataBase64Fallback(nint _vehicle, int* _size) => throw new Exceptions.OutdatedSdkException("Vehicle_GetHealthDataBase64", "Vehicle_GetHealthDataBase64 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetHybridExtraActiveDelegate(nint _vehicle); + private static byte Vehicle_GetHybridExtraActiveFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetHybridExtraActive", "Vehicle_GetHybridExtraActive SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetHybridExtraStateDelegate(nint _vehicle); + private static byte Vehicle_GetHybridExtraStateFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetHybridExtraState", "Vehicle_GetHybridExtraState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetInteriorColorDelegate(nint _vehicle); + private static byte Vehicle_GetInteriorColorFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetInteriorColor", "Vehicle_GetInteriorColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetLightsMultiplierDelegate(nint _vehicle); + private static float Vehicle_GetLightsMultiplierFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetLightsMultiplier", "Vehicle_GetLightsMultiplier SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetLightStateDelegate(nint _vehicle); + private static byte Vehicle_GetLightStateFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetLightState", "Vehicle_GetLightState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetLiveryDelegate(nint _vehicle); + private static byte Vehicle_GetLiveryFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetLivery", "Vehicle_GetLivery SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetLockStateDelegate(nint _vehicle); + private static byte Vehicle_GetLockStateFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetLockState", "Vehicle_GetLockState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetModDelegate(nint _vehicle, byte _category); + private static byte Vehicle_GetModFallback(nint _vehicle, byte _category) => throw new Exceptions.OutdatedSdkException("Vehicle_GetMod", "Vehicle_GetMod SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetModKitDelegate(nint _vehicle); + private static byte Vehicle_GetModKitFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetModKit", "Vehicle_GetModKit SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetModKitsCountDelegate(nint _vehicle); + private static byte Vehicle_GetModKitsCountFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetModKitsCount", "Vehicle_GetModKitsCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetModsCountDelegate(nint _vehicle, byte _category); + private static byte Vehicle_GetModsCountFallback(nint _vehicle, byte _category) => throw new Exceptions.OutdatedSdkException("Vehicle_GetModsCount", "Vehicle_GetModsCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_GetNeonActiveDelegate(nint _vehicle, byte* _left, byte* _right, byte* _front, byte* _back); + private static void Vehicle_GetNeonActiveFallback(nint _vehicle, byte* _left, byte* _right, byte* _front, byte* _back) => throw new Exceptions.OutdatedSdkException("Vehicle_GetNeonActive", "Vehicle_GetNeonActive SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_GetNeonColorDelegate(nint _vehicle, Rgba* _neonColor); + private static void Vehicle_GetNeonColorFallback(nint _vehicle, Rgba* _neonColor) => throw new Exceptions.OutdatedSdkException("Vehicle_GetNeonColor", "Vehicle_GetNeonColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Vehicle_GetNumberplateIndexDelegate(nint _vehicle); + private static uint Vehicle_GetNumberplateIndexFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetNumberplateIndex", "Vehicle_GetNumberplateIndex SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Vehicle_GetNumberplateTextDelegate(nint _vehicle, int* _size); + private static nint Vehicle_GetNumberplateTextFallback(nint _vehicle, int* _size) => throw new Exceptions.OutdatedSdkException("Vehicle_GetNumberplateText", "Vehicle_GetNumberplateText SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetPartBulletHolesDelegate(nint _vehicle, byte _partId); + private static byte Vehicle_GetPartBulletHolesFallback(nint _vehicle, byte _partId) => throw new Exceptions.OutdatedSdkException("Vehicle_GetPartBulletHoles", "Vehicle_GetPartBulletHoles SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetPartDamageLevelDelegate(nint _vehicle, byte _partId); + private static byte Vehicle_GetPartDamageLevelFallback(nint _vehicle, byte _partId) => throw new Exceptions.OutdatedSdkException("Vehicle_GetPartDamageLevel", "Vehicle_GetPartDamageLevel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetPearlColorDelegate(nint _vehicle); + private static byte Vehicle_GetPearlColorFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetPearlColor", "Vehicle_GetPearlColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetPrimaryColorDelegate(nint _vehicle); + private static byte Vehicle_GetPrimaryColorFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetPrimaryColor", "Vehicle_GetPrimaryColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_GetPrimaryColorRGBDelegate(nint _vehicle, Rgba* _primaryColor); + private static void Vehicle_GetPrimaryColorRGBFallback(nint _vehicle, Rgba* _primaryColor) => throw new Exceptions.OutdatedSdkException("Vehicle_GetPrimaryColorRGB", "Vehicle_GetPrimaryColorRGB SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Vehicle_GetRadioStationIndexDelegate(nint _vehicle); + private static uint Vehicle_GetRadioStationIndexFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetRadioStationIndex", "Vehicle_GetRadioStationIndex SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetRearWheelVariationDelegate(nint _vehicle); + private static byte Vehicle_GetRearWheelVariationFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetRearWheelVariation", "Vehicle_GetRearWheelVariation SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetRepairsCountDelegate(nint _vehicle); + private static byte Vehicle_GetRepairsCountFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetRepairsCount", "Vehicle_GetRepairsCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetRocketRefuelSpeedDelegate(nint _vehicle); + private static float Vehicle_GetRocketRefuelSpeedFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetRocketRefuelSpeed", "Vehicle_GetRocketRefuelSpeed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetRoofLiveryDelegate(nint _vehicle); + private static byte Vehicle_GetRoofLiveryFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetRoofLivery", "Vehicle_GetRoofLivery SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetRoofStateDelegate(nint _vehicle); + private static byte Vehicle_GetRoofStateFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetRoofState", "Vehicle_GetRoofState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Vehicle_GetScriptDataBase64Delegate(nint _vehicle, int* _size); + private static nint Vehicle_GetScriptDataBase64Fallback(nint _vehicle, int* _size) => throw new Exceptions.OutdatedSdkException("Vehicle_GetScriptDataBase64", "Vehicle_GetScriptDataBase64 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetScriptMaxSpeedDelegate(nint _vehicle); + private static float Vehicle_GetScriptMaxSpeedFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetScriptMaxSpeed", "Vehicle_GetScriptMaxSpeed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetSecondaryColorDelegate(nint _vehicle); + private static byte Vehicle_GetSecondaryColorFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetSecondaryColor", "Vehicle_GetSecondaryColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_GetSecondaryColorRGBDelegate(nint _vehicle, Rgba* _secondaryColor); + private static void Vehicle_GetSecondaryColorRGBFallback(nint _vehicle, Rgba* _secondaryColor) => throw new Exceptions.OutdatedSdkException("Vehicle_GetSecondaryColorRGB", "Vehicle_GetSecondaryColorRGB SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetSpecialDarknessDelegate(nint _vehicle); + private static byte Vehicle_GetSpecialDarknessFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetSpecialDarkness", "Vehicle_GetSpecialDarkness SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Vehicle_GetTimedExplosionCulpritDelegate(nint _vehicle); + private static nint Vehicle_GetTimedExplosionCulpritFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetTimedExplosionCulprit", "Vehicle_GetTimedExplosionCulprit SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Vehicle_GetTimedExplosionTimeDelegate(nint _vehicle); + private static uint Vehicle_GetTimedExplosionTimeFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetTimedExplosionTime", "Vehicle_GetTimedExplosionTime SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_GetTireSmokeColorDelegate(nint _vehicle, Rgba* _tireSmokeColor); + private static void Vehicle_GetTireSmokeColorFallback(nint _vehicle, Rgba* _tireSmokeColor) => throw new Exceptions.OutdatedSdkException("Vehicle_GetTireSmokeColor", "Vehicle_GetTireSmokeColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate sbyte Vehicle_GetTrainCarriageConfigIndexDelegate(nint _vehicle); + private static sbyte Vehicle_GetTrainCarriageConfigIndexFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetTrainCarriageConfigIndex", "Vehicle_GetTrainCarriageConfigIndex SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate sbyte Vehicle_GetTrainConfigIndexDelegate(nint _vehicle); + private static sbyte Vehicle_GetTrainConfigIndexFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetTrainConfigIndex", "Vehicle_GetTrainConfigIndex SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetTrainCruiseSpeedDelegate(nint _vehicle); + private static float Vehicle_GetTrainCruiseSpeedFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetTrainCruiseSpeed", "Vehicle_GetTrainCruiseSpeed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetTrainDirectionDelegate(nint _vehicle); + private static byte Vehicle_GetTrainDirectionFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetTrainDirection", "Vehicle_GetTrainDirection SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetTrainDistanceFromEngineDelegate(nint _vehicle); + private static float Vehicle_GetTrainDistanceFromEngineFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetTrainDistanceFromEngine", "Vehicle_GetTrainDistanceFromEngine SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Vehicle_GetTrainEngineIdDelegate(nint _vehicle); + private static nint Vehicle_GetTrainEngineIdFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetTrainEngineId", "Vehicle_GetTrainEngineId SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetTrainForceDoorsOpenDelegate(nint _vehicle); + private static byte Vehicle_GetTrainForceDoorsOpenFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetTrainForceDoorsOpen", "Vehicle_GetTrainForceDoorsOpen SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Vehicle_GetTrainLinkedToBackwardIdDelegate(nint _vehicle); + private static nint Vehicle_GetTrainLinkedToBackwardIdFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetTrainLinkedToBackwardId", "Vehicle_GetTrainLinkedToBackwardId SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Vehicle_GetTrainLinkedToForwardIdDelegate(nint _vehicle); + private static nint Vehicle_GetTrainLinkedToForwardIdFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetTrainLinkedToForwardId", "Vehicle_GetTrainLinkedToForwardId SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetTrainRenderDerailedDelegate(nint _vehicle); + private static byte Vehicle_GetTrainRenderDerailedFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetTrainRenderDerailed", "Vehicle_GetTrainRenderDerailed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate sbyte Vehicle_GetTrainTrackIdDelegate(nint _vehicle); + private static sbyte Vehicle_GetTrainTrackIdFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetTrainTrackId", "Vehicle_GetTrainTrackId SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_GetVelocityDelegate(nint _vehicle, Vector3* _velocity); + private static void Vehicle_GetVelocityFallback(nint _vehicle, Vector3* _velocity) => throw new Exceptions.OutdatedSdkException("Vehicle_GetVelocity", "Vehicle_GetVelocity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int Vehicle_GetWeaponCapacityDelegate(nint _vehicle, byte _index); + private static int Vehicle_GetWeaponCapacityFallback(nint _vehicle, byte _index) => throw new Exceptions.OutdatedSdkException("Vehicle_GetWeaponCapacity", "Vehicle_GetWeaponCapacity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetWheelColorDelegate(nint _vehicle); + private static byte Vehicle_GetWheelColorFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetWheelColor", "Vehicle_GetWheelColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetWheelHealthDelegate(nint _vehicle, byte _wheelId); + private static float Vehicle_GetWheelHealthFallback(nint _vehicle, byte _wheelId) => throw new Exceptions.OutdatedSdkException("Vehicle_GetWheelHealth", "Vehicle_GetWheelHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetWheelTypeDelegate(nint _vehicle); + private static byte Vehicle_GetWheelTypeFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetWheelType", "Vehicle_GetWheelType SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetWheelVariationDelegate(nint _vehicle); + private static byte Vehicle_GetWheelVariationFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetWheelVariation", "Vehicle_GetWheelVariation SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetWindowTintDelegate(nint _vehicle); + private static byte Vehicle_GetWindowTintFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetWindowTint", "Vehicle_GetWindowTint SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_HasArmoredWindowsDelegate(nint _vehicle); + private static byte Vehicle_HasArmoredWindowsFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_HasArmoredWindows", "Vehicle_HasArmoredWindows SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_HasTimedExplosionDelegate(nint _vehicle); + private static byte Vehicle_HasTimedExplosionFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_HasTimedExplosion", "Vehicle_HasTimedExplosion SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_HasTrainPassengerCarriagesDelegate(nint _vehicle); + private static byte Vehicle_HasTrainPassengerCarriagesFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_HasTrainPassengerCarriages", "Vehicle_HasTrainPassengerCarriages SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsDaylightOnDelegate(nint _vehicle); + private static byte Vehicle_IsDaylightOnFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsDaylightOn", "Vehicle_IsDaylightOn SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsDestroyedDelegate(nint _vehicle); + private static byte Vehicle_IsDestroyedFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsDestroyed", "Vehicle_IsDestroyed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsDriftModeDelegate(nint _vehicle); + private static byte Vehicle_IsDriftModeFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsDriftMode", "Vehicle_IsDriftMode SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsEngineOnDelegate(nint _vehicle); + private static byte Vehicle_IsEngineOnFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsEngineOn", "Vehicle_IsEngineOn SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsExtraOnDelegate(nint _vehicle, byte _extraID); + private static byte Vehicle_IsExtraOnFallback(nint _vehicle, byte _extraID) => throw new Exceptions.OutdatedSdkException("Vehicle_IsExtraOn", "Vehicle_IsExtraOn SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsFlamethrowerActiveDelegate(nint _vehicle); + private static byte Vehicle_IsFlamethrowerActiveFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsFlamethrowerActive", "Vehicle_IsFlamethrowerActive SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsHandbrakeActiveDelegate(nint _vehicle); + private static byte Vehicle_IsHandbrakeActiveFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsHandbrakeActive", "Vehicle_IsHandbrakeActive SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsLightDamagedDelegate(nint _vehicle, byte _lightId); + private static byte Vehicle_IsLightDamagedFallback(nint _vehicle, byte _lightId) => throw new Exceptions.OutdatedSdkException("Vehicle_IsLightDamaged", "Vehicle_IsLightDamaged SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsManualEngineControlDelegate(nint _vehicle); + private static byte Vehicle_IsManualEngineControlFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsManualEngineControl", "Vehicle_IsManualEngineControl SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsNeonActiveDelegate(nint _vehicle); + private static byte Vehicle_IsNeonActiveFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsNeonActive", "Vehicle_IsNeonActive SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsNightlightOnDelegate(nint _vehicle); + private static byte Vehicle_IsNightlightOnFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsNightlightOn", "Vehicle_IsNightlightOn SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsPrimaryColorRGBDelegate(nint _vehicle); + private static byte Vehicle_IsPrimaryColorRGBFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsPrimaryColorRGB", "Vehicle_IsPrimaryColorRGB SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsSecondaryColorRGBDelegate(nint _vehicle); + private static byte Vehicle_IsSecondaryColorRGBFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsSecondaryColorRGB", "Vehicle_IsSecondaryColorRGB SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsSirenActiveDelegate(nint _vehicle); + private static byte Vehicle_IsSirenActiveFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsSirenActive", "Vehicle_IsSirenActive SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsSpecialLightDamagedDelegate(nint _vehicle, byte _specialLightId); + private static byte Vehicle_IsSpecialLightDamagedFallback(nint _vehicle, byte _specialLightId) => throw new Exceptions.OutdatedSdkException("Vehicle_IsSpecialLightDamaged", "Vehicle_IsSpecialLightDamaged SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsTireSmokeColorCustomDelegate(nint _vehicle); + private static byte Vehicle_IsTireSmokeColorCustomFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsTireSmokeColorCustom", "Vehicle_IsTireSmokeColorCustom SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsTowingDisabledDelegate(nint _vehicle); + private static byte Vehicle_IsTowingDisabledFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsTowingDisabled", "Vehicle_IsTowingDisabled SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsTrainCabooseDelegate(nint _vehicle); + private static byte Vehicle_IsTrainCabooseFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsTrainCaboose", "Vehicle_IsTrainCaboose SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsTrainEngineDelegate(nint _vehicle); + private static byte Vehicle_IsTrainEngineFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsTrainEngine", "Vehicle_IsTrainEngine SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsTrainMissionTrainDelegate(nint _vehicle); + private static byte Vehicle_IsTrainMissionTrainFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsTrainMissionTrain", "Vehicle_IsTrainMissionTrain SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsWheelBurstDelegate(nint _vehicle, byte _wheelId); + private static byte Vehicle_IsWheelBurstFallback(nint _vehicle, byte _wheelId) => throw new Exceptions.OutdatedSdkException("Vehicle_IsWheelBurst", "Vehicle_IsWheelBurst SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsWheelDetachedDelegate(nint _vehicle, byte _wheelId); + private static byte Vehicle_IsWheelDetachedFallback(nint _vehicle, byte _wheelId) => throw new Exceptions.OutdatedSdkException("Vehicle_IsWheelDetached", "Vehicle_IsWheelDetached SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsWheelOnFireDelegate(nint _vehicle, byte _wheelId); + private static byte Vehicle_IsWheelOnFireFallback(nint _vehicle, byte _wheelId) => throw new Exceptions.OutdatedSdkException("Vehicle_IsWheelOnFire", "Vehicle_IsWheelOnFire SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsWindowDamagedDelegate(nint _vehicle, byte _windowId); + private static byte Vehicle_IsWindowDamagedFallback(nint _vehicle, byte _windowId) => throw new Exceptions.OutdatedSdkException("Vehicle_IsWindowDamaged", "Vehicle_IsWindowDamaged SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsWindowOpenedDelegate(nint _vehicle, byte _windowId); + private static byte Vehicle_IsWindowOpenedFallback(nint _vehicle, byte _windowId) => throw new Exceptions.OutdatedSdkException("Vehicle_IsWindowOpened", "Vehicle_IsWindowOpened SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_LoadAppearanceDataFromBase64Delegate(nint _vehicle, nint _base64); + private static void Vehicle_LoadAppearanceDataFromBase64Fallback(nint _vehicle, nint _base64) => throw new Exceptions.OutdatedSdkException("Vehicle_LoadAppearanceDataFromBase64", "Vehicle_LoadAppearanceDataFromBase64 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_LoadDamageDataFromBase64Delegate(nint _vehicle, nint _base64); + private static void Vehicle_LoadDamageDataFromBase64Fallback(nint _vehicle, nint _base64) => throw new Exceptions.OutdatedSdkException("Vehicle_LoadDamageDataFromBase64", "Vehicle_LoadDamageDataFromBase64 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_LoadGameStateFromBase64Delegate(nint _vehicle, nint _base64); + private static void Vehicle_LoadGameStateFromBase64Fallback(nint _vehicle, nint _base64) => throw new Exceptions.OutdatedSdkException("Vehicle_LoadGameStateFromBase64", "Vehicle_LoadGameStateFromBase64 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_LoadHealthDataFromBase64Delegate(nint _vehicle, nint _base64); + private static void Vehicle_LoadHealthDataFromBase64Fallback(nint _vehicle, nint _base64) => throw new Exceptions.OutdatedSdkException("Vehicle_LoadHealthDataFromBase64", "Vehicle_LoadHealthDataFromBase64 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_LoadScriptDataFromBase64Delegate(nint _vehicle, nint _base64); + private static void Vehicle_LoadScriptDataFromBase64Fallback(nint _vehicle, nint _base64) => throw new Exceptions.OutdatedSdkException("Vehicle_LoadScriptDataFromBase64", "Vehicle_LoadScriptDataFromBase64 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_RepairDelegate(nint _vehicle); + private static void Vehicle_RepairFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Repair", "Vehicle_Repair SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetArmoredWindowHealthDelegate(nint _vehicle, byte _windowId, float _health); + private static void Vehicle_SetArmoredWindowHealthFallback(nint _vehicle, byte _windowId, float _health) => throw new Exceptions.OutdatedSdkException("Vehicle_SetArmoredWindowHealth", "Vehicle_SetArmoredWindowHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetArmoredWindowShootCountDelegate(nint _vehicle, byte _windowId, byte _count); + private static void Vehicle_SetArmoredWindowShootCountFallback(nint _vehicle, byte _windowId, byte _count) => throw new Exceptions.OutdatedSdkException("Vehicle_SetArmoredWindowShootCount", "Vehicle_SetArmoredWindowShootCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetBoatAnchorDelegate(nint _vehicle, byte _state); + private static void Vehicle_SetBoatAnchorFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetBoatAnchor", "Vehicle_SetBoatAnchor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetBodyAdditionalHealthDelegate(nint _vehicle, uint _health); + private static void Vehicle_SetBodyAdditionalHealthFallback(nint _vehicle, uint _health) => throw new Exceptions.OutdatedSdkException("Vehicle_SetBodyAdditionalHealth", "Vehicle_SetBodyAdditionalHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetBodyHealthDelegate(nint _vehicle, uint _health); + private static void Vehicle_SetBodyHealthFallback(nint _vehicle, uint _health) => throw new Exceptions.OutdatedSdkException("Vehicle_SetBodyHealth", "Vehicle_SetBodyHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetBumperDamageLevelDelegate(nint _vehicle, byte _bumperId, byte _damageLevel); + private static void Vehicle_SetBumperDamageLevelFallback(nint _vehicle, byte _bumperId, byte _damageLevel) => throw new Exceptions.OutdatedSdkException("Vehicle_SetBumperDamageLevel", "Vehicle_SetBumperDamageLevel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetCounterMeasureCountDelegate(nint _vehicle, uint _counterMeasureCount); + private static void Vehicle_SetCounterMeasureCountFallback(nint _vehicle, uint _counterMeasureCount) => throw new Exceptions.OutdatedSdkException("Vehicle_SetCounterMeasureCount", "Vehicle_SetCounterMeasureCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetCustomTiresDelegate(nint _vehicle, byte _state); + private static void Vehicle_SetCustomTiresFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetCustomTires", "Vehicle_SetCustomTires SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetDashboardColorDelegate(nint _vehicle, byte _color); + private static void Vehicle_SetDashboardColorFallback(nint _vehicle, byte _color) => throw new Exceptions.OutdatedSdkException("Vehicle_SetDashboardColor", "Vehicle_SetDashboardColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetDirtLevelDelegate(nint _vehicle, byte _level); + private static void Vehicle_SetDirtLevelFallback(nint _vehicle, byte _level) => throw new Exceptions.OutdatedSdkException("Vehicle_SetDirtLevel", "Vehicle_SetDirtLevel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetDisableTowingDelegate(nint _vehicle, byte _state); + private static void Vehicle_SetDisableTowingFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetDisableTowing", "Vehicle_SetDisableTowing SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetDoorStateDelegate(nint _vehicle, byte _doorId, byte _state); + private static void Vehicle_SetDoorStateFallback(nint _vehicle, byte _doorId, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetDoorState", "Vehicle_SetDoorState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetDriftModeDelegate(nint _vehicle, byte _state); + private static void Vehicle_SetDriftModeFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetDriftMode", "Vehicle_SetDriftMode SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetEngineHealthDelegate(nint _vehicle, int _health); + private static void Vehicle_SetEngineHealthFallback(nint _vehicle, int _health) => throw new Exceptions.OutdatedSdkException("Vehicle_SetEngineHealth", "Vehicle_SetEngineHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetEngineOnDelegate(nint _vehicle, byte _state); + private static void Vehicle_SetEngineOnFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetEngineOn", "Vehicle_SetEngineOn SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetHeadlightColorDelegate(nint _vehicle, byte _color); + private static void Vehicle_SetHeadlightColorFallback(nint _vehicle, byte _color) => throw new Exceptions.OutdatedSdkException("Vehicle_SetHeadlightColor", "Vehicle_SetHeadlightColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetHybridExtraActiveDelegate(nint _vehicle, byte _state); + private static void Vehicle_SetHybridExtraActiveFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetHybridExtraActive", "Vehicle_SetHybridExtraActive SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetHybridExtraStateDelegate(nint _vehicle, byte _state); + private static void Vehicle_SetHybridExtraStateFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetHybridExtraState", "Vehicle_SetHybridExtraState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetInteriorColorDelegate(nint _vehicle, byte _color); + private static void Vehicle_SetInteriorColorFallback(nint _vehicle, byte _color) => throw new Exceptions.OutdatedSdkException("Vehicle_SetInteriorColor", "Vehicle_SetInteriorColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetLightDamagedDelegate(nint _vehicle, byte _lightId, byte _isDamaged); + private static void Vehicle_SetLightDamagedFallback(nint _vehicle, byte _lightId, byte _isDamaged) => throw new Exceptions.OutdatedSdkException("Vehicle_SetLightDamaged", "Vehicle_SetLightDamaged SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetLightsMultiplierDelegate(nint _vehicle, float _multiplier); + private static void Vehicle_SetLightsMultiplierFallback(nint _vehicle, float _multiplier) => throw new Exceptions.OutdatedSdkException("Vehicle_SetLightsMultiplier", "Vehicle_SetLightsMultiplier SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetLightStateDelegate(nint _vehicle, byte _value); + private static void Vehicle_SetLightStateFallback(nint _vehicle, byte _value) => throw new Exceptions.OutdatedSdkException("Vehicle_SetLightState", "Vehicle_SetLightState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetLiveryDelegate(nint _vehicle, byte _livery); + private static void Vehicle_SetLiveryFallback(nint _vehicle, byte _livery) => throw new Exceptions.OutdatedSdkException("Vehicle_SetLivery", "Vehicle_SetLivery SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetLockStateDelegate(nint _vehicle, byte _state); + private static void Vehicle_SetLockStateFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetLockState", "Vehicle_SetLockState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetManualEngineControlDelegate(nint _vehicle, byte _state); + private static void Vehicle_SetManualEngineControlFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetManualEngineControl", "Vehicle_SetManualEngineControl SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_SetModDelegate(nint _vehicle, byte _category, byte _id); + private static byte Vehicle_SetModFallback(nint _vehicle, byte _category, byte _id) => throw new Exceptions.OutdatedSdkException("Vehicle_SetMod", "Vehicle_SetMod SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_SetModKitDelegate(nint _vehicle, byte _id); + private static byte Vehicle_SetModKitFallback(nint _vehicle, byte _id) => throw new Exceptions.OutdatedSdkException("Vehicle_SetModKit", "Vehicle_SetModKit SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetNeonActiveDelegate(nint _vehicle, byte _left, byte _right, byte _front, byte _back); + private static void Vehicle_SetNeonActiveFallback(nint _vehicle, byte _left, byte _right, byte _front, byte _back) => throw new Exceptions.OutdatedSdkException("Vehicle_SetNeonActive", "Vehicle_SetNeonActive SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetNeonColorDelegate(nint _vehicle, Rgba _color); + private static void Vehicle_SetNeonColorFallback(nint _vehicle, Rgba _color) => throw new Exceptions.OutdatedSdkException("Vehicle_SetNeonColor", "Vehicle_SetNeonColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetNumberplateIndexDelegate(nint _vehicle, uint _index); + private static void Vehicle_SetNumberplateIndexFallback(nint _vehicle, uint _index) => throw new Exceptions.OutdatedSdkException("Vehicle_SetNumberplateIndex", "Vehicle_SetNumberplateIndex SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetNumberplateTextDelegate(nint _vehicle, nint _text); + private static void Vehicle_SetNumberplateTextFallback(nint _vehicle, nint _text) => throw new Exceptions.OutdatedSdkException("Vehicle_SetNumberplateText", "Vehicle_SetNumberplateText SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetPartBulletHolesDelegate(nint _vehicle, byte _partId, byte _shootsCount); + private static void Vehicle_SetPartBulletHolesFallback(nint _vehicle, byte _partId, byte _shootsCount) => throw new Exceptions.OutdatedSdkException("Vehicle_SetPartBulletHoles", "Vehicle_SetPartBulletHoles SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetPartDamageLevelDelegate(nint _vehicle, byte _partId, byte _damage); + private static void Vehicle_SetPartDamageLevelFallback(nint _vehicle, byte _partId, byte _damage) => throw new Exceptions.OutdatedSdkException("Vehicle_SetPartDamageLevel", "Vehicle_SetPartDamageLevel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetPearlColorDelegate(nint _vehicle, byte _color); + private static void Vehicle_SetPearlColorFallback(nint _vehicle, byte _color) => throw new Exceptions.OutdatedSdkException("Vehicle_SetPearlColor", "Vehicle_SetPearlColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetPetrolTankHealthDelegate(nint _vehicle, int _health); + private static void Vehicle_SetPetrolTankHealthFallback(nint _vehicle, int _health) => throw new Exceptions.OutdatedSdkException("Vehicle_SetPetrolTankHealth", "Vehicle_SetPetrolTankHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetPrimaryColorDelegate(nint _vehicle, byte _color); + private static void Vehicle_SetPrimaryColorFallback(nint _vehicle, byte _color) => throw new Exceptions.OutdatedSdkException("Vehicle_SetPrimaryColor", "Vehicle_SetPrimaryColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetPrimaryColorRGBDelegate(nint _vehicle, Rgba _color); + private static void Vehicle_SetPrimaryColorRGBFallback(nint _vehicle, Rgba _color) => throw new Exceptions.OutdatedSdkException("Vehicle_SetPrimaryColorRGB", "Vehicle_SetPrimaryColorRGB SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetRadioStationIndexDelegate(nint _vehicle, uint _stationIndex); + private static void Vehicle_SetRadioStationIndexFallback(nint _vehicle, uint _stationIndex) => throw new Exceptions.OutdatedSdkException("Vehicle_SetRadioStationIndex", "Vehicle_SetRadioStationIndex SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetRearWheelsDelegate(nint _vehicle, byte _variation); + private static void Vehicle_SetRearWheelsFallback(nint _vehicle, byte _variation) => throw new Exceptions.OutdatedSdkException("Vehicle_SetRearWheels", "Vehicle_SetRearWheels SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetRocketRefuelSpeedDelegate(nint _vehicle, float _rocketRefuleSpeed); + private static void Vehicle_SetRocketRefuelSpeedFallback(nint _vehicle, float _rocketRefuleSpeed) => throw new Exceptions.OutdatedSdkException("Vehicle_SetRocketRefuelSpeed", "Vehicle_SetRocketRefuelSpeed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetRoofLiveryDelegate(nint _vehicle, byte _roofLivery); + private static void Vehicle_SetRoofLiveryFallback(nint _vehicle, byte _roofLivery) => throw new Exceptions.OutdatedSdkException("Vehicle_SetRoofLivery", "Vehicle_SetRoofLivery SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetRoofStateDelegate(nint _vehicle, byte _state); + private static void Vehicle_SetRoofStateFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetRoofState", "Vehicle_SetRoofState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetScriptMaxSpeedDelegate(nint _vehicle, float _scriptMaxSpeed); + private static void Vehicle_SetScriptMaxSpeedFallback(nint _vehicle, float _scriptMaxSpeed) => throw new Exceptions.OutdatedSdkException("Vehicle_SetScriptMaxSpeed", "Vehicle_SetScriptMaxSpeed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_SetSearchLightDelegate(nint _vehicle, byte _state, nint _spottedEntity); + private static byte Vehicle_SetSearchLightFallback(nint _vehicle, byte _state, nint _spottedEntity) => throw new Exceptions.OutdatedSdkException("Vehicle_SetSearchLight", "Vehicle_SetSearchLight SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetSecondaryColorDelegate(nint _vehicle, byte _color); + private static void Vehicle_SetSecondaryColorFallback(nint _vehicle, byte _color) => throw new Exceptions.OutdatedSdkException("Vehicle_SetSecondaryColor", "Vehicle_SetSecondaryColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetSecondaryColorRGBDelegate(nint _vehicle, Rgba _color); + private static void Vehicle_SetSecondaryColorRGBFallback(nint _vehicle, Rgba _color) => throw new Exceptions.OutdatedSdkException("Vehicle_SetSecondaryColorRGB", "Vehicle_SetSecondaryColorRGB SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetSirenActiveDelegate(nint _vehicle, byte _state); + private static void Vehicle_SetSirenActiveFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetSirenActive", "Vehicle_SetSirenActive SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetSpecialDarknessDelegate(nint _vehicle, byte _value); + private static void Vehicle_SetSpecialDarknessFallback(nint _vehicle, byte _value) => throw new Exceptions.OutdatedSdkException("Vehicle_SetSpecialDarkness", "Vehicle_SetSpecialDarkness SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetSpecialLightDamagedDelegate(nint _vehicle, byte _specialLightId, byte _isDamaged); + private static void Vehicle_SetSpecialLightDamagedFallback(nint _vehicle, byte _specialLightId, byte _isDamaged) => throw new Exceptions.OutdatedSdkException("Vehicle_SetSpecialLightDamaged", "Vehicle_SetSpecialLightDamaged SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetTimedExplosionDelegate(nint _vehicle, byte _state, nint _culprit, uint _time); + private static void Vehicle_SetTimedExplosionFallback(nint _vehicle, byte _state, nint _culprit, uint _time) => throw new Exceptions.OutdatedSdkException("Vehicle_SetTimedExplosion", "Vehicle_SetTimedExplosion SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetTireSmokeColorDelegate(nint _vehicle, Rgba _color); + private static void Vehicle_SetTireSmokeColorFallback(nint _vehicle, Rgba _color) => throw new Exceptions.OutdatedSdkException("Vehicle_SetTireSmokeColor", "Vehicle_SetTireSmokeColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetTrainCarriageConfigIndexDelegate(nint _vehicle, sbyte _carriageConfigIndex); + private static void Vehicle_SetTrainCarriageConfigIndexFallback(nint _vehicle, sbyte _carriageConfigIndex) => throw new Exceptions.OutdatedSdkException("Vehicle_SetTrainCarriageConfigIndex", "Vehicle_SetTrainCarriageConfigIndex SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetTrainConfigIndexDelegate(nint _vehicle, sbyte _index); + private static void Vehicle_SetTrainConfigIndexFallback(nint _vehicle, sbyte _index) => throw new Exceptions.OutdatedSdkException("Vehicle_SetTrainConfigIndex", "Vehicle_SetTrainConfigIndex SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetTrainCruiseSpeedDelegate(nint _vehicle, float _cruiseSpeed); + private static void Vehicle_SetTrainCruiseSpeedFallback(nint _vehicle, float _cruiseSpeed) => throw new Exceptions.OutdatedSdkException("Vehicle_SetTrainCruiseSpeed", "Vehicle_SetTrainCruiseSpeed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetTrainDirectionDelegate(nint _vehicle, byte _direction); + private static void Vehicle_SetTrainDirectionFallback(nint _vehicle, byte _direction) => throw new Exceptions.OutdatedSdkException("Vehicle_SetTrainDirection", "Vehicle_SetTrainDirection SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetTrainDistanceFromEngineDelegate(nint _vehicle, float _distanceFromEngine); + private static void Vehicle_SetTrainDistanceFromEngineFallback(nint _vehicle, float _distanceFromEngine) => throw new Exceptions.OutdatedSdkException("Vehicle_SetTrainDistanceFromEngine", "Vehicle_SetTrainDistanceFromEngine SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetTrainEngineIdDelegate(nint _vehicle, nint _entity); + private static void Vehicle_SetTrainEngineIdFallback(nint _vehicle, nint _entity) => throw new Exceptions.OutdatedSdkException("Vehicle_SetTrainEngineId", "Vehicle_SetTrainEngineId SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetTrainForceDoorsOpenDelegate(nint _vehicle, byte _forceDoorsOpen); + private static void Vehicle_SetTrainForceDoorsOpenFallback(nint _vehicle, byte _forceDoorsOpen) => throw new Exceptions.OutdatedSdkException("Vehicle_SetTrainForceDoorsOpen", "Vehicle_SetTrainForceDoorsOpen SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetTrainHasPassengerCarriagesDelegate(nint _vehicle, byte _hasPassengerCarriages); + private static void Vehicle_SetTrainHasPassengerCarriagesFallback(nint _vehicle, byte _hasPassengerCarriages) => throw new Exceptions.OutdatedSdkException("Vehicle_SetTrainHasPassengerCarriages", "Vehicle_SetTrainHasPassengerCarriages SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetTrainIsCabooseDelegate(nint _vehicle, byte _isCaboose); + private static void Vehicle_SetTrainIsCabooseFallback(nint _vehicle, byte _isCaboose) => throw new Exceptions.OutdatedSdkException("Vehicle_SetTrainIsCaboose", "Vehicle_SetTrainIsCaboose SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetTrainIsEngineDelegate(nint _vehicle, byte _state); + private static void Vehicle_SetTrainIsEngineFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetTrainIsEngine", "Vehicle_SetTrainIsEngine SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetTrainLinkedToBackwardIdDelegate(nint _vehicle, nint _entity); + private static void Vehicle_SetTrainLinkedToBackwardIdFallback(nint _vehicle, nint _entity) => throw new Exceptions.OutdatedSdkException("Vehicle_SetTrainLinkedToBackwardId", "Vehicle_SetTrainLinkedToBackwardId SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetTrainLinkedToForwardIdDelegate(nint _vehicle, nint _entity); + private static void Vehicle_SetTrainLinkedToForwardIdFallback(nint _vehicle, nint _entity) => throw new Exceptions.OutdatedSdkException("Vehicle_SetTrainLinkedToForwardId", "Vehicle_SetTrainLinkedToForwardId SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetTrainMissionTrainDelegate(nint _vehicle, byte _state); + private static void Vehicle_SetTrainMissionTrainFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetTrainMissionTrain", "Vehicle_SetTrainMissionTrain SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetTrainRenderDerailedDelegate(nint _vehicle, byte _renderDerailed); + private static void Vehicle_SetTrainRenderDerailedFallback(nint _vehicle, byte _renderDerailed) => throw new Exceptions.OutdatedSdkException("Vehicle_SetTrainRenderDerailed", "Vehicle_SetTrainRenderDerailed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetTrainTrackIdDelegate(nint _vehicle, sbyte _trackId); + private static void Vehicle_SetTrainTrackIdFallback(nint _vehicle, sbyte _trackId) => throw new Exceptions.OutdatedSdkException("Vehicle_SetTrainTrackId", "Vehicle_SetTrainTrackId SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetWeaponCapacityDelegate(nint _vehicle, byte _index, int _state); + private static void Vehicle_SetWeaponCapacityFallback(nint _vehicle, byte _index, int _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWeaponCapacity", "Vehicle_SetWeaponCapacity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetWheelBurstDelegate(nint _vehicle, byte _wheelId, byte _state); + private static void Vehicle_SetWheelBurstFallback(nint _vehicle, byte _wheelId, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWheelBurst", "Vehicle_SetWheelBurst SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetWheelColorDelegate(nint _vehicle, byte _color); + private static void Vehicle_SetWheelColorFallback(nint _vehicle, byte _color) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWheelColor", "Vehicle_SetWheelColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetWheelDetachedDelegate(nint _vehicle, byte _wheelId, byte _state); + private static void Vehicle_SetWheelDetachedFallback(nint _vehicle, byte _wheelId, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWheelDetached", "Vehicle_SetWheelDetached SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetWheelFixedDelegate(nint _vehicle, byte _wheelId); + private static void Vehicle_SetWheelFixedFallback(nint _vehicle, byte _wheelId) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWheelFixed", "Vehicle_SetWheelFixed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetWheelHasTireDelegate(nint _vehicle, byte _wheelId, byte _state); + private static void Vehicle_SetWheelHasTireFallback(nint _vehicle, byte _wheelId, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWheelHasTire", "Vehicle_SetWheelHasTire SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetWheelHealthDelegate(nint _vehicle, byte _wheelId, float _health); + private static void Vehicle_SetWheelHealthFallback(nint _vehicle, byte _wheelId, float _health) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWheelHealth", "Vehicle_SetWheelHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetWheelOnFireDelegate(nint _vehicle, byte _wheelId, byte _state); + private static void Vehicle_SetWheelOnFireFallback(nint _vehicle, byte _wheelId, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWheelOnFire", "Vehicle_SetWheelOnFire SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetWheelsDelegate(nint _vehicle, byte _type, byte _variation); + private static void Vehicle_SetWheelsFallback(nint _vehicle, byte _type, byte _variation) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWheels", "Vehicle_SetWheels SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetWindowDamagedDelegate(nint _vehicle, byte _windowId, byte _isDamaged); + private static void Vehicle_SetWindowDamagedFallback(nint _vehicle, byte _windowId, byte _isDamaged) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWindowDamaged", "Vehicle_SetWindowDamaged SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetWindowOpenedDelegate(nint _vehicle, byte _windowId, byte _state); + private static void Vehicle_SetWindowOpenedFallback(nint _vehicle, byte _windowId, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWindowOpened", "Vehicle_SetWindowOpened SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetWindowTintDelegate(nint _vehicle, byte _tint); + private static void Vehicle_SetWindowTintFallback(nint _vehicle, byte _tint) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWindowTint", "Vehicle_SetWindowTint SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_ToggleExtraDelegate(nint _vehicle, byte _extraID, byte _state); + private static void Vehicle_ToggleExtraFallback(nint _vehicle, byte _extraID, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_ToggleExtra", "Vehicle_ToggleExtra SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void VoiceChannel_AddPlayerDelegate(nint _channel, nint _player); + private static void VoiceChannel_AddPlayerFallback(nint _channel, nint _player) => throw new Exceptions.OutdatedSdkException("VoiceChannel_AddPlayer", "VoiceChannel_AddPlayer SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void VoiceChannel_DeleteMetaDataDelegate(nint _voiceChannel, nint _key); + private static void VoiceChannel_DeleteMetaDataFallback(nint _voiceChannel, nint _key) => throw new Exceptions.OutdatedSdkException("VoiceChannel_DeleteMetaData", "VoiceChannel_DeleteMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint VoiceChannel_GetBaseObjectDelegate(nint _voiceChannel); + private static nint VoiceChannel_GetBaseObjectFallback(nint _voiceChannel) => throw new Exceptions.OutdatedSdkException("VoiceChannel_GetBaseObject", "VoiceChannel_GetBaseObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float VoiceChannel_GetMaxDistanceDelegate(nint _channel); + private static float VoiceChannel_GetMaxDistanceFallback(nint _channel) => throw new Exceptions.OutdatedSdkException("VoiceChannel_GetMaxDistance", "VoiceChannel_GetMaxDistance SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint VoiceChannel_GetMetaDataDelegate(nint _voiceChannel, nint _key); + private static nint VoiceChannel_GetMetaDataFallback(nint _voiceChannel, nint _key) => throw new Exceptions.OutdatedSdkException("VoiceChannel_GetMetaData", "VoiceChannel_GetMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte VoiceChannel_HasMetaDataDelegate(nint _voiceChannel, nint _key); + private static byte VoiceChannel_HasMetaDataFallback(nint _voiceChannel, nint _key) => throw new Exceptions.OutdatedSdkException("VoiceChannel_HasMetaData", "VoiceChannel_HasMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte VoiceChannel_HasPlayerDelegate(nint _channel, nint _player); + private static byte VoiceChannel_HasPlayerFallback(nint _channel, nint _player) => throw new Exceptions.OutdatedSdkException("VoiceChannel_HasPlayer", "VoiceChannel_HasPlayer SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte VoiceChannel_IsPlayerMutedDelegate(nint _channel, nint _player); + private static byte VoiceChannel_IsPlayerMutedFallback(nint _channel, nint _player) => throw new Exceptions.OutdatedSdkException("VoiceChannel_IsPlayerMuted", "VoiceChannel_IsPlayerMuted SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte VoiceChannel_IsSpatialDelegate(nint _channel); + private static byte VoiceChannel_IsSpatialFallback(nint _channel) => throw new Exceptions.OutdatedSdkException("VoiceChannel_IsSpatial", "VoiceChannel_IsSpatial SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void VoiceChannel_MutePlayerDelegate(nint _channel, nint _player); + private static void VoiceChannel_MutePlayerFallback(nint _channel, nint _player) => throw new Exceptions.OutdatedSdkException("VoiceChannel_MutePlayer", "VoiceChannel_MutePlayer SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void VoiceChannel_RemovePlayerDelegate(nint _channel, nint _player); + private static void VoiceChannel_RemovePlayerFallback(nint _channel, nint _player) => throw new Exceptions.OutdatedSdkException("VoiceChannel_RemovePlayer", "VoiceChannel_RemovePlayer SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void VoiceChannel_SetMetaDataDelegate(nint _channel, nint _key, nint _val); + private static void VoiceChannel_SetMetaDataFallback(nint _channel, nint _key, nint _val) => throw new Exceptions.OutdatedSdkException("VoiceChannel_SetMetaData", "VoiceChannel_SetMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void VoiceChannel_UnmutePlayerDelegate(nint _channel, nint _player); + private static void VoiceChannel_UnmutePlayerFallback(nint _channel, nint _player) => throw new Exceptions.OutdatedSdkException("VoiceChannel_UnmutePlayer", "VoiceChannel_UnmutePlayer SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int WorldObject_GetDimensionDelegate(nint _worldObject); + private static int WorldObject_GetDimensionFallback(nint _worldObject) => throw new Exceptions.OutdatedSdkException("WorldObject_GetDimension", "WorldObject_GetDimension SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WorldObject_GetPositionCoordsDelegate(nint _worldObject, float* _position_x, float* _position_y, float* _position_z, int* _dimension); + private static void WorldObject_GetPositionCoordsFallback(nint _worldObject, float* _position_x, float* _position_y, float* _position_z, int* _dimension) => throw new Exceptions.OutdatedSdkException("WorldObject_GetPositionCoords", "WorldObject_GetPositionCoords SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WorldObject_SetDimensionDelegate(nint _worldObject, int _dimension); + private static void WorldObject_SetDimensionFallback(nint _worldObject, int _dimension) => throw new Exceptions.OutdatedSdkException("WorldObject_SetDimension", "WorldObject_SetDimension SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WorldObject_SetPositionDelegate(nint _worldObject, Vector3 _pos); + private static void WorldObject_SetPositionFallback(nint _worldObject, Vector3 _pos) => throw new Exceptions.OutdatedSdkException("WorldObject_SetPosition", "WorldObject_SetPosition SDK method is outdated. Please update your module nuget"); + public bool Outdated { get; private set; } + private IntPtr GetUnmanagedPtr(IDictionary funcTable, ulong hash, T fn) where T : Delegate { + if (funcTable.TryGetValue(hash, out var ptr)) return ptr; + Outdated = true; + return Marshal.GetFunctionPointerForDelegate(fn); + } public ServerLibrary(Dictionary funcTable) { - Blip_AttachedTo = (delegate* unmanaged[Cdecl]) funcTable[8246223245924620254UL]; - Blip_IsAttached = (delegate* unmanaged[Cdecl]) funcTable[9198858762629145399UL]; - ColShape_GetColShapeType = (delegate* unmanaged[Cdecl]) funcTable[9472918389023864742UL]; - ColShape_IsPlayersOnly = (delegate* unmanaged[Cdecl]) funcTable[10157525576187292213UL]; - ColShape_SetPlayersOnly = (delegate* unmanaged[Cdecl]) funcTable[8591093422702326731UL]; - ConnectionInfo_Accept = (delegate* unmanaged[Cdecl]) funcTable[10324150125365232266UL]; - ConnectionInfo_Decline = (delegate* unmanaged[Cdecl]) funcTable[1140588701471045928UL]; - ConnectionInfo_GetAuthToken = (delegate* unmanaged[Cdecl]) funcTable[4816575844307815897UL]; - ConnectionInfo_GetBranch = (delegate* unmanaged[Cdecl]) funcTable[4320632337184369030UL]; - ConnectionInfo_GetBuild = (delegate* unmanaged[Cdecl]) funcTable[14776332534640311278UL]; - ConnectionInfo_GetCdnUrl = (delegate* unmanaged[Cdecl]) funcTable[6982194245841807046UL]; - ConnectionInfo_GetDiscordUserID = (delegate* unmanaged[Cdecl]) funcTable[3780875226835268696UL]; - ConnectionInfo_GetHwIdExHash = (delegate* unmanaged[Cdecl]) funcTable[4906900018073282815UL]; - ConnectionInfo_GetHwIdHash = (delegate* unmanaged[Cdecl]) funcTable[5876384577158942254UL]; - ConnectionInfo_GetIp = (delegate* unmanaged[Cdecl]) funcTable[3441013384838967143UL]; - ConnectionInfo_GetIsDebug = (delegate* unmanaged[Cdecl]) funcTable[1888295228463636173UL]; - ConnectionInfo_GetName = (delegate* unmanaged[Cdecl]) funcTable[15834570281627910005UL]; - ConnectionInfo_GetPasswordHash = (delegate* unmanaged[Cdecl]) funcTable[2972876587672054891UL]; - ConnectionInfo_GetSocialId = (delegate* unmanaged[Cdecl]) funcTable[215508044563445688UL]; - Core_CreateBlip = (delegate* unmanaged[Cdecl]) funcTable[16035995202761254964UL]; - Core_CreateBlipAttached = (delegate* unmanaged[Cdecl]) funcTable[5186469007729645776UL]; - Core_CreateCheckpoint = (delegate* unmanaged[Cdecl]) funcTable[102161523841082289UL]; - Core_CreateColShapeCircle = (delegate* unmanaged[Cdecl]) funcTable[215859812428056000UL]; - Core_CreateColShapeCube = (delegate* unmanaged[Cdecl]) funcTable[16857411738683681169UL]; - Core_CreateColShapeCylinder = (delegate* unmanaged[Cdecl]) funcTable[1994815569500469178UL]; - Core_CreateColShapePolygon = (delegate* unmanaged[Cdecl]) funcTable[10942821479224145106UL]; - Core_CreateColShapeRectangle = (delegate* unmanaged[Cdecl]) funcTable[2250765166809023737UL]; - Core_CreateColShapeSphere = (delegate* unmanaged[Cdecl]) funcTable[5559152682636832497UL]; - Core_CreateVehicle = (delegate* unmanaged[Cdecl]) funcTable[10802505489731436497UL]; - Core_CreateVoiceChannel = (delegate* unmanaged[Cdecl]) funcTable[752707054014963094UL]; - Core_DeallocPedModelInfo = (delegate* unmanaged[Cdecl]) funcTable[4087928540029601183UL]; - Core_DeallocVehicleModelInfo = (delegate* unmanaged[Cdecl]) funcTable[8036879201507359696UL]; - Core_DeleteSyncedMetaData = (delegate* unmanaged[Cdecl]) funcTable[501355037141898959UL]; - Core_DestroyCheckpoint = (delegate* unmanaged[Cdecl]) funcTable[2513206290886229609UL]; - Core_DestroyColShape = (delegate* unmanaged[Cdecl]) funcTable[5384312504083917924UL]; - Core_DestroyVehicle = (delegate* unmanaged[Cdecl]) funcTable[16811101009628766745UL]; - Core_DestroyVoiceChannel = (delegate* unmanaged[Cdecl]) funcTable[9632486792103941758UL]; - Core_GetNetTime = (delegate* unmanaged[Cdecl]) funcTable[14353440959413452777UL]; - Core_GetPedModelInfo = (delegate* unmanaged[Cdecl]) funcTable[17688674471288762391UL]; - Core_GetRootDirectory = (delegate* unmanaged[Cdecl]) funcTable[6193845607378658944UL]; - Core_GetServerConfig = (delegate* unmanaged[Cdecl]) funcTable[3079388499935862372UL]; - Core_GetVehicleModelInfo = (delegate* unmanaged[Cdecl]) funcTable[4319694972501891736UL]; - Core_HashPassword = (delegate* unmanaged[Cdecl]) funcTable[7350290179654052866UL]; - Core_RestartResource = (delegate* unmanaged[Cdecl]) funcTable[16913913350512809810UL]; - Core_SetPassword = (delegate* unmanaged[Cdecl]) funcTable[2678280898790643500UL]; - Core_SetSyncedMetaData = (delegate* unmanaged[Cdecl]) funcTable[6746533346070396754UL]; - Core_SetWorldProfiler = (delegate* unmanaged[Cdecl]) funcTable[13788493873612846814UL]; - Core_StartResource = (delegate* unmanaged[Cdecl]) funcTable[1097536539088840289UL]; - Core_StopResource = (delegate* unmanaged[Cdecl]) funcTable[10776889339545945655UL]; - Core_StopServer = (delegate* unmanaged[Cdecl]) funcTable[2434389418567157880UL]; - Core_SubscribeCommand = (delegate* unmanaged[Cdecl]) funcTable[985488850653912266UL]; - Core_TriggerClientEvent = (delegate* unmanaged[Cdecl]) funcTable[11136686457792849234UL]; - Core_TriggerClientEventForAll = (delegate* unmanaged[Cdecl]) funcTable[138497345848532152UL]; - Core_TriggerClientEventForSome = (delegate* unmanaged[Cdecl]) funcTable[15600276219801831941UL]; - Core_TriggerServerEvent = (delegate* unmanaged[Cdecl]) funcTable[12151558921348552198UL]; - Entity_DeleteStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) funcTable[1246386365480757443UL]; - Entity_DeleteSyncedMetaData = (delegate* unmanaged[Cdecl]) funcTable[2259434463229850571UL]; - Entity_GetStreamed = (delegate* unmanaged[Cdecl]) funcTable[9077986016059031736UL]; - Entity_GetVisible = (delegate* unmanaged[Cdecl]) funcTable[17327783597324808645UL]; - Entity_HasCollision = (delegate* unmanaged[Cdecl]) funcTable[508246289045661255UL]; - Entity_IsFrozen = (delegate* unmanaged[Cdecl]) funcTable[3141115708186153445UL]; - Entity_SetCollision = (delegate* unmanaged[Cdecl]) funcTable[14518566458750778031UL]; - Entity_SetFrozen = (delegate* unmanaged[Cdecl]) funcTable[3004105704185895459UL]; - Entity_SetNetOwner = (delegate* unmanaged[Cdecl]) funcTable[9099019213457638031UL]; - Entity_SetRotation = (delegate* unmanaged[Cdecl]) funcTable[6445796519815642271UL]; - Entity_SetStreamed = (delegate* unmanaged[Cdecl]) funcTable[17789054533709622796UL]; - Entity_SetStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) funcTable[17403761561129329206UL]; - Entity_SetSyncedMetaData = (delegate* unmanaged[Cdecl]) funcTable[3161520862829932470UL]; - Entity_SetVisible = (delegate* unmanaged[Cdecl]) funcTable[2771725210540944417UL]; - Event_PlayerBeforeConnect_Cancel = (delegate* unmanaged[Cdecl]) funcTable[8255366639612079223UL]; - Event_WeaponDamageEvent_SetDamageValue = (delegate* unmanaged[Cdecl]) funcTable[1465274996405036654UL]; - Player_AddWeaponComponent = (delegate* unmanaged[Cdecl]) funcTable[4442368368574649055UL]; - Player_AttachToEntity = (delegate* unmanaged[Cdecl]) funcTable[1088511941260470314UL]; - Player_AttachToEntity_BoneString = (delegate* unmanaged[Cdecl]) funcTable[11819470486272283848UL]; - Player_ClearBloodDamage = (delegate* unmanaged[Cdecl]) funcTable[7742553293095802479UL]; - Player_ClearProps = (delegate* unmanaged[Cdecl]) funcTable[17329631487810271824UL]; - Player_DeleteLocalMetaData = (delegate* unmanaged[Cdecl]) funcTable[13054356381631112988UL]; - Player_Despawn = (delegate* unmanaged[Cdecl]) funcTable[4062100613704067569UL]; - Player_Detach = (delegate* unmanaged[Cdecl]) funcTable[3440251799907171210UL]; - Player_GetAuthToken = (delegate* unmanaged[Cdecl]) funcTable[13989301086329467294UL]; - Player_GetClothes = (delegate* unmanaged[Cdecl]) funcTable[18272766207161781037UL]; - Player_GetCurrentWeaponTintIndex = (delegate* unmanaged[Cdecl]) funcTable[2352880471488994311UL]; - Player_GetDiscordId = (delegate* unmanaged[Cdecl]) funcTable[7185215862160953592UL]; - Player_GetDlcClothes = (delegate* unmanaged[Cdecl]) funcTable[11452237987048589644UL]; - Player_GetDlcProps = (delegate* unmanaged[Cdecl]) funcTable[4990357205898413010UL]; - Player_GetEyeColor = (delegate* unmanaged[Cdecl]) funcTable[6613647396884772791UL]; - Player_GetFaceFeatureScale = (delegate* unmanaged[Cdecl]) funcTable[5317504600409744570UL]; - Player_GetHairColor = (delegate* unmanaged[Cdecl]) funcTable[16569646347513407174UL]; - Player_GetHairHighlightColor = (delegate* unmanaged[Cdecl]) funcTable[14758884170519905752UL]; - Player_GetHeadBlendData = (delegate* unmanaged[Cdecl]) funcTable[9717608003841111184UL]; - Player_GetHeadBlendPaletteColor = (delegate* unmanaged[Cdecl]) funcTable[1015686321939338198UL]; - Player_GetHeadOverlay = (delegate* unmanaged[Cdecl]) funcTable[2711126484019392947UL]; - Player_GetHwidExHash = (delegate* unmanaged[Cdecl]) funcTable[12384463470220120186UL]; - Player_GetHwidHash = (delegate* unmanaged[Cdecl]) funcTable[18202908306753965131UL]; - Player_GetInteriorLocation = (delegate* unmanaged[Cdecl]) funcTable[14487831262954152560UL]; - Player_GetInvincible = (delegate* unmanaged[Cdecl]) funcTable[14369096343264475034UL]; - Player_GetIP = (delegate* unmanaged[Cdecl]) funcTable[13529147803112765414UL]; - Player_GetLastDamagedBodyPart = (delegate* unmanaged[Cdecl]) funcTable[11074751086018496195UL]; - Player_GetLocalMetaData = (delegate* unmanaged[Cdecl]) funcTable[9108824844036010363UL]; - Player_GetPing = (delegate* unmanaged[Cdecl]) funcTable[8666584047888469875UL]; - Player_GetProps = (delegate* unmanaged[Cdecl]) funcTable[15463405182208669955UL]; - Player_GetSendNames = (delegate* unmanaged[Cdecl]) funcTable[5288378544263386659UL]; - Player_GetSocialID = (delegate* unmanaged[Cdecl]) funcTable[16174361114046576917UL]; - Player_GetWeaponCount = (delegate* unmanaged[Cdecl]) funcTable[11909131726046952598UL]; - Player_GetWeapons = (delegate* unmanaged[Cdecl]) funcTable[18079609989589875092UL]; - Player_GetWeaponTintIndex = (delegate* unmanaged[Cdecl]) funcTable[17585361563525106870UL]; - Player_GiveWeapon = (delegate* unmanaged[Cdecl]) funcTable[10658141267395236824UL]; - Player_HasLocalMetaData = (delegate* unmanaged[Cdecl]) funcTable[14902436847651979839UL]; - Player_HasWeaponComponent = (delegate* unmanaged[Cdecl]) funcTable[15719913457148630230UL]; - Player_IsConnected = (delegate* unmanaged[Cdecl]) funcTable[15922866257099493016UL]; - Player_IsCrouching = (delegate* unmanaged[Cdecl]) funcTable[2261171735705761445UL]; - Player_IsEntityInStreamingRange = (delegate* unmanaged[Cdecl]) funcTable[3477485955286238728UL]; - Player_IsStealthy = (delegate* unmanaged[Cdecl]) funcTable[14026971749344632823UL]; - Player_IsSuperJumpEnabled = (delegate* unmanaged[Cdecl]) funcTable[10154368239372642825UL]; - Player_Kick = (delegate* unmanaged[Cdecl]) funcTable[13236258341100251735UL]; - Player_PlayAmbientSpeech = (delegate* unmanaged[Cdecl]) funcTable[15944102593522203711UL]; - Player_RemoveAllWeapons = (delegate* unmanaged[Cdecl]) funcTable[8267448905308401793UL]; - Player_RemoveFaceFeature = (delegate* unmanaged[Cdecl]) funcTable[16037967498660529610UL]; - Player_RemoveHeadOverlay = (delegate* unmanaged[Cdecl]) funcTable[3619693675440217953UL]; - Player_RemoveWeapon = (delegate* unmanaged[Cdecl]) funcTable[12936075101220067297UL]; - Player_RemoveWeaponComponent = (delegate* unmanaged[Cdecl]) funcTable[4809323853163787452UL]; - Player_SetArmor = (delegate* unmanaged[Cdecl]) funcTable[9537376088915078602UL]; - Player_SetClothes = (delegate* unmanaged[Cdecl]) funcTable[2596982613145418929UL]; - Player_SetCurrentWeapon = (delegate* unmanaged[Cdecl]) funcTable[17437097198179007240UL]; - Player_SetDateTime = (delegate* unmanaged[Cdecl]) funcTable[6313111636640731358UL]; - Player_SetDlcClothes = (delegate* unmanaged[Cdecl]) funcTable[4532104071977767560UL]; - Player_SetDlcProps = (delegate* unmanaged[Cdecl]) funcTable[3560699682817316966UL]; - Player_SetEyeColor = (delegate* unmanaged[Cdecl]) funcTable[7739993261109353275UL]; - Player_SetFaceFeature = (delegate* unmanaged[Cdecl]) funcTable[3058405801718073508UL]; - Player_SetHairColor = (delegate* unmanaged[Cdecl]) funcTable[5563506516381950146UL]; - Player_SetHairHighlightColor = (delegate* unmanaged[Cdecl]) funcTable[5122158571944183148UL]; - Player_SetHeadBlendData = (delegate* unmanaged[Cdecl]) funcTable[1634114380624662724UL]; - Player_SetHeadBlendPaletteColor = (delegate* unmanaged[Cdecl]) funcTable[14350143879665168426UL]; - Player_SetHeadOverlay = (delegate* unmanaged[Cdecl]) funcTable[11098246977957822359UL]; - Player_SetHeadOverlayColor = (delegate* unmanaged[Cdecl]) funcTable[18074367875729473350UL]; - Player_SetHealth = (delegate* unmanaged[Cdecl]) funcTable[10718294941416048061UL]; - Player_SetIntoVehicle = (delegate* unmanaged[Cdecl]) funcTable[15050122433691243619UL]; - Player_SetInvincible = (delegate* unmanaged[Cdecl]) funcTable[10142600277137238686UL]; - Player_SetLastDamagedBodyPart = (delegate* unmanaged[Cdecl]) funcTable[4725427814826661095UL]; - Player_SetLocalMetaData = (delegate* unmanaged[Cdecl]) funcTable[14311589676512815823UL]; - Player_SetMaxArmor = (delegate* unmanaged[Cdecl]) funcTable[3143936413486306802UL]; - Player_SetMaxHealth = (delegate* unmanaged[Cdecl]) funcTable[6708258486109796357UL]; - Player_SetModel = (delegate* unmanaged[Cdecl]) funcTable[8682235775556115384UL]; - Player_SetProps = (delegate* unmanaged[Cdecl]) funcTable[122863409121347231UL]; - Player_SetSendNames = (delegate* unmanaged[Cdecl]) funcTable[12565862366697002807UL]; - Player_SetWeaponTintIndex = (delegate* unmanaged[Cdecl]) funcTable[8956455601716626810UL]; - Player_SetWeather = (delegate* unmanaged[Cdecl]) funcTable[1744522413790086237UL]; - Player_Spawn = (delegate* unmanaged[Cdecl]) funcTable[17652413048535628544UL]; - Resource_GetConfig = (delegate* unmanaged[Cdecl]) funcTable[18229425535071859076UL]; - Resource_GetMain = (delegate* unmanaged[Cdecl]) funcTable[13890602780071694115UL]; - Resource_GetPath = (delegate* unmanaged[Cdecl]) funcTable[512680569203118745UL]; - Resource_Start = (delegate* unmanaged[Cdecl]) funcTable[6133834618494539694UL]; - Resource_Stop = (delegate* unmanaged[Cdecl]) funcTable[11902711224704708726UL]; - Vehicle_AttachToEntity = (delegate* unmanaged[Cdecl]) funcTable[9721378079946240063UL]; - Vehicle_AttachToEntity_BoneString = (delegate* unmanaged[Cdecl]) funcTable[17855247389910817663UL]; - Vehicle_Detach = (delegate* unmanaged[Cdecl]) funcTable[17343904501193152103UL]; - Vehicle_DoesWheelHasTire = (delegate* unmanaged[Cdecl]) funcTable[18231285962478307714UL]; - Vehicle_GetAppearanceDataBase64 = (delegate* unmanaged[Cdecl]) funcTable[7141339909541293417UL]; - Vehicle_GetArmoredWindowHealth = (delegate* unmanaged[Cdecl]) funcTable[4772248440982996180UL]; - Vehicle_GetArmoredWindowShootCount = (delegate* unmanaged[Cdecl]) funcTable[4945046294067305060UL]; - Vehicle_GetAttached = (delegate* unmanaged[Cdecl]) funcTable[17928657131267967704UL]; - Vehicle_GetAttachedTo = (delegate* unmanaged[Cdecl]) funcTable[9251505844187397425UL]; - Vehicle_GetBoatAnchor = (delegate* unmanaged[Cdecl]) funcTable[2690644376988844699UL]; - Vehicle_GetBodyAdditionalHealth = (delegate* unmanaged[Cdecl]) funcTable[12618855601539425711UL]; - Vehicle_GetBodyHealth = (delegate* unmanaged[Cdecl]) funcTable[11088378283549798654UL]; - Vehicle_GetBumperDamageLevel = (delegate* unmanaged[Cdecl]) funcTable[13236943727700043380UL]; - Vehicle_GetCounterMeasureCount = (delegate* unmanaged[Cdecl]) funcTable[485289678211488495UL]; - Vehicle_GetCustomTires = (delegate* unmanaged[Cdecl]) funcTable[15426552398989133774UL]; - Vehicle_GetDamageDataBase64 = (delegate* unmanaged[Cdecl]) funcTable[9439612796052719298UL]; - Vehicle_GetDashboardColor = (delegate* unmanaged[Cdecl]) funcTable[4689962177434880519UL]; - Vehicle_GetDirtLevel = (delegate* unmanaged[Cdecl]) funcTable[4943755986655131597UL]; - Vehicle_GetDoorState = (delegate* unmanaged[Cdecl]) funcTable[14062421191934531817UL]; - Vehicle_GetDriver = (delegate* unmanaged[Cdecl]) funcTable[17395083227796204146UL]; - Vehicle_GetDriverID = (delegate* unmanaged[Cdecl]) funcTable[214513517736914559UL]; - Vehicle_GetEngineHealth = (delegate* unmanaged[Cdecl]) funcTable[3184787218307135956UL]; - Vehicle_GetGameStateBase64 = (delegate* unmanaged[Cdecl]) funcTable[14999812204683401580UL]; - Vehicle_GetHeadlightColor = (delegate* unmanaged[Cdecl]) funcTable[8617432081508484101UL]; - Vehicle_GetHealthDataBase64 = (delegate* unmanaged[Cdecl]) funcTable[6299619046240903365UL]; - Vehicle_GetHybridExtraActive = (delegate* unmanaged[Cdecl]) funcTable[5712072416254222906UL]; - Vehicle_GetHybridExtraState = (delegate* unmanaged[Cdecl]) funcTable[275092992353284485UL]; - Vehicle_GetInteriorColor = (delegate* unmanaged[Cdecl]) funcTable[13591345579580753299UL]; - Vehicle_GetLightsMultiplier = (delegate* unmanaged[Cdecl]) funcTable[8571771842707943834UL]; - Vehicle_GetLightState = (delegate* unmanaged[Cdecl]) funcTable[17642396039274412677UL]; - Vehicle_GetLivery = (delegate* unmanaged[Cdecl]) funcTable[13721885512687412511UL]; - Vehicle_GetLockState = (delegate* unmanaged[Cdecl]) funcTable[4109640252930367220UL]; - Vehicle_GetMod = (delegate* unmanaged[Cdecl]) funcTable[2958078787905285072UL]; - Vehicle_GetModKit = (delegate* unmanaged[Cdecl]) funcTable[14731927607175692292UL]; - Vehicle_GetModKitsCount = (delegate* unmanaged[Cdecl]) funcTable[10506773036463884868UL]; - Vehicle_GetModsCount = (delegate* unmanaged[Cdecl]) funcTable[12241670698318978368UL]; - Vehicle_GetNeonActive = (delegate* unmanaged[Cdecl]) funcTable[17412015570609171814UL]; - Vehicle_GetNeonColor = (delegate* unmanaged[Cdecl]) funcTable[8050024598004389611UL]; - Vehicle_GetNumberplateIndex = (delegate* unmanaged[Cdecl]) funcTable[5267946291902922417UL]; - Vehicle_GetNumberplateText = (delegate* unmanaged[Cdecl]) funcTable[163981800126807468UL]; - Vehicle_GetPartBulletHoles = (delegate* unmanaged[Cdecl]) funcTable[1413685884763098344UL]; - Vehicle_GetPartDamageLevel = (delegate* unmanaged[Cdecl]) funcTable[9705764958919883386UL]; - Vehicle_GetPearlColor = (delegate* unmanaged[Cdecl]) funcTable[1217919115714803303UL]; - Vehicle_GetPrimaryColor = (delegate* unmanaged[Cdecl]) funcTable[15992561361354260893UL]; - Vehicle_GetPrimaryColorRGB = (delegate* unmanaged[Cdecl]) funcTable[6066539018711123940UL]; - Vehicle_GetRadioStationIndex = (delegate* unmanaged[Cdecl]) funcTable[7638410131097487547UL]; - Vehicle_GetRearWheelVariation = (delegate* unmanaged[Cdecl]) funcTable[15078132105646510874UL]; - Vehicle_GetRepairsCount = (delegate* unmanaged[Cdecl]) funcTable[10809015629258231181UL]; - Vehicle_GetRocketRefuelSpeed = (delegate* unmanaged[Cdecl]) funcTable[6644164586803593672UL]; - Vehicle_GetRoofLivery = (delegate* unmanaged[Cdecl]) funcTable[1709332226290527397UL]; - Vehicle_GetRoofState = (delegate* unmanaged[Cdecl]) funcTable[12243493859877432983UL]; - Vehicle_GetScriptDataBase64 = (delegate* unmanaged[Cdecl]) funcTable[11197050326871353656UL]; - Vehicle_GetScriptMaxSpeed = (delegate* unmanaged[Cdecl]) funcTable[16747685571545646458UL]; - Vehicle_GetSecondaryColor = (delegate* unmanaged[Cdecl]) funcTable[17668384667841686681UL]; - Vehicle_GetSecondaryColorRGB = (delegate* unmanaged[Cdecl]) funcTable[1641116694935980800UL]; - Vehicle_GetSpecialDarkness = (delegate* unmanaged[Cdecl]) funcTable[7208616107358507240UL]; - Vehicle_GetTimedExplosionCulprit = (delegate* unmanaged[Cdecl]) funcTable[1353796078915476377UL]; - Vehicle_GetTimedExplosionTime = (delegate* unmanaged[Cdecl]) funcTable[6902188433009739171UL]; - Vehicle_GetTireSmokeColor = (delegate* unmanaged[Cdecl]) funcTable[8565660242447295194UL]; - Vehicle_GetTrainCarriageConfigIndex = (delegate* unmanaged[Cdecl]) funcTable[14823192962250361246UL]; - Vehicle_GetTrainConfigIndex = (delegate* unmanaged[Cdecl]) funcTable[3478398701577749804UL]; - Vehicle_GetTrainCruiseSpeed = (delegate* unmanaged[Cdecl]) funcTable[8224634049512934712UL]; - Vehicle_GetTrainDirection = (delegate* unmanaged[Cdecl]) funcTable[1388228765481341515UL]; - Vehicle_GetTrainDistanceFromEngine = (delegate* unmanaged[Cdecl]) funcTable[8328973864652715251UL]; - Vehicle_GetTrainEngineId = (delegate* unmanaged[Cdecl]) funcTable[2912674572257259049UL]; - Vehicle_GetTrainForceDoorsOpen = (delegate* unmanaged[Cdecl]) funcTable[18113999117889183446UL]; - Vehicle_GetTrainLinkedToBackwardId = (delegate* unmanaged[Cdecl]) funcTable[13939832827158272778UL]; - Vehicle_GetTrainLinkedToForwardId = (delegate* unmanaged[Cdecl]) funcTable[6026193156543808202UL]; - Vehicle_GetTrainRenderDerailed = (delegate* unmanaged[Cdecl]) funcTable[14356122929828990200UL]; - Vehicle_GetTrainTrackId = (delegate* unmanaged[Cdecl]) funcTable[13500021794876217536UL]; - Vehicle_GetVelocity = (delegate* unmanaged[Cdecl]) funcTable[491431513133665831UL]; - Vehicle_GetWeaponCapacity = (delegate* unmanaged[Cdecl]) funcTable[10108005386379901108UL]; - Vehicle_GetWheelColor = (delegate* unmanaged[Cdecl]) funcTable[6683447355448832866UL]; - Vehicle_GetWheelHealth = (delegate* unmanaged[Cdecl]) funcTable[9168757161831155413UL]; - Vehicle_GetWheelType = (delegate* unmanaged[Cdecl]) funcTable[2380514860226088827UL]; - Vehicle_GetWheelVariation = (delegate* unmanaged[Cdecl]) funcTable[2106243487143150120UL]; - Vehicle_GetWindowTint = (delegate* unmanaged[Cdecl]) funcTable[14788150710609073045UL]; - Vehicle_HasArmoredWindows = (delegate* unmanaged[Cdecl]) funcTable[16317068023373786051UL]; - Vehicle_HasTimedExplosion = (delegate* unmanaged[Cdecl]) funcTable[12205417322261382950UL]; - Vehicle_HasTrainPassengerCarriages = (delegate* unmanaged[Cdecl]) funcTable[5022001788933958729UL]; - Vehicle_IsDaylightOn = (delegate* unmanaged[Cdecl]) funcTable[13324992420100574687UL]; - Vehicle_IsDestroyed = (delegate* unmanaged[Cdecl]) funcTable[1099664456380252179UL]; - Vehicle_IsDriftMode = (delegate* unmanaged[Cdecl]) funcTable[14284695685977030732UL]; - Vehicle_IsEngineOn = (delegate* unmanaged[Cdecl]) funcTable[7564450666055690131UL]; - Vehicle_IsExtraOn = (delegate* unmanaged[Cdecl]) funcTable[14505212927966303383UL]; - Vehicle_IsFlamethrowerActive = (delegate* unmanaged[Cdecl]) funcTable[3196944959124900808UL]; - Vehicle_IsHandbrakeActive = (delegate* unmanaged[Cdecl]) funcTable[5475206054850537974UL]; - Vehicle_IsLightDamaged = (delegate* unmanaged[Cdecl]) funcTable[17750851581110628427UL]; - Vehicle_IsManualEngineControl = (delegate* unmanaged[Cdecl]) funcTable[154883503073383145UL]; - Vehicle_IsNeonActive = (delegate* unmanaged[Cdecl]) funcTable[15107233194798479898UL]; - Vehicle_IsNightlightOn = (delegate* unmanaged[Cdecl]) funcTable[8656131823178916347UL]; - Vehicle_IsPrimaryColorRGB = (delegate* unmanaged[Cdecl]) funcTable[287535114076765584UL]; - Vehicle_IsSecondaryColorRGB = (delegate* unmanaged[Cdecl]) funcTable[16087964034103533780UL]; - Vehicle_IsSirenActive = (delegate* unmanaged[Cdecl]) funcTable[10746025813828893319UL]; - Vehicle_IsSpecialLightDamaged = (delegate* unmanaged[Cdecl]) funcTable[3400186478763105556UL]; - Vehicle_IsTireSmokeColorCustom = (delegate* unmanaged[Cdecl]) funcTable[3707366369733984429UL]; - Vehicle_IsTowingDisabled = (delegate* unmanaged[Cdecl]) funcTable[9218431851954266630UL]; - Vehicle_IsTrainCaboose = (delegate* unmanaged[Cdecl]) funcTable[2061599685371125450UL]; - Vehicle_IsTrainEngine = (delegate* unmanaged[Cdecl]) funcTable[16026428500027741792UL]; - Vehicle_IsTrainMissionTrain = (delegate* unmanaged[Cdecl]) funcTable[15533197985460505190UL]; - Vehicle_IsWheelBurst = (delegate* unmanaged[Cdecl]) funcTable[3285666993154637219UL]; - Vehicle_IsWheelDetached = (delegate* unmanaged[Cdecl]) funcTable[355940780378797305UL]; - Vehicle_IsWheelOnFire = (delegate* unmanaged[Cdecl]) funcTable[6043766364339597990UL]; - Vehicle_IsWindowDamaged = (delegate* unmanaged[Cdecl]) funcTable[9574886165282119267UL]; - Vehicle_IsWindowOpened = (delegate* unmanaged[Cdecl]) funcTable[11737851998723621525UL]; - Vehicle_LoadAppearanceDataFromBase64 = (delegate* unmanaged[Cdecl]) funcTable[9460668391105494925UL]; - Vehicle_LoadDamageDataFromBase64 = (delegate* unmanaged[Cdecl]) funcTable[5140481864102242386UL]; - Vehicle_LoadGameStateFromBase64 = (delegate* unmanaged[Cdecl]) funcTable[9683125805030159088UL]; - Vehicle_LoadHealthDataFromBase64 = (delegate* unmanaged[Cdecl]) funcTable[16641565416288932929UL]; - Vehicle_LoadScriptDataFromBase64 = (delegate* unmanaged[Cdecl]) funcTable[18418115921584108740UL]; - Vehicle_Repair = (delegate* unmanaged[Cdecl]) funcTable[17311798986599763685UL]; - Vehicle_SetArmoredWindowHealth = (delegate* unmanaged[Cdecl]) funcTable[17364037803017145744UL]; - Vehicle_SetArmoredWindowShootCount = (delegate* unmanaged[Cdecl]) funcTable[11171858117417258208UL]; - Vehicle_SetBoatAnchor = (delegate* unmanaged[Cdecl]) funcTable[16831595260087658191UL]; - Vehicle_SetBodyAdditionalHealth = (delegate* unmanaged[Cdecl]) funcTable[13392612127770315083UL]; - Vehicle_SetBodyHealth = (delegate* unmanaged[Cdecl]) funcTable[15765773268680518698UL]; - Vehicle_SetBumperDamageLevel = (delegate* unmanaged[Cdecl]) funcTable[16727389846276950048UL]; - Vehicle_SetCounterMeasureCount = (delegate* unmanaged[Cdecl]) funcTable[11419176023132816883UL]; - Vehicle_SetCustomTires = (delegate* unmanaged[Cdecl]) funcTable[17063056088444027082UL]; - Vehicle_SetDashboardColor = (delegate* unmanaged[Cdecl]) funcTable[14506406134285509147UL]; - Vehicle_SetDirtLevel = (delegate* unmanaged[Cdecl]) funcTable[7115460722936709265UL]; - Vehicle_SetDisableTowing = (delegate* unmanaged[Cdecl]) funcTable[14332457157385345962UL]; - Vehicle_SetDoorState = (delegate* unmanaged[Cdecl]) funcTable[13007705873637921189UL]; - Vehicle_SetDriftMode = (delegate* unmanaged[Cdecl]) funcTable[10432140927923251188UL]; - Vehicle_SetEngineHealth = (delegate* unmanaged[Cdecl]) funcTable[1935772489264617144UL]; - Vehicle_SetEngineOn = (delegate* unmanaged[Cdecl]) funcTable[6411099082957445067UL]; - Vehicle_SetHeadlightColor = (delegate* unmanaged[Cdecl]) funcTable[6607005191456521737UL]; - Vehicle_SetHybridExtraActive = (delegate* unmanaged[Cdecl]) funcTable[8845759033615557894UL]; - Vehicle_SetHybridExtraState = (delegate* unmanaged[Cdecl]) funcTable[146116566076115897UL]; - Vehicle_SetInteriorColor = (delegate* unmanaged[Cdecl]) funcTable[5502010976972308487UL]; - Vehicle_SetLightDamaged = (delegate* unmanaged[Cdecl]) funcTable[14816781557527999091UL]; - Vehicle_SetLightsMultiplier = (delegate* unmanaged[Cdecl]) funcTable[8137833252714021478UL]; - Vehicle_SetLightState = (delegate* unmanaged[Cdecl]) funcTable[15199478154977473353UL]; - Vehicle_SetLivery = (delegate* unmanaged[Cdecl]) funcTable[2739176049355370891UL]; - Vehicle_SetLockState = (delegate* unmanaged[Cdecl]) funcTable[17926762006441749096UL]; - Vehicle_SetManualEngineControl = (delegate* unmanaged[Cdecl]) funcTable[16078206917868437153UL]; - Vehicle_SetMod = (delegate* unmanaged[Cdecl]) funcTable[2528063280588122884UL]; - Vehicle_SetModKit = (delegate* unmanaged[Cdecl]) funcTable[6928786153550384344UL]; - Vehicle_SetNeonActive = (delegate* unmanaged[Cdecl]) funcTable[3437844912155037218UL]; - Vehicle_SetNeonColor = (delegate* unmanaged[Cdecl]) funcTable[2624414132838947903UL]; - Vehicle_SetNumberplateIndex = (delegate* unmanaged[Cdecl]) funcTable[7962549431209964437UL]; - Vehicle_SetNumberplateText = (delegate* unmanaged[Cdecl]) funcTable[16656446852923914904UL]; - Vehicle_SetPartBulletHoles = (delegate* unmanaged[Cdecl]) funcTable[30312183328040844UL]; - Vehicle_SetPartDamageLevel = (delegate* unmanaged[Cdecl]) funcTable[490224508800165526UL]; - Vehicle_SetPearlColor = (delegate* unmanaged[Cdecl]) funcTable[12810571514173707635UL]; - Vehicle_SetPetrolTankHealth = (delegate* unmanaged[Cdecl]) funcTable[5842836310610219704UL]; - Vehicle_SetPrimaryColor = (delegate* unmanaged[Cdecl]) funcTable[3822546323726107953UL]; - Vehicle_SetPrimaryColorRGB = (delegate* unmanaged[Cdecl]) funcTable[11852532086043244168UL]; - Vehicle_SetRadioStationIndex = (delegate* unmanaged[Cdecl]) funcTable[12110831169188614415UL]; - Vehicle_SetRearWheels = (delegate* unmanaged[Cdecl]) funcTable[6142819993893898506UL]; - Vehicle_SetRocketRefuelSpeed = (delegate* unmanaged[Cdecl]) funcTable[5921297257344499628UL]; - Vehicle_SetRoofLivery = (delegate* unmanaged[Cdecl]) funcTable[5505815873063704905UL]; - Vehicle_SetRoofState = (delegate* unmanaged[Cdecl]) funcTable[16895810717861855475UL]; - Vehicle_SetScriptMaxSpeed = (delegate* unmanaged[Cdecl]) funcTable[7812823883483214902UL]; - Vehicle_SetSearchLight = (delegate* unmanaged[Cdecl]) funcTable[10944681132155325504UL]; - Vehicle_SetSecondaryColor = (delegate* unmanaged[Cdecl]) funcTable[10513916256608073301UL]; - Vehicle_SetSecondaryColorRGB = (delegate* unmanaged[Cdecl]) funcTable[4037519659470824652UL]; - Vehicle_SetSirenActive = (delegate* unmanaged[Cdecl]) funcTable[3044482236176149999UL]; - Vehicle_SetSpecialDarkness = (delegate* unmanaged[Cdecl]) funcTable[3102383534466233052UL]; - Vehicle_SetSpecialLightDamaged = (delegate* unmanaged[Cdecl]) funcTable[5736562163945373772UL]; - Vehicle_SetTimedExplosion = (delegate* unmanaged[Cdecl]) funcTable[16610133400907463102UL]; - Vehicle_SetTireSmokeColor = (delegate* unmanaged[Cdecl]) funcTable[3621510097027434190UL]; - Vehicle_SetTrainCarriageConfigIndex = (delegate* unmanaged[Cdecl]) funcTable[7022754355815925162UL]; - Vehicle_SetTrainConfigIndex = (delegate* unmanaged[Cdecl]) funcTable[11737632396104476216UL]; - Vehicle_SetTrainCruiseSpeed = (delegate* unmanaged[Cdecl]) funcTable[16049421601515151140UL]; - Vehicle_SetTrainDirection = (delegate* unmanaged[Cdecl]) funcTable[15992450228773944871UL]; - Vehicle_SetTrainDistanceFromEngine = (delegate* unmanaged[Cdecl]) funcTable[5104280884677604335UL]; - Vehicle_SetTrainEngineId = (delegate* unmanaged[Cdecl]) funcTable[14239123598098621429UL]; - Vehicle_SetTrainForceDoorsOpen = (delegate* unmanaged[Cdecl]) funcTable[12997424740298738154UL]; - Vehicle_SetTrainHasPassengerCarriages = (delegate* unmanaged[Cdecl]) funcTable[9343175927460300873UL]; - Vehicle_SetTrainIsCaboose = (delegate* unmanaged[Cdecl]) funcTable[16169771838195371302UL]; - Vehicle_SetTrainIsEngine = (delegate* unmanaged[Cdecl]) funcTable[4519524846083371236UL]; - Vehicle_SetTrainLinkedToBackwardId = (delegate* unmanaged[Cdecl]) funcTable[5942631005197348414UL]; - Vehicle_SetTrainLinkedToForwardId = (delegate* unmanaged[Cdecl]) funcTable[10700547817922111862UL]; - Vehicle_SetTrainMissionTrain = (delegate* unmanaged[Cdecl]) funcTable[12659057398635580654UL]; - Vehicle_SetTrainRenderDerailed = (delegate* unmanaged[Cdecl]) funcTable[9632926037266115436UL]; - Vehicle_SetTrainTrackId = (delegate* unmanaged[Cdecl]) funcTable[9085977001203146804UL]; - Vehicle_SetWeaponCapacity = (delegate* unmanaged[Cdecl]) funcTable[15660310337543212624UL]; - Vehicle_SetWheelBurst = (delegate* unmanaged[Cdecl]) funcTable[12639904298595477067UL]; - Vehicle_SetWheelColor = (delegate* unmanaged[Cdecl]) funcTable[10289187849606561694UL]; - Vehicle_SetWheelDetached = (delegate* unmanaged[Cdecl]) funcTable[4522876720267119137UL]; - Vehicle_SetWheelFixed = (delegate* unmanaged[Cdecl]) funcTable[12038411960804560075UL]; - Vehicle_SetWheelHasTire = (delegate* unmanaged[Cdecl]) funcTable[13686448911876585131UL]; - Vehicle_SetWheelHealth = (delegate* unmanaged[Cdecl]) funcTable[11641817719976869961UL]; - Vehicle_SetWheelOnFire = (delegate* unmanaged[Cdecl]) funcTable[10480697380826687950UL]; - Vehicle_SetWheels = (delegate* unmanaged[Cdecl]) funcTable[5979468759173941524UL]; - Vehicle_SetWindowDamaged = (delegate* unmanaged[Cdecl]) funcTable[15228375535061986811UL]; - Vehicle_SetWindowOpened = (delegate* unmanaged[Cdecl]) funcTable[11422327441667882061UL]; - Vehicle_SetWindowTint = (delegate* unmanaged[Cdecl]) funcTable[9434495696018556569UL]; - Vehicle_ToggleExtra = (delegate* unmanaged[Cdecl]) funcTable[7052917584705550874UL]; - VoiceChannel_AddPlayer = (delegate* unmanaged[Cdecl]) funcTable[11480731622415663889UL]; - VoiceChannel_DeleteMetaData = (delegate* unmanaged[Cdecl]) funcTable[16980366384902047783UL]; - VoiceChannel_GetBaseObject = (delegate* unmanaged[Cdecl]) funcTable[17400492540972468697UL]; - VoiceChannel_GetMaxDistance = (delegate* unmanaged[Cdecl]) funcTable[11467500650620780400UL]; - VoiceChannel_GetMetaData = (delegate* unmanaged[Cdecl]) funcTable[7452185796551681250UL]; - VoiceChannel_HasMetaData = (delegate* unmanaged[Cdecl]) funcTable[13716244061363889254UL]; - VoiceChannel_HasPlayer = (delegate* unmanaged[Cdecl]) funcTable[8720092938692268106UL]; - VoiceChannel_IsPlayerMuted = (delegate* unmanaged[Cdecl]) funcTable[2614389959184933679UL]; - VoiceChannel_IsSpatial = (delegate* unmanaged[Cdecl]) funcTable[14951425886020740427UL]; - VoiceChannel_MutePlayer = (delegate* unmanaged[Cdecl]) funcTable[12065461469661482481UL]; - VoiceChannel_RemovePlayer = (delegate* unmanaged[Cdecl]) funcTable[5654188700644832496UL]; - VoiceChannel_SetMetaData = (delegate* unmanaged[Cdecl]) funcTable[4956759779487566838UL]; - VoiceChannel_UnmutePlayer = (delegate* unmanaged[Cdecl]) funcTable[9736361074722605058UL]; - WorldObject_GetDimension = (delegate* unmanaged[Cdecl]) funcTable[15182911217769927409UL]; - WorldObject_GetPositionCoords = (delegate* unmanaged[Cdecl]) funcTable[7469948310820491890UL]; - WorldObject_SetDimension = (delegate* unmanaged[Cdecl]) funcTable[10474817540727671173UL]; - WorldObject_SetPosition = (delegate* unmanaged[Cdecl]) funcTable[15794898554691126400UL]; + if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true; + else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 10988236633214279111UL) Outdated = true; + Blip_AttachedTo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15602966080933483258UL, Blip_AttachedToFallback); + Blip_IsAttached = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7870458832410754161UL, Blip_IsAttachedFallback); + ColShape_GetColShapeType = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18034368716132758796UL, ColShape_GetColShapeTypeFallback); + ColShape_IsPlayersOnly = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 123106227395069751UL, ColShape_IsPlayersOnlyFallback); + ColShape_SetPlayersOnly = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16332474445990008748UL, ColShape_SetPlayersOnlyFallback); + ConnectionInfo_Accept = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12411302106891962144UL, ConnectionInfo_AcceptFallback); + ConnectionInfo_Decline = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17030579920009662077UL, ConnectionInfo_DeclineFallback); + ConnectionInfo_GetAuthToken = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8194004283135524333UL, ConnectionInfo_GetAuthTokenFallback); + ConnectionInfo_GetBranch = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1577439110274874884UL, ConnectionInfo_GetBranchFallback); + ConnectionInfo_GetBuild = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14204191833155309704UL, ConnectionInfo_GetBuildFallback); + ConnectionInfo_GetCdnUrl = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5988681596904693572UL, ConnectionInfo_GetCdnUrlFallback); + ConnectionInfo_GetDiscordUserID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4175744399917476392UL, ConnectionInfo_GetDiscordUserIDFallback); + ConnectionInfo_GetHwIdExHash = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3151831504154255688UL, ConnectionInfo_GetHwIdExHashFallback); + ConnectionInfo_GetHwIdHash = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11409383581668438027UL, ConnectionInfo_GetHwIdHashFallback); + ConnectionInfo_GetIp = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14736154404219321063UL, ConnectionInfo_GetIpFallback); + ConnectionInfo_GetIsDebug = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13717058348136733066UL, ConnectionInfo_GetIsDebugFallback); + ConnectionInfo_GetName = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6953750044596480329UL, ConnectionInfo_GetNameFallback); + ConnectionInfo_GetPasswordHash = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18130628108130086100UL, ConnectionInfo_GetPasswordHashFallback); + ConnectionInfo_GetSocialId = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10464338232675126241UL, ConnectionInfo_GetSocialIdFallback); + Core_CreateBlip = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13157171113093199885UL, Core_CreateBlipFallback); + Core_CreateBlipAttached = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4981285243233056818UL, Core_CreateBlipAttachedFallback); + Core_CreateCheckpoint = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10943478630097466465UL, Core_CreateCheckpointFallback); + Core_CreateColShapeCircle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16729647947124983732UL, Core_CreateColShapeCircleFallback); + Core_CreateColShapeCube = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15746501057225592383UL, Core_CreateColShapeCubeFallback); + Core_CreateColShapeCylinder = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9007404345448984483UL, Core_CreateColShapeCylinderFallback); + Core_CreateColShapePolygon = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18350754907890738983UL, Core_CreateColShapePolygonFallback); + Core_CreateColShapeRectangle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2431987633163786692UL, Core_CreateColShapeRectangleFallback); + Core_CreateColShapeSphere = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 263411922103395123UL, Core_CreateColShapeSphereFallback); + Core_CreateVehicle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6991502881874526937UL, Core_CreateVehicleFallback); + Core_CreateVoiceChannel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12738158914355521961UL, Core_CreateVoiceChannelFallback); + Core_DeallocPedModelInfo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7933678493039322900UL, Core_DeallocPedModelInfoFallback); + Core_DeallocVehicleModelInfo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11272860948152964480UL, Core_DeallocVehicleModelInfoFallback); + Core_DeleteSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3060359612519609111UL, Core_DeleteSyncedMetaDataFallback); + Core_DestroyCheckpoint = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15803665224272553601UL, Core_DestroyCheckpointFallback); + Core_DestroyColShape = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16312284234900575747UL, Core_DestroyColShapeFallback); + Core_DestroyVehicle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14452794280175707515UL, Core_DestroyVehicleFallback); + Core_DestroyVoiceChannel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10333270135403224879UL, Core_DestroyVoiceChannelFallback); + Core_GetNetTime = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15652019729912249391UL, Core_GetNetTimeFallback); + Core_GetPedModelInfo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7718568480211772772UL, Core_GetPedModelInfoFallback); + Core_GetRootDirectory = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12125306445698504265UL, Core_GetRootDirectoryFallback); + Core_GetServerConfig = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14723504540957489106UL, Core_GetServerConfigFallback); + Core_GetVehicleModelInfo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4351657857321681174UL, Core_GetVehicleModelInfoFallback); + Core_HashPassword = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11016797678327133571UL, Core_HashPasswordFallback); + Core_RestartResource = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14370739159812248240UL, Core_RestartResourceFallback); + Core_SetPassword = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6443050816994465854UL, Core_SetPasswordFallback); + Core_SetSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15257521334482717721UL, Core_SetSyncedMetaDataFallback); + Core_SetWorldProfiler = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10444519920811589155UL, Core_SetWorldProfilerFallback); + Core_StartResource = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16286692558347341301UL, Core_StartResourceFallback); + Core_StopResource = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6124037131742433471UL, Core_StopResourceFallback); + Core_StopServer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2943797268083244741UL, Core_StopServerFallback); + Core_SubscribeCommand = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16924649568138200617UL, Core_SubscribeCommandFallback); + Core_TriggerClientEvent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12171087854734907223UL, Core_TriggerClientEventFallback); + Core_TriggerClientEventForAll = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9104514502849926149UL, Core_TriggerClientEventForAllFallback); + Core_TriggerClientEventForSome = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5959099227636084384UL, Core_TriggerClientEventForSomeFallback); + Core_TriggerServerEvent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4092140335578989631UL, Core_TriggerServerEventFallback); + Entity_DeleteStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10985243845337635807UL, Entity_DeleteStreamSyncedMetaDataFallback); + Entity_DeleteSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12452941389796187079UL, Entity_DeleteSyncedMetaDataFallback); + Entity_GetStreamed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10576887087871473326UL, Entity_GetStreamedFallback); + Entity_GetVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10813148612330668827UL, Entity_GetVisibleFallback); + Entity_HasCollision = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2223226199436541021UL, Entity_HasCollisionFallback); + Entity_IsFrozen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7430146286071665147UL, Entity_IsFrozenFallback); + Entity_SetCollision = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10673322505892191972UL, Entity_SetCollisionFallback); + Entity_SetFrozen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2663061204279682928UL, Entity_SetFrozenFallback); + Entity_SetNetOwner = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6937824812303569788UL, Entity_SetNetOwnerFallback); + Entity_SetRotation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7991844148745066430UL, Entity_SetRotationFallback); + Entity_SetStreamed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6004628797499736605UL, Entity_SetStreamedFallback); + Entity_SetStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12798418058428333585UL, Entity_SetStreamSyncedMetaDataFallback); + Entity_SetSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11679630926746145425UL, Entity_SetSyncedMetaDataFallback); + Entity_SetVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8026011842118229214UL, Entity_SetVisibleFallback); + Event_PlayerBeforeConnect_Cancel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1109645609807659186UL, Event_PlayerBeforeConnect_CancelFallback); + Event_WeaponDamageEvent_SetDamageValue = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18440396865533386791UL, Event_WeaponDamageEvent_SetDamageValueFallback); + Player_AddWeaponComponent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9305362021789278268UL, Player_AddWeaponComponentFallback); + Player_AttachToEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5999385547389535594UL, Player_AttachToEntityFallback); + Player_AttachToEntity_BoneString = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13528401515040572380UL, Player_AttachToEntity_BoneStringFallback); + Player_ClearBloodDamage = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1935399752104807234UL, Player_ClearBloodDamageFallback); + Player_ClearProps = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14293729102633233291UL, Player_ClearPropsFallback); + Player_DeleteLocalMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18350138927152444768UL, Player_DeleteLocalMetaDataFallback); + Player_Despawn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10068978925729858744UL, Player_DespawnFallback); + Player_Detach = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10487167350979491509UL, Player_DetachFallback); + Player_GetAuthToken = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1189077145064378629UL, Player_GetAuthTokenFallback); + Player_GetClothes = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5651306477145172672UL, Player_GetClothesFallback); + Player_GetCurrentWeaponTintIndex = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11764387330920927539UL, Player_GetCurrentWeaponTintIndexFallback); + Player_GetDiscordId = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4212976016289999495UL, Player_GetDiscordIdFallback); + Player_GetDlcClothes = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1024671376313962844UL, Player_GetDlcClothesFallback); + Player_GetDlcProps = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13456080432183428807UL, Player_GetDlcPropsFallback); + Player_GetEyeColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7454702606973673436UL, Player_GetEyeColorFallback); + Player_GetFaceFeatureScale = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18060880335075103399UL, Player_GetFaceFeatureScaleFallback); + Player_GetHairColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12027992059985426894UL, Player_GetHairColorFallback); + Player_GetHairHighlightColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12261743220780946704UL, Player_GetHairHighlightColorFallback); + Player_GetHeadBlendData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12996031514192232278UL, Player_GetHeadBlendDataFallback); + Player_GetHeadBlendPaletteColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6875264309357036667UL, Player_GetHeadBlendPaletteColorFallback); + Player_GetHeadOverlay = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18242810182906526031UL, Player_GetHeadOverlayFallback); + Player_GetHwidExHash = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 424368865670330442UL, Player_GetHwidExHashFallback); + Player_GetHwidHash = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9546723288515311389UL, Player_GetHwidHashFallback); + Player_GetInteriorLocation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16961931856292652951UL, Player_GetInteriorLocationFallback); + Player_GetInvincible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7798711259932314794UL, Player_GetInvincibleFallback); + Player_GetIP = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8783734273686352045UL, Player_GetIPFallback); + Player_GetLastDamagedBodyPart = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9058687391069917590UL, Player_GetLastDamagedBodyPartFallback); + Player_GetLocalMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15142887281553588533UL, Player_GetLocalMetaDataFallback); + Player_GetPing = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9418660647453374374UL, Player_GetPingFallback); + Player_GetProps = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8714568292526998675UL, Player_GetPropsFallback); + Player_GetSendNames = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7490273379384857895UL, Player_GetSendNamesFallback); + Player_GetSocialID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17807664466527734655UL, Player_GetSocialIDFallback); + Player_GetWeaponCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17600594564491002166UL, Player_GetWeaponCountFallback); + Player_GetWeapons = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3618744060322552484UL, Player_GetWeaponsFallback); + Player_GetWeaponTintIndex = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7900539810461516189UL, Player_GetWeaponTintIndexFallback); + Player_GiveWeapon = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5246190565479056930UL, Player_GiveWeaponFallback); + Player_HasLocalMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 887625289441263538UL, Player_HasLocalMetaDataFallback); + Player_HasWeaponComponent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18283733509389143244UL, Player_HasWeaponComponentFallback); + Player_IsConnected = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16462043613168172496UL, Player_IsConnectedFallback); + Player_IsCrouching = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14630872318254829849UL, Player_IsCrouchingFallback); + Player_IsEntityInStreamingRange = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4495638180817996194UL, Player_IsEntityInStreamingRangeFallback); + Player_IsStealthy = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13440527787182826435UL, Player_IsStealthyFallback); + Player_IsSuperJumpEnabled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6165254230688543493UL, Player_IsSuperJumpEnabledFallback); + Player_Kick = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1188245696791696101UL, Player_KickFallback); + Player_PlayAmbientSpeech = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8410706621915957253UL, Player_PlayAmbientSpeechFallback); + Player_RemoveAllWeapons = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17492760648600181256UL, Player_RemoveAllWeaponsFallback); + Player_RemoveFaceFeature = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1204109734587833282UL, Player_RemoveFaceFeatureFallback); + Player_RemoveHeadOverlay = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12300710546613769705UL, Player_RemoveHeadOverlayFallback); + Player_RemoveWeapon = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6739305111416325852UL, Player_RemoveWeaponFallback); + Player_RemoveWeaponComponent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 937601034617427157UL, Player_RemoveWeaponComponentFallback); + Player_SetArmor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5448975639456714442UL, Player_SetArmorFallback); + Player_SetClothes = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11224074188063298114UL, Player_SetClothesFallback); + Player_SetCurrentWeapon = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1968418760268978302UL, Player_SetCurrentWeaponFallback); + Player_SetDateTime = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9083292309969581317UL, Player_SetDateTimeFallback); + Player_SetDlcClothes = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9625056966078090800UL, Player_SetDlcClothesFallback); + Player_SetDlcProps = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8489445328683674574UL, Player_SetDlcPropsFallback); + Player_SetEyeColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10735865801793422780UL, Player_SetEyeColorFallback); + Player_SetFaceFeature = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15141272301133032025UL, Player_SetFaceFeatureFallback); + Player_SetHairColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 605531555837771349UL, Player_SetHairColorFallback); + Player_SetHairHighlightColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7824003541268948351UL, Player_SetHairHighlightColorFallback); + Player_SetHeadBlendData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16792485100356674934UL, Player_SetHeadBlendDataFallback); + Player_SetHeadBlendPaletteColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4812058342522920922UL, Player_SetHeadBlendPaletteColorFallback); + Player_SetHeadOverlay = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5036228291735152530UL, Player_SetHeadOverlayFallback); + Player_SetHeadOverlayColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8921506678163013966UL, Player_SetHeadOverlayColorFallback); + Player_SetHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 30941545022839701UL, Player_SetHealthFallback); + Player_SetIntoVehicle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10377816601047780579UL, Player_SetIntoVehicleFallback); + Player_SetInvincible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5652100087484927961UL, Player_SetInvincibleFallback); + Player_SetLastDamagedBodyPart = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10687757689804664093UL, Player_SetLastDamagedBodyPartFallback); + Player_SetLocalMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 827100853319049704UL, Player_SetLocalMetaDataFallback); + Player_SetMaxArmor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 415910985208965186UL, Player_SetMaxArmorFallback); + Player_SetMaxHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10929207046366144781UL, Player_SetMaxHealthFallback); + Player_SetModel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13570087722085690158UL, Player_SetModelFallback); + Player_SetProps = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6668196575965816060UL, Player_SetPropsFallback); + Player_SetSendNames = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15189973730348812706UL, Player_SetSendNamesFallback); + Player_SetWeaponTintIndex = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 968905854061954392UL, Player_SetWeaponTintIndexFallback); + Player_SetWeather = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1822619990745107975UL, Player_SetWeatherFallback); + Player_Spawn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5945475651017052621UL, Player_SpawnFallback); + Resource_GetConfig = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15645223790185503409UL, Resource_GetConfigFallback); + Resource_GetMain = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8337898451868765791UL, Resource_GetMainFallback); + Resource_GetPath = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10659090672396987581UL, Resource_GetPathFallback); + Resource_Start = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2255534561568952884UL, Resource_StartFallback); + Resource_Stop = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7462267939906784556UL, Resource_StopFallback); + Vehicle_AttachToEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7941683858471108696UL, Vehicle_AttachToEntityFallback); + Vehicle_AttachToEntity_BoneString = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7002469465316095428UL, Vehicle_AttachToEntity_BoneStringFallback); + Vehicle_Detach = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6132283343699251351UL, Vehicle_DetachFallback); + Vehicle_DoesWheelHasTire = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8416964569973671667UL, Vehicle_DoesWheelHasTireFallback); + Vehicle_GetAppearanceDataBase64 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3632203335502296505UL, Vehicle_GetAppearanceDataBase64Fallback); + Vehicle_GetArmoredWindowHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7966408129250273744UL, Vehicle_GetArmoredWindowHealthFallback); + Vehicle_GetArmoredWindowShootCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1975272227796355721UL, Vehicle_GetArmoredWindowShootCountFallback); + Vehicle_GetAttached = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2423140866671700142UL, Vehicle_GetAttachedFallback); + Vehicle_GetAttachedTo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1884500231720349747UL, Vehicle_GetAttachedToFallback); + Vehicle_GetBoatAnchor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15746529459417614900UL, Vehicle_GetBoatAnchorFallback); + Vehicle_GetBodyAdditionalHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1269347486506827783UL, Vehicle_GetBodyAdditionalHealthFallback); + Vehicle_GetBodyHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2235337646201152502UL, Vehicle_GetBodyHealthFallback); + Vehicle_GetBumperDamageLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2929119416191807641UL, Vehicle_GetBumperDamageLevelFallback); + Vehicle_GetCounterMeasureCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7262431296410707143UL, Vehicle_GetCounterMeasureCountFallback); + Vehicle_GetCustomTires = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16298627533374836407UL, Vehicle_GetCustomTiresFallback); + Vehicle_GetDamageDataBase64 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4393478606065674962UL, Vehicle_GetDamageDataBase64Fallback); + Vehicle_GetDashboardColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3164804470767655728UL, Vehicle_GetDashboardColorFallback); + Vehicle_GetDirtLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1312826368700331414UL, Vehicle_GetDirtLevelFallback); + Vehicle_GetDoorState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3655237348473428026UL, Vehicle_GetDoorStateFallback); + Vehicle_GetDriver = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8554773347420139463UL, Vehicle_GetDriverFallback); + Vehicle_GetDriverID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6476166832678215577UL, Vehicle_GetDriverIDFallback); + Vehicle_GetEngineHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8002690258276396481UL, Vehicle_GetEngineHealthFallback); + Vehicle_GetGameStateBase64 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4097244648501164820UL, Vehicle_GetGameStateBase64Fallback); + Vehicle_GetHeadlightColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10761034670704244318UL, Vehicle_GetHeadlightColorFallback); + Vehicle_GetHealthDataBase64 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16435096973185009469UL, Vehicle_GetHealthDataBase64Fallback); + Vehicle_GetHybridExtraActive = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13937947855950420355UL, Vehicle_GetHybridExtraActiveFallback); + Vehicle_GetHybridExtraState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13357688267232314078UL, Vehicle_GetHybridExtraStateFallback); + Vehicle_GetInteriorColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16605858542065332380UL, Vehicle_GetInteriorColorFallback); + Vehicle_GetLightsMultiplier = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 554317566951363114UL, Vehicle_GetLightsMultiplierFallback); + Vehicle_GetLightState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8516664736191903198UL, Vehicle_GetLightStateFallback); + Vehicle_GetLivery = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15183248080542367608UL, Vehicle_GetLiveryFallback); + Vehicle_GetLockState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7643361960323807741UL, Vehicle_GetLockStateFallback); + Vehicle_GetMod = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2523210803484160525UL, Vehicle_GetModFallback); + Vehicle_GetModKit = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15776275225618936077UL, Vehicle_GetModKitFallback); + Vehicle_GetModKitsCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12663576059300545357UL, Vehicle_GetModKitsCountFallback); + Vehicle_GetModsCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 575873775847860285UL, Vehicle_GetModsCountFallback); + Vehicle_GetNeonActive = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12498704994887046670UL, Vehicle_GetNeonActiveFallback); + Vehicle_GetNeonColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6406234233502748685UL, Vehicle_GetNeonColorFallback); + Vehicle_GetNumberplateIndex = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13944338770493453261UL, Vehicle_GetNumberplateIndexFallback); + Vehicle_GetNumberplateText = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10767500614704999252UL, Vehicle_GetNumberplateTextFallback); + Vehicle_GetPartBulletHoles = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6808733807057690309UL, Vehicle_GetPartBulletHolesFallback); + Vehicle_GetPartDamageLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12086844516725116331UL, Vehicle_GetPartDamageLevelFallback); + Vehicle_GetPearlColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15213363766571057872UL, Vehicle_GetPearlColorFallback); + Vehicle_GetPrimaryColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6361531094469306918UL, Vehicle_GetPrimaryColorFallback); + Vehicle_GetPrimaryColorRGB = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12628655035446474558UL, Vehicle_GetPrimaryColorRGBFallback); + Vehicle_GetRadioStationIndex = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4283418015941180107UL, Vehicle_GetRadioStationIndexFallback); + Vehicle_GetRearWheelVariation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3402335583322585123UL, Vehicle_GetRearWheelVariationFallback); + Vehicle_GetRepairsCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13519520674920899414UL, Vehicle_GetRepairsCountFallback); + Vehicle_GetRocketRefuelSpeed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15609307098236441512UL, Vehicle_GetRocketRefuelSpeedFallback); + Vehicle_GetRoofLivery = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2608479699205284158UL, Vehicle_GetRoofLiveryFallback); + Vehicle_GetRoofState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7626267752797424064UL, Vehicle_GetRoofStateFallback); + Vehicle_GetScriptDataBase64 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14998297632079967688UL, Vehicle_GetScriptDataBase64Fallback); + Vehicle_GetScriptMaxSpeed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17416808335692421258UL, Vehicle_GetScriptMaxSpeedFallback); + Vehicle_GetSecondaryColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14172903387851795634UL, Vehicle_GetSecondaryColorFallback); + Vehicle_GetSecondaryColorRGB = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14310164949555082610UL, Vehicle_GetSecondaryColorRGBFallback); + Vehicle_GetSpecialDarkness = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14213848578023585681UL, Vehicle_GetSpecialDarknessFallback); + Vehicle_GetTimedExplosionCulprit = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10814387811937670626UL, Vehicle_GetTimedExplosionCulpritFallback); + Vehicle_GetTimedExplosionTime = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8302796318601840675UL, Vehicle_GetTimedExplosionTimeFallback); + Vehicle_GetTireSmokeColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8782960240081250816UL, Vehicle_GetTireSmokeColorFallback); + Vehicle_GetTrainCarriageConfigIndex = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3570735871695593196UL, Vehicle_GetTrainCarriageConfigIndexFallback); + Vehicle_GetTrainConfigIndex = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1475332107693048062UL, Vehicle_GetTrainConfigIndexFallback); + Vehicle_GetTrainCruiseSpeed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17701404211540696024UL, Vehicle_GetTrainCruiseSpeedFallback); + Vehicle_GetTrainDirection = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11490711419926021348UL, Vehicle_GetTrainDirectionFallback); + Vehicle_GetTrainDistanceFromEngine = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13171736797128222753UL, Vehicle_GetTrainDistanceFromEngineFallback); + Vehicle_GetTrainEngineId = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9254867853965609035UL, Vehicle_GetTrainEngineIdFallback); + Vehicle_GetTrainForceDoorsOpen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10757720802904664655UL, Vehicle_GetTrainForceDoorsOpenFallback); + Vehicle_GetTrainLinkedToBackwardId = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6553325610630104416UL, Vehicle_GetTrainLinkedToBackwardIdFallback); + Vehicle_GetTrainLinkedToForwardId = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11637828876482387744UL, Vehicle_GetTrainLinkedToForwardIdFallback); + Vehicle_GetTrainRenderDerailed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14185875420107220449UL, Vehicle_GetTrainRenderDerailedFallback); + Vehicle_GetTrainTrackId = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7440218482625997154UL, Vehicle_GetTrainTrackIdFallback); + Vehicle_GetVelocity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9475232218292516780UL, Vehicle_GetVelocityFallback); + Vehicle_GetWeaponCapacity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1039686418406101301UL, Vehicle_GetWeaponCapacityFallback); + Vehicle_GetWheelColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18347498466552743195UL, Vehicle_GetWheelColorFallback); + Vehicle_GetWheelHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18444275782955971099UL, Vehicle_GetWheelHealthFallback); + Vehicle_GetWheelType = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12014486823114077012UL, Vehicle_GetWheelTypeFallback); + Vehicle_GetWheelVariation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16504007791942538449UL, Vehicle_GetWheelVariationFallback); + Vehicle_GetWindowTint = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7070676377669679790UL, Vehicle_GetWindowTintFallback); + Vehicle_HasArmoredWindows = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4293189270879516620UL, Vehicle_HasArmoredWindowsFallback); + Vehicle_HasTimedExplosion = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12830650519090663455UL, Vehicle_HasTimedExplosionFallback); + Vehicle_HasTrainPassengerCarriages = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2554444105701754850UL, Vehicle_HasTrainPassengerCarriagesFallback); + Vehicle_IsDaylightOn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6335054158572605752UL, Vehicle_IsDaylightOnFallback); + Vehicle_IsDestroyed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7449429529924688924UL, Vehicle_IsDestroyedFallback); + Vehicle_IsDriftMode = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15743310844658047717UL, Vehicle_IsDriftModeFallback); + Vehicle_IsEngineOn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3514385841065133724UL, Vehicle_IsEngineOnFallback); + Vehicle_IsExtraOn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18360767208271729044UL, Vehicle_IsExtraOnFallback); + Vehicle_IsFlamethrowerActive = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 292816396413146289UL, Vehicle_IsFlamethrowerActiveFallback); + Vehicle_IsHandbrakeActive = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11030244632469291311UL, Vehicle_IsHandbrakeActiveFallback); + Vehicle_IsLightDamaged = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5253270677373576288UL, Vehicle_IsLightDamagedFallback); + Vehicle_IsManualEngineControl = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17339945504294461378UL, Vehicle_IsManualEngineControlFallback); + Vehicle_IsNeonActive = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6810098793323566371UL, Vehicle_IsNeonActiveFallback); + Vehicle_IsNightlightOn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 393593600849553108UL, Vehicle_IsNightlightOnFallback); + Vehicle_IsPrimaryColorRGB = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3246602745742951177UL, Vehicle_IsPrimaryColorRGBFallback); + Vehicle_IsSecondaryColorRGB = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5475689999282997661UL, Vehicle_IsSecondaryColorRGBFallback); + Vehicle_IsSirenActive = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14858049513303226544UL, Vehicle_IsSirenActiveFallback); + Vehicle_IsSpecialLightDamaged = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 631190088328166457UL, Vehicle_IsSpecialLightDamagedFallback); + Vehicle_IsTireSmokeColorCustom = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8265817743805565238UL, Vehicle_IsTireSmokeColorCustomFallback); + Vehicle_IsTowingDisabled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9684236099723813055UL, Vehicle_IsTowingDisabledFallback); + Vehicle_IsTrainCaboose = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15357409166142265171UL, Vehicle_IsTrainCabooseFallback); + Vehicle_IsTrainEngine = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16222854328452812697UL, Vehicle_IsTrainEngineFallback); + Vehicle_IsTrainMissionTrain = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3888784849052609375UL, Vehicle_IsTrainMissionTrainFallback); + Vehicle_IsWheelBurst = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7387521157980114232UL, Vehicle_IsWheelBurstFallback); + Vehicle_IsWheelDetached = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16637629476435945994UL, Vehicle_IsWheelDetachedFallback); + Vehicle_IsWheelOnFire = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8838149399450321903UL, Vehicle_IsWheelOnFireFallback); + Vehicle_IsWindowDamaged = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11826181606742921976UL, Vehicle_IsWindowDamagedFallback); + Vehicle_IsWindowOpened = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18379774352659401934UL, Vehicle_IsWindowOpenedFallback); + Vehicle_LoadAppearanceDataFromBase64 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16083140820382459150UL, Vehicle_LoadAppearanceDataFromBase64Fallback); + Vehicle_LoadDamageDataFromBase64 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17122813768646519469UL, Vehicle_LoadDamageDataFromBase64Fallback); + Vehicle_LoadGameStateFromBase64 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12185057153568059447UL, Vehicle_LoadGameStateFromBase64Fallback); + Vehicle_LoadHealthDataFromBase64 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7534930619285916522UL, Vehicle_LoadHealthDataFromBase64Fallback); + Vehicle_LoadScriptDataFromBase64 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15701706088061678883UL, Vehicle_LoadScriptDataFromBase64Fallback); + Vehicle_Repair = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 277481303661922113UL, Vehicle_RepairFallback); + Vehicle_SetArmoredWindowHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1070345202824576095UL, Vehicle_SetArmoredWindowHealthFallback); + Vehicle_SetArmoredWindowShootCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4149223353503655708UL, Vehicle_SetArmoredWindowShootCountFallback); + Vehicle_SetBoatAnchor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16890059088943800731UL, Vehicle_SetBoatAnchorFallback); + Vehicle_SetBodyAdditionalHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5545167983491514394UL, Vehicle_SetBodyAdditionalHealthFallback); + Vehicle_SetBodyHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13734895793996634557UL, Vehicle_SetBodyHealthFallback); + Vehicle_SetBumperDamageLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4896146170857709532UL, Vehicle_SetBumperDamageLevelFallback); + Vehicle_SetCounterMeasureCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14151953087246239474UL, Vehicle_SetCounterMeasureCountFallback); + Vehicle_SetCustomTires = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11016824015312467794UL, Vehicle_SetCustomTiresFallback); + Vehicle_SetDashboardColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3393145177112569271UL, Vehicle_SetDashboardColorFallback); + Vehicle_SetDirtLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10492762472194549229UL, Vehicle_SetDirtLevelFallback); + Vehicle_SetDisableTowing = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4356512486587209458UL, Vehicle_SetDisableTowingFallback); + Vehicle_SetDoorState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8306743616252697089UL, Vehicle_SetDoorStateFallback); + Vehicle_SetDriftMode = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17899000422270832188UL, Vehicle_SetDriftModeFallback); + Vehicle_SetEngineHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5199230521114654156UL, Vehicle_SetEngineHealthFallback); + Vehicle_SetEngineOn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16791686050420127303UL, Vehicle_SetEngineOnFallback); + Vehicle_SetHeadlightColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5418309160808792661UL, Vehicle_SetHeadlightColorFallback); + Vehicle_SetHybridExtraActive = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3459212622909721246UL, Vehicle_SetHybridExtraActiveFallback); + Vehicle_SetHybridExtraState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15855843859771568037UL, Vehicle_SetHybridExtraStateFallback); + Vehicle_SetInteriorColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17031985447220940355UL, Vehicle_SetInteriorColorFallback); + Vehicle_SetLightDamaged = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11273288101046838075UL, Vehicle_SetLightDamagedFallback); + Vehicle_SetLightsMultiplier = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8647644719134395873UL, Vehicle_SetLightsMultiplierFallback); + Vehicle_SetLightState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7273524217581467669UL, Vehicle_SetLightStateFallback); + Vehicle_SetLivery = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9411581988332289159UL, Vehicle_SetLiveryFallback); + Vehicle_SetLockState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14764372114954550256UL, Vehicle_SetLockStateFallback); + Vehicle_SetManualEngineControl = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3379206359062776477UL, Vehicle_SetManualEngineControlFallback); + Vehicle_SetMod = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1085868007361817261UL, Vehicle_SetModFallback); + Vehicle_SetModKit = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11564299376170797237UL, Vehicle_SetModKitFallback); + Vehicle_SetNeonActive = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1179535280233814898UL, Vehicle_SetNeonActiveFallback); + Vehicle_SetNeonColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2251350605404815111UL, Vehicle_SetNeonColorFallback); + Vehicle_SetNumberplateIndex = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18117779513936541448UL, Vehicle_SetNumberplateIndexFallback); + Vehicle_SetNumberplateText = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5374563022053443727UL, Vehicle_SetNumberplateTextFallback); + Vehicle_SetPartBulletHoles = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2632373577418693136UL, Vehicle_SetPartBulletHolesFallback); + Vehicle_SetPartDamageLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12872008344641145022UL, Vehicle_SetPartDamageLevelFallback); + Vehicle_SetPearlColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5092442984600044063UL, Vehicle_SetPearlColorFallback); + Vehicle_SetPetrolTankHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8082406915422712268UL, Vehicle_SetPetrolTankHealthFallback); + Vehicle_SetPrimaryColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1331330944977889229UL, Vehicle_SetPrimaryColorFallback); + Vehicle_SetPrimaryColorRGB = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10226234016994918718UL, Vehicle_SetPrimaryColorRGBFallback); + Vehicle_SetRadioStationIndex = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10139114821440740454UL, Vehicle_SetRadioStationIndexFallback); + Vehicle_SetRearWheels = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11398193715753714450UL, Vehicle_SetRearWheelsFallback); + Vehicle_SetRocketRefuelSpeed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13400577352062327287UL, Vehicle_SetRocketRefuelSpeedFallback); + Vehicle_SetRoofLivery = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9945220895029722645UL, Vehicle_SetRoofLiveryFallback); + Vehicle_SetRoofState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 291656348104897951UL, Vehicle_SetRoofStateFallback); + Vehicle_SetScriptMaxSpeed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10329727708072570961UL, Vehicle_SetScriptMaxSpeedFallback); + Vehicle_SetSearchLight = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6097044472677911959UL, Vehicle_SetSearchLightFallback); + Vehicle_SetSecondaryColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13723206556140558193UL, Vehicle_SetSecondaryColorFallback); + Vehicle_SetSecondaryColorRGB = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16506735945362713754UL, Vehicle_SetSecondaryColorRGBFallback); + Vehicle_SetSirenActive = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15323536650696226427UL, Vehicle_SetSirenActiveFallback); + Vehicle_SetSpecialDarkness = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13869206981302306804UL, Vehicle_SetSpecialDarknessFallback); + Vehicle_SetSpecialLightDamaged = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9711604970429202256UL, Vehicle_SetSpecialLightDamagedFallback); + Vehicle_SetTimedExplosion = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15896352255837413981UL, Vehicle_SetTimedExplosionFallback); + Vehicle_SetTireSmokeColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11349512303408646456UL, Vehicle_SetTireSmokeColorFallback); + Vehicle_SetTrainCarriageConfigIndex = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8624297097646879723UL, Vehicle_SetTrainCarriageConfigIndexFallback); + Vehicle_SetTrainConfigIndex = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2622923135355073453UL, Vehicle_SetTrainConfigIndexFallback); + Vehicle_SetTrainCruiseSpeed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8274946090311724863UL, Vehicle_SetTrainCruiseSpeedFallback); + Vehicle_SetTrainDirection = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 697887686207032355UL, Vehicle_SetTrainDirectionFallback); + Vehicle_SetTrainDistanceFromEngine = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2786180204541667140UL, Vehicle_SetTrainDistanceFromEngineFallback); + Vehicle_SetTrainEngineId = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6554134726739178678UL, Vehicle_SetTrainEngineIdFallback); + Vehicle_SetTrainForceDoorsOpen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12186181581499607474UL, Vehicle_SetTrainForceDoorsOpenFallback); + Vehicle_SetTrainHasPassengerCarriages = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9294807688485485845UL, Vehicle_SetTrainHasPassengerCarriagesFallback); + Vehicle_SetTrainIsCaboose = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17771148548114657406UL, Vehicle_SetTrainIsCabooseFallback); + Vehicle_SetTrainIsEngine = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1304693086007295180UL, Vehicle_SetTrainIsEngineFallback); + Vehicle_SetTrainLinkedToBackwardId = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4139956032923379799UL, Vehicle_SetTrainLinkedToBackwardIdFallback); + Vehicle_SetTrainLinkedToForwardId = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9207317571714316271UL, Vehicle_SetTrainLinkedToForwardIdFallback); + Vehicle_SetTrainMissionTrain = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12521424597295262006UL, Vehicle_SetTrainMissionTrainFallback); + Vehicle_SetTrainRenderDerailed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2100308379463132708UL, Vehicle_SetTrainRenderDerailedFallback); + Vehicle_SetTrainTrackId = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11491059579250577481UL, Vehicle_SetTrainTrackIdFallback); + Vehicle_SetWeaponCapacity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12549320757916354512UL, Vehicle_SetWeaponCapacityFallback); + Vehicle_SetWheelBurst = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1262538630118544211UL, Vehicle_SetWheelBurstFallback); + Vehicle_SetWheelColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15740365027195564678UL, Vehicle_SetWheelColorFallback); + Vehicle_SetWheelDetached = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11278902748564777637UL, Vehicle_SetWheelDetachedFallback); + Vehicle_SetWheelFixed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 445307264281942855UL, Vehicle_SetWheelFixedFallback); + Vehicle_SetWheelHasTire = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18173107351820543411UL, Vehicle_SetWheelHasTireFallback); + Vehicle_SetWheelHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10027959156108587406UL, Vehicle_SetWheelHealthFallback); + Vehicle_SetWheelOnFire = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5586813169125693654UL, Vehicle_SetWheelOnFireFallback); + Vehicle_SetWheels = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10816155882129241208UL, Vehicle_SetWheelsFallback); + Vehicle_SetWindowDamaged = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13639034057684506659UL, Vehicle_SetWindowDamagedFallback); + Vehicle_SetWindowOpened = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15969735534680114761UL, Vehicle_SetWindowOpenedFallback); + Vehicle_SetWindowTint = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9528711699442427461UL, Vehicle_SetWindowTintFallback); + Vehicle_ToggleExtra = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1279447449950278570UL, Vehicle_ToggleExtraFallback); + VoiceChannel_AddPlayer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 702226521113983568UL, VoiceChannel_AddPlayerFallback); + VoiceChannel_DeleteMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16738120789012782745UL, VoiceChannel_DeleteMetaDataFallback); + VoiceChannel_GetBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11734947529465976092UL, VoiceChannel_GetBaseObjectFallback); + VoiceChannel_GetMaxDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6192611943068059113UL, VoiceChannel_GetMaxDistanceFallback); + VoiceChannel_GetMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8356047581859527124UL, VoiceChannel_GetMetaDataFallback); + VoiceChannel_HasMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16274950114573272151UL, VoiceChannel_HasMetaDataFallback); + VoiceChannel_HasPlayer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5581422978656581114UL, VoiceChannel_HasPlayerFallback); + VoiceChannel_IsPlayerMuted = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17699707908321743267UL, VoiceChannel_IsPlayerMutedFallback); + VoiceChannel_IsSpatial = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12897039523672598867UL, VoiceChannel_IsSpatialFallback); + VoiceChannel_MutePlayer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13531299650637927664UL, VoiceChannel_MutePlayerFallback); + VoiceChannel_RemovePlayer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12004786576328264047UL, VoiceChannel_RemovePlayerFallback); + VoiceChannel_SetMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15510848492294686387UL, VoiceChannel_SetMetaDataFallback); + VoiceChannel_UnmutePlayer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10269140636860300589UL, VoiceChannel_UnmutePlayerFallback); + WorldObject_GetDimension = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17276300057698662707UL, WorldObject_GetDimensionFallback); + WorldObject_GetPositionCoords = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16135129168754632706UL, WorldObject_GetPositionCoordsFallback); + WorldObject_SetDimension = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8281427375806201830UL, WorldObject_SetDimensionFallback); + WorldObject_SetPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15027192667173077188UL, WorldObject_SetPositionFallback); } } } \ No newline at end of file diff --git a/api/AltV.Net.CApi/Libraries/SharedLibrary.cs b/api/AltV.Net.CApi/Libraries/SharedLibrary.cs index c28d9e5dd..be1c8a18e 100644 --- a/api/AltV.Net.CApi/Libraries/SharedLibrary.cs +++ b/api/AltV.Net.CApi/Libraries/SharedLibrary.cs @@ -1,15 +1,15 @@ +// ReSharper disable InconsistentNaming using AltV.Net.Data; using System.Numerics; -using System.Reflection; using System.Runtime.InteropServices; using AltV.Net.Elements.Args; using AltV.Net.Elements.Entities; -using AltV.Net.Native; namespace AltV.Net.CApi.Libraries { public unsafe interface ISharedLibrary { + public bool Outdated { get; } public delegate* unmanaged[Cdecl] BaseObject_DeleteMetaData { get; } public delegate* unmanaged[Cdecl] BaseObject_DestructCache { get; } public delegate* unmanaged[Cdecl] BaseObject_GetMetaData { get; } @@ -268,7 +268,7 @@ public unsafe interface ISharedLibrary public unsafe class SharedLibrary : ISharedLibrary { - public readonly uint Methods = 1312; + public readonly uint Methods = 1328; public delegate* unmanaged[Cdecl] BaseObject_DeleteMetaData { get; } public delegate* unmanaged[Cdecl] BaseObject_DestructCache { get; } public delegate* unmanaged[Cdecl] BaseObject_GetMetaData { get; } @@ -523,262 +523,778 @@ public unsafe class SharedLibrary : ISharedLibrary public delegate* unmanaged[Cdecl] Vehicle_GetWheelsCount { get; } public delegate* unmanaged[Cdecl] WorldObject_GetBaseObject { get; } public delegate* unmanaged[Cdecl] WorldObject_GetPosition { get; } + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void BaseObject_DeleteMetaDataDelegate(nint _baseObject, nint _key); + private static void BaseObject_DeleteMetaDataFallback(nint _baseObject, nint _key) => throw new Exceptions.OutdatedSdkException("BaseObject_DeleteMetaData", "BaseObject_DeleteMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void BaseObject_DestructCacheDelegate(nint _baseObject); + private static void BaseObject_DestructCacheFallback(nint _baseObject) => throw new Exceptions.OutdatedSdkException("BaseObject_DestructCache", "BaseObject_DestructCache SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint BaseObject_GetMetaDataDelegate(nint _baseObject, nint _key); + private static nint BaseObject_GetMetaDataFallback(nint _baseObject, nint _key) => throw new Exceptions.OutdatedSdkException("BaseObject_GetMetaData", "BaseObject_GetMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte BaseObject_GetTypeDelegate(nint _baseObject); + private static byte BaseObject_GetTypeFallback(nint _baseObject) => throw new Exceptions.OutdatedSdkException("BaseObject_GetType", "BaseObject_GetType SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte BaseObject_HasMetaDataDelegate(nint _baseObject, nint _key); + private static byte BaseObject_HasMetaDataFallback(nint _baseObject, nint _key) => throw new Exceptions.OutdatedSdkException("BaseObject_HasMetaData", "BaseObject_HasMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void BaseObject_SetMetaDataDelegate(nint _baseObject, nint _key, nint _value); + private static void BaseObject_SetMetaDataFallback(nint _baseObject, nint _key, nint _value) => throw new Exceptions.OutdatedSdkException("BaseObject_SetMetaData", "BaseObject_SetMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint BaseObject_TryCacheDelegate(nint _baseObject); + private static nint BaseObject_TryCacheFallback(nint _baseObject) => throw new Exceptions.OutdatedSdkException("BaseObject_TryCache", "BaseObject_TryCache SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_FadeDelegate(nint _blip, uint _opacity, uint _duration); + private static void Blip_FadeFallback(nint _blip, uint _opacity, uint _duration) => throw new Exceptions.OutdatedSdkException("Blip_Fade", "Blip_Fade SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetAlphaDelegate(nint _blip); + private static byte Blip_GetAlphaFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetAlpha", "Blip_GetAlpha SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetAsFriendlyDelegate(nint _blip); + private static byte Blip_GetAsFriendlyFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetAsFriendly", "Blip_GetAsFriendly SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetAsHighDetailDelegate(nint _blip); + private static byte Blip_GetAsHighDetailFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetAsHighDetail", "Blip_GetAsHighDetail SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetAsMissionCreatorDelegate(nint _blip); + private static byte Blip_GetAsMissionCreatorFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetAsMissionCreator", "Blip_GetAsMissionCreator SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetAsShortRangeDelegate(nint _blip); + private static byte Blip_GetAsShortRangeFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetAsShortRange", "Blip_GetAsShortRange SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetBrightDelegate(nint _blip); + private static byte Blip_GetBrightFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetBright", "Blip_GetBright SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Blip_GetCategoryDelegate(nint _blip); + private static ushort Blip_GetCategoryFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetCategory", "Blip_GetCategory SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetColorDelegate(nint _blip); + private static byte Blip_GetColorFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetColor", "Blip_GetColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetCrewIndicatorVisibleDelegate(nint _blip); + private static byte Blip_GetCrewIndicatorVisibleFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetCrewIndicatorVisible", "Blip_GetCrewIndicatorVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate short Blip_GetDisplayDelegate(nint _blip); + private static short Blip_GetDisplayFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetDisplay", "Blip_GetDisplay SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetFlashesDelegate(nint _blip); + private static byte Blip_GetFlashesFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetFlashes", "Blip_GetFlashes SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetFlashesAlternateDelegate(nint _blip); + private static byte Blip_GetFlashesAlternateFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetFlashesAlternate", "Blip_GetFlashesAlternate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Blip_GetFlashIntervalDelegate(nint _blip); + private static ushort Blip_GetFlashIntervalFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetFlashInterval", "Blip_GetFlashInterval SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Blip_GetFlashTimerDelegate(nint _blip); + private static ushort Blip_GetFlashTimerFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetFlashTimer", "Blip_GetFlashTimer SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetFriendIndicatorVisibleDelegate(nint _blip); + private static byte Blip_GetFriendIndicatorVisibleFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetFriendIndicatorVisible", "Blip_GetFriendIndicatorVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Blip_GetGxtNameDelegate(nint _blip, int* _size); + private static nint Blip_GetGxtNameFallback(nint _blip, int* _size) => throw new Exceptions.OutdatedSdkException("Blip_GetGxtName", "Blip_GetGxtName SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetHeadingIndicatorVisibleDelegate(nint _blip); + private static byte Blip_GetHeadingIndicatorVisibleFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetHeadingIndicatorVisible", "Blip_GetHeadingIndicatorVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Blip_GetNameDelegate(nint _blip, int* _size); + private static nint Blip_GetNameFallback(nint _blip, int* _size) => throw new Exceptions.OutdatedSdkException("Blip_GetName", "Blip_GetName SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Blip_GetNumberDelegate(nint _blip); + private static ushort Blip_GetNumberFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetNumber", "Blip_GetNumber SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetOutlineIndicatorVisibleDelegate(nint _blip); + private static byte Blip_GetOutlineIndicatorVisibleFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetOutlineIndicatorVisible", "Blip_GetOutlineIndicatorVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Blip_GetPriorityDelegate(nint _blip); + private static ushort Blip_GetPriorityFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetPriority", "Blip_GetPriority SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetPulseDelegate(nint _blip); + private static byte Blip_GetPulseFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetPulse", "Blip_GetPulse SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Blip_GetRotationDelegate(nint _blip); + private static float Blip_GetRotationFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetRotation", "Blip_GetRotation SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetRouteDelegate(nint _blip); + private static byte Blip_GetRouteFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetRoute", "Blip_GetRoute SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_GetRouteColorDelegate(nint _blip, Rgba* _color); + private static void Blip_GetRouteColorFallback(nint _blip, Rgba* _color) => throw new Exceptions.OutdatedSdkException("Blip_GetRouteColor", "Blip_GetRouteColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_GetScaleXYDelegate(nint _blip, Vector2* _scale); + private static void Blip_GetScaleXYFallback(nint _blip, Vector2* _scale) => throw new Exceptions.OutdatedSdkException("Blip_GetScaleXY", "Blip_GetScaleXY SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_GetSecondaryColorDelegate(nint _blip, Rgba* _color); + private static void Blip_GetSecondaryColorFallback(nint _blip, Rgba* _color) => throw new Exceptions.OutdatedSdkException("Blip_GetSecondaryColor", "Blip_GetSecondaryColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetShowConeDelegate(nint _blip); + private static byte Blip_GetShowConeFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetShowCone", "Blip_GetShowCone SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetShrinkedDelegate(nint _blip); + private static byte Blip_GetShrinkedFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetShrinked", "Blip_GetShrinked SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Blip_GetSpriteDelegate(nint _blip); + private static ushort Blip_GetSpriteFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetSprite", "Blip_GetSprite SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetTickVisibleDelegate(nint _blip); + private static byte Blip_GetTickVisibleFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetTickVisible", "Blip_GetTickVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetTypeDelegate(nint _blip); + private static byte Blip_GetTypeFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetType", "Blip_GetType SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Blip_GetWorldObjectDelegate(nint _blip); + private static nint Blip_GetWorldObjectFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetWorldObject", "Blip_GetWorldObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_IsGlobalDelegate(nint _blip); + private static byte Blip_IsGlobalFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_IsGlobal", "Blip_IsGlobal SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetAlphaDelegate(nint _blip, byte _alpha); + private static void Blip_SetAlphaFallback(nint _blip, byte _alpha) => throw new Exceptions.OutdatedSdkException("Blip_SetAlpha", "Blip_SetAlpha SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetAsFriendlyDelegate(nint _blip, byte _friendly); + private static void Blip_SetAsFriendlyFallback(nint _blip, byte _friendly) => throw new Exceptions.OutdatedSdkException("Blip_SetAsFriendly", "Blip_SetAsFriendly SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetAsHighDetailDelegate(nint _blip, byte _state); + private static void Blip_SetAsHighDetailFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetAsHighDetail", "Blip_SetAsHighDetail SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetAsMissionCreatorDelegate(nint _blip, byte _state); + private static void Blip_SetAsMissionCreatorFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetAsMissionCreator", "Blip_SetAsMissionCreator SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetAsShortRangeDelegate(nint _blip, byte _state); + private static void Blip_SetAsShortRangeFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetAsShortRange", "Blip_SetAsShortRange SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetBrightDelegate(nint _blip, byte _state); + private static void Blip_SetBrightFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetBright", "Blip_SetBright SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetCategoryDelegate(nint _blip, ushort _category); + private static void Blip_SetCategoryFallback(nint _blip, ushort _category) => throw new Exceptions.OutdatedSdkException("Blip_SetCategory", "Blip_SetCategory SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetColorDelegate(nint _blip, byte _color); + private static void Blip_SetColorFallback(nint _blip, byte _color) => throw new Exceptions.OutdatedSdkException("Blip_SetColor", "Blip_SetColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetCrewIndicatorVisibleDelegate(nint _blip, byte _state); + private static void Blip_SetCrewIndicatorVisibleFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetCrewIndicatorVisible", "Blip_SetCrewIndicatorVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetDisplayDelegate(nint _blip, short _display); + private static void Blip_SetDisplayFallback(nint _blip, short _display) => throw new Exceptions.OutdatedSdkException("Blip_SetDisplay", "Blip_SetDisplay SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetFlashesDelegate(nint _blip, byte _state); + private static void Blip_SetFlashesFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetFlashes", "Blip_SetFlashes SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetFlashesAlternateDelegate(nint _blip, byte _state); + private static void Blip_SetFlashesAlternateFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetFlashesAlternate", "Blip_SetFlashesAlternate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetFlashIntervalDelegate(nint _blip, ushort _interval); + private static void Blip_SetFlashIntervalFallback(nint _blip, ushort _interval) => throw new Exceptions.OutdatedSdkException("Blip_SetFlashInterval", "Blip_SetFlashInterval SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetFlashTimerDelegate(nint _blip, ushort _timer); + private static void Blip_SetFlashTimerFallback(nint _blip, ushort _timer) => throw new Exceptions.OutdatedSdkException("Blip_SetFlashTimer", "Blip_SetFlashTimer SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetFriendIndicatorVisibleDelegate(nint _blip, byte _state); + private static void Blip_SetFriendIndicatorVisibleFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetFriendIndicatorVisible", "Blip_SetFriendIndicatorVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetGxtNameDelegate(nint _blip, nint _name); + private static void Blip_SetGxtNameFallback(nint _blip, nint _name) => throw new Exceptions.OutdatedSdkException("Blip_SetGxtName", "Blip_SetGxtName SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetHeadingIndicatorVisibleDelegate(nint _blip, byte _state); + private static void Blip_SetHeadingIndicatorVisibleFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetHeadingIndicatorVisible", "Blip_SetHeadingIndicatorVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetNameDelegate(nint _blip, nint _name); + private static void Blip_SetNameFallback(nint _blip, nint _name) => throw new Exceptions.OutdatedSdkException("Blip_SetName", "Blip_SetName SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetNumberDelegate(nint _blip, ushort _number); + private static void Blip_SetNumberFallback(nint _blip, ushort _number) => throw new Exceptions.OutdatedSdkException("Blip_SetNumber", "Blip_SetNumber SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetOutlineIndicatorVisibleDelegate(nint _blip, byte _state); + private static void Blip_SetOutlineIndicatorVisibleFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetOutlineIndicatorVisible", "Blip_SetOutlineIndicatorVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetPriorityDelegate(nint _blip, ushort _priority); + private static void Blip_SetPriorityFallback(nint _blip, ushort _priority) => throw new Exceptions.OutdatedSdkException("Blip_SetPriority", "Blip_SetPriority SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetPulseDelegate(nint _blip, byte _state); + private static void Blip_SetPulseFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetPulse", "Blip_SetPulse SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetRotationDelegate(nint _blip, float _rotation); + private static void Blip_SetRotationFallback(nint _blip, float _rotation) => throw new Exceptions.OutdatedSdkException("Blip_SetRotation", "Blip_SetRotation SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetRouteDelegate(nint _blip, byte _state); + private static void Blip_SetRouteFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetRoute", "Blip_SetRoute SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetRouteColorDelegate(nint _blip, Rgba _color); + private static void Blip_SetRouteColorFallback(nint _blip, Rgba _color) => throw new Exceptions.OutdatedSdkException("Blip_SetRouteColor", "Blip_SetRouteColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetScaleXYDelegate(nint _blip, Vector2 _scale); + private static void Blip_SetScaleXYFallback(nint _blip, Vector2 _scale) => throw new Exceptions.OutdatedSdkException("Blip_SetScaleXY", "Blip_SetScaleXY SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetSecondaryColorDelegate(nint _blip, Rgba _color); + private static void Blip_SetSecondaryColorFallback(nint _blip, Rgba _color) => throw new Exceptions.OutdatedSdkException("Blip_SetSecondaryColor", "Blip_SetSecondaryColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetShowConeDelegate(nint _blip, byte _state); + private static void Blip_SetShowConeFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetShowCone", "Blip_SetShowCone SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetShrinkedDelegate(nint _blip, byte _state); + private static void Blip_SetShrinkedFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetShrinked", "Blip_SetShrinked SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetSpriteDelegate(nint _blip, ushort _sprite); + private static void Blip_SetSpriteFallback(nint _blip, ushort _sprite) => throw new Exceptions.OutdatedSdkException("Blip_SetSprite", "Blip_SetSprite SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetTickVisibleDelegate(nint _blip, byte _state); + private static void Blip_SetTickVisibleFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetTickVisible", "Blip_SetTickVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Checkpoint_GetCheckpointTypeDelegate(nint _checkpoint); + private static byte Checkpoint_GetCheckpointTypeFallback(nint _checkpoint) => throw new Exceptions.OutdatedSdkException("Checkpoint_GetCheckpointType", "Checkpoint_GetCheckpointType SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Checkpoint_GetColorDelegate(nint _checkpoint, Rgba* _color); + private static void Checkpoint_GetColorFallback(nint _checkpoint, Rgba* _color) => throw new Exceptions.OutdatedSdkException("Checkpoint_GetColor", "Checkpoint_GetColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Checkpoint_GetColShapeDelegate(nint _checkpoint); + private static nint Checkpoint_GetColShapeFallback(nint _checkpoint) => throw new Exceptions.OutdatedSdkException("Checkpoint_GetColShape", "Checkpoint_GetColShape SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Checkpoint_GetHeightDelegate(nint _checkpoint); + private static float Checkpoint_GetHeightFallback(nint _checkpoint) => throw new Exceptions.OutdatedSdkException("Checkpoint_GetHeight", "Checkpoint_GetHeight SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Checkpoint_GetNextPositionDelegate(nint _checkpoint, Vector3* _pos); + private static void Checkpoint_GetNextPositionFallback(nint _checkpoint, Vector3* _pos) => throw new Exceptions.OutdatedSdkException("Checkpoint_GetNextPosition", "Checkpoint_GetNextPosition SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Checkpoint_GetRadiusDelegate(nint _checkpoint); + private static float Checkpoint_GetRadiusFallback(nint _checkpoint) => throw new Exceptions.OutdatedSdkException("Checkpoint_GetRadius", "Checkpoint_GetRadius SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Checkpoint_SetCheckpointTypeDelegate(nint _checkpoint, byte _type); + private static void Checkpoint_SetCheckpointTypeFallback(nint _checkpoint, byte _type) => throw new Exceptions.OutdatedSdkException("Checkpoint_SetCheckpointType", "Checkpoint_SetCheckpointType SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Checkpoint_SetColorDelegate(nint _checkpoint, Rgba _color); + private static void Checkpoint_SetColorFallback(nint _checkpoint, Rgba _color) => throw new Exceptions.OutdatedSdkException("Checkpoint_SetColor", "Checkpoint_SetColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Checkpoint_SetHeightDelegate(nint _checkpoint, float _height); + private static void Checkpoint_SetHeightFallback(nint _checkpoint, float _height) => throw new Exceptions.OutdatedSdkException("Checkpoint_SetHeight", "Checkpoint_SetHeight SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Checkpoint_SetNextPositionDelegate(nint _checkpoint, Vector3 _pos); + private static void Checkpoint_SetNextPositionFallback(nint _checkpoint, Vector3 _pos) => throw new Exceptions.OutdatedSdkException("Checkpoint_SetNextPosition", "Checkpoint_SetNextPosition SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Checkpoint_SetRadiusDelegate(nint _checkpoint, float _radius); + private static void Checkpoint_SetRadiusFallback(nint _checkpoint, float _radius) => throw new Exceptions.OutdatedSdkException("Checkpoint_SetRadius", "Checkpoint_SetRadius SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ColShape_GetWorldObjectDelegate(nint _colShape); + private static nint ColShape_GetWorldObjectFallback(nint _colShape) => throw new Exceptions.OutdatedSdkException("ColShape_GetWorldObject", "ColShape_GetWorldObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte ColShape_IsEntityIdInDelegate(nint _colShape, ushort _id); + private static byte ColShape_IsEntityIdInFallback(nint _colShape, ushort _id) => throw new Exceptions.OutdatedSdkException("ColShape_IsEntityIdIn", "ColShape_IsEntityIdIn SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte ColShape_IsEntityInDelegate(nint _colShape, nint _entity); + private static byte ColShape_IsEntityInFallback(nint _colShape, nint _entity) => throw new Exceptions.OutdatedSdkException("ColShape_IsEntityIn", "ColShape_IsEntityIn SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte ColShape_IsPointInDelegate(nint _colShape, Vector3 _point); + private static byte ColShape_IsPointInFallback(nint _colShape, Vector3 _point) => throw new Exceptions.OutdatedSdkException("ColShape_IsPointIn", "ColShape_IsPointIn SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Config_DeleteDelegate(nint _node); + private static void Config_DeleteFallback(nint _node) => throw new Exceptions.OutdatedSdkException("Config_Delete", "Config_Delete SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateMValueBaseObjectDelegate(nint _core, nint _value); + private static nint Core_CreateMValueBaseObjectFallback(nint _core, nint _value) => throw new Exceptions.OutdatedSdkException("Core_CreateMValueBaseObject", "Core_CreateMValueBaseObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateMValueBoolDelegate(nint _core, byte _value); + private static nint Core_CreateMValueBoolFallback(nint _core, byte _value) => throw new Exceptions.OutdatedSdkException("Core_CreateMValueBool", "Core_CreateMValueBool SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateMValueByteArrayDelegate(nint _core, ulong _size, nint _data); + private static nint Core_CreateMValueByteArrayFallback(nint _core, ulong _size, nint _data) => throw new Exceptions.OutdatedSdkException("Core_CreateMValueByteArray", "Core_CreateMValueByteArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateMValueDictDelegate(nint _core, nint[] keys, nint[] val, ulong _size); + private static nint Core_CreateMValueDictFallback(nint _core, nint[] keys, nint[] val, ulong _size) => throw new Exceptions.OutdatedSdkException("Core_CreateMValueDict", "Core_CreateMValueDict SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateMValueDoubleDelegate(nint _core, double _value); + private static nint Core_CreateMValueDoubleFallback(nint _core, double _value) => throw new Exceptions.OutdatedSdkException("Core_CreateMValueDouble", "Core_CreateMValueDouble SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateMValueFunctionDelegate(nint _core, nint _value); + private static nint Core_CreateMValueFunctionFallback(nint _core, nint _value) => throw new Exceptions.OutdatedSdkException("Core_CreateMValueFunction", "Core_CreateMValueFunction SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateMValueIntDelegate(nint _core, long _value); + private static nint Core_CreateMValueIntFallback(nint _core, long _value) => throw new Exceptions.OutdatedSdkException("Core_CreateMValueInt", "Core_CreateMValueInt SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateMValueListDelegate(nint _core, nint[] val, ulong _size); + private static nint Core_CreateMValueListFallback(nint _core, nint[] val, ulong _size) => throw new Exceptions.OutdatedSdkException("Core_CreateMValueList", "Core_CreateMValueList SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateMValueNilDelegate(nint _core); + private static nint Core_CreateMValueNilFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_CreateMValueNil", "Core_CreateMValueNil SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateMValueRgbaDelegate(nint _core, Rgba _value); + private static nint Core_CreateMValueRgbaFallback(nint _core, Rgba _value) => throw new Exceptions.OutdatedSdkException("Core_CreateMValueRgba", "Core_CreateMValueRgba SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateMValueStringDelegate(nint _core, nint _value); + private static nint Core_CreateMValueStringFallback(nint _core, nint _value) => throw new Exceptions.OutdatedSdkException("Core_CreateMValueString", "Core_CreateMValueString SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateMValueUIntDelegate(nint _core, ulong _value); + private static nint Core_CreateMValueUIntFallback(nint _core, ulong _value) => throw new Exceptions.OutdatedSdkException("Core_CreateMValueUInt", "Core_CreateMValueUInt SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateMValueVector2Delegate(nint _core, Vector2 _value); + private static nint Core_CreateMValueVector2Fallback(nint _core, Vector2 _value) => throw new Exceptions.OutdatedSdkException("Core_CreateMValueVector2", "Core_CreateMValueVector2 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateMValueVector3Delegate(nint _core, Vector3 _value); + private static nint Core_CreateMValueVector3Fallback(nint _core, Vector3 _value) => throw new Exceptions.OutdatedSdkException("Core_CreateMValueVector3", "Core_CreateMValueVector3 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DeleteMetaDataDelegate(nint _core, nint _key); + private static void Core_DeleteMetaDataFallback(nint _core, nint _key) => throw new Exceptions.OutdatedSdkException("Core_DeleteMetaData", "Core_DeleteMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DestroyBaseObjectDelegate(nint _server, nint _baseObject); + private static void Core_DestroyBaseObjectFallback(nint _server, nint _baseObject) => throw new Exceptions.OutdatedSdkException("Core_DestroyBaseObject", "Core_DestroyBaseObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_FileExistsDelegate(nint _server, nint _path); + private static byte Core_FileExistsFallback(nint _server, nint _path) => throw new Exceptions.OutdatedSdkException("Core_FileExists", "Core_FileExists SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_FileReadDelegate(nint _server, nint _path, int* _size); + private static nint Core_FileReadFallback(nint _server, nint _path, int* _size) => throw new Exceptions.OutdatedSdkException("Core_FileRead", "Core_FileRead SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetAllResourcesDelegate(nint _core, uint* _size); + private static nint Core_GetAllResourcesFallback(nint _core, uint* _size) => throw new Exceptions.OutdatedSdkException("Core_GetAllResources", "Core_GetAllResources SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Core_GetBlipCountDelegate(nint _core); + private static ulong Core_GetBlipCountFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetBlipCount", "Core_GetBlipCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_GetBlipsDelegate(nint _core, nint[] vehicles, ulong _size); + private static void Core_GetBlipsFallback(nint _core, nint[] vehicles, ulong _size) => throw new Exceptions.OutdatedSdkException("Core_GetBlips", "Core_GetBlips SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetBranchDelegate(nint _core, int* _size); + private static nint Core_GetBranchFallback(nint _core, int* _size) => throw new Exceptions.OutdatedSdkException("Core_GetBranch", "Core_GetBranch SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetCoreInstanceDelegate(); + private static nint Core_GetCoreInstanceFallback() => throw new Exceptions.OutdatedSdkException("Core_GetCoreInstance", "Core_GetCoreInstance SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetEntityByIdDelegate(nint _core, ushort _id, byte* _type); + private static nint Core_GetEntityByIdFallback(nint _core, ushort _id, byte* _type) => throw new Exceptions.OutdatedSdkException("Core_GetEntityById", "Core_GetEntityById SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_GetEventEnumSizeDelegate(); + private static byte Core_GetEventEnumSizeFallback() => throw new Exceptions.OutdatedSdkException("Core_GetEventEnumSize", "Core_GetEventEnumSize SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetMetaDataDelegate(nint _core, nint _key); + private static nint Core_GetMetaDataFallback(nint _core, nint _key) => throw new Exceptions.OutdatedSdkException("Core_GetMetaData", "Core_GetMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Core_GetPlayerCountDelegate(nint _server); + private static ulong Core_GetPlayerCountFallback(nint _server) => throw new Exceptions.OutdatedSdkException("Core_GetPlayerCount", "Core_GetPlayerCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_GetPlayersDelegate(nint _server, nint[] players, ulong _size); + private static void Core_GetPlayersFallback(nint _server, nint[] players, ulong _size) => throw new Exceptions.OutdatedSdkException("Core_GetPlayers", "Core_GetPlayers SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetResourceDelegate(nint _core, nint _resourceName); + private static nint Core_GetResourceFallback(nint _core, nint _resourceName) => throw new Exceptions.OutdatedSdkException("Core_GetResource", "Core_GetResource SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetSyncedMetaDataDelegate(nint _core, nint _key); + private static nint Core_GetSyncedMetaDataFallback(nint _core, nint _key) => throw new Exceptions.OutdatedSdkException("Core_GetSyncedMetaData", "Core_GetSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Core_GetVehicleCountDelegate(nint _server); + private static ulong Core_GetVehicleCountFallback(nint _server) => throw new Exceptions.OutdatedSdkException("Core_GetVehicleCount", "Core_GetVehicleCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_GetVehiclesDelegate(nint _server, nint[] vehicles, ulong _size); + private static void Core_GetVehiclesFallback(nint _server, nint[] vehicles, ulong _size) => throw new Exceptions.OutdatedSdkException("Core_GetVehicles", "Core_GetVehicles SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetVersionDelegate(nint _core, int* _size); + private static nint Core_GetVersionFallback(nint _core, int* _size) => throw new Exceptions.OutdatedSdkException("Core_GetVersion", "Core_GetVersion SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_HasMetaDataDelegate(nint _core, nint _key); + private static byte Core_HasMetaDataFallback(nint _core, nint _key) => throw new Exceptions.OutdatedSdkException("Core_HasMetaData", "Core_HasMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_HasSyncedMetaDataDelegate(nint _core, nint _key); + private static byte Core_HasSyncedMetaDataFallback(nint _core, nint _key) => throw new Exceptions.OutdatedSdkException("Core_HasSyncedMetaData", "Core_HasSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsDebugDelegate(nint _core); + private static byte Core_IsDebugFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_IsDebug", "Core_IsDebug SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LogColoredDelegate(nint _server, nint _str); + private static void Core_LogColoredFallback(nint _server, nint _str) => throw new Exceptions.OutdatedSdkException("Core_LogColored", "Core_LogColored SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LogDebugDelegate(nint _server, nint _str); + private static void Core_LogDebugFallback(nint _server, nint _str) => throw new Exceptions.OutdatedSdkException("Core_LogDebug", "Core_LogDebug SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LogErrorDelegate(nint _server, nint _str); + private static void Core_LogErrorFallback(nint _server, nint _str) => throw new Exceptions.OutdatedSdkException("Core_LogError", "Core_LogError SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LogInfoDelegate(nint _server, nint _str); + private static void Core_LogInfoFallback(nint _server, nint _str) => throw new Exceptions.OutdatedSdkException("Core_LogInfo", "Core_LogInfo SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LogWarningDelegate(nint _server, nint _str); + private static void Core_LogWarningFallback(nint _server, nint _str) => throw new Exceptions.OutdatedSdkException("Core_LogWarning", "Core_LogWarning SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetMetaDataDelegate(nint _core, nint _key, nint _val); + private static void Core_SetMetaDataFallback(nint _core, nint _key, nint _val) => throw new Exceptions.OutdatedSdkException("Core_SetMetaData", "Core_SetMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ToggleEventDelegate(nint _core, byte _event, byte _state); + private static void Core_ToggleEventFallback(nint _core, byte _event, byte _state) => throw new Exceptions.OutdatedSdkException("Core_ToggleEvent", "Core_ToggleEvent SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerLocalEventDelegate(nint _core, nint _event, nint[] args, int _size); + private static void Core_TriggerLocalEventFallback(nint _core, nint _event, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerLocalEvent", "Core_TriggerLocalEvent SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Entity_GetIDDelegate(nint _entity); + private static ushort Entity_GetIDFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_GetID", "Entity_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Entity_GetModelDelegate(nint _entity); + private static uint Entity_GetModelFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_GetModel", "Entity_GetModel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Entity_GetNetOwnerDelegate(nint _entity); + private static nint Entity_GetNetOwnerFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_GetNetOwner", "Entity_GetNetOwner SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Entity_GetNetOwnerIDDelegate(nint _entity, ushort* _id); + private static byte Entity_GetNetOwnerIDFallback(nint _entity, ushort* _id) => throw new Exceptions.OutdatedSdkException("Entity_GetNetOwnerID", "Entity_GetNetOwnerID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_GetRotationDelegate(nint _entity, Rotation* _rot); + private static void Entity_GetRotationFallback(nint _entity, Rotation* _rot) => throw new Exceptions.OutdatedSdkException("Entity_GetRotation", "Entity_GetRotation SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Entity_GetStreamSyncedMetaDataDelegate(nint _Entity, nint _key); + private static nint Entity_GetStreamSyncedMetaDataFallback(nint _Entity, nint _key) => throw new Exceptions.OutdatedSdkException("Entity_GetStreamSyncedMetaData", "Entity_GetStreamSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Entity_GetSyncedMetaDataDelegate(nint _Entity, nint _key); + private static nint Entity_GetSyncedMetaDataFallback(nint _Entity, nint _key) => throw new Exceptions.OutdatedSdkException("Entity_GetSyncedMetaData", "Entity_GetSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Entity_GetTypeByIDDelegate(nint _core, ushort _id, byte* _type); + private static byte Entity_GetTypeByIDFallback(nint _core, ushort _id, byte* _type) => throw new Exceptions.OutdatedSdkException("Entity_GetTypeByID", "Entity_GetTypeByID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Entity_GetWorldObjectDelegate(nint _entity); + private static nint Entity_GetWorldObjectFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_GetWorldObject", "Entity_GetWorldObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Entity_HasStreamSyncedMetaDataDelegate(nint _Entity, nint _key); + private static byte Entity_HasStreamSyncedMetaDataFallback(nint _Entity, nint _key) => throw new Exceptions.OutdatedSdkException("Entity_HasStreamSyncedMetaData", "Entity_HasStreamSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Entity_HasSyncedMetaDataDelegate(nint _Entity, nint _key); + private static byte Entity_HasSyncedMetaDataFallback(nint _Entity, nint _key) => throw new Exceptions.OutdatedSdkException("Entity_HasSyncedMetaData", "Entity_HasSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_CancelDelegate(nint _event); + private static void Event_CancelFallback(nint _event) => throw new Exceptions.OutdatedSdkException("Event_Cancel", "Event_Cancel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Event_WasCancelledDelegate(nint _event); + private static byte Event_WasCancelledFallback(nint _event) => throw new Exceptions.OutdatedSdkException("Event_WasCancelled", "Event_WasCancelled SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeCharArrayDelegate(nint charArray); + private static void FreeCharArrayFallback(nint charArray) => throw new Exceptions.OutdatedSdkException("FreeCharArray", "FreeCharArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeMValueConstArrayDelegate(nint _mvalueConstArray); + private static void FreeMValueConstArrayFallback(nint _mvalueConstArray) => throw new Exceptions.OutdatedSdkException("FreeMValueConstArray", "FreeMValueConstArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeObjectArrayDelegate(nint _objectArray); + private static void FreeObjectArrayFallback(nint _objectArray) => throw new Exceptions.OutdatedSdkException("FreeObjectArray", "FreeObjectArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeResourceArrayDelegate(nint _resourceArray); + private static void FreeResourceArrayFallback(nint _resourceArray) => throw new Exceptions.OutdatedSdkException("FreeResourceArray", "FreeResourceArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeStringDelegate(nint _string); + private static void FreeStringFallback(nint _string) => throw new Exceptions.OutdatedSdkException("FreeString", "FreeString SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeStringArrayDelegate(nint _stringArray, uint _size); + private static void FreeStringArrayFallback(nint _stringArray, uint _size) => throw new Exceptions.OutdatedSdkException("FreeStringArray", "FreeStringArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeUInt32ArrayDelegate(nint _uInt32Array); + private static void FreeUInt32ArrayFallback(nint _uInt32Array) => throw new Exceptions.OutdatedSdkException("FreeUInt32Array", "FreeUInt32Array SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeUInt8ArrayDelegate(nint _uInt8Array); + private static void FreeUInt8ArrayFallback(nint _uInt8Array) => throw new Exceptions.OutdatedSdkException("FreeUInt8Array", "FreeUInt8Array SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeUIntArrayDelegate(UIntArray* _array); + private static void FreeUIntArrayFallback(UIntArray* _array) => throw new Exceptions.OutdatedSdkException("FreeUIntArray", "FreeUIntArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeVoidPointerArrayDelegate(nint _voidPointerArray); + private static void FreeVoidPointerArrayFallback(nint _voidPointerArray) => throw new Exceptions.OutdatedSdkException("FreeVoidPointerArray", "FreeVoidPointerArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeWeaponTArrayDelegate(nint _weaponArray, uint _size); + private static void FreeWeaponTArrayFallback(nint _weaponArray, uint _size) => throw new Exceptions.OutdatedSdkException("FreeWeaponTArray", "FreeWeaponTArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint GetBranchStaticDelegate(int* _size); + private static nint GetBranchStaticFallback(int* _size) => throw new Exceptions.OutdatedSdkException("GetBranchStatic", "GetBranchStatic SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint GetCApiVersionDelegate(int* _size); + private static nint GetCApiVersionFallback(int* _size) => throw new Exceptions.OutdatedSdkException("GetCApiVersion", "GetCApiVersion SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint GetSDKVersionDelegate(int* _size); + private static nint GetSDKVersionFallback(int* _size) => throw new Exceptions.OutdatedSdkException("GetSDKVersion", "GetSDKVersion SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint GetVersionStaticDelegate(int* _size); + private static nint GetVersionStaticFallback(int* _size) => throw new Exceptions.OutdatedSdkException("GetVersionStatic", "GetVersionStatic SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Invoker_CreateDelegate(nint _resource, MValueFunctionCallback _val); + private static nint Invoker_CreateFallback(nint _resource, MValueFunctionCallback _val) => throw new Exceptions.OutdatedSdkException("Invoker_Create", "Invoker_Create SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Invoker_DestroyDelegate(nint _resource, nint _val); + private static void Invoker_DestroyFallback(nint _resource, nint _val) => throw new Exceptions.OutdatedSdkException("Invoker_Destroy", "Invoker_Destroy SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte IsDebugStaticDelegate(); + private static byte IsDebugStaticFallback() => throw new Exceptions.OutdatedSdkException("IsDebugStatic", "IsDebugStatic SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void MValueConst_AddRefDelegate(nint _mValueConst); + private static void MValueConst_AddRefFallback(nint _mValueConst) => throw new Exceptions.OutdatedSdkException("MValueConst_AddRef", "MValueConst_AddRef SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint MValueConst_CallFunctionDelegate(nint _core, nint _mValueConst, nint[] val, ulong _size); + private static nint MValueConst_CallFunctionFallback(nint _core, nint _mValueConst, nint[] val, ulong _size) => throw new Exceptions.OutdatedSdkException("MValueConst_CallFunction", "MValueConst_CallFunction SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void MValueConst_DeleteDelegate(nint _mValueConst); + private static void MValueConst_DeleteFallback(nint _mValueConst) => throw new Exceptions.OutdatedSdkException("MValueConst_Delete", "MValueConst_Delete SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte MValueConst_GetBoolDelegate(nint _mValueConst); + private static byte MValueConst_GetBoolFallback(nint _mValueConst) => throw new Exceptions.OutdatedSdkException("MValueConst_GetBool", "MValueConst_GetBool SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void MValueConst_GetByteArrayDelegate(nint _mValueConst, ulong _size, nint _data); + private static void MValueConst_GetByteArrayFallback(nint _mValueConst, ulong _size, nint _data) => throw new Exceptions.OutdatedSdkException("MValueConst_GetByteArray", "MValueConst_GetByteArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong MValueConst_GetByteArraySizeDelegate(nint _mValueConst); + private static ulong MValueConst_GetByteArraySizeFallback(nint _mValueConst) => throw new Exceptions.OutdatedSdkException("MValueConst_GetByteArraySize", "MValueConst_GetByteArraySize SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte MValueConst_GetDictDelegate(nint _mValueConst, nint[] keys, nint[] values); + private static byte MValueConst_GetDictFallback(nint _mValueConst, nint[] keys, nint[] values) => throw new Exceptions.OutdatedSdkException("MValueConst_GetDict", "MValueConst_GetDict SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong MValueConst_GetDictSizeDelegate(nint _mValueConst); + private static ulong MValueConst_GetDictSizeFallback(nint _mValueConst) => throw new Exceptions.OutdatedSdkException("MValueConst_GetDictSize", "MValueConst_GetDictSize SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate double MValueConst_GetDoubleDelegate(nint _mValueConst); + private static double MValueConst_GetDoubleFallback(nint _mValueConst) => throw new Exceptions.OutdatedSdkException("MValueConst_GetDouble", "MValueConst_GetDouble SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint MValueConst_GetEntityDelegate(nint _mValueConst, BaseObjectType* _type); + private static nint MValueConst_GetEntityFallback(nint _mValueConst, BaseObjectType* _type) => throw new Exceptions.OutdatedSdkException("MValueConst_GetEntity", "MValueConst_GetEntity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate long MValueConst_GetIntDelegate(nint _mValueConst); + private static long MValueConst_GetIntFallback(nint _mValueConst) => throw new Exceptions.OutdatedSdkException("MValueConst_GetInt", "MValueConst_GetInt SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte MValueConst_GetListDelegate(nint _mValueConst, nint[] values); + private static byte MValueConst_GetListFallback(nint _mValueConst, nint[] values) => throw new Exceptions.OutdatedSdkException("MValueConst_GetList", "MValueConst_GetList SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong MValueConst_GetListSizeDelegate(nint _mValueConst); + private static ulong MValueConst_GetListSizeFallback(nint _mValueConst) => throw new Exceptions.OutdatedSdkException("MValueConst_GetListSize", "MValueConst_GetListSize SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void MValueConst_GetRGBADelegate(nint _mValueConst, Rgba* _rgba); + private static void MValueConst_GetRGBAFallback(nint _mValueConst, Rgba* _rgba) => throw new Exceptions.OutdatedSdkException("MValueConst_GetRGBA", "MValueConst_GetRGBA SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint MValueConst_GetStringDelegate(nint _mValueConst, int* _size); + private static nint MValueConst_GetStringFallback(nint _mValueConst, int* _size) => throw new Exceptions.OutdatedSdkException("MValueConst_GetString", "MValueConst_GetString SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte MValueConst_GetTypeDelegate(nint _mValueConst); + private static byte MValueConst_GetTypeFallback(nint _mValueConst) => throw new Exceptions.OutdatedSdkException("MValueConst_GetType", "MValueConst_GetType SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong MValueConst_GetUIntDelegate(nint _mValueConst); + private static ulong MValueConst_GetUIntFallback(nint _mValueConst) => throw new Exceptions.OutdatedSdkException("MValueConst_GetUInt", "MValueConst_GetUInt SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void MValueConst_GetVector3Delegate(nint _mValueConst, Vector3* _position); + private static void MValueConst_GetVector3Fallback(nint _mValueConst, Vector3* _position) => throw new Exceptions.OutdatedSdkException("MValueConst_GetVector3", "MValueConst_GetVector3 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void MValueConst_RemoveRefDelegate(nint _mValueConst); + private static void MValueConst_RemoveRefFallback(nint _mValueConst) => throw new Exceptions.OutdatedSdkException("MValueConst_RemoveRef", "MValueConst_RemoveRef SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_ActivatePhysicsDelegate(nint _object); + private static void Object_ActivatePhysicsFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_ActivatePhysics", "Object_ActivatePhysics SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_AttachToEntityDelegate(nint _object, nint _entity, short _bone, Vector3 _pos, Rotation _rot, byte _useSoftPinning, byte _collision, byte _fixedRot); + private static void Object_AttachToEntityFallback(nint _object, nint _entity, short _bone, Vector3 _pos, Rotation _rot, byte _useSoftPinning, byte _collision, byte _fixedRot) => throw new Exceptions.OutdatedSdkException("Object_AttachToEntity", "Object_AttachToEntity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_AttachToEntity_ScriptIdDelegate(nint _object, uint _scriptId, short _bone, Vector3 _pos, Rotation _rot, byte _useSoftPinning, byte _collision, byte _fixedRot); + private static void Object_AttachToEntity_ScriptIdFallback(nint _object, uint _scriptId, short _bone, Vector3 _pos, Rotation _rot, byte _useSoftPinning, byte _collision, byte _fixedRot) => throw new Exceptions.OutdatedSdkException("Object_AttachToEntity_ScriptId", "Object_AttachToEntity_ScriptId SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_DetachDelegate(nint _object, byte _dynamic); + private static void Object_DetachFallback(nint _object, byte _dynamic) => throw new Exceptions.OutdatedSdkException("Object_Detach", "Object_Detach SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Object_GetAlphaDelegate(nint _object); + private static byte Object_GetAlphaFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_GetAlpha", "Object_GetAlpha SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Object_GetEntityDelegate(nint _object); + private static nint Object_GetEntityFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_GetEntity", "Object_GetEntity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Object_GetIDDelegate(nint _object); + private static ushort Object_GetIDFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_GetID", "Object_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Object_GetLodDistanceDelegate(nint _object); + private static ushort Object_GetLodDistanceFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_GetLodDistance", "Object_GetLodDistance SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Object_GetTextureVariationDelegate(nint _object); + private static byte Object_GetTextureVariationFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_GetTextureVariation", "Object_GetTextureVariation SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Object_HasGravityDelegate(nint _object); + private static byte Object_HasGravityFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_HasGravity", "Object_HasGravity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Object_IsCollisionEnabledDelegate(nint _object); + private static byte Object_IsCollisionEnabledFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_IsCollisionEnabled", "Object_IsCollisionEnabled SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Object_IsDynamicDelegate(nint _object); + private static byte Object_IsDynamicFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_IsDynamic", "Object_IsDynamic SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Object_IsWorldObjectDelegate(nint _object); + private static byte Object_IsWorldObjectFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_IsWorldObject", "Object_IsWorldObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_PlaceOnGroundProperlyDelegate(nint _object); + private static void Object_PlaceOnGroundProperlyFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_PlaceOnGroundProperly", "Object_PlaceOnGroundProperly SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_ResetAlphaDelegate(nint _object); + private static void Object_ResetAlphaFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_ResetAlpha", "Object_ResetAlpha SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_SetAlphaDelegate(nint _object, byte _alpha); + private static void Object_SetAlphaFallback(nint _object, byte _alpha) => throw new Exceptions.OutdatedSdkException("Object_SetAlpha", "Object_SetAlpha SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_SetLodDistanceDelegate(nint _object, ushort _distance); + private static void Object_SetLodDistanceFallback(nint _object, ushort _distance) => throw new Exceptions.OutdatedSdkException("Object_SetLodDistance", "Object_SetLodDistance SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_SetPositionFrozenDelegate(nint _object, byte _toggle); + private static void Object_SetPositionFrozenFallback(nint _object, byte _toggle) => throw new Exceptions.OutdatedSdkException("Object_SetPositionFrozen", "Object_SetPositionFrozen SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_SetTextureVariationDelegate(nint _object, byte _variation); + private static void Object_SetTextureVariationFallback(nint _object, byte _variation) => throw new Exceptions.OutdatedSdkException("Object_SetTextureVariation", "Object_SetTextureVariation SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_ToggleCollisionDelegate(nint _object, byte _toggle, byte _keepPhysics); + private static void Object_ToggleCollisionFallback(nint _object, byte _toggle, byte _keepPhysics) => throw new Exceptions.OutdatedSdkException("Object_ToggleCollision", "Object_ToggleCollision SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_ToggleGravityDelegate(nint _object, byte _toggle); + private static void Object_ToggleGravityFallback(nint _object, byte _toggle) => throw new Exceptions.OutdatedSdkException("Object_ToggleGravity", "Object_ToggleGravity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_GetAimPosDelegate(nint _player, Vector3* _aimPosition); + private static void Player_GetAimPosFallback(nint _player, Vector3* _aimPosition) => throw new Exceptions.OutdatedSdkException("Player_GetAimPos", "Player_GetAimPos SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Player_GetArmorDelegate(nint _player); + private static ushort Player_GetArmorFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetArmor", "Player_GetArmor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Player_GetCurrentAnimationDictDelegate(nint _player); + private static uint Player_GetCurrentAnimationDictFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetCurrentAnimationDict", "Player_GetCurrentAnimationDict SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Player_GetCurrentAnimationNameDelegate(nint _player); + private static uint Player_GetCurrentAnimationNameFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetCurrentAnimationName", "Player_GetCurrentAnimationName SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Player_GetCurrentWeaponDelegate(nint _player); + private static uint Player_GetCurrentWeaponFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetCurrentWeapon", "Player_GetCurrentWeapon SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_GetCurrentWeaponComponentsDelegate(nint _player, nint* _weaponComponents, uint* _size); + private static void Player_GetCurrentWeaponComponentsFallback(nint _player, nint* _weaponComponents, uint* _size) => throw new Exceptions.OutdatedSdkException("Player_GetCurrentWeaponComponents", "Player_GetCurrentWeaponComponents SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Player_GetEntityDelegate(nint _player); + private static nint Player_GetEntityFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetEntity", "Player_GetEntity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Player_GetEntityAimingAtDelegate(nint _player, BaseObjectType* _type); + private static nint Player_GetEntityAimingAtFallback(nint _player, BaseObjectType* _type) => throw new Exceptions.OutdatedSdkException("Player_GetEntityAimingAt", "Player_GetEntityAimingAt SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_GetEntityAimOffsetDelegate(nint _player, Vector3* _position); + private static void Player_GetEntityAimOffsetFallback(nint _player, Vector3* _position) => throw new Exceptions.OutdatedSdkException("Player_GetEntityAimOffset", "Player_GetEntityAimOffset SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Player_GetForwardSpeedDelegate(nint _player); + private static float Player_GetForwardSpeedFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetForwardSpeed", "Player_GetForwardSpeed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_GetHeadRotationDelegate(nint _player, Rotation* _headRotation); + private static void Player_GetHeadRotationFallback(nint _player, Rotation* _headRotation) => throw new Exceptions.OutdatedSdkException("Player_GetHeadRotation", "Player_GetHeadRotation SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Player_GetHealthDelegate(nint _player); + private static ushort Player_GetHealthFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetHealth", "Player_GetHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Player_GetIDDelegate(nint _player); + private static ushort Player_GetIDFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetID", "Player_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Player_GetMaxArmorDelegate(nint _player); + private static ushort Player_GetMaxArmorFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetMaxArmor", "Player_GetMaxArmor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Player_GetMaxHealthDelegate(nint _player); + private static ushort Player_GetMaxHealthFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetMaxHealth", "Player_GetMaxHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Player_GetMoveSpeedDelegate(nint _player); + private static float Player_GetMoveSpeedFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetMoveSpeed", "Player_GetMoveSpeed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Player_GetNameDelegate(nint _player, int* _size); + private static nint Player_GetNameFallback(nint _player, int* _size) => throw new Exceptions.OutdatedSdkException("Player_GetName", "Player_GetName SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_GetSeatDelegate(nint _player); + private static byte Player_GetSeatFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetSeat", "Player_GetSeat SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Player_GetStrafeSpeedDelegate(nint _player); + private static float Player_GetStrafeSpeedFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetStrafeSpeed", "Player_GetStrafeSpeed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Player_GetVehicleDelegate(nint _player); + private static nint Player_GetVehicleFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetVehicle", "Player_GetVehicle SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_GetVehicleIDDelegate(nint _player, ushort* _id); + private static byte Player_GetVehicleIDFallback(nint _player, ushort* _id) => throw new Exceptions.OutdatedSdkException("Player_GetVehicleID", "Player_GetVehicleID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsAimingDelegate(nint _player); + private static byte Player_IsAimingFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsAiming", "Player_IsAiming SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsDeadDelegate(nint _player); + private static byte Player_IsDeadFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsDead", "Player_IsDead SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsFlashlightActiveDelegate(nint _player); + private static byte Player_IsFlashlightActiveFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsFlashlightActive", "Player_IsFlashlightActive SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsInRagdollDelegate(nint _player); + private static byte Player_IsInRagdollFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsInRagdoll", "Player_IsInRagdoll SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsInVehicleDelegate(nint _player); + private static byte Player_IsInVehicleFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsInVehicle", "Player_IsInVehicle SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsJumpingDelegate(nint _player); + private static byte Player_IsJumpingFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsJumping", "Player_IsJumping SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsReloadingDelegate(nint _player); + private static byte Player_IsReloadingFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsReloading", "Player_IsReloading SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsShootingDelegate(nint _player); + private static byte Player_IsShootingFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsShooting", "Player_IsShooting SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsSpawnedDelegate(nint _player); + private static byte Player_IsSpawnedFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsSpawned", "Player_IsSpawned SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Resource_GetCSharpImplDelegate(nint _resource); + private static nint Resource_GetCSharpImplFallback(nint _resource) => throw new Exceptions.OutdatedSdkException("Resource_GetCSharpImpl", "Resource_GetCSharpImpl SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Resource_GetDependantsDelegate(nint _resource, nint[] dependencies, int _size); + private static void Resource_GetDependantsFallback(nint _resource, nint[] dependencies, int _size) => throw new Exceptions.OutdatedSdkException("Resource_GetDependants", "Resource_GetDependants SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int Resource_GetDependantsSizeDelegate(nint _resource); + private static int Resource_GetDependantsSizeFallback(nint _resource) => throw new Exceptions.OutdatedSdkException("Resource_GetDependantsSize", "Resource_GetDependantsSize SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Resource_GetDependenciesDelegate(nint _resource, nint[] dependencies, int _size); + private static void Resource_GetDependenciesFallback(nint _resource, nint[] dependencies, int _size) => throw new Exceptions.OutdatedSdkException("Resource_GetDependencies", "Resource_GetDependencies SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int Resource_GetDependenciesSizeDelegate(nint _resource); + private static int Resource_GetDependenciesSizeFallback(nint _resource) => throw new Exceptions.OutdatedSdkException("Resource_GetDependenciesSize", "Resource_GetDependenciesSize SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Resource_GetExportDelegate(nint _resource, nint _key); + private static nint Resource_GetExportFallback(nint _resource, nint _key) => throw new Exceptions.OutdatedSdkException("Resource_GetExport", "Resource_GetExport SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Resource_GetExportsDelegate(nint _resource, nint[] keys, nint[] values); + private static void Resource_GetExportsFallback(nint _resource, nint[] keys, nint[] values) => throw new Exceptions.OutdatedSdkException("Resource_GetExports", "Resource_GetExports SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Resource_GetExportsCountDelegate(nint _resource); + private static ulong Resource_GetExportsCountFallback(nint _resource) => throw new Exceptions.OutdatedSdkException("Resource_GetExportsCount", "Resource_GetExportsCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Resource_GetImplDelegate(nint _resource); + private static nint Resource_GetImplFallback(nint _resource) => throw new Exceptions.OutdatedSdkException("Resource_GetImpl", "Resource_GetImpl SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Resource_GetNameDelegate(nint _resource, int* _size); + private static nint Resource_GetNameFallback(nint _resource, int* _size) => throw new Exceptions.OutdatedSdkException("Resource_GetName", "Resource_GetName SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Resource_GetTypeDelegate(nint _resource, int* _size); + private static nint Resource_GetTypeFallback(nint _resource, int* _size) => throw new Exceptions.OutdatedSdkException("Resource_GetType", "Resource_GetType SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Resource_IsStartedDelegate(nint _resource); + private static byte Resource_IsStartedFallback(nint _resource) => throw new Exceptions.OutdatedSdkException("Resource_IsStarted", "Resource_IsStarted SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Resource_SetExportDelegate(nint _core, nint _resource, nint _key, nint _val); + private static void Resource_SetExportFallback(nint _core, nint _resource, nint _key, nint _val) => throw new Exceptions.OutdatedSdkException("Resource_SetExport", "Resource_SetExport SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Resource_SetExportsDelegate(nint _core, nint _resource, nint[] val, nint[] keys, int _size); + private static void Resource_SetExportsFallback(nint _core, nint _resource, nint[] val, nint[] keys, int _size) => throw new Exceptions.OutdatedSdkException("Resource_SetExports", "Resource_SetExports SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Vehicle_GetEntityDelegate(nint _vehicle); + private static nint Vehicle_GetEntityFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetEntity", "Vehicle_GetEntity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Vehicle_GetIDDelegate(nint _vehicle); + private static ushort Vehicle_GetIDFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetID", "Vehicle_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int Vehicle_GetPetrolTankHealthDelegate(nint _vehicle); + private static int Vehicle_GetPetrolTankHealthFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetPetrolTankHealth", "Vehicle_GetPetrolTankHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetWheelsCountDelegate(nint _vehicle); + private static byte Vehicle_GetWheelsCountFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetWheelsCount", "Vehicle_GetWheelsCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint WorldObject_GetBaseObjectDelegate(nint _worldObject); + private static nint WorldObject_GetBaseObjectFallback(nint _worldObject) => throw new Exceptions.OutdatedSdkException("WorldObject_GetBaseObject", "WorldObject_GetBaseObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WorldObject_GetPositionDelegate(nint _worldObject, Vector3* _position); + private static void WorldObject_GetPositionFallback(nint _worldObject, Vector3* _position) => throw new Exceptions.OutdatedSdkException("WorldObject_GetPosition", "WorldObject_GetPosition SDK method is outdated. Please update your module nuget"); + public bool Outdated { get; private set; } + private IntPtr GetUnmanagedPtr(IDictionary funcTable, ulong hash, T fn) where T : Delegate { + if (funcTable.TryGetValue(hash, out var ptr)) return ptr; + Outdated = true; + return Marshal.GetFunctionPointerForDelegate(fn); + } public SharedLibrary(Dictionary funcTable) { - BaseObject_DeleteMetaData = (delegate* unmanaged[Cdecl]) funcTable[708437361947313558UL]; - BaseObject_DestructCache = (delegate* unmanaged[Cdecl]) funcTable[3903979862646887200UL]; - BaseObject_GetMetaData = (delegate* unmanaged[Cdecl]) funcTable[94878368862433577UL]; - BaseObject_GetType = (delegate* unmanaged[Cdecl]) funcTable[18209683949357219620UL]; - BaseObject_HasMetaData = (delegate* unmanaged[Cdecl]) funcTable[11071671396837829565UL]; - BaseObject_SetMetaData = (delegate* unmanaged[Cdecl]) funcTable[17855518237816145157UL]; - BaseObject_TryCache = (delegate* unmanaged[Cdecl]) funcTable[7207988320199413737UL]; - Blip_Fade = (delegate* unmanaged[Cdecl]) funcTable[7919605214560618601UL]; - Blip_GetAlpha = (delegate* unmanaged[Cdecl]) funcTable[18165027774468110743UL]; - Blip_GetAsFriendly = (delegate* unmanaged[Cdecl]) funcTable[14442880220511169610UL]; - Blip_GetAsHighDetail = (delegate* unmanaged[Cdecl]) funcTable[15518177057843406776UL]; - Blip_GetAsMissionCreator = (delegate* unmanaged[Cdecl]) funcTable[3126455498543332575UL]; - Blip_GetAsShortRange = (delegate* unmanaged[Cdecl]) funcTable[1172548134432265566UL]; - Blip_GetBright = (delegate* unmanaged[Cdecl]) funcTable[16669151784337538769UL]; - Blip_GetCategory = (delegate* unmanaged[Cdecl]) funcTable[17124988444567170381UL]; - Blip_GetColor = (delegate* unmanaged[Cdecl]) funcTable[10161413011017508596UL]; - Blip_GetCrewIndicatorVisible = (delegate* unmanaged[Cdecl]) funcTable[7489076557768286025UL]; - Blip_GetDisplay = (delegate* unmanaged[Cdecl]) funcTable[4252702831802823849UL]; - Blip_GetFlashes = (delegate* unmanaged[Cdecl]) funcTable[2104864518804770913UL]; - Blip_GetFlashesAlternate = (delegate* unmanaged[Cdecl]) funcTable[17970482163436361505UL]; - Blip_GetFlashInterval = (delegate* unmanaged[Cdecl]) funcTable[7268399438733338528UL]; - Blip_GetFlashTimer = (delegate* unmanaged[Cdecl]) funcTable[18012872850535179050UL]; - Blip_GetFriendIndicatorVisible = (delegate* unmanaged[Cdecl]) funcTable[1284553805803690156UL]; - Blip_GetGxtName = (delegate* unmanaged[Cdecl]) funcTable[9638686443361526541UL]; - Blip_GetHeadingIndicatorVisible = (delegate* unmanaged[Cdecl]) funcTable[1544639341239889388UL]; - Blip_GetName = (delegate* unmanaged[Cdecl]) funcTable[6023697164866971082UL]; - Blip_GetNumber = (delegate* unmanaged[Cdecl]) funcTable[6499825197145467356UL]; - Blip_GetOutlineIndicatorVisible = (delegate* unmanaged[Cdecl]) funcTable[7151930674085082596UL]; - Blip_GetPriority = (delegate* unmanaged[Cdecl]) funcTable[12632472660267595957UL]; - Blip_GetPulse = (delegate* unmanaged[Cdecl]) funcTable[7257172800563416970UL]; - Blip_GetRotation = (delegate* unmanaged[Cdecl]) funcTable[5702674297810853299UL]; - Blip_GetRoute = (delegate* unmanaged[Cdecl]) funcTable[16653539139235421378UL]; - Blip_GetRouteColor = (delegate* unmanaged[Cdecl]) funcTable[17064807464537399125UL]; - Blip_GetScaleXY = (delegate* unmanaged[Cdecl]) funcTable[11607734941118633722UL]; - Blip_GetSecondaryColor = (delegate* unmanaged[Cdecl]) funcTable[963433508794487912UL]; - Blip_GetShowCone = (delegate* unmanaged[Cdecl]) funcTable[2901886689426515467UL]; - Blip_GetShrinked = (delegate* unmanaged[Cdecl]) funcTable[17121302494407187349UL]; - Blip_GetSprite = (delegate* unmanaged[Cdecl]) funcTable[14083917171894209256UL]; - Blip_GetTickVisible = (delegate* unmanaged[Cdecl]) funcTable[8240730200168110122UL]; - Blip_GetType = (delegate* unmanaged[Cdecl]) funcTable[17238464136056972089UL]; - Blip_GetWorldObject = (delegate* unmanaged[Cdecl]) funcTable[12101381495710790212UL]; - Blip_IsGlobal = (delegate* unmanaged[Cdecl]) funcTable[1596569233630630336UL]; - Blip_SetAlpha = (delegate* unmanaged[Cdecl]) funcTable[827526123028486003UL]; - Blip_SetAsFriendly = (delegate* unmanaged[Cdecl]) funcTable[787285555691727838UL]; - Blip_SetAsHighDetail = (delegate* unmanaged[Cdecl]) funcTable[10952140126105149868UL]; - Blip_SetAsMissionCreator = (delegate* unmanaged[Cdecl]) funcTable[4259466712060494347UL]; - Blip_SetAsShortRange = (delegate* unmanaged[Cdecl]) funcTable[11444504913196635074UL]; - Blip_SetBright = (delegate* unmanaged[Cdecl]) funcTable[12951227871163453789UL]; - Blip_SetCategory = (delegate* unmanaged[Cdecl]) funcTable[10908482830560933545UL]; - Blip_SetColor = (delegate* unmanaged[Cdecl]) funcTable[4359213668992430544UL]; - Blip_SetCrewIndicatorVisible = (delegate* unmanaged[Cdecl]) funcTable[5021791765560450045UL]; - Blip_SetDisplay = (delegate* unmanaged[Cdecl]) funcTable[765521681468970253UL]; - Blip_SetFlashes = (delegate* unmanaged[Cdecl]) funcTable[9719457212042336413UL]; - Blip_SetFlashesAlternate = (delegate* unmanaged[Cdecl]) funcTable[16980328663411287653UL]; - Blip_SetFlashInterval = (delegate* unmanaged[Cdecl]) funcTable[6214100447904171196UL]; - Blip_SetFlashTimer = (delegate* unmanaged[Cdecl]) funcTable[1367888844464568270UL]; - Blip_SetFriendIndicatorVisible = (delegate* unmanaged[Cdecl]) funcTable[13142666920853619216UL]; - Blip_SetGxtName = (delegate* unmanaged[Cdecl]) funcTable[9573760768798768585UL]; - Blip_SetHeadingIndicatorVisible = (delegate* unmanaged[Cdecl]) funcTable[15700853203216123656UL]; - Blip_SetName = (delegate* unmanaged[Cdecl]) funcTable[10160430756249653502UL]; - Blip_SetNumber = (delegate* unmanaged[Cdecl]) funcTable[8790599012317355736UL]; - Blip_SetOutlineIndicatorVisible = (delegate* unmanaged[Cdecl]) funcTable[14432952392893787024UL]; - Blip_SetPriority = (delegate* unmanaged[Cdecl]) funcTable[3632067607182078689UL]; - Blip_SetPulse = (delegate* unmanaged[Cdecl]) funcTable[1846258490270900758UL]; - Blip_SetRotation = (delegate* unmanaged[Cdecl]) funcTable[11843758821216320887UL]; - Blip_SetRoute = (delegate* unmanaged[Cdecl]) funcTable[12209518135091118902UL]; - Blip_SetRouteColor = (delegate* unmanaged[Cdecl]) funcTable[16164192783657598681UL]; - Blip_SetScaleXY = (delegate* unmanaged[Cdecl]) funcTable[6717728395244832814UL]; - Blip_SetSecondaryColor = (delegate* unmanaged[Cdecl]) funcTable[17686447591482765772UL]; - Blip_SetShowCone = (delegate* unmanaged[Cdecl]) funcTable[3778768543137040703UL]; - Blip_SetShrinked = (delegate* unmanaged[Cdecl]) funcTable[13148291405831983849UL]; - Blip_SetSprite = (delegate* unmanaged[Cdecl]) funcTable[12679562522051391268UL]; - Blip_SetTickVisible = (delegate* unmanaged[Cdecl]) funcTable[12301129353484862462UL]; - Checkpoint_GetCheckpointType = (delegate* unmanaged[Cdecl]) funcTable[4468015372226338538UL]; - Checkpoint_GetColor = (delegate* unmanaged[Cdecl]) funcTable[3060780930087959043UL]; - Checkpoint_GetColShape = (delegate* unmanaged[Cdecl]) funcTable[14307496819100881307UL]; - Checkpoint_GetHeight = (delegate* unmanaged[Cdecl]) funcTable[10824205268136835519UL]; - Checkpoint_GetNextPosition = (delegate* unmanaged[Cdecl]) funcTable[17903934855727355674UL]; - Checkpoint_GetRadius = (delegate* unmanaged[Cdecl]) funcTable[2020890038989364322UL]; - Checkpoint_SetCheckpointType = (delegate* unmanaged[Cdecl]) funcTable[13376157559809529246UL]; - Checkpoint_SetColor = (delegate* unmanaged[Cdecl]) funcTable[5248247616935456519UL]; - Checkpoint_SetHeight = (delegate* unmanaged[Cdecl]) funcTable[9224402025453695499UL]; - Checkpoint_SetNextPosition = (delegate* unmanaged[Cdecl]) funcTable[9666277662912136326UL]; - Checkpoint_SetRadius = (delegate* unmanaged[Cdecl]) funcTable[14085042752674206838UL]; - ColShape_GetWorldObject = (delegate* unmanaged[Cdecl]) funcTable[10737084266638046596UL]; - ColShape_IsEntityIdIn = (delegate* unmanaged[Cdecl]) funcTable[5869452894078625098UL]; - ColShape_IsEntityIn = (delegate* unmanaged[Cdecl]) funcTable[7195796169914493467UL]; - ColShape_IsPointIn = (delegate* unmanaged[Cdecl]) funcTable[14730476857638624976UL]; - Config_Delete = (delegate* unmanaged[Cdecl]) funcTable[7317062620834459283UL]; - Core_CreateMValueBaseObject = (delegate* unmanaged[Cdecl]) funcTable[5766415601923287037UL]; - Core_CreateMValueBool = (delegate* unmanaged[Cdecl]) funcTable[6215947625799767015UL]; - Core_CreateMValueByteArray = (delegate* unmanaged[Cdecl]) funcTable[3593725825158754778UL]; - Core_CreateMValueDict = (delegate* unmanaged[Cdecl]) funcTable[15859098018404006899UL]; - Core_CreateMValueDouble = (delegate* unmanaged[Cdecl]) funcTable[16242142122941629214UL]; - Core_CreateMValueFunction = (delegate* unmanaged[Cdecl]) funcTable[4657269419219583283UL]; - Core_CreateMValueInt = (delegate* unmanaged[Cdecl]) funcTable[12481901724785534268UL]; - Core_CreateMValueList = (delegate* unmanaged[Cdecl]) funcTable[14851400310496395323UL]; - Core_CreateMValueNil = (delegate* unmanaged[Cdecl]) funcTable[14313308765387586898UL]; - Core_CreateMValueRgba = (delegate* unmanaged[Cdecl]) funcTable[7470444750118649089UL]; - Core_CreateMValueString = (delegate* unmanaged[Cdecl]) funcTable[8662408974678811830UL]; - Core_CreateMValueUInt = (delegate* unmanaged[Cdecl]) funcTable[13185731657110853387UL]; - Core_CreateMValueVector2 = (delegate* unmanaged[Cdecl]) funcTable[14209218917773541446UL]; - Core_CreateMValueVector3 = (delegate* unmanaged[Cdecl]) funcTable[14209220017285169657UL]; - Core_DeleteMetaData = (delegate* unmanaged[Cdecl]) funcTable[4400707511942386101UL]; - Core_DestroyBaseObject = (delegate* unmanaged[Cdecl]) funcTable[5259800943635588661UL]; - Core_FileExists = (delegate* unmanaged[Cdecl]) funcTable[3901271461579002085UL]; - Core_FileRead = (delegate* unmanaged[Cdecl]) funcTable[9760322637789525869UL]; - Core_GetAllResources = (delegate* unmanaged[Cdecl]) funcTable[6732542261895805625UL]; - Core_GetBlipCount = (delegate* unmanaged[Cdecl]) funcTable[11007750040303004177UL]; - Core_GetBlips = (delegate* unmanaged[Cdecl]) funcTable[1917439644533318059UL]; - Core_GetBranch = (delegate* unmanaged[Cdecl]) funcTable[6690168401436253437UL]; - Core_GetCoreInstance = (delegate* unmanaged[Cdecl]) funcTable[6337496489317379009UL]; - Core_GetEntityById = (delegate* unmanaged[Cdecl]) funcTable[18047752154616389974UL]; - Core_GetEventEnumSize = (delegate* unmanaged[Cdecl]) funcTable[92328002015237983UL]; - Core_GetMetaData = (delegate* unmanaged[Cdecl]) funcTable[4962810708229775752UL]; - Core_GetPlayerCount = (delegate* unmanaged[Cdecl]) funcTable[9039461081005071287UL]; - Core_GetPlayers = (delegate* unmanaged[Cdecl]) funcTable[11861055459526076209UL]; - Core_GetResource = (delegate* unmanaged[Cdecl]) funcTable[10536163479263043901UL]; - Core_GetSyncedMetaData = (delegate* unmanaged[Cdecl]) funcTable[15692791650389615518UL]; - Core_GetVehicleCount = (delegate* unmanaged[Cdecl]) funcTable[2823364380739421630UL]; - Core_GetVehicles = (delegate* unmanaged[Cdecl]) funcTable[3235559180935122972UL]; - Core_GetVersion = (delegate* unmanaged[Cdecl]) funcTable[14465876538568411535UL]; - Core_HasMetaData = (delegate* unmanaged[Cdecl]) funcTable[526835444446666988UL]; - Core_HasSyncedMetaData = (delegate* unmanaged[Cdecl]) funcTable[8287345762226423418UL]; - Core_IsDebug = (delegate* unmanaged[Cdecl]) funcTable[3743078238673604470UL]; - Core_LogColored = (delegate* unmanaged[Cdecl]) funcTable[18216431582726856771UL]; - Core_LogDebug = (delegate* unmanaged[Cdecl]) funcTable[2823729106002025274UL]; - Core_LogError = (delegate* unmanaged[Cdecl]) funcTable[10891295114061747259UL]; - Core_LogInfo = (delegate* unmanaged[Cdecl]) funcTable[14877110261382004871UL]; - Core_LogWarning = (delegate* unmanaged[Cdecl]) funcTable[1040611282316859125UL]; - Core_SetMetaData = (delegate* unmanaged[Cdecl]) funcTable[14392325663991424196UL]; - Core_ToggleEvent = (delegate* unmanaged[Cdecl]) funcTable[10255109545425113429UL]; - Core_TriggerLocalEvent = (delegate* unmanaged[Cdecl]) funcTable[8156519968050262184UL]; - Entity_GetID = (delegate* unmanaged[Cdecl]) funcTable[9087594972632768060UL]; - Entity_GetModel = (delegate* unmanaged[Cdecl]) funcTable[14085866899597080750UL]; - Entity_GetNetOwner = (delegate* unmanaged[Cdecl]) funcTable[8567145605175130875UL]; - Entity_GetNetOwnerID = (delegate* unmanaged[Cdecl]) funcTable[17787500225623214326UL]; - Entity_GetRotation = (delegate* unmanaged[Cdecl]) funcTable[15850066457941071707UL]; - Entity_GetStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) funcTable[5575408495236846882UL]; - Entity_GetSyncedMetaData = (delegate* unmanaged[Cdecl]) funcTable[17547631773096257994UL]; - Entity_GetTypeByID = (delegate* unmanaged[Cdecl]) funcTable[7997516127451707853UL]; - Entity_GetWorldObject = (delegate* unmanaged[Cdecl]) funcTable[5428808758885526812UL]; - Entity_HasStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) funcTable[17507712689507862030UL]; - Entity_HasSyncedMetaData = (delegate* unmanaged[Cdecl]) funcTable[13485609717128995678UL]; - Event_Cancel = (delegate* unmanaged[Cdecl]) funcTable[16366231753228483546UL]; - Event_WasCancelled = (delegate* unmanaged[Cdecl]) funcTable[1674369606153072852UL]; - FreeCharArray = (delegate* unmanaged[Cdecl]) funcTable[16225037769244386888UL]; - FreeMValueConstArray = (delegate* unmanaged[Cdecl]) funcTable[4069449017940596015UL]; - FreeObjectArray = (delegate* unmanaged[Cdecl]) funcTable[5578275922188021101UL]; - FreeResourceArray = (delegate* unmanaged[Cdecl]) funcTable[6554604447971714996UL]; - FreeString = (delegate* unmanaged[Cdecl]) funcTable[11629237033957135486UL]; - FreeStringArray = (delegate* unmanaged[Cdecl]) funcTable[9529728860812939111UL]; - FreeUInt32Array = (delegate* unmanaged[Cdecl]) funcTable[1947694414810612927UL]; - FreeUInt8Array = (delegate* unmanaged[Cdecl]) funcTable[5960113823565150810UL]; - FreeUIntArray = (delegate* unmanaged[Cdecl]) funcTable[14856349963727788424UL]; - FreeVoidPointerArray = (delegate* unmanaged[Cdecl]) funcTable[2483773874873355099UL]; - FreeWeaponTArray = (delegate* unmanaged[Cdecl]) funcTable[1854768873949066606UL]; - GetBranchStatic = (delegate* unmanaged[Cdecl]) funcTable[7166006842963864493UL]; - GetCApiVersion = (delegate* unmanaged[Cdecl]) funcTable[6426204784331965736UL]; - GetSDKVersion = (delegate* unmanaged[Cdecl]) funcTable[12829489855253341107UL]; - GetVersionStatic = (delegate* unmanaged[Cdecl]) funcTable[8723031759902147375UL]; - Invoker_Create = (delegate* unmanaged[Cdecl]) funcTable[13124968469479193234UL]; - Invoker_Destroy = (delegate* unmanaged[Cdecl]) funcTable[10594554066242046632UL]; - IsDebugStatic = (delegate* unmanaged[Cdecl]) funcTable[4877298225340664926UL]; - MValueConst_AddRef = (delegate* unmanaged[Cdecl]) funcTable[13238013155478018457UL]; - MValueConst_CallFunction = (delegate* unmanaged[Cdecl]) funcTable[15308010697310934269UL]; - MValueConst_Delete = (delegate* unmanaged[Cdecl]) funcTable[5208125713755310202UL]; - MValueConst_GetBool = (delegate* unmanaged[Cdecl]) funcTable[11088288234116655539UL]; - MValueConst_GetByteArray = (delegate* unmanaged[Cdecl]) funcTable[3549085397639113974UL]; - MValueConst_GetByteArraySize = (delegate* unmanaged[Cdecl]) funcTable[2948775393893878615UL]; - MValueConst_GetDict = (delegate* unmanaged[Cdecl]) funcTable[864591458098989191UL]; - MValueConst_GetDictSize = (delegate* unmanaged[Cdecl]) funcTable[5894378329472540734UL]; - MValueConst_GetDouble = (delegate* unmanaged[Cdecl]) funcTable[10269245833596234202UL]; - MValueConst_GetEntity = (delegate* unmanaged[Cdecl]) funcTable[3919856118327873248UL]; - MValueConst_GetInt = (delegate* unmanaged[Cdecl]) funcTable[3517164961954622984UL]; - MValueConst_GetList = (delegate* unmanaged[Cdecl]) funcTable[7923966564341260495UL]; - MValueConst_GetListSize = (delegate* unmanaged[Cdecl]) funcTable[4779387178279277510UL]; - MValueConst_GetRGBA = (delegate* unmanaged[Cdecl]) funcTable[5261817276075391869UL]; - MValueConst_GetString = (delegate* unmanaged[Cdecl]) funcTable[15545678503660759154UL]; - MValueConst_GetType = (delegate* unmanaged[Cdecl]) funcTable[4825313280512411071UL]; - MValueConst_GetUInt = (delegate* unmanaged[Cdecl]) funcTable[17394434301728901815UL]; - MValueConst_GetVector3 = (delegate* unmanaged[Cdecl]) funcTable[6939621852607573605UL]; - MValueConst_RemoveRef = (delegate* unmanaged[Cdecl]) funcTable[16719028100610299610UL]; - Object_ActivatePhysics = (delegate* unmanaged[Cdecl]) funcTable[9606374534204341755UL]; - Object_AttachToEntity = (delegate* unmanaged[Cdecl]) funcTable[10514599887053466456UL]; - Object_AttachToEntity_ScriptId = (delegate* unmanaged[Cdecl]) funcTable[15722417851376571847UL]; - Object_Detach = (delegate* unmanaged[Cdecl]) funcTable[17822531205808095184UL]; - Object_GetAlpha = (delegate* unmanaged[Cdecl]) funcTable[16946279683583996943UL]; - Object_GetEntity = (delegate* unmanaged[Cdecl]) funcTable[5993095190208669998UL]; - Object_GetID = (delegate* unmanaged[Cdecl]) funcTable[9771131084350658876UL]; - Object_GetLodDistance = (delegate* unmanaged[Cdecl]) funcTable[4347447065271831447UL]; - Object_GetTextureVariation = (delegate* unmanaged[Cdecl]) funcTable[10060423869005405869UL]; - Object_HasGravity = (delegate* unmanaged[Cdecl]) funcTable[13718428067165128397UL]; - Object_IsCollisionEnabled = (delegate* unmanaged[Cdecl]) funcTable[5170968123789122622UL]; - Object_IsDynamic = (delegate* unmanaged[Cdecl]) funcTable[13795465085161703016UL]; - Object_IsWorldObject = (delegate* unmanaged[Cdecl]) funcTable[8255652786266033414UL]; - Object_PlaceOnGroundProperly = (delegate* unmanaged[Cdecl]) funcTable[10357990694838043369UL]; - Object_ResetAlpha = (delegate* unmanaged[Cdecl]) funcTable[5312802994075382UL]; - Object_SetAlpha = (delegate* unmanaged[Cdecl]) funcTable[5932338440310697259UL]; - Object_SetLodDistance = (delegate* unmanaged[Cdecl]) funcTable[10966514812657015763UL]; - Object_SetPositionFrozen = (delegate* unmanaged[Cdecl]) funcTable[2811084004146178600UL]; - Object_SetTextureVariation = (delegate* unmanaged[Cdecl]) funcTable[768646703992673153UL]; - Object_ToggleCollision = (delegate* unmanaged[Cdecl]) funcTable[12664218893021849909UL]; - Object_ToggleGravity = (delegate* unmanaged[Cdecl]) funcTable[6118141396684864939UL]; - Player_GetAimPos = (delegate* unmanaged[Cdecl]) funcTable[12055228920754510438UL]; - Player_GetArmor = (delegate* unmanaged[Cdecl]) funcTable[7987175764076571142UL]; - Player_GetCurrentAnimationDict = (delegate* unmanaged[Cdecl]) funcTable[16723753462771656002UL]; - Player_GetCurrentAnimationName = (delegate* unmanaged[Cdecl]) funcTable[14199429433893111373UL]; - Player_GetCurrentWeapon = (delegate* unmanaged[Cdecl]) funcTable[11722701579516800724UL]; - Player_GetCurrentWeaponComponents = (delegate* unmanaged[Cdecl]) funcTable[903737297265794112UL]; - Player_GetEntity = (delegate* unmanaged[Cdecl]) funcTable[4219554370208343576UL]; - Player_GetEntityAimingAt = (delegate* unmanaged[Cdecl]) funcTable[8756153063636051370UL]; - Player_GetEntityAimOffset = (delegate* unmanaged[Cdecl]) funcTable[17052091012239270302UL]; - Player_GetForwardSpeed = (delegate* unmanaged[Cdecl]) funcTable[10477409440198311767UL]; - Player_GetHeadRotation = (delegate* unmanaged[Cdecl]) funcTable[569750430609482447UL]; - Player_GetHealth = (delegate* unmanaged[Cdecl]) funcTable[9627375203842267657UL]; - Player_GetID = (delegate* unmanaged[Cdecl]) funcTable[13529169793345329634UL]; - Player_GetMaxArmor = (delegate* unmanaged[Cdecl]) funcTable[18198951985038993902UL]; - Player_GetMaxHealth = (delegate* unmanaged[Cdecl]) funcTable[9580708801779571281UL]; - Player_GetMoveSpeed = (delegate* unmanaged[Cdecl]) funcTable[14116553093415128985UL]; - Player_GetName = (delegate* unmanaged[Cdecl]) funcTable[18208358185438436044UL]; - Player_GetSeat = (delegate* unmanaged[Cdecl]) funcTable[17783634308194244054UL]; - Player_GetStrafeSpeed = (delegate* unmanaged[Cdecl]) funcTable[17472156043257663151UL]; - Player_GetVehicle = (delegate* unmanaged[Cdecl]) funcTable[6460458032371095477UL]; - Player_GetVehicleID = (delegate* unmanaged[Cdecl]) funcTable[4282033199082041680UL]; - Player_IsAiming = (delegate* unmanaged[Cdecl]) funcTable[19422907341087170UL]; - Player_IsDead = (delegate* unmanaged[Cdecl]) funcTable[16541873945799242735UL]; - Player_IsFlashlightActive = (delegate* unmanaged[Cdecl]) funcTable[11364144814361369317UL]; - Player_IsInRagdoll = (delegate* unmanaged[Cdecl]) funcTable[18289859726611042969UL]; - Player_IsInVehicle = (delegate* unmanaged[Cdecl]) funcTable[17647219891975255146UL]; - Player_IsJumping = (delegate* unmanaged[Cdecl]) funcTable[2774748351170754987UL]; - Player_IsReloading = (delegate* unmanaged[Cdecl]) funcTable[8442543187693158756UL]; - Player_IsShooting = (delegate* unmanaged[Cdecl]) funcTable[14354912280795983824UL]; - Player_IsSpawned = (delegate* unmanaged[Cdecl]) funcTable[1932704011972581825UL]; - Resource_GetCSharpImpl = (delegate* unmanaged[Cdecl]) funcTable[7961141357174306011UL]; - Resource_GetDependants = (delegate* unmanaged[Cdecl]) funcTable[3527878370801900338UL]; - Resource_GetDependantsSize = (delegate* unmanaged[Cdecl]) funcTable[1156155992924307355UL]; - Resource_GetDependencies = (delegate* unmanaged[Cdecl]) funcTable[15497666607657809255UL]; - Resource_GetDependenciesSize = (delegate* unmanaged[Cdecl]) funcTable[9313014807395764702UL]; - Resource_GetExport = (delegate* unmanaged[Cdecl]) funcTable[16562616898274351656UL]; - Resource_GetExports = (delegate* unmanaged[Cdecl]) funcTable[1742568333452740769UL]; - Resource_GetExportsCount = (delegate* unmanaged[Cdecl]) funcTable[13732050801943809688UL]; - Resource_GetImpl = (delegate* unmanaged[Cdecl]) funcTable[17439052109499018136UL]; - Resource_GetName = (delegate* unmanaged[Cdecl]) funcTable[2004047452491814481UL]; - Resource_GetType = (delegate* unmanaged[Cdecl]) funcTable[6910900490118249642UL]; - Resource_IsStarted = (delegate* unmanaged[Cdecl]) funcTable[7381783592249104347UL]; - Resource_SetExport = (delegate* unmanaged[Cdecl]) funcTable[44213070459954956UL]; - Resource_SetExports = (delegate* unmanaged[Cdecl]) funcTable[4381924041826262221UL]; - Vehicle_GetEntity = (delegate* unmanaged[Cdecl]) funcTable[7696065235019062903UL]; - Vehicle_GetID = (delegate* unmanaged[Cdecl]) funcTable[14290141191345431297UL]; - Vehicle_GetPetrolTankHealth = (delegate* unmanaged[Cdecl]) funcTable[723861135077624300UL]; - Vehicle_GetWheelsCount = (delegate* unmanaged[Cdecl]) funcTable[18205025242291418495UL]; - WorldObject_GetBaseObject = (delegate* unmanaged[Cdecl]) funcTable[13783539956199648033UL]; - WorldObject_GetPosition = (delegate* unmanaged[Cdecl]) funcTable[13686142672988940052UL]; + if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true; + else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 10988236633214279111UL) Outdated = true; + BaseObject_DeleteMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8032676411671743849UL, BaseObject_DeleteMetaDataFallback); + BaseObject_DestructCache = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6691163275156255752UL, BaseObject_DestructCacheFallback); + BaseObject_GetMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4252038112636547538UL, BaseObject_GetMetaDataFallback); + BaseObject_GetType = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11119569299180581449UL, BaseObject_GetTypeFallback); + BaseObject_HasMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12910917014607931813UL, BaseObject_HasMetaDataFallback); + BaseObject_SetMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16937583073895837697UL, BaseObject_SetMetaDataFallback); + BaseObject_TryCache = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4805394792054199783UL, BaseObject_TryCacheFallback); + Blip_Fade = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6633196698544279732UL, Blip_FadeFallback); + Blip_GetAlpha = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6843645795272198929UL, Blip_GetAlphaFallback); + Blip_GetAsFriendly = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17219371041825610064UL, Blip_GetAsFriendlyFallback); + Blip_GetAsHighDetail = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 863349328139479326UL, Blip_GetAsHighDetailFallback); + Blip_GetAsMissionCreator = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3312069114747260361UL, Blip_GetAsMissionCreatorFallback); + Blip_GetAsShortRange = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16552705327821240660UL, Blip_GetAsShortRangeFallback); + Blip_GetBright = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2526538415404116827UL, Blip_GetBrightFallback); + Blip_GetCategory = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15826245482034845008UL, Blip_GetCategoryFallback); + Blip_GetColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14163622853607831498UL, Blip_GetColorFallback); + Blip_GetCrewIndicatorVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17442773926209484835UL, Blip_GetCrewIndicatorVisibleFallback); + Blip_GetDisplay = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15574158573141716857UL, Blip_GetDisplayFallback); + Blip_GetFlashes = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11765645294402416523UL, Blip_GetFlashesFallback); + Blip_GetFlashesAlternate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11720962242561452875UL, Blip_GetFlashesAlternateFallback); + Blip_GetFlashInterval = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 322371892157657415UL, Blip_GetFlashIntervalFallback); + Blip_GetFlashTimer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13873968998292454625UL, Blip_GetFlashTimerFallback); + Blip_GetFriendIndicatorVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1385159393766883122UL, Blip_GetFriendIndicatorVisibleFallback); + Blip_GetGxtName = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 548174503258268102UL, Blip_GetGxtNameFallback); + Blip_GetHeadingIndicatorVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10301029944480990066UL, Blip_GetHeadingIndicatorVisibleFallback); + Blip_GetName = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4819731547457026911UL, Blip_GetNameFallback); + Blip_GetNumber = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15343935413119710131UL, Blip_GetNumberFallback); + Blip_GetOutlineIndicatorVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 575049905357744794UL, Blip_GetOutlineIndicatorVisibleFallback); + Blip_GetPriority = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4864043781529557736UL, Blip_GetPriorityFallback); + Blip_GetPulse = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17223773161333574288UL, Blip_GetPulseFallback); + Blip_GetRotation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10691298001359635004UL, Blip_GetRotationFallback); + Blip_GetRoute = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15186182545001328952UL, Blip_GetRouteFallback); + Blip_GetRouteColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2174331309202984324UL, Blip_GetRouteColorFallback); + Blip_GetScaleXY = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15976662414401779390UL, Blip_GetScaleXYFallback); + Blip_GetSecondaryColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8879470316118394091UL, Blip_GetSecondaryColorFallback); + Blip_GetShowCone = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10181814840743433653UL, Blip_GetShowConeFallback); + Blip_GetShrinked = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 874639805267190271UL, Blip_GetShrinkedFallback); + Blip_GetSprite = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3015598652144014783UL, Blip_GetSpriteFallback); + Blip_GetTickVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9177752480633874416UL, Blip_GetTickVisibleFallback); + Blip_GetType = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10138433409986786803UL, Blip_GetTypeFallback); + Blip_GetWorldObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13229691291523371538UL, Blip_GetWorldObjectFallback); + Blip_IsGlobal = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7092827764366153462UL, Blip_IsGlobalFallback); + Blip_SetAlpha = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17368444473958225900UL, Blip_SetAlphaFallback); + Blip_SetAsFriendly = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16165053809546733271UL, Blip_SetAsFriendlyFallback); + Blip_SetAsHighDetail = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1539266922863640261UL, Blip_SetAsHighDetailFallback); + Blip_SetAsMissionCreator = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17757648939429219636UL, Blip_SetAsMissionCreatorFallback); + Blip_SetAsShortRange = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11735946879215707723UL, Blip_SetAsShortRangeFallback); + Blip_SetBright = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11739900699062103126UL, Blip_SetBrightFallback); + Blip_SetCategory = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16976533959290405247UL, Blip_SetCategoryFallback); + Blip_SetColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16889550679750230985UL, Blip_SetColorFallback); + Blip_SetCrewIndicatorVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4346269309200056118UL, Blip_SetCrewIndicatorVisibleFallback); + Blip_SetDisplay = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13876263361348749692UL, Blip_SetDisplayFallback); + Blip_SetFlashes = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18345273073053294614UL, Blip_SetFlashesFallback); + Blip_SetFlashesAlternate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4124278006586753710UL, Blip_SetFlashesAlternateFallback); + Blip_SetFlashInterval = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4106723800653859026UL, Blip_SetFlashIntervalFallback); + Blip_SetFlashTimer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14264874127019030452UL, Blip_SetFlashTimerFallback); + Blip_SetFriendIndicatorVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 404648410580457609UL, Blip_SetFriendIndicatorVisibleFallback); + Blip_SetGxtName = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2896057006158947493UL, Blip_SetGxtNameFallback); + Blip_SetHeadingIndicatorVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4233956000658665489UL, Blip_SetHeadingIndicatorVisibleFallback); + Blip_SetName = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5356057624401803688UL, Blip_SetNameFallback); + Blip_SetNumber = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9620549539065647630UL, Blip_SetNumberFallback); + Blip_SetOutlineIndicatorVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3029230684693548297UL, Blip_SetOutlineIndicatorVisibleFallback); + Blip_SetPriority = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12010941159221668871UL, Blip_SetPriorityFallback); + Blip_SetPulse = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14678607532216221087UL, Blip_SetPulseFallback); + Blip_SetRotation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2088091673313235227UL, Blip_SetRotationFallback); + Blip_SetRoute = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13955731389093058303UL, Blip_SetRouteFallback); + Blip_SetRouteColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17353536904559002124UL, Blip_SetRouteColorFallback); + Blip_SetScaleXY = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3872766200123588510UL, Blip_SetScaleXYFallback); + Blip_SetSecondaryColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 45946054247045837UL, Blip_SetSecondaryColorFallback); + Blip_SetShowCone = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 453472537370220232UL, Blip_SetShowConeFallback); + Blip_SetShrinked = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7210906801683447458UL, Blip_SetShrinkedFallback); + Blip_SetSprite = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14378285759569019370UL, Blip_SetSpriteFallback); + Blip_SetTickVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3561326935454553655UL, Blip_SetTickVisibleFallback); + Checkpoint_GetCheckpointType = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14827405605973883979UL, Checkpoint_GetCheckpointTypeFallback); + Checkpoint_GetColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3775073332217131787UL, Checkpoint_GetColorFallback); + Checkpoint_GetColShape = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17482162811317800600UL, Checkpoint_GetColShapeFallback); + Checkpoint_GetHeight = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13557625551244465639UL, Checkpoint_GetHeightFallback); + Checkpoint_GetNextPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17089941913478571218UL, Checkpoint_GetNextPositionFallback); + Checkpoint_GetRadius = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16135548078550245994UL, Checkpoint_GetRadiusFallback); + Checkpoint_SetCheckpointType = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13843018058835105286UL, Checkpoint_SetCheckpointTypeFallback); + Checkpoint_SetColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17754703024704790805UL, Checkpoint_SetColorFallback); + Checkpoint_SetHeight = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12891628734474300322UL, Checkpoint_SetHeightFallback); + Checkpoint_SetNextPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11203997981133723426UL, Checkpoint_SetNextPositionFallback); + Checkpoint_SetRadius = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1352429280367984961UL, Checkpoint_SetRadiusFallback); + ColShape_GetWorldObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12063803817393523050UL, ColShape_GetWorldObjectFallback); + ColShape_IsEntityIdIn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11663630185962538197UL, ColShape_IsEntityIdInFallback); + ColShape_IsEntityIn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14246921758262831479UL, ColShape_IsEntityInFallback); + ColShape_IsPointIn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5532487930936127510UL, ColShape_IsPointInFallback); + Config_Delete = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2262811344498570156UL, Config_DeleteFallback); + Core_CreateMValueBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4584378219312895289UL, Core_CreateMValueBaseObjectFallback); + Core_CreateMValueBool = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15746428410885594662UL, Core_CreateMValueBoolFallback); + Core_CreateMValueByteArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13926064973915625040UL, Core_CreateMValueByteArrayFallback); + Core_CreateMValueDict = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15368774857641140110UL, Core_CreateMValueDictFallback); + Core_CreateMValueDouble = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1882390361049016267UL, Core_CreateMValueDoubleFallback); + Core_CreateMValueFunction = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11902152537215198618UL, Core_CreateMValueFunctionFallback); + Core_CreateMValueInt = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4856451965197820806UL, Core_CreateMValueIntFallback); + Core_CreateMValueList = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9113028347303902605UL, Core_CreateMValueListFallback); + Core_CreateMValueNil = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16512941520029131283UL, Core_CreateMValueNilFallback); + Core_CreateMValueRgba = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9220192531397651202UL, Core_CreateMValueRgbaFallback); + Core_CreateMValueString = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15411039852549673274UL, Core_CreateMValueStringFallback); + Core_CreateMValueUInt = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6163221229160271460UL, Core_CreateMValueUIntFallback); + Core_CreateMValueVector2 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14147992496612914836UL, Core_CreateMValueVector2Fallback); + Core_CreateMValueVector3 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5009905671684942563UL, Core_CreateMValueVector3Fallback); + Core_DeleteMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13221743936666214985UL, Core_DeleteMetaDataFallback); + Core_DestroyBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18388140590159782277UL, Core_DestroyBaseObjectFallback); + Core_FileExists = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15661057563805869574UL, Core_FileExistsFallback); + Core_FileRead = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13630176403103570557UL, Core_FileReadFallback); + Core_GetAllResources = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3926770362965932159UL, Core_GetAllResourcesFallback); + Core_GetBlipCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16967133223382057881UL, Core_GetBlipCountFallback); + Core_GetBlips = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14544145398187240612UL, Core_GetBlipsFallback); + Core_GetBranch = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12434012012299018294UL, Core_GetBranchFallback); + Core_GetCoreInstance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16862996593036574459UL, Core_GetCoreInstanceFallback); + Core_GetEntityById = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5700771154374947006UL, Core_GetEntityByIdFallback); + Core_GetEventEnumSize = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6921054663232355759UL, Core_GetEventEnumSizeFallback); + Core_GetMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2139798095052897524UL, Core_GetMetaDataFallback); + Core_GetPlayerCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 610317128748551335UL, Core_GetPlayerCountFallback); + Core_GetPlayers = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13628989924551463504UL, Core_GetPlayersFallback); + Core_GetResource = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2104206599506704309UL, Core_GetResourceFallback); + Core_GetSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11801041189958959698UL, Core_GetSyncedMetaDataFallback); + Core_GetVehicleCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5927629023731391800UL, Core_GetVehicleCountFallback); + Core_GetVehicles = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13303931870364783888UL, Core_GetVehiclesFallback); + Core_GetVersion = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7504892851555999456UL, Core_GetVersionFallback); + Core_HasMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11163152091545864047UL, Core_HasMetaDataFallback); + Core_HasSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11681507067991184733UL, Core_HasSyncedMetaDataFallback); + Core_IsDebug = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14872081069683452488UL, Core_IsDebugFallback); + Core_LogColored = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4907513399110597611UL, Core_LogColoredFallback); + Core_LogDebug = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16207264539355256088UL, Core_LogDebugFallback); + Core_LogError = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10708570634236392131UL, Core_LogErrorFallback); + Core_LogInfo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3068398960225557583UL, Core_LogInfoFallback); + Core_LogWarning = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15034650039982382601UL, Core_LogWarningFallback); + Core_SetMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4905441971289102819UL, Core_SetMetaDataFallback); + Core_ToggleEvent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17798706175912111294UL, Core_ToggleEventFallback); + Core_TriggerLocalEvent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2095655564565809781UL, Core_TriggerLocalEventFallback); + Entity_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12913447266302910987UL, Entity_GetIDFallback); + Entity_GetModel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6111944054700936115UL, Entity_GetModelFallback); + Entity_GetNetOwner = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7130354370478174789UL, Entity_GetNetOwnerFallback); + Entity_GetNetOwnerID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10262653550309861069UL, Entity_GetNetOwnerIDFallback); + Entity_GetRotation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13365378745805996598UL, Entity_GetRotationFallback); + Entity_GetStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11045454806874783898UL, Entity_GetStreamSyncedMetaDataFallback); + Entity_GetSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17412355100157928370UL, Entity_GetSyncedMetaDataFallback); + Entity_GetTypeByID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16194706534247749750UL, Entity_GetTypeByIDFallback); + Entity_GetWorldObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15286200049861980882UL, Entity_GetWorldObjectFallback); + Entity_HasStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2664435930066837893UL, Entity_HasStreamSyncedMetaDataFallback); + Entity_HasSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11769847080250294005UL, Entity_HasSyncedMetaDataFallback); + Event_Cancel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4913360914395691424UL, Event_CancelFallback); + Event_WasCancelled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15923635865693275395UL, Event_WasCancelledFallback); + FreeCharArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1943718755920302008UL, FreeCharArrayFallback); + FreeMValueConstArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10875848896530643353UL, FreeMValueConstArrayFallback); + FreeObjectArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12324137626706269838UL, FreeObjectArrayFallback); + FreeResourceArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7782187912558785270UL, FreeResourceArrayFallback); + FreeString = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10646355260907021718UL, FreeStringFallback); + FreeStringArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9817201133426969670UL, FreeStringArrayFallback); + FreeUInt32Array = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2025110884526748511UL, FreeUInt32ArrayFallback); + FreeUInt8Array = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15676846424137302955UL, FreeUInt8ArrayFallback); + FreeUIntArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18177610684891912620UL, FreeUIntArrayFallback); + FreeVoidPointerArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14409547959528391761UL, FreeVoidPointerArrayFallback); + FreeWeaponTArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14701143750997334716UL, FreeWeaponTArrayFallback); + GetBranchStatic = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15513118297531919712UL, GetBranchStaticFallback); + GetCApiVersion = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10580384701439081299UL, GetCApiVersionFallback); + GetSDKVersion = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13147849555054061682UL, GetSDKVersionFallback); + GetVersionStatic = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9678603713250235246UL, GetVersionStaticFallback); + Invoker_Create = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15107945359232289520UL, Invoker_CreateFallback); + Invoker_Destroy = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13472547340675883247UL, Invoker_DestroyFallback); + IsDebugStatic = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7118542945065902334UL, IsDebugStaticFallback); + MValueConst_AddRef = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8024965565519351537UL, MValueConst_AddRefFallback); + MValueConst_CallFunction = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 385248565149432234UL, MValueConst_CallFunctionFallback); + MValueConst_Delete = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1868060259381368328UL, MValueConst_DeleteFallback); + MValueConst_GetBool = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10166810469874461064UL, MValueConst_GetBoolFallback); + MValueConst_GetByteArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2500403761842775751UL, MValueConst_GetByteArrayFallback); + MValueConst_GetByteArraySize = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17908722150843651652UL, MValueConst_GetByteArraySizeFallback); + MValueConst_GetDict = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10019897816970500190UL, MValueConst_GetDictFallback); + MValueConst_GetDictSize = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13554388714363276015UL, MValueConst_GetDictSizeFallback); + MValueConst_GetDouble = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17870549512330820827UL, MValueConst_GetDoubleFallback); + MValueConst_GetEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9819692566092084121UL, MValueConst_GetEntityFallback); + MValueConst_GetInt = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16982613083748675336UL, MValueConst_GetIntFallback); + MValueConst_GetList = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12014367499988455631UL, MValueConst_GetListFallback); + MValueConst_GetListSize = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15201882533294867639UL, MValueConst_GetListSizeFallback); + MValueConst_GetRGBA = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6831937237238862815UL, MValueConst_GetRGBAFallback); + MValueConst_GetString = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15737840967499726676UL, MValueConst_GetStringFallback); + MValueConst_GetType = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12478373194927884UL, MValueConst_GetTypeFallback); + MValueConst_GetUInt = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13668837850312303780UL, MValueConst_GetUIntFallback); + MValueConst_GetVector3 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1239177284695633462UL, MValueConst_GetVector3Fallback); + MValueConst_RemoveRef = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2951895109234703784UL, MValueConst_RemoveRefFallback); + Object_ActivatePhysics = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17585830173881425980UL, Object_ActivatePhysicsFallback); + Object_AttachToEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15073840091519902240UL, Object_AttachToEntityFallback); + Object_AttachToEntity_ScriptId = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5601925715555707412UL, Object_AttachToEntity_ScriptIdFallback); + Object_Detach = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5181875162525913117UL, Object_DetachFallback); + Object_GetAlpha = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4782965940294523501UL, Object_GetAlphaFallback); + Object_GetEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4934471410579771998UL, Object_GetEntityFallback); + Object_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12916172794746864343UL, Object_GetIDFallback); + Object_GetLodDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9053583879265260950UL, Object_GetLodDistanceFallback); + Object_GetTextureVariation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4660664364773957039UL, Object_GetTextureVariationFallback); + Object_HasGravity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8859174657854274703UL, Object_HasGravityFallback); + Object_IsCollisionEnabled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6249145685868994012UL, Object_IsCollisionEnabledFallback); + Object_IsDynamic = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8584793846210143026UL, Object_IsDynamicFallback); + Object_IsWorldObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17619976092247149204UL, Object_IsWorldObjectFallback); + Object_PlaceOnGroundProperly = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16593704804065749058UL, Object_PlaceOnGroundProperlyFallback); + Object_ResetAlpha = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15582803191049029347UL, Object_ResetAlphaFallback); + Object_SetAlpha = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1335394386529232328UL, Object_SetAlphaFallback); + Object_SetLodDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14785658894799737749UL, Object_SetLodDistanceFallback); + Object_SetPositionFrozen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13625864371790276101UL, Object_SetPositionFrozenFallback); + Object_SetTextureVariation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2992998067089316658UL, Object_SetTextureVariationFallback); + Object_ToggleCollision = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6986264234974696038UL, Object_ToggleCollisionFallback); + Object_ToggleGravity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4853716554374183752UL, Object_ToggleGravityFallback); + Player_GetAimPos = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6124580830261182834UL, Player_GetAimPosFallback); + Player_GetArmor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 343339663996265887UL, Player_GetArmorFallback); + Player_GetCurrentAnimationDict = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15205133691822968917UL, Player_GetCurrentAnimationDictFallback); + Player_GetCurrentAnimationName = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 847135236698778676UL, Player_GetCurrentAnimationNameFallback); + Player_GetCurrentWeapon = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12018000172190072043UL, Player_GetCurrentWeaponFallback); + Player_GetCurrentWeaponComponents = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7226011814452181359UL, Player_GetCurrentWeaponComponentsFallback); + Player_GetEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1487476147175255146UL, Player_GetEntityFallback); + Player_GetEntityAimingAt = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6876118188667194676UL, Player_GetEntityAimingAtFallback); + Player_GetEntityAimOffset = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12947171231505309434UL, Player_GetEntityAimOffsetFallback); + Player_GetForwardSpeed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12498998920879213674UL, Player_GetForwardSpeedFallback); + Player_GetHeadRotation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17222204554789096264UL, Player_GetHeadRotationFallback); + Player_GetHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14695407730559477910UL, Player_GetHealthFallback); + Player_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2649376720891219187UL, Player_GetIDFallback); + Player_GetMaxArmor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4693803817659874615UL, Player_GetMaxArmorFallback); + Player_GetMaxHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4164549052335308174UL, Player_GetMaxHealthFallback); + Player_GetMoveSpeed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10963946276172720740UL, Player_GetMoveSpeedFallback); + Player_GetName = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3887330110002916483UL, Player_GetNameFallback); + Player_GetSeat = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17967431958788515966UL, Player_GetSeatFallback); + Player_GetStrafeSpeed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1143043326764832914UL, Player_GetStrafeSpeedFallback); + Player_GetVehicle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 363172629361906086UL, Player_GetVehicleFallback); + Player_GetVehicleID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11104420334782135737UL, Player_GetVehicleIDFallback); + Player_IsAiming = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10629421607559924898UL, Player_IsAimingFallback); + Player_IsDead = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15471399568854208587UL, Player_IsDeadFallback); + Player_IsFlashlightActive = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7201780704292694361UL, Player_IsFlashlightActiveFallback); + Player_IsInRagdoll = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13866510163503569909UL, Player_IsInRagdollFallback); + Player_IsInVehicle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3966288765716642074UL, Player_IsInVehicleFallback); + Player_IsJumping = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8318404148061760703UL, Player_IsJumpingFallback); + Player_IsReloading = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4971155693566520612UL, Player_IsReloadingFallback); + Player_IsShooting = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 877598797571784312UL, Player_IsShootingFallback); + Player_IsSpawned = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4945769591274906861UL, Player_IsSpawnedFallback); + Resource_GetCSharpImpl = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10686918322243859526UL, Resource_GetCSharpImplFallback); + Resource_GetDependants = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4404156737102642473UL, Resource_GetDependantsFallback); + Resource_GetDependantsSize = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10674428892947305822UL, Resource_GetDependantsSizeFallback); + Resource_GetDependencies = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11206926904976161430UL, Resource_GetDependenciesFallback); + Resource_GetDependenciesSize = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15677938698042982787UL, Resource_GetDependenciesSizeFallback); + Resource_GetExport = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3953842985170148609UL, Resource_GetExportFallback); + Resource_GetExports = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12754801534406772523UL, Resource_GetExportsFallback); + Resource_GetExportsCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2432388310076694681UL, Resource_GetExportsCountFallback); + Resource_GetImpl = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14018893268644185902UL, Resource_GetImplFallback); + Resource_GetName = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6005318913847190117UL, Resource_GetNameFallback); + Resource_GetType = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15497014170537413316UL, Resource_GetTypeFallback); + Resource_IsStarted = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13917417294839234600UL, Resource_IsStartedFallback); + Resource_SetExport = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15249221947393767886UL, Resource_SetExportFallback); + Resource_SetExports = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14077927656531124451UL, Resource_SetExportsFallback); + Vehicle_GetEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8318093389193375258UL, Vehicle_GetEntityFallback); + Vehicle_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17687301249122992283UL, Vehicle_GetIDFallback); + Vehicle_GetPetrolTankHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18440829979133890169UL, Vehicle_GetPetrolTankHealthFallback); + Vehicle_GetWheelsCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6954962557541059864UL, Vehicle_GetWheelsCountFallback); + WorldObject_GetBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7682733547279772474UL, WorldObject_GetBaseObjectFallback); + WorldObject_GetPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13069539607851095701UL, WorldObject_GetPositionFallback); } } } \ No newline at end of file diff --git a/api/AltV.Net.CApi/Library.cs b/api/AltV.Net.CApi/Library.cs index 94e04dad5..d8f534b78 100644 --- a/api/AltV.Net.CApi/Library.cs +++ b/api/AltV.Net.CApi/Library.cs @@ -24,6 +24,8 @@ public interface ILibrary public IClientLibrary Client { get; } public IServerLibrary Server { get; } public ISharedLibrary Shared { get; } + + public bool Outdated { get; } } public class Library : ILibrary @@ -31,12 +33,24 @@ public class Library : ILibrary public IClientLibrary Client { get; } public IServerLibrary Server { get; } public ISharedLibrary Shared { get; } + + public bool Outdated { get; } public Library(Dictionary funcTable, bool client) { Shared = new SharedLibrary(funcTable); - if (client) Client = new ClientLibrary(funcTable); - else Server = new ServerLibrary(funcTable); + if (Shared.Outdated) Outdated = true; + + if (client) + { + Client = new ClientLibrary(funcTable); + if (Client.Outdated) Outdated = true; + } + else + { + Server = new ServerLibrary(funcTable); + if (Server.Outdated) Outdated = true; + } } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Alt.Globals.cs b/api/AltV.Net.Client/Alt.Globals.cs index e5ff3c06c..f56b5ab85 100644 --- a/api/AltV.Net.Client/Alt.Globals.cs +++ b/api/AltV.Net.Client/Alt.Globals.cs @@ -96,7 +96,7 @@ public static partial class Alt public static Vector3 CamPos => Core.CamPos; public static bool GameControlsEnabled { get => Core.GameControlsEnabled; set => Core.GameControlsEnabled = value; } public static bool RmlControlsEnabled { get => Core.RmlControlsEnabled; set => Core.RmlControlsEnabled = value; } - public static bool VoiceControlsEnabled { set => Core.VoiceControlsEnabled = value; } + public static bool VoiceControlsEnabled { get => Core.VoiceControlsEnabled; set => Core.VoiceControlsEnabled = value; } public static int MsPerGameMinute { get => Core.MsPerGameMinute; set => Core.MsPerGameMinute = value; } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Alt.cs b/api/AltV.Net.Client/Alt.cs index 0cfeab47b..2bd168fbd 100644 --- a/api/AltV.Net.Client/Alt.cs +++ b/api/AltV.Net.Client/Alt.cs @@ -1,4 +1,5 @@ using System.Diagnostics.CodeAnalysis; +using System.Numerics; using System.Runtime.CompilerServices; using AltV.Net.Client.Elements; using AltV.Net.Client.Elements.Data; @@ -78,5 +79,6 @@ public static bool GetEntityById(ushort id, [MaybeNullWhen(false)] out IEntity e public static bool FileExists(string path) => Core.FileExists(path); public static string ReadFile(string path) => Core.FileRead(path); public static byte[] ReadFileBinary(string path) => Core.FileReadBinary(path); + public static Vector3 PedBonesPosition(int scriptId, ushort boneId) => Core.PedBonesPosition(scriptId, boneId); } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Core.Globals.cs b/api/AltV.Net.Client/Core.Globals.cs index c1d02bea9..169fac052 100644 --- a/api/AltV.Net.Client/Core.Globals.cs +++ b/api/AltV.Net.Client/Core.Globals.cs @@ -1,4 +1,4 @@ -using System.Numerics; +using System.Numerics; using System.Runtime.InteropServices; using AltV.Net.CApi.ClientEvents; using AltV.Net.Client.Elements.Data; @@ -265,7 +265,7 @@ public bool IsMenuOpened } } } - + public bool IsPointOnScreen(Vector3 position) { unsafe @@ -482,7 +482,7 @@ public bool VoiceControlsEnabled { unsafe { - Library.Client.Core_ToggleRmlControls(NativePointer, (byte) (value ? 1 : 0)); + Library.Client.Core_ToggleVoiceControls(NativePointer, (byte) (value ? 1 : 0)); } } } diff --git a/api/AltV.Net.Client/Core.cs b/api/AltV.Net.Client/Core.cs index 0962c6cfc..7e4be3972 100644 --- a/api/AltV.Net.Client/Core.cs +++ b/api/AltV.Net.Client/Core.cs @@ -203,7 +203,7 @@ public IntPtr CreatePointBlipPtr(Position position) { unsafe { - return Library.Client.Core_Client_CreatePointBlip(NativePointer, position); + return Library.Client.Core_Client_CreatePointBlip(NativePointer, position, Resource.NativePointer); } } @@ -218,7 +218,7 @@ public IntPtr CreateRadiusBlipPtr(Position position, float radius) { unsafe { - return Library.Client.Core_Client_CreateRadiusBlip(NativePointer, position, radius); + return Library.Client.Core_Client_CreateRadiusBlip(NativePointer, position, radius, Resource.NativePointer); } } @@ -233,7 +233,7 @@ public IntPtr CreateAreaBlipPtr(Position position, int width, int height) { unsafe { - return Library.Client.Core_Client_CreateAreaBlip(NativePointer, position, width, height); + return Library.Client.Core_Client_CreateAreaBlip(NativePointer, position, width, height, Resource.NativePointer); } } @@ -307,7 +307,7 @@ public IntPtr CreateCheckpointPtr(CheckpointType type, Vector3 pos, Vector3 next { unsafe { - return Library.Client.Core_CreateCheckpoint(NativePointer, (byte) type, pos, nextPos, radius, height, color); + return Library.Client.Core_CreateCheckpoint(NativePointer, (byte) type, pos, nextPos, radius, height, color, Resource.NativePointer); } } @@ -341,7 +341,7 @@ public IntPtr CreateObjectPtr(uint modelHash, Position position, Rotation rotati { unsafe { - var ptr = Library.Client.Core_CreateObject(NativePointer, modelHash, position, rotation, (byte) (noOffset ? 1 : 0), (byte) (dynamic ? 1 : 0)); + var ptr = Library.Client.Core_CreateObject(NativePointer, modelHash, position, rotation, (byte) (noOffset ? 1 : 0), (byte) (dynamic ? 1 : 0), Resource.NativePointer); return ptr; } } @@ -556,5 +556,15 @@ public IReadOnlyCollection GetAllWorldObjects() return arr; } } + + public Vector3 PedBonesPosition(int scriptId, ushort boneId) + { + unsafe + { + var vec = Vector3.Zero; + Library.Client.Core_GetPedBonePos(NativePointer, scriptId, boneId, &vec); + return vec; + } + } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/RmlElement.cs b/api/AltV.Net.Client/Elements/Entities/RmlElement.cs index c45e3fa5d..61e9b9b47 100644 --- a/api/AltV.Net.Client/Elements/Entities/RmlElement.cs +++ b/api/AltV.Net.Client/Elements/Entities/RmlElement.cs @@ -158,7 +158,7 @@ public float ClientHeight } } - public Vector2 ContainingBlockSize + public Vector2 ContainingBlock { get { diff --git a/api/AltV.Net.Client/Elements/Entities/Vehicle.cs b/api/AltV.Net.Client/Elements/Entities/Vehicle.cs index 69757cfc0..89c0a8631 100644 --- a/api/AltV.Net.Client/Elements/Entities/Vehicle.cs +++ b/api/AltV.Net.Client/Elements/Entities/Vehicle.cs @@ -30,7 +30,15 @@ public ushort Gear unsafe { CheckIfEntityExistsOrCached(); - return Core.Library.Client.Vehicle_GetGear(VehicleNativePointer); + return Core.Library.Client.Vehicle_GetCurrentGear(VehicleNativePointer); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.Vehicle_SetCurrentGear(VehicleNativePointer, value); } } } @@ -42,7 +50,7 @@ public byte IndicatorLights unsafe { CheckIfEntityExistsOrCached(); - return Core.Library.Client.Vehicle_GetIndicatorLights(VehicleNativePointer); + return Core.Library.Client.Vehicle_GetLightsIndicator (VehicleNativePointer); } } set @@ -50,7 +58,7 @@ public byte IndicatorLights unsafe { CheckIfEntityExists(); - Core.Library.Client.Vehicle_SetIndicatorLights(VehicleNativePointer, value); + Core.Library.Client.Vehicle_SetLightsIndicator(VehicleNativePointer, value); } } } @@ -82,7 +90,7 @@ public float Rpm unsafe { CheckIfEntityExistsOrCached(); - return Core.Library.Client.Vehicle_GetRPM(VehicleNativePointer); + return Core.Library.Client.Vehicle_GetCurrentRPM(VehicleNativePointer); } } } @@ -126,7 +134,7 @@ public float EngineTemperature } } } - + public float FuelLevel { get @@ -159,6 +167,18 @@ public byte SeatCount } } + public byte OccupiedSeatsCount + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Client.Vehicle_GetOccupiedSeatsCount(VehicleNativePointer); + } + } + } + public float WheelSpeed { get @@ -204,8 +224,8 @@ public bool EngineLight } } } - - public bool AbsLight + + public bool AbsLight { get { @@ -224,7 +244,7 @@ public bool AbsLight } } } - + public bool PetrolLight { get @@ -244,7 +264,7 @@ public bool PetrolLight } } } - + public bool OilLight { get @@ -264,7 +284,7 @@ public bool OilLight } } } - + public bool BatteryLight { get @@ -318,6 +338,26 @@ public void ResetDashboardLights() } } + public bool IsTaxiLightOn + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Client.Vehicle_IsTaxiLightOn(VehicleNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.Vehicle_ToggleTaxiLight(VehicleNativePointer, value ? (byte)1 : (byte)0); + } + } + } + public Handling GetHandling() { return new Handling(Core, VehicleNativePointer); @@ -332,6 +372,114 @@ public uint GetWheelSurfaceMaterial(byte wheel) } } + public float GetWheelCamber(byte wheel) + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Client.Vehicle_GetWheelCamber(VehicleNativePointer, wheel); + } + } + + public void SetWheelCamber(byte wheel, float value) + { + unsafe + { + CheckIfEntityExistsOrCached(); + Core.Library.Client.Vehicle_SetWheelCamber(VehicleNativePointer, wheel, value); + } + } + + public float GetWheelTrackWidth(byte wheel) + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Client.Vehicle_GetWheelTrackWidth(VehicleNativePointer, wheel); + } + } + + public void SetWheelTrackWidth(byte wheel, float value) + { + unsafe + { + CheckIfEntityExistsOrCached(); + Core.Library.Client.Vehicle_SetWheelTrackWidth(VehicleNativePointer, wheel, value); + } + } + + public float GetWheelHeight(byte wheel) + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Client.Vehicle_GetWheelHeight(VehicleNativePointer, wheel); + } + } + + public void SetWheelHeight(byte wheel, float value) + { + unsafe + { + CheckIfEntityExistsOrCached(); + Core.Library.Client.Vehicle_SetWheelHeight(VehicleNativePointer, wheel, value); + } + } + + public float GetWheelTyreRadius(byte wheel) + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Client.Vehicle_GetWheelTyreRadius(VehicleNativePointer, wheel); + } + } + + public void SetWheelTyreRadius(byte wheel, float value) + { + unsafe + { + CheckIfEntityExistsOrCached(); + Core.Library.Client.Vehicle_SetWheelTyreRadius(VehicleNativePointer, wheel, value); + } + } + + public float GetWheelRimRadius(byte wheel) + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Client.Vehicle_GetWheelRimRadius(VehicleNativePointer, wheel); + } + } + + public void SetWheelRimRadius(byte wheel, float value) + { + unsafe + { + CheckIfEntityExistsOrCached(); + Core.Library.Client.Vehicle_SetWheelRimRadius(VehicleNativePointer, wheel, value); + } + } + + public float GetWheelTyreWidth(byte wheel) + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Client.Vehicle_GetWheelTyreWidth(VehicleNativePointer, wheel); + } + } + + public void SetWheelTyreWidth(byte wheel, float value) + { + unsafe + { + CheckIfEntityExistsOrCached(); + Core.Library.Client.Vehicle_SetWheelTyreWidth(VehicleNativePointer, wheel, value); + } + } + public override void SetCached(IntPtr cachedVehicle) { this.VehicleNativePointer = cachedVehicle; diff --git a/api/AltV.Net.Client/Elements/Interfaces/IBaseObject.cs b/api/AltV.Net.Client/Elements/Interfaces/IBaseObject.cs index cac9abea2..ca276ecdb 100644 --- a/api/AltV.Net.Client/Elements/Interfaces/IBaseObject.cs +++ b/api/AltV.Net.Client/Elements/Interfaces/IBaseObject.cs @@ -5,6 +5,8 @@ namespace AltV.Net.Client.Elements.Interfaces public interface IBaseObject : ISharedBaseObject { new ICore Core { get; } + [Obsolete("Use Destroy() instead")] public void Remove(); + public void Destroy(); } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/IRmlElement.cs b/api/AltV.Net.Client/Elements/Interfaces/IRmlElement.cs index 9096d40c8..f05a3340e 100644 --- a/api/AltV.Net.Client/Elements/Interfaces/IRmlElement.cs +++ b/api/AltV.Net.Client/Elements/Interfaces/IRmlElement.cs @@ -15,7 +15,7 @@ public interface IRmlElement : IBaseObject float ClientLeft { get; } float ClientWidth { get; } float ClientHeight { get; } - Vector2 ContainingBlockSize { get; } + Vector2 ContainingBlock { get; } IRmlElement FirstChild { get; } IRmlElement FocusedElement { get; } bool HasChildren { get; } diff --git a/api/AltV.Net.Client/Elements/Interfaces/IVehicle.cs b/api/AltV.Net.Client/Elements/Interfaces/IVehicle.cs index 952f41738..ab564a07a 100644 --- a/api/AltV.Net.Client/Elements/Interfaces/IVehicle.cs +++ b/api/AltV.Net.Client/Elements/Interfaces/IVehicle.cs @@ -6,7 +6,7 @@ namespace AltV.Net.Client.Elements.Interfaces { public interface IVehicle : ISharedVehicle, IEntity { - ushort Gear { get; } + ushort Gear { get; set; } byte IndicatorLights { get; set; } ushort MaxGear { get; set; } float Rpm { get; } @@ -14,6 +14,7 @@ public interface IVehicle : ISharedVehicle, IEntity float EngineTemperature { get; set; } float FuelLevel { get; set; } byte SeatCount { get; } + byte OccupiedSeatsCount { get; } float WheelSpeed { get; } Vector3 SpeedVector { get; } bool EngineLight { get; set; } @@ -22,10 +23,23 @@ public interface IVehicle : ISharedVehicle, IEntity bool OilLight { get; set; } bool BatteryLight { get; set; } void ResetDashboardLights(); - - + + bool IsTaxiLightOn { get; set; } + Handling GetHandling(); uint GetWheelSurfaceMaterial(byte wheel); + float GetWheelCamber(byte wheel); + void SetWheelCamber(byte wheel, float value); + float GetWheelTrackWidth(byte wheel); + void SetWheelTrackWidth(byte wheel, float value); + float GetWheelHeight(byte wheel); + void SetWheelHeight(byte wheel, float value); + float GetWheelTyreRadius(byte wheel); + void SetWheelTyreRadius(byte wheel, float value); + float GetWheelRimRadius(byte wheel); + void SetWheelRimRadius(byte wheel, float value); + float GetWheelTyreWidth(byte wheel); + void SetWheelTyreWidth(byte wheel, float value); } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/BaseObjectPool.cs b/api/AltV.Net.Client/Elements/Pools/BaseObjectPool.cs index 06459ea6d..d7a867669 100644 --- a/api/AltV.Net.Client/Elements/Pools/BaseObjectPool.cs +++ b/api/AltV.Net.Client/Elements/Pools/BaseObjectPool.cs @@ -44,7 +44,7 @@ public bool Remove(TBaseObject entity) public bool Remove(IntPtr entityPointer) { if (!entities.Remove(entityPointer, out var entity) || !entity.Exists) return false; - entity.OnRemove(); + entity.OnDestroy(); lock (entity) { SetEntityNoLongerExists(entity); @@ -102,7 +102,7 @@ public void Dispose() { if (!(entity is IBaseObject internalEntity)) continue; internalEntity.ClearData(); - entity.OnRemove(); + entity.OnDestroy(); OnRemove(entity); } entities.Clear(); diff --git a/api/AltV.Net.Client/Elements/Pools/EntityPool.cs b/api/AltV.Net.Client/Elements/Pools/EntityPool.cs index 0941787db..83d493bf1 100644 --- a/api/AltV.Net.Client/Elements/Pools/EntityPool.cs +++ b/api/AltV.Net.Client/Elements/Pools/EntityPool.cs @@ -61,7 +61,7 @@ public bool Remove(IntPtr entityPointer) } } - entity.OnRemove(); + entity.OnDestroy(); BaseObjectPool.SetEntityNoLongerExists(entity); } OnRemove(entity); @@ -71,7 +71,7 @@ public bool Remove(IntPtr entityPointer) public TEntity? Get(IntPtr entityPointer) { if (_entities.TryGetValue(entityPointer, out var entity)) return entity; - + lock (cache) { if (cache.TryGetValue(entityPointer, out var cachedEntity)) { @@ -82,7 +82,7 @@ public bool Remove(IntPtr entityPointer) cache.Remove(entityPointer); } } - + return default; } diff --git a/api/AltV.Net.Client/ICore.cs b/api/AltV.Net.Client/ICore.cs index 484c69c71..356a68da7 100644 --- a/api/AltV.Net.Client/ICore.cs +++ b/api/AltV.Net.Client/ICore.cs @@ -162,5 +162,6 @@ IObject CreateObject(uint modelHash, Position position, Rotation rotation, bool IReadOnlyCollection GetAllWorldObjects(); IEnumerable GetRegisteredClientEvents(); IEnumerable GetRegisteredServerEvents(); + Vector3 PedBonesPosition(int scriptId, ushort boneId); } } \ No newline at end of file diff --git a/api/AltV.Net.Client/ModuleWrapper.cs b/api/AltV.Net.Client/ModuleWrapper.cs index 62686f5b5..fe1a050b2 100644 --- a/api/AltV.Net.Client/ModuleWrapper.cs +++ b/api/AltV.Net.Client/ModuleWrapper.cs @@ -30,6 +30,11 @@ public static void MainWithAssembly(Assembly resourceAssembly, IntPtr resourcePo var logger = new Logger(library, corePointer); Alt.Logger = logger; + if (library.Outdated) + { + Alt.LogWarning("Found mismatching SDK methods. Please update AltV.Net.Client NuGet."); + } + unsafe { if (library.Shared.Core_GetEventEnumSize() != (byte) EventType.SIZE) diff --git a/api/AltV.Net.CodeGen/Generator.cs b/api/AltV.Net.CodeGen/Generator.cs deleted file mode 100644 index 1670eca27..000000000 --- a/api/AltV.Net.CodeGen/Generator.cs +++ /dev/null @@ -1,380 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Text.RegularExpressions; - -namespace AltV.Net.CodeGen -{ - public struct CMethod - { - public string ReturnType; - public string Name; - public ulong Hash; - public string Target; - public CMethodParam[] Params; - public bool NoGc; - public bool OnlyManual; - } - - public struct CMethodParam - { - public string Type; - public string Name; - } - - public static class Codegen - { - private static readonly Regex ExportRegex = new(@"EXPORT_(?\w+)\s+(?:(?NO_GC)\s+)?(?:(?ONLY_MANUAL)\s+)?(?:(?:const\s+)?(?\S+)\s+(?\S+)\s*\((?.*?)\)|(?\S+)\s*=\s*(?\S+)\s*\(\s*\*\s*\)\s*\((?.*?)\))", RegexOptions.Compiled | RegexOptions.Singleline); - private static readonly Regex ArgsRegex = new(@"(?:const\s+)?(?:\/\**\s*(?.*?)\s*\*\/\s*)?(?.*?)\s*(?[\w\d_\-\[\]]+)(?:,\s*|$)", RegexOptions.Compiled | RegexOptions.Singleline); - private static readonly Regex CommentRegex = new(@"//.*?(?:$|[\n\r]+)", RegexOptions.Compiled); - private static readonly Regex TypeExtraSpaceRegex = new(@" {2,}| +(?=[\*\&]+$)", RegexOptions.Compiled); - - private static IEnumerable ParseMethods() - { - var files = Directory.GetFiles(Environment.CurrentDirectory, "*.h", SearchOption.AllDirectories); - - foreach (var file in files) - { - var text = CommentRegex.Replace(File.ReadAllText(file), ""); - - foreach (Match match in ExportRegex.Matches(text)) - { - var type = match.Groups["type"].Value; - var name = match.Groups["name"].Value; - var target = match.Groups["target"].Value; - var nogc = match.Groups["nogc"].Length > 0; - var onlyManual = match.Groups["onlymanual"].Length > 0; - var csReturnType = CsTypes.FirstOrDefault(t => t.Key == type).Value; - - if (csReturnType is null) throw new Exception($"Unknown return type \"{type}\" in method \"{name}\""); - - - var args = new List(); - var matches = ArgsRegex.Matches(match.Groups["args"].Value); - for (var i = 0; i < matches.Count; i++) - { - var matchArg = matches[i]; - var argType = TypeExtraSpaceRegex.Replace(matchArg.Groups["type"].Value, ""); - var argName = matchArg.Groups["name"].Value; - if (argName.EndsWith("[]")) argType += "[]"; - - var csArgType = matchArg.Groups.ContainsKey("typeOverride") && matchArg.Groups["typeOverride"].Value is not "" - ? matchArg.Groups["typeOverride"].Value - : CsTypes.FirstOrDefault(t => t.Key == argType).Value; - - if (csArgType is null) throw new Exception($"Unknown arg type \"{argType}\" in method \"{name}\" at index {i}"); - - args.Add(new CMethodParam - { - Name = name, - Type = csArgType - }); - } - - yield return new CMethod - { - Name = name, - Hash = GetFnvHash(name), - ReturnType = csReturnType, - Params = args.ToArray(), - Target = target, - NoGc = nogc, - OnlyManual = onlyManual - }; - } - } - } - - private static string GetCMethodDelegateType(CMethod method) - { - var nogc = method.NoGc ? ", SuppressGCTransition" : ""; - var args = string.Join("", method.Params.Select(p => p.Type + ", ")); - return $"delegate* unmanaged[Cdecl{nogc}]<{args}{method.ReturnType}>"; - } - - private const ulong OffsetBasis = 14695981039346656037; - private static ulong GetFnvHash(string str) - { - var hash = OffsetBasis; - foreach (var c in str) - { - hash ^= c; - hash += (hash << 1) + (hash << 4) + (hash << 5) + (hash << 7) + (hash << 8) + (hash << 40); - } - return hash; - } - - public static void Generate() - { - var libOutputPath = Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly()!.Location)!, "../../../../AltV.Net.CApi/Libraries"); - var tableOutputPath = Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly()!.Location)!, "../../../../../runtime/c-api/func_table.cpp"); - - var tableHashes = new StringBuilder(); - var tablePointers = new StringBuilder(); - - var parsedMethods = ParseMethods().ToArray(); - - var collisionFound = false; - foreach (var collision in parsedMethods.GroupBy(e => e.Hash).Where(e => e.Count() > 1 && e.DistinctBy(e1 => e1.Name).Count() > 1)) - { - collisionFound = true; - Console.WriteLine("Colliding methods: " + string.Join(",", collision.Select(e => e.Name))); - } - - if (collisionFound) throw new Exception("Collision found!"); - - foreach (var group in parsedMethods.OrderBy(e => e.Name).GroupBy(e => e.Target)) - { - #region C# bindings - var target = group.Key.ForceCapitalize(); - - var methods = string.Join("\n", group.Where(e => !e.OnlyManual).Select(e => $" public {GetCMethodDelegateType(e)} {e.Name} {{ get; }}")); - var loads = string.Join("\n", group.Where(e => !e.OnlyManual).Select(e => $" {e.Name} = ({GetCMethodDelegateType(e)}) funcTable[{e.Hash}UL];")); - - var output = new StringBuilder(); - - output.Append("using AltV.Net.Data;\n"); - output.Append("using System.Numerics;\n"); - output.Append("using System.Reflection;\n"); - output.Append("using System.Runtime.InteropServices;\n"); - output.Append("using AltV.Net.Elements.Args;\n"); - output.Append("using AltV.Net.Elements.Entities;\n"); - output.Append("using AltV.Net.Native;\n\n"); - output.Append("namespace AltV.Net.CApi.Libraries\n{\n"); - - output.Append($" public unsafe interface I{target}Library\n {{\n"); - output.Append(methods + "\n"); - output.Append(" }\n\n"); - - output.Append($" public unsafe class {target}Library : I{target}Library\n {{\n"); - output.Append($" public readonly uint Methods = {parsedMethods.Length};\n"); - output.Append(methods + "\n"); - - output.Append($" public {target}Library(Dictionary funcTable)\n"); - output.Append(" {\n"); - output.Append(loads + "\n"); - output.Append(" }\n"); - - output.Append(" }\n"); - - output.Append("}"); - - File.WriteAllText(Path.Combine(libOutputPath, $"{target}Library.cs"), output.ToString()); - #endregion - - #region Func table - - if (group.Key != "SHARED") - { - tableHashes.Append($" #ifdef ALT_{group.Key}_API\n"); - tablePointers.Append($" #ifdef ALT_{group.Key}_API\n"); - } - - foreach (var e in group) - { - tableHashes.Append($" {e.Hash}UL,\n"); - tablePointers.Append($" (void*) {e.Name},\n"); - } - - if (group.Key != "SHARED") - { - tableHashes.Append($" #endif\n"); - tablePointers.Append($" #endif\n"); - } - #endregion - } - - // if (names.Distinct().Count() != names.Count) - // throw new Exception("Hash collision detected! " + names.Distinct().Count() + " " + names.Count); - - var table = new StringBuilder(); - table.Append("#include \"func_table.h\"\n\n"); - - table.Append("inline uint64_t capiHashes[] = {\n"); - table.Append(tableHashes); - table.Append("};\n\n"); - - table.Append("inline void* capiPointers[] = {\n"); - table.Append(tablePointers); - table.Append("};\n\n"); - - table.Append("const function_table_t* get_func_table() {\n"); - table.Append(" static constexpr function_table_t data {\n"); - table.Append(" std::extent::value,\n"); - table.Append(" &capiHashes[0],\n"); - table.Append(" &capiPointers[0]\n"); - table.Append(" };\n"); - table.Append(" return &data;\n"); - table.Append("}"); - - File.WriteAllText(tableOutputPath, table.ToString()); - } - - private static readonly SortedDictionary CsTypes = new() - { - {"int", "int"}, - {"unsigned int", "uint"}, - {"unsigned long", "ulong"}, - {"unsigned short", "ushort"}, - {"unsigned char", "byte"}, - {"long", "long"}, - {"short", "short"}, - {"char", "char"}, - {"float", "float"}, - {"float*", "float*"}, - {"double", "double"}, - {"double&", "double*"}, - {"bool", "bool"}, - {"void", "void"}, - {"char*", "nint"}, - {"char[]", "nint"}, - {"char*&", "nint*"}, - {"char*[]", "nint[]"}, - {"int*", "int*"}, - {"alt::ICore*", "nint"}, - {"alt::ILocalPlayer*", "nint"}, - {"alt::IPlayer*", "nint"}, - {"alt::IVehicle*", "nint"}, - {"alt::IHandlingData*", "nint"}, - {"alt::IHandlingData*&", "nint*"}, - {"alt::IWeaponData*", "nint"}, - {"alt::IWeaponData*&", "nint*"}, - {"alt::IObject*", "nint"}, - {"alt::IObject**", "nint"}, - {"alt::IObject*&", "nint*"}, - {"alt::IMapData*", "nint"}, - {"alt::IAudio*", "nint"}, - {"alt::IHttpClient*", "nint"}, - {"alt::IWebSocketClient*", "nint"}, - {"alt::IEntity*", "nint"}, - {"alt::IWorldObject*", "nint"}, - {"alt::IBaseObject*", "nint"}, - {"alt::IResource*", "nint"}, - {"alt::IResource**", "nint"}, - {"alt::IWebView*", "nint"}, - {"alt::ILocalStorage*", "nint"}, - {"alt::IStatData*", "nint"}, - {"alt::IRmlDocument*", "nint"}, - {"alt::IRmlElement*", "nint"}, - {"alt::IRmlElement**", "nint"}, - {"alt::IRmlElement**&", "nint*"}, - {"void**&", "nint*"}, - {"CSharpResourceImpl*", "nint"}, - {"void**", "nint*"}, - {"alt::MValueConst*", "nint"}, - {"alt::MValueConst**", "nint"}, - {"alt::MValueConst*[]", "nint[]"}, - {"int8_t", "sbyte"}, - {"int8_t&", "sbyte*"}, - {"uint8_t", "byte"}, - {"uint8_t[]", "byte[]"}, - {"uint8_t&", "byte*"}, - {"uint8_t*&", "nint*"}, - {"int16_t", "short"}, - {"int16_t&", "short*"}, - {"uint16_t", "ushort"}, - {"uint16_t&", "ushort*"}, - {"int32_t", "int"}, - {"int32_t&", "int*"}, - {"uint32_t", "uint"}, - {"uint32_t&", "uint*"}, - {"uint32_t*", "nint"}, - {"uint32_t*&", "nint*"}, - {"int64_t", "long"}, - {"int64_t&", "long*"}, - {"uint64_t", "ulong"}, - {"uint64_t&", "ulong*"}, - {"vector2_t", "Vector2"}, - {"vector2_t&", "Vector2*"}, - {"vector3_t", "Vector3"}, - {"vector3_t&", "Vector3*"}, - {"rgba_t", "Rgba"}, - {"rgba_t&", "Rgba*"}, - {"alt::Array", "UIntArray*"}, - - { "position_t&", "Vector3*" }, - { "position_t", "Vector3" }, - { "alt::Position", "Vector3" }, - { "rotation_t&", "Rotation*" }, - { "rotation_t", "Rotation" }, - { "alt::Rotation", "Rotation" }, - - { "cloth_t&", "Cloth*" }, - { "cloth_t", "Cloth" }, - { "dlccloth_t&", "DlcCloth*" }, - { "dlccloth_t", "DlcCloth" }, - { "prop_t&", "Prop*" }, - { "prop_t", "Prop" }, - { "dlcprop_t&", "DlcProp*" }, - { "dlcprop_t", "DlcProp" }, - { "const char*", "nint" }, - { "alt::MValue&", "MValue*" }, - { "alt::MValue*", "MValue*" }, - { "const char*&", "nint*" }, - { "char**", "nint" }, - { "char**&", "nint*" }, - { "alt::Array&", "UIntArray*" }, - { "alt::Array*", "UIntArray*" }, - { "void*", "nint" }, - { "alt::IBaseObject::Type&", "BaseObjectType*" }, - { "player_struct_t*", "ReadOnlyPlayer*" }, - { "alt::RGBA", "Rgba" }, - { "bool*", "byte*" }, - { "alt::IColShape*", "nint" }, - { "alt::ColShapeType", "ColShapeType" }, - { "alt::IVoiceChannel*", "nint" }, - { "alt::IBlip*", "nint" }, - { "alt::Array&", "StringArray*" }, - //{ "alt::MValue::List&", "MValueWriter2.MValueArray*" }, - { "const alt::MValue&", "MValue*" }, - { "const char**", "string[]" }, - { "alt::IResource::Impl*", "nint" }, - { "alt::MValueFunction::Invoker*", "nint" }, - { "MValueFunctionCallback", "MValueFunctionCallback" },//"MValue.Function", - { "CustomInvoker*", "nint" }, - { "alt::MValue[]", "MValue[]" }, - { "alt::MValueList&", "MValue*" }, //no c# representation for MValue list memory layout yet - { "const alt::MValueList&", "MValue*" }, //no c# representation for MValue list memory layout yet - { "alt::MValueDict&", "MValue*" }, //no c# representation for MValue dictionary memory layout yet - { "alt::ICheckpoint*", "nint" }, - {"alt::MValueFunction&", "MValue*"}, //no c# representation for MValue function memory layout yet, this is only in commented code and not required - { "alt::CEvent::Type", "ushort" }, - { "alt::CEvent*", "nint" }, - { "alt::EventCallback", "EventCallback" }, - { "alt::TickCallback", "TickCallback" }, - { "alt::CommandCallback", "CommandCallback" }, - { "alt::Array*", "PlayerPointerArray*" }, - { "alt::Array*", "VehiclePointerArray*" }, - { "alt::Array&", "PlayerPointerArray*" }, - { "alt::Array&", "VehiclePointerArray*" }, - { "alt::Array*", "StringViewArray*" }, - { "alt::Array*", "StringArray*" }, - { "alt::Array*", "MValueWriter2.MValueArray*" }, - { "alt::MValue*[]", "nint[]" }, - { "alt::IPlayer*[]", "nint[]" }, - { "alt::IVehicle*[]", "nint[]" }, - { "alt::IBlip*[]", "nint[]" }, - { "uint8_t*", "byte*" }, - { "head_blend_data_t", "HeadBlendData" }, - { "head_blend_data_t&", "HeadBlendData*" }, - { "head_overlay_t", "HeadOverlay" }, - { "head_overlay_t&", "HeadOverlay*" }, - { "weapon_t*[]", "WeaponData[]" }, - { "alt::Array&", "WeaponArray*" }, - { "vector2_t[]", "Vector2[]" }, - { "alt::IConnectionInfo*", "IntPtr" }, - { "ClrVehicleModelInfo*", "nint" }, - { "ClrPedModelInfo*" , "nint" }, - { "ClrDiscordUser*", "nint" }, - { "ClrConfigNodeData*", "nint" } - }; - - public static void Main(string[] args) - { - Generate(); - } - } -} \ No newline at end of file diff --git a/api/AltV.Net.CodeGen/ParseExports.cs b/api/AltV.Net.CodeGen/ParseExports.cs deleted file mode 100644 index 180dd7e49..000000000 --- a/api/AltV.Net.CodeGen/ParseExports.cs +++ /dev/null @@ -1,194 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.RegularExpressions; - -namespace AltV.Net.CodeGen -{ - public static class ParseExports - { - public struct CMethod - { - public string ReturnType; - - public string Name; - - public CMethodParam[] Params; - } - - public struct CMethodParam - { - public string Type; - public string Name; - } - - // header parser - - private const string ExportExpression = "EXPORT "; - - private const string SemicolonExpression = ";"; - - // method parser - - private const string BlankExpression = " "; - - private const string OpenedBracketExpression = "("; - - private const string ClosedBracketExpression = ")"; - - // method params parser - - private const string CommaExpression = ","; - - private const string AndExpression = "&"; - - private const string MultiplicationExpression = "*"; - - // param namen sind getrennt mit '*' oder '&' oder ' ' der kleinste index > 0 wird genommen von hinten nach vorne, also erst string reversen - private static CMethod ParseMethod(ReadOnlySpan span) - { - var methodReturnTypeEndBlank = span.IndexOf(BlankExpression); - if (methodReturnTypeEndBlank == -1) - { - methodReturnTypeEndBlank = int.MaxValue; - } - var methodReturnTypeEndNewLine = span.IndexOf(Environment.NewLine); - if (methodReturnTypeEndNewLine == -1) - { - methodReturnTypeEndNewLine = int.MaxValue; - } - - var firstOpenedBracketIndex = span.IndexOf(OpenedBracketExpression); - bool foundString = false; - int methodNameStartIndex = -1; - while (firstOpenedBracketIndex > 0) - { - var currentChar = span[firstOpenedBracketIndex]; - if (foundString) - { - if (currentChar == ' ') - { - methodNameStartIndex = firstOpenedBracketIndex; - break; - } - } else if (currentChar != ' ') - { - foundString = true; - } - firstOpenedBracketIndex--; - } - - var methodReturnTypeEnd = Math.Max(methodNameStartIndex, Math.Min(methodReturnTypeEndBlank, methodReturnTypeEndNewLine)); - - if (methodReturnTypeEnd == -1) - { - throw new ArgumentException("Wrong c method:" + span.ToString()); - } - - var methodReturnType = span.Slice(0, methodReturnTypeEnd).ToString(); - var methodNameAndParamsSpan = span.Slice(methodReturnTypeEnd + BlankExpression.Length); - var openedBracketIndex = methodNameAndParamsSpan.IndexOf(OpenedBracketExpression); - if (openedBracketIndex == -1) - { - throw new ArgumentException("Wrong c method:" + span.ToString()); - } - - var methodName = methodNameAndParamsSpan.Slice(0, openedBracketIndex).ToString(); - var closedBracketIndex = methodNameAndParamsSpan.IndexOf(ClosedBracketExpression); - if (closedBracketIndex == -1) - { - throw new ArgumentException("Wrong c method:" + span.ToString()); - } - - var methodParams = methodNameAndParamsSpan.Slice(openedBracketIndex + OpenedBracketExpression.Length, - closedBracketIndex - (openedBracketIndex + OpenedBracketExpression.Length)); - - var methodParameters = new LinkedList(); - - int commaIndex; - do - { - commaIndex = methodParams.IndexOf(CommaExpression); - ReadOnlySpan paramSpan; - if (commaIndex == -1) - { - if (methodParams.Length == 0) break; - paramSpan = methodParams.Slice(0, methodParams.Length); - methodParams.Slice(methodParams.Length); - } - else - { - paramSpan = methodParams.Slice(0, commaIndex); - methodParams = methodParams.Slice(commaIndex + 1); - } - - var trimmedParam = paramSpan.Trim(); - - var blankIndex = trimmedParam.LastIndexOf(BlankExpression); - var andIndex = trimmedParam.LastIndexOf(AndExpression); - var multiplicationIndex = trimmedParam.LastIndexOf(MultiplicationExpression); - var paramNameStart = Math.Max(blankIndex, Math.Max(andIndex, multiplicationIndex)); - var paramType = trimmedParam.Slice(0, paramNameStart + 1); //.Trim(); - var paramName = trimmedParam.Slice(paramNameStart + 1); //.Trim(); - - if (!trimmedParam.ToString().Equals(paramType.ToString() + paramName.ToString())) - { - throw new ArgumentException("Wrong converted:" + trimmedParam.ToString()); - } - - paramType = paramType.Trim(); - paramName = paramName.Trim(); - - var paramTypeString = paramType.ToString(); - var paramNameString = paramName.ToString(); - - if (paramNameString.EndsWith("[]")) - { - paramNameString = paramNameString.Replace("[]", ""); - paramTypeString += "[]"; - } - - methodParameters.AddLast(new CMethodParam {Type = paramTypeString, Name = paramNameString}); - } while (commaIndex != -1); - - - return new CMethod {ReturnType = methodReturnType, Name = methodName.Replace("\n", "").Replace("\r", ""), Params = methodParameters.ToArray()}; - } - - private static string RemoveComments(string text) - { - var blockComments = @"/\*(.*?)\*/"; - var lineComments = @"//(.*?)\r?\n"; - var strings = @"""((\\[^\n]|[^""\n])*)"""; - var verbatimStrings = @"@(""[^""]*"")+"; - return Regex.Replace(text, - blockComments + "|" + lineComments + "|" + strings + "|" + verbatimStrings, - me => { - if (me.Value.StartsWith("/*") || me.Value.StartsWith("//")) - return me.Value.StartsWith("//") ? Environment.NewLine : ""; - // Keep the literal strings - return me.Value; - }, - RegexOptions.Singleline); - } - - public static CMethod[] Parse(string text) - { - var methods = new LinkedList(); - var span = RemoveComments(text).AsSpan(); - int index; - while ((index = span.IndexOf(ExportExpression)) != -1) - { - span = span.Slice(index + ExportExpression.Length); - var nextSemicolon = span.IndexOf(SemicolonExpression); - if (nextSemicolon != -1) - { - var methodSpan = span.Slice(0, nextSemicolon); - methods.AddLast(ParseMethod(methodSpan)); - } - } - - return methods.ToArray(); - } - } -} \ No newline at end of file diff --git a/api/AltV.Net.CodeGen/Program.cs b/api/AltV.Net.CodeGen/Program.cs deleted file mode 100644 index 1e1e57d8c..000000000 --- a/api/AltV.Net.CodeGen/Program.cs +++ /dev/null @@ -1,102 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; - -namespace AltV.Net.CodeGen -{ - class Program - { - static void MainOld(string[] args) - { - var files = Directory.GetFiles( - Directory.GetParent(Directory.GetCurrentDirectory()).Parent.Parent.Parent.Parent.FullName + - Path.DirectorySeparatorChar + "runtime" + Path.DirectorySeparatorChar + "src" + - Path.DirectorySeparatorChar + "altv-c-api/"); - - var genDirectory = Directory.GetCurrentDirectory() + Path.DirectorySeparatorChar + "gen" + - Path.DirectorySeparatorChar; - if (Directory.Exists(genDirectory)) - { - Directory.Delete(genDirectory, true); - } - - Directory.CreateDirectory(genDirectory); - /*try - { - foreach (var file in files) - { - if (!file.EndsWith(".h")) continue; - var methods = ParseExports.Parse(File.ReadAllText(file)); - var methodsOutput = WritePInvokes.Write(methods); - if (methodsOutput.Length == 0) continue; - File.WriteAllText( - genDirectory + GetAltNativeFileName(Path.GetFileName(file)), - methodsOutput); - } - } - catch (Exception exception) - { - Console.WriteLine(exception); - }*/ - - try - { - var methods = new List(); - foreach (var file in files) - { - if (!file.EndsWith(".h")) continue; - methods.AddRange(ParseExports.Parse(File.ReadAllText(file))); - } - - methods.Sort((a, b) => string.Compare(a.Name, b.Name, StringComparison.Ordinal)); - - var methodsOutput = WriteLibrary.Write(methods.ToArray()); - if (methodsOutput.Length != 0) - { - File.WriteAllText( - genDirectory + "Library.cs", - methodsOutput); - //Console.WriteLine(methodsOutput); - } - } - catch (Exception exception) - { - Console.WriteLine(exception); - } - } - - private static string GetAltNativeFileName(string fileName) - { - var newFileName = fileName.Replace(".h", ".cs").ForceCapitalize(); - var indexOf = newFileName.IndexOf("_", StringComparison.Ordinal); - //TODO: only works with one _ in string - if (indexOf != -1) - { - var oldNoneUpperCase = newFileName[indexOf + 1]; - var upperCaseString = char.ToUpper(oldNoneUpperCase).ToString(); - newFileName = newFileName.Replace("_" + oldNoneUpperCase, upperCaseString); - } - - return "AltV." + newFileName; - } - } -} - -public static class StringExtensions -{ - public static string ForceCapitalize(this string input) => - input switch - { - null => throw new ArgumentNullException(nameof(input)), - "" => throw new ArgumentException($"{nameof(input)} cannot be empty", nameof(input)), - _ => input.First().ToString().ToUpper() + input.Substring(1).ToLower() - }; - public static string FirstCharToUpper(this string input) => - input switch - { - null => throw new ArgumentNullException(nameof(input)), - "" => throw new ArgumentException($"{nameof(input)} cannot be empty", nameof(input)), - _ => input.First().ToString().ToUpper() + input.Substring(1) - }; -} \ No newline at end of file diff --git a/api/AltV.Net.CodeGen/WriteLibrary.cs b/api/AltV.Net.CodeGen/WriteLibrary.cs deleted file mode 100644 index d29f14934..000000000 --- a/api/AltV.Net.CodeGen/WriteLibrary.cs +++ /dev/null @@ -1,227 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace AltV.Net.CodeGen -{ - public static class WriteLibrary - { - private const string Quote = "\""; - - private static readonly IDictionary CToCSharpTypes = new Dictionary - { - ["alt::IPlayer*"] = "nint", - ["int8_t"] = "sbyte", - ["uint8_t"] = "byte", - ["int16_t"] = "short", - ["uint16_t"] = "ushort", - ["int32_t"] = "int", - ["uint32_t"] = "uint", - ["int64_t"] = "long", - ["uint64_t"] = "ulong", - ["void"] = "void", - ["uint16_t&"] = "ushort*", - ["position_t&"] = "Position*", - ["position_t"] = "Position", - ["alt::Position"] = "Position", - ["rotation_t&"] = "Rotation*", - ["rotation_t"] = "Rotation", - ["alt::Rotation"] = "Rotation", - ["vector2_t"] = "Vector2", - ["vector2_t&"] = "Vector2*", - ["vector3_t"] = "Vector3", - ["vector3_t&"] = "Vector3*", - ["cloth_t&"] = "Cloth*", - ["cloth_t"] = "Cloth", - ["dlccloth_t&"] = "DlcCloth*", - ["dlccloth_t"] = "DlcCloth", - ["prop_t&"] = "Prop*", - ["prop_t"] = "Prop", - ["dlcprop_t&"] = "DlcProp*", - ["dlcprop_t"] = "DlcProp", - ["const char*"] = "nint", - ["alt::MValue&"] = "MValue*", - ["alt::MValue*"] = "MValue*", - ["bool"] = "byte", - ["const char*&"] = "nint*", - ["int"] = "int", - ["int*"] = "int*", - ["alt::Array&"] = "UIntArray*", - ["alt::Array*"] = "UIntArray*", - ["float"] = "float", - ["float*"] = "float*", - ["alt::IVehicle*"] = "nint", - ["void*"] = "nint", - ["alt::IBaseObject::Type&"] = "BaseObjectType*", - ["player_struct_t*"] = "ReadOnlyPlayer*", - ["rgba_t&"] = "Rgba*", - ["alt::RGBA"] = "Rgba", - ["bool*"] = "byte*", - ["alt::IColShape*"] = "nint", - ["alt::ColShapeType"] = "ColShapeType", - ["alt::IEntity*"] = "nint", - ["alt::IVoiceChannel*"] = "nint", - ["alt::IBlip*"] = "nint", - ["alt::IResource*"] = "nint", - ["alt::Array&"] = "StringArray*", - //["alt::MValue::List&"] = "MValueWriter2.MValueArray*", - ["const alt::MValue&"] = "MValue*", - ["const char**"] = "string[]", - ["alt::IResource::Impl*"] = "nint", - ["CSharpResourceImpl*"] = "nint", - ["alt::MValueFunction::Invoker*"] = "nint", - ["MValueFunctionCallback"] = "MValueFunctionCallback",//"MValue.Function", - ["CustomInvoker*"] = "nint", - ["double"] = "double", - ["alt::MValue[]"] = "MValue[]", - ["alt::MValueList&"] = "MValue*", //no c# representation for MValue list memory layout yet - ["const alt::MValueList&"] = "MValue*", //no c# representation for MValue list memory layout yet - ["alt::MValueDict&"] = "MValue*", //no c# representation for MValue dictionary memory layout yet - ["alt::ICheckpoint*"] = "nint", - ["uint64_t&"] = "ulong*", - ["int32_t&"] = "int*", - ["alt::MValueFunction&"] = - "MValue*", //no c# representation for MValue function memory layout yet, this is only in commented code and not required - ["alt::ICore*"] = "nint", - ["alt::CEvent::Type"] = "ushort", - ["alt::CEvent*"] = "nint", - ["alt::EventCallback"] = "AltV.Net.Server.EventCallback", - ["alt::TickCallback"] = "AltV.Net.Server.TickCallback", - ["alt::CommandCallback"] = "AltV.Net.Server.CommandCallback", - ["alt::Array*"] = "PlayerPointerArray*", - ["alt::Array*"] = "VehiclePointerArray*", - ["alt::Array&"] = "PlayerPointerArray*", - ["alt::Array&"] = "VehiclePointerArray*", - ["alt::Array*"] = "StringViewArray*", - ["alt::Array*"] = "StringArray*", - ["alt::Array*"] = "MValueWriter2.MValueArray*", - ["alt::MValueConst*"] = "nint", - ["alt::MValueConst*[]"] = "nint[]", - ["const char*[]"] = "nint[]",//string[] - ["alt::MValue*[]"] = "nint[]", - ["alt::IPlayer*[]"] = "nint[]", - ["alt::IVehicle*[]"] = "nint[]", - ["char[]"] = "nint", - ["uint8_t&"] = "byte*", - ["uint8_t*"] = "byte*", - ["rgba_t"] = "Rgba", - ["head_blend_data_t"] = "HeadBlendData", - ["head_blend_data_t&"] = "HeadBlendData*", - ["head_overlay_t"] = "HeadOverlay", - ["head_overlay_t&"] = "HeadOverlay*", - ["void*"] = "nint", - ["const void*"] = "nint", - ["weapon_t*[]"] = "WeaponData[]", - ["alt::Array&"] = "WeaponArray*", - ["vector2_t[]"] = "Vector2[]", - ["alt::IConnectionInfo*"] = "IntPtr", - ["ClrVehicleModelInfo*"] = "nint", - ["ClrPedModelInfo*"] = "nint" - }; - - private static string TypeToCSharp(string cType, string name, ParseExports.CMethod method) - { - if (name == "base64" && cType == "const char*") return "string"; - cType = cType.Replace(" &", "&").Replace(" *", "*"); - if (CToCSharpTypes.TryGetValue(cType, out var cSharpType)) - { - return cSharpType; - } - - throw new ArgumentException("No csharp type found for:" + cType + " param:" + name + " in method:" + method.Name); - } - - private static string TransformParameterName(string parameterName) - { - var splitParamName = parameterName.Split("_"); - if (splitParamName.Length < 2) return parameterName; - - var newParamName = ""; - for (int i = 0, length = splitParamName.Length; i < length; i++) - { - if (i > 0) - { - newParamName += splitParamName[i].FirstCharToUpper(); - } - else - { - newParamName += splitParamName[i]; - } - } - - return newParamName; - } - - public static string Write(ParseExports.CMethod[] methods) - { - var fullFile = new StringBuilder(); - var properties = new StringBuilder(); - var exports = new StringBuilder(); - var imports = new StringBuilder(); - imports.Append($@"using System; -using System.Numerics; -using System.Reflection; -using System.Runtime.InteropServices; -using System.Security; -using AltV.Net.Data; -using AltV.Net.Native; -using AltV.Net.Elements.Args; -using AltV.Net.Elements.Entities;"); - imports.Append(Environment.NewLine); - - fullFile.Append(imports); - - foreach (var method in methods) - { - var template = $@" public delegate* unmanaged[Cdecl]<{string.Join(", ", method.Params.Select(param => TypeToCSharp(param.Type, param.Name, method)).ToArray())}, {TypeToCSharp(method.ReturnType, null, method)}> {method.Name} {{ get; }}"; - template += Environment.NewLine; - properties.Append(template); - - var exportTemplate = $@" {method.Name} = (delegate* unmanaged[Cdecl]<{string.Join(", ", method.Params.Select(param => TypeToCSharp(param.Type, param.Name, method)).ToArray())}, {TypeToCSharp(method.ReturnType, null, method)}>) NativeLibrary.GetExport(handle, {Quote}{method.Name}{Quote});"; - exportTemplate += Environment.NewLine; - exports.Append(exportTemplate); - } - - var interfaceFile = new StringBuilder(); - - var interfaceTemplate = $@" -namespace AltV.Net.Native -{{ - public unsafe interface ILibrary - {{ -{properties} - }}"; - interfaceTemplate += Environment.NewLine; - - fullFile.Append(interfaceTemplate); - - var implementationFile = new StringBuilder(); - - var implementationTemplate = $@" - public unsafe class Library : ILibrary - {{ - private const string DllName = {Quote}csharp-module{Quote}; - -{properties} - public Library() - {{ - const DllImportSearchPath dllImportSearchPath = DllImportSearchPath.LegacyBehavior - | DllImportSearchPath.AssemblyDirectory - | DllImportSearchPath.SafeDirectories - | DllImportSearchPath.System32 - | DllImportSearchPath.UserDirectories - | DllImportSearchPath.ApplicationDirectory - | DllImportSearchPath.UseDllDirectoryForDependencies; - var handle = NativeLibrary.Load(DllName, Assembly.GetExecutingAssembly(), dllImportSearchPath); -{exports} - }} - }} -}}"; - - fullFile.Append(implementationTemplate); - - return fullFile.ToString(); - } - } -} \ No newline at end of file diff --git a/api/AltV.Net.CodeGen/WritePInvokes.cs b/api/AltV.Net.CodeGen/WritePInvokes.cs deleted file mode 100644 index 0a39d6753..000000000 --- a/api/AltV.Net.CodeGen/WritePInvokes.cs +++ /dev/null @@ -1,148 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace AltV.Net.CodeGen -{ - public static class WritePInvokes - { - //TODO: add a dictionary for unsafe code to generate headers for that as well - private static readonly IDictionary CToCSharpTypes = new Dictionary - { - ["alt::IPlayer*"] = "IntPtr", - ["int8_t"] = "sbyte", - ["uint8_t"] = "byte", - ["int16_t"] = "short", - ["uint16_t"] = "ushort", - ["int32_t"] = "int", - ["uint32_t"] = "uint", - ["int64_t"] = "long", - ["uint64_t"] = "ulong", - ["void"] = "void", - ["uint16_t&"] = "ref ushort", - ["position_t&"] = "ref Position", - ["position_t"] = "Position", - ["alt::Position"] = "Position", - ["rotation_t&"] = "ref Rotation", - ["rotation_t"] = "Rotation", - ["alt::Rotation"] = "Rotation", - ["cloth_t&"] = "ref Cloth", - ["cloth_t"] = "Cloth", - ["const char*"] = "IntPtr", - ["alt::MValue&"] = "ref MValue", - ["alt::MValue*"] = "ref MValue", - ["bool"] = "bool", - ["const char*&"] = "ref IntPtr", - ["int"] = "int", - ["int*"] = "ref int", - ["alt::Array&"] = "ref UIntArray", - ["alt::Array*"] = "ref UIntArray", - ["float"] = "float", - ["float*"] = "ref float", - ["alt::IVehicle*"] = "IntPtr", - ["void*"] = "IntPtr", - ["alt::IBaseObject::Type&"] = "ref BaseObjectType", - ["player_struct_t*"] = "ref ReadOnlyPlayer", - ["rgba_t&"] = "ref Rgba", - ["alt::RGBA"] = "Rgba", - ["bool*"] = "ref bool", - ["alt::IColShape*"] = "IntPtr", - ["alt::ColShapeType"] = "ColShapeType", - ["alt::IEntity*"] = "IntPtr", - ["alt::IVoiceChannel*"] = "IntPtr", - ["alt::IBlip*"] = "IntPtr", - ["alt::IResource*"] = "IntPtr", - ["alt::Array&"] = "ref StringArray", - ["alt::MValue::List&"] = "ref MValueArray", - ["const alt::MValue&"] = "ref MValue", - ["const char**"] = "string[]", - ["alt::IResource::Impl*"] = "IntPtr", - ["CSharpResourceImpl*"] = "IntPtr", - ["alt::MValueFunction::Invoker*"] = "IntPtr", - ["MValueFunctionCallback"] = "MValue.Function", - ["CustomInvoker*"] = "IntPtr", - ["double"] = "double", - ["alt::MValue[]"] = "MValue[]", - ["alt::MValueList&"] = "ref MValue", //no c# representation for MValue list memory layout yet - ["const alt::MValueList&"] = "ref MValue", //no c# representation for MValue list memory layout yet - ["alt::MValueDict&"] = "ref MValue", //no c# representation for MValue dictionary memory layout yet - ["alt::ICheckpoint*"] = "IntPtr", - ["uint64_t&"] = "ref ulong", - ["alt::MValueFunction&"] = - "ref MValue", //no c# representation for MValue function memory layout yet, this is only in commented code and not required - ["alt::ICore*"] = "IntPtr", - ["alt::CEvent::Type"] = "ushort", - ["alt::CEvent*"] = "IntPtr", - ["alt::EventCallback"] = "AltV.Net.Server.EventCallback", - ["alt::TickCallback"] = "AltV.Net.Server.TickCallback", - ["alt::CommandCallback"] = "AltV.Net.Server.CommandCallback", - ["alt::Array*"] = "ref PlayerPointerArray", - ["alt::Array*"] = "ref VehiclePointerArray", - ["alt::Array&"] = "ref PlayerPointerArray", - ["alt::Array&"] = "ref VehiclePointerArray", - ["alt::Array*"] = "ref StringViewArray", - ["alt::Array*"] = "ref StringArray", - ["alt::Array*"] = "ref MValueArray", - ["alt::MValueConst*"] = "IntPtr", - ["alt::MValueConst*[]"] = "IntPtr[]", - ["const char*[]"] = "IntPtr[]", - ["alt::MValue*[]"] = "IntPtr[]", - ["alt::IPlayer*[]"] = "IntPtr[]", - ["alt::IVehicle*[]"] = "IntPtr[]", - ["char[]"] = "IntPtr", - ["uint8_t&"] = "ref byte", - ["rgba_t"] = "Rgba", - ["void*"] = "IntPtr", - ["const void*"] = "IntPtr" - }; - - private static string TypeToCSharp(string cType, string name = null) - { - if (name == "base64" && cType == "const char*") return "string"; - cType = cType.Replace(" &", "&").Replace(" *", "*"); - if (CToCSharpTypes.TryGetValue(cType, out var cSharpType)) - { - return cSharpType; - } - - throw new ArgumentException("No csharp type found for:" + cType + " param:" + name); - } - - private static string TransformParameterName(string parameterName) - { - var splitParamName = parameterName.Split("_"); - if (splitParamName.Length < 2) return parameterName; - - var newParamName = ""; - for (int i = 0, length = splitParamName.Length; i < length; i++) - { - if (i > 0) - { - newParamName += splitParamName[i].FirstCharToUpper(); - } - else - { - newParamName += splitParamName[i]; - } - } - - return newParamName; - } - - - public static string Write(ParseExports.CMethod[] methods) - { - var fullFile = new StringBuilder(); - foreach (var method in methods) - { - var template = $@"[DllImport(DllName, CallingConvention = NativeCallingConvention)] -internal static extern {TypeToCSharp(method.ReturnType)} {method.Name}({string.Join(", ", method.Params.Select(param => TypeToCSharp(param.Type, param.Name) + " " + TransformParameterName(param.Name)).ToArray())});"; - template += Environment.NewLine; - fullFile.Append(template); - } - - return fullFile.ToString(); - } - } -} \ No newline at end of file diff --git a/api/AltV.Net.Example/SampleResource.cs b/api/AltV.Net.Example/SampleResource.cs index 5cf9011f6..4f7ac37df 100644 --- a/api/AltV.Net.Example/SampleResource.cs +++ b/api/AltV.Net.Example/SampleResource.cs @@ -152,7 +152,7 @@ public override void OnStart() /*var watch = System.Diagnostics.Stopwatch.StartNew(); for (int i = 0; i < int.MaxValue; i++) { - vehicle.PrimaryColor = (i % 2 == 0) ? (byte) 1 : (byte) 0; + vehicle.PrimaryColor = (i % 2 == 0) ? (byte) 1 : (byte) 0; } watch.Stop(); var elapsedMs = watch.Elapsed; @@ -304,8 +304,6 @@ async delegate(string s, string s1, long i1, string[] arg3, object[] arg4, IMyVe Alt.Emit("entity-array-obj", new object[] { new[] { vehicle } }); - //vehicle.Remove(); - Bla(); Alt.OnClient("MyEvent", MyEventHandler, MyParser); @@ -555,10 +553,10 @@ public void Call(IPlayer player, object[] args) { //... } - } - + } + private EventHandler[] eventHandlers = new EventHandler[42]; - + public async Task OnPlayerEvent(IPlayer player, string eventName, object[] args) { var number = FastStringToInt(eventName); diff --git a/api/AltV.Net.Host/Config.cs b/api/AltV.Net.Host/Config.cs index b91a941f1..1ab240c74 100644 --- a/api/AltV.Net.Host/Config.cs +++ b/api/AltV.Net.Host/Config.cs @@ -328,7 +328,7 @@ public Config(Dictionary funcTable, IntPtr pointer) : base(Marsha { unsafe { - ConfigDelete = (delegate* unmanaged[Cdecl]) funcTable[Host.GetFnvHash("Config_Delete")]; + ConfigDelete = (delegate* unmanaged[Cdecl]) funcTable[Host.GetFnvHash("Config_Delete;ClrConfigNodeData*;void")]; this.pointer = pointer; } } diff --git a/api/AltV.Net.Host/Host.cs b/api/AltV.Net.Host/Host.cs index d9b9c400d..f14387c0f 100644 --- a/api/AltV.Net.Host/Host.cs +++ b/api/AltV.Net.Host/Host.cs @@ -68,8 +68,8 @@ private static string GetCApiVersion(Dictionary funcTable) { unsafe { - var freeString = (delegate* unmanaged[Cdecl]) funcTable[GetFnvHash("FreeString")]; - var getCApiVersion = (delegate* unmanaged[Cdecl]) funcTable[GetFnvHash("GetCApiVersion")]; + var freeString = (delegate* unmanaged[Cdecl]) funcTable[GetFnvHash("FreeString;char*;void")]; + var getCApiVersion = (delegate* unmanaged[Cdecl]) funcTable[GetFnvHash("GetCApiVersion;int32_t&;char*")]; var size = 0; @@ -109,8 +109,8 @@ private static void CheckDependencies(Dictionary funcTable) IConfig config; unsafe { - var core = (delegate* unmanaged[Cdecl]) funcTable[GetFnvHash("Core_GetCoreInstance")]; - var getConfig = (delegate* unmanaged[Cdecl]) funcTable[GetFnvHash("Core_GetServerConfig")]; + var core = (delegate* unmanaged[Cdecl]) funcTable[GetFnvHash("Core_GetCoreInstance;alt::ICore*")]; + var getConfig = (delegate* unmanaged[Cdecl]) funcTable[GetFnvHash("Core_GetServerConfig;alt::ICore*;ClrConfigNodeData*")]; config = new Config(funcTable, getConfig(core())); } diff --git a/api/AltV.Net.Mock/MockBlip.cs b/api/AltV.Net.Mock/MockBlip.cs index aec188125..800e4e84c 100644 --- a/api/AltV.Net.Mock/MockBlip.cs +++ b/api/AltV.Net.Mock/MockBlip.cs @@ -52,7 +52,7 @@ public void Fade(uint opacity, uint duration) throw new NotImplementedException(); } - public void Remove() + public void Destroy() { Alt.Core.RemoveBlip(this); } diff --git a/api/AltV.Net.Mock/MockColShape.cs b/api/AltV.Net.Mock/MockColShape.cs index 37bdd1196..6b795bfb3 100644 --- a/api/AltV.Net.Mock/MockColShape.cs +++ b/api/AltV.Net.Mock/MockColShape.cs @@ -22,7 +22,7 @@ public bool IsEntityIn(IEntity entity) throw new NotImplementedException(); } - public void Remove() + public void Destroy() { Alt.Core.RemoveColShape(this); } diff --git a/api/AltV.Net.Mock/MockCore.cs b/api/AltV.Net.Mock/MockCore.cs index 36e9d237c..40e688e8a 100644 --- a/api/AltV.Net.Mock/MockCore.cs +++ b/api/AltV.Net.Mock/MockCore.cs @@ -36,12 +36,12 @@ ISharedEntity ISharedCore.GetEntityById(ushort id) IReadOnlyBaseObjectPool ISharedCore.CheckpointPool => CheckpointPool; public IBaseBaseObjectPool BaseBaseObjectPool { get; } IReadOnlyBaseBaseObjectPool ISharedCore.BaseBaseObjectPool => BaseBaseObjectPool; - + public IEntityPool PlayerPool { get; } IReadOnlyEntityPool ISharedCore.PlayerPool => PlayerPool; public IEntityPool ObjectPool { get; } IReadOnlyEntityPool ISharedCore.ObjectPool => ObjectPool; - + public IEntityPool VehiclePool { get; } public IBaseObjectPool BlipPool { get; } public IBaseObjectPool CheckpointPool { get; } @@ -373,7 +373,7 @@ public void RemoveBlip(IBlip blip) public void RemoveCheckpoint(ICheckpoint checkpoint) { - Alt.CoreImpl.OnRemoveCheckpoint(checkpoint.NativePointer); + Alt.CoreImpl.OnRemoveCheckpoint(checkpoint.NativePointer); } public void RemoveVehicle(IVehicle vehicle) @@ -411,7 +411,7 @@ public void CreateMValueVector3(out MValueConst mValue, Position value) { throw new NotImplementedException(); } - + public void CreateMValueVector2(out MValueConst mValue, Vector2 value) { throw new NotImplementedException(); @@ -490,7 +490,7 @@ public void CreateMValueDict(out MValueConst mValue, string[] keys, MValueConst[ { throw new NotImplementedException(); } - + public void CreateMValueBaseObject(out MValueConst mValue, ISharedBaseObject value) { throw new NotImplementedException(); @@ -700,7 +700,7 @@ public string FileRead(string path) { throw new NotImplementedException(); } - + public byte[] FileReadBinary(string path) { throw new NotImplementedException(); diff --git a/api/AltV.Net.Mock/MockEntity.cs b/api/AltV.Net.Mock/MockEntity.cs index 52be76da7..7e3ff69f9 100644 --- a/api/AltV.Net.Mock/MockEntity.cs +++ b/api/AltV.Net.Mock/MockEntity.cs @@ -140,7 +140,7 @@ public bool GetStreamSyncedMetaData(string key, out T result) throw new NotImplementedException(); } - public abstract void Remove(); + public abstract void Destroy(); public void CheckIfEntityExists() { @@ -152,10 +152,10 @@ public void CheckIfEntityExists() throw new EntityRemovedException(this); } - public void OnRemove() + public void OnDestroy() { } - + public bool AddRef() { throw new NotImplementedException(); diff --git a/api/AltV.Net.Mock/MockVoiceChannel.cs b/api/AltV.Net.Mock/MockVoiceChannel.cs index d0b6af84d..b48c3cee9 100644 --- a/api/AltV.Net.Mock/MockVoiceChannel.cs +++ b/api/AltV.Net.Mock/MockVoiceChannel.cs @@ -43,7 +43,7 @@ public bool IsPlayerMuted(IPlayer player) public bool IsSpatial { set; get; } public float MaxDistance { set; get; } - public void Remove() + public void Destroy() { Alt.Core.RemoveVoiceChannel(this); } diff --git a/api/AltV.Net.Sdk.Client/AltV.Net.Sdk.Client.csproj b/api/AltV.Net.Sdk.Client/AltV.Net.Sdk.Client.csproj new file mode 100644 index 000000000..14baede2f --- /dev/null +++ b/api/AltV.Net.Sdk.Client/AltV.Net.Sdk.Client.csproj @@ -0,0 +1,40 @@ + + + net6.0 + AltMp + alt:V .NET client SDK + AltMp + https://github.com/FabianTerhorst/coreclr-module + https://github.com/FabianTerhorst/coreclr-module + git + altv gta bridge gta5 gtav altvsdk + 1.0.0 + No changelog provided + license.txt + icon.png + true + snupkg + $(BaseArtifactsPath)$(MSBuildProjectName)\ + true + MSBuildSdk + + + + + true + \ + + + true + \ + + + true + \Sdk + + + true + \Sdk + + + diff --git a/api/AltV.Net.Sdk.Client/Sdk/Sdk.props b/api/AltV.Net.Sdk.Client/Sdk/Sdk.props new file mode 100644 index 000000000..a4fceed80 --- /dev/null +++ b/api/AltV.Net.Sdk.Client/Sdk/Sdk.props @@ -0,0 +1,18 @@ + + + + true + enable + true + false + bin\ + + + + false + None + false + + + + \ No newline at end of file diff --git a/api/AltV.Net.Sdk.Client/Sdk/Sdk.targets b/api/AltV.Net.Sdk.Client/Sdk/Sdk.targets new file mode 100644 index 000000000..70740cee3 --- /dev/null +++ b/api/AltV.Net.Sdk.Client/Sdk/Sdk.targets @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/api/AltV.Net.Sdk.Client/icon.png b/api/AltV.Net.Sdk.Client/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8382d39fd55a90d6dc5d58cfb862de39b4e2bc76 GIT binary patch literal 6049 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 bV+8&mMXuzQ!3jLA00000NkvXXu0mjfk}_1h literal 0 HcmV?d00001 diff --git a/api/AltV.Net.Sdk.Client/license/license.txt b/api/AltV.Net.Sdk.Client/license/license.txt new file mode 100644 index 000000000..f3d004aa8 --- /dev/null +++ b/api/AltV.Net.Sdk.Client/license/license.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 alt:mp + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/api/AltV.Net.Sdk.Server/AltV.Net.Sdk.Server.csproj b/api/AltV.Net.Sdk.Server/AltV.Net.Sdk.Server.csproj new file mode 100644 index 000000000..127d72064 --- /dev/null +++ b/api/AltV.Net.Sdk.Server/AltV.Net.Sdk.Server.csproj @@ -0,0 +1,40 @@ + + + net6.0 + AltMp + alt:V .NET server SDK + AltMp + https://github.com/FabianTerhorst/coreclr-module + https://github.com/FabianTerhorst/coreclr-module + git + altv gta bridge gta5 gtav altvsdk + 1.0.0 + No changelog provided + license.txt + icon.png + true + snupkg + $(BaseArtifactsPath)$(MSBuildProjectName)\ + true + MSBuildSdk + + + + + true + \ + + + true + \ + + + true + \Sdk + + + true + \Sdk + + + diff --git a/api/AltV.Net.Sdk.Server/Sdk/Sdk.props b/api/AltV.Net.Sdk.Server/Sdk/Sdk.props new file mode 100644 index 000000000..6116bdf90 --- /dev/null +++ b/api/AltV.Net.Sdk.Server/Sdk/Sdk.props @@ -0,0 +1,12 @@ + + + + true + enable + true + false + bin\ + + + + \ No newline at end of file diff --git a/api/AltV.Net.Sdk.Server/Sdk/Sdk.targets b/api/AltV.Net.Sdk.Server/Sdk/Sdk.targets new file mode 100644 index 000000000..61242002e --- /dev/null +++ b/api/AltV.Net.Sdk.Server/Sdk/Sdk.targets @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/api/AltV.Net.Sdk.Server/icon.png b/api/AltV.Net.Sdk.Server/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8382d39fd55a90d6dc5d58cfb862de39b4e2bc76 GIT binary patch literal 6049 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 bV+8&mMXuzQ!3jLA00000NkvXXu0mjfk}_1h literal 0 HcmV?d00001 diff --git a/api/AltV.Net.Sdk.Server/license/license.txt b/api/AltV.Net.Sdk.Server/license/license.txt new file mode 100644 index 000000000..f3d004aa8 --- /dev/null +++ b/api/AltV.Net.Sdk.Server/license/license.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 alt:mp + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/api/AltV.Net.Sdk.Shared/AltV.Net.Sdk.Shared.csproj b/api/AltV.Net.Sdk.Shared/AltV.Net.Sdk.Shared.csproj new file mode 100644 index 000000000..13b39e1d8 --- /dev/null +++ b/api/AltV.Net.Sdk.Shared/AltV.Net.Sdk.Shared.csproj @@ -0,0 +1,40 @@ + + + net6.0 + AltMp + alt:V .NET shared SDK + AltMp + https://github.com/FabianTerhorst/coreclr-module + https://github.com/FabianTerhorst/coreclr-module + git + altv gta bridge gta5 gtav altvsdk + 1.0.0 + No changelog provided + license.txt + icon.png + true + snupkg + $(BaseArtifactsPath)$(MSBuildProjectName)\ + true + MSBuildSdk + + + + + true + \ + + + true + \ + + + true + \Sdk + + + true + \Sdk + + + diff --git a/api/AltV.Net.Sdk.Shared/Sdk/Sdk.props b/api/AltV.Net.Sdk.Shared/Sdk/Sdk.props new file mode 100644 index 000000000..6116bdf90 --- /dev/null +++ b/api/AltV.Net.Sdk.Shared/Sdk/Sdk.props @@ -0,0 +1,12 @@ + + + + true + enable + true + false + bin\ + + + + \ No newline at end of file diff --git a/api/AltV.Net.Sdk.Shared/Sdk/Sdk.targets b/api/AltV.Net.Sdk.Shared/Sdk/Sdk.targets new file mode 100644 index 000000000..84eec8156 --- /dev/null +++ b/api/AltV.Net.Sdk.Shared/Sdk/Sdk.targets @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/api/AltV.Net.Sdk.Shared/icon.png b/api/AltV.Net.Sdk.Shared/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8382d39fd55a90d6dc5d58cfb862de39b4e2bc76 GIT binary patch literal 6049 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 bV+8&mMXuzQ!3jLA00000NkvXXu0mjfk}_1h literal 0 HcmV?d00001 diff --git a/api/AltV.Net.Sdk.Shared/license/license.txt b/api/AltV.Net.Sdk.Shared/license/license.txt new file mode 100644 index 000000000..f3d004aa8 --- /dev/null +++ b/api/AltV.Net.Sdk.Shared/license/license.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 alt:mp + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedBaseObject.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedBaseObject.cs index 0def4c5a3..29b62ce78 100644 --- a/api/AltV.Net.Shared/Elements/Entities/ISharedBaseObject.cs +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedBaseObject.cs @@ -115,16 +115,18 @@ public interface ISharedBaseObject : INative /// /// Data is accessible only within the resource that set the data. void ClearData(); - - void OnRemove(); - + + void OnDestroy(); + void CheckIfEntityExists(); void CheckIfEntityExistsOrCached(); + [Obsolete("Use Destroy() instead")] + void Remove(); /// - /// Removes the baseobject + /// Destroy the baseobject /// - void Remove(); + void Destroy(); } } \ No newline at end of file diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedBlip.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedBlip.cs index 9ad3484bd..133a8ec79 100644 --- a/api/AltV.Net.Shared/Elements/Entities/ISharedBlip.cs +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedBlip.cs @@ -6,162 +6,162 @@ namespace AltV.Net.Shared.Elements.Entities public interface ISharedBlip : ISharedWorldObject { IntPtr BlipNativePointer { get; } - + /// /// If the blip is global. /// bool IsGlobal { get; } - + /// /// Get the type of blip. /// byte BlipType { get; } - + /// /// Gets or sets the blip sprite. /// ushort Sprite { set; get; } - + /// /// Gets or sets the blip color. /// byte Color { set; get; } - + /// /// Gets or sets if a route to the blip should be shown. /// bool Route { set; get; } - + /// /// Gets or sets the route color to the blip /// Rgba RouteColor { set; get; } - + /// /// Gets or sets the scale of the blip /// Vector2 ScaleXY { get; set; } - + /// /// Gets or sets the display mode of the blip /// short Display { get; set; } - + /// /// Gets or sets the secondary color of the blip /// Rgba SecondaryColor { get; set; } - + /// /// Gets or sets the alpha of the blip /// byte Alpha { get; set; } - + /// /// Gets or sets the flash timer of the blip /// ushort FlashTimer { get; set; } - + /// /// Gets or sets the flash interval of the blip /// ushort FlashInterval { get; set; } - + /// /// Gets or sets if the blip is shown as friendly /// bool Friendly { get; set; } - + /// /// Gets or sets if the blip is shown as bright /// bool Bright { get; set; } - + /// /// Gets or sets the blips number /// ushort Number { get; set; } - + /// /// Gets or sets if the blip is shown with a cone /// bool ShowCone { get; set; } - + /// /// Gets or sets if the blip is flashing /// bool Flashes { get; set; } - + /// /// Gets or sets if the the blip uses alternate flashing mode /// bool FlashesAlternate { get; set; } - + /// /// Gets or sets if the blip is short range /// bool ShortRange { get; set; } - + /// /// Gets or sets the blips priority /// ushort Priority { get; set; } - + /// /// Gets or sets the blips rotation /// float Rotation { get; set; } - + /// /// Gets or sets the blips gxt name /// string GxtName { get; set; } - + /// /// Gets or sets the blips name /// string Name { get; set; } - + /// /// Gets or sets if the blip is pulsing /// bool Pulse { get; set; } - + /// /// Gets or sets if the blip is marked as mission creator /// bool MissionCreator { get; set; } - + /// /// Gets or sets if the tick is visible /// bool TickVisible { get; set; } - + /// /// Gets or sets if the heading indicator is visible /// bool HeadingIndicatorVisible { get; set; } - + /// /// Gets or sets if the outline indicator is visible /// bool OutlineIndicatorVisible { get; set; } - + /// /// Gets or sets if the crew indicator is visible /// bool CrewIndicatorVisible { get; set; } - + /// /// Gets or sets the blips category /// ushort Category { get; set; } - + /// /// Gets or sets if the blip is high detail /// bool HighDetail { get; set; } - + /// /// Gets or sets if the blip is shrinked /// @@ -171,10 +171,13 @@ public interface ISharedBlip : ISharedWorldObject /// Fades the blip /// void Fade(uint opacity, uint duration); - + + [Obsolete("Use Destroy() instead")] + void Remove(); + /// - /// Remove the blip. + /// Destroy the blip. /// - void Remove(); + void Destroy(); } } \ No newline at end of file diff --git a/api/AltV.Net.Shared/Elements/Entities/SharedBaseObject.cs b/api/AltV.Net.Shared/Elements/Entities/SharedBaseObject.cs index 745ce0193..6aaf6c7b7 100644 --- a/api/AltV.Net.Shared/Elements/Entities/SharedBaseObject.cs +++ b/api/AltV.Net.Shared/Elements/Entities/SharedBaseObject.cs @@ -22,11 +22,11 @@ public abstract class SharedBaseObject : ISharedBaseObject, IInternalBaseObject if (Cached) Core.Library.Shared.BaseObject_DestructCache(BaseObjectNativePointer); } } - + public abstract BaseObjectType Type { get; } - + private readonly ConcurrentDictionary data = new ConcurrentDictionary(); - + public void SetData(string key, object value) { data[key] = value; @@ -50,7 +50,7 @@ public bool GetData(string key, out T result) return true; } - + public IEnumerable GetAllDataKeys() { return data.Keys.ToList(); // make copy! @@ -70,7 +70,7 @@ public void ClearData() { data.Clear(); } - public void OnRemove() + public void OnDestroy() { } @@ -196,14 +196,14 @@ public bool GetMetaData(string key, out T result) } - + public virtual void CheckIfEntityExists() {} public void CheckIfEntityExistsOrCached() { if (Cached) return; this.CheckIfEntityExists(); } - + [Conditional("DEBUG")] public virtual void CheckIfCallIsValid() { @@ -226,7 +226,10 @@ public override int GetHashCode() return NativePointer.GetHashCode(); } - public void Remove() + [Obsolete("Use Destroy() instead")] + public void Remove() => Destroy(); + + public void Destroy() { if (!Exists) return; unsafe diff --git a/api/AltV.Net.sln b/api/AltV.Net.sln index 9a47bd008..d815d8915 100644 --- a/api/AltV.Net.sln +++ b/api/AltV.Net.sln @@ -22,7 +22,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AltV.Net.Host", "AltV.Net.H EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AltV.Net.Resources.Chat", "AltV.Net.Resources.Chat\AltV.Net.Resources.Chat.csproj", "{EA6CD89D-752F-4BFE-A7ED-AEBF24E97987}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AltV.Net.CodeGen", "AltV.Net.CodeGen\AltV.Net.CodeGen.csproj", "{939CCC42-4A24-41EE-915E-8F00D9ACCF13}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AltV.Net.CApi.Generator", "AltV.Net.CApi.Generator\AltV.Net.CApi.Generator.csproj", "{939CCC42-4A24-41EE-915E-8F00D9ACCF13}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AltV.Net.Resources.Chat.Api", "AltV.Net.Resources.Chat.Api\AltV.Net.Resources.Chat.Api.csproj", "{C4BB33A7-C1E7-4B05-9D08-2D3253F973D0}" EndProject @@ -64,6 +64,18 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AltV.Net.Client.Async", "Al EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AltV.Net.ResourceGenerator", "AltV.Net.ResourceGenerator\AltV.Net.ResourceGenerator.csproj", "{C7D2E1E8-EE6C-4B76-B983-B6AFE84C61E4}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Module NuGets", "Module NuGets", "{6A31F2DA-FBB6-40DF-89FF-57AF6266AECB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Internal", "Internal", "{F7E03C06-1353-43A4-A369-DF614EABD34B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".NET SDK", ".NET SDK", "{4B99DFE6-8EB6-4D7B-AFA6-AC75DBDA2CF0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AltV.Net.Sdk.Server", "AltV.Net.Sdk.Server\AltV.Net.Sdk.Server.csproj", "{8BEFB443-C2B9-4057-8271-D21FDB91C919}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AltV.Net.Sdk.Client", "AltV.Net.Sdk.Client\AltV.Net.Sdk.Client.csproj", "{7E06CD9C-E5B5-423A-9969-396601C59142}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AltV.Net.Sdk.Shared", "AltV.Net.Sdk.Shared\AltV.Net.Sdk.Shared.csproj", "{E8399DB0-355D-4A49-AAD8-6CDD9BBF33CE}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -269,5 +281,36 @@ Global {C7D2E1E8-EE6C-4B76-B983-B6AFE84C61E4}.Release|Any CPU.Build.0 = Release|Any CPU {C7D2E1E8-EE6C-4B76-B983-B6AFE84C61E4}.Testing|Any CPU.ActiveCfg = Debug|Any CPU {C7D2E1E8-EE6C-4B76-B983-B6AFE84C61E4}.Testing|Any CPU.Build.0 = Debug|Any CPU + {8BEFB443-C2B9-4057-8271-D21FDB91C919}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BEFB443-C2B9-4057-8271-D21FDB91C919}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BEFB443-C2B9-4057-8271-D21FDB91C919}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BEFB443-C2B9-4057-8271-D21FDB91C919}.Release|Any CPU.Build.0 = Release|Any CPU + {8BEFB443-C2B9-4057-8271-D21FDB91C919}.Testing|Any CPU.ActiveCfg = Debug|Any CPU + {8BEFB443-C2B9-4057-8271-D21FDB91C919}.Testing|Any CPU.Build.0 = Debug|Any CPU + {7E06CD9C-E5B5-423A-9969-396601C59142}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7E06CD9C-E5B5-423A-9969-396601C59142}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E06CD9C-E5B5-423A-9969-396601C59142}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7E06CD9C-E5B5-423A-9969-396601C59142}.Release|Any CPU.Build.0 = Release|Any CPU + {7E06CD9C-E5B5-423A-9969-396601C59142}.Testing|Any CPU.ActiveCfg = Debug|Any CPU + {7E06CD9C-E5B5-423A-9969-396601C59142}.Testing|Any CPU.Build.0 = Debug|Any CPU + {E8399DB0-355D-4A49-AAD8-6CDD9BBF33CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E8399DB0-355D-4A49-AAD8-6CDD9BBF33CE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E8399DB0-355D-4A49-AAD8-6CDD9BBF33CE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E8399DB0-355D-4A49-AAD8-6CDD9BBF33CE}.Release|Any CPU.Build.0 = Release|Any CPU + {E8399DB0-355D-4A49-AAD8-6CDD9BBF33CE}.Testing|Any CPU.ActiveCfg = Debug|Any CPU + {E8399DB0-355D-4A49-AAD8-6CDD9BBF33CE}.Testing|Any CPU.Build.0 = Debug|Any CPU + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {B41318D4-99B3-4B17-88C1-2B7CCF60541F} = {6A31F2DA-FBB6-40DF-89FF-57AF6266AECB} + {24055D62-A4EB-4F4E-928F-4CB46D58F65B} = {6A31F2DA-FBB6-40DF-89FF-57AF6266AECB} + {551E5BAA-CF43-4925-BA53-6486659394D8} = {6A31F2DA-FBB6-40DF-89FF-57AF6266AECB} + {BD78B963-D399-46AB-A155-037B324A56D4} = {6A31F2DA-FBB6-40DF-89FF-57AF6266AECB} + {0A90B1FB-E2DF-49CA-B937-ECF0B5FA565C} = {6A31F2DA-FBB6-40DF-89FF-57AF6266AECB} + {5C813942-20D2-4D43-9DCA-963B911698DA} = {6A31F2DA-FBB6-40DF-89FF-57AF6266AECB} + {939CCC42-4A24-41EE-915E-8F00D9ACCF13} = {F7E03C06-1353-43A4-A369-DF614EABD34B} + {E5A0A986-ADFB-4F3B-8FF8-77214A542526} = {F7E03C06-1353-43A4-A369-DF614EABD34B} + {8BEFB443-C2B9-4057-8271-D21FDB91C919} = {4B99DFE6-8EB6-4D7B-AFA6-AC75DBDA2CF0} + {7E06CD9C-E5B5-423A-9969-396601C59142} = {4B99DFE6-8EB6-4D7B-AFA6-AC75DBDA2CF0} + {E8399DB0-355D-4A49-AAD8-6CDD9BBF33CE} = {4B99DFE6-8EB6-4D7B-AFA6-AC75DBDA2CF0} EndGlobalSection EndGlobal diff --git a/api/AltV.Net/Alt.Entity.cs b/api/AltV.Net/Alt.Entity.cs index 963d5a0a9..b835b516c 100644 --- a/api/AltV.Net/Alt.Entity.cs +++ b/api/AltV.Net/Alt.Entity.cs @@ -1,15 +1,20 @@ +using System; using AltV.Net.Elements.Entities; namespace AltV.Net { public static partial class Alt { - public static void RemoveVehicle(IVehicle vehicle) => vehicle.Remove(); + [Obsolete("Use vehicle.Destroy() instead")] + public static void RemoveVehicle(IVehicle vehicle) => vehicle.Destroy(); - public static void RemoveBlip(IBlip blip) => blip.Remove(); + [Obsolete("Use blip.Destroy() instead")] + public static void RemoveBlip(IBlip blip) => blip.Destroy(); - public static void RemoveCheckpoint(ICheckpoint checkpoint) => checkpoint.Remove(); - - public static void RemoveColShape(IColShape colShape) => colShape.Remove(); + [Obsolete("Use checkpoint.Destroy() instead")] + public static void RemoveCheckpoint(ICheckpoint checkpoint) => checkpoint.Destroy(); + + [Obsolete("Use colShape.Destroy() instead")] + public static void RemoveColShape(IColShape colShape) => colShape.Destroy(); } } \ No newline at end of file diff --git a/api/AltV.Net/Alt.VoiceChannel.cs b/api/AltV.Net/Alt.VoiceChannel.cs index 67b92066c..30afa929a 100644 --- a/api/AltV.Net/Alt.VoiceChannel.cs +++ b/api/AltV.Net/Alt.VoiceChannel.cs @@ -1,3 +1,4 @@ +using System; using AltV.Net.Elements.Entities; namespace AltV.Net @@ -7,7 +8,7 @@ public partial class Alt public static IVoiceChannel CreateVoiceChannel(bool spatial, float maxDistance) => Core.CreateVoiceChannel(spatial, maxDistance); - public static void RemoveVoiceChannel(IVoiceChannel channel) => - Core.RemoveVoiceChannel(channel); + [Obsolete("Use channel.Destroy() instead")] + public static void RemoveVoiceChannel(IVoiceChannel channel) => Core.RemoveVoiceChannel(channel); } } \ No newline at end of file diff --git a/api/AltV.Net/Core.cs b/api/AltV.Net/Core.cs index 42c06cc87..80bccf8fc 100644 --- a/api/AltV.Net/Core.cs +++ b/api/AltV.Net/Core.cs @@ -116,11 +116,11 @@ public Core(IntPtr nativePointer, IntPtr resourcePointer, AssemblyLoadContext as void IInternalCore.InitResource(INativeResource resource) { } - + public override void CheckIfCallIsValid([CallerMemberName] string callerName = "") { } - + [Conditional("DEBUG")] public void CheckIfThreadIsValid([CallerMemberName] string callerName = "") { @@ -156,9 +156,10 @@ public VehicleModelInfo GetVehicleModelInfo(uint hash) unsafe { var ptr = Library.Server.Core_GetVehicleModelInfo(NativePointer, u); - var structure = Marshal.PtrToStructure(ptr); + var structure = Marshal.PtrToStructure(ptr); + var publicStructure = structure.ToPublic(); Library.Server.Core_DeallocVehicleModelInfo(ptr); - return structure; + return publicStructure; } }); } @@ -182,7 +183,7 @@ public void StopServer() { unsafe { - Library.Server.Core_StopServer(NativePointer); + Library.Server.Core_StopServer(NativePointer); } } @@ -384,7 +385,7 @@ public void TriggerClientEventForSome(IPlayer[] clients, string eventName, param } } #endregion - + #region BaseObject creation/removal public IVehicle CreateVehicle(uint model, Position pos, Rotation rotation) { @@ -443,7 +444,7 @@ public IBlip CreateBlip(IPlayer player, byte type, IEntity entityAttach) { CheckIfCallIsValid(); CheckIfThreadIsValid(); - + var ptr = Library.Server.Core_CreateBlipAttached(NativePointer, player?.PlayerNativePointer ?? IntPtr.Zero, type, entityAttach.EntityNativePointer); @@ -538,6 +539,7 @@ public IColShape CreateColShapePolygon(float minZ, float maxZ, Vector2[] points) } } + [Obsolete("Use blip.Destroy() instead")] public void RemoveBlip(IBlip blip) { CheckIfCallIsValid(); @@ -550,6 +552,7 @@ public void RemoveBlip(IBlip blip) } } + [Obsolete("Use checkpoint.Destroy() instead")] public void RemoveCheckpoint(ICheckpoint checkpoint) { CheckIfCallIsValid(); @@ -562,6 +565,7 @@ public void RemoveCheckpoint(ICheckpoint checkpoint) } } + [Obsolete("Use vehicle.Destroy() instead")] public void RemoveVehicle(IVehicle vehicle) { CheckIfCallIsValid(); @@ -574,6 +578,7 @@ public void RemoveVehicle(IVehicle vehicle) } } + [Obsolete("Use channel.Destroy() instead")] public void RemoveVoiceChannel(IVoiceChannel channel) { if (channel.Exists) @@ -585,6 +590,7 @@ public void RemoveVoiceChannel(IVoiceChannel channel) } } + [Obsolete("Use colShape.Destroy() instead")] public void RemoveColShape(IColShape colShape) { CheckIfCallIsValid(); @@ -655,7 +661,7 @@ public IVehicle[] GetVehicles() return vehicles; } } - + public new IEntity GetEntityById(ushort id) { return (IEntity) base.GetEntityById(id); @@ -707,7 +713,7 @@ public void SetSyncedMetaData(string key, object value) mValue.Dispose(); } } - + public void DeleteSyncedMetaData(string key) { unsafe @@ -719,7 +725,7 @@ public void DeleteSyncedMetaData(string key) } } #endregion - + public void OnScriptsLoaded(IScript[] scripts) { foreach (var script in scripts) @@ -732,8 +738,8 @@ public void OnScriptsLoaded(IScript[] scripts) public virtual void OnScriptLoaded(IScript script) { } - - + + internal readonly IDictionary functionExports = new Dictionary(); internal readonly LinkedList functionExportHandles = new LinkedList(); @@ -752,9 +758,9 @@ public void SetExport(string key, Function function) mValue.Dispose(); } } - + private readonly WeakReference assemblyLoadContext; - + internal IEnumerable Assemblies => !assemblyLoadContext.TryGetTarget(out var target) ? new List() : target.Assemblies; @@ -797,7 +803,7 @@ public override void Dispose() { base.Dispose(); assemblyLoadContext.SetTarget(null); } - + public bool FileExists(string path) { unsafe diff --git a/api/AltV.Net/Data/BoneInfo.cs b/api/AltV.Net/Data/BoneInfo.cs new file mode 100644 index 000000000..c746089cf --- /dev/null +++ b/api/AltV.Net/Data/BoneInfo.cs @@ -0,0 +1,13 @@ +using System.Runtime.InteropServices; + +namespace AltV.Net.Data; + +[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] +public struct BoneInfo +{ + public ushort Id; + public ushort Index; + + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] + public string Name; +} diff --git a/api/AltV.Net/Data/PedModelInfo.cs b/api/AltV.Net/Data/PedModelInfo.cs index 2ae6b756f..5003ca367 100644 --- a/api/AltV.Net/Data/PedModelInfo.cs +++ b/api/AltV.Net/Data/PedModelInfo.cs @@ -5,16 +5,6 @@ namespace AltV.Net.Data { - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] - public struct PedBoneInfo - { - public ushort Id; - public ushort Index; - - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] - public string Name; - } - [StructLayout(LayoutKind.Sequential)] internal readonly struct PedModelInfoInternal { @@ -34,11 +24,11 @@ internal readonly struct PedModelInfoInternal public PedModelInfo ToPublic() { - var arr = new PedBoneInfo[BonesSize]; - var elSize = Marshal.SizeOf(); + var arr = new BoneInfo[BonesSize]; + var elSize = Marshal.SizeOf(); for (var i = 0; i < BonesSize; i++) { - arr[i] = Marshal.PtrToStructure(IntPtr.Add(BonesPtr, i * elSize)); + arr[i] = Marshal.PtrToStructure(IntPtr.Add(BonesPtr, i * elSize)); } return new PedModelInfo @@ -57,11 +47,11 @@ public PedModelInfo ToPublic() public struct PedModelInfo { public string Name; + public uint Hash; public string Type; public string DlcName; public string DefaultUnarmedWeapon; public string MovementClipSet; - public uint Hash; - public PedBoneInfo[] Bones; + public BoneInfo[] Bones; } } \ No newline at end of file diff --git a/api/AltV.Net/Data/VehicleModelInfo.cs b/api/AltV.Net/Data/VehicleModelInfo.cs index 41dc20cd2..34df09c72 100644 --- a/api/AltV.Net/Data/VehicleModelInfo.cs +++ b/api/AltV.Net/Data/VehicleModelInfo.cs @@ -26,36 +26,89 @@ public enum VehicleModelType : byte SUBMARINE, OBJECT } - + [StructLayout(LayoutKind.Sequential)] - public struct VehicleModelInfo + internal readonly struct VehicleModelInfoInternal { [MarshalAs(UnmanagedType.LPStr)] - public readonly string Title; - - public readonly VehicleModelType Type; - public readonly byte WheelsCount; - + private readonly string Title; + + private readonly VehicleModelType Type; + private readonly byte WheelsCount; + + [MarshalAs(UnmanagedType.I1)] + private readonly bool HasArmoredWindows; + + private readonly byte PrimaryColor; + private readonly byte SecondaryColor; + private readonly byte PearlColor; + private readonly byte WheelsColor; + private readonly byte InteriorColor; + private readonly byte DashboardColor; + private readonly ushort Extras; + private readonly ushort DefaultExtras; + + [MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.I1, SizeConst = 2)] + private readonly bool[] ModKits; + [MarshalAs(UnmanagedType.I1)] - public readonly bool HasArmoredWindows; - - public readonly byte PrimaryColor; - public readonly byte SecondaryColor; - public readonly byte PearlColor; - public readonly byte WheelsColor; - public readonly byte InteriorColor; - public readonly byte DashboardColor; - public readonly ushort Extras; - public readonly ushort DefaultExtras; - - [MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.I1, SizeConst = 2)] - public readonly bool[] ModKits; - + private readonly bool HasAutoAttachTrailer; + private readonly IntPtr BonesPtr; + private readonly uint BonesSize; + + public VehicleModelInfo ToPublic() + { + var arr = new BoneInfo[BonesSize]; + var elSize = Marshal.SizeOf(); + for (var i = 0; i < BonesSize; i++) + { + arr[i] = Marshal.PtrToStructure(IntPtr.Add(BonesPtr, i * elSize)); + } + + return new VehicleModelInfo + { + Title = Title, + WheelsCount = WheelsCount, + HasArmoredWindows = HasArmoredWindows, + PrimaryColor = PrimaryColor, + SecondaryColor = SecondaryColor, + PearlColor = PearlColor, + WheelsColor = WheelsColor, + InteriorColor = InteriorColor, + DashboardColor = DashboardColor, + Extras = Extras, + DefaultExtras = DefaultExtras, + ModKits = ModKits, + HasAutoAttachTrailer = HasAutoAttachTrailer, + Bones = arr + }; + } + } + + public struct VehicleModelInfo + { + public string Title; + + public byte WheelsCount; + public bool HasArmoredWindows; + + public byte PrimaryColor; + public byte SecondaryColor; + public byte PearlColor; + public byte WheelsColor; + public byte InteriorColor; + public byte DashboardColor; + public ushort Extras; + public ushort DefaultExtras; + public bool[] ModKits; + public bool HasAutoAttachTrailer; + public BoneInfo[] Bones; + public bool HasExtra(byte extraId) { return (this.Extras & (1ul << extraId)) != 0; } - + public bool HasDefaultExtra(byte extraId) { return (this.DefaultExtras & (1ul << extraId)) != 0; diff --git a/api/AltV.Net/Elements/Entities/IColShape.cs b/api/AltV.Net/Elements/Entities/IColShape.cs index 58827f286..3b809fb37 100644 --- a/api/AltV.Net/Elements/Entities/IColShape.cs +++ b/api/AltV.Net/Elements/Entities/IColShape.cs @@ -10,19 +10,22 @@ public interface IColShape : ISharedColShape, IWorldObject /// Returns the ColShape type /// ColShapeType ColShapeType { get; } - + /// /// Sets / Gets if the ColShape only triggers for players /// bool IsPlayersOnly { get; set; } - + + [Obsolete("Use Destroy() instead")] + void Remove(); + /// - /// Removes the collision shape + /// Destroy the collision shape /// - void Remove(); - + void Destroy(); + bool IsEntityIn(IEntity entity); - + /// /// Returns if the entity is inside the ColShape /// @@ -30,7 +33,7 @@ public interface IColShape : ISharedColShape, IWorldObject /// This entity was removed [Obsolete("Use IsEntityIn instead")] bool IsPlayerIn(IPlayer entity); - + /// /// Returns if the entity is inside the ColShape /// diff --git a/api/AltV.Net/Elements/Entities/IVehicle.cs b/api/AltV.Net/Elements/Entities/IVehicle.cs index 6055acd99..1b492e398 100644 --- a/api/AltV.Net/Elements/Entities/IVehicle.cs +++ b/api/AltV.Net/Elements/Entities/IVehicle.cs @@ -561,10 +561,13 @@ public interface IVehicle : ISharedVehicle, IEntity /// string ScriptData { get; set; } + [Obsolete("Use Destroy() instead")] + void Remove(); + /// - /// Removes the vehicle entity + /// Destroy the vehicle entity /// - void Remove(); + void Destroy(); /// /// Repairs the vehicle diff --git a/api/AltV.Net/Elements/Entities/IVoiceChannel.cs b/api/AltV.Net/Elements/Entities/IVoiceChannel.cs index bc04ddc71..3cf5ab99f 100644 --- a/api/AltV.Net/Elements/Entities/IVoiceChannel.cs +++ b/api/AltV.Net/Elements/Entities/IVoiceChannel.cs @@ -3,64 +3,67 @@ namespace AltV.Net.Elements.Entities { public interface IVoiceChannel : IBaseObject - { + { IntPtr VoiceChannelNativePointer { get; } - + /// /// Adds the player to the voice channel /// /// The player /// This entity was removed void AddPlayer(IPlayer player); - + /// /// Removes the player from the voice channel /// /// The player /// This entity was removed void RemovePlayer(IPlayer player); - + /// /// Mutes the player in the voice channel /// /// The player /// This entity was removed void MutePlayer(IPlayer player); - + /// /// Unmutes the player in the voice channel /// /// The player /// This entity was removed void UnmutePlayer(IPlayer player); - + /// /// Returns if the player is inside the voice channel /// /// The player /// This entity was removed bool HasPlayer(IPlayer player); - + /// /// Returns if the player is muted in the voice channel /// /// The player /// This entity was removed bool IsPlayerMuted(IPlayer player); - + /// /// Returns if the voice channel is spatial /// bool IsSpatial { get; } - + /// /// Returns the maximum distance /// float MaxDistance { get; } - + + [Obsolete("Use Destroy() instead")] + void Remove(); + /// - /// Removes the voice channel + /// Destroy the voice channel /// - void Remove(); + void Destroy(); } } \ No newline at end of file diff --git a/api/AltV.Net/Elements/Pools/BaseObjectPool.cs b/api/AltV.Net/Elements/Pools/BaseObjectPool.cs index db018034d..ae264e018 100644 --- a/api/AltV.Net/Elements/Pools/BaseObjectPool.cs +++ b/api/AltV.Net/Elements/Pools/BaseObjectPool.cs @@ -46,7 +46,7 @@ public bool Remove(TBaseObject entity) public bool Remove(IntPtr entityPointer) { if (!entities.Remove(entityPointer, out var entity) || !entity.Exists) return false; - entity.OnRemove(); + entity.OnDestroy(); lock (entity) { SetEntityNoLongerExists(entity); @@ -76,7 +76,7 @@ public IReadOnlyCollection GetAllObjects() { return entities.Values; } - + public KeyValuePair[] GetObjectsArray() { var arr = new KeyValuePair[entities.Count]; @@ -88,7 +88,7 @@ public KeyValuePair[] GetObjectsArray() return arr; } - + public void ForEach(IBaseObjectCallback baseObjectCallback) { foreach (var entity in entities.Values) @@ -119,7 +119,7 @@ public void Dispose() { if (!(entity is IInternalBaseObject internalEntity)) continue; internalEntity.ClearData(); - entity.OnRemove(); + entity.OnDestroy(); OnRemove(entity); } entities.Clear(); diff --git a/api/AltV.Net/Elements/Pools/EntityPool.cs b/api/AltV.Net/Elements/Pools/EntityPool.cs index 17323a732..8916a65db 100644 --- a/api/AltV.Net/Elements/Pools/EntityPool.cs +++ b/api/AltV.Net/Elements/Pools/EntityPool.cs @@ -49,7 +49,7 @@ public bool Remove(TEntity entity) public bool Remove(IntPtr entityPointer) { if (!entities.Remove(entityPointer, out var entity) || entity is not IInternalBaseObject internalEntity || !entity.Exists) return false; - + lock (entity) { if (AltShared.CacheEntities) @@ -64,7 +64,7 @@ public bool Remove(IntPtr entityPointer) } } } - entity.OnRemove(); + entity.OnDestroy(); BaseObjectPool.SetEntityNoLongerExists(entity); } @@ -75,7 +75,7 @@ public bool Remove(IntPtr entityPointer) public TEntity Get(IntPtr entityPointer) { if (entities.TryGetValue(entityPointer, out var entity)) return entity; - + lock (cache) { if (cache.TryGetValue(entityPointer, out var cachedEntity)) { @@ -86,7 +86,7 @@ public TEntity Get(IntPtr entityPointer) cache.Remove(entityPointer); } } - + return default; } @@ -110,7 +110,7 @@ public TEntity GetOrCreate(ICore core, IntPtr entityPointer, ushort entityId) } if (Get(entityPointer) is {} entity) return entity; - + return Create(core, entityPointer, entityId); } @@ -161,7 +161,7 @@ public void Dispose() { if (!(entity is IInternalBaseObject internalEntity)) continue; internalEntity.ClearData(); - entity.OnRemove(); + entity.OnDestroy(); OnRemove(entity); } entities.Clear(); diff --git a/api/AltV.Net/ICore.cs b/api/AltV.Net/ICore.cs index a84d97c9e..94d0bfbba 100644 --- a/api/AltV.Net/ICore.cs +++ b/api/AltV.Net/ICore.cs @@ -22,7 +22,7 @@ public interface ICore : ISharedCore IBaseObjectPool VoiceChannelPool { get; } IBaseObjectPool ColShapePool { get; } INativeResourcePool NativeResourcePool { get; } - + int NetTime { get; } string RootDirectory { get; } @@ -48,7 +48,7 @@ public interface ICore : ISharedCore void TriggerClientEvent(IPlayer player, string eventName, IntPtr[] args); void TriggerClientEvent(IPlayer player, IntPtr eventNamePtr, params object[] args); - + void TriggerClientEvent(IPlayer player, string eventName, params object[] args); void TriggerClientEventForAll(IntPtr eventNamePtr, MValueConst[] args); @@ -60,7 +60,7 @@ public interface ICore : ISharedCore void TriggerClientEventForAll(string eventName, IntPtr[] args); void TriggerClientEventForAll(IntPtr eventNamePtr, params object[] args); - + void TriggerClientEventForAll(string eventName, params object[] args); void TriggerClientEventForSome(IPlayer[] clients, IntPtr eventNamePtr, MValueConst[] args); @@ -72,7 +72,7 @@ public interface ICore : ISharedCore void TriggerClientEventForSome(IPlayer[] clients, string eventName, IntPtr[] args); void TriggerClientEventForSome(IPlayer[] clients, IntPtr eventNamePtr, params object[] args); - + void TriggerClientEventForSome(IPlayer[] clients, string eventName, params object[] args); IVehicle CreateVehicle(uint model, Position pos, Rotation rotation); @@ -97,14 +97,19 @@ public interface ICore : ISharedCore IColShape CreateColShapePolygon(float minZ, float maxZ, Vector2[] points); + [Obsolete("Use blip.Destroy() instead")] void RemoveBlip(IBlip blip); + [Obsolete("Use checkpoint.Destroy() instead")] void RemoveCheckpoint(ICheckpoint checkpoint); + [Obsolete("Use vehicle.Destroy() instead")] void RemoveVehicle(IVehicle vehicle); + [Obsolete("Use channel.Destroy() instead")] void RemoveVoiceChannel(IVoiceChannel channel); + [Obsolete("Use colShape.Destroy() instead")] void RemoveColShape(IColShape colShape); INativeResource GetResource(string name); @@ -126,11 +131,11 @@ public interface ICore : ISharedCore void StopResource(string name); void RestartResource(string name); - + void SetSyncedMetaData(string key, object value); void DeleteSyncedMetaData(string key); - + bool FileExists(string path); string FileRead(string path); byte[] FileReadBinary(string path); diff --git a/api/AltV.Net/ModuleWrapper.cs b/api/AltV.Net/ModuleWrapper.cs index 8703eae9f..33f3fac81 100644 --- a/api/AltV.Net/ModuleWrapper.cs +++ b/api/AltV.Net/ModuleWrapper.cs @@ -1,11 +1,13 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Loader; using AltV.Net.CApi; +using AltV.Net.CApi.Exceptions; using AltV.Net.Data; using AltV.Net.Elements.Entities; using AltV.Net.Elements.Factories; @@ -82,7 +84,7 @@ public static void MainWithAssembly(IntPtr serverPointer, IntPtr resourcePointer { if (library.Shared.Core_GetEventEnumSize() != (byte) EventType.SIZE) { - throw new Exception("Event type enum size doesn't match. Please, update the nuget"); + throw new OutdatedSdkException("EventType", "Event type enum size doesn't match. Please, update the nuget"); } } @@ -111,6 +113,11 @@ public static void MainWithAssembly(IntPtr serverPointer, IntPtr resourcePointer Alt.CoreImpl = server; AltShared.Core = server; + if (library.Outdated) + { + Alt.LogWarning("Found mismatching SDK methods. Please update AltV.Net NuGet"); + } + foreach (var unused in server.GetPlayers()) { } diff --git a/docs/articles/client.md b/docs/articles/client.md index 1d81ed015..12d1286f2 100644 --- a/docs/articles/client.md +++ b/docs/articles/client.md @@ -5,8 +5,8 @@ > The module **is still in development**, and can be released regardless of alt:V updates.
Until the C# client-side module is publicly released in order to use it you need to: -* Have debug enabled (`debug: true` in altv.cfg) -* Have sandboxing disabled (`disableRestrictedSandbox: true` in altv.cfg) +* Have debug enabled (`debug: true` in altv.toml) +* Have sandboxing disabled (`disableRestrictedSandbox: true` in altv.toml) > [!CAUTION] > Beware that disabled sandboxing gives server a full access to your personal data.
diff --git a/docs/articles/getting-started/create-resource.md b/docs/articles/getting-started/create-resource.md index 90fa2b5cd..2c1c3d709 100644 --- a/docs/articles/getting-started/create-resource.md +++ b/docs/articles/getting-started/create-resource.md @@ -111,7 +111,7 @@ namespace ExampleProject ## Create resource -In the server's `resource` folder you need to create a folder, which will be a folder for your resource. +In the server's `resources` folder you need to create a folder, which will be a folder for your resource. Make a `bin` folder inside of your resource folder, and copy your project dll's (with NuGet generated dlls e.g. AltV.Net.dll) to this folder @@ -120,7 +120,7 @@ Finally, in the folder you should contain a config file with name `resource.toml ### Client-side Example `resource.toml` for a C# client-side resource: -```yaml +```toml client-type = "csharp" client-main = "bin/ExampleProject.dll" client-files = [ @@ -140,13 +140,13 @@ For client in `client-files` you need to specify folder, where all the dll's are ### Server-side Example `resource.toml` for a C# server-side resource: -```yaml +```toml type = "csharp" main = "bin/ExampleProject.dll" ``` At the end you should add the resource in your `server.toml` like this: -```yaml +```toml resources = [ "my-example-csharp-resource" ] diff --git a/docs/articles/getting-started/resource-communication.md b/docs/articles/getting-started/resource-communication.md index 3b848b5ff..3acf390c3 100644 --- a/docs/articles/getting-started/resource-communication.md +++ b/docs/articles/getting-started/resource-communication.md @@ -48,7 +48,7 @@ public class SampleResource : AsyncResource ## Import data -Resources can import data that got exported from other resources. Most likely you will define the resource where you import from as ```deps: [ myResource, myResource2 ]``` in your ```resource.cfg``` to make sure the resource is already started when your resource starts. +Resources can import data that got exported from other resources. Most likely you will define the resource where you import from as ```deps: [ myResource, myResource2 ]``` in your ```resource.toml``` to make sure the resource is already started when your resource starts. You also have to define the resource name where you import data from. ```cs diff --git a/docs/articles/getting-started/setup.md b/docs/articles/getting-started/setup.md index 8b33af09d..8037f39d3 100644 --- a/docs/articles/getting-started/setup.md +++ b/docs/articles/getting-started/setup.md @@ -15,7 +15,7 @@ modules/ resources/ AltV.Net.Host.dll AltV.Net.Host.runtimeconfig.json -server.cfg +server.toml altv-server.exe (altv-server on linux) ``` diff --git a/docs/articles/getting-started/voice.md b/docs/articles/getting-started/voice.md index 844d905c8..64aa79e1a 100644 --- a/docs/articles/getting-started/voice.md +++ b/docs/articles/getting-started/voice.md @@ -2,35 +2,35 @@ ### Note : ______________________________ -- You can´t use the Alt:V Voice without editing your Server.cfg! +- You can´t use the Alt:V Voice without editing your `server.toml`! # Before we start... ___________________________________________ -##### Before we start, we have to edit our Server.CFG File! -##### So we add : voice: {} to initialize our Voice. +##### Before we start, we have to edit our `server.toml` File! +##### So we add : `[voice]` to initialize our Voice. ##### this would look like that : -```javascript -name: 'alt:V Server' -host: 0.0.0.0 -port: 7788 -players: 128 +```toml +name = "alt:V Server" +host = "0.0.0.0" +port = 7788 +players = 128 #password: ultra-password -announce: false +announce = false #token: YOUR_TOKEN -gamemode: Freeroam -website: example.com -language: en +gamemode = "Freeroam" +website = "example.com" +language = "en" -// The Voice Initialization -voice: {} // <---- We add this to our server.cfg File - -description: 'alt:V Sample Server' -modules: [ - csharp-module - node-module +description = "alt:V Sample Server" +modules = [ + "csharp-module", + "node-module" ] -resources: [] +resources = [] + +# The Voice Initialization +[voice] # <---- We add this to our server.toml File ``` # Create a Voice Channel & Add Players to it [3D] diff --git a/docs/articles/internal-information.md b/docs/articles/internal-information.md index 7ec8c9f88..f305882d5 100644 --- a/docs/articles/internal-information.md +++ b/docs/articles/internal-information.md @@ -9,9 +9,9 @@ This section provides a high-level overview about the internal structure of the ## Initialization of csharp-module -When the `altv-server` is starting it checks `modules` part of the `server.cfg` configuration file. When there's the csharp-module specified, the server loads the "csharp-module.dll" / "libcsharp-module.so" / "csharp-module.so" (depending on operating system) from the `modules` folder. +When the `altv-server` is starting it checks `modules` part of the `server.toml` configuration file. When there's the csharp-module specified, the server loads the "csharp-module.dll" / "libcsharp-module.so" / "csharp-module.so" (depending on operating system) from the `modules` folder. -In the csharp-module is a function [`altMain`](https://github.com/altmp/coreclr-module-runtime/blob/dev/c-api/altv.cpp) defined, which starts the .NET runtime and registers itself as script runtime for `csharp` resources. That's the reason you have to specify `type: csharp` in the `resource.cfg`, so the altv-server knows that it should load this resource with the csharp-module. +In the csharp-module is a function [`altMain`](https://github.com/altmp/coreclr-module-runtime/blob/dev/c-api/altv.cpp) defined, which starts the .NET runtime and registers itself as script runtime for `csharp` resources. That's the reason you have to specify `type: csharp` in the `resource.toml`, so the altv-server knows that it should load this resource with the csharp-module. The [custom .NET host](https://github.com/altmp/coreclr-module-runtime/blob/dev/server/src/CoreClr.cpp) tries to find the latest .NET SDK `hostfxr.dll` (example path on Windows is `C:\Program Files (x86)\dotnet\host\fxr\5.0.1\hostfxr.dll`). When it's found, it starts `AltV.Net.Host.dll` which is located next to the `altv-server`. diff --git a/runtime b/runtime index e6a01394c..deed62186 160000 --- a/runtime +++ b/runtime @@ -1 +1 @@ -Subproject commit e6a01394c8c5449ce8955a57de98f120f0aaa377 +Subproject commit deed62186009657551c7be41a70237d1d9d3d637 diff --git a/templates/AltV.Net.Templates.csproj b/templates/AltV.Net.Templates.csproj new file mode 100644 index 000000000..6a702df49 --- /dev/null +++ b/templates/AltV.Net.Templates.csproj @@ -0,0 +1,41 @@ + + + + netstandard2.0 + altMP + Template + AltV.Net.Templates + alt:V .NET templates + AltMp + https://github.com/FabianTerhorst/coreclr-module + https://github.com/FabianTerhorst/coreclr-module + git + dotnet-new template altv gta bridge gta5 gtav altvsdk + 1.0.0 + No changelog provided + license.txt + icon.png + true + snupkg + $(BaseArtifactsPath)$(MSBuildProjectName)\ + true + + true + false + content + + + + + true + \ + + + true + \ + + + + + + \ No newline at end of file diff --git a/templates/icon.png b/templates/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8382d39fd55a90d6dc5d58cfb862de39b4e2bc76 GIT binary patch literal 6049 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 bV+8&mMXuzQ!3jLA00000NkvXXu0mjfk}_1h literal 0 HcmV?d00001 diff --git a/templates/license/license.txt b/templates/license/license.txt new file mode 100644 index 000000000..f3d004aa8 --- /dev/null +++ b/templates/license/license.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 alt:mp + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/templates/templates/altv-project-client/.template.config/icon.png b/templates/templates/altv-project-client/.template.config/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9940be6d2961266ee0197aac0bbbcd8e42209b06 GIT binary patch literal 15556 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 F{{qZMQpW%Q literal 0 HcmV?d00001 diff --git a/templates/templates/altv-project-client/.template.config/ide.host.json b/templates/templates/altv-project-client/.template.config/ide.host.json new file mode 100644 index 000000000..3c86a6c1a --- /dev/null +++ b/templates/templates/altv-project-client/.template.config/ide.host.json @@ -0,0 +1,23 @@ +{ + "$schema": "http://json.schemastore.org/ide.host", + "icon": "icon.png", + "symbolInfo": [ + { + "id": "Version", + "isVisible": false + }, + { + "id": "PerProjectSdkVersioning", + "isVisible": true, + "invertBoolean": true, + "name": { + "text": "Use solution-wide SDK versioning" + }, + "defaultValue": "true", + "description": { + "text": "Use global.json to specify alt:V SDK versions once in solution instead of specifying them at each project separatedly" + } + } + ] + } + \ No newline at end of file diff --git a/templates/templates/altv-project-client/.template.config/template.json b/templates/templates/altv-project-client/.template.config/template.json new file mode 100644 index 000000000..3be189d45 --- /dev/null +++ b/templates/templates/altv-project-client/.template.config/template.json @@ -0,0 +1,57 @@ +{ + "$schema": "http://json.schemastore.org/template", + "author": "altMP", + "classifications": [ + "alt:V", "Client", "Project" + ], + "name": "alt:V client project 0.0.0", + "description": "A template for creating an alt:V client project.", + "defaultName": "ClientProject", + "identity": "AltV.Net.Template.Project.Client", + "shortName": "altv-project-client", + "tags": { + "language": "C#", + "type": "project" + }, + "preferNameDirectory": true, + "sourceName": "Template.Client", + "symbols": { + "Version": { + "type": "parameter", + "description": "The alt:V SDK version.", + "datatype": "text", + "replaces": "1.0.0", + "defaultValue": "0.0.0" + }, + "PerProjectSdkVersioning" :{ + "type": "parameter", + "datatype": "bool", + "description": "Specify alt:V SDK versions at each project separatedly. (Otherwise versions are specified solution-wide in a global.json file)", + "defaultValue": "false" + }, + "HostIdentifier": { + "type": "bind", + "binding": "HostIdentifier" + } + }, + "primaryOutputs": [ + { + "path": "ClientResource.cs" + }, + { + "path": "Template.Client.csproj" + } + ], + "postActions": [ + { + "condition": "(HostIdentifier != \"dotnetcli\" && HostIdentifier != \"dotnetcli-preview\")", + "description": "Open main source file", + "manualInstructions": [ ], + "actionId": "84C0DA21-51C8-4541-9940-6CA19AF04EE6", + "args": { + "files": "0" + }, + "continueOnError": true + } + ] +} \ No newline at end of file diff --git a/templates/templates/altv-project-client/ClientResource.cs b/templates/templates/altv-project-client/ClientResource.cs new file mode 100644 index 000000000..9b23ff731 --- /dev/null +++ b/templates/templates/altv-project-client/ClientResource.cs @@ -0,0 +1,16 @@ +using AltV.Net.Client; + +namespace Template.Client; + +public class ClientResource : Resource +{ + public override void OnStart() + { + Console.WriteLine("Resource started!"); + } + + public override void OnStop() + { + Console.WriteLine("Resource stopped!"); + } +} \ No newline at end of file diff --git a/templates/templates/altv-project-client/Template.Client.csproj b/templates/templates/altv-project-client/Template.Client.csproj new file mode 100644 index 000000000..dabc87dd2 --- /dev/null +++ b/templates/templates/altv-project-client/Template.Client.csproj @@ -0,0 +1,13 @@ + + + + + + + + net6.0 + enable + enable + + + diff --git a/templates/templates/altv-project-server/.template.config/icon.png b/templates/templates/altv-project-server/.template.config/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..470ab89e7a17046c0d7b88baae312a8e21010f6a GIT binary patch literal 16169 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 S*7xa`*|jwc)E}za$NfLXx1ApV literal 0 HcmV?d00001 diff --git a/templates/templates/altv-project-server/.template.config/ide.host.json b/templates/templates/altv-project-server/.template.config/ide.host.json new file mode 100644 index 000000000..3c86a6c1a --- /dev/null +++ b/templates/templates/altv-project-server/.template.config/ide.host.json @@ -0,0 +1,23 @@ +{ + "$schema": "http://json.schemastore.org/ide.host", + "icon": "icon.png", + "symbolInfo": [ + { + "id": "Version", + "isVisible": false + }, + { + "id": "PerProjectSdkVersioning", + "isVisible": true, + "invertBoolean": true, + "name": { + "text": "Use solution-wide SDK versioning" + }, + "defaultValue": "true", + "description": { + "text": "Use global.json to specify alt:V SDK versions once in solution instead of specifying them at each project separatedly" + } + } + ] + } + \ No newline at end of file diff --git a/templates/templates/altv-project-server/.template.config/template.json b/templates/templates/altv-project-server/.template.config/template.json new file mode 100644 index 000000000..35ef5e369 --- /dev/null +++ b/templates/templates/altv-project-server/.template.config/template.json @@ -0,0 +1,57 @@ +{ + "$schema": "http://json.schemastore.org/template", + "author": "altMP", + "classifications": [ + "alt:V", "Server", "Project" + ], + "name": "alt:V server project 0.0.0", + "description": "A template for creating an alt:V server project.", + "defaultName": "ServerProject", + "identity": "AltV.Net.Template.Project.Server", + "shortName": "altv-project-server", + "tags": { + "language": "C#", + "type": "project" + }, + "preferNameDirectory": true, + "sourceName": "Template.Server", + "symbols": { + "Version": { + "type": "parameter", + "description": "The alt:V SDK version.", + "datatype": "text", + "replaces": "1.0.0", + "defaultValue": "0.0.0" + }, + "PerProjectSdkVersioning" :{ + "type": "parameter", + "datatype": "bool", + "description": "Specify alt:V SDK versions at each project separatedly. (Otherwise versions are specified solution-wide in a global.json file)", + "defaultValue": "false" + }, + "HostIdentifier": { + "type": "bind", + "binding": "HostIdentifier" + } + }, + "primaryOutputs": [ + { + "path": "ServerResource.cs" + }, + { + "path": "Template.Server.csproj" + } + ], + "postActions": [ + { + "condition": "(HostIdentifier != \"dotnetcli\" && HostIdentifier != \"dotnetcli-preview\")", + "description": "Open main source file", + "manualInstructions": [ ], + "actionId": "84C0DA21-51C8-4541-9940-6CA19AF04EE6", + "args": { + "files": "0" + }, + "continueOnError": true + } + ] +} \ No newline at end of file diff --git a/templates/templates/altv-project-server/ServerResource.cs b/templates/templates/altv-project-server/ServerResource.cs new file mode 100644 index 000000000..da8f175cc --- /dev/null +++ b/templates/templates/altv-project-server/ServerResource.cs @@ -0,0 +1,16 @@ +using AltV.Net; + +namespace Template.Server; + +public class ServerResource : Resource +{ + public override void OnStart() + { + Console.WriteLine("Resource started!"); + } + + public override void OnStop() + { + Console.WriteLine("Resource stopped!"); + } +} \ No newline at end of file diff --git a/templates/templates/altv-project-server/Template.Server.csproj b/templates/templates/altv-project-server/Template.Server.csproj new file mode 100644 index 000000000..a91f92ada --- /dev/null +++ b/templates/templates/altv-project-server/Template.Server.csproj @@ -0,0 +1,13 @@ + + + + + + + + net6.0 + enable + enable + + + diff --git a/templates/templates/altv-project-shared/.template.config/icon.png b/templates/templates/altv-project-shared/.template.config/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c918fa8461c738d17abdf4f3ca88fcd2bb582d1b GIT binary patch literal 16165 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 SnI65!uCIMwt3tye=KlbK`Pn@H literal 0 HcmV?d00001 diff --git a/templates/templates/altv-project-shared/.template.config/ide.host.json b/templates/templates/altv-project-shared/.template.config/ide.host.json new file mode 100644 index 000000000..3c86a6c1a --- /dev/null +++ b/templates/templates/altv-project-shared/.template.config/ide.host.json @@ -0,0 +1,23 @@ +{ + "$schema": "http://json.schemastore.org/ide.host", + "icon": "icon.png", + "symbolInfo": [ + { + "id": "Version", + "isVisible": false + }, + { + "id": "PerProjectSdkVersioning", + "isVisible": true, + "invertBoolean": true, + "name": { + "text": "Use solution-wide SDK versioning" + }, + "defaultValue": "true", + "description": { + "text": "Use global.json to specify alt:V SDK versions once in solution instead of specifying them at each project separatedly" + } + } + ] + } + \ No newline at end of file diff --git a/templates/templates/altv-project-shared/.template.config/template.json b/templates/templates/altv-project-shared/.template.config/template.json new file mode 100644 index 000000000..2b04d2b4b --- /dev/null +++ b/templates/templates/altv-project-shared/.template.config/template.json @@ -0,0 +1,57 @@ +{ + "$schema": "http://json.schemastore.org/template", + "author": "altMP", + "classifications": [ + "alt:V", "Shared", "Project" + ], + "name": "alt:V shared project 0.0.0", + "description": "A template for creating an alt:V shared project.", + "defaultName": "SharedProject", + "identity": "AltV.Net.Template.Project.Shared", + "shortName": "altv-project-shared", + "tags": { + "language": "C#", + "type": "project" + }, + "preferNameDirectory": true, + "sourceName": "Template.Shared", + "symbols": { + "Version": { + "type": "parameter", + "description": "The alt:V SDK version.", + "datatype": "text", + "replaces": "1.0.0", + "defaultValue": "0.0.0" + }, + "PerProjectSdkVersioning" :{ + "type": "parameter", + "datatype": "bool", + "description": "Specify alt:V SDK versions at each project separatedly. (Otherwise versions are specified solution-wide in a global.json file)", + "defaultValue": "false" + }, + "HostIdentifier": { + "type": "bind", + "binding": "HostIdentifier" + } + }, + "primaryOutputs": [ + { + "path": "SharedResource.cs" + }, + { + "path": "Template.Shared.csproj" + } + ], + "postActions": [ + { + "condition": "(HostIdentifier != \"dotnetcli\" && HostIdentifier != \"dotnetcli-preview\")", + "description": "Open main source file", + "manualInstructions": [ ], + "actionId": "84C0DA21-51C8-4541-9940-6CA19AF04EE6", + "args": { + "files": "0" + }, + "continueOnError": true + } + ] +} \ No newline at end of file diff --git a/templates/templates/altv-project-shared/SharedClass.cs b/templates/templates/altv-project-shared/SharedClass.cs new file mode 100644 index 000000000..da8f175cc --- /dev/null +++ b/templates/templates/altv-project-shared/SharedClass.cs @@ -0,0 +1,16 @@ +using AltV.Net; + +namespace Template.Server; + +public class ServerResource : Resource +{ + public override void OnStart() + { + Console.WriteLine("Resource started!"); + } + + public override void OnStop() + { + Console.WriteLine("Resource stopped!"); + } +} \ No newline at end of file diff --git a/templates/templates/altv-project-shared/Template.Shared.csproj b/templates/templates/altv-project-shared/Template.Shared.csproj new file mode 100644 index 000000000..dfa40351c --- /dev/null +++ b/templates/templates/altv-project-shared/Template.Shared.csproj @@ -0,0 +1,13 @@ + + + + + + + + net6.0 + enable + enable + + + diff --git a/templates/templates/altv-resource/.template.config/icon.png b/templates/templates/altv-resource/.template.config/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c82c6cb2aabf68a3b919642e76ad9bd5c972c236 GIT binary patch literal 17322 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 literal 0 HcmV?d00001 diff --git a/templates/templates/altv-resource/.template.config/ide.host.json b/templates/templates/altv-resource/.template.config/ide.host.json new file mode 100644 index 000000000..3560be130 --- /dev/null +++ b/templates/templates/altv-resource/.template.config/ide.host.json @@ -0,0 +1,75 @@ +{ + "$schema": "http://json.schemastore.org/ide.host", + "icon": "icon.png", + "symbolInfo": [ + { + "id": "Version", + "isVisible": false + }, + { + "id": "ResourceType", + "isVisible": true, + "defaultValue": "both", + "name": { + "text": "Type" + }, + "description": { + "text": "Specify alt:V resource type" + }, + "choices": [ + { + "id": "both", + "name": { + "text": "Client and server resource" + }, + "description": { + "text": "Both client and server projects will be created" + } + }, + { + "id": "client", + "name": { + "text": "Client resource" + }, + "description": { + "text": "Only client project will be created" + } + }, + { + "id": "server", + "name": { + "text": "Server resource" + }, + "description": { + "text": "Only server project will be created" + } + } + ] + }, + { + "id": "DisableShared", + "isVisible": true, + "invertBoolean": true, + "name": { + "text": "Enable shared project" + }, + "description": { + "text": "Generate project for code shared between client and server. Only applicable if \"Client and server resource\" type is selected." + }, + "defaultValue": "true" + }, + { + "id": "PerProjectSdkVersioning", + "isVisible": true, + "invertBoolean": true, + "name": { + "text": "Use solution-wide SDK versioning" + }, + "defaultValue": "true", + "description": { + "text": "Use global.json to specify alt:V SDK versions once in solution instead of specifying them at each project separatedly" + } + } + ] + } + \ No newline at end of file diff --git a/templates/templates/altv-resource/.template.config/template.json b/templates/templates/altv-resource/.template.config/template.json new file mode 100644 index 000000000..7f88a5107 --- /dev/null +++ b/templates/templates/altv-resource/.template.config/template.json @@ -0,0 +1,151 @@ +{ + "$schema": "http://json.schemastore.org/template", + "author": "altMP", + "classifications": [ + "alt:V" + ], + "name": "alt:V resource 0.0.0", + "description": "A template for creating a complete alt:V resource. This template includes resource config, created folder can be used as a ready-to-use resource.", + "defaultName": "Resource", + "identity": "AltV.Net.Template.Resource", + "shortName": "altv-resource", + "tags": { + "language": "C#", + "type": "solution", + "editorTreatAs": "solution" + }, + "guids": [ + "FAE04EC0-301F-11D3-BF4B-00C04F79EFBC", + "3EF7FDD0-B1FD-4ABA-8C1B-E94217322967", + "FCEFF162-8A4B-44C0-92BA-F49B5CAD82D7", + "77916052-ECA7-4C26-96A5-E57F7AA64884" + ], + "preferNameDirectory": true, + "sourceName": "Template", + "symbols": { + "Version": { + "type": "parameter", + "description": "The alt:V SDK version.", + "datatype": "text", + "replaces": "1.0.0", + "defaultValue": "0.0.0" + }, + "ResourceType": { + "type": "parameter", + "datatype": "choice", + "choices": [ + { + "choice": "both", + "description": "Client and server resource" + }, + { + "choice": "client", + "description": "Client-only resource" + }, + { + "choice": "server", + "description": "Server-only resource" + } + ], + "defaultValue": "both" + }, + "DisableShared": { + "type": "parameter", + "datatype": "bool", + "description": "Do not generate project for shared code", + "defaultValue": "false", + "isEnabled": "(ResourceType == \"both\")" + }, + "PerProjectSdkVersioning" :{ + "type": "parameter", + "datatype": "bool", + "description": "Specify alt:V SDK versions at each project separatedly. (Otherwise versions are specified solution-wide in a global.json file)", + "defaultValue": "false" + }, + "GenerateClient": { + "type": "computed", + "value": "(ResourceType == \"client\" || ResourceType == \"both\")" + }, + "GenerateServer": { + "type": "computed", + "value": "(ResourceType == \"server\" || ResourceType == \"both\")" + }, + "GenerateShared": { + "type": "computed", + "value": "(ResourceType == \"both\" && !DisableShared)" + }, + "HostIdentifier": { + "type": "bind", + "binding": "HostIdentifier" + } + }, + "sources": [ + { + "modifiers": [ + { + "condition": "(!GenerateClient)", + "exclude": [ + "Template.Client/**" + ] + }, + { + "condition": "(!GenerateServer)", + "exclude": [ + "Template.Server/**" + ] + }, + { + "condition": "(!GenerateShared)", + "exclude": [ + "Template.Shared/**" + ] + }, + { + "condition": "(PerProjectSdkVersioning)", + "exclude": [ + "global.json" + ] + }, + { + "condition": "(HostIdentifier == \"dotnetcli\" || HostIdentifier == \"dotnetcli-preview\")", + "rename": { + "Template.app.sln": "Template.sln" + } + } + ] + } + ], + "primaryOutputs": [ + { + "path": "Template.sln" + }, + { + "condition": "(HostIdentifier != \"dotnetcli\" && HostIdentifier != \"dotnetcli-preview\")", + "path": "Template.app.sln" + }, + { + "condition": "(GenerateClient)", + "path": "Template.Client/ClientResource.cs" + }, + { + "condition": "(GenerateServer)", + "path": "Template.Server/ServerResource.cs" + }, + { + "condition": "(GenerateShared)", + "path": "Template.Shared/SharedClass.cs" + } + ], + "postActions": [ + { + "condition": "(HostIdentifier != \"dotnetcli\" && HostIdentifier != \"dotnetcli-preview\")", + "description": "Open main source files", + "manualInstructions": [ ], + "actionId": "84C0DA21-51C8-4541-9940-6CA19AF04EE6", + "args": { + "files": "4;2;3" + }, + "continueOnError": true + } + ] +} \ No newline at end of file diff --git a/templates/templates/altv-resource/Template.Client/ClientResource.cs b/templates/templates/altv-resource/Template.Client/ClientResource.cs new file mode 100644 index 000000000..9b23ff731 --- /dev/null +++ b/templates/templates/altv-resource/Template.Client/ClientResource.cs @@ -0,0 +1,16 @@ +using AltV.Net.Client; + +namespace Template.Client; + +public class ClientResource : Resource +{ + public override void OnStart() + { + Console.WriteLine("Resource started!"); + } + + public override void OnStop() + { + Console.WriteLine("Resource stopped!"); + } +} \ No newline at end of file diff --git a/templates/templates/altv-resource/Template.Client/Template.Client.csproj b/templates/templates/altv-resource/Template.Client/Template.Client.csproj new file mode 100644 index 000000000..aa0f95ab4 --- /dev/null +++ b/templates/templates/altv-resource/Template.Client/Template.Client.csproj @@ -0,0 +1,19 @@ + + + + + + + + net6.0 + enable + enable + + + + + + + + + diff --git a/templates/templates/altv-resource/Template.Server/ServerResource.cs b/templates/templates/altv-resource/Template.Server/ServerResource.cs new file mode 100644 index 000000000..da8f175cc --- /dev/null +++ b/templates/templates/altv-resource/Template.Server/ServerResource.cs @@ -0,0 +1,16 @@ +using AltV.Net; + +namespace Template.Server; + +public class ServerResource : Resource +{ + public override void OnStart() + { + Console.WriteLine("Resource started!"); + } + + public override void OnStop() + { + Console.WriteLine("Resource stopped!"); + } +} \ No newline at end of file diff --git a/templates/templates/altv-resource/Template.Server/Template.Server.csproj b/templates/templates/altv-resource/Template.Server/Template.Server.csproj new file mode 100644 index 000000000..8c8e39b4b --- /dev/null +++ b/templates/templates/altv-resource/Template.Server/Template.Server.csproj @@ -0,0 +1,19 @@ + + + + + + + + net6.0 + enable + enable + + + + + + + + + diff --git a/templates/templates/altv-resource/Template.Shared/SharedClass.cs b/templates/templates/altv-resource/Template.Shared/SharedClass.cs new file mode 100644 index 000000000..2e4a9d34a --- /dev/null +++ b/templates/templates/altv-resource/Template.Shared/SharedClass.cs @@ -0,0 +1,6 @@ +namespace Template.Shared; + +public class SharedClass +{ + // your shared code +} \ No newline at end of file diff --git a/templates/templates/altv-resource/Template.Shared/Template.Shared.csproj b/templates/templates/altv-resource/Template.Shared/Template.Shared.csproj new file mode 100644 index 000000000..6f28745b0 --- /dev/null +++ b/templates/templates/altv-resource/Template.Shared/Template.Shared.csproj @@ -0,0 +1,13 @@ + + + + + + + + net6.0 + enable + enable + + + diff --git a/templates/templates/altv-resource/Template.app.sln b/templates/templates/altv-resource/Template.app.sln new file mode 100644 index 000000000..9835f7bee --- /dev/null +++ b/templates/templates/altv-resource/Template.app.sln @@ -0,0 +1,40 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +#if (GenerateClient) +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Template.Client", "Template.Client\Template.Client.csproj", "{3EF7FDD0-B1FD-4ABA-8C1B-E94217322967}" +EndProject +#endif +#if (GenerateServer) +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Template.Server", "Template.Server\Template.Server.csproj", "{FCEFF162-8A4B-44C0-92BA-F49B5CAD82D7}" +EndProject +#endif +#if (GenerateShared) +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Template.Shared", "Template.Shared\Template.Shared.csproj", "{77916052-ECA7-4C26-96A5-E57F7AA64884}" +EndProject +#endif +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + #if (GenerateClient) + {3EF7FDD0-B1FD-4ABA-8C1B-E94217322967}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3EF7FDD0-B1FD-4ABA-8C1B-E94217322967}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3EF7FDD0-B1FD-4ABA-8C1B-E94217322967}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3EF7FDD0-B1FD-4ABA-8C1B-E94217322967}.Release|Any CPU.Build.0 = Release|Any CPU + #endif + #if (GenerateServer) + {FCEFF162-8A4B-44C0-92BA-F49B5CAD82D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FCEFF162-8A4B-44C0-92BA-F49B5CAD82D7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FCEFF162-8A4B-44C0-92BA-F49B5CAD82D7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FCEFF162-8A4B-44C0-92BA-F49B5CAD82D7}.Release|Any CPU.Build.0 = Release|Any CPU + #endif + #if (GenerateShared) + {77916052-ECA7-4C26-96A5-E57F7AA64884}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {77916052-ECA7-4C26-96A5-E57F7AA64884}.Debug|Any CPU.Build.0 = Debug|Any CPU + {77916052-ECA7-4C26-96A5-E57F7AA64884}.Release|Any CPU.ActiveCfg = Release|Any CPU + {77916052-ECA7-4C26-96A5-E57F7AA64884}.Release|Any CPU.Build.0 = Release|Any CPU + #endif + EndGlobalSection +EndGlobal diff --git a/templates/templates/altv-resource/global.json b/templates/templates/altv-resource/global.json new file mode 100644 index 000000000..40e093d1b --- /dev/null +++ b/templates/templates/altv-resource/global.json @@ -0,0 +1,7 @@ +{ + "msbuild-sdks": { + "AltV.Net.Sdk.Client": "1.0.0", + "AltV.Net.Sdk.Server": "1.0.0", + "AltV.Net.Sdk.Shared": "1.0.0" + } +} \ No newline at end of file diff --git a/templates/templates/altv-resource/resource.toml b/templates/templates/altv-resource/resource.toml new file mode 100644 index 000000000..9fe964299 --- /dev/null +++ b/templates/templates/altv-resource/resource.toml @@ -0,0 +1,11 @@ +//#if (GenerateServer) +type = 'csharp' +main = 'Template.Server/bin/Template.Server.dll' + +//#endif +//#if (GenerateClient) +client-type = 'csharp' +client-main = 'Template.Client/bin/Template.Client.dll' +client-files = [ 'Template.Client/bin/*' ] + +//#endif \ No newline at end of file From 39f5547715a9074207e45bbb625697c33b5be42a Mon Sep 17 00:00:00 2001 From: doxoh Date: Fri, 31 Mar 2023 21:07:46 +0200 Subject: [PATCH 02/51] Updated submodule runtime --- runtime | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime b/runtime index deed62186..602ac8191 160000 --- a/runtime +++ b/runtime @@ -1 +1 @@ -Subproject commit deed62186009657551c7be41a70237d1d9d3d637 +Subproject commit 602ac81910eabe825121e87e14293e6edbae5ce3 From 0e86850709f5e4d5beade0f67e9741245953c527 Mon Sep 17 00:00:00 2001 From: doxoh Date: Sat, 1 Apr 2023 01:04:15 +0200 Subject: [PATCH 03/51] server: add missing VehicleModelInfo->Type --- api/AltV.Net/Data/VehicleModelInfo.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/api/AltV.Net/Data/VehicleModelInfo.cs b/api/AltV.Net/Data/VehicleModelInfo.cs index 34df09c72..98ec6eccc 100644 --- a/api/AltV.Net/Data/VehicleModelInfo.cs +++ b/api/AltV.Net/Data/VehicleModelInfo.cs @@ -68,6 +68,7 @@ public VehicleModelInfo ToPublic() return new VehicleModelInfo { Title = Title, + Type = Type, WheelsCount = WheelsCount, HasArmoredWindows = HasArmoredWindows, PrimaryColor = PrimaryColor, @@ -88,6 +89,7 @@ public VehicleModelInfo ToPublic() public struct VehicleModelInfo { public string Title; + public VehicleModelType Type; public byte WheelsCount; public bool HasArmoredWindows; From df233513cd0be1937df33474addaf9f22e158f1d Mon Sep 17 00:00:00 2001 From: doxoh Date: Sat, 15 Apr 2023 13:27:11 +0200 Subject: [PATCH 04/51] extend OnUnhandledException log --- api/AltV.Net/ModuleWrapper.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/AltV.Net/ModuleWrapper.cs b/api/AltV.Net/ModuleWrapper.cs index 33f3fac81..e92cfc00b 100644 --- a/api/AltV.Net/ModuleWrapper.cs +++ b/api/AltV.Net/ModuleWrapper.cs @@ -152,7 +152,7 @@ public static void MainWithAssembly(IntPtr serverPointer, IntPtr resourcePointer private static void OnUnhandledException(object sender, UnhandledExceptionEventArgs e) { Alt.Log( - $"< ==== UNHANDLED EXCEPTION ==== > {Environment.NewLine} Received an unhandled exception from {sender?.GetType()}: " + + $"< ==== UNHANDLED EXCEPTION ==== > {Environment.NewLine} Sender: {Alt.Resource.Path} {Environment.NewLine} Received an unhandled exception from {sender?.GetType()}: " + (Exception) e.ExceptionObject); } From afd853cc40fcbccaebcd3f1acbee548f022bfcfe Mon Sep 17 00:00:00 2001 From: Till Schreiber Date: Fri, 20 Oct 2023 20:26:07 +0200 Subject: [PATCH 05/51] Merge rc into release (#810) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add rotating and BobUpDown to marker * Updated submodule runtime * add metric * Empty-Commit * Update release.yml * add Alt.Metric* calls * add latest blip changes * ILocalVehicle inherit ivehicle * fix mvalue * update to latest sdk changes * fix VEG parameter name * Added Create Ped api (#749) Added Async Create Ped api Co-authored-by: Bohdan Bessonov * mark all entity constructor as obsolete and add all Alt.Create* * remove obsolete Alt.Server * remove debug log * add AltAsync.CreateVirtualEntity* and update natives * fix byte entity type * fix VE GetStreamSyncedMetaData * fix StreamSyncedMetaChangeDelegate to baseobject * ILocalPed extends IPed, all entities now have a remote id and isrmeote * Updated submodule runtime * add entity set pos/rot network check * Disable current not supported types * fix adapter check for mvalue * Runtime update * cleanup remoteid, cleanup scriptid * optimize pipeline * Runtime update * Added missing event type * prepare runtime with latest changes for weaponobject/font/frozen * SDK update * Fix localstorage null key crash * update to latest sdk changes * add latest events * Add IPlayer::SetAmmo * Update VehicleModelInfo and WeaponModelInfo * Add mp2023_01 / San Andreas Mercenaries content (#753) * add entity timestamp * fix enum * fix avenger4 (#754) * Fix for weaponModelInfoCache not created * Fix for weaponModelInfoCache not created (#755) Co-authored-by: Bohdan Bessonov * Added AmmoType enum * Adjusted names to be more like WeaponModel names * update to latest runtime * remove null check for netowner change * Revert "remove null check for netowner change" This reverts commit 5a463194679c330d4cb1436e9335155aa428b9f8. * add set pos/dim for client * Checkpoint type typo fix * add missing parameter for create Object * Add IsWebViewGpuAccelerationActive getter * refactor blip getters/setters * update priority * add paraless constructor for position/rotation * fix getcurrentweapon * Updated submodule runtime * add PLAYER_BULLET_HIT_EVENT event * update runtime * implement blip changes * fix game crash by weapon damage * Runtime update * Runtime update * update to latest SDK changes * fix enum baseobjecttype * add player Ammo methods * add all audio classes to client * Add SDK version to CI * add serverside decorations * Add Docker CI build * fix OnRmlEventDelegate * fix caller * remove wrong event * Fix clientside timers threadsafety * add Add/Remove Output for Audio * add AudioCategory * add player playscenario * Updated submodule runtime * add all weapon data getter * fix OnCheckpoint event * Update runtime * add missing client event register * add CVoiceConnectionEvent and SetVoiceExternalPublic * add SetVoiceExternal * update to latest changes * Change NetworkObject to Object * add ResetMinimapComponentPosition * update to latest change * Add GetVoiceConnectionState * Build fix * add new blip apis * fix check version * fix check version * fix var name Typo (#758) rename streamingDistance to maxEntitiesInStream * add cloud auth api * Updated submodule runtime * fix build * Add some vehicle props * Updated submodule runtime * making all client factories virtual * Runtime update * Add GetAllResources to serverside * Runtime update * Fixed build * runtime update * EventType enum fix * EventType enum fix * add latest changes (3 scene events missing) * fix event * sync script events now need have the definded return type * Runtime update * add new events * add FontRegister to client * add OnceServer/OnceClient to Serverside * add passengers to vehicle * add connectioninfo Get/Set Text * VoiceChannel_GetPlayerCount * fix * add IsParachuting * OnPlayerWeaponChange is not cancable anymore * Update runtime * rc runtime * Update runtime * Update runtime * fix runtime calls for audio * add audio event handler * add new core methods and add playerhealevent * make WeaponDamageDelegate dynamic return * small fixes * Runtime update * Runtime update * Runtime update * added missing SetDateTime method (#776) * fixed GetBaseObjectById cast error (#777) * added marker pool & factory (#778) * fix valid type check * add latest Core Method * add Ped/Object for GetClosest * Ped bone info fix * add meta data setters for setting multiple values at once * added object pool & renamed local object stuff (#779) * added colshape create functions to client (#780) * client: add SteeringAngle setter * upgrade version bumps * upgrade version bumps * upgrade version bumps * Updated submodule runtime * Updated submodule runtime * update runtime * Updated submodule runtime * make WeaponDamage Eventhandling better * fix runtime and sample * make it backwards comaptible * fix checkpoint events and fix bool translate from runtime * fix mvalue crash * Extend get all functions (#785) * runtime: added new get all functions * runtime: added new free functions * extend get all functions * extend get all function in alt class * updated librarys * updated libraries * updated libraries * Updated submodule runtime * added remaining get all functions to module wrapper (#801) * Updated submodule runtime * Updated submodule runtime * Updated submodule runtime * Update runtime * ConnectionInfo.RequestCloudId * Proper cloud auth impl * Update runtime * SDK Update * revert a bit * fix * added give ped scripted task event (#803) * update to latest sdk * added virtual entity get all to alt class (#802) * change CGivePedScriptedTaskEvent taskType to uint32_t * Changed ScriptEventType.PlayerLeaveVehicle to ScriptEventType.PlayerEnteringVehicle * Rename all Audio Outputs * fix type * Runtime update * Runtime update * add async entity factories. improve docs for both (#806) * add latest events * Updated submodule runtime * add new eventtypes * update runtime * add RPC events * fix event call * update RPC to new answer type * fix mock * Exposed RegisterFont function * fix SocialId name in connectionInfo * Update voice settings image * Updated submodule runtime * make rpc events shared * streaming distance per entity * Runtime update * Implemented clearCache argument in Audio creation * add entity SetStreamingDistance * add BaseObjectTypeSize check * refactor cloud auth * Added GetLoadedVehicleModels * fix mock * move EmitRpc to IPlayer * move EmitRpc to IPlayer * add missing async events * by parsing null string, translate it to empty one * only use MemoryUtils * Revert "by parsing null string, translate it to empty one" This reverts commit 45b6ee0fdbf4729732553decbd6bea6fbb0bc71d. * Auto stash before revert of "by parsing null string, translate it to empty one" * Add NetTime as Alt.NetTime for client and server * Added method to pass more config entries to client * add cloud auth result and benefit check * add blood damage getter / setter * fix weaponDamage by damage value * fix GetEntitiesIn* * fix getid data type * update runtime --------- Co-authored-by: Bohdan Bessonov Co-authored-by: Bohdan Bessonov Co-authored-by: Artem Dzhemesiuk Co-authored-by: Alexander Schmid Co-authored-by: sprayzcs <33363043+sprayzcs@users.noreply.github.com> Co-authored-by: Fabian Terhorst Co-authored-by: WhishN <55228303+WhishN@users.noreply.github.com> Co-authored-by: Ramon Pawlowski Co-authored-by: Yauhen Pahrabniak Co-authored-by: LightSrc Co-authored-by: Kiwi <40145372+KiwisKiwi@users.noreply.github.com> Co-authored-by: Shaun Lüdeke <77498048+shaunluedeke@users.noreply.github.com> Co-authored-by: Niels Co-authored-by: litolax --- .github/workflows/documentation.yml | 2 +- .github/workflows/dotnetcore.yml | 4 +- .github/workflows/release.yml | 428 +- .../AltV.Net.Async.CodeGen.csproj | 6 +- api/AltV.Net.Async/AltAsync.Blip.cs | 28 +- api/AltV.Net.Async/AltAsync.Checkpoint.cs | 8 +- api/AltV.Net.Async/AltAsync.Marker.cs | 16 + api/AltV.Net.Async/AltAsync.Object.cs | 15 + api/AltV.Net.Async/AltAsync.Ped.cs | 20 + api/AltV.Net.Async/AltAsync.Player.cs | 15 +- api/AltV.Net.Async/AltAsync.RegisterEvents.cs | 164 +- api/AltV.Net.Async/AltAsync.Vehicle.cs | 19 +- api/AltV.Net.Async/AltAsync.VirtualEntity.cs | 16 + api/AltV.Net.Async/AltAsync.cs | 185 +- api/AltV.Net.Async/AltThreadSafe.Player.cs | 65 +- api/AltV.Net.Async/AsyncBaseBaseObjectPool.cs | 12 - api/AltV.Net.Async/AsyncBaseObjectPool.cs | 19 +- api/AltV.Net.Async/AsyncCore.cs | 410 +- api/AltV.Net.Async/AsyncEntityPool.cs | 6 +- api/AltV.Net.Async/AsyncResource.cs | 70 +- .../Elements/Entities/AsyncBaseObject.cs | 127 +- .../Elements/Entities/AsyncBlip.cs | 151 +- .../Elements/Entities/AsyncCheckpoint.cs | 158 +- .../Elements/Entities/AsyncColShape.cs | 12 +- .../Elements/Entities/AsyncConnectionInfo.cs | 246 + .../Elements/Entities/AsyncEntity.cs | 168 +- .../Elements/Entities/AsyncMarker.cs | 246 + .../Elements/Entities/AsyncObject.cs | 106 + .../Elements/Entities/AsyncPed.cs | 111 + .../Elements/Entities/AsyncPlayer.cs | 414 +- .../Elements/Entities/AsyncVehicle.cs | 93 +- .../Elements/Entities/AsyncVirtualEntity.cs | 189 + .../Entities/AsyncVirtualEntityGroup.cs | 37 + .../Elements/Entities/AsyncVoiceChannel.cs | 70 +- .../Elements/Entities/VehicleBuilder.cs | 15 +- .../Elements/Factories/AsyncBlipFactory.cs | 4 +- .../Factories/AsyncCheckpointFactory.cs | 4 +- .../Factories/AsyncColShapeFactory.cs | 4 +- .../Factories/AsyncConnectionInfoFactory.cs | 14 + .../Elements/Factories/AsyncMarkerFactory.cs | 14 + .../Elements/Factories/AsyncObjectFactory.cs | 14 + .../Elements/Factories/AsyncPedFactory.cs | 14 + .../Elements/Factories/AsyncPlayerFactory.cs | 2 +- .../Elements/Factories/AsyncVehicleFactory.cs | 2 +- .../Factories/AsyncVirtualEntityFactory.cs | 14 + .../AsyncVirtualEntityGroupFactory.cs | 14 + .../Factories/AsyncVoiceChannelFactory.cs | 4 +- .../Elements/Pools/AsyncBlipPool.cs | 8 +- .../Elements/Pools/AsyncCheckpointPool.cs | 6 + .../Elements/Pools/AsyncColShapePool.cs | 10 +- .../Elements/Pools/AsyncMarkerPool.cs | 37 + .../Elements/Pools/AsyncPedPool.cs | 36 + .../Elements/Pools/AsyncPlayerPool.cs | 2 +- .../Elements/Pools/AsyncVehiclePool.cs | 2 +- .../Pools/AsyncVirtualEntityGroupPool.cs | 41 + .../Elements/Pools/AsyncVirtualEntityPool.cs | 41 + .../Elements/Pools/AsyncVoiceChannelPool.cs | 8 +- api/AltV.Net.Async/Events/Events.cs | 56 +- .../MValueConst.Locked.NoRefs.cs | 32 +- .../AltV.Net.BenchmarkRunners.csproj | 2 +- .../AltV.Net.Benchmarks.csproj | 2 +- api/AltV.Net.CApi.Generator/TypeRegistry.cs | 255 +- api/AltV.Net.CApi/Data/Position.cs | 9 +- api/AltV.Net.CApi/Data/Rotation.cs | 9 +- api/AltV.Net.CApi/Enums/AmmoSpecialType.cs | 12 + api/AltV.Net.CApi/Enums/BaseObjectType.cs | 21 +- .../Enums/VoiceConnectionState.cs | 8 + .../Events/{Events.cs => ClientEvents.cs} | 79 +- api/AltV.Net.CApi/Events/ServerEvents.cs | 3 + api/AltV.Net.CApi/Libraries/ClientLibrary.cs | 1336 +- api/AltV.Net.CApi/Libraries/ServerLibrary.cs | 945 +- api/AltV.Net.CApi/Libraries/SharedLibrary.cs | 1212 +- api/AltV.Net.CApi/Native/AltV.Resource.cs | 245 +- api/AltV.Net.CApi/Native/AltV.StringUtils.cs | 30 - api/AltV.Net.Client.Async/AltAsync.cs | 6 +- api/AltV.Net.Client.Example/Class1.cs | 34 +- api/AltV.Net.Client/Alt.Create.cs | 48 +- api/AltV.Net.Client/Alt.Events.cs | 179 +- api/AltV.Net.Client/Alt.Globals.cs | 4 +- api/AltV.Net.Client/Alt.cs | 43 +- api/AltV.Net.Client/AltV.Net.Client.csproj | 2 +- api/AltV.Net.Client/Core.Events.cs | 355 +- api/AltV.Net.Client/Core.Globals.cs | 56 +- api/AltV.Net.Client/Core.cs | 898 +- api/AltV.Net.Client/Discord.cs | 4 +- .../Elements/Data/AudioCategory.cs | 347 + api/AltV.Net.Client/Elements/Data/Handling.cs | 2 +- .../Elements/Data/IAudioCategory.cs | 21 + .../Elements/Data/LocalStorage.cs | 38 + .../Elements/Data/Permission.cs | 1 + .../Elements/Data/PermissionState.cs | 14 - api/AltV.Net.Client/Elements/Data/Voice.cs | 61 +- .../Elements/Entities/Audio.cs | 85 +- .../Elements/Entities/AudioFilter.cs | 185 + .../Elements/Entities/AudioOutput.cs | 127 + .../Elements/Entities/AudioOutputAttached.cs | 47 + .../Elements/Entities/AudioOutputFrontend.cs | 23 + .../Elements/Entities/AudioOutputWorld.cs | 45 + .../Elements/Entities/BaseObject.cs | 30 +- api/AltV.Net.Client/Elements/Entities/Blip.cs | 144 +- .../Elements/Entities/Checkpoint.cs | 65 +- .../Elements/Entities/ColShape.cs | 9 +- .../Elements/Entities/Entity.cs | 135 +- api/AltV.Net.Client/Elements/Entities/Font.cs | 23 + .../Elements/Entities/HttpClient.cs | 7 +- .../Elements/Entities/LocalObject.cs | 274 + .../Elements/Entities/LocalPed.cs | 84 + .../Elements/Entities/LocalPlayer.cs | 19 +- .../Elements/Entities/LocalVehicle.cs | 86 + .../Elements/Entities/Marker.cs | 263 + .../Elements/Entities/Object.cs | 79 + .../Elements/Entities/ObjectEntity.cs | 228 - api/AltV.Net.Client/Elements/Entities/Ped.cs | 83 + .../Elements/Entities/Player.cs | 127 +- .../Elements/Entities/RmlDocument.cs | 20 +- .../Elements/Entities/RmlElement.cs | 38 +- .../Elements/Entities/TextLabel.cs | 177 + .../Elements/Entities/Vehicle.cs | 57 +- .../Elements/Entities/VirtualEntity.cs | 179 + .../Elements/Entities/VirtualEntityGroup.cs | 48 + .../Elements/Entities/WebSocketClient.cs | 8 +- .../Elements/Entities/WebView.cs | 46 +- .../Elements/Entities/WorldObject.cs | 30 +- .../Elements/Factories/AudioFactory.cs | 4 +- .../Elements/Factories/AudioFilterFactory.cs | 13 + .../Factories/AudioOutputAttachedFactory.cs | 13 + .../Elements/Factories/AudioOutputFactory.cs | 13 + .../Factories/AudioOutputFrontendFactory.cs | 13 + .../Factories/AudioOutputWorldFactory.cs | 13 + .../Elements/Factories/BlipFactory.cs | 4 +- .../Elements/Factories/CheckpointFactory.cs | 4 +- .../Elements/Factories/ColShapeFactory.cs | 13 + .../Elements/Factories/FontFactory.cs | 13 + .../Elements/Factories/HttpClientFactory.cs | 4 +- .../Elements/Factories/IEntityFactory.cs | 2 +- .../Elements/Factories/IPlayerFactory.cs | 2 +- .../Elements/Factories/LocalObjectFactory.cs | 13 + .../Elements/Factories/LocalPedFactory.cs | 13 + .../Elements/Factories/LocalVehicleFactory.cs | 13 + .../Elements/Factories/MarkerFactory.cs | 13 + .../Elements/Factories/ObjectFactory.cs | 4 +- .../Elements/Factories/PedFactory.cs | 12 + .../Elements/Factories/PlayerFactory.cs | 4 +- .../Elements/Factories/RmlDocumentFactory.cs | 4 +- .../Elements/Factories/RmlElementFactory.cs | 4 +- .../Elements/Factories/TextLabelFactory.cs | 13 + .../Elements/Factories/VehicleFactory.cs | 2 +- .../Factories/VirtualEntityFactory.cs | 13 + .../Factories/VirtualEntityGroupFactory.cs | 13 + .../Factories/WebSocketClientFactory.cs | 4 +- .../Elements/Factories/WebViewFactory.cs | 4 +- .../Elements/Interfaces/IAudio.cs | 10 +- .../Elements/Interfaces/IAudioFilter.cs | 24 + .../Elements/Interfaces/IAudioOutput.cs | 18 + .../Interfaces/IAudioOutputAttached.cs | 10 + .../Interfaces/IAudioOutputFrontend.cs | 6 + .../Elements/Interfaces/IAudioOutputWorld.cs | 10 + .../Elements/Interfaces/IBaseObject.cs | 4 +- .../Elements/Interfaces/IBlip.cs | 4 +- .../Elements/Interfaces/ICheckpoint.cs | 2 + .../Elements/Interfaces/IColShape.cs | 8 + .../Elements/Interfaces/IEntity.cs | 8 +- .../Elements/Interfaces/IFont.cs | 6 + .../Elements/Interfaces/ILocalObject.cs | 38 + .../Elements/Interfaces/ILocalPed.cs | 13 + .../Elements/Interfaces/ILocalPlayer.cs | 5 +- .../Elements/Interfaces/ILocalVehicle.cs | 15 + .../Elements/Interfaces/IMarker.cs | 8 + .../Elements/Interfaces/IObject.cs | 13 +- .../Elements/Interfaces/IPed.cs | 8 + .../Elements/Interfaces/IPlayer.cs | 6 + .../Elements/Interfaces/IRmlElement.cs | 2 +- .../Elements/Interfaces/ITextLabel.cs | 20 + .../Elements/Interfaces/IVehicle.cs | 8 +- .../Elements/Interfaces/IVirtualEntity.cs | 7 + .../Interfaces/IVirtualEntityGroup.cs | 8 + .../Elements/Interfaces/IWebView.cs | 4 + .../Elements/Pools/AudioFilterPool.cs | 19 + .../Elements/Pools/AudioOutputAttachedPool.cs | 19 + .../Elements/Pools/AudioOutputFrontendPool.cs | 19 + .../Elements/Pools/AudioOutputPool.cs | 19 + .../Elements/Pools/AudioOutputWorldPool.cs | 19 + .../Elements/Pools/AudioPool.cs | 8 + .../Elements/Pools/BaseBaseObjectPool.cs | 136 - .../Elements/Pools/BaseEntityPool.cs | 19 +- .../Elements/Pools/BaseObjectPool.cs | 19 +- .../Elements/Pools/BlipPool.cs | 8 + .../Elements/Pools/CheckpointPool.cs | 8 + .../Elements/Pools/ColShapePool.cs | 19 + .../Elements/Pools/EntityPool.cs | 6 +- .../Elements/Pools/FontPool.cs | 19 + .../Elements/Pools/HttpClientPool.cs | 8 + .../Elements/Pools/IBaseBaseObjectPool.cs | 18 - .../Elements/Pools/IBaseObjectPool.cs | 3 +- .../Elements/Pools/IEntityPool.cs | 4 +- .../Elements/Pools/IPoolManager.cs | 46 + .../Elements/Pools/LocalObjectPool.cs | 19 + .../Elements/Pools/LocalPedPool.cs | 19 + .../Elements/Pools/LocalVehiclePool.cs | 19 + .../Elements/Pools/MarkerPool.cs | 24 + .../Elements/Pools/ObjectPool.cs | 4 +- api/AltV.Net.Client/Elements/Pools/PedPool.cs | 19 + .../Elements/Pools/PlayerPool.cs | 2 +- .../Elements/Pools/PoolManager.cs | 294 + .../Elements/Pools/RmlDocumentPool.cs | 8 + .../Elements/Pools/RmlElementPool.cs | 5 + .../Elements/Pools/TextLabelPool.cs | 19 + .../Elements/Pools/TimerPool.cs | 9 +- .../Elements/Pools/VehiclePool.cs | 2 +- .../Elements/Pools/VirtualEntityGroupPool.cs | 19 + .../Elements/Pools/VirtualEntityPool.cs | 19 + .../Elements/Pools/WebSocketClientPool.cs | 8 + .../Elements/Pools/WebViewPool.cs | 8 + api/AltV.Net.Client/Events/Events.cs | 29 +- .../Exceptions/PermissionException.cs | 17 +- api/AltV.Net.Client/FocusData.cs | 5 +- api/AltV.Net.Client/IBaseObjectFactory.cs | 2 +- api/AltV.Net.Client/ICore.cs | 113 +- api/AltV.Net.Client/IResource.cs | 15 + api/AltV.Net.Client/ModuleWrapper.cs | 222 +- api/AltV.Net.Client/Natives.cs | 23461 ++++++++-------- api/AltV.Net.Client/Resource.cs | 76 +- .../Runtime/CSharpResourceImpl.cs | 152 +- api/AltV.Net.Client/WinApi/ErrorDialog.cs | 40 +- .../AltV.Net.ColShape.Tests.csproj | 2 +- api/AltV.Net.ColShape.Tests/MockPlayerPool.cs | 6 +- .../MockVehiclePool.cs | 8 +- .../AltV.Net.EntitySync.Benchmarks.csproj | 4 +- .../AltV.Net.EntitySync.Tests.csproj | 4 +- api/AltV.Net.Example/MyPlayer.cs | 4 +- api/AltV.Net.Example/MyPlayerFactory.cs | 2 +- api/AltV.Net.Example/MyVehicle.cs | 2 +- api/AltV.Net.Example/MyVehicleFactory.cs | 2 +- api/AltV.Net.Example/SampleResource.cs | 23 +- api/AltV.Net.Example/SampleScript.cs | 24 +- .../nuget.old.config | 17 +- .../AltV.Net.Interactions.Tests.csproj | 4 +- api/AltV.Net.Mock.Example/Program.cs | 4 +- api/AltV.Net.Mock/MockAltV.cs | 41 +- api/AltV.Net.Mock/MockBaseBaseObjectPool.cs | 15 - api/AltV.Net.Mock/MockBaseEntityPool.cs | 12 - api/AltV.Net.Mock/MockBlip.cs | 39 +- api/AltV.Net.Mock/MockBlipFactory.cs | 6 +- api/AltV.Net.Mock/MockCheckpoint.cs | 56 +- api/AltV.Net.Mock/MockCheckpointFactory.cs | 7 +- api/AltV.Net.Mock/MockClientEvents.cs | 2 +- api/AltV.Net.Mock/MockColShape.cs | 6 +- api/AltV.Net.Mock/MockColShapeFactory.cs | 6 +- api/AltV.Net.Mock/MockConnectionInfo.cs | 47 + .../MockConnectionInfoFactory.cs | 22 + api/AltV.Net.Mock/MockConnectionInfoPool.cs | 17 + api/AltV.Net.Mock/MockCore.cs | 460 +- api/AltV.Net.Mock/MockDecorator.cs | 8 +- api/AltV.Net.Mock/MockEntities.cs | 18 +- api/AltV.Net.Mock/MockEntity.cs | 5 +- api/AltV.Net.Mock/MockMarker.cs | 12 + api/AltV.Net.Mock/MockMarkerFactory.cs | 21 + api/AltV.Net.Mock/MockMarkerPool.cs | 17 + api/AltV.Net.Mock/MockObject.cs | 13 + api/AltV.Net.Mock/MockObjectFactory.cs | 21 + api/AltV.Net.Mock/MockObjectPool.cs | 23 + api/AltV.Net.Mock/MockPed.cs | 12 + api/AltV.Net.Mock/MockPedFactory.cs | 21 + api/AltV.Net.Mock/MockPedPool.cs | 23 + api/AltV.Net.Mock/MockPlayer.Events.cs | 24 +- api/AltV.Net.Mock/MockPlayer.cs | 2 +- api/AltV.Net.Mock/MockPlayerFactory.cs | 4 +- api/AltV.Net.Mock/MockPlayerPool.cs | 2 +- api/AltV.Net.Mock/MockPoolManager.cs | 22 + api/AltV.Net.Mock/MockVehicle.cs | 6 +- api/AltV.Net.Mock/MockVehicleFactory.cs | 4 +- api/AltV.Net.Mock/MockVehiclePool.cs | 2 +- api/AltV.Net.Mock/MockVirtualEntity.cs | 72 + api/AltV.Net.Mock/MockVirtualEntityFactory.cs | 22 + api/AltV.Net.Mock/MockVirtualEntityGroup.cs | 17 + .../MockVirtualEntityGroupFactory.cs | 21 + .../MockVirtualEntityGroupPool.cs | 17 + api/AltV.Net.Mock/MockVirtualEntityPool.cs | 17 + api/AltV.Net.Mock/MockVoiceChannel.cs | 8 +- api/AltV.Net.Mock/MockVoiceChannelFactory.cs | 6 +- api/AltV.Net.Mock/MockWorldObject.cs | 2 +- api/AltV.Net.Sdk.Client/Sdk/Sdk.props | 8 + .../AltV.Net.Sdk.Generator.csproj | 10 + api/AltV.Net.Sdk.Generator/IGenerator.cs | 7 + .../ImplicitUsingsGenerator.cs | 34 + api/AltV.Net.Sdk.Generator/Program.cs | 34 + api/AltV.Net.Sdk.Server/Sdk/Sdk.props | 8 + api/AltV.Net.Sdk.Shared/Sdk/Sdk.props | 10 +- .../Elements/Args/MValueBuffer2.cs | 2 +- .../Elements/Args/MValueConst.cs | 6 +- .../Elements/Entities/CheckpointType.cs | 6 +- .../Elements/Entities/IScriptRPCEvent.cs | 10 + .../Elements/Entities/ISharedBaseObject.cs | 55 +- .../Elements/Entities/ISharedBlip.cs | 23 +- .../Elements/Entities/ISharedCheckpoint.cs | 14 +- .../Elements/Entities/ISharedColShape.cs | 6 +- .../Elements/Entities/ISharedEntity.cs | 55 +- .../Elements/Entities/ISharedMarker.cs | 23 + .../Elements/Entities/ISharedObject.cs | 25 +- .../Elements/Entities/ISharedPed.cs | 12 + .../Elements/Entities/ISharedPlayer.cs | 35 +- .../Elements/Entities/ISharedVehicle.cs | 4 +- .../Elements/Entities/ISharedVirtualEntity.cs | 73 + .../Entities/ISharedVirtualEntityGroup.cs | 14 + .../Elements/Entities/ISharedWorldObject.cs | 10 +- .../Elements/Entities/ScriptRpcEvent.cs | 52 + .../Elements/Entities/SharedBaseObject.cs | 121 + api/AltV.Net.Shared/Enums/AmmoType.cs | 40 + api/AltV.Net.Shared/Enums/MarkerType.cs | 50 + api/AltV.Net.Shared/Enums/PedModel.cs | 15 +- api/AltV.Net.Shared/Enums/VehicleModel.cs | 25 +- api/AltV.Net.Shared/Enums/WeaponModel.cs | 3 +- api/AltV.Net.Shared/Events/EventType.cs | 192 +- .../FunctionParser/FunctionCall.cs | 8 + .../FunctionMValueConstParsers.cs | 2 +- .../FunctionParser/FunctionStringParsers.cs | 14 +- .../FunctionParser/ScriptFunction.cs | 26 +- .../IReadOnlyBaseBaseObjectPool.cs | 12 - api/AltV.Net.Shared/ISharedCore.cs | 44 +- api/AltV.Net.Shared/ISharedNativeResource.cs | 13 +- api/AltV.Net.Shared/ISharedPoolManager.cs | 24 + api/AltV.Net.Shared/SharedCore.cs | 97 +- api/AltV.Net.Shared/SharedNativeResource.cs | 21 +- api/AltV.Net.Shared/Utils/MemoryUtils.cs | 2 +- .../AltV.Net.VehicleData.csproj | 2 +- api/AltV.Net.VehicleData/VehicleData.cs | 4 +- api/AltV.Net.sln | 11 +- api/AltV.Net/Alt.Blip.cs | 68 +- api/AltV.Net/Alt.Checkpoint.cs | 9 +- api/AltV.Net/Alt.Events.cs | 136 +- api/AltV.Net/Alt.GetById.cs | 17 + api/AltV.Net/Alt.Marker.cs | 15 + api/AltV.Net/Alt.Object.cs | 15 + api/AltV.Net/Alt.On.cs | 360 +- api/AltV.Net/Alt.Ped.cs | 18 + api/AltV.Net/Alt.RegisterEvents.cs | 147 +- api/AltV.Net/Alt.Resource.cs | 1 + api/AltV.Net/Alt.Vehicle.cs | 12 +- api/AltV.Net/Alt.VirtualEntity.cs | 15 + api/AltV.Net/Alt.cs | 173 +- api/AltV.Net/CSharpResourceImpl.cs | 162 +- api/AltV.Net/CloudIDRequestException.cs | 12 + api/AltV.Net/Core.Events.cs | 1406 +- api/AltV.Net/Core.cs | 1183 +- api/AltV.Net/Data/AmmoFlags.cs | 35 + api/AltV.Net/Data/Benefit.cs | 7 + api/AltV.Net/Data/CloudAuthResult.cs | 8 + api/AltV.Net/Data/Decoration.cs | 25 + api/AltV.Net/Data/EntityType.cs | 44 + api/AltV.Net/Data/Metric.cs | 63 + api/AltV.Net/Data/MetricType.cs | 8 + api/AltV.Net/Data/PlayerSeat.cs | 16 + api/AltV.Net/Data/VehicleModelInfo.cs | 11 +- api/AltV.Net/Data/WeaponDamageResponse.cs | 6 + api/AltV.Net/Data/WeaponModelnfo.cs | 63 + api/AltV.Net/Elements/Entities/BaseObject.cs | 81 +- api/AltV.Net/Elements/Entities/Blip.cs | 236 +- api/AltV.Net/Elements/Entities/Checkpoint.cs | 199 +- api/AltV.Net/Elements/Entities/ColShape.cs | 26 +- .../Elements/Entities/ConnectionInfo.cs | 270 + api/AltV.Net/Elements/Entities/Entity.cs | 256 +- api/AltV.Net/Elements/Entities/IBaseObject.cs | 26 + api/AltV.Net/Elements/Entities/IBlip.cs | 19 +- api/AltV.Net/Elements/Entities/ICheckpoint.cs | 12 + .../Elements/Entities/IConnectionInfo.cs | 34 + api/AltV.Net/Elements/Entities/IEntity.cs | 40 +- api/AltV.Net/Elements/Entities/IMarker.cs | 8 + api/AltV.Net/Elements/Entities/IMetric.cs | 13 + api/AltV.Net/Elements/Entities/IObject.cs | 14 +- api/AltV.Net/Elements/Entities/IPed.cs | 11 + api/AltV.Net/Elements/Entities/IPlayer.cs | 68 +- api/AltV.Net/Elements/Entities/IVehicle.cs | 10 + .../Elements/Entities/IVirtualEntity.cs | 13 + .../Elements/Entities/IVirtualEntityGroup.cs | 8 + .../Elements/Entities/IVoiceChannel.cs | 7 + .../Elements/Entities/IWorldObject.cs | 11 - api/AltV.Net/Elements/Entities/Marker.cs | 259 + api/AltV.Net/Elements/Entities/Object.cs | 128 + api/AltV.Net/Elements/Entities/Ped.cs | 131 + api/AltV.Net/Elements/Entities/Player.cs | 471 +- api/AltV.Net/Elements/Entities/Vehicle.cs | 170 +- .../Elements/Entities/VirtualEntity.cs | 234 + .../Elements/Entities/VirtualEntityGroup.cs | 43 + .../Elements/Entities/VoiceChannel.cs | 90 +- api/AltV.Net/Elements/Entities/WorldObject.cs | 12 +- .../Elements/Factories/BlipFactory.cs | 4 +- .../Elements/Factories/CheckpointFactory.cs | 4 +- .../Elements/Factories/ColShapeFactory.cs | 4 +- .../Factories/ConnectionInfoFactory.cs | 13 + .../Elements/Factories/MarkerFactory.cs | 13 + .../Elements/Factories/ObjectFactory.cs | 13 + api/AltV.Net/Elements/Factories/PedFactory.cs | 12 + .../Elements/Factories/PlayerFactory.cs | 2 +- .../Elements/Factories/VehicleFactory.cs | 2 +- .../Factories/VirtualEntityFactory.cs | 13 + .../Factories/VirtualEntityGroupFactory.cs | 13 + .../Elements/Factories/VoiceChannelFactory.cs | 4 +- .../Elements/Pools/BaseBaseObjectPool.cs | 99 - api/AltV.Net/Elements/Pools/BaseEntityPool.cs | 93 - api/AltV.Net/Elements/Pools/BaseObjectPool.cs | 19 +- api/AltV.Net/Elements/Pools/BlipPool.cs | 9 + api/AltV.Net/Elements/Pools/CheckpointPool.cs | 9 + api/AltV.Net/Elements/Pools/ColShapePool.cs | 9 + .../Elements/Pools/ConnectionInfoPool.cs | 19 + api/AltV.Net/Elements/Pools/EntityPool.cs | 6 +- api/AltV.Net/Elements/Pools/MarkerPool.cs | 20 + api/AltV.Net/Elements/Pools/ObjectPool.cs | 21 + api/AltV.Net/Elements/Pools/PedPool.cs | 19 + api/AltV.Net/Elements/Pools/PlayerPool.cs | 4 +- api/AltV.Net/Elements/Pools/PoolManager.cs | 168 + api/AltV.Net/Elements/Pools/VehiclePool.cs | 2 +- .../Elements/Pools/VirtualEntityGroupPool.cs | 19 + .../Elements/Pools/VirtualEntityPool.cs | 19 + .../Elements/Pools/VoiceChannelPool.cs | 9 + api/AltV.Net/Events/Events.cs | 54 +- api/AltV.Net/IBaseBaseObjectPool.cs | 18 - api/AltV.Net/IBaseEntityPool.cs | 17 - api/AltV.Net/IBaseObjectFactory.cs | 2 +- api/AltV.Net/IBaseObjectPool.cs | 3 +- api/AltV.Net/ICore.cs | 125 +- api/AltV.Net/IEntityFactory.cs | 2 +- api/AltV.Net/IEntityPool.cs | 12 +- api/AltV.Net/INativeResource.cs | 5 - api/AltV.Net/IPoolManager.cs | 32 + api/AltV.Net/IResource.cs | 32 +- api/AltV.Net/ModuleWrapper.cs | 299 +- api/AltV.Net/NativeResource.cs | 8 - api/AltV.Net/Resource.cs | 94 +- api/AltV.Net/ScriptEventType.cs | 9 +- api/AltV.Net/Types/ConnectionInfo.cs | 244 - api/AltV.Net/Types/IConnectionInfo.cs | 20 - api/AltV.Net/Types/IInternalNative.cs | 6 - docs/articles/client.md | 4 - docs/articles/events/player-events/index.md | 1 - .../player-events/player-before-connect.md | 41 - .../player-events/player-entering-vehicle.md | 4 +- .../getting-started/async-entity-factories.md | 99 + docs/articles/getting-started/checkpoints.md | 2 +- .../getting-started/create-resource.md | 4 - .../getting-started/entity-factories.md | 15 +- docs/articles/toc.yml | 2 + docs/images/voice_1.png | Bin 447796 -> 162632 bytes runtime | 2 +- 443 files changed, 32849 insertions(+), 17065 deletions(-) create mode 100644 api/AltV.Net.Async/AltAsync.Marker.cs create mode 100644 api/AltV.Net.Async/AltAsync.Object.cs create mode 100644 api/AltV.Net.Async/AltAsync.Ped.cs create mode 100644 api/AltV.Net.Async/AltAsync.VirtualEntity.cs delete mode 100644 api/AltV.Net.Async/AsyncBaseBaseObjectPool.cs create mode 100644 api/AltV.Net.Async/Elements/Entities/AsyncConnectionInfo.cs create mode 100644 api/AltV.Net.Async/Elements/Entities/AsyncMarker.cs create mode 100644 api/AltV.Net.Async/Elements/Entities/AsyncObject.cs create mode 100644 api/AltV.Net.Async/Elements/Entities/AsyncPed.cs create mode 100644 api/AltV.Net.Async/Elements/Entities/AsyncVirtualEntity.cs create mode 100644 api/AltV.Net.Async/Elements/Entities/AsyncVirtualEntityGroup.cs create mode 100644 api/AltV.Net.Async/Elements/Factories/AsyncConnectionInfoFactory.cs create mode 100644 api/AltV.Net.Async/Elements/Factories/AsyncMarkerFactory.cs create mode 100644 api/AltV.Net.Async/Elements/Factories/AsyncObjectFactory.cs create mode 100644 api/AltV.Net.Async/Elements/Factories/AsyncPedFactory.cs create mode 100644 api/AltV.Net.Async/Elements/Factories/AsyncVirtualEntityFactory.cs create mode 100644 api/AltV.Net.Async/Elements/Factories/AsyncVirtualEntityGroupFactory.cs create mode 100644 api/AltV.Net.Async/Elements/Pools/AsyncMarkerPool.cs create mode 100644 api/AltV.Net.Async/Elements/Pools/AsyncPedPool.cs create mode 100644 api/AltV.Net.Async/Elements/Pools/AsyncVirtualEntityGroupPool.cs create mode 100644 api/AltV.Net.Async/Elements/Pools/AsyncVirtualEntityPool.cs create mode 100644 api/AltV.Net.CApi/Enums/AmmoSpecialType.cs create mode 100644 api/AltV.Net.CApi/Enums/VoiceConnectionState.cs rename api/AltV.Net.CApi/Events/{Events.cs => ClientEvents.cs} (63%) create mode 100644 api/AltV.Net.CApi/Events/ServerEvents.cs delete mode 100644 api/AltV.Net.CApi/Native/AltV.StringUtils.cs create mode 100644 api/AltV.Net.Client/Elements/Data/AudioCategory.cs create mode 100644 api/AltV.Net.Client/Elements/Data/IAudioCategory.cs delete mode 100644 api/AltV.Net.Client/Elements/Data/PermissionState.cs create mode 100644 api/AltV.Net.Client/Elements/Entities/AudioFilter.cs create mode 100644 api/AltV.Net.Client/Elements/Entities/AudioOutput.cs create mode 100644 api/AltV.Net.Client/Elements/Entities/AudioOutputAttached.cs create mode 100644 api/AltV.Net.Client/Elements/Entities/AudioOutputFrontend.cs create mode 100644 api/AltV.Net.Client/Elements/Entities/AudioOutputWorld.cs create mode 100644 api/AltV.Net.Client/Elements/Entities/Font.cs create mode 100644 api/AltV.Net.Client/Elements/Entities/LocalObject.cs create mode 100644 api/AltV.Net.Client/Elements/Entities/LocalPed.cs create mode 100644 api/AltV.Net.Client/Elements/Entities/LocalVehicle.cs create mode 100644 api/AltV.Net.Client/Elements/Entities/Marker.cs create mode 100644 api/AltV.Net.Client/Elements/Entities/Object.cs delete mode 100644 api/AltV.Net.Client/Elements/Entities/ObjectEntity.cs create mode 100644 api/AltV.Net.Client/Elements/Entities/Ped.cs create mode 100644 api/AltV.Net.Client/Elements/Entities/TextLabel.cs create mode 100644 api/AltV.Net.Client/Elements/Entities/VirtualEntity.cs create mode 100644 api/AltV.Net.Client/Elements/Entities/VirtualEntityGroup.cs create mode 100644 api/AltV.Net.Client/Elements/Factories/AudioFilterFactory.cs create mode 100644 api/AltV.Net.Client/Elements/Factories/AudioOutputAttachedFactory.cs create mode 100644 api/AltV.Net.Client/Elements/Factories/AudioOutputFactory.cs create mode 100644 api/AltV.Net.Client/Elements/Factories/AudioOutputFrontendFactory.cs create mode 100644 api/AltV.Net.Client/Elements/Factories/AudioOutputWorldFactory.cs create mode 100644 api/AltV.Net.Client/Elements/Factories/ColShapeFactory.cs create mode 100644 api/AltV.Net.Client/Elements/Factories/FontFactory.cs create mode 100644 api/AltV.Net.Client/Elements/Factories/LocalObjectFactory.cs create mode 100644 api/AltV.Net.Client/Elements/Factories/LocalPedFactory.cs create mode 100644 api/AltV.Net.Client/Elements/Factories/LocalVehicleFactory.cs create mode 100644 api/AltV.Net.Client/Elements/Factories/MarkerFactory.cs create mode 100644 api/AltV.Net.Client/Elements/Factories/PedFactory.cs create mode 100644 api/AltV.Net.Client/Elements/Factories/TextLabelFactory.cs create mode 100644 api/AltV.Net.Client/Elements/Factories/VirtualEntityFactory.cs create mode 100644 api/AltV.Net.Client/Elements/Factories/VirtualEntityGroupFactory.cs create mode 100644 api/AltV.Net.Client/Elements/Interfaces/IAudioFilter.cs create mode 100644 api/AltV.Net.Client/Elements/Interfaces/IAudioOutput.cs create mode 100644 api/AltV.Net.Client/Elements/Interfaces/IAudioOutputAttached.cs create mode 100644 api/AltV.Net.Client/Elements/Interfaces/IAudioOutputFrontend.cs create mode 100644 api/AltV.Net.Client/Elements/Interfaces/IAudioOutputWorld.cs create mode 100644 api/AltV.Net.Client/Elements/Interfaces/IColShape.cs create mode 100644 api/AltV.Net.Client/Elements/Interfaces/IFont.cs create mode 100644 api/AltV.Net.Client/Elements/Interfaces/ILocalObject.cs create mode 100644 api/AltV.Net.Client/Elements/Interfaces/ILocalPed.cs create mode 100644 api/AltV.Net.Client/Elements/Interfaces/ILocalVehicle.cs create mode 100644 api/AltV.Net.Client/Elements/Interfaces/IMarker.cs create mode 100644 api/AltV.Net.Client/Elements/Interfaces/IPed.cs create mode 100644 api/AltV.Net.Client/Elements/Interfaces/ITextLabel.cs create mode 100644 api/AltV.Net.Client/Elements/Interfaces/IVirtualEntity.cs create mode 100644 api/AltV.Net.Client/Elements/Interfaces/IVirtualEntityGroup.cs create mode 100644 api/AltV.Net.Client/Elements/Pools/AudioFilterPool.cs create mode 100644 api/AltV.Net.Client/Elements/Pools/AudioOutputAttachedPool.cs create mode 100644 api/AltV.Net.Client/Elements/Pools/AudioOutputFrontendPool.cs create mode 100644 api/AltV.Net.Client/Elements/Pools/AudioOutputPool.cs create mode 100644 api/AltV.Net.Client/Elements/Pools/AudioOutputWorldPool.cs delete mode 100644 api/AltV.Net.Client/Elements/Pools/BaseBaseObjectPool.cs create mode 100644 api/AltV.Net.Client/Elements/Pools/ColShapePool.cs create mode 100644 api/AltV.Net.Client/Elements/Pools/FontPool.cs delete mode 100644 api/AltV.Net.Client/Elements/Pools/IBaseBaseObjectPool.cs create mode 100644 api/AltV.Net.Client/Elements/Pools/IPoolManager.cs create mode 100644 api/AltV.Net.Client/Elements/Pools/LocalObjectPool.cs create mode 100644 api/AltV.Net.Client/Elements/Pools/LocalPedPool.cs create mode 100644 api/AltV.Net.Client/Elements/Pools/LocalVehiclePool.cs create mode 100644 api/AltV.Net.Client/Elements/Pools/MarkerPool.cs create mode 100644 api/AltV.Net.Client/Elements/Pools/PedPool.cs create mode 100644 api/AltV.Net.Client/Elements/Pools/PoolManager.cs create mode 100644 api/AltV.Net.Client/Elements/Pools/TextLabelPool.cs create mode 100644 api/AltV.Net.Client/Elements/Pools/VirtualEntityGroupPool.cs create mode 100644 api/AltV.Net.Client/Elements/Pools/VirtualEntityPool.cs delete mode 100644 api/AltV.Net.Mock/MockBaseBaseObjectPool.cs delete mode 100644 api/AltV.Net.Mock/MockBaseEntityPool.cs create mode 100644 api/AltV.Net.Mock/MockConnectionInfo.cs create mode 100644 api/AltV.Net.Mock/MockConnectionInfoFactory.cs create mode 100644 api/AltV.Net.Mock/MockConnectionInfoPool.cs create mode 100644 api/AltV.Net.Mock/MockMarker.cs create mode 100644 api/AltV.Net.Mock/MockMarkerFactory.cs create mode 100644 api/AltV.Net.Mock/MockMarkerPool.cs create mode 100644 api/AltV.Net.Mock/MockObject.cs create mode 100644 api/AltV.Net.Mock/MockObjectFactory.cs create mode 100644 api/AltV.Net.Mock/MockObjectPool.cs create mode 100644 api/AltV.Net.Mock/MockPed.cs create mode 100644 api/AltV.Net.Mock/MockPedFactory.cs create mode 100644 api/AltV.Net.Mock/MockPedPool.cs create mode 100644 api/AltV.Net.Mock/MockPoolManager.cs create mode 100644 api/AltV.Net.Mock/MockVirtualEntity.cs create mode 100644 api/AltV.Net.Mock/MockVirtualEntityFactory.cs create mode 100644 api/AltV.Net.Mock/MockVirtualEntityGroup.cs create mode 100644 api/AltV.Net.Mock/MockVirtualEntityGroupFactory.cs create mode 100644 api/AltV.Net.Mock/MockVirtualEntityGroupPool.cs create mode 100644 api/AltV.Net.Mock/MockVirtualEntityPool.cs create mode 100644 api/AltV.Net.Sdk.Generator/AltV.Net.Sdk.Generator.csproj create mode 100644 api/AltV.Net.Sdk.Generator/IGenerator.cs create mode 100644 api/AltV.Net.Sdk.Generator/ImplicitUsingsGenerator.cs create mode 100644 api/AltV.Net.Sdk.Generator/Program.cs create mode 100644 api/AltV.Net.Shared/Elements/Entities/IScriptRPCEvent.cs create mode 100644 api/AltV.Net.Shared/Elements/Entities/ISharedMarker.cs create mode 100644 api/AltV.Net.Shared/Elements/Entities/ISharedPed.cs create mode 100644 api/AltV.Net.Shared/Elements/Entities/ISharedVirtualEntity.cs create mode 100644 api/AltV.Net.Shared/Elements/Entities/ISharedVirtualEntityGroup.cs create mode 100644 api/AltV.Net.Shared/Elements/Entities/ScriptRpcEvent.cs create mode 100644 api/AltV.Net.Shared/Enums/AmmoType.cs create mode 100644 api/AltV.Net.Shared/Enums/MarkerType.cs create mode 100644 api/AltV.Net.Shared/FunctionParser/FunctionCall.cs delete mode 100644 api/AltV.Net.Shared/IReadOnlyBaseBaseObjectPool.cs create mode 100644 api/AltV.Net.Shared/ISharedPoolManager.cs create mode 100644 api/AltV.Net/Alt.GetById.cs create mode 100644 api/AltV.Net/Alt.Marker.cs create mode 100644 api/AltV.Net/Alt.Object.cs create mode 100644 api/AltV.Net/Alt.Ped.cs create mode 100644 api/AltV.Net/Alt.VirtualEntity.cs create mode 100644 api/AltV.Net/CloudIDRequestException.cs create mode 100644 api/AltV.Net/Data/AmmoFlags.cs create mode 100644 api/AltV.Net/Data/Benefit.cs create mode 100644 api/AltV.Net/Data/CloudAuthResult.cs create mode 100644 api/AltV.Net/Data/Decoration.cs create mode 100644 api/AltV.Net/Data/EntityType.cs create mode 100644 api/AltV.Net/Data/Metric.cs create mode 100644 api/AltV.Net/Data/MetricType.cs create mode 100644 api/AltV.Net/Data/PlayerSeat.cs create mode 100644 api/AltV.Net/Data/WeaponDamageResponse.cs create mode 100644 api/AltV.Net/Data/WeaponModelnfo.cs create mode 100644 api/AltV.Net/Elements/Entities/ConnectionInfo.cs create mode 100644 api/AltV.Net/Elements/Entities/IConnectionInfo.cs create mode 100644 api/AltV.Net/Elements/Entities/IMarker.cs create mode 100644 api/AltV.Net/Elements/Entities/IMetric.cs create mode 100644 api/AltV.Net/Elements/Entities/IPed.cs create mode 100644 api/AltV.Net/Elements/Entities/IVirtualEntity.cs create mode 100644 api/AltV.Net/Elements/Entities/IVirtualEntityGroup.cs create mode 100644 api/AltV.Net/Elements/Entities/Marker.cs create mode 100644 api/AltV.Net/Elements/Entities/Object.cs create mode 100644 api/AltV.Net/Elements/Entities/Ped.cs create mode 100644 api/AltV.Net/Elements/Entities/VirtualEntity.cs create mode 100644 api/AltV.Net/Elements/Entities/VirtualEntityGroup.cs create mode 100644 api/AltV.Net/Elements/Factories/ConnectionInfoFactory.cs create mode 100644 api/AltV.Net/Elements/Factories/MarkerFactory.cs create mode 100644 api/AltV.Net/Elements/Factories/ObjectFactory.cs create mode 100644 api/AltV.Net/Elements/Factories/PedFactory.cs create mode 100644 api/AltV.Net/Elements/Factories/VirtualEntityFactory.cs create mode 100644 api/AltV.Net/Elements/Factories/VirtualEntityGroupFactory.cs delete mode 100644 api/AltV.Net/Elements/Pools/BaseBaseObjectPool.cs delete mode 100644 api/AltV.Net/Elements/Pools/BaseEntityPool.cs create mode 100644 api/AltV.Net/Elements/Pools/ConnectionInfoPool.cs create mode 100644 api/AltV.Net/Elements/Pools/MarkerPool.cs create mode 100644 api/AltV.Net/Elements/Pools/ObjectPool.cs create mode 100644 api/AltV.Net/Elements/Pools/PedPool.cs create mode 100644 api/AltV.Net/Elements/Pools/PoolManager.cs create mode 100644 api/AltV.Net/Elements/Pools/VirtualEntityGroupPool.cs create mode 100644 api/AltV.Net/Elements/Pools/VirtualEntityPool.cs delete mode 100644 api/AltV.Net/IBaseBaseObjectPool.cs delete mode 100644 api/AltV.Net/IBaseEntityPool.cs create mode 100644 api/AltV.Net/IPoolManager.cs delete mode 100644 api/AltV.Net/Types/ConnectionInfo.cs delete mode 100644 api/AltV.Net/Types/IConnectionInfo.cs delete mode 100644 api/AltV.Net/Types/IInternalNative.cs delete mode 100644 docs/articles/events/player-events/player-before-connect.md create mode 100644 docs/articles/getting-started/async-entity-factories.md diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index eec672846..dd8d23cf3 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -24,7 +24,7 @@ jobs: if: "(contains(github.event.ref, '/tags/') && github.event.created) || contains(github.event.head_commit.message, 'Update documentation')" steps: - name: Dispatch event to altv-docs repo - uses: peter-evans/repository-dispatch@v2.0.0 + uses: peter-evans/repository-dispatch@v2.1.2 with: token: ${{ secrets.PAT_TOKEN }} repository: altmp/altv-docs diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index ee4afdf0a..ab0ee5e28 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -12,7 +12,7 @@ jobs: runs-on: windows-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup .NET Core uses: actions/setup-dotnet@v3 with: @@ -25,7 +25,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup .NET Core uses: actions/setup-dotnet@v3 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 034ce03b2..5d5912ee6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,13 +2,13 @@ on: push: tags: - '*.*.*' - - '*.*.*-*' + - '*.*.*-*' jobs: fetch-nethost-linux: runs-on: ubuntu-22.04 steps: - name: Check out repository code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup .NET Core shell: pwsh run: | @@ -22,7 +22,7 @@ jobs: runs-on: windows-2022 steps: - name: Check out repository code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup .NET Core shell: pwsh run: | @@ -34,21 +34,22 @@ jobs: path: ${{ runner.temp }}\libnethost.tar build-api: runs-on: ubuntu-latest + needs: [fetch-nethost-linux, fetch-nethost-windows] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: recursive - name: Setup .NET Core - uses: actions/setup-dotnet@v2 + uses: actions/setup-dotnet@v3 with: dotnet-version: 6.0.x - id: build_info run: | branch=$(git ls-remote --heads origin | grep $GITHUB_SHA | sed "s/.*\///") - branch=$([[ $branch == 'release' ]] && echo "release" || [[ $branch == 'rc' ]] && echo "rc" || [[ $branch == 'dev' ]] && echo "dev" || echo "$branch") + branch=$(([[ $branch == 'release' ]] && echo "release") || ([[ $branch == 'rc' ]] && echo "rc") || ([[ $branch == 'dev' ]] && echo "dev") || echo "$branch") version=${GITHUB_REF##*/} - echo "##[set-output name=branch;]$branch" - echo "##[set-output name=version;]$version" + echo "branch=$branch" >> $GITHUB_OUTPUT + echo "version=$version" >> $GITHUB_OUTPUT - name: Replace package versions run: | echo "$(echo "`cat ./api/AltV.Net/AltV.Net.csproj`" | perl -pe 's/(.*)<\/PackageVersion>/'${GITHUB_REF##*/}'<\/PackageVersion>/g')" > ./api/AltV.Net/AltV.Net.csproj @@ -84,6 +85,9 @@ jobs: echo "$(echo "`cat ./templates/templates/altv-project-client/.template.config/template.json`" | perl -pe 's/0.0.0/'${GITHUB_REF##*/}'/g')" > ./templates/templates/altv-project-client/.template.config/template.json echo "$(echo "`cat ./templates/templates/altv-project-server/.template.config/template.json`" | perl -pe 's/0.0.0/'${GITHUB_REF##*/}'/g')" > ./templates/templates/altv-project-server/.template.config/template.json echo "$(echo "`cat ./templates/templates/altv-project-shared/.template.config/template.json`" | perl -pe 's/0.0.0/'${GITHUB_REF##*/}'/g')" > ./templates/templates/altv-project-shared/.template.config/template.json + - name: Execute CodeGen + working-directory: ./api/AltV.Net.Sdk.Generator + run: dotnet run - name: Build working-directory: ./api run: | @@ -123,137 +127,38 @@ jobs: cp ./api/AltV.Net.Async/bin/Debug/*/publish/AltV.Net.Async.dll ./modules/api-debug cp ./api/AltV.Net.Async/bin/Debug/*/publish/AltV.Net.Async.pdb ./modules/api-debug echo '${{ steps.build_info.outputs.branch }}/${{ steps.build_info.outputs.version }}' > ./modules/build_info.txt - - uses: alirezanet/publish-nuget@v3.0.3 - with: - PROJECT_FILE_PATH: ./api/AltV.Net/AltV.Net.csproj - VERSION_REGEX: (.*)<\/PackageVersion> - NUGET_KEY: ${{secrets.NUGET_API_KEY}} - INCLUDE_SYMBOLS: true - TAG_COMMIT: false - NO_BUILD: true - - uses: alirezanet/publish-nuget@v3.0.3 - with: - PROJECT_FILE_PATH: ./api/AltV.Net.Async/AltV.Net.Async.csproj - VERSION_REGEX: (.*)<\/PackageVersion> - NUGET_KEY: ${{secrets.NUGET_API_KEY}} - INCLUDE_SYMBOLS: true - TAG_COMMIT: false - NO_BUILD: true - - uses: alirezanet/publish-nuget@v3.0.3 - with: - PROJECT_FILE_PATH: ./api/AltV.Net.Interactions/AltV.Net.Interactions.csproj - VERSION_REGEX: (.*)<\/PackageVersion> - NUGET_KEY: ${{secrets.NUGET_API_KEY}} - INCLUDE_SYMBOLS: true - TAG_COMMIT: false - NO_BUILD: true - - uses: alirezanet/publish-nuget@v3.0.3 - with: - PROJECT_FILE_PATH: ./api/AltV.Net.Async.CodeGen/AltV.Net.Async.CodeGen.csproj - VERSION_REGEX: (.*)<\/PackageVersion> - NUGET_KEY: ${{secrets.NUGET_API_KEY}} - INCLUDE_SYMBOLS: true - TAG_COMMIT: false - NO_BUILD: true - - uses: alirezanet/publish-nuget@v3.0.3 - with: - PROJECT_FILE_PATH: ./api/AltV.Net.Resources.Chat.Api/AltV.Net.Resources.Chat.Api.csproj - VERSION_REGEX: (.*)<\/PackageVersion> - NUGET_KEY: ${{secrets.NUGET_API_KEY}} - INCLUDE_SYMBOLS: true - TAG_COMMIT: false - NO_BUILD: true - - uses: alirezanet/publish-nuget@v3.0.3 - with: - PROJECT_FILE_PATH: ./api/AltV.Net.EntitySync.ServerEvent/AltV.Net.EntitySync.ServerEvent.csproj - VERSION_REGEX: (.*)<\/PackageVersion> - NUGET_KEY: ${{secrets.NUGET_API_KEY}} - INCLUDE_SYMBOLS: true - TAG_COMMIT: false - NO_BUILD: true - - uses: alirezanet/publish-nuget@v3.0.3 - with: - PROJECT_FILE_PATH: ./api/AltV.Net.Client/AltV.Net.Client.csproj - VERSION_REGEX: (.*)<\/PackageVersion> - NUGET_KEY: ${{secrets.NUGET_API_KEY}} - INCLUDE_SYMBOLS: true - TAG_COMMIT: false - NO_BUILD: true - - uses: alirezanet/publish-nuget@v3.0.3 - with: - PROJECT_FILE_PATH: ./api/AltV.Net.Client.Async/AltV.Net.Client.Async.csproj - VERSION_REGEX: (.*)<\/PackageVersion> - NUGET_KEY: ${{secrets.NUGET_API_KEY}} - INCLUDE_SYMBOLS: true - TAG_COMMIT: false - NO_BUILD: true - - uses: alirezanet/publish-nuget@v3.0.3 - with: - PROJECT_FILE_PATH: ./api/AltV.Net.ColShape/AltV.Net.ColShape.csproj - VERSION_REGEX: (.*)<\/PackageVersion> - NUGET_KEY: ${{secrets.NUGET_API_KEY}} - INCLUDE_SYMBOLS: true - TAG_COMMIT: false - NO_BUILD: true - - uses: alirezanet/publish-nuget@v3.0.3 - with: - PROJECT_FILE_PATH: ./api/AltV.Net.Shared/AltV.Net.Shared.csproj - VERSION_REGEX: (.*)<\/PackageVersion> - NUGET_KEY: ${{secrets.NUGET_API_KEY}} - INCLUDE_SYMBOLS: true - TAG_COMMIT: false - NO_BUILD: true - - uses: alirezanet/publish-nuget@v3.0.3 - with: - PROJECT_FILE_PATH: ./api/AltV.Net.CApi/AltV.Net.CApi.csproj - VERSION_REGEX: (.*)<\/PackageVersion> - NUGET_KEY: ${{secrets.NUGET_API_KEY}} - INCLUDE_SYMBOLS: true - TAG_COMMIT: false - NO_BUILD: true - - uses: alirezanet/publish-nuget@v3.0.3 - with: - PROJECT_FILE_PATH: ./api/AltV.Net.Sdk.Client/AltV.Net.Sdk.Client.csproj - VERSION_REGEX: (.*)<\/PackageVersion> - NUGET_KEY: ${{secrets.NUGET_API_KEY}} - INCLUDE_SYMBOLS: true - TAG_COMMIT: false - NO_BUILD: true - - uses: alirezanet/publish-nuget@v3.0.3 - with: - PROJECT_FILE_PATH: ./api/AltV.Net.Sdk.Server/AltV.Net.Sdk.Server.csproj - VERSION_REGEX: (.*)<\/PackageVersion> - NUGET_KEY: ${{secrets.NUGET_API_KEY}} - INCLUDE_SYMBOLS: true - TAG_COMMIT: false - NO_BUILD: true - - uses: alirezanet/publish-nuget@v3.0.3 - with: - PROJECT_FILE_PATH: ./api/AltV.Net.Sdk.Shared/AltV.Net.Sdk.Shared.csproj - VERSION_REGEX: (.*)<\/PackageVersion> - NUGET_KEY: ${{secrets.NUGET_API_KEY}} - INCLUDE_SYMBOLS: true - TAG_COMMIT: false - NO_BUILD: true - - uses: alirezanet/publish-nuget@v3.0.3 - with: - PROJECT_FILE_PATH: ./templates/AltV.Net.Templates.csproj - VERSION_REGEX: (.*)<\/PackageVersion> - NUGET_KEY: ${{secrets.NUGET_API_KEY}} - INCLUDE_SYMBOLS: true - TAG_COMMIT: false - NO_BUILD: true - - name: Pack files + - run: | + cd ./runtime + echo "$(git rev-parse --short HEAD)" > ../modules/runtime_version.txt + cd ./cpp-sdk + echo "$(git rev-parse --short HEAD)" > ../../modules/sdk_version.txt + - name: Pack files module + run: | + tar -cvf ./modules.tar modules + - name: Pack files api run: | - tar -cvf ./api.tar modules + tar -cvf ./api.tar api + - name: Pack files templates + run: | + tar -cvf ./templates.tar templates + - name: Upload artifacts + uses: actions/upload-artifact@v3 + with: + name: csharp-module-modules + path: ./modules.tar - name: Upload artifacts uses: actions/upload-artifact@v3 with: name: csharp-module-api path: ./api.tar + - name: Upload artifacts + uses: actions/upload-artifact@v3 + with: + name: csharp-module-templates + path: ./templates.tar build-server: runs-on: ${{ matrix.config.os }} - needs: [build-api, fetch-nethost-linux, fetch-nethost-windows] + needs: [fetch-nethost-linux, fetch-nethost-windows] strategy: matrix: config: @@ -282,7 +187,7 @@ jobs: # nethost: nethost-linux-arm, # } steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: recursive - uses: actions/download-artifact@v3 @@ -328,18 +233,18 @@ jobs: run: | filename=$(echo "${{ matrix.config.name }}") tar -cvf ./$filename.tar modules/$filename/modules - echo "::set-output name=art_name::$filename" + echo "art_name=$filename" >> $GITHUB_OUTPUT - uses: actions/upload-artifact@v3 with: name: csharp-module-${{ matrix.config.name }} path: ./${{ steps.create_archive.outputs.art_name }}.tar deploy-cdn: runs-on: ubuntu-latest - needs: build-server + needs: [build-api, build-server] steps: - uses: actions/download-artifact@v3 with: - name: csharp-module-api + name: csharp-module-modules path: ./ - uses: actions/download-artifact@v3 with: @@ -350,37 +255,205 @@ jobs: name: csharp-module-windows path: ./ - run: | - tar -xvf ./api.tar + tar -xvf ./modules.tar tar -xvf ./linux.tar tar -xvf ./windows.tar - id: build_info run: | build_info=$(cat ./modules/build_info.txt) - echo "##[set-output name=branch;]${build_info%%/*}" - echo "##[set-output name=version;]${build_info##*/}" + echo "branch=${build_info%%/*}" >> $GITHUB_OUTPUT + echo "version=${build_info##*/}" >> $GITHUB_OUTPUT + echo "sdk_commit=$(cat ./modules/sdk_version.txt)" >> $GITHUB_OUTPUT - run: npm i @altmp/upload-tool@latest - - run: npx alt-upload linux coreclr-module/$BRANCH/x64_linux $VERSION + - run: npx alt-upload linux coreclr-module/$BRANCH/x64_linux $VERSION $SDK_VERSION working-directory: ./modules env: - CI_UPLOAD_URL: ${{ secrets.CI_UPLOAD_URL }} - CI_DEPLOY_TOKEN: ${{ secrets.CI_DEPLOY_TOKEN }} + AWS_KEY_ID: ${{ secrets.AWS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_BUCKET: ${{ secrets.AWS_BUCKET }} + AWS_ENDPOINT: ${{ secrets.AWS_ENDPOINT }} + CF_CACHE_PURGE_TOKEN: ${{ secrets.CF_CACHE_PURGE_TOKEN }} + CF_CACHE_ZONE_ID: ${{ secrets.CF_CACHE_ZONE_ID }} + CF_CACHE_PURGE_URL: ${{ secrets.CF_CACHE_PURGE_URL }} BRANCH: ${{ steps.build_info.outputs.branch }} VERSION: ${{ steps.build_info.outputs.version }} - - run: npx alt-upload windows coreclr-module/$BRANCH/x64_win32 $VERSION + SDK_VERSION: ${{ steps.build_info.outputs.sdk_commit }} + - run: npx alt-upload windows coreclr-module/$BRANCH/x64_win32 $VERSION $SDK_VERSION working-directory: ./modules env: - CI_UPLOAD_URL: ${{ secrets.CI_UPLOAD_URL }} - CI_DEPLOY_TOKEN: ${{ secrets.CI_DEPLOY_TOKEN }} + AWS_KEY_ID: ${{ secrets.AWS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_BUCKET: ${{ secrets.AWS_BUCKET }} + AWS_ENDPOINT: ${{ secrets.AWS_ENDPOINT }} + CF_CACHE_PURGE_TOKEN: ${{ secrets.CF_CACHE_PURGE_TOKEN }} + CF_CACHE_ZONE_ID: ${{ secrets.CF_CACHE_ZONE_ID }} + CF_CACHE_PURGE_URL: ${{ secrets.CF_CACHE_PURGE_URL }} BRANCH: ${{ steps.build_info.outputs.branch }} VERSION: ${{ steps.build_info.outputs.version }} - create-release: + SDK_VERSION: ${{ steps.build_info.outputs.sdk_commit }} + deploy-nuget: runs-on: ubuntu-latest - needs: deploy-cdn + needs: [build-api, build-server] steps: - uses: actions/download-artifact@v3 with: name: csharp-module-api path: ./ + - uses: actions/download-artifact@v3 + with: + name: csharp-module-templates + path: ./ + - run: | + tar -xvf ./api.tar + tar -xvf ./templates.tar + - uses: alirezanet/publish-nuget@v3.1.0 + with: + PROJECT_FILE_PATH: ./api/AltV.Net/AltV.Net.csproj + VERSION_REGEX: (.*)<\/PackageVersion> + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + INCLUDE_SYMBOLS: true + TAG_COMMIT: false + NO_BUILD: true + - uses: alirezanet/publish-nuget@v3.1.0 + with: + PROJECT_FILE_PATH: ./api/AltV.Net.Async/AltV.Net.Async.csproj + VERSION_REGEX: (.*)<\/PackageVersion> + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + INCLUDE_SYMBOLS: true + TAG_COMMIT: false + NO_BUILD: true + - uses: alirezanet/publish-nuget@v3.1.0 + with: + PROJECT_FILE_PATH: ./api/AltV.Net.Interactions/AltV.Net.Interactions.csproj + VERSION_REGEX: (.*)<\/PackageVersion> + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + INCLUDE_SYMBOLS: true + TAG_COMMIT: false + NO_BUILD: true + - uses: alirezanet/publish-nuget@v3.1.0 + with: + PROJECT_FILE_PATH: ./api/AltV.Net.Async.CodeGen/AltV.Net.Async.CodeGen.csproj + VERSION_REGEX: (.*)<\/PackageVersion> + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + INCLUDE_SYMBOLS: true + TAG_COMMIT: false + NO_BUILD: true + - uses: alirezanet/publish-nuget@v3.1.0 + with: + PROJECT_FILE_PATH: ./api/AltV.Net.Resources.Chat.Api/AltV.Net.Resources.Chat.Api.csproj + VERSION_REGEX: (.*)<\/PackageVersion> + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + INCLUDE_SYMBOLS: true + TAG_COMMIT: false + NO_BUILD: true + - uses: alirezanet/publish-nuget@v3.1.0 + with: + PROJECT_FILE_PATH: ./api/AltV.Net.EntitySync.ServerEvent/AltV.Net.EntitySync.ServerEvent.csproj + VERSION_REGEX: (.*)<\/PackageVersion> + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + INCLUDE_SYMBOLS: true + TAG_COMMIT: false + NO_BUILD: true + - uses: alirezanet/publish-nuget@v3.1.0 + with: + PROJECT_FILE_PATH: ./api/AltV.Net.Client/AltV.Net.Client.csproj + VERSION_REGEX: (.*)<\/PackageVersion> + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + INCLUDE_SYMBOLS: true + TAG_COMMIT: false + NO_BUILD: true + - uses: alirezanet/publish-nuget@v3.1.0 + with: + PROJECT_FILE_PATH: ./api/AltV.Net.Client.Async/AltV.Net.Client.Async.csproj + VERSION_REGEX: (.*)<\/PackageVersion> + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + INCLUDE_SYMBOLS: true + TAG_COMMIT: false + NO_BUILD: true + - uses: alirezanet/publish-nuget@v3.1.0 + with: + PROJECT_FILE_PATH: ./api/AltV.Net.ColShape/AltV.Net.ColShape.csproj + VERSION_REGEX: (.*)<\/PackageVersion> + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + INCLUDE_SYMBOLS: true + TAG_COMMIT: false + NO_BUILD: true + - uses: alirezanet/publish-nuget@v3.1.0 + with: + PROJECT_FILE_PATH: ./api/AltV.Net.Shared/AltV.Net.Shared.csproj + VERSION_REGEX: (.*)<\/PackageVersion> + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + INCLUDE_SYMBOLS: true + TAG_COMMIT: false + NO_BUILD: true + - uses: alirezanet/publish-nuget@v3.1.0 + with: + PROJECT_FILE_PATH: ./api/AltV.Net.CApi/AltV.Net.CApi.csproj + VERSION_REGEX: (.*)<\/PackageVersion> + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + INCLUDE_SYMBOLS: true + TAG_COMMIT: false + NO_BUILD: true + - uses: alirezanet/publish-nuget@v3.1.0 + with: + PROJECT_FILE_PATH: ./api/AltV.Net.Sdk.Client/AltV.Net.Sdk.Client.csproj + VERSION_REGEX: (.*)<\/PackageVersion> + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + INCLUDE_SYMBOLS: true + TAG_COMMIT: false + NO_BUILD: true + - uses: alirezanet/publish-nuget@v3.1.0 + with: + PROJECT_FILE_PATH: ./api/AltV.Net.Sdk.Server/AltV.Net.Sdk.Server.csproj + VERSION_REGEX: (.*)<\/PackageVersion> + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + INCLUDE_SYMBOLS: true + TAG_COMMIT: false + NO_BUILD: true + - uses: alirezanet/publish-nuget@v3.1.0 + with: + PROJECT_FILE_PATH: ./api/AltV.Net.Sdk.Shared/AltV.Net.Sdk.Shared.csproj + VERSION_REGEX: (.*)<\/PackageVersion> + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + INCLUDE_SYMBOLS: true + TAG_COMMIT: false + NO_BUILD: true + - uses: alirezanet/publish-nuget@v3.1.0 + with: + PROJECT_FILE_PATH: ./templates/AltV.Net.Templates.csproj + VERSION_REGEX: (.*)<\/PackageVersion> + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + INCLUDE_SYMBOLS: true + TAG_COMMIT: false + NO_BUILD: true + build-docker: + name: Trigger Docker image build + runs-on: ubuntu-latest + needs: [deploy-cdn] + steps: + - name: Get Token + id: get_workflow_token + uses: peter-murray/workflow-application-token-action@v2 + with: + application_id: ${{ secrets.CI_APP_ID }} + application_private_key: ${{ secrets.CI_APP_PRIVATE_KEY }} + permissions: "actions:write" + organization: altmp + - name: Trigger Docker build + uses: benc-uk/workflow-dispatch@v1 + with: + workflow: build.yml + ref: main + repo: altmp/altv-docker + token: ${{ steps.get_workflow_token.outputs.token }} + create-release: + runs-on: ubuntu-latest + needs: [deploy-cdn, deploy-nuget] + steps: + - uses: actions/download-artifact@v3 + with: + name: csharp-module-modules + path: ./ - uses: actions/download-artifact@v3 with: name: csharp-module-linux @@ -390,71 +463,50 @@ jobs: name: csharp-module-windows path: ./ - run: | - tar -xvf ./api.tar + tar -xvf ./modules.tar tar -xvf ./linux.tar tar -xvf ./windows.tar - id: build_info run: | build_info=$(cat ./modules/build_info.txt) - echo "##[set-output name=branch;]${build_info%%/*}" - echo "##[set-output name=version;]${build_info##*/}" + echo "branch=${build_info%%/*}" >> $GITHUB_OUTPUT + echo "version=${build_info##*/}" >> $GITHUB_OUTPUT + echo "runtime_commit=$(cat ./modules/runtime_version.txt)" >> $GITHUB_OUTPUT + echo "sdk_commit=$(cat ./modules/sdk_version.txt)" >> $GITHUB_OUTPUT - run: | (cd ./modules/linux && zip -r ../../csharp-module-linux.zip *) (cd ./modules/windows && zip -r ../../csharp-module-win.zip *) - (cd ./modules/api-release && zip -r ../../csharp-module-api-release.zip *) - (cd ./modules/api-debug && zip -r ../../csharp-module-api-debug.zip *) + (cd ./modules/api-release && zip -r ../../csharp-module-modules-release.zip *) + (cd ./modules/api-debug && zip -r ../../csharp-module-modules-debug.zip *) - id: create_release - uses: actions/create-release@v1 + uses: softprops/action-gh-release@v0.1.15 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ steps.build_info.outputs.version }} - release_name: Version ${{ steps.build_info.outputs.version }} - draft: true + name: Version ${{ steps.build_info.outputs.version }} prerelease: ${{ steps.build_info.outputs.branch != 'release' }} - - id: upload-release-asset - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./csharp-module-linux.zip - asset_name: csharp-module-linux.zip - asset_content_type: application/zip - - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./csharp-module-win.zip - asset_name: csharp-module-win.zip - asset_content_type: application/zip - - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./csharp-module-api-release.zip - asset_name: csharp-module-api-release.zip - asset_content_type: application/zip - - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./csharp-module-api-debug.zip - asset_name: csharp-module-api-debug.zip - asset_content_type: application/zip + generate_release_notes: true + body: | + Runtime version: [${{ steps.build_info.outputs.runtime_commit }}](https://github.com/altmp/coreclr-module-runtime/commit/${{ steps.build_info.outputs.runtime_commit }}) + SDK version: [${{ steps.build_info.outputs.sdk_commit }}](https://github.com/altmp/cpp-sdk/commit/${{ steps.build_info.outputs.sdk_commit }}) + files: | + ./csharp-module-linux.zip + ./csharp-module-win.zip + ./csharp-module-modules-release.zip + ./csharp-module-modules-debug.zip cleanup: runs-on: ubuntu-latest needs: create-release if: ${{ always() }} steps: - - uses: geekyeggo/delete-artifact@v1 + - uses: geekyeggo/delete-artifact@v2 with: name: | nethost-linux nethost-windows csharp-module-linux csharp-module-windows + csharp-module-modules csharp-module-api + csharp-module-templates diff --git a/api/AltV.Net.Async.CodeGen/AltV.Net.Async.CodeGen.csproj b/api/AltV.Net.Async.CodeGen/AltV.Net.Async.CodeGen.csproj index 655d37618..b46b90929 100644 --- a/api/AltV.Net.Async.CodeGen/AltV.Net.Async.CodeGen.csproj +++ b/api/AltV.Net.Async.CodeGen/AltV.Net.Async.CodeGen.csproj @@ -34,12 +34,12 @@ \ - + - + - + CreateBlip(IPlayer player, byte type, Position pos) => - AltVAsync.Schedule(() => Alt.CreateBlip(player, type, pos)); + public static Task CreateBlip(bool global, byte type, Position pos, IPlayer[] targets) => + AltVAsync.Schedule(() => Alt.CreateBlip(global, type, pos, targets)); - public static Task CreateBlip(IPlayer player, byte type, IEntity entityAttach) => - AltVAsync.Schedule(() => Alt.CreateBlip(player, type, entityAttach)); + public static Task CreateBlip(bool global, byte type, IEntity entityAttach, IPlayer[] targets) => + AltVAsync.Schedule(() => Alt.CreateBlip(global, type, entityAttach, targets)); - public static Task CreateBlip(IPlayer player, BlipType type, Position pos) => - AltVAsync.Schedule(() => Alt.CreateBlip(player, type, pos)); + public static Task CreateBlip(bool global, BlipType type, Position pos, IPlayer[] targets) => + AltVAsync.Schedule(() => Alt.CreateBlip(global, type, pos, targets)); - public static Task CreateBlip(IPlayer player, BlipType type, IEntity entityAttach) => - AltVAsync.Schedule(() => Alt.CreateBlip(player, type, entityAttach)); - - public static Task CreateBlip(byte type, Position pos) => - AltVAsync.Schedule(() => Alt.CreateBlip(type, pos)); - - public static Task CreateBlip(byte type, IEntity entityAttach) => - AltVAsync.Schedule(() => Alt.CreateBlip(type, entityAttach)); - - public static Task CreateBlip(BlipType type, Position pos) => - AltVAsync.Schedule(() => Alt.CreateBlip(type, pos)); - - public static Task CreateBlip(BlipType type, IEntity entityAttach) => - AltVAsync.Schedule(() => Alt.CreateBlip(type, entityAttach)); + public static Task CreateBlip(bool global, BlipType type, IEntity entityAttach, IPlayer[] targets) => + AltVAsync.Schedule(() => Alt.CreateBlip(global, type, entityAttach, targets)); [Obsolete("Use async entities instead")] public static Task IsGlobalAsync(this IBlip blip) => diff --git a/api/AltV.Net.Async/AltAsync.Checkpoint.cs b/api/AltV.Net.Async/AltAsync.Checkpoint.cs index 79f86814c..e3fa2ba86 100644 --- a/api/AltV.Net.Async/AltAsync.Checkpoint.cs +++ b/api/AltV.Net.Async/AltAsync.Checkpoint.cs @@ -9,13 +9,13 @@ public static partial class AltAsync { public static Task CreateCheckpoint(byte type, Position pos, float radius, float height, - Rgba color) => - AltVAsync.Schedule(() => Alt.CreateCheckpoint(type, pos, radius, height, color)); + Rgba color, uint streamingDistance) => + AltVAsync.Schedule(() => Alt.CreateCheckpoint(type, pos, radius, height, color, streamingDistance)); public static Task CreateCheckpoint(CheckpointType type, Position pos, float radius, float height, - Rgba color) => - AltVAsync.Schedule(() => Alt.CreateCheckpoint(type, pos, radius, height, color)); + Rgba color, uint streamingDistance) => + AltVAsync.Schedule(() => Alt.CreateCheckpoint(type, pos, radius, height, color, streamingDistance)); [Obsolete("Use async entities instead")] public static Task GetCheckpointTypeAsync(this ICheckpoint checkpoint) => diff --git a/api/AltV.Net.Async/AltAsync.Marker.cs b/api/AltV.Net.Async/AltAsync.Marker.cs new file mode 100644 index 000000000..a636a19ae --- /dev/null +++ b/api/AltV.Net.Async/AltAsync.Marker.cs @@ -0,0 +1,16 @@ +using System.Threading.Tasks; +using AltV.Net.Data; +using AltV.Net.Elements.Entities; +using AltV.Net.Enums; +using AltV.Net.Shared.Enums; + +namespace AltV.Net.Async; + +public partial class AltAsync +{ + public static Task CreateMarker(MarkerType type, Position pos, Rgba color) => + AltVAsync.Schedule(() => Alt.CreateMarker(null, type, pos, color)); + + public static Task CreateMarker(IPlayer player, MarkerType type, Position pos, Rgba color) => + AltVAsync.Schedule(() => Alt.CreateMarker(player, type, pos, color)); +} \ No newline at end of file diff --git a/api/AltV.Net.Async/AltAsync.Object.cs b/api/AltV.Net.Async/AltAsync.Object.cs new file mode 100644 index 000000000..f8df730c6 --- /dev/null +++ b/api/AltV.Net.Async/AltAsync.Object.cs @@ -0,0 +1,15 @@ +using System.Threading.Tasks; +using AltV.Net.Data; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Async +{ + public partial class AltAsync + { + public static Task CreateObject(uint model, Position position, Rotation rotation, byte alpha = 255, byte textureVariation = 0, ushort lodDistance = 100) => + AltVAsync.Schedule(() => Alt.CreateObject(model, position, rotation, alpha, textureVariation, lodDistance)); + + public static Task CreateObject(string model, Position position, Rotation rotation, byte alpha = 255, byte textureVariation = 0, ushort lodDistance = 100) => + AltVAsync.Schedule(() => Alt.CreateObject(Alt.Hash(model), position, rotation, alpha, textureVariation, lodDistance)); + } +} \ No newline at end of file diff --git a/api/AltV.Net.Async/AltAsync.Ped.cs b/api/AltV.Net.Async/AltAsync.Ped.cs new file mode 100644 index 000000000..6bd4ea848 --- /dev/null +++ b/api/AltV.Net.Async/AltAsync.Ped.cs @@ -0,0 +1,20 @@ +using AltV.Net.Data; +using AltV.Net.Elements.Entities; +using AltV.Net.Enums; +using System.Threading.Tasks; + +namespace AltV.Net.Async +{ + public static partial class AltAsync + { + public static Task CreatePed(uint model, Position pos, Rotation rot, uint streamingDistance = 0) => AltVAsync.Schedule(() => + Alt.Core.CreatePed(model, pos, rot, streamingDistance)); + + public static Task CreatePed(PedModel model, Position pos, Rotation rot, uint streamingDistance = 0) => + CreatePed((uint)model, pos, rot, streamingDistance); + + public static Task CreatePed(string model, Position pos, Rotation rot, uint streamingDistance = 0) => + CreatePed(Alt.Hash(model), pos, rot, streamingDistance); + + } +} diff --git a/api/AltV.Net.Async/AltAsync.Player.cs b/api/AltV.Net.Async/AltAsync.Player.cs index a64e33965..41cdaf93d 100644 --- a/api/AltV.Net.Async/AltAsync.Player.cs +++ b/api/AltV.Net.Async/AltAsync.Player.cs @@ -6,6 +6,7 @@ using AltV.Net.Elements.Args; using AltV.Net.Enums; using AltV.Net.Native; +using AltV.Net.Shared.Utils; namespace AltV.Net.Async { @@ -88,7 +89,7 @@ public static async Task GetVehicleAsync(this IPlayer player) { player.CheckIfEntityExists(); var vehiclePtr = Alt.Core.Library.Shared.Player_GetVehicle(player.PlayerNativePointer); - return Alt.Core.VehiclePool.Get(vehiclePtr); + return Alt.Core.PoolManager.Vehicle.Get(vehiclePtr); } }); } @@ -131,8 +132,8 @@ public static Task RemoveWeaponAsync(this IPlayer player, uint weapon) => AltVAsync.Schedule(() => player.RemoveWeapon(weapon)); [Obsolete("Use async entities instead")] - public static Task RemoveAllWeaponsAsync(this IPlayer player) => - AltVAsync.Schedule(player.RemoveAllWeapons); + public static Task RemoveAllWeaponsAsync(this IPlayer player, bool removeAllAmmo) => + AltVAsync.Schedule(() => player.RemoveAllWeapons(removeAllAmmo)); [Obsolete("Use async entities instead")] public static Task SetMaxHealthAsync(this IPlayer player, ushort maxhealth) => @@ -149,7 +150,7 @@ public static Task SetCurrentWeaponAsync(this IPlayer player, uint weapon) => [Obsolete("Use async entities instead")] public static async Task KickAsync(this IPlayer player, string reason) { - var reasonPtr = AltNative.StringUtils.StringToHGlobalUtf8(reason); + var reasonPtr = MemoryUtils.StringToHGlobalUtf8(reason); await AltVAsync.Schedule(() => { unsafe @@ -167,7 +168,7 @@ public static async Task EmitAsync(this IPlayer player, string eventName, params var size = args.Length; var mValues = new MValueConst[size]; Alt.Core.CreateMValues(mValues, args); - var eventNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(eventName); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); await AltVAsync.Schedule(() => { player.CheckIfEntityExists(); @@ -249,10 +250,10 @@ public static Task AddWeaponComponentAsync(this IPlayer player, WeaponModel weap AltVAsync.Schedule(() => player.AddWeaponComponent(weaponModel, weaponComponent)); [Obsolete("Use async entities instead")] - public static Task AttachToEntityAsync(this IPlayer player, IEntity entity, short otherBone, short ownBone, + public static Task AttachToEntityAsync(this IPlayer player, IEntity entity, ushort otherBoneId, ushort ownBoneId, Position position, Rotation rotation, bool collision, bool noFixedRotation) => AltVAsync.Schedule(() => - player.AttachToEntity(entity, otherBone, ownBone, position, rotation, collision, noFixedRotation)); + player.AttachToEntity(entity, otherBoneId, ownBoneId, position, rotation, collision, noFixedRotation)); [Obsolete("Use async entities instead")] public static Task ClearBloodDamageAsync(this IPlayer player) => diff --git a/api/AltV.Net.Async/AltAsync.RegisterEvents.cs b/api/AltV.Net.Async/AltAsync.RegisterEvents.cs index 110025efd..6dabcf8ce 100644 --- a/api/AltV.Net.Async/AltAsync.RegisterEvents.cs +++ b/api/AltV.Net.Async/AltAsync.RegisterEvents.cs @@ -28,7 +28,7 @@ public static void RegisterEvents(object target) case ScriptEventType.Checkpoint: { scriptFunction = ScriptFunction.Create(eventMethodDelegate, - new[] { typeof(ICheckpoint), typeof(IEntity), typeof(bool) }, true); + new[] { typeof(ICheckpoint), typeof(IEntity), typeof(bool) }, isAsync: true); if (scriptFunction == null) return; OnCheckpoint += (checkpoint, entity, state) => { @@ -43,7 +43,7 @@ public static void RegisterEvents(object target) case ScriptEventType.PlayerConnect: { scriptFunction = ScriptFunction.Create(eventMethodDelegate, - new[] { typeof(IPlayer), typeof(string) }, true); + new[] { typeof(IPlayer), typeof(string) }, isAsync: true); if (scriptFunction == null) return; OnPlayerConnect += (player, reason) => { @@ -54,20 +54,6 @@ public static void RegisterEvents(object target) }; break; } - case ScriptEventType.PlayerBeforeConnect: - { - scriptFunction = ScriptFunction.Create(eventMethodDelegate, - new[] { typeof(PlayerConnectionInfo), typeof(string) }, true); - if (scriptFunction == null) return; - OnPlayerBeforeConnect += (connectionInfo, reason) => - { - var currScriptFunction = scriptFunction.Clone(); - currScriptFunction.Set(connectionInfo); - currScriptFunction.Set(reason); - return currScriptFunction.CallAsync(); - }; - break; - } case ScriptEventType.PlayerDamage: { scriptFunction = ScriptFunction.Create(eventMethodDelegate, @@ -75,7 +61,7 @@ public static void RegisterEvents(object target) { typeof(IPlayer), typeof(IEntity), typeof(ushort), typeof(ushort), typeof(ushort), typeof(ushort), typeof(uint), typeof(ushort), typeof(ushort) - }, true); + }, isAsync: true); if (scriptFunction == null) return; OnPlayerDamage += (player, attacker, oldHealth, oldArmor, @@ -99,7 +85,7 @@ public static void RegisterEvents(object target) case ScriptEventType.PlayerDead: { scriptFunction = ScriptFunction.Create(eventMethodDelegate, - new[] { typeof(IPlayer), typeof(IEntity), typeof(uint) }, true); + new[] { typeof(IPlayer), typeof(IEntity), typeof(uint) }, isAsync: true); if (scriptFunction == null) return; OnPlayerDead += (player, attacker, weapon) => { @@ -111,10 +97,27 @@ public static void RegisterEvents(object target) }; break; } + case ScriptEventType.PlayerHeal: + { + scriptFunction = ScriptFunction.Create(eventMethodDelegate, + new[] { typeof(IPlayer), typeof(ushort), typeof(ushort), typeof(ushort), typeof(ushort) }, isAsync: true); + if (scriptFunction == null) return; + OnPlayerHeal += (player, oldHealth, newHealth, oldArmour, newArmour) => + { + var currScriptFunction = scriptFunction.Clone(); + currScriptFunction.Set(player); + currScriptFunction.Set(oldHealth); + currScriptFunction.Set(newHealth); + currScriptFunction.Set(oldArmour); + currScriptFunction.Set(newArmour); + return currScriptFunction.CallAsync(); + }; + break; + } case ScriptEventType.PlayerDisconnect: { scriptFunction = ScriptFunction.Create(eventMethodDelegate, - new[] { typeof(IPlayer), typeof(string) }, true); + new[] { typeof(IPlayer), typeof(string) }, isAsync: true); if (scriptFunction == null) return; OnPlayerDisconnect += (player, reason) => { @@ -128,7 +131,7 @@ public static void RegisterEvents(object target) case ScriptEventType.PlayerRemove: { scriptFunction = - ScriptFunction.Create(eventMethodDelegate, new[] { typeof(IPlayer) }, true); + ScriptFunction.Create(eventMethodDelegate, new[] { typeof(IPlayer) }, isAsync: true); if (scriptFunction == null) return; OnPlayerRemove += player => { @@ -141,7 +144,7 @@ public static void RegisterEvents(object target) case ScriptEventType.VehicleRemove: { scriptFunction = - ScriptFunction.Create(eventMethodDelegate, new[] { typeof(IVehicle) }, true); + ScriptFunction.Create(eventMethodDelegate, new[] { typeof(IVehicle) }, isAsync: true); if (scriptFunction == null) return; OnVehicleRemove += vehicle => { @@ -151,12 +154,25 @@ public static void RegisterEvents(object target) }; break; } + case ScriptEventType.PedRemove: + { + scriptFunction = + ScriptFunction.Create(eventMethodDelegate, new[] { typeof(IPed) }, isAsync: true); + if (scriptFunction == null) return; + OnPedRemove += ped => + { + var currScriptFunction = scriptFunction.Clone(); + currScriptFunction.Set(ped); + return currScriptFunction.CallAsync(); + }; + break; + } case ScriptEventType.PlayerChangeVehicleSeat: { scriptFunction = ScriptFunction.Create(eventMethodDelegate, new[] { typeof(IVehicle), typeof(IPlayer), typeof(byte), typeof(byte) }, - true); + isAsync: true); if (scriptFunction == null) return; OnPlayerChangeVehicleSeat += (vehicle, player, seat, newSeat) => { @@ -173,7 +189,7 @@ public static void RegisterEvents(object target) { scriptFunction = ScriptFunction.Create(eventMethodDelegate, - new[] { typeof(IVehicle), typeof(IPlayer), typeof(byte) }, true); + new[] { typeof(IVehicle), typeof(IPlayer), typeof(byte) }, isAsync: true); if (scriptFunction == null) return; OnPlayerEnterVehicle += (vehicle, player, seat) => { @@ -189,7 +205,7 @@ public static void RegisterEvents(object target) { scriptFunction = ScriptFunction.Create(eventMethodDelegate, - new[] { typeof(IVehicle), typeof(IPlayer), typeof(byte) }, true); + new[] { typeof(IVehicle), typeof(IPlayer), typeof(byte) }, isAsync: true); if (scriptFunction == null) return; OnPlayerEnteringVehicle += (vehicle, player, seat) => { @@ -205,7 +221,7 @@ public static void RegisterEvents(object target) { scriptFunction = ScriptFunction.Create(eventMethodDelegate, - new[] { typeof(IVehicle), typeof(IPlayer), typeof(byte) }, true); + new[] { typeof(IVehicle), typeof(IPlayer), typeof(byte) }, isAsync: true); if (scriptFunction == null) return; OnPlayerLeaveVehicle += (vehicle, player, seat) => { @@ -221,7 +237,7 @@ public static void RegisterEvents(object target) { scriptFunction = ScriptFunction.Create(eventMethodDelegate, - new[] { typeof(IPlayer), typeof(string), typeof(object[]) }, true); + new[] { typeof(IPlayer), typeof(string), typeof(object[]) }, isAsync: true); if (scriptFunction == null) return; OnPlayerEvent += (player, name, args) => { @@ -251,7 +267,7 @@ public static void RegisterEvents(object target) case ScriptEventType.ConsoleCommand: { scriptFunction = ScriptFunction.Create(eventMethodDelegate, - new[] { typeof(string), typeof(string[]) }, true); + new[] { typeof(string), typeof(string[]) }, isAsync: true); if (scriptFunction == null) return; OnConsoleCommand += (name, args) => { @@ -265,7 +281,7 @@ public static void RegisterEvents(object target) case ScriptEventType.MetaDataChange: { scriptFunction = ScriptFunction.Create(eventMethodDelegate, - new[] { typeof(IEntity), typeof(string), typeof(object) }, true); + new[] { typeof(IEntity), typeof(string), typeof(object) }, isAsync: true); if (scriptFunction == null) return; OnMetaDataChange += (entity, key, value) => { @@ -280,7 +296,7 @@ public static void RegisterEvents(object target) case ScriptEventType.SyncedMetaDataChange: { scriptFunction = ScriptFunction.Create(eventMethodDelegate, - new[] { typeof(IEntity), typeof(string), typeof(object) }, true); + new[] { typeof(IEntity), typeof(string), typeof(object) }, isAsync: true); if (scriptFunction == null) return; OnSyncedMetaDataChange += (entity, key, value) => { @@ -295,7 +311,7 @@ public static void RegisterEvents(object target) case ScriptEventType.ColShape: { scriptFunction = ScriptFunction.Create(eventMethodDelegate, - new[] { typeof(IColShape), typeof(IEntity), typeof(bool) }, true); + new[] { typeof(IColShape), typeof(IEntity), typeof(bool) }, isAsync: true); if (scriptFunction == null) return; OnColShape += (shape, entity, state) => { @@ -314,7 +330,7 @@ public static void RegisterEvents(object target) { typeof(IPlayer), typeof(IEntity), typeof(uint), typeof(ushort), typeof(Position), typeof(BodyPart) - }, true); + }, isAsync: true); if (scriptFunction == null) return; OnWeaponDamage += (player, targetEntity, weapon, damage, shotOffset, damageOffset) => @@ -336,7 +352,7 @@ public static void RegisterEvents(object target) new[] { typeof(IVehicle) - }, true); + }, isAsync: true); if (scriptFunction == null) return; OnVehicleDestroy += vehicle => @@ -354,7 +370,7 @@ public static void RegisterEvents(object target) { typeof(IPlayer), typeof(ExplosionType), typeof(Position), typeof(uint), typeof(IEntity) - }, true); + }, isAsync: true); if (scriptFunction == null) return; OnExplosion += (player, explosionType, position, explosionFx, targetEntity) => { @@ -374,7 +390,7 @@ public static void RegisterEvents(object target) new[] { typeof(IPlayer), typeof(FireInfo[]) - }, true); + }, isAsync: true); if (scriptFunction == null) return; OnFire += (player, fireInfos) => { @@ -392,7 +408,7 @@ public static void RegisterEvents(object target) { typeof(IPlayer), typeof(Position), typeof(Position), typeof(uint), typeof(uint) - }, true); + }, isAsync: true); if (scriptFunction == null) return; OnStartProjectile += (player, startPosition, direction, ammoHash, weaponHash) => { @@ -412,7 +428,7 @@ public static void RegisterEvents(object target) new[] { typeof(IPlayer), typeof(uint), typeof(uint) - }, true); + }, isAsync: true); if (scriptFunction == null) return; OnPlayerWeaponChange += (player, oldWeapon, newWeapon) => { @@ -430,7 +446,7 @@ public static void RegisterEvents(object target) new[] { typeof(IEntity), typeof(IPlayer), typeof(IPlayer) - }, true); + }, isAsync: true); if (scriptFunction == null) return; OnNetworkOwnerChange += (targetEntity, oldNetOwner, newNetOwner) => { @@ -448,7 +464,7 @@ public static void RegisterEvents(object target) new[] { typeof(IVehicle), typeof(IVehicle) - }, true); + }, isAsync: true); if (scriptFunction == null) return; OnVehicleAttach += (targetVehicle, attachedVehicle) => { @@ -465,7 +481,7 @@ public static void RegisterEvents(object target) new[] { typeof(IVehicle), typeof(IVehicle) - }, true); + }, isAsync: true); if (scriptFunction == null) return; OnVehicleDetach += (targetVehicle, detachedVehicle) => { @@ -483,7 +499,7 @@ public static void RegisterEvents(object target) { typeof(IVehicle), typeof(IEntity), typeof(uint), typeof(uint), typeof(uint), typeof(uint), typeof(uint) - }, true); + }, isAsync: true); if (scriptFunction == null) return; OnVehicleDamage += (vehicle, targetEntity, bodyHealthDamage, additionalBodyHealthDamage, @@ -501,13 +517,32 @@ public static void RegisterEvents(object target) }; break; } + case ScriptEventType.VehicleHorn: + { + scriptFunction = ScriptFunction.Create(eventMethodDelegate, + new[] + { + typeof(IVehicle), typeof(IPlayer), typeof(bool) + }, isAsync: true); + if (scriptFunction == null) return; + OnVehicleHorn += + (targetVehicle, reporterPlayer, state) => + { + var currScriptFunction = scriptFunction.Clone(); + currScriptFunction.Set(targetVehicle); + currScriptFunction.Set(reporterPlayer); + currScriptFunction.Set(state); + return currScriptFunction.CallAsync(); + }; + break; + } case ScriptEventType.ConnectionQueueAdd: { scriptFunction = ScriptFunction.Create(eventMethodDelegate, new[] { typeof(IConnectionInfo) - }, true); + }, isAsync: true); if (scriptFunction == null) return; OnConnectionQueueAdd += (connectionInfo) => @@ -524,7 +559,7 @@ public static void RegisterEvents(object target) new[] { typeof(IConnectionInfo) - }, true); + }, isAsync: true); if (scriptFunction == null) return; OnConnectionQueueRemove += (connectionInfo) => @@ -538,7 +573,7 @@ public static void RegisterEvents(object target) case ScriptEventType.ServerStarted: { scriptFunction = ScriptFunction.Create(eventMethodDelegate, - Array.Empty(), true); + Array.Empty(), isAsync: true); if (scriptFunction == null) return; OnServerStarted += () => @@ -555,7 +590,7 @@ public static void RegisterEvents(object target) { typeof(IEntity), typeof(IPlayer) - }, true); + }, isAsync: true); if (scriptFunction == null) return; OnPlayerRequestControl += (entity, player) => @@ -573,7 +608,7 @@ public static void RegisterEvents(object target) new[] { typeof(IEntity), typeof(uint), typeof(uint), typeof(uint), typeof(uint) - }, true); + }, isAsync: true); if (scriptFunction == null) return; OnPlayerChangeAnimation += (entity, oldDict, newDict, oldName, newName) => @@ -594,7 +629,7 @@ public static void RegisterEvents(object target) new[] { typeof(IEntity), typeof(uint), typeof(uint) - }, true); + }, isAsync: true); if (scriptFunction == null) return; OnPlayerChangeInterior += (entity, oldIntLoc, newIntLoc) => @@ -613,7 +648,7 @@ public static void RegisterEvents(object target) new[] { typeof(IPlayer), typeof(int), typeof(int) - }, true); + }, isAsync: true); if (scriptFunction == null) return; OnPlayerDimensionChange += (entity, oldDimension, newDimension) => @@ -626,6 +661,41 @@ public static void RegisterEvents(object target) }; break; } + case ScriptEventType.VehicleSiren: + { + scriptFunction = ScriptFunction.Create(eventMethodDelegate, + new[] + { + typeof(IVehicle), typeof(bool) + }, isAsync: true); + if (scriptFunction == null) return; + OnVehicleSiren += + (targetVehicle, state) => + { + var currScriptFunction = scriptFunction.Clone(); + currScriptFunction.Set(targetVehicle); + currScriptFunction.Set(state); + return currScriptFunction.CallAsync(); + }; + break; + } + case ScriptEventType.PlayerSpawn: + { + scriptFunction = ScriptFunction.Create(eventMethodDelegate, + new[] + { + typeof(IPlayer) + }, isAsync: true); + if (scriptFunction == null) return; + OnPlayerSpawn += + (player) => + { + var currScriptFunction = scriptFunction.Clone(); + currScriptFunction.Set(player); + return currScriptFunction.CallAsync(); + }; + break; + } } break; diff --git a/api/AltV.Net.Async/AltAsync.Vehicle.cs b/api/AltV.Net.Async/AltAsync.Vehicle.cs index a6181485d..d8d9e76b7 100644 --- a/api/AltV.Net.Async/AltAsync.Vehicle.cs +++ b/api/AltV.Net.Async/AltAsync.Vehicle.cs @@ -7,19 +7,20 @@ using AltV.Net.Elements.Entities; using AltV.Net.Enums; using AltV.Net.Native; +using AltV.Net.Shared.Utils; namespace AltV.Net.Async { public static partial class AltAsync { - public static Task CreateVehicle(uint model, Position pos, Rotation rot) => AltVAsync.Schedule(() => - Alt.Core.CreateVehicle(model, pos, rot)); + public static Task CreateVehicle(uint model, Position pos, Rotation rot, uint streamingDistance = 0) => AltVAsync.Schedule(() => + Alt.Core.CreateVehicle(model, pos, rot, streamingDistance)); - public static Task CreateVehicle(VehicleModel model, Position pos, Rotation rot) => - CreateVehicle((uint) model, pos, rot); + public static Task CreateVehicle(VehicleModel model, Position pos, Rotation rot, uint streamingDistance = 0) => + CreateVehicle((uint) model, pos, rot, streamingDistance); - public static Task CreateVehicle(string model, Position pos, Rotation rot) => - CreateVehicle(Alt.Hash(model), pos, rot); + public static Task CreateVehicle(string model, Position pos, Rotation rot, uint streamingDistance = 0) => + CreateVehicle(Alt.Hash(model), pos, rot, streamingDistance); [Obsolete("Use AltAsync.CreateVehicle or Alt.CreateVehicle instead")] public static IVehicleBuilder CreateVehicleBuilder(uint model, Position pos, Rotation rot) => @@ -168,7 +169,7 @@ public static async Task GetNumberplateTextAsync(this IVehicle vehicle) [Obsolete("Use async entities instead")] public static async Task SetNumberplateTextAsync(this IVehicle vehicle, string numberPlateText) { - var numberPlateTextPtr = AltNative.StringUtils.StringToHGlobalUtf8(numberPlateText); + var numberPlateTextPtr = MemoryUtils.StringToHGlobalUtf8(numberPlateText); await AltVAsync.Schedule(() => { unsafe @@ -583,10 +584,10 @@ public static Task AttachedToAsync(this IVehicle vehicle) => AltVAsync.Schedule(() => vehicle.AttachedTo); [Obsolete("Use async entities instead")] - public static Task AttachToEntityAsync(this IVehicle vehicle, IEntity entity, short otherBone, short ownBone, + public static Task AttachToEntityAsync(this IVehicle vehicle, IEntity entity, ushort otherBoneId, ushort ownBoneId, Position position, Rotation rotation, bool collision, bool noFixedRotation) => AltVAsync.Schedule(() => - vehicle.AttachToEntity(entity, otherBone, ownBone, position, rotation, collision, noFixedRotation)); + vehicle.AttachToEntity(entity, otherBoneId, ownBoneId, position, rotation, collision, noFixedRotation)); [Obsolete("Use async entities instead")] public static Task DetachAsync(this IVehicle vehicle) => diff --git a/api/AltV.Net.Async/AltAsync.VirtualEntity.cs b/api/AltV.Net.Async/AltAsync.VirtualEntity.cs new file mode 100644 index 000000000..10af810c9 --- /dev/null +++ b/api/AltV.Net.Async/AltAsync.VirtualEntity.cs @@ -0,0 +1,16 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using AltV.Net.Data; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Async; + +public partial class AltAsync +{ + public static Task CreateVirtualEntityGroup(uint streamingDistance) =>AltVAsync.Schedule(() => + Alt.Core.CreateVirtualEntityGroup(streamingDistance)); + + public static Task CreateVirtualEntity(IVirtualEntityGroup group, Position position, + uint streamingDistance, Dictionary dataDict) => + AltVAsync.Schedule(() => Alt.CreateVirtualEntity(group, position, streamingDistance, dataDict)); +} \ No newline at end of file diff --git a/api/AltV.Net.Async/AltAsync.cs b/api/AltV.Net.Async/AltAsync.cs index 4c14be65f..751e45134 100644 --- a/api/AltV.Net.Async/AltAsync.cs +++ b/api/AltV.Net.Async/AltAsync.cs @@ -7,6 +7,7 @@ using AltV.Net.Elements.Args; using AltV.Net.Events; using AltV.Net.Native; +using AltV.Net.Shared.Utils; namespace AltV.Net.Async { @@ -28,12 +29,6 @@ public static event PlayerConnectAsyncDelegate OnPlayerConnect remove => Core.PlayerConnectAsyncEventHandler.Remove(value); } - public static event PlayerBeforeConnectAsyncDelegate OnPlayerBeforeConnect - { - add => Core.PlayerBeforeConnectAsyncEventHandler.Add(value); - remove => Core.PlayerBeforeConnectAsyncEventHandler.Remove(value); - } - public static event PlayerDamageAsyncDelegate OnPlayerDamage { add => Core.PlayerDamageAsyncEventHandler.Add(value); @@ -46,6 +41,12 @@ public static event PlayerDeadAsyncDelegate OnPlayerDead remove => Core.PlayerDeadAsyncEventHandler.Remove(value); } + public static event PlayerHealAsyncDelegate OnPlayerHeal + { + add => Core.PlayerHealAsyncEventHandler.Add(value); + remove => Core.PlayerHealAsyncEventHandler.Remove(value); + } + public static event ExplosionAsyncDelegate OnExplosion { add => Core.ExplosionAsyncEventHandler.Add(value); @@ -100,6 +101,12 @@ public static event VehicleRemoveAsyncDelegate OnVehicleRemove remove => Core.VehicleRemoveAsyncEventHandler.Remove(value); } + public static event PedRemoveAsyncDelegate OnPedRemove + { + add => Core.PedRemoveAsyncEventHandler.Add(value); + remove => Core.PedRemoveAsyncEventHandler.Remove(value); + } + public static event PlayerClientEventAsyncDelegate OnPlayerEvent { add => Core.PlayerClientEventAsyncEventHandler.Add(value); @@ -177,52 +184,178 @@ public static event VehicleDamageAsyncDelegate OnVehicleDamage add => Core.VehicleDamageAsyncEventHandler.Add(value); remove => Core.VehicleDamageAsyncEventHandler.Remove(value); } - + + public static event VehicleHornAsyncDelegate OnVehicleHorn + { + add => Core.VehicleHornAsyncEventHandler.Add(value); + remove => Core.VehicleHornAsyncEventHandler.Remove(value); + } + public static event ConnectionQueueAddAsyncDelegate OnConnectionQueueAdd { add => Core.ConnectionQueueAddAsyncEventHandler.Add(value); remove => Core.ConnectionQueueAddAsyncEventHandler.Remove(value); } - + public static event ConnectionQueueRemoveAsyncDelegate OnConnectionQueueRemove { add => Core.ConnectionQueueRemoveAsyncEventHandler.Add(value); remove => Core.ConnectionQueueRemoveAsyncEventHandler.Remove(value); } - + public static event ServerStartedAsyncDelegate OnServerStarted { add => Core.ServerStartedAsyncEventHandler.Add(value); remove => Core.ServerStartedAsyncEventHandler.Remove(value); } - + public static event PlayerRequestControlAsyncDelegate OnPlayerRequestControl { add => Core.PlayerRequestControlAsyncEventHandler.Add(value); remove => Core.PlayerRequestControlAsyncEventHandler.Remove(value); } - + public static event PlayerChangeAnimationAsyncDelegate OnPlayerChangeAnimation { add => Core.PlayerChangeAnimationAsyncEventHandler.Add(value); remove => Core.PlayerChangeAnimationAsyncEventHandler.Remove(value); } - + public static event PlayerChangeInteriorAsyncDelegate OnPlayerChangeInterior { add => Core.PlayerChangeInteriorAsyncEventHandler.Add(value); remove => Core.PlayerChangeInteriorAsyncEventHandler.Remove(value); } - + public static event PlayerDimensionChangeAsyncDelegate OnPlayerDimensionChange { add => Core.PlayerDimensionChangeAsyncEventHandler.Add(value); remove => Core.PlayerDimensionChangeAsyncEventHandler.Remove(value); } + public static event VehicleSirenAsyncDelegate OnVehicleSiren + { + add => Core.VehicleSirenAsyncEventHandler.Add(value); + remove => Core.VehicleSirenAsyncEventHandler.Remove(value); + } + + public static event PlayerSpawnAsyncDelegate OnPlayerSpawn + { + add => Core.PlayerSpawnAsyncEventHandler.Add(value); + remove => Core.PlayerSpawnAsyncEventHandler.Remove(value); + } + + public static event RequestSyncedSceneAsyncEventDelegate OnRequestSyncedScene + { + add => Core.RequestSyncedSceneAsyncEventHandler.Add(value); + remove => Core.RequestSyncedSceneAsyncEventHandler.Remove(value); + } + + public static event StartSyncedSceneAsyncEventDelegate OnStartSyncedScene + { + add => Core.StartSyncedSceneAsyncEventHandler.Add(value); + remove => Core.StartSyncedSceneAsyncEventHandler.Remove(value); + } + + public static event StopSyncedSceneAsyncEventDelegate OnStopSyncedScene + { + add => Core.StopSyncedSceneAsyncEventHandler.Add(value); + remove => Core.StopSyncedSceneAsyncEventHandler.Remove(value); + } + + public static event UpdateSyncedSceneAsyncEventDelegate OnUpdateSyncedScene + { + add => Core.UpdateSyncedSceneAsyncEventHandler.Add(value); + remove => Core.UpdateSyncedSceneAsyncEventHandler.Remove(value); + } + + public static event ClientRequestObjectAsyncEventDelegate OnClientRequestObject + { + add => Core.ClientRequestObjectAsyncEventHandler.Add(value); + remove => Core.ClientRequestObjectAsyncEventHandler.Remove(value); + } + + public static event ClientDeleteObjectAsyncEventDelegate OnClientDeleteObject + { + add => Core.ClientDeleteObjectAsyncEventHandler.Add(value); + remove => Core.ClientDeleteObjectAsyncEventHandler.Remove(value); + } + + public static event GivePedScriptedTaskAsyncDelegate OnGivePedScriptedTask + { + add => Core.GivePedScriptedTaskAsyncEventHandler.Add(value); + remove => Core.GivePedScriptedTaskAsyncEventHandler.Remove(value); + } + + public static event PedDamageAsyncDelegate OnPedDamage + { + add => Core.PedDamageAsyncEventHandler.Add(value); + remove => Core.PedDamageAsyncEventHandler.Remove(value); + } + + public static event PedDeadAsyncDelegate OnPedDead + { + add => Core.PedDeadAsyncEventHandler.Add(value); + remove => Core.PedDeadAsyncEventHandler.Remove(value); + } + + public static event PedHealAsyncDelegate OnPedHeal + { + add => Core.PedHealAsyncEventHandler.Add(value); + remove => Core.PedHealAsyncEventHandler.Remove(value); + } + + public static event PlayerStartTalkingAsyncDelegate OnPlayerStartTalking + { + add => Core.PlayerStartTalkingAsyncEventHandler.Add(value); + remove => Core.PlayerStartTalkingAsyncEventHandler.Remove(value); + } + + public static event PlayerStopTalkingAsyncDelegate OnPlayerStopTalking + { + add => Core.PlayerStopTalkingAsyncEventHandler.Add(value); + remove => Core.PlayerStopTalkingAsyncEventHandler.Remove(value); + } + + public static event ScriptRpcAsyncDelegate OnScriptRpc + { + add => Core.ScriptRpcAsyncEventHandler.Add(value); + remove => Core.ScriptRpcAsyncEventHandler.Remove(value); + } + + public static event ScriptRpcAnswerAsyncDelegate OnScriptRpcAnswer + { + add => Core.ScriptRpcAnswerAsyncEventHandler.Add(value); + remove => Core.ScriptRpcAnswerAsyncEventHandler.Remove(value); + } + + public static event PlayerConnectDeniedAsyncDelegate OnPlayerConnectDenied + { + add => Core.PlayerConnectDeniedAsyncEventHandler.Add(value); + remove => Core.PlayerConnectDeniedAsyncEventHandler.Remove(value); + } + + public static event ResourceEventAsyncDelegate OnResourceStart + { + add => Core.ResourceStartAsyncEventHandler.Add(value); + remove => Core.ResourceStartAsyncEventHandler.Remove(value); + } + + public static event ResourceEventAsyncDelegate OnResourceStop + { + add => Core.ResourceStopAsyncEventHandler.Add(value); + remove => Core.ResourceStopAsyncEventHandler.Remove(value); + } + + public static event ResourceEventAsyncDelegate OnResourceError + { + add => Core.ResourceErrorAsyncEventHandler.Add(value); + remove => Core.ResourceErrorAsyncEventHandler.Remove(value); + } + public static async void Log(string message) { - var messagePtr = AltNative.StringUtils.StringToHGlobalUtf8(message); + var messagePtr = MemoryUtils.StringToHGlobalUtf8(message); await Do(() => Alt.Core.LogInfo(messagePtr)); Marshal.FreeHGlobal(messagePtr); } @@ -232,7 +365,7 @@ public static async void Emit(string eventName, params object[] args) var size = args.Length; var mValues = new MValueConst[size]; Alt.Core.CreateMValues(mValues, args); - var eventNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(eventName); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); await Do(() => Alt.Core.TriggerLocalEvent(eventNamePtr, mValues)); Marshal.FreeHGlobal(eventNamePtr); for (var i = 0; i < size; i++) @@ -246,7 +379,7 @@ public static async void EmitAllClients(string eventName, params object[] args) var size = args.Length; var mValues = new MValueConst[size]; Alt.Core.CreateMValues(mValues, args); - var eventNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(eventName); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); await Do(() => Alt.Core.TriggerClientEventForAll(eventNamePtr, mValues)); Marshal.FreeHGlobal(eventNamePtr); for (var i = 0; i < size; i++) @@ -255,6 +388,20 @@ public static async void EmitAllClients(string eventName, params object[] args) } } + public static async void EmitUnreliableAllClients(string eventName, params object[] args) + { + var size = args.Length; + var mValues = new MValueConst[size]; + Alt.Core.CreateMValues(mValues, args); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); + await Do(() => Alt.Core.TriggerClientEventUnreliableForAll(eventNamePtr, mValues)); + Marshal.FreeHGlobal(eventNamePtr); + for (var i = 0; i < size; i++) + { + mValues[i].Dispose(); + } + } + [Conditional("DEBUG")] private static void CheckIfAsyncResource() { @@ -280,17 +427,17 @@ public static Task Do(Action action) CheckIfAsyncResource(); return AltVAsync.Schedule(action); } - + public static Task Do(Task task) { throw new ArgumentException("AltAsync.Do should never have async code inside"); } - + public static Task Do(Func task) { throw new ArgumentException("AltAsync.Do should never have async code inside"); } - + public static void RunOnMainThreadBlocking(Action action, SemaphoreSlim semaphoreSlim) { CheckIfAsyncResource(); diff --git a/api/AltV.Net.Async/AltThreadSafe.Player.cs b/api/AltV.Net.Async/AltThreadSafe.Player.cs index 5470632a8..471f1d204 100644 --- a/api/AltV.Net.Async/AltThreadSafe.Player.cs +++ b/api/AltV.Net.Async/AltThreadSafe.Player.cs @@ -6,6 +6,7 @@ using AltV.Net.Elements.Args; using AltV.Net.Elements.Entities; using AltV.Net.Native; +using AltV.Net.Shared.Utils; namespace AltV.Net.Async { @@ -108,7 +109,7 @@ public static bool EmitLockedWithContext(this IPlayer player, string eventName, var successfully = true; var mValues = new MValueConst[size]; MValueConstLocked.CreateFromObjectsLocked(args, mValues); - var eventNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(eventName); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); lock (player) { if (player.Exists) @@ -130,13 +131,42 @@ public static bool EmitLockedWithContext(this IPlayer player, string eventName, return successfully; } - + + public static bool EmitUnreliableLockedWithContext(this IPlayer player, string eventName, params object[] args) + { + var size = args.Length; + var successfully = true; + var mValues = new MValueConst[size]; + MValueConstLocked.CreateFromObjectsLocked(args, mValues); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); + lock (player) + { + if (player.Exists) + { + Alt.Core.TriggerClientEventUnreliable(player, eventNamePtr, mValues); + } + else + { + successfully = false; + } + } + + for (var i = 0; i < size; i++) + { + mValues[i].Dispose(); + } + + Marshal.FreeHGlobal(eventNamePtr); + + return successfully; + } + public static bool EmitLocked(this IPlayer player, string eventName, params object[] args) { var size = args.Length; var mValues = new MValueConst[size]; MValueConstLockedNoRefs.CreateFromObjectsLocked(args, mValues); - var eventNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(eventName); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); var successfully = true; lock (player) { @@ -159,5 +189,34 @@ public static bool EmitLocked(this IPlayer player, string eventName, params obje return successfully; } + + public static bool EmitUnreliableLocked(this IPlayer player, string eventName, params object[] args) + { + var size = args.Length; + var mValues = new MValueConst[size]; + MValueConstLockedNoRefs.CreateFromObjectsLocked(args, mValues); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); + var successfully = true; + lock (player) + { + if (player.Exists) + { + Alt.Core.TriggerClientEventUnreliable(player, eventNamePtr, mValues); + } + else + { + successfully = false; + } + } + + for (var i = 0; i < size; i++) + { + mValues[i].Dispose(); + } + + Marshal.FreeHGlobal(eventNamePtr); + + return successfully; + } } } \ No newline at end of file diff --git a/api/AltV.Net.Async/AsyncBaseBaseObjectPool.cs b/api/AltV.Net.Async/AsyncBaseBaseObjectPool.cs deleted file mode 100644 index 0d4297395..000000000 --- a/api/AltV.Net.Async/AsyncBaseBaseObjectPool.cs +++ /dev/null @@ -1,12 +0,0 @@ -using AltV.Net.Elements.Entities; -using AltV.Net.Elements.Pools; - -namespace AltV.Net.Async -{ - public class AsyncBaseBaseObjectPool : BaseEntityPool - { - public AsyncBaseBaseObjectPool(IEntityPool playerPool, IEntityPool vehiclePool) : base(playerPool, vehiclePool) - { - } - } -} \ No newline at end of file diff --git a/api/AltV.Net.Async/AsyncBaseObjectPool.cs b/api/AltV.Net.Async/AsyncBaseObjectPool.cs index a72180de6..947a0b6cc 100644 --- a/api/AltV.Net.Async/AsyncBaseObjectPool.cs +++ b/api/AltV.Net.Async/AsyncBaseObjectPool.cs @@ -16,6 +16,7 @@ public abstract class AsyncBaseObjectPool : IBaseObjectPool entityFactory; private readonly bool forceAsync; + public abstract uint GetId(IntPtr entityPointer); protected AsyncBaseObjectPool(IBaseObjectFactory entityFactory, bool forceAsync) { @@ -23,11 +24,11 @@ protected AsyncBaseObjectPool(IBaseObjectFactory entityFactory, boo this.forceAsync = forceAsync; } - public TBaseObject Create(ICore core, IntPtr entityPointer) + public TBaseObject Create(ICore core, IntPtr entityPointer, uint id) { if (entityPointer == IntPtr.Zero) return default; if (entities.TryGetValue(entityPointer, out var baseObject)) return baseObject; - baseObject = entityFactory.Create(core, entityPointer); + baseObject = entityFactory.Create(core, entityPointer, id); Add(baseObject); return baseObject; } @@ -59,6 +60,18 @@ public bool Remove(IntPtr entityPointer) return true; } + public TBaseObject GetOrCreate(ICore core, IntPtr entityPointer, uint entityId) + { + if (entityPointer == IntPtr.Zero) + { + return default; + } + + if (entities.TryGetValue(entityPointer, out var entity)) return entity; + + return Create(core, entityPointer, entityId); + } + public TBaseObject Get(IntPtr entityPointer) { return entities.TryGetValue(entityPointer, out var entity) ? entity : default; @@ -73,7 +86,7 @@ public TBaseObject GetOrCreate(ICore core, IntPtr entityPointer) if (entities.TryGetValue(entityPointer, out var entity)) return entity; - return Create(core, entityPointer); + return Create(core, entityPointer, GetId(entityPointer)); } public IReadOnlyCollection GetAllObjects() diff --git a/api/AltV.Net.Async/AsyncCore.cs b/api/AltV.Net.Async/AsyncCore.cs index a9d271725..92c5fcece 100644 --- a/api/AltV.Net.Async/AsyncCore.cs +++ b/api/AltV.Net.Async/AsyncCore.cs @@ -1,8 +1,6 @@ using System; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; -using System.Runtime.CompilerServices; using System.Runtime.Loader; using System.Threading; using System.Threading.Tasks; @@ -11,20 +9,19 @@ using AltV.Net.Data; using AltV.Net.Elements.Entities; using AltV.Net.Elements.Args; -using AltV.Net.Events; +using AltV.Net.Shared.Elements.Entities; using AltV.Net.Shared.Events; -using AltV.Net.Types; namespace AltV.Net.Async { public class AsyncCore : Core { - private readonly Dictionary> asyncEventBusClient = + private readonly Dictionary> asyncEventBusClient = new(); - private readonly Dictionary> asyncEventBusServer = + private readonly Dictionary> asyncEventBusServer = new(); - + public override IEnumerable GetRegisteredClientEvents() { return base.GetRegisteredClientEvents().Concat(asyncEventBusClient.Keys); @@ -36,13 +33,22 @@ public override IEnumerable GetRegisteredServerEvents() } internal readonly AsyncEventHandler CheckpointAsyncEventHandler = - new(EventType.CHECKPOINT_EVENT); + new(EventType.COLSHAPE_EVENT); internal readonly AsyncEventHandler PlayerConnectAsyncEventHandler = new(EventType.PLAYER_CONNECT); - internal readonly AsyncEventHandler PlayerBeforeConnectAsyncEventHandler = - new(EventType.PLAYER_BEFORE_CONNECT); + internal readonly AsyncEventHandler PlayerConnectDeniedAsyncEventHandler = + new(EventType.PLAYER_CONNECT_DENIED); + + internal readonly AsyncEventHandler ResourceStartAsyncEventHandler = + new(EventType.RESOURCE_START); + + internal readonly AsyncEventHandler ResourceStopAsyncEventHandler = + new(EventType.RESOURCE_STOP); + + internal readonly AsyncEventHandler ResourceErrorAsyncEventHandler = + new(EventType.RESOURCE_ERROR); internal readonly AsyncEventHandler PlayerDamageAsyncEventHandler = new(EventType.PLAYER_DAMAGE); @@ -50,6 +56,9 @@ public override IEnumerable GetRegisteredServerEvents() internal readonly AsyncEventHandler PlayerDeadAsyncEventHandler = new(EventType.PLAYER_DEATH); + internal readonly AsyncEventHandler PlayerHealAsyncEventHandler = + new(EventType.PLAYER_HEAL); + internal readonly AsyncEventHandler ExplosionAsyncEventHandler = new(EventType.EXPLOSION_EVENT); @@ -78,6 +87,9 @@ internal readonly AsyncEventHandler internal readonly AsyncEventHandler VehicleRemoveAsyncEventHandler = new(); + internal readonly AsyncEventHandler PedRemoveAsyncEventHandler = + new(); + internal readonly AsyncEventHandler PlayerClientEventAsyncEventHandler = new(); @@ -116,37 +128,83 @@ internal readonly AsyncEventHandler internal readonly AsyncEventHandler VehicleDamageAsyncEventHandler = new(EventType.VEHICLE_DAMAGE); - + + internal readonly AsyncEventHandler VehicleHornAsyncEventHandler = + new(EventType.VEHICLE_HORN); + internal readonly AsyncEventHandler ConnectionQueueAddAsyncEventHandler = new(EventType.CONNECTION_QUEUE_ADD); - + internal readonly AsyncEventHandler ConnectionQueueRemoveAsyncEventHandler = new(EventType.CONNECTION_QUEUE_REMOVE); - + internal readonly AsyncEventHandler ServerStartedAsyncEventHandler = new(EventType.SERVER_STARTED); - + internal readonly AsyncEventHandler PlayerRequestControlAsyncEventHandler = new(EventType.PLAYER_REQUEST_CONTROL); - + internal readonly AsyncEventHandler PlayerChangeAnimationAsyncEventHandler = new(EventType.PLAYER_CHANGE_ANIMATION_EVENT); - + internal readonly AsyncEventHandler PlayerChangeInteriorAsyncEventHandler = new(EventType.PLAYER_CHANGE_INTERIOR_EVENT); - + internal readonly AsyncEventHandler PlayerDimensionChangeAsyncEventHandler = new(EventType.PLAYER_DIMENSION_CHANGE); - public AsyncCore(IntPtr nativePointer, IntPtr resourcePointer, AssemblyLoadContext assemblyLoadContext, ILibrary library, IBaseBaseObjectPool baseBaseObjectPool, - IBaseEntityPool baseEntityPool, - IEntityPool playerPool, - IEntityPool vehiclePool, - IBaseObjectPool blipPool, - IBaseObjectPool checkpointPool, - IBaseObjectPool voiceChannelPool, - IBaseObjectPool colShapePool, - INativeResourcePool nativeResourcePool) : base(nativePointer, resourcePointer, assemblyLoadContext, library, baseBaseObjectPool, baseEntityPool, playerPool, vehiclePool, blipPool, checkpointPool, voiceChannelPool, colShapePool, nativeResourcePool) + internal readonly AsyncEventHandler VehicleSirenAsyncEventHandler = + new(EventType.VEHICLE_SIREN); + + internal readonly AsyncEventHandler PlayerSpawnAsyncEventHandler = + new(EventType.PLAYER_SPAWN); + + internal readonly AsyncEventHandler RequestSyncedSceneAsyncEventHandler = + new(EventType.REQUEST_SYNCED_SCENE); + + internal readonly AsyncEventHandler StartSyncedSceneAsyncEventHandler = + new(EventType.START_SYNCED_SCENE); + + internal readonly AsyncEventHandler StopSyncedSceneAsyncEventHandler = + new(EventType.STOP_SYNCED_SCENE); + + internal readonly AsyncEventHandler UpdateSyncedSceneAsyncEventHandler = + new(EventType.UPDATE_SYNCED_SCENE); + + internal readonly AsyncEventHandler ClientRequestObjectAsyncEventHandler = + new(EventType.CLIENT_REQUEST_OBJECT_EVENT); + + internal readonly AsyncEventHandler ClientDeleteObjectAsyncEventHandler = + new(EventType.CLIENT_DELETE_OBJECT_EVENT); + + internal readonly AsyncEventHandler GivePedScriptedTaskAsyncEventHandler = + new(EventType.GIVE_PED_SCRIPTED_TASK); + + internal readonly AsyncEventHandler PedDamageAsyncEventHandler = + new(EventType.PED_DAMAGE); + + internal readonly AsyncEventHandler PedDeadAsyncEventHandler = + new(EventType.PED_DEATH); + + internal readonly AsyncEventHandler PedHealAsyncEventHandler = + new(EventType.PED_HEAL); + + internal readonly AsyncEventHandler PlayerStartTalkingAsyncEventHandler = + new(EventType.PLAYER_START_TALKING); + + internal readonly AsyncEventHandler PlayerStopTalkingAsyncEventHandler = + new(EventType.PLAYER_STOP_TALKING); + + internal readonly AsyncEventHandler ScriptRpcAsyncEventHandler = + new(EventType.SCRIPT_RPC_EVENT); + + internal readonly AsyncEventHandler ScriptRpcAnswerAsyncEventHandler = + new(EventType.SCRIPT_RPC_ANSWER_EVENT); + + + + public AsyncCore(IntPtr nativePointer, IntPtr resourcePointer, AssemblyLoadContext assemblyLoadContext, ILibrary library, IPoolManager poolManager, + INativeResourcePool nativeResourcePool) : base(nativePointer, resourcePointer, assemblyLoadContext, library, poolManager, nativeResourcePool) { AltAsync.Setup(this); } @@ -156,7 +214,7 @@ public override bool IsMainThread() return AltAsync.AltVAsync.TickThread == Thread.CurrentThread || base.IsMainThread(); } - public override void OnCheckPointEvent(ICheckpoint checkpoint, IEntity entity, bool state) + public override void OnCheckPointEvent(ICheckpoint checkpoint, IWorldObject entity, bool state) { base.OnCheckPointEvent(checkpoint, entity, state); if (!CheckpointAsyncEventHandler.HasEvents()) return; @@ -177,25 +235,25 @@ await PlayerDeadAsyncEventHandler.CallAsync(@delegate => }); } - public override void OnPlayerConnectEvent(IPlayer player, string reason) + public override void OnPlayerHealEvent(IPlayer player, ushort oldHealth, ushort newHealth, ushort oldArmour, ushort newArmour) { - base.OnPlayerConnectEvent(player, reason); - if (!PlayerConnectAsyncEventHandler.HasEvents()) return; + base.OnPlayerHealEvent(player, oldHealth, newHealth, oldArmour, newArmour); + if (!PlayerHealAsyncEventHandler.HasEvents()) return; Task.Run(async () => { - await PlayerConnectAsyncEventHandler.CallAsync(@delegate => - @delegate(player, reason)); + await PlayerHealAsyncEventHandler.CallAsync(@delegate => + @delegate(player, oldHealth, newHealth, oldArmour, newArmour)); }); } - public override void OnPlayerBeforeConnectEvent(IntPtr eventPointer, PlayerConnectionInfo connectionInfo, string reason) + public override void OnPlayerConnectEvent(IPlayer player, string reason) { - base.OnPlayerBeforeConnectEvent(eventPointer, connectionInfo, reason); - if (!PlayerBeforeConnectAsyncEventHandler.HasEvents()) return; + base.OnPlayerConnectEvent(player, reason); + if (!PlayerConnectAsyncEventHandler.HasEvents()) return; Task.Run(async () => { - await PlayerBeforeConnectAsyncEventHandler.CallAsync(@delegate => - @delegate(connectionInfo, reason)); + await PlayerConnectAsyncEventHandler.CallAsync(@delegate => + @delegate(player, reason)); }); } @@ -321,6 +379,17 @@ await VehicleRemoveAsyncEventHandler.CallAsync(@delegate => }); } + public override void OnPedRemoveEvent(IPed ped) + { + base.OnPedRemoveEvent(ped); + if (!PedRemoveAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await PedRemoveAsyncEventHandler.CallAsync(@delegate => + @delegate(ped)); + }); + } + //TODO: we could write mvalue's to own onion struct in cpp to better share it but we would need to execute at least getorcreate entity when it contains a entity type in main thread //TODO: or lock entities dictionary so entity can't get removed until thread got it from dictionary //TODO: lock dictionary for async maybe as well for use cases like this @@ -329,7 +398,7 @@ public override void OnClientEventEvent(IPlayer player, string name, IntPtr[] ar { base.OnClientEventEvent(player, name, args, mValues, objects); var length = args.Length; - + if (asyncEventBusClient.Count != 0 && asyncEventBusClient.TryGetValue(name, out var eventHandlersClient)) { if (mValues == null) @@ -340,7 +409,7 @@ public override void OnClientEventEvent(IPlayer player, string name, IntPtr[] ar mValues[i] = new MValueConst(this, args[i]); } } - + if (objects == null) { objects = new object[length]; @@ -349,11 +418,11 @@ public override void OnClientEventEvent(IPlayer player, string name, IntPtr[] ar objects[i] = mValues[i].ToObject(); } } - + Task.Factory.StartNew(async obj => { var (taskPlayer, taskObjects, taskEventHandlers, taskName) = - (ValueTuple, string>)obj; + (ValueTuple, string>)obj; foreach (var eventHandler in taskEventHandlers) { try @@ -378,11 +447,11 @@ public override void OnClientEventEvent(IPlayer player, string name, IntPtr[] ar } } }, - new ValueTuple, string>(player, objects, + new ValueTuple, string>(player, objects, eventHandlersClient, name)); } - + if (PlayerClientEventAsyncEventHandler.HasEvents()) { if (mValues == null) @@ -393,7 +462,7 @@ public override void OnClientEventEvent(IPlayer player, string name, IntPtr[] ar mValues[i] = new MValueConst(this, args[i]); } } - + if (objects == null) { objects = new object[length]; @@ -402,7 +471,7 @@ public override void OnClientEventEvent(IPlayer player, string name, IntPtr[] ar objects[i] = mValues[i].ToObject(); } } - + Task.Factory.StartNew(obj => { var (taskPlayer, taskObjects, taskEventHandlers, taskName) = @@ -422,7 +491,7 @@ public override void OnClientEventEvent(IPlayer player, string name, IntPtr[] ar public override void OnServerEventEvent(string name, IntPtr[] args, MValueConst[] mValues, object[] objects) { base.OnServerEventEvent(name, args, mValues, objects); - + var length = args.Length; if (asyncEventBusServer.Count != 0 && asyncEventBusServer.TryGetValue(name, out var eventHandlersServer)) { @@ -434,7 +503,7 @@ public override void OnServerEventEvent(string name, IntPtr[] args, MValueConst[ mValues[i] = new MValueConst(this, args[i]); } } - + if (objects == null) { objects = new object[length]; @@ -443,11 +512,11 @@ public override void OnServerEventEvent(string name, IntPtr[] args, MValueConst[ objects[i] = mValues[i].ToObject(); } } - + Task.Factory.StartNew(async obj => { var (taskObjects, taskEventHandlers, taskName) = - (ValueTuple, string>)obj; + (ValueTuple, string>)obj; foreach (var eventHandler in taskEventHandlers) { var invokeValues = eventHandler.CalculateInvokeValues(taskObjects); @@ -471,7 +540,7 @@ public override void OnServerEventEvent(string name, IntPtr[] args, MValueConst[ Alt.LogFast("Wrong function params for " + taskName); } } - }, new ValueTuple, string>(objects, eventHandlersServer, name)); + }, new ValueTuple, string>(objects, eventHandlersServer, name)); } } @@ -506,7 +575,7 @@ await SyncedMetaDataChangeAsyncEventHandler.CallAsync(@delegate => }); } - public override void OnColShapeEvent(IColShape colShape, IEntity entity, bool state) + public override void OnColShapeEvent(IColShape colShape, IWorldObject entity, bool state) { base.OnColShapeEvent(colShape, entity, state); if (!ColShapeAsyncEventHandler.HasEvents()) return; @@ -611,6 +680,17 @@ await VehicleDamageAsyncEventHandler.CallAsync(@delegate => }); } + public override void OnVehicleHornEvent(IntPtr eventPointer, IVehicle targetVehicle, IPlayer reporterPlayer, bool state) + { + base.OnVehicleHornEvent(eventPointer, targetVehicle, reporterPlayer, state); + if (!VehicleHornAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await VehicleHornAsyncEventHandler.CallAsync(@delegate => + @delegate(targetVehicle, reporterPlayer, state)); + }); + } + public override void OnConnectionQueueAddEvent(IConnectionInfo connectionInfo) { base.OnConnectionQueueAddEvent(connectionInfo); @@ -688,6 +768,230 @@ public override void OnPlayerDimensionChangeEvent(IPlayer player, int oldDimensi }); } + public override void OnVehicleSirenEvent(IVehicle targetVehicle, bool state) + { + base.OnVehicleSirenEvent(targetVehicle, state); + + if (!VehicleSirenAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await VehicleSirenAsyncEventHandler.CallAsync(@delegate => @delegate(targetVehicle, state)); + }); + } + + public override void OnPlayerSpawnEvent(IPlayer player) + { + base.OnPlayerSpawnEvent(player); + + if (!PlayerSpawnAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await PlayerSpawnAsyncEventHandler.CallAsync(@delegate => @delegate(player)); + }); + } + + public override void OnRequestSyncedSceneEvent(IntPtr eventPointer, IPlayer sourcePlayer, int sceneid) + { + base.OnRequestSyncedSceneEvent(eventPointer, sourcePlayer, sceneid); + + if (!RequestSyncedSceneAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await RequestSyncedSceneAsyncEventHandler.CallAsync(@delegate => @delegate(sourcePlayer, sceneid)); + }); + } + + public override void OnStartSyncedSceneEvent(IPlayer sourcePlayer, int sceneid, Position position, + Rotation rotation, uint animDictHash, Dictionary entityAndAnimHash) + { + base.OnStartSyncedSceneEvent(sourcePlayer, sceneid, position, rotation, animDictHash, entityAndAnimHash); + + if (!StartSyncedSceneAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await StartSyncedSceneAsyncEventHandler.CallAsync(@delegate => @delegate(sourcePlayer, sceneid, position, rotation, animDictHash, entityAndAnimHash)); + }); + } + + public override void OnStopSyncedSceneEvent(IPlayer sourcePlayer, int sceneid) + { + base.OnStopSyncedSceneEvent(sourcePlayer, sceneid); + + if (!StopSyncedSceneAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await StopSyncedSceneAsyncEventHandler.CallAsync(@delegate => @delegate(sourcePlayer, sceneid)); + }); + } + + public override void OnUpdateSyncedSceneEvent(IPlayer sourcePlayer, float startRate, int sceneid) + { + base.OnUpdateSyncedSceneEvent(sourcePlayer, startRate, sceneid); + + if (!UpdateSyncedSceneAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await UpdateSyncedSceneAsyncEventHandler.CallAsync(@delegate => @delegate(sourcePlayer, startRate, sceneid)); + }); + } + + public override void OnClientRequestObjectEvent(IntPtr eventPointer, IPlayer sourcePlayer, uint model, Position position) + { + base.OnClientRequestObjectEvent(eventPointer, sourcePlayer, model, position); + + if (!ClientRequestObjectAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await ClientRequestObjectAsyncEventHandler.CallAsync(@delegate => @delegate(sourcePlayer, model, position)); + }); + } + + public override void OnClientDeleteObjectEvent(IntPtr eventPointer, IPlayer sourcePlayer) + { + base.OnClientDeleteObjectEvent(eventPointer, sourcePlayer); + + if (!ClientDeleteObjectAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await ClientDeleteObjectAsyncEventHandler.CallAsync(@delegate => @delegate(sourcePlayer)); + }); + } + + public override void OnGivePedScriptedTaskEvent(IntPtr eventPointer, IPlayer sourcePlayer, IPed sourcePed, uint taskType) + { + base.OnGivePedScriptedTaskEvent(eventPointer, sourcePlayer, sourcePed, taskType); + + if (!GivePedScriptedTaskAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await GivePedScriptedTaskAsyncEventHandler.CallAsync(@delegate => @delegate(sourcePlayer, sourcePed, taskType)); + }); + } + + public override void OnPlayerConnectDeniedEvent(PlayerConnectDeniedReason reason, string name, string ip, ulong passwordHash, + bool isDebug, string branch, uint majorVersion, string cdnUrl, long discordId) + { + base.OnPlayerConnectDeniedEvent(reason, name, ip, passwordHash, isDebug, branch, majorVersion, cdnUrl, discordId); + + if (!PlayerConnectDeniedAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await PlayerConnectDeniedAsyncEventHandler.CallAsync(@delegate => @delegate(reason, name, ip, passwordHash, isDebug, branch, majorVersion, cdnUrl, discordId)); + }); + } + + public override void OnResourceStartEvent(INativeResource resource) + { + base.OnResourceStartEvent(resource); + + if (!ResourceStartAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await ResourceStartAsyncEventHandler.CallAsync(@delegate => @delegate(resource)); + }); + } + + public override void OnResourceStopEvent(INativeResource resource) + { + base.OnResourceStopEvent(resource); + + if (!ResourceStopAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await ResourceStopAsyncEventHandler.CallAsync(@delegate => @delegate(resource)); + }); + } + + public override void OnResourceErrorEvent(INativeResource resource) + { + base.OnResourceErrorEvent(resource); + + if (!ResourceErrorAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await ResourceErrorAsyncEventHandler.CallAsync(@delegate => @delegate(resource)); + }); + } + + public override void OnPedDamageEvent(IPed ped, IEntity attacker, uint weapon, ushort healthDamage, ushort armourDamage) + { + base.OnPedDamageEvent(ped, attacker, weapon, healthDamage, armourDamage); + + if (!PedDamageAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await PedDamageAsyncEventHandler.CallAsync(@delegate => @delegate(ped, attacker, weapon, healthDamage, armourDamage)); + }); + } + + public override void OnPedDeathEvent(IPed ped, IEntity killer, uint weapon) + { + base.OnPedDeathEvent(ped, killer, weapon); + + if (!PedDeadAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await PedDeadAsyncEventHandler.CallAsync(@delegate => @delegate(ped, killer, weapon)); + }); + } + + public override void OnPedHealEvent(IPed ped, ushort oldHealth, ushort newHealth, ushort oldArmour, ushort newArmour) + { + base.OnPedHealEvent(ped, oldHealth, newHealth, oldArmour, newArmour); + + if (!PedHealAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await PedHealAsyncEventHandler.CallAsync(@delegate => @delegate(ped, oldHealth, newHealth, oldArmour, newArmour)); + }); + } + + public override void OnPlayerStartTalkingEvent(IPlayer player) + { + base.OnPlayerStartTalkingEvent(player); + + if (!PlayerStartTalkingAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await PlayerStartTalkingAsyncEventHandler.CallAsync(@delegate => @delegate(player)); + }); + } + + public override void OnPlayerStopTalkingEvent(IPlayer player) + { + base.OnPlayerStopTalkingEvent(player); + + if (!PlayerStopTalkingAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await PlayerStopTalkingAsyncEventHandler.CallAsync(@delegate => @delegate(player)); + }); + } + + public override void OnScriptRPCEvent(IntPtr eventpointer, IPlayer target, string name, IntPtr[] args, ushort answerId) + { + base.OnScriptRPCEvent(eventpointer, target, name, args, answerId); + + if (!ScriptRpcAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + var mValues = MValueConst.CreateFrom(this, args); + var clientScriptRPCEvent = new ScriptRpcEvent(this, eventpointer); + await ScriptRpcAsyncEventHandler.CallAsync(@delegate => @delegate(clientScriptRPCEvent, target, name, mValues.Select(x => x.ToObject()).ToArray(), answerId)); + }); + } + + public override void OnScriptAnswerRPCEvent(IPlayer target, ushort answerid, IntPtr mValue, string answererror) + { + base.OnScriptAnswerRPCEvent(target, answerid, mValue, answererror); + + if (!ScriptRpcAnswerAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await ScriptRpcAnswerAsyncEventHandler.CallAsync(@delegate => @delegate(target, answerid, mValue, answererror)); + }); + } + public new Function OnClient(string eventName, Function function) { if (function == null) @@ -701,7 +1005,7 @@ public override void OnPlayerDimensionChangeEvent(IPlayer player, int oldDimensi } else { - eventHandlersForEvent = new HashSet { function }; + eventHandlersForEvent = new List { function }; asyncEventBusClient[eventName] = eventHandlersForEvent; } @@ -730,7 +1034,7 @@ public override void OnPlayerDimensionChangeEvent(IPlayer player, int oldDimensi } else { - eventHandlersForEvent = new HashSet { function }; + eventHandlersForEvent = new List { function }; asyncEventBusServer[eventName] = eventHandlersForEvent; } diff --git a/api/AltV.Net.Async/AsyncEntityPool.cs b/api/AltV.Net.Async/AsyncEntityPool.cs index c60eb33e1..e4c759c6a 100644 --- a/api/AltV.Net.Async/AsyncEntityPool.cs +++ b/api/AltV.Net.Async/AsyncEntityPool.cs @@ -58,9 +58,9 @@ public AsyncEntityPool(IEntityFactory entityFactory, bool forceAsync) this.forceAsync = forceAsync; } - public abstract ushort GetId(IntPtr entityPointer); + public abstract uint GetId(IntPtr entityPointer); - public TEntity Create(ICore core, IntPtr entityPointer, ushort id) + public TEntity Create(ICore core, IntPtr entityPointer, uint id) { if (entityPointer == IntPtr.Zero) return default; if (entities.TryGetValue(entityPointer, out var entity)) return entity; @@ -143,7 +143,7 @@ public TEntity GetOrCreate(ICore core, IntPtr entityPointer) return Create(core, entityPointer); } - public TEntity GetOrCreate(ICore core, IntPtr entityPointer, ushort id) + public TEntity GetOrCreate(ICore core, IntPtr entityPointer, uint id) { if (entityPointer == IntPtr.Zero) { diff --git a/api/AltV.Net.Async/AsyncResource.cs b/api/AltV.Net.Async/AsyncResource.cs index a5330fd25..18e897cd1 100644 --- a/api/AltV.Net.Async/AsyncResource.cs +++ b/api/AltV.Net.Async/AsyncResource.cs @@ -1,5 +1,6 @@ using System; using System.Runtime.Loader; +using AltV.Net.Async.Elements.Entities; using AltV.Net.Async.Elements.Factories; using AltV.Net.Async.Elements.Pools; using AltV.Net.CApi; @@ -31,12 +32,6 @@ public override void OnTick() altVAsync.TickDelegate(); } - public override IBaseEntityPool GetBaseEntityPool(IEntityPool playerPool, - IEntityPool vehiclePool) - { - return new AsyncBaseBaseObjectPool(playerPool, vehiclePool); - } - public override IEntityPool GetPlayerPool(IEntityFactory playerFactory) { return new AsyncPlayerPool(playerFactory, forceAsync); @@ -47,11 +42,26 @@ public override IEntityPool GetVehiclePool(IEntityFactory ve return new AsyncVehiclePool(vehicleFactory, forceAsync); } + public override IEntityPool GetPedPool(IEntityFactory pedFactory) + { + return new AsyncPedPool(pedFactory, forceAsync); + } + public override IBaseObjectPool GetBlipPool(IBaseObjectFactory blipFactory) { return new AsyncBlipPool(blipFactory, forceAsync); } + public override IBaseObjectPool GetVirtualEntityPool(IBaseObjectFactory virtualEntityFactory) + { + return new AsyncVirtualEntityPool(virtualEntityFactory, forceAsync); + } + + public override IBaseObjectPool GetVirtualEntityGroupPool(IBaseObjectFactory virtualEntityGroupFactory) + { + return new AsyncVirtualEntityGroupPool(virtualEntityGroupFactory, forceAsync); + } + public override IBaseObjectPool GetCheckpointPool( IBaseObjectFactory checkpointFactory) { @@ -68,18 +78,16 @@ public override IBaseObjectPool GetColShapePool(IBaseObjectFactory playerPool, - IEntityPool vehiclePool, - IBaseObjectPool blipPool, - IBaseObjectPool checkpointPool, - IBaseObjectPool voiceChannelPool, - IBaseObjectPool colShapePool, + + public override IBaseObjectPool GetMarkerPool(IBaseObjectFactory factory) + { + return new AsyncMarkerPool(factory, forceAsync); + } + + public override Core GetCore(IntPtr nativePointer, IntPtr resourcePointer, AssemblyLoadContext assemblyLoadContext, ILibrary library, IPoolManager poolManager, INativeResourcePool nativeResourcePool) { - return new AsyncCore(nativePointer, resourcePointer, assemblyLoadContext, library, baseBaseObjectPool, baseEntityPool, playerPool, vehiclePool, blipPool, checkpointPool, voiceChannelPool, colShapePool, nativeResourcePool); + return new AsyncCore(nativePointer, resourcePointer, assemblyLoadContext, library, poolManager, nativeResourcePool); } public override IBaseObjectFactory GetBlipFactory() @@ -107,9 +115,39 @@ public override IBaseObjectFactory GetColShapeFactory() return forceAsync ? new AsyncColShapeFactory() : base.GetColShapeFactory(); } + public override IEntityFactory GetPedFactory() + { + return forceAsync ? new AsyncPedFactory() : base.GetPedFactory(); + } + public override IBaseObjectFactory GetVoiceChannelFactory() { return forceAsync ? new AsyncVoiceChannelFactory() : base.GetVoiceChannelFactory(); } + + public override IBaseObjectFactory GetVirtualEntityFactory() + { + return forceAsync ? new AsyncVirtualEntityFactory() : base.GetVirtualEntityFactory(); + } + + public override IBaseObjectFactory GetVirtualEntityGroupFactory() + { + return forceAsync ? new AsyncVirtualEntityGroupFactory() : base.GetVirtualEntityGroupFactory(); + } + + public override IBaseObjectFactory GetMarkerFactory() + { + return forceAsync ? new AsyncMarkerFactory() : base.GetMarkerFactory(); + } + + public override IEntityFactory GetObjectFactory() + { + return forceAsync ? new AsyncObjectFactory() : base.GetObjectFactory(); + } + + public override IBaseObjectFactory GetConnectionInfoFactory() + { + return forceAsync ? new AsyncConnectionInfoFactory() : base.GetConnectionInfoFactory(); + } } } \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncBaseObject.cs b/api/AltV.Net.Async/Elements/Entities/AsyncBaseObject.cs index b6befcca3..ae74f8093 100644 --- a/api/AltV.Net.Async/Elements/Entities/AsyncBaseObject.cs +++ b/api/AltV.Net.Async/Elements/Entities/AsyncBaseObject.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; @@ -61,6 +61,15 @@ public void SetMetaData(string key, object value) } } + public void SetMetaData(Dictionary metaData) + { + lock (BaseObject) + { + if (!AsyncContext.CheckIfExistsNullable(BaseObject)) return; + this.BaseObject.SetMetaData(metaData); + } + } + public bool GetMetaData(string key, out T result) { AsyncContext?.RunAll(); @@ -220,5 +229,121 @@ public void Destroy() { AsyncContext.RunOnMainThreadBlockingNullable(() => BaseObject.Destroy()); } + + public bool HasSyncedMetaData(string key) + { + lock (BaseObject) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(BaseObject)) return default; + return BaseObject.HasSyncedMetaData(key); + } + } + + public void DeleteSyncedMetaData(string key) + { + lock (BaseObject) + { + if (!AsyncContext.CheckIfExistsNullable(BaseObject)) return; + BaseObject.DeleteSyncedMetaData(key); + } + } + + public bool GetSyncedMetaData(string key, out T1 result) + { + lock (BaseObject) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(BaseObject)) + { + result = default; + return false; + } + + return BaseObject.GetSyncedMetaData(key, out result); + } + } + + + public void SetSyncedMetaData(string key, object value) + { + lock (BaseObject) + { + if (!AsyncContext.CheckIfExistsNullable(BaseObject)) return; + BaseObject.SetSyncedMetaData(key, value); + } + } + + public void SetSyncedMetaData(Dictionary metaData) + { + lock (BaseObject) + { + if (!AsyncContext.CheckIfExistsNullable(BaseObject)) return; + BaseObject.SetSyncedMetaData(metaData); + } + } + + public void SetSyncedMetaData(string key, in MValueConst value) + { + lock (BaseObject) + { + if (!AsyncContext.CheckIfExistsNullable(BaseObject)) return; + BaseObject.SetSyncedMetaData(key, in value); + } + } + + public void GetSyncedMetaData(string key, out MValueConst value) + { + lock (BaseObject) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(BaseObject)) + { + value = MValueConst.Nil; + return; + } + + BaseObject.GetSyncedMetaData(key, out value); + } + } + + public bool GetSyncedMetaData(string key, out int value) + { + lock (BaseObject) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(BaseObject)) + { + value = default; + return false; + } + + return BaseObject.GetSyncedMetaData(key, out value); + } + } + + public bool GetSyncedMetaData(string key, out uint value) + { + lock (BaseObject) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(BaseObject)) + { + value = default; + return false; + } + + return BaseObject.GetSyncedMetaData(key, out value); + } + } + + public bool GetSyncedMetaData(string key, out float value) + { + lock (BaseObject) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(BaseObject)) + { + value = default; + return false; + } + + return BaseObject.GetSyncedMetaData(key, out value); + } + } } } \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncBlip.cs b/api/AltV.Net.Async/Elements/Entities/AsyncBlip.cs index f13051083..5c9af23fb 100644 --- a/api/AltV.Net.Async/Elements/Entities/AsyncBlip.cs +++ b/api/AltV.Net.Async/Elements/Entities/AsyncBlip.cs @@ -1,4 +1,5 @@ -using System; +using System; +using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Numerics; using AltV.Net.Data; @@ -12,6 +13,34 @@ public class AsyncBlip : AsyncWorldObject, IBlip, IAsyncConvertible { protected readonly IBlip Blip; public IntPtr BlipNativePointer => Blip.BlipNativePointer; + bool IBlip.IsGlobal { get; set; } + public void AddTargetPlayer(IPlayer player) + { + lock (Blip) + { + if (!AsyncContext.CheckIfExistsNullable(Blip)) return; + Blip.AddTargetPlayer(player); + } + } + + public void RemoveTargetPlayer(IPlayer player) + { + lock (Blip) + { + if (!AsyncContext.CheckIfExistsNullable(Blip)) return; + Blip.RemoveTargetPlayer(player); + } + } + + public IReadOnlyCollection GetTargets() + { + lock (Blip) + { + if (!AsyncContext.CheckIfExistsNullable(Blip)) return default; + return Blip.GetTargets(); + } + } + public bool IsGlobal { get @@ -22,8 +51,18 @@ public bool IsGlobal return Blip.IsGlobal; } } + set + { + lock (Blip) + { + if (!AsyncContext.CheckIfExistsNullable(Blip)) return; + Blip.IsGlobal = value; + } + } } + byte IBlip.BlipType { get; set; } + public bool IsAttached { get @@ -60,7 +99,7 @@ public byte BlipType } } - public ushort Sprite + public uint Sprite { get { @@ -79,7 +118,7 @@ public ushort Sprite } } - public byte Color + public uint Color { get { @@ -155,7 +194,7 @@ public Vector2 ScaleXY } } - public short Display + public uint Display { get { @@ -193,7 +232,7 @@ public Rgba SecondaryColor } } - public byte Alpha + public uint Alpha { get { @@ -383,7 +422,7 @@ public bool ShortRange } } - public ushort Priority + public uint Priority { get { @@ -573,7 +612,7 @@ public bool CrewIndicatorVisible } } - public ushort Category + public uint Category { get { @@ -635,7 +674,7 @@ public AsyncBlip(IBlip blip, IAsyncContext asyncContext) : base(blip, asyncConte Blip = blip; } - public AsyncBlip(ICore core, IntPtr nativePointer) : this(new Blip(core, nativePointer), null) + public AsyncBlip(ICore core, IntPtr nativePointer, uint id) : this(new Blip(core, nativePointer, id), null) { } @@ -648,6 +687,102 @@ public void Fade(uint opacity, uint duration) } } + public bool Visible + { + get + { + lock (Blip) + { + if (!AsyncContext.CheckIfExistsNullable(Blip)) return default; + return Blip.Visible; + } + } + set { + lock (Blip) + { + if (!AsyncContext.CheckIfExistsNullable(Blip)) return; + Blip.Visible = value; + } + } + } + + public bool IsHiddenOnLegend + { + get + { + lock (Blip) + { + if (!AsyncContext.CheckIfExistsNullable(Blip)) return default; + return Blip.IsHiddenOnLegend; + } + } + set { + lock (Blip) + { + if (!AsyncContext.CheckIfExistsNullable(Blip)) return; + Blip.IsHiddenOnLegend = value; + } + } + } + + public bool IsMinimalOnEdge + { + get + { + lock (Blip) + { + if (!AsyncContext.CheckIfExistsNullable(Blip)) return default; + return Blip.IsMinimalOnEdge; + } + } + set { + lock (Blip) + { + if (!AsyncContext.CheckIfExistsNullable(Blip)) return; + Blip.IsMinimalOnEdge = value; + } + } + } + + public bool IsUseHeightIndicatorOnEdge + { + get + { + lock (Blip) + { + if (!AsyncContext.CheckIfExistsNullable(Blip)) return default; + return Blip.IsUseHeightIndicatorOnEdge; + } + } + set { + lock (Blip) + { + if (!AsyncContext.CheckIfExistsNullable(Blip)) return; + Blip.IsUseHeightIndicatorOnEdge = value; + } + } + } + + public bool IsShortHeightThreshold + { + get + { + lock (Blip) + { + if (!AsyncContext.CheckIfExistsNullable(Blip)) return default; + return Blip.IsShortHeightThreshold; + } + } + set { + lock (Blip) + { + if (!AsyncContext.CheckIfExistsNullable(Blip)) return; + Blip.IsShortHeightThreshold = value; + } + } + } + + [Obsolete("Use new async API instead")] public IBlip ToAsync(IAsyncContext asyncContext) { diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncCheckpoint.cs b/api/AltV.Net.Async/Elements/Entities/AsyncCheckpoint.cs index e4565c2a5..2c5dc40e5 100644 --- a/api/AltV.Net.Async/Elements/Entities/AsyncCheckpoint.cs +++ b/api/AltV.Net.Async/Elements/Entities/AsyncCheckpoint.cs @@ -1,6 +1,8 @@ using System; +using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using AltV.Net.Data; +using AltV.Net.Elements.Args; using AltV.Net.Elements.Entities; namespace AltV.Net.Async.Elements.Entities @@ -11,7 +13,7 @@ public class AsyncCheckpoint : AsyncColShape, ICheckpoint, IAsyncConvertible Checkpoint.CheckpointNativePointer; - + public byte CheckpointType { get @@ -98,7 +100,8 @@ public Position NextPosition return Checkpoint.NextPosition; } } - set { + set + { lock (Checkpoint) { if (!AsyncContext.CheckIfExistsNullable(Checkpoint)) return; @@ -107,19 +110,166 @@ public Position NextPosition } } + public bool Visible + { + get + { + lock (Checkpoint) + { + if (!AsyncContext.CheckIfExistsNullable(Checkpoint)) return default; + return Checkpoint.Visible; + } + } + set + { + lock (Checkpoint) + { + if (!AsyncContext.CheckIfExistsNullable(Checkpoint)) return; + Checkpoint.Visible = value; + } + } + } + + public uint StreamingDistance + { + get + { + lock (Checkpoint) + { + if (!AsyncContext.CheckIfExistsNullable(Checkpoint)) return default; + return Checkpoint.StreamingDistance; + } + } + } + public AsyncCheckpoint(ICheckpoint checkpoint, IAsyncContext asyncContext) : base(checkpoint, asyncContext) { Checkpoint = checkpoint; } - public AsyncCheckpoint(ICore core, IntPtr nativePointer) : this(new Checkpoint(core, nativePointer), null) + public AsyncCheckpoint(ICore core, IntPtr nativePointer, uint id) : this(new Checkpoint(core, nativePointer, id), null) { } - + [Obsolete("Use new async API instead")] public ICheckpoint ToAsync(IAsyncContext asyncContext) { return this; } + + public void SetStreamSyncedMetaData(string key, object value) + { + lock (Checkpoint) + { + if (!AsyncContext.CheckIfExistsNullable(Checkpoint)) return; + Checkpoint.SetStreamSyncedMetaData(key, value); + } + } + + public void SetStreamSyncedMetaData(Dictionary metaData) + { + lock (Checkpoint) + { + if (!AsyncContext.CheckIfExistsNullable(Checkpoint)) return; + Checkpoint.SetStreamSyncedMetaData(metaData); + } + } + + public void SetStreamSyncedMetaData(string key, in MValueConst value) + { + lock (Checkpoint) + { + if (!AsyncContext.CheckIfExistsNullable(Checkpoint)) return; + Checkpoint.SetStreamSyncedMetaData(key, value); + } + } + + public void DeleteStreamSyncedMetaData(string key) + { + lock (Checkpoint) + { + if (!AsyncContext.CheckIfExistsNullable(Checkpoint)) return; + Checkpoint.DeleteStreamSyncedMetaData(key); + } + } + + public bool HasStreamSyncedMetaData(string key) + { + lock (Checkpoint) + { + if (!AsyncContext.CheckIfExistsNullable(Checkpoint)) return default; + return Checkpoint.HasStreamSyncedMetaData(key); + } + } + + public bool GetStreamSyncedMetaData(string key, out int value) + { + lock (Checkpoint) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Checkpoint)) + { + value = default; + return false; + } + + return Checkpoint.GetStreamSyncedMetaData(key, out value); + } + } + + public bool GetStreamSyncedMetaData(string key, out uint value) + { + lock (Checkpoint) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Checkpoint)) + { + value = default; + return false; + } + + return Checkpoint.GetStreamSyncedMetaData(key, out value); + } + } + + public bool GetStreamSyncedMetaData(string key, out float value) + { + lock (Checkpoint) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Checkpoint)) + { + value = default; + return false; + } + + return Checkpoint.GetStreamSyncedMetaData(key, out value); + } + } + + public void GetStreamSyncedMetaData(string key, out MValueConst value) + { + lock (Checkpoint) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Checkpoint)) + { + value = default; + return; + } + + Checkpoint.GetStreamSyncedMetaData(key, out value); + } + } + + public bool GetStreamSyncedMetaData(string key, out T value) + { + lock (Checkpoint) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Checkpoint)) + { + value = default; + return false; + } + + return Checkpoint.GetStreamSyncedMetaData(key, out value); + } + } } } \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncColShape.cs b/api/AltV.Net.Async/Elements/Entities/AsyncColShape.cs index 11a4542cd..69565bfa9 100644 --- a/api/AltV.Net.Async/Elements/Entities/AsyncColShape.cs +++ b/api/AltV.Net.Async/Elements/Entities/AsyncColShape.cs @@ -12,7 +12,7 @@ public class AsyncColShape : AsyncWorldObject, IColShape, IAsyncConvertible ColShape.ColShapeNativePointer; - + public ColShapeType ColShapeType { get @@ -48,16 +48,12 @@ public AsyncColShape(IColShape colShape, IAsyncContext asyncContext) : base(colS { ColShape = colShape; } - - public AsyncColShape(ICore core, IntPtr nativePointer) : this(new ColShape(core, nativePointer), null) - { - } - - public AsyncColShape(ICore core, IntPtr nativePointer, BaseObjectType baseObjectType) : this(new ColShape(core, nativePointer, baseObjectType), null) + + public AsyncColShape(ICore core, IntPtr nativePointer, uint id) : this(new ColShape(core, nativePointer, id), null) { } - public bool IsEntityIdIn(ushort id) + public bool IsEntityIdIn(uint id) { lock (ColShape) { diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncConnectionInfo.cs b/api/AltV.Net.Async/Elements/Entities/AsyncConnectionInfo.cs new file mode 100644 index 000000000..141fd738f --- /dev/null +++ b/api/AltV.Net.Async/Elements/Entities/AsyncConnectionInfo.cs @@ -0,0 +1,246 @@ +using System; +using System.Threading.Tasks; +using AltV.Net.Data; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Async.Elements.Entities; + +public class AsyncConnectionInfo : AsyncBaseObject, IConnectionInfo, IAsyncConvertible +{ + protected readonly IConnectionInfo ConnectionInfo; + public IntPtr ConnectionInfoNativePointer => ConnectionInfo.ConnectionInfoNativePointer; + public AsyncConnectionInfo(IConnectionInfo connectionInfo, IAsyncContext asyncContext) : base(connectionInfo, asyncContext) + { + ConnectionInfo = connectionInfo; + } + + public AsyncConnectionInfo(ICore core, IntPtr nativePointer, uint id) : this(new ConnectionInfo(core, nativePointer, id), + null) + { + } + + public string Name + { + get + { + lock (ConnectionInfo) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return default; + return ConnectionInfo.Name; + } + } + } + public ulong SocialId + { + get + { + lock (ConnectionInfo) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return default; + return ConnectionInfo.SocialId; + } + } + } + public ulong HardwareIdHash + { + get + { + lock (ConnectionInfo) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return default; + return ConnectionInfo.HardwareIdHash; + } + } + } + public ulong HardwareIdExHash + { + get + { + lock (ConnectionInfo) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return default; + return ConnectionInfo.HardwareIdExHash; + } + } + } + public string AuthToken + { + get + { + lock (ConnectionInfo) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return default; + return ConnectionInfo.AuthToken; + } + } + } + public bool IsDebug + { + get + { + lock (ConnectionInfo) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return default; + return ConnectionInfo.IsDebug; + } + } + } + public string Branch + { + get + { + lock (ConnectionInfo) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return default; + return ConnectionInfo.Branch; + } + } + } + public uint Build + { + get + { + lock (ConnectionInfo) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return default; + return ConnectionInfo.Build; + } + } + } + public string CdnUrl + { + get + { + lock (ConnectionInfo) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return default; + return ConnectionInfo.CdnUrl; + } + } + } + public ulong PasswordHash + { + get + { + lock (ConnectionInfo) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return default; + return ConnectionInfo.PasswordHash; + } + } + } + public string Ip + { + get + { + lock (ConnectionInfo) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return default; + return ConnectionInfo.Ip; + } + } + } + public long DiscordUserId + { + get + { + lock (ConnectionInfo) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return default; + return ConnectionInfo.DiscordUserId; + } + } + } + public string SocialName + { + get + { + lock (ConnectionInfo) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return default; + return ConnectionInfo.SocialName; + } + } + } + + public string Text + { + get + { + lock (ConnectionInfo) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return default; + return ConnectionInfo.Text; + } + } + set + { + lock (ConnectionInfo) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return; + ConnectionInfo.Text = value; + } + } + } + + public bool IsAccepted + { + get + { + lock (ConnectionInfo) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return default; + return ConnectionInfo.IsAccepted; + } + } + } + + public void Accept(bool sendNames = true) + { + lock (ConnectionInfo) + { + if (!AsyncContext.CheckIfExistsNullable(ConnectionInfo)) return; + ConnectionInfo.Accept(sendNames); + } + } + + public void Decline(string reason) + { + lock (ConnectionInfo) + { + if (!AsyncContext.CheckIfExistsNullable(ConnectionInfo)) return; + ConnectionInfo.Decline(reason); + } + } + + public string CloudId + { + get + { + lock (ConnectionInfo) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return default; + return ConnectionInfo.CloudId; + } + } + } + + public CloudAuthResult CloudAuthResult + { + get + { + lock (ConnectionInfo) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(ConnectionInfo)) return default; + return ConnectionInfo.CloudAuthResult; + } + } + } + + + [Obsolete("Use new async API instead")] + public IConnectionInfo ToAsync(IAsyncContext asyncContext) + { + return this; + } +} \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncEntity.cs b/api/AltV.Net.Async/Elements/Entities/AsyncEntity.cs index 3c28f6b78..0bfd3b9af 100644 --- a/api/AltV.Net.Async/Elements/Entities/AsyncEntity.cs +++ b/api/AltV.Net.Async/Elements/Entities/AsyncEntity.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using AltV.Net.Data; using AltV.Net.Elements.Args; @@ -13,8 +14,8 @@ public class AsyncEntity : AsyncWorldObject, IEntity { protected readonly IEntity Entity; public IntPtr EntityNativePointer => Entity.EntityNativePointer; - - public ushort Id => Entity.Id; + + public uint Id => Entity.Id; public IPlayer NetworkOwner { @@ -27,8 +28,9 @@ public IPlayer NetworkOwner } } } + ISharedPlayer ISharedEntity.NetworkOwner => NetworkOwner; - + public Rotation Rotation { get @@ -39,7 +41,8 @@ public Rotation Rotation return Entity.Rotation; } } - set { + set + { lock (Entity) { if (!AsyncContext.CheckIfExistsNullable(Entity)) return; @@ -70,7 +73,8 @@ public bool Visible return Entity.Visible; } } - set { + set + { lock (Entity) { if (!AsyncContext.CheckIfExistsNullable(Entity)) return; @@ -89,7 +93,8 @@ public bool Streamed return Entity.Streamed; } } - set { + set + { lock (Entity) { if (!AsyncContext.CheckIfExistsNullable(Entity)) return; @@ -121,35 +126,21 @@ public void ResetNetworkOwner() } } - public void SetSyncedMetaData(string key, object value) + public void SetStreamSyncedMetaData(string key, object value) { lock (Entity) { if (!AsyncContext.CheckIfExistsNullable(Entity)) return; - Entity.SetSyncedMetaData(key, value); - } - } - - public bool GetSyncedMetaData(string key, out T1 result) - { - lock (Entity) - { - if (!AsyncContext.CheckIfExistsOrCachedNullable(Entity)) - { - result = default; - return false; - } - - return Entity.GetSyncedMetaData(key, out result); + Entity.SetStreamSyncedMetaData(key, value); } } - public void SetStreamSyncedMetaData(string key, object value) + public void SetStreamSyncedMetaData(Dictionary metaData) { lock (Entity) { if (!AsyncContext.CheckIfExistsNullable(Entity)) return; - Entity.SetStreamSyncedMetaData(key, value); + Entity.SetStreamSyncedMetaData(metaData); } } @@ -167,71 +158,6 @@ public bool GetStreamSyncedMetaData(string key, out T1 result) } } - public void SetSyncedMetaData(string key, in MValueConst value) - { - lock (Entity) - { - if (!AsyncContext.CheckIfExistsNullable(Entity)) return; - Entity.SetSyncedMetaData(key, in value); - } - } - - public void GetSyncedMetaData(string key, out MValueConst value) - { - lock (Entity) - { - if (!AsyncContext.CheckIfExistsOrCachedNullable(Entity)) - { - value = MValueConst.Nil; - return; - } - - Entity.GetSyncedMetaData(key, out value); - } - } - - public bool GetSyncedMetaData(string key, out int value) - { - lock (Entity) - { - if (!AsyncContext.CheckIfExistsOrCachedNullable(Entity)) - { - value = default; - return false; - } - - return Entity.GetSyncedMetaData(key, out value); - } - } - - public bool GetSyncedMetaData(string key, out uint value) - { - lock (Entity) - { - if (!AsyncContext.CheckIfExistsOrCachedNullable(Entity)) - { - value = default; - return false; - } - - return Entity.GetSyncedMetaData(key, out value); - } - } - - public bool GetSyncedMetaData(string key, out float value) - { - lock (Entity) - { - if (!AsyncContext.CheckIfExistsOrCachedNullable(Entity)) - { - value = default; - return false; - } - - return Entity.GetSyncedMetaData(key, out value); - } - } - public void SetStreamSyncedMetaData(string key, in MValueConst value) { lock (Entity) @@ -297,24 +223,6 @@ public bool GetStreamSyncedMetaData(string key, out float value) } } - public bool HasSyncedMetaData(string key) - { - lock (Entity) - { - if (!AsyncContext.CheckIfExistsOrCachedNullable(Entity)) return default; - return Entity.HasSyncedMetaData(key); - } - } - - public void DeleteSyncedMetaData(string key) - { - lock (Entity) - { - if (!AsyncContext.CheckIfExistsNullable(Entity)) return; - Entity.DeleteSyncedMetaData(key); - } - } - public bool HasStreamSyncedMetaData(string key) { lock (Entity) @@ -333,17 +241,19 @@ public void DeleteStreamSyncedMetaData(string key) } } - public void AttachToEntity(IEntity entity, short otherBone, short ownBone, Position position, Rotation rotation, + public void AttachToEntity(IEntity entity, ushort otherBoneId, ushort ownBoneId, Position position, + Rotation rotation, bool collision, bool noFixedRotation) { lock (Entity) { if (!AsyncContext.CheckIfExistsNullable(Entity)) return; - Entity.AttachToEntity(entity, otherBone, ownBone, position, rotation, collision, noFixedRotation); + Entity.AttachToEntity(entity, otherBoneId, ownBoneId, position, rotation, collision, noFixedRotation); } } - public void AttachToEntity(IEntity entity, string otherBone, string ownBone, Position position, Rotation rotation, + public void AttachToEntity(IEntity entity, string otherBone, string ownBone, Position position, + Rotation rotation, bool collision, bool noFixedRotation) { lock (Entity) @@ -362,6 +272,38 @@ public void Detach() } } + public uint Timestamp + { + get + { + lock (Entity) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Entity)) return default; + return Entity.Timestamp; + } + } + } + + public uint StreamingDistance + { + get + { + lock (Entity) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Entity)) return default; + return Entity.StreamingDistance; + } + } + set + { + lock (Entity) + { + if (!AsyncContext.CheckIfExistsNullable(Entity)) return; + Entity.StreamingDistance = value; + } + } + } + public bool Frozen { get @@ -372,7 +314,8 @@ public bool Frozen return Entity.Frozen; } } - set { + set + { lock (Entity) { if (!AsyncContext.CheckIfExistsNullable(Entity)) return; @@ -391,7 +334,8 @@ public bool Collision return Entity.Collision; } } - set { + set + { lock (Entity) { if (!AsyncContext.CheckIfExistsNullable(Entity)) return; diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncMarker.cs b/api/AltV.Net.Async/Elements/Entities/AsyncMarker.cs new file mode 100644 index 000000000..34771efe5 --- /dev/null +++ b/api/AltV.Net.Async/Elements/Entities/AsyncMarker.cs @@ -0,0 +1,246 @@ +using System; +using System.Diagnostics.CodeAnalysis; +using System.Numerics; +using AltV.Net.Data; +using AltV.Net.Elements.Entities; +using AltV.Net.Shared.Elements.Entities; +using AltV.Net.Shared.Enums; + +namespace AltV.Net.Async.Elements.Entities +{ + [SuppressMessage("ReSharper", + "InconsistentlySynchronizedField")] // we sometimes use object in lock and sometimes not + public class AsyncMarker : AsyncWorldObject, IMarker, IAsyncConvertible + { + protected readonly IMarker Marker; + public IntPtr MarkerNativePointer => Marker.MarkerNativePointer; + public uint Id => Marker.Id; + + public AsyncMarker(IMarker marker, IAsyncContext asyncContext) : base(marker, asyncContext) + { + Marker = marker; + } + + public AsyncMarker(ICore core, IntPtr nativePointer, uint id) : this(new Marker(core, nativePointer, id), null) + { + } + + [Obsolete("Use new async API instead")] + public IMarker ToAsync(IAsyncContext asyncContext) + { + return this; + } + + public bool IsGlobal + { + get + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return default; + return Marker.IsGlobal; + } + } + } + + public ISharedPlayer Target + { + get + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return default; + return Marker.Target; + } + } + } + + public Rgba Color + { + get + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return default; + return Marker.Color; + } + } + set + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return; + Marker.Color = value; + } + } + } + + public bool Visible + { + get + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return default; + return Marker.Visible; + } + } + set + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return; + Marker.Visible = value; + } + } + } + public MarkerType MarkerType + { + get + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return default; + return Marker.MarkerType; + } + } + set + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return; + Marker.MarkerType = value; + } + } + } + public Position Scale + { + get + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return default; + return Marker.Scale; + } + } + set + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return; + Marker.Scale = value; + } + } + } + public Rotation Rotation + { + get + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return default; + return Marker.Rotation; + } + } + set + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return; + Marker.Rotation = value; + } + } + } + public Position Direction + { + get + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return default; + return Marker.Direction; + } + } + set + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return; + Marker.Direction = value; + } + } + } + + public uint StreamingDistance + { + get + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return default; + return Marker.StreamingDistance; + } + } + } + + public bool IsFaceCamera + { + get + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return default; + return Marker.IsFaceCamera; + } + } + set + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return; + Marker.IsFaceCamera = value; + } + } + } + + public bool IsRotating + { + get + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return default; + return Marker.IsRotating; + } + } + set + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return; + Marker.IsRotating = value; + } + } + } + + public bool IsBobUpDown + { + get + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return default; + return Marker.IsBobUpDown; + } + } + set + { + lock (Marker) + { + if (!AsyncContext.CheckIfExistsNullable(Marker)) return; + Marker.IsBobUpDown = value; + } + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncObject.cs b/api/AltV.Net.Async/Elements/Entities/AsyncObject.cs new file mode 100644 index 000000000..35fb8ddab --- /dev/null +++ b/api/AltV.Net.Async/Elements/Entities/AsyncObject.cs @@ -0,0 +1,106 @@ +using System; +using AltV.Net.Data; +using AltV.Net.Elements.Entities; +using Object = AltV.Net.Elements.Entities.Object; + +namespace AltV.Net.Async.Elements.Entities; + +public class AsyncObject : AsyncEntity, IObject, IAsyncConvertible +{ + protected readonly IObject Object; + public IntPtr ObjectNativePointer => Object.ObjectNativePointer; + + public AsyncObject(IObject @object, IAsyncContext asyncContext) : base(@object, asyncContext) + { + Object = @object; + } + + public AsyncObject(ICore core, IntPtr nativePointer, uint id) : this(new Object(core, nativePointer, id), + null) + { + } + + public byte Alpha + { + get + { + lock (Object) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Object)) return default; + return Object.Alpha; + } + } + set + { + lock (Object) + { + if (!AsyncContext.CheckIfExistsNullable(Object)) return; + Object.Alpha = value; + } + } + } + + public ushort LodDistance + { + get + { + lock (Object) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Object)) return default; + return Object.LodDistance; + } + } + set + { + lock (Object) + { + if (!AsyncContext.CheckIfExistsNullable(Object)) return; + Object.LodDistance = value; + } + } + } + + public void PlaceOnGroundProperly() + { + lock (Object) + { + if (!AsyncContext.CheckIfExistsNullable(Object)) return; + Object.PlaceOnGroundProperly(); + } + } + + public void ActivatePhysics() + { + lock (Object) + { + if (!AsyncContext.CheckIfExistsNullable(Object)) return; + Object.ActivatePhysics(); + } + } + + public byte TextureVariation + { + get + { + lock (Object) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Object)) return default; + return Object.TextureVariation; + } + } + set + { + lock (Object) + { + if (!AsyncContext.CheckIfExistsNullable(Object)) return; + Object.TextureVariation = value; + } + } + } + + [Obsolete("Use new async API instead")] + public IObject ToAsync(IAsyncContext asyncContext) + { + return this; + } +} \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncPed.cs b/api/AltV.Net.Async/Elements/Entities/AsyncPed.cs new file mode 100644 index 000000000..4df1868ff --- /dev/null +++ b/api/AltV.Net.Async/Elements/Entities/AsyncPed.cs @@ -0,0 +1,111 @@ +using System; +using System.Diagnostics.CodeAnalysis; +using AltV.Net.Data; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Async.Elements.Entities; + +[SuppressMessage("ReSharper", + "InconsistentlySynchronizedField")] // we sometimes use object in lock and sometimes not +public class AsyncPed : AsyncEntity, IPed, IAsyncConvertible +{ + protected readonly IPed Ped; + public IntPtr PedNativePointer => Ped.PedNativePointer; + + public AsyncPed(IPed ped, IAsyncContext asyncContext) : base(ped, asyncContext) + { + Ped = ped; + } + + public AsyncPed(ICore core, IntPtr nativePointer, uint id) : this(new Ped(core, nativePointer, id), + null) + { + } + + [Obsolete("Use new async API instead")] + public IPed ToAsync(IAsyncContext asyncContext) + { + return this; + } + + public ushort Armour + { + get + { + lock (Ped) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Ped)) return default; + return Ped.Armour; + } + } + set + { + lock (Ped) + { + if (!AsyncContext.CheckIfExistsNullable(Ped)) return; + Ped.Armour = value; + } + } + } + + public ushort Health + { + get + { + lock (Ped) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Ped)) return default; + return Ped.Health; + } + } + set + { + lock (Ped) + { + if (!AsyncContext.CheckIfExistsNullable(Ped)) return; + Ped.Health = value; + } + } + } + + public ushort MaxHealth + { + get + { + lock (Ped) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Ped)) return default; + return Ped.MaxHealth; + } + } + set + { + lock (Ped) + { + if (!AsyncContext.CheckIfExistsNullable(Ped)) return; + Ped.MaxHealth = value; + } + } + } + + public uint CurrentWeapon + { + get + { + lock (Ped) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Ped)) return default; + return Ped.CurrentWeapon; + } + } + set + { + lock (Ped) + { + if (!AsyncContext.CheckIfExistsNullable(Ped)) return; + Ped.CurrentWeapon = value; + } + } + } + +} \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncPlayer.cs b/api/AltV.Net.Async/Elements/Entities/AsyncPlayer.cs index 09c74395a..3ff5b6c14 100644 --- a/api/AltV.Net.Async/Elements/Entities/AsyncPlayer.cs +++ b/api/AltV.Net.Async/Elements/Entities/AsyncPlayer.cs @@ -1,11 +1,13 @@ using System; using System.Diagnostics.CodeAnalysis; using System.Runtime.InteropServices; +using System.Threading.Tasks; using AltV.Net.Data; using AltV.Net.Elements.Args; using AltV.Net.Elements.Entities; using AltV.Net.Native; using AltV.Net.Shared.Elements.Entities; +using AltV.Net.Shared.Utils; namespace AltV.Net.Async.Elements.Entities { @@ -15,7 +17,7 @@ public class AsyncPlayer : AsyncEntity, IPlayer, IAsyncConvertible { protected readonly IPlayer Player; public IntPtr PlayerNativePointer => Player.PlayerNativePointer; - + public new uint Model { get @@ -232,6 +234,66 @@ public bool IsReloading } } + public bool IsEnteringVehicle + { + get + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Player)) return default; + return Player.IsEnteringVehicle; + } + } + } + + public bool IsLeavingVehicle + { + get + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Player)) return default; + return Player.IsLeavingVehicle; + } + } + } + + public bool IsOnLadder + { + get + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Player)) return default; + return Player.IsOnLadder; + } + } + } + + public bool IsInMelee + { + get + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Player)) return default; + return Player.IsInMelee; + } + } + } + + public bool IsInCover + { + get + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Player)) return default; + return Player.IsInCover; + } + } + } + public ushort Armor { get @@ -400,7 +462,7 @@ public uint InteriorLocation } } } - + ISharedEntity ISharedPlayer.EntityAimingAt => EntityAimingAt; public Position EntityAimOffset @@ -504,7 +566,7 @@ public AsyncPlayer(IPlayer player, IAsyncContext asyncContext) : base(player, as Player = player; } - public AsyncPlayer(ICore core, IntPtr nativePointer, ushort id) : this(new Player(core, nativePointer, id), null) + public AsyncPlayer(ICore core, IntPtr nativePointer, uint id) : this(new Player(core, nativePointer, id), null) { } @@ -535,6 +597,15 @@ public void SetDateTime(int day, int month, int year, int hour, int minute, int } } + public void SetDateTime(DateTime dateTime) + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return; + Player.SetDateTime(dateTime); + } + } + public void SetWeather(uint weather) { lock (Player) @@ -562,12 +633,21 @@ public bool RemoveWeapon(uint weapon) } } - public void RemoveAllWeapons() + public void RemoveAllWeapons(bool removeAllAmmo) { lock (Player) { if (!AsyncContext.CheckIfExistsNullable(Player)) return; - Player.RemoveAllWeapons(); + Player.RemoveAllWeapons(removeAllAmmo); + } + } + + public bool HasWeapon(uint weapon) + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return default; + return Player.HasWeapon(weapon); } } @@ -585,7 +665,7 @@ public void Emit(string eventName, params object[] args) var size = args.Length; var mValues = new MValueConst[size]; MValueConstLockedNoRefs.CreateFromObjectsLocked(args, mValues); - var eventNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(eventName); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); lock (Player) { if (Player.Exists) @@ -602,6 +682,70 @@ public void Emit(string eventName, params object[] args) Marshal.FreeHGlobal(eventNamePtr); } + public ushort EmitRPC(string name, params object[] args) + { + var size = args.Length; + var mValues = new MValueConst[size]; + MValueConstLockedNoRefs.CreateFromObjectsLocked(args, mValues); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(name); + ushort result = 0; + lock (Player) + { + if (Player.Exists) + { + Alt.Core.TriggerClientRPC(Player, eventNamePtr, mValues); + } + } + + for (var i = 0; i < size; i++) + { + mValues[i].Dispose(); + } + + Marshal.FreeHGlobal(eventNamePtr); + + return result; + } + + public void EmitRPCAnswer(ushort answerId, object answer, string error) + { + MValueConstLockedNoRefs.CreateFromObjectLocked(answer, out MValueConst mValue); + var errorPtr = MemoryUtils.StringToHGlobalUtf8(error); + lock (Player) + { + if (Player.Exists) + { + Alt.Core.TriggerClientRPCAnswer(Player, answerId, mValue, errorPtr); + } + } + + mValue.Dispose(); + + Marshal.FreeHGlobal(errorPtr); + } + + public void EmitUnreliable(string eventName, params object[] args) + { + var size = args.Length; + var mValues = new MValueConst[size]; + MValueConstLockedNoRefs.CreateFromObjectsLocked(args, mValues); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); + lock (Player) + { + if (Player.Exists) + { + Alt.Core.TriggerClientEventUnreliable(Player, eventNamePtr, mValues); + } + } + + for (var i = 0; i < size; i++) + { + mValues[i].Dispose(); + } + + Marshal.FreeHGlobal(eventNamePtr); + } + public void AddWeaponComponent(uint weapon, uint weaponComponent) { lock (Player) @@ -643,6 +787,18 @@ public void GetCurrentWeaponComponents(out uint[] weaponComponents) } } + public bool IsParachuting + { + get + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Player)) return default; + return Player.IsParachuting; + } + } + } + public void SetWeaponTintIndex(uint weapon, byte tintIndex) { lock (Player) @@ -1137,6 +1293,252 @@ public bool SendNames } } + public void PlayAnimation(string animDict, string animName, float blendInSpeed, float blendOutSpeed, int duration, int flags, + float playbackRate, bool lockX, bool lockY, bool lockZ) + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return; + Player.PlayAnimation( animDict, animName, blendInSpeed, blendOutSpeed, duration, flags, playbackRate, lockX, lockY, lockZ); + } + } + + public void ClearTasks() + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return; + Player.ClearTasks(); + } + } + + public string SocialClubName + { + get + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Player)) return default; + return Player.SocialClubName; + } + } + } + + public void SetAmmo(uint ammoHash, ushort ammo) + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return; + Player.SetAmmo(ammoHash, ammo); + } + } + + public ushort GetAmmo(uint ammoHash) + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return default; + return Player.GetAmmo(ammoHash); + } + } + + public void SetWeaponAmmo(uint weaponHash, ushort ammo) + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return; + Player.SetWeaponAmmo(weaponHash, ammo); + } + } + + public ushort GetWeaponAmmo(uint weaponHash) + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return default; + return Player.GetWeaponAmmo(weaponHash); + } + } + + public void SetAmmoSpecialType(uint ammoHash, AmmoSpecialType ammoSpecialType) + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return; + Player.SetAmmoSpecialType(ammoHash, ammoSpecialType); + } + } + + public AmmoSpecialType GetAmmoSpecialType(uint ammoHash) + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return default; + return Player.GetAmmoSpecialType(ammoHash); + } + } + + public void SetAmmoFlags(uint ammoHash, AmmoFlags ammoFlags) + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return; + Player.SetAmmoFlags(ammoHash, ammoFlags); + } + } + + public AmmoFlags GetAmmoFlags(uint ammoHash) + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return default; + return Player.GetAmmoFlags(ammoHash); + } + } + + public void SetAmmoMax(uint ammoHash, int ammoMax) + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return; + Player.SetAmmoMax(ammoHash, ammoMax); + } + } + + public int GetAmmoMax(uint ammoHash) + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return default; + return Player.GetAmmoMax(ammoHash); + } + } + + public void SetAmmoMax50(uint ammoHash, int ammoMax) + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return; + Player.SetAmmoMax50(ammoHash, ammoMax); + } + } + + public int GetAmmoMax50(uint ammoHash) + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return default; + return Player.GetAmmoMax50(ammoHash); + } + } + + public void SetAmmoMax100(uint ammoHash, int ammoMax) + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return; + Player.SetAmmoMax100(ammoHash, ammoMax); + } + } + + public int GetAmmoMax100(uint ammoHash) + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return default; + return Player.GetAmmoMax100(ammoHash); + } + } + + public void AddDecoration(uint collection, uint overlay) + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return; + Player.AddDecoration(collection, overlay); + } + } + + public void RemoveDecoration(uint collection, uint overlay) + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return; + Player.RemoveDecoration(collection, overlay); + } + } + + public void ClearDecorations() + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return; + Player.ClearDecorations(); + } + } + + public Decoration[] GetDecorations() + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return default; + return Player.GetDecorations(); + } + } + + public void PlayScenario(string name) + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return; + Player.PlayScenario(name); + } + } + + public string CloudId + { + get + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Player)) return default; + return Player.CloudId; + } + } + } + + public CloudAuthResult CloudAuthResult + { + get + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Player)) return default; + return Player.CloudAuthResult; + } + } + } + + public string BloodDamage + { + get + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Player)) return default; + return Player.BloodDamage; + } + } + set + { + lock (Player) + { + if (!AsyncContext.CheckIfExistsNullable(Player)) return; + Player.BloodDamage = value; + } + } + } + [Obsolete("Use new async API instead")] public IPlayer ToAsync(IAsyncContext asyncContext) { diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncVehicle.cs b/api/AltV.Net.Async/Elements/Entities/AsyncVehicle.cs index 39502f8da..f1dc2fb86 100644 --- a/api/AltV.Net.Async/Elements/Entities/AsyncVehicle.cs +++ b/api/AltV.Net.Async/Elements/Entities/AsyncVehicle.cs @@ -1,5 +1,7 @@ using System; +using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; +using System.Numerics; using AltV.Net.Data; using AltV.Net.Elements.Entities; using AltV.Net.Enums; @@ -578,15 +580,16 @@ public AsyncVehicle(IVehicle vehicle, IAsyncContext asyncContext) : base(vehicle Vehicle = vehicle; } - public AsyncVehicle(ICore core, IntPtr nativePointer, ushort id) : this(new Vehicle(core, nativePointer, id), + public AsyncVehicle(ICore core, IntPtr nativePointer, uint id) : this(new Vehicle(core, nativePointer, id), null) { } - public AsyncVehicle(ICore core, uint model, Position position, Rotation rotation) : this( - core, core.CreateVehicleEntity(out var id, model, position, rotation), id) + [Obsolete("Use AltAsync.CreateVehicle instead")] + public AsyncVehicle(ICore core, uint model, Position position, Rotation rotation, uint streamingDistance = 0) : this( + core, core.CreateVehicleEntity(out var id, model, position, rotation, streamingDistance), id) { - Alt.Core.VehiclePool.Add(this); + core.PoolManager.Vehicle.Add(this); } public byte GetMod(byte category) @@ -777,7 +780,7 @@ public uint TimedExplosionTime } } - public bool SirenActive + public bool SirenActive { get { @@ -989,6 +992,18 @@ public int PetrolTankHealth } } + public float SteeringAngle + { + get + { + lock (Vehicle) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Vehicle)) return default; + return Vehicle.SteeringAngle; + } + } + } + public byte WheelsCount { get @@ -1917,6 +1932,74 @@ public int GetWeaponCapacity(byte index) } } + public Quaternion Quaternion + { + get + { + lock (Vehicle) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Vehicle)) return default; + return Vehicle.Quaternion; + } + } + set + { + lock (Vehicle) + { + if (!AsyncContext.CheckIfExistsNullable(Vehicle)) return; + Vehicle.Quaternion = value; + } + } + } + + public bool IsHornActive + { + get + { + lock (Vehicle) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Vehicle)) return default; + return Vehicle.IsHornActive; + } + } + } + + public float AccelerationLevel + { + get + { + lock (Vehicle) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Vehicle)) return default; + return Vehicle.AccelerationLevel; + } + } + } + + public float BrakeLevel + { + get + { + lock (Vehicle) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Vehicle)) return default; + return Vehicle.BrakeLevel; + } + } + } + + public List Passengers + { + get + { + lock (Vehicle) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(Vehicle)) return default; + return Vehicle.Passengers; + } + } + } + [Obsolete("Use new async API instead")] public IVehicle ToAsync(IAsyncContext asyncContext) { diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncVirtualEntity.cs b/api/AltV.Net.Async/Elements/Entities/AsyncVirtualEntity.cs new file mode 100644 index 000000000..6ddcb1617 --- /dev/null +++ b/api/AltV.Net.Async/Elements/Entities/AsyncVirtualEntity.cs @@ -0,0 +1,189 @@ +using System; +using System.Collections.Generic; +using AltV.Net.Data; +using AltV.Net.Elements.Args; +using AltV.Net.Elements.Entities; +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Async.Elements.Entities; + +public class AsyncVirtualEntity : AsyncWorldObject, IVirtualEntity, IAsyncConvertible +{ + protected readonly IVirtualEntity VirtualEntity; + public IntPtr VirtualEntityNativePointer => VirtualEntity.VirtualEntityNativePointer; + public uint Id => VirtualEntity.Id; + public ISharedVirtualEntityGroup Group + { + get + { + lock (VirtualEntity) + { + if (!AsyncContext.CheckIfExistsNullable(VirtualEntity)) return default; + return VirtualEntity.Group; + } + } + } + + public bool HasStreamSyncedMetaData(string key) + { + lock (VirtualEntity) + { + if (!AsyncContext.CheckIfExistsNullable(VirtualEntity)) return default; + return VirtualEntity.HasStreamSyncedMetaData(key); + } + } + + public bool GetStreamSyncedMetaData(string key, out int result) + { + lock (VirtualEntity) + { + if (!AsyncContext.CheckIfExistsNullable(VirtualEntity)) + { + result = default; + return false; + } + + return VirtualEntity.GetStreamSyncedMetaData(key, out result); + } + } + + public bool GetStreamSyncedMetaData(string key, out uint result) + { + lock (VirtualEntity) + { + if (!AsyncContext.CheckIfExistsNullable(VirtualEntity)) + { + result = default; + return false; + } + + return VirtualEntity.GetStreamSyncedMetaData(key, out result); + } + } + + public bool GetStreamSyncedMetaData(string key, out float result) + { + lock (VirtualEntity) + { + if (!AsyncContext.CheckIfExistsNullable(VirtualEntity)) + { + result = default; + return false; + } + + return VirtualEntity.GetStreamSyncedMetaData(key, out result); + } + } + + public bool GetStreamSyncedMetaData(string key, out T result) + { + lock (VirtualEntity) + { + if (!AsyncContext.CheckIfExistsNullable(VirtualEntity)) + { + result = default; + return false; + } + + return VirtualEntity.GetStreamSyncedMetaData(key, out result); + } + } + + public void GetStreamSyncedMetaData(string key, out MValueConst value) + { + lock (VirtualEntity) + { + if (!AsyncContext.CheckIfExistsNullable(VirtualEntity)) + { + value = MValueConst.Nil; + return; + } + + VirtualEntity.GetStreamSyncedMetaData(key, out value); + } + } + + + public AsyncVirtualEntity(IVirtualEntity virtualEntity, IAsyncContext asyncContext) : base(virtualEntity, + asyncContext) + { + VirtualEntity = virtualEntity; + } + + public AsyncVirtualEntity(ICore core, IntPtr nativePointer, uint id) : this(new VirtualEntity(core, nativePointer, id), null) + { + } + + public uint StreamingDistance + { + get + { + lock (VirtualEntity) + { + if (!AsyncContext.CheckIfExistsNullable(VirtualEntity)) return default; + return VirtualEntity.StreamingDistance; + } + } + } + public void SetStreamSyncedMetaData(string key, object value) + { + lock (VirtualEntity) + { + if (!AsyncContext.CheckIfExistsNullable(VirtualEntity)) return; + VirtualEntity.SetStreamSyncedMetaData(key, value); + } + } + + public void SetStreamSyncedMetaData(Dictionary metaData) + { + lock (VirtualEntity) + { + if (!AsyncContext.CheckIfExistsNullable(VirtualEntity)) return; + VirtualEntity.SetStreamSyncedMetaData(metaData); + } + } + + public void SetStreamSyncedMetaData(string key, in MValueConst value) + { + lock (VirtualEntity) + { + if (!AsyncContext.CheckIfExistsNullable(VirtualEntity)) return; + VirtualEntity.SetStreamSyncedMetaData(key, value); + } + } + + public void DeleteStreamSyncedMetaData(string key) + { + lock (VirtualEntity) + { + if (!AsyncContext.CheckIfExistsNullable(VirtualEntity)) return; + VirtualEntity.DeleteStreamSyncedMetaData(key); + } + } + + public bool Visible + { + get + { + lock (VirtualEntity) + { + if (!AsyncContext.CheckIfExistsNullable(VirtualEntity)) return default; + return VirtualEntity.Visible; + } + } + set + { + lock (VirtualEntity) + { + if (!AsyncContext.CheckIfExistsNullable(VirtualEntity)) return; + VirtualEntity.Visible = value; + } + } + } + + [Obsolete("Use new async API instead")] + public IVirtualEntity ToAsync(IAsyncContext asyncContext) + { + return this; + } +} \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncVirtualEntityGroup.cs b/api/AltV.Net.Async/Elements/Entities/AsyncVirtualEntityGroup.cs new file mode 100644 index 000000000..7fc462fe8 --- /dev/null +++ b/api/AltV.Net.Async/Elements/Entities/AsyncVirtualEntityGroup.cs @@ -0,0 +1,37 @@ +using System; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Async.Elements.Entities; + +public class AsyncVirtualEntityGroup : AsyncBaseObject, IVirtualEntityGroup, IAsyncConvertible +{ + protected readonly IVirtualEntityGroup VirtualEntityGroup; + public IntPtr VirtualEntityGroupNativePointer => VirtualEntityGroup.VirtualEntityGroupNativePointer; + public AsyncVirtualEntityGroup(IVirtualEntityGroup virtualEntityGroup, IAsyncContext asyncContext) : base(virtualEntityGroup, asyncContext) + { + VirtualEntityGroup = virtualEntityGroup; + } + + public AsyncVirtualEntityGroup(ICore core, IntPtr nativePointer, uint id) : this(new VirtualEntityGroup(core, nativePointer, id), null) + { + } + + public uint Id => VirtualEntityGroup.Id; + public uint MaxEntitiesInStream + { + get + { + lock (VirtualEntityGroup) + { + if (!AsyncContext.CheckIfExistsNullable(VirtualEntityGroup)) return default; + return VirtualEntityGroup.MaxEntitiesInStream; + } + } + } + + [Obsolete("Use new async API instead")] + public IVirtualEntityGroup ToAsync(IAsyncContext asyncContext) + { + return this; + } +} \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncVoiceChannel.cs b/api/AltV.Net.Async/Elements/Entities/AsyncVoiceChannel.cs index 7a1917c79..0039c7809 100644 --- a/api/AltV.Net.Async/Elements/Entities/AsyncVoiceChannel.cs +++ b/api/AltV.Net.Async/Elements/Entities/AsyncVoiceChannel.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using AltV.Net.Elements.Entities; @@ -11,7 +12,7 @@ public class AsyncVoiceChannel : AsyncBaseObject, IVoiceChannel, IAsyncConvertib { protected readonly IVoiceChannel VoiceChannel; public IntPtr VoiceChannelNativePointer => VoiceChannel.VoiceChannelNativePointer; - + public bool IsSpatial { get @@ -36,13 +37,76 @@ public float MaxDistance } } + public uint Filter + { + get + { + lock (VoiceChannel) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(VoiceChannel)) return default; + return VoiceChannel.Filter; + } + } + set + { + lock (VoiceChannel) + { + if (!AsyncContext.CheckIfExistsNullable(VoiceChannel)) return; + VoiceChannel.Filter = value; + } + } + } + public int Priority + { + get + { + lock (VoiceChannel) + { + if (!AsyncContext.CheckIfExistsOrCachedNullable(VoiceChannel)) return default; + return VoiceChannel.Priority; + } + } + set + { + lock (VoiceChannel) + { + if (!AsyncContext.CheckIfExistsNullable(VoiceChannel)) return; + VoiceChannel.Priority = value; + } + } + } + + public IReadOnlyCollection Players + { + get + { + lock (VoiceChannel) + { + if (!AsyncContext.CheckIfExistsNullable(VoiceChannel)) return default; + return VoiceChannel.Players; + } + } + } + + public ulong PlayerCount + { + get + { + lock (VoiceChannel) + { + if (!AsyncContext.CheckIfExistsNullable(VoiceChannel)) return default; + return VoiceChannel.PlayerCount; + } + } + } + public AsyncVoiceChannel(IVoiceChannel voiceChannel, IAsyncContext asyncContext) : base(voiceChannel, asyncContext) { VoiceChannel = voiceChannel; } - public AsyncVoiceChannel(ICore core, IntPtr nativePointer) : this(new VoiceChannel(core, nativePointer), null) + public AsyncVoiceChannel(ICore core, IntPtr nativePointer, uint id) : this(new VoiceChannel(core, nativePointer, id), null) { } @@ -99,7 +163,7 @@ public bool IsPlayerMuted(IPlayer player) return VoiceChannel.IsPlayerMuted(player); } } - + [Obsolete("Use new async API instead")] public IVoiceChannel ToAsync(IAsyncContext asyncContext) { diff --git a/api/AltV.Net.Async/Elements/Entities/VehicleBuilder.cs b/api/AltV.Net.Async/Elements/Entities/VehicleBuilder.cs index d4cb44546..be5bf0942 100644 --- a/api/AltV.Net.Async/Elements/Entities/VehicleBuilder.cs +++ b/api/AltV.Net.Async/Elements/Entities/VehicleBuilder.cs @@ -7,6 +7,7 @@ using AltV.Net.Elements.Entities; using AltV.Net.Enums; using AltV.Net.Native; +using AltV.Net.Shared.Utils; namespace AltV.Net.Async.Elements.Entities { @@ -19,15 +20,18 @@ public class VehicleBuilder : IVehicleBuilder private readonly Rotation rotation; + private readonly uint streamingDistance; + private readonly Dictionary> functions = new Dictionary>(); private readonly List memoryToFree = new List(); - public VehicleBuilder(uint model, Position position, Rotation rotation) + public VehicleBuilder(uint model, Position position, Rotation rotation, uint streamingDistance = 0) { this.model = model; this.position = position; this.rotation = rotation; + this.streamingDistance = streamingDistance; } public IVehicleBuilder ModKit(byte value) @@ -421,10 +425,9 @@ public async Task Build() { unsafe { - ushort id = default; + uint id = default; var ptr = Alt.Core.Library.Server.Core_CreateVehicle(((Core) Alt.Core).NativePointer, model, - position, rotation, - &id); + position, rotation, streamingDistance, &id); while (enumerator.MoveNext()) { @@ -436,7 +439,7 @@ public async Task Build() }); enumerator.Dispose(); Dispose(); - return Alt.Core.VehiclePool.Create(Alt.Core, vehiclePtr, vehicleId); + return Alt.Core.PoolManager.Vehicle.Create(Alt.Core, vehiclePtr, vehicleId); } // Call Dispose when you don't wanna continue building the vehicle anymore to cleanup memory @@ -455,7 +458,7 @@ private void Add(Action action, [CallerMemberName] string memberName = " private IntPtr StringToHGlobalUtf8(string str) { - var strPtr = AltNative.StringUtils.StringToHGlobalUtf8(str); + var strPtr = MemoryUtils.StringToHGlobalUtf8(str); memoryToFree.Add(strPtr); return strPtr; } diff --git a/api/AltV.Net.Async/Elements/Factories/AsyncBlipFactory.cs b/api/AltV.Net.Async/Elements/Factories/AsyncBlipFactory.cs index 7b6305c3b..b891c82d8 100644 --- a/api/AltV.Net.Async/Elements/Factories/AsyncBlipFactory.cs +++ b/api/AltV.Net.Async/Elements/Factories/AsyncBlipFactory.cs @@ -6,9 +6,9 @@ namespace AltV.Net.Async.Elements.Factories { public class AsyncBlipFactory : IBaseObjectFactory { - public IBlip Create(ICore core, IntPtr baseObjectPointer) + public IBlip Create(ICore core, IntPtr baseObjectPointer, uint id) { - return new AsyncBlip(core, baseObjectPointer); + return new AsyncBlip(core, baseObjectPointer, id); } } } \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Factories/AsyncCheckpointFactory.cs b/api/AltV.Net.Async/Elements/Factories/AsyncCheckpointFactory.cs index 9075be812..58bce54d6 100644 --- a/api/AltV.Net.Async/Elements/Factories/AsyncCheckpointFactory.cs +++ b/api/AltV.Net.Async/Elements/Factories/AsyncCheckpointFactory.cs @@ -6,9 +6,9 @@ namespace AltV.Net.Async.Elements.Factories { public class AsyncCheckpointFactory : IBaseObjectFactory { - public ICheckpoint Create(ICore core, IntPtr baseObjectPointer) + public ICheckpoint Create(ICore core, IntPtr baseObjectPointer, uint id) { - return new AsyncCheckpoint(core, baseObjectPointer); + return new AsyncCheckpoint(core, baseObjectPointer, id); } } } \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Factories/AsyncColShapeFactory.cs b/api/AltV.Net.Async/Elements/Factories/AsyncColShapeFactory.cs index 4e356a3c9..3f808b8f8 100644 --- a/api/AltV.Net.Async/Elements/Factories/AsyncColShapeFactory.cs +++ b/api/AltV.Net.Async/Elements/Factories/AsyncColShapeFactory.cs @@ -6,9 +6,9 @@ namespace AltV.Net.Async.Elements.Factories { public class AsyncColShapeFactory : IBaseObjectFactory { - public IColShape Create(ICore core, IntPtr baseObjectPointer) + public IColShape Create(ICore core, IntPtr baseObjectPointer, uint id) { - return new AsyncColShape(core, baseObjectPointer); + return new AsyncColShape(core, baseObjectPointer, id); } } } \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Factories/AsyncConnectionInfoFactory.cs b/api/AltV.Net.Async/Elements/Factories/AsyncConnectionInfoFactory.cs new file mode 100644 index 000000000..ee07dc90c --- /dev/null +++ b/api/AltV.Net.Async/Elements/Factories/AsyncConnectionInfoFactory.cs @@ -0,0 +1,14 @@ +using System; +using AltV.Net.Async.Elements.Entities; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Async.Elements.Factories +{ + public class AsyncConnectionInfoFactory : IBaseObjectFactory + { + public IConnectionInfo Create(ICore core, IntPtr baseObjectPointer, uint id) + { + return new AsyncConnectionInfo(core, baseObjectPointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Factories/AsyncMarkerFactory.cs b/api/AltV.Net.Async/Elements/Factories/AsyncMarkerFactory.cs new file mode 100644 index 000000000..2aaa02abc --- /dev/null +++ b/api/AltV.Net.Async/Elements/Factories/AsyncMarkerFactory.cs @@ -0,0 +1,14 @@ +using System; +using AltV.Net.Async.Elements.Entities; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Async.Elements.Factories +{ + public class AsyncMarkerFactory : IBaseObjectFactory + { + public IMarker Create(ICore core, IntPtr baseObjectPointer, uint id) + { + return new AsyncMarker(core, baseObjectPointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Factories/AsyncObjectFactory.cs b/api/AltV.Net.Async/Elements/Factories/AsyncObjectFactory.cs new file mode 100644 index 000000000..d97400b0c --- /dev/null +++ b/api/AltV.Net.Async/Elements/Factories/AsyncObjectFactory.cs @@ -0,0 +1,14 @@ +using System; +using AltV.Net.Async.Elements.Entities; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Async.Elements.Factories +{ + public class AsyncObjectFactory : IEntityFactory + { + public IObject Create(ICore core, IntPtr baseObjectPointer, uint id) + { + return new AsyncObject(core, baseObjectPointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Factories/AsyncPedFactory.cs b/api/AltV.Net.Async/Elements/Factories/AsyncPedFactory.cs new file mode 100644 index 000000000..a97354fe3 --- /dev/null +++ b/api/AltV.Net.Async/Elements/Factories/AsyncPedFactory.cs @@ -0,0 +1,14 @@ +using System; +using AltV.Net.Async.Elements.Entities; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Async.Elements.Factories +{ + public class AsyncPedFactory : IEntityFactory + { + public IPed Create(ICore core, IntPtr baseObjectPointer, uint id) + { + return new AsyncPed(core, baseObjectPointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Factories/AsyncPlayerFactory.cs b/api/AltV.Net.Async/Elements/Factories/AsyncPlayerFactory.cs index e85c74bbd..5cf57de68 100644 --- a/api/AltV.Net.Async/Elements/Factories/AsyncPlayerFactory.cs +++ b/api/AltV.Net.Async/Elements/Factories/AsyncPlayerFactory.cs @@ -6,7 +6,7 @@ namespace AltV.Net.Async.Elements.Factories { public class AsyncPlayerFactory : IEntityFactory { - public IPlayer Create(ICore core, IntPtr entityPointer, ushort id) + public IPlayer Create(ICore core, IntPtr entityPointer, uint id) { return new AsyncPlayer(core, entityPointer, id); } diff --git a/api/AltV.Net.Async/Elements/Factories/AsyncVehicleFactory.cs b/api/AltV.Net.Async/Elements/Factories/AsyncVehicleFactory.cs index 689320173..6eb34ed6c 100644 --- a/api/AltV.Net.Async/Elements/Factories/AsyncVehicleFactory.cs +++ b/api/AltV.Net.Async/Elements/Factories/AsyncVehicleFactory.cs @@ -6,7 +6,7 @@ namespace AltV.Net.Async.Elements.Factories { public class AsyncVehicleFactory : IEntityFactory { - public IVehicle Create(ICore core, IntPtr entityPointer, ushort id) + public IVehicle Create(ICore core, IntPtr entityPointer, uint id) { return new AsyncVehicle(core, entityPointer, id); } diff --git a/api/AltV.Net.Async/Elements/Factories/AsyncVirtualEntityFactory.cs b/api/AltV.Net.Async/Elements/Factories/AsyncVirtualEntityFactory.cs new file mode 100644 index 000000000..57d30ffb8 --- /dev/null +++ b/api/AltV.Net.Async/Elements/Factories/AsyncVirtualEntityFactory.cs @@ -0,0 +1,14 @@ +using System; +using AltV.Net.Async.Elements.Entities; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Async.Elements.Factories +{ + public class AsyncVirtualEntityFactory : IBaseObjectFactory + { + public IVirtualEntity Create(ICore core, IntPtr baseObjectPointer, uint id) + { + return new AsyncVirtualEntity(core, baseObjectPointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Factories/AsyncVirtualEntityGroupFactory.cs b/api/AltV.Net.Async/Elements/Factories/AsyncVirtualEntityGroupFactory.cs new file mode 100644 index 000000000..4cd795913 --- /dev/null +++ b/api/AltV.Net.Async/Elements/Factories/AsyncVirtualEntityGroupFactory.cs @@ -0,0 +1,14 @@ +using System; +using AltV.Net.Async.Elements.Entities; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Async.Elements.Factories +{ + public class AsyncVirtualEntityGroupFactory : IBaseObjectFactory + { + public IVirtualEntityGroup Create(ICore core, IntPtr baseObjectPointer, uint id) + { + return new AsyncVirtualEntityGroup(core, baseObjectPointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Factories/AsyncVoiceChannelFactory.cs b/api/AltV.Net.Async/Elements/Factories/AsyncVoiceChannelFactory.cs index f4a53122a..6a1e78f92 100644 --- a/api/AltV.Net.Async/Elements/Factories/AsyncVoiceChannelFactory.cs +++ b/api/AltV.Net.Async/Elements/Factories/AsyncVoiceChannelFactory.cs @@ -6,9 +6,9 @@ namespace AltV.Net.Async.Elements.Factories { public class AsyncVoiceChannelFactory : IBaseObjectFactory { - public IVoiceChannel Create(ICore core, IntPtr baseObjectPointer) + public IVoiceChannel Create(ICore core, IntPtr baseObjectPointer, uint id) { - return new AsyncVoiceChannel(core, baseObjectPointer); + return new AsyncVoiceChannel(core, baseObjectPointer, id); } } } \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Pools/AsyncBlipPool.cs b/api/AltV.Net.Async/Elements/Pools/AsyncBlipPool.cs index 21e39683f..311503297 100644 --- a/api/AltV.Net.Async/Elements/Pools/AsyncBlipPool.cs +++ b/api/AltV.Net.Async/Elements/Pools/AsyncBlipPool.cs @@ -1,3 +1,4 @@ +using System; using System.Threading.Tasks; using AltV.Net.Elements.Entities; using AltV.Net.Elements.Pools; @@ -20,7 +21,12 @@ public override async Task ForEach(IAsyncBaseObjectCallback asyncBaseObje } } } - + + public override uint GetId(IntPtr entityPointer) + { + return AltAsync.Do(() => Blip.GetId(entityPointer)).Result; + } + public override void ForEach(IBaseObjectCallback baseObjectCallback) { foreach (var baseObject in GetAllObjects()) diff --git a/api/AltV.Net.Async/Elements/Pools/AsyncCheckpointPool.cs b/api/AltV.Net.Async/Elements/Pools/AsyncCheckpointPool.cs index 50adc7116..ad1645fb3 100644 --- a/api/AltV.Net.Async/Elements/Pools/AsyncCheckpointPool.cs +++ b/api/AltV.Net.Async/Elements/Pools/AsyncCheckpointPool.cs @@ -1,3 +1,4 @@ +using System; using System.Threading.Tasks; using AltV.Net.Elements.Entities; using AltV.Net.Elements.Pools; @@ -19,6 +20,11 @@ public override async Task ForEach(IAsyncBaseObjectCallback asyncBa } } + public override uint GetId(IntPtr entityPointer) + { + return AltAsync.Do(() => Checkpoint.GetId(entityPointer)).Result; + } + public override void ForEach(IBaseObjectCallback baseObjectCallback) { foreach (var baseObject in GetAllObjects()) diff --git a/api/AltV.Net.Async/Elements/Pools/AsyncColShapePool.cs b/api/AltV.Net.Async/Elements/Pools/AsyncColShapePool.cs index e2270583b..c04f065fb 100644 --- a/api/AltV.Net.Async/Elements/Pools/AsyncColShapePool.cs +++ b/api/AltV.Net.Async/Elements/Pools/AsyncColShapePool.cs @@ -1,3 +1,4 @@ +using System; using System.Threading.Tasks; using AltV.Net.Elements.Entities; using AltV.Net.Elements.Pools; @@ -9,7 +10,7 @@ public class AsyncColShapePool : AsyncBaseObjectPool public AsyncColShapePool(IBaseObjectFactory entityFactory, bool forceAsync = false) : base(entityFactory, forceAsync) { } - + public override async Task ForEach(IAsyncBaseObjectCallback asyncBaseObjectCallback) { foreach (var baseObject in GetAllObjects()) @@ -18,7 +19,12 @@ public override async Task ForEach(IAsyncBaseObjectCallback asyncBase await asyncBaseObjectCallback.OnBaseObject(baseObject); } } - + + public override uint GetId(IntPtr entityPointer) + { + return AltAsync.Do(() => ColShape.GetId(entityPointer)).Result; + } + public override void ForEach(IBaseObjectCallback baseObjectCallback) { foreach (var baseObject in GetAllObjects()) diff --git a/api/AltV.Net.Async/Elements/Pools/AsyncMarkerPool.cs b/api/AltV.Net.Async/Elements/Pools/AsyncMarkerPool.cs new file mode 100644 index 000000000..249f06e66 --- /dev/null +++ b/api/AltV.Net.Async/Elements/Pools/AsyncMarkerPool.cs @@ -0,0 +1,37 @@ +using System; +using System.Threading.Tasks; +using AltV.Net.Elements.Entities; +using AltV.Net.Elements.Pools; + +namespace AltV.Net.Async.Elements.Pools +{ + public class AsyncMarkerPool : AsyncBaseObjectPool + { + public AsyncMarkerPool(IBaseObjectFactory entityFactory, bool forceAsync = false) : base(entityFactory, forceAsync) + { + } + + public override async Task ForEach(IAsyncBaseObjectCallback asyncBaseObjectCallback) + { + foreach (var baseObject in GetAllObjects()) + { + if (!baseObject.Exists) continue; + await asyncBaseObjectCallback.OnBaseObject(baseObject); + } + } + + public override uint GetId(IntPtr entityPointer) + { + return AltAsync.Do(() => Marker.GetId(entityPointer)).Result; + } + + public override void ForEach(IBaseObjectCallback baseObjectCallback) + { + foreach (var baseObject in GetAllObjects()) + { + if (!baseObject.Exists) continue; + baseObjectCallback.OnBaseObject(baseObject); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Pools/AsyncPedPool.cs b/api/AltV.Net.Async/Elements/Pools/AsyncPedPool.cs new file mode 100644 index 000000000..e37890345 --- /dev/null +++ b/api/AltV.Net.Async/Elements/Pools/AsyncPedPool.cs @@ -0,0 +1,36 @@ +using System; +using System.Threading.Tasks; +using AltV.Net.Elements.Entities; +using AltV.Net.Elements.Pools; + +namespace AltV.Net.Async.Elements.Pools; + +public class AsyncPedPool : AsyncEntityPool +{ + public AsyncPedPool(IEntityFactory entityFactory, bool forceAsync = false) : base(entityFactory, forceAsync) + { + } + + public override uint GetId(IntPtr entityPointer) + { + return AltAsync.Do(() => Ped.GetId(entityPointer)).Result; + } + + public override void ForEach(IBaseObjectCallback baseObjectCallback) + { + foreach (var entity in GetAllEntities()) + { + if (!entity.Exists) continue; + baseObjectCallback.OnBaseObject(entity); + } + } + + public override async Task ForEach(IAsyncBaseObjectCallback asyncBaseObjectCallback) + { + foreach (var entity in GetAllEntities()) + { + if (!entity.Exists) continue; + await asyncBaseObjectCallback.OnBaseObject(entity); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Pools/AsyncPlayerPool.cs b/api/AltV.Net.Async/Elements/Pools/AsyncPlayerPool.cs index f9eb8ad0a..a0b590bbb 100644 --- a/api/AltV.Net.Async/Elements/Pools/AsyncPlayerPool.cs +++ b/api/AltV.Net.Async/Elements/Pools/AsyncPlayerPool.cs @@ -11,7 +11,7 @@ public AsyncPlayerPool(IEntityFactory entityFactory, bool forceAsync = { } - public override ushort GetId(IntPtr entityPointer) + public override uint GetId(IntPtr entityPointer) { return AltAsync.Do(() => Player.GetId(entityPointer)).Result; } diff --git a/api/AltV.Net.Async/Elements/Pools/AsyncVehiclePool.cs b/api/AltV.Net.Async/Elements/Pools/AsyncVehiclePool.cs index ec0e68f31..6c576a86a 100644 --- a/api/AltV.Net.Async/Elements/Pools/AsyncVehiclePool.cs +++ b/api/AltV.Net.Async/Elements/Pools/AsyncVehiclePool.cs @@ -11,7 +11,7 @@ public AsyncVehiclePool(IEntityFactory entityFactory, bool forceAsync { } - public override ushort GetId(IntPtr entityPointer) + public override uint GetId(IntPtr entityPointer) { return AltAsync.Do(() => Vehicle.GetId(entityPointer)).Result; } diff --git a/api/AltV.Net.Async/Elements/Pools/AsyncVirtualEntityGroupPool.cs b/api/AltV.Net.Async/Elements/Pools/AsyncVirtualEntityGroupPool.cs new file mode 100644 index 000000000..204cf3163 --- /dev/null +++ b/api/AltV.Net.Async/Elements/Pools/AsyncVirtualEntityGroupPool.cs @@ -0,0 +1,41 @@ +using System; +using System.Threading.Tasks; +using AltV.Net.Elements.Entities; +using AltV.Net.Elements.Pools; + +namespace AltV.Net.Async.Elements.Pools +{ + public class AsyncVirtualEntityGroupPool : AsyncBaseObjectPool + { + public AsyncVirtualEntityGroupPool(IBaseObjectFactory entityFactory, bool forceAsync = false) : base(entityFactory, forceAsync) + { + } + + public override async Task ForEach(IAsyncBaseObjectCallback asyncBaseObjectCallback) + { + foreach (var baseObject in GetAllObjects()) + { + if (baseObject.Exists) + { + await asyncBaseObjectCallback.OnBaseObject(baseObject); + } + } + } + + public override uint GetId(IntPtr entityPointer) + { + return AltAsync.Do(() => VirtualEntityGroup.GetId(entityPointer)).Result; + } + + public override void ForEach(IBaseObjectCallback baseObjectCallback) + { + foreach (var baseObject in GetAllObjects()) + { + if (baseObject.Exists) + { + baseObjectCallback.OnBaseObject(baseObject); + } + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Pools/AsyncVirtualEntityPool.cs b/api/AltV.Net.Async/Elements/Pools/AsyncVirtualEntityPool.cs new file mode 100644 index 000000000..a600f8f50 --- /dev/null +++ b/api/AltV.Net.Async/Elements/Pools/AsyncVirtualEntityPool.cs @@ -0,0 +1,41 @@ +using System; +using System.Threading.Tasks; +using AltV.Net.Elements.Entities; +using AltV.Net.Elements.Pools; + +namespace AltV.Net.Async.Elements.Pools +{ + public class AsyncVirtualEntityPool : AsyncBaseObjectPool + { + public AsyncVirtualEntityPool(IBaseObjectFactory entityFactory, bool forceAsync = false) : base(entityFactory, forceAsync) + { + } + + public override async Task ForEach(IAsyncBaseObjectCallback asyncBaseObjectCallback) + { + foreach (var baseObject in GetAllObjects()) + { + if (baseObject.Exists) + { + await asyncBaseObjectCallback.OnBaseObject(baseObject); + } + } + } + + public override uint GetId(IntPtr entityPointer) + { + return AltAsync.Do(() => VirtualEntity.GetId(entityPointer)).Result; + } + + public override void ForEach(IBaseObjectCallback baseObjectCallback) + { + foreach (var baseObject in GetAllObjects()) + { + if (baseObject.Exists) + { + baseObjectCallback.OnBaseObject(baseObject); + } + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Async/Elements/Pools/AsyncVoiceChannelPool.cs b/api/AltV.Net.Async/Elements/Pools/AsyncVoiceChannelPool.cs index 3f645454e..d809bd519 100644 --- a/api/AltV.Net.Async/Elements/Pools/AsyncVoiceChannelPool.cs +++ b/api/AltV.Net.Async/Elements/Pools/AsyncVoiceChannelPool.cs @@ -1,3 +1,4 @@ +using System; using System.Threading.Tasks; using AltV.Net.Elements.Entities; using AltV.Net.Elements.Pools; @@ -18,7 +19,12 @@ public override async Task ForEach(IAsyncBaseObjectCallback async await asyncBaseObjectCallback.OnBaseObject(baseObject); } } - + + public override uint GetId(IntPtr entityPointer) + { + return AltAsync.Do(() => VoiceChannel.GetId(entityPointer)).Result; + } + public override void ForEach(IBaseObjectCallback baseObjectCallback) { foreach (var baseObject in GetAllObjects()) diff --git a/api/AltV.Net.Async/Events/Events.cs b/api/AltV.Net.Async/Events/Events.cs index 073aded4c..8a2765639 100644 --- a/api/AltV.Net.Async/Events/Events.cs +++ b/api/AltV.Net.Async/Events/Events.cs @@ -1,29 +1,39 @@ +using System.Collections.Generic; using System.Threading.Tasks; using AltV.Net.Data; using AltV.Net.Elements.Entities; +using AltV.Net.Shared.Elements.Entities; using AltV.Net.Types; namespace AltV.Net.Async.Events { - public delegate Task CheckpointAsyncDelegate(ICheckpoint checkpoint, IEntity entity, bool state); + public delegate Task CheckpointAsyncDelegate(ICheckpoint checkpoint, IWorldObject entity, bool state); public delegate Task ClientEventAsyncDelegate(IPlayer player, object[] args); public delegate Task PlayerConnectAsyncDelegate(IPlayer player, string reason); - public delegate Task PlayerBeforeConnectAsyncDelegate(PlayerConnectionInfo connectionInfo, string reason); + public delegate Task PlayerConnectDeniedAsyncDelegate(PlayerConnectDeniedReason reason, string name, string ip, + ulong passwordHash, bool isDebug, string branch, uint majorVersion, string cdnUrl, long discordId); + + public delegate Task ResourceEventAsyncDelegate(INativeResource resource); public delegate Task PlayerDamageAsyncDelegate(IPlayer player, IEntity attacker, ushort oldHealth, ushort oldArmor, ushort oldMaxHealth, ushort oldMaxArmor, uint weapon, ushort healthDamage, ushort armourDamage); public delegate Task PlayerDeadAsyncDelegate(IPlayer player, IEntity killer, uint weapon); + public delegate Task PlayerHealAsyncDelegate(IPlayer target, ushort oldHealth, ushort newHealth, ushort oldArmour, + ushort newArmour); + public delegate Task PlayerDisconnectAsyncDelegate(IPlayer player, string reason); public delegate Task PlayerRemoveAsyncDelegate(IPlayer player); public delegate Task VehicleRemoveAsyncDelegate(IVehicle vehicle); + public delegate Task PedRemoveAsyncDelegate(IPed ped); + public delegate Task ServerEventAsyncDelegate(object[] args); public delegate Task PlayerChangeVehicleSeatAsyncDelegate(IVehicle vehicle, IPlayer player, byte oldSeat, @@ -41,7 +51,7 @@ public delegate Task PlayerChangeVehicleSeatAsyncDelegate(IVehicle vehicle, IPla public delegate Task MetaDataChangeAsyncDelegate(IEntity entity, string key, object value); - public delegate Task ColShapeAsyncDelegate(IColShape colShape, IEntity targetEntity, bool state); + public delegate Task ColShapeAsyncDelegate(IColShape colShape, IWorldObject targetEntity, bool state); public delegate Task ExplosionAsyncDelegate(IPlayer player, ExplosionType explosionType, Position position, uint explosionFx, IEntity target); @@ -64,18 +74,46 @@ public delegate Task WeaponDamageAsyncDelegate(IPlayer player, IEntity target, u public delegate Task VehicleDetachAsyncDelegate(IVehicle target, IVehicle detachedVehicle); public delegate Task VehicleDamageAsyncDelegate(IVehicle target, IEntity attacker, uint bodyHealthDamage, uint additionalBodyHealthDamage, uint engineHealthDamage, uint petrolTankDamage, uint weaponHash); - + + public delegate Task VehicleHornAsyncDelegate(IVehicle target, IPlayer reporter, bool state); + public delegate Task ConnectionQueueAddAsyncDelegate(IConnectionInfo connectionInfo); - + public delegate Task ConnectionQueueRemoveAsyncDelegate(IConnectionInfo connectionInfo); public delegate Task ServerStartedAsyncDelegate(); - + public delegate Task PlayerRequestControlAsyncDelegate(IEntity target, IPlayer player); - + public delegate Task PlayerChangeAnimationAsyncDelegate(IPlayer player, uint oldDict, uint newDict, uint oldName, uint newName); - + public delegate Task PlayerChangeInteriorAsyncDelegate(IPlayer player, uint oldIntLoc, uint newIntLoc); - + public delegate Task PlayerDimensionChangeAsyncDelegate(IPlayer player, int oldDimension, int newDimension); + + public delegate Task VehicleSirenAsyncDelegate(IVehicle vehicle, bool state); + + public delegate Task PlayerSpawnAsyncDelegate(IPlayer player); + + public delegate Task RequestSyncedSceneAsyncEventDelegate(IPlayer source, int sceneId); + + public delegate Task StartSyncedSceneAsyncEventDelegate(IPlayer source, int sceneId, Position position, Rotation rotation, uint animDictHash, Dictionary entityAndAnimHash); + public delegate Task StopSyncedSceneAsyncEventDelegate(IPlayer source, int sceneId); + public delegate Task UpdateSyncedSceneAsyncEventDelegate(IPlayer source, float startRate, int sceneId); + public delegate Task ClientRequestObjectAsyncEventDelegate(IPlayer target, uint model, Position position); + public delegate Task ClientDeleteObjectAsyncEventDelegate(IPlayer target); + + public delegate Task GivePedScriptedTaskAsyncDelegate(IPlayer source, IPed target, uint taskType); + + public delegate Task PedDamageAsyncDelegate(IPed ped, IEntity attacker, uint weapon, ushort healthDamage, ushort armourDamage); + + public delegate Task PedDeadAsyncDelegate(IPed ped, IEntity killer, uint weapon); + + public delegate Task PedHealAsyncDelegate(IPed ped, ushort oldHealth, ushort newHealth, ushort oldArmour, + ushort newArmour); + public delegate Task PlayerStartTalkingAsyncDelegate(IPlayer Player); + public delegate Task PlayerStopTalkingAsyncDelegate(IPlayer Player); + + public delegate Task ScriptRpcAsyncDelegate(IScriptRPCEvent scriptRpcEvent, IPlayer target, string name, object[] args, ushort answerId); + public delegate Task ScriptRpcAnswerAsyncDelegate(IPlayer target, ushort answerId, object answer, string answerError); } \ No newline at end of file diff --git a/api/AltV.Net.Async/MValueConst.Locked.NoRefs.cs b/api/AltV.Net.Async/MValueConst.Locked.NoRefs.cs index afc06d665..45275b9a4 100644 --- a/api/AltV.Net.Async/MValueConst.Locked.NoRefs.cs +++ b/api/AltV.Net.Async/MValueConst.Locked.NoRefs.cs @@ -52,6 +52,20 @@ public static void CreateLocked(IBlip blip, out MValueConst mValue) } } + public static void CreateLocked(IPed ped, out MValueConst mValue) + { + lock (ped) + { + if (!ped.Exists) + { + mValue = MValueConst.Nil; + return; + } + + Alt.Core.CreateMValueBaseObject(out mValue, ped); + } + } + public static void CreateLocked(ICheckpoint checkpoint, out MValueConst mValue) { lock (checkpoint) @@ -91,6 +105,9 @@ public static void CreateFromObjectLocked(object obj, out MValueConst mValue) case IBlip blip: CreateLocked(blip, out mValue); return; + case IPed ped: + CreateLocked(ped, out mValue); + return; case ICheckpoint checkpoint: CreateLocked(checkpoint, out mValue); return; @@ -160,7 +177,7 @@ public static void CreateFromObjectLocked(object obj, out MValueConst mValue) CreateFromObjectLocked(value, out var elementMValue); dictValues[i++] = elementMValue; } - + Alt.Core.CreateMValueDict(out mValue, dictKeys, dictValues, (ulong) dictionary.Count); for (int j = 0, dictLength = dictionary.Count; j < dictLength; j++) { @@ -176,7 +193,7 @@ public static void CreateFromObjectLocked(object obj, out MValueConst mValue) CreateFromObjectLocked(value, out var elementMValue); listValues[i++] = elementMValue; } - + Alt.Core.CreateMValueList(out mValue, listValues, length); for (ulong j = 0; j < length; j++) { @@ -198,7 +215,7 @@ public static void CreateFromObjectLocked(object obj, out MValueConst mValue) CreateFromObjectLocked(value, out var elementMValue); dictValues[i++] = elementMValue; } - + Alt.Core.CreateMValueDict(out mValue, dictKeys, dictValues, (ulong) dictionary.Count); for (int j = 0, dictLength = dictValues.Length; j < dictLength; j++) { @@ -234,7 +251,14 @@ public static void CreateFromObjectLocked(object obj, out MValueConst mValue) Alt.Core.CreateMValueVector3(out mValue, position); return; default: - Alt.Log("can't convert type:" + obj.GetType()); + var type = obj?.GetType(); + if (type != null && Alt.IsMValueConvertible(obj.GetType())) + { + Alt.ToMValue(obj, type, out mValue); + return; + } + + Alt.LogInfo("can't convert type:" + type); mValue = MValueConst.Nil; return; } diff --git a/api/AltV.Net.BenchmarkRunners/AltV.Net.BenchmarkRunners.csproj b/api/AltV.Net.BenchmarkRunners/AltV.Net.BenchmarkRunners.csproj index 95f50636a..060816562 100644 --- a/api/AltV.Net.BenchmarkRunners/AltV.Net.BenchmarkRunners.csproj +++ b/api/AltV.Net.BenchmarkRunners/AltV.Net.BenchmarkRunners.csproj @@ -25,6 +25,6 @@ - + \ No newline at end of file diff --git a/api/AltV.Net.Benchmarks/AltV.Net.Benchmarks.csproj b/api/AltV.Net.Benchmarks/AltV.Net.Benchmarks.csproj index cead0fdfb..3a2a6cbd5 100644 --- a/api/AltV.Net.Benchmarks/AltV.Net.Benchmarks.csproj +++ b/api/AltV.Net.Benchmarks/AltV.Net.Benchmarks.csproj @@ -24,6 +24,6 @@ - + \ No newline at end of file diff --git a/api/AltV.Net.CApi.Generator/TypeRegistry.cs b/api/AltV.Net.CApi.Generator/TypeRegistry.cs index 41d205233..7feb9f21d 100644 --- a/api/AltV.Net.CApi.Generator/TypeRegistry.cs +++ b/api/AltV.Net.CApi.Generator/TypeRegistry.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; namespace AltV.Net.CApi.Generator; @@ -6,93 +6,123 @@ public static class TypeRegistry { public static readonly SortedDictionary CsTypes = new() { - {"int", "int"}, - {"unsigned int", "uint"}, - {"unsigned long", "ulong"}, - {"unsigned short", "ushort"}, - {"unsigned char", "byte"}, - {"long", "long"}, - {"short", "short"}, - {"char", "char"}, - {"float", "float"}, - {"float*", "float*"}, - {"double", "double"}, - {"double&", "double*"}, - {"bool", "bool"}, - {"void", "void"}, - {"char*", "nint"}, - {"char[]", "nint"}, - {"char*&", "nint*"}, - {"char*[]", "nint[]"}, - {"int*", "int*"}, - {"alt::ICore*", "nint"}, - {"alt::ILocalPlayer*", "nint"}, - {"alt::IPlayer*", "nint"}, - {"alt::IVehicle*", "nint"}, - {"alt::IHandlingData*", "nint"}, - {"alt::IHandlingData*&", "nint*"}, - {"alt::IWeaponData*", "nint"}, - {"alt::IWeaponData*&", "nint*"}, - {"alt::IObject*", "nint"}, - {"alt::IObject**", "nint"}, - {"alt::IObject*&", "nint*"}, - {"alt::IMapData*", "nint"}, - {"alt::IAudio*", "nint"}, - {"alt::IHttpClient*", "nint"}, - {"alt::IWebSocketClient*", "nint"}, - {"alt::IEntity*", "nint"}, - {"alt::IWorldObject*", "nint"}, - {"alt::IBaseObject*", "nint"}, - {"alt::IResource*", "nint"}, - {"alt::IResource**", "nint"}, - {"alt::IWebView*", "nint"}, - {"alt::ILocalStorage*", "nint"}, - {"alt::IStatData*", "nint"}, - {"alt::IRmlDocument*", "nint"}, - {"alt::IRmlElement*", "nint"}, - {"alt::IRmlElement**", "nint"}, - {"alt::IRmlElement**&", "nint*"}, - {"void**&", "nint*"}, - {"CSharpResourceImpl*", "nint"}, - {"void**", "nint*"}, - {"alt::MValueConst*", "nint"}, - {"alt::MValueConst**", "nint"}, - {"alt::MValueConst*[]", "nint[]"}, - {"int8_t", "sbyte"}, - {"int8_t&", "sbyte*"}, - {"uint8_t", "byte"}, - {"uint8_t[]", "byte[]"}, - {"uint8_t&", "byte*"}, - {"uint8_t*&", "nint*"}, - {"int16_t", "short"}, - {"int16_t&", "short*"}, - {"uint16_t", "ushort"}, - {"uint16_t&", "ushort*"}, - {"int32_t", "int"}, - {"int32_t&", "int*"}, - {"uint32_t", "uint"}, - {"uint32_t&", "uint*"}, - {"uint32_t*", "nint"}, - {"uint32_t*&", "nint*"}, - {"int64_t", "long"}, - {"int64_t&", "long*"}, - {"uint64_t", "ulong"}, - {"uint64_t&", "ulong*"}, - {"vector2_t", "Vector2"}, - {"vector2_t&", "Vector2*"}, - {"vector3_t", "Vector3"}, - {"vector3_t&", "Vector3*"}, - {"rgba_t", "Rgba"}, - {"rgba_t&", "Rgba*"}, - {"alt::Array", "UIntArray*"}, - + { "int", "int" }, + { "unsigned int", "uint" }, + { "unsigned long", "ulong" }, + { "unsigned short", "ushort" }, + { "unsigned char", "byte" }, + { "long", "long" }, + { "short", "short" }, + { "char", "char" }, + { "float", "float" }, + { "float*", "float*" }, + { "double", "double" }, + { "double&", "double*" }, + { "bool", "bool" }, + { "void", "void" }, + { "char*", "nint" }, + { "char[]", "nint" }, + { "uint32_t[]", "uint[]" }, + { "char*&", "nint*" }, + { "char*[]", "nint[]" }, + { "int*", "int*" }, + { "alt::ICore*", "nint" }, + { "alt::ILocalPlayer*", "nint" }, + { "alt::IPlayer*", "nint" }, + { "alt::IPlayer**", "nint" }, + { "alt::IPed*", "nint" }, + { "alt::IPed**", "nint" }, + { "alt::IVirtualEntity*", "nint" }, + { "alt::IVirtualEntity**", "nint" }, + { "alt::IVirtualEntityGroup*", "nint" }, + { "alt::IVirtualEntityGroup**", "nint" }, + { "alt::IVehicle*", "nint" }, + { "alt::IAudioFilter*", "nint" }, + { "alt::IObject*", "nint" }, + { "alt::ITextLabel*", "nint" }, + { "alt::ITextLabel**", "nint" }, + { "alt::IVehicle**", "nint" }, + { "alt::IHandlingData*", "nint" }, + { "alt::IHandlingData*&", "nint*" }, + { "alt::IWeaponData*", "nint" }, + { "alt::IWeaponData*&", "nint*" }, + { "alt::ILocalObject*", "nint" }, + { "alt::Weapon*", "nint" }, + { "alt::ILocalObject**", "nint" }, + { "alt::ILocalObject*&", "nint*" }, + { "alt::IMapData*", "nint" }, + { "alt::IAudio*", "nint" }, + { "alt::IAudioOutput*", "nint" }, + { "alt::IAudioAttachedOutput*", "nint" }, + { "alt::IAudioFrontendOutput*", "nint" }, + { "alt::IAudioWorldOutput*", "nint" }, + { "alt::IFont*", "nint" }, + { "alt::ICustomTexture*", "nint" }, + { "alt::IHttpClient*", "nint" }, + { "alt::IWebSocketClient*", "nint" }, + { "alt::IEntity*", "nint" }, + { "alt::IWorldObject*", "nint" }, + { "alt::IBaseObject*", "nint" }, + { "alt::IResource*", "nint" }, + { "alt::IResource**", "nint" }, + { "alt::IConnectionInfo**", "nint" }, + { "alt::IWebView*", "nint" }, + { "alt::ILocalStorage*", "nint" }, + { "alt::IStatData*", "nint" }, + { "alt::IRmlDocument*", "nint" }, + { "alt::IRmlElement*", "nint" }, + { "alt::IRmlElement**", "nint" }, + { "alt::IRmlElement**&", "nint*" }, + { "alt::IMarker*", "nint" }, + { "alt::Metric*", "nint" }, + { "void**&", "nint*" }, + { "CSharpResourceImpl*", "nint" }, + { "void**", "nint*" }, + { "alt::MValueConst*", "nint" }, + { "alt::MValueConst**", "nint" }, + { "alt::MValueConst*[]", "nint[]" }, + { "alt::ILocalVehicle*", "nint" }, + { "alt::ILocalVehicle**", "nint" }, + { "alt::ILocalPed*", "nint" }, + { "alt::ILocalPed**", "nint" }, + { "int8_t", "sbyte" }, + { "int8_t&", "sbyte*" }, + { "uint8_t", "byte" }, + { "uint8_t[]", "byte[]" }, + { "uint8_t&", "byte*" }, + { "uint8_t*&", "nint*" }, + { "int16_t", "short" }, + { "int16_t&", "short*" }, + { "uint16_t", "ushort" }, + { "uint16_t&", "ushort*" }, + { "int32_t", "int" }, + { "int32_t&", "int*" }, + { "uint32_t", "uint" }, + { "uint32_t&", "uint*" }, + { "uint32_t*", "nint" }, + { "uint32_t*&", "nint*" }, + { "int64_t", "long" }, + { "int64_t&", "long*" }, + { "uint64_t", "ulong" }, + { "uint64_t&", "ulong*" }, + { "vector2_t", "Vector2" }, + { "vector2_t&", "Vector2*" }, + { "vector3_t", "Vector3" }, + { "vector3_t&", "Vector3*" }, + { "rgba_t", "Rgba" }, + { "rgba_t&", "Rgba*" }, + { "std::vector", "UIntArray*" }, + + { "alt::Quaternion", "Quaternion" }, + { "alt::Quaternion&", "Quaternion*" }, + { "position_t&", "Vector3*" }, { "position_t", "Vector3" }, { "alt::Position", "Vector3" }, { "rotation_t&", "Rotation*" }, { "rotation_t", "Rotation" }, { "alt::Rotation", "Rotation" }, - + { "cloth_t&", "Cloth*" }, { "cloth_t", "Cloth" }, { "dlccloth_t&", "DlcCloth*" }, @@ -107,59 +137,90 @@ public static class TypeRegistry { "const char*&", "nint*" }, { "char**", "nint" }, { "char**&", "nint*" }, - { "alt::Array&", "UIntArray*" }, - { "alt::Array*", "UIntArray*" }, + { "std::vector&", "UIntArray*" }, + { "std::vector*", "UIntArray*" }, { "void*", "nint" }, { "alt::IBaseObject::Type&", "BaseObjectType*" }, { "player_struct_t*", "ReadOnlyPlayer*" }, { "alt::RGBA", "Rgba" }, { "bool*", "byte*" }, { "alt::IColShape*", "nint" }, + { "alt::IColShapeCircle*", "nint" }, + { "alt::IColShapeCuboid*", "nint" }, + { "alt::IColShapeCylinder*", "nint" }, + { "alt::IColShapePoly*", "nint" }, + { "alt::IColShapeRect*", "nint" }, + { "alt::IColShapeSphere*", "nint" }, { "alt::ColShapeType", "ColShapeType" }, { "alt::IVoiceChannel*", "nint" }, { "alt::IBlip*", "nint" }, - { "alt::Array&", "StringArray*" }, + { "alt::IBlip**", "nint" }, + { "std::vector&", "StringArray*" }, //{ "alt::MValue::List&", "MValueWriter2.MValueArray*" }, { "const alt::MValue&", "MValue*" }, { "const char**", "string[]" }, { "alt::IResource::Impl*", "nint" }, { "alt::MValueFunction::Invoker*", "nint" }, - { "MValueFunctionCallback", "MValueFunctionCallback" },//"MValue.Function", + { "MValueFunctionCallback", "MValueFunctionCallback" }, //"MValue.Function", { "CustomInvoker*", "nint" }, { "alt::MValue[]", "MValue[]" }, { "alt::MValueList&", "MValue*" }, //no c# representation for MValue list memory layout yet { "const alt::MValueList&", "MValue*" }, //no c# representation for MValue list memory layout yet { "alt::MValueDict&", "MValue*" }, //no c# representation for MValue dictionary memory layout yet { "alt::ICheckpoint*", "nint" }, - {"alt::MValueFunction&", "MValue*"}, //no c# representation for MValue function memory layout yet, this is only in commented code and not required + { + "alt::MValueFunction&", "MValue*" + }, //no c# representation for MValue function memory layout yet, this is only in commented code and not required { "alt::CEvent::Type", "ushort" }, { "alt::CEvent*", "nint" }, + { "alt::CCancellableEvent*", "nint" }, { "alt::EventCallback", "EventCallback" }, { "alt::TickCallback", "TickCallback" }, { "alt::CommandCallback", "CommandCallback" }, - { "alt::Array*", "PlayerPointerArray*" }, - { "alt::Array*", "VehiclePointerArray*" }, - { "alt::Array&", "PlayerPointerArray*" }, - { "alt::Array&", "VehiclePointerArray*" }, - { "alt::Array*", "StringViewArray*" }, - { "alt::Array*", "StringArray*" }, - { "alt::Array*", "MValueWriter2.MValueArray*" }, + { "std::vector*", "PlayerPointerArray*" }, + { "std::vector*", "VehiclePointerArray*" }, + { "std::vector&", "PlayerPointerArray*" }, + { "std::vector&", "VehiclePointerArray*" }, + { "std::vector*", "StringViewArray*" }, + { "std::vector*", "StringArray*" }, + { "std::vector*", "MValueWriter2.MValueArray*" }, { "alt::MValue*[]", "nint[]" }, { "alt::IPlayer*[]", "nint[]" }, { "alt::IVehicle*[]", "nint[]" }, + { "alt::IPed*[]", "nint[]" }, + { "alt::IVirtualEntity*[]", "nint[]" }, + { "alt::IVirtualEntityGroup*[]", "nint[]" }, { "alt::IBlip*[]", "nint[]" }, + { "alt::IBaseObject*[]", "nint[]" }, + { "alt::ICheckpoint*[]", "nint[]" }, + { "alt::ICheckpoint**", "nint" }, + { "alt::IWebView*[]", "nint[]" }, + { "alt::IObject*[]", "nint[]" }, + { "alt::IObject**", "nint" }, + { "alt::IColShape**", "nint" }, + { "alt::IAudio*[]", "nint[]" }, + { "alt::IMarker*[]", "nint[]" }, + { "alt::IColShape*[]", "nint[]" }, + { "alt::IAudioOutput*[]", "nint[]" }, + { "alt::IMarker**", "nint" }, + { "alt::IAudio**", "nint" }, + { "alt::IAudioOutput**", "nint" }, { "uint8_t*", "byte*" }, { "head_blend_data_t", "HeadBlendData" }, { "head_blend_data_t&", "HeadBlendData*" }, { "head_overlay_t", "HeadOverlay" }, { "head_overlay_t&", "HeadOverlay*" }, { "weapon_t*[]", "WeaponData[]" }, - { "alt::Array&", "WeaponArray*" }, + { "vector2_t*", "Vector2[]" }, + { "std::vector&", "WeaponArray*" }, { "vector2_t[]", "Vector2[]" }, { "alt::IConnectionInfo*", "IntPtr" }, { "ClrVehicleModelInfo*", "nint" }, - { "ClrPedModelInfo*" , "nint" }, + { "ClrPedModelInfo*", "nint" }, + { "ClrWeaponModelInfo*", "nint" }, { "ClrDiscordUser*", "nint" }, - { "ClrConfigNodeData*", "nint" } + { "ClrConfigNodeData*", "nint" }, + { "ClrAmmoFlags*", "nint" }, + { "ClrDecoration**", "nint" } }; } \ No newline at end of file diff --git a/api/AltV.Net.CApi/Data/Position.cs b/api/AltV.Net.CApi/Data/Position.cs index 6ede5449c..afc7e0bca 100644 --- a/api/AltV.Net.CApi/Data/Position.cs +++ b/api/AltV.Net.CApi/Data/Position.cs @@ -26,7 +26,7 @@ public static implicit operator Vector3(Position position) Z = position.Z }; } - + public static implicit operator Rotation(Position position) { return new Rotation @@ -53,6 +53,13 @@ public static implicit operator Position(Vector3 vector3) [DataMember] public float Z; + public Position() + { + X = 0; + Y = 0; + Z = 0; + } + public Position(float x, float y, float z) { X = x; diff --git a/api/AltV.Net.CApi/Data/Rotation.cs b/api/AltV.Net.CApi/Data/Rotation.cs index fecb22b72..e8218d1d9 100644 --- a/api/AltV.Net.CApi/Data/Rotation.cs +++ b/api/AltV.Net.CApi/Data/Rotation.cs @@ -18,7 +18,7 @@ public static implicit operator Vector3(Rotation rotation) Z = rotation.Yaw }; } - + public static implicit operator Position(Rotation rotation) { return new Position @@ -43,6 +43,13 @@ public static implicit operator Rotation(Vector3 vector3) public float Pitch; public float Yaw; + public Rotation() + { + Roll = 0; + Pitch = 0; + Yaw = 0; + } + public Rotation(float roll, float pitch, float yaw) { Roll = roll; diff --git a/api/AltV.Net.CApi/Enums/AmmoSpecialType.cs b/api/AltV.Net.CApi/Enums/AmmoSpecialType.cs new file mode 100644 index 000000000..013229b37 --- /dev/null +++ b/api/AltV.Net.CApi/Enums/AmmoSpecialType.cs @@ -0,0 +1,12 @@ +namespace AltV.Net.Elements.Entities; + +public enum AmmoSpecialType : uint +{ + None, + ArmorPiercing, + Explosive, + FullMetalJacket, + HollowPoint, + Incendiary, + Tracer, +} \ No newline at end of file diff --git a/api/AltV.Net.CApi/Enums/BaseObjectType.cs b/api/AltV.Net.CApi/Enums/BaseObjectType.cs index 2469f45ab..94341b3d7 100644 --- a/api/AltV.Net.CApi/Enums/BaseObjectType.cs +++ b/api/AltV.Net.CApi/Enums/BaseObjectType.cs @@ -1,9 +1,11 @@ -namespace AltV.Net.Elements.Entities +namespace AltV.Net.Elements.Entities { public enum BaseObjectType : byte { Player, Vehicle, + Ped, + Object, Blip, Webview, VoiceChannel, @@ -12,10 +14,25 @@ public enum BaseObjectType : byte WebsocketClient, HttpClient, Audio, + AudioOutput, + AudioOutputWorld, + AudioOutputAttached, + AudioOutputFrontend, RmlElement, RmlDocument, LocalPlayer, - Object, + LocalObject, + VirtualEntity, + VirtualEntityGroup, + Marker, + TextLabel, + LocalPed, + LocalVehicle, + AudioFilter, + ConnectionInfo, + CustomTexture, + Font, + Size, Undefined = 255 } } \ No newline at end of file diff --git a/api/AltV.Net.CApi/Enums/VoiceConnectionState.cs b/api/AltV.Net.CApi/Enums/VoiceConnectionState.cs new file mode 100644 index 000000000..bd015b52c --- /dev/null +++ b/api/AltV.Net.CApi/Enums/VoiceConnectionState.cs @@ -0,0 +1,8 @@ +namespace AltV.Net.Elements.Entities; + +public enum VoiceConnectionState : byte +{ + Disconnected, + Connecting, + Connected +} \ No newline at end of file diff --git a/api/AltV.Net.CApi/Events/Events.cs b/api/AltV.Net.CApi/Events/ClientEvents.cs similarity index 63% rename from api/AltV.Net.CApi/Events/Events.cs rename to api/AltV.Net.CApi/Events/ClientEvents.cs index 32b807db8..8d634d5df 100644 --- a/api/AltV.Net.CApi/Events/Events.cs +++ b/api/AltV.Net.CApi/Events/ClientEvents.cs @@ -6,23 +6,15 @@ namespace AltV.Net.CApi.ClientEvents { public delegate void TickModuleDelegate(); - + public delegate void ClientEventModuleDelegate(string name, IntPtr args, ulong size); public delegate void ServerEventModuleDelegate(string name, IntPtr args, ulong size); public delegate void WebViewEventModuleDelegate(IntPtr webView, string name, IntPtr args, ulong size); - public delegate void RmlEventModuleDelegate(IntPtr rmlElement, string name, IntPtr args, ulong size); + public delegate void RmlEventModuleDelegate(IntPtr rmlElement, string name, IntPtr args); public delegate void WebSocketEventModuleDelegate(IntPtr webSocket, string name, IntPtr args, ulong size); + public delegate void AudioEventModuleDelegate(IntPtr audio, string name, IntPtr args, ulong size); public delegate void ConsoleCommandModuleDelegate(string name, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] string[] args, int argsSize); - public delegate void CreatePlayerModuleDelegate(IntPtr pointer, ushort id); - public delegate void RemovePlayerModuleDelegate(IntPtr pointer); - - public delegate void CreateObjectModuleDelegate(IntPtr pointer, ushort id); - public delegate void RemoveObjectModuleDelegate(IntPtr pointer); - - public delegate void CreateVehicleModuleDelegate(IntPtr pointer, ushort id); - public delegate void RemoveVehicleModuleDelegate(IntPtr pointer); - public delegate void PlayerSpawnModuleDelegate(); public delegate void PlayerDisconnectModuleDelegate(); public delegate void PlayerEnterVehicleModuleDelegate(IntPtr pointer, byte seat); @@ -32,57 +24,70 @@ namespace AltV.Net.CApi.ClientEvents public delegate void PlayerChangeInteriorModuleDelegate(IntPtr pointer, uint oldIntLoc, uint newIntLoc); public delegate void PlayerWeaponShootModuleDelegate(uint weapon, ushort totalAmmo, ushort ammoInClip); public delegate void PlayerWeaponChangeModuleDelegate(uint oldWeapon, uint newWeapon); - + public delegate void GameEntityCreateModuleDelegate(IntPtr pointer, byte type); public delegate void GameEntityDestroyModuleDelegate(IntPtr pointer, byte type); - public delegate void RemoveEntityModuleDelegate(IntPtr pointer, BaseObjectType type); public delegate void AnyResourceErrorModuleDelegate(string name); public delegate void AnyResourceStartModuleDelegate(string name); public delegate void AnyResourceStopModuleDelegate(string name); - + public delegate void KeyDownModuleDelegate(uint key); public delegate void KeyUpModuleDelegate(uint key); public delegate void ScreenshotResultModuleDelegate(IntPtr strPtr); public delegate void HttpResponseModuleDelegate(int statusCode, string body, IntPtr headerKeys, IntPtr headerValues, int headerSize); - + public delegate void ConnectionCompleteModuleDelegate(); public delegate void GlobalMetaChangeModuleDelegate(string key, IntPtr value, IntPtr oldValue); public delegate void GlobalSyncedMetaChangeModuleDelegate(string key, IntPtr value, IntPtr oldValue); - + public delegate void LocalMetaChangeModuleDelegate(string key, IntPtr value, IntPtr oldValue); public delegate void StreamSyncedMetaChangeModuleDelegate(IntPtr target, BaseObjectType type, string key, IntPtr value, IntPtr oldValue); public delegate void SyncedMetaChangeModuleDelegate(IntPtr target, BaseObjectType type, string key, IntPtr value, IntPtr oldValue); + public delegate void MetaChangeModuleDelegate(IntPtr target, BaseObjectType type, string key, IntPtr value, IntPtr oldValue); public delegate void TaskChangeModuleDelegate(int oldTask, int newTask); public delegate void WindowFocusChangeModuleDelegate(byte state); public delegate void WindowResolutionChangeModuleDelegate(Vector2 oldResolution, Vector2 newResolution); + public delegate void WorldObjectPositionChangeModuleDelegate(IntPtr target, BaseObjectType type, Position oldPosition); + public delegate void WorldObjectStreamInModuleDelegate(IntPtr target, BaseObjectType type); + public delegate void WorldObjectStreamOutModuleDelegate(IntPtr target, BaseObjectType type); + + public delegate void NetOwnerChangeModuleDelegate(IntPtr target, BaseObjectType type, IntPtr newOwner, IntPtr oldOwner); - - public delegate void CreateBlipModuleDelegate(IntPtr pointer); - public delegate void CreateWebViewModuleDelegate(IntPtr pointer); - public delegate void CreateCheckpointModuleDelegate(IntPtr pointer); - public delegate void CreateWebSocketClientModuleDelegate(IntPtr pointer); - public delegate void CreateHttpClientModuleDelegate(IntPtr pointer); - public delegate void CreateAudioModuleDelegate(IntPtr pointer); - public delegate void CreateRmlElementModuleDelegate(IntPtr pointer); - public delegate void CreateRmlDocumentModuleDelegate(IntPtr pointer); - - public delegate void RemoveBlipModuleDelegate(IntPtr pointer); - public delegate void RemoveWebViewModuleDelegate(IntPtr pointer); - public delegate void RemoveCheckpointModuleDelegate(IntPtr pointer); - public delegate void RemoveWebSocketClientModuleDelegate(IntPtr pointer); - public delegate void RemoveHttpClientModuleDelegate(IntPtr pointer); - public delegate void RemoveAudioModuleDelegate(IntPtr pointer); - public delegate void RemoveRmlElementModuleDelegate(IntPtr pointer); - public delegate void RemoveRmlDocumentModuleDelegate(IntPtr pointer); - - public delegate void DiscordOAuth2TokenResultModuleDelegate(bool success, string token); + + public delegate void DiscordOAuth2TokenResultModuleDelegate(byte success, string token); public delegate void WeaponDamageModuleDelegate(IntPtr eventPointer, IntPtr entityPointer, - BaseObjectType entityType, uint weapon, ushort damage, Position shotOffset, BodyPart bodyPart); + BaseObjectType entityType, uint weapon, ushort damage, Position shotOffset, BodyPart bodyPart, IntPtr sourceEntityPointer, + BaseObjectType sourceEntityType); + + public delegate void CreateBaseObjectModuleDelegate(IntPtr baseObject, BaseObjectType type, uint id); + + public delegate void RemoveBaseObjectModuleDelegate(IntPtr baseObject, BaseObjectType type); + + public delegate void ColShapeModuleDelegate(IntPtr colShapePointer, IntPtr targetEntityPointer, BaseObjectType entityType, + byte state); + public delegate void CheckpointModuleDelegate(IntPtr colShapePointer, IntPtr targetEntityPointer, BaseObjectType entityType, + byte state); + + public delegate void EntityHitEntityModuleDelegate(IntPtr targetPointer, BaseObjectType targetType, IntPtr damagerPointer, + BaseObjectType damagerType, uint weaponHash); + + public delegate void PlayerStartEnterVehicleModuleDelegate(IntPtr targetPointer, IntPtr player, byte seat); + public delegate void PlayerStartLeaveVehicleModuleDelegate(IntPtr targetPointer, IntPtr player, byte seat); + + public delegate void PlayerBulletHitModuleDelegate(uint weapon, IntPtr victimPointer, BaseObjectType victimType, + Position pos); + + public delegate void VoiceConnectionModuleDelegate(VoiceConnectionState state); + + public delegate void ScriptRPCModuleDelegate(IntPtr eventPointer, string name, IntPtr args, ulong size, ushort answerId); + + public delegate void ScriptRPCAnswerModuleDelegate(ushort answerId, IntPtr answer, + string answerError); } \ No newline at end of file diff --git a/api/AltV.Net.CApi/Events/ServerEvents.cs b/api/AltV.Net.CApi/Events/ServerEvents.cs new file mode 100644 index 000000000..72e46866b --- /dev/null +++ b/api/AltV.Net.CApi/Events/ServerEvents.cs @@ -0,0 +1,3 @@ +namespace AltV.Net.CApi.ServerEvents; + +public delegate void RequestAuthCallbackDelegate(byte ok, IntPtr resultPtr); \ No newline at end of file diff --git a/api/AltV.Net.CApi/Libraries/ClientLibrary.cs b/api/AltV.Net.CApi/Libraries/ClientLibrary.cs index 440bb1fde..94c786699 100644 --- a/api/AltV.Net.CApi/Libraries/ClientLibrary.cs +++ b/api/AltV.Net.CApi/Libraries/ClientLibrary.cs @@ -10,30 +10,94 @@ namespace AltV.Net.CApi.Libraries public unsafe interface IClientLibrary { public bool Outdated { get; } - public delegate* unmanaged[Cdecl] Audio_AddOutput_Entity { get; } - public delegate* unmanaged[Cdecl] Audio_AddOutput_ScriptId { get; } + public delegate* unmanaged[Cdecl] Audio_AddOutput { get; } public delegate* unmanaged[Cdecl] Audio_GetBaseObject { get; } - public delegate* unmanaged[Cdecl] Audio_GetCategory { get; } public delegate* unmanaged[Cdecl] Audio_GetCurrentTime { get; } public delegate* unmanaged[Cdecl] Audio_GetLooped { get; } public delegate* unmanaged[Cdecl] Audio_GetMaxTime { get; } public delegate* unmanaged[Cdecl] Audio_GetOutputs { get; } public delegate* unmanaged[Cdecl] Audio_GetSource { get; } public delegate* unmanaged[Cdecl] Audio_GetVolume { get; } - public delegate* unmanaged[Cdecl] Audio_IsFrontendPlay { get; } public delegate* unmanaged[Cdecl] Audio_IsPlaying { get; } public delegate* unmanaged[Cdecl] Audio_Pause { get; } public delegate* unmanaged[Cdecl] Audio_Play { get; } - public delegate* unmanaged[Cdecl] Audio_RemoveOutput_Entity { get; } - public delegate* unmanaged[Cdecl] Audio_RemoveOutput_ScriptId { get; } + public delegate* unmanaged[Cdecl] Audio_RemoveOutput { get; } public delegate* unmanaged[Cdecl] Audio_Reset { get; } public delegate* unmanaged[Cdecl] Audio_Seek { get; } - public delegate* unmanaged[Cdecl] Audio_SetCategory { get; } public delegate* unmanaged[Cdecl] Audio_SetLooped { get; } public delegate* unmanaged[Cdecl] Audio_SetSource { get; } public delegate* unmanaged[Cdecl] Audio_SetVolume { get; } - public delegate* unmanaged[Cdecl] Blip_GetScriptID { get; } - public delegate* unmanaged[Cdecl] Blip_IsRemote { get; } + public delegate* unmanaged[Cdecl] AudioAttachedOutput_GetAudioOutputObject { get; } + public delegate* unmanaged[Cdecl] AudioAttachedOutput_GetEntity { get; } + public delegate* unmanaged[Cdecl] AudioAttachedOutput_SetEntity { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetDistanceReverbDamping { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetDistanceRolloffScale { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetEnvironmentalFilterDamping { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetEnvironmentalLoudness { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetHighPassFilterCutoff { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetInteriorReverbDamping { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetLowPassFilterCutoff { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetName { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetOcclusionDamping { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetPitch { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetPlateauRolloffScale { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetSourceReverbDamping { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetStonedWetLevel { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetUnderwaterWetLevel { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetVolume { get; } + public delegate* unmanaged[Cdecl] AudioCategory_Reset { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetDistanceReverbDamping { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetDistanceRolloffScale { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetEnvironmentalFilterDamping { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetEnvironmentalLoudness { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetHighPassFilterCutoff { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetInteriorReverbDamping { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetLowPassFilterCutoff { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetOcclusionDamping { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetPitch { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetPlateauRolloffScale { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetSourceReverbDamping { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetStonedWetLevel { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetUnderwaterWetLevel { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetVolume { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddAutowahEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddBqfEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddChorusEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddCompressor2Effect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddDampEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddDistortionEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddEcho4Effect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddFreeverbEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddPeakeqEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddPhaserEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddPitchshiftEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddRotateEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddVolumeEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_GetAudCategory { get; } + public delegate* unmanaged[Cdecl] AudioFilter_GetBaseObject { get; } + public delegate* unmanaged[Cdecl] AudioFilter_GetHash { get; } + public delegate* unmanaged[Cdecl] AudioFilter_RemoveEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_SetAudCategory { get; } + public delegate* unmanaged[Cdecl] AudioFrontendOutput_GetAudioOutputObject { get; } + public delegate* unmanaged[Cdecl] AudioOutput_AddFilter { get; } + public delegate* unmanaged[Cdecl] AudioOutput_GetBaseObject { get; } + public delegate* unmanaged[Cdecl] AudioOutput_GetCategory { get; } + public delegate* unmanaged[Cdecl] AudioOutput_GetFilter { get; } + public delegate* unmanaged[Cdecl] AudioOutput_GetOwner { get; } + public delegate* unmanaged[Cdecl] AudioOutput_GetVolume { get; } + public delegate* unmanaged[Cdecl] AudioOutput_IsMuted { get; } + public delegate* unmanaged[Cdecl] AudioOutput_RemoveFilter { get; } + public delegate* unmanaged[Cdecl] AudioOutput_SetMuted { get; } + public delegate* unmanaged[Cdecl] AudioOutput_SetVolume { get; } + public delegate* unmanaged[Cdecl] AudioWorldOutput_GetAudioOutputObject { get; } + public delegate* unmanaged[Cdecl] AudioWorldOutput_GetPosition { get; } + public delegate* unmanaged[Cdecl] AudioWorldOutput_SetPosition { get; } + public delegate* unmanaged[Cdecl] BaseObject_GetRemoteID { get; } + public delegate* unmanaged[Cdecl] BaseObject_IsRemote { get; } + public delegate* unmanaged[Cdecl] Blip_GetGameID { get; } + public delegate* unmanaged[Cdecl] Blip_IsStreamedIn { get; } + public delegate* unmanaged[Cdecl] Checkpoint_GetGameID { get; } + public delegate* unmanaged[Cdecl] Checkpoint_IsStreamedIn { get; } public delegate* unmanaged[Cdecl] Core_AddGXTText { get; } public delegate* unmanaged[Cdecl] Core_AreGameControlsEnabled { get; } public delegate* unmanaged[Cdecl] Core_AreRmlControlsEnabled { get; } @@ -41,24 +105,40 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl] Core_BeginScaleformMovieMethodMinimap { get; } public delegate* unmanaged[Cdecl] Core_ClearFocusOverride { get; } public delegate* unmanaged[Cdecl] Core_ClearPedProp { get; } - public delegate* unmanaged[Cdecl] Core_Client_CreateAreaBlip { get; } - public delegate* unmanaged[Cdecl] Core_Client_CreatePointBlip { get; } - public delegate* unmanaged[Cdecl] Core_Client_CreateRadiusBlip { get; } + public delegate* unmanaged[Cdecl] Core_Client_CreateAreaBlip { get; } + public delegate* unmanaged[Cdecl] Core_Client_CreatePointBlip { get; } + public delegate* unmanaged[Cdecl] Core_Client_CreateRadiusBlip { get; } public delegate* unmanaged[Cdecl] Core_Client_FileExists { get; } public delegate* unmanaged[Cdecl] Core_Client_FileRead { get; } public delegate* unmanaged[Cdecl] Core_CopyToClipboard { get; } - public delegate* unmanaged[Cdecl] Core_CreateAudio { get; } - public delegate* unmanaged[Cdecl] Core_CreateCheckpoint { get; } - public delegate* unmanaged[Cdecl] Core_CreateHttpClient { get; } - public delegate* unmanaged[Cdecl] Core_CreateObject { get; } - public delegate* unmanaged[Cdecl] Core_CreateRmlDocument { get; } - public delegate* unmanaged[Cdecl] Core_CreateWebsocketClient { get; } - public delegate* unmanaged[Cdecl] Core_CreateWebView { get; } - public delegate* unmanaged[Cdecl] Core_CreateWebView3D { get; } + public delegate* unmanaged[Cdecl] Core_CreateAttachedOutput { get; } + public delegate* unmanaged[Cdecl] Core_CreateAudio { get; } + public delegate* unmanaged[Cdecl] Core_CreateAudioFilter { get; } + public delegate* unmanaged[Cdecl] Core_CreateCheckpoint { get; } + public delegate* unmanaged[Cdecl] Core_CreateFrontendOutput { get; } + public delegate* unmanaged[Cdecl] Core_CreateHttpClient { get; } + public delegate* unmanaged[Cdecl] Core_CreateLocalObject { get; } + public delegate* unmanaged[Cdecl] Core_CreateLocalPed { get; } + public delegate* unmanaged[Cdecl] Core_CreateLocalVehicle { get; } + public delegate* unmanaged[Cdecl] Core_CreateMarker_Client { get; } + public delegate* unmanaged[Cdecl] Core_CreateRmlDocument { get; } + public delegate* unmanaged[Cdecl] Core_CreateTextLabel { get; } + public delegate* unmanaged[Cdecl] Core_CreateWeaponObject { get; } + public delegate* unmanaged[Cdecl] Core_CreateWebsocketClient { get; } + public delegate* unmanaged[Cdecl] Core_CreateWebView { get; } + public delegate* unmanaged[Cdecl] Core_CreateWebView3D { get; } + public delegate* unmanaged[Cdecl] Core_CreateWorldOutput { get; } public delegate* unmanaged[Cdecl] Core_DeallocDiscordUser { get; } public delegate* unmanaged[Cdecl] Core_Discord_GetOAuth2Token { get; } public delegate* unmanaged[Cdecl] Core_DoesConfigFlagExist { get; } + public delegate* unmanaged[Cdecl] Core_GetAllWeaponData { get; } + public delegate* unmanaged[Cdecl] Core_GetAllWeaponDataCount { get; } + public delegate* unmanaged[Cdecl] Core_GetAudioCount { get; } + public delegate* unmanaged[Cdecl] Core_GetAudioOutputs { get; } + public delegate* unmanaged[Cdecl] Core_GetAudios { get; } + public delegate* unmanaged[Cdecl] Core_GetBlipByGameID { get; } public delegate* unmanaged[Cdecl] Core_GetCamPos { get; } + public delegate* unmanaged[Cdecl] Core_GetCheckpointByGameID { get; } public delegate* unmanaged[Cdecl] Core_GetClientPath { get; } public delegate* unmanaged[Cdecl] Core_GetConfigFlag { get; } public delegate* unmanaged[Cdecl] Core_GetCursorPos { get; } @@ -72,9 +152,11 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl] Core_GetLicenseHash { get; } public delegate* unmanaged[Cdecl] Core_GetLocale { get; } public delegate* unmanaged[Cdecl] Core_GetLocalMeta { get; } + public delegate* unmanaged[Cdecl] Core_GetLocalObjects { get; } + public delegate* unmanaged[Cdecl] Core_GetLocalPeds { get; } + public delegate* unmanaged[Cdecl] Core_GetLocalVehicles { get; } public delegate* unmanaged[Cdecl] Core_GetMapZoomDataByAlias { get; } public delegate* unmanaged[Cdecl] Core_GetMsPerGameMinute { get; } - public delegate* unmanaged[Cdecl] Core_GetObjects { get; } public delegate* unmanaged[Cdecl] Core_GetPedBonePos { get; } public delegate* unmanaged[Cdecl] Core_GetPermissionState { get; } public delegate* unmanaged[Cdecl] Core_GetPing { get; } @@ -95,21 +177,29 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl] Core_GetTotalPacketsLost { get; } public delegate* unmanaged[Cdecl] Core_GetTotalPacketsSent { get; } public delegate* unmanaged[Cdecl] Core_GetVoiceActivationKey { get; } + public delegate* unmanaged[Cdecl] Core_GetVoiceActivationLevel { get; } public delegate* unmanaged[Cdecl] Core_GetVoiceInputMuted { get; } + public delegate* unmanaged[Cdecl] Core_GetWeaponObjects { get; } + public delegate* unmanaged[Cdecl] Core_GetWebViewCount { get; } + public delegate* unmanaged[Cdecl] Core_GetWebViews { get; } + public delegate* unmanaged[Cdecl] Core_GetWorldObjectByScriptID { get; } public delegate* unmanaged[Cdecl] Core_GetWorldObjects { get; } public delegate* unmanaged[Cdecl] Core_HasLocalMeta { get; } public delegate* unmanaged[Cdecl] Core_IsCamFrozen { get; } public delegate* unmanaged[Cdecl] Core_IsConsoleOpen { get; } public delegate* unmanaged[Cdecl] Core_IsCursorVisible { get; } public delegate* unmanaged[Cdecl] Core_IsFocusOverriden { get; } + public delegate* unmanaged[Cdecl] Core_IsFullScreen { get; } public delegate* unmanaged[Cdecl] Core_IsGameFocused { get; } public delegate* unmanaged[Cdecl] Core_IsInStreamerMode { get; } public delegate* unmanaged[Cdecl] Core_IsKeyDown { get; } public delegate* unmanaged[Cdecl] Core_IsKeyToggled { get; } public delegate* unmanaged[Cdecl] Core_IsMenuOpened { get; } + public delegate* unmanaged[Cdecl] Core_IsNoiseSuppressionEnabled { get; } public delegate* unmanaged[Cdecl] Core_IsPointOnScreen { get; } public delegate* unmanaged[Cdecl] Core_IsTextureExistInArchetype { get; } public delegate* unmanaged[Cdecl] Core_IsVoiceActivityInputEnabled { get; } + public delegate* unmanaged[Cdecl] Core_IsWebViewGpuAccelerationActive { get; } public delegate* unmanaged[Cdecl] Core_LoadDefaultIpls { get; } public delegate* unmanaged[Cdecl] Core_LoadModel { get; } public delegate* unmanaged[Cdecl] Core_LoadModelAsync { get; } @@ -117,11 +207,13 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl] Core_LoadYtyp { get; } public delegate* unmanaged[Cdecl] Core_OverrideFocusEntity { get; } public delegate* unmanaged[Cdecl] Core_OverrideFocusPosition { get; } + public delegate* unmanaged[Cdecl] Core_RegisterFont { get; } public delegate* unmanaged[Cdecl] Core_RemoveGXTText { get; } public delegate* unmanaged[Cdecl] Core_RemoveIpl { get; } public delegate* unmanaged[Cdecl] Core_RequestIpl { get; } public delegate* unmanaged[Cdecl] Core_ResetAllMapZoomData { get; } public delegate* unmanaged[Cdecl] Core_ResetMapZoomData { get; } + public delegate* unmanaged[Cdecl] Core_ResetMinimapComponentPosition { get; } public delegate* unmanaged[Cdecl] Core_ResetStat { get; } public delegate* unmanaged[Cdecl] Core_ScreenToWorld { get; } public delegate* unmanaged[Cdecl] Core_SetCamFrozen { get; } @@ -142,39 +234,42 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl] Core_SetStatUInt32 { get; } public delegate* unmanaged[Cdecl] Core_SetStatUInt64 { get; } public delegate* unmanaged[Cdecl] Core_SetStatUInt8 { get; } + public delegate* unmanaged[Cdecl] Core_SetVoiceActivationLevel { get; } public delegate* unmanaged[Cdecl] Core_SetVoiceInputMuted { get; } public delegate* unmanaged[Cdecl] Core_SetWatermarkPosition { get; } public delegate* unmanaged[Cdecl] Core_SetWeatherCycle { get; } public delegate* unmanaged[Cdecl] Core_SetWeatherSyncActive { get; } - public delegate* unmanaged[Cdecl] Core_ShowCursor { get; } + public delegate* unmanaged[Cdecl] Core_ShowCursor { get; } public delegate* unmanaged[Cdecl] Core_StringToSHA256 { get; } public delegate* unmanaged[Cdecl] Core_TakeScreenshot { get; } public delegate* unmanaged[Cdecl] Core_TakeScreenshotGameOnly { get; } public delegate* unmanaged[Cdecl] Core_ToggleGameControls { get; } + public delegate* unmanaged[Cdecl] Core_ToggleNoiseSuppression { get; } public delegate* unmanaged[Cdecl] Core_ToggleRmlControls { get; } + public delegate* unmanaged[Cdecl] Core_ToggleVoiceActivation { get; } public delegate* unmanaged[Cdecl] Core_ToggleVoiceControls { get; } + public delegate* unmanaged[Cdecl] Core_ToggleVoiceInput { get; } public delegate* unmanaged[Cdecl] Core_TriggerServerEvent { get; } + public delegate* unmanaged[Cdecl] Core_TriggerServerEventUnreliable { get; } + public delegate* unmanaged[Cdecl] Core_TriggerServerRPCAnswer { get; } + public delegate* unmanaged[Cdecl] Core_TriggerServerRPCEvent { get; } public delegate* unmanaged[Cdecl] Core_TriggerWebViewEvent { get; } public delegate* unmanaged[Cdecl] Core_UnloadYtyp { get; } public delegate* unmanaged[Cdecl] Core_WorldToScreen { get; } - public delegate* unmanaged[Cdecl] Entity_GetScriptID { get; } + public delegate* unmanaged[Cdecl] CustomTexture_GetBaseObject { get; } + public delegate* unmanaged[Cdecl] CustomTexture_GetID { get; } + public delegate* unmanaged[Cdecl] Entity_GetScriptID { get; } public delegate* unmanaged[Cdecl] Event_SetAnyResourceErrorDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetAnyResourceStartDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetAnyResourceStopDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetAudioEventDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetCheckpointDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetClientEventDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetColShapeDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetConnectionCompleteDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetConsoleCommandDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreateAudioDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreateBlipDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreateCheckpointDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreateHttpClientDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreateObjectDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreatePlayerDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreateRmlDocumentDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreateRmlElementDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreateVehicleDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreateWebSocketClientDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreateWebViewDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetCreateBaseObjectDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetEntityHitEntityDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetGameEntityCreateDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetGameEntityDestroyDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetGlobalMetaChangeDelegate { get; } @@ -182,7 +277,9 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl] Event_SetKeyDownDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetKeyUpDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetLocalMetaChangeDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetMetaChangeDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetNetOwnerChangeDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetPlayerBulletHitDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetPlayerChangeAnimationDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetPlayerChangeInteriorDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetPlayerChangeVehicleSeatDelegate { get; } @@ -190,31 +287,32 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl] Event_SetPlayerEnterVehicleDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetPlayerLeaveVehicleDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetPlayerSpawnDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetPlayerStartEnterVehicleDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetPlayerStartLeaveVehicleDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetPlayerWeaponChangeDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetPlayerWeaponShootDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveAudioDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveBlipDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveCheckpointDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveEntityDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveHttpClientDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveObjectDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemovePlayerDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveRmlDocumentDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveRmlElementDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveVehicleDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveWebSocketClientDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveWebViewDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetRemoveBaseObjectDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetRmlEventDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetScriptRPCAnswerDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetScriptRPCDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetServerEventDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetStreamSyncedMetaChangeDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetSyncedMetaChangeDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetTaskChangeDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetTickDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetVoiceConnectionDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetWeaponDamageDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetWebSocketEventDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetWebViewEventDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetWindowFocusChangeDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetWindowResolutionChangeDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetWorldObjectPositionChangeDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetWorldObjectStreamInDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetWorldObjectStreamOutDelegate { get; } + public delegate* unmanaged[Cdecl] Font_GetBaseObject { get; } + public delegate* unmanaged[Cdecl] Font_GetID { get; } + public delegate* unmanaged[Cdecl] FreeLocalPedArray { get; } + public delegate* unmanaged[Cdecl] FreeLocalVehicleArray { get; } public delegate* unmanaged[Cdecl] FreeRmlElementArray { get; } public delegate* unmanaged[Cdecl] GetNativeFuncTable { get; } public delegate* unmanaged[Cdecl] Handling_GetAcceleration { get; } @@ -360,9 +458,48 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl] HttpClient_Put { get; } public delegate* unmanaged[Cdecl] HttpClient_SetExtraHeader { get; } public delegate* unmanaged[Cdecl] HttpClient_Trace { get; } + public delegate* unmanaged[Cdecl] LocalObject_ActivatePhysics { get; } + public delegate* unmanaged[Cdecl] LocalObject_AttachToEntity { get; } + public delegate* unmanaged[Cdecl] LocalObject_AttachToEntity_ScriptId { get; } + public delegate* unmanaged[Cdecl] LocalObject_Detach { get; } + public delegate* unmanaged[Cdecl] LocalObject_GetComponentTintIndex { get; } + public delegate* unmanaged[Cdecl] LocalObject_GetID { get; } + public delegate* unmanaged[Cdecl] LocalObject_GetObject { get; } + public delegate* unmanaged[Cdecl] LocalObject_GetStreamingDistance { get; } + public delegate* unmanaged[Cdecl] LocalObject_GetTintIndex { get; } + public delegate* unmanaged[Cdecl] LocalObject_GiveComponent { get; } + public delegate* unmanaged[Cdecl] LocalObject_HasGravity { get; } + public delegate* unmanaged[Cdecl] LocalObject_IsCollisionEnabled { get; } + public delegate* unmanaged[Cdecl] LocalObject_IsDynamic { get; } + public delegate* unmanaged[Cdecl] LocalObject_IsStreamedIn { get; } + public delegate* unmanaged[Cdecl] LocalObject_IsVisible { get; } + public delegate* unmanaged[Cdecl] LocalObject_IsWeaponObject { get; } + public delegate* unmanaged[Cdecl] LocalObject_IsWorldObject { get; } + public delegate* unmanaged[Cdecl] LocalObject_PlaceOnGroundProperly { get; } + public delegate* unmanaged[Cdecl] LocalObject_RemoveComponent { get; } + public delegate* unmanaged[Cdecl] LocalObject_ResetAlpha { get; } + public delegate* unmanaged[Cdecl] LocalObject_SetAlpha { get; } + public delegate* unmanaged[Cdecl] LocalObject_SetComponentTintIndex { get; } + public delegate* unmanaged[Cdecl] LocalObject_SetLodDistance { get; } + public delegate* unmanaged[Cdecl] LocalObject_SetModel { get; } + public delegate* unmanaged[Cdecl] LocalObject_SetPositionFrozen { get; } + public delegate* unmanaged[Cdecl] LocalObject_SetTextureVariation { get; } + public delegate* unmanaged[Cdecl] LocalObject_SetTintIndex { get; } + public delegate* unmanaged[Cdecl] LocalObject_SetVisible { get; } + public delegate* unmanaged[Cdecl] LocalObject_ToggleCollision { get; } + public delegate* unmanaged[Cdecl] LocalObject_ToggleGravity { get; } + public delegate* unmanaged[Cdecl] LocalObject_UsesStreaming { get; } + public delegate* unmanaged[Cdecl] LocalPed_GetID { get; } + public delegate* unmanaged[Cdecl] LocalPed_GetPed { get; } + public delegate* unmanaged[Cdecl] LocalPed_GetScriptID { get; } + public delegate* unmanaged[Cdecl] LocalPed_GetStreamingDistance { get; } + public delegate* unmanaged[Cdecl] LocalPed_IsStreamedIn { get; } + public delegate* unmanaged[Cdecl] LocalPed_IsVisible { get; } + public delegate* unmanaged[Cdecl] LocalPed_SetModel { get; } + public delegate* unmanaged[Cdecl] LocalPed_SetVisible { get; } public delegate* unmanaged[Cdecl] LocalPlayer_GetCurrentAmmo { get; } public delegate* unmanaged[Cdecl] LocalPlayer_GetCurrentWeaponHash { get; } - public delegate* unmanaged[Cdecl] LocalPlayer_GetID { get; } + public delegate* unmanaged[Cdecl] LocalPlayer_GetID { get; } public delegate* unmanaged[Cdecl] LocalPlayer_GetMaxStamina { get; } public delegate* unmanaged[Cdecl] LocalPlayer_GetPlayer { get; } public delegate* unmanaged[Cdecl] LocalPlayer_GetStamina { get; } @@ -375,8 +512,17 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl] LocalStorage_Clear { get; } public delegate* unmanaged[Cdecl] LocalStorage_DeleteKey { get; } public delegate* unmanaged[Cdecl] LocalStorage_GetKey { get; } + public delegate* unmanaged[Cdecl] LocalStorage_Has { get; } public delegate* unmanaged[Cdecl] LocalStorage_Save { get; } public delegate* unmanaged[Cdecl] LocalStorage_SetKey { get; } + public delegate* unmanaged[Cdecl] LocalVehicle_GetID { get; } + public delegate* unmanaged[Cdecl] LocalVehicle_GetScriptID { get; } + public delegate* unmanaged[Cdecl] LocalVehicle_GetStreamingDistance { get; } + public delegate* unmanaged[Cdecl] LocalVehicle_GetVehicle { get; } + public delegate* unmanaged[Cdecl] LocalVehicle_IsStreamedIn { get; } + public delegate* unmanaged[Cdecl] LocalVehicle_IsVisible { get; } + public delegate* unmanaged[Cdecl] LocalVehicle_SetModel { get; } + public delegate* unmanaged[Cdecl] LocalVehicle_SetVisible { get; } public delegate* unmanaged[Cdecl] MapData_GetFScrollSpeed { get; } public delegate* unmanaged[Cdecl] MapData_GetFZoomScale { get; } public delegate* unmanaged[Cdecl] MapData_GetFZoomSpeed { get; } @@ -387,19 +533,23 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl] MapData_SetFZoomSpeed { get; } public delegate* unmanaged[Cdecl] MapData_SetVTilesX { get; } public delegate* unmanaged[Cdecl] MapData_SetVTilesY { get; } - public delegate* unmanaged[Cdecl] Object_IsRemote { get; } + public delegate* unmanaged[Cdecl] Marker_IsStreamedIn { get; } + public delegate* unmanaged[Cdecl] Player_AddFilter { get; } + public delegate* unmanaged[Cdecl] Player_GetFilter { get; } public delegate* unmanaged[Cdecl] Player_GetLocal { get; } public delegate* unmanaged[Cdecl] Player_GetMicLevel { get; } public delegate* unmanaged[Cdecl] Player_GetNonSpatialVolume { get; } public delegate* unmanaged[Cdecl] Player_GetSpatialVolume { get; } + public delegate* unmanaged[Cdecl] Player_GetTaskData { get; } public delegate* unmanaged[Cdecl] Player_IsTalking { get; } + public delegate* unmanaged[Cdecl] Player_RemoveFilter { get; } public delegate* unmanaged[Cdecl] Player_SetNonSpatialVolume { get; } public delegate* unmanaged[Cdecl] Player_SetSpatialVolume { get; } - public delegate* unmanaged[Cdecl] Resource_FileExists { get; } + public delegate* unmanaged[Cdecl] Resource_FileExists { get; } public delegate* unmanaged[Cdecl] Resource_GetFile { get; } public delegate* unmanaged[Cdecl] Resource_GetLocalStorage { get; } - public delegate* unmanaged[Cdecl] RmlDocument_CreateElement { get; } - public delegate* unmanaged[Cdecl] RmlDocument_CreateTextNode { get; } + public delegate* unmanaged[Cdecl] RmlDocument_CreateElement { get; } + public delegate* unmanaged[Cdecl] RmlDocument_CreateTextNode { get; } public delegate* unmanaged[Cdecl] RmlDocument_GetBody { get; } public delegate* unmanaged[Cdecl] RmlDocument_GetRmlElement { get; } public delegate* unmanaged[Cdecl] RmlDocument_GetSourceUrl { get; } @@ -437,7 +587,7 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetElementsByTagName { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetFirstChild { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetFocusedElement { get; } - public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetId { get; } + public delegate* unmanaged[Cdecl] RmlElement_GetID { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetInnerRml { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetLastChild { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetLocalProperty { get; } @@ -453,6 +603,7 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetPropertyAbsoluteValue { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetPseudoClassList { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetRelativeOffset { get; } + public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetRmlId { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetScrollHeight { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetScrollLeft { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetScrollTop { get; } @@ -479,12 +630,13 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl] RmlElement_ReplaceChild { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_ScrollIntoView { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_SetAttribute { get; } - public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_SetId { get; } public delegate* unmanaged[Cdecl] RmlElement_SetInnerRml { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_SetOffset { get; } public delegate* unmanaged[Cdecl] RmlElement_SetProperty { get; } + public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_SetRmlID { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_SetScrollLeft { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_SetScrollTop { get; } + public delegate* unmanaged[Cdecl] TextLabel_IsStreamedIn { get; } public delegate* unmanaged[Cdecl] Vehicle_GetAbsLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_GetBatteryLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_GetCurrentGear { get; } @@ -500,6 +652,7 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl] Vehicle_GetPetrolLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_GetSeatCount { get; } public delegate* unmanaged[Cdecl] Vehicle_GetSpeedVector { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetSuspensionHeight { get; } public delegate* unmanaged[Cdecl] Vehicle_GetWheelCamber { get; } public delegate* unmanaged[Cdecl] Vehicle_GetWheelHeight { get; } public delegate* unmanaged[Cdecl] Vehicle_GetWheelRimRadius { get; } @@ -646,6 +799,7 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl] Vehicle_SetAbsLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_SetBatteryLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_SetCurrentGear { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetCurrentRPM { get; } public delegate* unmanaged[Cdecl] Vehicle_SetEngineLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_SetEngineTemperature { get; } public delegate* unmanaged[Cdecl] Vehicle_SetFuelLevel { get; } @@ -654,6 +808,8 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl] Vehicle_SetOilLevel { get; } public delegate* unmanaged[Cdecl] Vehicle_SetOilLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_SetPetrolLightState { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetSteeringAngle { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetSuspensionHeight { get; } public delegate* unmanaged[Cdecl] Vehicle_SetWheelCamber { get; } public delegate* unmanaged[Cdecl] Vehicle_SetWheelHeight { get; } public delegate* unmanaged[Cdecl] Vehicle_SetWheelRimRadius { get; } @@ -661,6 +817,7 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl] Vehicle_SetWheelTyreRadius { get; } public delegate* unmanaged[Cdecl] Vehicle_SetWheelTyreWidth { get; } public delegate* unmanaged[Cdecl] Vehicle_ToggleTaxiLight { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_IsStreamedIn { get; } public delegate* unmanaged[Cdecl] WeaponData_GetAccuracySpread { get; } public delegate* unmanaged[Cdecl] WeaponData_GetAnimReloadRate { get; } public delegate* unmanaged[Cdecl] WeaponData_GetClipSize { get; } @@ -706,14 +863,17 @@ public unsafe interface IClientLibrary public delegate* unmanaged[Cdecl] WebSocketClient_SetUrl { get; } public delegate* unmanaged[Cdecl] WebSocketClient_Start { get; } public delegate* unmanaged[Cdecl] WebSocketClient_Stop { get; } + public delegate* unmanaged[Cdecl] WebView_AddOutput { get; } public delegate* unmanaged[Cdecl] WebView_Focus { get; } public delegate* unmanaged[Cdecl] WebView_GetBaseObject { get; } + public delegate* unmanaged[Cdecl] WebView_GetOutputs { get; } public delegate* unmanaged[Cdecl] WebView_GetPosition { get; } public delegate* unmanaged[Cdecl] WebView_GetSize { get; } public delegate* unmanaged[Cdecl] WebView_GetUrl { get; } public delegate* unmanaged[Cdecl] WebView_IsFocused { get; } public delegate* unmanaged[Cdecl] WebView_IsOverlay { get; } public delegate* unmanaged[Cdecl] WebView_IsVisible { get; } + public delegate* unmanaged[Cdecl] WebView_RemoveOutput { get; } public delegate* unmanaged[Cdecl] WebView_SetExtraHeader { get; } public delegate* unmanaged[Cdecl] WebView_SetIsVisible { get; } public delegate* unmanaged[Cdecl] WebView_SetPosition { get; } @@ -726,31 +886,95 @@ public unsafe interface IClientLibrary public unsafe class ClientLibrary : IClientLibrary { - public readonly uint Methods = 1328; - public delegate* unmanaged[Cdecl] Audio_AddOutput_Entity { get; } - public delegate* unmanaged[Cdecl] Audio_AddOutput_ScriptId { get; } + public readonly uint Methods = 1735; + public delegate* unmanaged[Cdecl] Audio_AddOutput { get; } public delegate* unmanaged[Cdecl] Audio_GetBaseObject { get; } - public delegate* unmanaged[Cdecl] Audio_GetCategory { get; } public delegate* unmanaged[Cdecl] Audio_GetCurrentTime { get; } public delegate* unmanaged[Cdecl] Audio_GetLooped { get; } public delegate* unmanaged[Cdecl] Audio_GetMaxTime { get; } public delegate* unmanaged[Cdecl] Audio_GetOutputs { get; } public delegate* unmanaged[Cdecl] Audio_GetSource { get; } public delegate* unmanaged[Cdecl] Audio_GetVolume { get; } - public delegate* unmanaged[Cdecl] Audio_IsFrontendPlay { get; } public delegate* unmanaged[Cdecl] Audio_IsPlaying { get; } public delegate* unmanaged[Cdecl] Audio_Pause { get; } public delegate* unmanaged[Cdecl] Audio_Play { get; } - public delegate* unmanaged[Cdecl] Audio_RemoveOutput_Entity { get; } - public delegate* unmanaged[Cdecl] Audio_RemoveOutput_ScriptId { get; } + public delegate* unmanaged[Cdecl] Audio_RemoveOutput { get; } public delegate* unmanaged[Cdecl] Audio_Reset { get; } public delegate* unmanaged[Cdecl] Audio_Seek { get; } - public delegate* unmanaged[Cdecl] Audio_SetCategory { get; } public delegate* unmanaged[Cdecl] Audio_SetLooped { get; } public delegate* unmanaged[Cdecl] Audio_SetSource { get; } public delegate* unmanaged[Cdecl] Audio_SetVolume { get; } - public delegate* unmanaged[Cdecl] Blip_GetScriptID { get; } - public delegate* unmanaged[Cdecl] Blip_IsRemote { get; } + public delegate* unmanaged[Cdecl] AudioAttachedOutput_GetAudioOutputObject { get; } + public delegate* unmanaged[Cdecl] AudioAttachedOutput_GetEntity { get; } + public delegate* unmanaged[Cdecl] AudioAttachedOutput_SetEntity { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetDistanceReverbDamping { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetDistanceRolloffScale { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetEnvironmentalFilterDamping { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetEnvironmentalLoudness { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetHighPassFilterCutoff { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetInteriorReverbDamping { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetLowPassFilterCutoff { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetName { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetOcclusionDamping { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetPitch { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetPlateauRolloffScale { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetSourceReverbDamping { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetStonedWetLevel { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetUnderwaterWetLevel { get; } + public delegate* unmanaged[Cdecl] AudioCategory_GetVolume { get; } + public delegate* unmanaged[Cdecl] AudioCategory_Reset { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetDistanceReverbDamping { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetDistanceRolloffScale { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetEnvironmentalFilterDamping { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetEnvironmentalLoudness { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetHighPassFilterCutoff { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetInteriorReverbDamping { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetLowPassFilterCutoff { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetOcclusionDamping { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetPitch { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetPlateauRolloffScale { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetSourceReverbDamping { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetStonedWetLevel { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetUnderwaterWetLevel { get; } + public delegate* unmanaged[Cdecl] AudioCategory_SetVolume { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddAutowahEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddBqfEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddChorusEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddCompressor2Effect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddDampEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddDistortionEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddEcho4Effect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddFreeverbEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddPeakeqEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddPhaserEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddPitchshiftEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddRotateEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_AddVolumeEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_GetAudCategory { get; } + public delegate* unmanaged[Cdecl] AudioFilter_GetBaseObject { get; } + public delegate* unmanaged[Cdecl] AudioFilter_GetHash { get; } + public delegate* unmanaged[Cdecl] AudioFilter_RemoveEffect { get; } + public delegate* unmanaged[Cdecl] AudioFilter_SetAudCategory { get; } + public delegate* unmanaged[Cdecl] AudioFrontendOutput_GetAudioOutputObject { get; } + public delegate* unmanaged[Cdecl] AudioOutput_AddFilter { get; } + public delegate* unmanaged[Cdecl] AudioOutput_GetBaseObject { get; } + public delegate* unmanaged[Cdecl] AudioOutput_GetCategory { get; } + public delegate* unmanaged[Cdecl] AudioOutput_GetFilter { get; } + public delegate* unmanaged[Cdecl] AudioOutput_GetOwner { get; } + public delegate* unmanaged[Cdecl] AudioOutput_GetVolume { get; } + public delegate* unmanaged[Cdecl] AudioOutput_IsMuted { get; } + public delegate* unmanaged[Cdecl] AudioOutput_RemoveFilter { get; } + public delegate* unmanaged[Cdecl] AudioOutput_SetMuted { get; } + public delegate* unmanaged[Cdecl] AudioOutput_SetVolume { get; } + public delegate* unmanaged[Cdecl] AudioWorldOutput_GetAudioOutputObject { get; } + public delegate* unmanaged[Cdecl] AudioWorldOutput_GetPosition { get; } + public delegate* unmanaged[Cdecl] AudioWorldOutput_SetPosition { get; } + public delegate* unmanaged[Cdecl] BaseObject_GetRemoteID { get; } + public delegate* unmanaged[Cdecl] BaseObject_IsRemote { get; } + public delegate* unmanaged[Cdecl] Blip_GetGameID { get; } + public delegate* unmanaged[Cdecl] Blip_IsStreamedIn { get; } + public delegate* unmanaged[Cdecl] Checkpoint_GetGameID { get; } + public delegate* unmanaged[Cdecl] Checkpoint_IsStreamedIn { get; } public delegate* unmanaged[Cdecl] Core_AddGXTText { get; } public delegate* unmanaged[Cdecl] Core_AreGameControlsEnabled { get; } public delegate* unmanaged[Cdecl] Core_AreRmlControlsEnabled { get; } @@ -758,24 +982,40 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] Core_BeginScaleformMovieMethodMinimap { get; } public delegate* unmanaged[Cdecl] Core_ClearFocusOverride { get; } public delegate* unmanaged[Cdecl] Core_ClearPedProp { get; } - public delegate* unmanaged[Cdecl] Core_Client_CreateAreaBlip { get; } - public delegate* unmanaged[Cdecl] Core_Client_CreatePointBlip { get; } - public delegate* unmanaged[Cdecl] Core_Client_CreateRadiusBlip { get; } + public delegate* unmanaged[Cdecl] Core_Client_CreateAreaBlip { get; } + public delegate* unmanaged[Cdecl] Core_Client_CreatePointBlip { get; } + public delegate* unmanaged[Cdecl] Core_Client_CreateRadiusBlip { get; } public delegate* unmanaged[Cdecl] Core_Client_FileExists { get; } public delegate* unmanaged[Cdecl] Core_Client_FileRead { get; } public delegate* unmanaged[Cdecl] Core_CopyToClipboard { get; } - public delegate* unmanaged[Cdecl] Core_CreateAudio { get; } - public delegate* unmanaged[Cdecl] Core_CreateCheckpoint { get; } - public delegate* unmanaged[Cdecl] Core_CreateHttpClient { get; } - public delegate* unmanaged[Cdecl] Core_CreateObject { get; } - public delegate* unmanaged[Cdecl] Core_CreateRmlDocument { get; } - public delegate* unmanaged[Cdecl] Core_CreateWebsocketClient { get; } - public delegate* unmanaged[Cdecl] Core_CreateWebView { get; } - public delegate* unmanaged[Cdecl] Core_CreateWebView3D { get; } + public delegate* unmanaged[Cdecl] Core_CreateAttachedOutput { get; } + public delegate* unmanaged[Cdecl] Core_CreateAudio { get; } + public delegate* unmanaged[Cdecl] Core_CreateAudioFilter { get; } + public delegate* unmanaged[Cdecl] Core_CreateCheckpoint { get; } + public delegate* unmanaged[Cdecl] Core_CreateFrontendOutput { get; } + public delegate* unmanaged[Cdecl] Core_CreateHttpClient { get; } + public delegate* unmanaged[Cdecl] Core_CreateLocalObject { get; } + public delegate* unmanaged[Cdecl] Core_CreateLocalPed { get; } + public delegate* unmanaged[Cdecl] Core_CreateLocalVehicle { get; } + public delegate* unmanaged[Cdecl] Core_CreateMarker_Client { get; } + public delegate* unmanaged[Cdecl] Core_CreateRmlDocument { get; } + public delegate* unmanaged[Cdecl] Core_CreateTextLabel { get; } + public delegate* unmanaged[Cdecl] Core_CreateWeaponObject { get; } + public delegate* unmanaged[Cdecl] Core_CreateWebsocketClient { get; } + public delegate* unmanaged[Cdecl] Core_CreateWebView { get; } + public delegate* unmanaged[Cdecl] Core_CreateWebView3D { get; } + public delegate* unmanaged[Cdecl] Core_CreateWorldOutput { get; } public delegate* unmanaged[Cdecl] Core_DeallocDiscordUser { get; } public delegate* unmanaged[Cdecl] Core_Discord_GetOAuth2Token { get; } public delegate* unmanaged[Cdecl] Core_DoesConfigFlagExist { get; } + public delegate* unmanaged[Cdecl] Core_GetAllWeaponData { get; } + public delegate* unmanaged[Cdecl] Core_GetAllWeaponDataCount { get; } + public delegate* unmanaged[Cdecl] Core_GetAudioCount { get; } + public delegate* unmanaged[Cdecl] Core_GetAudioOutputs { get; } + public delegate* unmanaged[Cdecl] Core_GetAudios { get; } + public delegate* unmanaged[Cdecl] Core_GetBlipByGameID { get; } public delegate* unmanaged[Cdecl] Core_GetCamPos { get; } + public delegate* unmanaged[Cdecl] Core_GetCheckpointByGameID { get; } public delegate* unmanaged[Cdecl] Core_GetClientPath { get; } public delegate* unmanaged[Cdecl] Core_GetConfigFlag { get; } public delegate* unmanaged[Cdecl] Core_GetCursorPos { get; } @@ -789,9 +1029,11 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] Core_GetLicenseHash { get; } public delegate* unmanaged[Cdecl] Core_GetLocale { get; } public delegate* unmanaged[Cdecl] Core_GetLocalMeta { get; } + public delegate* unmanaged[Cdecl] Core_GetLocalObjects { get; } + public delegate* unmanaged[Cdecl] Core_GetLocalPeds { get; } + public delegate* unmanaged[Cdecl] Core_GetLocalVehicles { get; } public delegate* unmanaged[Cdecl] Core_GetMapZoomDataByAlias { get; } public delegate* unmanaged[Cdecl] Core_GetMsPerGameMinute { get; } - public delegate* unmanaged[Cdecl] Core_GetObjects { get; } public delegate* unmanaged[Cdecl] Core_GetPedBonePos { get; } public delegate* unmanaged[Cdecl] Core_GetPermissionState { get; } public delegate* unmanaged[Cdecl] Core_GetPing { get; } @@ -812,21 +1054,29 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] Core_GetTotalPacketsLost { get; } public delegate* unmanaged[Cdecl] Core_GetTotalPacketsSent { get; } public delegate* unmanaged[Cdecl] Core_GetVoiceActivationKey { get; } + public delegate* unmanaged[Cdecl] Core_GetVoiceActivationLevel { get; } public delegate* unmanaged[Cdecl] Core_GetVoiceInputMuted { get; } + public delegate* unmanaged[Cdecl] Core_GetWeaponObjects { get; } + public delegate* unmanaged[Cdecl] Core_GetWebViewCount { get; } + public delegate* unmanaged[Cdecl] Core_GetWebViews { get; } + public delegate* unmanaged[Cdecl] Core_GetWorldObjectByScriptID { get; } public delegate* unmanaged[Cdecl] Core_GetWorldObjects { get; } public delegate* unmanaged[Cdecl] Core_HasLocalMeta { get; } public delegate* unmanaged[Cdecl] Core_IsCamFrozen { get; } public delegate* unmanaged[Cdecl] Core_IsConsoleOpen { get; } public delegate* unmanaged[Cdecl] Core_IsCursorVisible { get; } public delegate* unmanaged[Cdecl] Core_IsFocusOverriden { get; } + public delegate* unmanaged[Cdecl] Core_IsFullScreen { get; } public delegate* unmanaged[Cdecl] Core_IsGameFocused { get; } public delegate* unmanaged[Cdecl] Core_IsInStreamerMode { get; } public delegate* unmanaged[Cdecl] Core_IsKeyDown { get; } public delegate* unmanaged[Cdecl] Core_IsKeyToggled { get; } public delegate* unmanaged[Cdecl] Core_IsMenuOpened { get; } + public delegate* unmanaged[Cdecl] Core_IsNoiseSuppressionEnabled { get; } public delegate* unmanaged[Cdecl] Core_IsPointOnScreen { get; } public delegate* unmanaged[Cdecl] Core_IsTextureExistInArchetype { get; } public delegate* unmanaged[Cdecl] Core_IsVoiceActivityInputEnabled { get; } + public delegate* unmanaged[Cdecl] Core_IsWebViewGpuAccelerationActive { get; } public delegate* unmanaged[Cdecl] Core_LoadDefaultIpls { get; } public delegate* unmanaged[Cdecl] Core_LoadModel { get; } public delegate* unmanaged[Cdecl] Core_LoadModelAsync { get; } @@ -834,11 +1084,13 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] Core_LoadYtyp { get; } public delegate* unmanaged[Cdecl] Core_OverrideFocusEntity { get; } public delegate* unmanaged[Cdecl] Core_OverrideFocusPosition { get; } + public delegate* unmanaged[Cdecl] Core_RegisterFont { get; } public delegate* unmanaged[Cdecl] Core_RemoveGXTText { get; } public delegate* unmanaged[Cdecl] Core_RemoveIpl { get; } public delegate* unmanaged[Cdecl] Core_RequestIpl { get; } public delegate* unmanaged[Cdecl] Core_ResetAllMapZoomData { get; } public delegate* unmanaged[Cdecl] Core_ResetMapZoomData { get; } + public delegate* unmanaged[Cdecl] Core_ResetMinimapComponentPosition { get; } public delegate* unmanaged[Cdecl] Core_ResetStat { get; } public delegate* unmanaged[Cdecl] Core_ScreenToWorld { get; } public delegate* unmanaged[Cdecl] Core_SetCamFrozen { get; } @@ -859,39 +1111,42 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] Core_SetStatUInt32 { get; } public delegate* unmanaged[Cdecl] Core_SetStatUInt64 { get; } public delegate* unmanaged[Cdecl] Core_SetStatUInt8 { get; } + public delegate* unmanaged[Cdecl] Core_SetVoiceActivationLevel { get; } public delegate* unmanaged[Cdecl] Core_SetVoiceInputMuted { get; } public delegate* unmanaged[Cdecl] Core_SetWatermarkPosition { get; } public delegate* unmanaged[Cdecl] Core_SetWeatherCycle { get; } public delegate* unmanaged[Cdecl] Core_SetWeatherSyncActive { get; } - public delegate* unmanaged[Cdecl] Core_ShowCursor { get; } + public delegate* unmanaged[Cdecl] Core_ShowCursor { get; } public delegate* unmanaged[Cdecl] Core_StringToSHA256 { get; } public delegate* unmanaged[Cdecl] Core_TakeScreenshot { get; } public delegate* unmanaged[Cdecl] Core_TakeScreenshotGameOnly { get; } public delegate* unmanaged[Cdecl] Core_ToggleGameControls { get; } + public delegate* unmanaged[Cdecl] Core_ToggleNoiseSuppression { get; } public delegate* unmanaged[Cdecl] Core_ToggleRmlControls { get; } + public delegate* unmanaged[Cdecl] Core_ToggleVoiceActivation { get; } public delegate* unmanaged[Cdecl] Core_ToggleVoiceControls { get; } + public delegate* unmanaged[Cdecl] Core_ToggleVoiceInput { get; } public delegate* unmanaged[Cdecl] Core_TriggerServerEvent { get; } + public delegate* unmanaged[Cdecl] Core_TriggerServerEventUnreliable { get; } + public delegate* unmanaged[Cdecl] Core_TriggerServerRPCAnswer { get; } + public delegate* unmanaged[Cdecl] Core_TriggerServerRPCEvent { get; } public delegate* unmanaged[Cdecl] Core_TriggerWebViewEvent { get; } public delegate* unmanaged[Cdecl] Core_UnloadYtyp { get; } public delegate* unmanaged[Cdecl] Core_WorldToScreen { get; } - public delegate* unmanaged[Cdecl] Entity_GetScriptID { get; } + public delegate* unmanaged[Cdecl] CustomTexture_GetBaseObject { get; } + public delegate* unmanaged[Cdecl] CustomTexture_GetID { get; } + public delegate* unmanaged[Cdecl] Entity_GetScriptID { get; } public delegate* unmanaged[Cdecl] Event_SetAnyResourceErrorDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetAnyResourceStartDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetAnyResourceStopDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetAudioEventDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetCheckpointDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetClientEventDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetColShapeDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetConnectionCompleteDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetConsoleCommandDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreateAudioDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreateBlipDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreateCheckpointDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreateHttpClientDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreateObjectDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreatePlayerDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreateRmlDocumentDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreateRmlElementDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreateVehicleDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreateWebSocketClientDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetCreateWebViewDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetCreateBaseObjectDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetEntityHitEntityDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetGameEntityCreateDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetGameEntityDestroyDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetGlobalMetaChangeDelegate { get; } @@ -899,7 +1154,9 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] Event_SetKeyDownDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetKeyUpDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetLocalMetaChangeDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetMetaChangeDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetNetOwnerChangeDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetPlayerBulletHitDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetPlayerChangeAnimationDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetPlayerChangeInteriorDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetPlayerChangeVehicleSeatDelegate { get; } @@ -907,31 +1164,32 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] Event_SetPlayerEnterVehicleDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetPlayerLeaveVehicleDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetPlayerSpawnDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetPlayerStartEnterVehicleDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetPlayerStartLeaveVehicleDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetPlayerWeaponChangeDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetPlayerWeaponShootDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveAudioDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveBlipDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveCheckpointDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveEntityDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveHttpClientDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveObjectDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemovePlayerDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveRmlDocumentDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveRmlElementDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveVehicleDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveWebSocketClientDelegate { get; } - public delegate* unmanaged[Cdecl] Event_SetRemoveWebViewDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetRemoveBaseObjectDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetRmlEventDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetScriptRPCAnswerDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetScriptRPCDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetServerEventDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetStreamSyncedMetaChangeDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetSyncedMetaChangeDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetTaskChangeDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetTickDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetVoiceConnectionDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetWeaponDamageDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetWebSocketEventDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetWebViewEventDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetWindowFocusChangeDelegate { get; } public delegate* unmanaged[Cdecl] Event_SetWindowResolutionChangeDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetWorldObjectPositionChangeDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetWorldObjectStreamInDelegate { get; } + public delegate* unmanaged[Cdecl] Event_SetWorldObjectStreamOutDelegate { get; } + public delegate* unmanaged[Cdecl] Font_GetBaseObject { get; } + public delegate* unmanaged[Cdecl] Font_GetID { get; } + public delegate* unmanaged[Cdecl] FreeLocalPedArray { get; } + public delegate* unmanaged[Cdecl] FreeLocalVehicleArray { get; } public delegate* unmanaged[Cdecl] FreeRmlElementArray { get; } public delegate* unmanaged[Cdecl] GetNativeFuncTable { get; } public delegate* unmanaged[Cdecl] Handling_GetAcceleration { get; } @@ -1077,9 +1335,48 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] HttpClient_Put { get; } public delegate* unmanaged[Cdecl] HttpClient_SetExtraHeader { get; } public delegate* unmanaged[Cdecl] HttpClient_Trace { get; } + public delegate* unmanaged[Cdecl] LocalObject_ActivatePhysics { get; } + public delegate* unmanaged[Cdecl] LocalObject_AttachToEntity { get; } + public delegate* unmanaged[Cdecl] LocalObject_AttachToEntity_ScriptId { get; } + public delegate* unmanaged[Cdecl] LocalObject_Detach { get; } + public delegate* unmanaged[Cdecl] LocalObject_GetComponentTintIndex { get; } + public delegate* unmanaged[Cdecl] LocalObject_GetID { get; } + public delegate* unmanaged[Cdecl] LocalObject_GetObject { get; } + public delegate* unmanaged[Cdecl] LocalObject_GetStreamingDistance { get; } + public delegate* unmanaged[Cdecl] LocalObject_GetTintIndex { get; } + public delegate* unmanaged[Cdecl] LocalObject_GiveComponent { get; } + public delegate* unmanaged[Cdecl] LocalObject_HasGravity { get; } + public delegate* unmanaged[Cdecl] LocalObject_IsCollisionEnabled { get; } + public delegate* unmanaged[Cdecl] LocalObject_IsDynamic { get; } + public delegate* unmanaged[Cdecl] LocalObject_IsStreamedIn { get; } + public delegate* unmanaged[Cdecl] LocalObject_IsVisible { get; } + public delegate* unmanaged[Cdecl] LocalObject_IsWeaponObject { get; } + public delegate* unmanaged[Cdecl] LocalObject_IsWorldObject { get; } + public delegate* unmanaged[Cdecl] LocalObject_PlaceOnGroundProperly { get; } + public delegate* unmanaged[Cdecl] LocalObject_RemoveComponent { get; } + public delegate* unmanaged[Cdecl] LocalObject_ResetAlpha { get; } + public delegate* unmanaged[Cdecl] LocalObject_SetAlpha { get; } + public delegate* unmanaged[Cdecl] LocalObject_SetComponentTintIndex { get; } + public delegate* unmanaged[Cdecl] LocalObject_SetLodDistance { get; } + public delegate* unmanaged[Cdecl] LocalObject_SetModel { get; } + public delegate* unmanaged[Cdecl] LocalObject_SetPositionFrozen { get; } + public delegate* unmanaged[Cdecl] LocalObject_SetTextureVariation { get; } + public delegate* unmanaged[Cdecl] LocalObject_SetTintIndex { get; } + public delegate* unmanaged[Cdecl] LocalObject_SetVisible { get; } + public delegate* unmanaged[Cdecl] LocalObject_ToggleCollision { get; } + public delegate* unmanaged[Cdecl] LocalObject_ToggleGravity { get; } + public delegate* unmanaged[Cdecl] LocalObject_UsesStreaming { get; } + public delegate* unmanaged[Cdecl] LocalPed_GetID { get; } + public delegate* unmanaged[Cdecl] LocalPed_GetPed { get; } + public delegate* unmanaged[Cdecl] LocalPed_GetScriptID { get; } + public delegate* unmanaged[Cdecl] LocalPed_GetStreamingDistance { get; } + public delegate* unmanaged[Cdecl] LocalPed_IsStreamedIn { get; } + public delegate* unmanaged[Cdecl] LocalPed_IsVisible { get; } + public delegate* unmanaged[Cdecl] LocalPed_SetModel { get; } + public delegate* unmanaged[Cdecl] LocalPed_SetVisible { get; } public delegate* unmanaged[Cdecl] LocalPlayer_GetCurrentAmmo { get; } public delegate* unmanaged[Cdecl] LocalPlayer_GetCurrentWeaponHash { get; } - public delegate* unmanaged[Cdecl] LocalPlayer_GetID { get; } + public delegate* unmanaged[Cdecl] LocalPlayer_GetID { get; } public delegate* unmanaged[Cdecl] LocalPlayer_GetMaxStamina { get; } public delegate* unmanaged[Cdecl] LocalPlayer_GetPlayer { get; } public delegate* unmanaged[Cdecl] LocalPlayer_GetStamina { get; } @@ -1092,8 +1389,17 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] LocalStorage_Clear { get; } public delegate* unmanaged[Cdecl] LocalStorage_DeleteKey { get; } public delegate* unmanaged[Cdecl] LocalStorage_GetKey { get; } + public delegate* unmanaged[Cdecl] LocalStorage_Has { get; } public delegate* unmanaged[Cdecl] LocalStorage_Save { get; } public delegate* unmanaged[Cdecl] LocalStorage_SetKey { get; } + public delegate* unmanaged[Cdecl] LocalVehicle_GetID { get; } + public delegate* unmanaged[Cdecl] LocalVehicle_GetScriptID { get; } + public delegate* unmanaged[Cdecl] LocalVehicle_GetStreamingDistance { get; } + public delegate* unmanaged[Cdecl] LocalVehicle_GetVehicle { get; } + public delegate* unmanaged[Cdecl] LocalVehicle_IsStreamedIn { get; } + public delegate* unmanaged[Cdecl] LocalVehicle_IsVisible { get; } + public delegate* unmanaged[Cdecl] LocalVehicle_SetModel { get; } + public delegate* unmanaged[Cdecl] LocalVehicle_SetVisible { get; } public delegate* unmanaged[Cdecl] MapData_GetFScrollSpeed { get; } public delegate* unmanaged[Cdecl] MapData_GetFZoomScale { get; } public delegate* unmanaged[Cdecl] MapData_GetFZoomSpeed { get; } @@ -1104,19 +1410,23 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] MapData_SetFZoomSpeed { get; } public delegate* unmanaged[Cdecl] MapData_SetVTilesX { get; } public delegate* unmanaged[Cdecl] MapData_SetVTilesY { get; } - public delegate* unmanaged[Cdecl] Object_IsRemote { get; } + public delegate* unmanaged[Cdecl] Marker_IsStreamedIn { get; } + public delegate* unmanaged[Cdecl] Player_AddFilter { get; } + public delegate* unmanaged[Cdecl] Player_GetFilter { get; } public delegate* unmanaged[Cdecl] Player_GetLocal { get; } public delegate* unmanaged[Cdecl] Player_GetMicLevel { get; } public delegate* unmanaged[Cdecl] Player_GetNonSpatialVolume { get; } public delegate* unmanaged[Cdecl] Player_GetSpatialVolume { get; } + public delegate* unmanaged[Cdecl] Player_GetTaskData { get; } public delegate* unmanaged[Cdecl] Player_IsTalking { get; } + public delegate* unmanaged[Cdecl] Player_RemoveFilter { get; } public delegate* unmanaged[Cdecl] Player_SetNonSpatialVolume { get; } public delegate* unmanaged[Cdecl] Player_SetSpatialVolume { get; } - public delegate* unmanaged[Cdecl] Resource_FileExists { get; } + public delegate* unmanaged[Cdecl] Resource_FileExists { get; } public delegate* unmanaged[Cdecl] Resource_GetFile { get; } public delegate* unmanaged[Cdecl] Resource_GetLocalStorage { get; } - public delegate* unmanaged[Cdecl] RmlDocument_CreateElement { get; } - public delegate* unmanaged[Cdecl] RmlDocument_CreateTextNode { get; } + public delegate* unmanaged[Cdecl] RmlDocument_CreateElement { get; } + public delegate* unmanaged[Cdecl] RmlDocument_CreateTextNode { get; } public delegate* unmanaged[Cdecl] RmlDocument_GetBody { get; } public delegate* unmanaged[Cdecl] RmlDocument_GetRmlElement { get; } public delegate* unmanaged[Cdecl] RmlDocument_GetSourceUrl { get; } @@ -1154,7 +1464,7 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetElementsByTagName { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetFirstChild { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetFocusedElement { get; } - public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetId { get; } + public delegate* unmanaged[Cdecl] RmlElement_GetID { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetInnerRml { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetLastChild { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetLocalProperty { get; } @@ -1170,6 +1480,7 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetPropertyAbsoluteValue { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetPseudoClassList { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetRelativeOffset { get; } + public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetRmlId { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetScrollHeight { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetScrollLeft { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_GetScrollTop { get; } @@ -1196,12 +1507,13 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] RmlElement_ReplaceChild { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_ScrollIntoView { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_SetAttribute { get; } - public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_SetId { get; } public delegate* unmanaged[Cdecl] RmlElement_SetInnerRml { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_SetOffset { get; } public delegate* unmanaged[Cdecl] RmlElement_SetProperty { get; } + public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_SetRmlID { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_SetScrollLeft { get; } public delegate* unmanaged[Cdecl, SuppressGCTransition] RmlElement_SetScrollTop { get; } + public delegate* unmanaged[Cdecl] TextLabel_IsStreamedIn { get; } public delegate* unmanaged[Cdecl] Vehicle_GetAbsLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_GetBatteryLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_GetCurrentGear { get; } @@ -1217,6 +1529,7 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] Vehicle_GetPetrolLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_GetSeatCount { get; } public delegate* unmanaged[Cdecl] Vehicle_GetSpeedVector { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetSuspensionHeight { get; } public delegate* unmanaged[Cdecl] Vehicle_GetWheelCamber { get; } public delegate* unmanaged[Cdecl] Vehicle_GetWheelHeight { get; } public delegate* unmanaged[Cdecl] Vehicle_GetWheelRimRadius { get; } @@ -1363,6 +1676,7 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] Vehicle_SetAbsLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_SetBatteryLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_SetCurrentGear { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetCurrentRPM { get; } public delegate* unmanaged[Cdecl] Vehicle_SetEngineLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_SetEngineTemperature { get; } public delegate* unmanaged[Cdecl] Vehicle_SetFuelLevel { get; } @@ -1371,6 +1685,8 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] Vehicle_SetOilLevel { get; } public delegate* unmanaged[Cdecl] Vehicle_SetOilLightState { get; } public delegate* unmanaged[Cdecl] Vehicle_SetPetrolLightState { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetSteeringAngle { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetSuspensionHeight { get; } public delegate* unmanaged[Cdecl] Vehicle_SetWheelCamber { get; } public delegate* unmanaged[Cdecl] Vehicle_SetWheelHeight { get; } public delegate* unmanaged[Cdecl] Vehicle_SetWheelRimRadius { get; } @@ -1378,6 +1694,7 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] Vehicle_SetWheelTyreRadius { get; } public delegate* unmanaged[Cdecl] Vehicle_SetWheelTyreWidth { get; } public delegate* unmanaged[Cdecl] Vehicle_ToggleTaxiLight { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_IsStreamedIn { get; } public delegate* unmanaged[Cdecl] WeaponData_GetAccuracySpread { get; } public delegate* unmanaged[Cdecl] WeaponData_GetAnimReloadRate { get; } public delegate* unmanaged[Cdecl] WeaponData_GetClipSize { get; } @@ -1423,14 +1740,17 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] WebSocketClient_SetUrl { get; } public delegate* unmanaged[Cdecl] WebSocketClient_Start { get; } public delegate* unmanaged[Cdecl] WebSocketClient_Stop { get; } + public delegate* unmanaged[Cdecl] WebView_AddOutput { get; } public delegate* unmanaged[Cdecl] WebView_Focus { get; } public delegate* unmanaged[Cdecl] WebView_GetBaseObject { get; } + public delegate* unmanaged[Cdecl] WebView_GetOutputs { get; } public delegate* unmanaged[Cdecl] WebView_GetPosition { get; } public delegate* unmanaged[Cdecl] WebView_GetSize { get; } public delegate* unmanaged[Cdecl] WebView_GetUrl { get; } public delegate* unmanaged[Cdecl] WebView_IsFocused { get; } public delegate* unmanaged[Cdecl] WebView_IsOverlay { get; } public delegate* unmanaged[Cdecl] WebView_IsVisible { get; } + public delegate* unmanaged[Cdecl] WebView_RemoveOutput { get; } public delegate* unmanaged[Cdecl] WebView_SetExtraHeader { get; } public delegate* unmanaged[Cdecl] WebView_SetIsVisible { get; } public delegate* unmanaged[Cdecl] WebView_SetPosition { get; } @@ -1439,14 +1759,10 @@ public unsafe class ClientLibrary : IClientLibrary public delegate* unmanaged[Cdecl] WebView_SetZoomLevel { get; } public delegate* unmanaged[Cdecl] WebView_Unfocus { get; } public delegate* unmanaged[Cdecl] Win_GetTaskDialog { get; } - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_AddOutput_EntityDelegate(nint _audio, nint _value); - private static void Audio_AddOutput_EntityFallback(nint _audio, nint _value) => throw new Exceptions.OutdatedSdkException("Audio_AddOutput_Entity", "Audio_AddOutput_Entity SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_AddOutput_ScriptIdDelegate(nint _audio, uint _value); - private static void Audio_AddOutput_ScriptIdFallback(nint _audio, uint _value) => throw new Exceptions.OutdatedSdkException("Audio_AddOutput_ScriptId", "Audio_AddOutput_ScriptId SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_AddOutputDelegate(nint _audio, nint _output); + private static void Audio_AddOutputFallback(nint _audio, nint _output) => throw new Exceptions.OutdatedSdkException("Audio_AddOutput", "Audio_AddOutput SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Audio_GetBaseObjectDelegate(nint _audio); private static nint Audio_GetBaseObjectFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_GetBaseObject", "Audio_GetBaseObject SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Audio_GetCategoryDelegate(nint _audio); - private static uint Audio_GetCategoryFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_GetCategory", "Audio_GetCategory SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate double Audio_GetCurrentTimeDelegate(nint _audio); private static double Audio_GetCurrentTimeFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_GetCurrentTime", "Audio_GetCurrentTime SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Audio_GetLoopedDelegate(nint _audio); @@ -1459,34 +1775,166 @@ public unsafe class ClientLibrary : IClientLibrary private static nint Audio_GetSourceFallback(nint _audio, int* _size) => throw new Exceptions.OutdatedSdkException("Audio_GetSource", "Audio_GetSource SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Audio_GetVolumeDelegate(nint _audio); private static float Audio_GetVolumeFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_GetVolume", "Audio_GetVolume SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Audio_IsFrontendPlayDelegate(nint _audio); - private static byte Audio_IsFrontendPlayFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_IsFrontendPlay", "Audio_IsFrontendPlay SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Audio_IsPlayingDelegate(nint _audio); private static byte Audio_IsPlayingFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_IsPlaying", "Audio_IsPlaying SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_PauseDelegate(nint _audio); private static void Audio_PauseFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_Pause", "Audio_Pause SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_PlayDelegate(nint _audio); private static void Audio_PlayFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_Play", "Audio_Play SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_RemoveOutput_EntityDelegate(nint _audio, nint _value); - private static void Audio_RemoveOutput_EntityFallback(nint _audio, nint _value) => throw new Exceptions.OutdatedSdkException("Audio_RemoveOutput_Entity", "Audio_RemoveOutput_Entity SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_RemoveOutput_ScriptIdDelegate(nint _audio, uint _value); - private static void Audio_RemoveOutput_ScriptIdFallback(nint _audio, uint _value) => throw new Exceptions.OutdatedSdkException("Audio_RemoveOutput_ScriptId", "Audio_RemoveOutput_ScriptId SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_RemoveOutputDelegate(nint _audio, nint _output); + private static void Audio_RemoveOutputFallback(nint _audio, nint _output) => throw new Exceptions.OutdatedSdkException("Audio_RemoveOutput", "Audio_RemoveOutput SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_ResetDelegate(nint _audio); private static void Audio_ResetFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_Reset", "Audio_Reset SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_SeekDelegate(nint _audio, double _time); private static void Audio_SeekFallback(nint _audio, double _time) => throw new Exceptions.OutdatedSdkException("Audio_Seek", "Audio_Seek SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_SetCategoryDelegate(nint _audio, uint _value); - private static void Audio_SetCategoryFallback(nint _audio, uint _value) => throw new Exceptions.OutdatedSdkException("Audio_SetCategory", "Audio_SetCategory SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_SetLoopedDelegate(nint _audio, byte _value); private static void Audio_SetLoopedFallback(nint _audio, byte _value) => throw new Exceptions.OutdatedSdkException("Audio_SetLooped", "Audio_SetLooped SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_SetSourceDelegate(nint _audio, nint _source); private static void Audio_SetSourceFallback(nint _audio, nint _source) => throw new Exceptions.OutdatedSdkException("Audio_SetSource", "Audio_SetSource SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Audio_SetVolumeDelegate(nint _audio, float _value); private static void Audio_SetVolumeFallback(nint _audio, float _value) => throw new Exceptions.OutdatedSdkException("Audio_SetVolume", "Audio_SetVolume SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Blip_GetScriptIDDelegate(nint _blip); - private static uint Blip_GetScriptIDFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetScriptID", "Blip_GetScriptID SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_IsRemoteDelegate(nint _blip); - private static byte Blip_IsRemoteFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_IsRemote", "Blip_IsRemote SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint AudioAttachedOutput_GetAudioOutputObjectDelegate(nint _audioAttachedOutput); + private static nint AudioAttachedOutput_GetAudioOutputObjectFallback(nint _audioAttachedOutput) => throw new Exceptions.OutdatedSdkException("AudioAttachedOutput_GetAudioOutputObject", "AudioAttachedOutput_GetAudioOutputObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint AudioAttachedOutput_GetEntityDelegate(nint _audioAttachedOutput, BaseObjectType* _type); + private static nint AudioAttachedOutput_GetEntityFallback(nint _audioAttachedOutput, BaseObjectType* _type) => throw new Exceptions.OutdatedSdkException("AudioAttachedOutput_GetEntity", "AudioAttachedOutput_GetEntity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioAttachedOutput_SetEntityDelegate(nint _audioAttachedOutput, nint _entity); + private static void AudioAttachedOutput_SetEntityFallback(nint _audioAttachedOutput, nint _entity) => throw new Exceptions.OutdatedSdkException("AudioAttachedOutput_SetEntity", "AudioAttachedOutput_SetEntity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float AudioCategory_GetDistanceReverbDampingDelegate(nint _name); + private static float AudioCategory_GetDistanceReverbDampingFallback(nint _name) => throw new Exceptions.OutdatedSdkException("AudioCategory_GetDistanceReverbDamping", "AudioCategory_GetDistanceReverbDamping SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float AudioCategory_GetDistanceRolloffScaleDelegate(nint _name); + private static float AudioCategory_GetDistanceRolloffScaleFallback(nint _name) => throw new Exceptions.OutdatedSdkException("AudioCategory_GetDistanceRolloffScale", "AudioCategory_GetDistanceRolloffScale SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float AudioCategory_GetEnvironmentalFilterDampingDelegate(nint _name); + private static float AudioCategory_GetEnvironmentalFilterDampingFallback(nint _name) => throw new Exceptions.OutdatedSdkException("AudioCategory_GetEnvironmentalFilterDamping", "AudioCategory_GetEnvironmentalFilterDamping SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float AudioCategory_GetEnvironmentalLoudnessDelegate(nint _name); + private static float AudioCategory_GetEnvironmentalLoudnessFallback(nint _name) => throw new Exceptions.OutdatedSdkException("AudioCategory_GetEnvironmentalLoudness", "AudioCategory_GetEnvironmentalLoudness SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate short AudioCategory_GetHighPassFilterCutoffDelegate(nint _name); + private static short AudioCategory_GetHighPassFilterCutoffFallback(nint _name) => throw new Exceptions.OutdatedSdkException("AudioCategory_GetHighPassFilterCutoff", "AudioCategory_GetHighPassFilterCutoff SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float AudioCategory_GetInteriorReverbDampingDelegate(nint _name); + private static float AudioCategory_GetInteriorReverbDampingFallback(nint _name) => throw new Exceptions.OutdatedSdkException("AudioCategory_GetInteriorReverbDamping", "AudioCategory_GetInteriorReverbDamping SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate short AudioCategory_GetLowPassFilterCutoffDelegate(nint _name); + private static short AudioCategory_GetLowPassFilterCutoffFallback(nint _name) => throw new Exceptions.OutdatedSdkException("AudioCategory_GetLowPassFilterCutoff", "AudioCategory_GetLowPassFilterCutoff SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint AudioCategory_GetNameDelegate(nint _name, int* _size); + private static nint AudioCategory_GetNameFallback(nint _name, int* _size) => throw new Exceptions.OutdatedSdkException("AudioCategory_GetName", "AudioCategory_GetName SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float AudioCategory_GetOcclusionDampingDelegate(nint _name); + private static float AudioCategory_GetOcclusionDampingFallback(nint _name) => throw new Exceptions.OutdatedSdkException("AudioCategory_GetOcclusionDamping", "AudioCategory_GetOcclusionDamping SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate short AudioCategory_GetPitchDelegate(nint _name); + private static short AudioCategory_GetPitchFallback(nint _name) => throw new Exceptions.OutdatedSdkException("AudioCategory_GetPitch", "AudioCategory_GetPitch SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float AudioCategory_GetPlateauRolloffScaleDelegate(nint _name); + private static float AudioCategory_GetPlateauRolloffScaleFallback(nint _name) => throw new Exceptions.OutdatedSdkException("AudioCategory_GetPlateauRolloffScale", "AudioCategory_GetPlateauRolloffScale SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float AudioCategory_GetSourceReverbDampingDelegate(nint _name); + private static float AudioCategory_GetSourceReverbDampingFallback(nint _name) => throw new Exceptions.OutdatedSdkException("AudioCategory_GetSourceReverbDamping", "AudioCategory_GetSourceReverbDamping SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float AudioCategory_GetStonedWetLevelDelegate(nint _name); + private static float AudioCategory_GetStonedWetLevelFallback(nint _name) => throw new Exceptions.OutdatedSdkException("AudioCategory_GetStonedWetLevel", "AudioCategory_GetStonedWetLevel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float AudioCategory_GetUnderwaterWetLevelDelegate(nint _name); + private static float AudioCategory_GetUnderwaterWetLevelFallback(nint _name) => throw new Exceptions.OutdatedSdkException("AudioCategory_GetUnderwaterWetLevel", "AudioCategory_GetUnderwaterWetLevel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float AudioCategory_GetVolumeDelegate(nint _name); + private static float AudioCategory_GetVolumeFallback(nint _name) => throw new Exceptions.OutdatedSdkException("AudioCategory_GetVolume", "AudioCategory_GetVolume SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioCategory_ResetDelegate(nint _name); + private static void AudioCategory_ResetFallback(nint _name) => throw new Exceptions.OutdatedSdkException("AudioCategory_Reset", "AudioCategory_Reset SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioCategory_SetDistanceReverbDampingDelegate(nint _name, float _value); + private static void AudioCategory_SetDistanceReverbDampingFallback(nint _name, float _value) => throw new Exceptions.OutdatedSdkException("AudioCategory_SetDistanceReverbDamping", "AudioCategory_SetDistanceReverbDamping SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioCategory_SetDistanceRolloffScaleDelegate(nint _name, float _value); + private static void AudioCategory_SetDistanceRolloffScaleFallback(nint _name, float _value) => throw new Exceptions.OutdatedSdkException("AudioCategory_SetDistanceRolloffScale", "AudioCategory_SetDistanceRolloffScale SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioCategory_SetEnvironmentalFilterDampingDelegate(nint _name, float _value); + private static void AudioCategory_SetEnvironmentalFilterDampingFallback(nint _name, float _value) => throw new Exceptions.OutdatedSdkException("AudioCategory_SetEnvironmentalFilterDamping", "AudioCategory_SetEnvironmentalFilterDamping SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioCategory_SetEnvironmentalLoudnessDelegate(nint _name, float _value); + private static void AudioCategory_SetEnvironmentalLoudnessFallback(nint _name, float _value) => throw new Exceptions.OutdatedSdkException("AudioCategory_SetEnvironmentalLoudness", "AudioCategory_SetEnvironmentalLoudness SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioCategory_SetHighPassFilterCutoffDelegate(nint _name, short _value); + private static void AudioCategory_SetHighPassFilterCutoffFallback(nint _name, short _value) => throw new Exceptions.OutdatedSdkException("AudioCategory_SetHighPassFilterCutoff", "AudioCategory_SetHighPassFilterCutoff SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioCategory_SetInteriorReverbDampingDelegate(nint _name, float _value); + private static void AudioCategory_SetInteriorReverbDampingFallback(nint _name, float _value) => throw new Exceptions.OutdatedSdkException("AudioCategory_SetInteriorReverbDamping", "AudioCategory_SetInteriorReverbDamping SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioCategory_SetLowPassFilterCutoffDelegate(nint _name, short _value); + private static void AudioCategory_SetLowPassFilterCutoffFallback(nint _name, short _value) => throw new Exceptions.OutdatedSdkException("AudioCategory_SetLowPassFilterCutoff", "AudioCategory_SetLowPassFilterCutoff SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioCategory_SetOcclusionDampingDelegate(nint _name, float _value); + private static void AudioCategory_SetOcclusionDampingFallback(nint _name, float _value) => throw new Exceptions.OutdatedSdkException("AudioCategory_SetOcclusionDamping", "AudioCategory_SetOcclusionDamping SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioCategory_SetPitchDelegate(nint _name, short _value); + private static void AudioCategory_SetPitchFallback(nint _name, short _value) => throw new Exceptions.OutdatedSdkException("AudioCategory_SetPitch", "AudioCategory_SetPitch SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioCategory_SetPlateauRolloffScaleDelegate(nint _name, float _value); + private static void AudioCategory_SetPlateauRolloffScaleFallback(nint _name, float _value) => throw new Exceptions.OutdatedSdkException("AudioCategory_SetPlateauRolloffScale", "AudioCategory_SetPlateauRolloffScale SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioCategory_SetSourceReverbDampingDelegate(nint _name, float _value); + private static void AudioCategory_SetSourceReverbDampingFallback(nint _name, float _value) => throw new Exceptions.OutdatedSdkException("AudioCategory_SetSourceReverbDamping", "AudioCategory_SetSourceReverbDamping SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioCategory_SetStonedWetLevelDelegate(nint _name, float _value); + private static void AudioCategory_SetStonedWetLevelFallback(nint _name, float _value) => throw new Exceptions.OutdatedSdkException("AudioCategory_SetStonedWetLevel", "AudioCategory_SetStonedWetLevel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioCategory_SetUnderwaterWetLevelDelegate(nint _name, float _value); + private static void AudioCategory_SetUnderwaterWetLevelFallback(nint _name, float _value) => throw new Exceptions.OutdatedSdkException("AudioCategory_SetUnderwaterWetLevel", "AudioCategory_SetUnderwaterWetLevel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioCategory_SetVolumeDelegate(nint _name, float _value); + private static void AudioCategory_SetVolumeFallback(nint _name, float _value) => throw new Exceptions.OutdatedSdkException("AudioCategory_SetVolume", "AudioCategory_SetVolume SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioFilter_AddAutowahEffectDelegate(nint _audioFilter, float _dryMix, float _wetMix, float _feedback, float _rate, float _range, float _freq, int _priority); + private static uint AudioFilter_AddAutowahEffectFallback(nint _audioFilter, float _dryMix, float _wetMix, float _feedback, float _rate, float _range, float _freq, int _priority) => throw new Exceptions.OutdatedSdkException("AudioFilter_AddAutowahEffect", "AudioFilter_AddAutowahEffect SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioFilter_AddBqfEffectDelegate(nint _audioFilter, int _lFilter, float _center, float _gain, float _bandwidth, float _q, float _s, int _priority); + private static uint AudioFilter_AddBqfEffectFallback(nint _audioFilter, int _lFilter, float _center, float _gain, float _bandwidth, float _q, float _s, int _priority) => throw new Exceptions.OutdatedSdkException("AudioFilter_AddBqfEffect", "AudioFilter_AddBqfEffect SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioFilter_AddChorusEffectDelegate(nint _audioFilter, float _dryMix, float _wetMix, float _feedback, float _minSweep, float _maxSweep, float _rate, int _priority); + private static uint AudioFilter_AddChorusEffectFallback(nint _audioFilter, float _dryMix, float _wetMix, float _feedback, float _minSweep, float _maxSweep, float _rate, int _priority) => throw new Exceptions.OutdatedSdkException("AudioFilter_AddChorusEffect", "AudioFilter_AddChorusEffect SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioFilter_AddCompressor2EffectDelegate(nint _audioFilter, float _gain, float _threshold, float _ratio, float _attack, float _release, int _priority); + private static uint AudioFilter_AddCompressor2EffectFallback(nint _audioFilter, float _gain, float _threshold, float _ratio, float _attack, float _release, int _priority) => throw new Exceptions.OutdatedSdkException("AudioFilter_AddCompressor2Effect", "AudioFilter_AddCompressor2Effect SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioFilter_AddDampEffectDelegate(nint _audioFilter, float _target, float _quiet, float _rate, float _gain, float _delay, int _priority); + private static uint AudioFilter_AddDampEffectFallback(nint _audioFilter, float _target, float _quiet, float _rate, float _gain, float _delay, int _priority) => throw new Exceptions.OutdatedSdkException("AudioFilter_AddDampEffect", "AudioFilter_AddDampEffect SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioFilter_AddDistortionEffectDelegate(nint _audioFilter, float _drive, float _dryMix, float _wetMix, float _feedback, float _volume, int _priority); + private static uint AudioFilter_AddDistortionEffectFallback(nint _audioFilter, float _drive, float _dryMix, float _wetMix, float _feedback, float _volume, int _priority) => throw new Exceptions.OutdatedSdkException("AudioFilter_AddDistortionEffect", "AudioFilter_AddDistortionEffect SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioFilter_AddEcho4EffectDelegate(nint _audioFilter, float _dryMix, float _wetMix, float _feedback, float _delay, int _priority); + private static uint AudioFilter_AddEcho4EffectFallback(nint _audioFilter, float _dryMix, float _wetMix, float _feedback, float _delay, int _priority) => throw new Exceptions.OutdatedSdkException("AudioFilter_AddEcho4Effect", "AudioFilter_AddEcho4Effect SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioFilter_AddFreeverbEffectDelegate(nint _audioFilter, float _dryMix, float _wetMix, float _roomSize, float _damp, float _width, uint _lMode, int _priority); + private static uint AudioFilter_AddFreeverbEffectFallback(nint _audioFilter, float _dryMix, float _wetMix, float _roomSize, float _damp, float _width, uint _lMode, int _priority) => throw new Exceptions.OutdatedSdkException("AudioFilter_AddFreeverbEffect", "AudioFilter_AddFreeverbEffect SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioFilter_AddPeakeqEffectDelegate(nint _audioFilter, int _lBand, float _bandwidth, float _q, float _center, float _gain, int _priority); + private static uint AudioFilter_AddPeakeqEffectFallback(nint _audioFilter, int _lBand, float _bandwidth, float _q, float _center, float _gain, int _priority) => throw new Exceptions.OutdatedSdkException("AudioFilter_AddPeakeqEffect", "AudioFilter_AddPeakeqEffect SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioFilter_AddPhaserEffectDelegate(nint _audioFilter, float _dryMix, float _wetMix, float _feedback, float _rate, float _range, float _freq, int _priority); + private static uint AudioFilter_AddPhaserEffectFallback(nint _audioFilter, float _dryMix, float _wetMix, float _feedback, float _rate, float _range, float _freq, int _priority) => throw new Exceptions.OutdatedSdkException("AudioFilter_AddPhaserEffect", "AudioFilter_AddPhaserEffect SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioFilter_AddPitchshiftEffectDelegate(nint _audioFilter, float _pitchShift, float _semitones, long _lFFTsize, long _lOsamp, int _priority); + private static uint AudioFilter_AddPitchshiftEffectFallback(nint _audioFilter, float _pitchShift, float _semitones, long _lFFTsize, long _lOsamp, int _priority) => throw new Exceptions.OutdatedSdkException("AudioFilter_AddPitchshiftEffect", "AudioFilter_AddPitchshiftEffect SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioFilter_AddRotateEffectDelegate(nint _audioFilter, float _rate, int _priority); + private static uint AudioFilter_AddRotateEffectFallback(nint _audioFilter, float _rate, int _priority) => throw new Exceptions.OutdatedSdkException("AudioFilter_AddRotateEffect", "AudioFilter_AddRotateEffect SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioFilter_AddVolumeEffectDelegate(nint _audioFilter, float _volume, int _priority); + private static uint AudioFilter_AddVolumeEffectFallback(nint _audioFilter, float _volume, int _priority) => throw new Exceptions.OutdatedSdkException("AudioFilter_AddVolumeEffect", "AudioFilter_AddVolumeEffect SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioFilter_GetAudCategoryDelegate(nint _audioFilter); + private static uint AudioFilter_GetAudCategoryFallback(nint _audioFilter) => throw new Exceptions.OutdatedSdkException("AudioFilter_GetAudCategory", "AudioFilter_GetAudCategory SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint AudioFilter_GetBaseObjectDelegate(nint _audioFilter); + private static nint AudioFilter_GetBaseObjectFallback(nint _audioFilter) => throw new Exceptions.OutdatedSdkException("AudioFilter_GetBaseObject", "AudioFilter_GetBaseObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioFilter_GetHashDelegate(nint _audioFilter); + private static uint AudioFilter_GetHashFallback(nint _audioFilter) => throw new Exceptions.OutdatedSdkException("AudioFilter_GetHash", "AudioFilter_GetHash SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte AudioFilter_RemoveEffectDelegate(nint _audioFilter, uint _hfxHandler); + private static byte AudioFilter_RemoveEffectFallback(nint _audioFilter, uint _hfxHandler) => throw new Exceptions.OutdatedSdkException("AudioFilter_RemoveEffect", "AudioFilter_RemoveEffect SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioFilter_SetAudCategoryDelegate(nint _audioFilter, uint _category); + private static void AudioFilter_SetAudCategoryFallback(nint _audioFilter, uint _category) => throw new Exceptions.OutdatedSdkException("AudioFilter_SetAudCategory", "AudioFilter_SetAudCategory SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint AudioFrontendOutput_GetAudioOutputObjectDelegate(nint _audioFrontendOutput); + private static nint AudioFrontendOutput_GetAudioOutputObjectFallback(nint _audioFrontendOutput) => throw new Exceptions.OutdatedSdkException("AudioFrontendOutput_GetAudioOutputObject", "AudioFrontendOutput_GetAudioOutputObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioOutput_AddFilterDelegate(nint _audioOutput, nint _filter); + private static void AudioOutput_AddFilterFallback(nint _audioOutput, nint _filter) => throw new Exceptions.OutdatedSdkException("AudioOutput_AddFilter", "AudioOutput_AddFilter SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint AudioOutput_GetBaseObjectDelegate(nint _audioOutput); + private static nint AudioOutput_GetBaseObjectFallback(nint _audioOutput) => throw new Exceptions.OutdatedSdkException("AudioOutput_GetBaseObject", "AudioOutput_GetBaseObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioOutput_GetCategoryDelegate(nint _audioOutput); + private static uint AudioOutput_GetCategoryFallback(nint _audioOutput) => throw new Exceptions.OutdatedSdkException("AudioOutput_GetCategory", "AudioOutput_GetCategory SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint AudioOutput_GetFilterDelegate(nint _audioOutput); + private static nint AudioOutput_GetFilterFallback(nint _audioOutput) => throw new Exceptions.OutdatedSdkException("AudioOutput_GetFilter", "AudioOutput_GetFilter SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint AudioOutput_GetOwnerDelegate(nint _audioOutput); + private static nint AudioOutput_GetOwnerFallback(nint _audioOutput) => throw new Exceptions.OutdatedSdkException("AudioOutput_GetOwner", "AudioOutput_GetOwner SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float AudioOutput_GetVolumeDelegate(nint _audioOutput); + private static float AudioOutput_GetVolumeFallback(nint _audioOutput) => throw new Exceptions.OutdatedSdkException("AudioOutput_GetVolume", "AudioOutput_GetVolume SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte AudioOutput_IsMutedDelegate(nint _audioOutput); + private static byte AudioOutput_IsMutedFallback(nint _audioOutput) => throw new Exceptions.OutdatedSdkException("AudioOutput_IsMuted", "AudioOutput_IsMuted SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioOutput_RemoveFilterDelegate(nint _audioOutput); + private static void AudioOutput_RemoveFilterFallback(nint _audioOutput) => throw new Exceptions.OutdatedSdkException("AudioOutput_RemoveFilter", "AudioOutput_RemoveFilter SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioOutput_SetMutedDelegate(nint _audioOutput, byte _toggle); + private static void AudioOutput_SetMutedFallback(nint _audioOutput, byte _toggle) => throw new Exceptions.OutdatedSdkException("AudioOutput_SetMuted", "AudioOutput_SetMuted SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioOutput_SetVolumeDelegate(nint _audioOutput, float _vol); + private static void AudioOutput_SetVolumeFallback(nint _audioOutput, float _vol) => throw new Exceptions.OutdatedSdkException("AudioOutput_SetVolume", "AudioOutput_SetVolume SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint AudioWorldOutput_GetAudioOutputObjectDelegate(nint _audioWorldOutput); + private static nint AudioWorldOutput_GetAudioOutputObjectFallback(nint _audioWorldOutput) => throw new Exceptions.OutdatedSdkException("AudioWorldOutput_GetAudioOutputObject", "AudioWorldOutput_GetAudioOutputObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate Vector3 AudioWorldOutput_GetPositionDelegate(nint _audioWorldOutput); + private static Vector3 AudioWorldOutput_GetPositionFallback(nint _audioWorldOutput) => throw new Exceptions.OutdatedSdkException("AudioWorldOutput_GetPosition", "AudioWorldOutput_GetPosition SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void AudioWorldOutput_SetPositionDelegate(nint _audioWorldOutput, Vector3 _pos); + private static void AudioWorldOutput_SetPositionFallback(nint _audioWorldOutput, Vector3 _pos) => throw new Exceptions.OutdatedSdkException("AudioWorldOutput_SetPosition", "AudioWorldOutput_SetPosition SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint BaseObject_GetRemoteIDDelegate(nint _baseObject); + private static uint BaseObject_GetRemoteIDFallback(nint _baseObject) => throw new Exceptions.OutdatedSdkException("BaseObject_GetRemoteID", "BaseObject_GetRemoteID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte BaseObject_IsRemoteDelegate(nint _baseObject); + private static byte BaseObject_IsRemoteFallback(nint _baseObject) => throw new Exceptions.OutdatedSdkException("BaseObject_IsRemote", "BaseObject_IsRemote SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Blip_GetGameIDDelegate(nint _blip); + private static uint Blip_GetGameIDFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetGameID", "Blip_GetGameID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_IsStreamedInDelegate(nint _blip); + private static byte Blip_IsStreamedInFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_IsStreamedIn", "Blip_IsStreamedIn SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Checkpoint_GetGameIDDelegate(nint _checkpoint); + private static uint Checkpoint_GetGameIDFallback(nint _checkpoint) => throw new Exceptions.OutdatedSdkException("Checkpoint_GetGameID", "Checkpoint_GetGameID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Checkpoint_IsStreamedInDelegate(nint _checkpoint); + private static byte Checkpoint_IsStreamedInFallback(nint _checkpoint) => throw new Exceptions.OutdatedSdkException("Checkpoint_IsStreamedIn", "Checkpoint_IsStreamedIn SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_AddGXTTextDelegate(nint _core, nint _resource, uint _key, nint _value); private static void Core_AddGXTTextFallback(nint _core, nint _resource, uint _key, nint _value) => throw new Exceptions.OutdatedSdkException("Core_AddGXTText", "Core_AddGXTText SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_AreGameControlsEnabledDelegate(nint _core); @@ -1501,42 +1949,74 @@ public unsafe class ClientLibrary : IClientLibrary private static void Core_ClearFocusOverrideFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_ClearFocusOverride", "Core_ClearFocusOverride SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ClearPedPropDelegate(nint _core, int _scriptID, byte _component); private static void Core_ClearPedPropFallback(nint _core, int _scriptID, byte _component) => throw new Exceptions.OutdatedSdkException("Core_ClearPedProp", "Core_ClearPedProp SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_Client_CreateAreaBlipDelegate(nint _core, Vector3 _position, float _width, float _height, nint _resource); - private static nint Core_Client_CreateAreaBlipFallback(nint _core, Vector3 _position, float _width, float _height, nint _resource) => throw new Exceptions.OutdatedSdkException("Core_Client_CreateAreaBlip", "Core_Client_CreateAreaBlip SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_Client_CreatePointBlipDelegate(nint _core, Vector3 _position, nint _resource); - private static nint Core_Client_CreatePointBlipFallback(nint _core, Vector3 _position, nint _resource) => throw new Exceptions.OutdatedSdkException("Core_Client_CreatePointBlip", "Core_Client_CreatePointBlip SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_Client_CreateRadiusBlipDelegate(nint _core, Vector3 _position, float _radius, nint _resource); - private static nint Core_Client_CreateRadiusBlipFallback(nint _core, Vector3 _position, float _radius, nint _resource) => throw new Exceptions.OutdatedSdkException("Core_Client_CreateRadiusBlip", "Core_Client_CreateRadiusBlip SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_Client_CreateAreaBlipDelegate(nint _core, Vector3 _position, float _width, float _height, nint _resource, uint* _id); + private static nint Core_Client_CreateAreaBlipFallback(nint _core, Vector3 _position, float _width, float _height, nint _resource, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_Client_CreateAreaBlip", "Core_Client_CreateAreaBlip SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_Client_CreatePointBlipDelegate(nint _core, Vector3 _position, nint _resource, uint* _id); + private static nint Core_Client_CreatePointBlipFallback(nint _core, Vector3 _position, nint _resource, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_Client_CreatePointBlip", "Core_Client_CreatePointBlip SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_Client_CreateRadiusBlipDelegate(nint _core, Vector3 _position, float _radius, nint _resource, uint* _id); + private static nint Core_Client_CreateRadiusBlipFallback(nint _core, Vector3 _position, float _radius, nint _resource, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_Client_CreateRadiusBlip", "Core_Client_CreateRadiusBlip SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_Client_FileExistsDelegate(nint _core, nint _resource, nint _path); private static byte Core_Client_FileExistsFallback(nint _core, nint _resource, nint _path) => throw new Exceptions.OutdatedSdkException("Core_Client_FileExists", "Core_Client_FileExists SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_Client_FileReadDelegate(nint _core, nint _resource, nint _path, int* _size); private static nint Core_Client_FileReadFallback(nint _core, nint _resource, nint _path, int* _size) => throw new Exceptions.OutdatedSdkException("Core_Client_FileRead", "Core_Client_FileRead SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_CopyToClipboardDelegate(nint _core, nint _value); private static byte Core_CopyToClipboardFallback(nint _core, nint _value) => throw new Exceptions.OutdatedSdkException("Core_CopyToClipboard", "Core_CopyToClipboard SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateAudioDelegate(nint _core, nint _resource, nint _source, float _volume, uint _category, byte _frontend); - private static nint Core_CreateAudioFallback(nint _core, nint _resource, nint _source, float _volume, uint _category, byte _frontend) => throw new Exceptions.OutdatedSdkException("Core_CreateAudio", "Core_CreateAudio SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateCheckpointDelegate(nint _server, byte _type, Vector3 _pos, Vector3 _nextPos, float _radius, float _height, Rgba _color, nint _resource); - private static nint Core_CreateCheckpointFallback(nint _server, byte _type, Vector3 _pos, Vector3 _nextPos, float _radius, float _height, Rgba _color, nint _resource) => throw new Exceptions.OutdatedSdkException("Core_CreateCheckpoint", "Core_CreateCheckpoint SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateHttpClientDelegate(nint _core, nint _resource); - private static nint Core_CreateHttpClientFallback(nint _core, nint _resource) => throw new Exceptions.OutdatedSdkException("Core_CreateHttpClient", "Core_CreateHttpClient SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateObjectDelegate(nint _core, uint _modelHash, Vector3 _position, Vector3 _rot, byte _noOffset, byte _dynamic, nint _resource); - private static nint Core_CreateObjectFallback(nint _core, uint _modelHash, Vector3 _position, Vector3 _rot, byte _noOffset, byte _dynamic, nint _resource) => throw new Exceptions.OutdatedSdkException("Core_CreateObject", "Core_CreateObject SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateRmlDocumentDelegate(nint _core, nint _resource, nint _url); - private static nint Core_CreateRmlDocumentFallback(nint _core, nint _resource, nint _url) => throw new Exceptions.OutdatedSdkException("Core_CreateRmlDocument", "Core_CreateRmlDocument SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateWebsocketClientDelegate(nint _core, nint _resource, nint _url); - private static nint Core_CreateWebsocketClientFallback(nint _core, nint _resource, nint _url) => throw new Exceptions.OutdatedSdkException("Core_CreateWebsocketClient", "Core_CreateWebsocketClient SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateWebViewDelegate(nint _core, nint _resource, nint _url, Vector2 _pos, Vector2 _size, byte _isOverlay); - private static nint Core_CreateWebViewFallback(nint _core, nint _resource, nint _url, Vector2 _pos, Vector2 _size, byte _isOverlay) => throw new Exceptions.OutdatedSdkException("Core_CreateWebView", "Core_CreateWebView SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateWebView3DDelegate(nint _core, nint _resource, nint _url, uint _hash, nint _targetTexture); - private static nint Core_CreateWebView3DFallback(nint _core, nint _resource, nint _url, uint _hash, nint _targetTexture) => throw new Exceptions.OutdatedSdkException("Core_CreateWebView3D", "Core_CreateWebView3D SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateAttachedOutputDelegate(nint _core, uint _categoryHash, nint _entity, nint _resource, uint* _id); + private static nint Core_CreateAttachedOutputFallback(nint _core, uint _categoryHash, nint _entity, nint _resource, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateAttachedOutput", "Core_CreateAttachedOutput SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateAudioDelegate(nint _core, nint _source, float _volume, byte _isRadio, byte _clearCache, nint _basePath, nint _resource, uint* _id); + private static nint Core_CreateAudioFallback(nint _core, nint _source, float _volume, byte _isRadio, byte _clearCache, nint _basePath, nint _resource, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateAudio", "Core_CreateAudio SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateAudioFilterDelegate(nint _core, uint _hash, nint _resource, uint* _id); + private static nint Core_CreateAudioFilterFallback(nint _core, uint _hash, nint _resource, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateAudioFilter", "Core_CreateAudioFilter SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateCheckpointDelegate(nint _core, byte _type, Vector3 _pos, Vector3 _nextPos, float _radius, float _height, Rgba _color, Rgba _iconColor, uint _streamingDistance, nint _resource, uint* _id); + private static nint Core_CreateCheckpointFallback(nint _core, byte _type, Vector3 _pos, Vector3 _nextPos, float _radius, float _height, Rgba _color, Rgba _iconColor, uint _streamingDistance, nint _resource, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateCheckpoint", "Core_CreateCheckpoint SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateFrontendOutputDelegate(nint _core, uint _categoryHash, nint _resource, uint* _id); + private static nint Core_CreateFrontendOutputFallback(nint _core, uint _categoryHash, nint _resource, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateFrontendOutput", "Core_CreateFrontendOutput SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateHttpClientDelegate(nint _core, nint _resource, uint* _id); + private static nint Core_CreateHttpClientFallback(nint _core, nint _resource, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateHttpClient", "Core_CreateHttpClient SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateLocalObjectDelegate(nint _core, uint _modelHash, Vector3 _position, Vector3 _rot, byte _noOffset, byte _dynamic, byte _useStreaming, uint _streamingDistance, nint _resource, uint* _id); + private static nint Core_CreateLocalObjectFallback(nint _core, uint _modelHash, Vector3 _position, Vector3 _rot, byte _noOffset, byte _dynamic, byte _useStreaming, uint _streamingDistance, nint _resource, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateLocalObject", "Core_CreateLocalObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateLocalPedDelegate(nint _core, uint _modelHash, int _dimension, Vector3 _pos, Rotation _rot, byte _useStreaming, uint _streamingDistance, nint _resource, uint* _id); + private static nint Core_CreateLocalPedFallback(nint _core, uint _modelHash, int _dimension, Vector3 _pos, Rotation _rot, byte _useStreaming, uint _streamingDistance, nint _resource, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateLocalPed", "Core_CreateLocalPed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateLocalVehicleDelegate(nint _core, uint _modelHash, int _dimension, Vector3 _pos, Rotation _rot, byte _useStreaming, uint _streamingDistance, nint _resource, uint* _id); + private static nint Core_CreateLocalVehicleFallback(nint _core, uint _modelHash, int _dimension, Vector3 _pos, Rotation _rot, byte _useStreaming, uint _streamingDistance, nint _resource, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateLocalVehicle", "Core_CreateLocalVehicle SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateMarker_ClientDelegate(nint _core, byte _type, Vector3 _pos, Rgba _color, byte _useStreaming, uint _streamingDistance, nint _resource, uint* _id); + private static nint Core_CreateMarker_ClientFallback(nint _core, byte _type, Vector3 _pos, Rgba _color, byte _useStreaming, uint _streamingDistance, nint _resource, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateMarker_Client", "Core_CreateMarker_Client SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateRmlDocumentDelegate(nint _core, nint _resource, nint _url, uint* _id); + private static nint Core_CreateRmlDocumentFallback(nint _core, nint _resource, nint _url, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateRmlDocument", "Core_CreateRmlDocument SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateTextLabelDelegate(nint _core, nint _text, nint _fontName, float _fontSize, float _scale, Vector3 _pos, Rotation _rot, Rgba _color, float _outlineWith, Rgba _outlineColor, byte _useStreaming, uint _streamingDistance, nint _resource, uint* _id); + private static nint Core_CreateTextLabelFallback(nint _core, nint _text, nint _fontName, float _fontSize, float _scale, Vector3 _pos, Rotation _rot, Rgba _color, float _outlineWith, Rgba _outlineColor, byte _useStreaming, uint _streamingDistance, nint _resource, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateTextLabel", "Core_CreateTextLabel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateWeaponObjectDelegate(nint _core, Vector3 _pos, Rotation _rot, uint _weaponHash, uint _modelHash, int _numAmmo, byte _createDefaultComponents, float _scale, byte _useStreaming, uint _streamingDistance, nint _resource, uint* _id); + private static nint Core_CreateWeaponObjectFallback(nint _core, Vector3 _pos, Rotation _rot, uint _weaponHash, uint _modelHash, int _numAmmo, byte _createDefaultComponents, float _scale, byte _useStreaming, uint _streamingDistance, nint _resource, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateWeaponObject", "Core_CreateWeaponObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateWebsocketClientDelegate(nint _core, nint _resource, nint _url, uint* _id); + private static nint Core_CreateWebsocketClientFallback(nint _core, nint _resource, nint _url, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateWebsocketClient", "Core_CreateWebsocketClient SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateWebViewDelegate(nint _core, nint _resource, nint _url, Vector2 _pos, Vector2 _size, byte _isOverlay, uint* _id); + private static nint Core_CreateWebViewFallback(nint _core, nint _resource, nint _url, Vector2 _pos, Vector2 _size, byte _isOverlay, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateWebView", "Core_CreateWebView SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateWebView3DDelegate(nint _core, nint _resource, nint _url, uint _hash, nint _targetTexture, uint* _id); + private static nint Core_CreateWebView3DFallback(nint _core, nint _resource, nint _url, uint _hash, nint _targetTexture, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateWebView3D", "Core_CreateWebView3D SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateWorldOutputDelegate(nint _core, uint _categoryHash, Vector3 _pos, nint _resource, uint* _id); + private static nint Core_CreateWorldOutputFallback(nint _core, uint _categoryHash, Vector3 _pos, nint _resource, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateWorldOutput", "Core_CreateWorldOutput SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DeallocDiscordUserDelegate(nint _user); private static void Core_DeallocDiscordUserFallback(nint _user) => throw new Exceptions.OutdatedSdkException("Core_DeallocDiscordUser", "Core_DeallocDiscordUser SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_Discord_GetOAuth2TokenDelegate(nint _core, nint _appId, ClientEvents.DiscordOAuth2TokenResultModuleDelegate _delegate); private static void Core_Discord_GetOAuth2TokenFallback(nint _core, nint _appId, ClientEvents.DiscordOAuth2TokenResultModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Core_Discord_GetOAuth2Token", "Core_Discord_GetOAuth2Token SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_DoesConfigFlagExistDelegate(nint _core, nint _flag); private static byte Core_DoesConfigFlagExistFallback(nint _core, nint _flag) => throw new Exceptions.OutdatedSdkException("Core_DoesConfigFlagExist", "Core_DoesConfigFlagExist SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_GetAllWeaponDataDelegate(nint _core, uint[] weaponHashes, ulong _size); + private static void Core_GetAllWeaponDataFallback(nint _core, uint[] weaponHashes, ulong _size) => throw new Exceptions.OutdatedSdkException("Core_GetAllWeaponData", "Core_GetAllWeaponData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Core_GetAllWeaponDataCountDelegate(nint _core); + private static ulong Core_GetAllWeaponDataCountFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetAllWeaponDataCount", "Core_GetAllWeaponDataCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Core_GetAudioCountDelegate(nint _core); + private static ulong Core_GetAudioCountFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetAudioCount", "Core_GetAudioCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetAudioOutputsDelegate(nint _core, ulong* _size); + private static nint Core_GetAudioOutputsFallback(nint _core, ulong* _size) => throw new Exceptions.OutdatedSdkException("Core_GetAudioOutputs", "Core_GetAudioOutputs SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetAudiosDelegate(nint _core, ulong* _size); + private static nint Core_GetAudiosFallback(nint _core, ulong* _size) => throw new Exceptions.OutdatedSdkException("Core_GetAudios", "Core_GetAudios SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetBlipByGameIDDelegate(nint _core, uint _gameId); + private static nint Core_GetBlipByGameIDFallback(nint _core, uint _gameId) => throw new Exceptions.OutdatedSdkException("Core_GetBlipByGameID", "Core_GetBlipByGameID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_GetCamPosDelegate(nint _core, Vector3* _out); private static void Core_GetCamPosFallback(nint _core, Vector3* _out) => throw new Exceptions.OutdatedSdkException("Core_GetCamPos", "Core_GetCamPos SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetCheckpointByGameIDDelegate(nint _core, uint _gameId); + private static nint Core_GetCheckpointByGameIDFallback(nint _core, uint _gameId) => throw new Exceptions.OutdatedSdkException("Core_GetCheckpointByGameID", "Core_GetCheckpointByGameID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetClientPathDelegate(nint _core, int* _size); private static nint Core_GetClientPathFallback(nint _core, int* _size) => throw new Exceptions.OutdatedSdkException("Core_GetClientPath", "Core_GetClientPath SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_GetConfigFlagDelegate(nint _core, nint _flag); @@ -1563,12 +2043,16 @@ public unsafe class ClientLibrary : IClientLibrary private static nint Core_GetLocaleFallback(nint _core, int* _size) => throw new Exceptions.OutdatedSdkException("Core_GetLocale", "Core_GetLocale SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetLocalMetaDelegate(nint _core, nint _key); private static nint Core_GetLocalMetaFallback(nint _core, nint _key) => throw new Exceptions.OutdatedSdkException("Core_GetLocalMeta", "Core_GetLocalMeta SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetLocalObjectsDelegate(nint _core, uint* _size); + private static nint Core_GetLocalObjectsFallback(nint _core, uint* _size) => throw new Exceptions.OutdatedSdkException("Core_GetLocalObjects", "Core_GetLocalObjects SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetLocalPedsDelegate(nint _core, uint* _size); + private static nint Core_GetLocalPedsFallback(nint _core, uint* _size) => throw new Exceptions.OutdatedSdkException("Core_GetLocalPeds", "Core_GetLocalPeds SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetLocalVehiclesDelegate(nint _core, uint* _size); + private static nint Core_GetLocalVehiclesFallback(nint _core, uint* _size) => throw new Exceptions.OutdatedSdkException("Core_GetLocalVehicles", "Core_GetLocalVehicles SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetMapZoomDataByAliasDelegate(nint _core, nint _alias, uint* _id); private static nint Core_GetMapZoomDataByAliasFallback(nint _core, nint _alias, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_GetMapZoomDataByAlias", "Core_GetMapZoomDataByAlias SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int Core_GetMsPerGameMinuteDelegate(nint _core); private static int Core_GetMsPerGameMinuteFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetMsPerGameMinute", "Core_GetMsPerGameMinute SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetObjectsDelegate(nint _core, uint* _size); - private static nint Core_GetObjectsFallback(nint _core, uint* _size) => throw new Exceptions.OutdatedSdkException("Core_GetObjects", "Core_GetObjects SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_GetPedBonePosDelegate(nint _core, int _scriptId, ushort _boneId, Vector3* _pos); private static void Core_GetPedBonePosFallback(nint _core, int _scriptId, ushort _boneId, Vector3* _pos) => throw new Exceptions.OutdatedSdkException("Core_GetPedBonePos", "Core_GetPedBonePos SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_GetPermissionStateDelegate(nint _core, byte _permission); @@ -1609,8 +2093,18 @@ public unsafe class ClientLibrary : IClientLibrary private static ulong Core_GetTotalPacketsSentFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetTotalPacketsSent", "Core_GetTotalPacketsSent SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Core_GetVoiceActivationKeyDelegate(nint _core); private static uint Core_GetVoiceActivationKeyFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetVoiceActivationKey", "Core_GetVoiceActivationKey SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Core_GetVoiceActivationLevelDelegate(nint _core); + private static float Core_GetVoiceActivationLevelFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetVoiceActivationLevel", "Core_GetVoiceActivationLevel SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_GetVoiceInputMutedDelegate(nint _core); private static byte Core_GetVoiceInputMutedFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetVoiceInputMuted", "Core_GetVoiceInputMuted SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetWeaponObjectsDelegate(nint _core, uint* _size); + private static nint Core_GetWeaponObjectsFallback(nint _core, uint* _size) => throw new Exceptions.OutdatedSdkException("Core_GetWeaponObjects", "Core_GetWeaponObjects SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Core_GetWebViewCountDelegate(nint _core); + private static ulong Core_GetWebViewCountFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetWebViewCount", "Core_GetWebViewCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_GetWebViewsDelegate(nint _core, nint[] webViews, ulong _size); + private static void Core_GetWebViewsFallback(nint _core, nint[] webViews, ulong _size) => throw new Exceptions.OutdatedSdkException("Core_GetWebViews", "Core_GetWebViews SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetWorldObjectByScriptIDDelegate(nint _core, uint _scriptId); + private static nint Core_GetWorldObjectByScriptIDFallback(nint _core, uint _scriptId) => throw new Exceptions.OutdatedSdkException("Core_GetWorldObjectByScriptID", "Core_GetWorldObjectByScriptID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetWorldObjectsDelegate(nint _core, uint* _size); private static nint Core_GetWorldObjectsFallback(nint _core, uint* _size) => throw new Exceptions.OutdatedSdkException("Core_GetWorldObjects", "Core_GetWorldObjects SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_HasLocalMetaDelegate(nint _core, nint _key); @@ -1623,6 +2117,8 @@ public unsafe class ClientLibrary : IClientLibrary private static byte Core_IsCursorVisibleFallback(nint _core, nint _resource) => throw new Exceptions.OutdatedSdkException("Core_IsCursorVisible", "Core_IsCursorVisible SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsFocusOverridenDelegate(nint _core); private static byte Core_IsFocusOverridenFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_IsFocusOverriden", "Core_IsFocusOverriden SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsFullScreenDelegate(nint _core); + private static byte Core_IsFullScreenFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_IsFullScreen", "Core_IsFullScreen SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsGameFocusedDelegate(nint _core); private static byte Core_IsGameFocusedFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_IsGameFocused", "Core_IsGameFocused SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsInStreamerModeDelegate(nint _core); @@ -1633,12 +2129,16 @@ public unsafe class ClientLibrary : IClientLibrary private static byte Core_IsKeyToggledFallback(nint _core, uint _key) => throw new Exceptions.OutdatedSdkException("Core_IsKeyToggled", "Core_IsKeyToggled SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsMenuOpenedDelegate(nint _core); private static byte Core_IsMenuOpenedFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_IsMenuOpened", "Core_IsMenuOpened SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsNoiseSuppressionEnabledDelegate(nint _core); + private static byte Core_IsNoiseSuppressionEnabledFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_IsNoiseSuppressionEnabled", "Core_IsNoiseSuppressionEnabled SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsPointOnScreenDelegate(nint _core, Vector3 _pos); private static byte Core_IsPointOnScreenFallback(nint _core, Vector3 _pos) => throw new Exceptions.OutdatedSdkException("Core_IsPointOnScreen", "Core_IsPointOnScreen SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsTextureExistInArchetypeDelegate(nint _core, uint _modelHash, nint _targetTextureName); private static byte Core_IsTextureExistInArchetypeFallback(nint _core, uint _modelHash, nint _targetTextureName) => throw new Exceptions.OutdatedSdkException("Core_IsTextureExistInArchetype", "Core_IsTextureExistInArchetype SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsVoiceActivityInputEnabledDelegate(nint _core); private static byte Core_IsVoiceActivityInputEnabledFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_IsVoiceActivityInputEnabled", "Core_IsVoiceActivityInputEnabled SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsWebViewGpuAccelerationActiveDelegate(nint _core); + private static byte Core_IsWebViewGpuAccelerationActiveFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_IsWebViewGpuAccelerationActive", "Core_IsWebViewGpuAccelerationActive SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LoadDefaultIplsDelegate(nint _core); private static void Core_LoadDefaultIplsFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_LoadDefaultIpls", "Core_LoadDefaultIpls SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LoadModelDelegate(nint _core, uint _modelHash); @@ -1653,6 +2153,8 @@ public unsafe class ClientLibrary : IClientLibrary private static void Core_OverrideFocusEntityFallback(nint _core, nint _entity) => throw new Exceptions.OutdatedSdkException("Core_OverrideFocusEntity", "Core_OverrideFocusEntity SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_OverrideFocusPositionDelegate(nint _core, Vector3 _pos, Vector3 _offset); private static void Core_OverrideFocusPositionFallback(nint _core, Vector3 _pos, Vector3 _offset) => throw new Exceptions.OutdatedSdkException("Core_OverrideFocusPosition", "Core_OverrideFocusPosition SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_RegisterFontDelegate(nint _core, nint _resource, nint _path, uint* _id); + private static nint Core_RegisterFontFallback(nint _core, nint _resource, nint _path, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_RegisterFont", "Core_RegisterFont SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_RemoveGXTTextDelegate(nint _core, nint _resource, uint _key); private static void Core_RemoveGXTTextFallback(nint _core, nint _resource, uint _key) => throw new Exceptions.OutdatedSdkException("Core_RemoveGXTText", "Core_RemoveGXTText SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_RemoveIplDelegate(nint _core, nint _path); @@ -1663,6 +2165,8 @@ public unsafe class ClientLibrary : IClientLibrary private static void Core_ResetAllMapZoomDataFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_ResetAllMapZoomData", "Core_ResetAllMapZoomData SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ResetMapZoomDataDelegate(nint _core, uint _id); private static void Core_ResetMapZoomDataFallback(nint _core, uint _id) => throw new Exceptions.OutdatedSdkException("Core_ResetMapZoomData", "Core_ResetMapZoomData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ResetMinimapComponentPositionDelegate(nint _core, nint _name); + private static void Core_ResetMinimapComponentPositionFallback(nint _core, nint _name) => throw new Exceptions.OutdatedSdkException("Core_ResetMinimapComponentPosition", "Core_ResetMinimapComponentPosition SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ResetStatDelegate(nint _core, nint _stat); private static void Core_ResetStatFallback(nint _core, nint _stat) => throw new Exceptions.OutdatedSdkException("Core_ResetStat", "Core_ResetStat SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ScreenToWorldDelegate(nint _core, Vector2 _in, Vector3* _out); @@ -1703,6 +2207,8 @@ public unsafe class ClientLibrary : IClientLibrary private static void Core_SetStatUInt64Fallback(nint _core, nint _stat, ulong _value) => throw new Exceptions.OutdatedSdkException("Core_SetStatUInt64", "Core_SetStatUInt64 SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetStatUInt8Delegate(nint _core, nint _stat, byte _value); private static void Core_SetStatUInt8Fallback(nint _core, nint _stat, byte _value) => throw new Exceptions.OutdatedSdkException("Core_SetStatUInt8", "Core_SetStatUInt8 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_SetVoiceActivationLevelDelegate(nint _core, float _level); + private static byte Core_SetVoiceActivationLevelFallback(nint _core, float _level) => throw new Exceptions.OutdatedSdkException("Core_SetVoiceActivationLevel", "Core_SetVoiceActivationLevel SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetVoiceInputMutedDelegate(nint _core, byte _value); private static void Core_SetVoiceInputMutedFallback(nint _core, byte _value) => throw new Exceptions.OutdatedSdkException("Core_SetVoiceInputMuted", "Core_SetVoiceInputMuted SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetWatermarkPositionDelegate(nint _core, byte _position); @@ -1711,8 +2217,8 @@ public unsafe class ClientLibrary : IClientLibrary private static void Core_SetWeatherCycleFallback(nint _core, byte[] weathers, int _weathersSize, byte[] multipliers, int _multipliersSize) => throw new Exceptions.OutdatedSdkException("Core_SetWeatherCycle", "Core_SetWeatherCycle SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetWeatherSyncActiveDelegate(nint _core, byte _state); private static void Core_SetWeatherSyncActiveFallback(nint _core, byte _state) => throw new Exceptions.OutdatedSdkException("Core_SetWeatherSyncActive", "Core_SetWeatherSyncActive SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ShowCursorDelegate(nint _core, nint _resource, bool _state); - private static void Core_ShowCursorFallback(nint _core, nint _resource, bool _state) => throw new Exceptions.OutdatedSdkException("Core_ShowCursor", "Core_ShowCursor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ShowCursorDelegate(nint _core, nint _resource, byte _state); + private static void Core_ShowCursorFallback(nint _core, nint _resource, byte _state) => throw new Exceptions.OutdatedSdkException("Core_ShowCursor", "Core_ShowCursor SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_StringToSHA256Delegate(nint _core, nint _string, int* _size); private static nint Core_StringToSHA256Fallback(nint _core, nint _string, int* _size) => throw new Exceptions.OutdatedSdkException("Core_StringToSHA256", "Core_StringToSHA256 SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_TakeScreenshotDelegate(nint _core, ClientEvents.ScreenshotResultModuleDelegate _delegate); @@ -1721,54 +2227,58 @@ public unsafe class ClientLibrary : IClientLibrary private static byte Core_TakeScreenshotGameOnlyFallback(nint _core, ClientEvents.ScreenshotResultModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Core_TakeScreenshotGameOnly", "Core_TakeScreenshotGameOnly SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ToggleGameControlsDelegate(nint _core, nint _resource, byte _state); private static void Core_ToggleGameControlsFallback(nint _core, nint _resource, byte _state) => throw new Exceptions.OutdatedSdkException("Core_ToggleGameControls", "Core_ToggleGameControls SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_ToggleNoiseSuppressionDelegate(nint _core, byte _state); + private static byte Core_ToggleNoiseSuppressionFallback(nint _core, byte _state) => throw new Exceptions.OutdatedSdkException("Core_ToggleNoiseSuppression", "Core_ToggleNoiseSuppression SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ToggleRmlControlsDelegate(nint _core, byte _state); private static void Core_ToggleRmlControlsFallback(nint _core, byte _state) => throw new Exceptions.OutdatedSdkException("Core_ToggleRmlControls", "Core_ToggleRmlControls SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_ToggleVoiceActivationDelegate(nint _core, byte _state); + private static byte Core_ToggleVoiceActivationFallback(nint _core, byte _state) => throw new Exceptions.OutdatedSdkException("Core_ToggleVoiceActivation", "Core_ToggleVoiceActivation SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ToggleVoiceControlsDelegate(nint _core, byte _state); private static void Core_ToggleVoiceControlsFallback(nint _core, byte _state) => throw new Exceptions.OutdatedSdkException("Core_ToggleVoiceControls", "Core_ToggleVoiceControls SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_ToggleVoiceInputDelegate(nint _core, byte _state); + private static byte Core_ToggleVoiceInputFallback(nint _core, byte _state) => throw new Exceptions.OutdatedSdkException("Core_ToggleVoiceInput", "Core_ToggleVoiceInput SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerServerEventDelegate(nint _core, nint _event, nint[] args, int _size); private static void Core_TriggerServerEventFallback(nint _core, nint _event, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerServerEvent", "Core_TriggerServerEvent SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerServerEventUnreliableDelegate(nint _core, nint _event, nint[] args, int _size); + private static void Core_TriggerServerEventUnreliableFallback(nint _core, nint _event, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerServerEventUnreliable", "Core_TriggerServerEventUnreliable SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerServerRPCAnswerDelegate(nint _core, ushort _answerID, nint _answer, nint _error); + private static void Core_TriggerServerRPCAnswerFallback(nint _core, ushort _answerID, nint _answer, nint _error) => throw new Exceptions.OutdatedSdkException("Core_TriggerServerRPCAnswer", "Core_TriggerServerRPCAnswer SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Core_TriggerServerRPCEventDelegate(nint _core, nint _ev, nint[] args, int _size); + private static ushort Core_TriggerServerRPCEventFallback(nint _core, nint _ev, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerServerRPCEvent", "Core_TriggerServerRPCEvent SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerWebViewEventDelegate(nint _core, nint _webview, nint _event, nint[] args, int _size); private static void Core_TriggerWebViewEventFallback(nint _core, nint _webview, nint _event, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerWebViewEvent", "Core_TriggerWebViewEvent SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_UnloadYtypDelegate(nint _core, nint _path); private static byte Core_UnloadYtypFallback(nint _core, nint _path) => throw new Exceptions.OutdatedSdkException("Core_UnloadYtyp", "Core_UnloadYtyp SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_WorldToScreenDelegate(nint _core, Vector3 _in, Vector2* _out); private static void Core_WorldToScreenFallback(nint _core, Vector3 _in, Vector2* _out) => throw new Exceptions.OutdatedSdkException("Core_WorldToScreen", "Core_WorldToScreen SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int Entity_GetScriptIDDelegate(nint _entity); - private static int Entity_GetScriptIDFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_GetScriptID", "Entity_GetScriptID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint CustomTexture_GetBaseObjectDelegate(nint _costumTexture); + private static nint CustomTexture_GetBaseObjectFallback(nint _costumTexture) => throw new Exceptions.OutdatedSdkException("CustomTexture_GetBaseObject", "CustomTexture_GetBaseObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint CustomTexture_GetIDDelegate(nint _costumTexture); + private static uint CustomTexture_GetIDFallback(nint _costumTexture) => throw new Exceptions.OutdatedSdkException("CustomTexture_GetID", "CustomTexture_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Entity_GetScriptIDDelegate(nint _entity); + private static uint Entity_GetScriptIDFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_GetScriptID", "Entity_GetScriptID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetAnyResourceErrorDelegateDelegate(nint _resource, ClientEvents.AnyResourceErrorModuleDelegate _delegate); private static void Event_SetAnyResourceErrorDelegateFallback(nint _resource, ClientEvents.AnyResourceErrorModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetAnyResourceErrorDelegate", "Event_SetAnyResourceErrorDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetAnyResourceStartDelegateDelegate(nint _resource, ClientEvents.AnyResourceStartModuleDelegate _delegate); private static void Event_SetAnyResourceStartDelegateFallback(nint _resource, ClientEvents.AnyResourceStartModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetAnyResourceStartDelegate", "Event_SetAnyResourceStartDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetAnyResourceStopDelegateDelegate(nint _resource, ClientEvents.AnyResourceStopModuleDelegate _delegate); private static void Event_SetAnyResourceStopDelegateFallback(nint _resource, ClientEvents.AnyResourceStopModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetAnyResourceStopDelegate", "Event_SetAnyResourceStopDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetAudioEventDelegateDelegate(nint _resource, ClientEvents.AudioEventModuleDelegate _delegate); + private static void Event_SetAudioEventDelegateFallback(nint _resource, ClientEvents.AudioEventModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetAudioEventDelegate", "Event_SetAudioEventDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCheckpointDelegateDelegate(nint _resource, ClientEvents.CheckpointModuleDelegate _delegate); + private static void Event_SetCheckpointDelegateFallback(nint _resource, ClientEvents.CheckpointModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCheckpointDelegate", "Event_SetCheckpointDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetClientEventDelegateDelegate(nint _resource, ClientEvents.ClientEventModuleDelegate _delegate); private static void Event_SetClientEventDelegateFallback(nint _resource, ClientEvents.ClientEventModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetClientEventDelegate", "Event_SetClientEventDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetColShapeDelegateDelegate(nint _resource, ClientEvents.ColShapeModuleDelegate _delegate); + private static void Event_SetColShapeDelegateFallback(nint _resource, ClientEvents.ColShapeModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetColShapeDelegate", "Event_SetColShapeDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetConnectionCompleteDelegateDelegate(nint _resource, ClientEvents.ConnectionCompleteModuleDelegate _delegate); private static void Event_SetConnectionCompleteDelegateFallback(nint _resource, ClientEvents.ConnectionCompleteModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetConnectionCompleteDelegate", "Event_SetConnectionCompleteDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetConsoleCommandDelegateDelegate(nint _resource, ClientEvents.ConsoleCommandModuleDelegate _delegate); private static void Event_SetConsoleCommandDelegateFallback(nint _resource, ClientEvents.ConsoleCommandModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetConsoleCommandDelegate", "Event_SetConsoleCommandDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateAudioDelegateDelegate(nint _resource, ClientEvents.CreateAudioModuleDelegate _delegate); - private static void Event_SetCreateAudioDelegateFallback(nint _resource, ClientEvents.CreateAudioModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateAudioDelegate", "Event_SetCreateAudioDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateBlipDelegateDelegate(nint _resource, ClientEvents.CreateBlipModuleDelegate _delegate); - private static void Event_SetCreateBlipDelegateFallback(nint _resource, ClientEvents.CreateBlipModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateBlipDelegate", "Event_SetCreateBlipDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateCheckpointDelegateDelegate(nint _resource, ClientEvents.CreateCheckpointModuleDelegate _delegate); - private static void Event_SetCreateCheckpointDelegateFallback(nint _resource, ClientEvents.CreateCheckpointModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateCheckpointDelegate", "Event_SetCreateCheckpointDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateHttpClientDelegateDelegate(nint _resource, ClientEvents.CreateHttpClientModuleDelegate _delegate); - private static void Event_SetCreateHttpClientDelegateFallback(nint _resource, ClientEvents.CreateHttpClientModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateHttpClientDelegate", "Event_SetCreateHttpClientDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateObjectDelegateDelegate(nint _resource, ClientEvents.CreateObjectModuleDelegate _delegate); - private static void Event_SetCreateObjectDelegateFallback(nint _resource, ClientEvents.CreateObjectModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateObjectDelegate", "Event_SetCreateObjectDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreatePlayerDelegateDelegate(nint _resource, ClientEvents.CreatePlayerModuleDelegate _delegate); - private static void Event_SetCreatePlayerDelegateFallback(nint _resource, ClientEvents.CreatePlayerModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreatePlayerDelegate", "Event_SetCreatePlayerDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateRmlDocumentDelegateDelegate(nint _resource, ClientEvents.CreateRmlDocumentModuleDelegate _delegate); - private static void Event_SetCreateRmlDocumentDelegateFallback(nint _resource, ClientEvents.CreateRmlDocumentModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateRmlDocumentDelegate", "Event_SetCreateRmlDocumentDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateRmlElementDelegateDelegate(nint _resource, ClientEvents.CreateRmlElementModuleDelegate _delegate); - private static void Event_SetCreateRmlElementDelegateFallback(nint _resource, ClientEvents.CreateRmlElementModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateRmlElementDelegate", "Event_SetCreateRmlElementDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateVehicleDelegateDelegate(nint _resource, ClientEvents.CreateVehicleModuleDelegate _delegate); - private static void Event_SetCreateVehicleDelegateFallback(nint _resource, ClientEvents.CreateVehicleModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateVehicleDelegate", "Event_SetCreateVehicleDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateWebSocketClientDelegateDelegate(nint _resource, ClientEvents.CreateWebSocketClientModuleDelegate _delegate); - private static void Event_SetCreateWebSocketClientDelegateFallback(nint _resource, ClientEvents.CreateWebSocketClientModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateWebSocketClientDelegate", "Event_SetCreateWebSocketClientDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateWebViewDelegateDelegate(nint _resource, ClientEvents.CreateWebViewModuleDelegate _delegate); - private static void Event_SetCreateWebViewDelegateFallback(nint _resource, ClientEvents.CreateWebViewModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateWebViewDelegate", "Event_SetCreateWebViewDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetCreateBaseObjectDelegateDelegate(nint _resource, ClientEvents.CreateBaseObjectModuleDelegate _delegate); + private static void Event_SetCreateBaseObjectDelegateFallback(nint _resource, ClientEvents.CreateBaseObjectModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetCreateBaseObjectDelegate", "Event_SetCreateBaseObjectDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetEntityHitEntityDelegateDelegate(nint _resource, ClientEvents.EntityHitEntityModuleDelegate _delegate); + private static void Event_SetEntityHitEntityDelegateFallback(nint _resource, ClientEvents.EntityHitEntityModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetEntityHitEntityDelegate", "Event_SetEntityHitEntityDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetGameEntityCreateDelegateDelegate(nint _resource, ClientEvents.GameEntityCreateModuleDelegate _delegate); private static void Event_SetGameEntityCreateDelegateFallback(nint _resource, ClientEvents.GameEntityCreateModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetGameEntityCreateDelegate", "Event_SetGameEntityCreateDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetGameEntityDestroyDelegateDelegate(nint _resource, ClientEvents.GameEntityDestroyModuleDelegate _delegate); @@ -1783,8 +2293,12 @@ public unsafe class ClientLibrary : IClientLibrary private static void Event_SetKeyUpDelegateFallback(nint _resource, ClientEvents.KeyUpModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetKeyUpDelegate", "Event_SetKeyUpDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetLocalMetaChangeDelegateDelegate(nint _resource, ClientEvents.LocalMetaChangeModuleDelegate _delegate); private static void Event_SetLocalMetaChangeDelegateFallback(nint _resource, ClientEvents.LocalMetaChangeModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetLocalMetaChangeDelegate", "Event_SetLocalMetaChangeDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetMetaChangeDelegateDelegate(nint _resource, ClientEvents.MetaChangeModuleDelegate _delegate); + private static void Event_SetMetaChangeDelegateFallback(nint _resource, ClientEvents.MetaChangeModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetMetaChangeDelegate", "Event_SetMetaChangeDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetNetOwnerChangeDelegateDelegate(nint _resource, ClientEvents.NetOwnerChangeModuleDelegate _delegate); private static void Event_SetNetOwnerChangeDelegateFallback(nint _resource, ClientEvents.NetOwnerChangeModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetNetOwnerChangeDelegate", "Event_SetNetOwnerChangeDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetPlayerBulletHitDelegateDelegate(nint _resource, ClientEvents.PlayerBulletHitModuleDelegate _delegate); + private static void Event_SetPlayerBulletHitDelegateFallback(nint _resource, ClientEvents.PlayerBulletHitModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetPlayerBulletHitDelegate", "Event_SetPlayerBulletHitDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetPlayerChangeAnimationDelegateDelegate(nint _resource, ClientEvents.PlayerChangeAnimationModuleDelegate _delegate); private static void Event_SetPlayerChangeAnimationDelegateFallback(nint _resource, ClientEvents.PlayerChangeAnimationModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetPlayerChangeAnimationDelegate", "Event_SetPlayerChangeAnimationDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetPlayerChangeInteriorDelegateDelegate(nint _resource, ClientEvents.PlayerChangeInteriorModuleDelegate _delegate); @@ -1799,36 +2313,22 @@ public unsafe class ClientLibrary : IClientLibrary private static void Event_SetPlayerLeaveVehicleDelegateFallback(nint _resource, ClientEvents.PlayerLeaveVehicleModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetPlayerLeaveVehicleDelegate", "Event_SetPlayerLeaveVehicleDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetPlayerSpawnDelegateDelegate(nint _resource, ClientEvents.PlayerSpawnModuleDelegate _delegate); private static void Event_SetPlayerSpawnDelegateFallback(nint _resource, ClientEvents.PlayerSpawnModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetPlayerSpawnDelegate", "Event_SetPlayerSpawnDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetPlayerStartEnterVehicleDelegateDelegate(nint _resource, ClientEvents.PlayerStartEnterVehicleModuleDelegate _delegate); + private static void Event_SetPlayerStartEnterVehicleDelegateFallback(nint _resource, ClientEvents.PlayerStartEnterVehicleModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetPlayerStartEnterVehicleDelegate", "Event_SetPlayerStartEnterVehicleDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetPlayerStartLeaveVehicleDelegateDelegate(nint _resource, ClientEvents.PlayerStartLeaveVehicleModuleDelegate _delegate); + private static void Event_SetPlayerStartLeaveVehicleDelegateFallback(nint _resource, ClientEvents.PlayerStartLeaveVehicleModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetPlayerStartLeaveVehicleDelegate", "Event_SetPlayerStartLeaveVehicleDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetPlayerWeaponChangeDelegateDelegate(nint _resource, ClientEvents.PlayerWeaponChangeModuleDelegate _delegate); private static void Event_SetPlayerWeaponChangeDelegateFallback(nint _resource, ClientEvents.PlayerWeaponChangeModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetPlayerWeaponChangeDelegate", "Event_SetPlayerWeaponChangeDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetPlayerWeaponShootDelegateDelegate(nint _resource, ClientEvents.PlayerWeaponShootModuleDelegate _delegate); private static void Event_SetPlayerWeaponShootDelegateFallback(nint _resource, ClientEvents.PlayerWeaponShootModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetPlayerWeaponShootDelegate", "Event_SetPlayerWeaponShootDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveAudioDelegateDelegate(nint _resource, ClientEvents.RemoveAudioModuleDelegate _delegate); - private static void Event_SetRemoveAudioDelegateFallback(nint _resource, ClientEvents.RemoveAudioModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveAudioDelegate", "Event_SetRemoveAudioDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveBlipDelegateDelegate(nint _resource, ClientEvents.RemoveBlipModuleDelegate _delegate); - private static void Event_SetRemoveBlipDelegateFallback(nint _resource, ClientEvents.RemoveBlipModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveBlipDelegate", "Event_SetRemoveBlipDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveCheckpointDelegateDelegate(nint _resource, ClientEvents.RemoveCheckpointModuleDelegate _delegate); - private static void Event_SetRemoveCheckpointDelegateFallback(nint _resource, ClientEvents.RemoveCheckpointModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveCheckpointDelegate", "Event_SetRemoveCheckpointDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveEntityDelegateDelegate(nint _resource, ClientEvents.RemoveEntityModuleDelegate _delegate); - private static void Event_SetRemoveEntityDelegateFallback(nint _resource, ClientEvents.RemoveEntityModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveEntityDelegate", "Event_SetRemoveEntityDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveHttpClientDelegateDelegate(nint _resource, ClientEvents.RemoveHttpClientModuleDelegate _delegate); - private static void Event_SetRemoveHttpClientDelegateFallback(nint _resource, ClientEvents.RemoveHttpClientModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveHttpClientDelegate", "Event_SetRemoveHttpClientDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveObjectDelegateDelegate(nint _resource, ClientEvents.RemoveObjectModuleDelegate _delegate); - private static void Event_SetRemoveObjectDelegateFallback(nint _resource, ClientEvents.RemoveObjectModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveObjectDelegate", "Event_SetRemoveObjectDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemovePlayerDelegateDelegate(nint _resource, ClientEvents.RemovePlayerModuleDelegate _delegate); - private static void Event_SetRemovePlayerDelegateFallback(nint _resource, ClientEvents.RemovePlayerModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemovePlayerDelegate", "Event_SetRemovePlayerDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveRmlDocumentDelegateDelegate(nint _resource, ClientEvents.RemoveRmlDocumentModuleDelegate _delegate); - private static void Event_SetRemoveRmlDocumentDelegateFallback(nint _resource, ClientEvents.RemoveRmlDocumentModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveRmlDocumentDelegate", "Event_SetRemoveRmlDocumentDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveRmlElementDelegateDelegate(nint _resource, ClientEvents.RemoveRmlElementModuleDelegate _delegate); - private static void Event_SetRemoveRmlElementDelegateFallback(nint _resource, ClientEvents.RemoveRmlElementModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveRmlElementDelegate", "Event_SetRemoveRmlElementDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveVehicleDelegateDelegate(nint _resource, ClientEvents.RemoveVehicleModuleDelegate _delegate); - private static void Event_SetRemoveVehicleDelegateFallback(nint _resource, ClientEvents.RemoveVehicleModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveVehicleDelegate", "Event_SetRemoveVehicleDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveWebSocketClientDelegateDelegate(nint _resource, ClientEvents.RemoveWebSocketClientModuleDelegate _delegate); - private static void Event_SetRemoveWebSocketClientDelegateFallback(nint _resource, ClientEvents.RemoveWebSocketClientModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveWebSocketClientDelegate", "Event_SetRemoveWebSocketClientDelegate SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveWebViewDelegateDelegate(nint _resource, ClientEvents.RemoveWebViewModuleDelegate _delegate); - private static void Event_SetRemoveWebViewDelegateFallback(nint _resource, ClientEvents.RemoveWebViewModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveWebViewDelegate", "Event_SetRemoveWebViewDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRemoveBaseObjectDelegateDelegate(nint _resource, ClientEvents.RemoveBaseObjectModuleDelegate _delegate); + private static void Event_SetRemoveBaseObjectDelegateFallback(nint _resource, ClientEvents.RemoveBaseObjectModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRemoveBaseObjectDelegate", "Event_SetRemoveBaseObjectDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetRmlEventDelegateDelegate(nint _resource, ClientEvents.RmlEventModuleDelegate _delegate); private static void Event_SetRmlEventDelegateFallback(nint _resource, ClientEvents.RmlEventModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetRmlEventDelegate", "Event_SetRmlEventDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetScriptRPCAnswerDelegateDelegate(nint _resource, ClientEvents.ScriptRPCAnswerModuleDelegate _delegate); + private static void Event_SetScriptRPCAnswerDelegateFallback(nint _resource, ClientEvents.ScriptRPCAnswerModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetScriptRPCAnswerDelegate", "Event_SetScriptRPCAnswerDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetScriptRPCDelegateDelegate(nint _resource, ClientEvents.ScriptRPCModuleDelegate _delegate); + private static void Event_SetScriptRPCDelegateFallback(nint _resource, ClientEvents.ScriptRPCModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetScriptRPCDelegate", "Event_SetScriptRPCDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetServerEventDelegateDelegate(nint _resource, ClientEvents.ServerEventModuleDelegate _delegate); private static void Event_SetServerEventDelegateFallback(nint _resource, ClientEvents.ServerEventModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetServerEventDelegate", "Event_SetServerEventDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetStreamSyncedMetaChangeDelegateDelegate(nint _resource, ClientEvents.StreamSyncedMetaChangeModuleDelegate _delegate); @@ -1839,6 +2339,8 @@ public unsafe class ClientLibrary : IClientLibrary private static void Event_SetTaskChangeDelegateFallback(nint _resource, ClientEvents.TaskChangeModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetTaskChangeDelegate", "Event_SetTaskChangeDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetTickDelegateDelegate(nint _resource, ClientEvents.TickModuleDelegate _delegate); private static void Event_SetTickDelegateFallback(nint _resource, ClientEvents.TickModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetTickDelegate", "Event_SetTickDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetVoiceConnectionDelegateDelegate(nint _resource, ClientEvents.VoiceConnectionModuleDelegate _delegate); + private static void Event_SetVoiceConnectionDelegateFallback(nint _resource, ClientEvents.VoiceConnectionModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetVoiceConnectionDelegate", "Event_SetVoiceConnectionDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetWeaponDamageDelegateDelegate(nint _resource, ClientEvents.WeaponDamageModuleDelegate _delegate); private static void Event_SetWeaponDamageDelegateFallback(nint _resource, ClientEvents.WeaponDamageModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetWeaponDamageDelegate", "Event_SetWeaponDamageDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetWebSocketEventDelegateDelegate(nint _resource, ClientEvents.WebSocketEventModuleDelegate _delegate); @@ -1849,6 +2351,20 @@ public unsafe class ClientLibrary : IClientLibrary private static void Event_SetWindowFocusChangeDelegateFallback(nint _resource, ClientEvents.WindowFocusChangeModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetWindowFocusChangeDelegate", "Event_SetWindowFocusChangeDelegate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetWindowResolutionChangeDelegateDelegate(nint _resource, ClientEvents.WindowResolutionChangeModuleDelegate _delegate); private static void Event_SetWindowResolutionChangeDelegateFallback(nint _resource, ClientEvents.WindowResolutionChangeModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetWindowResolutionChangeDelegate", "Event_SetWindowResolutionChangeDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetWorldObjectPositionChangeDelegateDelegate(nint _resource, ClientEvents.WorldObjectPositionChangeModuleDelegate _delegate); + private static void Event_SetWorldObjectPositionChangeDelegateFallback(nint _resource, ClientEvents.WorldObjectPositionChangeModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetWorldObjectPositionChangeDelegate", "Event_SetWorldObjectPositionChangeDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetWorldObjectStreamInDelegateDelegate(nint _resource, ClientEvents.WorldObjectStreamInModuleDelegate _delegate); + private static void Event_SetWorldObjectStreamInDelegateFallback(nint _resource, ClientEvents.WorldObjectStreamInModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetWorldObjectStreamInDelegate", "Event_SetWorldObjectStreamInDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_SetWorldObjectStreamOutDelegateDelegate(nint _resource, ClientEvents.WorldObjectStreamOutModuleDelegate _delegate); + private static void Event_SetWorldObjectStreamOutDelegateFallback(nint _resource, ClientEvents.WorldObjectStreamOutModuleDelegate _delegate) => throw new Exceptions.OutdatedSdkException("Event_SetWorldObjectStreamOutDelegate", "Event_SetWorldObjectStreamOutDelegate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Font_GetBaseObjectDelegate(nint _font); + private static nint Font_GetBaseObjectFallback(nint _font) => throw new Exceptions.OutdatedSdkException("Font_GetBaseObject", "Font_GetBaseObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Font_GetIDDelegate(nint _font); + private static uint Font_GetIDFallback(nint _font) => throw new Exceptions.OutdatedSdkException("Font_GetID", "Font_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeLocalPedArrayDelegate(nint _localPedArray); + private static void FreeLocalPedArrayFallback(nint _localPedArray) => throw new Exceptions.OutdatedSdkException("FreeLocalPedArray", "FreeLocalPedArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeLocalVehicleArrayDelegate(nint _localVehicleArray); + private static void FreeLocalVehicleArrayFallback(nint _localVehicleArray) => throw new Exceptions.OutdatedSdkException("FreeLocalVehicleArray", "FreeLocalVehicleArray SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeRmlElementArrayDelegate(nint _rmlElementArray); private static void FreeRmlElementArrayFallback(nint _rmlElementArray) => throw new Exceptions.OutdatedSdkException("FreeRmlElementArray", "FreeRmlElementArray SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint GetNativeFuncTableDelegate(); @@ -2139,12 +2655,90 @@ public unsafe class ClientLibrary : IClientLibrary private static void HttpClient_SetExtraHeaderFallback(nint _httpClient, nint _key, nint _value) => throw new Exceptions.OutdatedSdkException("HttpClient_SetExtraHeader", "HttpClient_SetExtraHeader SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void HttpClient_TraceDelegate(nint _httpClient, nint _url, nint _body, ClientEvents.HttpResponseModuleDelegate _callback); private static void HttpClient_TraceFallback(nint _httpClient, nint _url, nint _body, ClientEvents.HttpResponseModuleDelegate _callback) => throw new Exceptions.OutdatedSdkException("HttpClient_Trace", "HttpClient_Trace SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalObject_ActivatePhysicsDelegate(nint _localObject); + private static void LocalObject_ActivatePhysicsFallback(nint _localObject) => throw new Exceptions.OutdatedSdkException("LocalObject_ActivatePhysics", "LocalObject_ActivatePhysics SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalObject_AttachToEntityDelegate(nint _localObject, nint _entity, short _boneIndex, Vector3 _pos, Rotation _rot, byte _useSoftPinning, byte _collision, byte _fixedRot); + private static void LocalObject_AttachToEntityFallback(nint _localObject, nint _entity, short _boneIndex, Vector3 _pos, Rotation _rot, byte _useSoftPinning, byte _collision, byte _fixedRot) => throw new Exceptions.OutdatedSdkException("LocalObject_AttachToEntity", "LocalObject_AttachToEntity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalObject_AttachToEntity_ScriptIdDelegate(nint _localObject, uint _scriptId, short _boneIndex, Vector3 _pos, Rotation _rot, byte _useSoftPinning, byte _collision, byte _fixedRot); + private static void LocalObject_AttachToEntity_ScriptIdFallback(nint _localObject, uint _scriptId, short _boneIndex, Vector3 _pos, Rotation _rot, byte _useSoftPinning, byte _collision, byte _fixedRot) => throw new Exceptions.OutdatedSdkException("LocalObject_AttachToEntity_ScriptId", "LocalObject_AttachToEntity_ScriptId SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalObject_DetachDelegate(nint _localObject, byte _dynamic); + private static void LocalObject_DetachFallback(nint _localObject, byte _dynamic) => throw new Exceptions.OutdatedSdkException("LocalObject_Detach", "LocalObject_Detach SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int LocalObject_GetComponentTintIndexDelegate(nint _localObject, int _componentType); + private static int LocalObject_GetComponentTintIndexFallback(nint _localObject, int _componentType) => throw new Exceptions.OutdatedSdkException("LocalObject_GetComponentTintIndex", "LocalObject_GetComponentTintIndex SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint LocalObject_GetIDDelegate(nint _localObject); + private static uint LocalObject_GetIDFallback(nint _localObject) => throw new Exceptions.OutdatedSdkException("LocalObject_GetID", "LocalObject_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint LocalObject_GetObjectDelegate(nint _localObject); + private static nint LocalObject_GetObjectFallback(nint _localObject) => throw new Exceptions.OutdatedSdkException("LocalObject_GetObject", "LocalObject_GetObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint LocalObject_GetStreamingDistanceDelegate(nint _localObject); + private static uint LocalObject_GetStreamingDistanceFallback(nint _localObject) => throw new Exceptions.OutdatedSdkException("LocalObject_GetStreamingDistance", "LocalObject_GetStreamingDistance SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int LocalObject_GetTintIndexDelegate(nint _localObject); + private static int LocalObject_GetTintIndexFallback(nint _localObject) => throw new Exceptions.OutdatedSdkException("LocalObject_GetTintIndex", "LocalObject_GetTintIndex SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalObject_GiveComponentDelegate(nint _localObject, int _componentType); + private static void LocalObject_GiveComponentFallback(nint _localObject, int _componentType) => throw new Exceptions.OutdatedSdkException("LocalObject_GiveComponent", "LocalObject_GiveComponent SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte LocalObject_HasGravityDelegate(nint _localObject); + private static byte LocalObject_HasGravityFallback(nint _localObject) => throw new Exceptions.OutdatedSdkException("LocalObject_HasGravity", "LocalObject_HasGravity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte LocalObject_IsCollisionEnabledDelegate(nint _localObject); + private static byte LocalObject_IsCollisionEnabledFallback(nint _localObject) => throw new Exceptions.OutdatedSdkException("LocalObject_IsCollisionEnabled", "LocalObject_IsCollisionEnabled SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte LocalObject_IsDynamicDelegate(nint _localObject); + private static byte LocalObject_IsDynamicFallback(nint _localObject) => throw new Exceptions.OutdatedSdkException("LocalObject_IsDynamic", "LocalObject_IsDynamic SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte LocalObject_IsStreamedInDelegate(nint _localObject); + private static byte LocalObject_IsStreamedInFallback(nint _localObject) => throw new Exceptions.OutdatedSdkException("LocalObject_IsStreamedIn", "LocalObject_IsStreamedIn SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte LocalObject_IsVisibleDelegate(nint _localObject); + private static byte LocalObject_IsVisibleFallback(nint _localObject) => throw new Exceptions.OutdatedSdkException("LocalObject_IsVisible", "LocalObject_IsVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte LocalObject_IsWeaponObjectDelegate(nint _localObject); + private static byte LocalObject_IsWeaponObjectFallback(nint _localObject) => throw new Exceptions.OutdatedSdkException("LocalObject_IsWeaponObject", "LocalObject_IsWeaponObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte LocalObject_IsWorldObjectDelegate(nint _localObject); + private static byte LocalObject_IsWorldObjectFallback(nint _localObject) => throw new Exceptions.OutdatedSdkException("LocalObject_IsWorldObject", "LocalObject_IsWorldObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalObject_PlaceOnGroundProperlyDelegate(nint _localObject); + private static void LocalObject_PlaceOnGroundProperlyFallback(nint _localObject) => throw new Exceptions.OutdatedSdkException("LocalObject_PlaceOnGroundProperly", "LocalObject_PlaceOnGroundProperly SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalObject_RemoveComponentDelegate(nint _localObject, int _componentType); + private static void LocalObject_RemoveComponentFallback(nint _localObject, int _componentType) => throw new Exceptions.OutdatedSdkException("LocalObject_RemoveComponent", "LocalObject_RemoveComponent SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalObject_ResetAlphaDelegate(nint _localObject); + private static void LocalObject_ResetAlphaFallback(nint _localObject) => throw new Exceptions.OutdatedSdkException("LocalObject_ResetAlpha", "LocalObject_ResetAlpha SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalObject_SetAlphaDelegate(nint _localObject, byte _alpha); + private static void LocalObject_SetAlphaFallback(nint _localObject, byte _alpha) => throw new Exceptions.OutdatedSdkException("LocalObject_SetAlpha", "LocalObject_SetAlpha SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalObject_SetComponentTintIndexDelegate(nint _localObject, int _componentType, int _tintIndex); + private static void LocalObject_SetComponentTintIndexFallback(nint _localObject, int _componentType, int _tintIndex) => throw new Exceptions.OutdatedSdkException("LocalObject_SetComponentTintIndex", "LocalObject_SetComponentTintIndex SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalObject_SetLodDistanceDelegate(nint _localObject, ushort _distance); + private static void LocalObject_SetLodDistanceFallback(nint _localObject, ushort _distance) => throw new Exceptions.OutdatedSdkException("LocalObject_SetLodDistance", "LocalObject_SetLodDistance SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalObject_SetModelDelegate(nint _localObject, uint _model); + private static void LocalObject_SetModelFallback(nint _localObject, uint _model) => throw new Exceptions.OutdatedSdkException("LocalObject_SetModel", "LocalObject_SetModel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalObject_SetPositionFrozenDelegate(nint _localObject, byte _toggle); + private static void LocalObject_SetPositionFrozenFallback(nint _localObject, byte _toggle) => throw new Exceptions.OutdatedSdkException("LocalObject_SetPositionFrozen", "LocalObject_SetPositionFrozen SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalObject_SetTextureVariationDelegate(nint _localObject, byte _variation); + private static void LocalObject_SetTextureVariationFallback(nint _localObject, byte _variation) => throw new Exceptions.OutdatedSdkException("LocalObject_SetTextureVariation", "LocalObject_SetTextureVariation SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalObject_SetTintIndexDelegate(nint _localObject, int _tintIndex); + private static void LocalObject_SetTintIndexFallback(nint _localObject, int _tintIndex) => throw new Exceptions.OutdatedSdkException("LocalObject_SetTintIndex", "LocalObject_SetTintIndex SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalObject_SetVisibleDelegate(nint _localObject, byte _toggle); + private static void LocalObject_SetVisibleFallback(nint _localObject, byte _toggle) => throw new Exceptions.OutdatedSdkException("LocalObject_SetVisible", "LocalObject_SetVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalObject_ToggleCollisionDelegate(nint _localObject, byte _toggle, byte _keepPhysics); + private static void LocalObject_ToggleCollisionFallback(nint _localObject, byte _toggle, byte _keepPhysics) => throw new Exceptions.OutdatedSdkException("LocalObject_ToggleCollision", "LocalObject_ToggleCollision SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalObject_ToggleGravityDelegate(nint _localObject, byte _toggle); + private static void LocalObject_ToggleGravityFallback(nint _localObject, byte _toggle) => throw new Exceptions.OutdatedSdkException("LocalObject_ToggleGravity", "LocalObject_ToggleGravity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte LocalObject_UsesStreamingDelegate(nint _localObject); + private static byte LocalObject_UsesStreamingFallback(nint _localObject) => throw new Exceptions.OutdatedSdkException("LocalObject_UsesStreaming", "LocalObject_UsesStreaming SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint LocalPed_GetIDDelegate(nint _localPed); + private static uint LocalPed_GetIDFallback(nint _localPed) => throw new Exceptions.OutdatedSdkException("LocalPed_GetID", "LocalPed_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint LocalPed_GetPedDelegate(nint _localPed); + private static nint LocalPed_GetPedFallback(nint _localPed) => throw new Exceptions.OutdatedSdkException("LocalPed_GetPed", "LocalPed_GetPed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint LocalPed_GetScriptIDDelegate(nint _localPed); + private static uint LocalPed_GetScriptIDFallback(nint _localPed) => throw new Exceptions.OutdatedSdkException("LocalPed_GetScriptID", "LocalPed_GetScriptID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint LocalPed_GetStreamingDistanceDelegate(nint _localPed); + private static uint LocalPed_GetStreamingDistanceFallback(nint _localPed) => throw new Exceptions.OutdatedSdkException("LocalPed_GetStreamingDistance", "LocalPed_GetStreamingDistance SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte LocalPed_IsStreamedInDelegate(nint _localPed); + private static byte LocalPed_IsStreamedInFallback(nint _localPed) => throw new Exceptions.OutdatedSdkException("LocalPed_IsStreamedIn", "LocalPed_IsStreamedIn SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte LocalPed_IsVisibleDelegate(nint _localPed); + private static byte LocalPed_IsVisibleFallback(nint _localPed) => throw new Exceptions.OutdatedSdkException("LocalPed_IsVisible", "LocalPed_IsVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalPed_SetModelDelegate(nint _localPed, uint _model); + private static void LocalPed_SetModelFallback(nint _localPed, uint _model) => throw new Exceptions.OutdatedSdkException("LocalPed_SetModel", "LocalPed_SetModel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalPed_SetVisibleDelegate(nint _localPed, byte _toggle); + private static void LocalPed_SetVisibleFallback(nint _localPed, byte _toggle) => throw new Exceptions.OutdatedSdkException("LocalPed_SetVisible", "LocalPed_SetVisible SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort LocalPlayer_GetCurrentAmmoDelegate(nint _localPlayer); private static ushort LocalPlayer_GetCurrentAmmoFallback(nint _localPlayer) => throw new Exceptions.OutdatedSdkException("LocalPlayer_GetCurrentAmmo", "LocalPlayer_GetCurrentAmmo SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint LocalPlayer_GetCurrentWeaponHashDelegate(nint _localPlayer); private static uint LocalPlayer_GetCurrentWeaponHashFallback(nint _localPlayer) => throw new Exceptions.OutdatedSdkException("LocalPlayer_GetCurrentWeaponHash", "LocalPlayer_GetCurrentWeaponHash SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort LocalPlayer_GetIDDelegate(nint _localPlayer); - private static ushort LocalPlayer_GetIDFallback(nint _localPlayer) => throw new Exceptions.OutdatedSdkException("LocalPlayer_GetID", "LocalPlayer_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint LocalPlayer_GetIDDelegate(nint _localPlayer); + private static uint LocalPlayer_GetIDFallback(nint _localPlayer) => throw new Exceptions.OutdatedSdkException("LocalPlayer_GetID", "LocalPlayer_GetID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float LocalPlayer_GetMaxStaminaDelegate(nint _localPlayer); private static float LocalPlayer_GetMaxStaminaFallback(nint _localPlayer) => throw new Exceptions.OutdatedSdkException("LocalPlayer_GetMaxStamina", "LocalPlayer_GetMaxStamina SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint LocalPlayer_GetPlayerDelegate(nint _player); @@ -2169,10 +2763,28 @@ public unsafe class ClientLibrary : IClientLibrary private static void LocalStorage_DeleteKeyFallback(nint _localStorage, nint _key) => throw new Exceptions.OutdatedSdkException("LocalStorage_DeleteKey", "LocalStorage_DeleteKey SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint LocalStorage_GetKeyDelegate(nint _localStorage, nint _key); private static nint LocalStorage_GetKeyFallback(nint _localStorage, nint _key) => throw new Exceptions.OutdatedSdkException("LocalStorage_GetKey", "LocalStorage_GetKey SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte LocalStorage_HasDelegate(nint _localStorage, nint _key); + private static byte LocalStorage_HasFallback(nint _localStorage, nint _key) => throw new Exceptions.OutdatedSdkException("LocalStorage_Has", "LocalStorage_Has SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalStorage_SaveDelegate(nint _localStorage); private static void LocalStorage_SaveFallback(nint _localStorage) => throw new Exceptions.OutdatedSdkException("LocalStorage_Save", "LocalStorage_Save SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalStorage_SetKeyDelegate(nint _localStorage, nint _key, nint _value); private static void LocalStorage_SetKeyFallback(nint _localStorage, nint _key, nint _value) => throw new Exceptions.OutdatedSdkException("LocalStorage_SetKey", "LocalStorage_SetKey SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint LocalVehicle_GetIDDelegate(nint _localVehicle); + private static uint LocalVehicle_GetIDFallback(nint _localVehicle) => throw new Exceptions.OutdatedSdkException("LocalVehicle_GetID", "LocalVehicle_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint LocalVehicle_GetScriptIDDelegate(nint _localVehicle); + private static uint LocalVehicle_GetScriptIDFallback(nint _localVehicle) => throw new Exceptions.OutdatedSdkException("LocalVehicle_GetScriptID", "LocalVehicle_GetScriptID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint LocalVehicle_GetStreamingDistanceDelegate(nint _localVehicle); + private static uint LocalVehicle_GetStreamingDistanceFallback(nint _localVehicle) => throw new Exceptions.OutdatedSdkException("LocalVehicle_GetStreamingDistance", "LocalVehicle_GetStreamingDistance SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint LocalVehicle_GetVehicleDelegate(nint _localVehicle); + private static nint LocalVehicle_GetVehicleFallback(nint _localVehicle) => throw new Exceptions.OutdatedSdkException("LocalVehicle_GetVehicle", "LocalVehicle_GetVehicle SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte LocalVehicle_IsStreamedInDelegate(nint _localVehicle); + private static byte LocalVehicle_IsStreamedInFallback(nint _localVehicle) => throw new Exceptions.OutdatedSdkException("LocalVehicle_IsStreamedIn", "LocalVehicle_IsStreamedIn SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte LocalVehicle_IsVisibleDelegate(nint _localVehicle); + private static byte LocalVehicle_IsVisibleFallback(nint _localVehicle) => throw new Exceptions.OutdatedSdkException("LocalVehicle_IsVisible", "LocalVehicle_IsVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalVehicle_SetModelDelegate(nint _localVehicle, uint _model); + private static void LocalVehicle_SetModelFallback(nint _localVehicle, uint _model) => throw new Exceptions.OutdatedSdkException("LocalVehicle_SetModel", "LocalVehicle_SetModel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void LocalVehicle_SetVisibleDelegate(nint _localVehicle, byte _toggle); + private static void LocalVehicle_SetVisibleFallback(nint _localVehicle, byte _toggle) => throw new Exceptions.OutdatedSdkException("LocalVehicle_SetVisible", "LocalVehicle_SetVisible SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float MapData_GetFScrollSpeedDelegate(uint _id); private static float MapData_GetFScrollSpeedFallback(uint _id) => throw new Exceptions.OutdatedSdkException("MapData_GetFScrollSpeed", "MapData_GetFScrollSpeed SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float MapData_GetFZoomScaleDelegate(uint _id); @@ -2193,8 +2805,12 @@ public unsafe class ClientLibrary : IClientLibrary private static void MapData_SetVTilesXFallback(uint _id, float _value) => throw new Exceptions.OutdatedSdkException("MapData_SetVTilesX", "MapData_SetVTilesX SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void MapData_SetVTilesYDelegate(uint _id, float _value); private static void MapData_SetVTilesYFallback(uint _id, float _value) => throw new Exceptions.OutdatedSdkException("MapData_SetVTilesY", "MapData_SetVTilesY SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Object_IsRemoteDelegate(nint _object); - private static byte Object_IsRemoteFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_IsRemote", "Object_IsRemote SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Marker_IsStreamedInDelegate(nint _marker); + private static byte Marker_IsStreamedInFallback(nint _marker) => throw new Exceptions.OutdatedSdkException("Marker_IsStreamedIn", "Marker_IsStreamedIn SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_AddFilterDelegate(nint _player, nint _filter); + private static void Player_AddFilterFallback(nint _player, nint _filter) => throw new Exceptions.OutdatedSdkException("Player_AddFilter", "Player_AddFilter SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Player_GetFilterDelegate(nint _player); + private static nint Player_GetFilterFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetFilter", "Player_GetFilter SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Player_GetLocalDelegate(); private static nint Player_GetLocalFallback() => throw new Exceptions.OutdatedSdkException("Player_GetLocal", "Player_GetLocal SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Player_GetMicLevelDelegate(nint _player); @@ -2203,22 +2819,26 @@ public unsafe class ClientLibrary : IClientLibrary private static float Player_GetNonSpatialVolumeFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetNonSpatialVolume", "Player_GetNonSpatialVolume SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Player_GetSpatialVolumeDelegate(nint _player); private static float Player_GetSpatialVolumeFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetSpatialVolume", "Player_GetSpatialVolume SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Player_GetTaskDataDelegate(nint _player, int* _size); + private static nint Player_GetTaskDataFallback(nint _player, int* _size) => throw new Exceptions.OutdatedSdkException("Player_GetTaskData", "Player_GetTaskData SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsTalkingDelegate(nint _player); private static byte Player_IsTalkingFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsTalking", "Player_IsTalking SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_RemoveFilterDelegate(nint _player); + private static void Player_RemoveFilterFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_RemoveFilter", "Player_RemoveFilter SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetNonSpatialVolumeDelegate(nint _player, float _value); private static void Player_SetNonSpatialVolumeFallback(nint _player, float _value) => throw new Exceptions.OutdatedSdkException("Player_SetNonSpatialVolume", "Player_SetNonSpatialVolume SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetSpatialVolumeDelegate(nint _player, float _value); private static void Player_SetSpatialVolumeFallback(nint _player, float _value) => throw new Exceptions.OutdatedSdkException("Player_SetSpatialVolume", "Player_SetSpatialVolume SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate bool Resource_FileExistsDelegate(nint _resource, nint _path); - private static bool Resource_FileExistsFallback(nint _resource, nint _path) => throw new Exceptions.OutdatedSdkException("Resource_FileExists", "Resource_FileExists SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Resource_FileExistsDelegate(nint _resource, nint _path); + private static byte Resource_FileExistsFallback(nint _resource, nint _path) => throw new Exceptions.OutdatedSdkException("Resource_FileExists", "Resource_FileExists SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Resource_GetFileDelegate(nint _resource, nint _path, int* _bufferSize, nint* _buffer); private static void Resource_GetFileFallback(nint _resource, nint _path, int* _bufferSize, nint* _buffer) => throw new Exceptions.OutdatedSdkException("Resource_GetFile", "Resource_GetFile SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Resource_GetLocalStorageDelegate(nint _resource); private static nint Resource_GetLocalStorageFallback(nint _resource) => throw new Exceptions.OutdatedSdkException("Resource_GetLocalStorage", "Resource_GetLocalStorage SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlDocument_CreateElementDelegate(nint _rmlDocument, nint _tag); - private static nint RmlDocument_CreateElementFallback(nint _rmlDocument, nint _tag) => throw new Exceptions.OutdatedSdkException("RmlDocument_CreateElement", "RmlDocument_CreateElement SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlDocument_CreateTextNodeDelegate(nint _rmlDocument, nint _text); - private static nint RmlDocument_CreateTextNodeFallback(nint _rmlDocument, nint _text) => throw new Exceptions.OutdatedSdkException("RmlDocument_CreateTextNode", "RmlDocument_CreateTextNode SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlDocument_CreateElementDelegate(nint _rmlDocument, nint _tag, uint* _id); + private static nint RmlDocument_CreateElementFallback(nint _rmlDocument, nint _tag, uint* _id) => throw new Exceptions.OutdatedSdkException("RmlDocument_CreateElement", "RmlDocument_CreateElement SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlDocument_CreateTextNodeDelegate(nint _rmlDocument, nint _text, uint* _id); + private static nint RmlDocument_CreateTextNodeFallback(nint _rmlDocument, nint _text, uint* _id) => throw new Exceptions.OutdatedSdkException("RmlDocument_CreateTextNode", "RmlDocument_CreateTextNode SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlDocument_GetBodyDelegate(nint _rmlDocument); private static nint RmlDocument_GetBodyFallback(nint _rmlDocument) => throw new Exceptions.OutdatedSdkException("RmlDocument_GetBody", "RmlDocument_GetBody SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlDocument_GetRmlElementDelegate(nint _rmlDocument); @@ -2293,8 +2913,8 @@ public unsafe class ClientLibrary : IClientLibrary private static nint RmlElement_GetFirstChildFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetFirstChild", "RmlElement_GetFirstChild SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetFocusedElementDelegate(nint _rmlElement); private static nint RmlElement_GetFocusedElementFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetFocusedElement", "RmlElement_GetFocusedElement SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetIdDelegate(nint _rmlElement, int* _size); - private static nint RmlElement_GetIdFallback(nint _rmlElement, int* _size) => throw new Exceptions.OutdatedSdkException("RmlElement_GetId", "RmlElement_GetId SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint RmlElement_GetIDDelegate(nint _rmlElement); + private static uint RmlElement_GetIDFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetID", "RmlElement_GetID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetInnerRmlDelegate(nint _rmlElement, int* _size); private static nint RmlElement_GetInnerRmlFallback(nint _rmlElement, int* _size) => throw new Exceptions.OutdatedSdkException("RmlElement_GetInnerRml", "RmlElement_GetInnerRml SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetLastChildDelegate(nint _rmlElement); @@ -2325,6 +2945,8 @@ public unsafe class ClientLibrary : IClientLibrary private static void RmlElement_GetPseudoClassListFallback(nint _rmlElement, nint* _classes, uint* _size) => throw new Exceptions.OutdatedSdkException("RmlElement_GetPseudoClassList", "RmlElement_GetPseudoClassList SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_GetRelativeOffsetDelegate(nint _rmlElement, Vector2* _offset); private static void RmlElement_GetRelativeOffsetFallback(nint _rmlElement, Vector2* _offset) => throw new Exceptions.OutdatedSdkException("RmlElement_GetRelativeOffset", "RmlElement_GetRelativeOffset SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint RmlElement_GetRmlIdDelegate(nint _rmlElement, int* _size); + private static nint RmlElement_GetRmlIdFallback(nint _rmlElement, int* _size) => throw new Exceptions.OutdatedSdkException("RmlElement_GetRmlId", "RmlElement_GetRmlId SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float RmlElement_GetScrollHeightDelegate(nint _rmlElement); private static float RmlElement_GetScrollHeightFallback(nint _rmlElement) => throw new Exceptions.OutdatedSdkException("RmlElement_GetScrollHeight", "RmlElement_GetScrollHeight SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float RmlElement_GetScrollLeftDelegate(nint _rmlElement); @@ -2377,18 +2999,20 @@ public unsafe class ClientLibrary : IClientLibrary private static void RmlElement_ScrollIntoViewFallback(nint _rmlElement, byte _alignToTop) => throw new Exceptions.OutdatedSdkException("RmlElement_ScrollIntoView", "RmlElement_ScrollIntoView SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_SetAttributeDelegate(nint _rmlElement, nint _name, nint _value); private static void RmlElement_SetAttributeFallback(nint _rmlElement, nint _name, nint _value) => throw new Exceptions.OutdatedSdkException("RmlElement_SetAttribute", "RmlElement_SetAttribute SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_SetIdDelegate(nint _rmlElement, nint _value); - private static void RmlElement_SetIdFallback(nint _rmlElement, nint _value) => throw new Exceptions.OutdatedSdkException("RmlElement_SetId", "RmlElement_SetId SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_SetInnerRmlDelegate(nint _rmlElement, nint _value); private static void RmlElement_SetInnerRmlFallback(nint _rmlElement, nint _value) => throw new Exceptions.OutdatedSdkException("RmlElement_SetInnerRml", "RmlElement_SetInnerRml SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_SetOffsetDelegate(nint _rmlElement, nint _element, Vector2 _offset, byte _fixed); private static void RmlElement_SetOffsetFallback(nint _rmlElement, nint _element, Vector2 _offset, byte _fixed) => throw new Exceptions.OutdatedSdkException("RmlElement_SetOffset", "RmlElement_SetOffset SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_SetPropertyDelegate(nint _rmlElement, nint _name, nint _value); private static void RmlElement_SetPropertyFallback(nint _rmlElement, nint _name, nint _value) => throw new Exceptions.OutdatedSdkException("RmlElement_SetProperty", "RmlElement_SetProperty SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_SetRmlIDDelegate(nint _rmlElement, nint _value); + private static void RmlElement_SetRmlIDFallback(nint _rmlElement, nint _value) => throw new Exceptions.OutdatedSdkException("RmlElement_SetRmlID", "RmlElement_SetRmlID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_SetScrollLeftDelegate(nint _rmlElement, float _value); private static void RmlElement_SetScrollLeftFallback(nint _rmlElement, float _value) => throw new Exceptions.OutdatedSdkException("RmlElement_SetScrollLeft", "RmlElement_SetScrollLeft SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void RmlElement_SetScrollTopDelegate(nint _rmlElement, float _value); private static void RmlElement_SetScrollTopFallback(nint _rmlElement, float _value) => throw new Exceptions.OutdatedSdkException("RmlElement_SetScrollTop", "RmlElement_SetScrollTop SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte TextLabel_IsStreamedInDelegate(nint _textLabel); + private static byte TextLabel_IsStreamedInFallback(nint _textLabel) => throw new Exceptions.OutdatedSdkException("TextLabel_IsStreamedIn", "TextLabel_IsStreamedIn SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetAbsLightStateDelegate(nint _vehicle); private static byte Vehicle_GetAbsLightStateFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetAbsLightState", "Vehicle_GetAbsLightState SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetBatteryLightStateDelegate(nint _vehicle); @@ -2419,6 +3043,8 @@ public unsafe class ClientLibrary : IClientLibrary private static byte Vehicle_GetSeatCountFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetSeatCount", "Vehicle_GetSeatCount SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_GetSpeedVectorDelegate(nint _vehicle, Vector3* _vector); private static void Vehicle_GetSpeedVectorFallback(nint _vehicle, Vector3* _vector) => throw new Exceptions.OutdatedSdkException("Vehicle_GetSpeedVector", "Vehicle_GetSpeedVector SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetSuspensionHeightDelegate(nint _vehicle); + private static float Vehicle_GetSuspensionHeightFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetSuspensionHeight", "Vehicle_GetSuspensionHeight SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetWheelCamberDelegate(nint _vehicle, byte _wheel); private static float Vehicle_GetWheelCamberFallback(nint _vehicle, byte _wheel) => throw new Exceptions.OutdatedSdkException("Vehicle_GetWheelCamber", "Vehicle_GetWheelCamber SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetWheelHeightDelegate(nint _vehicle, byte _wheel); @@ -2711,6 +3337,8 @@ public unsafe class ClientLibrary : IClientLibrary private static void Vehicle_SetBatteryLightStateFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetBatteryLightState", "Vehicle_SetBatteryLightState SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetCurrentGearDelegate(nint _vehicle, ushort _value); private static void Vehicle_SetCurrentGearFallback(nint _vehicle, ushort _value) => throw new Exceptions.OutdatedSdkException("Vehicle_SetCurrentGear", "Vehicle_SetCurrentGear SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetCurrentRPMDelegate(nint _vehicle, float _rpm); + private static void Vehicle_SetCurrentRPMFallback(nint _vehicle, float _rpm) => throw new Exceptions.OutdatedSdkException("Vehicle_SetCurrentRPM", "Vehicle_SetCurrentRPM SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetEngineLightStateDelegate(nint _vehicle, byte _state); private static void Vehicle_SetEngineLightStateFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetEngineLightState", "Vehicle_SetEngineLightState SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetEngineTemperatureDelegate(nint _vehicle, float _value); @@ -2727,6 +3355,10 @@ public unsafe class ClientLibrary : IClientLibrary private static void Vehicle_SetOilLightStateFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetOilLightState", "Vehicle_SetOilLightState SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetPetrolLightStateDelegate(nint _vehicle, byte _state); private static void Vehicle_SetPetrolLightStateFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_SetPetrolLightState", "Vehicle_SetPetrolLightState SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetSteeringAngleDelegate(nint _vehicle, float _value); + private static void Vehicle_SetSteeringAngleFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_SetSteeringAngle", "Vehicle_SetSteeringAngle SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetSuspensionHeightDelegate(nint _vehicle, float _value); + private static void Vehicle_SetSuspensionHeightFallback(nint _vehicle, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_SetSuspensionHeight", "Vehicle_SetSuspensionHeight SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetWheelCamberDelegate(nint _vehicle, byte _wheel, float _value); private static void Vehicle_SetWheelCamberFallback(nint _vehicle, byte _wheel, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWheelCamber", "Vehicle_SetWheelCamber SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetWheelHeightDelegate(nint _vehicle, byte _wheel, float _value); @@ -2741,6 +3373,8 @@ public unsafe class ClientLibrary : IClientLibrary private static void Vehicle_SetWheelTyreWidthFallback(nint _vehicle, byte _wheel, float _value) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWheelTyreWidth", "Vehicle_SetWheelTyreWidth SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_ToggleTaxiLightDelegate(nint _vehicle, byte _state); private static void Vehicle_ToggleTaxiLightFallback(nint _vehicle, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_ToggleTaxiLight", "Vehicle_ToggleTaxiLight SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte VirtualEntity_IsStreamedInDelegate(nint _virtualEntity); + private static byte VirtualEntity_IsStreamedInFallback(nint _virtualEntity) => throw new Exceptions.OutdatedSdkException("VirtualEntity_IsStreamedIn", "VirtualEntity_IsStreamedIn SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float WeaponData_GetAccuracySpreadDelegate(uint _weaponHash); private static float WeaponData_GetAccuracySpreadFallback(uint _weaponHash) => throw new Exceptions.OutdatedSdkException("WeaponData_GetAccuracySpread", "WeaponData_GetAccuracySpread SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float WeaponData_GetAnimReloadRateDelegate(uint _weaponHash); @@ -2831,10 +3465,14 @@ public unsafe class ClientLibrary : IClientLibrary private static void WebSocketClient_StartFallback(nint _webSocketClient) => throw new Exceptions.OutdatedSdkException("WebSocketClient_Start", "WebSocketClient_Start SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebSocketClient_StopDelegate(nint _webSocketClient); private static void WebSocketClient_StopFallback(nint _webSocketClient) => throw new Exceptions.OutdatedSdkException("WebSocketClient_Stop", "WebSocketClient_Stop SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebView_AddOutputDelegate(nint _webView, nint _output); + private static void WebView_AddOutputFallback(nint _webView, nint _output) => throw new Exceptions.OutdatedSdkException("WebView_AddOutput", "WebView_AddOutput SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebView_FocusDelegate(nint _webView); private static void WebView_FocusFallback(nint _webView) => throw new Exceptions.OutdatedSdkException("WebView_Focus", "WebView_Focus SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint WebView_GetBaseObjectDelegate(nint _webView); private static nint WebView_GetBaseObjectFallback(nint _webView) => throw new Exceptions.OutdatedSdkException("WebView_GetBaseObject", "WebView_GetBaseObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint WebView_GetOutputsDelegate(nint _webView); + private static nint WebView_GetOutputsFallback(nint _webView) => throw new Exceptions.OutdatedSdkException("WebView_GetOutputs", "WebView_GetOutputs SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebView_GetPositionDelegate(nint _webView, Vector2* _pos); private static void WebView_GetPositionFallback(nint _webView, Vector2* _pos) => throw new Exceptions.OutdatedSdkException("WebView_GetPosition", "WebView_GetPosition SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebView_GetSizeDelegate(nint _webView, Vector2* _size); @@ -2847,6 +3485,8 @@ public unsafe class ClientLibrary : IClientLibrary private static byte WebView_IsOverlayFallback(nint _webView) => throw new Exceptions.OutdatedSdkException("WebView_IsOverlay", "WebView_IsOverlay SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte WebView_IsVisibleDelegate(nint _webView); private static byte WebView_IsVisibleFallback(nint _webView) => throw new Exceptions.OutdatedSdkException("WebView_IsVisible", "WebView_IsVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebView_RemoveOutputDelegate(nint _webView, nint _output); + private static void WebView_RemoveOutputFallback(nint _webView, nint _output) => throw new Exceptions.OutdatedSdkException("WebView_RemoveOutput", "WebView_RemoveOutput SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebView_SetExtraHeaderDelegate(nint _webView, nint _key, nint _value); private static void WebView_SetExtraHeaderFallback(nint _webView, nint _key, nint _value) => throw new Exceptions.OutdatedSdkException("WebView_SetExtraHeader", "WebView_SetExtraHeader SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WebView_SetIsVisibleDelegate(nint _webView, byte _visible); @@ -2872,31 +3512,95 @@ private IntPtr GetUnmanagedPtr(IDictionary funcTable, ulong ha public ClientLibrary(Dictionary funcTable) { if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true; - else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 10988236633214279111UL) Outdated = true; - Audio_AddOutput_Entity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9879036518735269522UL, Audio_AddOutput_EntityFallback); - Audio_AddOutput_ScriptId = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14116998947805478300UL, Audio_AddOutput_ScriptIdFallback); + else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 4677548953854785821UL) Outdated = true; + Audio_AddOutput = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9914412815391408844UL, Audio_AddOutputFallback); Audio_GetBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6330360502401226894UL, Audio_GetBaseObjectFallback); - Audio_GetCategory = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12345892022413856728UL, Audio_GetCategoryFallback); Audio_GetCurrentTime = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2944324482134975819UL, Audio_GetCurrentTimeFallback); Audio_GetLooped = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10560005262055961188UL, Audio_GetLoopedFallback); Audio_GetMaxTime = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5963004639906097584UL, Audio_GetMaxTimeFallback); Audio_GetOutputs = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10960639574387403531UL, Audio_GetOutputsFallback); Audio_GetSource = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12278705681242498405UL, Audio_GetSourceFallback); Audio_GetVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8275612815502917842UL, Audio_GetVolumeFallback); - Audio_IsFrontendPlay = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 936635821185311219UL, Audio_IsFrontendPlayFallback); Audio_IsPlaying = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14342104995157365387UL, Audio_IsPlayingFallback); Audio_Pause = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 312129387563128742UL, Audio_PauseFallback); Audio_Play = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18104521197990433214UL, Audio_PlayFallback); - Audio_RemoveOutput_Entity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7265503788671851963UL, Audio_RemoveOutput_EntityFallback); - Audio_RemoveOutput_ScriptId = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16157836184241443811UL, Audio_RemoveOutput_ScriptIdFallback); + Audio_RemoveOutput = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9152021313018585253UL, Audio_RemoveOutputFallback); Audio_Reset = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1881771096446693299UL, Audio_ResetFallback); Audio_Seek = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11376704802141530478UL, Audio_SeekFallback); - Audio_SetCategory = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17618115768214791263UL, Audio_SetCategoryFallback); Audio_SetLooped = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11197286000910319739UL, Audio_SetLoopedFallback); Audio_SetSource = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1985919874242680186UL, Audio_SetSourceFallback); Audio_SetVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12440427729460375257UL, Audio_SetVolumeFallback); - Blip_GetScriptID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16517785578451896264UL, Blip_GetScriptIDFallback); - Blip_IsRemote = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16853945182069856363UL, Blip_IsRemoteFallback); + AudioAttachedOutput_GetAudioOutputObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3029608220058259701UL, AudioAttachedOutput_GetAudioOutputObjectFallback); + AudioAttachedOutput_GetEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10229100283239029155UL, AudioAttachedOutput_GetEntityFallback); + AudioAttachedOutput_SetEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13912064012527611191UL, AudioAttachedOutput_SetEntityFallback); + AudioCategory_GetDistanceReverbDamping = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10654431985631031041UL, AudioCategory_GetDistanceReverbDampingFallback); + AudioCategory_GetDistanceRolloffScale = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14414561644250140499UL, AudioCategory_GetDistanceRolloffScaleFallback); + AudioCategory_GetEnvironmentalFilterDamping = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2304223259615247114UL, AudioCategory_GetEnvironmentalFilterDampingFallback); + AudioCategory_GetEnvironmentalLoudness = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2441700089498649453UL, AudioCategory_GetEnvironmentalLoudnessFallback); + AudioCategory_GetHighPassFilterCutoff = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11537593412782253999UL, AudioCategory_GetHighPassFilterCutoffFallback); + AudioCategory_GetInteriorReverbDamping = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 377088257729654588UL, AudioCategory_GetInteriorReverbDampingFallback); + AudioCategory_GetLowPassFilterCutoff = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6420784409266004381UL, AudioCategory_GetLowPassFilterCutoffFallback); + AudioCategory_GetName = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12539942909590760051UL, AudioCategory_GetNameFallback); + AudioCategory_GetOcclusionDamping = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8635710679983766175UL, AudioCategory_GetOcclusionDampingFallback); + AudioCategory_GetPitch = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 192654009754587567UL, AudioCategory_GetPitchFallback); + AudioCategory_GetPlateauRolloffScale = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3053130238091863078UL, AudioCategory_GetPlateauRolloffScaleFallback); + AudioCategory_GetSourceReverbDamping = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3315125467804536311UL, AudioCategory_GetSourceReverbDampingFallback); + AudioCategory_GetStonedWetLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9729554689848362575UL, AudioCategory_GetStonedWetLevelFallback); + AudioCategory_GetUnderwaterWetLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 941301167111128477UL, AudioCategory_GetUnderwaterWetLevelFallback); + AudioCategory_GetVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10296606436507843992UL, AudioCategory_GetVolumeFallback); + AudioCategory_Reset = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13386021695660891547UL, AudioCategory_ResetFallback); + AudioCategory_SetDistanceReverbDamping = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2770708508022364860UL, AudioCategory_SetDistanceReverbDampingFallback); + AudioCategory_SetDistanceRolloffScale = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8490682484835716350UL, AudioCategory_SetDistanceRolloffScaleFallback); + AudioCategory_SetEnvironmentalFilterDamping = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 351054475363488025UL, AudioCategory_SetEnvironmentalFilterDampingFallback); + AudioCategory_SetEnvironmentalLoudness = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15583725225821662112UL, AudioCategory_SetEnvironmentalLoudnessFallback); + AudioCategory_SetHighPassFilterCutoff = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18103974532564187666UL, AudioCategory_SetHighPassFilterCutoffFallback); + AudioCategory_SetInteriorReverbDamping = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6745880681776849771UL, AudioCategory_SetInteriorReverbDampingFallback); + AudioCategory_SetLowPassFilterCutoff = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5835416353819932040UL, AudioCategory_SetLowPassFilterCutoffFallback); + AudioCategory_SetOcclusionDamping = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14931971629679421426UL, AudioCategory_SetOcclusionDampingFallback); + AudioCategory_SetPitch = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8277836298312512082UL, AudioCategory_SetPitchFallback); + AudioCategory_SetPlateauRolloffScale = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3375201792035155341UL, AudioCategory_SetPlateauRolloffScaleFallback); + AudioCategory_SetSourceReverbDamping = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 45859871874344330UL, AudioCategory_SetSourceReverbDampingFallback); + AudioCategory_SetStonedWetLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 110556911249979186UL, AudioCategory_SetStonedWetLevelFallback); + AudioCategory_SetUnderwaterWetLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5434020263197628320UL, AudioCategory_SetUnderwaterWetLevelFallback); + AudioCategory_SetVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17426123586549937751UL, AudioCategory_SetVolumeFallback); + AudioFilter_AddAutowahEffect = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14212377165691564503UL, AudioFilter_AddAutowahEffectFallback); + AudioFilter_AddBqfEffect = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4087111773947664402UL, AudioFilter_AddBqfEffectFallback); + AudioFilter_AddChorusEffect = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9972569973446180314UL, AudioFilter_AddChorusEffectFallback); + AudioFilter_AddCompressor2Effect = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17322162260950965408UL, AudioFilter_AddCompressor2EffectFallback); + AudioFilter_AddDampEffect = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4015248769723727249UL, AudioFilter_AddDampEffectFallback); + AudioFilter_AddDistortionEffect = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7285621841123341024UL, AudioFilter_AddDistortionEffectFallback); + AudioFilter_AddEcho4Effect = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9336932188943118341UL, AudioFilter_AddEcho4EffectFallback); + AudioFilter_AddFreeverbEffect = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10140673001977917335UL, AudioFilter_AddFreeverbEffectFallback); + AudioFilter_AddPeakeqEffect = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1255796572498720691UL, AudioFilter_AddPeakeqEffectFallback); + AudioFilter_AddPhaserEffect = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4076092769167870615UL, AudioFilter_AddPhaserEffectFallback); + AudioFilter_AddPitchshiftEffect = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13860375026413797308UL, AudioFilter_AddPitchshiftEffectFallback); + AudioFilter_AddRotateEffect = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3023765297763740660UL, AudioFilter_AddRotateEffectFallback); + AudioFilter_AddVolumeEffect = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4712013335136464389UL, AudioFilter_AddVolumeEffectFallback); + AudioFilter_GetAudCategory = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6059317348005410766UL, AudioFilter_GetAudCategoryFallback); + AudioFilter_GetBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8867334748367703826UL, AudioFilter_GetBaseObjectFallback); + AudioFilter_GetHash = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10116851781453819636UL, AudioFilter_GetHashFallback); + AudioFilter_RemoveEffect = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4769953165963999553UL, AudioFilter_RemoveEffectFallback); + AudioFilter_SetAudCategory = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6748113621735625221UL, AudioFilter_SetAudCategoryFallback); + AudioFrontendOutput_GetAudioOutputObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17483816761011757109UL, AudioFrontendOutput_GetAudioOutputObjectFallback); + AudioOutput_AddFilter = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10357488313567819218UL, AudioOutput_AddFilterFallback); + AudioOutput_GetBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1884524571487922354UL, AudioOutput_GetBaseObjectFallback); + AudioOutput_GetCategory = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17277766182316048732UL, AudioOutput_GetCategoryFallback); + AudioOutput_GetFilter = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17020645218264635932UL, AudioOutput_GetFilterFallback); + AudioOutput_GetOwner = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 933649742983792579UL, AudioOutput_GetOwnerFallback); + AudioOutput_GetVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13470498701354224494UL, AudioOutput_GetVolumeFallback); + AudioOutput_IsMuted = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15532821940970646424UL, AudioOutput_IsMutedFallback); + AudioOutput_RemoveFilter = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2487729970405185544UL, AudioOutput_RemoveFilterFallback); + AudioOutput_SetMuted = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4446359432714512349UL, AudioOutput_SetMutedFallback); + AudioOutput_SetVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 613122851278459413UL, AudioOutput_SetVolumeFallback); + AudioWorldOutput_GetAudioOutputObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5039104745698775655UL, AudioWorldOutput_GetAudioOutputObjectFallback); + AudioWorldOutput_GetPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11543962302843474327UL, AudioWorldOutput_GetPositionFallback); + AudioWorldOutput_SetPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2896996352282351906UL, AudioWorldOutput_SetPositionFallback); + BaseObject_GetRemoteID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13504129310031776629UL, BaseObject_GetRemoteIDFallback); + BaseObject_IsRemote = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 514365565196881175UL, BaseObject_IsRemoteFallback); + Blip_GetGameID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8435480280567473939UL, Blip_GetGameIDFallback); + Blip_IsStreamedIn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8250500458833990167UL, Blip_IsStreamedInFallback); + Checkpoint_GetGameID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10807368225937279665UL, Checkpoint_GetGameIDFallback); + Checkpoint_IsStreamedIn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11169437175796680635UL, Checkpoint_IsStreamedInFallback); Core_AddGXTText = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15861482869617048160UL, Core_AddGXTTextFallback); Core_AreGameControlsEnabled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 332214446285856938UL, Core_AreGameControlsEnabledFallback); Core_AreRmlControlsEnabled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6617672605820539119UL, Core_AreRmlControlsEnabledFallback); @@ -2904,24 +3608,40 @@ public ClientLibrary(Dictionary funcTable) Core_BeginScaleformMovieMethodMinimap = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16061113947833308071UL, Core_BeginScaleformMovieMethodMinimapFallback); Core_ClearFocusOverride = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8870045277295379001UL, Core_ClearFocusOverrideFallback); Core_ClearPedProp = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13130998754672555937UL, Core_ClearPedPropFallback); - Core_Client_CreateAreaBlip = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3880165778463767712UL, Core_Client_CreateAreaBlipFallback); - Core_Client_CreatePointBlip = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12509760085300417189UL, Core_Client_CreatePointBlipFallback); - Core_Client_CreateRadiusBlip = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5919598783936543582UL, Core_Client_CreateRadiusBlipFallback); + Core_Client_CreateAreaBlip = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16151961653066348551UL, Core_Client_CreateAreaBlipFallback); + Core_Client_CreatePointBlip = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1099162925802423302UL, Core_Client_CreatePointBlipFallback); + Core_Client_CreateRadiusBlip = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8390302372109372413UL, Core_Client_CreateRadiusBlipFallback); Core_Client_FileExists = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2755966381047025099UL, Core_Client_FileExistsFallback); Core_Client_FileRead = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6889820282703247958UL, Core_Client_FileReadFallback); Core_CopyToClipboard = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5818638619878077112UL, Core_CopyToClipboardFallback); - Core_CreateAudio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5780986328246794940UL, Core_CreateAudioFallback); - Core_CreateCheckpoint = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2492195885079699607UL, Core_CreateCheckpointFallback); - Core_CreateHttpClient = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11976854228488201775UL, Core_CreateHttpClientFallback); - Core_CreateObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6956786573334343028UL, Core_CreateObjectFallback); - Core_CreateRmlDocument = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17026352200116999522UL, Core_CreateRmlDocumentFallback); - Core_CreateWebsocketClient = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16866610409519012926UL, Core_CreateWebsocketClientFallback); - Core_CreateWebView = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9951699089018536554UL, Core_CreateWebViewFallback); - Core_CreateWebView3D = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15753124417806259319UL, Core_CreateWebView3DFallback); + Core_CreateAttachedOutput = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 406446736374670243UL, Core_CreateAttachedOutputFallback); + Core_CreateAudio = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3650111499085703859UL, Core_CreateAudioFallback); + Core_CreateAudioFilter = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7795522738595486135UL, Core_CreateAudioFilterFallback); + Core_CreateCheckpoint = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11816472825532824083UL, Core_CreateCheckpointFallback); + Core_CreateFrontendOutput = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12349543411758954921UL, Core_CreateFrontendOutputFallback); + Core_CreateHttpClient = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18346481764601280220UL, Core_CreateHttpClientFallback); + Core_CreateLocalObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17081407259156928234UL, Core_CreateLocalObjectFallback); + Core_CreateLocalPed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17592230005859506401UL, Core_CreateLocalPedFallback); + Core_CreateLocalVehicle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12946643233919435339UL, Core_CreateLocalVehicleFallback); + Core_CreateMarker_Client = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12170330479058831942UL, Core_CreateMarker_ClientFallback); + Core_CreateRmlDocument = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6616548211992387591UL, Core_CreateRmlDocumentFallback); + Core_CreateTextLabel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2377406775150972557UL, Core_CreateTextLabelFallback); + Core_CreateWeaponObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12879481534425557688UL, Core_CreateWeaponObjectFallback); + Core_CreateWebsocketClient = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10887342887795907175UL, Core_CreateWebsocketClientFallback); + Core_CreateWebView = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10630250283173809055UL, Core_CreateWebViewFallback); + Core_CreateWebView3D = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7487980836838238402UL, Core_CreateWebView3DFallback); + Core_CreateWorldOutput = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6629692657585029880UL, Core_CreateWorldOutputFallback); Core_DeallocDiscordUser = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1212339219242517554UL, Core_DeallocDiscordUserFallback); Core_Discord_GetOAuth2Token = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11971296438427190394UL, Core_Discord_GetOAuth2TokenFallback); Core_DoesConfigFlagExist = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2905154853369701790UL, Core_DoesConfigFlagExistFallback); + Core_GetAllWeaponData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17040861123821249134UL, Core_GetAllWeaponDataFallback); + Core_GetAllWeaponDataCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10675436726413059015UL, Core_GetAllWeaponDataCountFallback); + Core_GetAudioCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18419578908798121866UL, Core_GetAudioCountFallback); + Core_GetAudioOutputs = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17324382311220306947UL, Core_GetAudioOutputsFallback); + Core_GetAudios = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16659676766335434349UL, Core_GetAudiosFallback); + Core_GetBlipByGameID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18078473099666119995UL, Core_GetBlipByGameIDFallback); Core_GetCamPos = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13815274607564352429UL, Core_GetCamPosFallback); + Core_GetCheckpointByGameID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17443733140958323295UL, Core_GetCheckpointByGameIDFallback); Core_GetClientPath = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10032718746164771334UL, Core_GetClientPathFallback); Core_GetConfigFlag = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9388016697579829930UL, Core_GetConfigFlagFallback); Core_GetCursorPos = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15134150969197995835UL, Core_GetCursorPosFallback); @@ -2935,9 +3655,11 @@ public ClientLibrary(Dictionary funcTable) Core_GetLicenseHash = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10784782962609535909UL, Core_GetLicenseHashFallback); Core_GetLocale = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6468969374274395248UL, Core_GetLocaleFallback); Core_GetLocalMeta = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15640072761507866309UL, Core_GetLocalMetaFallback); + Core_GetLocalObjects = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15584342624887125948UL, Core_GetLocalObjectsFallback); + Core_GetLocalPeds = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11791992986566737666UL, Core_GetLocalPedsFallback); + Core_GetLocalVehicles = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14867651012864451746UL, Core_GetLocalVehiclesFallback); Core_GetMapZoomDataByAlias = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2945049114999400896UL, Core_GetMapZoomDataByAliasFallback); Core_GetMsPerGameMinute = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12789007219848936500UL, Core_GetMsPerGameMinuteFallback); - Core_GetObjects = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12780127882459247882UL, Core_GetObjectsFallback); Core_GetPedBonePos = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9678094278922411472UL, Core_GetPedBonePosFallback); Core_GetPermissionState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6070013237365852957UL, Core_GetPermissionStateFallback); Core_GetPing = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17183361268059997356UL, Core_GetPingFallback); @@ -2958,21 +3680,29 @@ public ClientLibrary(Dictionary funcTable) Core_GetTotalPacketsLost = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6512224235646012609UL, Core_GetTotalPacketsLostFallback); Core_GetTotalPacketsSent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16154816553672886942UL, Core_GetTotalPacketsSentFallback); Core_GetVoiceActivationKey = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2249875648683273533UL, Core_GetVoiceActivationKeyFallback); + Core_GetVoiceActivationLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14311678038566163090UL, Core_GetVoiceActivationLevelFallback); Core_GetVoiceInputMuted = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14294729290243559040UL, Core_GetVoiceInputMutedFallback); - Core_GetWorldObjects = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18414288505939983172UL, Core_GetWorldObjectsFallback); + Core_GetWeaponObjects = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18342201422886872407UL, Core_GetWeaponObjectsFallback); + Core_GetWebViewCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5500487167100623739UL, Core_GetWebViewCountFallback); + Core_GetWebViews = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8710938014357466262UL, Core_GetWebViewsFallback); + Core_GetWorldObjectByScriptID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13654803678312450436UL, Core_GetWorldObjectByScriptIDFallback); + Core_GetWorldObjects = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13649212798224209529UL, Core_GetWorldObjectsFallback); Core_HasLocalMeta = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9239396081375157170UL, Core_HasLocalMetaFallback); Core_IsCamFrozen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11416637200173234902UL, Core_IsCamFrozenFallback); Core_IsConsoleOpen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 853721528952962006UL, Core_IsConsoleOpenFallback); Core_IsCursorVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5868453964529506584UL, Core_IsCursorVisibleFallback); Core_IsFocusOverriden = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18011869490521432431UL, Core_IsFocusOverridenFallback); + Core_IsFullScreen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12216300415283975408UL, Core_IsFullScreenFallback); Core_IsGameFocused = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5897797979124897124UL, Core_IsGameFocusedFallback); Core_IsInStreamerMode = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11592577439059234246UL, Core_IsInStreamerModeFallback); Core_IsKeyDown = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 95870224445067735UL, Core_IsKeyDownFallback); Core_IsKeyToggled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5811391940054436855UL, Core_IsKeyToggledFallback); Core_IsMenuOpened = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6801040455860092307UL, Core_IsMenuOpenedFallback); + Core_IsNoiseSuppressionEnabled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3713723746528521201UL, Core_IsNoiseSuppressionEnabledFallback); Core_IsPointOnScreen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9053921873104901604UL, Core_IsPointOnScreenFallback); Core_IsTextureExistInArchetype = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5487028108265672799UL, Core_IsTextureExistInArchetypeFallback); Core_IsVoiceActivityInputEnabled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4433142925114007365UL, Core_IsVoiceActivityInputEnabledFallback); + Core_IsWebViewGpuAccelerationActive = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4577141218762914496UL, Core_IsWebViewGpuAccelerationActiveFallback); Core_LoadDefaultIpls = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17184217455720907957UL, Core_LoadDefaultIplsFallback); Core_LoadModel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12272171669941913364UL, Core_LoadModelFallback); Core_LoadModelAsync = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9589250181503294824UL, Core_LoadModelAsyncFallback); @@ -2980,11 +3710,13 @@ public ClientLibrary(Dictionary funcTable) Core_LoadYtyp = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9006970651286241104UL, Core_LoadYtypFallback); Core_OverrideFocusEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11543552066785919265UL, Core_OverrideFocusEntityFallback); Core_OverrideFocusPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15255809094076439747UL, Core_OverrideFocusPositionFallback); + Core_RegisterFont = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 84574382701044016UL, Core_RegisterFontFallback); Core_RemoveGXTText = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2950682702415179672UL, Core_RemoveGXTTextFallback); Core_RemoveIpl = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3186817815537256556UL, Core_RemoveIplFallback); Core_RequestIpl = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6993510006268976715UL, Core_RequestIplFallback); Core_ResetAllMapZoomData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 664982279299386907UL, Core_ResetAllMapZoomDataFallback); Core_ResetMapZoomData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12948735896839739671UL, Core_ResetMapZoomDataFallback); + Core_ResetMinimapComponentPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7361681817946843007UL, Core_ResetMinimapComponentPositionFallback); Core_ResetStat = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5460369299538905850UL, Core_ResetStatFallback); Core_ScreenToWorld = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15701563360488661578UL, Core_ScreenToWorldFallback); Core_SetCamFrozen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2415100583194488559UL, Core_SetCamFrozenFallback); @@ -3005,39 +3737,42 @@ public ClientLibrary(Dictionary funcTable) Core_SetStatUInt32 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12531864998990370835UL, Core_SetStatUInt32Fallback); Core_SetStatUInt64 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1883057044483778445UL, Core_SetStatUInt64Fallback); Core_SetStatUInt8 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15051718600062446893UL, Core_SetStatUInt8Fallback); + Core_SetVoiceActivationLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6366517826241888414UL, Core_SetVoiceActivationLevelFallback); Core_SetVoiceInputMuted = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7814638701493567231UL, Core_SetVoiceInputMutedFallback); Core_SetWatermarkPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7934747004301392615UL, Core_SetWatermarkPositionFallback); Core_SetWeatherCycle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16585286735482336540UL, Core_SetWeatherCycleFallback); Core_SetWeatherSyncActive = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13045279996168078519UL, Core_SetWeatherSyncActiveFallback); - Core_ShowCursor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 116504442046363049UL, Core_ShowCursorFallback); + Core_ShowCursor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6945887845837401088UL, Core_ShowCursorFallback); Core_StringToSHA256 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12026527936481267742UL, Core_StringToSHA256Fallback); Core_TakeScreenshot = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3114386706331256143UL, Core_TakeScreenshotFallback); Core_TakeScreenshotGameOnly = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9005944037868881587UL, Core_TakeScreenshotGameOnlyFallback); Core_ToggleGameControls = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12189407258528336173UL, Core_ToggleGameControlsFallback); + Core_ToggleNoiseSuppression = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10764582670827141584UL, Core_ToggleNoiseSuppressionFallback); Core_ToggleRmlControls = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6777794076841720469UL, Core_ToggleRmlControlsFallback); + Core_ToggleVoiceActivation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4058610827769877777UL, Core_ToggleVoiceActivationFallback); Core_ToggleVoiceControls = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9233489201974974422UL, Core_ToggleVoiceControlsFallback); + Core_ToggleVoiceInput = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1817218062913323235UL, Core_ToggleVoiceInputFallback); Core_TriggerServerEvent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4092140335578989631UL, Core_TriggerServerEventFallback); + Core_TriggerServerEventUnreliable = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 718150788563346996UL, Core_TriggerServerEventUnreliableFallback); + Core_TriggerServerRPCAnswer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13534687086370728367UL, Core_TriggerServerRPCAnswerFallback); + Core_TriggerServerRPCEvent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5920144219377072122UL, Core_TriggerServerRPCEventFallback); Core_TriggerWebViewEvent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3268039739443301173UL, Core_TriggerWebViewEventFallback); Core_UnloadYtyp = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17753040748478874447UL, Core_UnloadYtypFallback); Core_WorldToScreen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5389506501733691988UL, Core_WorldToScreenFallback); - Entity_GetScriptID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12438992660215991189UL, Entity_GetScriptIDFallback); + CustomTexture_GetBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4168880360490742954UL, CustomTexture_GetBaseObjectFallback); + CustomTexture_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12755828446518747613UL, CustomTexture_GetIDFallback); + Entity_GetScriptID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11915813456855488252UL, Entity_GetScriptIDFallback); Event_SetAnyResourceErrorDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14079997901958077241UL, Event_SetAnyResourceErrorDelegateFallback); Event_SetAnyResourceStartDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18259284189737259993UL, Event_SetAnyResourceStartDelegateFallback); Event_SetAnyResourceStopDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13707820718504089625UL, Event_SetAnyResourceStopDelegateFallback); + Event_SetAudioEventDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4093947101499582977UL, Event_SetAudioEventDelegateFallback); + Event_SetCheckpointDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9134925632861949057UL, Event_SetCheckpointDelegateFallback); Event_SetClientEventDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8284770729125093177UL, Event_SetClientEventDelegateFallback); + Event_SetColShapeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1859619355480397883UL, Event_SetColShapeDelegateFallback); Event_SetConnectionCompleteDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12310767706503758111UL, Event_SetConnectionCompleteDelegateFallback); Event_SetConsoleCommandDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11736526557039894433UL, Event_SetConsoleCommandDelegateFallback); - Event_SetCreateAudioDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4811795149898118457UL, Event_SetCreateAudioDelegateFallback); - Event_SetCreateBlipDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2383857916893001375UL, Event_SetCreateBlipDelegateFallback); - Event_SetCreateCheckpointDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9953884864166102937UL, Event_SetCreateCheckpointDelegateFallback); - Event_SetCreateHttpClientDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8661010150764781279UL, Event_SetCreateHttpClientDelegateFallback); - Event_SetCreateObjectDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2444689738097081331UL, Event_SetCreateObjectDelegateFallback); - Event_SetCreatePlayerDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5093871054905289947UL, Event_SetCreatePlayerDelegateFallback); - Event_SetCreateRmlDocumentDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8342662956272520745UL, Event_SetCreateRmlDocumentDelegateFallback); - Event_SetCreateRmlElementDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16534909662450648211UL, Event_SetCreateRmlElementDelegateFallback); - Event_SetCreateVehicleDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15470395866513689485UL, Event_SetCreateVehicleDelegateFallback); - Event_SetCreateWebSocketClientDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 966125284939189405UL, Event_SetCreateWebSocketClientDelegateFallback); - Event_SetCreateWebViewDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4915496630983736761UL, Event_SetCreateWebViewDelegateFallback); + Event_SetCreateBaseObjectDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3079581392961204745UL, Event_SetCreateBaseObjectDelegateFallback); + Event_SetEntityHitEntityDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13265843651210135853UL, Event_SetEntityHitEntityDelegateFallback); Event_SetGameEntityCreateDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8846162864874241135UL, Event_SetGameEntityCreateDelegateFallback); Event_SetGameEntityDestroyDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16291703028607344173UL, Event_SetGameEntityDestroyDelegateFallback); Event_SetGlobalMetaChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 263634197021329745UL, Event_SetGlobalMetaChangeDelegateFallback); @@ -3045,7 +3780,9 @@ public ClientLibrary(Dictionary funcTable) Event_SetKeyDownDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9792688891158114141UL, Event_SetKeyDownDelegateFallback); Event_SetKeyUpDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13013609938360144345UL, Event_SetKeyUpDelegateFallback); Event_SetLocalMetaChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1555813148561817401UL, Event_SetLocalMetaChangeDelegateFallback); + Event_SetMetaChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10052271841742065911UL, Event_SetMetaChangeDelegateFallback); Event_SetNetOwnerChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15651483423859541657UL, Event_SetNetOwnerChangeDelegateFallback); + Event_SetPlayerBulletHitDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17879780001793566297UL, Event_SetPlayerBulletHitDelegateFallback); Event_SetPlayerChangeAnimationDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1013031841840963141UL, Event_SetPlayerChangeAnimationDelegateFallback); Event_SetPlayerChangeInteriorDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10641081887455190199UL, Event_SetPlayerChangeInteriorDelegateFallback); Event_SetPlayerChangeVehicleSeatDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2849447755791784577UL, Event_SetPlayerChangeVehicleSeatDelegateFallback); @@ -3053,31 +3790,32 @@ public ClientLibrary(Dictionary funcTable) Event_SetPlayerEnterVehicleDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16259534399403863387UL, Event_SetPlayerEnterVehicleDelegateFallback); Event_SetPlayerLeaveVehicleDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10354256863799375649UL, Event_SetPlayerLeaveVehicleDelegateFallback); Event_SetPlayerSpawnDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2502988276907442605UL, Event_SetPlayerSpawnDelegateFallback); + Event_SetPlayerStartEnterVehicleDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13116291416409087561UL, Event_SetPlayerStartEnterVehicleDelegateFallback); + Event_SetPlayerStartLeaveVehicleDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11452532921187005081UL, Event_SetPlayerStartLeaveVehicleDelegateFallback); Event_SetPlayerWeaponChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5096554163307275927UL, Event_SetPlayerWeaponChangeDelegateFallback); Event_SetPlayerWeaponShootDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12142428092035142689UL, Event_SetPlayerWeaponShootDelegateFallback); - Event_SetRemoveAudioDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1751684292115242169UL, Event_SetRemoveAudioDelegateFallback); - Event_SetRemoveBlipDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9369264467503520159UL, Event_SetRemoveBlipDelegateFallback); - Event_SetRemoveCheckpointDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7682690007362552345UL, Event_SetRemoveCheckpointDelegateFallback); - Event_SetRemoveEntityDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 729233064584144555UL, Event_SetRemoveEntityDelegateFallback); - Event_SetRemoveHttpClientDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12344875743007094983UL, Event_SetRemoveHttpClientDelegateFallback); - Event_SetRemoveObjectDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12310396300337329363UL, Event_SetRemoveObjectDelegateFallback); - Event_SetRemovePlayerDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13760190650054167487UL, Event_SetRemovePlayerDelegateFallback); - Event_SetRemoveRmlDocumentDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6728247303976044345UL, Event_SetRemoveRmlDocumentDelegateFallback); - Event_SetRemoveRmlElementDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5264189053177093943UL, Event_SetRemoveRmlElementDelegateFallback); - Event_SetRemoveVehicleDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10892515836379989057UL, Event_SetRemoveVehicleDelegateFallback); - Event_SetRemoveWebSocketClientDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13939862339008448305UL, Event_SetRemoveWebSocketClientDelegateFallback); - Event_SetRemoveWebViewDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16066040165060624257UL, Event_SetRemoveWebViewDelegateFallback); + Event_SetRemoveBaseObjectDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8121512912272945641UL, Event_SetRemoveBaseObjectDelegateFallback); Event_SetRmlEventDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1513529985252499227UL, Event_SetRmlEventDelegateFallback); + Event_SetScriptRPCAnswerDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16517358055592453121UL, Event_SetScriptRPCAnswerDelegateFallback); + Event_SetScriptRPCDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3704718433472801409UL, Event_SetScriptRPCDelegateFallback); Event_SetServerEventDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5521055548998327457UL, Event_SetServerEventDelegateFallback); Event_SetStreamSyncedMetaChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8576321635222028243UL, Event_SetStreamSyncedMetaChangeDelegateFallback); Event_SetSyncedMetaChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12745100726667735891UL, Event_SetSyncedMetaChangeDelegateFallback); Event_SetTaskChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11607888672861240667UL, Event_SetTaskChangeDelegateFallback); Event_SetTickDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6297655192007422547UL, Event_SetTickDelegateFallback); + Event_SetVoiceConnectionDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15217894888506700489UL, Event_SetVoiceConnectionDelegateFallback); Event_SetWeaponDamageDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3915432127661349363UL, Event_SetWeaponDamageDelegateFallback); Event_SetWebSocketEventDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1607737297081958503UL, Event_SetWebSocketEventDelegateFallback); Event_SetWebViewEventDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12568421593610200155UL, Event_SetWebViewEventDelegateFallback); Event_SetWindowFocusChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3313131202173863273UL, Event_SetWindowFocusChangeDelegateFallback); Event_SetWindowResolutionChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15282055500069881033UL, Event_SetWindowResolutionChangeDelegateFallback); + Event_SetWorldObjectPositionChangeDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8085309467174887077UL, Event_SetWorldObjectPositionChangeDelegateFallback); + Event_SetWorldObjectStreamInDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12189198227473694261UL, Event_SetWorldObjectStreamInDelegateFallback); + Event_SetWorldObjectStreamOutDelegate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1153552198753902363UL, Event_SetWorldObjectStreamOutDelegateFallback); + Font_GetBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11379805599200786692UL, Font_GetBaseObjectFallback); + Font_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1376680539423762501UL, Font_GetIDFallback); + FreeLocalPedArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11757712716565834838UL, FreeLocalPedArrayFallback); + FreeLocalVehicleArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11332368469424147882UL, FreeLocalVehicleArrayFallback); FreeRmlElementArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14086618333811829142UL, FreeRmlElementArrayFallback); GetNativeFuncTable = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15955613981878964089UL, GetNativeFuncTableFallback); Handling_GetAcceleration = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13640121750592766571UL, Handling_GetAccelerationFallback); @@ -3223,9 +3961,48 @@ public ClientLibrary(Dictionary funcTable) HttpClient_Put = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8280976854604120523UL, HttpClient_PutFallback); HttpClient_SetExtraHeader = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4939806300942583161UL, HttpClient_SetExtraHeaderFallback); HttpClient_Trace = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12260251650657662947UL, HttpClient_TraceFallback); + LocalObject_ActivatePhysics = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12723661681621738686UL, LocalObject_ActivatePhysicsFallback); + LocalObject_AttachToEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12557963046901634258UL, LocalObject_AttachToEntityFallback); + LocalObject_AttachToEntity_ScriptId = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8482470825689546294UL, LocalObject_AttachToEntity_ScriptIdFallback); + LocalObject_Detach = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6719251755255314299UL, LocalObject_DetachFallback); + LocalObject_GetComponentTintIndex = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15889022995396061331UL, LocalObject_GetComponentTintIndexFallback); + LocalObject_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15103894139399401453UL, LocalObject_GetIDFallback); + LocalObject_GetObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 872653086987800810UL, LocalObject_GetObjectFallback); + LocalObject_GetStreamingDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12256606847122365951UL, LocalObject_GetStreamingDistanceFallback); + LocalObject_GetTintIndex = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9339331434227951252UL, LocalObject_GetTintIndexFallback); + LocalObject_GiveComponent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12513455835140389576UL, LocalObject_GiveComponentFallback); + LocalObject_HasGravity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11443047463427446095UL, LocalObject_HasGravityFallback); + LocalObject_IsCollisionEnabled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3165246172650183114UL, LocalObject_IsCollisionEnabledFallback); + LocalObject_IsDynamic = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7907286528640599538UL, LocalObject_IsDynamicFallback); + LocalObject_IsStreamedIn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1584944529444386659UL, LocalObject_IsStreamedInFallback); + LocalObject_IsVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14654741496597401747UL, LocalObject_IsVisibleFallback); + LocalObject_IsWeaponObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12345662315002805260UL, LocalObject_IsWeaponObjectFallback); + LocalObject_IsWorldObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7394916160952933292UL, LocalObject_IsWorldObjectFallback); + LocalObject_PlaceOnGroundProperly = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8545084117216183056UL, LocalObject_PlaceOnGroundProperlyFallback); + LocalObject_RemoveComponent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16119443170724775167UL, LocalObject_RemoveComponentFallback); + LocalObject_ResetAlpha = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3677171703927691173UL, LocalObject_ResetAlphaFallback); + LocalObject_SetAlpha = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 166516203857301588UL, LocalObject_SetAlphaFallback); + LocalObject_SetComponentTintIndex = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 100929764990713526UL, LocalObject_SetComponentTintIndexFallback); + LocalObject_SetLodDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7262408056056070877UL, LocalObject_SetLodDistanceFallback); + LocalObject_SetModel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6329494587583411264UL, LocalObject_SetModelFallback); + LocalObject_SetPositionFrozen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17999750602407838865UL, LocalObject_SetPositionFrozenFallback); + LocalObject_SetTextureVariation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8464640698672713728UL, LocalObject_SetTextureVariationFallback); + LocalObject_SetTintIndex = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7475628191525488203UL, LocalObject_SetTintIndexFallback); + LocalObject_SetVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18073398822109295786UL, LocalObject_SetVisibleFallback); + LocalObject_ToggleCollision = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14005061540823878336UL, LocalObject_ToggleCollisionFallback); + LocalObject_ToggleGravity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7290080233331886690UL, LocalObject_ToggleGravityFallback); + LocalObject_UsesStreaming = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16522853304586326345UL, LocalObject_UsesStreamingFallback); + LocalPed_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15318682494636002455UL, LocalPed_GetIDFallback); + LocalPed_GetPed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17335110507181313350UL, LocalPed_GetPedFallback); + LocalPed_GetScriptID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11244098567921137770UL, LocalPed_GetScriptIDFallback); + LocalPed_GetStreamingDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7484443958305306909UL, LocalPed_GetStreamingDistanceFallback); + LocalPed_IsStreamedIn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17855389711155670583UL, LocalPed_IsStreamedInFallback); + LocalPed_IsVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16733779175982679523UL, LocalPed_IsVisibleFallback); + LocalPed_SetModel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13173859291575014538UL, LocalPed_SetModelFallback); + LocalPed_SetVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7437063190905143438UL, LocalPed_SetVisibleFallback); LocalPlayer_GetCurrentAmmo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18043294013722431113UL, LocalPlayer_GetCurrentAmmoFallback); LocalPlayer_GetCurrentWeaponHash = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10510537453292567897UL, LocalPlayer_GetCurrentWeaponHashFallback); - LocalPlayer_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11619807947618676643UL, LocalPlayer_GetIDFallback); + LocalPlayer_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15045886114080681573UL, LocalPlayer_GetIDFallback); LocalPlayer_GetMaxStamina = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5236676524679058301UL, LocalPlayer_GetMaxStaminaFallback); LocalPlayer_GetPlayer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12486927465188645710UL, LocalPlayer_GetPlayerFallback); LocalPlayer_GetStamina = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13452859435150190491UL, LocalPlayer_GetStaminaFallback); @@ -3238,8 +4015,17 @@ public ClientLibrary(Dictionary funcTable) LocalStorage_Clear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5882434795069919583UL, LocalStorage_ClearFallback); LocalStorage_DeleteKey = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9477816035737488937UL, LocalStorage_DeleteKeyFallback); LocalStorage_GetKey = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13895693989408516536UL, LocalStorage_GetKeyFallback); + LocalStorage_Has = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4134515557055194984UL, LocalStorage_HasFallback); LocalStorage_Save = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15681738723671545643UL, LocalStorage_SaveFallback); LocalStorage_SetKey = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9720785834619501975UL, LocalStorage_SetKeyFallback); + LocalVehicle_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15310181097891449037UL, LocalVehicle_GetIDFallback); + LocalVehicle_GetScriptID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1209681771302240080UL, LocalVehicle_GetScriptIDFallback); + LocalVehicle_GetStreamingDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2095032898040775753UL, LocalVehicle_GetStreamingDistanceFallback); + LocalVehicle_GetVehicle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17482925511851740242UL, LocalVehicle_GetVehicleFallback); + LocalVehicle_IsStreamedIn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15389369330489891823UL, LocalVehicle_IsStreamedInFallback); + LocalVehicle_IsVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14953680556543513209UL, LocalVehicle_IsVisibleFallback); + LocalVehicle_SetModel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3877958727109185074UL, LocalVehicle_SetModelFallback); + LocalVehicle_SetVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1219467271521885458UL, LocalVehicle_SetVisibleFallback); MapData_GetFScrollSpeed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5153918154812676518UL, MapData_GetFScrollSpeedFallback); MapData_GetFZoomScale = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9310461554478426287UL, MapData_GetFZoomScaleFallback); MapData_GetFZoomSpeed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13681270171346140740UL, MapData_GetFZoomSpeedFallback); @@ -3250,19 +4036,23 @@ public ClientLibrary(Dictionary funcTable) MapData_SetFZoomSpeed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2665336952407925027UL, MapData_SetFZoomSpeedFallback); MapData_SetVTilesX = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7101748004939864958UL, MapData_SetVTilesXFallback); MapData_SetVTilesY = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4990605972443241597UL, MapData_SetVTilesYFallback); - Object_IsRemote = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9871487800950929995UL, Object_IsRemoteFallback); + Marker_IsStreamedIn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18075714963587758699UL, Marker_IsStreamedInFallback); + Player_AddFilter = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15133858287819310418UL, Player_AddFilterFallback); + Player_GetFilter = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3531465307052554310UL, Player_GetFilterFallback); Player_GetLocal = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4153837117751475501UL, Player_GetLocalFallback); Player_GetMicLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15449156962697427469UL, Player_GetMicLevelFallback); Player_GetNonSpatialVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3333598534924196965UL, Player_GetNonSpatialVolumeFallback); Player_GetSpatialVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1924883508304421034UL, Player_GetSpatialVolumeFallback); + Player_GetTaskData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15465454396501521389UL, Player_GetTaskDataFallback); Player_IsTalking = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2228995248668686637UL, Player_IsTalkingFallback); + Player_RemoveFilter = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14799984366573861130UL, Player_RemoveFilterFallback); Player_SetNonSpatialVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13836779891982146248UL, Player_SetNonSpatialVolumeFallback); Player_SetSpatialVolume = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2220752195777140849UL, Player_SetSpatialVolumeFallback); - Resource_FileExists = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7333169666764702095UL, Resource_FileExistsFallback); + Resource_FileExists = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5553401603064078474UL, Resource_FileExistsFallback); Resource_GetFile = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6999624240602148408UL, Resource_GetFileFallback); Resource_GetLocalStorage = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9724925408750062794UL, Resource_GetLocalStorageFallback); - RmlDocument_CreateElement = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8394251270352122332UL, RmlDocument_CreateElementFallback); - RmlDocument_CreateTextNode = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7438392858638256497UL, RmlDocument_CreateTextNodeFallback); + RmlDocument_CreateElement = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6982376684195952531UL, RmlDocument_CreateElementFallback); + RmlDocument_CreateTextNode = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16930557952529078002UL, RmlDocument_CreateTextNodeFallback); RmlDocument_GetBody = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3163186035077937721UL, RmlDocument_GetBodyFallback); RmlDocument_GetRmlElement = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13477729632222101190UL, RmlDocument_GetRmlElementFallback); RmlDocument_GetSourceUrl = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5192820878301116090UL, RmlDocument_GetSourceUrlFallback); @@ -3300,7 +4090,7 @@ public ClientLibrary(Dictionary funcTable) RmlElement_GetElementsByTagName = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 13630662056285368499UL, RmlElement_GetElementsByTagNameFallback); RmlElement_GetFirstChild = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 6553458957728450615UL, RmlElement_GetFirstChildFallback); RmlElement_GetFocusedElement = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 13041364075361654452UL, RmlElement_GetFocusedElementFallback); - RmlElement_GetId = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 1589340925639809505UL, RmlElement_GetIdFallback); + RmlElement_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15720568072626536237UL, RmlElement_GetIDFallback); RmlElement_GetInnerRml = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 5158963891260214371UL, RmlElement_GetInnerRmlFallback); RmlElement_GetLastChild = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 17352588287218438411UL, RmlElement_GetLastChildFallback); RmlElement_GetLocalProperty = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 8073218222026259545UL, RmlElement_GetLocalPropertyFallback); @@ -3316,6 +4106,7 @@ public ClientLibrary(Dictionary funcTable) RmlElement_GetPropertyAbsoluteValue = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 1472783352164812952UL, RmlElement_GetPropertyAbsoluteValueFallback); RmlElement_GetPseudoClassList = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 5954717048838062752UL, RmlElement_GetPseudoClassListFallback); RmlElement_GetRelativeOffset = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 11910576358229328046UL, RmlElement_GetRelativeOffsetFallback); + RmlElement_GetRmlId = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 753581056598568298UL, RmlElement_GetRmlIdFallback); RmlElement_GetScrollHeight = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 9108383606206669496UL, RmlElement_GetScrollHeightFallback); RmlElement_GetScrollLeft = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 18439136340342378146UL, RmlElement_GetScrollLeftFallback); RmlElement_GetScrollTop = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 12769945018436172868UL, RmlElement_GetScrollTopFallback); @@ -3342,12 +4133,13 @@ public ClientLibrary(Dictionary funcTable) RmlElement_ReplaceChild = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8859753723526739098UL, RmlElement_ReplaceChildFallback); RmlElement_ScrollIntoView = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 9747040310019678598UL, RmlElement_ScrollIntoViewFallback); RmlElement_SetAttribute = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 9715739411149823680UL, RmlElement_SetAttributeFallback); - RmlElement_SetId = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 7350120607458974702UL, RmlElement_SetIdFallback); RmlElement_SetInnerRml = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14124113203556569364UL, RmlElement_SetInnerRmlFallback); RmlElement_SetOffset = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 17706736457461964530UL, RmlElement_SetOffsetFallback); RmlElement_SetProperty = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 909974105310409725UL, RmlElement_SetPropertyFallback); + RmlElement_SetRmlID = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 9009195862305249761UL, RmlElement_SetRmlIDFallback); RmlElement_SetScrollLeft = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 6756114124150098233UL, RmlElement_SetScrollLeftFallback); RmlElement_SetScrollTop = (delegate* unmanaged[Cdecl, SuppressGCTransition]) GetUnmanagedPtr(funcTable, 14066701879635486595UL, RmlElement_SetScrollTopFallback); + TextLabel_IsStreamedIn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14015293096530462437UL, TextLabel_IsStreamedInFallback); Vehicle_GetAbsLightState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8108528114312743590UL, Vehicle_GetAbsLightStateFallback); Vehicle_GetBatteryLightState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3961634604730468941UL, Vehicle_GetBatteryLightStateFallback); Vehicle_GetCurrentGear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 940949709699448452UL, Vehicle_GetCurrentGearFallback); @@ -3363,6 +4155,7 @@ public ClientLibrary(Dictionary funcTable) Vehicle_GetPetrolLightState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16925568246751944168UL, Vehicle_GetPetrolLightStateFallback); Vehicle_GetSeatCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9710490073882806517UL, Vehicle_GetSeatCountFallback); Vehicle_GetSpeedVector = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9716002269308828916UL, Vehicle_GetSpeedVectorFallback); + Vehicle_GetSuspensionHeight = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11483934154441286346UL, Vehicle_GetSuspensionHeightFallback); Vehicle_GetWheelCamber = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13303370691287708161UL, Vehicle_GetWheelCamberFallback); Vehicle_GetWheelHeight = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1338791052731372072UL, Vehicle_GetWheelHeightFallback); Vehicle_GetWheelRimRadius = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13382865868223894905UL, Vehicle_GetWheelRimRadiusFallback); @@ -3509,6 +4302,7 @@ public ClientLibrary(Dictionary funcTable) Vehicle_SetAbsLightState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4563279063364526693UL, Vehicle_SetAbsLightStateFallback); Vehicle_SetBatteryLightState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2853437131811490624UL, Vehicle_SetBatteryLightStateFallback); Vehicle_SetCurrentGear = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12232454538624166963UL, Vehicle_SetCurrentGearFallback); + Vehicle_SetCurrentRPM = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13116174141655747505UL, Vehicle_SetCurrentRPMFallback); Vehicle_SetEngineLightState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15206512772388781191UL, Vehicle_SetEngineLightStateFallback); Vehicle_SetEngineTemperature = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 347347259026240651UL, Vehicle_SetEngineTemperatureFallback); Vehicle_SetFuelLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1181039797416690365UL, Vehicle_SetFuelLevelFallback); @@ -3517,6 +4311,8 @@ public ClientLibrary(Dictionary funcTable) Vehicle_SetOilLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5809609101227239569UL, Vehicle_SetOilLevelFallback); Vehicle_SetOilLightState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17937666064672185253UL, Vehicle_SetOilLightStateFallback); Vehicle_SetPetrolLightState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2675407408828596847UL, Vehicle_SetPetrolLightStateFallback); + Vehicle_SetSteeringAngle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10816077278672307073UL, Vehicle_SetSteeringAngleFallback); + Vehicle_SetSuspensionHeight = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18123777833957296121UL, Vehicle_SetSuspensionHeightFallback); Vehicle_SetWheelCamber = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10533830814607560700UL, Vehicle_SetWheelCamberFallback); Vehicle_SetWheelHeight = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14037400183140364255UL, Vehicle_SetWheelHeightFallback); Vehicle_SetWheelRimRadius = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3095801372631152772UL, Vehicle_SetWheelRimRadiusFallback); @@ -3524,6 +4320,7 @@ public ClientLibrary(Dictionary funcTable) Vehicle_SetWheelTyreRadius = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16643704314243471312UL, Vehicle_SetWheelTyreRadiusFallback); Vehicle_SetWheelTyreWidth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1387113924672541868UL, Vehicle_SetWheelTyreWidthFallback); Vehicle_ToggleTaxiLight = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4622127485385870092UL, Vehicle_ToggleTaxiLightFallback); + VirtualEntity_IsStreamedIn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2202580267134569763UL, VirtualEntity_IsStreamedInFallback); WeaponData_GetAccuracySpread = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12282797124788259414UL, WeaponData_GetAccuracySpreadFallback); WeaponData_GetAnimReloadRate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3872485645449808126UL, WeaponData_GetAnimReloadRateFallback); WeaponData_GetClipSize = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16005079481042718507UL, WeaponData_GetClipSizeFallback); @@ -3569,14 +4366,17 @@ public ClientLibrary(Dictionary funcTable) WebSocketClient_SetUrl = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15544145713551234810UL, WebSocketClient_SetUrlFallback); WebSocketClient_Start = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2682447818769918952UL, WebSocketClient_StartFallback); WebSocketClient_Stop = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17422281030211529492UL, WebSocketClient_StopFallback); + WebView_AddOutput = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12649439329648697664UL, WebView_AddOutputFallback); WebView_Focus = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10962546642911564188UL, WebView_FocusFallback); WebView_GetBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4337031963608011434UL, WebView_GetBaseObjectFallback); + WebView_GetOutputs = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1888082452883888026UL, WebView_GetOutputsFallback); WebView_GetPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12573435703332554258UL, WebView_GetPositionFallback); WebView_GetSize = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17498347147301708492UL, WebView_GetSizeFallback); WebView_GetUrl = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15835367058086887959UL, WebView_GetUrlFallback); WebView_IsFocused = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12966075852738562650UL, WebView_IsFocusedFallback); WebView_IsOverlay = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15699676283380308481UL, WebView_IsOverlayFallback); WebView_IsVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15260270363629504087UL, WebView_IsVisibleFallback); + WebView_RemoveOutput = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6264100412879648855UL, WebView_RemoveOutputFallback); WebView_SetExtraHeader = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 685349709143430945UL, WebView_SetExtraHeaderFallback); WebView_SetIsVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9134142886485710584UL, WebView_SetIsVisibleFallback); WebView_SetPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10974483219111968090UL, WebView_SetPositionFallback); diff --git a/api/AltV.Net.CApi/Libraries/ServerLibrary.cs b/api/AltV.Net.CApi/Libraries/ServerLibrary.cs index 9211f3d9c..8962e612c 100644 --- a/api/AltV.Net.CApi/Libraries/ServerLibrary.cs +++ b/api/AltV.Net.CApi/Libraries/ServerLibrary.cs @@ -10,52 +10,105 @@ namespace AltV.Net.CApi.Libraries public unsafe interface IServerLibrary { public bool Outdated { get; } - public delegate* unmanaged[Cdecl] Blip_AttachedTo { get; } - public delegate* unmanaged[Cdecl] Blip_IsAttached { get; } + public delegate* unmanaged[Cdecl] BaseObject_DeleteSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] BaseObject_SetMultipleSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] BaseObject_SetSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] Blip_AddTargetPlayer { get; } + public delegate* unmanaged[Cdecl] Blip_GetTargets { get; } + public delegate* unmanaged[Cdecl] Blip_RemoveTargetPlayer { get; } + public delegate* unmanaged[Cdecl] Blip_SetGlobal { get; } + public delegate* unmanaged[Cdecl] Checkpoint_DeleteStreamSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] Checkpoint_GetStreamSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] Checkpoint_HasStreamSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] Checkpoint_SetMultipleStreamSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] Checkpoint_SetStreamSyncedMetaData { get; } public delegate* unmanaged[Cdecl] ColShape_GetColShapeType { get; } public delegate* unmanaged[Cdecl] ColShape_IsPlayersOnly { get; } public delegate* unmanaged[Cdecl] ColShape_SetPlayersOnly { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_Accept { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_Decline { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetAuthToken { get; } + public delegate* unmanaged[Cdecl] ConnectionInfo_GetBaseObject { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetBranch { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetBuild { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetCdnUrl { get; } + public delegate* unmanaged[Cdecl] ConnectionInfo_GetCloudAuthResult { get; } + public delegate* unmanaged[Cdecl] ConnectionInfo_GetCloudID { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetDiscordUserID { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetHwIdExHash { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetHwIdHash { get; } + public delegate* unmanaged[Cdecl] ConnectionInfo_GetID { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetIp { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetIsDebug { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetName { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetPasswordHash { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetSocialId { get; } - public delegate* unmanaged[Cdecl] Core_CreateBlip { get; } - public delegate* unmanaged[Cdecl] Core_CreateBlipAttached { get; } - public delegate* unmanaged[Cdecl] Core_CreateCheckpoint { get; } - public delegate* unmanaged[Cdecl] Core_CreateColShapeCircle { get; } - public delegate* unmanaged[Cdecl] Core_CreateColShapeCube { get; } - public delegate* unmanaged[Cdecl] Core_CreateColShapeCylinder { get; } - public delegate* unmanaged[Cdecl] Core_CreateColShapePolygon { get; } - public delegate* unmanaged[Cdecl] Core_CreateColShapeRectangle { get; } - public delegate* unmanaged[Cdecl] Core_CreateColShapeSphere { get; } - public delegate* unmanaged[Cdecl] Core_CreateVehicle { get; } - public delegate* unmanaged[Cdecl] Core_CreateVoiceChannel { get; } + public delegate* unmanaged[Cdecl] ConnectionInfo_GetSocialName { get; } + public delegate* unmanaged[Cdecl] ConnectionInfo_GetText { get; } + public delegate* unmanaged[Cdecl] ConnectionInfo_IsAccepted { get; } + public delegate* unmanaged[Cdecl] ConnectionInfo_SetText { get; } + public delegate* unmanaged[Cdecl] Core_AddClientConfigKey { get; } + public delegate* unmanaged[Cdecl] Core_CreateBlip { get; } + public delegate* unmanaged[Cdecl] Core_CreateBlipAttached { get; } + public delegate* unmanaged[Cdecl] Core_CreateCheckpoint { get; } + public delegate* unmanaged[Cdecl] Core_CreateMarker { get; } + public delegate* unmanaged[Cdecl] Core_CreateObject { get; } + public delegate* unmanaged[Cdecl] Core_CreatePed { get; } + public delegate* unmanaged[Cdecl] Core_CreateVehicle { get; } + public delegate* unmanaged[Cdecl] Core_CreateVoiceChannel { get; } public delegate* unmanaged[Cdecl] Core_DeallocPedModelInfo { get; } public delegate* unmanaged[Cdecl] Core_DeallocVehicleModelInfo { get; } + public delegate* unmanaged[Cdecl] Core_DeallocWeaponModelInfo { get; } public delegate* unmanaged[Cdecl] Core_DeleteSyncedMetaData { get; } public delegate* unmanaged[Cdecl] Core_DestroyCheckpoint { get; } public delegate* unmanaged[Cdecl] Core_DestroyColShape { get; } public delegate* unmanaged[Cdecl] Core_DestroyVehicle { get; } public delegate* unmanaged[Cdecl] Core_DestroyVoiceChannel { get; } - public delegate* unmanaged[Cdecl] Core_GetNetTime { get; } + public delegate* unmanaged[Cdecl] Core_GetClosestEntities { get; } + public delegate* unmanaged[Cdecl] Core_GetClosestEntitiesCount { get; } + public delegate* unmanaged[Cdecl] Core_GetColShapeTickRate { get; } + public delegate* unmanaged[Cdecl] Core_GetConnectionInfos { get; } + public delegate* unmanaged[Cdecl] Core_GetEntitiesInDimension { get; } + public delegate* unmanaged[Cdecl] Core_GetEntitiesInDimensionCount { get; } + public delegate* unmanaged[Cdecl] Core_GetEntitiesInRange { get; } + public delegate* unmanaged[Cdecl] Core_GetEntitiesInRangeCount { get; } + public delegate* unmanaged[Cdecl] Core_GetLoadedVehicleModels { get; } + public delegate* unmanaged[Cdecl] Core_GetMaxStreamingObjects { get; } + public delegate* unmanaged[Cdecl] Core_GetMaxStreamingPeds { get; } + public delegate* unmanaged[Cdecl] Core_GetMaxStreamingVehicles { get; } + public delegate* unmanaged[Cdecl] Core_GetMigrationDistance { get; } + public delegate* unmanaged[Cdecl] Core_GetMigrationThreadCount { get; } + public delegate* unmanaged[Cdecl] Core_GetMigrationTickRate { get; } public delegate* unmanaged[Cdecl] Core_GetPedModelInfo { get; } public delegate* unmanaged[Cdecl] Core_GetRootDirectory { get; } public delegate* unmanaged[Cdecl] Core_GetServerConfig { get; } + public delegate* unmanaged[Cdecl] Core_GetStreamerThreadCount { get; } + public delegate* unmanaged[Cdecl] Core_GetStreamingDistance { get; } + public delegate* unmanaged[Cdecl] Core_GetStreamingTickRate { get; } + public delegate* unmanaged[Cdecl] Core_GetSyncReceiveThreadCount { get; } + public delegate* unmanaged[Cdecl] Core_GetSyncSendThreadCount { get; } public delegate* unmanaged[Cdecl] Core_GetVehicleModelInfo { get; } + public delegate* unmanaged[Cdecl] Core_GetWeaponModelByHash { get; } + public delegate* unmanaged[Cdecl] Core_HasBenefit { get; } public delegate* unmanaged[Cdecl] Core_HashPassword { get; } + public delegate* unmanaged[Cdecl] Core_RegisterMetric { get; } public delegate* unmanaged[Cdecl] Core_RestartResource { get; } + public delegate* unmanaged[Cdecl] Core_SetColShapeTickRate { get; } + public delegate* unmanaged[Cdecl] Core_SetMaxStreamingObjects { get; } + public delegate* unmanaged[Cdecl] Core_SetMaxStreamingPeds { get; } + public delegate* unmanaged[Cdecl] Core_SetMaxStreamingVehicles { get; } + public delegate* unmanaged[Cdecl] Core_SetMigrationDistance { get; } + public delegate* unmanaged[Cdecl] Core_SetMigrationThreadCount { get; } + public delegate* unmanaged[Cdecl] Core_SetMigrationTickRate { get; } public delegate* unmanaged[Cdecl] Core_SetPassword { get; } + public delegate* unmanaged[Cdecl] Core_SetStreamerThreadCount { get; } + public delegate* unmanaged[Cdecl] Core_SetStreamingDistance { get; } + public delegate* unmanaged[Cdecl] Core_SetStreamingTickRate { get; } public delegate* unmanaged[Cdecl] Core_SetSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] Core_SetSyncReceiveThreadCount { get; } + public delegate* unmanaged[Cdecl] Core_SetSyncSendThreadCount { get; } + public delegate* unmanaged[Cdecl] Core_SetVoiceExternal { get; } + public delegate* unmanaged[Cdecl] Core_SetVoiceExternalPublic { get; } public delegate* unmanaged[Cdecl] Core_SetWorldProfiler { get; } public delegate* unmanaged[Cdecl] Core_StartResource { get; } public delegate* unmanaged[Cdecl] Core_StopResource { get; } @@ -64,34 +117,67 @@ public unsafe interface IServerLibrary public delegate* unmanaged[Cdecl] Core_TriggerClientEvent { get; } public delegate* unmanaged[Cdecl] Core_TriggerClientEventForAll { get; } public delegate* unmanaged[Cdecl] Core_TriggerClientEventForSome { get; } + public delegate* unmanaged[Cdecl] Core_TriggerClientEventUnreliable { get; } + public delegate* unmanaged[Cdecl] Core_TriggerClientEventUnreliableForAll { get; } + public delegate* unmanaged[Cdecl] Core_TriggerClientEventUnreliableForSome { get; } + public delegate* unmanaged[Cdecl] Core_TriggerClientRPCAnswer { get; } + public delegate* unmanaged[Cdecl] Core_TriggerClientRPCEvent { get; } public delegate* unmanaged[Cdecl] Core_TriggerServerEvent { get; } + public delegate* unmanaged[Cdecl] Core_UnregisterMetric { get; } + public delegate* unmanaged[Cdecl] Entity_AttachToEntity { get; } + public delegate* unmanaged[Cdecl] Entity_AttachToEntity_BoneString { get; } public delegate* unmanaged[Cdecl] Entity_DeleteStreamSyncedMetaData { get; } - public delegate* unmanaged[Cdecl] Entity_DeleteSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] Entity_Detach { get; } public delegate* unmanaged[Cdecl] Entity_GetStreamed { get; } + public delegate* unmanaged[Cdecl] Entity_GetStreamingDistance { get; } + public delegate* unmanaged[Cdecl] Entity_GetTimestamp { get; } public delegate* unmanaged[Cdecl] Entity_GetVisible { get; } public delegate* unmanaged[Cdecl] Entity_HasCollision { get; } - public delegate* unmanaged[Cdecl] Entity_IsFrozen { get; } public delegate* unmanaged[Cdecl] Entity_SetCollision { get; } - public delegate* unmanaged[Cdecl] Entity_SetFrozen { get; } + public delegate* unmanaged[Cdecl] Entity_SetMultipleStreamSyncedMetaData { get; } public delegate* unmanaged[Cdecl] Entity_SetNetOwner { get; } - public delegate* unmanaged[Cdecl] Entity_SetRotation { get; } public delegate* unmanaged[Cdecl] Entity_SetStreamed { get; } + public delegate* unmanaged[Cdecl] Entity_SetStreamingDistance { get; } public delegate* unmanaged[Cdecl] Entity_SetStreamSyncedMetaData { get; } - public delegate* unmanaged[Cdecl] Entity_SetSyncedMetaData { get; } public delegate* unmanaged[Cdecl] Entity_SetVisible { get; } - public delegate* unmanaged[Cdecl] Event_PlayerBeforeConnect_Cancel { get; } public delegate* unmanaged[Cdecl] Event_WeaponDamageEvent_SetDamageValue { get; } + public delegate* unmanaged[Cdecl] Metric_Begin { get; } + public delegate* unmanaged[Cdecl] Metric_End { get; } + public delegate* unmanaged[Cdecl] Metric_GetName { get; } + public delegate* unmanaged[Cdecl] Metric_GetValue { get; } + public delegate* unmanaged[Cdecl] Metric_SetValue { get; } + public delegate* unmanaged[Cdecl] Object_ActivatePhysics { get; } + public delegate* unmanaged[Cdecl] Object_PlaceOnGroundProperly { get; } + public delegate* unmanaged[Cdecl] Object_SetAlpha { get; } + public delegate* unmanaged[Cdecl] Object_SetLodDistance { get; } + public delegate* unmanaged[Cdecl] Object_SetTextureVariation { get; } + public delegate* unmanaged[Cdecl] Ped_SetArmour { get; } + public delegate* unmanaged[Cdecl] Ped_SetCurrentWeapon { get; } + public delegate* unmanaged[Cdecl] Ped_SetHealth { get; } + public delegate* unmanaged[Cdecl] Ped_SetMaxHealth { get; } + public delegate* unmanaged[Cdecl] Player_AddDecoration { get; } public delegate* unmanaged[Cdecl] Player_AddWeaponComponent { get; } - public delegate* unmanaged[Cdecl] Player_AttachToEntity { get; } - public delegate* unmanaged[Cdecl] Player_AttachToEntity_BoneString { get; } public delegate* unmanaged[Cdecl] Player_ClearBloodDamage { get; } + public delegate* unmanaged[Cdecl] Player_ClearDecorations { get; } public delegate* unmanaged[Cdecl] Player_ClearProps { get; } + public delegate* unmanaged[Cdecl] Player_ClearTasks { get; } + public delegate* unmanaged[Cdecl] Player_DeallocAmmoFlags { get; } + public delegate* unmanaged[Cdecl] Player_DeallocVehicleModelInfo { get; } public delegate* unmanaged[Cdecl] Player_DeleteLocalMetaData { get; } public delegate* unmanaged[Cdecl] Player_Despawn { get; } - public delegate* unmanaged[Cdecl] Player_Detach { get; } + public delegate* unmanaged[Cdecl] Player_GetAmmo { get; } + public delegate* unmanaged[Cdecl] Player_GetAmmoFlags { get; } + public delegate* unmanaged[Cdecl] Player_GetAmmoMax { get; } + public delegate* unmanaged[Cdecl] Player_GetAmmoMax100 { get; } + public delegate* unmanaged[Cdecl] Player_GetAmmoMax50 { get; } + public delegate* unmanaged[Cdecl] Player_GetAmmoSpecialType { get; } public delegate* unmanaged[Cdecl] Player_GetAuthToken { get; } + public delegate* unmanaged[Cdecl] Player_GetBloodDamageBase64 { get; } public delegate* unmanaged[Cdecl] Player_GetClothes { get; } + public delegate* unmanaged[Cdecl] Player_GetCloudAuthResult { get; } + public delegate* unmanaged[Cdecl] Player_GetCloudID { get; } public delegate* unmanaged[Cdecl] Player_GetCurrentWeaponTintIndex { get; } + public delegate* unmanaged[Cdecl] Player_GetDecorations { get; } public delegate* unmanaged[Cdecl] Player_GetDiscordId { get; } public delegate* unmanaged[Cdecl] Player_GetDlcClothes { get; } public delegate* unmanaged[Cdecl] Player_GetDlcProps { get; } @@ -112,26 +198,40 @@ public unsafe interface IServerLibrary public delegate* unmanaged[Cdecl] Player_GetPing { get; } public delegate* unmanaged[Cdecl] Player_GetProps { get; } public delegate* unmanaged[Cdecl] Player_GetSendNames { get; } + public delegate* unmanaged[Cdecl] Player_GetSocialClubName { get; } public delegate* unmanaged[Cdecl] Player_GetSocialID { get; } + public delegate* unmanaged[Cdecl] Player_GetWeaponAmmo { get; } public delegate* unmanaged[Cdecl] Player_GetWeaponCount { get; } public delegate* unmanaged[Cdecl] Player_GetWeapons { get; } public delegate* unmanaged[Cdecl] Player_GetWeaponTintIndex { get; } public delegate* unmanaged[Cdecl] Player_GiveWeapon { get; } public delegate* unmanaged[Cdecl] Player_HasLocalMetaData { get; } + public delegate* unmanaged[Cdecl] Player_HasWeapon { get; } public delegate* unmanaged[Cdecl] Player_HasWeaponComponent { get; } public delegate* unmanaged[Cdecl] Player_IsConnected { get; } public delegate* unmanaged[Cdecl] Player_IsCrouching { get; } public delegate* unmanaged[Cdecl] Player_IsEntityInStreamingRange { get; } + public delegate* unmanaged[Cdecl] Player_IsNetworkOwnershipDisabled { get; } public delegate* unmanaged[Cdecl] Player_IsStealthy { get; } public delegate* unmanaged[Cdecl] Player_IsSuperJumpEnabled { get; } public delegate* unmanaged[Cdecl] Player_Kick { get; } public delegate* unmanaged[Cdecl] Player_PlayAmbientSpeech { get; } - public delegate* unmanaged[Cdecl] Player_RemoveAllWeapons { get; } + public delegate* unmanaged[Cdecl] Player_PlayAnimation { get; } + public delegate* unmanaged[Cdecl] Player_PlayScenario { get; } + public delegate* unmanaged[Cdecl] Player_RemoveAllWeapons { get; } + public delegate* unmanaged[Cdecl] Player_RemoveDecoration { get; } public delegate* unmanaged[Cdecl] Player_RemoveFaceFeature { get; } public delegate* unmanaged[Cdecl] Player_RemoveHeadOverlay { get; } public delegate* unmanaged[Cdecl] Player_RemoveWeapon { get; } public delegate* unmanaged[Cdecl] Player_RemoveWeaponComponent { get; } + public delegate* unmanaged[Cdecl] Player_SetAmmo { get; } + public delegate* unmanaged[Cdecl] Player_SetAmmoFlags { get; } + public delegate* unmanaged[Cdecl] Player_SetAmmoMax { get; } + public delegate* unmanaged[Cdecl] Player_SetAmmoMax100 { get; } + public delegate* unmanaged[Cdecl] Player_SetAmmoMax50 { get; } + public delegate* unmanaged[Cdecl] Player_SetAmmoSpecialType { get; } public delegate* unmanaged[Cdecl] Player_SetArmor { get; } + public delegate* unmanaged[Cdecl] Player_SetBloodDamageBase64 { get; } public delegate* unmanaged[Cdecl] Player_SetClothes { get; } public delegate* unmanaged[Cdecl] Player_SetCurrentWeapon { get; } public delegate* unmanaged[Cdecl] Player_SetDateTime { get; } @@ -153,20 +253,19 @@ public unsafe interface IServerLibrary public delegate* unmanaged[Cdecl] Player_SetMaxArmor { get; } public delegate* unmanaged[Cdecl] Player_SetMaxHealth { get; } public delegate* unmanaged[Cdecl] Player_SetModel { get; } + public delegate* unmanaged[Cdecl] Player_SetNetworkOwnershipDisabled { get; } public delegate* unmanaged[Cdecl] Player_SetProps { get; } public delegate* unmanaged[Cdecl] Player_SetSendNames { get; } + public delegate* unmanaged[Cdecl] Player_SetWeaponAmmo { get; } public delegate* unmanaged[Cdecl] Player_SetWeaponTintIndex { get; } public delegate* unmanaged[Cdecl] Player_SetWeather { get; } public delegate* unmanaged[Cdecl] Player_Spawn { get; } - public delegate* unmanaged[Cdecl] Resource_GetConfig { get; } public delegate* unmanaged[Cdecl] Resource_GetMain { get; } public delegate* unmanaged[Cdecl] Resource_GetPath { get; } public delegate* unmanaged[Cdecl] Resource_Start { get; } public delegate* unmanaged[Cdecl] Resource_Stop { get; } - public delegate* unmanaged[Cdecl] Vehicle_AttachToEntity { get; } - public delegate* unmanaged[Cdecl] Vehicle_AttachToEntity_BoneString { get; } - public delegate* unmanaged[Cdecl] Vehicle_Detach { get; } public delegate* unmanaged[Cdecl] Vehicle_DoesWheelHasTire { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetAccelerationLevel { get; } public delegate* unmanaged[Cdecl] Vehicle_GetAppearanceDataBase64 { get; } public delegate* unmanaged[Cdecl] Vehicle_GetArmoredWindowHealth { get; } public delegate* unmanaged[Cdecl] Vehicle_GetArmoredWindowShootCount { get; } @@ -175,6 +274,7 @@ public unsafe interface IServerLibrary public delegate* unmanaged[Cdecl] Vehicle_GetBoatAnchor { get; } public delegate* unmanaged[Cdecl] Vehicle_GetBodyAdditionalHealth { get; } public delegate* unmanaged[Cdecl] Vehicle_GetBodyHealth { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetBrakeLevel { get; } public delegate* unmanaged[Cdecl] Vehicle_GetBumperDamageLevel { get; } public delegate* unmanaged[Cdecl] Vehicle_GetCounterMeasureCount { get; } public delegate* unmanaged[Cdecl] Vehicle_GetCustomTires { get; } @@ -183,7 +283,7 @@ public unsafe interface IServerLibrary public delegate* unmanaged[Cdecl] Vehicle_GetDirtLevel { get; } public delegate* unmanaged[Cdecl] Vehicle_GetDoorState { get; } public delegate* unmanaged[Cdecl] Vehicle_GetDriver { get; } - public delegate* unmanaged[Cdecl] Vehicle_GetDriverID { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetDriverID { get; } public delegate* unmanaged[Cdecl] Vehicle_GetEngineHealth { get; } public delegate* unmanaged[Cdecl] Vehicle_GetGameStateBase64 { get; } public delegate* unmanaged[Cdecl] Vehicle_GetHeadlightColor { get; } @@ -208,6 +308,7 @@ public unsafe interface IServerLibrary public delegate* unmanaged[Cdecl] Vehicle_GetPearlColor { get; } public delegate* unmanaged[Cdecl] Vehicle_GetPrimaryColor { get; } public delegate* unmanaged[Cdecl] Vehicle_GetPrimaryColorRGB { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetQuaternion { get; } public delegate* unmanaged[Cdecl] Vehicle_GetRadioStationIndex { get; } public delegate* unmanaged[Cdecl] Vehicle_GetRearWheelVariation { get; } public delegate* unmanaged[Cdecl] Vehicle_GetRepairsCount { get; } @@ -250,6 +351,7 @@ public unsafe interface IServerLibrary public delegate* unmanaged[Cdecl] Vehicle_IsExtraOn { get; } public delegate* unmanaged[Cdecl] Vehicle_IsFlamethrowerActive { get; } public delegate* unmanaged[Cdecl] Vehicle_IsHandbrakeActive { get; } + public delegate* unmanaged[Cdecl] Vehicle_IsHornActive { get; } public delegate* unmanaged[Cdecl] Vehicle_IsLightDamaged { get; } public delegate* unmanaged[Cdecl] Vehicle_IsManualEngineControl { get; } public delegate* unmanaged[Cdecl] Vehicle_IsNeonActive { get; } @@ -311,6 +413,7 @@ public unsafe interface IServerLibrary public delegate* unmanaged[Cdecl] Vehicle_SetPetrolTankHealth { get; } public delegate* unmanaged[Cdecl] Vehicle_SetPrimaryColor { get; } public delegate* unmanaged[Cdecl] Vehicle_SetPrimaryColorRGB { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetQuaternion { get; } public delegate* unmanaged[Cdecl] Vehicle_SetRadioStationIndex { get; } public delegate* unmanaged[Cdecl] Vehicle_SetRearWheels { get; } public delegate* unmanaged[Cdecl] Vehicle_SetRocketRefuelSpeed { get; } @@ -353,74 +456,129 @@ public unsafe interface IServerLibrary public delegate* unmanaged[Cdecl] Vehicle_SetWindowOpened { get; } public delegate* unmanaged[Cdecl] Vehicle_SetWindowTint { get; } public delegate* unmanaged[Cdecl] Vehicle_ToggleExtra { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_DeleteStreamSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_SetMultipleStreamSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_SetStreamSyncedMetaData { get; } public delegate* unmanaged[Cdecl] VoiceChannel_AddPlayer { get; } - public delegate* unmanaged[Cdecl] VoiceChannel_DeleteMetaData { get; } public delegate* unmanaged[Cdecl] VoiceChannel_GetBaseObject { get; } + public delegate* unmanaged[Cdecl] VoiceChannel_GetFilter { get; } public delegate* unmanaged[Cdecl] VoiceChannel_GetMaxDistance { get; } - public delegate* unmanaged[Cdecl] VoiceChannel_GetMetaData { get; } - public delegate* unmanaged[Cdecl] VoiceChannel_HasMetaData { get; } + public delegate* unmanaged[Cdecl] VoiceChannel_GetPlayerCount { get; } + public delegate* unmanaged[Cdecl] VoiceChannel_GetPlayers { get; } + public delegate* unmanaged[Cdecl] VoiceChannel_GetPriority { get; } public delegate* unmanaged[Cdecl] VoiceChannel_HasPlayer { get; } public delegate* unmanaged[Cdecl] VoiceChannel_IsPlayerMuted { get; } public delegate* unmanaged[Cdecl] VoiceChannel_IsSpatial { get; } public delegate* unmanaged[Cdecl] VoiceChannel_MutePlayer { get; } public delegate* unmanaged[Cdecl] VoiceChannel_RemovePlayer { get; } - public delegate* unmanaged[Cdecl] VoiceChannel_SetMetaData { get; } + public delegate* unmanaged[Cdecl] VoiceChannel_SetFilter { get; } + public delegate* unmanaged[Cdecl] VoiceChannel_SetPriority { get; } public delegate* unmanaged[Cdecl] VoiceChannel_UnmutePlayer { get; } - public delegate* unmanaged[Cdecl] WorldObject_GetDimension { get; } public delegate* unmanaged[Cdecl] WorldObject_GetPositionCoords { get; } - public delegate* unmanaged[Cdecl] WorldObject_SetDimension { get; } - public delegate* unmanaged[Cdecl] WorldObject_SetPosition { get; } } public unsafe class ServerLibrary : IServerLibrary { - public readonly uint Methods = 1328; - public delegate* unmanaged[Cdecl] Blip_AttachedTo { get; } - public delegate* unmanaged[Cdecl] Blip_IsAttached { get; } + public readonly uint Methods = 1735; + public delegate* unmanaged[Cdecl] BaseObject_DeleteSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] BaseObject_SetMultipleSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] BaseObject_SetSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] Blip_AddTargetPlayer { get; } + public delegate* unmanaged[Cdecl] Blip_GetTargets { get; } + public delegate* unmanaged[Cdecl] Blip_RemoveTargetPlayer { get; } + public delegate* unmanaged[Cdecl] Blip_SetGlobal { get; } + public delegate* unmanaged[Cdecl] Checkpoint_DeleteStreamSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] Checkpoint_GetStreamSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] Checkpoint_HasStreamSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] Checkpoint_SetMultipleStreamSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] Checkpoint_SetStreamSyncedMetaData { get; } public delegate* unmanaged[Cdecl] ColShape_GetColShapeType { get; } public delegate* unmanaged[Cdecl] ColShape_IsPlayersOnly { get; } public delegate* unmanaged[Cdecl] ColShape_SetPlayersOnly { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_Accept { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_Decline { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetAuthToken { get; } + public delegate* unmanaged[Cdecl] ConnectionInfo_GetBaseObject { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetBranch { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetBuild { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetCdnUrl { get; } + public delegate* unmanaged[Cdecl] ConnectionInfo_GetCloudAuthResult { get; } + public delegate* unmanaged[Cdecl] ConnectionInfo_GetCloudID { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetDiscordUserID { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetHwIdExHash { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetHwIdHash { get; } + public delegate* unmanaged[Cdecl] ConnectionInfo_GetID { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetIp { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetIsDebug { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetName { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetPasswordHash { get; } public delegate* unmanaged[Cdecl] ConnectionInfo_GetSocialId { get; } - public delegate* unmanaged[Cdecl] Core_CreateBlip { get; } - public delegate* unmanaged[Cdecl] Core_CreateBlipAttached { get; } - public delegate* unmanaged[Cdecl] Core_CreateCheckpoint { get; } - public delegate* unmanaged[Cdecl] Core_CreateColShapeCircle { get; } - public delegate* unmanaged[Cdecl] Core_CreateColShapeCube { get; } - public delegate* unmanaged[Cdecl] Core_CreateColShapeCylinder { get; } - public delegate* unmanaged[Cdecl] Core_CreateColShapePolygon { get; } - public delegate* unmanaged[Cdecl] Core_CreateColShapeRectangle { get; } - public delegate* unmanaged[Cdecl] Core_CreateColShapeSphere { get; } - public delegate* unmanaged[Cdecl] Core_CreateVehicle { get; } - public delegate* unmanaged[Cdecl] Core_CreateVoiceChannel { get; } + public delegate* unmanaged[Cdecl] ConnectionInfo_GetSocialName { get; } + public delegate* unmanaged[Cdecl] ConnectionInfo_GetText { get; } + public delegate* unmanaged[Cdecl] ConnectionInfo_IsAccepted { get; } + public delegate* unmanaged[Cdecl] ConnectionInfo_SetText { get; } + public delegate* unmanaged[Cdecl] Core_AddClientConfigKey { get; } + public delegate* unmanaged[Cdecl] Core_CreateBlip { get; } + public delegate* unmanaged[Cdecl] Core_CreateBlipAttached { get; } + public delegate* unmanaged[Cdecl] Core_CreateCheckpoint { get; } + public delegate* unmanaged[Cdecl] Core_CreateMarker { get; } + public delegate* unmanaged[Cdecl] Core_CreateObject { get; } + public delegate* unmanaged[Cdecl] Core_CreatePed { get; } + public delegate* unmanaged[Cdecl] Core_CreateVehicle { get; } + public delegate* unmanaged[Cdecl] Core_CreateVoiceChannel { get; } public delegate* unmanaged[Cdecl] Core_DeallocPedModelInfo { get; } public delegate* unmanaged[Cdecl] Core_DeallocVehicleModelInfo { get; } + public delegate* unmanaged[Cdecl] Core_DeallocWeaponModelInfo { get; } public delegate* unmanaged[Cdecl] Core_DeleteSyncedMetaData { get; } public delegate* unmanaged[Cdecl] Core_DestroyCheckpoint { get; } public delegate* unmanaged[Cdecl] Core_DestroyColShape { get; } public delegate* unmanaged[Cdecl] Core_DestroyVehicle { get; } public delegate* unmanaged[Cdecl] Core_DestroyVoiceChannel { get; } - public delegate* unmanaged[Cdecl] Core_GetNetTime { get; } + public delegate* unmanaged[Cdecl] Core_GetClosestEntities { get; } + public delegate* unmanaged[Cdecl] Core_GetClosestEntitiesCount { get; } + public delegate* unmanaged[Cdecl] Core_GetColShapeTickRate { get; } + public delegate* unmanaged[Cdecl] Core_GetConnectionInfos { get; } + public delegate* unmanaged[Cdecl] Core_GetEntitiesInDimension { get; } + public delegate* unmanaged[Cdecl] Core_GetEntitiesInDimensionCount { get; } + public delegate* unmanaged[Cdecl] Core_GetEntitiesInRange { get; } + public delegate* unmanaged[Cdecl] Core_GetEntitiesInRangeCount { get; } + public delegate* unmanaged[Cdecl] Core_GetLoadedVehicleModels { get; } + public delegate* unmanaged[Cdecl] Core_GetMaxStreamingObjects { get; } + public delegate* unmanaged[Cdecl] Core_GetMaxStreamingPeds { get; } + public delegate* unmanaged[Cdecl] Core_GetMaxStreamingVehicles { get; } + public delegate* unmanaged[Cdecl] Core_GetMigrationDistance { get; } + public delegate* unmanaged[Cdecl] Core_GetMigrationThreadCount { get; } + public delegate* unmanaged[Cdecl] Core_GetMigrationTickRate { get; } public delegate* unmanaged[Cdecl] Core_GetPedModelInfo { get; } public delegate* unmanaged[Cdecl] Core_GetRootDirectory { get; } public delegate* unmanaged[Cdecl] Core_GetServerConfig { get; } + public delegate* unmanaged[Cdecl] Core_GetStreamerThreadCount { get; } + public delegate* unmanaged[Cdecl] Core_GetStreamingDistance { get; } + public delegate* unmanaged[Cdecl] Core_GetStreamingTickRate { get; } + public delegate* unmanaged[Cdecl] Core_GetSyncReceiveThreadCount { get; } + public delegate* unmanaged[Cdecl] Core_GetSyncSendThreadCount { get; } public delegate* unmanaged[Cdecl] Core_GetVehicleModelInfo { get; } + public delegate* unmanaged[Cdecl] Core_GetWeaponModelByHash { get; } + public delegate* unmanaged[Cdecl] Core_HasBenefit { get; } public delegate* unmanaged[Cdecl] Core_HashPassword { get; } + public delegate* unmanaged[Cdecl] Core_RegisterMetric { get; } public delegate* unmanaged[Cdecl] Core_RestartResource { get; } + public delegate* unmanaged[Cdecl] Core_SetColShapeTickRate { get; } + public delegate* unmanaged[Cdecl] Core_SetMaxStreamingObjects { get; } + public delegate* unmanaged[Cdecl] Core_SetMaxStreamingPeds { get; } + public delegate* unmanaged[Cdecl] Core_SetMaxStreamingVehicles { get; } + public delegate* unmanaged[Cdecl] Core_SetMigrationDistance { get; } + public delegate* unmanaged[Cdecl] Core_SetMigrationThreadCount { get; } + public delegate* unmanaged[Cdecl] Core_SetMigrationTickRate { get; } public delegate* unmanaged[Cdecl] Core_SetPassword { get; } + public delegate* unmanaged[Cdecl] Core_SetStreamerThreadCount { get; } + public delegate* unmanaged[Cdecl] Core_SetStreamingDistance { get; } + public delegate* unmanaged[Cdecl] Core_SetStreamingTickRate { get; } public delegate* unmanaged[Cdecl] Core_SetSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] Core_SetSyncReceiveThreadCount { get; } + public delegate* unmanaged[Cdecl] Core_SetSyncSendThreadCount { get; } + public delegate* unmanaged[Cdecl] Core_SetVoiceExternal { get; } + public delegate* unmanaged[Cdecl] Core_SetVoiceExternalPublic { get; } public delegate* unmanaged[Cdecl] Core_SetWorldProfiler { get; } public delegate* unmanaged[Cdecl] Core_StartResource { get; } public delegate* unmanaged[Cdecl] Core_StopResource { get; } @@ -429,34 +587,67 @@ public unsafe class ServerLibrary : IServerLibrary public delegate* unmanaged[Cdecl] Core_TriggerClientEvent { get; } public delegate* unmanaged[Cdecl] Core_TriggerClientEventForAll { get; } public delegate* unmanaged[Cdecl] Core_TriggerClientEventForSome { get; } + public delegate* unmanaged[Cdecl] Core_TriggerClientEventUnreliable { get; } + public delegate* unmanaged[Cdecl] Core_TriggerClientEventUnreliableForAll { get; } + public delegate* unmanaged[Cdecl] Core_TriggerClientEventUnreliableForSome { get; } + public delegate* unmanaged[Cdecl] Core_TriggerClientRPCAnswer { get; } + public delegate* unmanaged[Cdecl] Core_TriggerClientRPCEvent { get; } public delegate* unmanaged[Cdecl] Core_TriggerServerEvent { get; } + public delegate* unmanaged[Cdecl] Core_UnregisterMetric { get; } + public delegate* unmanaged[Cdecl] Entity_AttachToEntity { get; } + public delegate* unmanaged[Cdecl] Entity_AttachToEntity_BoneString { get; } public delegate* unmanaged[Cdecl] Entity_DeleteStreamSyncedMetaData { get; } - public delegate* unmanaged[Cdecl] Entity_DeleteSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] Entity_Detach { get; } public delegate* unmanaged[Cdecl] Entity_GetStreamed { get; } + public delegate* unmanaged[Cdecl] Entity_GetStreamingDistance { get; } + public delegate* unmanaged[Cdecl] Entity_GetTimestamp { get; } public delegate* unmanaged[Cdecl] Entity_GetVisible { get; } public delegate* unmanaged[Cdecl] Entity_HasCollision { get; } - public delegate* unmanaged[Cdecl] Entity_IsFrozen { get; } public delegate* unmanaged[Cdecl] Entity_SetCollision { get; } - public delegate* unmanaged[Cdecl] Entity_SetFrozen { get; } + public delegate* unmanaged[Cdecl] Entity_SetMultipleStreamSyncedMetaData { get; } public delegate* unmanaged[Cdecl] Entity_SetNetOwner { get; } - public delegate* unmanaged[Cdecl] Entity_SetRotation { get; } public delegate* unmanaged[Cdecl] Entity_SetStreamed { get; } + public delegate* unmanaged[Cdecl] Entity_SetStreamingDistance { get; } public delegate* unmanaged[Cdecl] Entity_SetStreamSyncedMetaData { get; } - public delegate* unmanaged[Cdecl] Entity_SetSyncedMetaData { get; } public delegate* unmanaged[Cdecl] Entity_SetVisible { get; } - public delegate* unmanaged[Cdecl] Event_PlayerBeforeConnect_Cancel { get; } public delegate* unmanaged[Cdecl] Event_WeaponDamageEvent_SetDamageValue { get; } + public delegate* unmanaged[Cdecl] Metric_Begin { get; } + public delegate* unmanaged[Cdecl] Metric_End { get; } + public delegate* unmanaged[Cdecl] Metric_GetName { get; } + public delegate* unmanaged[Cdecl] Metric_GetValue { get; } + public delegate* unmanaged[Cdecl] Metric_SetValue { get; } + public delegate* unmanaged[Cdecl] Object_ActivatePhysics { get; } + public delegate* unmanaged[Cdecl] Object_PlaceOnGroundProperly { get; } + public delegate* unmanaged[Cdecl] Object_SetAlpha { get; } + public delegate* unmanaged[Cdecl] Object_SetLodDistance { get; } + public delegate* unmanaged[Cdecl] Object_SetTextureVariation { get; } + public delegate* unmanaged[Cdecl] Ped_SetArmour { get; } + public delegate* unmanaged[Cdecl] Ped_SetCurrentWeapon { get; } + public delegate* unmanaged[Cdecl] Ped_SetHealth { get; } + public delegate* unmanaged[Cdecl] Ped_SetMaxHealth { get; } + public delegate* unmanaged[Cdecl] Player_AddDecoration { get; } public delegate* unmanaged[Cdecl] Player_AddWeaponComponent { get; } - public delegate* unmanaged[Cdecl] Player_AttachToEntity { get; } - public delegate* unmanaged[Cdecl] Player_AttachToEntity_BoneString { get; } public delegate* unmanaged[Cdecl] Player_ClearBloodDamage { get; } + public delegate* unmanaged[Cdecl] Player_ClearDecorations { get; } public delegate* unmanaged[Cdecl] Player_ClearProps { get; } + public delegate* unmanaged[Cdecl] Player_ClearTasks { get; } + public delegate* unmanaged[Cdecl] Player_DeallocAmmoFlags { get; } + public delegate* unmanaged[Cdecl] Player_DeallocVehicleModelInfo { get; } public delegate* unmanaged[Cdecl] Player_DeleteLocalMetaData { get; } public delegate* unmanaged[Cdecl] Player_Despawn { get; } - public delegate* unmanaged[Cdecl] Player_Detach { get; } + public delegate* unmanaged[Cdecl] Player_GetAmmo { get; } + public delegate* unmanaged[Cdecl] Player_GetAmmoFlags { get; } + public delegate* unmanaged[Cdecl] Player_GetAmmoMax { get; } + public delegate* unmanaged[Cdecl] Player_GetAmmoMax100 { get; } + public delegate* unmanaged[Cdecl] Player_GetAmmoMax50 { get; } + public delegate* unmanaged[Cdecl] Player_GetAmmoSpecialType { get; } public delegate* unmanaged[Cdecl] Player_GetAuthToken { get; } + public delegate* unmanaged[Cdecl] Player_GetBloodDamageBase64 { get; } public delegate* unmanaged[Cdecl] Player_GetClothes { get; } + public delegate* unmanaged[Cdecl] Player_GetCloudAuthResult { get; } + public delegate* unmanaged[Cdecl] Player_GetCloudID { get; } public delegate* unmanaged[Cdecl] Player_GetCurrentWeaponTintIndex { get; } + public delegate* unmanaged[Cdecl] Player_GetDecorations { get; } public delegate* unmanaged[Cdecl] Player_GetDiscordId { get; } public delegate* unmanaged[Cdecl] Player_GetDlcClothes { get; } public delegate* unmanaged[Cdecl] Player_GetDlcProps { get; } @@ -477,26 +668,40 @@ public unsafe class ServerLibrary : IServerLibrary public delegate* unmanaged[Cdecl] Player_GetPing { get; } public delegate* unmanaged[Cdecl] Player_GetProps { get; } public delegate* unmanaged[Cdecl] Player_GetSendNames { get; } + public delegate* unmanaged[Cdecl] Player_GetSocialClubName { get; } public delegate* unmanaged[Cdecl] Player_GetSocialID { get; } + public delegate* unmanaged[Cdecl] Player_GetWeaponAmmo { get; } public delegate* unmanaged[Cdecl] Player_GetWeaponCount { get; } public delegate* unmanaged[Cdecl] Player_GetWeapons { get; } public delegate* unmanaged[Cdecl] Player_GetWeaponTintIndex { get; } public delegate* unmanaged[Cdecl] Player_GiveWeapon { get; } public delegate* unmanaged[Cdecl] Player_HasLocalMetaData { get; } + public delegate* unmanaged[Cdecl] Player_HasWeapon { get; } public delegate* unmanaged[Cdecl] Player_HasWeaponComponent { get; } public delegate* unmanaged[Cdecl] Player_IsConnected { get; } public delegate* unmanaged[Cdecl] Player_IsCrouching { get; } public delegate* unmanaged[Cdecl] Player_IsEntityInStreamingRange { get; } + public delegate* unmanaged[Cdecl] Player_IsNetworkOwnershipDisabled { get; } public delegate* unmanaged[Cdecl] Player_IsStealthy { get; } public delegate* unmanaged[Cdecl] Player_IsSuperJumpEnabled { get; } public delegate* unmanaged[Cdecl] Player_Kick { get; } public delegate* unmanaged[Cdecl] Player_PlayAmbientSpeech { get; } - public delegate* unmanaged[Cdecl] Player_RemoveAllWeapons { get; } + public delegate* unmanaged[Cdecl] Player_PlayAnimation { get; } + public delegate* unmanaged[Cdecl] Player_PlayScenario { get; } + public delegate* unmanaged[Cdecl] Player_RemoveAllWeapons { get; } + public delegate* unmanaged[Cdecl] Player_RemoveDecoration { get; } public delegate* unmanaged[Cdecl] Player_RemoveFaceFeature { get; } public delegate* unmanaged[Cdecl] Player_RemoveHeadOverlay { get; } public delegate* unmanaged[Cdecl] Player_RemoveWeapon { get; } public delegate* unmanaged[Cdecl] Player_RemoveWeaponComponent { get; } + public delegate* unmanaged[Cdecl] Player_SetAmmo { get; } + public delegate* unmanaged[Cdecl] Player_SetAmmoFlags { get; } + public delegate* unmanaged[Cdecl] Player_SetAmmoMax { get; } + public delegate* unmanaged[Cdecl] Player_SetAmmoMax100 { get; } + public delegate* unmanaged[Cdecl] Player_SetAmmoMax50 { get; } + public delegate* unmanaged[Cdecl] Player_SetAmmoSpecialType { get; } public delegate* unmanaged[Cdecl] Player_SetArmor { get; } + public delegate* unmanaged[Cdecl] Player_SetBloodDamageBase64 { get; } public delegate* unmanaged[Cdecl] Player_SetClothes { get; } public delegate* unmanaged[Cdecl] Player_SetCurrentWeapon { get; } public delegate* unmanaged[Cdecl] Player_SetDateTime { get; } @@ -518,20 +723,19 @@ public unsafe class ServerLibrary : IServerLibrary public delegate* unmanaged[Cdecl] Player_SetMaxArmor { get; } public delegate* unmanaged[Cdecl] Player_SetMaxHealth { get; } public delegate* unmanaged[Cdecl] Player_SetModel { get; } + public delegate* unmanaged[Cdecl] Player_SetNetworkOwnershipDisabled { get; } public delegate* unmanaged[Cdecl] Player_SetProps { get; } public delegate* unmanaged[Cdecl] Player_SetSendNames { get; } + public delegate* unmanaged[Cdecl] Player_SetWeaponAmmo { get; } public delegate* unmanaged[Cdecl] Player_SetWeaponTintIndex { get; } public delegate* unmanaged[Cdecl] Player_SetWeather { get; } public delegate* unmanaged[Cdecl] Player_Spawn { get; } - public delegate* unmanaged[Cdecl] Resource_GetConfig { get; } public delegate* unmanaged[Cdecl] Resource_GetMain { get; } public delegate* unmanaged[Cdecl] Resource_GetPath { get; } public delegate* unmanaged[Cdecl] Resource_Start { get; } public delegate* unmanaged[Cdecl] Resource_Stop { get; } - public delegate* unmanaged[Cdecl] Vehicle_AttachToEntity { get; } - public delegate* unmanaged[Cdecl] Vehicle_AttachToEntity_BoneString { get; } - public delegate* unmanaged[Cdecl] Vehicle_Detach { get; } public delegate* unmanaged[Cdecl] Vehicle_DoesWheelHasTire { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetAccelerationLevel { get; } public delegate* unmanaged[Cdecl] Vehicle_GetAppearanceDataBase64 { get; } public delegate* unmanaged[Cdecl] Vehicle_GetArmoredWindowHealth { get; } public delegate* unmanaged[Cdecl] Vehicle_GetArmoredWindowShootCount { get; } @@ -540,6 +744,7 @@ public unsafe class ServerLibrary : IServerLibrary public delegate* unmanaged[Cdecl] Vehicle_GetBoatAnchor { get; } public delegate* unmanaged[Cdecl] Vehicle_GetBodyAdditionalHealth { get; } public delegate* unmanaged[Cdecl] Vehicle_GetBodyHealth { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetBrakeLevel { get; } public delegate* unmanaged[Cdecl] Vehicle_GetBumperDamageLevel { get; } public delegate* unmanaged[Cdecl] Vehicle_GetCounterMeasureCount { get; } public delegate* unmanaged[Cdecl] Vehicle_GetCustomTires { get; } @@ -548,7 +753,7 @@ public unsafe class ServerLibrary : IServerLibrary public delegate* unmanaged[Cdecl] Vehicle_GetDirtLevel { get; } public delegate* unmanaged[Cdecl] Vehicle_GetDoorState { get; } public delegate* unmanaged[Cdecl] Vehicle_GetDriver { get; } - public delegate* unmanaged[Cdecl] Vehicle_GetDriverID { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetDriverID { get; } public delegate* unmanaged[Cdecl] Vehicle_GetEngineHealth { get; } public delegate* unmanaged[Cdecl] Vehicle_GetGameStateBase64 { get; } public delegate* unmanaged[Cdecl] Vehicle_GetHeadlightColor { get; } @@ -573,6 +778,7 @@ public unsafe class ServerLibrary : IServerLibrary public delegate* unmanaged[Cdecl] Vehicle_GetPearlColor { get; } public delegate* unmanaged[Cdecl] Vehicle_GetPrimaryColor { get; } public delegate* unmanaged[Cdecl] Vehicle_GetPrimaryColorRGB { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetQuaternion { get; } public delegate* unmanaged[Cdecl] Vehicle_GetRadioStationIndex { get; } public delegate* unmanaged[Cdecl] Vehicle_GetRearWheelVariation { get; } public delegate* unmanaged[Cdecl] Vehicle_GetRepairsCount { get; } @@ -615,6 +821,7 @@ public unsafe class ServerLibrary : IServerLibrary public delegate* unmanaged[Cdecl] Vehicle_IsExtraOn { get; } public delegate* unmanaged[Cdecl] Vehicle_IsFlamethrowerActive { get; } public delegate* unmanaged[Cdecl] Vehicle_IsHandbrakeActive { get; } + public delegate* unmanaged[Cdecl] Vehicle_IsHornActive { get; } public delegate* unmanaged[Cdecl] Vehicle_IsLightDamaged { get; } public delegate* unmanaged[Cdecl] Vehicle_IsManualEngineControl { get; } public delegate* unmanaged[Cdecl] Vehicle_IsNeonActive { get; } @@ -676,6 +883,7 @@ public unsafe class ServerLibrary : IServerLibrary public delegate* unmanaged[Cdecl] Vehicle_SetPetrolTankHealth { get; } public delegate* unmanaged[Cdecl] Vehicle_SetPrimaryColor { get; } public delegate* unmanaged[Cdecl] Vehicle_SetPrimaryColorRGB { get; } + public delegate* unmanaged[Cdecl] Vehicle_SetQuaternion { get; } public delegate* unmanaged[Cdecl] Vehicle_SetRadioStationIndex { get; } public delegate* unmanaged[Cdecl] Vehicle_SetRearWheels { get; } public delegate* unmanaged[Cdecl] Vehicle_SetRocketRefuelSpeed { get; } @@ -718,27 +926,49 @@ public unsafe class ServerLibrary : IServerLibrary public delegate* unmanaged[Cdecl] Vehicle_SetWindowOpened { get; } public delegate* unmanaged[Cdecl] Vehicle_SetWindowTint { get; } public delegate* unmanaged[Cdecl] Vehicle_ToggleExtra { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_DeleteStreamSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_SetMultipleStreamSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_SetStreamSyncedMetaData { get; } public delegate* unmanaged[Cdecl] VoiceChannel_AddPlayer { get; } - public delegate* unmanaged[Cdecl] VoiceChannel_DeleteMetaData { get; } public delegate* unmanaged[Cdecl] VoiceChannel_GetBaseObject { get; } + public delegate* unmanaged[Cdecl] VoiceChannel_GetFilter { get; } public delegate* unmanaged[Cdecl] VoiceChannel_GetMaxDistance { get; } - public delegate* unmanaged[Cdecl] VoiceChannel_GetMetaData { get; } - public delegate* unmanaged[Cdecl] VoiceChannel_HasMetaData { get; } + public delegate* unmanaged[Cdecl] VoiceChannel_GetPlayerCount { get; } + public delegate* unmanaged[Cdecl] VoiceChannel_GetPlayers { get; } + public delegate* unmanaged[Cdecl] VoiceChannel_GetPriority { get; } public delegate* unmanaged[Cdecl] VoiceChannel_HasPlayer { get; } public delegate* unmanaged[Cdecl] VoiceChannel_IsPlayerMuted { get; } public delegate* unmanaged[Cdecl] VoiceChannel_IsSpatial { get; } public delegate* unmanaged[Cdecl] VoiceChannel_MutePlayer { get; } public delegate* unmanaged[Cdecl] VoiceChannel_RemovePlayer { get; } - public delegate* unmanaged[Cdecl] VoiceChannel_SetMetaData { get; } + public delegate* unmanaged[Cdecl] VoiceChannel_SetFilter { get; } + public delegate* unmanaged[Cdecl] VoiceChannel_SetPriority { get; } public delegate* unmanaged[Cdecl] VoiceChannel_UnmutePlayer { get; } - public delegate* unmanaged[Cdecl] WorldObject_GetDimension { get; } public delegate* unmanaged[Cdecl] WorldObject_GetPositionCoords { get; } - public delegate* unmanaged[Cdecl] WorldObject_SetDimension { get; } - public delegate* unmanaged[Cdecl] WorldObject_SetPosition { get; } - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Blip_AttachedToDelegate(nint _blip, BaseObjectType* _type); - private static nint Blip_AttachedToFallback(nint _blip, BaseObjectType* _type) => throw new Exceptions.OutdatedSdkException("Blip_AttachedTo", "Blip_AttachedTo SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_IsAttachedDelegate(nint _blip); - private static byte Blip_IsAttachedFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_IsAttached", "Blip_IsAttached SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void BaseObject_DeleteSyncedMetaDataDelegate(nint _baseObject, nint _key); + private static void BaseObject_DeleteSyncedMetaDataFallback(nint _baseObject, nint _key) => throw new Exceptions.OutdatedSdkException("BaseObject_DeleteSyncedMetaData", "BaseObject_DeleteSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void BaseObject_SetMultipleSyncedMetaDataDelegate(nint _baseObject, nint[] keys, nint[] values, ulong _size); + private static void BaseObject_SetMultipleSyncedMetaDataFallback(nint _baseObject, nint[] keys, nint[] values, ulong _size) => throw new Exceptions.OutdatedSdkException("BaseObject_SetMultipleSyncedMetaData", "BaseObject_SetMultipleSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void BaseObject_SetSyncedMetaDataDelegate(nint _baseObject, nint _key, nint _val); + private static void BaseObject_SetSyncedMetaDataFallback(nint _baseObject, nint _key, nint _val) => throw new Exceptions.OutdatedSdkException("BaseObject_SetSyncedMetaData", "BaseObject_SetSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_AddTargetPlayerDelegate(nint _blip, nint _player); + private static void Blip_AddTargetPlayerFallback(nint _blip, nint _player) => throw new Exceptions.OutdatedSdkException("Blip_AddTargetPlayer", "Blip_AddTargetPlayer SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Blip_GetTargetsDelegate(nint _blip, ulong* _size); + private static nint Blip_GetTargetsFallback(nint _blip, ulong* _size) => throw new Exceptions.OutdatedSdkException("Blip_GetTargets", "Blip_GetTargets SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_RemoveTargetPlayerDelegate(nint _blip, nint _player); + private static void Blip_RemoveTargetPlayerFallback(nint _blip, nint _player) => throw new Exceptions.OutdatedSdkException("Blip_RemoveTargetPlayer", "Blip_RemoveTargetPlayer SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetGlobalDelegate(nint _blip, byte _state); + private static void Blip_SetGlobalFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetGlobal", "Blip_SetGlobal SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Checkpoint_DeleteStreamSyncedMetaDataDelegate(nint _checkpoint, nint _key); + private static void Checkpoint_DeleteStreamSyncedMetaDataFallback(nint _checkpoint, nint _key) => throw new Exceptions.OutdatedSdkException("Checkpoint_DeleteStreamSyncedMetaData", "Checkpoint_DeleteStreamSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Checkpoint_GetStreamSyncedMetaDataDelegate(nint _checkpoint, nint _key); + private static nint Checkpoint_GetStreamSyncedMetaDataFallback(nint _checkpoint, nint _key) => throw new Exceptions.OutdatedSdkException("Checkpoint_GetStreamSyncedMetaData", "Checkpoint_GetStreamSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Checkpoint_HasStreamSyncedMetaDataDelegate(nint _checkpoint, nint _key); + private static byte Checkpoint_HasStreamSyncedMetaDataFallback(nint _checkpoint, nint _key) => throw new Exceptions.OutdatedSdkException("Checkpoint_HasStreamSyncedMetaData", "Checkpoint_HasStreamSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Checkpoint_SetMultipleStreamSyncedMetaDataDelegate(nint _checkpoint, nint[] keys, nint[] values, ulong _size); + private static void Checkpoint_SetMultipleStreamSyncedMetaDataFallback(nint _checkpoint, nint[] keys, nint[] values, ulong _size) => throw new Exceptions.OutdatedSdkException("Checkpoint_SetMultipleStreamSyncedMetaData", "Checkpoint_SetMultipleStreamSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Checkpoint_SetStreamSyncedMetaDataDelegate(nint _checkpoint, nint _key, nint _val); + private static void Checkpoint_SetStreamSyncedMetaDataFallback(nint _checkpoint, nint _key, nint _val) => throw new Exceptions.OutdatedSdkException("Checkpoint_SetStreamSyncedMetaData", "Checkpoint_SetStreamSyncedMetaData SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte ColShape_GetColShapeTypeDelegate(nint _colShape); private static byte ColShape_GetColShapeTypeFallback(nint _colShape) => throw new Exceptions.OutdatedSdkException("ColShape_GetColShapeType", "ColShape_GetColShapeType SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte ColShape_IsPlayersOnlyDelegate(nint _colShape); @@ -751,18 +981,26 @@ public unsafe class ServerLibrary : IServerLibrary private static void ConnectionInfo_DeclineFallback(IntPtr _connectionInfo, nint _reason) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_Decline", "ConnectionInfo_Decline SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ConnectionInfo_GetAuthTokenDelegate(IntPtr _connectionInfo, int* _size); private static nint ConnectionInfo_GetAuthTokenFallback(IntPtr _connectionInfo, int* _size) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetAuthToken", "ConnectionInfo_GetAuthToken SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ConnectionInfo_GetBaseObjectDelegate(IntPtr _connectionInfo); + private static nint ConnectionInfo_GetBaseObjectFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetBaseObject", "ConnectionInfo_GetBaseObject SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ConnectionInfo_GetBranchDelegate(IntPtr _connectionInfo, int* _size); private static nint ConnectionInfo_GetBranchFallback(IntPtr _connectionInfo, int* _size) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetBranch", "ConnectionInfo_GetBranch SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint ConnectionInfo_GetBuildDelegate(IntPtr _connectionInfo); private static uint ConnectionInfo_GetBuildFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetBuild", "ConnectionInfo_GetBuild SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ConnectionInfo_GetCdnUrlDelegate(IntPtr _connectionInfo, int* _size); private static nint ConnectionInfo_GetCdnUrlFallback(IntPtr _connectionInfo, int* _size) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetCdnUrl", "ConnectionInfo_GetCdnUrl SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte ConnectionInfo_GetCloudAuthResultDelegate(IntPtr _connectionInfo); + private static byte ConnectionInfo_GetCloudAuthResultFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetCloudAuthResult", "ConnectionInfo_GetCloudAuthResult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ConnectionInfo_GetCloudIDDelegate(IntPtr _connectionInfo, int* _size); + private static nint ConnectionInfo_GetCloudIDFallback(IntPtr _connectionInfo, int* _size) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetCloudID", "ConnectionInfo_GetCloudID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate long ConnectionInfo_GetDiscordUserIDDelegate(IntPtr _connectionInfo); private static long ConnectionInfo_GetDiscordUserIDFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetDiscordUserID", "ConnectionInfo_GetDiscordUserID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong ConnectionInfo_GetHwIdExHashDelegate(IntPtr _connectionInfo); private static ulong ConnectionInfo_GetHwIdExHashFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetHwIdExHash", "ConnectionInfo_GetHwIdExHash SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong ConnectionInfo_GetHwIdHashDelegate(IntPtr _connectionInfo); private static ulong ConnectionInfo_GetHwIdHashFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetHwIdHash", "ConnectionInfo_GetHwIdHash SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint ConnectionInfo_GetIDDelegate(IntPtr _connectionInfo); + private static uint ConnectionInfo_GetIDFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetID", "ConnectionInfo_GetID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ConnectionInfo_GetIpDelegate(IntPtr _connectionInfo, int* _size); private static nint ConnectionInfo_GetIpFallback(IntPtr _connectionInfo, int* _size) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetIp", "ConnectionInfo_GetIp SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte ConnectionInfo_GetIsDebugDelegate(IntPtr _connectionInfo); @@ -773,132 +1011,276 @@ public unsafe class ServerLibrary : IServerLibrary private static ulong ConnectionInfo_GetPasswordHashFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetPasswordHash", "ConnectionInfo_GetPasswordHash SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong ConnectionInfo_GetSocialIdDelegate(IntPtr _connectionInfo); private static ulong ConnectionInfo_GetSocialIdFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetSocialId", "ConnectionInfo_GetSocialId SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateBlipDelegate(nint _server, nint _target, byte _type, Vector3 _pos); - private static nint Core_CreateBlipFallback(nint _server, nint _target, byte _type, Vector3 _pos) => throw new Exceptions.OutdatedSdkException("Core_CreateBlip", "Core_CreateBlip SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateBlipAttachedDelegate(nint _server, nint _target, byte _type, nint _attachTo); - private static nint Core_CreateBlipAttachedFallback(nint _server, nint _target, byte _type, nint _attachTo) => throw new Exceptions.OutdatedSdkException("Core_CreateBlipAttached", "Core_CreateBlipAttached SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateCheckpointDelegate(nint _server, byte _type, Vector3 _pos, float _radius, float _height, Rgba _color); - private static nint Core_CreateCheckpointFallback(nint _server, byte _type, Vector3 _pos, float _radius, float _height, Rgba _color) => throw new Exceptions.OutdatedSdkException("Core_CreateCheckpoint", "Core_CreateCheckpoint SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateColShapeCircleDelegate(nint _server, Vector3 _pos, float _radius); - private static nint Core_CreateColShapeCircleFallback(nint _server, Vector3 _pos, float _radius) => throw new Exceptions.OutdatedSdkException("Core_CreateColShapeCircle", "Core_CreateColShapeCircle SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateColShapeCubeDelegate(nint _server, Vector3 _pos, Vector3 _pos2); - private static nint Core_CreateColShapeCubeFallback(nint _server, Vector3 _pos, Vector3 _pos2) => throw new Exceptions.OutdatedSdkException("Core_CreateColShapeCube", "Core_CreateColShapeCube SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateColShapeCylinderDelegate(nint _server, Vector3 _pos, float _radius, float _height); - private static nint Core_CreateColShapeCylinderFallback(nint _server, Vector3 _pos, float _radius, float _height) => throw new Exceptions.OutdatedSdkException("Core_CreateColShapeCylinder", "Core_CreateColShapeCylinder SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateColShapePolygonDelegate(nint _server, float _minZ, float _maxZ, Vector2[] points, int _pointSize); - private static nint Core_CreateColShapePolygonFallback(nint _server, float _minZ, float _maxZ, Vector2[] points, int _pointSize) => throw new Exceptions.OutdatedSdkException("Core_CreateColShapePolygon", "Core_CreateColShapePolygon SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateColShapeRectangleDelegate(nint _server, float _x1, float _y1, float _x2, float _y2, float _z); - private static nint Core_CreateColShapeRectangleFallback(nint _server, float _x1, float _y1, float _x2, float _y2, float _z) => throw new Exceptions.OutdatedSdkException("Core_CreateColShapeRectangle", "Core_CreateColShapeRectangle SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateColShapeSphereDelegate(nint _server, Vector3 _pos, float _radius); - private static nint Core_CreateColShapeSphereFallback(nint _server, Vector3 _pos, float _radius) => throw new Exceptions.OutdatedSdkException("Core_CreateColShapeSphere", "Core_CreateColShapeSphere SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateVehicleDelegate(nint _server, uint _model, Vector3 _pos, Rotation _rot, ushort* _id); - private static nint Core_CreateVehicleFallback(nint _server, uint _model, Vector3 _pos, Rotation _rot, ushort* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateVehicle", "Core_CreateVehicle SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateVoiceChannelDelegate(nint _server, byte _spatial, float _maxDistance); - private static nint Core_CreateVoiceChannelFallback(nint _server, byte _spatial, float _maxDistance) => throw new Exceptions.OutdatedSdkException("Core_CreateVoiceChannel", "Core_CreateVoiceChannel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ConnectionInfo_GetSocialNameDelegate(IntPtr _connectionInfo, int* _size); + private static nint ConnectionInfo_GetSocialNameFallback(IntPtr _connectionInfo, int* _size) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetSocialName", "ConnectionInfo_GetSocialName SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ConnectionInfo_GetTextDelegate(IntPtr _connectionInfo, int* _size); + private static nint ConnectionInfo_GetTextFallback(IntPtr _connectionInfo, int* _size) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_GetText", "ConnectionInfo_GetText SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte ConnectionInfo_IsAcceptedDelegate(IntPtr _connectionInfo); + private static byte ConnectionInfo_IsAcceptedFallback(IntPtr _connectionInfo) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_IsAccepted", "ConnectionInfo_IsAccepted SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void ConnectionInfo_SetTextDelegate(IntPtr _connectionInfo, nint _text); + private static void ConnectionInfo_SetTextFallback(IntPtr _connectionInfo, nint _text) => throw new Exceptions.OutdatedSdkException("ConnectionInfo_SetText", "ConnectionInfo_SetText SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_AddClientConfigKeyDelegate(nint _core, nint _key); + private static void Core_AddClientConfigKeyFallback(nint _core, nint _key) => throw new Exceptions.OutdatedSdkException("Core_AddClientConfigKey", "Core_AddClientConfigKey SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateBlipDelegate(nint _core, byte _global, byte _type, Vector3 _pos, nint[] targets, int _targetsSize, uint* _id); + private static nint Core_CreateBlipFallback(nint _core, byte _global, byte _type, Vector3 _pos, nint[] targets, int _targetsSize, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateBlip", "Core_CreateBlip SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateBlipAttachedDelegate(nint _core, byte _global, byte _type, nint _attachTo, nint[] targets, int _targetsSize, uint* _id); + private static nint Core_CreateBlipAttachedFallback(nint _core, byte _global, byte _type, nint _attachTo, nint[] targets, int _targetsSize, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateBlipAttached", "Core_CreateBlipAttached SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateCheckpointDelegate(nint _core, byte _type, Vector3 _pos, float _radius, float _height, Rgba _color, uint _streamingDistance, uint* _id); + private static nint Core_CreateCheckpointFallback(nint _core, byte _type, Vector3 _pos, float _radius, float _height, Rgba _color, uint _streamingDistance, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateCheckpoint", "Core_CreateCheckpoint SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateMarkerDelegate(nint _core, nint _target, byte _type, Vector3 _pos, Rgba _color, nint _resource, uint* _id); + private static nint Core_CreateMarkerFallback(nint _core, nint _target, byte _type, Vector3 _pos, Rgba _color, nint _resource, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateMarker", "Core_CreateMarker SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateObjectDelegate(nint _core, uint _model, Vector3 _position, Rotation _rotation, byte _alpha, byte _textureVariation, ushort _lodDistance, uint _streamingDistance, uint* _id); + private static nint Core_CreateObjectFallback(nint _core, uint _model, Vector3 _position, Rotation _rotation, byte _alpha, byte _textureVariation, ushort _lodDistance, uint _streamingDistance, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateObject", "Core_CreateObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreatePedDelegate(nint _core, uint _model, Vector3 _pos, Rotation _rot, uint _streamingDistance, uint* _id); + private static nint Core_CreatePedFallback(nint _core, uint _model, Vector3 _pos, Rotation _rot, uint _streamingDistance, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreatePed", "Core_CreatePed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateVehicleDelegate(nint _core, uint _model, Vector3 _pos, Rotation _rot, uint _streamingDistance, uint* _id); + private static nint Core_CreateVehicleFallback(nint _core, uint _model, Vector3 _pos, Rotation _rot, uint _streamingDistance, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateVehicle", "Core_CreateVehicle SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateVoiceChannelDelegate(nint _core, byte _spatial, float _maxDistance, uint* _id); + private static nint Core_CreateVoiceChannelFallback(nint _core, byte _spatial, float _maxDistance, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateVoiceChannel", "Core_CreateVoiceChannel SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DeallocPedModelInfoDelegate(nint _modelInfo); private static void Core_DeallocPedModelInfoFallback(nint _modelInfo) => throw new Exceptions.OutdatedSdkException("Core_DeallocPedModelInfo", "Core_DeallocPedModelInfo SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DeallocVehicleModelInfoDelegate(nint _modelInfo); private static void Core_DeallocVehicleModelInfoFallback(nint _modelInfo) => throw new Exceptions.OutdatedSdkException("Core_DeallocVehicleModelInfo", "Core_DeallocVehicleModelInfo SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DeallocWeaponModelInfoDelegate(nint _modelInfo); + private static void Core_DeallocWeaponModelInfoFallback(nint _modelInfo) => throw new Exceptions.OutdatedSdkException("Core_DeallocWeaponModelInfo", "Core_DeallocWeaponModelInfo SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DeleteSyncedMetaDataDelegate(nint _core, nint _key); private static void Core_DeleteSyncedMetaDataFallback(nint _core, nint _key) => throw new Exceptions.OutdatedSdkException("Core_DeleteSyncedMetaData", "Core_DeleteSyncedMetaData SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DestroyCheckpointDelegate(nint _server, nint _baseObject); - private static void Core_DestroyCheckpointFallback(nint _server, nint _baseObject) => throw new Exceptions.OutdatedSdkException("Core_DestroyCheckpoint", "Core_DestroyCheckpoint SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DestroyColShapeDelegate(nint _server, nint _baseObject); - private static void Core_DestroyColShapeFallback(nint _server, nint _baseObject) => throw new Exceptions.OutdatedSdkException("Core_DestroyColShape", "Core_DestroyColShape SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DestroyVehicleDelegate(nint _server, nint _baseObject); - private static void Core_DestroyVehicleFallback(nint _server, nint _baseObject) => throw new Exceptions.OutdatedSdkException("Core_DestroyVehicle", "Core_DestroyVehicle SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DestroyVoiceChannelDelegate(nint _server, nint _baseObject); - private static void Core_DestroyVoiceChannelFallback(nint _server, nint _baseObject) => throw new Exceptions.OutdatedSdkException("Core_DestroyVoiceChannel", "Core_DestroyVoiceChannel SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int Core_GetNetTimeDelegate(nint _server); - private static int Core_GetNetTimeFallback(nint _server) => throw new Exceptions.OutdatedSdkException("Core_GetNetTime", "Core_GetNetTime SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DestroyCheckpointDelegate(nint _core, nint _baseObject); + private static void Core_DestroyCheckpointFallback(nint _core, nint _baseObject) => throw new Exceptions.OutdatedSdkException("Core_DestroyCheckpoint", "Core_DestroyCheckpoint SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DestroyColShapeDelegate(nint _core, nint _baseObject); + private static void Core_DestroyColShapeFallback(nint _core, nint _baseObject) => throw new Exceptions.OutdatedSdkException("Core_DestroyColShape", "Core_DestroyColShape SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DestroyVehicleDelegate(nint _core, nint _baseObject); + private static void Core_DestroyVehicleFallback(nint _core, nint _baseObject) => throw new Exceptions.OutdatedSdkException("Core_DestroyVehicle", "Core_DestroyVehicle SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DestroyVoiceChannelDelegate(nint _core, nint _baseObject); + private static void Core_DestroyVoiceChannelFallback(nint _core, nint _baseObject) => throw new Exceptions.OutdatedSdkException("Core_DestroyVoiceChannel", "Core_DestroyVoiceChannel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_GetClosestEntitiesDelegate(nint _core, Vector3 _position, int _range, int _dimension, int _limit, ulong _allowedTypes, nint* _entities, byte[] types, ulong _size); + private static void Core_GetClosestEntitiesFallback(nint _core, Vector3 _position, int _range, int _dimension, int _limit, ulong _allowedTypes, nint* _entities, byte[] types, ulong _size) => throw new Exceptions.OutdatedSdkException("Core_GetClosestEntities", "Core_GetClosestEntities SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Core_GetClosestEntitiesCountDelegate(nint _core, Vector3 _position, int _range, int _dimension, int _limit, ulong _allowedTypes); + private static ulong Core_GetClosestEntitiesCountFallback(nint _core, Vector3 _position, int _range, int _dimension, int _limit, ulong _allowedTypes) => throw new Exceptions.OutdatedSdkException("Core_GetClosestEntitiesCount", "Core_GetClosestEntitiesCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Core_GetColShapeTickRateDelegate(nint _core); + private static uint Core_GetColShapeTickRateFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetColShapeTickRate", "Core_GetColShapeTickRate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetConnectionInfosDelegate(nint _core, ulong* _size); + private static nint Core_GetConnectionInfosFallback(nint _core, ulong* _size) => throw new Exceptions.OutdatedSdkException("Core_GetConnectionInfos", "Core_GetConnectionInfos SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_GetEntitiesInDimensionDelegate(nint _core, int _dimension, ulong _allowedTypes, nint* _entities, byte[] types, ulong _size); + private static void Core_GetEntitiesInDimensionFallback(nint _core, int _dimension, ulong _allowedTypes, nint* _entities, byte[] types, ulong _size) => throw new Exceptions.OutdatedSdkException("Core_GetEntitiesInDimension", "Core_GetEntitiesInDimension SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Core_GetEntitiesInDimensionCountDelegate(nint _core, int _dimension, ulong _allowedTypes); + private static ulong Core_GetEntitiesInDimensionCountFallback(nint _core, int _dimension, ulong _allowedTypes) => throw new Exceptions.OutdatedSdkException("Core_GetEntitiesInDimensionCount", "Core_GetEntitiesInDimensionCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_GetEntitiesInRangeDelegate(nint _core, Vector3 _position, int _range, int _dimension, ulong _allowedTypes, nint* _entities, byte[] types, ulong _size); + private static void Core_GetEntitiesInRangeFallback(nint _core, Vector3 _position, int _range, int _dimension, ulong _allowedTypes, nint* _entities, byte[] types, ulong _size) => throw new Exceptions.OutdatedSdkException("Core_GetEntitiesInRange", "Core_GetEntitiesInRange SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Core_GetEntitiesInRangeCountDelegate(nint _core, Vector3 _position, int _range, int _dimension, ulong _allowedTypes); + private static ulong Core_GetEntitiesInRangeCountFallback(nint _core, Vector3 _position, int _range, int _dimension, ulong _allowedTypes) => throw new Exceptions.OutdatedSdkException("Core_GetEntitiesInRangeCount", "Core_GetEntitiesInRangeCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_GetLoadedVehicleModelsDelegate(nint _core, nint* _loadedVehicleModelsOut, ulong* _size); + private static void Core_GetLoadedVehicleModelsFallback(nint _core, nint* _loadedVehicleModelsOut, ulong* _size) => throw new Exceptions.OutdatedSdkException("Core_GetLoadedVehicleModels", "Core_GetLoadedVehicleModels SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Core_GetMaxStreamingObjectsDelegate(nint _core); + private static ushort Core_GetMaxStreamingObjectsFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetMaxStreamingObjects", "Core_GetMaxStreamingObjects SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Core_GetMaxStreamingPedsDelegate(nint _core); + private static ushort Core_GetMaxStreamingPedsFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetMaxStreamingPeds", "Core_GetMaxStreamingPeds SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Core_GetMaxStreamingVehiclesDelegate(nint _core); + private static ushort Core_GetMaxStreamingVehiclesFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetMaxStreamingVehicles", "Core_GetMaxStreamingVehicles SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Core_GetMigrationDistanceDelegate(nint _core); + private static uint Core_GetMigrationDistanceFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetMigrationDistance", "Core_GetMigrationDistance SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_GetMigrationThreadCountDelegate(nint _core); + private static byte Core_GetMigrationThreadCountFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetMigrationThreadCount", "Core_GetMigrationThreadCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Core_GetMigrationTickRateDelegate(nint _core); + private static uint Core_GetMigrationTickRateFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetMigrationTickRate", "Core_GetMigrationTickRate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetPedModelInfoDelegate(nint _core, uint _hash); private static nint Core_GetPedModelInfoFallback(nint _core, uint _hash) => throw new Exceptions.OutdatedSdkException("Core_GetPedModelInfo", "Core_GetPedModelInfo SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetRootDirectoryDelegate(nint _server, int* _size); - private static nint Core_GetRootDirectoryFallback(nint _server, int* _size) => throw new Exceptions.OutdatedSdkException("Core_GetRootDirectory", "Core_GetRootDirectory SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetRootDirectoryDelegate(nint _core, int* _size); + private static nint Core_GetRootDirectoryFallback(nint _core, int* _size) => throw new Exceptions.OutdatedSdkException("Core_GetRootDirectory", "Core_GetRootDirectory SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetServerConfigDelegate(nint _core); private static nint Core_GetServerConfigFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetServerConfig", "Core_GetServerConfig SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetVehicleModelInfoDelegate(nint _server, uint _hash); - private static nint Core_GetVehicleModelInfoFallback(nint _server, uint _hash) => throw new Exceptions.OutdatedSdkException("Core_GetVehicleModelInfo", "Core_GetVehicleModelInfo SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_GetStreamerThreadCountDelegate(nint _core); + private static byte Core_GetStreamerThreadCountFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetStreamerThreadCount", "Core_GetStreamerThreadCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Core_GetStreamingDistanceDelegate(nint _core); + private static uint Core_GetStreamingDistanceFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetStreamingDistance", "Core_GetStreamingDistance SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Core_GetStreamingTickRateDelegate(nint _core); + private static uint Core_GetStreamingTickRateFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetStreamingTickRate", "Core_GetStreamingTickRate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_GetSyncReceiveThreadCountDelegate(nint _core); + private static byte Core_GetSyncReceiveThreadCountFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetSyncReceiveThreadCount", "Core_GetSyncReceiveThreadCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_GetSyncSendThreadCountDelegate(nint _core); + private static byte Core_GetSyncSendThreadCountFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetSyncSendThreadCount", "Core_GetSyncSendThreadCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetVehicleModelInfoDelegate(nint _core, uint _hash); + private static nint Core_GetVehicleModelInfoFallback(nint _core, uint _hash) => throw new Exceptions.OutdatedSdkException("Core_GetVehicleModelInfo", "Core_GetVehicleModelInfo SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetWeaponModelByHashDelegate(nint _core, uint _hash); + private static nint Core_GetWeaponModelByHashFallback(nint _core, uint _hash) => throw new Exceptions.OutdatedSdkException("Core_GetWeaponModelByHash", "Core_GetWeaponModelByHash SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_HasBenefitDelegate(nint _core, byte _benefit); + private static byte Core_HasBenefitFallback(nint _core, byte _benefit) => throw new Exceptions.OutdatedSdkException("Core_HasBenefit", "Core_HasBenefit SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Core_HashPasswordDelegate(nint _core, nint _password); private static ulong Core_HashPasswordFallback(nint _core, nint _password) => throw new Exceptions.OutdatedSdkException("Core_HashPassword", "Core_HashPassword SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_RestartResourceDelegate(nint _server, nint _text); - private static void Core_RestartResourceFallback(nint _server, nint _text) => throw new Exceptions.OutdatedSdkException("Core_RestartResource", "Core_RestartResource SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_RegisterMetricDelegate(nint _core, nint _metricName, byte _type, nint[] keys, nint[] values, ulong _size); + private static nint Core_RegisterMetricFallback(nint _core, nint _metricName, byte _type, nint[] keys, nint[] values, ulong _size) => throw new Exceptions.OutdatedSdkException("Core_RegisterMetric", "Core_RegisterMetric SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_RestartResourceDelegate(nint _core, nint _text); + private static void Core_RestartResourceFallback(nint _core, nint _text) => throw new Exceptions.OutdatedSdkException("Core_RestartResource", "Core_RestartResource SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetColShapeTickRateDelegate(nint _core, uint _limit); + private static void Core_SetColShapeTickRateFallback(nint _core, uint _limit) => throw new Exceptions.OutdatedSdkException("Core_SetColShapeTickRate", "Core_SetColShapeTickRate SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetMaxStreamingObjectsDelegate(nint _core, ushort _limit); + private static void Core_SetMaxStreamingObjectsFallback(nint _core, ushort _limit) => throw new Exceptions.OutdatedSdkException("Core_SetMaxStreamingObjects", "Core_SetMaxStreamingObjects SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetMaxStreamingPedsDelegate(nint _core, ushort _limit); + private static void Core_SetMaxStreamingPedsFallback(nint _core, ushort _limit) => throw new Exceptions.OutdatedSdkException("Core_SetMaxStreamingPeds", "Core_SetMaxStreamingPeds SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetMaxStreamingVehiclesDelegate(nint _core, ushort _limit); + private static void Core_SetMaxStreamingVehiclesFallback(nint _core, ushort _limit) => throw new Exceptions.OutdatedSdkException("Core_SetMaxStreamingVehicles", "Core_SetMaxStreamingVehicles SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetMigrationDistanceDelegate(nint _core, uint _limit); + private static void Core_SetMigrationDistanceFallback(nint _core, uint _limit) => throw new Exceptions.OutdatedSdkException("Core_SetMigrationDistance", "Core_SetMigrationDistance SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetMigrationThreadCountDelegate(nint _core, byte _limit); + private static void Core_SetMigrationThreadCountFallback(nint _core, byte _limit) => throw new Exceptions.OutdatedSdkException("Core_SetMigrationThreadCount", "Core_SetMigrationThreadCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetMigrationTickRateDelegate(nint _core, uint _limit); + private static void Core_SetMigrationTickRateFallback(nint _core, uint _limit) => throw new Exceptions.OutdatedSdkException("Core_SetMigrationTickRate", "Core_SetMigrationTickRate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetPasswordDelegate(nint _core, nint _value); private static void Core_SetPasswordFallback(nint _core, nint _value) => throw new Exceptions.OutdatedSdkException("Core_SetPassword", "Core_SetPassword SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetStreamerThreadCountDelegate(nint _core, byte _limit); + private static void Core_SetStreamerThreadCountFallback(nint _core, byte _limit) => throw new Exceptions.OutdatedSdkException("Core_SetStreamerThreadCount", "Core_SetStreamerThreadCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetStreamingDistanceDelegate(nint _core, uint _limit); + private static void Core_SetStreamingDistanceFallback(nint _core, uint _limit) => throw new Exceptions.OutdatedSdkException("Core_SetStreamingDistance", "Core_SetStreamingDistance SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetStreamingTickRateDelegate(nint _core, uint _limit); + private static void Core_SetStreamingTickRateFallback(nint _core, uint _limit) => throw new Exceptions.OutdatedSdkException("Core_SetStreamingTickRate", "Core_SetStreamingTickRate SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetSyncedMetaDataDelegate(nint _core, nint _key, nint _val); private static void Core_SetSyncedMetaDataFallback(nint _core, nint _key, nint _val) => throw new Exceptions.OutdatedSdkException("Core_SetSyncedMetaData", "Core_SetSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetSyncReceiveThreadCountDelegate(nint _core, byte _limit); + private static void Core_SetSyncReceiveThreadCountFallback(nint _core, byte _limit) => throw new Exceptions.OutdatedSdkException("Core_SetSyncReceiveThreadCount", "Core_SetSyncReceiveThreadCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetSyncSendThreadCountDelegate(nint _core, byte _limit); + private static void Core_SetSyncSendThreadCountFallback(nint _core, byte _limit) => throw new Exceptions.OutdatedSdkException("Core_SetSyncSendThreadCount", "Core_SetSyncSendThreadCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetVoiceExternalDelegate(nint _core, nint _host, ushort _port); + private static void Core_SetVoiceExternalFallback(nint _core, nint _host, ushort _port) => throw new Exceptions.OutdatedSdkException("Core_SetVoiceExternal", "Core_SetVoiceExternal SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetVoiceExternalPublicDelegate(nint _core, nint _host, ushort _port); + private static void Core_SetVoiceExternalPublicFallback(nint _core, nint _host, ushort _port) => throw new Exceptions.OutdatedSdkException("Core_SetVoiceExternalPublic", "Core_SetVoiceExternalPublic SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetWorldProfilerDelegate(nint _core, byte _state); private static void Core_SetWorldProfilerFallback(nint _core, byte _state) => throw new Exceptions.OutdatedSdkException("Core_SetWorldProfiler", "Core_SetWorldProfiler SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_StartResourceDelegate(nint _server, nint _text); - private static void Core_StartResourceFallback(nint _server, nint _text) => throw new Exceptions.OutdatedSdkException("Core_StartResource", "Core_StartResource SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_StopResourceDelegate(nint _server, nint _text); - private static void Core_StopResourceFallback(nint _server, nint _text) => throw new Exceptions.OutdatedSdkException("Core_StopResource", "Core_StopResource SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_StartResourceDelegate(nint _core, nint _text); + private static void Core_StartResourceFallback(nint _core, nint _text) => throw new Exceptions.OutdatedSdkException("Core_StartResource", "Core_StartResource SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_StopResourceDelegate(nint _core, nint _text); + private static void Core_StopResourceFallback(nint _core, nint _text) => throw new Exceptions.OutdatedSdkException("Core_StopResource", "Core_StopResource SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_StopServerDelegate(nint _core); private static void Core_StopServerFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_StopServer", "Core_StopServer SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_SubscribeCommandDelegate(nint _server, nint _cmd, CommandCallback _cb); - private static byte Core_SubscribeCommandFallback(nint _server, nint _cmd, CommandCallback _cb) => throw new Exceptions.OutdatedSdkException("Core_SubscribeCommand", "Core_SubscribeCommand SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerClientEventDelegate(nint _server, nint _target, nint _ev, nint[] args, int _size); - private static void Core_TriggerClientEventFallback(nint _server, nint _target, nint _ev, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerClientEvent", "Core_TriggerClientEvent SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerClientEventForAllDelegate(nint _server, nint _ev, nint[] args, int _size); - private static void Core_TriggerClientEventForAllFallback(nint _server, nint _ev, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerClientEventForAll", "Core_TriggerClientEventForAll SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerClientEventForSomeDelegate(nint _server, nint[] targets, int _targetsSize, nint _ev, nint[] args, int _argsSize); - private static void Core_TriggerClientEventForSomeFallback(nint _server, nint[] targets, int _targetsSize, nint _ev, nint[] args, int _argsSize) => throw new Exceptions.OutdatedSdkException("Core_TriggerClientEventForSome", "Core_TriggerClientEventForSome SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerServerEventDelegate(nint _server, nint _ev, nint[] args, int _size); - private static void Core_TriggerServerEventFallback(nint _server, nint _ev, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerServerEvent", "Core_TriggerServerEvent SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_SubscribeCommandDelegate(nint _core, nint _cmd, CommandCallback _cb); + private static byte Core_SubscribeCommandFallback(nint _core, nint _cmd, CommandCallback _cb) => throw new Exceptions.OutdatedSdkException("Core_SubscribeCommand", "Core_SubscribeCommand SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerClientEventDelegate(nint _core, nint _target, nint _ev, nint[] args, int _size); + private static void Core_TriggerClientEventFallback(nint _core, nint _target, nint _ev, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerClientEvent", "Core_TriggerClientEvent SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerClientEventForAllDelegate(nint _core, nint _ev, nint[] args, int _size); + private static void Core_TriggerClientEventForAllFallback(nint _core, nint _ev, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerClientEventForAll", "Core_TriggerClientEventForAll SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerClientEventForSomeDelegate(nint _core, nint[] targets, int _targetsSize, nint _ev, nint[] args, int _argsSize); + private static void Core_TriggerClientEventForSomeFallback(nint _core, nint[] targets, int _targetsSize, nint _ev, nint[] args, int _argsSize) => throw new Exceptions.OutdatedSdkException("Core_TriggerClientEventForSome", "Core_TriggerClientEventForSome SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerClientEventUnreliableDelegate(nint _core, nint _target, nint _ev, nint[] args, int _size); + private static void Core_TriggerClientEventUnreliableFallback(nint _core, nint _target, nint _ev, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerClientEventUnreliable", "Core_TriggerClientEventUnreliable SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerClientEventUnreliableForAllDelegate(nint _core, nint _ev, nint[] args, int _size); + private static void Core_TriggerClientEventUnreliableForAllFallback(nint _core, nint _ev, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerClientEventUnreliableForAll", "Core_TriggerClientEventUnreliableForAll SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerClientEventUnreliableForSomeDelegate(nint _core, nint[] targets, int _targetsSize, nint _ev, nint[] args, int _argsSize); + private static void Core_TriggerClientEventUnreliableForSomeFallback(nint _core, nint[] targets, int _targetsSize, nint _ev, nint[] args, int _argsSize) => throw new Exceptions.OutdatedSdkException("Core_TriggerClientEventUnreliableForSome", "Core_TriggerClientEventUnreliableForSome SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerClientRPCAnswerDelegate(nint _core, nint _target, ushort _answerID, nint _answer, nint _error); + private static void Core_TriggerClientRPCAnswerFallback(nint _core, nint _target, ushort _answerID, nint _answer, nint _error) => throw new Exceptions.OutdatedSdkException("Core_TriggerClientRPCAnswer", "Core_TriggerClientRPCAnswer SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Core_TriggerClientRPCEventDelegate(nint _core, nint _target, nint _ev, nint[] args, int _size); + private static ushort Core_TriggerClientRPCEventFallback(nint _core, nint _target, nint _ev, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerClientRPCEvent", "Core_TriggerClientRPCEvent SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerServerEventDelegate(nint _core, nint _ev, nint[] args, int _size); + private static void Core_TriggerServerEventFallback(nint _core, nint _ev, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerServerEvent", "Core_TriggerServerEvent SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_UnregisterMetricDelegate(nint _core, nint _metric); + private static void Core_UnregisterMetricFallback(nint _core, nint _metric) => throw new Exceptions.OutdatedSdkException("Core_UnregisterMetric", "Core_UnregisterMetric SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_AttachToEntityDelegate(nint _entity, nint _secondEntity, ushort _otherBoneId, ushort _ownBoneId, Vector3 _pos, Rotation _rot, byte _collision, byte _noFixedRot); + private static void Entity_AttachToEntityFallback(nint _entity, nint _secondEntity, ushort _otherBoneId, ushort _ownBoneId, Vector3 _pos, Rotation _rot, byte _collision, byte _noFixedRot) => throw new Exceptions.OutdatedSdkException("Entity_AttachToEntity", "Entity_AttachToEntity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_AttachToEntity_BoneStringDelegate(nint _entity, nint _secondEntity, nint _otherBone, nint _ownBone, Vector3 _pos, Rotation _rot, byte _collision, byte _noFixedRot); + private static void Entity_AttachToEntity_BoneStringFallback(nint _entity, nint _secondEntity, nint _otherBone, nint _ownBone, Vector3 _pos, Rotation _rot, byte _collision, byte _noFixedRot) => throw new Exceptions.OutdatedSdkException("Entity_AttachToEntity_BoneString", "Entity_AttachToEntity_BoneString SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_DeleteStreamSyncedMetaDataDelegate(nint _entity, nint _key); private static void Entity_DeleteStreamSyncedMetaDataFallback(nint _entity, nint _key) => throw new Exceptions.OutdatedSdkException("Entity_DeleteStreamSyncedMetaData", "Entity_DeleteStreamSyncedMetaData SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_DeleteSyncedMetaDataDelegate(nint _entity, nint _key); - private static void Entity_DeleteSyncedMetaDataFallback(nint _entity, nint _key) => throw new Exceptions.OutdatedSdkException("Entity_DeleteSyncedMetaData", "Entity_DeleteSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_DetachDelegate(nint _entity); + private static void Entity_DetachFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_Detach", "Entity_Detach SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Entity_GetStreamedDelegate(nint _entity); private static byte Entity_GetStreamedFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_GetStreamed", "Entity_GetStreamed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Entity_GetStreamingDistanceDelegate(nint _entity); + private static uint Entity_GetStreamingDistanceFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_GetStreamingDistance", "Entity_GetStreamingDistance SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Entity_GetTimestampDelegate(nint _entity); + private static uint Entity_GetTimestampFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_GetTimestamp", "Entity_GetTimestamp SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Entity_GetVisibleDelegate(nint _entity); private static byte Entity_GetVisibleFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_GetVisible", "Entity_GetVisible SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Entity_HasCollisionDelegate(nint _entity); private static byte Entity_HasCollisionFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_HasCollision", "Entity_HasCollision SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Entity_IsFrozenDelegate(nint _entity); - private static byte Entity_IsFrozenFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_IsFrozen", "Entity_IsFrozen SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_SetCollisionDelegate(nint _entity, byte _state); private static void Entity_SetCollisionFallback(nint _entity, byte _state) => throw new Exceptions.OutdatedSdkException("Entity_SetCollision", "Entity_SetCollision SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_SetFrozenDelegate(nint _entity, byte _state); - private static void Entity_SetFrozenFallback(nint _entity, byte _state) => throw new Exceptions.OutdatedSdkException("Entity_SetFrozen", "Entity_SetFrozen SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_SetMultipleStreamSyncedMetaDataDelegate(nint _entity, nint[] keys, nint[] values, ulong _size); + private static void Entity_SetMultipleStreamSyncedMetaDataFallback(nint _entity, nint[] keys, nint[] values, ulong _size) => throw new Exceptions.OutdatedSdkException("Entity_SetMultipleStreamSyncedMetaData", "Entity_SetMultipleStreamSyncedMetaData SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_SetNetOwnerDelegate(nint _entity, nint _networkOwnerPlayer, byte _disableMigration); private static void Entity_SetNetOwnerFallback(nint _entity, nint _networkOwnerPlayer, byte _disableMigration) => throw new Exceptions.OutdatedSdkException("Entity_SetNetOwner", "Entity_SetNetOwner SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_SetRotationDelegate(nint _entity, Rotation _rot); - private static void Entity_SetRotationFallback(nint _entity, Rotation _rot) => throw new Exceptions.OutdatedSdkException("Entity_SetRotation", "Entity_SetRotation SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_SetStreamedDelegate(nint _entity, byte _state); private static void Entity_SetStreamedFallback(nint _entity, byte _state) => throw new Exceptions.OutdatedSdkException("Entity_SetStreamed", "Entity_SetStreamed SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_SetStreamingDistanceDelegate(nint _entity, uint _streamingDistance); + private static void Entity_SetStreamingDistanceFallback(nint _entity, uint _streamingDistance) => throw new Exceptions.OutdatedSdkException("Entity_SetStreamingDistance", "Entity_SetStreamingDistance SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_SetStreamSyncedMetaDataDelegate(nint _entity, nint _key, nint _val); private static void Entity_SetStreamSyncedMetaDataFallback(nint _entity, nint _key, nint _val) => throw new Exceptions.OutdatedSdkException("Entity_SetStreamSyncedMetaData", "Entity_SetStreamSyncedMetaData SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_SetSyncedMetaDataDelegate(nint _entity, nint _key, nint _val); - private static void Entity_SetSyncedMetaDataFallback(nint _entity, nint _key, nint _val) => throw new Exceptions.OutdatedSdkException("Entity_SetSyncedMetaData", "Entity_SetSyncedMetaData SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_SetVisibleDelegate(nint _entity, byte _state); private static void Entity_SetVisibleFallback(nint _entity, byte _state) => throw new Exceptions.OutdatedSdkException("Entity_SetVisible", "Entity_SetVisible SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_PlayerBeforeConnect_CancelDelegate(nint _event, nint _reason); - private static void Event_PlayerBeforeConnect_CancelFallback(nint _event, nint _reason) => throw new Exceptions.OutdatedSdkException("Event_PlayerBeforeConnect_Cancel", "Event_PlayerBeforeConnect_Cancel SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_WeaponDamageEvent_SetDamageValueDelegate(nint _event, uint _damageValue); private static void Event_WeaponDamageEvent_SetDamageValueFallback(nint _event, uint _damageValue) => throw new Exceptions.OutdatedSdkException("Event_WeaponDamageEvent_SetDamageValue", "Event_WeaponDamageEvent_SetDamageValue SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Metric_BeginDelegate(nint _metric); + private static void Metric_BeginFallback(nint _metric) => throw new Exceptions.OutdatedSdkException("Metric_Begin", "Metric_Begin SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Metric_EndDelegate(nint _metric); + private static void Metric_EndFallback(nint _metric) => throw new Exceptions.OutdatedSdkException("Metric_End", "Metric_End SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Metric_GetNameDelegate(nint _metric, int* _size); + private static nint Metric_GetNameFallback(nint _metric, int* _size) => throw new Exceptions.OutdatedSdkException("Metric_GetName", "Metric_GetName SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Metric_GetValueDelegate(nint _metric); + private static ulong Metric_GetValueFallback(nint _metric) => throw new Exceptions.OutdatedSdkException("Metric_GetValue", "Metric_GetValue SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Metric_SetValueDelegate(nint _metric, ulong _value); + private static void Metric_SetValueFallback(nint _metric, ulong _value) => throw new Exceptions.OutdatedSdkException("Metric_SetValue", "Metric_SetValue SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_ActivatePhysicsDelegate(nint _object); + private static void Object_ActivatePhysicsFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_ActivatePhysics", "Object_ActivatePhysics SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_PlaceOnGroundProperlyDelegate(nint _object); + private static void Object_PlaceOnGroundProperlyFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_PlaceOnGroundProperly", "Object_PlaceOnGroundProperly SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_SetAlphaDelegate(nint _object, byte _alpha); + private static void Object_SetAlphaFallback(nint _object, byte _alpha) => throw new Exceptions.OutdatedSdkException("Object_SetAlpha", "Object_SetAlpha SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_SetLodDistanceDelegate(nint _object, ushort _lodDistance); + private static void Object_SetLodDistanceFallback(nint _object, ushort _lodDistance) => throw new Exceptions.OutdatedSdkException("Object_SetLodDistance", "Object_SetLodDistance SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_SetTextureVariationDelegate(nint _object, byte _textureVariation); + private static void Object_SetTextureVariationFallback(nint _object, byte _textureVariation) => throw new Exceptions.OutdatedSdkException("Object_SetTextureVariation", "Object_SetTextureVariation SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Ped_SetArmourDelegate(nint _ped, ushort _armor); + private static void Ped_SetArmourFallback(nint _ped, ushort _armor) => throw new Exceptions.OutdatedSdkException("Ped_SetArmour", "Ped_SetArmour SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Ped_SetCurrentWeaponDelegate(nint _ped, uint _weapon); + private static void Ped_SetCurrentWeaponFallback(nint _ped, uint _weapon) => throw new Exceptions.OutdatedSdkException("Ped_SetCurrentWeapon", "Ped_SetCurrentWeapon SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Ped_SetHealthDelegate(nint _ped, ushort _health); + private static void Ped_SetHealthFallback(nint _ped, ushort _health) => throw new Exceptions.OutdatedSdkException("Ped_SetHealth", "Ped_SetHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Ped_SetMaxHealthDelegate(nint _ped, ushort _maxHealth); + private static void Ped_SetMaxHealthFallback(nint _ped, ushort _maxHealth) => throw new Exceptions.OutdatedSdkException("Ped_SetMaxHealth", "Ped_SetMaxHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_AddDecorationDelegate(nint _player, uint _collection, uint _overlay); + private static void Player_AddDecorationFallback(nint _player, uint _collection, uint _overlay) => throw new Exceptions.OutdatedSdkException("Player_AddDecoration", "Player_AddDecoration SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_AddWeaponComponentDelegate(nint _player, uint _weapon, uint _component); private static void Player_AddWeaponComponentFallback(nint _player, uint _weapon, uint _component) => throw new Exceptions.OutdatedSdkException("Player_AddWeaponComponent", "Player_AddWeaponComponent SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_AttachToEntityDelegate(nint _player, nint _entity, short _otherBone, short _ownBone, Vector3 _pos, Rotation _rot, byte _collision, byte _noFixedRot); - private static void Player_AttachToEntityFallback(nint _player, nint _entity, short _otherBone, short _ownBone, Vector3 _pos, Rotation _rot, byte _collision, byte _noFixedRot) => throw new Exceptions.OutdatedSdkException("Player_AttachToEntity", "Player_AttachToEntity SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_AttachToEntity_BoneStringDelegate(nint _player, nint _entity, nint _otherBone, nint _ownBone, Vector3 _pos, Rotation _rot, byte _collision, byte _noFixedRot); - private static void Player_AttachToEntity_BoneStringFallback(nint _player, nint _entity, nint _otherBone, nint _ownBone, Vector3 _pos, Rotation _rot, byte _collision, byte _noFixedRot) => throw new Exceptions.OutdatedSdkException("Player_AttachToEntity_BoneString", "Player_AttachToEntity_BoneString SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_ClearBloodDamageDelegate(nint _player); private static void Player_ClearBloodDamageFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_ClearBloodDamage", "Player_ClearBloodDamage SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_ClearDecorationsDelegate(nint _player); + private static void Player_ClearDecorationsFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_ClearDecorations", "Player_ClearDecorations SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_ClearPropsDelegate(nint _player, byte _component); private static void Player_ClearPropsFallback(nint _player, byte _component) => throw new Exceptions.OutdatedSdkException("Player_ClearProps", "Player_ClearProps SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_ClearTasksDelegate(nint _player); + private static void Player_ClearTasksFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_ClearTasks", "Player_ClearTasks SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_DeallocAmmoFlagsDelegate(nint _ammoFlags); + private static void Player_DeallocAmmoFlagsFallback(nint _ammoFlags) => throw new Exceptions.OutdatedSdkException("Player_DeallocAmmoFlags", "Player_DeallocAmmoFlags SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_DeallocVehicleModelInfoDelegate(nint _decoInfo); + private static void Player_DeallocVehicleModelInfoFallback(nint _decoInfo) => throw new Exceptions.OutdatedSdkException("Player_DeallocVehicleModelInfo", "Player_DeallocVehicleModelInfo SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_DeleteLocalMetaDataDelegate(nint _player, nint _key); private static void Player_DeleteLocalMetaDataFallback(nint _player, nint _key) => throw new Exceptions.OutdatedSdkException("Player_DeleteLocalMetaData", "Player_DeleteLocalMetaData SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_DespawnDelegate(nint _player); private static void Player_DespawnFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_Despawn", "Player_Despawn SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_DetachDelegate(nint _player); - private static void Player_DetachFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_Detach", "Player_Detach SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Player_GetAmmoDelegate(nint _player, uint _ammoHash); + private static ushort Player_GetAmmoFallback(nint _player, uint _ammoHash) => throw new Exceptions.OutdatedSdkException("Player_GetAmmo", "Player_GetAmmo SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Player_GetAmmoFlagsDelegate(nint _player, uint _ammoHash); + private static nint Player_GetAmmoFlagsFallback(nint _player, uint _ammoHash) => throw new Exceptions.OutdatedSdkException("Player_GetAmmoFlags", "Player_GetAmmoFlags SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int Player_GetAmmoMaxDelegate(nint _player, uint _ammoHash); + private static int Player_GetAmmoMaxFallback(nint _player, uint _ammoHash) => throw new Exceptions.OutdatedSdkException("Player_GetAmmoMax", "Player_GetAmmoMax SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int Player_GetAmmoMax100Delegate(nint _player, uint _ammoHash); + private static int Player_GetAmmoMax100Fallback(nint _player, uint _ammoHash) => throw new Exceptions.OutdatedSdkException("Player_GetAmmoMax100", "Player_GetAmmoMax100 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int Player_GetAmmoMax50Delegate(nint _player, uint _ammoHash); + private static int Player_GetAmmoMax50Fallback(nint _player, uint _ammoHash) => throw new Exceptions.OutdatedSdkException("Player_GetAmmoMax50", "Player_GetAmmoMax50 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Player_GetAmmoSpecialTypeDelegate(nint _player, uint _ammoHash); + private static uint Player_GetAmmoSpecialTypeFallback(nint _player, uint _ammoHash) => throw new Exceptions.OutdatedSdkException("Player_GetAmmoSpecialType", "Player_GetAmmoSpecialType SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Player_GetAuthTokenDelegate(nint _player, int* _size); private static nint Player_GetAuthTokenFallback(nint _player, int* _size) => throw new Exceptions.OutdatedSdkException("Player_GetAuthToken", "Player_GetAuthToken SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Player_GetBloodDamageBase64Delegate(nint _player, int* _size); + private static nint Player_GetBloodDamageBase64Fallback(nint _player, int* _size) => throw new Exceptions.OutdatedSdkException("Player_GetBloodDamageBase64", "Player_GetBloodDamageBase64 SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_GetClothesDelegate(nint _player, byte _component, Cloth* _cloth); private static void Player_GetClothesFallback(nint _player, byte _component, Cloth* _cloth) => throw new Exceptions.OutdatedSdkException("Player_GetClothes", "Player_GetClothes SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_GetCloudAuthResultDelegate(nint _player); + private static byte Player_GetCloudAuthResultFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetCloudAuthResult", "Player_GetCloudAuthResult SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Player_GetCloudIDDelegate(nint _player, int* _size); + private static nint Player_GetCloudIDFallback(nint _player, int* _size) => throw new Exceptions.OutdatedSdkException("Player_GetCloudID", "Player_GetCloudID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_GetCurrentWeaponTintIndexDelegate(nint _player); private static byte Player_GetCurrentWeaponTintIndexFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetCurrentWeaponTintIndex", "Player_GetCurrentWeaponTintIndex SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Player_GetDecorationsDelegate(nint _player, ulong* _size); + private static nint Player_GetDecorationsFallback(nint _player, ulong* _size) => throw new Exceptions.OutdatedSdkException("Player_GetDecorations", "Player_GetDecorations SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate long Player_GetDiscordIdDelegate(nint _player); private static long Player_GetDiscordIdFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetDiscordId", "Player_GetDiscordId SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_GetDlcClothesDelegate(nint _player, byte _component, DlcCloth* _cloth); @@ -939,8 +1321,12 @@ public unsafe class ServerLibrary : IServerLibrary private static void Player_GetPropsFallback(nint _player, byte _component, Prop* _prop) => throw new Exceptions.OutdatedSdkException("Player_GetProps", "Player_GetProps SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_GetSendNamesDelegate(nint _player); private static byte Player_GetSendNamesFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetSendNames", "Player_GetSendNames SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Player_GetSocialClubNameDelegate(nint _player, int* _size); + private static nint Player_GetSocialClubNameFallback(nint _player, int* _size) => throw new Exceptions.OutdatedSdkException("Player_GetSocialClubName", "Player_GetSocialClubName SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Player_GetSocialIDDelegate(nint _player); private static ulong Player_GetSocialIDFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetSocialID", "Player_GetSocialID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Player_GetWeaponAmmoDelegate(nint _player, uint _weaponHash); + private static ushort Player_GetWeaponAmmoFallback(nint _player, uint _weaponHash) => throw new Exceptions.OutdatedSdkException("Player_GetWeaponAmmo", "Player_GetWeaponAmmo SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Player_GetWeaponCountDelegate(nint _player); private static ulong Player_GetWeaponCountFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetWeaponCount", "Player_GetWeaponCount SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_GetWeaponsDelegate(nint _player, nint* _weapons, uint* _size); @@ -951,6 +1337,8 @@ public unsafe class ServerLibrary : IServerLibrary private static void Player_GiveWeaponFallback(nint _player, uint _weapon, int _ammo, byte _selectWeapon) => throw new Exceptions.OutdatedSdkException("Player_GiveWeapon", "Player_GiveWeapon SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_HasLocalMetaDataDelegate(nint _player, nint _key); private static byte Player_HasLocalMetaDataFallback(nint _player, nint _key) => throw new Exceptions.OutdatedSdkException("Player_HasLocalMetaData", "Player_HasLocalMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_HasWeaponDelegate(nint _player, uint _weapon); + private static byte Player_HasWeaponFallback(nint _player, uint _weapon) => throw new Exceptions.OutdatedSdkException("Player_HasWeapon", "Player_HasWeapon SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_HasWeaponComponentDelegate(nint _player, uint _weapon, uint _component); private static byte Player_HasWeaponComponentFallback(nint _player, uint _weapon, uint _component) => throw new Exceptions.OutdatedSdkException("Player_HasWeaponComponent", "Player_HasWeaponComponent SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsConnectedDelegate(nint _player); @@ -959,6 +1347,8 @@ public unsafe class ServerLibrary : IServerLibrary private static byte Player_IsCrouchingFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsCrouching", "Player_IsCrouching SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsEntityInStreamingRangeDelegate(nint _player, nint _entity); private static byte Player_IsEntityInStreamingRangeFallback(nint _player, nint _entity) => throw new Exceptions.OutdatedSdkException("Player_IsEntityInStreamingRange", "Player_IsEntityInStreamingRange SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsNetworkOwnershipDisabledDelegate(nint _player); + private static byte Player_IsNetworkOwnershipDisabledFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsNetworkOwnershipDisabled", "Player_IsNetworkOwnershipDisabled SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsStealthyDelegate(nint _player); private static byte Player_IsStealthyFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsStealthy", "Player_IsStealthy SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsSuperJumpEnabledDelegate(nint _playere); @@ -967,8 +1357,14 @@ public unsafe class ServerLibrary : IServerLibrary private static void Player_KickFallback(nint _player, nint _reason) => throw new Exceptions.OutdatedSdkException("Player_Kick", "Player_Kick SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_PlayAmbientSpeechDelegate(nint _player, nint _speechName, nint _speechParam, uint _speechDictHash); private static void Player_PlayAmbientSpeechFallback(nint _player, nint _speechName, nint _speechParam, uint _speechDictHash) => throw new Exceptions.OutdatedSdkException("Player_PlayAmbientSpeech", "Player_PlayAmbientSpeech SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_RemoveAllWeaponsDelegate(nint _player); - private static void Player_RemoveAllWeaponsFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_RemoveAllWeapons", "Player_RemoveAllWeapons SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_PlayAnimationDelegate(nint _player, nint _animDict, nint _animName, float _blendInSpeed, float _blendOutSpeed, int _duration, int _flags, float _playbackRate, byte _lockX, byte _lockY, byte _lockZ); + private static void Player_PlayAnimationFallback(nint _player, nint _animDict, nint _animName, float _blendInSpeed, float _blendOutSpeed, int _duration, int _flags, float _playbackRate, byte _lockX, byte _lockY, byte _lockZ) => throw new Exceptions.OutdatedSdkException("Player_PlayAnimation", "Player_PlayAnimation SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_PlayScenarioDelegate(nint _player, nint _name); + private static void Player_PlayScenarioFallback(nint _player, nint _name) => throw new Exceptions.OutdatedSdkException("Player_PlayScenario", "Player_PlayScenario SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_RemoveAllWeaponsDelegate(nint _player, byte _removeAllAmmo); + private static void Player_RemoveAllWeaponsFallback(nint _player, byte _removeAllAmmo) => throw new Exceptions.OutdatedSdkException("Player_RemoveAllWeapons", "Player_RemoveAllWeapons SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_RemoveDecorationDelegate(nint _player, uint _collection, uint _overlay); + private static void Player_RemoveDecorationFallback(nint _player, uint _collection, uint _overlay) => throw new Exceptions.OutdatedSdkException("Player_RemoveDecoration", "Player_RemoveDecoration SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_RemoveFaceFeatureDelegate(nint _player, byte _index); private static byte Player_RemoveFaceFeatureFallback(nint _player, byte _index) => throw new Exceptions.OutdatedSdkException("Player_RemoveFaceFeature", "Player_RemoveFaceFeature SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_RemoveHeadOverlayDelegate(nint _player, byte _overlayID); @@ -977,8 +1373,22 @@ public unsafe class ServerLibrary : IServerLibrary private static byte Player_RemoveWeaponFallback(nint _player, uint _weapon) => throw new Exceptions.OutdatedSdkException("Player_RemoveWeapon", "Player_RemoveWeapon SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_RemoveWeaponComponentDelegate(nint _player, uint _weapon, uint _component); private static void Player_RemoveWeaponComponentFallback(nint _player, uint _weapon, uint _component) => throw new Exceptions.OutdatedSdkException("Player_RemoveWeaponComponent", "Player_RemoveWeaponComponent SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetAmmoDelegate(nint _player, uint _ammoHash, ushort _ammo); + private static void Player_SetAmmoFallback(nint _player, uint _ammoHash, ushort _ammo) => throw new Exceptions.OutdatedSdkException("Player_SetAmmo", "Player_SetAmmo SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetAmmoFlagsDelegate(nint _player, uint _ammoHash, byte _infiniteAmmo, byte _addSmokeOnExplosion, byte _fuse, byte _fixedAfterExplosion); + private static void Player_SetAmmoFlagsFallback(nint _player, uint _ammoHash, byte _infiniteAmmo, byte _addSmokeOnExplosion, byte _fuse, byte _fixedAfterExplosion) => throw new Exceptions.OutdatedSdkException("Player_SetAmmoFlags", "Player_SetAmmoFlags SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetAmmoMaxDelegate(nint _player, uint _ammoHash, int _ammoMax); + private static void Player_SetAmmoMaxFallback(nint _player, uint _ammoHash, int _ammoMax) => throw new Exceptions.OutdatedSdkException("Player_SetAmmoMax", "Player_SetAmmoMax SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetAmmoMax100Delegate(nint _player, uint _ammoHash, int _ammoMax100); + private static void Player_SetAmmoMax100Fallback(nint _player, uint _ammoHash, int _ammoMax100) => throw new Exceptions.OutdatedSdkException("Player_SetAmmoMax100", "Player_SetAmmoMax100 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetAmmoMax50Delegate(nint _player, uint _ammoHash, int _ammoMax50); + private static void Player_SetAmmoMax50Fallback(nint _player, uint _ammoHash, int _ammoMax50) => throw new Exceptions.OutdatedSdkException("Player_SetAmmoMax50", "Player_SetAmmoMax50 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetAmmoSpecialTypeDelegate(nint _player, uint _ammoHash, uint _ammoSpecialType); + private static void Player_SetAmmoSpecialTypeFallback(nint _player, uint _ammoHash, uint _ammoSpecialType) => throw new Exceptions.OutdatedSdkException("Player_SetAmmoSpecialType", "Player_SetAmmoSpecialType SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetArmorDelegate(nint _player, ushort _armor); private static void Player_SetArmorFallback(nint _player, ushort _armor) => throw new Exceptions.OutdatedSdkException("Player_SetArmor", "Player_SetArmor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetBloodDamageBase64Delegate(nint _player, nint _bloodDamage); + private static void Player_SetBloodDamageBase64Fallback(nint _player, nint _bloodDamage) => throw new Exceptions.OutdatedSdkException("Player_SetBloodDamageBase64", "Player_SetBloodDamageBase64 SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_SetClothesDelegate(nint _player, byte _component, ushort _drawable, byte _texture, byte _palette); private static byte Player_SetClothesFallback(nint _player, byte _component, ushort _drawable, byte _texture, byte _palette) => throw new Exceptions.OutdatedSdkException("Player_SetClothes", "Player_SetClothes SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetCurrentWeaponDelegate(nint _player, uint _weapon); @@ -1021,18 +1431,20 @@ public unsafe class ServerLibrary : IServerLibrary private static void Player_SetMaxHealthFallback(nint _player, ushort _maxHealth) => throw new Exceptions.OutdatedSdkException("Player_SetMaxHealth", "Player_SetMaxHealth SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetModelDelegate(nint _player, uint _model); private static void Player_SetModelFallback(nint _player, uint _model) => throw new Exceptions.OutdatedSdkException("Player_SetModel", "Player_SetModel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetNetworkOwnershipDisabledDelegate(nint _player, byte _state); + private static void Player_SetNetworkOwnershipDisabledFallback(nint _player, byte _state) => throw new Exceptions.OutdatedSdkException("Player_SetNetworkOwnershipDisabled", "Player_SetNetworkOwnershipDisabled SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_SetPropsDelegate(nint _player, byte _component, ushort _drawable, byte _texture); private static byte Player_SetPropsFallback(nint _player, byte _component, ushort _drawable, byte _texture) => throw new Exceptions.OutdatedSdkException("Player_SetProps", "Player_SetProps SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetSendNamesDelegate(nint _player, byte _state); private static void Player_SetSendNamesFallback(nint _player, byte _state) => throw new Exceptions.OutdatedSdkException("Player_SetSendNames", "Player_SetSendNames SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetWeaponAmmoDelegate(nint _player, uint _weaponHash, ushort _ammo); + private static void Player_SetWeaponAmmoFallback(nint _player, uint _weaponHash, ushort _ammo) => throw new Exceptions.OutdatedSdkException("Player_SetWeaponAmmo", "Player_SetWeaponAmmo SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetWeaponTintIndexDelegate(nint _player, uint _weapon, byte _tintIndex); private static void Player_SetWeaponTintIndexFallback(nint _player, uint _weapon, byte _tintIndex) => throw new Exceptions.OutdatedSdkException("Player_SetWeaponTintIndex", "Player_SetWeaponTintIndex SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SetWeatherDelegate(nint _player, uint _weather); private static void Player_SetWeatherFallback(nint _player, uint _weather) => throw new Exceptions.OutdatedSdkException("Player_SetWeather", "Player_SetWeather SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_SpawnDelegate(nint _player, Vector3 _pos, uint _delayMs); private static void Player_SpawnFallback(nint _player, Vector3 _pos, uint _delayMs) => throw new Exceptions.OutdatedSdkException("Player_Spawn", "Player_Spawn SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Resource_GetConfigDelegate(nint _resource); - private static nint Resource_GetConfigFallback(nint _resource) => throw new Exceptions.OutdatedSdkException("Resource_GetConfig", "Resource_GetConfig SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Resource_GetMainDelegate(nint _resource, int* _size); private static nint Resource_GetMainFallback(nint _resource, int* _size) => throw new Exceptions.OutdatedSdkException("Resource_GetMain", "Resource_GetMain SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Resource_GetPathDelegate(nint _resource, int* _size); @@ -1041,14 +1453,10 @@ public unsafe class ServerLibrary : IServerLibrary private static void Resource_StartFallback(nint _resource) => throw new Exceptions.OutdatedSdkException("Resource_Start", "Resource_Start SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Resource_StopDelegate(nint _resource); private static void Resource_StopFallback(nint _resource) => throw new Exceptions.OutdatedSdkException("Resource_Stop", "Resource_Stop SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_AttachToEntityDelegate(nint _vehicle, nint _entity, short _otherBone, short _ownBone, Vector3 _pos, Rotation _rot, byte _collision, byte _noFixedRot); - private static void Vehicle_AttachToEntityFallback(nint _vehicle, nint _entity, short _otherBone, short _ownBone, Vector3 _pos, Rotation _rot, byte _collision, byte _noFixedRot) => throw new Exceptions.OutdatedSdkException("Vehicle_AttachToEntity", "Vehicle_AttachToEntity SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_AttachToEntity_BoneStringDelegate(nint _vehicle, nint _entity, nint _otherBone, nint _ownBone, Vector3 _pos, Rotation _rot, byte _collision, byte _noFixedRot); - private static void Vehicle_AttachToEntity_BoneStringFallback(nint _vehicle, nint _entity, nint _otherBone, nint _ownBone, Vector3 _pos, Rotation _rot, byte _collision, byte _noFixedRot) => throw new Exceptions.OutdatedSdkException("Vehicle_AttachToEntity_BoneString", "Vehicle_AttachToEntity_BoneString SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_DetachDelegate(nint _vehicle); - private static void Vehicle_DetachFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_Detach", "Vehicle_Detach SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_DoesWheelHasTireDelegate(nint _vehicle, byte _wheelId); private static byte Vehicle_DoesWheelHasTireFallback(nint _vehicle, byte _wheelId) => throw new Exceptions.OutdatedSdkException("Vehicle_DoesWheelHasTire", "Vehicle_DoesWheelHasTire SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetAccelerationLevelDelegate(nint _vehicle); + private static float Vehicle_GetAccelerationLevelFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetAccelerationLevel", "Vehicle_GetAccelerationLevel SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Vehicle_GetAppearanceDataBase64Delegate(nint _vehicle, int* _size); private static nint Vehicle_GetAppearanceDataBase64Fallback(nint _vehicle, int* _size) => throw new Exceptions.OutdatedSdkException("Vehicle_GetAppearanceDataBase64", "Vehicle_GetAppearanceDataBase64 SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetArmoredWindowHealthDelegate(nint _vehicle, byte _windowId); @@ -1065,6 +1473,8 @@ public unsafe class ServerLibrary : IServerLibrary private static uint Vehicle_GetBodyAdditionalHealthFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetBodyAdditionalHealth", "Vehicle_GetBodyAdditionalHealth SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Vehicle_GetBodyHealthDelegate(nint _vehicle); private static uint Vehicle_GetBodyHealthFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetBodyHealth", "Vehicle_GetBodyHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetBrakeLevelDelegate(nint _vehicle); + private static float Vehicle_GetBrakeLevelFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetBrakeLevel", "Vehicle_GetBrakeLevel SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetBumperDamageLevelDelegate(nint _vehicle, byte _bumperId); private static byte Vehicle_GetBumperDamageLevelFallback(nint _vehicle, byte _bumperId) => throw new Exceptions.OutdatedSdkException("Vehicle_GetBumperDamageLevel", "Vehicle_GetBumperDamageLevel SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Vehicle_GetCounterMeasureCountDelegate(nint _vehicle); @@ -1081,8 +1491,8 @@ public unsafe class ServerLibrary : IServerLibrary private static byte Vehicle_GetDoorStateFallback(nint _vehicle, byte _doorId) => throw new Exceptions.OutdatedSdkException("Vehicle_GetDoorState", "Vehicle_GetDoorState SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Vehicle_GetDriverDelegate(nint _vehicle); private static nint Vehicle_GetDriverFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetDriver", "Vehicle_GetDriver SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetDriverIDDelegate(nint _vehicle, ushort* _id); - private static byte Vehicle_GetDriverIDFallback(nint _vehicle, ushort* _id) => throw new Exceptions.OutdatedSdkException("Vehicle_GetDriverID", "Vehicle_GetDriverID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetDriverIDDelegate(nint _vehicle, uint* _id); + private static byte Vehicle_GetDriverIDFallback(nint _vehicle, uint* _id) => throw new Exceptions.OutdatedSdkException("Vehicle_GetDriverID", "Vehicle_GetDriverID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int Vehicle_GetEngineHealthDelegate(nint _vehicle); private static int Vehicle_GetEngineHealthFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetEngineHealth", "Vehicle_GetEngineHealth SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Vehicle_GetGameStateBase64Delegate(nint _vehicle, int* _size); @@ -1131,6 +1541,8 @@ public unsafe class ServerLibrary : IServerLibrary private static byte Vehicle_GetPrimaryColorFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetPrimaryColor", "Vehicle_GetPrimaryColor SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_GetPrimaryColorRGBDelegate(nint _vehicle, Rgba* _primaryColor); private static void Vehicle_GetPrimaryColorRGBFallback(nint _vehicle, Rgba* _primaryColor) => throw new Exceptions.OutdatedSdkException("Vehicle_GetPrimaryColorRGB", "Vehicle_GetPrimaryColorRGB SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate Quaternion Vehicle_GetQuaternionDelegate(nint _vehicle); + private static Quaternion Vehicle_GetQuaternionFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetQuaternion", "Vehicle_GetQuaternion SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Vehicle_GetRadioStationIndexDelegate(nint _vehicle); private static uint Vehicle_GetRadioStationIndexFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetRadioStationIndex", "Vehicle_GetRadioStationIndex SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetRearWheelVariationDelegate(nint _vehicle); @@ -1215,6 +1627,8 @@ public unsafe class ServerLibrary : IServerLibrary private static byte Vehicle_IsFlamethrowerActiveFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsFlamethrowerActive", "Vehicle_IsFlamethrowerActive SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsHandbrakeActiveDelegate(nint _vehicle); private static byte Vehicle_IsHandbrakeActiveFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsHandbrakeActive", "Vehicle_IsHandbrakeActive SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsHornActiveDelegate(nint _vehicle); + private static byte Vehicle_IsHornActiveFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_IsHornActive", "Vehicle_IsHornActive SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsLightDamagedDelegate(nint _vehicle, byte _lightId); private static byte Vehicle_IsLightDamagedFallback(nint _vehicle, byte _lightId) => throw new Exceptions.OutdatedSdkException("Vehicle_IsLightDamaged", "Vehicle_IsLightDamaged SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_IsManualEngineControlDelegate(nint _vehicle); @@ -1337,6 +1751,8 @@ public unsafe class ServerLibrary : IServerLibrary private static void Vehicle_SetPrimaryColorFallback(nint _vehicle, byte _color) => throw new Exceptions.OutdatedSdkException("Vehicle_SetPrimaryColor", "Vehicle_SetPrimaryColor SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetPrimaryColorRGBDelegate(nint _vehicle, Rgba _color); private static void Vehicle_SetPrimaryColorRGBFallback(nint _vehicle, Rgba _color) => throw new Exceptions.OutdatedSdkException("Vehicle_SetPrimaryColorRGB", "Vehicle_SetPrimaryColorRGB SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetQuaternionDelegate(nint _vehicle, Quaternion _quaternion); + private static void Vehicle_SetQuaternionFallback(nint _vehicle, Quaternion _quaternion) => throw new Exceptions.OutdatedSdkException("Vehicle_SetQuaternion", "Vehicle_SetQuaternion SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetRadioStationIndexDelegate(nint _vehicle, uint _stationIndex); private static void Vehicle_SetRadioStationIndexFallback(nint _vehicle, uint _stationIndex) => throw new Exceptions.OutdatedSdkException("Vehicle_SetRadioStationIndex", "Vehicle_SetRadioStationIndex SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_SetRearWheelsDelegate(nint _vehicle, byte _variation); @@ -1421,18 +1837,26 @@ public unsafe class ServerLibrary : IServerLibrary private static void Vehicle_SetWindowTintFallback(nint _vehicle, byte _tint) => throw new Exceptions.OutdatedSdkException("Vehicle_SetWindowTint", "Vehicle_SetWindowTint SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Vehicle_ToggleExtraDelegate(nint _vehicle, byte _extraID, byte _state); private static void Vehicle_ToggleExtraFallback(nint _vehicle, byte _extraID, byte _state) => throw new Exceptions.OutdatedSdkException("Vehicle_ToggleExtra", "Vehicle_ToggleExtra SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void VirtualEntity_DeleteStreamSyncedMetaDataDelegate(nint _virtualEntity, nint _key); + private static void VirtualEntity_DeleteStreamSyncedMetaDataFallback(nint _virtualEntity, nint _key) => throw new Exceptions.OutdatedSdkException("VirtualEntity_DeleteStreamSyncedMetaData", "VirtualEntity_DeleteStreamSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void VirtualEntity_SetMultipleStreamSyncedMetaDataDelegate(nint _virtualEntity, nint[] keys, nint[] values, ulong _size); + private static void VirtualEntity_SetMultipleStreamSyncedMetaDataFallback(nint _virtualEntity, nint[] keys, nint[] values, ulong _size) => throw new Exceptions.OutdatedSdkException("VirtualEntity_SetMultipleStreamSyncedMetaData", "VirtualEntity_SetMultipleStreamSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void VirtualEntity_SetStreamSyncedMetaDataDelegate(nint _virtualEntity, nint _key, nint _val); + private static void VirtualEntity_SetStreamSyncedMetaDataFallback(nint _virtualEntity, nint _key, nint _val) => throw new Exceptions.OutdatedSdkException("VirtualEntity_SetStreamSyncedMetaData", "VirtualEntity_SetStreamSyncedMetaData SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void VoiceChannel_AddPlayerDelegate(nint _channel, nint _player); private static void VoiceChannel_AddPlayerFallback(nint _channel, nint _player) => throw new Exceptions.OutdatedSdkException("VoiceChannel_AddPlayer", "VoiceChannel_AddPlayer SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void VoiceChannel_DeleteMetaDataDelegate(nint _voiceChannel, nint _key); - private static void VoiceChannel_DeleteMetaDataFallback(nint _voiceChannel, nint _key) => throw new Exceptions.OutdatedSdkException("VoiceChannel_DeleteMetaData", "VoiceChannel_DeleteMetaData SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint VoiceChannel_GetBaseObjectDelegate(nint _voiceChannel); private static nint VoiceChannel_GetBaseObjectFallback(nint _voiceChannel) => throw new Exceptions.OutdatedSdkException("VoiceChannel_GetBaseObject", "VoiceChannel_GetBaseObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint VoiceChannel_GetFilterDelegate(nint _channel); + private static uint VoiceChannel_GetFilterFallback(nint _channel) => throw new Exceptions.OutdatedSdkException("VoiceChannel_GetFilter", "VoiceChannel_GetFilter SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float VoiceChannel_GetMaxDistanceDelegate(nint _channel); private static float VoiceChannel_GetMaxDistanceFallback(nint _channel) => throw new Exceptions.OutdatedSdkException("VoiceChannel_GetMaxDistance", "VoiceChannel_GetMaxDistance SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint VoiceChannel_GetMetaDataDelegate(nint _voiceChannel, nint _key); - private static nint VoiceChannel_GetMetaDataFallback(nint _voiceChannel, nint _key) => throw new Exceptions.OutdatedSdkException("VoiceChannel_GetMetaData", "VoiceChannel_GetMetaData SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte VoiceChannel_HasMetaDataDelegate(nint _voiceChannel, nint _key); - private static byte VoiceChannel_HasMetaDataFallback(nint _voiceChannel, nint _key) => throw new Exceptions.OutdatedSdkException("VoiceChannel_HasMetaData", "VoiceChannel_HasMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong VoiceChannel_GetPlayerCountDelegate(nint _channel); + private static ulong VoiceChannel_GetPlayerCountFallback(nint _channel) => throw new Exceptions.OutdatedSdkException("VoiceChannel_GetPlayerCount", "VoiceChannel_GetPlayerCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint VoiceChannel_GetPlayersDelegate(nint _channel, ulong* _size); + private static nint VoiceChannel_GetPlayersFallback(nint _channel, ulong* _size) => throw new Exceptions.OutdatedSdkException("VoiceChannel_GetPlayers", "VoiceChannel_GetPlayers SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int VoiceChannel_GetPriorityDelegate(nint _channel); + private static int VoiceChannel_GetPriorityFallback(nint _channel) => throw new Exceptions.OutdatedSdkException("VoiceChannel_GetPriority", "VoiceChannel_GetPriority SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte VoiceChannel_HasPlayerDelegate(nint _channel, nint _player); private static byte VoiceChannel_HasPlayerFallback(nint _channel, nint _player) => throw new Exceptions.OutdatedSdkException("VoiceChannel_HasPlayer", "VoiceChannel_HasPlayer SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte VoiceChannel_IsPlayerMutedDelegate(nint _channel, nint _player); @@ -1443,18 +1867,14 @@ public unsafe class ServerLibrary : IServerLibrary private static void VoiceChannel_MutePlayerFallback(nint _channel, nint _player) => throw new Exceptions.OutdatedSdkException("VoiceChannel_MutePlayer", "VoiceChannel_MutePlayer SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void VoiceChannel_RemovePlayerDelegate(nint _channel, nint _player); private static void VoiceChannel_RemovePlayerFallback(nint _channel, nint _player) => throw new Exceptions.OutdatedSdkException("VoiceChannel_RemovePlayer", "VoiceChannel_RemovePlayer SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void VoiceChannel_SetMetaDataDelegate(nint _channel, nint _key, nint _val); - private static void VoiceChannel_SetMetaDataFallback(nint _channel, nint _key, nint _val) => throw new Exceptions.OutdatedSdkException("VoiceChannel_SetMetaData", "VoiceChannel_SetMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void VoiceChannel_SetFilterDelegate(nint _channel, uint _filter); + private static void VoiceChannel_SetFilterFallback(nint _channel, uint _filter) => throw new Exceptions.OutdatedSdkException("VoiceChannel_SetFilter", "VoiceChannel_SetFilter SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void VoiceChannel_SetPriorityDelegate(nint _channel, int _priority); + private static void VoiceChannel_SetPriorityFallback(nint _channel, int _priority) => throw new Exceptions.OutdatedSdkException("VoiceChannel_SetPriority", "VoiceChannel_SetPriority SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void VoiceChannel_UnmutePlayerDelegate(nint _channel, nint _player); private static void VoiceChannel_UnmutePlayerFallback(nint _channel, nint _player) => throw new Exceptions.OutdatedSdkException("VoiceChannel_UnmutePlayer", "VoiceChannel_UnmutePlayer SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int WorldObject_GetDimensionDelegate(nint _worldObject); - private static int WorldObject_GetDimensionFallback(nint _worldObject) => throw new Exceptions.OutdatedSdkException("WorldObject_GetDimension", "WorldObject_GetDimension SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WorldObject_GetPositionCoordsDelegate(nint _worldObject, float* _position_x, float* _position_y, float* _position_z, int* _dimension); private static void WorldObject_GetPositionCoordsFallback(nint _worldObject, float* _position_x, float* _position_y, float* _position_z, int* _dimension) => throw new Exceptions.OutdatedSdkException("WorldObject_GetPositionCoords", "WorldObject_GetPositionCoords SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WorldObject_SetDimensionDelegate(nint _worldObject, int _dimension); - private static void WorldObject_SetDimensionFallback(nint _worldObject, int _dimension) => throw new Exceptions.OutdatedSdkException("WorldObject_SetDimension", "WorldObject_SetDimension SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WorldObject_SetPositionDelegate(nint _worldObject, Vector3 _pos); - private static void WorldObject_SetPositionFallback(nint _worldObject, Vector3 _pos) => throw new Exceptions.OutdatedSdkException("WorldObject_SetPosition", "WorldObject_SetPosition SDK method is outdated. Please update your module nuget"); public bool Outdated { get; private set; } private IntPtr GetUnmanagedPtr(IDictionary funcTable, ulong hash, T fn) where T : Delegate { if (funcTable.TryGetValue(hash, out var ptr)) return ptr; @@ -1464,53 +1884,106 @@ private IntPtr GetUnmanagedPtr(IDictionary funcTable, ulong ha public ServerLibrary(Dictionary funcTable) { if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true; - else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 10988236633214279111UL) Outdated = true; - Blip_AttachedTo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15602966080933483258UL, Blip_AttachedToFallback); - Blip_IsAttached = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7870458832410754161UL, Blip_IsAttachedFallback); + else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 4677548953854785821UL) Outdated = true; + BaseObject_DeleteSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8228424877092269355UL, BaseObject_DeleteSyncedMetaDataFallback); + BaseObject_SetMultipleSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1390762125822890831UL, BaseObject_SetMultipleSyncedMetaDataFallback); + BaseObject_SetSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8002999088966424231UL, BaseObject_SetSyncedMetaDataFallback); + Blip_AddTargetPlayer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12411235729553386187UL, Blip_AddTargetPlayerFallback); + Blip_GetTargets = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13264671303817378265UL, Blip_GetTargetsFallback); + Blip_RemoveTargetPlayer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6273024513167993628UL, Blip_RemoveTargetPlayerFallback); + Blip_SetGlobal = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5596778883584308319UL, Blip_SetGlobalFallback); + Checkpoint_DeleteStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5415957633356864271UL, Checkpoint_DeleteStreamSyncedMetaDataFallback); + Checkpoint_GetStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14738715946758626624UL, Checkpoint_GetStreamSyncedMetaDataFallback); + Checkpoint_HasStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4696455498774349315UL, Checkpoint_HasStreamSyncedMetaDataFallback); + Checkpoint_SetMultipleStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17831845381305059327UL, Checkpoint_SetMultipleStreamSyncedMetaDataFallback); + Checkpoint_SetStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7004050212400313487UL, Checkpoint_SetStreamSyncedMetaDataFallback); ColShape_GetColShapeType = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18034368716132758796UL, ColShape_GetColShapeTypeFallback); ColShape_IsPlayersOnly = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 123106227395069751UL, ColShape_IsPlayersOnlyFallback); ColShape_SetPlayersOnly = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16332474445990008748UL, ColShape_SetPlayersOnlyFallback); ConnectionInfo_Accept = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12411302106891962144UL, ConnectionInfo_AcceptFallback); ConnectionInfo_Decline = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17030579920009662077UL, ConnectionInfo_DeclineFallback); ConnectionInfo_GetAuthToken = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8194004283135524333UL, ConnectionInfo_GetAuthTokenFallback); + ConnectionInfo_GetBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12397496971801767822UL, ConnectionInfo_GetBaseObjectFallback); ConnectionInfo_GetBranch = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1577439110274874884UL, ConnectionInfo_GetBranchFallback); ConnectionInfo_GetBuild = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14204191833155309704UL, ConnectionInfo_GetBuildFallback); ConnectionInfo_GetCdnUrl = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5988681596904693572UL, ConnectionInfo_GetCdnUrlFallback); + ConnectionInfo_GetCloudAuthResult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7415605567391116903UL, ConnectionInfo_GetCloudAuthResultFallback); + ConnectionInfo_GetCloudID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7998061229071288348UL, ConnectionInfo_GetCloudIDFallback); ConnectionInfo_GetDiscordUserID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4175744399917476392UL, ConnectionInfo_GetDiscordUserIDFallback); ConnectionInfo_GetHwIdExHash = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3151831504154255688UL, ConnectionInfo_GetHwIdExHashFallback); ConnectionInfo_GetHwIdHash = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11409383581668438027UL, ConnectionInfo_GetHwIdHashFallback); + ConnectionInfo_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8080268107975854795UL, ConnectionInfo_GetIDFallback); ConnectionInfo_GetIp = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14736154404219321063UL, ConnectionInfo_GetIpFallback); ConnectionInfo_GetIsDebug = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13717058348136733066UL, ConnectionInfo_GetIsDebugFallback); ConnectionInfo_GetName = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6953750044596480329UL, ConnectionInfo_GetNameFallback); ConnectionInfo_GetPasswordHash = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18130628108130086100UL, ConnectionInfo_GetPasswordHashFallback); ConnectionInfo_GetSocialId = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10464338232675126241UL, ConnectionInfo_GetSocialIdFallback); - Core_CreateBlip = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13157171113093199885UL, Core_CreateBlipFallback); - Core_CreateBlipAttached = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4981285243233056818UL, Core_CreateBlipAttachedFallback); - Core_CreateCheckpoint = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10943478630097466465UL, Core_CreateCheckpointFallback); - Core_CreateColShapeCircle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16729647947124983732UL, Core_CreateColShapeCircleFallback); - Core_CreateColShapeCube = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15746501057225592383UL, Core_CreateColShapeCubeFallback); - Core_CreateColShapeCylinder = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9007404345448984483UL, Core_CreateColShapeCylinderFallback); - Core_CreateColShapePolygon = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18350754907890738983UL, Core_CreateColShapePolygonFallback); - Core_CreateColShapeRectangle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2431987633163786692UL, Core_CreateColShapeRectangleFallback); - Core_CreateColShapeSphere = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 263411922103395123UL, Core_CreateColShapeSphereFallback); - Core_CreateVehicle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6991502881874526937UL, Core_CreateVehicleFallback); - Core_CreateVoiceChannel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12738158914355521961UL, Core_CreateVoiceChannelFallback); + ConnectionInfo_GetSocialName = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12079559810042444284UL, ConnectionInfo_GetSocialNameFallback); + ConnectionInfo_GetText = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15232547943166326905UL, ConnectionInfo_GetTextFallback); + ConnectionInfo_IsAccepted = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8806505177995284480UL, ConnectionInfo_IsAcceptedFallback); + ConnectionInfo_SetText = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13680172646316204766UL, ConnectionInfo_SetTextFallback); + Core_AddClientConfigKey = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17282535440709139868UL, Core_AddClientConfigKeyFallback); + Core_CreateBlip = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16420035482870248864UL, Core_CreateBlipFallback); + Core_CreateBlipAttached = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6946126881626778655UL, Core_CreateBlipAttachedFallback); + Core_CreateCheckpoint = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3410920088129362997UL, Core_CreateCheckpointFallback); + Core_CreateMarker = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9200413248217250533UL, Core_CreateMarkerFallback); + Core_CreateObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6778852446992337891UL, Core_CreateObjectFallback); + Core_CreatePed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16295351054968805916UL, Core_CreatePedFallback); + Core_CreateVehicle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 494948204560226296UL, Core_CreateVehicleFallback); + Core_CreateVoiceChannel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16510685691058823138UL, Core_CreateVoiceChannelFallback); Core_DeallocPedModelInfo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7933678493039322900UL, Core_DeallocPedModelInfoFallback); Core_DeallocVehicleModelInfo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11272860948152964480UL, Core_DeallocVehicleModelInfoFallback); + Core_DeallocWeaponModelInfo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8996121275088415862UL, Core_DeallocWeaponModelInfoFallback); Core_DeleteSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3060359612519609111UL, Core_DeleteSyncedMetaDataFallback); Core_DestroyCheckpoint = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15803665224272553601UL, Core_DestroyCheckpointFallback); Core_DestroyColShape = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16312284234900575747UL, Core_DestroyColShapeFallback); Core_DestroyVehicle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14452794280175707515UL, Core_DestroyVehicleFallback); Core_DestroyVoiceChannel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10333270135403224879UL, Core_DestroyVoiceChannelFallback); - Core_GetNetTime = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15652019729912249391UL, Core_GetNetTimeFallback); + Core_GetClosestEntities = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12057843286905322939UL, Core_GetClosestEntitiesFallback); + Core_GetClosestEntitiesCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 419502286495548608UL, Core_GetClosestEntitiesCountFallback); + Core_GetColShapeTickRate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12193205314801108926UL, Core_GetColShapeTickRateFallback); + Core_GetConnectionInfos = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13972691773502904173UL, Core_GetConnectionInfosFallback); + Core_GetEntitiesInDimension = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11709139263193592519UL, Core_GetEntitiesInDimensionFallback); + Core_GetEntitiesInDimensionCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12784287737200780200UL, Core_GetEntitiesInDimensionCountFallback); + Core_GetEntitiesInRange = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4074854033126410216UL, Core_GetEntitiesInRangeFallback); + Core_GetEntitiesInRangeCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6795936790869684439UL, Core_GetEntitiesInRangeCountFallback); + Core_GetLoadedVehicleModels = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5931751806478777368UL, Core_GetLoadedVehicleModelsFallback); + Core_GetMaxStreamingObjects = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3581368898059030296UL, Core_GetMaxStreamingObjectsFallback); + Core_GetMaxStreamingPeds = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6049887365767315904UL, Core_GetMaxStreamingPedsFallback); + Core_GetMaxStreamingVehicles = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17973186281360658901UL, Core_GetMaxStreamingVehiclesFallback); + Core_GetMigrationDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8442828755754917489UL, Core_GetMigrationDistanceFallback); + Core_GetMigrationThreadCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5757616980701278724UL, Core_GetMigrationThreadCountFallback); + Core_GetMigrationTickRate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9990683150417934189UL, Core_GetMigrationTickRateFallback); Core_GetPedModelInfo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7718568480211772772UL, Core_GetPedModelInfoFallback); Core_GetRootDirectory = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12125306445698504265UL, Core_GetRootDirectoryFallback); Core_GetServerConfig = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14723504540957489106UL, Core_GetServerConfigFallback); + Core_GetStreamerThreadCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11485819929016706419UL, Core_GetStreamerThreadCountFallback); + Core_GetStreamingDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5259073486086708385UL, Core_GetStreamingDistanceFallback); + Core_GetStreamingTickRate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2935897410090667261UL, Core_GetStreamingTickRateFallback); + Core_GetSyncReceiveThreadCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11979724515773641552UL, Core_GetSyncReceiveThreadCountFallback); + Core_GetSyncSendThreadCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3248388327195984217UL, Core_GetSyncSendThreadCountFallback); Core_GetVehicleModelInfo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4351657857321681174UL, Core_GetVehicleModelInfoFallback); + Core_GetWeaponModelByHash = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5867649830401585497UL, Core_GetWeaponModelByHashFallback); + Core_HasBenefit = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6859249960286086898UL, Core_HasBenefitFallback); Core_HashPassword = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11016797678327133571UL, Core_HashPasswordFallback); + Core_RegisterMetric = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5640834261493040151UL, Core_RegisterMetricFallback); Core_RestartResource = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14370739159812248240UL, Core_RestartResourceFallback); + Core_SetColShapeTickRate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3300756285428999685UL, Core_SetColShapeTickRateFallback); + Core_SetMaxStreamingObjects = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2770150732579766135UL, Core_SetMaxStreamingObjectsFallback); + Core_SetMaxStreamingPeds = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2068791324280202687UL, Core_SetMaxStreamingPedsFallback); + Core_SetMaxStreamingVehicles = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12359126741190050656UL, Core_SetMaxStreamingVehiclesFallback); + Core_SetMigrationDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6079120246637508868UL, Core_SetMigrationDistanceFallback); + Core_SetMigrationThreadCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3865724604035409059UL, Core_SetMigrationThreadCountFallback); + Core_SetMigrationTickRate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9793148306828961512UL, Core_SetMigrationTickRateFallback); Core_SetPassword = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6443050816994465854UL, Core_SetPasswordFallback); + Core_SetStreamerThreadCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17101477648578187326UL, Core_SetStreamerThreadCountFallback); + Core_SetStreamingDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3505591646278034100UL, Core_SetStreamingDistanceFallback); + Core_SetStreamingTickRate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18022053272227914552UL, Core_SetStreamingTickRateFallback); Core_SetSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15257521334482717721UL, Core_SetSyncedMetaDataFallback); + Core_SetSyncReceiveThreadCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4297479078125366943UL, Core_SetSyncReceiveThreadCountFallback); + Core_SetSyncSendThreadCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16616871031606457380UL, Core_SetSyncSendThreadCountFallback); + Core_SetVoiceExternal = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3229711516690573217UL, Core_SetVoiceExternalFallback); + Core_SetVoiceExternalPublic = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1331513094967507660UL, Core_SetVoiceExternalPublicFallback); Core_SetWorldProfiler = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10444519920811589155UL, Core_SetWorldProfilerFallback); Core_StartResource = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16286692558347341301UL, Core_StartResourceFallback); Core_StopResource = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6124037131742433471UL, Core_StopResourceFallback); @@ -1519,34 +1992,67 @@ public ServerLibrary(Dictionary funcTable) Core_TriggerClientEvent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12171087854734907223UL, Core_TriggerClientEventFallback); Core_TriggerClientEventForAll = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9104514502849926149UL, Core_TriggerClientEventForAllFallback); Core_TriggerClientEventForSome = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5959099227636084384UL, Core_TriggerClientEventForSomeFallback); + Core_TriggerClientEventUnreliable = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4821179867491879744UL, Core_TriggerClientEventUnreliableFallback); + Core_TriggerClientEventUnreliableForAll = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9578627964183564598UL, Core_TriggerClientEventUnreliableForAllFallback); + Core_TriggerClientEventUnreliableForSome = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14557546483922608997UL, Core_TriggerClientEventUnreliableForSomeFallback); + Core_TriggerClientRPCAnswer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15767989313971387723UL, Core_TriggerClientRPCAnswerFallback); + Core_TriggerClientRPCEvent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14208929126079992758UL, Core_TriggerClientRPCEventFallback); Core_TriggerServerEvent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4092140335578989631UL, Core_TriggerServerEventFallback); + Core_UnregisterMetric = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17237210604041123822UL, Core_UnregisterMetricFallback); + Entity_AttachToEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11965009764904998252UL, Entity_AttachToEntityFallback); + Entity_AttachToEntity_BoneString = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4813711775676193020UL, Entity_AttachToEntity_BoneStringFallback); Entity_DeleteStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10985243845337635807UL, Entity_DeleteStreamSyncedMetaDataFallback); - Entity_DeleteSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12452941389796187079UL, Entity_DeleteSyncedMetaDataFallback); + Entity_Detach = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 720717099291838457UL, Entity_DetachFallback); Entity_GetStreamed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10576887087871473326UL, Entity_GetStreamedFallback); + Entity_GetStreamingDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12930356950677173033UL, Entity_GetStreamingDistanceFallback); + Entity_GetTimestamp = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3963088656254240248UL, Entity_GetTimestampFallback); Entity_GetVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10813148612330668827UL, Entity_GetVisibleFallback); Entity_HasCollision = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2223226199436541021UL, Entity_HasCollisionFallback); - Entity_IsFrozen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7430146286071665147UL, Entity_IsFrozenFallback); Entity_SetCollision = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10673322505892191972UL, Entity_SetCollisionFallback); - Entity_SetFrozen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2663061204279682928UL, Entity_SetFrozenFallback); + Entity_SetMultipleStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5985306302153035853UL, Entity_SetMultipleStreamSyncedMetaDataFallback); Entity_SetNetOwner = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6937824812303569788UL, Entity_SetNetOwnerFallback); - Entity_SetRotation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7991844148745066430UL, Entity_SetRotationFallback); Entity_SetStreamed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6004628797499736605UL, Entity_SetStreamedFallback); + Entity_SetStreamingDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13173445283048314724UL, Entity_SetStreamingDistanceFallback); Entity_SetStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12798418058428333585UL, Entity_SetStreamSyncedMetaDataFallback); - Entity_SetSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11679630926746145425UL, Entity_SetSyncedMetaDataFallback); Entity_SetVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8026011842118229214UL, Entity_SetVisibleFallback); - Event_PlayerBeforeConnect_Cancel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1109645609807659186UL, Event_PlayerBeforeConnect_CancelFallback); Event_WeaponDamageEvent_SetDamageValue = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18440396865533386791UL, Event_WeaponDamageEvent_SetDamageValueFallback); + Metric_Begin = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2348810001298180138UL, Metric_BeginFallback); + Metric_End = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13016512038826983106UL, Metric_EndFallback); + Metric_GetName = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8652629169459184520UL, Metric_GetNameFallback); + Metric_GetValue = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16033500183040421617UL, Metric_GetValueFallback); + Metric_SetValue = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13198892627580896636UL, Metric_SetValueFallback); + Object_ActivatePhysics = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17585830173881425980UL, Object_ActivatePhysicsFallback); + Object_PlaceOnGroundProperly = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16593704804065749058UL, Object_PlaceOnGroundProperlyFallback); + Object_SetAlpha = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1335394386529232328UL, Object_SetAlphaFallback); + Object_SetLodDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14785658894799737749UL, Object_SetLodDistanceFallback); + Object_SetTextureVariation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2992998067089316658UL, Object_SetTextureVariationFallback); + Ped_SetArmour = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4244342379127106529UL, Ped_SetArmourFallback); + Ped_SetCurrentWeapon = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1890144317981520558UL, Ped_SetCurrentWeaponFallback); + Ped_SetHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15651278310887155719UL, Ped_SetHealthFallback); + Ped_SetMaxHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 487582698440451683UL, Ped_SetMaxHealthFallback); + Player_AddDecoration = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11189476182745634495UL, Player_AddDecorationFallback); Player_AddWeaponComponent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9305362021789278268UL, Player_AddWeaponComponentFallback); - Player_AttachToEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5999385547389535594UL, Player_AttachToEntityFallback); - Player_AttachToEntity_BoneString = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13528401515040572380UL, Player_AttachToEntity_BoneStringFallback); Player_ClearBloodDamage = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1935399752104807234UL, Player_ClearBloodDamageFallback); + Player_ClearDecorations = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1193224569935073604UL, Player_ClearDecorationsFallback); Player_ClearProps = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14293729102633233291UL, Player_ClearPropsFallback); + Player_ClearTasks = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2394928316223850939UL, Player_ClearTasksFallback); + Player_DeallocAmmoFlags = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17674808600712417948UL, Player_DeallocAmmoFlagsFallback); + Player_DeallocVehicleModelInfo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10260708090721922895UL, Player_DeallocVehicleModelInfoFallback); Player_DeleteLocalMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18350138927152444768UL, Player_DeleteLocalMetaDataFallback); Player_Despawn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10068978925729858744UL, Player_DespawnFallback); - Player_Detach = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10487167350979491509UL, Player_DetachFallback); + Player_GetAmmo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6890209545812653225UL, Player_GetAmmoFallback); + Player_GetAmmoFlags = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10446003059764787426UL, Player_GetAmmoFlagsFallback); + Player_GetAmmoMax = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12499323796185454576UL, Player_GetAmmoMaxFallback); + Player_GetAmmoMax100 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13784986107578511323UL, Player_GetAmmoMax100Fallback); + Player_GetAmmoMax50 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11704988286424373327UL, Player_GetAmmoMax50Fallback); + Player_GetAmmoSpecialType = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8762610273524807230UL, Player_GetAmmoSpecialTypeFallback); Player_GetAuthToken = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1189077145064378629UL, Player_GetAuthTokenFallback); + Player_GetBloodDamageBase64 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3564984624015930350UL, Player_GetBloodDamageBase64Fallback); Player_GetClothes = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5651306477145172672UL, Player_GetClothesFallback); + Player_GetCloudAuthResult = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12981308539590504679UL, Player_GetCloudAuthResultFallback); + Player_GetCloudID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16882896624777621388UL, Player_GetCloudIDFallback); Player_GetCurrentWeaponTintIndex = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11764387330920927539UL, Player_GetCurrentWeaponTintIndexFallback); + Player_GetDecorations = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7011145495489366030UL, Player_GetDecorationsFallback); Player_GetDiscordId = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4212976016289999495UL, Player_GetDiscordIdFallback); Player_GetDlcClothes = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1024671376313962844UL, Player_GetDlcClothesFallback); Player_GetDlcProps = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13456080432183428807UL, Player_GetDlcPropsFallback); @@ -1567,26 +2073,40 @@ public ServerLibrary(Dictionary funcTable) Player_GetPing = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9418660647453374374UL, Player_GetPingFallback); Player_GetProps = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8714568292526998675UL, Player_GetPropsFallback); Player_GetSendNames = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7490273379384857895UL, Player_GetSendNamesFallback); + Player_GetSocialClubName = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17452312619664438538UL, Player_GetSocialClubNameFallback); Player_GetSocialID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17807664466527734655UL, Player_GetSocialIDFallback); + Player_GetWeaponAmmo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2928381910125083497UL, Player_GetWeaponAmmoFallback); Player_GetWeaponCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17600594564491002166UL, Player_GetWeaponCountFallback); Player_GetWeapons = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3618744060322552484UL, Player_GetWeaponsFallback); Player_GetWeaponTintIndex = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7900539810461516189UL, Player_GetWeaponTintIndexFallback); Player_GiveWeapon = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5246190565479056930UL, Player_GiveWeaponFallback); Player_HasLocalMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 887625289441263538UL, Player_HasLocalMetaDataFallback); + Player_HasWeapon = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6222690685225109950UL, Player_HasWeaponFallback); Player_HasWeaponComponent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18283733509389143244UL, Player_HasWeaponComponentFallback); Player_IsConnected = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16462043613168172496UL, Player_IsConnectedFallback); Player_IsCrouching = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14630872318254829849UL, Player_IsCrouchingFallback); Player_IsEntityInStreamingRange = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4495638180817996194UL, Player_IsEntityInStreamingRangeFallback); + Player_IsNetworkOwnershipDisabled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11351828541605651622UL, Player_IsNetworkOwnershipDisabledFallback); Player_IsStealthy = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13440527787182826435UL, Player_IsStealthyFallback); Player_IsSuperJumpEnabled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6165254230688543493UL, Player_IsSuperJumpEnabledFallback); Player_Kick = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1188245696791696101UL, Player_KickFallback); Player_PlayAmbientSpeech = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8410706621915957253UL, Player_PlayAmbientSpeechFallback); - Player_RemoveAllWeapons = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17492760648600181256UL, Player_RemoveAllWeaponsFallback); + Player_PlayAnimation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3904282782623490761UL, Player_PlayAnimationFallback); + Player_PlayScenario = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10025365525415543731UL, Player_PlayScenarioFallback); + Player_RemoveAllWeapons = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2232062854990357196UL, Player_RemoveAllWeaponsFallback); + Player_RemoveDecoration = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3139723963307924640UL, Player_RemoveDecorationFallback); Player_RemoveFaceFeature = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1204109734587833282UL, Player_RemoveFaceFeatureFallback); Player_RemoveHeadOverlay = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12300710546613769705UL, Player_RemoveHeadOverlayFallback); Player_RemoveWeapon = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6739305111416325852UL, Player_RemoveWeaponFallback); Player_RemoveWeaponComponent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 937601034617427157UL, Player_RemoveWeaponComponentFallback); + Player_SetAmmo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7259744676523289652UL, Player_SetAmmoFallback); + Player_SetAmmoFlags = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5085700603299897862UL, Player_SetAmmoFlagsFallback); + Player_SetAmmoMax = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10836018786747292423UL, Player_SetAmmoMaxFallback); + Player_SetAmmoMax100 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11695668961107082902UL, Player_SetAmmoMax100Fallback); + Player_SetAmmoMax50 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8083052449033648842UL, Player_SetAmmoMax50Fallback); + Player_SetAmmoSpecialType = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8622364715578198845UL, Player_SetAmmoSpecialTypeFallback); Player_SetArmor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5448975639456714442UL, Player_SetArmorFallback); + Player_SetBloodDamageBase64 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12124194162167268069UL, Player_SetBloodDamageBase64Fallback); Player_SetClothes = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11224074188063298114UL, Player_SetClothesFallback); Player_SetCurrentWeapon = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1968418760268978302UL, Player_SetCurrentWeaponFallback); Player_SetDateTime = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9083292309969581317UL, Player_SetDateTimeFallback); @@ -1608,20 +2128,19 @@ public ServerLibrary(Dictionary funcTable) Player_SetMaxArmor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 415910985208965186UL, Player_SetMaxArmorFallback); Player_SetMaxHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10929207046366144781UL, Player_SetMaxHealthFallback); Player_SetModel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13570087722085690158UL, Player_SetModelFallback); + Player_SetNetworkOwnershipDisabled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4996385511099198999UL, Player_SetNetworkOwnershipDisabledFallback); Player_SetProps = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6668196575965816060UL, Player_SetPropsFallback); Player_SetSendNames = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15189973730348812706UL, Player_SetSendNamesFallback); + Player_SetWeaponAmmo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13801899382441164836UL, Player_SetWeaponAmmoFallback); Player_SetWeaponTintIndex = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 968905854061954392UL, Player_SetWeaponTintIndexFallback); Player_SetWeather = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1822619990745107975UL, Player_SetWeatherFallback); Player_Spawn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5945475651017052621UL, Player_SpawnFallback); - Resource_GetConfig = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15645223790185503409UL, Resource_GetConfigFallback); Resource_GetMain = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8337898451868765791UL, Resource_GetMainFallback); Resource_GetPath = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10659090672396987581UL, Resource_GetPathFallback); Resource_Start = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2255534561568952884UL, Resource_StartFallback); Resource_Stop = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7462267939906784556UL, Resource_StopFallback); - Vehicle_AttachToEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7941683858471108696UL, Vehicle_AttachToEntityFallback); - Vehicle_AttachToEntity_BoneString = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7002469465316095428UL, Vehicle_AttachToEntity_BoneStringFallback); - Vehicle_Detach = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6132283343699251351UL, Vehicle_DetachFallback); Vehicle_DoesWheelHasTire = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8416964569973671667UL, Vehicle_DoesWheelHasTireFallback); + Vehicle_GetAccelerationLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18149745752870644286UL, Vehicle_GetAccelerationLevelFallback); Vehicle_GetAppearanceDataBase64 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3632203335502296505UL, Vehicle_GetAppearanceDataBase64Fallback); Vehicle_GetArmoredWindowHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7966408129250273744UL, Vehicle_GetArmoredWindowHealthFallback); Vehicle_GetArmoredWindowShootCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1975272227796355721UL, Vehicle_GetArmoredWindowShootCountFallback); @@ -1630,6 +2149,7 @@ public ServerLibrary(Dictionary funcTable) Vehicle_GetBoatAnchor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15746529459417614900UL, Vehicle_GetBoatAnchorFallback); Vehicle_GetBodyAdditionalHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1269347486506827783UL, Vehicle_GetBodyAdditionalHealthFallback); Vehicle_GetBodyHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2235337646201152502UL, Vehicle_GetBodyHealthFallback); + Vehicle_GetBrakeLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8859399925791466997UL, Vehicle_GetBrakeLevelFallback); Vehicle_GetBumperDamageLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2929119416191807641UL, Vehicle_GetBumperDamageLevelFallback); Vehicle_GetCounterMeasureCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7262431296410707143UL, Vehicle_GetCounterMeasureCountFallback); Vehicle_GetCustomTires = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16298627533374836407UL, Vehicle_GetCustomTiresFallback); @@ -1638,7 +2158,7 @@ public ServerLibrary(Dictionary funcTable) Vehicle_GetDirtLevel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1312826368700331414UL, Vehicle_GetDirtLevelFallback); Vehicle_GetDoorState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3655237348473428026UL, Vehicle_GetDoorStateFallback); Vehicle_GetDriver = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8554773347420139463UL, Vehicle_GetDriverFallback); - Vehicle_GetDriverID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6476166832678215577UL, Vehicle_GetDriverIDFallback); + Vehicle_GetDriverID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1447949168829725163UL, Vehicle_GetDriverIDFallback); Vehicle_GetEngineHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8002690258276396481UL, Vehicle_GetEngineHealthFallback); Vehicle_GetGameStateBase64 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4097244648501164820UL, Vehicle_GetGameStateBase64Fallback); Vehicle_GetHeadlightColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10761034670704244318UL, Vehicle_GetHeadlightColorFallback); @@ -1663,6 +2183,7 @@ public ServerLibrary(Dictionary funcTable) Vehicle_GetPearlColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15213363766571057872UL, Vehicle_GetPearlColorFallback); Vehicle_GetPrimaryColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6361531094469306918UL, Vehicle_GetPrimaryColorFallback); Vehicle_GetPrimaryColorRGB = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12628655035446474558UL, Vehicle_GetPrimaryColorRGBFallback); + Vehicle_GetQuaternion = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2293158668820125317UL, Vehicle_GetQuaternionFallback); Vehicle_GetRadioStationIndex = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4283418015941180107UL, Vehicle_GetRadioStationIndexFallback); Vehicle_GetRearWheelVariation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3402335583322585123UL, Vehicle_GetRearWheelVariationFallback); Vehicle_GetRepairsCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13519520674920899414UL, Vehicle_GetRepairsCountFallback); @@ -1705,6 +2226,7 @@ public ServerLibrary(Dictionary funcTable) Vehicle_IsExtraOn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18360767208271729044UL, Vehicle_IsExtraOnFallback); Vehicle_IsFlamethrowerActive = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 292816396413146289UL, Vehicle_IsFlamethrowerActiveFallback); Vehicle_IsHandbrakeActive = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11030244632469291311UL, Vehicle_IsHandbrakeActiveFallback); + Vehicle_IsHornActive = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 390999762722967828UL, Vehicle_IsHornActiveFallback); Vehicle_IsLightDamaged = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5253270677373576288UL, Vehicle_IsLightDamagedFallback); Vehicle_IsManualEngineControl = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17339945504294461378UL, Vehicle_IsManualEngineControlFallback); Vehicle_IsNeonActive = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6810098793323566371UL, Vehicle_IsNeonActiveFallback); @@ -1766,6 +2288,7 @@ public ServerLibrary(Dictionary funcTable) Vehicle_SetPetrolTankHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8082406915422712268UL, Vehicle_SetPetrolTankHealthFallback); Vehicle_SetPrimaryColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1331330944977889229UL, Vehicle_SetPrimaryColorFallback); Vehicle_SetPrimaryColorRGB = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10226234016994918718UL, Vehicle_SetPrimaryColorRGBFallback); + Vehicle_SetQuaternion = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3644573911776237792UL, Vehicle_SetQuaternionFallback); Vehicle_SetRadioStationIndex = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10139114821440740454UL, Vehicle_SetRadioStationIndexFallback); Vehicle_SetRearWheels = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11398193715753714450UL, Vehicle_SetRearWheelsFallback); Vehicle_SetRocketRefuelSpeed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13400577352062327287UL, Vehicle_SetRocketRefuelSpeedFallback); @@ -1808,23 +2331,25 @@ public ServerLibrary(Dictionary funcTable) Vehicle_SetWindowOpened = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15969735534680114761UL, Vehicle_SetWindowOpenedFallback); Vehicle_SetWindowTint = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9528711699442427461UL, Vehicle_SetWindowTintFallback); Vehicle_ToggleExtra = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1279447449950278570UL, Vehicle_ToggleExtraFallback); + VirtualEntity_DeleteStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7898816756250674587UL, VirtualEntity_DeleteStreamSyncedMetaDataFallback); + VirtualEntity_SetMultipleStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10681660605716276369UL, VirtualEntity_SetMultipleStreamSyncedMetaDataFallback); + VirtualEntity_SetStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 917775846368661429UL, VirtualEntity_SetStreamSyncedMetaDataFallback); VoiceChannel_AddPlayer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 702226521113983568UL, VoiceChannel_AddPlayerFallback); - VoiceChannel_DeleteMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16738120789012782745UL, VoiceChannel_DeleteMetaDataFallback); VoiceChannel_GetBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11734947529465976092UL, VoiceChannel_GetBaseObjectFallback); + VoiceChannel_GetFilter = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15469042501608647536UL, VoiceChannel_GetFilterFallback); VoiceChannel_GetMaxDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6192611943068059113UL, VoiceChannel_GetMaxDistanceFallback); - VoiceChannel_GetMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8356047581859527124UL, VoiceChannel_GetMetaDataFallback); - VoiceChannel_HasMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16274950114573272151UL, VoiceChannel_HasMetaDataFallback); + VoiceChannel_GetPlayerCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15224862037481152575UL, VoiceChannel_GetPlayerCountFallback); + VoiceChannel_GetPlayers = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11115510356513053865UL, VoiceChannel_GetPlayersFallback); + VoiceChannel_GetPriority = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13318600532201701611UL, VoiceChannel_GetPriorityFallback); VoiceChannel_HasPlayer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5581422978656581114UL, VoiceChannel_HasPlayerFallback); VoiceChannel_IsPlayerMuted = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17699707908321743267UL, VoiceChannel_IsPlayerMutedFallback); VoiceChannel_IsSpatial = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12897039523672598867UL, VoiceChannel_IsSpatialFallback); VoiceChannel_MutePlayer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13531299650637927664UL, VoiceChannel_MutePlayerFallback); VoiceChannel_RemovePlayer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12004786576328264047UL, VoiceChannel_RemovePlayerFallback); - VoiceChannel_SetMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15510848492294686387UL, VoiceChannel_SetMetaDataFallback); + VoiceChannel_SetFilter = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 954659317800510615UL, VoiceChannel_SetFilterFallback); + VoiceChannel_SetPriority = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11160223830254443614UL, VoiceChannel_SetPriorityFallback); VoiceChannel_UnmutePlayer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10269140636860300589UL, VoiceChannel_UnmutePlayerFallback); - WorldObject_GetDimension = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17276300057698662707UL, WorldObject_GetDimensionFallback); WorldObject_GetPositionCoords = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16135129168754632706UL, WorldObject_GetPositionCoordsFallback); - WorldObject_SetDimension = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8281427375806201830UL, WorldObject_SetDimensionFallback); - WorldObject_SetPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15027192667173077188UL, WorldObject_SetPositionFallback); } } } \ No newline at end of file diff --git a/api/AltV.Net.CApi/Libraries/SharedLibrary.cs b/api/AltV.Net.CApi/Libraries/SharedLibrary.cs index be1c8a18e..1fa312190 100644 --- a/api/AltV.Net.CApi/Libraries/SharedLibrary.cs +++ b/api/AltV.Net.CApi/Libraries/SharedLibrary.cs @@ -10,24 +10,35 @@ namespace AltV.Net.CApi.Libraries public unsafe interface ISharedLibrary { public bool Outdated { get; } + public delegate* unmanaged[Cdecl] Audio_GetID { get; } + public delegate* unmanaged[Cdecl] AudioAttachedOutput_GetID { get; } + public delegate* unmanaged[Cdecl] AudioFilter_GetID { get; } + public delegate* unmanaged[Cdecl] AudioFrontendOutput_GetID { get; } + public delegate* unmanaged[Cdecl] AudioOutput_GetID { get; } + public delegate* unmanaged[Cdecl] AudioWorldOutput_GetID { get; } public delegate* unmanaged[Cdecl] BaseObject_DeleteMetaData { get; } public delegate* unmanaged[Cdecl] BaseObject_DestructCache { get; } public delegate* unmanaged[Cdecl] BaseObject_GetMetaData { get; } + public delegate* unmanaged[Cdecl] BaseObject_GetSyncedMetaData { get; } public delegate* unmanaged[Cdecl] BaseObject_GetType { get; } public delegate* unmanaged[Cdecl] BaseObject_HasMetaData { get; } + public delegate* unmanaged[Cdecl] BaseObject_HasSyncedMetaData { get; } public delegate* unmanaged[Cdecl] BaseObject_SetMetaData { get; } + public delegate* unmanaged[Cdecl] BaseObject_SetMultipleMetaData { get; } public delegate* unmanaged[Cdecl] BaseObject_TryCache { get; } + public delegate* unmanaged[Cdecl] Blip_AttachedTo { get; } public delegate* unmanaged[Cdecl] Blip_Fade { get; } - public delegate* unmanaged[Cdecl] Blip_GetAlpha { get; } + public delegate* unmanaged[Cdecl] Blip_GetAlpha { get; } public delegate* unmanaged[Cdecl] Blip_GetAsFriendly { get; } public delegate* unmanaged[Cdecl] Blip_GetAsHighDetail { get; } public delegate* unmanaged[Cdecl] Blip_GetAsMissionCreator { get; } public delegate* unmanaged[Cdecl] Blip_GetAsShortRange { get; } + public delegate* unmanaged[Cdecl] Blip_GetBlipType { get; } public delegate* unmanaged[Cdecl] Blip_GetBright { get; } - public delegate* unmanaged[Cdecl] Blip_GetCategory { get; } - public delegate* unmanaged[Cdecl] Blip_GetColor { get; } + public delegate* unmanaged[Cdecl] Blip_GetCategory { get; } + public delegate* unmanaged[Cdecl] Blip_GetColor { get; } public delegate* unmanaged[Cdecl] Blip_GetCrewIndicatorVisible { get; } - public delegate* unmanaged[Cdecl] Blip_GetDisplay { get; } + public delegate* unmanaged[Cdecl] Blip_GetDisplay { get; } public delegate* unmanaged[Cdecl] Blip_GetFlashes { get; } public delegate* unmanaged[Cdecl] Blip_GetFlashesAlternate { get; } public delegate* unmanaged[Cdecl] Blip_GetFlashInterval { get; } @@ -35,10 +46,11 @@ public unsafe interface ISharedLibrary public delegate* unmanaged[Cdecl] Blip_GetFriendIndicatorVisible { get; } public delegate* unmanaged[Cdecl] Blip_GetGxtName { get; } public delegate* unmanaged[Cdecl] Blip_GetHeadingIndicatorVisible { get; } + public delegate* unmanaged[Cdecl] Blip_GetID { get; } public delegate* unmanaged[Cdecl] Blip_GetName { get; } public delegate* unmanaged[Cdecl] Blip_GetNumber { get; } public delegate* unmanaged[Cdecl] Blip_GetOutlineIndicatorVisible { get; } - public delegate* unmanaged[Cdecl] Blip_GetPriority { get; } + public delegate* unmanaged[Cdecl] Blip_GetPriority { get; } public delegate* unmanaged[Cdecl] Blip_GetPulse { get; } public delegate* unmanaged[Cdecl] Blip_GetRotation { get; } public delegate* unmanaged[Cdecl] Blip_GetRoute { get; } @@ -47,21 +59,27 @@ public unsafe interface ISharedLibrary public delegate* unmanaged[Cdecl] Blip_GetSecondaryColor { get; } public delegate* unmanaged[Cdecl] Blip_GetShowCone { get; } public delegate* unmanaged[Cdecl] Blip_GetShrinked { get; } - public delegate* unmanaged[Cdecl] Blip_GetSprite { get; } + public delegate* unmanaged[Cdecl] Blip_GetSprite { get; } public delegate* unmanaged[Cdecl] Blip_GetTickVisible { get; } - public delegate* unmanaged[Cdecl] Blip_GetType { get; } public delegate* unmanaged[Cdecl] Blip_GetWorldObject { get; } + public delegate* unmanaged[Cdecl] Blip_IsAttached { get; } public delegate* unmanaged[Cdecl] Blip_IsGlobal { get; } - public delegate* unmanaged[Cdecl] Blip_SetAlpha { get; } + public delegate* unmanaged[Cdecl] Blip_IsHiddenOnLegend { get; } + public delegate* unmanaged[Cdecl] Blip_IsMinimalOnEdge { get; } + public delegate* unmanaged[Cdecl] Blip_IsShortHeightThreshold { get; } + public delegate* unmanaged[Cdecl] Blip_IsUseHeightIndicatorOnEdge { get; } + public delegate* unmanaged[Cdecl] Blip_IsVisible { get; } + public delegate* unmanaged[Cdecl] Blip_SetAlpha { get; } public delegate* unmanaged[Cdecl] Blip_SetAsFriendly { get; } public delegate* unmanaged[Cdecl] Blip_SetAsHighDetail { get; } public delegate* unmanaged[Cdecl] Blip_SetAsMissionCreator { get; } public delegate* unmanaged[Cdecl] Blip_SetAsShortRange { get; } + public delegate* unmanaged[Cdecl] Blip_SetBlipType { get; } public delegate* unmanaged[Cdecl] Blip_SetBright { get; } - public delegate* unmanaged[Cdecl] Blip_SetCategory { get; } - public delegate* unmanaged[Cdecl] Blip_SetColor { get; } + public delegate* unmanaged[Cdecl] Blip_SetCategory { get; } + public delegate* unmanaged[Cdecl] Blip_SetColor { get; } public delegate* unmanaged[Cdecl] Blip_SetCrewIndicatorVisible { get; } - public delegate* unmanaged[Cdecl] Blip_SetDisplay { get; } + public delegate* unmanaged[Cdecl] Blip_SetDisplay { get; } public delegate* unmanaged[Cdecl] Blip_SetFlashes { get; } public delegate* unmanaged[Cdecl] Blip_SetFlashesAlternate { get; } public delegate* unmanaged[Cdecl] Blip_SetFlashInterval { get; } @@ -69,36 +87,77 @@ public unsafe interface ISharedLibrary public delegate* unmanaged[Cdecl] Blip_SetFriendIndicatorVisible { get; } public delegate* unmanaged[Cdecl] Blip_SetGxtName { get; } public delegate* unmanaged[Cdecl] Blip_SetHeadingIndicatorVisible { get; } + public delegate* unmanaged[Cdecl] Blip_SetHiddenOnLegend { get; } + public delegate* unmanaged[Cdecl] Blip_SetMinimalOnEdge { get; } public delegate* unmanaged[Cdecl] Blip_SetName { get; } public delegate* unmanaged[Cdecl] Blip_SetNumber { get; } public delegate* unmanaged[Cdecl] Blip_SetOutlineIndicatorVisible { get; } - public delegate* unmanaged[Cdecl] Blip_SetPriority { get; } + public delegate* unmanaged[Cdecl] Blip_SetPriority { get; } public delegate* unmanaged[Cdecl] Blip_SetPulse { get; } public delegate* unmanaged[Cdecl] Blip_SetRotation { get; } public delegate* unmanaged[Cdecl] Blip_SetRoute { get; } public delegate* unmanaged[Cdecl] Blip_SetRouteColor { get; } public delegate* unmanaged[Cdecl] Blip_SetScaleXY { get; } public delegate* unmanaged[Cdecl] Blip_SetSecondaryColor { get; } + public delegate* unmanaged[Cdecl] Blip_SetShortHeightThreshold { get; } public delegate* unmanaged[Cdecl] Blip_SetShowCone { get; } public delegate* unmanaged[Cdecl] Blip_SetShrinked { get; } - public delegate* unmanaged[Cdecl] Blip_SetSprite { get; } + public delegate* unmanaged[Cdecl] Blip_SetSprite { get; } public delegate* unmanaged[Cdecl] Blip_SetTickVisible { get; } + public delegate* unmanaged[Cdecl] Blip_SetUseHeightIndicatorOnEdge { get; } + public delegate* unmanaged[Cdecl] Blip_SetVisible { get; } public delegate* unmanaged[Cdecl] Checkpoint_GetCheckpointType { get; } public delegate* unmanaged[Cdecl] Checkpoint_GetColor { get; } public delegate* unmanaged[Cdecl] Checkpoint_GetColShape { get; } public delegate* unmanaged[Cdecl] Checkpoint_GetHeight { get; } + public delegate* unmanaged[Cdecl] Checkpoint_GetIconColor { get; } + public delegate* unmanaged[Cdecl] Checkpoint_GetID { get; } public delegate* unmanaged[Cdecl] Checkpoint_GetNextPosition { get; } public delegate* unmanaged[Cdecl] Checkpoint_GetRadius { get; } + public delegate* unmanaged[Cdecl] Checkpoint_GetStreamingDistance { get; } + public delegate* unmanaged[Cdecl] Checkpoint_IsVisible { get; } public delegate* unmanaged[Cdecl] Checkpoint_SetCheckpointType { get; } public delegate* unmanaged[Cdecl] Checkpoint_SetColor { get; } public delegate* unmanaged[Cdecl] Checkpoint_SetHeight { get; } + public delegate* unmanaged[Cdecl] Checkpoint_SetIconColor { get; } public delegate* unmanaged[Cdecl] Checkpoint_SetNextPosition { get; } public delegate* unmanaged[Cdecl] Checkpoint_SetRadius { get; } + public delegate* unmanaged[Cdecl] Checkpoint_SetVisible { get; } + public delegate* unmanaged[Cdecl] ColShape_GetID { get; } public delegate* unmanaged[Cdecl] ColShape_GetWorldObject { get; } - public delegate* unmanaged[Cdecl] ColShape_IsEntityIdIn { get; } + public delegate* unmanaged[Cdecl] ColShape_IsEntityIdIn { get; } public delegate* unmanaged[Cdecl] ColShape_IsEntityIn { get; } public delegate* unmanaged[Cdecl] ColShape_IsPointIn { get; } + public delegate* unmanaged[Cdecl] ColShapeCircle_GetColShape { get; } + public delegate* unmanaged[Cdecl] ColShapeCircle_GetID { get; } + public delegate* unmanaged[Cdecl] ColShapeCircle_GetRadius { get; } + public delegate* unmanaged[Cdecl] ColShapeCuboid_GetColShape { get; } + public delegate* unmanaged[Cdecl] ColShapeCuboid_GetID { get; } + public delegate* unmanaged[Cdecl] ColShapeCuboid_GetMax { get; } + public delegate* unmanaged[Cdecl] ColShapeCuboid_GetMin { get; } + public delegate* unmanaged[Cdecl] ColShapeCylinder_GetColShape { get; } + public delegate* unmanaged[Cdecl] ColShapeCylinder_GetHeight { get; } + public delegate* unmanaged[Cdecl] ColShapeCylinder_GetID { get; } + public delegate* unmanaged[Cdecl] ColShapeCylinder_GetRadius { get; } + public delegate* unmanaged[Cdecl] ColShapePoly_GetColShape { get; } + public delegate* unmanaged[Cdecl] ColShapePoly_GetID { get; } + public delegate* unmanaged[Cdecl] ColShapePoly_GetMaxZ { get; } + public delegate* unmanaged[Cdecl] ColShapePoly_GetMinZ { get; } + public delegate* unmanaged[Cdecl] ColShapePoly_GetPoints { get; } + public delegate* unmanaged[Cdecl] ColShapeRect_GetColShape { get; } + public delegate* unmanaged[Cdecl] ColShapeRect_GetID { get; } + public delegate* unmanaged[Cdecl] ColShapeRect_GetMax { get; } + public delegate* unmanaged[Cdecl] ColShapeRect_GetMin { get; } + public delegate* unmanaged[Cdecl] ColShapeSphere_GetColShape { get; } + public delegate* unmanaged[Cdecl] ColShapeSphere_GetID { get; } + public delegate* unmanaged[Cdecl] ColShapeSphere_GetRadius { get; } public delegate* unmanaged[Cdecl] Config_Delete { get; } + public delegate* unmanaged[Cdecl] Core_CreateColShapeCircle { get; } + public delegate* unmanaged[Cdecl] Core_CreateColShapeCube { get; } + public delegate* unmanaged[Cdecl] Core_CreateColShapeCylinder { get; } + public delegate* unmanaged[Cdecl] Core_CreateColShapePolygon { get; } + public delegate* unmanaged[Cdecl] Core_CreateColShapeRectangle { get; } + public delegate* unmanaged[Cdecl] Core_CreateColShapeSphere { get; } public delegate* unmanaged[Cdecl] Core_CreateMValueBaseObject { get; } public delegate* unmanaged[Cdecl] Core_CreateMValueBool { get; } public delegate* unmanaged[Cdecl] Core_CreateMValueByteArray { get; } @@ -113,25 +172,35 @@ public unsafe interface ISharedLibrary public delegate* unmanaged[Cdecl] Core_CreateMValueUInt { get; } public delegate* unmanaged[Cdecl] Core_CreateMValueVector2 { get; } public delegate* unmanaged[Cdecl] Core_CreateMValueVector3 { get; } + public delegate* unmanaged[Cdecl] Core_CreateVirtualEntity { get; } + public delegate* unmanaged[Cdecl] Core_CreateVirtualEntityGroup { get; } public delegate* unmanaged[Cdecl] Core_DeleteMetaData { get; } public delegate* unmanaged[Cdecl] Core_DestroyBaseObject { get; } public delegate* unmanaged[Cdecl] Core_FileExists { get; } public delegate* unmanaged[Cdecl] Core_FileRead { get; } public delegate* unmanaged[Cdecl] Core_GetAllResources { get; } - public delegate* unmanaged[Cdecl] Core_GetBlipCount { get; } - public delegate* unmanaged[Cdecl] Core_GetBlips { get; } + public delegate* unmanaged[Cdecl] Core_GetBaseObjectByID { get; } + public delegate* unmanaged[Cdecl] Core_GetBaseObjectTypeSize { get; } + public delegate* unmanaged[Cdecl] Core_GetBlips { get; } public delegate* unmanaged[Cdecl] Core_GetBranch { get; } + public delegate* unmanaged[Cdecl] Core_GetCheckpoints { get; } + public delegate* unmanaged[Cdecl] Core_GetColShapes { get; } public delegate* unmanaged[Cdecl] Core_GetCoreInstance { get; } - public delegate* unmanaged[Cdecl] Core_GetEntityById { get; } - public delegate* unmanaged[Cdecl] Core_GetEventEnumSize { get; } + public delegate* unmanaged[Cdecl] Core_GetEventTypeSize { get; } + public delegate* unmanaged[Cdecl] Core_GetMarkers { get; } public delegate* unmanaged[Cdecl] Core_GetMetaData { get; } - public delegate* unmanaged[Cdecl] Core_GetPlayerCount { get; } - public delegate* unmanaged[Cdecl] Core_GetPlayers { get; } + public delegate* unmanaged[Cdecl] Core_GetNetTime { get; } + public delegate* unmanaged[Cdecl] Core_GetNetworkObjects { get; } + public delegate* unmanaged[Cdecl] Core_GetPeds { get; } + public delegate* unmanaged[Cdecl] Core_GetPlayers { get; } public delegate* unmanaged[Cdecl] Core_GetResource { get; } public delegate* unmanaged[Cdecl] Core_GetSyncedMetaData { get; } - public delegate* unmanaged[Cdecl] Core_GetVehicleCount { get; } - public delegate* unmanaged[Cdecl] Core_GetVehicles { get; } + public delegate* unmanaged[Cdecl] Core_GetTextLabels { get; } + public delegate* unmanaged[Cdecl] Core_GetVehicles { get; } public delegate* unmanaged[Cdecl] Core_GetVersion { get; } + public delegate* unmanaged[Cdecl] Core_GetVirtualEntities { get; } + public delegate* unmanaged[Cdecl] Core_GetVirtualEntityGroups { get; } + public delegate* unmanaged[Cdecl] Core_GetVoiceConnectionState { get; } public delegate* unmanaged[Cdecl] Core_HasMetaData { get; } public delegate* unmanaged[Cdecl] Core_HasSyncedMetaData { get; } public delegate* unmanaged[Cdecl] Core_IsDebug { get; } @@ -143,37 +212,79 @@ public unsafe interface ISharedLibrary public delegate* unmanaged[Cdecl] Core_SetMetaData { get; } public delegate* unmanaged[Cdecl] Core_ToggleEvent { get; } public delegate* unmanaged[Cdecl] Core_TriggerLocalEvent { get; } - public delegate* unmanaged[Cdecl] Entity_GetID { get; } + public delegate* unmanaged[Cdecl] Entity_GetID { get; } public delegate* unmanaged[Cdecl] Entity_GetModel { get; } public delegate* unmanaged[Cdecl] Entity_GetNetOwner { get; } public delegate* unmanaged[Cdecl] Entity_GetNetOwnerID { get; } public delegate* unmanaged[Cdecl] Entity_GetRotation { get; } public delegate* unmanaged[Cdecl] Entity_GetStreamSyncedMetaData { get; } - public delegate* unmanaged[Cdecl] Entity_GetSyncedMetaData { get; } - public delegate* unmanaged[Cdecl] Entity_GetTypeByID { get; } public delegate* unmanaged[Cdecl] Entity_GetWorldObject { get; } public delegate* unmanaged[Cdecl] Entity_HasStreamSyncedMetaData { get; } - public delegate* unmanaged[Cdecl] Entity_HasSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] Entity_IsFrozen { get; } + public delegate* unmanaged[Cdecl] Entity_SetFrozen { get; } + public delegate* unmanaged[Cdecl] Entity_SetRotation { get; } public delegate* unmanaged[Cdecl] Event_Cancel { get; } + public delegate* unmanaged[Cdecl] Event_ScriptRPCEvent_Answer { get; } + public delegate* unmanaged[Cdecl] Event_ScriptRPCEvent_AnswerWithError { get; } + public delegate* unmanaged[Cdecl] Event_ScriptRPCEvent_WillAnswer { get; } public delegate* unmanaged[Cdecl] Event_WasCancelled { get; } + public delegate* unmanaged[Cdecl] FreeAudioArray { get; } + public delegate* unmanaged[Cdecl] FreeAudioOutputArray { get; } + public delegate* unmanaged[Cdecl] FreeBlipArray { get; } public delegate* unmanaged[Cdecl] FreeCharArray { get; } + public delegate* unmanaged[Cdecl] FreeCheckpointArray { get; } + public delegate* unmanaged[Cdecl] FreeColShapeArray { get; } + public delegate* unmanaged[Cdecl] FreeConnectionInfoArray { get; } + public delegate* unmanaged[Cdecl] FreeLocalObjectArray { get; } + public delegate* unmanaged[Cdecl] FreeMarkerArray { get; } public delegate* unmanaged[Cdecl] FreeMValueConstArray { get; } - public delegate* unmanaged[Cdecl] FreeObjectArray { get; } + public delegate* unmanaged[Cdecl] FreeNetworkObjectArray { get; } + public delegate* unmanaged[Cdecl] FreePedArray { get; } + public delegate* unmanaged[Cdecl] FreePlayerArray { get; } public delegate* unmanaged[Cdecl] FreeResourceArray { get; } public delegate* unmanaged[Cdecl] FreeString { get; } public delegate* unmanaged[Cdecl] FreeStringArray { get; } + public delegate* unmanaged[Cdecl] FreeTextLabelArray { get; } public delegate* unmanaged[Cdecl] FreeUInt32Array { get; } public delegate* unmanaged[Cdecl] FreeUInt8Array { get; } public delegate* unmanaged[Cdecl] FreeUIntArray { get; } + public delegate* unmanaged[Cdecl] FreeVector2Array { get; } + public delegate* unmanaged[Cdecl] FreeVehicleArray { get; } + public delegate* unmanaged[Cdecl] FreeVirtualEntityArray { get; } + public delegate* unmanaged[Cdecl] FreeVirtualEntityGroupArray { get; } public delegate* unmanaged[Cdecl] FreeVoidPointerArray { get; } public delegate* unmanaged[Cdecl] FreeWeaponTArray { get; } public delegate* unmanaged[Cdecl] GetBranchStatic { get; } public delegate* unmanaged[Cdecl] GetCApiVersion { get; } public delegate* unmanaged[Cdecl] GetSDKVersion { get; } public delegate* unmanaged[Cdecl] GetVersionStatic { get; } + public delegate* unmanaged[Cdecl] HttpClient_GetID { get; } public delegate* unmanaged[Cdecl] Invoker_Create { get; } public delegate* unmanaged[Cdecl] Invoker_Destroy { get; } public delegate* unmanaged[Cdecl] IsDebugStatic { get; } + public delegate* unmanaged[Cdecl] Marker_GetColor { get; } + public delegate* unmanaged[Cdecl] Marker_GetDirection { get; } + public delegate* unmanaged[Cdecl] Marker_GetID { get; } + public delegate* unmanaged[Cdecl] Marker_GetMarkerType { get; } + public delegate* unmanaged[Cdecl] Marker_GetRotation { get; } + public delegate* unmanaged[Cdecl] Marker_GetScale { get; } + public delegate* unmanaged[Cdecl] Marker_GetStreamingDistance { get; } + public delegate* unmanaged[Cdecl] Marker_GetTarget { get; } + public delegate* unmanaged[Cdecl] Marker_GetWorldObject { get; } + public delegate* unmanaged[Cdecl] Marker_IsBobUpDown { get; } + public delegate* unmanaged[Cdecl] Marker_IsFaceCamera { get; } + public delegate* unmanaged[Cdecl] Marker_IsGlobal { get; } + public delegate* unmanaged[Cdecl] Marker_IsRotating { get; } + public delegate* unmanaged[Cdecl] Marker_IsVisible { get; } + public delegate* unmanaged[Cdecl] Marker_SetBobUpDown { get; } + public delegate* unmanaged[Cdecl] Marker_SetColor { get; } + public delegate* unmanaged[Cdecl] Marker_SetDirection { get; } + public delegate* unmanaged[Cdecl] Marker_SetFaceCamera { get; } + public delegate* unmanaged[Cdecl] Marker_SetMarkerType { get; } + public delegate* unmanaged[Cdecl] Marker_SetRotating { get; } + public delegate* unmanaged[Cdecl] Marker_SetRotation { get; } + public delegate* unmanaged[Cdecl] Marker_SetScale { get; } + public delegate* unmanaged[Cdecl] Marker_SetVisible { get; } public delegate* unmanaged[Cdecl] MValueConst_AddRef { get; } public delegate* unmanaged[Cdecl] MValueConst_CallFunction { get; } public delegate* unmanaged[Cdecl] MValueConst_Delete { get; } @@ -193,27 +304,17 @@ public unsafe interface ISharedLibrary public delegate* unmanaged[Cdecl] MValueConst_GetUInt { get; } public delegate* unmanaged[Cdecl] MValueConst_GetVector3 { get; } public delegate* unmanaged[Cdecl] MValueConst_RemoveRef { get; } - public delegate* unmanaged[Cdecl] Object_ActivatePhysics { get; } - public delegate* unmanaged[Cdecl] Object_AttachToEntity { get; } - public delegate* unmanaged[Cdecl] Object_AttachToEntity_ScriptId { get; } - public delegate* unmanaged[Cdecl] Object_Detach { get; } public delegate* unmanaged[Cdecl] Object_GetAlpha { get; } public delegate* unmanaged[Cdecl] Object_GetEntity { get; } - public delegate* unmanaged[Cdecl] Object_GetID { get; } + public delegate* unmanaged[Cdecl] Object_GetID { get; } public delegate* unmanaged[Cdecl] Object_GetLodDistance { get; } public delegate* unmanaged[Cdecl] Object_GetTextureVariation { get; } - public delegate* unmanaged[Cdecl] Object_HasGravity { get; } - public delegate* unmanaged[Cdecl] Object_IsCollisionEnabled { get; } - public delegate* unmanaged[Cdecl] Object_IsDynamic { get; } - public delegate* unmanaged[Cdecl] Object_IsWorldObject { get; } - public delegate* unmanaged[Cdecl] Object_PlaceOnGroundProperly { get; } - public delegate* unmanaged[Cdecl] Object_ResetAlpha { get; } - public delegate* unmanaged[Cdecl] Object_SetAlpha { get; } - public delegate* unmanaged[Cdecl] Object_SetLodDistance { get; } - public delegate* unmanaged[Cdecl] Object_SetPositionFrozen { get; } - public delegate* unmanaged[Cdecl] Object_SetTextureVariation { get; } - public delegate* unmanaged[Cdecl] Object_ToggleCollision { get; } - public delegate* unmanaged[Cdecl] Object_ToggleGravity { get; } + public delegate* unmanaged[Cdecl] Ped_GetArmour { get; } + public delegate* unmanaged[Cdecl] Ped_GetCurrentWeapon { get; } + public delegate* unmanaged[Cdecl] Ped_GetEntity { get; } + public delegate* unmanaged[Cdecl] Ped_GetHealth { get; } + public delegate* unmanaged[Cdecl] Ped_GetID { get; } + public delegate* unmanaged[Cdecl] Ped_GetMaxHealth { get; } public delegate* unmanaged[Cdecl] Player_GetAimPos { get; } public delegate* unmanaged[Cdecl] Player_GetArmor { get; } public delegate* unmanaged[Cdecl] Player_GetCurrentAnimationDict { get; } @@ -226,7 +327,7 @@ public unsafe interface ISharedLibrary public delegate* unmanaged[Cdecl] Player_GetForwardSpeed { get; } public delegate* unmanaged[Cdecl] Player_GetHeadRotation { get; } public delegate* unmanaged[Cdecl] Player_GetHealth { get; } - public delegate* unmanaged[Cdecl] Player_GetID { get; } + public delegate* unmanaged[Cdecl] Player_GetID { get; } public delegate* unmanaged[Cdecl] Player_GetMaxArmor { get; } public delegate* unmanaged[Cdecl] Player_GetMaxHealth { get; } public delegate* unmanaged[Cdecl] Player_GetMoveSpeed { get; } @@ -237,13 +338,20 @@ public unsafe interface ISharedLibrary public delegate* unmanaged[Cdecl] Player_GetVehicleID { get; } public delegate* unmanaged[Cdecl] Player_IsAiming { get; } public delegate* unmanaged[Cdecl] Player_IsDead { get; } + public delegate* unmanaged[Cdecl] Player_IsEnteringVehicle { get; } public delegate* unmanaged[Cdecl] Player_IsFlashlightActive { get; } + public delegate* unmanaged[Cdecl] Player_IsInCover { get; } + public delegate* unmanaged[Cdecl] Player_IsInMelee { get; } public delegate* unmanaged[Cdecl] Player_IsInRagdoll { get; } public delegate* unmanaged[Cdecl] Player_IsInVehicle { get; } public delegate* unmanaged[Cdecl] Player_IsJumping { get; } + public delegate* unmanaged[Cdecl] Player_IsLeavingVehicle { get; } + public delegate* unmanaged[Cdecl] Player_IsOnLadder { get; } + public delegate* unmanaged[Cdecl] Player_IsParachuting { get; } public delegate* unmanaged[Cdecl] Player_IsReloading { get; } public delegate* unmanaged[Cdecl] Player_IsShooting { get; } public delegate* unmanaged[Cdecl] Player_IsSpawned { get; } + public delegate* unmanaged[Cdecl] Resource_GetConfig { get; } public delegate* unmanaged[Cdecl] Resource_GetCSharpImpl { get; } public delegate* unmanaged[Cdecl] Resource_GetDependants { get; } public delegate* unmanaged[Cdecl] Resource_GetDependantsSize { get; } @@ -258,35 +366,80 @@ public unsafe interface ISharedLibrary public delegate* unmanaged[Cdecl] Resource_IsStarted { get; } public delegate* unmanaged[Cdecl] Resource_SetExport { get; } public delegate* unmanaged[Cdecl] Resource_SetExports { get; } + public delegate* unmanaged[Cdecl] RmlDocument_GetID { get; } + public delegate* unmanaged[Cdecl] TextLabel_GetColor { get; } + public delegate* unmanaged[Cdecl] TextLabel_GetID { get; } + public delegate* unmanaged[Cdecl] TextLabel_GetRotation { get; } + public delegate* unmanaged[Cdecl] TextLabel_GetScale { get; } + public delegate* unmanaged[Cdecl] TextLabel_GetStreamingDistance { get; } + public delegate* unmanaged[Cdecl] TextLabel_GetTarget { get; } + public delegate* unmanaged[Cdecl] TextLabel_GetWorldObject { get; } + public delegate* unmanaged[Cdecl] TextLabel_IsFacingCamera { get; } + public delegate* unmanaged[Cdecl] TextLabel_IsGlobal { get; } + public delegate* unmanaged[Cdecl] TextLabel_IsVisible { get; } + public delegate* unmanaged[Cdecl] TextLabel_SetColor { get; } + public delegate* unmanaged[Cdecl] TextLabel_SetFaceCamera { get; } + public delegate* unmanaged[Cdecl] TextLabel_SetRotation { get; } + public delegate* unmanaged[Cdecl] TextLabel_SetScale { get; } + public delegate* unmanaged[Cdecl] TextLabel_SetVisible { get; } public delegate* unmanaged[Cdecl] Vehicle_GetEntity { get; } - public delegate* unmanaged[Cdecl] Vehicle_GetID { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetID { get; } public delegate* unmanaged[Cdecl] Vehicle_GetPetrolTankHealth { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetSteeringAngle { get; } public delegate* unmanaged[Cdecl] Vehicle_GetWheelsCount { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_GetGroup { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_GetID { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_GetStreamingDistance { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_GetStreamSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_GetWorldObject { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_HasStreamSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_IsVisible { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_SetVisible { get; } + public delegate* unmanaged[Cdecl] VirtualEntityGroup_GetBaseObject { get; } + public delegate* unmanaged[Cdecl] VirtualEntityGroup_GetID { get; } + public delegate* unmanaged[Cdecl] VirtualEntityGroup_GetMaxEntitiesInStream { get; } + public delegate* unmanaged[Cdecl] VoiceChannel_GetID { get; } + public delegate* unmanaged[Cdecl] WebSocketClient_GetID { get; } + public delegate* unmanaged[Cdecl] WebView_GetID { get; } public delegate* unmanaged[Cdecl] WorldObject_GetBaseObject { get; } + public delegate* unmanaged[Cdecl] WorldObject_GetDimension { get; } public delegate* unmanaged[Cdecl] WorldObject_GetPosition { get; } + public delegate* unmanaged[Cdecl] WorldObject_SetDimension { get; } + public delegate* unmanaged[Cdecl] WorldObject_SetPosition { get; } } public unsafe class SharedLibrary : ISharedLibrary { - public readonly uint Methods = 1328; + public readonly uint Methods = 1735; + public delegate* unmanaged[Cdecl] Audio_GetID { get; } + public delegate* unmanaged[Cdecl] AudioAttachedOutput_GetID { get; } + public delegate* unmanaged[Cdecl] AudioFilter_GetID { get; } + public delegate* unmanaged[Cdecl] AudioFrontendOutput_GetID { get; } + public delegate* unmanaged[Cdecl] AudioOutput_GetID { get; } + public delegate* unmanaged[Cdecl] AudioWorldOutput_GetID { get; } public delegate* unmanaged[Cdecl] BaseObject_DeleteMetaData { get; } public delegate* unmanaged[Cdecl] BaseObject_DestructCache { get; } public delegate* unmanaged[Cdecl] BaseObject_GetMetaData { get; } + public delegate* unmanaged[Cdecl] BaseObject_GetSyncedMetaData { get; } public delegate* unmanaged[Cdecl] BaseObject_GetType { get; } public delegate* unmanaged[Cdecl] BaseObject_HasMetaData { get; } + public delegate* unmanaged[Cdecl] BaseObject_HasSyncedMetaData { get; } public delegate* unmanaged[Cdecl] BaseObject_SetMetaData { get; } + public delegate* unmanaged[Cdecl] BaseObject_SetMultipleMetaData { get; } public delegate* unmanaged[Cdecl] BaseObject_TryCache { get; } + public delegate* unmanaged[Cdecl] Blip_AttachedTo { get; } public delegate* unmanaged[Cdecl] Blip_Fade { get; } - public delegate* unmanaged[Cdecl] Blip_GetAlpha { get; } + public delegate* unmanaged[Cdecl] Blip_GetAlpha { get; } public delegate* unmanaged[Cdecl] Blip_GetAsFriendly { get; } public delegate* unmanaged[Cdecl] Blip_GetAsHighDetail { get; } public delegate* unmanaged[Cdecl] Blip_GetAsMissionCreator { get; } public delegate* unmanaged[Cdecl] Blip_GetAsShortRange { get; } + public delegate* unmanaged[Cdecl] Blip_GetBlipType { get; } public delegate* unmanaged[Cdecl] Blip_GetBright { get; } - public delegate* unmanaged[Cdecl] Blip_GetCategory { get; } - public delegate* unmanaged[Cdecl] Blip_GetColor { get; } + public delegate* unmanaged[Cdecl] Blip_GetCategory { get; } + public delegate* unmanaged[Cdecl] Blip_GetColor { get; } public delegate* unmanaged[Cdecl] Blip_GetCrewIndicatorVisible { get; } - public delegate* unmanaged[Cdecl] Blip_GetDisplay { get; } + public delegate* unmanaged[Cdecl] Blip_GetDisplay { get; } public delegate* unmanaged[Cdecl] Blip_GetFlashes { get; } public delegate* unmanaged[Cdecl] Blip_GetFlashesAlternate { get; } public delegate* unmanaged[Cdecl] Blip_GetFlashInterval { get; } @@ -294,10 +447,11 @@ public unsafe class SharedLibrary : ISharedLibrary public delegate* unmanaged[Cdecl] Blip_GetFriendIndicatorVisible { get; } public delegate* unmanaged[Cdecl] Blip_GetGxtName { get; } public delegate* unmanaged[Cdecl] Blip_GetHeadingIndicatorVisible { get; } + public delegate* unmanaged[Cdecl] Blip_GetID { get; } public delegate* unmanaged[Cdecl] Blip_GetName { get; } public delegate* unmanaged[Cdecl] Blip_GetNumber { get; } public delegate* unmanaged[Cdecl] Blip_GetOutlineIndicatorVisible { get; } - public delegate* unmanaged[Cdecl] Blip_GetPriority { get; } + public delegate* unmanaged[Cdecl] Blip_GetPriority { get; } public delegate* unmanaged[Cdecl] Blip_GetPulse { get; } public delegate* unmanaged[Cdecl] Blip_GetRotation { get; } public delegate* unmanaged[Cdecl] Blip_GetRoute { get; } @@ -306,21 +460,27 @@ public unsafe class SharedLibrary : ISharedLibrary public delegate* unmanaged[Cdecl] Blip_GetSecondaryColor { get; } public delegate* unmanaged[Cdecl] Blip_GetShowCone { get; } public delegate* unmanaged[Cdecl] Blip_GetShrinked { get; } - public delegate* unmanaged[Cdecl] Blip_GetSprite { get; } + public delegate* unmanaged[Cdecl] Blip_GetSprite { get; } public delegate* unmanaged[Cdecl] Blip_GetTickVisible { get; } - public delegate* unmanaged[Cdecl] Blip_GetType { get; } public delegate* unmanaged[Cdecl] Blip_GetWorldObject { get; } + public delegate* unmanaged[Cdecl] Blip_IsAttached { get; } public delegate* unmanaged[Cdecl] Blip_IsGlobal { get; } - public delegate* unmanaged[Cdecl] Blip_SetAlpha { get; } + public delegate* unmanaged[Cdecl] Blip_IsHiddenOnLegend { get; } + public delegate* unmanaged[Cdecl] Blip_IsMinimalOnEdge { get; } + public delegate* unmanaged[Cdecl] Blip_IsShortHeightThreshold { get; } + public delegate* unmanaged[Cdecl] Blip_IsUseHeightIndicatorOnEdge { get; } + public delegate* unmanaged[Cdecl] Blip_IsVisible { get; } + public delegate* unmanaged[Cdecl] Blip_SetAlpha { get; } public delegate* unmanaged[Cdecl] Blip_SetAsFriendly { get; } public delegate* unmanaged[Cdecl] Blip_SetAsHighDetail { get; } public delegate* unmanaged[Cdecl] Blip_SetAsMissionCreator { get; } public delegate* unmanaged[Cdecl] Blip_SetAsShortRange { get; } + public delegate* unmanaged[Cdecl] Blip_SetBlipType { get; } public delegate* unmanaged[Cdecl] Blip_SetBright { get; } - public delegate* unmanaged[Cdecl] Blip_SetCategory { get; } - public delegate* unmanaged[Cdecl] Blip_SetColor { get; } + public delegate* unmanaged[Cdecl] Blip_SetCategory { get; } + public delegate* unmanaged[Cdecl] Blip_SetColor { get; } public delegate* unmanaged[Cdecl] Blip_SetCrewIndicatorVisible { get; } - public delegate* unmanaged[Cdecl] Blip_SetDisplay { get; } + public delegate* unmanaged[Cdecl] Blip_SetDisplay { get; } public delegate* unmanaged[Cdecl] Blip_SetFlashes { get; } public delegate* unmanaged[Cdecl] Blip_SetFlashesAlternate { get; } public delegate* unmanaged[Cdecl] Blip_SetFlashInterval { get; } @@ -328,36 +488,77 @@ public unsafe class SharedLibrary : ISharedLibrary public delegate* unmanaged[Cdecl] Blip_SetFriendIndicatorVisible { get; } public delegate* unmanaged[Cdecl] Blip_SetGxtName { get; } public delegate* unmanaged[Cdecl] Blip_SetHeadingIndicatorVisible { get; } + public delegate* unmanaged[Cdecl] Blip_SetHiddenOnLegend { get; } + public delegate* unmanaged[Cdecl] Blip_SetMinimalOnEdge { get; } public delegate* unmanaged[Cdecl] Blip_SetName { get; } public delegate* unmanaged[Cdecl] Blip_SetNumber { get; } public delegate* unmanaged[Cdecl] Blip_SetOutlineIndicatorVisible { get; } - public delegate* unmanaged[Cdecl] Blip_SetPriority { get; } + public delegate* unmanaged[Cdecl] Blip_SetPriority { get; } public delegate* unmanaged[Cdecl] Blip_SetPulse { get; } public delegate* unmanaged[Cdecl] Blip_SetRotation { get; } public delegate* unmanaged[Cdecl] Blip_SetRoute { get; } public delegate* unmanaged[Cdecl] Blip_SetRouteColor { get; } public delegate* unmanaged[Cdecl] Blip_SetScaleXY { get; } public delegate* unmanaged[Cdecl] Blip_SetSecondaryColor { get; } + public delegate* unmanaged[Cdecl] Blip_SetShortHeightThreshold { get; } public delegate* unmanaged[Cdecl] Blip_SetShowCone { get; } public delegate* unmanaged[Cdecl] Blip_SetShrinked { get; } - public delegate* unmanaged[Cdecl] Blip_SetSprite { get; } + public delegate* unmanaged[Cdecl] Blip_SetSprite { get; } public delegate* unmanaged[Cdecl] Blip_SetTickVisible { get; } + public delegate* unmanaged[Cdecl] Blip_SetUseHeightIndicatorOnEdge { get; } + public delegate* unmanaged[Cdecl] Blip_SetVisible { get; } public delegate* unmanaged[Cdecl] Checkpoint_GetCheckpointType { get; } public delegate* unmanaged[Cdecl] Checkpoint_GetColor { get; } public delegate* unmanaged[Cdecl] Checkpoint_GetColShape { get; } public delegate* unmanaged[Cdecl] Checkpoint_GetHeight { get; } + public delegate* unmanaged[Cdecl] Checkpoint_GetIconColor { get; } + public delegate* unmanaged[Cdecl] Checkpoint_GetID { get; } public delegate* unmanaged[Cdecl] Checkpoint_GetNextPosition { get; } public delegate* unmanaged[Cdecl] Checkpoint_GetRadius { get; } + public delegate* unmanaged[Cdecl] Checkpoint_GetStreamingDistance { get; } + public delegate* unmanaged[Cdecl] Checkpoint_IsVisible { get; } public delegate* unmanaged[Cdecl] Checkpoint_SetCheckpointType { get; } public delegate* unmanaged[Cdecl] Checkpoint_SetColor { get; } public delegate* unmanaged[Cdecl] Checkpoint_SetHeight { get; } + public delegate* unmanaged[Cdecl] Checkpoint_SetIconColor { get; } public delegate* unmanaged[Cdecl] Checkpoint_SetNextPosition { get; } public delegate* unmanaged[Cdecl] Checkpoint_SetRadius { get; } + public delegate* unmanaged[Cdecl] Checkpoint_SetVisible { get; } + public delegate* unmanaged[Cdecl] ColShape_GetID { get; } public delegate* unmanaged[Cdecl] ColShape_GetWorldObject { get; } - public delegate* unmanaged[Cdecl] ColShape_IsEntityIdIn { get; } + public delegate* unmanaged[Cdecl] ColShape_IsEntityIdIn { get; } public delegate* unmanaged[Cdecl] ColShape_IsEntityIn { get; } public delegate* unmanaged[Cdecl] ColShape_IsPointIn { get; } + public delegate* unmanaged[Cdecl] ColShapeCircle_GetColShape { get; } + public delegate* unmanaged[Cdecl] ColShapeCircle_GetID { get; } + public delegate* unmanaged[Cdecl] ColShapeCircle_GetRadius { get; } + public delegate* unmanaged[Cdecl] ColShapeCuboid_GetColShape { get; } + public delegate* unmanaged[Cdecl] ColShapeCuboid_GetID { get; } + public delegate* unmanaged[Cdecl] ColShapeCuboid_GetMax { get; } + public delegate* unmanaged[Cdecl] ColShapeCuboid_GetMin { get; } + public delegate* unmanaged[Cdecl] ColShapeCylinder_GetColShape { get; } + public delegate* unmanaged[Cdecl] ColShapeCylinder_GetHeight { get; } + public delegate* unmanaged[Cdecl] ColShapeCylinder_GetID { get; } + public delegate* unmanaged[Cdecl] ColShapeCylinder_GetRadius { get; } + public delegate* unmanaged[Cdecl] ColShapePoly_GetColShape { get; } + public delegate* unmanaged[Cdecl] ColShapePoly_GetID { get; } + public delegate* unmanaged[Cdecl] ColShapePoly_GetMaxZ { get; } + public delegate* unmanaged[Cdecl] ColShapePoly_GetMinZ { get; } + public delegate* unmanaged[Cdecl] ColShapePoly_GetPoints { get; } + public delegate* unmanaged[Cdecl] ColShapeRect_GetColShape { get; } + public delegate* unmanaged[Cdecl] ColShapeRect_GetID { get; } + public delegate* unmanaged[Cdecl] ColShapeRect_GetMax { get; } + public delegate* unmanaged[Cdecl] ColShapeRect_GetMin { get; } + public delegate* unmanaged[Cdecl] ColShapeSphere_GetColShape { get; } + public delegate* unmanaged[Cdecl] ColShapeSphere_GetID { get; } + public delegate* unmanaged[Cdecl] ColShapeSphere_GetRadius { get; } public delegate* unmanaged[Cdecl] Config_Delete { get; } + public delegate* unmanaged[Cdecl] Core_CreateColShapeCircle { get; } + public delegate* unmanaged[Cdecl] Core_CreateColShapeCube { get; } + public delegate* unmanaged[Cdecl] Core_CreateColShapeCylinder { get; } + public delegate* unmanaged[Cdecl] Core_CreateColShapePolygon { get; } + public delegate* unmanaged[Cdecl] Core_CreateColShapeRectangle { get; } + public delegate* unmanaged[Cdecl] Core_CreateColShapeSphere { get; } public delegate* unmanaged[Cdecl] Core_CreateMValueBaseObject { get; } public delegate* unmanaged[Cdecl] Core_CreateMValueBool { get; } public delegate* unmanaged[Cdecl] Core_CreateMValueByteArray { get; } @@ -372,25 +573,35 @@ public unsafe class SharedLibrary : ISharedLibrary public delegate* unmanaged[Cdecl] Core_CreateMValueUInt { get; } public delegate* unmanaged[Cdecl] Core_CreateMValueVector2 { get; } public delegate* unmanaged[Cdecl] Core_CreateMValueVector3 { get; } + public delegate* unmanaged[Cdecl] Core_CreateVirtualEntity { get; } + public delegate* unmanaged[Cdecl] Core_CreateVirtualEntityGroup { get; } public delegate* unmanaged[Cdecl] Core_DeleteMetaData { get; } public delegate* unmanaged[Cdecl] Core_DestroyBaseObject { get; } public delegate* unmanaged[Cdecl] Core_FileExists { get; } public delegate* unmanaged[Cdecl] Core_FileRead { get; } public delegate* unmanaged[Cdecl] Core_GetAllResources { get; } - public delegate* unmanaged[Cdecl] Core_GetBlipCount { get; } - public delegate* unmanaged[Cdecl] Core_GetBlips { get; } + public delegate* unmanaged[Cdecl] Core_GetBaseObjectByID { get; } + public delegate* unmanaged[Cdecl] Core_GetBaseObjectTypeSize { get; } + public delegate* unmanaged[Cdecl] Core_GetBlips { get; } public delegate* unmanaged[Cdecl] Core_GetBranch { get; } + public delegate* unmanaged[Cdecl] Core_GetCheckpoints { get; } + public delegate* unmanaged[Cdecl] Core_GetColShapes { get; } public delegate* unmanaged[Cdecl] Core_GetCoreInstance { get; } - public delegate* unmanaged[Cdecl] Core_GetEntityById { get; } - public delegate* unmanaged[Cdecl] Core_GetEventEnumSize { get; } + public delegate* unmanaged[Cdecl] Core_GetEventTypeSize { get; } + public delegate* unmanaged[Cdecl] Core_GetMarkers { get; } public delegate* unmanaged[Cdecl] Core_GetMetaData { get; } - public delegate* unmanaged[Cdecl] Core_GetPlayerCount { get; } - public delegate* unmanaged[Cdecl] Core_GetPlayers { get; } + public delegate* unmanaged[Cdecl] Core_GetNetTime { get; } + public delegate* unmanaged[Cdecl] Core_GetNetworkObjects { get; } + public delegate* unmanaged[Cdecl] Core_GetPeds { get; } + public delegate* unmanaged[Cdecl] Core_GetPlayers { get; } public delegate* unmanaged[Cdecl] Core_GetResource { get; } public delegate* unmanaged[Cdecl] Core_GetSyncedMetaData { get; } - public delegate* unmanaged[Cdecl] Core_GetVehicleCount { get; } - public delegate* unmanaged[Cdecl] Core_GetVehicles { get; } + public delegate* unmanaged[Cdecl] Core_GetTextLabels { get; } + public delegate* unmanaged[Cdecl] Core_GetVehicles { get; } public delegate* unmanaged[Cdecl] Core_GetVersion { get; } + public delegate* unmanaged[Cdecl] Core_GetVirtualEntities { get; } + public delegate* unmanaged[Cdecl] Core_GetVirtualEntityGroups { get; } + public delegate* unmanaged[Cdecl] Core_GetVoiceConnectionState { get; } public delegate* unmanaged[Cdecl] Core_HasMetaData { get; } public delegate* unmanaged[Cdecl] Core_HasSyncedMetaData { get; } public delegate* unmanaged[Cdecl] Core_IsDebug { get; } @@ -402,37 +613,79 @@ public unsafe class SharedLibrary : ISharedLibrary public delegate* unmanaged[Cdecl] Core_SetMetaData { get; } public delegate* unmanaged[Cdecl] Core_ToggleEvent { get; } public delegate* unmanaged[Cdecl] Core_TriggerLocalEvent { get; } - public delegate* unmanaged[Cdecl] Entity_GetID { get; } + public delegate* unmanaged[Cdecl] Entity_GetID { get; } public delegate* unmanaged[Cdecl] Entity_GetModel { get; } public delegate* unmanaged[Cdecl] Entity_GetNetOwner { get; } public delegate* unmanaged[Cdecl] Entity_GetNetOwnerID { get; } public delegate* unmanaged[Cdecl] Entity_GetRotation { get; } public delegate* unmanaged[Cdecl] Entity_GetStreamSyncedMetaData { get; } - public delegate* unmanaged[Cdecl] Entity_GetSyncedMetaData { get; } - public delegate* unmanaged[Cdecl] Entity_GetTypeByID { get; } public delegate* unmanaged[Cdecl] Entity_GetWorldObject { get; } public delegate* unmanaged[Cdecl] Entity_HasStreamSyncedMetaData { get; } - public delegate* unmanaged[Cdecl] Entity_HasSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] Entity_IsFrozen { get; } + public delegate* unmanaged[Cdecl] Entity_SetFrozen { get; } + public delegate* unmanaged[Cdecl] Entity_SetRotation { get; } public delegate* unmanaged[Cdecl] Event_Cancel { get; } + public delegate* unmanaged[Cdecl] Event_ScriptRPCEvent_Answer { get; } + public delegate* unmanaged[Cdecl] Event_ScriptRPCEvent_AnswerWithError { get; } + public delegate* unmanaged[Cdecl] Event_ScriptRPCEvent_WillAnswer { get; } public delegate* unmanaged[Cdecl] Event_WasCancelled { get; } + public delegate* unmanaged[Cdecl] FreeAudioArray { get; } + public delegate* unmanaged[Cdecl] FreeAudioOutputArray { get; } + public delegate* unmanaged[Cdecl] FreeBlipArray { get; } public delegate* unmanaged[Cdecl] FreeCharArray { get; } + public delegate* unmanaged[Cdecl] FreeCheckpointArray { get; } + public delegate* unmanaged[Cdecl] FreeColShapeArray { get; } + public delegate* unmanaged[Cdecl] FreeConnectionInfoArray { get; } + public delegate* unmanaged[Cdecl] FreeLocalObjectArray { get; } + public delegate* unmanaged[Cdecl] FreeMarkerArray { get; } public delegate* unmanaged[Cdecl] FreeMValueConstArray { get; } - public delegate* unmanaged[Cdecl] FreeObjectArray { get; } + public delegate* unmanaged[Cdecl] FreeNetworkObjectArray { get; } + public delegate* unmanaged[Cdecl] FreePedArray { get; } + public delegate* unmanaged[Cdecl] FreePlayerArray { get; } public delegate* unmanaged[Cdecl] FreeResourceArray { get; } public delegate* unmanaged[Cdecl] FreeString { get; } public delegate* unmanaged[Cdecl] FreeStringArray { get; } + public delegate* unmanaged[Cdecl] FreeTextLabelArray { get; } public delegate* unmanaged[Cdecl] FreeUInt32Array { get; } public delegate* unmanaged[Cdecl] FreeUInt8Array { get; } public delegate* unmanaged[Cdecl] FreeUIntArray { get; } + public delegate* unmanaged[Cdecl] FreeVector2Array { get; } + public delegate* unmanaged[Cdecl] FreeVehicleArray { get; } + public delegate* unmanaged[Cdecl] FreeVirtualEntityArray { get; } + public delegate* unmanaged[Cdecl] FreeVirtualEntityGroupArray { get; } public delegate* unmanaged[Cdecl] FreeVoidPointerArray { get; } public delegate* unmanaged[Cdecl] FreeWeaponTArray { get; } public delegate* unmanaged[Cdecl] GetBranchStatic { get; } public delegate* unmanaged[Cdecl] GetCApiVersion { get; } public delegate* unmanaged[Cdecl] GetSDKVersion { get; } public delegate* unmanaged[Cdecl] GetVersionStatic { get; } + public delegate* unmanaged[Cdecl] HttpClient_GetID { get; } public delegate* unmanaged[Cdecl] Invoker_Create { get; } public delegate* unmanaged[Cdecl] Invoker_Destroy { get; } public delegate* unmanaged[Cdecl] IsDebugStatic { get; } + public delegate* unmanaged[Cdecl] Marker_GetColor { get; } + public delegate* unmanaged[Cdecl] Marker_GetDirection { get; } + public delegate* unmanaged[Cdecl] Marker_GetID { get; } + public delegate* unmanaged[Cdecl] Marker_GetMarkerType { get; } + public delegate* unmanaged[Cdecl] Marker_GetRotation { get; } + public delegate* unmanaged[Cdecl] Marker_GetScale { get; } + public delegate* unmanaged[Cdecl] Marker_GetStreamingDistance { get; } + public delegate* unmanaged[Cdecl] Marker_GetTarget { get; } + public delegate* unmanaged[Cdecl] Marker_GetWorldObject { get; } + public delegate* unmanaged[Cdecl] Marker_IsBobUpDown { get; } + public delegate* unmanaged[Cdecl] Marker_IsFaceCamera { get; } + public delegate* unmanaged[Cdecl] Marker_IsGlobal { get; } + public delegate* unmanaged[Cdecl] Marker_IsRotating { get; } + public delegate* unmanaged[Cdecl] Marker_IsVisible { get; } + public delegate* unmanaged[Cdecl] Marker_SetBobUpDown { get; } + public delegate* unmanaged[Cdecl] Marker_SetColor { get; } + public delegate* unmanaged[Cdecl] Marker_SetDirection { get; } + public delegate* unmanaged[Cdecl] Marker_SetFaceCamera { get; } + public delegate* unmanaged[Cdecl] Marker_SetMarkerType { get; } + public delegate* unmanaged[Cdecl] Marker_SetRotating { get; } + public delegate* unmanaged[Cdecl] Marker_SetRotation { get; } + public delegate* unmanaged[Cdecl] Marker_SetScale { get; } + public delegate* unmanaged[Cdecl] Marker_SetVisible { get; } public delegate* unmanaged[Cdecl] MValueConst_AddRef { get; } public delegate* unmanaged[Cdecl] MValueConst_CallFunction { get; } public delegate* unmanaged[Cdecl] MValueConst_Delete { get; } @@ -452,27 +705,17 @@ public unsafe class SharedLibrary : ISharedLibrary public delegate* unmanaged[Cdecl] MValueConst_GetUInt { get; } public delegate* unmanaged[Cdecl] MValueConst_GetVector3 { get; } public delegate* unmanaged[Cdecl] MValueConst_RemoveRef { get; } - public delegate* unmanaged[Cdecl] Object_ActivatePhysics { get; } - public delegate* unmanaged[Cdecl] Object_AttachToEntity { get; } - public delegate* unmanaged[Cdecl] Object_AttachToEntity_ScriptId { get; } - public delegate* unmanaged[Cdecl] Object_Detach { get; } public delegate* unmanaged[Cdecl] Object_GetAlpha { get; } public delegate* unmanaged[Cdecl] Object_GetEntity { get; } - public delegate* unmanaged[Cdecl] Object_GetID { get; } + public delegate* unmanaged[Cdecl] Object_GetID { get; } public delegate* unmanaged[Cdecl] Object_GetLodDistance { get; } public delegate* unmanaged[Cdecl] Object_GetTextureVariation { get; } - public delegate* unmanaged[Cdecl] Object_HasGravity { get; } - public delegate* unmanaged[Cdecl] Object_IsCollisionEnabled { get; } - public delegate* unmanaged[Cdecl] Object_IsDynamic { get; } - public delegate* unmanaged[Cdecl] Object_IsWorldObject { get; } - public delegate* unmanaged[Cdecl] Object_PlaceOnGroundProperly { get; } - public delegate* unmanaged[Cdecl] Object_ResetAlpha { get; } - public delegate* unmanaged[Cdecl] Object_SetAlpha { get; } - public delegate* unmanaged[Cdecl] Object_SetLodDistance { get; } - public delegate* unmanaged[Cdecl] Object_SetPositionFrozen { get; } - public delegate* unmanaged[Cdecl] Object_SetTextureVariation { get; } - public delegate* unmanaged[Cdecl] Object_ToggleCollision { get; } - public delegate* unmanaged[Cdecl] Object_ToggleGravity { get; } + public delegate* unmanaged[Cdecl] Ped_GetArmour { get; } + public delegate* unmanaged[Cdecl] Ped_GetCurrentWeapon { get; } + public delegate* unmanaged[Cdecl] Ped_GetEntity { get; } + public delegate* unmanaged[Cdecl] Ped_GetHealth { get; } + public delegate* unmanaged[Cdecl] Ped_GetID { get; } + public delegate* unmanaged[Cdecl] Ped_GetMaxHealth { get; } public delegate* unmanaged[Cdecl] Player_GetAimPos { get; } public delegate* unmanaged[Cdecl] Player_GetArmor { get; } public delegate* unmanaged[Cdecl] Player_GetCurrentAnimationDict { get; } @@ -485,7 +728,7 @@ public unsafe class SharedLibrary : ISharedLibrary public delegate* unmanaged[Cdecl] Player_GetForwardSpeed { get; } public delegate* unmanaged[Cdecl] Player_GetHeadRotation { get; } public delegate* unmanaged[Cdecl] Player_GetHealth { get; } - public delegate* unmanaged[Cdecl] Player_GetID { get; } + public delegate* unmanaged[Cdecl] Player_GetID { get; } public delegate* unmanaged[Cdecl] Player_GetMaxArmor { get; } public delegate* unmanaged[Cdecl] Player_GetMaxHealth { get; } public delegate* unmanaged[Cdecl] Player_GetMoveSpeed { get; } @@ -496,13 +739,20 @@ public unsafe class SharedLibrary : ISharedLibrary public delegate* unmanaged[Cdecl] Player_GetVehicleID { get; } public delegate* unmanaged[Cdecl] Player_IsAiming { get; } public delegate* unmanaged[Cdecl] Player_IsDead { get; } + public delegate* unmanaged[Cdecl] Player_IsEnteringVehicle { get; } public delegate* unmanaged[Cdecl] Player_IsFlashlightActive { get; } + public delegate* unmanaged[Cdecl] Player_IsInCover { get; } + public delegate* unmanaged[Cdecl] Player_IsInMelee { get; } public delegate* unmanaged[Cdecl] Player_IsInRagdoll { get; } public delegate* unmanaged[Cdecl] Player_IsInVehicle { get; } public delegate* unmanaged[Cdecl] Player_IsJumping { get; } + public delegate* unmanaged[Cdecl] Player_IsLeavingVehicle { get; } + public delegate* unmanaged[Cdecl] Player_IsOnLadder { get; } + public delegate* unmanaged[Cdecl] Player_IsParachuting { get; } public delegate* unmanaged[Cdecl] Player_IsReloading { get; } public delegate* unmanaged[Cdecl] Player_IsShooting { get; } public delegate* unmanaged[Cdecl] Player_IsSpawned { get; } + public delegate* unmanaged[Cdecl] Resource_GetConfig { get; } public delegate* unmanaged[Cdecl] Resource_GetCSharpImpl { get; } public delegate* unmanaged[Cdecl] Resource_GetDependants { get; } public delegate* unmanaged[Cdecl] Resource_GetDependantsSize { get; } @@ -517,30 +767,84 @@ public unsafe class SharedLibrary : ISharedLibrary public delegate* unmanaged[Cdecl] Resource_IsStarted { get; } public delegate* unmanaged[Cdecl] Resource_SetExport { get; } public delegate* unmanaged[Cdecl] Resource_SetExports { get; } + public delegate* unmanaged[Cdecl] RmlDocument_GetID { get; } + public delegate* unmanaged[Cdecl] TextLabel_GetColor { get; } + public delegate* unmanaged[Cdecl] TextLabel_GetID { get; } + public delegate* unmanaged[Cdecl] TextLabel_GetRotation { get; } + public delegate* unmanaged[Cdecl] TextLabel_GetScale { get; } + public delegate* unmanaged[Cdecl] TextLabel_GetStreamingDistance { get; } + public delegate* unmanaged[Cdecl] TextLabel_GetTarget { get; } + public delegate* unmanaged[Cdecl] TextLabel_GetWorldObject { get; } + public delegate* unmanaged[Cdecl] TextLabel_IsFacingCamera { get; } + public delegate* unmanaged[Cdecl] TextLabel_IsGlobal { get; } + public delegate* unmanaged[Cdecl] TextLabel_IsVisible { get; } + public delegate* unmanaged[Cdecl] TextLabel_SetColor { get; } + public delegate* unmanaged[Cdecl] TextLabel_SetFaceCamera { get; } + public delegate* unmanaged[Cdecl] TextLabel_SetRotation { get; } + public delegate* unmanaged[Cdecl] TextLabel_SetScale { get; } + public delegate* unmanaged[Cdecl] TextLabel_SetVisible { get; } public delegate* unmanaged[Cdecl] Vehicle_GetEntity { get; } - public delegate* unmanaged[Cdecl] Vehicle_GetID { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetID { get; } public delegate* unmanaged[Cdecl] Vehicle_GetPetrolTankHealth { get; } + public delegate* unmanaged[Cdecl] Vehicle_GetSteeringAngle { get; } public delegate* unmanaged[Cdecl] Vehicle_GetWheelsCount { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_GetGroup { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_GetID { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_GetStreamingDistance { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_GetStreamSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_GetWorldObject { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_HasStreamSyncedMetaData { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_IsVisible { get; } + public delegate* unmanaged[Cdecl] VirtualEntity_SetVisible { get; } + public delegate* unmanaged[Cdecl] VirtualEntityGroup_GetBaseObject { get; } + public delegate* unmanaged[Cdecl] VirtualEntityGroup_GetID { get; } + public delegate* unmanaged[Cdecl] VirtualEntityGroup_GetMaxEntitiesInStream { get; } + public delegate* unmanaged[Cdecl] VoiceChannel_GetID { get; } + public delegate* unmanaged[Cdecl] WebSocketClient_GetID { get; } + public delegate* unmanaged[Cdecl] WebView_GetID { get; } public delegate* unmanaged[Cdecl] WorldObject_GetBaseObject { get; } + public delegate* unmanaged[Cdecl] WorldObject_GetDimension { get; } public delegate* unmanaged[Cdecl] WorldObject_GetPosition { get; } + public delegate* unmanaged[Cdecl] WorldObject_SetDimension { get; } + public delegate* unmanaged[Cdecl] WorldObject_SetPosition { get; } + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Audio_GetIDDelegate(nint _audio); + private static uint Audio_GetIDFallback(nint _audio) => throw new Exceptions.OutdatedSdkException("Audio_GetID", "Audio_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioAttachedOutput_GetIDDelegate(nint _audioAttachedOutput); + private static uint AudioAttachedOutput_GetIDFallback(nint _audioAttachedOutput) => throw new Exceptions.OutdatedSdkException("AudioAttachedOutput_GetID", "AudioAttachedOutput_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioFilter_GetIDDelegate(nint _audioFilter); + private static uint AudioFilter_GetIDFallback(nint _audioFilter) => throw new Exceptions.OutdatedSdkException("AudioFilter_GetID", "AudioFilter_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioFrontendOutput_GetIDDelegate(nint _audioFrontendOutput); + private static uint AudioFrontendOutput_GetIDFallback(nint _audioFrontendOutput) => throw new Exceptions.OutdatedSdkException("AudioFrontendOutput_GetID", "AudioFrontendOutput_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioOutput_GetIDDelegate(nint _audioOutput); + private static uint AudioOutput_GetIDFallback(nint _audioOutput) => throw new Exceptions.OutdatedSdkException("AudioOutput_GetID", "AudioOutput_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint AudioWorldOutput_GetIDDelegate(nint _audioWorldOutput); + private static uint AudioWorldOutput_GetIDFallback(nint _audioWorldOutput) => throw new Exceptions.OutdatedSdkException("AudioWorldOutput_GetID", "AudioWorldOutput_GetID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void BaseObject_DeleteMetaDataDelegate(nint _baseObject, nint _key); private static void BaseObject_DeleteMetaDataFallback(nint _baseObject, nint _key) => throw new Exceptions.OutdatedSdkException("BaseObject_DeleteMetaData", "BaseObject_DeleteMetaData SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void BaseObject_DestructCacheDelegate(nint _baseObject); private static void BaseObject_DestructCacheFallback(nint _baseObject) => throw new Exceptions.OutdatedSdkException("BaseObject_DestructCache", "BaseObject_DestructCache SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint BaseObject_GetMetaDataDelegate(nint _baseObject, nint _key); private static nint BaseObject_GetMetaDataFallback(nint _baseObject, nint _key) => throw new Exceptions.OutdatedSdkException("BaseObject_GetMetaData", "BaseObject_GetMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint BaseObject_GetSyncedMetaDataDelegate(nint _baseObject, nint _key); + private static nint BaseObject_GetSyncedMetaDataFallback(nint _baseObject, nint _key) => throw new Exceptions.OutdatedSdkException("BaseObject_GetSyncedMetaData", "BaseObject_GetSyncedMetaData SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte BaseObject_GetTypeDelegate(nint _baseObject); private static byte BaseObject_GetTypeFallback(nint _baseObject) => throw new Exceptions.OutdatedSdkException("BaseObject_GetType", "BaseObject_GetType SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte BaseObject_HasMetaDataDelegate(nint _baseObject, nint _key); private static byte BaseObject_HasMetaDataFallback(nint _baseObject, nint _key) => throw new Exceptions.OutdatedSdkException("BaseObject_HasMetaData", "BaseObject_HasMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte BaseObject_HasSyncedMetaDataDelegate(nint _baseObject, nint _key); + private static byte BaseObject_HasSyncedMetaDataFallback(nint _baseObject, nint _key) => throw new Exceptions.OutdatedSdkException("BaseObject_HasSyncedMetaData", "BaseObject_HasSyncedMetaData SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void BaseObject_SetMetaDataDelegate(nint _baseObject, nint _key, nint _value); private static void BaseObject_SetMetaDataFallback(nint _baseObject, nint _key, nint _value) => throw new Exceptions.OutdatedSdkException("BaseObject_SetMetaData", "BaseObject_SetMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void BaseObject_SetMultipleMetaDataDelegate(nint _baseObject, nint[] keys, nint[] values, ulong _size); + private static void BaseObject_SetMultipleMetaDataFallback(nint _baseObject, nint[] keys, nint[] values, ulong _size) => throw new Exceptions.OutdatedSdkException("BaseObject_SetMultipleMetaData", "BaseObject_SetMultipleMetaData SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint BaseObject_TryCacheDelegate(nint _baseObject); private static nint BaseObject_TryCacheFallback(nint _baseObject) => throw new Exceptions.OutdatedSdkException("BaseObject_TryCache", "BaseObject_TryCache SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Blip_AttachedToDelegate(nint _blip, BaseObjectType* _type); + private static nint Blip_AttachedToFallback(nint _blip, BaseObjectType* _type) => throw new Exceptions.OutdatedSdkException("Blip_AttachedTo", "Blip_AttachedTo SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_FadeDelegate(nint _blip, uint _opacity, uint _duration); private static void Blip_FadeFallback(nint _blip, uint _opacity, uint _duration) => throw new Exceptions.OutdatedSdkException("Blip_Fade", "Blip_Fade SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetAlphaDelegate(nint _blip); - private static byte Blip_GetAlphaFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetAlpha", "Blip_GetAlpha SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Blip_GetAlphaDelegate(nint _blip); + private static uint Blip_GetAlphaFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetAlpha", "Blip_GetAlpha SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetAsFriendlyDelegate(nint _blip); private static byte Blip_GetAsFriendlyFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetAsFriendly", "Blip_GetAsFriendly SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetAsHighDetailDelegate(nint _blip); @@ -549,16 +853,18 @@ public unsafe class SharedLibrary : ISharedLibrary private static byte Blip_GetAsMissionCreatorFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetAsMissionCreator", "Blip_GetAsMissionCreator SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetAsShortRangeDelegate(nint _blip); private static byte Blip_GetAsShortRangeFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetAsShortRange", "Blip_GetAsShortRange SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetBlipTypeDelegate(nint _blip); + private static byte Blip_GetBlipTypeFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetBlipType", "Blip_GetBlipType SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetBrightDelegate(nint _blip); private static byte Blip_GetBrightFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetBright", "Blip_GetBright SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Blip_GetCategoryDelegate(nint _blip); - private static ushort Blip_GetCategoryFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetCategory", "Blip_GetCategory SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetColorDelegate(nint _blip); - private static byte Blip_GetColorFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetColor", "Blip_GetColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Blip_GetCategoryDelegate(nint _blip); + private static uint Blip_GetCategoryFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetCategory", "Blip_GetCategory SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Blip_GetColorDelegate(nint _blip); + private static uint Blip_GetColorFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetColor", "Blip_GetColor SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetCrewIndicatorVisibleDelegate(nint _blip); private static byte Blip_GetCrewIndicatorVisibleFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetCrewIndicatorVisible", "Blip_GetCrewIndicatorVisible SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate short Blip_GetDisplayDelegate(nint _blip); - private static short Blip_GetDisplayFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetDisplay", "Blip_GetDisplay SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Blip_GetDisplayDelegate(nint _blip); + private static uint Blip_GetDisplayFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetDisplay", "Blip_GetDisplay SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetFlashesDelegate(nint _blip); private static byte Blip_GetFlashesFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetFlashes", "Blip_GetFlashes SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetFlashesAlternateDelegate(nint _blip); @@ -573,14 +879,16 @@ public unsafe class SharedLibrary : ISharedLibrary private static nint Blip_GetGxtNameFallback(nint _blip, int* _size) => throw new Exceptions.OutdatedSdkException("Blip_GetGxtName", "Blip_GetGxtName SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetHeadingIndicatorVisibleDelegate(nint _blip); private static byte Blip_GetHeadingIndicatorVisibleFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetHeadingIndicatorVisible", "Blip_GetHeadingIndicatorVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Blip_GetIDDelegate(nint _blip); + private static uint Blip_GetIDFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetID", "Blip_GetID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Blip_GetNameDelegate(nint _blip, int* _size); private static nint Blip_GetNameFallback(nint _blip, int* _size) => throw new Exceptions.OutdatedSdkException("Blip_GetName", "Blip_GetName SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Blip_GetNumberDelegate(nint _blip); private static ushort Blip_GetNumberFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetNumber", "Blip_GetNumber SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetOutlineIndicatorVisibleDelegate(nint _blip); private static byte Blip_GetOutlineIndicatorVisibleFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetOutlineIndicatorVisible", "Blip_GetOutlineIndicatorVisible SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Blip_GetPriorityDelegate(nint _blip); - private static ushort Blip_GetPriorityFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetPriority", "Blip_GetPriority SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Blip_GetPriorityDelegate(nint _blip); + private static uint Blip_GetPriorityFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetPriority", "Blip_GetPriority SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetPulseDelegate(nint _blip); private static byte Blip_GetPulseFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetPulse", "Blip_GetPulse SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Blip_GetRotationDelegate(nint _blip); @@ -597,18 +905,28 @@ public unsafe class SharedLibrary : ISharedLibrary private static byte Blip_GetShowConeFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetShowCone", "Blip_GetShowCone SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetShrinkedDelegate(nint _blip); private static byte Blip_GetShrinkedFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetShrinked", "Blip_GetShrinked SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Blip_GetSpriteDelegate(nint _blip); - private static ushort Blip_GetSpriteFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetSprite", "Blip_GetSprite SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Blip_GetSpriteDelegate(nint _blip); + private static uint Blip_GetSpriteFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetSprite", "Blip_GetSprite SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetTickVisibleDelegate(nint _blip); private static byte Blip_GetTickVisibleFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetTickVisible", "Blip_GetTickVisible SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_GetTypeDelegate(nint _blip); - private static byte Blip_GetTypeFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetType", "Blip_GetType SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Blip_GetWorldObjectDelegate(nint _blip); private static nint Blip_GetWorldObjectFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_GetWorldObject", "Blip_GetWorldObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_IsAttachedDelegate(nint _blip); + private static byte Blip_IsAttachedFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_IsAttached", "Blip_IsAttached SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_IsGlobalDelegate(nint _blip); private static byte Blip_IsGlobalFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_IsGlobal", "Blip_IsGlobal SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetAlphaDelegate(nint _blip, byte _alpha); - private static void Blip_SetAlphaFallback(nint _blip, byte _alpha) => throw new Exceptions.OutdatedSdkException("Blip_SetAlpha", "Blip_SetAlpha SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_IsHiddenOnLegendDelegate(nint _blip); + private static byte Blip_IsHiddenOnLegendFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_IsHiddenOnLegend", "Blip_IsHiddenOnLegend SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_IsMinimalOnEdgeDelegate(nint _blip); + private static byte Blip_IsMinimalOnEdgeFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_IsMinimalOnEdge", "Blip_IsMinimalOnEdge SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_IsShortHeightThresholdDelegate(nint _blip); + private static byte Blip_IsShortHeightThresholdFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_IsShortHeightThreshold", "Blip_IsShortHeightThreshold SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_IsUseHeightIndicatorOnEdgeDelegate(nint _blip); + private static byte Blip_IsUseHeightIndicatorOnEdgeFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_IsUseHeightIndicatorOnEdge", "Blip_IsUseHeightIndicatorOnEdge SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Blip_IsVisibleDelegate(nint _blip); + private static byte Blip_IsVisibleFallback(nint _blip) => throw new Exceptions.OutdatedSdkException("Blip_IsVisible", "Blip_IsVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetAlphaDelegate(nint _blip, uint _alpha); + private static void Blip_SetAlphaFallback(nint _blip, uint _alpha) => throw new Exceptions.OutdatedSdkException("Blip_SetAlpha", "Blip_SetAlpha SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetAsFriendlyDelegate(nint _blip, byte _friendly); private static void Blip_SetAsFriendlyFallback(nint _blip, byte _friendly) => throw new Exceptions.OutdatedSdkException("Blip_SetAsFriendly", "Blip_SetAsFriendly SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetAsHighDetailDelegate(nint _blip, byte _state); @@ -617,16 +935,18 @@ public unsafe class SharedLibrary : ISharedLibrary private static void Blip_SetAsMissionCreatorFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetAsMissionCreator", "Blip_SetAsMissionCreator SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetAsShortRangeDelegate(nint _blip, byte _state); private static void Blip_SetAsShortRangeFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetAsShortRange", "Blip_SetAsShortRange SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetBlipTypeDelegate(nint _blip, byte _blipType); + private static void Blip_SetBlipTypeFallback(nint _blip, byte _blipType) => throw new Exceptions.OutdatedSdkException("Blip_SetBlipType", "Blip_SetBlipType SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetBrightDelegate(nint _blip, byte _state); private static void Blip_SetBrightFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetBright", "Blip_SetBright SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetCategoryDelegate(nint _blip, ushort _category); - private static void Blip_SetCategoryFallback(nint _blip, ushort _category) => throw new Exceptions.OutdatedSdkException("Blip_SetCategory", "Blip_SetCategory SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetColorDelegate(nint _blip, byte _color); - private static void Blip_SetColorFallback(nint _blip, byte _color) => throw new Exceptions.OutdatedSdkException("Blip_SetColor", "Blip_SetColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetCategoryDelegate(nint _blip, uint _category); + private static void Blip_SetCategoryFallback(nint _blip, uint _category) => throw new Exceptions.OutdatedSdkException("Blip_SetCategory", "Blip_SetCategory SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetColorDelegate(nint _blip, uint _color); + private static void Blip_SetColorFallback(nint _blip, uint _color) => throw new Exceptions.OutdatedSdkException("Blip_SetColor", "Blip_SetColor SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetCrewIndicatorVisibleDelegate(nint _blip, byte _state); private static void Blip_SetCrewIndicatorVisibleFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetCrewIndicatorVisible", "Blip_SetCrewIndicatorVisible SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetDisplayDelegate(nint _blip, short _display); - private static void Blip_SetDisplayFallback(nint _blip, short _display) => throw new Exceptions.OutdatedSdkException("Blip_SetDisplay", "Blip_SetDisplay SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetDisplayDelegate(nint _blip, uint _display); + private static void Blip_SetDisplayFallback(nint _blip, uint _display) => throw new Exceptions.OutdatedSdkException("Blip_SetDisplay", "Blip_SetDisplay SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetFlashesDelegate(nint _blip, byte _state); private static void Blip_SetFlashesFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetFlashes", "Blip_SetFlashes SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetFlashesAlternateDelegate(nint _blip, byte _state); @@ -641,14 +961,18 @@ public unsafe class SharedLibrary : ISharedLibrary private static void Blip_SetGxtNameFallback(nint _blip, nint _name) => throw new Exceptions.OutdatedSdkException("Blip_SetGxtName", "Blip_SetGxtName SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetHeadingIndicatorVisibleDelegate(nint _blip, byte _state); private static void Blip_SetHeadingIndicatorVisibleFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetHeadingIndicatorVisible", "Blip_SetHeadingIndicatorVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetHiddenOnLegendDelegate(nint _blip, byte _state); + private static void Blip_SetHiddenOnLegendFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetHiddenOnLegend", "Blip_SetHiddenOnLegend SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetMinimalOnEdgeDelegate(nint _blip, byte _state); + private static void Blip_SetMinimalOnEdgeFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetMinimalOnEdge", "Blip_SetMinimalOnEdge SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetNameDelegate(nint _blip, nint _name); private static void Blip_SetNameFallback(nint _blip, nint _name) => throw new Exceptions.OutdatedSdkException("Blip_SetName", "Blip_SetName SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetNumberDelegate(nint _blip, ushort _number); private static void Blip_SetNumberFallback(nint _blip, ushort _number) => throw new Exceptions.OutdatedSdkException("Blip_SetNumber", "Blip_SetNumber SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetOutlineIndicatorVisibleDelegate(nint _blip, byte _state); private static void Blip_SetOutlineIndicatorVisibleFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetOutlineIndicatorVisible", "Blip_SetOutlineIndicatorVisible SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetPriorityDelegate(nint _blip, ushort _priority); - private static void Blip_SetPriorityFallback(nint _blip, ushort _priority) => throw new Exceptions.OutdatedSdkException("Blip_SetPriority", "Blip_SetPriority SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetPriorityDelegate(nint _blip, uint _priority); + private static void Blip_SetPriorityFallback(nint _blip, uint _priority) => throw new Exceptions.OutdatedSdkException("Blip_SetPriority", "Blip_SetPriority SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetPulseDelegate(nint _blip, byte _state); private static void Blip_SetPulseFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetPulse", "Blip_SetPulse SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetRotationDelegate(nint _blip, float _rotation); @@ -661,14 +985,20 @@ public unsafe class SharedLibrary : ISharedLibrary private static void Blip_SetScaleXYFallback(nint _blip, Vector2 _scale) => throw new Exceptions.OutdatedSdkException("Blip_SetScaleXY", "Blip_SetScaleXY SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetSecondaryColorDelegate(nint _blip, Rgba _color); private static void Blip_SetSecondaryColorFallback(nint _blip, Rgba _color) => throw new Exceptions.OutdatedSdkException("Blip_SetSecondaryColor", "Blip_SetSecondaryColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetShortHeightThresholdDelegate(nint _blip, byte _state); + private static void Blip_SetShortHeightThresholdFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetShortHeightThreshold", "Blip_SetShortHeightThreshold SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetShowConeDelegate(nint _blip, byte _state); private static void Blip_SetShowConeFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetShowCone", "Blip_SetShowCone SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetShrinkedDelegate(nint _blip, byte _state); private static void Blip_SetShrinkedFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetShrinked", "Blip_SetShrinked SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetSpriteDelegate(nint _blip, ushort _sprite); - private static void Blip_SetSpriteFallback(nint _blip, ushort _sprite) => throw new Exceptions.OutdatedSdkException("Blip_SetSprite", "Blip_SetSprite SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetSpriteDelegate(nint _blip, uint _sprite); + private static void Blip_SetSpriteFallback(nint _blip, uint _sprite) => throw new Exceptions.OutdatedSdkException("Blip_SetSprite", "Blip_SetSprite SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetTickVisibleDelegate(nint _blip, byte _state); private static void Blip_SetTickVisibleFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetTickVisible", "Blip_SetTickVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetUseHeightIndicatorOnEdgeDelegate(nint _blip, byte _state); + private static void Blip_SetUseHeightIndicatorOnEdgeFallback(nint _blip, byte _state) => throw new Exceptions.OutdatedSdkException("Blip_SetUseHeightIndicatorOnEdge", "Blip_SetUseHeightIndicatorOnEdge SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Blip_SetVisibleDelegate(nint _blip, byte _toggle); + private static void Blip_SetVisibleFallback(nint _blip, byte _toggle) => throw new Exceptions.OutdatedSdkException("Blip_SetVisible", "Blip_SetVisible SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Checkpoint_GetCheckpointTypeDelegate(nint _checkpoint); private static byte Checkpoint_GetCheckpointTypeFallback(nint _checkpoint) => throw new Exceptions.OutdatedSdkException("Checkpoint_GetCheckpointType", "Checkpoint_GetCheckpointType SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Checkpoint_GetColorDelegate(nint _checkpoint, Rgba* _color); @@ -677,30 +1007,102 @@ public unsafe class SharedLibrary : ISharedLibrary private static nint Checkpoint_GetColShapeFallback(nint _checkpoint) => throw new Exceptions.OutdatedSdkException("Checkpoint_GetColShape", "Checkpoint_GetColShape SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Checkpoint_GetHeightDelegate(nint _checkpoint); private static float Checkpoint_GetHeightFallback(nint _checkpoint) => throw new Exceptions.OutdatedSdkException("Checkpoint_GetHeight", "Checkpoint_GetHeight SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Checkpoint_GetIconColorDelegate(nint _checkpoint, Rgba* _color); + private static void Checkpoint_GetIconColorFallback(nint _checkpoint, Rgba* _color) => throw new Exceptions.OutdatedSdkException("Checkpoint_GetIconColor", "Checkpoint_GetIconColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Checkpoint_GetIDDelegate(nint _checkpoint); + private static uint Checkpoint_GetIDFallback(nint _checkpoint) => throw new Exceptions.OutdatedSdkException("Checkpoint_GetID", "Checkpoint_GetID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Checkpoint_GetNextPositionDelegate(nint _checkpoint, Vector3* _pos); private static void Checkpoint_GetNextPositionFallback(nint _checkpoint, Vector3* _pos) => throw new Exceptions.OutdatedSdkException("Checkpoint_GetNextPosition", "Checkpoint_GetNextPosition SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Checkpoint_GetRadiusDelegate(nint _checkpoint); private static float Checkpoint_GetRadiusFallback(nint _checkpoint) => throw new Exceptions.OutdatedSdkException("Checkpoint_GetRadius", "Checkpoint_GetRadius SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Checkpoint_GetStreamingDistanceDelegate(nint _checkpoint); + private static uint Checkpoint_GetStreamingDistanceFallback(nint _checkpoint) => throw new Exceptions.OutdatedSdkException("Checkpoint_GetStreamingDistance", "Checkpoint_GetStreamingDistance SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Checkpoint_IsVisibleDelegate(nint _checkpoint); + private static byte Checkpoint_IsVisibleFallback(nint _checkpoint) => throw new Exceptions.OutdatedSdkException("Checkpoint_IsVisible", "Checkpoint_IsVisible SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Checkpoint_SetCheckpointTypeDelegate(nint _checkpoint, byte _type); private static void Checkpoint_SetCheckpointTypeFallback(nint _checkpoint, byte _type) => throw new Exceptions.OutdatedSdkException("Checkpoint_SetCheckpointType", "Checkpoint_SetCheckpointType SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Checkpoint_SetColorDelegate(nint _checkpoint, Rgba _color); private static void Checkpoint_SetColorFallback(nint _checkpoint, Rgba _color) => throw new Exceptions.OutdatedSdkException("Checkpoint_SetColor", "Checkpoint_SetColor SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Checkpoint_SetHeightDelegate(nint _checkpoint, float _height); private static void Checkpoint_SetHeightFallback(nint _checkpoint, float _height) => throw new Exceptions.OutdatedSdkException("Checkpoint_SetHeight", "Checkpoint_SetHeight SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Checkpoint_SetIconColorDelegate(nint _checkpoint, Rgba _color); + private static void Checkpoint_SetIconColorFallback(nint _checkpoint, Rgba _color) => throw new Exceptions.OutdatedSdkException("Checkpoint_SetIconColor", "Checkpoint_SetIconColor SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Checkpoint_SetNextPositionDelegate(nint _checkpoint, Vector3 _pos); private static void Checkpoint_SetNextPositionFallback(nint _checkpoint, Vector3 _pos) => throw new Exceptions.OutdatedSdkException("Checkpoint_SetNextPosition", "Checkpoint_SetNextPosition SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Checkpoint_SetRadiusDelegate(nint _checkpoint, float _radius); private static void Checkpoint_SetRadiusFallback(nint _checkpoint, float _radius) => throw new Exceptions.OutdatedSdkException("Checkpoint_SetRadius", "Checkpoint_SetRadius SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Checkpoint_SetVisibleDelegate(nint _checkpoint, byte _toggle); + private static void Checkpoint_SetVisibleFallback(nint _checkpoint, byte _toggle) => throw new Exceptions.OutdatedSdkException("Checkpoint_SetVisible", "Checkpoint_SetVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint ColShape_GetIDDelegate(nint _colShape); + private static uint ColShape_GetIDFallback(nint _colShape) => throw new Exceptions.OutdatedSdkException("ColShape_GetID", "ColShape_GetID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ColShape_GetWorldObjectDelegate(nint _colShape); private static nint ColShape_GetWorldObjectFallback(nint _colShape) => throw new Exceptions.OutdatedSdkException("ColShape_GetWorldObject", "ColShape_GetWorldObject SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte ColShape_IsEntityIdInDelegate(nint _colShape, ushort _id); - private static byte ColShape_IsEntityIdInFallback(nint _colShape, ushort _id) => throw new Exceptions.OutdatedSdkException("ColShape_IsEntityIdIn", "ColShape_IsEntityIdIn SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte ColShape_IsEntityIdInDelegate(nint _colShape, uint _id); + private static byte ColShape_IsEntityIdInFallback(nint _colShape, uint _id) => throw new Exceptions.OutdatedSdkException("ColShape_IsEntityIdIn", "ColShape_IsEntityIdIn SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte ColShape_IsEntityInDelegate(nint _colShape, nint _entity); private static byte ColShape_IsEntityInFallback(nint _colShape, nint _entity) => throw new Exceptions.OutdatedSdkException("ColShape_IsEntityIn", "ColShape_IsEntityIn SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte ColShape_IsPointInDelegate(nint _colShape, Vector3 _point); private static byte ColShape_IsPointInFallback(nint _colShape, Vector3 _point) => throw new Exceptions.OutdatedSdkException("ColShape_IsPointIn", "ColShape_IsPointIn SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ColShapeCircle_GetColShapeDelegate(nint _colShapeCircle); + private static nint ColShapeCircle_GetColShapeFallback(nint _colShapeCircle) => throw new Exceptions.OutdatedSdkException("ColShapeCircle_GetColShape", "ColShapeCircle_GetColShape SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint ColShapeCircle_GetIDDelegate(nint _colShapeCircle); + private static uint ColShapeCircle_GetIDFallback(nint _colShapeCircle) => throw new Exceptions.OutdatedSdkException("ColShapeCircle_GetID", "ColShapeCircle_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float ColShapeCircle_GetRadiusDelegate(nint _colShapeCircle); + private static float ColShapeCircle_GetRadiusFallback(nint _colShapeCircle) => throw new Exceptions.OutdatedSdkException("ColShapeCircle_GetRadius", "ColShapeCircle_GetRadius SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ColShapeCuboid_GetColShapeDelegate(nint _colShapeCuboid); + private static nint ColShapeCuboid_GetColShapeFallback(nint _colShapeCuboid) => throw new Exceptions.OutdatedSdkException("ColShapeCuboid_GetColShape", "ColShapeCuboid_GetColShape SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint ColShapeCuboid_GetIDDelegate(nint _colShapeCuboid); + private static uint ColShapeCuboid_GetIDFallback(nint _colShapeCuboid) => throw new Exceptions.OutdatedSdkException("ColShapeCuboid_GetID", "ColShapeCuboid_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate Vector3 ColShapeCuboid_GetMaxDelegate(nint _colShapeCuboid); + private static Vector3 ColShapeCuboid_GetMaxFallback(nint _colShapeCuboid) => throw new Exceptions.OutdatedSdkException("ColShapeCuboid_GetMax", "ColShapeCuboid_GetMax SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate Vector3 ColShapeCuboid_GetMinDelegate(nint _colShapeCuboid); + private static Vector3 ColShapeCuboid_GetMinFallback(nint _colShapeCuboid) => throw new Exceptions.OutdatedSdkException("ColShapeCuboid_GetMin", "ColShapeCuboid_GetMin SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ColShapeCylinder_GetColShapeDelegate(nint _colShapeCylinder); + private static nint ColShapeCylinder_GetColShapeFallback(nint _colShapeCylinder) => throw new Exceptions.OutdatedSdkException("ColShapeCylinder_GetColShape", "ColShapeCylinder_GetColShape SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float ColShapeCylinder_GetHeightDelegate(nint _colShapeCylinder); + private static float ColShapeCylinder_GetHeightFallback(nint _colShapeCylinder) => throw new Exceptions.OutdatedSdkException("ColShapeCylinder_GetHeight", "ColShapeCylinder_GetHeight SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint ColShapeCylinder_GetIDDelegate(nint _colShapeCylinder); + private static uint ColShapeCylinder_GetIDFallback(nint _colShapeCylinder) => throw new Exceptions.OutdatedSdkException("ColShapeCylinder_GetID", "ColShapeCylinder_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float ColShapeCylinder_GetRadiusDelegate(nint _colShapeCylinder); + private static float ColShapeCylinder_GetRadiusFallback(nint _colShapeCylinder) => throw new Exceptions.OutdatedSdkException("ColShapeCylinder_GetRadius", "ColShapeCylinder_GetRadius SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ColShapePoly_GetColShapeDelegate(nint _colShapePoly); + private static nint ColShapePoly_GetColShapeFallback(nint _colShapePoly) => throw new Exceptions.OutdatedSdkException("ColShapePoly_GetColShape", "ColShapePoly_GetColShape SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint ColShapePoly_GetIDDelegate(nint _colShapePoly); + private static uint ColShapePoly_GetIDFallback(nint _colShapePoly) => throw new Exceptions.OutdatedSdkException("ColShapePoly_GetID", "ColShapePoly_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float ColShapePoly_GetMaxZDelegate(nint _colShapePoly); + private static float ColShapePoly_GetMaxZFallback(nint _colShapePoly) => throw new Exceptions.OutdatedSdkException("ColShapePoly_GetMaxZ", "ColShapePoly_GetMaxZ SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float ColShapePoly_GetMinZDelegate(nint _colShapePoly); + private static float ColShapePoly_GetMinZFallback(nint _colShapePoly) => throw new Exceptions.OutdatedSdkException("ColShapePoly_GetMinZ", "ColShapePoly_GetMinZ SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate Vector2[] ColShapePoly_GetPointsDelegate(nint _colShapePoly, ulong* _size); + private static Vector2[] ColShapePoly_GetPointsFallback(nint _colShapePoly, ulong* _size) => throw new Exceptions.OutdatedSdkException("ColShapePoly_GetPoints", "ColShapePoly_GetPoints SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ColShapeRect_GetColShapeDelegate(nint _colShapeRect); + private static nint ColShapeRect_GetColShapeFallback(nint _colShapeRect) => throw new Exceptions.OutdatedSdkException("ColShapeRect_GetColShape", "ColShapeRect_GetColShape SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint ColShapeRect_GetIDDelegate(nint _colShapeRect); + private static uint ColShapeRect_GetIDFallback(nint _colShapeRect) => throw new Exceptions.OutdatedSdkException("ColShapeRect_GetID", "ColShapeRect_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void ColShapeRect_GetMaxDelegate(nint _colShapeRect, Vector2* _pos); + private static void ColShapeRect_GetMaxFallback(nint _colShapeRect, Vector2* _pos) => throw new Exceptions.OutdatedSdkException("ColShapeRect_GetMax", "ColShapeRect_GetMax SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void ColShapeRect_GetMinDelegate(nint _colShapeRect, Vector2* _pos); + private static void ColShapeRect_GetMinFallback(nint _colShapeRect, Vector2* _pos) => throw new Exceptions.OutdatedSdkException("ColShapeRect_GetMin", "ColShapeRect_GetMin SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint ColShapeSphere_GetColShapeDelegate(nint _colShapeSphere); + private static nint ColShapeSphere_GetColShapeFallback(nint _colShapeSphere) => throw new Exceptions.OutdatedSdkException("ColShapeSphere_GetColShape", "ColShapeSphere_GetColShape SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint ColShapeSphere_GetIDDelegate(nint _colShapeSphere); + private static uint ColShapeSphere_GetIDFallback(nint _colShapeSphere) => throw new Exceptions.OutdatedSdkException("ColShapeSphere_GetID", "ColShapeSphere_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float ColShapeSphere_GetRadiusDelegate(nint _colShapeSphere); + private static float ColShapeSphere_GetRadiusFallback(nint _colShapeSphere) => throw new Exceptions.OutdatedSdkException("ColShapeSphere_GetRadius", "ColShapeSphere_GetRadius SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Config_DeleteDelegate(nint _node); private static void Config_DeleteFallback(nint _node) => throw new Exceptions.OutdatedSdkException("Config_Delete", "Config_Delete SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateColShapeCircleDelegate(nint _core, Vector3 _pos, float _radius, uint* _id); + private static nint Core_CreateColShapeCircleFallback(nint _core, Vector3 _pos, float _radius, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateColShapeCircle", "Core_CreateColShapeCircle SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateColShapeCubeDelegate(nint _core, Vector3 _pos, Vector3 _pos2, uint* _id); + private static nint Core_CreateColShapeCubeFallback(nint _core, Vector3 _pos, Vector3 _pos2, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateColShapeCube", "Core_CreateColShapeCube SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateColShapeCylinderDelegate(nint _core, Vector3 _pos, float _radius, float _height, uint* _id); + private static nint Core_CreateColShapeCylinderFallback(nint _core, Vector3 _pos, float _radius, float _height, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateColShapeCylinder", "Core_CreateColShapeCylinder SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateColShapePolygonDelegate(nint _core, float _minZ, float _maxZ, Vector2[] points, int _pointSize, uint* _id); + private static nint Core_CreateColShapePolygonFallback(nint _core, float _minZ, float _maxZ, Vector2[] points, int _pointSize, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateColShapePolygon", "Core_CreateColShapePolygon SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateColShapeRectangleDelegate(nint _core, float _x1, float _y1, float _x2, float _y2, float _z, uint* _id); + private static nint Core_CreateColShapeRectangleFallback(nint _core, float _x1, float _y1, float _x2, float _y2, float _z, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateColShapeRectangle", "Core_CreateColShapeRectangle SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateColShapeSphereDelegate(nint _core, Vector3 _pos, float _radius, uint* _id); + private static nint Core_CreateColShapeSphereFallback(nint _core, Vector3 _pos, float _radius, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateColShapeSphere", "Core_CreateColShapeSphere SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateMValueBaseObjectDelegate(nint _core, nint _value); private static nint Core_CreateMValueBaseObjectFallback(nint _core, nint _value) => throw new Exceptions.OutdatedSdkException("Core_CreateMValueBaseObject", "Core_CreateMValueBaseObject SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateMValueBoolDelegate(nint _core, byte _value); @@ -729,68 +1131,88 @@ public unsafe class SharedLibrary : ISharedLibrary private static nint Core_CreateMValueVector2Fallback(nint _core, Vector2 _value) => throw new Exceptions.OutdatedSdkException("Core_CreateMValueVector2", "Core_CreateMValueVector2 SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateMValueVector3Delegate(nint _core, Vector3 _value); private static nint Core_CreateMValueVector3Fallback(nint _core, Vector3 _value) => throw new Exceptions.OutdatedSdkException("Core_CreateMValueVector3", "Core_CreateMValueVector3 SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateVirtualEntityDelegate(nint _core, nint _group, Vector3 _position, uint _streamingDistance, nint[] keys, nint[] values, ulong _size, uint* _id); + private static nint Core_CreateVirtualEntityFallback(nint _core, nint _group, Vector3 _position, uint _streamingDistance, nint[] keys, nint[] values, ulong _size, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateVirtualEntity", "Core_CreateVirtualEntity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_CreateVirtualEntityGroupDelegate(nint _core, uint _maxEntitiesInStream, uint* _id); + private static nint Core_CreateVirtualEntityGroupFallback(nint _core, uint _maxEntitiesInStream, uint* _id) => throw new Exceptions.OutdatedSdkException("Core_CreateVirtualEntityGroup", "Core_CreateVirtualEntityGroup SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DeleteMetaDataDelegate(nint _core, nint _key); private static void Core_DeleteMetaDataFallback(nint _core, nint _key) => throw new Exceptions.OutdatedSdkException("Core_DeleteMetaData", "Core_DeleteMetaData SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DestroyBaseObjectDelegate(nint _server, nint _baseObject); - private static void Core_DestroyBaseObjectFallback(nint _server, nint _baseObject) => throw new Exceptions.OutdatedSdkException("Core_DestroyBaseObject", "Core_DestroyBaseObject SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_FileExistsDelegate(nint _server, nint _path); - private static byte Core_FileExistsFallback(nint _server, nint _path) => throw new Exceptions.OutdatedSdkException("Core_FileExists", "Core_FileExists SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_FileReadDelegate(nint _server, nint _path, int* _size); - private static nint Core_FileReadFallback(nint _server, nint _path, int* _size) => throw new Exceptions.OutdatedSdkException("Core_FileRead", "Core_FileRead SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_DestroyBaseObjectDelegate(nint _core, nint _baseObject); + private static void Core_DestroyBaseObjectFallback(nint _core, nint _baseObject) => throw new Exceptions.OutdatedSdkException("Core_DestroyBaseObject", "Core_DestroyBaseObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_FileExistsDelegate(nint _core, nint _path); + private static byte Core_FileExistsFallback(nint _core, nint _path) => throw new Exceptions.OutdatedSdkException("Core_FileExists", "Core_FileExists SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_FileReadDelegate(nint _core, nint _path, int* _size); + private static nint Core_FileReadFallback(nint _core, nint _path, int* _size) => throw new Exceptions.OutdatedSdkException("Core_FileRead", "Core_FileRead SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetAllResourcesDelegate(nint _core, uint* _size); private static nint Core_GetAllResourcesFallback(nint _core, uint* _size) => throw new Exceptions.OutdatedSdkException("Core_GetAllResources", "Core_GetAllResources SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Core_GetBlipCountDelegate(nint _core); - private static ulong Core_GetBlipCountFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetBlipCount", "Core_GetBlipCount SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_GetBlipsDelegate(nint _core, nint[] vehicles, ulong _size); - private static void Core_GetBlipsFallback(nint _core, nint[] vehicles, ulong _size) => throw new Exceptions.OutdatedSdkException("Core_GetBlips", "Core_GetBlips SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetBaseObjectByIDDelegate(nint _core, byte _type, uint _id); + private static nint Core_GetBaseObjectByIDFallback(nint _core, byte _type, uint _id) => throw new Exceptions.OutdatedSdkException("Core_GetBaseObjectByID", "Core_GetBaseObjectByID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_GetBaseObjectTypeSizeDelegate(); + private static byte Core_GetBaseObjectTypeSizeFallback() => throw new Exceptions.OutdatedSdkException("Core_GetBaseObjectTypeSize", "Core_GetBaseObjectTypeSize SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetBlipsDelegate(nint _core, ulong* _size); + private static nint Core_GetBlipsFallback(nint _core, ulong* _size) => throw new Exceptions.OutdatedSdkException("Core_GetBlips", "Core_GetBlips SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetBranchDelegate(nint _core, int* _size); private static nint Core_GetBranchFallback(nint _core, int* _size) => throw new Exceptions.OutdatedSdkException("Core_GetBranch", "Core_GetBranch SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetCheckpointsDelegate(nint _core, ulong* _size); + private static nint Core_GetCheckpointsFallback(nint _core, ulong* _size) => throw new Exceptions.OutdatedSdkException("Core_GetCheckpoints", "Core_GetCheckpoints SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetColShapesDelegate(nint _core, ulong* _size); + private static nint Core_GetColShapesFallback(nint _core, ulong* _size) => throw new Exceptions.OutdatedSdkException("Core_GetColShapes", "Core_GetColShapes SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetCoreInstanceDelegate(); private static nint Core_GetCoreInstanceFallback() => throw new Exceptions.OutdatedSdkException("Core_GetCoreInstance", "Core_GetCoreInstance SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetEntityByIdDelegate(nint _core, ushort _id, byte* _type); - private static nint Core_GetEntityByIdFallback(nint _core, ushort _id, byte* _type) => throw new Exceptions.OutdatedSdkException("Core_GetEntityById", "Core_GetEntityById SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_GetEventEnumSizeDelegate(); - private static byte Core_GetEventEnumSizeFallback() => throw new Exceptions.OutdatedSdkException("Core_GetEventEnumSize", "Core_GetEventEnumSize SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_GetEventTypeSizeDelegate(); + private static byte Core_GetEventTypeSizeFallback() => throw new Exceptions.OutdatedSdkException("Core_GetEventTypeSize", "Core_GetEventTypeSize SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetMarkersDelegate(nint _core, ulong* _size); + private static nint Core_GetMarkersFallback(nint _core, ulong* _size) => throw new Exceptions.OutdatedSdkException("Core_GetMarkers", "Core_GetMarkers SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetMetaDataDelegate(nint _core, nint _key); private static nint Core_GetMetaDataFallback(nint _core, nint _key) => throw new Exceptions.OutdatedSdkException("Core_GetMetaData", "Core_GetMetaData SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Core_GetPlayerCountDelegate(nint _server); - private static ulong Core_GetPlayerCountFallback(nint _server) => throw new Exceptions.OutdatedSdkException("Core_GetPlayerCount", "Core_GetPlayerCount SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_GetPlayersDelegate(nint _server, nint[] players, ulong _size); - private static void Core_GetPlayersFallback(nint _server, nint[] players, ulong _size) => throw new Exceptions.OutdatedSdkException("Core_GetPlayers", "Core_GetPlayers SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int Core_GetNetTimeDelegate(nint _core); + private static int Core_GetNetTimeFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetNetTime", "Core_GetNetTime SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetNetworkObjectsDelegate(nint _core, ulong* _size); + private static nint Core_GetNetworkObjectsFallback(nint _core, ulong* _size) => throw new Exceptions.OutdatedSdkException("Core_GetNetworkObjects", "Core_GetNetworkObjects SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetPedsDelegate(nint _core, ulong* _size); + private static nint Core_GetPedsFallback(nint _core, ulong* _size) => throw new Exceptions.OutdatedSdkException("Core_GetPeds", "Core_GetPeds SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetPlayersDelegate(nint _core, ulong* _size); + private static nint Core_GetPlayersFallback(nint _core, ulong* _size) => throw new Exceptions.OutdatedSdkException("Core_GetPlayers", "Core_GetPlayers SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetResourceDelegate(nint _core, nint _resourceName); private static nint Core_GetResourceFallback(nint _core, nint _resourceName) => throw new Exceptions.OutdatedSdkException("Core_GetResource", "Core_GetResource SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetSyncedMetaDataDelegate(nint _core, nint _key); private static nint Core_GetSyncedMetaDataFallback(nint _core, nint _key) => throw new Exceptions.OutdatedSdkException("Core_GetSyncedMetaData", "Core_GetSyncedMetaData SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Core_GetVehicleCountDelegate(nint _server); - private static ulong Core_GetVehicleCountFallback(nint _server) => throw new Exceptions.OutdatedSdkException("Core_GetVehicleCount", "Core_GetVehicleCount SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_GetVehiclesDelegate(nint _server, nint[] vehicles, ulong _size); - private static void Core_GetVehiclesFallback(nint _server, nint[] vehicles, ulong _size) => throw new Exceptions.OutdatedSdkException("Core_GetVehicles", "Core_GetVehicles SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetTextLabelsDelegate(nint _core, ulong* _size); + private static nint Core_GetTextLabelsFallback(nint _core, ulong* _size) => throw new Exceptions.OutdatedSdkException("Core_GetTextLabels", "Core_GetTextLabels SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetVehiclesDelegate(nint _core, ulong* _size); + private static nint Core_GetVehiclesFallback(nint _core, ulong* _size) => throw new Exceptions.OutdatedSdkException("Core_GetVehicles", "Core_GetVehicles SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetVersionDelegate(nint _core, int* _size); private static nint Core_GetVersionFallback(nint _core, int* _size) => throw new Exceptions.OutdatedSdkException("Core_GetVersion", "Core_GetVersion SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetVirtualEntitiesDelegate(nint _core, ulong* _size); + private static nint Core_GetVirtualEntitiesFallback(nint _core, ulong* _size) => throw new Exceptions.OutdatedSdkException("Core_GetVirtualEntities", "Core_GetVirtualEntities SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Core_GetVirtualEntityGroupsDelegate(nint _core, ulong* _size); + private static nint Core_GetVirtualEntityGroupsFallback(nint _core, ulong* _size) => throw new Exceptions.OutdatedSdkException("Core_GetVirtualEntityGroups", "Core_GetVirtualEntityGroups SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_GetVoiceConnectionStateDelegate(nint _core); + private static byte Core_GetVoiceConnectionStateFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_GetVoiceConnectionState", "Core_GetVoiceConnectionState SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_HasMetaDataDelegate(nint _core, nint _key); private static byte Core_HasMetaDataFallback(nint _core, nint _key) => throw new Exceptions.OutdatedSdkException("Core_HasMetaData", "Core_HasMetaData SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_HasSyncedMetaDataDelegate(nint _core, nint _key); private static byte Core_HasSyncedMetaDataFallback(nint _core, nint _key) => throw new Exceptions.OutdatedSdkException("Core_HasSyncedMetaData", "Core_HasSyncedMetaData SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Core_IsDebugDelegate(nint _core); private static byte Core_IsDebugFallback(nint _core) => throw new Exceptions.OutdatedSdkException("Core_IsDebug", "Core_IsDebug SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LogColoredDelegate(nint _server, nint _str); - private static void Core_LogColoredFallback(nint _server, nint _str) => throw new Exceptions.OutdatedSdkException("Core_LogColored", "Core_LogColored SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LogDebugDelegate(nint _server, nint _str); - private static void Core_LogDebugFallback(nint _server, nint _str) => throw new Exceptions.OutdatedSdkException("Core_LogDebug", "Core_LogDebug SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LogErrorDelegate(nint _server, nint _str); - private static void Core_LogErrorFallback(nint _server, nint _str) => throw new Exceptions.OutdatedSdkException("Core_LogError", "Core_LogError SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LogInfoDelegate(nint _server, nint _str); - private static void Core_LogInfoFallback(nint _server, nint _str) => throw new Exceptions.OutdatedSdkException("Core_LogInfo", "Core_LogInfo SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LogWarningDelegate(nint _server, nint _str); - private static void Core_LogWarningFallback(nint _server, nint _str) => throw new Exceptions.OutdatedSdkException("Core_LogWarning", "Core_LogWarning SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LogColoredDelegate(nint _core, nint _str); + private static void Core_LogColoredFallback(nint _core, nint _str) => throw new Exceptions.OutdatedSdkException("Core_LogColored", "Core_LogColored SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LogDebugDelegate(nint _core, nint _str); + private static void Core_LogDebugFallback(nint _core, nint _str) => throw new Exceptions.OutdatedSdkException("Core_LogDebug", "Core_LogDebug SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LogErrorDelegate(nint _core, nint _str); + private static void Core_LogErrorFallback(nint _core, nint _str) => throw new Exceptions.OutdatedSdkException("Core_LogError", "Core_LogError SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LogInfoDelegate(nint _core, nint _str); + private static void Core_LogInfoFallback(nint _core, nint _str) => throw new Exceptions.OutdatedSdkException("Core_LogInfo", "Core_LogInfo SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_LogWarningDelegate(nint _core, nint _str); + private static void Core_LogWarningFallback(nint _core, nint _str) => throw new Exceptions.OutdatedSdkException("Core_LogWarning", "Core_LogWarning SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_SetMetaDataDelegate(nint _core, nint _key, nint _val); private static void Core_SetMetaDataFallback(nint _core, nint _key, nint _val) => throw new Exceptions.OutdatedSdkException("Core_SetMetaData", "Core_SetMetaData SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_ToggleEventDelegate(nint _core, byte _event, byte _state); private static void Core_ToggleEventFallback(nint _core, byte _event, byte _state) => throw new Exceptions.OutdatedSdkException("Core_ToggleEvent", "Core_ToggleEvent SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Core_TriggerLocalEventDelegate(nint _core, nint _event, nint[] args, int _size); private static void Core_TriggerLocalEventFallback(nint _core, nint _event, nint[] args, int _size) => throw new Exceptions.OutdatedSdkException("Core_TriggerLocalEvent", "Core_TriggerLocalEvent SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Entity_GetIDDelegate(nint _entity); - private static ushort Entity_GetIDFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_GetID", "Entity_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Entity_GetIDDelegate(nint _entity); + private static uint Entity_GetIDFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_GetID", "Entity_GetID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Entity_GetModelDelegate(nint _entity); private static uint Entity_GetModelFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_GetModel", "Entity_GetModel SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Entity_GetNetOwnerDelegate(nint _entity); @@ -801,38 +1223,74 @@ public unsafe class SharedLibrary : ISharedLibrary private static void Entity_GetRotationFallback(nint _entity, Rotation* _rot) => throw new Exceptions.OutdatedSdkException("Entity_GetRotation", "Entity_GetRotation SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Entity_GetStreamSyncedMetaDataDelegate(nint _Entity, nint _key); private static nint Entity_GetStreamSyncedMetaDataFallback(nint _Entity, nint _key) => throw new Exceptions.OutdatedSdkException("Entity_GetStreamSyncedMetaData", "Entity_GetStreamSyncedMetaData SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Entity_GetSyncedMetaDataDelegate(nint _Entity, nint _key); - private static nint Entity_GetSyncedMetaDataFallback(nint _Entity, nint _key) => throw new Exceptions.OutdatedSdkException("Entity_GetSyncedMetaData", "Entity_GetSyncedMetaData SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Entity_GetTypeByIDDelegate(nint _core, ushort _id, byte* _type); - private static byte Entity_GetTypeByIDFallback(nint _core, ushort _id, byte* _type) => throw new Exceptions.OutdatedSdkException("Entity_GetTypeByID", "Entity_GetTypeByID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Entity_GetWorldObjectDelegate(nint _entity); private static nint Entity_GetWorldObjectFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_GetWorldObject", "Entity_GetWorldObject SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Entity_HasStreamSyncedMetaDataDelegate(nint _Entity, nint _key); private static byte Entity_HasStreamSyncedMetaDataFallback(nint _Entity, nint _key) => throw new Exceptions.OutdatedSdkException("Entity_HasStreamSyncedMetaData", "Entity_HasStreamSyncedMetaData SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Entity_HasSyncedMetaDataDelegate(nint _Entity, nint _key); - private static byte Entity_HasSyncedMetaDataFallback(nint _Entity, nint _key) => throw new Exceptions.OutdatedSdkException("Entity_HasSyncedMetaData", "Entity_HasSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Entity_IsFrozenDelegate(nint _entity); + private static byte Entity_IsFrozenFallback(nint _entity) => throw new Exceptions.OutdatedSdkException("Entity_IsFrozen", "Entity_IsFrozen SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_SetFrozenDelegate(nint _entity, byte _state); + private static void Entity_SetFrozenFallback(nint _entity, byte _state) => throw new Exceptions.OutdatedSdkException("Entity_SetFrozen", "Entity_SetFrozen SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Entity_SetRotationDelegate(nint _entity, Rotation _rot); + private static void Entity_SetRotationFallback(nint _entity, Rotation _rot) => throw new Exceptions.OutdatedSdkException("Entity_SetRotation", "Entity_SetRotation SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_CancelDelegate(nint _event); private static void Event_CancelFallback(nint _event) => throw new Exceptions.OutdatedSdkException("Event_Cancel", "Event_Cancel SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Event_ScriptRPCEvent_AnswerDelegate(nint _event, nint _answer); + private static byte Event_ScriptRPCEvent_AnswerFallback(nint _event, nint _answer) => throw new Exceptions.OutdatedSdkException("Event_ScriptRPCEvent_Answer", "Event_ScriptRPCEvent_Answer SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Event_ScriptRPCEvent_AnswerWithErrorDelegate(nint _event, nint _error); + private static byte Event_ScriptRPCEvent_AnswerWithErrorFallback(nint _event, nint _error) => throw new Exceptions.OutdatedSdkException("Event_ScriptRPCEvent_AnswerWithError", "Event_ScriptRPCEvent_AnswerWithError SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Event_ScriptRPCEvent_WillAnswerDelegate(nint _event); + private static byte Event_ScriptRPCEvent_WillAnswerFallback(nint _event) => throw new Exceptions.OutdatedSdkException("Event_ScriptRPCEvent_WillAnswer", "Event_ScriptRPCEvent_WillAnswer SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Event_WasCancelledDelegate(nint _event); private static byte Event_WasCancelledFallback(nint _event) => throw new Exceptions.OutdatedSdkException("Event_WasCancelled", "Event_WasCancelled SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeAudioArrayDelegate(nint _audioArray); + private static void FreeAudioArrayFallback(nint _audioArray) => throw new Exceptions.OutdatedSdkException("FreeAudioArray", "FreeAudioArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeAudioOutputArrayDelegate(nint _audioOutputArray); + private static void FreeAudioOutputArrayFallback(nint _audioOutputArray) => throw new Exceptions.OutdatedSdkException("FreeAudioOutputArray", "FreeAudioOutputArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeBlipArrayDelegate(nint _blipArray); + private static void FreeBlipArrayFallback(nint _blipArray) => throw new Exceptions.OutdatedSdkException("FreeBlipArray", "FreeBlipArray SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeCharArrayDelegate(nint charArray); private static void FreeCharArrayFallback(nint charArray) => throw new Exceptions.OutdatedSdkException("FreeCharArray", "FreeCharArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeCheckpointArrayDelegate(nint _checkpointArray); + private static void FreeCheckpointArrayFallback(nint _checkpointArray) => throw new Exceptions.OutdatedSdkException("FreeCheckpointArray", "FreeCheckpointArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeColShapeArrayDelegate(nint _colShapeArray); + private static void FreeColShapeArrayFallback(nint _colShapeArray) => throw new Exceptions.OutdatedSdkException("FreeColShapeArray", "FreeColShapeArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeConnectionInfoArrayDelegate(nint _connectionInfoArray); + private static void FreeConnectionInfoArrayFallback(nint _connectionInfoArray) => throw new Exceptions.OutdatedSdkException("FreeConnectionInfoArray", "FreeConnectionInfoArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeLocalObjectArrayDelegate(nint _objectArray); + private static void FreeLocalObjectArrayFallback(nint _objectArray) => throw new Exceptions.OutdatedSdkException("FreeLocalObjectArray", "FreeLocalObjectArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeMarkerArrayDelegate(nint _markerArray); + private static void FreeMarkerArrayFallback(nint _markerArray) => throw new Exceptions.OutdatedSdkException("FreeMarkerArray", "FreeMarkerArray SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeMValueConstArrayDelegate(nint _mvalueConstArray); private static void FreeMValueConstArrayFallback(nint _mvalueConstArray) => throw new Exceptions.OutdatedSdkException("FreeMValueConstArray", "FreeMValueConstArray SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeObjectArrayDelegate(nint _objectArray); - private static void FreeObjectArrayFallback(nint _objectArray) => throw new Exceptions.OutdatedSdkException("FreeObjectArray", "FreeObjectArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeNetworkObjectArrayDelegate(nint _networkObjectArray); + private static void FreeNetworkObjectArrayFallback(nint _networkObjectArray) => throw new Exceptions.OutdatedSdkException("FreeNetworkObjectArray", "FreeNetworkObjectArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreePedArrayDelegate(nint _pedArray); + private static void FreePedArrayFallback(nint _pedArray) => throw new Exceptions.OutdatedSdkException("FreePedArray", "FreePedArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreePlayerArrayDelegate(nint _playerArray); + private static void FreePlayerArrayFallback(nint _playerArray) => throw new Exceptions.OutdatedSdkException("FreePlayerArray", "FreePlayerArray SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeResourceArrayDelegate(nint _resourceArray); private static void FreeResourceArrayFallback(nint _resourceArray) => throw new Exceptions.OutdatedSdkException("FreeResourceArray", "FreeResourceArray SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeStringDelegate(nint _string); private static void FreeStringFallback(nint _string) => throw new Exceptions.OutdatedSdkException("FreeString", "FreeString SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeStringArrayDelegate(nint _stringArray, uint _size); private static void FreeStringArrayFallback(nint _stringArray, uint _size) => throw new Exceptions.OutdatedSdkException("FreeStringArray", "FreeStringArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeTextLabelArrayDelegate(nint _textLabelArray); + private static void FreeTextLabelArrayFallback(nint _textLabelArray) => throw new Exceptions.OutdatedSdkException("FreeTextLabelArray", "FreeTextLabelArray SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeUInt32ArrayDelegate(nint _uInt32Array); private static void FreeUInt32ArrayFallback(nint _uInt32Array) => throw new Exceptions.OutdatedSdkException("FreeUInt32Array", "FreeUInt32Array SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeUInt8ArrayDelegate(nint _uInt8Array); private static void FreeUInt8ArrayFallback(nint _uInt8Array) => throw new Exceptions.OutdatedSdkException("FreeUInt8Array", "FreeUInt8Array SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeUIntArrayDelegate(UIntArray* _array); private static void FreeUIntArrayFallback(UIntArray* _array) => throw new Exceptions.OutdatedSdkException("FreeUIntArray", "FreeUIntArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeVector2ArrayDelegate(nint _vector2Array); + private static void FreeVector2ArrayFallback(nint _vector2Array) => throw new Exceptions.OutdatedSdkException("FreeVector2Array", "FreeVector2Array SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeVehicleArrayDelegate(nint _vehicleArray); + private static void FreeVehicleArrayFallback(nint _vehicleArray) => throw new Exceptions.OutdatedSdkException("FreeVehicleArray", "FreeVehicleArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeVirtualEntityArrayDelegate(nint _virtualEntityArray); + private static void FreeVirtualEntityArrayFallback(nint _virtualEntityArray) => throw new Exceptions.OutdatedSdkException("FreeVirtualEntityArray", "FreeVirtualEntityArray SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeVirtualEntityGroupArrayDelegate(nint _virtualEntityGroupArray); + private static void FreeVirtualEntityGroupArrayFallback(nint _virtualEntityGroupArray) => throw new Exceptions.OutdatedSdkException("FreeVirtualEntityGroupArray", "FreeVirtualEntityGroupArray SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeVoidPointerArrayDelegate(nint _voidPointerArray); private static void FreeVoidPointerArrayFallback(nint _voidPointerArray) => throw new Exceptions.OutdatedSdkException("FreeVoidPointerArray", "FreeVoidPointerArray SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void FreeWeaponTArrayDelegate(nint _weaponArray, uint _size); @@ -845,12 +1303,60 @@ public unsafe class SharedLibrary : ISharedLibrary private static nint GetSDKVersionFallback(int* _size) => throw new Exceptions.OutdatedSdkException("GetSDKVersion", "GetSDKVersion SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint GetVersionStaticDelegate(int* _size); private static nint GetVersionStaticFallback(int* _size) => throw new Exceptions.OutdatedSdkException("GetVersionStatic", "GetVersionStatic SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint HttpClient_GetIDDelegate(nint _httpClient); + private static uint HttpClient_GetIDFallback(nint _httpClient) => throw new Exceptions.OutdatedSdkException("HttpClient_GetID", "HttpClient_GetID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Invoker_CreateDelegate(nint _resource, MValueFunctionCallback _val); private static nint Invoker_CreateFallback(nint _resource, MValueFunctionCallback _val) => throw new Exceptions.OutdatedSdkException("Invoker_Create", "Invoker_Create SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Invoker_DestroyDelegate(nint _resource, nint _val); private static void Invoker_DestroyFallback(nint _resource, nint _val) => throw new Exceptions.OutdatedSdkException("Invoker_Destroy", "Invoker_Destroy SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte IsDebugStaticDelegate(); private static byte IsDebugStaticFallback() => throw new Exceptions.OutdatedSdkException("IsDebugStatic", "IsDebugStatic SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Marker_GetColorDelegate(nint _marker, Rgba* _color); + private static void Marker_GetColorFallback(nint _marker, Rgba* _color) => throw new Exceptions.OutdatedSdkException("Marker_GetColor", "Marker_GetColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Marker_GetDirectionDelegate(nint _marker, Vector3* _dir); + private static void Marker_GetDirectionFallback(nint _marker, Vector3* _dir) => throw new Exceptions.OutdatedSdkException("Marker_GetDirection", "Marker_GetDirection SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Marker_GetIDDelegate(nint _marker); + private static uint Marker_GetIDFallback(nint _marker) => throw new Exceptions.OutdatedSdkException("Marker_GetID", "Marker_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Marker_GetMarkerTypeDelegate(nint _marker); + private static byte Marker_GetMarkerTypeFallback(nint _marker) => throw new Exceptions.OutdatedSdkException("Marker_GetMarkerType", "Marker_GetMarkerType SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Marker_GetRotationDelegate(nint _marker, Rotation* _rot); + private static void Marker_GetRotationFallback(nint _marker, Rotation* _rot) => throw new Exceptions.OutdatedSdkException("Marker_GetRotation", "Marker_GetRotation SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Marker_GetScaleDelegate(nint _marker, Vector3* _scale); + private static void Marker_GetScaleFallback(nint _marker, Vector3* _scale) => throw new Exceptions.OutdatedSdkException("Marker_GetScale", "Marker_GetScale SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Marker_GetStreamingDistanceDelegate(nint _marker); + private static uint Marker_GetStreamingDistanceFallback(nint _marker) => throw new Exceptions.OutdatedSdkException("Marker_GetStreamingDistance", "Marker_GetStreamingDistance SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Marker_GetTargetDelegate(nint _marker); + private static nint Marker_GetTargetFallback(nint _marker) => throw new Exceptions.OutdatedSdkException("Marker_GetTarget", "Marker_GetTarget SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Marker_GetWorldObjectDelegate(nint _marker); + private static nint Marker_GetWorldObjectFallback(nint _marker) => throw new Exceptions.OutdatedSdkException("Marker_GetWorldObject", "Marker_GetWorldObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Marker_IsBobUpDownDelegate(nint _marker); + private static byte Marker_IsBobUpDownFallback(nint _marker) => throw new Exceptions.OutdatedSdkException("Marker_IsBobUpDown", "Marker_IsBobUpDown SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Marker_IsFaceCameraDelegate(nint _marker); + private static byte Marker_IsFaceCameraFallback(nint _marker) => throw new Exceptions.OutdatedSdkException("Marker_IsFaceCamera", "Marker_IsFaceCamera SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Marker_IsGlobalDelegate(nint _marker); + private static uint Marker_IsGlobalFallback(nint _marker) => throw new Exceptions.OutdatedSdkException("Marker_IsGlobal", "Marker_IsGlobal SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Marker_IsRotatingDelegate(nint _marker); + private static byte Marker_IsRotatingFallback(nint _marker) => throw new Exceptions.OutdatedSdkException("Marker_IsRotating", "Marker_IsRotating SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Marker_IsVisibleDelegate(nint _marker); + private static byte Marker_IsVisibleFallback(nint _marker) => throw new Exceptions.OutdatedSdkException("Marker_IsVisible", "Marker_IsVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Marker_SetBobUpDownDelegate(nint _marker, byte _bobUpDown); + private static void Marker_SetBobUpDownFallback(nint _marker, byte _bobUpDown) => throw new Exceptions.OutdatedSdkException("Marker_SetBobUpDown", "Marker_SetBobUpDown SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Marker_SetColorDelegate(nint _marker, Rgba _color); + private static void Marker_SetColorFallback(nint _marker, Rgba _color) => throw new Exceptions.OutdatedSdkException("Marker_SetColor", "Marker_SetColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Marker_SetDirectionDelegate(nint _marker, Vector3 _dir); + private static void Marker_SetDirectionFallback(nint _marker, Vector3 _dir) => throw new Exceptions.OutdatedSdkException("Marker_SetDirection", "Marker_SetDirection SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Marker_SetFaceCameraDelegate(nint _marker, byte _faceCamera); + private static void Marker_SetFaceCameraFallback(nint _marker, byte _faceCamera) => throw new Exceptions.OutdatedSdkException("Marker_SetFaceCamera", "Marker_SetFaceCamera SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Marker_SetMarkerTypeDelegate(nint _marker, byte _type); + private static void Marker_SetMarkerTypeFallback(nint _marker, byte _type) => throw new Exceptions.OutdatedSdkException("Marker_SetMarkerType", "Marker_SetMarkerType SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Marker_SetRotatingDelegate(nint _marker, byte _rotating); + private static void Marker_SetRotatingFallback(nint _marker, byte _rotating) => throw new Exceptions.OutdatedSdkException("Marker_SetRotating", "Marker_SetRotating SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Marker_SetRotationDelegate(nint _marker, Rotation _rot); + private static void Marker_SetRotationFallback(nint _marker, Rotation _rot) => throw new Exceptions.OutdatedSdkException("Marker_SetRotation", "Marker_SetRotation SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Marker_SetScaleDelegate(nint _marker, Vector3 _scale); + private static void Marker_SetScaleFallback(nint _marker, Vector3 _scale) => throw new Exceptions.OutdatedSdkException("Marker_SetScale", "Marker_SetScale SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Marker_SetVisibleDelegate(nint _marker, byte _visible); + private static void Marker_SetVisibleFallback(nint _marker, byte _visible) => throw new Exceptions.OutdatedSdkException("Marker_SetVisible", "Marker_SetVisible SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void MValueConst_AddRefDelegate(nint _mValueConst); private static void MValueConst_AddRefFallback(nint _mValueConst) => throw new Exceptions.OutdatedSdkException("MValueConst_AddRef", "MValueConst_AddRef SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint MValueConst_CallFunctionDelegate(nint _core, nint _mValueConst, nint[] val, ulong _size); @@ -889,48 +1395,28 @@ public unsafe class SharedLibrary : ISharedLibrary private static void MValueConst_GetVector3Fallback(nint _mValueConst, Vector3* _position) => throw new Exceptions.OutdatedSdkException("MValueConst_GetVector3", "MValueConst_GetVector3 SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void MValueConst_RemoveRefDelegate(nint _mValueConst); private static void MValueConst_RemoveRefFallback(nint _mValueConst) => throw new Exceptions.OutdatedSdkException("MValueConst_RemoveRef", "MValueConst_RemoveRef SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_ActivatePhysicsDelegate(nint _object); - private static void Object_ActivatePhysicsFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_ActivatePhysics", "Object_ActivatePhysics SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_AttachToEntityDelegate(nint _object, nint _entity, short _bone, Vector3 _pos, Rotation _rot, byte _useSoftPinning, byte _collision, byte _fixedRot); - private static void Object_AttachToEntityFallback(nint _object, nint _entity, short _bone, Vector3 _pos, Rotation _rot, byte _useSoftPinning, byte _collision, byte _fixedRot) => throw new Exceptions.OutdatedSdkException("Object_AttachToEntity", "Object_AttachToEntity SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_AttachToEntity_ScriptIdDelegate(nint _object, uint _scriptId, short _bone, Vector3 _pos, Rotation _rot, byte _useSoftPinning, byte _collision, byte _fixedRot); - private static void Object_AttachToEntity_ScriptIdFallback(nint _object, uint _scriptId, short _bone, Vector3 _pos, Rotation _rot, byte _useSoftPinning, byte _collision, byte _fixedRot) => throw new Exceptions.OutdatedSdkException("Object_AttachToEntity_ScriptId", "Object_AttachToEntity_ScriptId SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_DetachDelegate(nint _object, byte _dynamic); - private static void Object_DetachFallback(nint _object, byte _dynamic) => throw new Exceptions.OutdatedSdkException("Object_Detach", "Object_Detach SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Object_GetAlphaDelegate(nint _object); private static byte Object_GetAlphaFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_GetAlpha", "Object_GetAlpha SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Object_GetEntityDelegate(nint _object); private static nint Object_GetEntityFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_GetEntity", "Object_GetEntity SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Object_GetIDDelegate(nint _object); - private static ushort Object_GetIDFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_GetID", "Object_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Object_GetIDDelegate(nint _object); + private static uint Object_GetIDFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_GetID", "Object_GetID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Object_GetLodDistanceDelegate(nint _object); private static ushort Object_GetLodDistanceFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_GetLodDistance", "Object_GetLodDistance SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Object_GetTextureVariationDelegate(nint _object); private static byte Object_GetTextureVariationFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_GetTextureVariation", "Object_GetTextureVariation SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Object_HasGravityDelegate(nint _object); - private static byte Object_HasGravityFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_HasGravity", "Object_HasGravity SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Object_IsCollisionEnabledDelegate(nint _object); - private static byte Object_IsCollisionEnabledFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_IsCollisionEnabled", "Object_IsCollisionEnabled SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Object_IsDynamicDelegate(nint _object); - private static byte Object_IsDynamicFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_IsDynamic", "Object_IsDynamic SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Object_IsWorldObjectDelegate(nint _object); - private static byte Object_IsWorldObjectFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_IsWorldObject", "Object_IsWorldObject SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_PlaceOnGroundProperlyDelegate(nint _object); - private static void Object_PlaceOnGroundProperlyFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_PlaceOnGroundProperly", "Object_PlaceOnGroundProperly SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_ResetAlphaDelegate(nint _object); - private static void Object_ResetAlphaFallback(nint _object) => throw new Exceptions.OutdatedSdkException("Object_ResetAlpha", "Object_ResetAlpha SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_SetAlphaDelegate(nint _object, byte _alpha); - private static void Object_SetAlphaFallback(nint _object, byte _alpha) => throw new Exceptions.OutdatedSdkException("Object_SetAlpha", "Object_SetAlpha SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_SetLodDistanceDelegate(nint _object, ushort _distance); - private static void Object_SetLodDistanceFallback(nint _object, ushort _distance) => throw new Exceptions.OutdatedSdkException("Object_SetLodDistance", "Object_SetLodDistance SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_SetPositionFrozenDelegate(nint _object, byte _toggle); - private static void Object_SetPositionFrozenFallback(nint _object, byte _toggle) => throw new Exceptions.OutdatedSdkException("Object_SetPositionFrozen", "Object_SetPositionFrozen SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_SetTextureVariationDelegate(nint _object, byte _variation); - private static void Object_SetTextureVariationFallback(nint _object, byte _variation) => throw new Exceptions.OutdatedSdkException("Object_SetTextureVariation", "Object_SetTextureVariation SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_ToggleCollisionDelegate(nint _object, byte _toggle, byte _keepPhysics); - private static void Object_ToggleCollisionFallback(nint _object, byte _toggle, byte _keepPhysics) => throw new Exceptions.OutdatedSdkException("Object_ToggleCollision", "Object_ToggleCollision SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_ToggleGravityDelegate(nint _object, byte _toggle); - private static void Object_ToggleGravityFallback(nint _object, byte _toggle) => throw new Exceptions.OutdatedSdkException("Object_ToggleGravity", "Object_ToggleGravity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Ped_GetArmourDelegate(nint _ped); + private static ushort Ped_GetArmourFallback(nint _ped) => throw new Exceptions.OutdatedSdkException("Ped_GetArmour", "Ped_GetArmour SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Ped_GetCurrentWeaponDelegate(nint _ped); + private static uint Ped_GetCurrentWeaponFallback(nint _ped) => throw new Exceptions.OutdatedSdkException("Ped_GetCurrentWeapon", "Ped_GetCurrentWeapon SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Ped_GetEntityDelegate(nint _ped); + private static nint Ped_GetEntityFallback(nint _ped) => throw new Exceptions.OutdatedSdkException("Ped_GetEntity", "Ped_GetEntity SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Ped_GetHealthDelegate(nint _ped); + private static ushort Ped_GetHealthFallback(nint _ped) => throw new Exceptions.OutdatedSdkException("Ped_GetHealth", "Ped_GetHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Ped_GetIDDelegate(nint _ped); + private static uint Ped_GetIDFallback(nint _ped) => throw new Exceptions.OutdatedSdkException("Ped_GetID", "Ped_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Ped_GetMaxHealthDelegate(nint _ped); + private static ushort Ped_GetMaxHealthFallback(nint _ped) => throw new Exceptions.OutdatedSdkException("Ped_GetMaxHealth", "Ped_GetMaxHealth SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Player_GetAimPosDelegate(nint _player, Vector3* _aimPosition); private static void Player_GetAimPosFallback(nint _player, Vector3* _aimPosition) => throw new Exceptions.OutdatedSdkException("Player_GetAimPos", "Player_GetAimPos SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Player_GetArmorDelegate(nint _player); @@ -955,8 +1441,8 @@ public unsafe class SharedLibrary : ISharedLibrary private static void Player_GetHeadRotationFallback(nint _player, Rotation* _headRotation) => throw new Exceptions.OutdatedSdkException("Player_GetHeadRotation", "Player_GetHeadRotation SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Player_GetHealthDelegate(nint _player); private static ushort Player_GetHealthFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetHealth", "Player_GetHealth SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Player_GetIDDelegate(nint _player); - private static ushort Player_GetIDFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetID", "Player_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Player_GetIDDelegate(nint _player); + private static uint Player_GetIDFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetID", "Player_GetID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Player_GetMaxArmorDelegate(nint _player); private static ushort Player_GetMaxArmorFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_GetMaxArmor", "Player_GetMaxArmor SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Player_GetMaxHealthDelegate(nint _player); @@ -977,20 +1463,34 @@ public unsafe class SharedLibrary : ISharedLibrary private static byte Player_IsAimingFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsAiming", "Player_IsAiming SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsDeadDelegate(nint _player); private static byte Player_IsDeadFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsDead", "Player_IsDead SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsEnteringVehicleDelegate(nint _player); + private static byte Player_IsEnteringVehicleFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsEnteringVehicle", "Player_IsEnteringVehicle SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsFlashlightActiveDelegate(nint _player); private static byte Player_IsFlashlightActiveFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsFlashlightActive", "Player_IsFlashlightActive SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsInCoverDelegate(nint _player); + private static byte Player_IsInCoverFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsInCover", "Player_IsInCover SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsInMeleeDelegate(nint _player); + private static byte Player_IsInMeleeFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsInMelee", "Player_IsInMelee SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsInRagdollDelegate(nint _player); private static byte Player_IsInRagdollFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsInRagdoll", "Player_IsInRagdoll SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsInVehicleDelegate(nint _player); private static byte Player_IsInVehicleFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsInVehicle", "Player_IsInVehicle SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsJumpingDelegate(nint _player); private static byte Player_IsJumpingFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsJumping", "Player_IsJumping SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsLeavingVehicleDelegate(nint _player); + private static byte Player_IsLeavingVehicleFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsLeavingVehicle", "Player_IsLeavingVehicle SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsOnLadderDelegate(nint _player); + private static byte Player_IsOnLadderFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsOnLadder", "Player_IsOnLadder SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsParachutingDelegate(nint _player); + private static byte Player_IsParachutingFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsParachuting", "Player_IsParachuting SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsReloadingDelegate(nint _player); private static byte Player_IsReloadingFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsReloading", "Player_IsReloading SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsShootingDelegate(nint _player); private static byte Player_IsShootingFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsShooting", "Player_IsShooting SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Player_IsSpawnedDelegate(nint _player); private static byte Player_IsSpawnedFallback(nint _player) => throw new Exceptions.OutdatedSdkException("Player_IsSpawned", "Player_IsSpawned SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Resource_GetConfigDelegate(nint _resource); + private static nint Resource_GetConfigFallback(nint _resource) => throw new Exceptions.OutdatedSdkException("Resource_GetConfig", "Resource_GetConfig SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Resource_GetCSharpImplDelegate(nint _resource); private static nint Resource_GetCSharpImplFallback(nint _resource) => throw new Exceptions.OutdatedSdkException("Resource_GetCSharpImpl", "Resource_GetCSharpImpl SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Resource_GetDependantsDelegate(nint _resource, nint[] dependencies, int _size); @@ -1019,18 +1519,86 @@ public unsafe class SharedLibrary : ISharedLibrary private static void Resource_SetExportFallback(nint _core, nint _resource, nint _key, nint _val) => throw new Exceptions.OutdatedSdkException("Resource_SetExport", "Resource_SetExport SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Resource_SetExportsDelegate(nint _core, nint _resource, nint[] val, nint[] keys, int _size); private static void Resource_SetExportsFallback(nint _core, nint _resource, nint[] val, nint[] keys, int _size) => throw new Exceptions.OutdatedSdkException("Resource_SetExports", "Resource_SetExports SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint RmlDocument_GetIDDelegate(nint _rmlDocument); + private static uint RmlDocument_GetIDFallback(nint _rmlDocument) => throw new Exceptions.OutdatedSdkException("RmlDocument_GetID", "RmlDocument_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void TextLabel_GetColorDelegate(nint _textLabel, Rgba* _color); + private static void TextLabel_GetColorFallback(nint _textLabel, Rgba* _color) => throw new Exceptions.OutdatedSdkException("TextLabel_GetColor", "TextLabel_GetColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint TextLabel_GetIDDelegate(nint _textLabel); + private static uint TextLabel_GetIDFallback(nint _textLabel) => throw new Exceptions.OutdatedSdkException("TextLabel_GetID", "TextLabel_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void TextLabel_GetRotationDelegate(nint _textLabel, Rotation* _rot); + private static void TextLabel_GetRotationFallback(nint _textLabel, Rotation* _rot) => throw new Exceptions.OutdatedSdkException("TextLabel_GetRotation", "TextLabel_GetRotation SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float TextLabel_GetScaleDelegate(nint _textLabel); + private static float TextLabel_GetScaleFallback(nint _textLabel) => throw new Exceptions.OutdatedSdkException("TextLabel_GetScale", "TextLabel_GetScale SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint TextLabel_GetStreamingDistanceDelegate(nint _textLabel); + private static uint TextLabel_GetStreamingDistanceFallback(nint _textLabel) => throw new Exceptions.OutdatedSdkException("TextLabel_GetStreamingDistance", "TextLabel_GetStreamingDistance SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint TextLabel_GetTargetDelegate(nint _textLabel); + private static nint TextLabel_GetTargetFallback(nint _textLabel) => throw new Exceptions.OutdatedSdkException("TextLabel_GetTarget", "TextLabel_GetTarget SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint TextLabel_GetWorldObjectDelegate(nint _textLabel); + private static nint TextLabel_GetWorldObjectFallback(nint _textLabel) => throw new Exceptions.OutdatedSdkException("TextLabel_GetWorldObject", "TextLabel_GetWorldObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte TextLabel_IsFacingCameraDelegate(nint _textLabel); + private static byte TextLabel_IsFacingCameraFallback(nint _textLabel) => throw new Exceptions.OutdatedSdkException("TextLabel_IsFacingCamera", "TextLabel_IsFacingCamera SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte TextLabel_IsGlobalDelegate(nint _textLabel); + private static byte TextLabel_IsGlobalFallback(nint _textLabel) => throw new Exceptions.OutdatedSdkException("TextLabel_IsGlobal", "TextLabel_IsGlobal SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte TextLabel_IsVisibleDelegate(nint _textLabel); + private static byte TextLabel_IsVisibleFallback(nint _textLabel) => throw new Exceptions.OutdatedSdkException("TextLabel_IsVisible", "TextLabel_IsVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void TextLabel_SetColorDelegate(nint _textLabel, Rgba _color); + private static void TextLabel_SetColorFallback(nint _textLabel, Rgba _color) => throw new Exceptions.OutdatedSdkException("TextLabel_SetColor", "TextLabel_SetColor SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void TextLabel_SetFaceCameraDelegate(nint _textLabel, byte _faceCamera); + private static void TextLabel_SetFaceCameraFallback(nint _textLabel, byte _faceCamera) => throw new Exceptions.OutdatedSdkException("TextLabel_SetFaceCamera", "TextLabel_SetFaceCamera SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void TextLabel_SetRotationDelegate(nint _textLabel, Rotation _rot); + private static void TextLabel_SetRotationFallback(nint _textLabel, Rotation _rot) => throw new Exceptions.OutdatedSdkException("TextLabel_SetRotation", "TextLabel_SetRotation SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void TextLabel_SetScaleDelegate(nint _textLabel, float _scale); + private static void TextLabel_SetScaleFallback(nint _textLabel, float _scale) => throw new Exceptions.OutdatedSdkException("TextLabel_SetScale", "TextLabel_SetScale SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void TextLabel_SetVisibleDelegate(nint _textLabel, byte _visible); + private static void TextLabel_SetVisibleFallback(nint _textLabel, byte _visible) => throw new Exceptions.OutdatedSdkException("TextLabel_SetVisible", "TextLabel_SetVisible SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Vehicle_GetEntityDelegate(nint _vehicle); private static nint Vehicle_GetEntityFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetEntity", "Vehicle_GetEntity SDK method is outdated. Please update your module nuget"); - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ushort Vehicle_GetIDDelegate(nint _vehicle); - private static ushort Vehicle_GetIDFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetID", "Vehicle_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint Vehicle_GetIDDelegate(nint _vehicle); + private static uint Vehicle_GetIDFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetID", "Vehicle_GetID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int Vehicle_GetPetrolTankHealthDelegate(nint _vehicle); private static int Vehicle_GetPetrolTankHealthFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetPetrolTankHealth", "Vehicle_GetPetrolTankHealth SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate float Vehicle_GetSteeringAngleDelegate(nint _vehicle); + private static float Vehicle_GetSteeringAngleFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetSteeringAngle", "Vehicle_GetSteeringAngle SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte Vehicle_GetWheelsCountDelegate(nint _vehicle); private static byte Vehicle_GetWheelsCountFallback(nint _vehicle) => throw new Exceptions.OutdatedSdkException("Vehicle_GetWheelsCount", "Vehicle_GetWheelsCount SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint VirtualEntity_GetGroupDelegate(nint _virtualEntity); + private static nint VirtualEntity_GetGroupFallback(nint _virtualEntity) => throw new Exceptions.OutdatedSdkException("VirtualEntity_GetGroup", "VirtualEntity_GetGroup SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint VirtualEntity_GetIDDelegate(nint _virtualEntity); + private static uint VirtualEntity_GetIDFallback(nint _virtualEntity) => throw new Exceptions.OutdatedSdkException("VirtualEntity_GetID", "VirtualEntity_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint VirtualEntity_GetStreamingDistanceDelegate(nint _virtualEntity); + private static uint VirtualEntity_GetStreamingDistanceFallback(nint _virtualEntity) => throw new Exceptions.OutdatedSdkException("VirtualEntity_GetStreamingDistance", "VirtualEntity_GetStreamingDistance SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint VirtualEntity_GetStreamSyncedMetaDataDelegate(nint _virtualEntity, nint _key); + private static nint VirtualEntity_GetStreamSyncedMetaDataFallback(nint _virtualEntity, nint _key) => throw new Exceptions.OutdatedSdkException("VirtualEntity_GetStreamSyncedMetaData", "VirtualEntity_GetStreamSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint VirtualEntity_GetWorldObjectDelegate(nint _virtualEntity); + private static nint VirtualEntity_GetWorldObjectFallback(nint _virtualEntity) => throw new Exceptions.OutdatedSdkException("VirtualEntity_GetWorldObject", "VirtualEntity_GetWorldObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte VirtualEntity_HasStreamSyncedMetaDataDelegate(nint _virtualEntity, nint _key); + private static byte VirtualEntity_HasStreamSyncedMetaDataFallback(nint _virtualEntity, nint _key) => throw new Exceptions.OutdatedSdkException("VirtualEntity_HasStreamSyncedMetaData", "VirtualEntity_HasStreamSyncedMetaData SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate byte VirtualEntity_IsVisibleDelegate(nint _virtualEntity); + private static byte VirtualEntity_IsVisibleFallback(nint _virtualEntity) => throw new Exceptions.OutdatedSdkException("VirtualEntity_IsVisible", "VirtualEntity_IsVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void VirtualEntity_SetVisibleDelegate(nint _virtualEntity, byte _toggle); + private static void VirtualEntity_SetVisibleFallback(nint _virtualEntity, byte _toggle) => throw new Exceptions.OutdatedSdkException("VirtualEntity_SetVisible", "VirtualEntity_SetVisible SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint VirtualEntityGroup_GetBaseObjectDelegate(nint _virtualEntityGroup); + private static nint VirtualEntityGroup_GetBaseObjectFallback(nint _virtualEntityGroup) => throw new Exceptions.OutdatedSdkException("VirtualEntityGroup_GetBaseObject", "VirtualEntityGroup_GetBaseObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint VirtualEntityGroup_GetIDDelegate(nint _virtualEntityGroup); + private static uint VirtualEntityGroup_GetIDFallback(nint _virtualEntityGroup) => throw new Exceptions.OutdatedSdkException("VirtualEntityGroup_GetID", "VirtualEntityGroup_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint VirtualEntityGroup_GetMaxEntitiesInStreamDelegate(nint _virtualEntityGroup); + private static uint VirtualEntityGroup_GetMaxEntitiesInStreamFallback(nint _virtualEntityGroup) => throw new Exceptions.OutdatedSdkException("VirtualEntityGroup_GetMaxEntitiesInStream", "VirtualEntityGroup_GetMaxEntitiesInStream SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint VoiceChannel_GetIDDelegate(nint _voiceChannel); + private static uint VoiceChannel_GetIDFallback(nint _voiceChannel) => throw new Exceptions.OutdatedSdkException("VoiceChannel_GetID", "VoiceChannel_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint WebSocketClient_GetIDDelegate(nint _webSocketClient); + private static uint WebSocketClient_GetIDFallback(nint _webSocketClient) => throw new Exceptions.OutdatedSdkException("WebSocketClient_GetID", "WebSocketClient_GetID SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate uint WebView_GetIDDelegate(nint _webView); + private static uint WebView_GetIDFallback(nint _webView) => throw new Exceptions.OutdatedSdkException("WebView_GetID", "WebView_GetID SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint WorldObject_GetBaseObjectDelegate(nint _worldObject); private static nint WorldObject_GetBaseObjectFallback(nint _worldObject) => throw new Exceptions.OutdatedSdkException("WorldObject_GetBaseObject", "WorldObject_GetBaseObject SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate int WorldObject_GetDimensionDelegate(nint _worldObject); + private static int WorldObject_GetDimensionFallback(nint _worldObject) => throw new Exceptions.OutdatedSdkException("WorldObject_GetDimension", "WorldObject_GetDimension SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WorldObject_GetPositionDelegate(nint _worldObject, Vector3* _position); private static void WorldObject_GetPositionFallback(nint _worldObject, Vector3* _position) => throw new Exceptions.OutdatedSdkException("WorldObject_GetPosition", "WorldObject_GetPosition SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WorldObject_SetDimensionDelegate(nint _worldObject, int _dimension); + private static void WorldObject_SetDimensionFallback(nint _worldObject, int _dimension) => throw new Exceptions.OutdatedSdkException("WorldObject_SetDimension", "WorldObject_SetDimension SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void WorldObject_SetPositionDelegate(nint _worldObject, Vector3 _pos); + private static void WorldObject_SetPositionFallback(nint _worldObject, Vector3 _pos) => throw new Exceptions.OutdatedSdkException("WorldObject_SetPosition", "WorldObject_SetPosition SDK method is outdated. Please update your module nuget"); public bool Outdated { get; private set; } private IntPtr GetUnmanagedPtr(IDictionary funcTable, ulong hash, T fn) where T : Delegate { if (funcTable.TryGetValue(hash, out var ptr)) return ptr; @@ -1040,25 +1608,36 @@ private IntPtr GetUnmanagedPtr(IDictionary funcTable, ulong ha public SharedLibrary(Dictionary funcTable) { if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true; - else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 10988236633214279111UL) Outdated = true; + else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 4677548953854785821UL) Outdated = true; + Audio_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4464042055475980737UL, Audio_GetIDFallback); + AudioAttachedOutput_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17725794901805112189UL, AudioAttachedOutput_GetIDFallback); + AudioFilter_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8824535635529306325UL, AudioFilter_GetIDFallback); + AudioFrontendOutput_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11669001756876579861UL, AudioFrontendOutput_GetIDFallback); + AudioOutput_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2317043539516492557UL, AudioOutput_GetIDFallback); + AudioWorldOutput_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6392405167754945669UL, AudioWorldOutput_GetIDFallback); BaseObject_DeleteMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8032676411671743849UL, BaseObject_DeleteMetaDataFallback); BaseObject_DestructCache = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6691163275156255752UL, BaseObject_DestructCacheFallback); BaseObject_GetMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4252038112636547538UL, BaseObject_GetMetaDataFallback); + BaseObject_GetSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9969742611088283312UL, BaseObject_GetSyncedMetaDataFallback); BaseObject_GetType = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11119569299180581449UL, BaseObject_GetTypeFallback); BaseObject_HasMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12910917014607931813UL, BaseObject_HasMetaDataFallback); + BaseObject_HasSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8915505876415161659UL, BaseObject_HasSyncedMetaDataFallback); BaseObject_SetMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16937583073895837697UL, BaseObject_SetMetaDataFallback); + BaseObject_SetMultipleMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 707826864472154725UL, BaseObject_SetMultipleMetaDataFallback); BaseObject_TryCache = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4805394792054199783UL, BaseObject_TryCacheFallback); + Blip_AttachedTo = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15602966080933483258UL, Blip_AttachedToFallback); Blip_Fade = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6633196698544279732UL, Blip_FadeFallback); - Blip_GetAlpha = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6843645795272198929UL, Blip_GetAlphaFallback); + Blip_GetAlpha = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15141596796234477300UL, Blip_GetAlphaFallback); Blip_GetAsFriendly = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17219371041825610064UL, Blip_GetAsFriendlyFallback); Blip_GetAsHighDetail = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 863349328139479326UL, Blip_GetAsHighDetailFallback); Blip_GetAsMissionCreator = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3312069114747260361UL, Blip_GetAsMissionCreatorFallback); Blip_GetAsShortRange = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16552705327821240660UL, Blip_GetAsShortRangeFallback); + Blip_GetBlipType = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12513704918426452236UL, Blip_GetBlipTypeFallback); Blip_GetBright = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2526538415404116827UL, Blip_GetBrightFallback); - Blip_GetCategory = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15826245482034845008UL, Blip_GetCategoryFallback); - Blip_GetColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14163622853607831498UL, Blip_GetColorFallback); + Blip_GetCategory = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9892814623136011414UL, Blip_GetCategoryFallback); + Blip_GetColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15122126538815740669UL, Blip_GetColorFallback); Blip_GetCrewIndicatorVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17442773926209484835UL, Blip_GetCrewIndicatorVisibleFallback); - Blip_GetDisplay = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15574158573141716857UL, Blip_GetDisplayFallback); + Blip_GetDisplay = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8845294035804489146UL, Blip_GetDisplayFallback); Blip_GetFlashes = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11765645294402416523UL, Blip_GetFlashesFallback); Blip_GetFlashesAlternate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11720962242561452875UL, Blip_GetFlashesAlternateFallback); Blip_GetFlashInterval = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 322371892157657415UL, Blip_GetFlashIntervalFallback); @@ -1066,10 +1645,11 @@ public SharedLibrary(Dictionary funcTable) Blip_GetFriendIndicatorVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1385159393766883122UL, Blip_GetFriendIndicatorVisibleFallback); Blip_GetGxtName = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 548174503258268102UL, Blip_GetGxtNameFallback); Blip_GetHeadingIndicatorVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10301029944480990066UL, Blip_GetHeadingIndicatorVisibleFallback); + Blip_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13569575290390530797UL, Blip_GetIDFallback); Blip_GetName = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4819731547457026911UL, Blip_GetNameFallback); Blip_GetNumber = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15343935413119710131UL, Blip_GetNumberFallback); Blip_GetOutlineIndicatorVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 575049905357744794UL, Blip_GetOutlineIndicatorVisibleFallback); - Blip_GetPriority = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4864043781529557736UL, Blip_GetPriorityFallback); + Blip_GetPriority = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9806067137758740430UL, Blip_GetPriorityFallback); Blip_GetPulse = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17223773161333574288UL, Blip_GetPulseFallback); Blip_GetRotation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10691298001359635004UL, Blip_GetRotationFallback); Blip_GetRoute = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15186182545001328952UL, Blip_GetRouteFallback); @@ -1078,21 +1658,27 @@ public SharedLibrary(Dictionary funcTable) Blip_GetSecondaryColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8879470316118394091UL, Blip_GetSecondaryColorFallback); Blip_GetShowCone = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10181814840743433653UL, Blip_GetShowConeFallback); Blip_GetShrinked = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 874639805267190271UL, Blip_GetShrinkedFallback); - Blip_GetSprite = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3015598652144014783UL, Blip_GetSpriteFallback); + Blip_GetSprite = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1494393462452958505UL, Blip_GetSpriteFallback); Blip_GetTickVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9177752480633874416UL, Blip_GetTickVisibleFallback); - Blip_GetType = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10138433409986786803UL, Blip_GetTypeFallback); Blip_GetWorldObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13229691291523371538UL, Blip_GetWorldObjectFallback); + Blip_IsAttached = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7870458832410754161UL, Blip_IsAttachedFallback); Blip_IsGlobal = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7092827764366153462UL, Blip_IsGlobalFallback); - Blip_SetAlpha = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17368444473958225900UL, Blip_SetAlphaFallback); + Blip_IsHiddenOnLegend = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17171412111553642633UL, Blip_IsHiddenOnLegendFallback); + Blip_IsMinimalOnEdge = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14444362908054021656UL, Blip_IsMinimalOnEdgeFallback); + Blip_IsShortHeightThreshold = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1716998134310702881UL, Blip_IsShortHeightThresholdFallback); + Blip_IsUseHeightIndicatorOnEdge = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18243073642496952484UL, Blip_IsUseHeightIndicatorOnEdgeFallback); + Blip_IsVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1369623533546304585UL, Blip_IsVisibleFallback); + Blip_SetAlpha = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2930831339706262379UL, Blip_SetAlphaFallback); Blip_SetAsFriendly = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16165053809546733271UL, Blip_SetAsFriendlyFallback); Blip_SetAsHighDetail = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1539266922863640261UL, Blip_SetAsHighDetailFallback); Blip_SetAsMissionCreator = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17757648939429219636UL, Blip_SetAsMissionCreatorFallback); Blip_SetAsShortRange = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11735946879215707723UL, Blip_SetAsShortRangeFallback); + Blip_SetBlipType = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9887948069134695539UL, Blip_SetBlipTypeFallback); Blip_SetBright = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11739900699062103126UL, Blip_SetBrightFallback); - Blip_SetCategory = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16976533959290405247UL, Blip_SetCategoryFallback); - Blip_SetColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16889550679750230985UL, Blip_SetColorFallback); + Blip_SetCategory = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8935766669722089773UL, Blip_SetCategoryFallback); + Blip_SetColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8696613548508729696UL, Blip_SetColorFallback); Blip_SetCrewIndicatorVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4346269309200056118UL, Blip_SetCrewIndicatorVisibleFallback); - Blip_SetDisplay = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13876263361348749692UL, Blip_SetDisplayFallback); + Blip_SetDisplay = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6532804039543823641UL, Blip_SetDisplayFallback); Blip_SetFlashes = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18345273073053294614UL, Blip_SetFlashesFallback); Blip_SetFlashesAlternate = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4124278006586753710UL, Blip_SetFlashesAlternateFallback); Blip_SetFlashInterval = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4106723800653859026UL, Blip_SetFlashIntervalFallback); @@ -1100,36 +1686,77 @@ public SharedLibrary(Dictionary funcTable) Blip_SetFriendIndicatorVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 404648410580457609UL, Blip_SetFriendIndicatorVisibleFallback); Blip_SetGxtName = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2896057006158947493UL, Blip_SetGxtNameFallback); Blip_SetHeadingIndicatorVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4233956000658665489UL, Blip_SetHeadingIndicatorVisibleFallback); + Blip_SetHiddenOnLegend = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16218057403223152998UL, Blip_SetHiddenOnLegendFallback); + Blip_SetMinimalOnEdge = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 153348995577164961UL, Blip_SetMinimalOnEdgeFallback); Blip_SetName = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5356057624401803688UL, Blip_SetNameFallback); Blip_SetNumber = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9620549539065647630UL, Blip_SetNumberFallback); Blip_SetOutlineIndicatorVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3029230684693548297UL, Blip_SetOutlineIndicatorVisibleFallback); - Blip_SetPriority = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12010941159221668871UL, Blip_SetPriorityFallback); + Blip_SetPriority = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1595292351750327925UL, Blip_SetPriorityFallback); Blip_SetPulse = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14678607532216221087UL, Blip_SetPulseFallback); Blip_SetRotation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2088091673313235227UL, Blip_SetRotationFallback); Blip_SetRoute = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13955731389093058303UL, Blip_SetRouteFallback); Blip_SetRouteColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17353536904559002124UL, Blip_SetRouteColorFallback); Blip_SetScaleXY = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3872766200123588510UL, Blip_SetScaleXYFallback); Blip_SetSecondaryColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 45946054247045837UL, Blip_SetSecondaryColorFallback); + Blip_SetShortHeightThreshold = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9686010372480587950UL, Blip_SetShortHeightThresholdFallback); Blip_SetShowCone = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 453472537370220232UL, Blip_SetShowConeFallback); Blip_SetShrinked = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7210906801683447458UL, Blip_SetShrinkedFallback); - Blip_SetSprite = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14378285759569019370UL, Blip_SetSpriteFallback); + Blip_SetSprite = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10291153738031019500UL, Blip_SetSpriteFallback); Blip_SetTickVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3561326935454553655UL, Blip_SetTickVisibleFallback); + Blip_SetUseHeightIndicatorOnEdge = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2455588285245471173UL, Blip_SetUseHeightIndicatorOnEdgeFallback); + Blip_SetVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1722086041206273362UL, Blip_SetVisibleFallback); Checkpoint_GetCheckpointType = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14827405605973883979UL, Checkpoint_GetCheckpointTypeFallback); Checkpoint_GetColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3775073332217131787UL, Checkpoint_GetColorFallback); Checkpoint_GetColShape = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17482162811317800600UL, Checkpoint_GetColShapeFallback); Checkpoint_GetHeight = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13557625551244465639UL, Checkpoint_GetHeightFallback); + Checkpoint_GetIconColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9114789073881294586UL, Checkpoint_GetIconColorFallback); + Checkpoint_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16405184437105084835UL, Checkpoint_GetIDFallback); Checkpoint_GetNextPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17089941913478571218UL, Checkpoint_GetNextPositionFallback); Checkpoint_GetRadius = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16135548078550245994UL, Checkpoint_GetRadiusFallback); + Checkpoint_GetStreamingDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14309418926871386149UL, Checkpoint_GetStreamingDistanceFallback); + Checkpoint_IsVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17019284587126980779UL, Checkpoint_IsVisibleFallback); Checkpoint_SetCheckpointType = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13843018058835105286UL, Checkpoint_SetCheckpointTypeFallback); Checkpoint_SetColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17754703024704790805UL, Checkpoint_SetColorFallback); Checkpoint_SetHeight = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12891628734474300322UL, Checkpoint_SetHeightFallback); + Checkpoint_SetIconColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14939963175500634018UL, Checkpoint_SetIconColorFallback); Checkpoint_SetNextPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11203997981133723426UL, Checkpoint_SetNextPositionFallback); Checkpoint_SetRadius = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1352429280367984961UL, Checkpoint_SetRadiusFallback); + Checkpoint_SetVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10440317907789505010UL, Checkpoint_SetVisibleFallback); + ColShape_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14808638423192174437UL, ColShape_GetIDFallback); ColShape_GetWorldObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12063803817393523050UL, ColShape_GetWorldObjectFallback); - ColShape_IsEntityIdIn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11663630185962538197UL, ColShape_IsEntityIdInFallback); + ColShape_IsEntityIdIn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17445661802416988031UL, ColShape_IsEntityIdInFallback); ColShape_IsEntityIn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14246921758262831479UL, ColShape_IsEntityInFallback); ColShape_IsPointIn = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5532487930936127510UL, ColShape_IsPointInFallback); + ColShapeCircle_GetColShape = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8647829957926246534UL, ColShapeCircle_GetColShapeFallback); + ColShapeCircle_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11849671876299488601UL, ColShapeCircle_GetIDFallback); + ColShapeCircle_GetRadius = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4865973975620871596UL, ColShapeCircle_GetRadiusFallback); + ColShapeCuboid_GetColShape = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15043956340184947526UL, ColShapeCuboid_GetColShapeFallback); + ColShapeCuboid_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17045818361238865941UL, ColShapeCuboid_GetIDFallback); + ColShapeCuboid_GetMax = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9998718787898018320UL, ColShapeCuboid_GetMaxFallback); + ColShapeCuboid_GetMin = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 858321000642304102UL, ColShapeCuboid_GetMinFallback); + ColShapeCylinder_GetColShape = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9021714244445245830UL, ColShapeCylinder_GetColShapeFallback); + ColShapeCylinder_GetHeight = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1022473060817842625UL, ColShapeCylinder_GetHeightFallback); + ColShapeCylinder_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8301551561417062829UL, ColShapeCylinder_GetIDFallback); + ColShapeCylinder_GetRadius = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17694658105076124148UL, ColShapeCylinder_GetRadiusFallback); + ColShapePoly_GetColShape = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16044826546972321470UL, ColShapePoly_GetColShapeFallback); + ColShapePoly_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17151568366326004765UL, ColShapePoly_GetIDFallback); + ColShapePoly_GetMaxZ = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3397643855186619978UL, ColShapePoly_GetMaxZFallback); + ColShapePoly_GetMinZ = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11079268892823134288UL, ColShapePoly_GetMinZFallback); + ColShapePoly_GetPoints = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15906060374285280085UL, ColShapePoly_GetPointsFallback); + ColShapeRect_GetColShape = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1767557331161679442UL, ColShapeRect_GetColShapeFallback); + ColShapeRect_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7772073148534779277UL, ColShapeRect_GetIDFallback); + ColShapeRect_GetMax = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 93665183642011381UL, ColShapeRect_GetMaxFallback); + ColShapeRect_GetMin = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17346110769648801823UL, ColShapeRect_GetMinFallback); + ColShapeSphere_GetColShape = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17485578453134473756UL, ColShapeSphere_GetColShapeFallback); + ColShapeSphere_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10158350607934933143UL, ColShapeSphere_GetIDFallback); + ColShapeSphere_GetRadius = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17556805126638368658UL, ColShapeSphere_GetRadiusFallback); Config_Delete = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2262811344498570156UL, Config_DeleteFallback); + Core_CreateColShapeCircle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18432832866125084195UL, Core_CreateColShapeCircleFallback); + Core_CreateColShapeCube = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15224790072082250352UL, Core_CreateColShapeCubeFallback); + Core_CreateColShapeCylinder = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8670479227339890324UL, Core_CreateColShapeCylinderFallback); + Core_CreateColShapePolygon = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 613831897340233176UL, Core_CreateColShapePolygonFallback); + Core_CreateColShapeRectangle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 646579018104092947UL, Core_CreateColShapeRectangleFallback); + Core_CreateColShapeSphere = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2469653109981943492UL, Core_CreateColShapeSphereFallback); Core_CreateMValueBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4584378219312895289UL, Core_CreateMValueBaseObjectFallback); Core_CreateMValueBool = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15746428410885594662UL, Core_CreateMValueBoolFallback); Core_CreateMValueByteArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13926064973915625040UL, Core_CreateMValueByteArrayFallback); @@ -1144,25 +1771,35 @@ public SharedLibrary(Dictionary funcTable) Core_CreateMValueUInt = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6163221229160271460UL, Core_CreateMValueUIntFallback); Core_CreateMValueVector2 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14147992496612914836UL, Core_CreateMValueVector2Fallback); Core_CreateMValueVector3 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5009905671684942563UL, Core_CreateMValueVector3Fallback); + Core_CreateVirtualEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10333382199506434722UL, Core_CreateVirtualEntityFallback); + Core_CreateVirtualEntityGroup = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17562251304729686304UL, Core_CreateVirtualEntityGroupFallback); Core_DeleteMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13221743936666214985UL, Core_DeleteMetaDataFallback); Core_DestroyBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18388140590159782277UL, Core_DestroyBaseObjectFallback); Core_FileExists = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15661057563805869574UL, Core_FileExistsFallback); Core_FileRead = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13630176403103570557UL, Core_FileReadFallback); Core_GetAllResources = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3926770362965932159UL, Core_GetAllResourcesFallback); - Core_GetBlipCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16967133223382057881UL, Core_GetBlipCountFallback); - Core_GetBlips = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14544145398187240612UL, Core_GetBlipsFallback); + Core_GetBaseObjectByID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7276494048261315747UL, Core_GetBaseObjectByIDFallback); + Core_GetBaseObjectTypeSize = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12468229273898885542UL, Core_GetBaseObjectTypeSizeFallback); + Core_GetBlips = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11611786081777275389UL, Core_GetBlipsFallback); Core_GetBranch = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12434012012299018294UL, Core_GetBranchFallback); + Core_GetCheckpoints = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14291068473487208197UL, Core_GetCheckpointsFallback); + Core_GetColShapes = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9480713887250028309UL, Core_GetColShapesFallback); Core_GetCoreInstance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16862996593036574459UL, Core_GetCoreInstanceFallback); - Core_GetEntityById = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5700771154374947006UL, Core_GetEntityByIdFallback); - Core_GetEventEnumSize = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6921054663232355759UL, Core_GetEventEnumSizeFallback); + Core_GetEventTypeSize = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13737530370025977174UL, Core_GetEventTypeSizeFallback); + Core_GetMarkers = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7482854450085275693UL, Core_GetMarkersFallback); Core_GetMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2139798095052897524UL, Core_GetMetaDataFallback); - Core_GetPlayerCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 610317128748551335UL, Core_GetPlayerCountFallback); - Core_GetPlayers = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13628989924551463504UL, Core_GetPlayersFallback); + Core_GetNetTime = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15652019729912249391UL, Core_GetNetTimeFallback); + Core_GetNetworkObjects = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8454955647873390265UL, Core_GetNetworkObjectsFallback); + Core_GetPeds = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5411021830103603795UL, Core_GetPedsFallback); + Core_GetPlayers = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6799731000550763773UL, Core_GetPlayersFallback); Core_GetResource = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2104206599506704309UL, Core_GetResourceFallback); Core_GetSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11801041189958959698UL, Core_GetSyncedMetaDataFallback); - Core_GetVehicleCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5927629023731391800UL, Core_GetVehicleCountFallback); - Core_GetVehicles = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13303931870364783888UL, Core_GetVehiclesFallback); + Core_GetTextLabels = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1609631730170041411UL, Core_GetTextLabelsFallback); + Core_GetVehicles = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5149247920306783181UL, Core_GetVehiclesFallback); Core_GetVersion = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7504892851555999456UL, Core_GetVersionFallback); + Core_GetVirtualEntities = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4476532196756880454UL, Core_GetVirtualEntitiesFallback); + Core_GetVirtualEntityGroups = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17770187578627250877UL, Core_GetVirtualEntityGroupsFallback); + Core_GetVoiceConnectionState = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4278537667856004336UL, Core_GetVoiceConnectionStateFallback); Core_HasMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11163152091545864047UL, Core_HasMetaDataFallback); Core_HasSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11681507067991184733UL, Core_HasSyncedMetaDataFallback); Core_IsDebug = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14872081069683452488UL, Core_IsDebugFallback); @@ -1174,37 +1811,79 @@ public SharedLibrary(Dictionary funcTable) Core_SetMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4905441971289102819UL, Core_SetMetaDataFallback); Core_ToggleEvent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17798706175912111294UL, Core_ToggleEventFallback); Core_TriggerLocalEvent = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2095655564565809781UL, Core_TriggerLocalEventFallback); - Entity_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12913447266302910987UL, Entity_GetIDFallback); + Entity_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10233629489933073997UL, Entity_GetIDFallback); Entity_GetModel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6111944054700936115UL, Entity_GetModelFallback); Entity_GetNetOwner = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7130354370478174789UL, Entity_GetNetOwnerFallback); Entity_GetNetOwnerID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10262653550309861069UL, Entity_GetNetOwnerIDFallback); Entity_GetRotation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13365378745805996598UL, Entity_GetRotationFallback); Entity_GetStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11045454806874783898UL, Entity_GetStreamSyncedMetaDataFallback); - Entity_GetSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17412355100157928370UL, Entity_GetSyncedMetaDataFallback); - Entity_GetTypeByID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16194706534247749750UL, Entity_GetTypeByIDFallback); Entity_GetWorldObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15286200049861980882UL, Entity_GetWorldObjectFallback); Entity_HasStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2664435930066837893UL, Entity_HasStreamSyncedMetaDataFallback); - Entity_HasSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11769847080250294005UL, Entity_HasSyncedMetaDataFallback); - Event_Cancel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4913360914395691424UL, Event_CancelFallback); - Event_WasCancelled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15923635865693275395UL, Event_WasCancelledFallback); + Entity_IsFrozen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7430146286071665147UL, Entity_IsFrozenFallback); + Entity_SetFrozen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2663061204279682928UL, Entity_SetFrozenFallback); + Entity_SetRotation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7991844148745066430UL, Entity_SetRotationFallback); + Event_Cancel = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11148172387419141388UL, Event_CancelFallback); + Event_ScriptRPCEvent_Answer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14711799051319366367UL, Event_ScriptRPCEvent_AnswerFallback); + Event_ScriptRPCEvent_AnswerWithError = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12725652746443854009UL, Event_ScriptRPCEvent_AnswerWithErrorFallback); + Event_ScriptRPCEvent_WillAnswer = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8172296379797921876UL, Event_ScriptRPCEvent_WillAnswerFallback); + Event_WasCancelled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 908459511087344059UL, Event_WasCancelledFallback); + FreeAudioArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1942658126885529974UL, FreeAudioArrayFallback); + FreeAudioOutputArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2308827124743768700UL, FreeAudioOutputArrayFallback); + FreeBlipArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12999641840922984330UL, FreeBlipArrayFallback); FreeCharArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1943718755920302008UL, FreeCharArrayFallback); + FreeCheckpointArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16715093567839162130UL, FreeCheckpointArrayFallback); + FreeColShapeArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2584447010419064154UL, FreeColShapeArrayFallback); + FreeConnectionInfoArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13501026980351169142UL, FreeConnectionInfoArrayFallback); + FreeLocalObjectArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12108193668985150626UL, FreeLocalObjectArrayFallback); + FreeMarkerArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7780328125622686042UL, FreeMarkerArrayFallback); FreeMValueConstArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10875848896530643353UL, FreeMValueConstArrayFallback); - FreeObjectArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12324137626706269838UL, FreeObjectArrayFallback); + FreeNetworkObjectArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11442710628474263350UL, FreeNetworkObjectArrayFallback); + FreePedArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15264987216922552928UL, FreePedArrayFallback); + FreePlayerArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2825758299761506526UL, FreePlayerArrayFallback); FreeResourceArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7782187912558785270UL, FreeResourceArrayFallback); FreeString = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10646355260907021718UL, FreeStringFallback); FreeStringArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9817201133426969670UL, FreeStringArrayFallback); + FreeTextLabelArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 247876811202044668UL, FreeTextLabelArrayFallback); FreeUInt32Array = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2025110884526748511UL, FreeUInt32ArrayFallback); FreeUInt8Array = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15676846424137302955UL, FreeUInt8ArrayFallback); - FreeUIntArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18177610684891912620UL, FreeUIntArrayFallback); + FreeUIntArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15930589009209222540UL, FreeUIntArrayFallback); + FreeVector2Array = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9106955660142692033UL, FreeVector2ArrayFallback); + FreeVehicleArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17333862921555331722UL, FreeVehicleArrayFallback); + FreeVirtualEntityArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5578132044888672654UL, FreeVirtualEntityArrayFallback); + FreeVirtualEntityGroupArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13356841008999093930UL, FreeVirtualEntityGroupArrayFallback); FreeVoidPointerArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14409547959528391761UL, FreeVoidPointerArrayFallback); FreeWeaponTArray = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14701143750997334716UL, FreeWeaponTArrayFallback); GetBranchStatic = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15513118297531919712UL, GetBranchStaticFallback); GetCApiVersion = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10580384701439081299UL, GetCApiVersionFallback); GetSDKVersion = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13147849555054061682UL, GetSDKVersionFallback); GetVersionStatic = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9678603713250235246UL, GetVersionStaticFallback); + HttpClient_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7288206209717487889UL, HttpClient_GetIDFallback); Invoker_Create = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15107945359232289520UL, Invoker_CreateFallback); Invoker_Destroy = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13472547340675883247UL, Invoker_DestroyFallback); IsDebugStatic = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7118542945065902334UL, IsDebugStaticFallback); + Marker_GetColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6193914507030990415UL, Marker_GetColorFallback); + Marker_GetDirection = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9123839521259778880UL, Marker_GetDirectionFallback); + Marker_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16696466665661187791UL, Marker_GetIDFallback); + Marker_GetMarkerType = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5240420572409205647UL, Marker_GetMarkerTypeFallback); + Marker_GetRotation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6072515882787059448UL, Marker_GetRotationFallback); + Marker_GetScale = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14616096740054666449UL, Marker_GetScaleFallback); + Marker_GetStreamingDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5405050753430155401UL, Marker_GetStreamingDistanceFallback); + Marker_GetTarget = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15442851779455932452UL, Marker_GetTargetFallback); + Marker_GetWorldObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14796952389729553182UL, Marker_GetWorldObjectFallback); + Marker_IsBobUpDown = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12125711448637417959UL, Marker_IsBobUpDownFallback); + Marker_IsFaceCamera = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3331151536932433603UL, Marker_IsFaceCameraFallback); + Marker_IsGlobal = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15394588070881330329UL, Marker_IsGlobalFallback); + Marker_IsRotating = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15528528424596295369UL, Marker_IsRotatingFallback); + Marker_IsVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7638321216817832459UL, Marker_IsVisibleFallback); + Marker_SetBobUpDown = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4738788525555220350UL, Marker_SetBobUpDownFallback); + Marker_SetColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16990441478007898825UL, Marker_SetColorFallback); + Marker_SetDirection = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5238646959486818104UL, Marker_SetDirectionFallback); + Marker_SetFaceCamera = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9437043437809276362UL, Marker_SetFaceCameraFallback); + Marker_SetMarkerType = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17542761621503411994UL, Marker_SetMarkerTypeFallback); + Marker_SetRotating = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14949621861451410192UL, Marker_SetRotatingFallback); + Marker_SetRotation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12229547285560302608UL, Marker_SetRotationFallback); + Marker_SetScale = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7129171957282455779UL, Marker_SetScaleFallback); + Marker_SetVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7158984024495559554UL, Marker_SetVisibleFallback); MValueConst_AddRef = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8024965565519351537UL, MValueConst_AddRefFallback); MValueConst_CallFunction = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 385248565149432234UL, MValueConst_CallFunctionFallback); MValueConst_Delete = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1868060259381368328UL, MValueConst_DeleteFallback); @@ -1224,27 +1903,17 @@ public SharedLibrary(Dictionary funcTable) MValueConst_GetUInt = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13668837850312303780UL, MValueConst_GetUIntFallback); MValueConst_GetVector3 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1239177284695633462UL, MValueConst_GetVector3Fallback); MValueConst_RemoveRef = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2951895109234703784UL, MValueConst_RemoveRefFallback); - Object_ActivatePhysics = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17585830173881425980UL, Object_ActivatePhysicsFallback); - Object_AttachToEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15073840091519902240UL, Object_AttachToEntityFallback); - Object_AttachToEntity_ScriptId = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5601925715555707412UL, Object_AttachToEntity_ScriptIdFallback); - Object_Detach = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5181875162525913117UL, Object_DetachFallback); Object_GetAlpha = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4782965940294523501UL, Object_GetAlphaFallback); Object_GetEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4934471410579771998UL, Object_GetEntityFallback); - Object_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12916172794746864343UL, Object_GetIDFallback); + Object_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6815264172955104609UL, Object_GetIDFallback); Object_GetLodDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9053583879265260950UL, Object_GetLodDistanceFallback); Object_GetTextureVariation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4660664364773957039UL, Object_GetTextureVariationFallback); - Object_HasGravity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8859174657854274703UL, Object_HasGravityFallback); - Object_IsCollisionEnabled = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6249145685868994012UL, Object_IsCollisionEnabledFallback); - Object_IsDynamic = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8584793846210143026UL, Object_IsDynamicFallback); - Object_IsWorldObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17619976092247149204UL, Object_IsWorldObjectFallback); - Object_PlaceOnGroundProperly = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16593704804065749058UL, Object_PlaceOnGroundProperlyFallback); - Object_ResetAlpha = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15582803191049029347UL, Object_ResetAlphaFallback); - Object_SetAlpha = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1335394386529232328UL, Object_SetAlphaFallback); - Object_SetLodDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14785658894799737749UL, Object_SetLodDistanceFallback); - Object_SetPositionFrozen = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13625864371790276101UL, Object_SetPositionFrozenFallback); - Object_SetTextureVariation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2992998067089316658UL, Object_SetTextureVariationFallback); - Object_ToggleCollision = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6986264234974696038UL, Object_ToggleCollisionFallback); - Object_ToggleGravity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4853716554374183752UL, Object_ToggleGravityFallback); + Ped_GetArmour = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4106400780828488738UL, Ped_GetArmourFallback); + Ped_GetCurrentWeapon = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 446737373633343515UL, Ped_GetCurrentWeaponFallback); + Ped_GetEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17974792644403470118UL, Ped_GetEntityFallback); + Ped_GetHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7104729899977702888UL, Ped_GetHealthFallback); + Ped_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8160348533631447101UL, Ped_GetIDFallback); + Ped_GetMaxHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18375756057324289044UL, Ped_GetMaxHealthFallback); Player_GetAimPos = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6124580830261182834UL, Player_GetAimPosFallback); Player_GetArmor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 343339663996265887UL, Player_GetArmorFallback); Player_GetCurrentAnimationDict = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15205133691822968917UL, Player_GetCurrentAnimationDictFallback); @@ -1257,7 +1926,7 @@ public SharedLibrary(Dictionary funcTable) Player_GetForwardSpeed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12498998920879213674UL, Player_GetForwardSpeedFallback); Player_GetHeadRotation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17222204554789096264UL, Player_GetHeadRotationFallback); Player_GetHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14695407730559477910UL, Player_GetHealthFallback); - Player_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2649376720891219187UL, Player_GetIDFallback); + Player_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18416303018230933813UL, Player_GetIDFallback); Player_GetMaxArmor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4693803817659874615UL, Player_GetMaxArmorFallback); Player_GetMaxHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4164549052335308174UL, Player_GetMaxHealthFallback); Player_GetMoveSpeed = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10963946276172720740UL, Player_GetMoveSpeedFallback); @@ -1268,13 +1937,20 @@ public SharedLibrary(Dictionary funcTable) Player_GetVehicleID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11104420334782135737UL, Player_GetVehicleIDFallback); Player_IsAiming = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10629421607559924898UL, Player_IsAimingFallback); Player_IsDead = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15471399568854208587UL, Player_IsDeadFallback); + Player_IsEnteringVehicle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5834290451374801205UL, Player_IsEnteringVehicleFallback); Player_IsFlashlightActive = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7201780704292694361UL, Player_IsFlashlightActiveFallback); + Player_IsInCover = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16532300556983837945UL, Player_IsInCoverFallback); + Player_IsInMelee = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9656359974229471670UL, Player_IsInMeleeFallback); Player_IsInRagdoll = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13866510163503569909UL, Player_IsInRagdollFallback); Player_IsInVehicle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3966288765716642074UL, Player_IsInVehicleFallback); Player_IsJumping = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8318404148061760703UL, Player_IsJumpingFallback); + Player_IsLeavingVehicle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7801590821162478013UL, Player_IsLeavingVehicleFallback); + Player_IsOnLadder = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3159353707403506220UL, Player_IsOnLadderFallback); + Player_IsParachuting = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4321669179259343363UL, Player_IsParachutingFallback); Player_IsReloading = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4971155693566520612UL, Player_IsReloadingFallback); Player_IsShooting = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 877598797571784312UL, Player_IsShootingFallback); Player_IsSpawned = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4945769591274906861UL, Player_IsSpawnedFallback); + Resource_GetConfig = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15645223790185503409UL, Resource_GetConfigFallback); Resource_GetCSharpImpl = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10686918322243859526UL, Resource_GetCSharpImplFallback); Resource_GetDependants = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4404156737102642473UL, Resource_GetDependantsFallback); Resource_GetDependantsSize = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10674428892947305822UL, Resource_GetDependantsSizeFallback); @@ -1289,12 +1965,46 @@ public SharedLibrary(Dictionary funcTable) Resource_IsStarted = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13917417294839234600UL, Resource_IsStartedFallback); Resource_SetExport = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15249221947393767886UL, Resource_SetExportFallback); Resource_SetExports = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 14077927656531124451UL, Resource_SetExportsFallback); + RmlDocument_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4296832302534320657UL, RmlDocument_GetIDFallback); + TextLabel_GetColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 71661853310303691UL, TextLabel_GetColorFallback); + TextLabel_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17469426826709697373UL, TextLabel_GetIDFallback); + TextLabel_GetRotation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7785535667614932812UL, TextLabel_GetRotationFallback); + TextLabel_GetScale = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13329021670959257864UL, TextLabel_GetScaleFallback); + TextLabel_GetStreamingDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9892232591592550017UL, TextLabel_GetStreamingDistanceFallback); + TextLabel_GetTarget = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6781195795327060290UL, TextLabel_GetTargetFallback); + TextLabel_GetWorldObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8297185820527489834UL, TextLabel_GetWorldObjectFallback); + TextLabel_IsFacingCamera = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2012454944172259572UL, TextLabel_IsFacingCameraFallback); + TextLabel_IsGlobal = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17978851917355436422UL, TextLabel_IsGlobalFallback); + TextLabel_IsVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15384695376179962647UL, TextLabel_IsVisibleFallback); + TextLabel_SetColor = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1694191866473087021UL, TextLabel_SetColorFallback); + TextLabel_SetFaceCamera = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15820914931030469094UL, TextLabel_SetFaceCameraFallback); + TextLabel_SetRotation = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6102843265505169340UL, TextLabel_SetRotationFallback); + TextLabel_SetScale = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3918260719528326415UL, TextLabel_SetScaleFallback); + TextLabel_SetVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2302278843105157392UL, TextLabel_SetVisibleFallback); Vehicle_GetEntity = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8318093389193375258UL, Vehicle_GetEntityFallback); - Vehicle_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17687301249122992283UL, Vehicle_GetIDFallback); + Vehicle_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15007201997776333277UL, Vehicle_GetIDFallback); Vehicle_GetPetrolTankHealth = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18440829979133890169UL, Vehicle_GetPetrolTankHealthFallback); + Vehicle_GetSteeringAngle = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7918377113203812466UL, Vehicle_GetSteeringAngleFallback); Vehicle_GetWheelsCount = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6954962557541059864UL, Vehicle_GetWheelsCountFallback); + VirtualEntity_GetGroup = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 11281256725988059002UL, VirtualEntity_GetGroupFallback); + VirtualEntity_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17591737229607710977UL, VirtualEntity_GetIDFallback); + VirtualEntity_GetStreamingDistance = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10283452716932486351UL, VirtualEntity_GetStreamingDistanceFallback); + VirtualEntity_GetStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3404456618180296238UL, VirtualEntity_GetStreamSyncedMetaDataFallback); + VirtualEntity_GetWorldObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8487360424823817212UL, VirtualEntity_GetWorldObjectFallback); + VirtualEntity_HasStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15881093532900450049UL, VirtualEntity_HasStreamSyncedMetaDataFallback); + VirtualEntity_IsVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 10693307505511667779UL, VirtualEntity_IsVisibleFallback); + VirtualEntity_SetVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16962249384814735578UL, VirtualEntity_SetVisibleFallback); + VirtualEntityGroup_GetBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9683760387923149316UL, VirtualEntityGroup_GetBaseObjectFallback); + VirtualEntityGroup_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6854495250887664593UL, VirtualEntityGroup_GetIDFallback); + VirtualEntityGroup_GetMaxEntitiesInStream = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 3706424129225943778UL, VirtualEntityGroup_GetMaxEntitiesInStreamFallback); + VoiceChannel_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15809352227459172029UL, VoiceChannel_GetIDFallback); + WebSocketClient_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5853373970270474941UL, WebSocketClient_GetIDFallback); + WebView_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 5926308654627541549UL, WebView_GetIDFallback); WorldObject_GetBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 7682733547279772474UL, WorldObject_GetBaseObjectFallback); + WorldObject_GetDimension = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17276300057698662707UL, WorldObject_GetDimensionFallback); WorldObject_GetPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13069539607851095701UL, WorldObject_GetPositionFallback); + WorldObject_SetDimension = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8281427375806201830UL, WorldObject_SetDimensionFallback); + WorldObject_SetPosition = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 15027192667173077188UL, WorldObject_SetPositionFallback); } } } \ No newline at end of file diff --git a/api/AltV.Net.CApi/Native/AltV.Resource.cs b/api/AltV.Net.CApi/Native/AltV.Resource.cs index 6bfb728be..47258bf3b 100644 --- a/api/AltV.Net.CApi/Native/AltV.Resource.cs +++ b/api/AltV.Net.CApi/Native/AltV.Resource.cs @@ -22,24 +22,24 @@ internal delegate void MainDelegate(IntPtr serverPointer, IntPtr resourcePointer internal delegate void CheckpointDelegate(IntPtr checkpointPointer, IntPtr entityPointer, BaseObjectType baseObjectType, - bool state); + byte state); - internal delegate void PlayerConnectDelegate(IntPtr playerPointer, ushort playerId, string reason); - - internal delegate void PlayerBeforeConnectDelegate(IntPtr eventPointer, IntPtr connectionInfo, string reason); + internal delegate void PlayerConnectDelegate(IntPtr playerPointer, string reason); internal delegate void PlayerConnectDeniedDelegate(PlayerConnectDeniedReason reason, string name, string ip, - ulong passwordHash, bool isDebug, string branch, uint majorVersion, string cdnUrl, long discordId); + ulong passwordHash, byte isDebug, string branch, uint majorVersion, string cdnUrl, long discordId); internal delegate void ResourceEventDelegate(IntPtr resourcePointer); internal delegate void PlayerDamageDelegate(IntPtr playerPointer, IntPtr attackerEntityPointer, - BaseObjectType attackerBaseObjectType, - ushort attackerEntityId, uint weapon, ushort healthDamage, ushort armourDamage); + BaseObjectType attackerBaseObjectType, uint weapon, ushort healthDamage, ushort armourDamage); internal delegate void PlayerDeathDelegate(IntPtr playerPointer, IntPtr killerEntityPointer, BaseObjectType killerBaseObjectType, uint weapon); + internal delegate void PlayerHealDelegate(IntPtr playerPointer, ushort oldHealth, ushort newHealth, + ushort oldArmour, ushort newArmour); + internal delegate void PlayerChangeVehicleSeatDelegate(IntPtr vehiclePointer, IntPtr playerPointer, byte oldSeat, byte newSeat); @@ -56,40 +56,8 @@ internal delegate void PlayerChangeVehicleSeatDelegate(IntPtr vehiclePointer, In internal delegate void ServerEventDelegate(string name, IntPtr args, ulong size); - internal delegate void CreatePlayerDelegate(IntPtr playerPointer, ushort playerId); - - internal delegate void RemovePlayerDelegate(IntPtr playerPointer); - - internal delegate void CreateObjectDelegate(IntPtr playerPointer, ushort playerId); - - internal delegate void RemoveObjectDelegate(IntPtr playerPointer); - - internal delegate void CreateVehicleDelegate(IntPtr vehiclePointer, ushort vehicleId); - - internal delegate void RemoveVehicleDelegate(IntPtr vehiclePointer); - - internal delegate void CreateBlipDelegate(IntPtr blipPointer); - - internal delegate void CreateVoiceChannelDelegate(IntPtr channelPointer); - - internal delegate void RemoveBlipDelegate(IntPtr blipPointer); - - internal delegate void CreateCheckpointDelegate(IntPtr checkpointPointer); - - internal delegate void RemoveCheckpointDelegate(IntPtr checkpointPointer); - - internal delegate void RemoveVoiceChannelDelegate(IntPtr channelPointer); - - internal delegate void PlayerRemoveDelegate(IntPtr playerPointer); - - internal delegate void VehicleRemoveDelegate(IntPtr vehiclePointer); - - internal delegate void CreateColShapeDelegate(IntPtr colShapePointer); - - internal delegate void RemoveColShapeDelegate(IntPtr colShapePointer); - internal delegate void ColShapeDelegate(IntPtr colShapePointer, IntPtr targetEntityPointer, - BaseObjectType entityType, bool state); + BaseObjectType entityType, byte state); internal delegate void VehicleDestroyDelegate(IntPtr vehiclePointer); @@ -122,18 +90,58 @@ internal delegate void FireDelegate(IntPtr eventPointer, IntPtr playerPointer, internal delegate void VehicleDetachDelegate(IntPtr eventPointer, IntPtr targetPointer, IntPtr detachedPointer); internal delegate void VehicleDamageDelegate(IntPtr eventPointer, IntPtr targetPointer, IntPtr sourcePointer, BaseObjectType sourceType, uint bodyHealthDamage, uint additionalBodyHealthDamage, uint engineHealthDamage, uint petrolTankDamage, uint weaponHash); - + + internal delegate void VehicleHornDelegate(IntPtr eventPointer, IntPtr targetPointer, + IntPtr reporterPointer, byte state); + internal delegate void ConnectionQueueAddDelegate(IntPtr connectionInfoPointer); - + internal delegate void ConnectionQueueRemoveDelegate(IntPtr connectionInfoPointer); internal delegate void ServerStartedDelegate(); - + internal delegate void PlayerRequestControlDelegate(IntPtr target, BaseObjectType targetType, IntPtr player); internal delegate void PlayerChangeAnimationDelegate(IntPtr target, uint oldDict, uint newDict, uint oldName, uint newName); internal delegate void PlayerChangeInteriorDelegate(IntPtr target, uint oldIntLoc, uint newIntLoc); internal delegate void PlayerDimensionChangeDelegate(IntPtr player, int oldDimension, int newDimension); + internal delegate void VehicleSirenDelegate(IntPtr targetVehicle, byte state); + + internal delegate void PlayerSpawnDelegate(IntPtr player); + + internal delegate void CreateBaseObjectDelegate(IntPtr baseObject, BaseObjectType type, uint id); + + internal delegate void RemoveBaseObjectDelegate(IntPtr baseObject, BaseObjectType type); + + + internal delegate void RequestSyncedSceneDelegate(IntPtr eventPointer, IntPtr source, int sceneId); + + internal delegate void StartSyncedSceneDelegate(IntPtr source, int sceneId, Position startPosition, Rotation startRotation, uint animDictHash, IntPtr[] entites, BaseObjectType[] types, uint[] animHashes, ulong size); + + internal delegate void StopSyncedSceneDelegate(IntPtr source, int sceneId); + + internal delegate void UpdateSyncedSceneDelegate(IntPtr source, float startRate, int sceneId); + + internal delegate void GivePedScriptedTaskDelegate(IntPtr eventPointer, IntPtr source, IntPtr target, uint taskType); + + + internal delegate void PedDamageDelegate(IntPtr pedPointer, IntPtr attackerEntityPointer, + BaseObjectType attackerBaseObjectType, uint weapon, ushort healthDamage, ushort armourDamage); + + internal delegate void PedDeathDelegate(IntPtr pedPointer, IntPtr killerEntityPointer, + BaseObjectType killerBaseObjectType, uint weapon); + + internal delegate void PedHealDelegate(IntPtr pedPointer, ushort oldHealth, ushort newHealth, + ushort oldArmour, ushort newArmour); + + internal delegate void PlayerStartTalkingDelegate(IntPtr playerPointer); + + internal delegate void PlayerStopTalkingDelegate(IntPtr playerPointer); + internal delegate void ScriptRPCDelegate(IntPtr eventPointer, IntPtr targetPointer, string name, IntPtr args, ulong size, ushort answerId); + internal delegate void ScriptRPCAnswerDelegate(IntPtr targetPointer, ushort answerId, IntPtr answer, + string answerError); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] internal static extern void CSharpResourceImpl_SetMainDelegate(IntPtr resource, MainDelegate @delegate); @@ -166,10 +174,6 @@ internal static extern void CSharpResourceImpl_SetPlayerDamageDelegate(IntPtr re internal static extern void CSharpResourceImpl_SetPlayerConnectDelegate(IntPtr resource, PlayerConnectDelegate @delegate); - [DllImport(DllName, CallingConvention = NativeCallingConvention)] - internal static extern void CSharpResourceImpl_SetPlayerBeforeConnectDelegate(IntPtr resource, - PlayerBeforeConnectDelegate @delegate); - [DllImport(DllName, CallingConvention = NativeCallingConvention)] internal static extern void CSharpResourceImpl_SetPlayerConnectDeniedDelegate(IntPtr resource, PlayerConnectDeniedDelegate @delegate); @@ -190,6 +194,10 @@ internal static extern void CSharpResourceImpl_SetResourceErrorDelegate(IntPtr r internal static extern void CSharpResourceImpl_SetPlayerDeathDelegate(IntPtr resource, PlayerDeathDelegate @delegate); + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void CSharpResourceImpl_SetPlayerHealDelegate(IntPtr resource, + PlayerHealDelegate @delegate); + [DllImport(DllName, CallingConvention = NativeCallingConvention)] internal static extern void CSharpResourceImpl_SetExplosionDelegate(IntPtr resource, ExplosionDelegate @delegate); @@ -202,14 +210,6 @@ internal static extern void CSharpResourceImpl_SetWeaponDamageDelegate(IntPtr re internal static extern void CSharpResourceImpl_SetPlayerDisconnectDelegate(IntPtr resource, PlayerDisconnectDelegate @delegate); - [DllImport(DllName, CallingConvention = NativeCallingConvention)] - internal static extern void CSharpResourceImpl_SetPlayerRemoveDelegate(IntPtr resource, - PlayerRemoveDelegate @delegate); - - [DllImport(DllName, CallingConvention = NativeCallingConvention)] - internal static extern void CSharpResourceImpl_SetVehicleRemoveDelegate(IntPtr resource, - VehicleRemoveDelegate @delegate); - [DllImport(DllName, CallingConvention = NativeCallingConvention)] internal static extern void CSharpResourceImpl_SetPlayerChangeVehicleSeatDelegate(IntPtr resource, PlayerChangeVehicleSeatDelegate @delegate); @@ -226,54 +226,6 @@ internal static extern void CSharpResourceImpl_SetPlayerEnteringVehicleDelegate( internal static extern void CSharpResourceImpl_SetPlayerLeaveVehicleDelegate(IntPtr resource, PlayerLeaveVehicleDelegate @delegate); - [DllImport(DllName, CallingConvention = NativeCallingConvention)] - internal static extern void CSharpResourceImpl_SetCreatePlayerDelegate(IntPtr resource, - CreatePlayerDelegate @delegate); - - [DllImport(DllName, CallingConvention = NativeCallingConvention)] - internal static extern void CSharpResourceImpl_SetRemovePlayerDelegate(IntPtr resource, - RemovePlayerDelegate @delegate); - - [DllImport(DllName, CallingConvention = NativeCallingConvention)] - internal static extern void CSharpResourceImpl_SetCreateObjectDelegate(IntPtr resource, - CreateObjectDelegate @delegate); - - [DllImport(DllName, CallingConvention = NativeCallingConvention)] - internal static extern void CSharpResourceImpl_SetRemoveObjectDelegate(IntPtr resource, - RemoveObjectDelegate @delegate); - - [DllImport(DllName, CallingConvention = NativeCallingConvention)] - internal static extern void CSharpResourceImpl_SetCreateVehicleDelegate(IntPtr resource, - CreateVehicleDelegate @delegate); - - [DllImport(DllName, CallingConvention = NativeCallingConvention)] - internal static extern void CSharpResourceImpl_SetRemoveVehicleDelegate(IntPtr resource, - RemoveVehicleDelegate @delegate); - - [DllImport(DllName, CallingConvention = NativeCallingConvention)] - internal static extern void CSharpResourceImpl_SetCreateBlipDelegate(IntPtr resource, - CreateBlipDelegate @delegate); - - [DllImport(DllName, CallingConvention = NativeCallingConvention)] - internal static extern void CSharpResourceImpl_SetRemoveBlipDelegate(IntPtr resource, - RemoveBlipDelegate @delegate); - - [DllImport(DllName, CallingConvention = NativeCallingConvention)] - internal static extern void CSharpResourceImpl_SetCreateCheckpointDelegate(IntPtr resource, - CreateCheckpointDelegate @delegate); - - [DllImport(DllName, CallingConvention = NativeCallingConvention)] - internal static extern void CSharpResourceImpl_SetRemoveCheckpointDelegate(IntPtr resource, - RemoveCheckpointDelegate @delegate); - - [DllImport(DllName, CallingConvention = NativeCallingConvention)] - internal static extern void CSharpResourceImpl_SetCreateVoiceChannelDelegate(IntPtr resource, - CreateVoiceChannelDelegate @delegate); - - [DllImport(DllName, CallingConvention = NativeCallingConvention)] - internal static extern void CSharpResourceImpl_SetRemoveVoiceChannelDelegate(IntPtr resource, - RemoveVoiceChannelDelegate @delegate); - [DllImport(DllName, CallingConvention = NativeCallingConvention)] internal static extern void CSharpResourceImpl_SetConsoleCommandDelegate(IntPtr resource, ConsoleCommandDelegate @delegate); @@ -286,14 +238,6 @@ internal static extern void CSharpResourceImpl_SetMetaChangeDelegate(IntPtr reso internal static extern void CSharpResourceImpl_SetSyncedMetaChangeDelegate(IntPtr resource, MetaChangeDelegate @delegate); - [DllImport(DllName, CallingConvention = NativeCallingConvention)] - internal static extern void CSharpResourceImpl_SetCreateColShapeDelegate(IntPtr resource, - CreateColShapeDelegate @delegate); - - [DllImport(DllName, CallingConvention = NativeCallingConvention)] - internal static extern void CSharpResourceImpl_SetRemoveColShapeDelegate(IntPtr resource, - RemoveColShapeDelegate @delegate); - [DllImport(DllName, CallingConvention = NativeCallingConvention)] internal static extern void CSharpResourceImpl_SetColShapeDelegate(IntPtr resource, ColShapeDelegate @delegate); @@ -329,23 +273,27 @@ internal static extern void CSharpResourceImpl_SetVehicleDetachDelegate(IntPtr r [DllImport(DllName, CallingConvention = NativeCallingConvention)] internal static extern void CSharpResourceImpl_SetVehicleDamageDelegate(IntPtr resource, VehicleDamageDelegate @delegate); - + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void CSharpResourceImpl_SetVehicleHornDelegate(IntPtr resource, + VehicleHornDelegate @delegate); + [DllImport(DllName, CallingConvention = NativeCallingConvention)] internal static extern void CSharpResourceImpl_SetConnectionQueueAddDelegate(IntPtr resource, ConnectionQueueAddDelegate @delegate); - + [DllImport(DllName, CallingConvention = NativeCallingConvention)] internal static extern void CSharpResourceImpl_SetConnectionQueueRemoveDelegate(IntPtr resource, ConnectionQueueRemoveDelegate @delegate); - + [DllImport(DllName, CallingConvention = NativeCallingConvention)] internal static extern void CSharpResourceImpl_SetServerStartedDelegate(IntPtr resource, ServerStartedDelegate @delegate); - + [DllImport(DllName, CallingConvention = NativeCallingConvention)] internal static extern void CSharpResourceImpl_SetPlayerRequestControlDelegate(IntPtr resource, PlayerRequestControlDelegate @delegate); - + [DllImport(DllName, CallingConvention = NativeCallingConvention)] internal static extern void CSharpResourceImpl_SetPlayerChangeAnimationDelegate(IntPtr resource, PlayerChangeAnimationDelegate @delegate); @@ -353,11 +301,74 @@ internal static extern void CSharpResourceImpl_SetPlayerChangeAnimationDelegate( [DllImport(DllName, CallingConvention = NativeCallingConvention)] internal static extern void CSharpResourceImpl_SetPlayerChangeInteriorDelegate(IntPtr resource, PlayerChangeInteriorDelegate @delegate); - + [DllImport(DllName, CallingConvention = NativeCallingConvention)] internal static extern void CSharpResourceImpl_SetPlayerDimensionChangeDelegate(IntPtr resource, PlayerDimensionChangeDelegate @delegate); + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void CSharpResourceImpl_SetVehicleSirenDelegate(IntPtr resource, + VehicleSirenDelegate @delegate); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void CSharpResourceImpl_SetPlayerSpawnDelegate(IntPtr resource, + PlayerSpawnDelegate @delegate); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void CSharpResourceImpl_SetCreateBaseObjectDelegate(IntPtr resource, + CreateBaseObjectDelegate @delegate); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void CSharpResourceImpl_SetRemoveBaseObjectDelegate(IntPtr resource, + RemoveBaseObjectDelegate @delegate); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void CSharpResourceImpl_SetRequestSyncedSceneDelegate(IntPtr resource, + RequestSyncedSceneDelegate @delegate); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void CSharpResourceImpl_SetStartSyncedSceneDelegate(IntPtr resource, + StartSyncedSceneDelegate @delegate); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void CSharpResourceImpl_SetStopSyncedSceneDelegate(IntPtr resource, + StopSyncedSceneDelegate @delegate); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void CSharpResourceImpl_SetUpdateSyncedSceneDelegate(IntPtr resource, + UpdateSyncedSceneDelegate @delegate); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void CSharpResourceImpl_SetGivePedScriptedTaskDelegate(IntPtr resource, + GivePedScriptedTaskDelegate @delegate); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void CSharpResourceImpl_SetPedDamageDelegate(IntPtr resource, + PedDamageDelegate @delegate); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void CSharpResourceImpl_SetPedDeathDelegate(IntPtr resource, + PedDeathDelegate @delegate); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void CSharpResourceImpl_SetPedHealDelegate(IntPtr resource, + PedHealDelegate @delegate); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void CSharpResourceImpl_SetPlayerStartTalkingDelegate(IntPtr resource, + PlayerStartTalkingDelegate @delegate); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void CSharpResourceImpl_SetPlayerStopTalkingDelegate(IntPtr resource, + PlayerStopTalkingDelegate @delegate); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void CSharpResourceImpl_SetScriptRPCDelegate(IntPtr resource, + ScriptRPCDelegate @delegate); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void CSharpResourceImpl_SetScriptRPCAnswerDelegate(IntPtr resource, + ScriptRPCAnswerDelegate @delegate); } } } \ No newline at end of file diff --git a/api/AltV.Net.CApi/Native/AltV.StringUtils.cs b/api/AltV.Net.CApi/Native/AltV.StringUtils.cs deleted file mode 100644 index 1e2e75302..000000000 --- a/api/AltV.Net.CApi/Native/AltV.StringUtils.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Runtime.InteropServices; -using System.Text; - -namespace AltV.Net.Native -{ - internal static partial class AltNative - { - internal static class StringUtils - { - //https://github.com/Microsoft/xbox-live-unity-plugin/blob/master/CSharpSource/Source/api/System/MarshallingHelpers.cs - public static IntPtr StringToHGlobalUtf8(string str) - { - if (str == null) - { - return IntPtr.Zero; - } - - var bytes = Encoding.UTF8.GetBytes(str); - var pointer = Marshal.AllocHGlobal(bytes.Length + 1); - - Marshal.Copy(bytes, 0, pointer, bytes.Length); - // Add null terminator - Marshal.WriteByte(pointer + bytes.Length, 0); - - return pointer; - } - } - } -} \ No newline at end of file diff --git a/api/AltV.Net.Client.Async/AltAsync.cs b/api/AltV.Net.Client.Async/AltAsync.cs index 858ef0677..5f754f650 100644 --- a/api/AltV.Net.Client.Async/AltAsync.cs +++ b/api/AltV.Net.Client.Async/AltAsync.cs @@ -10,7 +10,7 @@ public static partial class AltAsync // public static async void Log(string message) // { - // var messagePtr = AltNative.StringUtils.StringToHGlobalUtf8(message); + // var messagePtr = MemoryUtils.StringToHGlobalUtf8(message); // await Do(() => Core.LogInfo(messagePtr)); // Marshal.FreeHGlobal(messagePtr); // } @@ -20,7 +20,7 @@ public static partial class AltAsync // var size = args.Length; // var mValues = new MValueConst[size]; // Core.CreateMValues(mValues, args); - // var eventNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(eventName); + // var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); // await Do(() => Core.TriggerLocalEvent(eventNamePtr, mValues)); // Marshal.FreeHGlobal(eventNamePtr); // for (var i = 0; i < size; i++) @@ -34,7 +34,7 @@ public static partial class AltAsync // var size = args.Length; // var mValues = new MValueConst[size]; // Core.CreateMValues(mValues, args); - // var eventNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(eventName); + // var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); // await Do(() => Core.TriggerClientEventForAll(eventNamePtr, mValues)); // Marshal.FreeHGlobal(eventNamePtr); // for (var i = 0; i < size; i++) diff --git a/api/AltV.Net.Client.Example/Class1.cs b/api/AltV.Net.Client.Example/Class1.cs index 6824a58df..93fafc880 100644 --- a/api/AltV.Net.Client.Example/Class1.cs +++ b/api/AltV.Net.Client.Example/Class1.cs @@ -12,7 +12,7 @@ public override void OnStart() { Alt.LogInfo("Client Started!"); webView = Alt.CreateWebView("http://resource/client/html/index.html"); - + webView.On("test2", () => { Alt.LogInfo("[C#]test2 received"); @@ -22,7 +22,7 @@ public override void OnStart() { if (drawNametags) DrawNametags(); }; - + Alt.OnKeyDown += (key) => { switch (key) @@ -39,12 +39,12 @@ public override void OnStart() break; } }; - + Alt.OnGlobalMetaChange += (key, value, oldValue) => { Alt.Log($"{key} changed from {oldValue.ToString()} to {value.ToString()}"); }; - + Alt.OnGlobalSyncedMetaChange += (key, value, oldValue) => { Alt.Log($"SYNCED: {key} changed from {oldValue.ToString()} to {value.ToString()}"); @@ -59,17 +59,17 @@ public override void OnStart() { Alt.Log($"Changed seat from {oldSeat} to {seat} in {vehicle.Id}"); }; - + Alt.OnPlayerLeaveVehicle += (vehicle, seat) => { Alt.Log($"Left seat {seat} in {vehicle.Id}"); - }; - + }; + Alt.OnLocalMetaChange += (key, value, oldValue) => { Alt.Log($"LOCAL META: {key} changed from {oldValue.ToString()} to {value.ToString()}"); }; - + Alt.OnNetOwnerChange += (entity, newOwner, oldOwner) => { if (oldOwner == null) @@ -83,32 +83,32 @@ public override void OnStart() Alt.Log($"Owner changed from {oldOwner?.Id} to {newOwner?.Id} in {entity.Id}"); Alt.Log($"Netowner changed for {entity.Id}"); }; - + Alt.OnRemoveEntity += (entity) => { Alt.Log($"{entity.Id} removed"); }; - + Alt.OnStreamSyncedMetaChange += (entity, key, value, oldValue) => { Alt.Log($"STREAM SYNCED META: {key} changed from {oldValue.ToString()} to {value.ToString()}"); }; - + Alt.OnSyncedMetaChange += (entity, key, value, oldValue) => { Alt.Log($"SYNCED META: {key} changed from {oldValue.ToString()} to {value.ToString()}"); }; - + Alt.OnTaskChange += (task, newTask) => { Alt.Log($"{task} changed to {newTask}"); }; - + Alt.OnWindowFocusChange += (focused) => { Alt.Log($"Window focus changed to {focused}"); }; - + Alt.OnWindowResolutionChange += (old, @new) => { Alt.Log($"Window resolution changed from {old.X}x{old.Y} to {@new.X}x{@new.Y}"); @@ -138,16 +138,16 @@ public void DrawNametags() if (distance > 100) continue; var pos = Alt.Natives.GetPedBoneCoords(player, 12844, 0, 0, 0); pos.Z += 0.75f; - + var scale = 1 - (0.8 * distance) / 100; var fontSize = 0.6 * scale; var lineHeight = Alt.Natives.GetRenderedCharacterHeight((float) fontSize, 4); var entity = player.IsInVehicle ? player.Vehicle?.ScriptId : player.ScriptId; if (entity == null) continue; - var vector = Alt.Natives.GetEntityVelocity((int) entity); + var vector = Alt.Natives.GetEntityVelocity((uint) entity); var frameTime = Alt.Natives.GetFrameTime(); - + Alt.Natives.SetDrawOrigin(pos.X + vector.X * frameTime, pos.Y + vector.Y * frameTime, pos.Z, false); Alt.Natives.BeginTextCommandDisplayText("STRING"); Alt.Natives.SetTextFont(4); diff --git a/api/AltV.Net.Client/Alt.Create.cs b/api/AltV.Net.Client/Alt.Create.cs index 8be99231e..17816ea08 100644 --- a/api/AltV.Net.Client/Alt.Create.cs +++ b/api/AltV.Net.Client/Alt.Create.cs @@ -1,7 +1,10 @@ using System.Numerics; +using AltV.Net.Client.Elements.Entities; using AltV.Net.Client.Elements.Interfaces; using AltV.Net.Data; using AltV.Net.Elements.Entities; +using AltV.Net.Enums; +using AltV.Net.Shared.Enums; namespace AltV.Net.Client { @@ -13,11 +16,50 @@ public partial class Alt public static IWebView CreateWebView(string url, bool isOverlay = false, Vector2? pos = null, Vector2? size = null) => Core.CreateWebView(url, isOverlay, pos, size); public static IWebView CreateWebView(string url, uint propHash, string targetTexture) => Core.CreateWebView(url, propHash, targetTexture); public static IRmlDocument CreateRmlDocument(string url) => Core.CreateRmlDocument(url); - public static IAudio CreateAudio(string source, float volume, uint category, bool frontend) => Core.CreateAudio(source, volume, category, frontend); - public static IObject CreateObject(uint modelHash, Position position, Rotation rotation, bool noOffset = false, bool dynamic = false) => Core.CreateObject(modelHash, position, rotation, noOffset, dynamic); + public static IAudio CreateAudio(string source, float volume, bool isRadio = false, bool clearCache = true, string basePath = "") => Core.CreateAudio(source, volume, isRadio, clearCache, basePath); + public static IAudioFilter CreateAudioFilter(uint hash) => Core.CreateAudioFilter(hash); + public static IAudioOutputFrontend CreateAudioOutputFrontend(uint categoryHash) => Core.CreateAudioOutputFrontend(categoryHash); + public static IAudioOutputWorld CreateAudioOutputWorld(uint categoryHash, Position pos) => Core.CreateAudioOutputWorld(categoryHash, pos); + public static IAudioOutputAttached CreateAudioOutputAttached(uint categoryHash, IWorldObject worldObject) => Core.CreateAudioOutputAttached(categoryHash, worldObject); + public static ILocalObject CreateLocalObject(uint modelHash, Position position, Rotation rotation, bool noOffset = false, bool dynamic = false, bool useStreaming = false, uint streamingDistance = 0) => Core.CreateLocalObject(modelHash, position, rotation, noOffset, dynamic, useStreaming, streamingDistance); public static IHttpClient CreateHttpClient() => Core.CreateHttpClient(); public static IWebSocketClient CreateWebSocketClient(string url) => Core.CreateWebSocketClient(url); public static ICheckpoint CreateCheckpoint(CheckpointType type, Vector3 pos, Vector3 nextPos, float radius, - float height, Rgba color) => Core.CreateCheckpoint(type, pos, nextPos, radius, height, color); + float height, Rgba color, Rgba iconColor, uint streamingDistance) => Core.CreateCheckpoint(type, pos, nextPos, radius, height, color, iconColor, streamingDistance); + + public static IVirtualEntityGroup CreateVirtualEntityGroup(uint streamingDistance) => Core.CreateVirtualEntityGroup(streamingDistance); + + public static IVirtualEntity CreateVirtualEntity(IVirtualEntityGroup group, Position position, + uint streamingDistance, Dictionary dataDict) => Core.CreateVirtualEntity(group, position, streamingDistance, dataDict); + + public static ILocalPed CreateLocalPed(uint modelHash, int dimension, Position position, Rotation rotation, + bool useStreaming, uint streamingDistance) => + Core.CreateLocalPed(modelHash, dimension, position, rotation, useStreaming, streamingDistance); + + public static ILocalPed CreateLocalPed(PedModel modelHash, int dimension, Position position, Rotation rotation, + bool useStreaming, uint streamingDistance) => + Core.CreateLocalPed((uint)modelHash, dimension, position, rotation, useStreaming, streamingDistance); + + public static ILocalVehicle CreateLocalVehicle(uint modelHash, int dimension, Position position, Rotation rotation, bool useStreaming, uint streamingDistance) => + Core.CreateLocalVehicle(modelHash, dimension, position, rotation, useStreaming, streamingDistance); + + public static ILocalVehicle CreateLocalVehicle(VehicleModel modelHash, int dimension, Position position, Rotation rotation, bool useStreaming, uint streamingDistance) => + Core.CreateLocalVehicle((uint)modelHash, dimension, position, rotation, useStreaming, streamingDistance); + + public static IMarker CreateMarker(MarkerType type, Position pos, Rgba color, bool useStreaming, + uint streamingDistance) => Core.CreateMarker(type, pos, color, useStreaming, streamingDistance); + + public static ITextLabel CreateTextLabel(string name, string fontName, float fontSize, float scale, + Position pos, + Rotation rot, Rgba color, float outlineWidth, Rgba outlineColor, bool useStreaming, + uint streamingDistance) => Core.CreateTextLabel(name, fontName, fontSize, scale, pos, + rot, color, outlineWidth, outlineColor, useStreaming, streamingDistance); + + public static IColShape CreateColShapeCircle(Position position, float radius) => Core.CreateColShapeCircle(position, radius); + public static IColShape CreateColShapeCube(Position pos1, Position pos2) => Core.CreateColShapeCube(pos1, pos2); + public static IColShape CreateColShapeCylinder(Position position, float radius, float height) => Core.CreateColShapeCylinder(position, radius, height); + public static IColShape CreateColShapePolygon(float minZ, float maxZ, Vector2[] points) => Core.CreateColShapePolygon(minZ, maxZ, points); + public static IColShape CreateColShapeRectangle(float x1, float y1, float x2, float y2, float z) => Core.CreateColShapeRectangle(x1, y1, x2, y2, z); + public static IColShape CreateColShapeSphere(Vector3 position, float radius) => Core.CreateColShapeSphere(position, radius); } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Alt.Events.cs b/api/AltV.Net.Client/Alt.Events.cs index 8bfde54d2..9ae23f44e 100644 --- a/api/AltV.Net.Client/Alt.Events.cs +++ b/api/AltV.Net.Client/Alt.Events.cs @@ -1,5 +1,8 @@ -using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.CApi.ClientEvents; +using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.Client.Elements.Pools; using AltV.Net.Client.Events; +using AltV.Net.Elements.Args; namespace AltV.Net.Client { @@ -94,13 +97,13 @@ public static event PlayerLeaveVehicleDelegate OnPlayerLeaveVehicle add => CoreImpl.PlayerLeaveVehicleEventHandler.Add(value); remove => CoreImpl.PlayerLeaveVehicleEventHandler.Remove(value); } - + public static event PlayerWeaponShootDelegate OnPlayerWeaponShoot { add => CoreImpl.PlayerWeaponShootEventHandler.Add(value); remove => CoreImpl.PlayerWeaponShootEventHandler.Remove(value); } - + public static event PlayerWeaponChangeDelegate OnPlayerWeaponChange { add => CoreImpl.PlayerWeaponChangeEventHandler.Add(value); @@ -173,7 +176,90 @@ public static event WeaponDamageDelegate OnWeaponDamage remove => CoreImpl.WeaponDamageEventHandler.Remove(value); } + public static event WorldObjectPositionChangeDelegate OnWorldObjectPositionChange + { + add => CoreImpl.WorldObjectPositionChangeEventHandler.Add(value); + remove => CoreImpl.WorldObjectPositionChangeEventHandler.Remove(value); + } + + public static event WorldObjectStreamInDelegate OnWorldObjectStreamIn + { + add => CoreImpl.WorldObjectStreamInEventHandler.Add(value); + remove => CoreImpl.WorldObjectStreamInEventHandler.Remove(value); + } + + public static event WorldObjectStreamOutDelegate OnWorldObjectStreamOut + { + add => CoreImpl.WorldObjectStreamOutEventHandler.Add(value); + remove => CoreImpl.WorldObjectStreamOutEventHandler.Remove(value); + } + + public static event ColShapeDelegate OnColShape + { + add => CoreImpl.ColShapeEventHandler.Add(value); + remove => CoreImpl.ColShapeEventHandler.Remove(value); + } + + public static event CheckpointDelegate OnCheckpoint + { + add => CoreImpl.CheckpointEventHandler.Add(value); + remove => CoreImpl.CheckpointEventHandler.Remove(value); + } + + public static event MetaChangeDelegate OnMetaChange + { + add => CoreImpl.MetaChangeEventHandler.Add(value); + remove => CoreImpl.MetaChangeEventHandler.Remove(value); + } + + + public static event PlayerStartEnterVehicleDelegate OnPlayerStartEnterVehicle + { + add => CoreImpl.PlayerStartEnterVehicleEventHandler.Add(value); + remove => CoreImpl.PlayerStartEnterVehicleEventHandler.Remove(value); + } + + + public static event PlayerStartLeaveVehicleDelegate OnPlayerStartLeaveVehicle + { + add => CoreImpl.PlayerStartLeaveVehicleEventHandler.Add(value); + remove => CoreImpl.PlayerStartLeaveVehicleEventHandler.Remove(value); + } + + + public static event EntityHitEntityDelegate OnEntityHitEntity + { + add => CoreImpl.EntityHitEntityEventHandler.Add(value); + remove => CoreImpl.EntityHitEntityEventHandler.Remove(value); + } + + + public static event PlayerBulletHitDelegate OnPlayerBulletHit + { + add => CoreImpl.PlayerBulletHitEventHandler.Add(value); + remove => CoreImpl.PlayerBulletHitEventHandler.Remove(value); + } + + public static event VoiceConnectionDelegate OnVoiceConnection + { + add => CoreImpl.VoiceConnectionEventHandler.Add(value); + remove => CoreImpl.VoiceConnectionEventHandler.Remove(value); + } + + public static event ScriptRPCAnswerDelegate OnScriptRPCAnswer + { + add => CoreImpl.ScriptRPCAnswerHandler.Add(value); + remove => CoreImpl.ScriptRPCAnswerHandler.Remove(value); + } + + public static event ScriptRPCDelegate OnScriptRPC + { + add => CoreImpl.ScriptRPCHandler.Add(value); + remove => CoreImpl.ScriptRPCHandler.Remove(value); + } + public static void OnServer(string eventName, Function function) => CoreImpl.AddServerEventListener(eventName, function); + public static void OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); public static void OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); public static void OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); @@ -288,49 +374,7 @@ public static void On CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, function); - public static void On(this IRmlElement rmlElement, string eventName, Action function) => - CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Action function) => - CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Action function) => - CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Action function) => - CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Action function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Action function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Action function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Action function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Action function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Action function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Action function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Action function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Action function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Action function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Action function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Action function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Action function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Func function) => - CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Func function) => - CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Func function) => - CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Func function) => - CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Func function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Func function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Func function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Func function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Func function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Func function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Func function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Func function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Func function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Func function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Func function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IRmlElement rmlElement, string eventName, Func function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); - + public static void OnRmlEvent(this IRmlElement rmlElement, string eventName, Action> function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); #endregion #region Websocket @@ -384,5 +428,48 @@ public static void On(this IWebSoc #endregion + #region Audio + + public static void On(this IAudio audio, string eventName, Function function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, function); + public static void On(this IAudio audio, string eventName, Action function) => + CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Action function) => + CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Action function) => + CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Func function) => + CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Func function) => + CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + + #endregion } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Alt.Globals.cs b/api/AltV.Net.Client/Alt.Globals.cs index f56b5ab85..a4cf326b9 100644 --- a/api/AltV.Net.Client/Alt.Globals.cs +++ b/api/AltV.Net.Client/Alt.Globals.cs @@ -22,10 +22,11 @@ public static partial class Alt public static void SetMinimapComponentPosition(string name, char alignX, char alignY, float posX, float posY, float sizeX, float sizeY) => Core.SetMinimapComponentPosition(name, alignX, alignY, posX, posY, sizeX, sizeY); public static void SetMinimapComponentPosition(string name, char alignX, char alignY, Vector2 pos, Vector2 size) => Core.SetMinimapComponentPosition(name, alignX, alignY, pos.X, pos.Y, size.X, size.Y); public static void CopyToClipboard(string content) => Core.CopyToClipboard(content); - public static PermissionState GetPermissionState(Permission permission) => Core.GetPermissionState(permission); + public static bool GetPermissionState(Permission permission) => Core.GetPermissionState(permission); public static bool IsTextureExistInArchetype(uint modelHash, string targetTextureName) => Core.IsTextureExistInArchetype(modelHash, targetTextureName); public static bool IsTextureExistInArchetype(string modelName, string targetTextureName) => Core.IsTextureExistInArchetype(Hash(modelName), targetTextureName); public static bool IsPointOnScreen(Vector3 position) => Core.IsPointOnScreen(position); + public static bool IsFullScreen() => Core.IsFullScreen; public static void LoadRmlFont(string path, string name, bool italic = false, bool bold = false) => Core.LoadRmlFont(path, name, italic, bold); public static void LoadModel(uint modelHash) => Core.LoadModel(modelHash); public static void LoadModel(string modelName) => Core.LoadModel(Hash(modelName)); @@ -73,6 +74,7 @@ public static partial class Alt public static string GetHeadshotBase64(byte id) => Core.GetHeadshotBase64(id); public static Task TakeScreenshot() => Core.TakeScreenshot(); public static Task TakeScreenshotGameOnly() => Core.TakeScreenshotGameOnly(); + public static void RegisterFont(string path) => Core.RegisterFont(path); public static MapZoomData GetMapZoomData(uint id) => Core.GetMapZoomData(id); public static MapZoomData GetMapZoomData(string alias) => Core.GetMapZoomData(alias); diff --git a/api/AltV.Net.Client/Alt.cs b/api/AltV.Net.Client/Alt.cs index 2bd168fbd..51d9f1535 100644 --- a/api/AltV.Net.Client/Alt.cs +++ b/api/AltV.Net.Client/Alt.cs @@ -1,9 +1,10 @@ -using System.Diagnostics.CodeAnalysis; +using System.Diagnostics.CodeAnalysis; using System.Numerics; using System.Runtime.CompilerServices; using AltV.Net.Client.Elements; using AltV.Net.Client.Elements.Data; using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.Elements.Entities; using AltV.Net.Shared; namespace AltV.Net.Client @@ -19,17 +20,17 @@ public static partial class Alt public static IEnumerable GetRegisteredClientEvents() => Core.GetRegisteredClientEvents(); public static IEnumerable GetRegisteredServerEvents() => Core.GetRegisteredServerEvents(); - public static bool GetEntityById(ushort id, [MaybeNullWhen(false)] out IEntity entity) + public static bool GetBaseObjectById(BaseObjectType type, uint id, [MaybeNullWhen(false)] out IBaseObject baseObject) { - entity = default; - var ent = Core.GetEntityById(id); + baseObject = default; + var ent = Core.GetBaseObjectById(type, id); if (ent is null) return false; - entity = ent; + baseObject = ent; return true; } public static INatives Natives => Core.Natives; - public static ILocalPlayer LocalPlayer => Core.PlayerPool.LocalPlayer; + public static ILocalPlayer LocalPlayer => Core.PoolManager.Player.LocalPlayer; public static Discord Discord => Core.Discord; public static DiscordUser? GetDiscordUser() => Core.GetDiscordUser(); public static LocalStorage LocalStorage => Core.LocalStorage; @@ -52,15 +53,28 @@ public static bool GetEntityById(ushort id, [MaybeNullWhen(false)] out IEntity e public static string CApiVersion => Core.CApiVersion; public static bool IsDebug => Core.IsDebug; - public static IReadOnlyCollection GetAllPlayers() => Core.PlayerPool.GetAllEntities(); - public static IReadOnlyCollection GetAllVehicles() => Core.VehiclePool.GetAllEntities(); - public static IReadOnlyCollection GetAllObjects() => Core.GetAllObjects(); - public static IReadOnlyCollection GetAllWorldObjects() => Core.GetAllWorldObjects(); - public static IReadOnlyCollection GetAllEntities() => GetAllPlayers().Concat(GetAllVehicles()).Concat(GetAllObjects()).Concat(GetAllWorldObjects()).ToList(); + public static IReadOnlyCollection GetAllPlayers() => Core.GetAllPlayers(); + public static IReadOnlyCollection GetAllVehicles() => Core.GetAllVehicles(); + public static IReadOnlyCollection GetAllPeds() => Core.GetAllPeds(); + public static IReadOnlyCollection GetAllNetworkObjects() => Core.GetAllNetworkObjects(); + public static IReadOnlyCollection GetAllColShapes() => Core.GetAllColShapes(); + public static IReadOnlyCollection GetAllMarkers() => Core.GetAllMarkers(); + public static IReadOnlyCollection GetAllTextLabels() => Core.GetAllTextLabels(); + public static IReadOnlyCollection GetAllLocalObjects() => Core.GetAllLocalObjects(); + public static IReadOnlyCollection GetAllLocalVehicles() => Core.GetAllLocalVehicles(); + public static IReadOnlyCollection GetAllLocalPeds() => Core.GetAllLocalPeds(); + public static IReadOnlyCollection GetAllWorldObjects() => Core.GetAllWorldObjects(); + public static IReadOnlyCollection GetAllVirtualEntities() => Core.GetAllVirtualEntities(); + public static IReadOnlyCollection GetAllVirtualEntityGroups() => Core.GetAllVirtualEntityGroups(); + public static IReadOnlyCollection GetAllEntities() => GetAllPlayers().Concat(GetAllVehicles()).Concat(GetAllLocalObjects()).Concat(GetAllWorldObjects()).ToList(); public static void EmitServer(string eventName, params object[] args) => Core.TriggerServerEvent(eventName, args); + public static void EmitServerUnreliable(string eventName, params object[] args) => Core.TriggerServerEventUnreliable(eventName, args); public static void EmitClient(string eventName, params object[] args) => Core.TriggerLocalEvent(eventName, args); + public static ushort EmitRPC(string name, params object[] args) => Core.TriggerServerRPCEvent(name, args); + public static void EmitRPCAnswer(ushort answerId, object answer, string error) => Core.TriggerServerRPCAnswer(answerId, answer, error); + public static bool HasResource(string name) => Core.HasResource(name); public static INativeResource GetResource(string name) => Core.GetResource(name); public static INativeResource[] GetAllResources() => Core.GetAllResources(); @@ -80,5 +94,12 @@ public static bool GetEntityById(ushort id, [MaybeNullWhen(false)] out IEntity e public static string ReadFile(string path) => Core.FileRead(path); public static byte[] ReadFileBinary(string path) => Core.FileReadBinary(path); public static Vector3 PedBonesPosition(int scriptId, ushort boneId) => Core.PedBonesPosition(scriptId, boneId); + public static IBlip GetBlipByGameId(uint gameId) => Core.GetBlipByGameId(gameId); + public static ICheckpoint GetCheckpointByGameID(uint gameId) => Core.GetCheckpointByGameID(gameId); + public static bool IsWebViewGpuAccelerationActive => Core.IsWebViewGpuAccelerationActive; + public static IWorldObject GetWorldObjectByScriptID(BaseObjectType type, uint scriptId) => Core.GetWorldObjectByScriptID(type, scriptId); + public static VoiceConnectionState GetVoiceConnectionState() => Core.GetVoiceConnectionState(); + + public static int NetTime => Core.NetTime; } } \ No newline at end of file diff --git a/api/AltV.Net.Client/AltV.Net.Client.csproj b/api/AltV.Net.Client/AltV.Net.Client.csproj index 9bc9a9f0e..1d94ef861 100644 --- a/api/AltV.Net.Client/AltV.Net.Client.csproj +++ b/api/AltV.Net.Client/AltV.Net.Client.csproj @@ -36,7 +36,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/api/AltV.Net.Client/Core.Events.cs b/api/AltV.Net.Client/Core.Events.cs index 4c0c6e5e8..6be9b255a 100644 --- a/api/AltV.Net.Client/Core.Events.cs +++ b/api/AltV.Net.Client/Core.Events.cs @@ -1,5 +1,6 @@ using System.Numerics; using System.Reflection; +using AltV.Net.CApi.ClientEvents; using AltV.Net.Client.Elements.Data; using AltV.Net.Client.Elements.Interfaces; using AltV.Net.Client.Events; @@ -7,15 +8,16 @@ using AltV.Net.Data; using AltV.Net.Elements.Args; using AltV.Net.Elements.Entities; +using AltV.Net.Shared.Elements.Entities; using AltV.Net.Shared.Events; namespace AltV.Net.Client { public partial class Core { - private Dictionary> ServerEventBus = new(); - private Dictionary> ClientEventBus = new(); - + private Dictionary> ServerEventBus = new(); + private Dictionary> ClientEventBus = new(); + public virtual IEnumerable GetRegisteredClientEvents() { @@ -26,9 +28,10 @@ public virtual IEnumerable GetRegisteredServerEvents() { return ServerEventBus.Keys; } - private Dictionary>> WebViewEventBus = new(); - private Dictionary>> RmlElementEventBus = new(); - private Dictionary>> WebSocketEventBus = new(); + private Dictionary>> WebViewEventBus = new(); + private Dictionary>> AudioEventBus = new(); + private Dictionary>> RmlElementEventBus = new(); + private Dictionary>> WebSocketEventBus = new(); internal readonly IEventHandler TickEventHandler = new HashSetEventHandler(); @@ -120,6 +123,45 @@ public virtual IEnumerable GetRegisteredServerEvents() internal readonly IEventHandler WeaponDamageEventHandler = new HashSetEventHandler(EventType.WEAPON_DAMAGE_EVENT); + internal readonly IEventHandler WorldObjectPositionChangeEventHandler = + new HashSetEventHandler(EventType.WORLD_OBJECT_POSITION_CHANGE); + + internal readonly IEventHandler WorldObjectStreamInEventHandler = + new HashSetEventHandler(EventType.WORLD_OBJECT_STREAM_IN); + + internal readonly IEventHandler WorldObjectStreamOutEventHandler = + new HashSetEventHandler(EventType.WORLD_OBJECT_STREAM_OUT); + + internal readonly IEventHandler ColShapeEventHandler = + new HashSetEventHandler(EventType.COLSHAPE_EVENT); + + internal readonly IEventHandler CheckpointEventHandler = + new HashSetEventHandler(EventType.COLSHAPE_EVENT); + + internal readonly IEventHandler MetaChangeEventHandler = + new HashSetEventHandler(EventType.META_CHANGE); + + internal readonly IEventHandler PlayerStartEnterVehicleEventHandler = + new HashSetEventHandler(EventType.PLAYER_START_ENTER_VEHICLE); + + internal readonly IEventHandler PlayerStartLeaveVehicleEventHandler = + new HashSetEventHandler(EventType.PLAYER_START_LEAVE_VEHICLE); + + internal readonly IEventHandler EntityHitEntityEventHandler = + new HashSetEventHandler(EventType.ENTITY_HIT_ENTITY); + + internal readonly IEventHandler PlayerBulletHitEventHandler = + new HashSetEventHandler(EventType.PLAYER_BULLET_HIT_EVENT); + + internal readonly IEventHandler VoiceConnectionEventHandler = + new HashSetEventHandler(EventType.VOICE_CONNECTION_EVENT); + + internal readonly IEventHandler ScriptRPCHandler = + new HashSetEventHandler(EventType.SCRIPT_RPC_EVENT); + + internal readonly IEventHandler ScriptRPCAnswerHandler = + new HashSetEventHandler(EventType.SCRIPT_RPC_ANSWER_EVENT); + public void OnServerEvent(string name, IntPtr[] args) { @@ -156,9 +198,9 @@ public void OnWebViewEvent(IntPtr webViewPtr, string name, IntPtr[] args) } } - public void OnRmlElementEvent(IntPtr rmlElementPtr, string name, IntPtr[] args) + public void OnRmlElementEvent(IntPtr rmlElementPtr, string name, IntPtr pointer) { - var mValue = new MValueConst(this, args[0]); + var mValue = new MValueConst(this, pointer); if (mValue.type != MValueConst.Type.Dict) { LogInfo("OnRmlElementEvent: Args are not dict"); @@ -170,7 +212,7 @@ public void OnRmlElementEvent(IntPtr rmlElementPtr, string name, IntPtr[] args) if (!handlers.ContainsKey(name)) return; foreach (var function in handlers[name]) { - function.InvokeNoResult(new object[] {mValue}); + function.InvokeNoResult(new object[] {mValue.GetDictionary()}); } } @@ -209,7 +251,7 @@ public void OnPlayerDisconnect() public void OnPlayerEnterVehicle(IntPtr pointer, byte seat) { - var vehicle = VehiclePool.Get(pointer); + var vehicle = PoolManager.Vehicle.Get(pointer); if (vehicle is null) { Console.WriteLine("Invalid vehicle: " + pointer); @@ -221,7 +263,7 @@ public void OnPlayerEnterVehicle(IntPtr pointer, byte seat) public void OnGameEntityCreate(IntPtr pointer, byte type) { - var baseObject = BaseBaseObjectPool.Get(pointer, (BaseObjectType) type); + var baseObject = PoolManager.Get(pointer, (BaseObjectType) type); if (baseObject is not IEntity entity) { Console.WriteLine("Invalid entity: " + pointer + " " + (baseObject == null)); @@ -233,7 +275,7 @@ public void OnGameEntityCreate(IntPtr pointer, byte type) public void OnGameEntityDestroy(IntPtr pointer, byte type) { - var baseObject = BaseBaseObjectPool.Get(pointer, (BaseObjectType) type); + var baseObject = PoolManager.Get(pointer, (BaseObjectType) type); if (baseObject is not IEntity entity) { Console.WriteLine("Invalid entity: " + pointer); @@ -268,34 +310,14 @@ public void OnKeyUp(Key key) KeyUpEventHandler.GetEvents().ForEachCatching(fn => fn(key), $"event {nameof(OnKeyUp)}"); } - public void OnCreatePlayer(IntPtr pointer, ushort id) - { - PlayerPool.Create(this, pointer, id); - } - - public void OnRemovePlayer(IntPtr pointer) - { - PlayerPool.Remove(pointer); - } - - public void OnCreateObject(IntPtr pointer, ushort id) + public void OnCreateBaseObject(IntPtr baseObject, BaseObjectType type, uint id) { - ObjectPool.Create(this, pointer, id); + PoolManager.GetOrCreate(this, baseObject, type, id); } - public void OnRemoveObject(IntPtr pointer) + public void OnRemoveBaseObject(IntPtr baseObject, BaseObjectType type) { - ObjectPool.Remove(pointer); - } - - public void OnCreateVehicle(IntPtr pointer, ushort id) - { - VehiclePool.Create(this, pointer, id); - } - - public void OnRemoveVehicle(IntPtr pointer) - { - VehiclePool.Remove(pointer); + PoolManager.Remove(baseObject, type); } public void OnConnectionComplete() @@ -319,30 +341,30 @@ public void OnGlobalSyncedMetaChange(string key, IntPtr valuePtr, IntPtr oldValu public void OnPlayerChangeVehicleSeat(IntPtr vehiclePtr, byte oldSeat, byte newSeat) { - var vehicle = VehiclePool.Get(vehiclePtr); + var vehicle = PoolManager.Vehicle.Get(vehiclePtr); PlayerChangeVehicleSeatEventHandler.GetEvents().ForEachCatching(fn => fn(vehicle, oldSeat, newSeat), $"event {nameof(OnPlayerChangeVehicleSeat)}"); } public void OnPlayerChangeAnimation(IntPtr playerPtr, uint oldDict, uint newDict, uint oldName, uint newName) { - var player = PlayerPool.Get(playerPtr); + var player = PoolManager.Player.Get(playerPtr); if (player == null) { Alt.LogWarning("OnPlayerChangeAnimation: Invalid player " + playerPtr); return; } - + PlayerChangeAnimationEventHandler.GetEvents().ForEachCatching(fn => fn(player, oldDict, newDict, oldName, newName), $"event {nameof(OnPlayerChangeAnimation)}"); } - + public void OnPlayerChangeInterior(IntPtr playerPtr, uint oldIntLoc, uint newIntLoc) { - var player = PlayerPool.Get(playerPtr); + var player = PoolManager.Player.Get(playerPtr); if (player == null) { Alt.LogWarning("OnPlayerChangeInterior: Invalid player " + playerPtr); return; } - + PlayerChangeInteriorEventHandler.GetEvents().ForEachCatching(fn => fn(player, oldIntLoc, newIntLoc), $"event {nameof(OnPlayerChangeInterior)}"); } @@ -357,18 +379,20 @@ public void OnPlayerWeaponChange(uint oldWeapon, uint newWeapon) } public void OnWeaponDamage(IntPtr eventPointer, IntPtr entityPointer, - BaseObjectType entityType, uint weapon, ushort damage, Position shotOffset, BodyPart bodyPart) + BaseObjectType entityType, uint weapon, ushort damage, Position shotOffset, BodyPart bodyPart, + IntPtr sourceEntityPointer, BaseObjectType sourceEntityType) { var events = WeaponDamageEventHandler.GetEvents(); - BaseEntityPool.Get(entityPointer, entityType, out var target); + var target = (IEntity)PoolManager.Get(entityPointer, entityType); + var sourceEntity = (IEntity)PoolManager.Get(sourceEntityPointer, sourceEntityType); var cancel = false; foreach (var @delegate in events) { try { - if (!@delegate(target, weapon, damage, shotOffset, bodyPart)) + if (!@delegate(target, weapon, damage, shotOffset, bodyPart, sourceEntity)) { cancel = true; } @@ -401,7 +425,7 @@ public void OnLocalMetaChange(string key, IntPtr valuePtr, IntPtr oldValuePtr) public void OnStreamSyncedMetaChange(IntPtr targetPtr, BaseObjectType type, string key, IntPtr valuePtr, IntPtr oldValuePtr) { - BaseEntityPool.Get(targetPtr, type, out var target); + var target = PoolManager.Get(targetPtr, type); var value = new MValueConst(this, valuePtr); var oldValue = new MValueConst(this, oldValuePtr); StreamSyncedMetaChangeEventHandler.GetEvents().ForEachCatching(fn => fn(target, key, value.ToObject(), oldValue.ToObject()), $"event {nameof(OnStreamSyncedMetaChange)}"); @@ -409,7 +433,7 @@ public void OnStreamSyncedMetaChange(IntPtr targetPtr, BaseObjectType type, stri public void OnSyncedMetaChange(IntPtr targetPtr, BaseObjectType type, string key, IntPtr valuePtr, IntPtr oldValuePtr) { - BaseEntityPool.Get(targetPtr, type, out var target); + var target = PoolManager.Get(targetPtr, type); var value = new MValueConst(this, valuePtr); var oldValue = new MValueConst(this, oldValuePtr); SyncedMetaChangeEventHandler.GetEvents().ForEachCatching(fn => fn(target, key, value.ToObject(), oldValue.ToObject()), $"event {nameof(OnSyncedMetaChange)}"); @@ -432,102 +456,29 @@ public void OnWindowResolutionChange(Vector2 oldRes, Vector2 newRes) public void OnNetOwnerChange(IntPtr targetPtr, BaseObjectType type, IntPtr newOwnerPtr, IntPtr oldOwnerPtr) { - BaseEntityPool.Get(targetPtr, type, out var target); - var newOwner = newOwnerPtr == IntPtr.Zero ? null : PlayerPool.Get(newOwnerPtr); - var oldOwner = oldOwnerPtr == IntPtr.Zero ? null : PlayerPool.Get(oldOwnerPtr); + var target = (IEntity)PoolManager.Get(targetPtr, type); + var newOwner = newOwnerPtr == IntPtr.Zero ? null : PoolManager.Player.Get(newOwnerPtr); + var oldOwner = oldOwnerPtr == IntPtr.Zero ? null : PoolManager.Player.Get(oldOwnerPtr); NetOwnerChangeEventHandler.GetEvents().ForEachCatching(fn => fn(target, newOwner, oldOwner), $"event {nameof(OnNetOwnerChange)}"); } - public void OnRemoveEntity(IntPtr targetPtr, BaseObjectType type) - { - BaseEntityPool.Get(targetPtr, type, out var target); - RemoveEntityEventHandler.GetEvents().ForEachCatching(fn => fn(target), $"event {nameof(OnRemoveEntity)}"); - } - - public void OnPlayerLeaveVehicle(IntPtr vehiclePtr, byte seat) - { - var vehicle = VehiclePool.Get(vehiclePtr); - PlayerLeaveVehicleEventHandler.GetEvents().ForEachCatching(fn => fn(vehicle, seat), $"event {nameof(OnPlayerLeaveVehicle)}"); - } - - public void OnBlipCreate(IntPtr blipPtr) + public void OnWorldObjectPositionChange(IntPtr targetPtr, BaseObjectType type, Position position) { - BlipPool.Create(this, blipPtr); - } - - public void OnWebViewCreate(IntPtr webViewPtr) - { - WebViewPool.Create(this, webViewPtr); - } - - public void OnCheckpointCreate(IntPtr checkpointPtr) - { - CheckpointPool.Create(this, checkpointPtr); - } - - public void OnWebSocketClientCreate(IntPtr webSocketClientPtr) - { - WebViewPool.Create(this, webSocketClientPtr); - } + var target = (IWorldObject)PoolManager.Get(targetPtr, type); - public void OnHttpClientCreate(IntPtr httpClientPtr) - { - HttpClientPool.Create(this, httpClientPtr); - } - - public void OnAudioCreate(IntPtr audioPtr) - { - AudioPool.Create(this, audioPtr); - } - - public void OnRmlElementCreate(IntPtr rmlElementPtr) - { - RmlElementPool.Create(this, rmlElementPtr); - } - - public void OnRmlDocumentCreate(IntPtr rmlDocumentPtr) - { - RmlDocumentPool.Create(this, rmlDocumentPtr); + WorldObjectPositionChangeEventHandler.GetEvents().ForEachCatching(fn => fn(target, position), $"event {nameof(OnWorldObjectPositionChange)}"); } - public void OnBlipRemove(IntPtr blipPtr) - { - BlipPool.Remove(blipPtr); - } - - public void OnWebViewRemove(IntPtr webViewPtr) - { - WebViewPool.Remove(webViewPtr); - } - - public void OnCheckpointRemove(IntPtr checkpointPtr) - { - CheckpointPool.Remove(checkpointPtr); - } - - public void OnWebSocketClientRemove(IntPtr webSocketClientPtr) - { - WebViewPool.Remove(webSocketClientPtr); - } - - public void OnHttpClientRemove(IntPtr httpClientPtr) - { - HttpClientPool.Remove(httpClientPtr); - } - - public void OnAudioRemove(IntPtr audioPtr) - { - AudioPool.Remove(audioPtr); - } - - public void OnRmlElementRemove(IntPtr rmlElementPtr) + public void OnRemoveEntity(IntPtr targetPtr, BaseObjectType type) { - RmlElementPool.Remove(rmlElementPtr); + var target = (IEntity)PoolManager.Get(targetPtr, type); + RemoveEntityEventHandler.GetEvents().ForEachCatching(fn => fn(target), $"event {nameof(OnRemoveEntity)}"); } - public void OnRmlDocumentRemove(IntPtr rmlDocumentPtr) + public void OnPlayerLeaveVehicle(IntPtr vehiclePtr, byte seat) { - RmlDocumentPool.Remove(rmlDocumentPtr); + var vehicle = PoolManager.Vehicle.Get(vehiclePtr); + PlayerLeaveVehicleEventHandler.GetEvents().ForEachCatching(fn => fn(vehicle, seat), $"event {nameof(OnPlayerLeaveVehicle)}"); } public Function AddServerEventListener(string eventName, Function function) @@ -543,7 +494,7 @@ public Function AddServerEventListener(string eventName, Function function) } else { - eventHandlers = new HashSet {function}; + eventHandlers = new List {function}; ServerEventBus[eventName] = eventHandlers; } @@ -557,14 +508,14 @@ public Function AddClientEventListener(string eventName, Function function) Alt.LogWarning("Failed to register client event " + eventName + ": function is null"); return null; } - + if (ClientEventBus.TryGetValue(eventName, out var eventHandlers)) { eventHandlers.Add(function); } else { - eventHandlers = new HashSet {function}; + eventHandlers = new List {function}; ClientEventBus[eventName] = eventHandlers; } @@ -581,18 +532,40 @@ public Function AddWebViewEventListener(IntPtr webViewPtr, string name, Function } else { - eventHandler = new HashSet {function}; + eventHandler = new List {function}; eventHandlers[name] = eventHandler; } } else { - eventHandlers = new Dictionary> {{name, new HashSet {function}}}; + eventHandlers = new Dictionary> {{name, new List {function}}}; WebViewEventBus[webViewPtr] = eventHandlers; } return function; } + public Function AddAudioEventListener(IntPtr audioPtr, string name, Function function) + { + if (AudioEventBus.TryGetValue(audioPtr, out var eventHandlers)) + { + if (eventHandlers.TryGetValue(name, out var eventHandler)) + { + eventHandler.Add(function); + } + else + { + eventHandler = new List {function}; + eventHandlers[name] = eventHandler; + } + } + else + { + eventHandlers = new Dictionary> {{name, new List {function}}}; + AudioEventBus[audioPtr] = eventHandlers; + } + return function; + } + public Function AddRmlElementEventListener(IntPtr rmlElementPtr, string name, Function function) { if (RmlElementEventBus.TryGetValue(rmlElementPtr, out var eventHandlers)) @@ -603,13 +576,13 @@ public Function AddRmlElementEventListener(IntPtr rmlElementPtr, string name, Fu } else { - eventHandler = new HashSet {function}; + eventHandler = new List {function}; eventHandlers[name] = eventHandler; } } else { - eventHandlers = new Dictionary> {{name, new HashSet {function}}}; + eventHandlers = new Dictionary> {{name, new List {function}}}; RmlElementEventBus[rmlElementPtr] = eventHandlers; } return function; @@ -625,16 +598,116 @@ public Function AddWebSocketEventListener(IntPtr websocketPtr, string name, Func } else { - eventHandler = new HashSet {function}; + eventHandler = new List {function}; eventHandlers[name] = eventHandler; } } else { - eventHandlers = new Dictionary> {{name, new HashSet {function}}}; + eventHandlers = new Dictionary> {{name, new List {function}}}; WebSocketEventBus[websocketPtr] = eventHandlers; } return function; } + + public void OnWorldObjectStreamIn(IntPtr targetPtr, BaseObjectType type) + { + var target = (IWorldObject)PoolManager.Get(targetPtr, type); + + WorldObjectStreamInEventHandler.GetEvents().ForEachCatching(fn => fn(target), $"event {nameof(OnWorldObjectStreamIn)}"); + } + + public void OnWorldObjectStreamOut(IntPtr targetPtr, BaseObjectType type) + { + var target = (IWorldObject)PoolManager.Get(targetPtr, type); + + WorldObjectStreamOutEventHandler.GetEvents().ForEachCatching(fn => fn(target), $"event {nameof(OnWorldObjectStreamOut)}"); + } + + public void OnColShape(IntPtr colshapepointer, IntPtr targetentitypointer, BaseObjectType entitytype, bool state) + { + var colShape = (IColShape)PoolManager.ColShape.Get(colshapepointer); + var target = (IWorldObject)PoolManager.Get(targetentitypointer, entitytype); + + ColShapeEventHandler.GetEvents().ForEachCatching(fn => fn(colShape, target, state), $"event {nameof(OnColShape)}"); + } + + public void OnCheckpoint(IntPtr colshapepointer, IntPtr targetentitypointer, BaseObjectType entitytype, bool state) + { + var checkPoint = (ICheckpoint)PoolManager.Checkpoint.Get(colshapepointer); + var target = (IWorldObject)PoolManager.Get(targetentitypointer, entitytype); + + CheckpointEventHandler.GetEvents().ForEachCatching(fn => fn(checkPoint, target, state), $"event {nameof(OnCheckpoint)}"); + } + + public void OnMetaChange(IntPtr targetPtr, BaseObjectType type, string key, IntPtr valuePtr, IntPtr oldValuePtr) + { + var target = PoolManager.Get(targetPtr, type); + var value = new MValueConst(this, valuePtr); + var oldValue = new MValueConst(this, oldValuePtr); + MetaChangeEventHandler.GetEvents().ForEachCatching(fn => fn(target, key, value.ToObject(), oldValue.ToObject()), $"event {nameof(OnMetaChange)}"); + } + + public void OnPlayerStartEnterVehicle(IntPtr targetpointer, IntPtr playerPointer, byte seat) + { + var vehicle = PoolManager.Vehicle.Get(targetpointer); + var player = PoolManager.Player.Get(playerPointer); + + PlayerStartEnterVehicleEventHandler.GetEvents().ForEachCatching(fn => fn(vehicle, player, seat), $"event {nameof(OnPlayerStartEnterVehicle)}"); + } + + public void OnPlayerStartLeaveVehicle(IntPtr targetpointer, IntPtr playerPointer, byte seat) + { + var vehicle = PoolManager.Vehicle.Get(targetpointer); + var player = PoolManager.Player.Get(playerPointer); + + PlayerStartLeaveVehicleEventHandler.GetEvents().ForEachCatching(fn => fn(vehicle, player, seat), $"event {nameof(OnPlayerStartLeaveVehicle)}"); + } + + public void OnEntityHitEntity(IntPtr targetpointer, BaseObjectType targettype, IntPtr damagerpointer, BaseObjectType damagertype, uint weaponhash) + { + var target = (IEntity)PoolManager.Get(targetpointer, targettype); + var damager = (IEntity)PoolManager.Get(damagerpointer, damagertype); + + EntityHitEntityEventHandler.GetEvents().ForEachCatching(fn => fn(target, damager, weaponhash), $"event {nameof(OnEntityHitEntity)}"); + } + + public void OnPlayerBulletHit(uint weapon, IntPtr victimPointer, BaseObjectType victimType, Position pos) + { + var victim = (IEntity)PoolManager.Get(victimPointer, victimType); + + PlayerBulletHitEventHandler.GetEvents().ForEachCatching(fn => fn(weapon, victim, pos), $"event {nameof(OnPlayerBulletHit)}"); + } + + public void OnVoiceConnection(VoiceConnectionState state) + { + VoiceConnectionEventHandler.GetEvents().ForEachCatching(fn => fn(state), $"event {nameof(OnVoiceConnection)}"); + } + + public void OnAudioEvent(IntPtr audioPtr, string name, IntPtr[] args) + { + var mValues = MValueConst.CreateFrom(this, args); + if (!AudioEventBus.ContainsKey(audioPtr)) return; + AudioEventBus.TryGetValue(audioPtr, out var handlers); + if (handlers == null) return; + if (!handlers.ContainsKey(name)) return; + foreach (var function in handlers[name]) + { + function.CallCatching(mValues, $"web view event {name} handler"); + } + } + + public void OnScriptRPCAnswer(ushort answerid, IntPtr answer, string answerError) + { + var mValue = new MValueConst(this, answer); + ScriptRPCAnswerHandler.GetEvents().ForEachCatching(fn => fn(answerid, mValue, answerError), $"event {nameof(OnScriptRPCAnswer)}"); + } + + public void OnScriptRPC(IntPtr eventpointer, string name, IntPtr[] args, ushort answerid) + { + var mValues = MValueConst.CreateFrom(this, args); + var clientScriptRPCEvent = new ScriptRpcEvent(this, eventpointer); + ScriptRPCHandler.GetEvents().ForEachCatching(fn => fn(clientScriptRPCEvent, name, mValues.Select(x => x.ToObject()).ToArray(), answerid), $"event {nameof(OnScriptRPC)}"); + } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Core.Globals.cs b/api/AltV.Net.Client/Core.Globals.cs index 169fac052..b29180e46 100644 --- a/api/AltV.Net.Client/Core.Globals.cs +++ b/api/AltV.Net.Client/Core.Globals.cs @@ -2,6 +2,7 @@ using System.Runtime.InteropServices; using AltV.Net.CApi.ClientEvents; using AltV.Net.Client.Elements.Data; +using AltV.Net.Client.Elements.Interfaces; using AltV.Net.Client.Exceptions; using AltV.Net.Data; using AltV.Net.Elements.Args; @@ -97,6 +98,16 @@ public void SetMinimapComponentPosition(string name, char alignX, char alignY, f } } + public void ResetMinimapComponentPosition(string name) + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + Library.Client.Core_ResetMinimapComponentPosition(NativePointer, namePtr); + Marshal.FreeHGlobal(namePtr); + } + } + public bool MinimapIsRectangle { set @@ -115,9 +126,9 @@ public void CopyToClipboard(string content) unsafe { var contentPtr = MemoryUtils.StringToHGlobalUtf8(content); - var state = (PermissionState) Library.Client.Core_CopyToClipboard(NativePointer, contentPtr); + var state = Library.Client.Core_CopyToClipboard(NativePointer, contentPtr) == 1; Marshal.FreeHGlobal(contentPtr); - if (state != PermissionState.Allowed) throw new PermissionException(Permission.ClipboardAccess, state); + if (!state) throw new PermissionException(Permission.ClipboardAccess); } } @@ -202,11 +213,11 @@ public string Locale } } - public PermissionState GetPermissionState(Permission permission) + public bool GetPermissionState(Permission permission) { unsafe { - return (PermissionState) Library.Client.Core_GetPermissionState(NativePointer, (byte) permission); + return Library.Client.Core_GetPermissionState(NativePointer, (byte) permission) == 1; } } @@ -274,6 +285,17 @@ public bool IsPointOnScreen(Vector3 position) } } + public bool IsFullScreen + { + get + { + unsafe + { + return Library.Client.Core_IsFullScreen(NativePointer) == 1; + } + } + } + public bool IsConsoleOpen { get @@ -505,6 +527,18 @@ public void SetCursorPos(Vector2 pos, bool normalized) } } + public IFont RegisterFont(string path) + { + unsafe + { + var pathPtr = MemoryUtils.StringToHGlobalUtf8(path); + uint pId = default; + var ptr = Library.Client.Core_RegisterFont(NativePointer, Resource.NativePointer, pathPtr, &pId); + Marshal.FreeHGlobal(pathPtr); + return PoolManager.Font.Create(this, ptr, pId); + } + } + public int MsPerGameMinute { get @@ -848,11 +882,11 @@ void ResolveTask(IntPtr strPtr) ScreenshotResultModuleDelegate resolveTask = ResolveTask; handle = GCHandle.Alloc(resolveTask); - var result = (PermissionState) Library.Client.Core_TakeScreenshot(NativePointer, resolveTask); - if (result != PermissionState.Allowed) + var result = Library.Client.Core_TakeScreenshot(NativePointer, resolveTask) == 1; + if (!result) { handle.Free(); - throw new PermissionException(Permission.ScreenCapture, result); + throw new PermissionException(Permission.ScreenCapture); } } @@ -879,11 +913,11 @@ void ResolveTask(IntPtr strPtr) ScreenshotResultModuleDelegate resolveTask = ResolveTask; handle = GCHandle.Alloc(resolveTask); - var result = (PermissionState) Library.Client.Core_TakeScreenshotGameOnly(NativePointer, resolveTask); - if (result != PermissionState.Allowed) + var result = Library.Client.Core_TakeScreenshotGameOnly(NativePointer, resolveTask) == 1; + if (!result) { handle.Free(); - throw new PermissionException(Permission.ScreenCapture, result); + throw new PermissionException(Permission.ScreenCapture); } } @@ -935,7 +969,7 @@ public void ShowCursor(bool state) { unsafe { - Library.Client.Core_ShowCursor(NativePointer, Resource.NativePointer, state); + Library.Client.Core_ShowCursor(NativePointer, Resource.NativePointer, state ? (byte)1 : (byte)0); } } diff --git a/api/AltV.Net.Client/Core.cs b/api/AltV.Net.Client/Core.cs index 7e4be3972..08fd28a78 100644 --- a/api/AltV.Net.Client/Core.cs +++ b/api/AltV.Net.Client/Core.cs @@ -12,6 +12,7 @@ using AltV.Net.Elements.Entities; using AltV.Net.Native; using AltV.Net.Shared; +using AltV.Net.Shared.Enums; using AltV.Net.Shared.Utils; using WeaponData = AltV.Net.Client.Elements.Data.WeaponData; @@ -19,23 +20,9 @@ namespace AltV.Net.Client { public partial class Core : SharedCore, ICore { - - public override IPlayerPool PlayerPool { get; } - public override IEntityPool ObjectPool { get; } - public override IEntityPool VehiclePool { get; } - public override IBaseObjectPool BlipPool { get; } - public override IBaseObjectPool CheckpointPool { get; } - public IBaseObjectPool AudioPool { get; } - public IBaseObjectPool HttpClientPool { get; } - public IBaseObjectPool WebSocketClientPool { get; } - public IBaseObjectPool WebViewPool { get; } - public IBaseObjectPool RmlDocumentPool { get; } - public IBaseObjectPool RmlElementPool { get; } - - public IBaseEntityPool BaseEntityPool { get; } public INativeResourcePool NativeResourcePool { get; } public ITimerPool TimerPool { get; } - public override IBaseBaseObjectPool BaseBaseObjectPool { get; } + public override IPoolManager PoolManager { get; } public override INativeResource Resource { get; } public ILogger Logger { get; } @@ -52,39 +39,15 @@ public Core( ILibrary library, IntPtr nativePointer, IntPtr resourcePointer, - IPlayerPool playerPool, - IEntityPool vehiclePool, - IBaseObjectPool blipPool, - IBaseObjectPool checkpointPool, - IBaseObjectPool audioPool, - IBaseObjectPool httpClientPool, - IBaseObjectPool webSocketClientPool, - IBaseObjectPool webViewPool, - IBaseObjectPool rmlDocumentPool, - IBaseObjectPool rmlElementPool, - IEntityPool objectPool, - IBaseBaseObjectPool baseBaseObjectPool, - IBaseEntityPool baseEntityPool, + IPoolManager poolManager, INativeResourcePool nativeResourcePool, ITimerPool timerPool, ILogger logger, INatives natives ) : base(nativePointer, library) { - PlayerPool = playerPool; - VehiclePool = vehiclePool; - BlipPool = blipPool; - CheckpointPool = checkpointPool; - AudioPool = audioPool; - HttpClientPool = httpClientPool; - WebSocketClientPool = webSocketClientPool; - WebViewPool = webViewPool; - RmlDocumentPool = rmlDocumentPool; - RmlElementPool = rmlElementPool; - ObjectPool = objectPool; Logger = logger; - BaseBaseObjectPool = baseBaseObjectPool; - BaseEntityPool = baseEntityPool; + PoolManager = poolManager; NativeResourcePool = nativeResourcePool; TimerPool = timerPool; nativeResourcePool.GetOrCreate(this, resourcePointer, out var resource); @@ -113,66 +76,185 @@ private IntPtr GetLocalStoragePtr() #endregion - public IPlayer[] GetPlayers() + public IReadOnlyCollection GetAllPlayers() { unsafe { CheckIfCallIsValid(); - var playerCount = Library.Shared.Core_GetPlayerCount(NativePointer); - var pointers = new IntPtr[playerCount]; - Library.Shared.Core_GetPlayers(NativePointer, pointers, playerCount); - var players = new IPlayer[playerCount]; - for (ulong i = 0; i < playerCount; i++) - { - var playerPointer = pointers[i]; - players[i] = PlayerPool.GetOrCreate(this, playerPointer); - } + ulong size = 0; + var ptr = Library.Shared.Core_GetPlayers(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int) size); + var arr = data.Select(e => (IPlayer)PoolManager.GetOrCreate(this, e, BaseObjectType.Player)).ToArray(); + Library.Shared.FreePlayerArray(ptr); + return arr; + } + } - return players; + public IReadOnlyCollection GetAllVehicles() + { + unsafe + { + CheckIfCallIsValid(); + ulong size = 0; + var ptr = Library.Shared.Core_GetVehicles(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int) size); + var arr = data.Select(e => (IVehicle)PoolManager.GetOrCreate(this, e, BaseObjectType.Vehicle)).ToArray(); + Library.Shared.FreeVehicleArray(ptr); + return arr; } } - public IVehicle[] GetVehicles() + public IReadOnlyCollection GetAllBlips() { unsafe { CheckIfCallIsValid(); - var vehicleCount = Library.Shared.Core_GetVehicleCount(NativePointer); - var pointers = new IntPtr[vehicleCount]; - Library.Shared.Core_GetVehicles(NativePointer, pointers, vehicleCount); - var vehicles = new IVehicle[vehicleCount]; - for (ulong i = 0; i < vehicleCount; i++) - { - var vehiclePointer = pointers[i]; - vehicles[i] = VehiclePool.GetOrCreate(this, vehiclePointer); - } + ulong size = 0; + var ptr = Library.Shared.Core_GetBlips(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int) size); + var arr = data.Select(e => (IBlip)PoolManager.GetOrCreate(this, e, BaseObjectType.Blip)).ToArray(); + Library.Shared.FreeBlipArray(ptr); + return arr; + } + } - return vehicles; + public IReadOnlyCollection GetAllCheckpoints() + { + unsafe + { + CheckIfCallIsValid(); + ulong size = 0; + var ptr = Library.Shared.Core_GetCheckpoints(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int) size); + var arr = data.Select(e => (ICheckpoint)PoolManager.GetOrCreate(this, e, BaseObjectType.Checkpoint)).ToArray(); + Library.Shared.FreeCheckpointArray(ptr); + return arr; } } - public IBlip[] GetBlips() + public IReadOnlyCollection GetAllVirtualEntities() { unsafe { CheckIfCallIsValid(); - var blipCount = Library.Shared.Core_GetBlipCount(NativePointer); - var pointers = new IntPtr[blipCount]; - Library.Shared.Core_GetBlips(NativePointer, pointers, blipCount); - var blips = new IBlip[blipCount]; - for (ulong i = 0; i < blipCount; i++) - { - var blipPointer = pointers[i]; - blips[i] = BlipPool.GetOrCreate(this, blipPointer); - } + ulong size = 0; + var ptr = Library.Shared.Core_GetVirtualEntities(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int) size); + var arr = data.Select(e => (IVirtualEntity)PoolManager.GetOrCreate(this, e, BaseObjectType.VirtualEntity)).ToArray(); + Library.Shared.FreeVirtualEntityArray(ptr); + return arr; + } + } - return blips; + public IReadOnlyCollection GetAllVirtualEntityGroups() + { + unsafe + { + CheckIfCallIsValid(); + ulong size = 0; + var ptr = Library.Shared.Core_GetVirtualEntityGroups(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int) size); + var arr = data.Select(e => (IVirtualEntityGroup)PoolManager.GetOrCreate(this, e, BaseObjectType.VirtualEntityGroup)).ToArray(); + Library.Shared.FreeVirtualEntityGroupArray(ptr); + return arr; } } - public new IEntity GetEntityById(ushort id) + public IReadOnlyCollection GetAllPeds() { - return (IEntity) base.GetEntityById(id); + unsafe + { + CheckIfCallIsValid(); + ulong size = 0; + var ptr = Library.Shared.Core_GetPeds(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int) size); + var arr = data.Select(e => (IPed)PoolManager.GetOrCreate(this, e, BaseObjectType.Ped)).ToArray(); + Library.Shared.FreePedArray(ptr); + return arr; + } + } + + public IReadOnlyCollection GetAllNetworkObjects() + { + unsafe + { + CheckIfCallIsValid(); + ulong size = 0; + var ptr = Library.Shared.Core_GetNetworkObjects(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int)size); + var arr = data.Select(e => PoolManager.Object.GetOrCreate(this, e)).ToArray(); + Library.Shared.FreeNetworkObjectArray(ptr); + return arr; + } + } + + public IReadOnlyCollection GetAllColShapes() + { + unsafe + { + CheckIfCallIsValid(); + ulong size = 0; + var ptr = Library.Shared.Core_GetColShapes(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int)size); + var arr = data.Select(e => PoolManager.ColShape.GetOrCreate(this, e)).ToArray(); + Library.Shared.FreeColShapeArray(ptr); + return arr; + } + } + + public IReadOnlyCollection GetAllMarkers() + { + unsafe + { + CheckIfCallIsValid(); + ulong size = 0; + var ptr = Library.Shared.Core_GetMarkers(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int)size); + var arr = data.Select(e => PoolManager.Marker.GetOrCreate(this, e)).ToArray(); + Library.Shared.FreeMarkerArray(ptr); + return arr; + } + } + + public IReadOnlyCollection GetAllTextLabels() + { + unsafe + { + CheckIfCallIsValid(); + ulong size = 0; + var ptr = Library.Shared.Core_GetMarkers(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int)size); + var arr = data.Select(e => PoolManager.TextLabel.GetOrCreate(this, e)).ToArray(); + Library.Shared.FreeTextLabelArray(ptr); + return arr; + } + } + + public IntPtr CreateMarkerPtr(out uint id, MarkerType type, Position pos, Rgba color, bool useStreaming, uint streamingDistance) + { + unsafe + { + uint pId = default; + var markerPoint = Library.Client.Core_CreateMarker_Client(NativePointer, (byte)type, pos, color, useStreaming ? (byte)1:(byte)0, streamingDistance, Resource.NativePointer, &pId); + id = pId; + return markerPoint; + } + } + + public new IBaseObject GetBaseObjectById(BaseObjectType type, uint id) + { + return (IBaseObject) base.GetBaseObjectById(type, id); } public HandlingData? GetHandlingByModelHash(uint modelHash) @@ -180,6 +262,11 @@ public IBlip[] GetBlips() return new HandlingData(this, modelHash); } + public AudioCategory GetAudioCategoryByName(string audioCategory) + { + return new AudioCategory(this, audioCategory); + } + public WeaponData? GetWeaponDataByWeaponHash(uint weaponHash) { return new WeaponData(this, weaponHash); @@ -199,60 +286,71 @@ public IBlip[] GetBlips() #region Create - public IntPtr CreatePointBlipPtr(Position position) + public IntPtr CreatePointBlipPtr(out uint id, Position position) { unsafe { - return Library.Client.Core_Client_CreatePointBlip(NativePointer, position, Resource.NativePointer); + uint pId = default; + var pointBlip = Library.Client.Core_Client_CreatePointBlip(NativePointer, position, Resource.NativePointer, &pId); + id = pId; + return pointBlip; } } public IBlip CreatePointBlip(Position position) { - var ptr = CreatePointBlipPtr(position); + var ptr = CreatePointBlipPtr(out var id, position); if (ptr == IntPtr.Zero) return null; - return BlipPool.Create(this, ptr); + return PoolManager.Blip.Create(this, ptr, id); } - public IntPtr CreateRadiusBlipPtr(Position position, float radius) + public IntPtr CreateRadiusBlipPtr(out uint id, Position position, float radius) { unsafe { - return Library.Client.Core_Client_CreateRadiusBlip(NativePointer, position, radius, Resource.NativePointer); + uint pId = default; + var radiusBlip = Library.Client.Core_Client_CreateRadiusBlip(NativePointer, position, radius, Resource.NativePointer, &pId); + id = pId; + return radiusBlip; } } public IBlip CreateRadiusBlip(Position position, float radius) { - var ptr = CreateRadiusBlipPtr(position, radius); + var ptr = CreateRadiusBlipPtr(out var id, position, radius); if (ptr == IntPtr.Zero) return null; - return BlipPool.Create(this, ptr); + return PoolManager.Blip.Create(this, ptr, id); } - public IntPtr CreateAreaBlipPtr(Position position, int width, int height) + public IntPtr CreateAreaBlipPtr(out uint id, Position position, int width, int height) { unsafe { - return Library.Client.Core_Client_CreateAreaBlip(NativePointer, position, width, height, Resource.NativePointer); + uint pId = default; + var ariaBlip = Library.Client.Core_Client_CreateAreaBlip(NativePointer, position, width, height, Resource.NativePointer, &pId); + id = pId; + return ariaBlip; } } public IBlip CreateAreaBlip(Position position, int width, int height) { - var ptr = CreateAreaBlipPtr(position, width, height); + var ptr = CreateAreaBlipPtr(out var id, position, width, height); if (ptr == IntPtr.Zero) return null; - return BlipPool.Create(this, ptr); + return PoolManager.Blip.Create(this, ptr, id); } - public IntPtr CreateWebViewPtr(string url, bool isOverlay = false, Vector2? pos = null, Vector2? size = null) + public IntPtr CreateWebViewPtr(out uint id, string url, bool isOverlay = false, Vector2? pos = null, Vector2? size = null) { pos ??= Vector2.Zero; size ??= Vector2.Zero; unsafe { + uint pId = default; var urlPtr = MemoryUtils.StringToHGlobalUtf8(url); - var ptr = Library.Client.Core_CreateWebView(NativePointer, Resource.NativePointer, urlPtr, pos.Value, size.Value, (byte) (isOverlay ? 1 : 0)); + var ptr = Library.Client.Core_CreateWebView(NativePointer, Resource.NativePointer, urlPtr, pos.Value, size.Value, (byte) (isOverlay ? 1 : 0), &pId); + id = pId; Marshal.FreeHGlobal(urlPtr); return ptr; } @@ -260,18 +358,20 @@ public IntPtr CreateWebViewPtr(string url, bool isOverlay = false, Vector2? pos public IWebView CreateWebView(string url, bool isOverlay = false, Vector2? pos = null, Vector2? size = null) { - var ptr = CreateWebViewPtr(url, isOverlay, pos, size); + var ptr = CreateWebViewPtr(out var id, url, isOverlay, pos, size); if (ptr == IntPtr.Zero) return null; - return WebViewPool.Create(this, ptr); + return PoolManager.WebView.Create(this, ptr, id); } - public IntPtr CreateWebViewPtr(string url, uint propHash, string targetTexture) + public IntPtr CreateWebViewPtr(out uint id, string url, uint propHash, string targetTexture) { unsafe { + uint pId = default; var urlPtr = MemoryUtils.StringToHGlobalUtf8(url); var targetTexturePtr = MemoryUtils.StringToHGlobalUtf8(targetTexture); - var ptr = Library.Client.Core_CreateWebView3D(NativePointer, Resource.NativePointer, urlPtr, propHash, targetTexturePtr); + var ptr = Library.Client.Core_CreateWebView3D(NativePointer, Resource.NativePointer, urlPtr, propHash, targetTexturePtr, &pId); + id = pId; Marshal.FreeHGlobal(urlPtr); Marshal.FreeHGlobal(targetTexturePtr); return ptr; @@ -280,17 +380,19 @@ public IntPtr CreateWebViewPtr(string url, uint propHash, string targetTexture) public IWebView CreateWebView(string url, uint propHash, string targetTexture) { - var ptr = CreateWebViewPtr(url, propHash, targetTexture); + var ptr = CreateWebViewPtr(out var id, url, propHash, targetTexture); if (ptr == IntPtr.Zero) return null; - return WebViewPool.Create(this, ptr); + return PoolManager.WebView.Create(this, ptr, id); } - public IntPtr CreateRmlDocumentPtr(string url) + public IntPtr CreateRmlDocumentPtr(out uint id, string url) { unsafe { + uint pId = default; var urlPtr = MemoryUtils.StringToHGlobalUtf8(url); - var ptr = Library.Client.Core_CreateRmlDocument(NativePointer, Resource.NativePointer, urlPtr); + var ptr = Library.Client.Core_CreateRmlDocument(NativePointer, Resource.NativePointer, urlPtr, &pId); + id = pId; Marshal.FreeHGlobal(urlPtr); return ptr; } @@ -298,82 +400,190 @@ public IntPtr CreateRmlDocumentPtr(string url) public IRmlDocument CreateRmlDocument(string url) { - var ptr = CreateRmlDocumentPtr(url); + var ptr = CreateRmlDocumentPtr(out var id, url); if (ptr == IntPtr.Zero) return null; - return RmlDocumentPool.Create(this, ptr); + return PoolManager.RmlDocument.Create(this, ptr, id); } - public IntPtr CreateCheckpointPtr(CheckpointType type, Vector3 pos, Vector3 nextPos, float radius, float height, Rgba color) + public IntPtr CreateCheckpointPtr(out uint id, CheckpointType type, Vector3 pos, Vector3 nextPos, float radius, float height, Rgba color, Rgba iconColor, uint streamingDistance) { unsafe { - return Library.Client.Core_CreateCheckpoint(NativePointer, (byte) type, pos, nextPos, radius, height, color, Resource.NativePointer); + uint pId = default; + var checkPoint = Library.Client.Core_CreateCheckpoint(NativePointer, (byte) type, pos, nextPos, radius, height, color, iconColor, streamingDistance, Resource.NativePointer, &pId); + id = pId; + + return checkPoint; } } - public ICheckpoint CreateCheckpoint(CheckpointType type, Vector3 pos, Vector3 nextPos, float radius, float height, Rgba color) + public ICheckpoint CreateCheckpoint(CheckpointType type, Vector3 pos, Vector3 nextPos, float radius, float height, Rgba color, Rgba iconColor, uint streamingDistance) { - var ptr = CreateCheckpointPtr(type, pos, nextPos, radius, height, color); + var ptr = CreateCheckpointPtr(out var id, type, pos, nextPos, radius, height, color, iconColor, streamingDistance); if (ptr == IntPtr.Zero) return null; - return CheckpointPool.Create(this, ptr); + return PoolManager.Checkpoint.Create(this, ptr, id); } - public IntPtr CreateAudioPtr(string source, float volume, uint category, bool frontend) + public IntPtr CreateAudioPtr(out uint id, string source, float volume, bool isRadio = false, bool clearCache = true, string basePath = "") { unsafe { + uint pId = default; var sourcePtr = MemoryUtils.StringToHGlobalUtf8(source); - var ptr = Library.Client.Core_CreateAudio(NativePointer, Resource.NativePointer, sourcePtr, volume, category, (byte) (frontend ? 1 : 0)); + var basePathPtr = MemoryUtils.StringToHGlobalUtf8(basePath); + var ptr = Library.Client.Core_CreateAudio(NativePointer, sourcePtr, volume, isRadio ? (byte)1 : (byte)0, clearCache ? (byte)1 : (byte)0, basePathPtr, Resource.NativePointer, &pId); + id = pId; + Marshal.FreeHGlobal(basePathPtr); Marshal.FreeHGlobal(sourcePtr); return ptr; } } - public IAudio CreateAudio(string source, float volume, uint category, bool frontend) + public IAudio CreateAudio(string source, float volume, bool isRadio = false, bool clearCache = true, string basePath = "") + { + var ptr = CreateAudioPtr(out var id, source, volume, isRadio, clearCache, basePath); + if (ptr == IntPtr.Zero) return null; + return PoolManager.Audio.Create(this, ptr, id); + } + + public IntPtr CreateAudioFilterPtr(out uint id, uint hash) + { + unsafe + { + uint pId = default; + var ptr = Library.Client.Core_CreateAudioFilter(NativePointer, hash, Resource.NativePointer, &pId); + id = pId; + return ptr; + } + } + + public IntPtr CreateFrontendOutputPtr(out uint id, uint categoryHash) + { + unsafe + { + uint pId = default; + var ptr = Library.Client.Core_CreateFrontendOutput(NativePointer, categoryHash, Resource.NativePointer, &pId); + id = pId; + return ptr; + } + } + + public IntPtr CreateWorldOutputPtr(out uint id, uint categoryHash, Position pos) { - var ptr = CreateAudioPtr(source, volume, category, frontend); + unsafe + { + uint pId = default; + var ptr = Library.Client.Core_CreateWorldOutput(NativePointer, categoryHash, pos, Resource.NativePointer, &pId); + id = pId; + return ptr; + } + } + + public IntPtr CreateAttachedOutputPtr(out uint id, uint categoryHash, IWorldObject worldObject) + { + unsafe + { + uint pId = default; + var ptr = Library.Client.Core_CreateAttachedOutput(NativePointer, categoryHash, worldObject.WorldObjectNativePointer, Resource.NativePointer, &pId); + id = pId; + return ptr; + } + } + + public IAudioFilter CreateAudioFilter(uint hash) + { + var ptr = CreateAudioFilterPtr(out var id, hash); if (ptr == IntPtr.Zero) return null; - return AudioPool.Create(this, ptr); + return PoolManager.AudioFilter.Create(this, ptr, id); } - public IntPtr CreateObjectPtr(uint modelHash, Position position, Rotation rotation, bool noOffset = false, - bool dynamic = false) + public IAudioOutputFrontend CreateAudioOutputFrontend(uint categoryHash) + { + var ptr = CreateFrontendOutputPtr(out var id, categoryHash); + if (ptr == IntPtr.Zero) return null; + return PoolManager.AudioOutputFrontend.Create(this, ptr, id); + } + + public IAudioOutputWorld CreateAudioOutputWorld(uint categoryHash, Position pos) + { + var ptr = CreateWorldOutputPtr(out var id, categoryHash, pos); + if (ptr == IntPtr.Zero) return null; + return PoolManager.AudioOutputWorld.Create(this, ptr, id); + } + + public IAudioOutputAttached CreateAudioOutputAttached(uint categoryHash, IWorldObject worldObject) + { + var ptr = CreateAttachedOutputPtr(out var id, categoryHash, worldObject); + if (ptr == IntPtr.Zero) return null; + return PoolManager.AudioOutputAttached.Create(this, ptr, id); + } + + public WeaponData[] GetAllWeaponData() + { + unsafe + { + CheckIfCallIsValid(); + var weaponDataCount = Library.Client.Core_GetAllWeaponDataCount(NativePointer); + var weaponHashes = new uint[weaponDataCount]; + Library.Client.Core_GetAllWeaponData(NativePointer, weaponHashes, weaponDataCount); + var weaponDatas = new WeaponData[weaponDataCount]; + for (ulong i = 0; i < weaponDataCount; i++) + { + var weaponHash = weaponHashes[i]; + weaponDatas[i] = new WeaponData(this, weaponHash); + } + + return weaponDatas; + } + } + + public IntPtr CreateLocalObjectPtr(out uint id, uint modelHash, Position position, Rotation rotation, bool noOffset = false, + bool dynamic = false, bool useStreaming = false, uint streamingDistance = 0) { unsafe { - var ptr = Library.Client.Core_CreateObject(NativePointer, modelHash, position, rotation, (byte) (noOffset ? 1 : 0), (byte) (dynamic ? 1 : 0), Resource.NativePointer); + uint pId = default; + var ptr = Library.Client.Core_CreateLocalObject(NativePointer, modelHash, position, rotation, (byte) (noOffset ? 1 : 0), (byte) (dynamic ? 1 : 0), (byte) (useStreaming ? 1 : 0), streamingDistance, Resource.NativePointer, &pId); + id = pId; return ptr; } } - public IObject CreateObject(uint modelHash, Position position, Rotation rotation, bool noOffset = false, bool dynamic = false) + public ILocalObject CreateLocalObject(uint modelHash, Position position, Rotation rotation, bool noOffset = false, bool dynamic = false, bool useStreaming = false, uint streamingDistance = 0) { - var ptr = CreateObjectPtr(modelHash, position, rotation, noOffset, dynamic); + var ptr = CreateLocalObjectPtr(out var id, modelHash, position, rotation, noOffset, dynamic, useStreaming, streamingDistance); if (ptr == IntPtr.Zero) return null; - return ObjectPool.Create(this, ptr); + return PoolManager.LocalObject.Create(this, ptr, id); } - public IntPtr CreateHttpClientPtr() + public IntPtr CreateHttpClientPtr(out uint id) { unsafe { - return Library.Client.Core_CreateHttpClient(NativePointer, Resource.NativePointer); + uint pId = default; + var httpClient = Library.Client.Core_CreateHttpClient(NativePointer, Resource.NativePointer, &pId); + id = pId; + + return httpClient; } } public IHttpClient CreateHttpClient() { - var ptr = CreateHttpClientPtr(); + var ptr = CreateHttpClientPtr(out var id); if (ptr == IntPtr.Zero) return null; - return HttpClientPool.Create(this, ptr); + return PoolManager.HttpClient.Create(this, ptr, id); } - public IntPtr CreateWebSocketClientPtr(string url) + public IntPtr CreateWebSocketClientPtr(out uint id, string url) { unsafe { + uint pId = default; var urlPtr = MemoryUtils.StringToHGlobalUtf8(url); - var ptr = Library.Client.Core_CreateWebsocketClient(NativePointer, Resource.NativePointer, urlPtr); + var ptr = Library.Client.Core_CreateWebsocketClient(NativePointer, Resource.NativePointer, urlPtr, + &pId); + id = pId; Marshal.FreeHGlobal(urlPtr); return ptr; } @@ -381,9 +591,117 @@ public IntPtr CreateWebSocketClientPtr(string url) public IWebSocketClient CreateWebSocketClient(string url) { - var ptr = CreateWebSocketClientPtr(url); + var ptr = CreateWebSocketClientPtr(out var id, url); + if (ptr == IntPtr.Zero) return null; + return PoolManager.WebSocketClient.Create(this, ptr, id); + } + + public IntPtr CreateColShapeCirclePtr(out uint id, Position position, float radius) + { + unsafe + { + uint pId = default; + var colShapeCircle = Library.Shared.Core_CreateColShapeCircle(NativePointer, position, radius, &pId); + id = pId; + return colShapeCircle; + } + } + + public IColShape CreateColShapeCircle(Position position, float radius) + { + var ptr = CreateColShapeCirclePtr(out var id, position, radius); + if (ptr == IntPtr.Zero) return null; + return PoolManager.ColShape.Create(this, ptr, id); + } + + public IntPtr CreateColShapeCubePtr(out uint id, Position pos1, Position pos2) + { + unsafe + { + uint pId = default; + var colShapeCube = Library.Shared.Core_CreateColShapeCube(NativePointer, pos1, pos2, &pId); + id = pId; + return colShapeCube; + } + } + + public IColShape CreateColShapeCube(Position pos1, Position pos2) + { + var ptr = CreateColShapeCubePtr(out var id, pos1, pos2); + if (ptr == IntPtr.Zero) return null; + return PoolManager.ColShape.Create(this, ptr, id); + } + + public IntPtr CreateColShapeCylinderPtr(out uint id, Position position, float radius, float height) + { + unsafe + { + uint pId = default; + var colShapeCylinder = Library.Shared.Core_CreateColShapeCylinder(NativePointer, position, radius, height, &pId); + id = pId; + return colShapeCylinder; + } + } + + public IColShape CreateColShapeCylinder(Position position, float radius, float height) + { + var ptr = CreateColShapeCylinderPtr(out var id, position, radius, height); + if (ptr == IntPtr.Zero) return null; + return PoolManager.ColShape.Create(this, ptr, id); + } + + public IntPtr CreateColShapePolygonPtr(out uint id, float minZ, float maxZ, Vector2[] points) + { + unsafe + { + uint pId = default; + var colShapePolygon = Library.Shared.Core_CreateColShapePolygon(NativePointer, minZ, maxZ, points, points.Length, &pId); + id = pId; + return colShapePolygon; + } + } + + public IColShape CreateColShapePolygon(float minZ, float maxZ, Vector2[] points) + { + var ptr = CreateColShapePolygonPtr(out var id, minZ, maxZ, points); + if (ptr == IntPtr.Zero) return null; + return PoolManager.ColShape.Create(this, ptr, id); + } + + public IntPtr CreateColShapeRectanglePtr(out uint id, float x1, float y1, float x2, float y2, float z) + { + unsafe + { + uint pId = default; + var colShapeRectangle = Library.Shared.Core_CreateColShapeRectangle(NativePointer, x1, y1, x2, y2, z, &pId); + id = pId; + return colShapeRectangle; + } + } + + public IColShape CreateColShapeRectangle(float x1, float y1, float x2, float y2, float z) + { + var ptr = CreateColShapeRectanglePtr(out var id, x1, y1, x2, y2, z); + if (ptr == IntPtr.Zero) return null; + return PoolManager.ColShape.Create(this, ptr, id); + } + + public IntPtr CreateColShapeSpherePtr(out uint id, Vector3 position, float radius) + { + unsafe + { + uint pId = default; + var colShapeSphere = Library.Shared.Core_CreateColShapeSphere(NativePointer, position, radius, &pId); + id = pId; + return colShapeSphere; + } + } + + public IColShape CreateColShapeSphere(Vector3 position, float radius) + { + var ptr = CreateColShapeSpherePtr(out var id, position, radius); if (ptr == IntPtr.Zero) return null; - return WebSocketClientPool.Create(this, ptr); + return PoolManager.ColShape.Create(this, ptr, id); } #endregion @@ -392,7 +710,7 @@ public IWebSocketClient CreateWebSocketClient(string url) public void TriggerServerEvent(string eventName, MValueConst[] args) { - var eventNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(eventName); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); TriggerServerEvent(eventNamePtr, args); Marshal.FreeHGlobal(eventNamePtr); } @@ -411,7 +729,7 @@ public void TriggerServerEvent(IntPtr eventNamePtr, MValueConst[] args) public void TriggerServerEvent(string eventName, IntPtr[] args) { - var eventNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(eventName); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); TriggerServerEvent(eventNamePtr, args); Marshal.FreeHGlobal(eventNamePtr); } @@ -451,6 +769,136 @@ public void TriggerServerEvent(string eventName, params object[] args) } } + public ushort TriggerServerRPCEvent(string name, params object[] args) + { + if (args == null) throw new ArgumentException("Arguments array should not be null."); + var size = args.Length; + var mValues = new MValueConst[size]; + CreateMValues(mValues, args); + var result = TriggerServerRPCEvent(name, mValues); + for (var i = 0; i < size; i++) + { + mValues[i].Dispose(); + } + + return result; + } + + public ushort TriggerServerRPCEvent(string eventName, MValueConst[] args) + { + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); + var result = TriggerServerRPCEvent(eventNamePtr, args); + Marshal.FreeHGlobal(eventNamePtr); + return result; + } + + public ushort TriggerServerRPCEvent(IntPtr eventNamePtr, MValueConst[] args) + { + var size = args.Length; + var mValuePointers = new IntPtr[size]; + for (var i = 0; i < size; i++) + { + mValuePointers[i] = args[i].nativePointer; + } + + return TriggerServerRPCEvent(eventNamePtr, mValuePointers); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ushort TriggerServerRPCEvent(IntPtr eventNamePtr, IntPtr[] args) + { + unsafe + { + return Library.Client.Core_TriggerServerRPCEvent(NativePointer, eventNamePtr, args, args.Length); + } + } + + public void TriggerServerRPCAnswer(ushort answerId, object answer, string error) + { + CreateMValue(out var mValue, answer); + TriggerServerRPCAnswer(answerId, mValue, error); + mValue.Dispose(); + } + + public void TriggerServerRPCAnswer(ushort answerId, MValueConst answer, string error) + { + unsafe + { + var errorPtr = MemoryUtils.StringToHGlobalUtf8(error); + Library.Client.Core_TriggerServerRPCAnswer(NativePointer, answerId, answer.nativePointer, errorPtr); + Marshal.FreeHGlobal(errorPtr); + } + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ushort TriggerServerRPCAnswerEvent(IntPtr eventNamePtr, IntPtr[] args) + { + unsafe + { + return Library.Client.Core_TriggerServerRPCEvent(NativePointer, eventNamePtr, args, args.Length); + } + } + + public void TriggerServerEventUnreliable(string eventName, MValueConst[] args) + { + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); + TriggerServerEventUnreliable(eventNamePtr, args); + Marshal.FreeHGlobal(eventNamePtr); + } + + public void TriggerServerEventUnreliable(IntPtr eventNamePtr, MValueConst[] args) + { + var size = args.Length; + var mValuePointers = new IntPtr[size]; + for (var i = 0; i < size; i++) + { + mValuePointers[i] = args[i].nativePointer; + } + + TriggerServerEventUnreliable(eventNamePtr, mValuePointers); + } + + public void TriggerServerEventUnreliable(string eventName, IntPtr[] args) + { + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); + TriggerServerEventUnreliable(eventNamePtr, args); + Marshal.FreeHGlobal(eventNamePtr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void TriggerServerEventUnreliable(IntPtr eventNamePtr, IntPtr[] args) + { + unsafe + { + Library.Client.Core_TriggerServerEventUnreliable(NativePointer, eventNamePtr, args, args.Length); + } + } + + public void TriggerServerEventUnreliable(IntPtr eventNamePtr, params object[] args) + { + if (args == null) throw new ArgumentException("Arguments array should not be null."); + var size = args.Length; + var mValues = new MValueConst[size]; + CreateMValues(mValues, args); + TriggerServerEventUnreliable(eventNamePtr, mValues); + for (var i = 0; i < size; i++) + { + mValues[i].Dispose(); + } + } + + public void TriggerServerEventUnreliable(string eventName, params object[] args) + { + if (args == null) throw new ArgumentException("Arguments array should not be null."); + var size = args.Length; + var mValues = new MValueConst[size]; + CreateMValues(mValues, args); + TriggerServerEventUnreliable(eventName, mValues); + for (var i = 0; i < size; i++) + { + mValues[i].Dispose(); + } + } #endregion public INativeResource GetResource(string name) @@ -527,22 +975,204 @@ public void ClearTimer(uint id) TimerPool.Remove(id); } - public IReadOnlyCollection GetAllObjects() + public IReadOnlyCollection GetAllLocalObjects() { unsafe { CheckIfCallIsValid(); uint size = 0; - var ptr = Library.Client.Core_GetObjects(NativePointer, &size); + var ptr = Library.Client.Core_GetLocalObjects(NativePointer, &size); var data = new IntPtr[size]; - Marshal.Copy(ptr, data, 0, (int) size); - var arr = data.Select(e => ObjectPool.GetOrCreate(this, e)).ToArray(); - Library.Shared.FreeObjectArray(ptr); + Marshal.Copy(ptr, data, 0, (int)size); + var arr = data.Select(e => PoolManager.LocalObject.GetOrCreate(this, e)).ToArray(); + Library.Shared.FreeLocalObjectArray(ptr); + return arr; + } + } + + public IReadOnlyCollection GetAllLocalVehicles() + { + unsafe + { + CheckIfCallIsValid(); + uint size = 0; + var ptr = Library.Client.Core_GetLocalVehicles(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int)size); + var arr = data.Select(e => PoolManager.LocalVehicle.GetOrCreate(this, e)).ToArray(); + Library.Client.FreeLocalVehicleArray(ptr); return arr; } } - public IReadOnlyCollection GetAllWorldObjects() + public IReadOnlyCollection GetAllLocalPeds() + { + unsafe + { + CheckIfCallIsValid(); + uint size = 0; + var ptr = Library.Client.Core_GetLocalPeds(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int)size); + var arr = data.Select(e => PoolManager.LocalPed.GetOrCreate(this, e)).ToArray(); + Library.Client.FreeLocalPedArray(ptr); + return arr; + } + } + + public IBlip GetBlipByGameId(uint gameId) + { + unsafe + { + var blipPtr = Library.Client.Core_GetBlipByGameID(NativePointer, gameId); + + if (blipPtr == IntPtr.Zero) return null; + return PoolManager.Blip.GetOrCreate(this, blipPtr); + } + } + + public ICheckpoint GetCheckpointByGameID(uint gameId) + { + unsafe + { + var checkpointPtr = Library.Client.Core_GetCheckpointByGameID(NativePointer, gameId); + + if (checkpointPtr == IntPtr.Zero) return null; + return PoolManager.Checkpoint.GetOrCreate(this, checkpointPtr); + } + } + + public bool IsWebViewGpuAccelerationActive + { + get + { + unsafe + { + return Library.Client.Core_IsWebViewGpuAccelerationActive(NativePointer) == 1; + } + } + } + + public IWorldObject GetWorldObjectByScriptID(BaseObjectType type, uint scriptId) + { + unsafe + { + var wordlObjectPtr = Library.Client.Core_GetWorldObjectByScriptID(NativePointer, scriptId); + if (wordlObjectPtr == IntPtr.Zero) return null; + return (IWorldObject) PoolManager.Get(wordlObjectPtr, type); + } + } + + public IVirtualEntityGroup CreateVirtualEntityGroup(uint streamingDistance) + { + unsafe + { + CheckIfCallIsValid(); + + uint pId = default; + var ptr = Library.Shared.Core_CreateVirtualEntityGroup(NativePointer, streamingDistance, &pId); + if (ptr == IntPtr.Zero) return null; + return PoolManager.VirtualEntityGroup.GetOrCreate(this, ptr, pId); + } + } + + public IVirtualEntity CreateVirtualEntity(IVirtualEntityGroup group, Position position, uint streamingDistance, + Dictionary dataDict) + { + unsafe + { + CheckIfCallIsValid(); + + var data = new Dictionary(); + + var keys = new IntPtr[dataDict.Count]; + var values = new IntPtr[dataDict.Count]; + + for (var i = 0; i < dataDict.Count; i++) + { + var stringPtr = MemoryUtils.StringToHGlobalUtf8(dataDict.ElementAt(i).Key); + Alt.Core.CreateMValue(out var mValue, dataDict.ElementAt(i).Value); + keys[i] = stringPtr; + values[i] = mValue.nativePointer; + data.Add(stringPtr, mValue); + } + + uint pId = default; + var ptr = Library.Shared.Core_CreateVirtualEntity(NativePointer, group.VirtualEntityGroupNativePointer, position, streamingDistance, keys, values, (uint)data.Count, &pId); + + foreach (var dataValue in data) + { + dataValue.Value.Dispose(); + Marshal.FreeHGlobal(dataValue.Key); + } + if (ptr == IntPtr.Zero) return null; + return PoolManager.VirtualEntity.GetOrCreate(this, ptr, pId); + } + } + + public ILocalPed CreateLocalPed(uint modelHash, int dimension, Position position, Rotation rotation, bool useStreaming, + uint streamingDistance) + { + unsafe + { + CheckIfCallIsValid(); + + uint pId = default; + var ptr = Library.Client.Core_CreateLocalPed(NativePointer, modelHash, dimension, position, rotation, + useStreaming ? (byte)1 : (byte)0, streamingDistance, Resource.NativePointer, &pId); + if (ptr == IntPtr.Zero) return null; + return PoolManager.LocalPed.GetOrCreate(this, ptr, pId); + } + } + + public ILocalVehicle CreateLocalVehicle(uint modelHash, int dimension, Position position, Rotation rotation, bool useStreaming, + uint streamingDistance) + { + unsafe + { + CheckIfCallIsValid(); + + uint pId = default; + var ptr = Library.Client.Core_CreateLocalVehicle(NativePointer, modelHash, dimension, position, rotation, + useStreaming ? (byte)1 : (byte)0, streamingDistance, Resource.NativePointer, &pId); + if (ptr == IntPtr.Zero) return null; + return PoolManager.LocalVehicle.GetOrCreate(this, ptr, pId); + } + } + + public IMarker CreateMarker(MarkerType type, Position pos, Rgba color, bool useStreaming, uint streamingDistance) + { + unsafe + { + uint pId = default; + var ptr = Library.Client.Core_CreateMarker_Client(NativePointer, (byte)type, pos, color, + useStreaming ? (byte)1 : (byte)0, streamingDistance, Resource.NativePointer, &pId); + if (ptr == IntPtr.Zero) return null; + return PoolManager.Marker.GetOrCreate(this, ptr, pId); + } + } + + public ITextLabel CreateTextLabel(string name, string fontName, float fontSize, float scale, Position pos, Rotation rot, + Rgba color, float outlineWidth, Rgba outlineColor, bool useStreaming, uint streamingDistance) + { + unsafe + { + uint pId = default; + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + var fontSizePtr = MemoryUtils.StringToHGlobalUtf8(fontName); + + var ptr = Library.Client.Core_CreateTextLabel(NativePointer, namePtr, fontSizePtr, fontSize, scale, pos, rot, color, outlineWidth, outlineColor, + useStreaming ? (byte)1:(byte)0, streamingDistance, Resource.NativePointer, &pId); + + Marshal.FreeHGlobal(namePtr); + Marshal.FreeHGlobal(fontSizePtr); + + if (ptr == IntPtr.Zero) return null; + return PoolManager.TextLabel.GetOrCreate(this, ptr, pId); + } + } + + public IReadOnlyCollection GetAllWorldObjects() { unsafe { @@ -551,8 +1181,8 @@ public IReadOnlyCollection GetAllWorldObjects() var ptr = Library.Client.Core_GetWorldObjects(NativePointer, &size); var data = new IntPtr[size]; Marshal.Copy(ptr, data, 0, (int) size); - var arr = data.Select(e => ObjectPool.GetOrCreate(this, e)).ToArray(); - Library.Shared.FreeObjectArray(ptr); + var arr = data.Select(e => PoolManager.LocalObject.GetOrCreate(this, e)).ToArray(); + Library.Shared.FreeLocalObjectArray(ptr); return arr; } } diff --git a/api/AltV.Net.Client/Discord.cs b/api/AltV.Net.Client/Discord.cs index 52ea2694d..e3e4402d3 100644 --- a/api/AltV.Net.Client/Discord.cs +++ b/api/AltV.Net.Client/Discord.cs @@ -22,9 +22,9 @@ public async Task RequestOAuth2Token(string appId) unsafe { - void ResolveTask(bool success, string token) + void ResolveTask(byte success, string token) { - resultSuccess = success; + resultSuccess = success == 1; data = token; semaphore.Release(); } diff --git a/api/AltV.Net.Client/Elements/Data/AudioCategory.cs b/api/AltV.Net.Client/Elements/Data/AudioCategory.cs new file mode 100644 index 000000000..b44f98e31 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Data/AudioCategory.cs @@ -0,0 +1,347 @@ +using System.Runtime.InteropServices; +using AltV.Net.Shared.Utils; + +namespace AltV.Net.Client.Elements.Data; + +public class AudioCategory : IAudioCategory +{ + private readonly ICore core; + private readonly string name; + + internal AudioCategory(ICore core, string name) + { + this.core = core; + this.name = name; + } + + public float Volume + { + get + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + var result = core.Library.Client.AudioCategory_GetVolume(namePtr); + Marshal.FreeHGlobal(namePtr); + return result; + } + } + set + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + core.Library.Client.AudioCategory_SetVolume(namePtr, value); + Marshal.FreeHGlobal(namePtr); + } + } + } + + public float DistanceRolloffScale + { + get + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + var result = core.Library.Client.AudioCategory_GetDistanceRolloffScale(namePtr); + Marshal.FreeHGlobal(namePtr); + return result; + } + } + set + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + core.Library.Client.AudioCategory_SetDistanceRolloffScale(namePtr, value); + Marshal.FreeHGlobal(namePtr); + } + } + } + + public float PlateauRolloffScale + { + get + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + var result = core.Library.Client.AudioCategory_GetPlateauRolloffScale(namePtr); + Marshal.FreeHGlobal(namePtr); + return result; + } + } + set + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + core.Library.Client.AudioCategory_SetPlateauRolloffScale(namePtr, value); + Marshal.FreeHGlobal(namePtr); + } + } + } + + public float OcclusionDamping + { + get + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + var result = core.Library.Client.AudioCategory_GetOcclusionDamping(namePtr); + Marshal.FreeHGlobal(namePtr); + return result; + } + } + set + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + core.Library.Client.AudioCategory_SetOcclusionDamping(namePtr, value); + Marshal.FreeHGlobal(namePtr); + } + } + } + + public float EnvironmentalFilterDamping + { + get + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + var result = core.Library.Client.AudioCategory_GetEnvironmentalFilterDamping(namePtr); + Marshal.FreeHGlobal(namePtr); + return result; + } + } + set + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + core.Library.Client.AudioCategory_SetEnvironmentalFilterDamping(namePtr, value); + Marshal.FreeHGlobal(namePtr); + } + } + } + + public float SourceReverbDamping + { + get + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + var result = core.Library.Client.AudioCategory_GetSourceReverbDamping(namePtr); + Marshal.FreeHGlobal(namePtr); + return result; + } + } + set + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + core.Library.Client.AudioCategory_SetSourceReverbDamping(namePtr, value); + Marshal.FreeHGlobal(namePtr); + } + } + } + + public float DistanceReverbDamping + { + get + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + var result = core.Library.Client.AudioCategory_GetDistanceReverbDamping(namePtr); + Marshal.FreeHGlobal(namePtr); + return result; + } + } + set + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + core.Library.Client.AudioCategory_SetDistanceReverbDamping(namePtr, value); + Marshal.FreeHGlobal(namePtr); + } + } + } + + public float InteriorReverbDamping + { + get + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + var result = core.Library.Client.AudioCategory_GetInteriorReverbDamping(namePtr); + Marshal.FreeHGlobal(namePtr); + return result; + } + } + set + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + core.Library.Client.AudioCategory_SetInteriorReverbDamping(namePtr, value); + Marshal.FreeHGlobal(namePtr); + } + } + } + + public float EnvironmentalLoudness + { + get + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + var result = core.Library.Client.AudioCategory_GetEnvironmentalLoudness(namePtr); + Marshal.FreeHGlobal(namePtr); + return result; + } + } + set + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + core.Library.Client.AudioCategory_SetEnvironmentalLoudness(namePtr, value); + Marshal.FreeHGlobal(namePtr); + } + } + } + + public float UnderwaterWetLevel + { + get + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + var result = core.Library.Client.AudioCategory_GetUnderwaterWetLevel(namePtr); + Marshal.FreeHGlobal(namePtr); + return result; + } + } + set + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + core.Library.Client.AudioCategory_SetUnderwaterWetLevel(namePtr, value); + Marshal.FreeHGlobal(namePtr); + } + } + } + + public float StonedWetLevel + { + get + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + var result = core.Library.Client.AudioCategory_GetStonedWetLevel(namePtr); + Marshal.FreeHGlobal(namePtr); + return result; + } + } + set + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + core.Library.Client.AudioCategory_SetStonedWetLevel(namePtr, value); + Marshal.FreeHGlobal(namePtr); + } + } + } + + public short Pitch + { + get + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + var result = core.Library.Client.AudioCategory_GetPitch(namePtr); + Marshal.FreeHGlobal(namePtr); + return result; + } + } + set + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + core.Library.Client.AudioCategory_SetPitch(namePtr, value); + Marshal.FreeHGlobal(namePtr); + } + } + } + + public short LowPassFilterCutoff + { + get + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + var result = core.Library.Client.AudioCategory_GetLowPassFilterCutoff(namePtr); + Marshal.FreeHGlobal(namePtr); + return result; + } + } + set + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + core.Library.Client.AudioCategory_SetLowPassFilterCutoff(namePtr, value); + Marshal.FreeHGlobal(namePtr); + } + } + } + + public short HighPassFilterCutoff + { + get + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + var result = core.Library.Client.AudioCategory_GetHighPassFilterCutoff(namePtr); + Marshal.FreeHGlobal(namePtr); + return result; + } + } + set + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + core.Library.Client.AudioCategory_SetHighPassFilterCutoff(namePtr, value); + Marshal.FreeHGlobal(namePtr); + } + } + } + public void Reset() + { + unsafe + { + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + core.Library.Client.AudioCategory_Reset(namePtr); + Marshal.FreeHGlobal(namePtr); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Data/Handling.cs b/api/AltV.Net.Client/Elements/Data/Handling.cs index b89ae0bfd..211eac10c 100644 --- a/api/AltV.Net.Client/Elements/Data/Handling.cs +++ b/api/AltV.Net.Client/Elements/Data/Handling.cs @@ -2,7 +2,7 @@ namespace AltV.Net.Client.Elements.Data { - public class Handling: IHandlingData + public class Handling : IHandlingData { private readonly ICore core; private readonly IntPtr vehiclePointer; diff --git a/api/AltV.Net.Client/Elements/Data/IAudioCategory.cs b/api/AltV.Net.Client/Elements/Data/IAudioCategory.cs new file mode 100644 index 000000000..77a5992bd --- /dev/null +++ b/api/AltV.Net.Client/Elements/Data/IAudioCategory.cs @@ -0,0 +1,21 @@ +namespace AltV.Net.Client.Elements.Data; + +public interface IAudioCategory +{ + float Volume{ get; set; } + float DistanceRolloffScale{ get; set; } + float PlateauRolloffScale{ get; set; } + float OcclusionDamping{ get; set; } + float EnvironmentalFilterDamping{ get; set; } + float SourceReverbDamping{ get; set; } + float DistanceReverbDamping{ get; set; } + float InteriorReverbDamping{ get; set; } + float EnvironmentalLoudness{ get; set; } + float UnderwaterWetLevel{ get; set; } + float StonedWetLevel{ get; set; } + short Pitch{ get; set; } + short LowPassFilterCutoff{ get; set; } + short HighPassFilterCutoff{ get; set; } + + void Reset(); +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Data/LocalStorage.cs b/api/AltV.Net.Client/Elements/Data/LocalStorage.cs index 5d8ebebe6..aac55c7c4 100644 --- a/api/AltV.Net.Client/Elements/Data/LocalStorage.cs +++ b/api/AltV.Net.Client/Elements/Data/LocalStorage.cs @@ -19,16 +19,44 @@ public void Get(string key, out MValueConst value) { unsafe { + if (string.IsNullOrEmpty(key)) + { + value = MValueConst.Nil; + return; + } + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); value = new MValueConst(core, core.Library.Client.LocalStorage_GetKey(nativePointer, stringPtr)); Marshal.FreeHGlobal(stringPtr); } } + public bool Has(string key) + { + unsafe + { + if (string.IsNullOrEmpty(key)) + { + return false; + } + + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); + var result = core.Library.Client.LocalStorage_Has(nativePointer, stringPtr) == 1; + Marshal.FreeHGlobal(stringPtr); + + return result; + } + } + public void Set(string key, in MValueConst value) { unsafe { + if (string.IsNullOrEmpty(key)) + { + return; + } + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); core.Library.Client.LocalStorage_SetKey(nativePointer, stringPtr, value.nativePointer); Marshal.FreeHGlobal(stringPtr); @@ -39,6 +67,11 @@ public void Delete(string key) { unsafe { + if (string.IsNullOrEmpty(key)) + { + return; + } + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); core.Library.Client.LocalStorage_DeleteKey(nativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); @@ -47,6 +80,11 @@ public void Delete(string key) public void Set(string key, object value) { + if (string.IsNullOrEmpty(key)) + { + return; + } + core.CreateMValue(out var mValue, value); Set(key, in mValue); mValue.Dispose(); diff --git a/api/AltV.Net.Client/Elements/Data/Permission.cs b/api/AltV.Net.Client/Elements/Data/Permission.cs index bea29c78d..93dc9802e 100644 --- a/api/AltV.Net.Client/Elements/Data/Permission.cs +++ b/api/AltV.Net.Client/Elements/Data/Permission.cs @@ -6,6 +6,7 @@ public enum Permission : byte ScreenCapture, WebRTC, ClipboardAccess, + ExtendVoiceApi, All } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Data/PermissionState.cs b/api/AltV.Net.Client/Elements/Data/PermissionState.cs deleted file mode 100644 index e28bb12a5..000000000 --- a/api/AltV.Net.Client/Elements/Data/PermissionState.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace AltV.Net.Client.Elements.Data -{ - public enum PermissionState : byte - { - // Permission is allowed by the user - Allowed, - // Permission is denied by the user - Denied, - // When a permission has not been specified by any of the resources - Unspecified, - // When an action requiring permission fails - Failed - }; -} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Data/Voice.cs b/api/AltV.Net.Client/Elements/Data/Voice.cs index d90cff03a..9469808a4 100644 --- a/api/AltV.Net.Client/Elements/Data/Voice.cs +++ b/api/AltV.Net.Client/Elements/Data/Voice.cs @@ -1,4 +1,6 @@ -namespace AltV.Net.Client.Elements.Data +using AltV.Net.Client.Exceptions; + +namespace AltV.Net.Client.Elements.Data { public class Voice { @@ -29,6 +31,14 @@ public bool ActivityInputEnabled return core.Library.Client.Core_IsVoiceActivityInputEnabled(core.NativePointer) == 1; } } + set + { + unsafe + { + var permissionState = core.Library.Client.Core_ToggleVoiceActivation(core.NativePointer, value ? (byte)1 : (byte)0) == 1; + if (!permissionState) throw new PermissionException(Permission.ExtendVoiceApi); + } + } } public bool MuteInput @@ -49,5 +59,54 @@ public bool MuteInput } } } + + public void ToggleInput(bool state) + { + unsafe + { + var permissionState = core.Library.Client.Core_ToggleVoiceInput(core.NativePointer, state ? (byte)1 : (byte)0) == 1; + if (!permissionState) throw new PermissionException(Permission.ExtendVoiceApi); + } + } + + public float ActivationLevel + { + get + { + unsafe + { + return core.Library.Client.Core_GetVoiceActivationLevel(core.NativePointer); + } + } + + set + { + unsafe + { + var permissionState = core.Library.Client.Core_SetVoiceActivationLevel(core.NativePointer, value) == 1; + if (!permissionState) throw new PermissionException(Permission.ExtendVoiceApi); + } + } + } + + public bool NoiseSuppressionEnabled + { + get + { + unsafe + { + return core.Library.Client.Core_IsNoiseSuppressionEnabled(core.NativePointer) == 1; + } + } + + set + { + unsafe + { + var permissionState = core.Library.Client.Core_ToggleNoiseSuppression(core.NativePointer, value ? (byte)1 : (byte)0) == 1; + if (!permissionState) throw new PermissionException(Permission.ExtendVoiceApi); + } + } + } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/Audio.cs b/api/AltV.Net.Client/Elements/Entities/Audio.cs index d6574ec51..65bca1190 100644 --- a/api/AltV.Net.Client/Elements/Entities/Audio.cs +++ b/api/AltV.Net.Client/Elements/Entities/Audio.cs @@ -1,5 +1,6 @@ using System.Runtime.InteropServices; using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.Data; using AltV.Net.Elements.Entities; using AltV.Net.Shared.Utils; @@ -8,7 +9,7 @@ namespace AltV.Net.Client.Elements.Entities public struct AudioEntity { public IEntity Entity; - public int ScriptId; + public uint ScriptId; } public class Audio : BaseObject, IAudio @@ -24,35 +25,15 @@ public static IntPtr GetBaseObjectNativePointer(ICore core, IntPtr audioNativePo } } - public Audio(ICore core, IntPtr audioNativePointer) : base(core, GetBaseObjectNativePointer(core, audioNativePointer), BaseObjectType.Audio) + public Audio(ICore core, IntPtr audioNativePointer, uint id) : base(core, GetBaseObjectNativePointer(core, audioNativePointer), BaseObjectType.Audio, id) { AudioNativePointer = audioNativePointer; } - public Audio(ICore core, string source, float volume, uint category, bool frontend) : this(core, core.CreateAudioPtr(source, volume, category, frontend)) + [Obsolete("Use Alt.CreateAudio instead")] + public Audio(ICore core, string source, float volume) : this(core, core.CreateAudioPtr(out var id,source, volume), id) { - core.AudioPool.Add(this); - } - - public uint AudioCategory - { - get - { - unsafe - { - CheckIfEntityExists(); - return Core.Library.Client.Audio_GetCategory(AudioNativePointer); - } - } - - set - { - unsafe - { - CheckIfEntityExists(); - Core.Library.Client.Audio_SetCategory(AudioNativePointer, value); - } - } + core.PoolManager.Audio.Add(this); } public bool Looped @@ -133,18 +114,6 @@ public double CurrentTime } } - public bool FrontendPlay - { - get - { - unsafe - { - CheckIfEntityExists(); - return Core.Library.Client.Audio_IsFrontendPlay(AudioNativePointer) == 1; - } - } - } - public double MaxTime { get @@ -157,7 +126,7 @@ public double MaxTime } } - public bool Playing + public bool IsPlaying { get { @@ -169,39 +138,21 @@ public bool Playing } } - public void AddOutput(uint scriptId) - { - unsafe - { - CheckIfEntityExists(); - Core.Library.Client.Audio_AddOutput_ScriptId(AudioNativePointer, scriptId); - } - } - - public void AddOutput(IEntity entity) + public void AddOutput(AudioOutput audioOutput) { unsafe { CheckIfEntityExists(); - Core.Library.Client.Audio_AddOutput_Entity(AudioNativePointer, entity.EntityNativePointer); + Core.Library.Client.Audio_AddOutput(AudioNativePointer, audioOutput.AudioOutputNativePointer); } } - public void RemoveOutput(uint scriptId) + public void RemoveOutput(AudioOutput audioOutput) { unsafe { CheckIfEntityExists(); - Core.Library.Client.Audio_RemoveOutput_ScriptId(AudioNativePointer, scriptId); - } - } - - public void RemoveOutput(IEntity entity) - { - unsafe - { - CheckIfEntityExists(); - Core.Library.Client.Audio_RemoveOutput_Entity(AudioNativePointer, entity.EntityNativePointer); + Core.Library.Client.Audio_RemoveOutput(AudioNativePointer, audioOutput.AudioOutputNativePointer); } } @@ -224,8 +175,14 @@ public AudioEntity[] GetOutputs() Marshal.Copy(entityArrayPtr, entityPtrArray, 0, (int) size); Core.Library.Shared.FreeVoidPointerArray(entityArrayPtr); - var scriptIdArray = new int[size]; - Marshal.Copy(scriptIdArrayPtr, scriptIdArray, 0, (int) size); + var uintArray = new UIntArray + { + data = scriptIdArrayPtr, + size = size, + capacity = size + }; + + var scriptIdArray = uintArray.ToArray(); Core.Library.Shared.FreeUInt32Array(scriptIdArrayPtr); var audioEntityArray = new AudioEntity[size]; @@ -235,8 +192,8 @@ public AudioEntity[] GetOutputs() var scriptId = scriptIdArray[i]; var entityType = (BaseObjectType) entityTypesArray[i]; var entityPtr = entityPtrArray[i]; - - if (entityPtr != IntPtr.Zero && Core.BaseEntityPool.GetOrCreate(Core, entityPtr, entityType, out var entity)) + var entity = (IEntity) Core.PoolManager.GetOrCreate(Core, entityPtr, entityType); + if (entityPtr != IntPtr.Zero && entity is not null) { audioEntityArray[i] = new AudioEntity { diff --git a/api/AltV.Net.Client/Elements/Entities/AudioFilter.cs b/api/AltV.Net.Client/Elements/Entities/AudioFilter.cs new file mode 100644 index 000000000..f9375322d --- /dev/null +++ b/api/AltV.Net.Client/Elements/Entities/AudioFilter.cs @@ -0,0 +1,185 @@ +using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Client.Elements.Entities; + +public class AudioFilter : BaseObject, IAudioFilter +{ + public static IntPtr GetBaseObjectNativePointer(ICore core, IntPtr audioFilterNativePointer) + { + unsafe + { + return core.Library.Client.AudioFilter_GetBaseObject(audioFilterNativePointer); + } + } + + public AudioFilter(ICore core, IntPtr audioFilterNativePointer, uint id) : base(core, GetBaseObjectNativePointer(core, audioFilterNativePointer), BaseObjectType.AudioFilter, id) + { + AudioFilterNativePointer = audioFilterNativePointer; + } + + public IntPtr AudioFilterNativePointer { get; } + public override IntPtr NativePointer => AudioFilterNativePointer; + + public uint Hash + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.AudioFilter_GetHash(AudioFilterNativePointer); + } + } + } + + public uint AudCategory + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.AudioFilter_GetAudCategory(AudioFilterNativePointer); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.AudioFilter_SetAudCategory(AudioFilterNativePointer, value); + } + } + } + + public uint AddRotateEffect(float fRate, int priority) + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.AudioFilter_AddRotateEffect(AudioFilterNativePointer, fRate, priority); + } + } + + public uint AddVolumeEffect(float fVolume, int priority) + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.AudioFilter_AddVolumeEffect(AudioFilterNativePointer, fVolume, priority); + } + } + + public uint AddPeakeqEffect(int lBand, float fBandwidth, float fQ, float fCenter, float fGain, int priority) + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.AudioFilter_AddPeakeqEffect(AudioFilterNativePointer, lBand, fBandwidth, fQ, fCenter, fGain, priority); + } + } + + public uint AddDampEffect(float fTarget, float fQuiet, float fRate, float fGain, float fDelay, int priority) + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.AudioFilter_AddDampEffect(AudioFilterNativePointer, fTarget, fQuiet, fRate, fGain, fDelay, priority); + } + } + + public uint AddAutowahEffect(float fDryMix, float fWetMix, float fFeedback, float fRate, float fRange, float fFreq, + int priority) + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.AudioFilter_AddAutowahEffect(AudioFilterNativePointer, fDryMix, fWetMix, fFeedback, fRate, fRange, fFreq, priority); + } + } + + public uint AddPhaserEffect(float fDryMix, float fWetMix, float fFeedback, float fRate, float fRange, float fFreq, + int priority) + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.AudioFilter_AddPhaserEffect(AudioFilterNativePointer, fDryMix, fWetMix, fFeedback, fRate, fRange, fFreq, priority); + } + } + + public uint AddChorusEffect(float fDryMix, float fWetMix, float fFeedback, float fMinSweep, float fMaxSweep, float fRate, + int priority) + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.AudioFilter_AddChorusEffect(AudioFilterNativePointer, fDryMix, fWetMix, fFeedback, fMinSweep, fMaxSweep, fRate, priority); + } + } + + public uint AddDistortionEffect(float fDrive, float fDryMix, float fWetMix, float fFeedback, float fVolume, int priority) + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.AudioFilter_AddDistortionEffect(AudioFilterNativePointer, fDrive, fDryMix, fWetMix, fFeedback, fVolume, priority); + } + } + + public uint AddCompressor2Effect(float fGain, float fThreshold, float fRatio, float fAttack, float fRelease, int priority) + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.AudioFilter_AddCompressor2Effect(AudioFilterNativePointer, fGain, fThreshold, fRatio, fAttack, fRelease, priority); + } + } + + public uint AddBqfEffect(int lFilter, float fCenter, float fGain, float fBandwidth, float fQ, float fS, int priority) + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.AudioFilter_AddBqfEffect(AudioFilterNativePointer, lFilter, fCenter, fGain, fBandwidth, fQ, fS, priority); + } + } + + public uint AddEcho4Effect(float fDryMix, float fWetMix, float fFeedback, float fDelay, int priority) + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.AudioFilter_AddEcho4Effect(AudioFilterNativePointer, fDryMix, fWetMix, fFeedback, fDelay, priority); + } + } + + public uint AddPitchshiftEffect(float fPitchShift, float fSemitones, long lFFTsize, long lOsamp, int priority) + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.AudioFilter_AddPitchshiftEffect(AudioFilterNativePointer, fPitchShift, fSemitones, lFFTsize, lOsamp, priority); + } + } + + public uint AddFreeverbEffect(float fDryMix, float fWetMix, float fRoomSize, float fDamp, float fWidth, uint lMode, + int priority) + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.AudioFilter_AddFreeverbEffect(AudioFilterNativePointer, fDryMix, fWetMix, fRoomSize, fDamp, fWidth, lMode, priority); + } + } + + public bool RemoveEffect(uint effect) + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.AudioFilter_RemoveEffect(AudioFilterNativePointer, effect) == 1; + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/AudioOutput.cs b/api/AltV.Net.Client/Elements/Entities/AudioOutput.cs new file mode 100644 index 000000000..2334ba048 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Entities/AudioOutput.cs @@ -0,0 +1,127 @@ +using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Client.Elements.Entities; + +public class AudioOutput : BaseObject, IAudioOutput +{ + public static IntPtr GetBaseObjectNativePointer(ICore core, IntPtr audioFilterNativePointer) + { + unsafe + { + return core.Library.Client.AudioOutput_GetBaseObject(audioFilterNativePointer); + } + } + + public AudioOutput(ICore core, IntPtr audioOutputNativePointer, uint id) : base(core, GetBaseObjectNativePointer(core, audioOutputNativePointer), BaseObjectType.AudioOutput, id) + { + AudioOutputNativePointer = audioOutputNativePointer; + } + + public AudioOutput(ICore core, IntPtr audioOutputNativePointer, BaseObjectType type, uint id) : base(core, GetBaseObjectNativePointer(core, audioOutputNativePointer), type, id) + { + AudioOutputNativePointer = audioOutputNativePointer; + } + + public IntPtr AudioOutputNativePointer { get; } + public override IntPtr NativePointer => AudioOutputNativePointer; + + + public float Volume + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.AudioOutput_GetVolume(AudioOutputNativePointer); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.AudioOutput_SetVolume(AudioOutputNativePointer, value); + } + } + } + + public bool IsMuted + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.AudioOutput_IsMuted(AudioOutputNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.AudioOutput_SetMuted(AudioOutputNativePointer, value ? (byte)1 : (byte)0); + } + } + } + + public uint Category + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.AudioOutput_GetCategory(AudioOutputNativePointer); + } + } + } + + public IAudio Owner + { + get + { + unsafe + { + CheckIfEntityExists(); + var entityPointer = Core.Library.Client.AudioOutput_GetOwner(AudioOutputNativePointer); + if (entityPointer == IntPtr.Zero) return null; + return Core.PoolManager.Audio.Get(entityPointer); + } + } + } + + public void AddFilter(IAudioFilter filter) + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.AudioOutput_AddFilter(AudioOutputNativePointer, filter.AudioFilterNativePointer); + } + } + + public void RemoveFilter() + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.AudioOutput_RemoveFilter(AudioOutputNativePointer); + } + } + + public IAudioFilter Filter + { + get + { + unsafe + { + CheckIfEntityExists(); + var entityPointer = Core.Library.Client.AudioOutput_GetFilter(AudioOutputNativePointer); + if (entityPointer == IntPtr.Zero) return null; + return Core.PoolManager.AudioFilter.Get(entityPointer); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/AudioOutputAttached.cs b/api/AltV.Net.Client/Elements/Entities/AudioOutputAttached.cs new file mode 100644 index 000000000..3ecfa4cd1 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Entities/AudioOutputAttached.cs @@ -0,0 +1,47 @@ +using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Client.Elements.Entities; + +public class AudioOutputAttached : AudioOutput, IAudioOutputAttached +{ + public static IntPtr GetAudioNativePointer(ICore core, IntPtr audioOutputAttachedNativePointer) + { + unsafe + { + return core.Library.Client.AudioAttachedOutput_GetAudioOutputObject(audioOutputAttachedNativePointer); + } + } + public AudioOutputAttached(ICore core, IntPtr audioOutputAttachedNativePointer, uint id) : base(core, + GetAudioNativePointer(core, audioOutputAttachedNativePointer), BaseObjectType.AudioOutputAttached, id) + { + AudioOutputAttachedNativePointer = audioOutputAttachedNativePointer; + } + + public IntPtr AudioOutputAttachedNativePointer { get; } + + public IWorldObject Entity + { + get + { + unsafe + { + CheckIfEntityExists(); + BaseObjectType type = BaseObjectType.Audio; + var entityPointer = Core.Library.Client.AudioAttachedOutput_GetEntity(AudioOutputAttachedNativePointer, &type); + if (entityPointer == IntPtr.Zero) return null; + return (IWorldObject)Core.PoolManager.Get(entityPointer, type); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.AudioAttachedOutput_SetEntity(AudioOutputAttachedNativePointer, value.WorldObjectNativePointer); + } + } + } + + public override IntPtr NativePointer => AudioOutputAttachedNativePointer; +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/AudioOutputFrontend.cs b/api/AltV.Net.Client/Elements/Entities/AudioOutputFrontend.cs new file mode 100644 index 000000000..b239701d5 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Entities/AudioOutputFrontend.cs @@ -0,0 +1,23 @@ +using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Client.Elements.Entities; + +public class AudioOutputFrontend : AudioOutput, IAudioOutputFrontend +{ + public static IntPtr GetAudioNativePointer(ICore core, IntPtr audioOutputFrontendNativePointer) + { + unsafe + { + return core.Library.Client.AudioFrontendOutput_GetAudioOutputObject(audioOutputFrontendNativePointer); + } + } + public AudioOutputFrontend(ICore core, IntPtr audioOutputFrontendNativePointer, uint id) : base(core, + GetAudioNativePointer(core, audioOutputFrontendNativePointer), BaseObjectType.AudioOutputFrontend, id) + { + AudioOutputFrontendNativePointer = audioOutputFrontendNativePointer; + } + + public IntPtr AudioOutputFrontendNativePointer { get; } + public override IntPtr NativePointer => AudioOutputFrontendNativePointer; +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/AudioOutputWorld.cs b/api/AltV.Net.Client/Elements/Entities/AudioOutputWorld.cs new file mode 100644 index 000000000..a76bd1640 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Entities/AudioOutputWorld.cs @@ -0,0 +1,45 @@ +using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.Data; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Client.Elements.Entities; + +public class AudioOutputWorld : AudioOutput, IAudioOutputWorld +{ + public static IntPtr GetAudioNativePointer(ICore core, IntPtr audioOutputWorldNativePointer) + { + unsafe + { + return core.Library.Client.AudioWorldOutput_GetAudioOutputObject(audioOutputWorldNativePointer); + } + } + public AudioOutputWorld(ICore core, IntPtr audioOutputWorldNativePointer, uint id) : base(core, + GetAudioNativePointer(core, audioOutputWorldNativePointer), BaseObjectType.AudioOutputWorld, id) + { + AudioOutputWorldNativePointer = audioOutputWorldNativePointer; + } + + public IntPtr AudioOutputWorldNativePointer { get; } + + public Position Position + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.AudioWorldOutput_GetPosition(AudioOutputWorldNativePointer); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.AudioWorldOutput_SetPosition(AudioOutputWorldNativePointer, value); + } + } + } + + public override IntPtr NativePointer => AudioOutputWorldNativePointer; +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/BaseObject.cs b/api/AltV.Net.Client/Elements/Entities/BaseObject.cs index fbf21d806..3862b4c57 100644 --- a/api/AltV.Net.Client/Elements/Entities/BaseObject.cs +++ b/api/AltV.Net.Client/Elements/Entities/BaseObject.cs @@ -13,12 +13,14 @@ public class BaseObject : SharedBaseObject, IBaseObject public override IntPtr NativePointer => BaseObjectNativePointer; public override ICore Core { get; } public override BaseObjectType Type { get; } + public uint Id { get; } - public BaseObject(ICore core, IntPtr baseObjectPointer, BaseObjectType type) + public BaseObject(ICore core, IntPtr baseObjectPointer, BaseObjectType type, uint id) { Core = core; BaseObjectNativePointer = baseObjectPointer; Type = type; + Id = id; if (baseObjectPointer == IntPtr.Zero) { @@ -38,12 +40,36 @@ public override void CheckIfEntityExists() throw new BaseObjectRemovedException(this); } - + public override void CheckIfCallIsValid() { if (Alt.CoreImpl.IsMainThread()) return; if (Monitor.IsEntered(this)) return; throw new IllegalThreadException(this); } + + public uint RemoteId + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.BaseObject_GetRemoteID(BaseObjectNativePointer); + } + } + } + + public bool IsRemote + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.BaseObject_IsRemote(BaseObjectNativePointer) == 1; + } + } + } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/Blip.cs b/api/AltV.Net.Client/Elements/Entities/Blip.cs index 62368de1f..be33b37b5 100644 --- a/api/AltV.Net.Client/Elements/Entities/Blip.cs +++ b/api/AltV.Net.Client/Elements/Entities/Blip.cs @@ -4,6 +4,7 @@ using AltV.Net.Data; using AltV.Net.Elements.Entities; using AltV.Net.Native; +using AltV.Net.Shared.Utils; namespace AltV.Net.Client.Elements.Entities { @@ -39,12 +40,12 @@ public byte BlipType unsafe { CheckIfEntityExists(); - return Core.Library.Shared.Blip_GetType(BlipNativePointer); + return Core.Library.Shared.Blip_GetBlipType(BlipNativePointer); } } } - public ushort Sprite + public uint Sprite { get { @@ -64,7 +65,7 @@ public ushort Sprite } } - public byte Color + public uint Color { get { @@ -148,7 +149,7 @@ public Vector2 ScaleXY } } - public short Display + public uint Display { get { @@ -190,7 +191,7 @@ public Rgba SecondaryColor } } - public byte Alpha + public uint Alpha { get { @@ -390,7 +391,7 @@ public bool ShortRange } } - public ushort Priority + public uint Priority { get { @@ -446,7 +447,7 @@ public string GxtName unsafe { CheckIfEntityExists(); - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(value); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(value); Core.Library.Shared.Blip_SetGxtName(BlipNativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); } @@ -469,7 +470,7 @@ public string Name unsafe { CheckIfEntityExists(); - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(value); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(value); Core.Library.Shared.Blip_SetName(BlipNativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); } @@ -596,7 +597,7 @@ public bool CrewIndicatorVisible } } - public ushort Category + public uint Category { get { @@ -656,48 +657,71 @@ public bool Shrinked } } - public bool IsRemote + public uint GameId { get { unsafe { CheckIfEntityExists(); - return Core.Library.Client.Blip_IsRemote(BlipNativePointer) == 1; + return Core.Library.Client.Blip_GetGameID(BlipNativePointer); } } } - public uint ScriptID + public bool IsStreamed { get { unsafe { CheckIfEntityExists(); - return Core.Library.Client.Blip_GetScriptID(BlipNativePointer); + return Core.Library.Client.Blip_IsStreamedIn(BlipNativePointer) == 1; } } } - public Blip(ICore core, IntPtr nativePointer) : base(core, GetWorldObjectPointer(core, nativePointer), BaseObjectType.Blip) + public bool Visible + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Blip_IsVisible(BlipNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Blip_SetVisible(BlipNativePointer, value ? (byte) 1 : (byte) 0); + } + } + } + + public Blip(ICore core, IntPtr nativePointer, uint id) : base(core, GetWorldObjectPointer(core, nativePointer), BaseObjectType.Blip, id) { BlipNativePointer = nativePointer; } - public Blip(ICore core, Position position) : this(core, core.CreatePointBlipPtr(position)) + [Obsolete("Use Alt.CreatePointBlip instead")] + public Blip(ICore core, Position position) : this(core, core.CreatePointBlipPtr(out var id, position), id) { - core.BlipPool.Add(this); + core.PoolManager.Blip.Add(this); } - public Blip(ICore core, Position position, float radius) : this(core, core.CreateRadiusBlipPtr(position, radius)) + [Obsolete("Use Alt.CreateRadiusBlip instead")] + public Blip(ICore core, Position position, float radius) : this(core, core.CreateRadiusBlipPtr(out var id, position, radius), id) { - core.BlipPool.Add(this); + core.PoolManager.Blip.Add(this); } - public Blip(ICore core, Position position, int width, int height) : this(core, core.CreateAreaBlipPtr(position, width, height)) + [Obsolete("Use Alt.CreateAreaBlip instead")] + public Blip(ICore core, Position position, int width, int height) : this(core, core.CreateAreaBlipPtr(out var id, position, width, height), id) { - core.BlipPool.Add(this); + core.PoolManager.Blip.Add(this); } public void Fade(uint opacity, uint duration) @@ -708,5 +732,85 @@ public void Fade(uint opacity, uint duration) Core.Library.Shared.Blip_Fade(BlipNativePointer, opacity, duration); } } + + public bool IsHiddenOnLegend + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Blip_IsVisible(BlipNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Blip_SetVisible(BlipNativePointer, value ? (byte) 1 : (byte) 0); + } + } + } + + public bool IsMinimalOnEdge + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Blip_IsMinimalOnEdge(BlipNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Blip_SetMinimalOnEdge(BlipNativePointer, value ? (byte) 1 : (byte) 0); + } + } + } + + public bool IsUseHeightIndicatorOnEdge + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Blip_IsUseHeightIndicatorOnEdge(BlipNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Blip_SetUseHeightIndicatorOnEdge(BlipNativePointer, value ? (byte) 1 : (byte) 0); + } + } + } + + public bool IsShortHeightThreshold + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Blip_IsShortHeightThreshold(BlipNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Blip_SetShortHeightThreshold(BlipNativePointer, value ? (byte) 1 : (byte) 0); + } + } + } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/Checkpoint.cs b/api/AltV.Net.Client/Elements/Entities/Checkpoint.cs index 2dd2ff471..6c0156a59 100644 --- a/api/AltV.Net.Client/Elements/Entities/Checkpoint.cs +++ b/api/AltV.Net.Client/Elements/Entities/Checkpoint.cs @@ -122,15 +122,72 @@ public Position NextPosition } } - public Checkpoint(ICore core, IntPtr nativePointer) : base(core, GetColShapePointer(core, nativePointer), BaseObjectType.Checkpoint) + public uint StreamingDistance + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Checkpoint_GetStreamingDistance(CheckpointNativePointer); + } + } + } + + public Checkpoint(ICore core, IntPtr nativePointer, uint id) : base(core, GetColShapePointer(core, nativePointer), BaseObjectType.Checkpoint, id) { CheckpointNativePointer = nativePointer; } - public Checkpoint(ICore core, CheckpointType type, Vector3 pos, Vector3 nextPos, float radius, float height, Rgba color) - : this(core, core.CreateCheckpointPtr(type, pos, nextPos, radius, height, color)) + [Obsolete("Use Alt.CreateCheckpoint instead")] + public Checkpoint(ICore core, CheckpointType type, Vector3 pos, Vector3 nextPos, float radius, float height, Rgba color, Rgba iconColor, uint streamingDistance) + : this(core, core.CreateCheckpointPtr(out var id, type, pos, nextPos, radius, height, color, iconColor, streamingDistance), id) + { + core.PoolManager.Checkpoint.Add(this); + } + + public bool IsStreamedIn + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.Checkpoint_IsStreamedIn(CheckpointNativePointer) == 1; + } + } + } + + public uint GameId { - core.CheckpointPool.Add(this); + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.Checkpoint_GetGameID(CheckpointNativePointer); + } + } + } + + public bool Visible + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Checkpoint_IsVisible(CheckpointNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Checkpoint_SetVisible(CheckpointNativePointer, value ? (byte)1:(byte)0); + } + } } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/ColShape.cs b/api/AltV.Net.Client/Elements/Entities/ColShape.cs index e7c1dd1b1..6ba451602 100644 --- a/api/AltV.Net.Client/Elements/Entities/ColShape.cs +++ b/api/AltV.Net.Client/Elements/Entities/ColShape.cs @@ -1,10 +1,11 @@ using System.Numerics; +using AltV.Net.Client.Elements.Interfaces; using AltV.Net.Elements.Entities; using AltV.Net.Shared.Elements.Entities; namespace AltV.Net.Client.Elements.Entities { - public abstract class ColShape : WorldObject, ISharedColShape + public class ColShape : WorldObject, IColShape { public IntPtr ColShapeNativePointer { get; } public override IntPtr NativePointer => ColShapeNativePointer; @@ -17,17 +18,17 @@ private static IntPtr GetWorldObjectPointer(ICore core, IntPtr nativePointer) } } - protected ColShape(ICore core, IntPtr nativePointer) : base(core, GetWorldObjectPointer(core, nativePointer), BaseObjectType.ColShape) + public ColShape(ICore core, IntPtr nativePointer, uint id) : base(core, GetWorldObjectPointer(core, nativePointer), BaseObjectType.ColShape, id) { ColShapeNativePointer = nativePointer; } - protected ColShape(ICore core, IntPtr nativePointer, BaseObjectType baseObjectType) : base(core, GetWorldObjectPointer(core, nativePointer), baseObjectType) + public ColShape(ICore core, IntPtr nativePointer, BaseObjectType baseObjectType, uint id) : base(core, GetWorldObjectPointer(core, nativePointer), baseObjectType, id) { ColShapeNativePointer = nativePointer; } - public bool IsEntityIdIn(ushort id) + public bool IsEntityIdIn(uint id) { CheckIfEntityExists(); diff --git a/api/AltV.Net.Client/Elements/Entities/Entity.cs b/api/AltV.Net.Client/Elements/Entities/Entity.cs index 58d7c1542..11bfc79f1 100644 --- a/api/AltV.Net.Client/Elements/Entities/Entity.cs +++ b/api/AltV.Net.Client/Elements/Entities/Entity.cs @@ -23,14 +23,11 @@ private static IntPtr GetWorldObjectPointer(ICore core, IntPtr entityPointer) public IntPtr EntityNativePointer { get; private set; } public override IntPtr NativePointer => EntityNativePointer; - public Entity(ICore core, IntPtr entityPointer, ushort id, BaseObjectType type) : base(core, GetWorldObjectPointer(core, entityPointer), type) + public Entity(ICore core, IntPtr entityPointer, uint id, BaseObjectType type) : base(core, GetWorldObjectPointer(core, entityPointer), type, id) { - Id = id; EntityNativePointer = entityPointer; } - public ushort Id { get; } - public uint Model { get @@ -52,13 +49,13 @@ public IPlayer? NetworkOwner CheckIfEntityExistsOrCached(); var ptr = Core.Library.Shared.Entity_GetNetOwner(EntityNativePointer); if (ptr == IntPtr.Zero) return null; - return Alt.Core.PlayerPool.Get(ptr); + return Alt.Core.PoolManager.Player.Get(ptr); } } } ISharedPlayer ISharedEntity.NetworkOwner => NetworkOwner!; - public int ScriptId + public uint ScriptId { get { @@ -72,40 +69,53 @@ public int ScriptId public bool Spawned => ScriptId != 0; - public Rotation Rotation + public Position Position { get + { + return base.Position; + } + set { unsafe { - CheckIfEntityExistsOrCached(); - var position = Rotation.Zero; - this.Core.Library.Shared.Entity_GetRotation(this.EntityNativePointer, &position); - return position; + CheckIfEntityExists(); + var networkOwner = this.NetworkOwner; + if (networkOwner is null || networkOwner != Alt.LocalPlayer) + { + throw new InvalidDataException("Position can only be modified by the network owner of the entity"); + } + + this.Core.Library.Shared.WorldObject_SetPosition(this.WorldObjectNativePointer, value); } } } - public void GetSyncedMetaData(string key, out MValueConst value) + public Rotation Rotation { - CheckIfEntityExists(); - unsafe + get { - var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); - value = new MValueConst(Core, Core.Library.Shared.Entity_GetSyncedMetaData(EntityNativePointer, stringPtr)); - Marshal.FreeHGlobal(stringPtr); + unsafe + { + CheckIfEntityExistsOrCached(); + var position = Rotation.Zero; + this.Core.Library.Shared.Entity_GetRotation(this.EntityNativePointer, &position); + return position; + } } - } - - public bool HasSyncedMetaData(string key) - { - CheckIfEntityExists(); - unsafe + set { - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); - var result = Core.Library.Shared.Entity_HasSyncedMetaData(EntityNativePointer, stringPtr); - Marshal.FreeHGlobal(stringPtr); - return result == 1; + unsafe + { + CheckIfEntityExists(); + var networkOwner = this.NetworkOwner; + if (networkOwner is null || networkOwner != Alt.LocalPlayer) + { + throw new InvalidDataException("Rotation can only be modified by the network owner of the entity"); + } + + this.Core.Library.Shared.Entity_SetRotation(this.EntityNativePointer, value); + } } } @@ -114,7 +124,7 @@ public void GetStreamSyncedMetaData(string key, out MValueConst value) CheckIfEntityExists(); unsafe { - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); value = new MValueConst(Core, Core.Library.Shared.Entity_GetStreamSyncedMetaData(EntityNativePointer, stringPtr)); Marshal.FreeHGlobal(stringPtr); } @@ -132,23 +142,6 @@ public bool HasStreamSyncedMetaData(string key) } } - public bool GetSyncedMetaData(string key, out T result) - { - CheckIfEntityExists(); - GetSyncedMetaData(key, out MValueConst mValue); - var obj = mValue.ToObject(); - mValue.Dispose(); - if (!(obj is T cast)) - { - result = default; - return false; - } - - result = cast; - return true; - } - - public bool GetStreamSyncedMetaData(string key, out T result) { CheckIfEntityExists(); @@ -165,58 +158,24 @@ public bool GetStreamSyncedMetaData(string key, out T result) return true; } - public bool GetSyncedMetaData(string key, out int result) - { - CheckIfEntityExists(); - GetSyncedMetaData(key, out MValueConst mValue); - using (mValue) - { - if (mValue.type != MValueConst.Type.Int) - { - result = default; - return false; - } - - result = (int) mValue.GetInt(); - } - - return true; - } - - public bool GetSyncedMetaData(string key, out uint result) + public bool Frozen { - CheckIfEntityExists(); - GetSyncedMetaData(key, out MValueConst mValue); - using (mValue) + get { - if (mValue.type != MValueConst.Type.Uint) + unsafe { - result = default; - return false; + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Entity_IsFrozen(EntityNativePointer) == 1; } - - result = (uint) mValue.GetUint(); } - - return true; - } - - public bool GetSyncedMetaData(string key, out float result) - { - CheckIfEntityExists(); - GetSyncedMetaData(key, out MValueConst mValue); - using (mValue) + set { - if (mValue.type != MValueConst.Type.Double) + unsafe { - result = default; - return false; + CheckIfEntityExists(); + Core.Library.Shared.Entity_SetFrozen(EntityNativePointer, value ? (byte) 1 : (byte) 0); } - - result = (float) mValue.GetDouble(); } - - return true; } public bool GetStreamSyncedMetaData(string key, out int result) diff --git a/api/AltV.Net.Client/Elements/Entities/Font.cs b/api/AltV.Net.Client/Elements/Entities/Font.cs new file mode 100644 index 000000000..b35fb5966 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Entities/Font.cs @@ -0,0 +1,23 @@ +using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Client.Elements.Entities; + +public class Font : BaseObject, IFont +{ + public static IntPtr GetBaseObjectNativePointer(ICore core, IntPtr fontNativePointer) + { + unsafe + { + return core.Library.Client.Font_GetBaseObject(fontNativePointer); + } + } + + public Font(ICore core, IntPtr fontNativePointer, uint id) : base(core, GetBaseObjectNativePointer(core, fontNativePointer), BaseObjectType.Font, id) + { + FontNativePointer = fontNativePointer; + } + + public IntPtr FontNativePointer { get; } + public override IntPtr NativePointer => FontNativePointer; +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/HttpClient.cs b/api/AltV.Net.Client/Elements/Entities/HttpClient.cs index baac347da..e8ea41e2a 100644 --- a/api/AltV.Net.Client/Elements/Entities/HttpClient.cs +++ b/api/AltV.Net.Client/Elements/Entities/HttpClient.cs @@ -20,14 +20,15 @@ private static IntPtr GetBaseObjectNativePointer(ICore core, IntPtr httpClientNa } } - public HttpClient(ICore core, IntPtr httpClientNativePointer) : base(core, GetBaseObjectNativePointer(core, httpClientNativePointer), BaseObjectType.HttpClient) + public HttpClient(ICore core, IntPtr httpClientNativePointer, uint id) : base(core, GetBaseObjectNativePointer(core, httpClientNativePointer), BaseObjectType.HttpClient, id) { HttpClientNativePointer = httpClientNativePointer; } - public HttpClient(ICore core) : this(core, core.CreateHttpClientPtr()) + [Obsolete("Use Alt.CreateHttpClient instead")] + public HttpClient(ICore core) : this(core, core.CreateHttpClientPtr(out var id), id) { - core.HttpClientPool.Add(this); + core.PoolManager.HttpClient.Add(this); } public void SetExtraHeader(string key, string value) diff --git a/api/AltV.Net.Client/Elements/Entities/LocalObject.cs b/api/AltV.Net.Client/Elements/Entities/LocalObject.cs new file mode 100644 index 000000000..6c3ad0cfd --- /dev/null +++ b/api/AltV.Net.Client/Elements/Entities/LocalObject.cs @@ -0,0 +1,274 @@ +using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.Data; +using AltV.Net.Elements.Entities; +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Client.Elements.Entities; + +public class LocalObject : Object, ILocalObject +{ + private static IntPtr GetObjectPointer(ICore core, IntPtr LocalObjectNativePointer) + { + unsafe + { + return core.Library.Client.LocalObject_GetObject(LocalObjectNativePointer); + } + } + + public IntPtr LocalObjectNativePointer { get; } + public override IntPtr NativePointer => LocalObjectNativePointer; + + public LocalObject(ICore core, IntPtr objectPointer, uint id) : base(core, GetObjectPointer(core, objectPointer), BaseObjectType.LocalObject, id) + { + LocalObjectNativePointer = objectPointer; + } + + public static uint GetId(IntPtr objectPointer) + { + unsafe + { + return Alt.Core.Library.Client.LocalObject_GetID(objectPointer); + } + } + + public new uint Model + { + get => base.Model; + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.LocalObject_SetModel(LocalObjectNativePointer, value); + } + } + } + + public byte Alpha + { + get => base.Alpha; + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.LocalObject_SetAlpha(LocalObjectNativePointer, value); + } + } + } + + public void ResetAlpha() + { + unsafe + { + CheckIfEntityExists(); + Alt.Core.Library.Client.LocalObject_ResetAlpha(LocalObjectNativePointer); + } + } + + public bool IsDynamic + { + get + { + unsafe + { + CheckIfEntityExists(); + return Alt.Core.Library.Client.LocalObject_IsDynamic(LocalObjectNativePointer) == 1; + } + } + } + + public ushort LodDistance + { + get => base.LodDistance; + set + { + unsafe + { + CheckIfEntityExists(); + Alt.Core.Library.Client.LocalObject_SetLodDistance(LocalObjectNativePointer, value); + } + } + } + + public bool Gravity + { + get + { + unsafe + { + CheckIfEntityExists(); + return Alt.Core.Library.Client.LocalObject_HasGravity(LocalObjectNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Alt.Core.Library.Client.LocalObject_ToggleGravity(LocalObjectNativePointer, value ? (byte)1 : (byte)0); + } + } + } + + public void AttachToEntity(ISharedEntity entity, short bone, Position position, Rotation rotation, bool useSoftPinning, + bool collision, bool fixedRotation) + { + unsafe + { + CheckIfEntityExists(); + Alt.Core.Library.Client.LocalObject_AttachToEntity(LocalObjectNativePointer, entity.EntityNativePointer, bone, position, rotation, + useSoftPinning? (byte)1 : (byte)0, collision? (byte)1 : (byte)0, fixedRotation? (byte)1 : (byte)0); + } + } + + public void AttachToEntity(uint scriptId, short bone, Position position, Rotation rotation, bool useSoftPinning, + bool collision, bool fixedRotation) + { + unsafe + { + CheckIfEntityExists(); + Alt.Core.Library.Client.LocalObject_AttachToEntity_ScriptId(LocalObjectNativePointer, scriptId, bone, position, rotation, + useSoftPinning? (byte)1 : (byte)0, collision? (byte)1 : (byte)0, fixedRotation? (byte)1 : (byte)0); + } + } + + public void Detach(bool dynamic) + { + unsafe + { + CheckIfEntityExists(); + Alt.Core.Library.Client.LocalObject_Detach(LocalObjectNativePointer, dynamic ? (byte)1 : (byte)0); + } + } + + public bool Collision + { + get + { + unsafe + { + CheckIfEntityExists(); + return Alt.Core.Library.Client.LocalObject_IsCollisionEnabled(LocalObjectNativePointer) == 1; + } + } + } + + public void ToggleCollision(bool toggle, bool keepPhysics) + { + unsafe + { + CheckIfEntityExists(); + Alt.Core.Library.Client.LocalObject_ToggleCollision(LocalObjectNativePointer, toggle ? (byte) 1 : (byte) 0, + keepPhysics ? (byte) 1 : (byte) 0); + } + } + + public void PlaceOnGroundProperly() + { + unsafe + { + CheckIfEntityExists(); + Alt.Core.Library.Client.LocalObject_PlaceOnGroundProperly(LocalObjectNativePointer); + } + } + + public void SetPositionFrozen(bool state) + { + unsafe + { + CheckIfEntityExists(); + Alt.Core.Library.Client.LocalObject_SetPositionFrozen(LocalObjectNativePointer, state ? (byte)1:(byte)0); + } + } + + public void ActivatePhysics() + { + unsafe + { + CheckIfEntityExists(); + Alt.Core.Library.Client.LocalObject_ActivatePhysics(LocalObjectNativePointer); + } + } + + public byte TextureVariation + { + get => base.TextureVariation; + set + { + unsafe + { + CheckIfEntityExists(); + Alt.Core.Library.Client.LocalObject_SetTextureVariation(LocalObjectNativePointer, value); + } + } + } + + public bool IsWorldObject + { + get + { + unsafe + { + CheckIfEntityExists(); + return Alt.Core.Library.Client.LocalObject_IsWorldObject(LocalObjectNativePointer) == 1; + } + } + } + + public uint StreamingDistance + { + get + { + unsafe + { + CheckIfEntityExists(); + return Alt.Core.Library.Client.LocalObject_GetStreamingDistance(LocalObjectNativePointer); + } + } + } + + public bool IsStreamedIn + { + get + { + unsafe + { + CheckIfEntityExists(); + return Alt.Core.Library.Client.LocalObject_IsStreamedIn(LocalObjectNativePointer) == 1; + } + } + } + + public bool UsesStreaming + { + get + { + unsafe + { + CheckIfEntityExists(); + return Alt.Core.Library.Client.LocalObject_UsesStreaming(LocalObjectNativePointer) == 1; + } + } + } + + public bool Visible + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.LocalObject_IsVisible(LocalObjectNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.LocalObject_SetVisible(LocalObjectNativePointer, value ? (byte)1:(byte)0); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/LocalPed.cs b/api/AltV.Net.Client/Elements/Entities/LocalPed.cs new file mode 100644 index 000000000..656551c2f --- /dev/null +++ b/api/AltV.Net.Client/Elements/Entities/LocalPed.cs @@ -0,0 +1,84 @@ +using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.Data; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Client.Elements.Entities; + +public class LocalPed : Ped, ILocalPed +{ + public IntPtr LocalPedNativePointer { get; } + public override IntPtr NativePointer => LocalPedNativePointer; + + private static IntPtr GetPedPointer(ICore core, IntPtr nativePointer) + { + unsafe + { + return core.Library.Client.LocalPed_GetPed(nativePointer); + } + } + + public LocalPed(ICore core, IntPtr nativePointer, uint id) : base(core, GetPedPointer(core, nativePointer), BaseObjectType.LocalVehicle, id) + { + LocalPedNativePointer = nativePointer; + } + + public uint Model + { + get + { + return base.Model; + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.LocalPed_SetModel(LocalPedNativePointer, value); + } + } + } + + public uint StreamingDistance + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.LocalPed_GetStreamingDistance(LocalPedNativePointer); + } + } + } + + public bool Visible + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.LocalPed_IsVisible(LocalPedNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.LocalPed_SetVisible(LocalPedNativePointer, value ? (byte)1:(byte)0); + } + } + } + + public bool IsStreamedIn + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.LocalPed_IsStreamedIn(LocalPedNativePointer) == 1; + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/LocalPlayer.cs b/api/AltV.Net.Client/Elements/Entities/LocalPlayer.cs index b34e9f4de..96f1ac058 100644 --- a/api/AltV.Net.Client/Elements/Entities/LocalPlayer.cs +++ b/api/AltV.Net.Client/Elements/Entities/LocalPlayer.cs @@ -15,7 +15,8 @@ private static IntPtr GetPlayerPointer(ICore core, IntPtr localPlayerPointer) } } - public LocalPlayer(ICore core, IntPtr localPlayerPointer, ushort id) : base(core, GetPlayerPointer(core, localPlayerPointer), id, BaseObjectType.LocalPlayer) + public LocalPlayer(ICore core, IntPtr localPlayerPointer, uint id) : base(core, + GetPlayerPointer(core, localPlayerPointer), id, BaseObjectType.LocalPlayer) { LocalPlayerNativePointer = localPlayerPointer; } @@ -48,7 +49,7 @@ public WeaponData GetWeaponData() unsafe { var weaponHash = Core.Library.Client.LocalPlayer_GetCurrentWeaponHash(LocalPlayerNativePointer); - return new WeaponData(Core, weaponHash); + return weaponHash == 0 ? null : new WeaponData(Core, weaponHash); } } @@ -88,7 +89,8 @@ public uint[] WeaponComponents(uint weaponHash) { uint size = 0; var weaponComponentsPtr = IntPtr.Zero; - Core.Library.Client.LocalPlayer_GetWeaponComponents(LocalPlayerNativePointer, weaponHash, &weaponComponentsPtr, &size); + Core.Library.Client.LocalPlayer_GetWeaponComponents(LocalPlayerNativePointer, weaponHash, + &weaponComponentsPtr, &size); var uintArray = new UIntArray { @@ -139,5 +141,16 @@ public float MaxStamina } } } + + public int Dimension + { + get + { + unsafe + { + return Core.Library.Shared.WorldObject_GetDimension(WorldObjectNativePointer); + } + } + } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/LocalVehicle.cs b/api/AltV.Net.Client/Elements/Entities/LocalVehicle.cs new file mode 100644 index 000000000..da9d78d49 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Entities/LocalVehicle.cs @@ -0,0 +1,86 @@ +using System.Numerics; +using AltV.Net.Client.Elements.Data; +using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.Data; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Client.Elements.Entities; + +public class LocalVehicle : Vehicle, ILocalVehicle +{ + public IntPtr LocalVehicleNativePointer { get; } + public override IntPtr NativePointer => LocalVehicleNativePointer; + + private static IntPtr GetVehiclePointer(ICore core, IntPtr nativePointer) + { + unsafe + { + return core.Library.Client.LocalVehicle_GetVehicle(nativePointer); + } + } + + public LocalVehicle(ICore core, IntPtr nativePointer, uint id) : base(core, GetVehiclePointer(core, nativePointer), BaseObjectType.LocalVehicle, id) + { + LocalVehicleNativePointer = nativePointer; + } + + public uint Model + { + get + { + return base.Model; + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.LocalVehicle_SetModel(LocalVehicleNativePointer, value); + } + } + } + + public uint StreamingDistance + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.LocalVehicle_GetStreamingDistance(LocalVehicleNativePointer); + } + } + } + + public bool Visible + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.LocalVehicle_IsVisible(LocalVehicleNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.LocalVehicle_SetVisible(LocalVehicleNativePointer, value ? (byte)1:(byte)0); + } + } + } + + public bool IsStreamedIn + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.LocalVehicle_IsStreamedIn(LocalVehicleNativePointer) == 1; + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/Marker.cs b/api/AltV.Net.Client/Elements/Entities/Marker.cs new file mode 100644 index 000000000..324f33199 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Entities/Marker.cs @@ -0,0 +1,263 @@ +using System.Numerics; +using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.Data; +using AltV.Net.Elements.Entities; +using AltV.Net.Shared.Elements.Entities; +using AltV.Net.Shared.Enums; + +namespace AltV.Net.Client.Elements.Entities; + +public class Marker : WorldObject, IMarker +{ + public static IntPtr GetWorldObjectPointer(ICore core, IntPtr nativePointer) + { + unsafe + { + return core.Library.Shared.Marker_GetWorldObject(nativePointer); + } + } + + public Marker(ICore core, IntPtr markerPointer, uint id) : base(core, GetWorldObjectPointer(core, markerPointer), BaseObjectType.Marker, id) + { + MarkerNativePointer = markerPointer; + } + + public IntPtr MarkerNativePointer { get; } + public override IntPtr NativePointer => MarkerNativePointer; + + public bool IsGlobal + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Marker_IsGlobal(MarkerNativePointer) == 1; + } + } + } + + public ISharedPlayer Target + { + get + { + unsafe + { + CheckIfEntityExists(); + var targetPointer = Core.Library.Shared.Marker_GetTarget(MarkerNativePointer); + if (targetPointer == IntPtr.Zero) return null; + return (ISharedPlayer)Core.PoolManager.Get(targetPointer, BaseObjectType.Player); + } + } + } + public Rgba Color + { + get + { + unsafe + { + CheckIfEntityExists(); + var color = Rgba.Zero; + Core.Library.Shared.Marker_GetColor(MarkerNativePointer, &color); + return color; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Marker_SetColor(MarkerNativePointer, value); + } + } + } + + + public bool Visible + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Marker_IsVisible(MarkerNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Marker_SetVisible(MarkerNativePointer, value ? (byte)1 : (byte)0); + } + } + } + + public MarkerType MarkerType + { + get + { + unsafe + { + CheckIfEntityExists(); + return (MarkerType)Core.Library.Shared.Marker_GetMarkerType(MarkerNativePointer); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Marker_SetMarkerType(MarkerNativePointer, (byte)value); + } + } + } + + public Position Scale + { + get + { + unsafe + { + CheckIfEntityExists(); + var scale = Vector3.Zero; + Core.Library.Shared.Marker_GetScale(MarkerNativePointer, &scale); + return scale; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Marker_SetScale(MarkerNativePointer, value); + } + } + } + + public Rotation Rotation + { + get + { + unsafe + { + CheckIfEntityExists(); + var directon = Rotation.Zero; + Core.Library.Shared.Marker_GetRotation(MarkerNativePointer, &directon); + return directon; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Marker_SetRotation(MarkerNativePointer, value); + } + } + } + public Position Direction + { + get + { + unsafe + { + CheckIfEntityExists(); + var directon = Vector3.Zero; + Core.Library.Shared.Marker_GetDirection(MarkerNativePointer, &directon); + return directon; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Marker_SetDirection(MarkerNativePointer, value); + } + } + } + + public uint StreamingDistance + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Marker_GetStreamingDistance(MarkerNativePointer); + } + } + } + + public bool IsFaceCamera + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Marker_IsFaceCamera(MarkerNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Marker_SetFaceCamera(MarkerNativePointer, value ? (byte)1:(byte)0); + } + } + } + + public bool IsRotating + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Marker_IsRotating(MarkerNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Marker_SetRotating(MarkerNativePointer, value ? (byte)1:(byte)0); + } + } + } + public bool IsBobUpDown + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Marker_IsBobUpDown(MarkerNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Marker_SetBobUpDown(MarkerNativePointer, value ? (byte)1:(byte)0); + } + } + } + + public bool IsStreamedIn + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.Marker_IsStreamedIn(MarkerNativePointer) == 1; + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/Object.cs b/api/AltV.Net.Client/Elements/Entities/Object.cs new file mode 100644 index 000000000..e99696774 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Entities/Object.cs @@ -0,0 +1,79 @@ +using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.Elements.Entities; +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Client.Elements.Entities; + +public class Object : Entity, IObject +{ + public IntPtr ObjectNativePointer { get; private set; } + public override IntPtr NativePointer => ObjectNativePointer; + + private static IntPtr GetEntityPointer(ICore core, IntPtr pointer) + { + unsafe + { + return core.Library.Shared.Object_GetEntity(pointer); + } + } + + public static uint GetId(IntPtr pointer) + { + unsafe + { + return Alt.Core.Library.Shared.Object_GetID(pointer); + } + } + + public Object(ICore core, IntPtr nativePointer, uint id) : base(core, GetEntityPointer(core, nativePointer), id, BaseObjectType.Object) + { + this.ObjectNativePointer = nativePointer; + } + + public Object(ICore core, IntPtr nativePointer, BaseObjectType type, uint id) : base(core, GetEntityPointer(core, nativePointer), id, type) + { + this.ObjectNativePointer = nativePointer; + } + + public byte Alpha + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Object_GetAlpha(ObjectNativePointer); + } + } + } + + public ushort LodDistance + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Object_GetLodDistance(ObjectNativePointer); + } + } + } + + public byte TextureVariation + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Object_GetTextureVariation(ObjectNativePointer); + } + } + } + + public override void SetCached(IntPtr cachedNetworkObject) + { + this.ObjectNativePointer = cachedNetworkObject; + base.SetCached(GetEntityPointer(Core, cachedNetworkObject)); + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/ObjectEntity.cs b/api/AltV.Net.Client/Elements/Entities/ObjectEntity.cs deleted file mode 100644 index 730c4703f..000000000 --- a/api/AltV.Net.Client/Elements/Entities/ObjectEntity.cs +++ /dev/null @@ -1,228 +0,0 @@ -using AltV.Net.Client.Elements.Interfaces; -using AltV.Net.Data; -using AltV.Net.Elements.Entities; -using AltV.Net.Shared.Elements.Entities; - -namespace AltV.Net.Client.Elements.Entities; - -public class ObjectEntity : Entity, IObject -{ - private static IntPtr GetEntityPointer(ICore core, IntPtr objectNativePointer) - { - unsafe - { - return core.Library.Shared.Object_GetEntity(objectNativePointer); - } - } - public IntPtr ObjectNativePointer { get; } - public override IntPtr NativePointer => ObjectNativePointer; - - public ObjectEntity(ICore core, IntPtr objectPointer, ushort id) : base(core, GetEntityPointer(core, objectPointer), id, BaseObjectType.Object) - { - ObjectNativePointer = objectPointer; - } - - public static ushort GetId(IntPtr objectPointer) - { - unsafe - { - return Alt.Core.Library.Shared.Object_GetID(objectPointer); - } - } - - public byte Alpha - { - get - { - unsafe - { - CheckIfEntityExists(); - return Core.Library.Shared.Object_GetAlpha(ObjectNativePointer); - } - } - set - { - unsafe - { - CheckIfEntityExists(); - Core.Library.Shared.Object_SetAlpha(ObjectNativePointer, value); - } - } - } - - public void ResetAlpha() - { - unsafe - { - CheckIfEntityExists(); - Alt.Core.Library.Shared.Object_ResetAlpha(ObjectNativePointer); - } - } - - public bool IsDynamic - { - get - { - unsafe - { - CheckIfEntityExists(); - return Alt.Core.Library.Shared.Object_IsDynamic(ObjectNativePointer) == 1; - } - } - } - - public ushort LodDistance - { - get - { - unsafe - { - CheckIfEntityExists(); - return Alt.Core.Library.Shared.Object_GetLodDistance(ObjectNativePointer); - } - } - set - { - unsafe - { - CheckIfEntityExists(); - Alt.Core.Library.Shared.Object_SetLodDistance(ObjectNativePointer, value); - } - } - } - - public bool Gravity - { - get - { - unsafe - { - CheckIfEntityExists(); - return Alt.Core.Library.Shared.Object_HasGravity(ObjectNativePointer) == 1; - } - } - set - { - unsafe - { - CheckIfEntityExists(); - Alt.Core.Library.Shared.Object_ToggleGravity(ObjectNativePointer, value ? (byte)1 : (byte)0); - } - } - } - - public void AttachToEntity(ISharedEntity entity, short bone, Position position, Rotation rotation, bool useSoftPinning, - bool collision, bool fixedRotation) - { - unsafe - { - CheckIfEntityExists(); - Alt.Core.Library.Shared.Object_AttachToEntity(ObjectNativePointer, entity.EntityNativePointer, bone, position, rotation, - useSoftPinning? (byte)1 : (byte)0, collision? (byte)1 : (byte)0, fixedRotation? (byte)1 : (byte)0); - } - } - - public void AttachToEntity(uint scriptId, short bone, Position position, Rotation rotation, bool useSoftPinning, - bool collision, bool fixedRotation) - { - unsafe - { - CheckIfEntityExists(); - Alt.Core.Library.Shared.Object_AttachToEntity_ScriptId(ObjectNativePointer, scriptId, bone, position, rotation, - useSoftPinning? (byte)1 : (byte)0, collision? (byte)1 : (byte)0, fixedRotation? (byte)1 : (byte)0); - } - } - - public void Detach(bool dynamic) - { - unsafe - { - CheckIfEntityExists(); - Alt.Core.Library.Shared.Object_Detach(ObjectNativePointer, dynamic ? (byte)1 : (byte)0); - } - } - - public bool Collision - { - get - { - unsafe - { - CheckIfEntityExists(); - return Alt.Core.Library.Shared.Object_IsCollisionEnabled(ObjectNativePointer) == 1; - } - } - } - - public void ToggleCollision(bool toggle, bool keepPhysics) - { - unsafe - { - CheckIfEntityExists(); - Alt.Core.Library.Shared.Object_ToggleCollision(ObjectNativePointer, toggle ? (byte) 1 : (byte) 0, - keepPhysics ? (byte) 1 : (byte) 0); - } - } - - public void PlaceOnGroundProperly() - { - unsafe - { - CheckIfEntityExists(); - Alt.Core.Library.Shared.Object_PlaceOnGroundProperly(ObjectNativePointer); - } - } - - public void ActivatePhysics() - { - unsafe - { - CheckIfEntityExists(); - Alt.Core.Library.Shared.Object_ActivatePhysics(ObjectNativePointer); - } - } - - public byte TextureVariation - { - get - { - unsafe - { - CheckIfEntityExists(); - return Alt.Core.Library.Shared.Object_GetTextureVariation(ObjectNativePointer); - } - } - set - { - unsafe - { - CheckIfEntityExists(); - Alt.Core.Library.Shared.Object_SetTextureVariation(ObjectNativePointer, value); - } - } - } - - public bool IsWorldObject - { - get - { - unsafe - { - CheckIfEntityExists(); - return Alt.Core.Library.Shared.Object_IsWorldObject(ObjectNativePointer) == 1; - } - } - } - - public bool IsRemote - { - get - { - unsafe - { - CheckIfEntityExists(); - return Alt.Core.Library.Client.Object_IsRemote(ObjectNativePointer) == 1; - } - } - } -} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/Ped.cs b/api/AltV.Net.Client/Elements/Entities/Ped.cs new file mode 100644 index 000000000..42f3fedca --- /dev/null +++ b/api/AltV.Net.Client/Elements/Entities/Ped.cs @@ -0,0 +1,83 @@ +using AltV.Net.CApi; +using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Client.Elements.Entities; + +public class Ped : Entity, IPed +{ + private static IntPtr GetEntityPointer(ICore core, IntPtr pedNativePointer) + { + unsafe + { + return core.Library.Shared.Ped_GetEntity(pedNativePointer); + } + } + + public IntPtr PedNativePointer { get; private set; } + public override IntPtr NativePointer => PedNativePointer; + + public Ped(ICore core, IntPtr pedNativePointer, uint id) : base(core, GetEntityPointer(core, pedNativePointer), id, BaseObjectType.Ped) + { + PedNativePointer = pedNativePointer; + } + + public Ped(ICore core, IntPtr pedNativePointer, BaseObjectType type, uint id) : base(core, GetEntityPointer(core, pedNativePointer), id, type) + { + PedNativePointer = pedNativePointer; + } + + public ushort Armour + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Ped_GetArmour(PedNativePointer); + } + } + } + + public ushort Health + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Ped_GetHealth(PedNativePointer); + } + } + } + + public ushort MaxHealth + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Ped_GetMaxHealth(PedNativePointer); + } + } + } + + public uint CurrentWeapon + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Ped_GetCurrentWeapon(PedNativePointer); + } + } + } + + public override void SetCached(IntPtr cachedPed) + { + this.PedNativePointer = cachedPed; + base.SetCached(GetEntityPointer(Core, cachedPed)); + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/Player.cs b/api/AltV.Net.Client/Elements/Entities/Player.cs index 418530840..36173b5da 100644 --- a/api/AltV.Net.Client/Elements/Entities/Player.cs +++ b/api/AltV.Net.Client/Elements/Entities/Player.cs @@ -20,17 +20,60 @@ private static IntPtr GetEntityPointer(ICore core, IntPtr playerNativePointer) public IntPtr PlayerNativePointer { get; private set; } public override IntPtr NativePointer => PlayerNativePointer; - public Player(ICore core, IntPtr playerPointer, ushort id) : base(core, GetEntityPointer(core, playerPointer), id, BaseObjectType.Player) + public Player(ICore core, IntPtr playerPointer, uint id) : base(core, GetEntityPointer(core, playerPointer), id, BaseObjectType.Player) { PlayerNativePointer = playerPointer; } - public Player(ICore core, IntPtr playerPointer, ushort id, BaseObjectType baseObjectType) : base(core, GetEntityPointer(core, playerPointer), id, baseObjectType) + public Player(ICore core, IntPtr playerPointer, uint id, BaseObjectType baseObjectType) : base(core, GetEntityPointer(core, playerPointer), id, baseObjectType) { PlayerNativePointer = playerPointer; } public virtual bool IsLocal => false; + public void AddFilter(IAudioFilter filter) + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.Player_AddFilter(PlayerNativePointer, filter.AudioFilterNativePointer); + } + } + + public void RemoveFilter() + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.Player_RemoveFilter(PlayerNativePointer); + } + } + + public IAudioFilter GetFilter() + { + unsafe + { + CheckIfEntityExistsOrCached(); + var ptr = Core.Library.Client.Player_GetFilter(PlayerNativePointer); + if (ptr == IntPtr.Zero) return null; + + return Alt.Core.PoolManager.AudioFilter.Get(ptr); + } + } + + public string TaskData + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + var size = 0; + return Core.PtrToStringUtf8AndFree( + Core.Library.Client.Player_GetTaskData(PlayerNativePointer, &size), size); + } + } + } public IVehicle? Vehicle { @@ -42,7 +85,7 @@ public IVehicle? Vehicle var ptr = Core.Library.Shared.Player_GetVehicle(PlayerNativePointer); if (ptr == IntPtr.Zero) return null; - return Alt.Core.VehiclePool.Get(ptr); + return Alt.Core.PoolManager.Vehicle.Get(ptr); } } } @@ -139,7 +182,7 @@ public IEntity? EntityAimingAt var ptr = this.Core.Library.Shared.Player_GetEntityAimingAt(this.PlayerNativePointer, &type); if (ptr == IntPtr.Zero) return null; - if (!Core.BaseEntityPool.Get(ptr, type, out var entity)) return null; + var entity = (IEntity)Core.PoolManager.Get(ptr, type); return entity; } } @@ -153,8 +196,8 @@ public void GetCurrentWeaponComponents(out uint[] weaponComponents) var ptr = IntPtr.Zero; uint size = 0; Core.Library.Shared.Player_GetCurrentWeaponComponents(PlayerNativePointer, &ptr, &size); - - + + var uintArray = new UIntArray { data = ptr, @@ -163,13 +206,25 @@ public void GetCurrentWeaponComponents(out uint[] weaponComponents) }; var result = uintArray.ToArray(); - + Core.Library.Shared.FreeUInt32Array(ptr); weaponComponents = result; } } + public bool IsParachuting + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return this.Core.Library.Shared.Player_IsParachuting(this.PlayerNativePointer) == 1; + } + } + } + ISharedEntity ISharedPlayer.EntityAimingAt => EntityAimingAt!; public bool IsFlashlightActive @@ -258,6 +313,62 @@ public bool IsReloading } } + public bool IsEnteringVehicle + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return this.Core.Library.Shared.Player_IsEnteringVehicle(this.PlayerNativePointer) == 1; + } + } + } + public bool IsLeavingVehicle + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return this.Core.Library.Shared.Player_IsLeavingVehicle(this.PlayerNativePointer) == 1; + } + } + } + public bool IsOnLadder + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return this.Core.Library.Shared.Player_IsOnLadder(this.PlayerNativePointer) == 1; + } + } + } + public bool IsInMelee + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return this.Core.Library.Shared.Player_IsInMelee(this.PlayerNativePointer) == 1; + } + } + } + public bool IsInCover + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return this.Core.Library.Shared.Player_IsInCover(this.PlayerNativePointer) == 1; + } + } + } + public bool IsTalking { get @@ -393,7 +504,7 @@ public float SpatialVolume } } } - + public bool IsSpawned { get diff --git a/api/AltV.Net.Client/Elements/Entities/RmlDocument.cs b/api/AltV.Net.Client/Elements/Entities/RmlDocument.cs index ccba290d5..9db98860a 100644 --- a/api/AltV.Net.Client/Elements/Entities/RmlDocument.cs +++ b/api/AltV.Net.Client/Elements/Entities/RmlDocument.cs @@ -18,14 +18,15 @@ private static IntPtr GetRmlElementPointer(ICore core, IntPtr rmlDocumentPointer public IntPtr RmlDocumentNativePointer { get; } public override IntPtr NativePointer => RmlDocumentNativePointer; - public RmlDocument(ICore core, IntPtr rmlDocumentPointer) : base(core, GetRmlElementPointer(core, rmlDocumentPointer), BaseObjectType.RmlDocument) + public RmlDocument(ICore core, IntPtr rmlDocumentPointer, uint id) : base(core, GetRmlElementPointer(core, rmlDocumentPointer), BaseObjectType.RmlDocument, id) { RmlDocumentNativePointer = rmlDocumentPointer; } - public RmlDocument(ICore core, string url) : this(core, core.CreateRmlDocumentPtr(url)) + [Obsolete("Use Alt.CreateRmlDocument instead")] + public RmlDocument(ICore core, string url) : this(core, core.CreateRmlDocumentPtr(out var id, url), id) { - core.RmlDocumentPool.Add(this); + core.PoolManager.RmlDocument.Add(this); } public IRmlElement Body @@ -36,7 +37,7 @@ public IRmlElement Body { CheckIfEntityExists(); var ptr = Core.Library.Client.RmlDocument_GetBody(RmlDocumentNativePointer); - return Core.RmlElementPool.GetOrCreate(Core, ptr); + return Core.PoolManager.RmlElement.GetOrCreate(Core, ptr); } } } @@ -108,9 +109,10 @@ public IRmlElement CreateElement(string tag) { CheckIfEntityExists(); var strPtr = MemoryUtils.StringToHGlobalUtf8(tag); - var ptr = Core.Library.Client.RmlDocument_CreateElement(RmlDocumentNativePointer, strPtr); + uint id = default; + var ptr = Core.Library.Client.RmlDocument_CreateElement(RmlDocumentNativePointer, strPtr, &id); Marshal.FreeHGlobal(strPtr); - return Core.RmlElementPool.Create(Core, ptr); + return Core.PoolManager.RmlElement.Create(Core, ptr, id); } } @@ -120,9 +122,11 @@ public IRmlElement CreateTextNode(string text) { CheckIfEntityExists(); var strPtr = MemoryUtils.StringToHGlobalUtf8(text); - var ptr = Core.Library.Client.RmlDocument_CreateTextNode(RmlDocumentNativePointer, strPtr); + + uint id = default; + var ptr = Core.Library.Client.RmlDocument_CreateTextNode(RmlDocumentNativePointer, strPtr, &id); Marshal.FreeHGlobal(strPtr); - return Core.RmlElementPool.Create(Core, ptr); + return Core.PoolManager.RmlElement.Create(Core, ptr, id); } } diff --git a/api/AltV.Net.Client/Elements/Entities/RmlElement.cs b/api/AltV.Net.Client/Elements/Entities/RmlElement.cs index 61e9b9b47..c7dde5eea 100644 --- a/api/AltV.Net.Client/Elements/Entities/RmlElement.cs +++ b/api/AltV.Net.Client/Elements/Entities/RmlElement.cs @@ -19,12 +19,12 @@ private static IntPtr GetBaseObjectPointer(ICore core, IntPtr rmlElementPointer) public IntPtr RmlElementNativePointer { get; } public override IntPtr NativePointer => RmlElementNativePointer; - public RmlElement(ICore core, IntPtr rmlElementPointer) : base(core, GetBaseObjectPointer(core, rmlElementPointer), BaseObjectType.RmlDocument) + public RmlElement(ICore core, IntPtr rmlElementPointer, uint id) : base(core, GetBaseObjectPointer(core, rmlElementPointer), BaseObjectType.RmlDocument, id) { RmlElementNativePointer = rmlElementPointer; } - public RmlElement(ICore core, IntPtr rmlElementPointer, BaseObjectType baseObjectType) : base(core, GetBaseObjectPointer(core, rmlElementPointer), baseObjectType) + public RmlElement(ICore core, IntPtr rmlElementPointer, BaseObjectType baseObjectType, uint id) : base(core, GetBaseObjectPointer(core, rmlElementPointer), baseObjectType, id) { RmlElementNativePointer = rmlElementPointer; } @@ -103,7 +103,7 @@ public IRmlElement[] ChildNodes Core.Library.Client.RmlElement_GetChildNodes(RmlElementNativePointer, &ptr, &size); var data = new IntPtr[size]; Marshal.Copy(ptr, data, 0, (int) size); - var arr = data.Select(e => Core.RmlElementPool.GetOrCreate(Core, e)).ToArray(); + var arr = data.Select(e => Core.PoolManager.RmlElement.GetOrCreate(Core, e)).ToArray(); Core.Library.Client.FreeRmlElementArray(ptr); return arr; } @@ -181,7 +181,7 @@ public IRmlElement FirstChild CheckIfEntityExists(); var ptr = Core.Library.Client.RmlElement_GetFirstChild(RmlElementNativePointer); if (ptr == IntPtr.Zero) return null; - return Core.RmlElementPool.GetOrCreate(Core, ptr); + return Core.PoolManager.RmlElement.GetOrCreate(Core, ptr); } } } @@ -195,7 +195,7 @@ public IRmlElement FocusedElement CheckIfEntityExists(); var ptr = Core.Library.Client.RmlElement_GetFocusedElement(RmlElementNativePointer); if (ptr == IntPtr.Zero) return null; - return Core.RmlElementPool.GetOrCreate(Core, ptr); + return Core.PoolManager.RmlElement.GetOrCreate(Core, ptr); } } } @@ -212,7 +212,7 @@ public bool HasChildren } } - public string Id + public string RmlId { get { @@ -220,7 +220,7 @@ public string Id { CheckIfEntityExists(); var size = 0; - return Core.PtrToStringUtf8AndFree(Core.Library.Client.RmlElement_GetId(RmlElementNativePointer, &size), size); + return Core.PtrToStringUtf8AndFree(Core.Library.Client.RmlElement_GetRmlId(RmlElementNativePointer, &size), size); } } set @@ -229,7 +229,7 @@ public string Id { CheckIfEntityExists(); var strPtr = MemoryUtils.StringToHGlobalUtf8(value); - Core.Library.Client.RmlElement_SetId(RmlElementNativePointer, strPtr); + Core.Library.Client.RmlElement_SetRmlID(RmlElementNativePointer, strPtr); Marshal.FreeHGlobal(strPtr); } } @@ -291,7 +291,7 @@ public IRmlElement LastChild CheckIfEntityExists(); var ptr = Core.Library.Client.RmlElement_GetLastChild(RmlElementNativePointer); if (ptr == IntPtr.Zero) return null; - return Core.RmlElementPool.GetOrCreate(Core, ptr); + return Core.PoolManager.RmlElement.GetOrCreate(Core, ptr); } } } @@ -305,7 +305,7 @@ public IRmlElement NextSibling CheckIfEntityExists(); var ptr = Core.Library.Client.RmlElement_GetNextSibling(RmlElementNativePointer); if (ptr == IntPtr.Zero) return null; - return Core.RmlElementPool.GetOrCreate(Core, ptr); + return Core.PoolManager.RmlElement.GetOrCreate(Core, ptr); } } } @@ -319,7 +319,7 @@ public IRmlElement PreviousSibling CheckIfEntityExists(); var ptr = Core.Library.Client.RmlElement_GetPreviousSibling(RmlElementNativePointer); if (ptr == IntPtr.Zero) return null; - return Core.RmlElementPool.GetOrCreate(Core, ptr); + return Core.PoolManager.RmlElement.GetOrCreate(Core, ptr); } } } @@ -379,7 +379,7 @@ public IRmlDocument OwnerDocument unsafe { CheckIfEntityExists(); - return Core.RmlDocumentPool.GetOrCreate(Core, Core.Library.Client.RmlElement_GetOwnerDocument(RmlElementNativePointer)); + return Core.PoolManager.RmlDocument.GetOrCreate(Core, Core.Library.Client.RmlElement_GetOwnerDocument(RmlElementNativePointer)); } } } @@ -393,7 +393,7 @@ public IRmlElement Parent CheckIfEntityExists(); var ptr = Core.Library.Client.RmlElement_GetParent(RmlElementNativePointer); if (ptr == IntPtr.Zero) return null; - return Core.RmlElementPool.GetOrCreate(Core, ptr); + return Core.PoolManager.RmlElement.GetOrCreate(Core, ptr); } } } @@ -545,7 +545,7 @@ public IRmlElement GetClosest(string selector) var result = Core.Library.Client.RmlElement_GetClosest(RmlElementNativePointer, strPtr); Marshal.FreeHGlobal(strPtr); if (result == IntPtr.Zero) return null; - return Core.RmlElementPool.GetOrCreate(Core, result); + return Core.PoolManager.RmlElement.GetOrCreate(Core, result); } } @@ -609,7 +609,7 @@ public IRmlElement GetElementById(string id) var result = Core.Library.Client.RmlElement_GetElementById(RmlElementNativePointer, strPtr); Marshal.FreeHGlobal(strPtr); if (result == IntPtr.Zero) return null; - return Core.RmlElementPool.GetOrCreate(Core, result); + return Core.PoolManager.RmlElement.GetOrCreate(Core, result); } } @@ -624,7 +624,7 @@ public IRmlElement[] GetElementsByClassName(string className) Core.Library.Client.RmlElement_GetElementsByClassName(RmlElementNativePointer, strPtr, &ptr, &size); var data = new IntPtr[size]; Marshal.Copy(ptr, data, 0, (int) size); - var arr = data.Select(e => Core.RmlElementPool.GetOrCreate(Core, e)).ToArray(); + var arr = data.Select(e => Core.PoolManager.RmlElement.GetOrCreate(Core, e)).ToArray(); Marshal.FreeHGlobal(strPtr); Core.Library.Client.FreeRmlElementArray(ptr); return arr; @@ -642,7 +642,7 @@ public IRmlElement[] GetElementsByTagName(string tagName) Core.Library.Client.RmlElement_GetElementsByTagName(RmlElementNativePointer, strPtr, &ptr, &size); var data = new IntPtr[size]; Marshal.Copy(ptr, data, 0, (int) size); - var arr = data.Select(e => Core.RmlElementPool.GetOrCreate(Core, e)).ToArray(); + var arr = data.Select(e => Core.PoolManager.RmlElement.GetOrCreate(Core, e)).ToArray(); Marshal.FreeHGlobal(strPtr); Core.Library.Client.FreeRmlElementArray(ptr); return arr; @@ -787,7 +787,7 @@ public IRmlElement QuerySelector(string selector) var result = Core.Library.Client.RmlElement_QuerySelector(RmlElementNativePointer, strPtr); Marshal.FreeHGlobal(strPtr); if (result == IntPtr.Zero) return null; - return Core.RmlElementPool.GetOrCreate(Core, result); + return Core.PoolManager.RmlElement.GetOrCreate(Core, result); } } @@ -802,7 +802,7 @@ public IRmlElement[] QuerySelectorAll(string selector) Core.Library.Client.RmlElement_QuerySelectorAll(RmlElementNativePointer, strPtr, &ptr, &size); var data = new IntPtr[size]; Marshal.Copy(ptr, data, 0, (int) size); - var arr = data.Select(e => Core.RmlElementPool.GetOrCreate(Core, e)).ToArray(); + var arr = data.Select(e => Core.PoolManager.RmlElement.GetOrCreate(Core, e)).ToArray(); Core.Library.Client.FreeRmlElementArray(ptr); return arr; } diff --git a/api/AltV.Net.Client/Elements/Entities/TextLabel.cs b/api/AltV.Net.Client/Elements/Entities/TextLabel.cs new file mode 100644 index 000000000..641149b46 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Entities/TextLabel.cs @@ -0,0 +1,177 @@ +using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.Data; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Client.Elements.Entities; + +public class TextLabel : WorldObject, ITextLabel +{ + public static IntPtr GetWorldObjectPointer(ICore core, IntPtr nativePointer) + { + unsafe + { + return core.Library.Shared.TextLabel_GetWorldObject(nativePointer); + } + } + + public TextLabel(ICore core, IntPtr worldObjectPointer, uint id) : base(core, + GetWorldObjectPointer(core, worldObjectPointer), BaseObjectType.TextLabel, id) + { + TextLabelNativePointer = worldObjectPointer; + } + + public IntPtr TextLabelNativePointer { get; } + public override IntPtr NativePointer => TextLabelNativePointer; + + public bool IsGlobal + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.TextLabel_IsGlobal(TextLabelNativePointer) == 1; + } + } + } + + public IPlayer Target + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + var entityPointer = Core.Library.Shared.TextLabel_GetTarget(TextLabelNativePointer); + if (entityPointer == IntPtr.Zero) return null; + return Core.PoolManager.Player.Get(entityPointer); + } + } + } + + public Rgba Color + { + get + { + unsafe + { + CheckIfEntityExists(); + var color = Rgba.Zero; + Core.Library.Shared.TextLabel_GetColor(TextLabelNativePointer, &color); + return color; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.TextLabel_SetColor(TextLabelNativePointer, value); + } + } + } + + public bool Visible + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.TextLabel_IsVisible(TextLabelNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.TextLabel_SetVisible(TextLabelNativePointer, (byte) (value ? 1 : 0)); + } + } + } + + public float Scale + { + get + { + unsafe + { + return Core.Library.Shared.TextLabel_GetScale(TextLabelNativePointer); + } + } + set + { + unsafe + { + Core.Library.Shared.TextLabel_SetScale(TextLabelNativePointer, value); + } + } + } + + public Rotation Rotation + { + get + { + unsafe + { + CheckIfEntityExists(); + var directon = Rotation.Zero; + Core.Library.Shared.TextLabel_GetRotation(TextLabelNativePointer, &directon); + return directon; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.TextLabel_SetRotation(TextLabelNativePointer, value); + } + } + } + + public uint StreamingDistance + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.TextLabel_GetStreamingDistance(TextLabelNativePointer); + } + } + } + + public bool IsStreamedIn + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Client.TextLabel_IsStreamedIn(TextLabelNativePointer) == 1; + } + } + } + + public bool IsFacingCamera + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.TextLabel_IsFacingCamera(TextLabelNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.TextLabel_SetFaceCamera(TextLabelNativePointer, value ? (byte) 1 : (byte) 0); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/Vehicle.cs b/api/AltV.Net.Client/Elements/Entities/Vehicle.cs index 89c0a8631..e1221cae9 100644 --- a/api/AltV.Net.Client/Elements/Entities/Vehicle.cs +++ b/api/AltV.Net.Client/Elements/Entities/Vehicle.cs @@ -1,4 +1,4 @@ -using System.Numerics; +using System.Numerics; using AltV.Net.Client.Elements.Data; using AltV.Net.Client.Elements.Interfaces; using AltV.Net.Elements.Entities; @@ -18,7 +18,12 @@ private static IntPtr GetEntityPointer(ICore core, IntPtr vehicleNativePointer) public IntPtr VehicleNativePointer { get; private set; } public override IntPtr NativePointer => VehicleNativePointer; - public Vehicle(ICore core, IntPtr vehiclePointer, ushort id) : base(core, GetEntityPointer(core, vehiclePointer), id, BaseObjectType.Vehicle) + public Vehicle(ICore core, IntPtr vehiclePointer, uint id) : base(core, GetEntityPointer(core, vehiclePointer), id, BaseObjectType.Vehicle) + { + VehicleNativePointer = vehiclePointer; + } + + public Vehicle(ICore core, IntPtr vehiclePointer, BaseObjectType type, uint id) : base(core, GetEntityPointer(core, vehiclePointer), id, type) { VehicleNativePointer = vehiclePointer; } @@ -93,6 +98,14 @@ public float Rpm return Core.Library.Client.Vehicle_GetCurrentRPM(VehicleNativePointer); } } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.Vehicle_SetCurrentRPM(VehicleNativePointer, value); + } + } } public float OilLevel @@ -329,6 +342,26 @@ public int PetrolTankHealth } } + public float SteeringAngle + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Vehicle_GetSteeringAngle(VehicleNativePointer); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.Vehicle_SetSteeringAngle(VehicleNativePointer, value); + } + } + } + public void ResetDashboardLights() { unsafe @@ -480,6 +513,26 @@ public void SetWheelTyreWidth(byte wheel, float value) } } + public float SuspensionHeight + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Client.Vehicle_GetSuspensionHeight(VehicleNativePointer); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.Vehicle_SetSuspensionHeight(VehicleNativePointer, value); + } + } + } + public override void SetCached(IntPtr cachedVehicle) { this.VehicleNativePointer = cachedVehicle; diff --git a/api/AltV.Net.Client/Elements/Entities/VirtualEntity.cs b/api/AltV.Net.Client/Elements/Entities/VirtualEntity.cs new file mode 100644 index 000000000..02e129062 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Entities/VirtualEntity.cs @@ -0,0 +1,179 @@ +using System.Runtime.InteropServices; +using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.Data; +using AltV.Net.Elements.Args; +using AltV.Net.Elements.Entities; +using AltV.Net.Shared.Elements.Entities; +using AltV.Net.Shared.Utils; + +namespace AltV.Net.Client.Elements.Entities; + +public class VirtualEntity : WorldObject, IVirtualEntity +{ + public IntPtr VirtualEntityNativePointer { get; } + public override IntPtr NativePointer => VirtualEntityNativePointer; + + public static IntPtr GetWorldObjectPointer(ICore core, IntPtr virtualEntityNativePointer) + { + unsafe + { + return core.Library.Shared.VirtualEntity_GetWorldObject(virtualEntityNativePointer); + } + } + + public VirtualEntity(ICore core, IntPtr virtualEntityNativePointer, uint id) : base(core, GetWorldObjectPointer(core, virtualEntityNativePointer), BaseObjectType.VirtualEntity, id) + { + VirtualEntityNativePointer = virtualEntityNativePointer; + } + + public uint Id + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.VirtualEntity_GetID(VirtualEntityNativePointer); + } + } + } + + public ISharedVirtualEntityGroup Group + { + get + { + unsafe + { + CheckIfEntityExists(); + var groupPointer = Core.Library.Shared.VirtualEntity_GetGroup(VirtualEntityNativePointer); + if (groupPointer == IntPtr.Zero) return null; + return (ISharedVirtualEntityGroup)Core.PoolManager.Get(groupPointer, BaseObjectType.VirtualEntity); + } + } + } + + public bool HasStreamSyncedMetaData(string key) + { + unsafe + { + CheckIfEntityExists(); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); + var result = Core.Library.Shared.VirtualEntity_HasStreamSyncedMetaData(VirtualEntityNativePointer, stringPtr); + Marshal.FreeHGlobal(stringPtr); + return result == 1; + } + } + + public bool GetStreamSyncedMetaData(string key, out int result) + { + CheckIfEntityExists(); + GetStreamSyncedMetaData(key, out MValueConst mValue); + using (mValue) + { + if (mValue.type != MValueConst.Type.Int) + { + result = default; + return false; + } + + result = (int) mValue.GetInt(); + } + + return true; + } + + public bool GetStreamSyncedMetaData(string key, out uint result) + { + CheckIfEntityExists(); + GetStreamSyncedMetaData(key, out MValueConst mValue); + using (mValue) + { + if (mValue.type != MValueConst.Type.Uint) + { + result = default; + return false; + } + + result = (uint) mValue.GetUint(); + } + + return true; + } + + public bool GetStreamSyncedMetaData(string key, out float result) + { + CheckIfEntityExists(); + GetStreamSyncedMetaData(key, out MValueConst mValue); + using (mValue) + { + if (mValue.type != MValueConst.Type.Double) + { + result = default; + return false; + } + + result = (float) mValue.GetDouble(); + } + + return true; + } + + public bool GetStreamSyncedMetaData(string key, out T result) + { + CheckIfEntityExists(); + GetStreamSyncedMetaData(key, out MValueConst mValue); + var obj = mValue.ToObject(); + mValue.Dispose(); + if (!(obj is T cast)) + { + result = default; + return false; + } + + result = cast; + return true; + } + + public void GetStreamSyncedMetaData(string key, out MValueConst value) + { + CheckIfEntityExists(); + unsafe + { + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); + value = new MValueConst(Core, Core.Library.Shared.VirtualEntity_GetStreamSyncedMetaData(VirtualEntityNativePointer, stringPtr)); + Marshal.FreeHGlobal(stringPtr); + } + } + + public uint StreamingDistance + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.VirtualEntity_GetStreamingDistance(VirtualEntityNativePointer); + } + } + } + + public bool Visible + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.VirtualEntity_IsVisible(VirtualEntityNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.VirtualEntity_SetVisible(VirtualEntityNativePointer, value ? (byte)1:(byte)0); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/VirtualEntityGroup.cs b/api/AltV.Net.Client/Elements/Entities/VirtualEntityGroup.cs new file mode 100644 index 000000000..238be46b1 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Entities/VirtualEntityGroup.cs @@ -0,0 +1,48 @@ +using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Client.Elements.Entities; + +public class VirtualEntityGroup : BaseObject, IVirtualEntityGroup +{ + + public IntPtr VirtualEntityGroupNativePointer { get; } + public override IntPtr NativePointer => VirtualEntityGroupNativePointer; + + public static IntPtr GetBaseObjectNativePointer(ICore core, IntPtr virtualEntityGroupNativePointer) + { + unsafe + { + return core.Library.Shared.VirtualEntityGroup_GetBaseObject(virtualEntityGroupNativePointer); + } + } + + public VirtualEntityGroup(ICore core, IntPtr virtualEntityGroupNativePointer, uint id) : base(core, GetBaseObjectNativePointer(core, virtualEntityGroupNativePointer), BaseObjectType.VirtualEntityGroup, id) + { + VirtualEntityGroupNativePointer = virtualEntityGroupNativePointer; + } + + public uint Id + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.VirtualEntityGroup_GetID(VirtualEntityGroupNativePointer); + } + } + } + + public uint MaxEntitiesInStream + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.VirtualEntityGroup_GetMaxEntitiesInStream(VirtualEntityGroupNativePointer); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Entities/WebSocketClient.cs b/api/AltV.Net.Client/Elements/Entities/WebSocketClient.cs index 1f1ad2079..c8a094cf9 100644 --- a/api/AltV.Net.Client/Elements/Entities/WebSocketClient.cs +++ b/api/AltV.Net.Client/Elements/Entities/WebSocketClient.cs @@ -19,17 +19,17 @@ private static IntPtr GetBaseObjectNativePointer(ICore core, IntPtr webSocketCli } } - public WebSocketClient(ICore core, IntPtr webSocketClientNativePointer) : base(core, GetBaseObjectNativePointer(core, webSocketClientNativePointer), BaseObjectType.WebsocketClient) + public WebSocketClient(ICore core, IntPtr webSocketClientNativePointer, uint id) : base(core, GetBaseObjectNativePointer(core, webSocketClientNativePointer), BaseObjectType.WebsocketClient, id) { WebSocketClientNativePointer = webSocketClientNativePointer; } - public WebSocketClient(ICore core, string url) : this(core, core.CreateWebSocketClientPtr(url)) + [Obsolete("Use Alt.CreateWebSocketClient instead")] + public WebSocketClient(ICore core, string url) : this(core, core.CreateWebSocketClientPtr(out var id, url), id) { - core.WebSocketClientPool.Add(this); + core.PoolManager.WebSocketClient.Add(this); } - public bool AutoReconnect { get diff --git a/api/AltV.Net.Client/Elements/Entities/WebView.cs b/api/AltV.Net.Client/Elements/Entities/WebView.cs index f9759d206..28b39fe7d 100644 --- a/api/AltV.Net.Client/Elements/Entities/WebView.cs +++ b/api/AltV.Net.Client/Elements/Entities/WebView.cs @@ -22,21 +22,23 @@ private static IntPtr GetBaseObjectPointer(ICore core, IntPtr webViewNativePoint public IntPtr WebViewNativePointer { get; } public override IntPtr NativePointer => WebViewNativePointer; - public WebView(ICore core, IntPtr webViewNativePointer) : base(core, GetBaseObjectPointer(core, webViewNativePointer), BaseObjectType.Webview) + public WebView(ICore core, IntPtr webViewNativePointer, uint id) : base(core, GetBaseObjectPointer(core, webViewNativePointer), BaseObjectType.Webview, id) { WebViewNativePointer = webViewNativePointer; } + [Obsolete("Use Alt.CreateWebView instead")] public WebView(ICore core, string url, bool isOverlay = false, Vector2? pos = null, Vector2? size = null) - : this(core, core.CreateWebViewPtr(url, isOverlay, pos, size)) + : this(core, core.CreateWebViewPtr(out var id, url, isOverlay, pos, size), id) { - core.WebViewPool.Add(this); + core.PoolManager.WebView.Add(this); } + [Obsolete("Use Alt.CreateWebView instead")] public WebView(ICore core, string url, uint propHash, string targetTexture) - : this(core, core.CreateWebViewPtr(url, propHash, targetTexture)) + : this(core, core.CreateWebViewPtr(out var id,url, propHash, targetTexture), id) { - core.WebViewPool.Add(this); + core.PoolManager.WebView.Add(this); } public bool Focused @@ -193,7 +195,7 @@ public void Unfocus() private void TriggerWebviewEvent(string eventName, MValueConst[] args) { - var eventNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(eventName); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); TriggerWebviewEvent(eventNamePtr, args); Marshal.FreeHGlobal(eventNamePtr); } @@ -212,7 +214,7 @@ private void TriggerWebviewEvent(IntPtr eventNamePtr, MValueConst[] args) private void TriggerWebviewEvent(string eventName, IntPtr[] args) { - var eventNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(eventName); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); TriggerWebviewEvent(eventNamePtr, args); Marshal.FreeHGlobal(eventNamePtr); } @@ -239,6 +241,36 @@ public void Emit(string eventName, params object[] args) } } + public void AddOutput(IAudioOutput ouput) + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.WebView_AddOutput(WebViewNativePointer, ouput.AudioOutputNativePointer); + } + } + + public void RemoveOutput(IAudioOutput ouput) + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Client.WebView_RemoveOutput(WebViewNativePointer, ouput.AudioOutputNativePointer); + } + } + + public List GetOutputs() + { + unsafe + { + CheckIfEntityExists(); + var mvalue = new MValueConst(Core, MValueConst.Type.List, Core.Library.Client.WebView_GetOutputs(WebViewNativePointer)); + var mList = mvalue.GetList(); + + return mList.Select(mValueConst => Core.PoolManager.AudioOutput.Get(mValueConst.nativePointer)).ToList(); + } + } + #endregion } diff --git a/api/AltV.Net.Client/Elements/Entities/WorldObject.cs b/api/AltV.Net.Client/Elements/Entities/WorldObject.cs index 3d5ce8e82..be6fb2add 100644 --- a/api/AltV.Net.Client/Elements/Entities/WorldObject.cs +++ b/api/AltV.Net.Client/Elements/Entities/WorldObject.cs @@ -19,7 +19,7 @@ private static IntPtr GetBaseObjectPointer(ICore core, IntPtr worldObjectPointer public IntPtr WorldObjectNativePointer { get; private set; } public override IntPtr NativePointer => WorldObjectNativePointer; - public WorldObject(ICore core, IntPtr worldObjectPointer, BaseObjectType type) : base(core, GetBaseObjectPointer(core, worldObjectPointer), type) + public WorldObject(ICore core, IntPtr worldObjectPointer, BaseObjectType type, uint id) : base(core, GetBaseObjectPointer(core, worldObjectPointer), type, id) { WorldObjectNativePointer = worldObjectPointer; } @@ -36,6 +36,34 @@ public Position Position return position; } } + set + { + unsafe + { + CheckIfEntityExists(); + this.Core.Library.Shared.WorldObject_SetPosition(this.WorldObjectNativePointer, value); + } + } + } + + public int Dimension + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return this.Core.Library.Shared.WorldObject_GetDimension(this.WorldObjectNativePointer); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + this.Core.Library.Shared.WorldObject_SetDimension(this.WorldObjectNativePointer, value); + } + } } public override void CheckIfEntityExists() diff --git a/api/AltV.Net.Client/Elements/Factories/AudioFactory.cs b/api/AltV.Net.Client/Elements/Factories/AudioFactory.cs index 62e78c87e..9e46ab96e 100644 --- a/api/AltV.Net.Client/Elements/Factories/AudioFactory.cs +++ b/api/AltV.Net.Client/Elements/Factories/AudioFactory.cs @@ -5,9 +5,9 @@ namespace AltV.Net.Client.Elements.Factories { public class AudioFactory : IBaseObjectFactory { - public IAudio Create(ICore core, IntPtr blipPointer) + public IAudio Create(ICore core, IntPtr blipPointer, uint id) { - return new Audio(core, blipPointer); + return new Audio(core, blipPointer, id); } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/AudioFilterFactory.cs b/api/AltV.Net.Client/Elements/Factories/AudioFilterFactory.cs new file mode 100644 index 000000000..47509682c --- /dev/null +++ b/api/AltV.Net.Client/Elements/Factories/AudioFilterFactory.cs @@ -0,0 +1,13 @@ +using AltV.Net.Client.Elements.Entities; +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Factories +{ + public class AudioFilterFactory : IBaseObjectFactory + { + public IAudioFilter Create(ICore core, IntPtr pointer, uint id) + { + return new AudioFilter(core, pointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/AudioOutputAttachedFactory.cs b/api/AltV.Net.Client/Elements/Factories/AudioOutputAttachedFactory.cs new file mode 100644 index 000000000..e31e9cc42 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Factories/AudioOutputAttachedFactory.cs @@ -0,0 +1,13 @@ +using AltV.Net.Client.Elements.Entities; +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Factories +{ + public class AudioOutputAttachedFactory : IBaseObjectFactory + { + public IAudioOutputAttached Create(ICore core, IntPtr pointer, uint id) + { + return new AudioOutputAttached(core, pointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/AudioOutputFactory.cs b/api/AltV.Net.Client/Elements/Factories/AudioOutputFactory.cs new file mode 100644 index 000000000..67df94122 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Factories/AudioOutputFactory.cs @@ -0,0 +1,13 @@ +using AltV.Net.Client.Elements.Entities; +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Factories +{ + public class AudioOutputFactory : IBaseObjectFactory + { + public IAudioOutput Create(ICore core, IntPtr pointer, uint id) + { + return new AudioOutput(core, pointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/AudioOutputFrontendFactory.cs b/api/AltV.Net.Client/Elements/Factories/AudioOutputFrontendFactory.cs new file mode 100644 index 000000000..11db3c889 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Factories/AudioOutputFrontendFactory.cs @@ -0,0 +1,13 @@ +using AltV.Net.Client.Elements.Entities; +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Factories +{ + public class AudioOutputFrontendFactory : IBaseObjectFactory + { + public IAudioOutputFrontend Create(ICore core, IntPtr pointer, uint id) + { + return new AudioOutputFrontend(core, pointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/AudioOutputWorldFactory.cs b/api/AltV.Net.Client/Elements/Factories/AudioOutputWorldFactory.cs new file mode 100644 index 000000000..65ae29213 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Factories/AudioOutputWorldFactory.cs @@ -0,0 +1,13 @@ +using AltV.Net.Client.Elements.Entities; +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Factories +{ + public class AudioOutputWorldFactory : IBaseObjectFactory + { + public IAudioOutputWorld Create(ICore core, IntPtr pointer, uint id) + { + return new AudioOutputWorld(core, pointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/BlipFactory.cs b/api/AltV.Net.Client/Elements/Factories/BlipFactory.cs index 92e781676..6d02b3eec 100644 --- a/api/AltV.Net.Client/Elements/Factories/BlipFactory.cs +++ b/api/AltV.Net.Client/Elements/Factories/BlipFactory.cs @@ -5,9 +5,9 @@ namespace AltV.Net.Client.Elements.Factories { public class BlipFactory : IBaseObjectFactory { - public IBlip Create(ICore core, IntPtr blipPointer) + public IBlip Create(ICore core, IntPtr blipPointer, uint id) { - return new Blip(core, blipPointer); + return new Blip(core, blipPointer, id); } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/CheckpointFactory.cs b/api/AltV.Net.Client/Elements/Factories/CheckpointFactory.cs index 1ab9658b0..3ab004e7b 100644 --- a/api/AltV.Net.Client/Elements/Factories/CheckpointFactory.cs +++ b/api/AltV.Net.Client/Elements/Factories/CheckpointFactory.cs @@ -5,9 +5,9 @@ namespace AltV.Net.Client.Elements.Factories { public class CheckpointFactory : IBaseObjectFactory { - public ICheckpoint Create(ICore core, IntPtr blipPointer) + public ICheckpoint Create(ICore core, IntPtr blipPointer, uint id) { - return new Checkpoint(core, blipPointer); + return new Checkpoint(core, blipPointer, id); } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/ColShapeFactory.cs b/api/AltV.Net.Client/Elements/Factories/ColShapeFactory.cs new file mode 100644 index 000000000..7cb6457db --- /dev/null +++ b/api/AltV.Net.Client/Elements/Factories/ColShapeFactory.cs @@ -0,0 +1,13 @@ +using AltV.Net.Client.Elements.Entities; +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Factories +{ + public class ColShapeFactory : IBaseObjectFactory + { + public IColShape Create(ICore core, IntPtr blipPointer, uint id) + { + return new ColShape(core, blipPointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/FontFactory.cs b/api/AltV.Net.Client/Elements/Factories/FontFactory.cs new file mode 100644 index 000000000..38b7e3b4f --- /dev/null +++ b/api/AltV.Net.Client/Elements/Factories/FontFactory.cs @@ -0,0 +1,13 @@ +using AltV.Net.Client.Elements.Entities; +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Factories +{ + public class FontFactory : IBaseObjectFactory + { + public IFont Create(ICore core, IntPtr pointer, uint id) + { + return new Font(core, pointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/HttpClientFactory.cs b/api/AltV.Net.Client/Elements/Factories/HttpClientFactory.cs index e9b4f9cdb..17eded85b 100644 --- a/api/AltV.Net.Client/Elements/Factories/HttpClientFactory.cs +++ b/api/AltV.Net.Client/Elements/Factories/HttpClientFactory.cs @@ -5,9 +5,9 @@ namespace AltV.Net.Client.Elements.Factories { public class HttpClientFactory : IBaseObjectFactory { - public IHttpClient Create(ICore core, IntPtr nativePointer) + public IHttpClient Create(ICore core, IntPtr nativePointer, uint id) { - return new HttpClient(core, nativePointer); + return new HttpClient(core, nativePointer, id); } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/IEntityFactory.cs b/api/AltV.Net.Client/Elements/Factories/IEntityFactory.cs index 8a6ee49f1..06465dcda 100644 --- a/api/AltV.Net.Client/Elements/Factories/IEntityFactory.cs +++ b/api/AltV.Net.Client/Elements/Factories/IEntityFactory.cs @@ -4,6 +4,6 @@ namespace AltV.Net.Client.Elements.Factories { public interface IEntityFactory where TEntity : IEntity { - TEntity Create(ICore core, IntPtr entityPointer, ushort id); + TEntity Create(ICore core, IntPtr entityPointer, uint id); } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/IPlayerFactory.cs b/api/AltV.Net.Client/Elements/Factories/IPlayerFactory.cs index 4e1be96f5..83c900872 100644 --- a/api/AltV.Net.Client/Elements/Factories/IPlayerFactory.cs +++ b/api/AltV.Net.Client/Elements/Factories/IPlayerFactory.cs @@ -4,6 +4,6 @@ namespace AltV.Net.Client.Elements.Factories { public interface IPlayerFactory : IEntityFactory { - public ILocalPlayer GetLocalPlayer(ICore core, IntPtr localPlayerPointer, ushort id); + public ILocalPlayer GetLocalPlayer(ICore core, IntPtr localPlayerPointer, uint id); } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/LocalObjectFactory.cs b/api/AltV.Net.Client/Elements/Factories/LocalObjectFactory.cs new file mode 100644 index 000000000..f2d5ff6cf --- /dev/null +++ b/api/AltV.Net.Client/Elements/Factories/LocalObjectFactory.cs @@ -0,0 +1,13 @@ +using AltV.Net.Client.Elements.Entities; +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Factories +{ + public class LocalObjectFactory : IEntityFactory + { + public ILocalObject Create(ICore core, IntPtr objectPointer, uint id) + { + return new LocalObject(core, objectPointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/LocalPedFactory.cs b/api/AltV.Net.Client/Elements/Factories/LocalPedFactory.cs new file mode 100644 index 000000000..8da6b5a81 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Factories/LocalPedFactory.cs @@ -0,0 +1,13 @@ +using AltV.Net.Client.Elements.Entities; +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Factories +{ + public class LocalPedFactory : IBaseObjectFactory + { + public ILocalPed Create(ICore core, IntPtr blipPointer, uint id) + { + return new LocalPed(core, blipPointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/LocalVehicleFactory.cs b/api/AltV.Net.Client/Elements/Factories/LocalVehicleFactory.cs new file mode 100644 index 000000000..cff0e97af --- /dev/null +++ b/api/AltV.Net.Client/Elements/Factories/LocalVehicleFactory.cs @@ -0,0 +1,13 @@ +using AltV.Net.Client.Elements.Entities; +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Factories +{ + public class LocalVehicleFactory : IBaseObjectFactory + { + public ILocalVehicle Create(ICore core, IntPtr blipPointer, uint id) + { + return new LocalVehicle(core, blipPointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/MarkerFactory.cs b/api/AltV.Net.Client/Elements/Factories/MarkerFactory.cs new file mode 100644 index 000000000..af67c0f8c --- /dev/null +++ b/api/AltV.Net.Client/Elements/Factories/MarkerFactory.cs @@ -0,0 +1,13 @@ +using AltV.Net.Client.Elements.Entities; +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Factories +{ + public class MarkerFactory : IBaseObjectFactory + { + public IMarker Create(ICore core, IntPtr markerPointer, uint id) + { + return new Marker(core, markerPointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/ObjectFactory.cs b/api/AltV.Net.Client/Elements/Factories/ObjectFactory.cs index 97295321f..5a7121e18 100644 --- a/api/AltV.Net.Client/Elements/Factories/ObjectFactory.cs +++ b/api/AltV.Net.Client/Elements/Factories/ObjectFactory.cs @@ -5,9 +5,9 @@ namespace AltV.Net.Client.Elements.Factories { public class ObjectFactory : IEntityFactory { - public IObject Create(ICore core, IntPtr objectPointer, ushort id) + public IObject Create(ICore core, IntPtr objectPointer, uint id) { - return new ObjectEntity(core, objectPointer, id); + return new Entities.Object(core, objectPointer, id); } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/PedFactory.cs b/api/AltV.Net.Client/Elements/Factories/PedFactory.cs new file mode 100644 index 000000000..7819fce1d --- /dev/null +++ b/api/AltV.Net.Client/Elements/Factories/PedFactory.cs @@ -0,0 +1,12 @@ +using AltV.Net.Client.Elements.Entities; +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Factories; + +public class PedFactory : IEntityFactory +{ + public IPed Create(ICore core, IntPtr pedPointer, uint id) + { + return new Ped(core, pedPointer, id); + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/PlayerFactory.cs b/api/AltV.Net.Client/Elements/Factories/PlayerFactory.cs index acd9740fd..e62640b2b 100644 --- a/api/AltV.Net.Client/Elements/Factories/PlayerFactory.cs +++ b/api/AltV.Net.Client/Elements/Factories/PlayerFactory.cs @@ -5,12 +5,12 @@ namespace AltV.Net.Client.Elements.Factories { public class PlayerFactory : IPlayerFactory { - public IPlayer Create(ICore core, IntPtr playerPointer, ushort id) + public IPlayer Create(ICore core, IntPtr playerPointer, uint id) { return new Player(core, playerPointer, id); } - public ILocalPlayer GetLocalPlayer(ICore core, IntPtr localPlayerPointer, ushort id) + public ILocalPlayer GetLocalPlayer(ICore core, IntPtr localPlayerPointer, uint id) { return new LocalPlayer(core, localPlayerPointer, id); } diff --git a/api/AltV.Net.Client/Elements/Factories/RmlDocumentFactory.cs b/api/AltV.Net.Client/Elements/Factories/RmlDocumentFactory.cs index 573ed84c4..5909fb67d 100644 --- a/api/AltV.Net.Client/Elements/Factories/RmlDocumentFactory.cs +++ b/api/AltV.Net.Client/Elements/Factories/RmlDocumentFactory.cs @@ -5,9 +5,9 @@ namespace AltV.Net.Client.Elements.Factories { public class RmlDocumentFactory : IBaseObjectFactory { - public IRmlDocument Create(ICore core, IntPtr blipPointer) + public IRmlDocument Create(ICore core, IntPtr blipPointer, uint id) { - return new RmlDocument(core, blipPointer); + return new RmlDocument(core, blipPointer, id); } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/RmlElementFactory.cs b/api/AltV.Net.Client/Elements/Factories/RmlElementFactory.cs index 6e6bba94f..41dfedeba 100644 --- a/api/AltV.Net.Client/Elements/Factories/RmlElementFactory.cs +++ b/api/AltV.Net.Client/Elements/Factories/RmlElementFactory.cs @@ -5,9 +5,9 @@ namespace AltV.Net.Client.Elements.Factories { public class RmlElementFactory : IBaseObjectFactory { - public IRmlElement Create(ICore core, IntPtr blipPointer) + public IRmlElement Create(ICore core, IntPtr blipPointer, uint id) { - return new RmlElement(core, blipPointer); + return new RmlElement(core, blipPointer, id); } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/TextLabelFactory.cs b/api/AltV.Net.Client/Elements/Factories/TextLabelFactory.cs new file mode 100644 index 000000000..b09799e7f --- /dev/null +++ b/api/AltV.Net.Client/Elements/Factories/TextLabelFactory.cs @@ -0,0 +1,13 @@ +using AltV.Net.Client.Elements.Entities; +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Factories +{ + public class TextLabelFactory : IBaseObjectFactory + { + public ITextLabel Create(ICore core, IntPtr blipPointer, uint id) + { + return new TextLabel(core, blipPointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/VehicleFactory.cs b/api/AltV.Net.Client/Elements/Factories/VehicleFactory.cs index 5aeebf4f5..dd46edd0a 100644 --- a/api/AltV.Net.Client/Elements/Factories/VehicleFactory.cs +++ b/api/AltV.Net.Client/Elements/Factories/VehicleFactory.cs @@ -5,7 +5,7 @@ namespace AltV.Net.Client.Elements.Factories { public class VehicleFactory : IEntityFactory { - public IVehicle Create(ICore core, IntPtr vehiclePointer, ushort id) + public IVehicle Create(ICore core, IntPtr vehiclePointer, uint id) { return new Vehicle(core, vehiclePointer, id); } diff --git a/api/AltV.Net.Client/Elements/Factories/VirtualEntityFactory.cs b/api/AltV.Net.Client/Elements/Factories/VirtualEntityFactory.cs new file mode 100644 index 000000000..8d2ebe7be --- /dev/null +++ b/api/AltV.Net.Client/Elements/Factories/VirtualEntityFactory.cs @@ -0,0 +1,13 @@ +using AltV.Net.Client.Elements.Entities; +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Factories +{ + public class VirtualEntityFactory : IBaseObjectFactory + { + public IVirtualEntity Create(ICore core, IntPtr virtualEntityPointer, uint id) + { + return new VirtualEntity(core, virtualEntityPointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/VirtualEntityGroupFactory.cs b/api/AltV.Net.Client/Elements/Factories/VirtualEntityGroupFactory.cs new file mode 100644 index 000000000..cdf383e1e --- /dev/null +++ b/api/AltV.Net.Client/Elements/Factories/VirtualEntityGroupFactory.cs @@ -0,0 +1,13 @@ +using AltV.Net.Client.Elements.Entities; +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Factories +{ + public class VirtualEntityGroupFactory : IBaseObjectFactory + { + public IVirtualEntityGroup Create(ICore core, IntPtr virtualEntityGroupPointer, uint id) + { + return new VirtualEntityGroup(core, virtualEntityGroupPointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/WebSocketClientFactory.cs b/api/AltV.Net.Client/Elements/Factories/WebSocketClientFactory.cs index 46dddbabf..845e9cfdc 100644 --- a/api/AltV.Net.Client/Elements/Factories/WebSocketClientFactory.cs +++ b/api/AltV.Net.Client/Elements/Factories/WebSocketClientFactory.cs @@ -5,9 +5,9 @@ namespace AltV.Net.Client.Elements.Factories { public class WebSocketClientFactory : IBaseObjectFactory { - public IWebSocketClient Create(ICore core, IntPtr nativePointer) + public IWebSocketClient Create(ICore core, IntPtr nativePointer, uint id) { - return new WebSocketClient(core, nativePointer); + return new WebSocketClient(core, nativePointer, id); } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Factories/WebViewFactory.cs b/api/AltV.Net.Client/Elements/Factories/WebViewFactory.cs index 9b7f85fa8..882d43f04 100644 --- a/api/AltV.Net.Client/Elements/Factories/WebViewFactory.cs +++ b/api/AltV.Net.Client/Elements/Factories/WebViewFactory.cs @@ -5,9 +5,9 @@ namespace AltV.Net.Client.Elements.Factories { public class WebViewFactory : IBaseObjectFactory { - public IWebView Create(ICore core, IntPtr blipPointer) + public IWebView Create(ICore core, IntPtr blipPointer, uint id) { - return new WebView(core, blipPointer); + return new WebView(core, blipPointer, id); } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/IAudio.cs b/api/AltV.Net.Client/Elements/Interfaces/IAudio.cs index ef507a9fc..426156941 100644 --- a/api/AltV.Net.Client/Elements/Interfaces/IAudio.cs +++ b/api/AltV.Net.Client/Elements/Interfaces/IAudio.cs @@ -5,18 +5,14 @@ namespace AltV.Net.Client.Elements.Interfaces public interface IAudio : IBaseObject { IntPtr AudioNativePointer { get; } - uint AudioCategory { get; set; } bool Looped { get; set; } float Volume { get; set; } string Source { get; set; } double CurrentTime { get; } - bool FrontendPlay { get; } double MaxTime { get; } - bool Playing { get; } - void AddOutput(uint scriptId); - void AddOutput(IEntity entity); - void RemoveOutput(uint scriptId); - void RemoveOutput(IEntity entity); + bool IsPlaying { get; } + void AddOutput(AudioOutput audioOutput); + void RemoveOutput(AudioOutput audioOutput); AudioEntity[] GetOutputs(); void Pause(); void Play(); diff --git a/api/AltV.Net.Client/Elements/Interfaces/IAudioFilter.cs b/api/AltV.Net.Client/Elements/Interfaces/IAudioFilter.cs new file mode 100644 index 000000000..358cda146 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Interfaces/IAudioFilter.cs @@ -0,0 +1,24 @@ +namespace AltV.Net.Client.Elements.Interfaces; + +public interface IAudioFilter : IBaseObject +{ + IntPtr AudioFilterNativePointer { get; } + uint Hash { get; } + uint AudCategory { get; set; } + + uint AddRotateEffect(float fRate, int priority); + uint AddVolumeEffect(float fVolume, int priority); + uint AddPeakeqEffect(int lBand, float fBandwidth, float fQ, float fCenter, float fGain, int priority); + uint AddDampEffect(float fTarget, float fQuiet, float fRate, float fGain, float fDelay, int priority); + uint AddAutowahEffect(float fDryMix, float fWetMix, float fFeedback, float fRate, float fRange, float fFreq, int priority); + uint AddPhaserEffect(float fDryMix, float fWetMix, float fFeedback, float fRate, float fRange, float fFreq, int priority); + uint AddChorusEffect(float fDryMix, float fWetMix, float fFeedback, float fMinSweep, float fMaxSweep, float fRate, int priority); + uint AddDistortionEffect(float fDrive, float fDryMix, float fWetMix, float fFeedback, float fVolume, int priority); + uint AddCompressor2Effect(float fGain, float fThreshold, float fRatio, float fAttack, float fRelease, int priority); + uint AddBqfEffect(int lFilter, float fCenter, float fGain, float fBandwidth, float fQ, float fS, int priority); + uint AddEcho4Effect(float fDryMix, float fWetMix, float fFeedback, float fDelay, int priority); + uint AddPitchshiftEffect(float fPitchShift, float fSemitones, long lFFTsize, long lOsamp, int priority); + uint AddFreeverbEffect(float fDryMix, float fWetMix, float fRoomSize, float fDamp, float fWidth, uint lMode, int priority); + + bool RemoveEffect(uint effect); +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/IAudioOutput.cs b/api/AltV.Net.Client/Elements/Interfaces/IAudioOutput.cs new file mode 100644 index 000000000..1bcb6cf2d --- /dev/null +++ b/api/AltV.Net.Client/Elements/Interfaces/IAudioOutput.cs @@ -0,0 +1,18 @@ +using AltV.Net.Client.Elements.Entities; + +namespace AltV.Net.Client.Elements.Interfaces +{ + public interface IAudioOutput : IBaseObject + { + IntPtr AudioOutputNativePointer { get; } + float Volume { get; set; } + bool IsMuted { get; set; } + + uint Category { get; } + IAudio Owner { get; } + + void AddFilter(IAudioFilter filter); + void RemoveFilter(); + IAudioFilter? Filter { get; } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/IAudioOutputAttached.cs b/api/AltV.Net.Client/Elements/Interfaces/IAudioOutputAttached.cs new file mode 100644 index 000000000..d593eec53 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Interfaces/IAudioOutputAttached.cs @@ -0,0 +1,10 @@ +using AltV.Net.Data; + +namespace AltV.Net.Client.Elements.Interfaces; + +public interface IAudioOutputAttached : IAudioOutput +{ + IntPtr AudioOutputAttachedNativePointer { get; } + + IWorldObject Entity { get; set; } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/IAudioOutputFrontend.cs b/api/AltV.Net.Client/Elements/Interfaces/IAudioOutputFrontend.cs new file mode 100644 index 000000000..af1454990 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Interfaces/IAudioOutputFrontend.cs @@ -0,0 +1,6 @@ +namespace AltV.Net.Client.Elements.Interfaces; + +public interface IAudioOutputFrontend : IAudioOutput +{ + IntPtr AudioOutputFrontendNativePointer { get; } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/IAudioOutputWorld.cs b/api/AltV.Net.Client/Elements/Interfaces/IAudioOutputWorld.cs new file mode 100644 index 000000000..ff1edee42 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Interfaces/IAudioOutputWorld.cs @@ -0,0 +1,10 @@ +using AltV.Net.Data; + +namespace AltV.Net.Client.Elements.Interfaces; + +public interface IAudioOutputWorld : IAudioOutput +{ + IntPtr AudioOutputWorldNativePointer { get; } + + Position Position { get; set; } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/IBaseObject.cs b/api/AltV.Net.Client/Elements/Interfaces/IBaseObject.cs index ca276ecdb..c963b2b41 100644 --- a/api/AltV.Net.Client/Elements/Interfaces/IBaseObject.cs +++ b/api/AltV.Net.Client/Elements/Interfaces/IBaseObject.cs @@ -1,4 +1,4 @@ -using AltV.Net.Shared.Elements.Entities; +using AltV.Net.Shared.Elements.Entities; namespace AltV.Net.Client.Elements.Interfaces { @@ -8,5 +8,7 @@ public interface IBaseObject : ISharedBaseObject [Obsolete("Use Destroy() instead")] public void Remove(); public void Destroy(); + uint RemoteId { get; } + bool IsRemote { get; } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/IBlip.cs b/api/AltV.Net.Client/Elements/Interfaces/IBlip.cs index 7c4ca8769..a65ecf55d 100644 --- a/api/AltV.Net.Client/Elements/Interfaces/IBlip.cs +++ b/api/AltV.Net.Client/Elements/Interfaces/IBlip.cs @@ -4,7 +4,7 @@ namespace AltV.Net.Client.Elements.Interfaces { public interface IBlip : ISharedBlip, IWorldObject { - bool IsRemote { get; } - uint ScriptID { get; } + uint GameId { get; } + bool IsStreamed { get; } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/ICheckpoint.cs b/api/AltV.Net.Client/Elements/Interfaces/ICheckpoint.cs index bf1ddd734..a5f70fa4b 100644 --- a/api/AltV.Net.Client/Elements/Interfaces/ICheckpoint.cs +++ b/api/AltV.Net.Client/Elements/Interfaces/ICheckpoint.cs @@ -4,5 +4,7 @@ namespace AltV.Net.Client.Elements.Interfaces { public interface ICheckpoint : ISharedCheckpoint, IWorldObject { + bool IsStreamedIn { get; } + uint GameId { get; } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/IColShape.cs b/api/AltV.Net.Client/Elements/Interfaces/IColShape.cs new file mode 100644 index 000000000..baa1e91c2 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Interfaces/IColShape.cs @@ -0,0 +1,8 @@ +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Client.Elements.Interfaces +{ + public interface IColShape : ISharedColShape, IWorldObject + { + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/IEntity.cs b/api/AltV.Net.Client/Elements/Interfaces/IEntity.cs index 33c7626cc..f6ad0e989 100644 --- a/api/AltV.Net.Client/Elements/Interfaces/IEntity.cs +++ b/api/AltV.Net.Client/Elements/Interfaces/IEntity.cs @@ -1,11 +1,15 @@ -using AltV.Net.Shared.Elements.Entities; +using AltV.Net.Data; +using AltV.Net.Shared.Elements.Entities; namespace AltV.Net.Client.Elements.Interfaces { public interface IEntity : ISharedEntity, IWorldObject { new IPlayer? NetworkOwner { get; } - int ScriptId { get; } + uint ScriptId { get; } bool Spawned { get; } + + new Position Position { get; set; } + new Rotation Rotation { get; set; } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/IFont.cs b/api/AltV.Net.Client/Elements/Interfaces/IFont.cs new file mode 100644 index 000000000..ea7982c92 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Interfaces/IFont.cs @@ -0,0 +1,6 @@ +namespace AltV.Net.Client.Elements.Interfaces; + +public interface IFont : IBaseObject +{ + IntPtr FontNativePointer { get; } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/ILocalObject.cs b/api/AltV.Net.Client/Elements/Interfaces/ILocalObject.cs new file mode 100644 index 000000000..8ff6bbadd --- /dev/null +++ b/api/AltV.Net.Client/Elements/Interfaces/ILocalObject.cs @@ -0,0 +1,38 @@ +using System.Numerics; +using AltV.Net.Client.Elements.Data; +using AltV.Net.Data; +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Client.Elements.Interfaces +{ + public interface ILocalObject : IEntity + { + new uint Model { get; set; } + IntPtr LocalObjectNativePointer { get; } + byte Alpha { get; set; } + void ResetAlpha(); + bool IsDynamic { get; } + ushort LodDistance { get; set; } + bool Gravity { get; set; } + void AttachToEntity(ISharedEntity entity, short bone, Position position, Rotation rotation, bool useSoftPinning, bool collision, bool fixedRotation); + void AttachToEntity(uint scriptId, short bone, Position position, Rotation rotation, bool useSoftPinning, bool collision, bool fixedRotation); + void Detach(bool dynamic); + bool Collision { get; } + void ToggleCollision(bool toggle, bool keepPhysics); + void PlaceOnGroundProperly(); + void SetPositionFrozen(bool state); + void ActivatePhysics(); + byte TextureVariation { get; set; } + + /// + /// true = Created by GTA, false = Created by API + /// + bool IsWorldObject { get; } + + uint StreamingDistance { get; } + + bool Visible { get; set; } + bool IsStreamedIn { get; } + bool UsesStreaming { get; } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/ILocalPed.cs b/api/AltV.Net.Client/Elements/Interfaces/ILocalPed.cs new file mode 100644 index 000000000..36ed2576f --- /dev/null +++ b/api/AltV.Net.Client/Elements/Interfaces/ILocalPed.cs @@ -0,0 +1,13 @@ +using AltV.Net.Client.Elements.Entities; +using AltV.Net.Data; +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Client.Elements.Interfaces; + +public interface ILocalPed : IPed +{ + new uint Model { get; set; } + uint StreamingDistance { get; } + bool Visible { get; set; } + bool IsStreamedIn { get; } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/ILocalPlayer.cs b/api/AltV.Net.Client/Elements/Interfaces/ILocalPlayer.cs index 52b135891..0705c6fbf 100644 --- a/api/AltV.Net.Client/Elements/Interfaces/ILocalPlayer.cs +++ b/api/AltV.Net.Client/Elements/Interfaces/ILocalPlayer.cs @@ -1,4 +1,5 @@ -using AltV.Net.Client.Elements.Data; +using AltV.Net.Data; +using WeaponData = AltV.Net.Client.Elements.Data.WeaponData; namespace AltV.Net.Client.Elements.Interfaces { @@ -19,5 +20,7 @@ public interface ILocalPlayer : IPlayer float Stamina { get; set; } float MaxStamina { get; set; } + + int Dimension { get; } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/ILocalVehicle.cs b/api/AltV.Net.Client/Elements/Interfaces/ILocalVehicle.cs new file mode 100644 index 000000000..4897a7b53 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Interfaces/ILocalVehicle.cs @@ -0,0 +1,15 @@ +using System.Numerics; +using AltV.Net.Client.Elements.Data; +using AltV.Net.Client.Elements.Entities; +using AltV.Net.Data; +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Client.Elements.Interfaces; + +public interface ILocalVehicle : IVehicle +{ + new uint Model { get; set; } + uint StreamingDistance { get; } + bool Visible { get; set; } + bool IsStreamedIn { get; } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/IMarker.cs b/api/AltV.Net.Client/Elements/Interfaces/IMarker.cs new file mode 100644 index 000000000..abf8b0aad --- /dev/null +++ b/api/AltV.Net.Client/Elements/Interfaces/IMarker.cs @@ -0,0 +1,8 @@ +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Client.Elements.Interfaces; + +public interface IMarker : ISharedMarker, IWorldObject +{ + bool IsStreamedIn { get; } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/IObject.cs b/api/AltV.Net.Client/Elements/Interfaces/IObject.cs index cd1fc7cef..8750df326 100644 --- a/api/AltV.Net.Client/Elements/Interfaces/IObject.cs +++ b/api/AltV.Net.Client/Elements/Interfaces/IObject.cs @@ -1,11 +1,8 @@ -using System.Numerics; -using AltV.Net.Client.Elements.Data; -using AltV.Net.Shared.Elements.Entities; +using AltV.Net.Shared.Elements.Entities; -namespace AltV.Net.Client.Elements.Interfaces +namespace AltV.Net.Client.Elements.Interfaces; + +public interface IObject : ISharedObject, IEntity { - public interface IObject : ISharedObject, IEntity - { - bool IsRemote { get; } - } + } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/IPed.cs b/api/AltV.Net.Client/Elements/Interfaces/IPed.cs new file mode 100644 index 000000000..c2082b3d9 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Interfaces/IPed.cs @@ -0,0 +1,8 @@ +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Client.Elements.Interfaces; + +public interface IPed : ISharedPed, IEntity +{ + +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/IPlayer.cs b/api/AltV.Net.Client/Elements/Interfaces/IPlayer.cs index f2d256433..eab170e52 100644 --- a/api/AltV.Net.Client/Elements/Interfaces/IPlayer.cs +++ b/api/AltV.Net.Client/Elements/Interfaces/IPlayer.cs @@ -11,5 +11,11 @@ public interface IPlayer : ISharedPlayer, IEntity float NonSpatialVolume { get; set; } float SpatialVolume { get; set; } bool IsLocal { get; } + + void AddFilter(IAudioFilter filter); + void RemoveFilter(); + IAudioFilter GetFilter(); + + string TaskData { get; } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/IRmlElement.cs b/api/AltV.Net.Client/Elements/Interfaces/IRmlElement.cs index f05a3340e..6048ab6e4 100644 --- a/api/AltV.Net.Client/Elements/Interfaces/IRmlElement.cs +++ b/api/AltV.Net.Client/Elements/Interfaces/IRmlElement.cs @@ -19,7 +19,7 @@ public interface IRmlElement : IBaseObject IRmlElement FirstChild { get; } IRmlElement FocusedElement { get; } bool HasChildren { get; } - string Id { get; set; } + string RmlId { get; set; } string InnerRml { get; set; } bool IsOwned { get; } bool IsVisible { get; } diff --git a/api/AltV.Net.Client/Elements/Interfaces/ITextLabel.cs b/api/AltV.Net.Client/Elements/Interfaces/ITextLabel.cs new file mode 100644 index 000000000..57c3d3982 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Interfaces/ITextLabel.cs @@ -0,0 +1,20 @@ +using AltV.Net.Data; + +namespace AltV.Net.Client.Elements.Interfaces; + +public interface ITextLabel : IWorldObject +{ + IntPtr TextLabelNativePointer { get; } + + uint Id { get; } + bool IsGlobal { get; } + IPlayer? Target { get; } + Rgba Color { get; set; } + bool Visible { get; set; } + float Scale { get; set; } + Rotation Rotation { get; set; } + uint StreamingDistance { get; } + bool IsStreamedIn { get; } + + bool IsFacingCamera { get; set; } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/IVehicle.cs b/api/AltV.Net.Client/Elements/Interfaces/IVehicle.cs index ab564a07a..79212c461 100644 --- a/api/AltV.Net.Client/Elements/Interfaces/IVehicle.cs +++ b/api/AltV.Net.Client/Elements/Interfaces/IVehicle.cs @@ -1,4 +1,4 @@ -using System.Numerics; +using System.Numerics; using AltV.Net.Client.Elements.Data; using AltV.Net.Shared.Elements.Entities; @@ -9,7 +9,7 @@ public interface IVehicle : ISharedVehicle, IEntity ushort Gear { get; set; } byte IndicatorLights { get; set; } ushort MaxGear { get; set; } - float Rpm { get; } + float Rpm { get; set; } float OilLevel { get; set; } float EngineTemperature { get; set; } float FuelLevel { get; set; } @@ -41,5 +41,9 @@ public interface IVehicle : ISharedVehicle, IEntity void SetWheelRimRadius(byte wheel, float value); float GetWheelTyreWidth(byte wheel); void SetWheelTyreWidth(byte wheel, float value); + + new float SteeringAngle { get; set; } + + float SuspensionHeight { get; set; } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/IVirtualEntity.cs b/api/AltV.Net.Client/Elements/Interfaces/IVirtualEntity.cs new file mode 100644 index 000000000..d70d63049 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Interfaces/IVirtualEntity.cs @@ -0,0 +1,7 @@ +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Client.Elements.Interfaces; + +public interface IVirtualEntity : ISharedVirtualEntity, IWorldObject +{ +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/IVirtualEntityGroup.cs b/api/AltV.Net.Client/Elements/Interfaces/IVirtualEntityGroup.cs new file mode 100644 index 000000000..25af8034c --- /dev/null +++ b/api/AltV.Net.Client/Elements/Interfaces/IVirtualEntityGroup.cs @@ -0,0 +1,8 @@ +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Client.Elements.Interfaces; + +public interface IVirtualEntityGroup : ISharedVirtualEntityGroup, IBaseObject +{ + +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Interfaces/IWebView.cs b/api/AltV.Net.Client/Elements/Interfaces/IWebView.cs index ea5cb7be7..7b5672c48 100644 --- a/api/AltV.Net.Client/Elements/Interfaces/IWebView.cs +++ b/api/AltV.Net.Client/Elements/Interfaces/IWebView.cs @@ -17,5 +17,9 @@ public interface IWebView : IBaseObject void Focus(); void Unfocus(); void Emit(string eventName, params object[] args); + + void AddOutput(IAudioOutput ouput); + void RemoveOutput(IAudioOutput ouput); + List GetOutputs(); } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/AudioFilterPool.cs b/api/AltV.Net.Client/Elements/Pools/AudioFilterPool.cs new file mode 100644 index 000000000..7c9e5d0b1 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Pools/AudioFilterPool.cs @@ -0,0 +1,19 @@ +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Pools +{ + public class AudioFilterPool : BaseObjectPool + { + public AudioFilterPool(IBaseObjectFactory factory) : base(factory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.AudioFilter_GetID(entityPointer); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/AudioOutputAttachedPool.cs b/api/AltV.Net.Client/Elements/Pools/AudioOutputAttachedPool.cs new file mode 100644 index 000000000..e0d629730 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Pools/AudioOutputAttachedPool.cs @@ -0,0 +1,19 @@ +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Pools +{ + public class AudioOutputAttachedPool : BaseObjectPool + { + public AudioOutputAttachedPool(IBaseObjectFactory factory) : base(factory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.AudioAttachedOutput_GetID(entityPointer); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/AudioOutputFrontendPool.cs b/api/AltV.Net.Client/Elements/Pools/AudioOutputFrontendPool.cs new file mode 100644 index 000000000..1e45ff696 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Pools/AudioOutputFrontendPool.cs @@ -0,0 +1,19 @@ +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Pools +{ + public class AudioOutputFrontendPool : BaseObjectPool + { + public AudioOutputFrontendPool(IBaseObjectFactory factory) : base(factory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.AudioFrontendOutput_GetID(entityPointer); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/AudioOutputPool.cs b/api/AltV.Net.Client/Elements/Pools/AudioOutputPool.cs new file mode 100644 index 000000000..975c4c2e8 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Pools/AudioOutputPool.cs @@ -0,0 +1,19 @@ +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Pools +{ + public class AudioOutputPool : BaseObjectPool + { + public AudioOutputPool(IBaseObjectFactory factory) : base(factory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.AudioOutput_GetID(entityPointer); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/AudioOutputWorldPool.cs b/api/AltV.Net.Client/Elements/Pools/AudioOutputWorldPool.cs new file mode 100644 index 000000000..95e199307 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Pools/AudioOutputWorldPool.cs @@ -0,0 +1,19 @@ +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Pools +{ + public class AudioOutputWorldPool : BaseObjectPool + { + public AudioOutputWorldPool(IBaseObjectFactory factory) : base(factory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.AudioWorldOutput_GetID(entityPointer); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/AudioPool.cs b/api/AltV.Net.Client/Elements/Pools/AudioPool.cs index d2fbe7ef7..9824c9ebf 100644 --- a/api/AltV.Net.Client/Elements/Pools/AudioPool.cs +++ b/api/AltV.Net.Client/Elements/Pools/AudioPool.cs @@ -7,5 +7,13 @@ public class AudioPool : BaseObjectPool public AudioPool(IBaseObjectFactory audioFactory) : base(audioFactory) { } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.Audio_GetID(entityPointer); + } + } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/BaseBaseObjectPool.cs b/api/AltV.Net.Client/Elements/Pools/BaseBaseObjectPool.cs deleted file mode 100644 index 96cef1b97..000000000 --- a/api/AltV.Net.Client/Elements/Pools/BaseBaseObjectPool.cs +++ /dev/null @@ -1,136 +0,0 @@ -using AltV.Net.Client.Elements.Interfaces; -using AltV.Net.Elements.Entities; -using AltV.Net.Shared; -using AltV.Net.Shared.Elements.Entities; - -namespace AltV.Net.Client.Elements.Pools -{ - public class BaseBaseObjectPool : IBaseBaseObjectPool - { - private readonly IEntityPool playerPool; - - private readonly IEntityPool vehiclePool; - private readonly IBaseObjectPool blipPool; - private readonly IBaseObjectPool checkpointPool; - private readonly IBaseObjectPool audioPool; - private readonly IBaseObjectPool httpClientPool; - private readonly IBaseObjectPool webSocketClientPool; - private readonly IBaseObjectPool webViewPool; - private readonly IBaseObjectPool rmlElementPool; - private readonly IBaseObjectPool rmlDocumentPool; - private readonly IEntityPool objectPool; - - public BaseBaseObjectPool( - IEntityPool playerPool, - IEntityPool vehiclePool, - IBaseObjectPool blipPool, - IBaseObjectPool checkpointPool, - IBaseObjectPool audioPool, - IBaseObjectPool httpClientPool, - IBaseObjectPool webSocketClientPool, - IBaseObjectPool webViewPool, - IBaseObjectPool rmlElementPool, - IBaseObjectPool rmlDocumentPool, - IEntityPool objectPool - ) - { - this.playerPool = playerPool; - this.vehiclePool = vehiclePool; - this.blipPool = blipPool; - this.checkpointPool = checkpointPool; - this.audioPool = audioPool; - this.httpClientPool = httpClientPool; - this.webSocketClientPool = webSocketClientPool; - this.webViewPool = webViewPool; - this.rmlElementPool = rmlElementPool; - this.rmlDocumentPool = rmlDocumentPool; - this.objectPool = objectPool; - } - - public IBaseObject? Get(IntPtr entityPointer, BaseObjectType baseObjectType) - { - return baseObjectType switch - { - BaseObjectType.LocalPlayer => playerPool.Get(entityPointer), - BaseObjectType.Player => playerPool.Get(entityPointer), - BaseObjectType.Vehicle => vehiclePool.Get(entityPointer), - BaseObjectType.Blip => blipPool.Get(entityPointer), - BaseObjectType.Checkpoint => checkpointPool.Get(entityPointer), - BaseObjectType.Audio => audioPool.Get(entityPointer), - BaseObjectType.HttpClient => httpClientPool.Get(entityPointer), - BaseObjectType.WebsocketClient => webSocketClientPool.Get(entityPointer), - BaseObjectType.Webview => webViewPool.Get(entityPointer), - BaseObjectType.RmlElement => rmlElementPool.Get(entityPointer), - BaseObjectType.RmlDocument => rmlDocumentPool.Get(entityPointer), - BaseObjectType.Object => objectPool.Get(entityPointer), - _ => default - }; - } - - ISharedBaseObject IReadOnlyBaseBaseObjectPool.Get(IntPtr entityPointer, BaseObjectType baseObjectType) => Get(entityPointer, baseObjectType); - - public IBaseObject GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType) - { - return baseObjectType switch - { - BaseObjectType.Player => playerPool.GetOrCreate(core, entityPointer), - BaseObjectType.Vehicle => vehiclePool.GetOrCreate(core, entityPointer), - BaseObjectType.Blip => blipPool.GetOrCreate(core, entityPointer), - BaseObjectType.Checkpoint => checkpointPool.GetOrCreate(core, entityPointer), - BaseObjectType.Audio => audioPool.GetOrCreate(core, entityPointer), - BaseObjectType.HttpClient => httpClientPool.GetOrCreate(core, entityPointer), - BaseObjectType.WebsocketClient => webSocketClientPool.GetOrCreate(core, entityPointer), - BaseObjectType.Webview => webViewPool.GetOrCreate(core, entityPointer), - BaseObjectType.RmlElement => rmlElementPool.GetOrCreate(core, entityPointer), - BaseObjectType.RmlDocument => rmlDocumentPool.GetOrCreate(core, entityPointer), - BaseObjectType.Object => objectPool.GetOrCreate(core, entityPointer), - _ => default - }; - } - ISharedBaseObject IReadOnlyBaseBaseObjectPool.GetOrCreate(ISharedCore core, IntPtr entityPointer, BaseObjectType baseObjectType) => GetOrCreate((ICore) core, entityPointer, baseObjectType); - - public IBaseObject GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType, ushort entityId) - { - return baseObjectType switch - { - BaseObjectType.Player => playerPool.GetOrCreate(core, entityPointer, entityId), - BaseObjectType.Vehicle => vehiclePool.GetOrCreate(core, entityPointer, entityId), - BaseObjectType.Blip => blipPool.GetOrCreate(core, entityPointer), - BaseObjectType.Checkpoint => checkpointPool.GetOrCreate(core, entityPointer), - BaseObjectType.Audio => audioPool.GetOrCreate(core, entityPointer), - BaseObjectType.HttpClient => httpClientPool.GetOrCreate(core, entityPointer), - BaseObjectType.WebsocketClient => webSocketClientPool.GetOrCreate(core, entityPointer), - BaseObjectType.Webview => webViewPool.GetOrCreate(core, entityPointer), - BaseObjectType.RmlElement => rmlElementPool.GetOrCreate(core, entityPointer), - BaseObjectType.RmlDocument => rmlDocumentPool.GetOrCreate(core, entityPointer), - BaseObjectType.Object => objectPool.GetOrCreate(core, entityPointer), - _ => default - }; - } - ISharedBaseObject IReadOnlyBaseBaseObjectPool.GetOrCreate(ISharedCore core, IntPtr entityPointer, BaseObjectType baseObjectType, ushort entityId) => GetOrCreate((ICore) core, entityPointer, baseObjectType, entityId); - - public bool Remove(IBaseObject entity) - { - return Remove(entity.NativePointer, entity.Type); - } - - public bool Remove(IntPtr entityPointer, BaseObjectType baseObjectType) - { - return baseObjectType switch - { - BaseObjectType.Player => playerPool.Remove(entityPointer), - BaseObjectType.Vehicle => vehiclePool.Remove(entityPointer), - BaseObjectType.Blip => blipPool.Remove(entityPointer), - BaseObjectType.Checkpoint => checkpointPool.Remove(entityPointer), - BaseObjectType.Audio => audioPool.Remove(entityPointer), - BaseObjectType.HttpClient => httpClientPool.Remove(entityPointer), - BaseObjectType.WebsocketClient => webSocketClientPool.Remove(entityPointer), - BaseObjectType.Webview => webViewPool.Remove(entityPointer), - BaseObjectType.RmlElement => rmlElementPool.Remove(entityPointer), - BaseObjectType.RmlDocument => rmlDocumentPool.Remove(entityPointer), - BaseObjectType.Object => objectPool.Remove(entityPointer), - _ => false - }; - } - } -} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/BaseEntityPool.cs b/api/AltV.Net.Client/Elements/Pools/BaseEntityPool.cs index 9093023a0..79bfd4550 100644 --- a/api/AltV.Net.Client/Elements/Pools/BaseEntityPool.cs +++ b/api/AltV.Net.Client/Elements/Pools/BaseEntityPool.cs @@ -9,10 +9,13 @@ public class BaseEntityPool : IBaseEntityPool private readonly IEntityPool vehiclePool; - public BaseEntityPool(IEntityPool playerPool, IEntityPool vehiclePool) + private readonly IEntityPool pedPool; + + public BaseEntityPool(IEntityPool playerPool, IEntityPool vehiclePool, IEntityPool pedPool) { this.playerPool = playerPool; this.vehiclePool = vehiclePool; + this.pedPool = pedPool; } public bool GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType, out IEntity entity) @@ -28,6 +31,10 @@ public bool GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObj var vehicle = vehiclePool.GetOrCreate(core, entityPointer); entity = vehicle; return vehicle != null; + case BaseObjectType.Ped: + var ped = pedPool.GetOrCreate(core, entityPointer); + entity = ped; + return ped != null; default: entity = default; return false; @@ -48,6 +55,10 @@ public bool Get(IntPtr entityPointer, BaseObjectType baseObjectType, out IEntity var vehicle = vehiclePool.Get(entityPointer); entity = vehicle; return vehicle != null; + case BaseObjectType.Ped: + var ped = pedPool.Get(entityPointer); + entity = ped; + return ped != null; default: entity = default; return false; @@ -67,6 +78,10 @@ public bool GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObj var vehicle = vehiclePool.GetOrCreate(core, entityPointer, entityId); entity = vehicle; return vehicle != null; + case BaseObjectType.Ped: + var ped = pedPool.GetOrCreate(core, entityPointer, entityId); + entity = ped; + return ped != null; default: entity = default; return false; @@ -86,6 +101,8 @@ public bool Remove(IntPtr entityPointer, BaseObjectType baseObjectType) return playerPool.Remove(entityPointer); case BaseObjectType.Vehicle: return vehiclePool.Remove(entityPointer); + case BaseObjectType.Ped: + return pedPool.Remove(entityPointer); default: return false; } diff --git a/api/AltV.Net.Client/Elements/Pools/BaseObjectPool.cs b/api/AltV.Net.Client/Elements/Pools/BaseObjectPool.cs index d7a867669..0c10a9938 100644 --- a/api/AltV.Net.Client/Elements/Pools/BaseObjectPool.cs +++ b/api/AltV.Net.Client/Elements/Pools/BaseObjectPool.cs @@ -5,6 +5,7 @@ namespace AltV.Net.Client.Elements.Pools { public abstract class BaseObjectPool : IBaseObjectPool where TBaseObject : IBaseObject { + public abstract uint GetId(IntPtr entityPointer); public static void SetEntityNoLongerExists(TBaseObject entity) { if (entity is not IInternalBaseObject internalEntity) return; @@ -21,11 +22,11 @@ protected BaseObjectPool(IBaseObjectFactory entityFactory) this.entityFactory = entityFactory; } - public TBaseObject Create(ICore core, IntPtr entityPointer) + public TBaseObject Create(ICore core, IntPtr entityPointer, uint id) { if (entityPointer == IntPtr.Zero) return default; if (entities.TryGetValue(entityPointer, out var baseObject)) return baseObject; - baseObject = entityFactory.Create(core, entityPointer); + baseObject = entityFactory.Create(core, entityPointer, id); Add(baseObject); return baseObject; } @@ -54,6 +55,18 @@ public bool Remove(IntPtr entityPointer) return true; } + public TBaseObject GetOrCreate(ICore core, IntPtr entityPointer, uint id) + { + if (entityPointer == IntPtr.Zero) + { + return default; + } + + if (entities.TryGetValue(entityPointer, out var entity)) return entity; + + return Create(core, entityPointer, id); + } + public TBaseObject Get(IntPtr entityPointer) { return entities.TryGetValue(entityPointer, out var baseObject) ? baseObject : default; @@ -68,7 +81,7 @@ public TBaseObject GetOrCreate(ICore core, IntPtr entityPointer) if (entities.TryGetValue(entityPointer, out var entity)) return entity; - return Create(core, entityPointer); + return Create(core, entityPointer, GetId(entityPointer)); } public IReadOnlyCollection GetAllObjects() diff --git a/api/AltV.Net.Client/Elements/Pools/BlipPool.cs b/api/AltV.Net.Client/Elements/Pools/BlipPool.cs index 31f5386b2..7a223a759 100644 --- a/api/AltV.Net.Client/Elements/Pools/BlipPool.cs +++ b/api/AltV.Net.Client/Elements/Pools/BlipPool.cs @@ -7,5 +7,13 @@ public class BlipPool : BaseObjectPool public BlipPool(IBaseObjectFactory blipFactory) : base(blipFactory) { } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.Blip_GetID(entityPointer); + } + } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/CheckpointPool.cs b/api/AltV.Net.Client/Elements/Pools/CheckpointPool.cs index 46cec8450..874ad1fa5 100644 --- a/api/AltV.Net.Client/Elements/Pools/CheckpointPool.cs +++ b/api/AltV.Net.Client/Elements/Pools/CheckpointPool.cs @@ -7,5 +7,13 @@ public class CheckpointPool : BaseObjectPool public CheckpointPool(IBaseObjectFactory blipFactory) : base(blipFactory) { } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.Checkpoint_GetID(entityPointer); + } + } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/ColShapePool.cs b/api/AltV.Net.Client/Elements/Pools/ColShapePool.cs new file mode 100644 index 000000000..bcdf5c0df --- /dev/null +++ b/api/AltV.Net.Client/Elements/Pools/ColShapePool.cs @@ -0,0 +1,19 @@ +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Pools +{ + public class ColShapePool : BaseObjectPool + { + public ColShapePool(IBaseObjectFactory factory) : base(factory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.ColShape_GetID(entityPointer); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/EntityPool.cs b/api/AltV.Net.Client/Elements/Pools/EntityPool.cs index 83d493bf1..cd0152bf2 100644 --- a/api/AltV.Net.Client/Elements/Pools/EntityPool.cs +++ b/api/AltV.Net.Client/Elements/Pools/EntityPool.cs @@ -16,10 +16,10 @@ public EntityPool(IEntityFactory entityFactory) this._entityFactory = entityFactory; } - protected abstract ushort GetId(IntPtr highestPointer); + protected abstract uint GetId(IntPtr highestPointer); - public TEntity? Create(ICore core, IntPtr entityPointer, ushort id) + public TEntity? Create(ICore core, IntPtr entityPointer, uint id) { if (_entities.TryGetValue(entityPointer, out var entity)) return entity; entity = _entityFactory.Create(core, entityPointer, id); @@ -91,7 +91,7 @@ public IReadOnlyCollection GetAllEntities() return _entities.Values; } - public TEntity GetOrCreate(ICore core, IntPtr entityPointer, ushort entityId) + public TEntity GetOrCreate(ICore core, IntPtr entityPointer, uint entityId) { if (Get(entityPointer) is { } entity) return entity; diff --git a/api/AltV.Net.Client/Elements/Pools/FontPool.cs b/api/AltV.Net.Client/Elements/Pools/FontPool.cs new file mode 100644 index 000000000..f7be2cd76 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Pools/FontPool.cs @@ -0,0 +1,19 @@ +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Pools +{ + public class FontPool : BaseObjectPool + { + public FontPool(IBaseObjectFactory factory) : base(factory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Client.Font_GetID(entityPointer); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/HttpClientPool.cs b/api/AltV.Net.Client/Elements/Pools/HttpClientPool.cs index b9f808cd4..a900a96d9 100644 --- a/api/AltV.Net.Client/Elements/Pools/HttpClientPool.cs +++ b/api/AltV.Net.Client/Elements/Pools/HttpClientPool.cs @@ -7,5 +7,13 @@ public class HttpClientPool : BaseObjectPool public HttpClientPool(IBaseObjectFactory httpClientFactory) : base(httpClientFactory) { } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.HttpClient_GetID(entityPointer); + } + } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/IBaseBaseObjectPool.cs b/api/AltV.Net.Client/Elements/Pools/IBaseBaseObjectPool.cs deleted file mode 100644 index 3040ebfd4..000000000 --- a/api/AltV.Net.Client/Elements/Pools/IBaseBaseObjectPool.cs +++ /dev/null @@ -1,18 +0,0 @@ -using AltV.Net.Client.Elements.Interfaces; -using AltV.Net.Elements.Entities; -using AltV.Net.Shared; - -namespace AltV.Net.Client.Elements.Pools -{ - /// - /// This pool decides which entity pool to use depending on the entity type - /// - public interface IBaseBaseObjectPool : IReadOnlyBaseBaseObjectPool - { - IBaseObject GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType, ushort entityId); - IBaseObject GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType); - new IBaseObject? Get(IntPtr entityPointer, BaseObjectType baseObjectType); - bool Remove(IBaseObject baseObject); - bool Remove(IntPtr entityPointer, BaseObjectType baseObjectType); - } -} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/IBaseObjectPool.cs b/api/AltV.Net.Client/Elements/Pools/IBaseObjectPool.cs index 8c4b19999..3577fa50e 100644 --- a/api/AltV.Net.Client/Elements/Pools/IBaseObjectPool.cs +++ b/api/AltV.Net.Client/Elements/Pools/IBaseObjectPool.cs @@ -4,10 +4,11 @@ namespace AltV.Net.Client.Elements.Pools { public interface IBaseObjectPool : IReadOnlyBaseObjectPool where TBaseObject : IBaseObject { - TBaseObject Create(ICore core, IntPtr entityPointer); + TBaseObject Create(ICore core, IntPtr entityPointer, uint id); void Add(TBaseObject entity); bool Remove(TBaseObject entity); bool Remove(IntPtr entityPointer); + TBaseObject GetOrCreate(ICore core, IntPtr entityPointer, uint id); TBaseObject GetOrCreate(ICore core, IntPtr entityPointer); KeyValuePair[] GetObjectsArray(); void Dispose(); diff --git a/api/AltV.Net.Client/Elements/Pools/IEntityPool.cs b/api/AltV.Net.Client/Elements/Pools/IEntityPool.cs index 166e3708f..f2d290ebd 100644 --- a/api/AltV.Net.Client/Elements/Pools/IEntityPool.cs +++ b/api/AltV.Net.Client/Elements/Pools/IEntityPool.cs @@ -4,7 +4,7 @@ namespace AltV.Net.Client.Elements.Pools { public interface IEntityPool : IReadOnlyEntityPool where TEntity : IEntity { - TEntity? Create(ICore core, IntPtr entityPointer, ushort id); + TEntity? Create(ICore core, IntPtr entityPointer, uint id); TEntity? Create(ICore core, IntPtr entityPointer); @@ -14,7 +14,7 @@ public interface IEntityPool : IReadOnlyEntityPool where TEnti bool Remove(IntPtr entityPointer); - TEntity GetOrCreate(ICore core, IntPtr entityPointer, ushort entityId); + TEntity GetOrCreate(ICore core, IntPtr entityPointer, uint entityId); TEntity GetOrCreate(ICore core, IntPtr entityPointer); KeyValuePair[] GetEntitiesArray(); diff --git a/api/AltV.Net.Client/Elements/Pools/IPoolManager.cs b/api/AltV.Net.Client/Elements/Pools/IPoolManager.cs new file mode 100644 index 000000000..bc6f47e94 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Pools/IPoolManager.cs @@ -0,0 +1,46 @@ +using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.Elements.Entities; +using AltV.Net.Shared; + +namespace AltV.Net.Client.Elements.Pools +{ + /// + /// This pool decides which entity pool to use depending on the entity type + /// + public interface IPoolManager : ISharedPoolManager + { + new IPlayerPool Player { get; } + new IEntityPool Vehicle { get; } + new IEntityPool Ped { get; } + new IEntityPool Object { get; } + IEntityPool LocalObject { get; } + + new IBaseObjectPool Blip { get; } + new IBaseObjectPool Checkpoint { get; } + new IBaseObjectPool VirtualEntity { get; } + new IBaseObjectPool VirtualEntityGroup { get; } + new IBaseObjectPool Marker { get; } + new IBaseObjectPool ColShape { get; } + IBaseObjectPool RmlDocument { get; } + IBaseObjectPool RmlElement { get; } + IBaseObjectPool Audio { get; } + IBaseObjectPool AudioFilter {get;} + IBaseObjectPool AudioOutput {get;} + IBaseObjectPool AudioOutputAttached {get;} + IBaseObjectPool AudioOutputWorld {get;} + IBaseObjectPool AudioOutputFrontend {get;} + IBaseObjectPool HttpClient { get; } + IBaseObjectPool WebSocketClient { get; } + IBaseObjectPool WebView { get; } + IBaseObjectPool TextLabel {get;} + IBaseObjectPool LocalVehicle {get;} + IBaseObjectPool LocalPed {get;} + IBaseObjectPool Font {get;} + + IBaseObject GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType, uint entityId); + IBaseObject GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType); + new IBaseObject Get(IntPtr entityPointer, BaseObjectType baseObjectType); + bool Remove(IBaseObject baseObject); + bool Remove(IntPtr entityPointer, BaseObjectType baseObjectType); + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/LocalObjectPool.cs b/api/AltV.Net.Client/Elements/Pools/LocalObjectPool.cs new file mode 100644 index 000000000..b7cca16c6 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Pools/LocalObjectPool.cs @@ -0,0 +1,19 @@ +using AltV.Net.Client.Elements.Factories; +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Pools; + +public class LocalObjectPool : EntityPool +{ + public LocalObjectPool(IEntityFactory factory) : base(factory) + { + } + + protected override uint GetId(IntPtr objectPointer) + { + unsafe + { + return Alt.Core.Library.Client.LocalObject_GetID(objectPointer); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/LocalPedPool.cs b/api/AltV.Net.Client/Elements/Pools/LocalPedPool.cs new file mode 100644 index 000000000..0caa69563 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Pools/LocalPedPool.cs @@ -0,0 +1,19 @@ +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Pools +{ + public class LocalPedPool : BaseObjectPool + { + public LocalPedPool(IBaseObjectFactory factory) : base(factory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Client.LocalPed_GetID(entityPointer); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/LocalVehiclePool.cs b/api/AltV.Net.Client/Elements/Pools/LocalVehiclePool.cs new file mode 100644 index 000000000..a5ad6c772 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Pools/LocalVehiclePool.cs @@ -0,0 +1,19 @@ +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Pools +{ + public class LocalVehiclePool : BaseObjectPool + { + public LocalVehiclePool(IBaseObjectFactory factory) : base(factory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Client.LocalVehicle_GetID(entityPointer); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/MarkerPool.cs b/api/AltV.Net.Client/Elements/Pools/MarkerPool.cs new file mode 100644 index 000000000..36a6f11e7 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Pools/MarkerPool.cs @@ -0,0 +1,24 @@ +using AltV.Net.Client.Elements.Interfaces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AltV.Net.Client.Elements.Pools +{ + public class MarkerPool : BaseObjectPool + { + public MarkerPool(IBaseObjectFactory markerFactory) : base(markerFactory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.Marker_GetID(entityPointer); + } + } + } +} diff --git a/api/AltV.Net.Client/Elements/Pools/ObjectPool.cs b/api/AltV.Net.Client/Elements/Pools/ObjectPool.cs index bbfac9043..44476ca9a 100644 --- a/api/AltV.Net.Client/Elements/Pools/ObjectPool.cs +++ b/api/AltV.Net.Client/Elements/Pools/ObjectPool.cs @@ -5,11 +5,11 @@ namespace AltV.Net.Client.Elements.Pools; public class ObjectPool : EntityPool { - public ObjectPool(IEntityFactory objectFactory) : base(objectFactory) + public ObjectPool(IEntityFactory factory) : base(factory) { } - protected override ushort GetId(IntPtr objectPointer) + protected override uint GetId(IntPtr objectPointer) { unsafe { diff --git a/api/AltV.Net.Client/Elements/Pools/PedPool.cs b/api/AltV.Net.Client/Elements/Pools/PedPool.cs new file mode 100644 index 000000000..372c5c494 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Pools/PedPool.cs @@ -0,0 +1,19 @@ +using AltV.Net.Client.Elements.Factories; +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Pools; + +public class PedPool : EntityPool +{ + public PedPool(IEntityFactory entityFactory) : base(entityFactory) + { + } + + protected override uint GetId(IntPtr pedPointer) + { + unsafe + { + return Alt.Core.Library.Shared.Ped_GetID (pedPointer); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/PlayerPool.cs b/api/AltV.Net.Client/Elements/Pools/PlayerPool.cs index 003c7713c..1cf310624 100644 --- a/api/AltV.Net.Client/Elements/Pools/PlayerPool.cs +++ b/api/AltV.Net.Client/Elements/Pools/PlayerPool.cs @@ -26,7 +26,7 @@ public void InitLocalPlayer(ICore core) } } - protected sealed override ushort GetId(IntPtr playerPointer) + protected sealed override uint GetId(IntPtr playerPointer) { unsafe { diff --git a/api/AltV.Net.Client/Elements/Pools/PoolManager.cs b/api/AltV.Net.Client/Elements/Pools/PoolManager.cs new file mode 100644 index 000000000..def6a2eb3 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Pools/PoolManager.cs @@ -0,0 +1,294 @@ +using System.ComponentModel; +using AltV.Net.Client.Elements.Entities; +using AltV.Net.Client.Elements.Interfaces; +using AltV.Net.Elements.Entities; +using AltV.Net.Shared; +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Client.Elements.Pools +{ + public class PoolManager : IPoolManager + { + + IReadOnlyEntityPool ISharedPoolManager.Player => Player; + + public IEntityPool Vehicle { get; } + public IEntityPool Ped { get; } + public IEntityPool LocalObject { get; } + public IEntityPool Object { get; } + public IBaseObjectPool Blip { get; } + public IBaseObjectPool Checkpoint { get; } + public IBaseObjectPool VirtualEntity { get; } + public IBaseObjectPool VirtualEntityGroup { get; } + public IBaseObjectPool RmlDocument { get; } + public IBaseObjectPool RmlElement { get; } + public IBaseObjectPool Audio { get; } + public IBaseObjectPool AudioFilter { get; } + public IBaseObjectPool AudioOutput { get; } + public IBaseObjectPool AudioOutputAttached { get; } + public IBaseObjectPool AudioOutputWorld { get; } + public IBaseObjectPool AudioOutputFrontend { get; } + public IBaseObjectPool HttpClient { get; } + public IBaseObjectPool WebSocketClient { get; } + public IBaseObjectPool WebView { get; } + public IBaseObjectPool TextLabel { get; } + public IBaseObjectPool LocalVehicle { get; } + public IBaseObjectPool LocalPed { get; } + public IBaseObjectPool Font { get; } + public IBaseObjectPool Marker { get; } + public IBaseObjectPool ColShape { get; } + + public IPlayerPool Player { get; } + + IReadOnlyEntityPool ISharedPoolManager.Vehicle => Vehicle; + + IReadOnlyEntityPool ISharedPoolManager.Ped => Ped; + + IReadOnlyEntityPool ISharedPoolManager.Object => Object; + + IReadOnlyBaseObjectPool ISharedPoolManager.Blip => Blip; + + IReadOnlyBaseObjectPool ISharedPoolManager.Checkpoint => Checkpoint; + IReadOnlyBaseObjectPool ISharedPoolManager.VirtualEntity => VirtualEntity; + + IReadOnlyBaseObjectPool ISharedPoolManager.VirtualEntityGroup => VirtualEntityGroup; + IReadOnlyBaseObjectPool ISharedPoolManager.ColShape => ColShape; + + IReadOnlyBaseObjectPool ISharedPoolManager.Marker => Marker; + public PoolManager( + IPlayerPool playerPool, + IEntityPool vehiclePool, + IEntityPool pedPool, + IBaseObjectPool blipPool, + IBaseObjectPool checkpointPool, + IBaseObjectPool audioPool, + IBaseObjectPool httpClientPool, + IBaseObjectPool webSocketClientPool, + IBaseObjectPool webViewPool, + IBaseObjectPool rmlElementPool, + IBaseObjectPool rmlDocumentPool, + IEntityPool localObjectPool, + IEntityPool objectPool, + IBaseObjectPool virtualEntitiyPool, + IBaseObjectPool virtualEntitiyGroupPool, + IBaseObjectPool textLabelPool, + IBaseObjectPool colShapePool, + IBaseObjectPool localVehiclePool, + IBaseObjectPool localPedPool, + IBaseObjectPool audioFilterPool, + IBaseObjectPool audioOutputPool, + IBaseObjectPool AudioOutputFrontendPool, + IBaseObjectPool AudioOutputAttachedPool, + IBaseObjectPool AudioOutputWorldPool, + IBaseObjectPool fontPool, + IBaseObjectPool markerPool) + { + this.Player = playerPool; + this.Vehicle = vehiclePool; + this.Ped = pedPool; + this.Blip = blipPool; + this.Checkpoint = checkpointPool; + this.Audio = audioPool; + this.HttpClient = httpClientPool; + this.WebSocketClient = webSocketClientPool; + this.WebView = webViewPool; + this.RmlElement = rmlElementPool; + this.RmlDocument = rmlDocumentPool; + this.LocalObject = localObjectPool; + this.Object = objectPool; + this.VirtualEntity = virtualEntitiyPool; + this.VirtualEntityGroup = virtualEntitiyGroupPool; + TextLabel = textLabelPool; + ColShape = colShapePool; + LocalVehicle = localVehiclePool; + LocalPed = localPedPool; + AudioFilter = audioFilterPool; + AudioOutput = audioOutputPool; + AudioOutputFrontend = AudioOutputFrontendPool; + AudioOutputAttached = AudioOutputAttachedPool; + AudioOutputWorld = AudioOutputWorldPool; + Font = fontPool; + Marker = markerPool; + } + + ISharedBaseObject ISharedPoolManager.GetOrCreate(ISharedCore core, IntPtr entityPointer, BaseObjectType baseObjectType, + uint entityId) => GetOrCreate((ICore)core, entityPointer, baseObjectType, entityId); + + ISharedBaseObject ISharedPoolManager.GetOrCreate(ISharedCore core, IntPtr entityPointer, BaseObjectType baseObjectType) => GetOrCreate((ICore)core, entityPointer, baseObjectType); + + ISharedBaseObject ISharedPoolManager.Get(IntPtr entityPointer, BaseObjectType baseObjectType) => Get(entityPointer, baseObjectType); + + public IBaseObject GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType, uint entityId) + { + return baseObjectType switch + { + BaseObjectType.Player => Player.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.Vehicle => Vehicle.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.Blip => Blip.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.Checkpoint => Checkpoint.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.Audio => Audio.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.HttpClient => HttpClient.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.WebsocketClient => WebSocketClient.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.Webview => WebView.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.RmlElement => RmlElement.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.RmlDocument => RmlDocument.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.LocalObject => LocalObject.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.Object => Object.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.Ped => Ped.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.VirtualEntity => VirtualEntity.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.VirtualEntityGroup => VirtualEntityGroup.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.TextLabel => TextLabel.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.ColShape => ColShape.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.LocalVehicle => LocalVehicle.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.LocalPed => LocalPed.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.AudioFilter => AudioFilter.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.AudioOutput => AudioOutput.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.AudioOutputAttached => AudioOutputAttached.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.AudioOutputFrontend => AudioOutputFrontend.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.AudioOutputWorld => AudioOutputWorld.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.Font => Font.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.Marker => Marker.GetOrCreate(core, entityPointer, entityId), + _ => default + }; + } + + public IBaseObject GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType) + { + return baseObjectType switch + { + BaseObjectType.Player => Player.GetOrCreate(core, entityPointer), + BaseObjectType.Vehicle => Vehicle.GetOrCreate(core, entityPointer), + BaseObjectType.Blip => Blip.GetOrCreate(core, entityPointer), + BaseObjectType.Checkpoint => Checkpoint.GetOrCreate(core, entityPointer), + BaseObjectType.Audio => Audio.GetOrCreate(core, entityPointer), + BaseObjectType.HttpClient => HttpClient.GetOrCreate(core, entityPointer), + BaseObjectType.WebsocketClient => WebSocketClient.GetOrCreate(core, entityPointer), + BaseObjectType.Webview => WebView.GetOrCreate(core, entityPointer), + BaseObjectType.RmlElement => RmlElement.GetOrCreate(core, entityPointer), + BaseObjectType.RmlDocument => RmlDocument.GetOrCreate(core, entityPointer), + BaseObjectType.LocalObject => LocalObject.GetOrCreate(core, entityPointer), + BaseObjectType.Object => Object.GetOrCreate(core, entityPointer), + BaseObjectType.Ped => Ped.GetOrCreate(core, entityPointer), + BaseObjectType.VirtualEntity => VirtualEntity.GetOrCreate(core, entityPointer), + BaseObjectType.VirtualEntityGroup => VirtualEntityGroup.GetOrCreate(core, entityPointer), + BaseObjectType.TextLabel => TextLabel.GetOrCreate(core, entityPointer), + BaseObjectType.ColShape => ColShape.GetOrCreate(core, entityPointer), + BaseObjectType.LocalVehicle => LocalVehicle.GetOrCreate(core, entityPointer), + BaseObjectType.LocalPed => LocalPed.GetOrCreate(core, entityPointer), + BaseObjectType.AudioFilter => AudioFilter.GetOrCreate(core, entityPointer), + BaseObjectType.AudioOutput => AudioOutput.GetOrCreate(core, entityPointer), + BaseObjectType.AudioOutputAttached => AudioOutputAttached.GetOrCreate(core, entityPointer), + BaseObjectType.AudioOutputFrontend => AudioOutputFrontend.GetOrCreate(core, entityPointer), + BaseObjectType.AudioOutputWorld => AudioOutputWorld.GetOrCreate(core, entityPointer), + BaseObjectType.Font => Font.GetOrCreate(core, entityPointer), + BaseObjectType.Marker => Marker.GetOrCreate(core, entityPointer), + _ => default + }; + } + + public IBaseObject Get(IntPtr entityPointer, BaseObjectType baseObjectType) + { + return baseObjectType switch + { + BaseObjectType.LocalPlayer => Player.Get(entityPointer), + BaseObjectType.Player => Player.Get(entityPointer), + BaseObjectType.Vehicle => Vehicle.Get(entityPointer), + BaseObjectType.Blip => Blip.Get(entityPointer), + BaseObjectType.Checkpoint => Checkpoint.Get(entityPointer), + BaseObjectType.Audio => Audio.Get(entityPointer), + BaseObjectType.HttpClient => HttpClient.Get(entityPointer), + BaseObjectType.WebsocketClient => WebSocketClient.Get(entityPointer), + BaseObjectType.Webview => WebView.Get(entityPointer), + BaseObjectType.RmlElement => RmlElement.Get(entityPointer), + BaseObjectType.RmlDocument => RmlDocument.Get(entityPointer), + BaseObjectType.LocalObject => LocalObject.Get(entityPointer), + BaseObjectType.Object => Object.Get(entityPointer), + BaseObjectType.Ped => Ped.Get(entityPointer), + BaseObjectType.VirtualEntity => VirtualEntity.Get(entityPointer), + BaseObjectType.VirtualEntityGroup => VirtualEntityGroup.Get(entityPointer), + BaseObjectType.TextLabel => TextLabel.Get(entityPointer), + BaseObjectType.ColShape => ColShape.Get(entityPointer), + BaseObjectType.LocalVehicle => LocalVehicle.Get(entityPointer), + BaseObjectType.LocalPed => LocalPed.Get(entityPointer), + BaseObjectType.AudioFilter => AudioFilter.Get(entityPointer), + BaseObjectType.AudioOutput => AudioOutput.Get(entityPointer), + BaseObjectType.AudioOutputAttached => AudioOutputAttached.Get(entityPointer), + BaseObjectType.AudioOutputFrontend => AudioOutputFrontend.Get(entityPointer), + BaseObjectType.AudioOutputWorld => AudioOutputWorld.Get(entityPointer), + BaseObjectType.Font => Font.Get(entityPointer), + BaseObjectType.Marker => Marker.Get(entityPointer), + _ => default + }; + } + + public bool Remove(IBaseObject baseObject) + { + return Remove(baseObject.NativePointer, baseObject.Type); + } + + public bool Remove(IntPtr entityPointer, BaseObjectType baseObjectType) + { + return baseObjectType switch + { + BaseObjectType.LocalPlayer => Player.Remove(entityPointer), + BaseObjectType.Player => Player.Remove(entityPointer), + BaseObjectType.Vehicle => Vehicle.Remove(entityPointer), + BaseObjectType.Blip => Blip.Remove(entityPointer), + BaseObjectType.Checkpoint => Checkpoint.Remove(entityPointer), + BaseObjectType.Audio => Audio.Remove(entityPointer), + BaseObjectType.HttpClient => HttpClient.Remove(entityPointer), + BaseObjectType.WebsocketClient => WebSocketClient.Remove(entityPointer), + BaseObjectType.Webview => WebView.Remove(entityPointer), + BaseObjectType.RmlElement => RmlElement.Remove(entityPointer), + BaseObjectType.RmlDocument => RmlDocument.Remove(entityPointer), + BaseObjectType.LocalObject => LocalObject.Remove(entityPointer), + BaseObjectType.Object => Object.Remove(entityPointer), + BaseObjectType.Ped => Ped.Remove(entityPointer), + BaseObjectType.VirtualEntity => VirtualEntity.Remove(entityPointer), + BaseObjectType.VirtualEntityGroup => VirtualEntityGroup.Remove(entityPointer), + BaseObjectType.TextLabel => TextLabel.Remove(entityPointer), + BaseObjectType.ColShape => ColShape.Remove(entityPointer), + BaseObjectType.LocalVehicle => LocalVehicle.Remove(entityPointer), + BaseObjectType.LocalPed => LocalPed.Remove(entityPointer), + BaseObjectType.AudioFilter => AudioFilter.Remove(entityPointer), + BaseObjectType.AudioOutput => AudioOutput.Remove(entityPointer), + BaseObjectType.AudioOutputAttached => AudioOutputAttached.Remove(entityPointer), + BaseObjectType.AudioOutputFrontend => AudioOutputFrontend.Remove(entityPointer), + BaseObjectType.AudioOutputWorld => AudioOutputWorld.Remove(entityPointer), + BaseObjectType.Font => Font.Remove(entityPointer), + BaseObjectType.Marker => Marker.Remove(entityPointer), + _ => default + }; + } + + public void Dispose() + { + Player.Dispose(); + Vehicle.Dispose(); + Ped.Dispose(); + Blip.Dispose(); + Checkpoint.Dispose(); + Audio.Dispose(); + HttpClient.Dispose(); + WebSocketClient.Dispose(); + WebView.Dispose(); + RmlElement.Dispose(); + RmlDocument.Dispose(); + LocalObject.Dispose(); + Object.Dispose(); + VirtualEntity.Dispose(); + VirtualEntityGroup.Dispose(); + TextLabel.Dispose(); + ColShape.Dispose(); + LocalVehicle.Dispose(); + LocalPed.Dispose(); + AudioFilter.Dispose(); + AudioOutput.Dispose(); + AudioOutputAttached.Dispose(); + AudioOutputFrontend.Dispose(); + AudioOutputWorld.Dispose(); + Font.Dispose(); + Marker.Dispose(); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/RmlDocumentPool.cs b/api/AltV.Net.Client/Elements/Pools/RmlDocumentPool.cs index a0a90534d..b3681bcc3 100644 --- a/api/AltV.Net.Client/Elements/Pools/RmlDocumentPool.cs +++ b/api/AltV.Net.Client/Elements/Pools/RmlDocumentPool.cs @@ -7,5 +7,13 @@ public class RmlDocumentPool : BaseObjectPool public RmlDocumentPool(IBaseObjectFactory rmlDocumentPool) : base(rmlDocumentPool) { } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.RmlDocument_GetID(entityPointer); + } + } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/RmlElementPool.cs b/api/AltV.Net.Client/Elements/Pools/RmlElementPool.cs index f3c662e9e..46d8e7d13 100644 --- a/api/AltV.Net.Client/Elements/Pools/RmlElementPool.cs +++ b/api/AltV.Net.Client/Elements/Pools/RmlElementPool.cs @@ -7,5 +7,10 @@ public class RmlElementPool : BaseObjectPool public RmlElementPool(IBaseObjectFactory rmlElementFactory) : base(rmlElementFactory) { } + + public override uint GetId(IntPtr entityPointer) + { + return 0; + } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/TextLabelPool.cs b/api/AltV.Net.Client/Elements/Pools/TextLabelPool.cs new file mode 100644 index 000000000..03a901418 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Pools/TextLabelPool.cs @@ -0,0 +1,19 @@ +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Pools +{ + public class TextLabelPool : BaseObjectPool + { + public TextLabelPool(IBaseObjectFactory factory) : base(factory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.TextLabel_GetID(entityPointer); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/TimerPool.cs b/api/AltV.Net.Client/Elements/Pools/TimerPool.cs index ad826b0a5..ae71521e4 100644 --- a/api/AltV.Net.Client/Elements/Pools/TimerPool.cs +++ b/api/AltV.Net.Client/Elements/Pools/TimerPool.cs @@ -1,11 +1,12 @@ -using AltV.Net.Client.Elements.Interfaces; +using System.Collections.Concurrent; +using AltV.Net.Client.Elements.Interfaces; namespace AltV.Net.Client.Elements.Pools { public class TimerPool : ITimerPool { private uint lastId; - private readonly Dictionary timers = new(); + private readonly ConcurrentDictionary timers = new(); public static long GetTime() { @@ -30,13 +31,13 @@ public void Tick(string resourceName) public uint Add(IModuleTimer timer) { var id = lastId++; - timers.Add(id, timer); + timers.TryAdd(id, timer); return id; } public void Remove(uint id) { - timers.Remove(id); + timers.TryRemove(id, out _); } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/VehiclePool.cs b/api/AltV.Net.Client/Elements/Pools/VehiclePool.cs index fe8fcfa41..1a5769ca1 100644 --- a/api/AltV.Net.Client/Elements/Pools/VehiclePool.cs +++ b/api/AltV.Net.Client/Elements/Pools/VehiclePool.cs @@ -9,7 +9,7 @@ public VehiclePool(IEntityFactory entityFactory) : base(entityFactory) { } - protected override ushort GetId(IntPtr vehiclePointer) + protected override uint GetId(IntPtr vehiclePointer) { unsafe { diff --git a/api/AltV.Net.Client/Elements/Pools/VirtualEntityGroupPool.cs b/api/AltV.Net.Client/Elements/Pools/VirtualEntityGroupPool.cs new file mode 100644 index 000000000..edeb4964e --- /dev/null +++ b/api/AltV.Net.Client/Elements/Pools/VirtualEntityGroupPool.cs @@ -0,0 +1,19 @@ +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Pools +{ + public class VirtualEntityGroupPool : BaseObjectPool + { + public VirtualEntityGroupPool(IBaseObjectFactory virtualEntityGroupFactory) : base(virtualEntityGroupFactory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.VirtualEntity_GetID(entityPointer); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/VirtualEntityPool.cs b/api/AltV.Net.Client/Elements/Pools/VirtualEntityPool.cs new file mode 100644 index 000000000..8fcecbe17 --- /dev/null +++ b/api/AltV.Net.Client/Elements/Pools/VirtualEntityPool.cs @@ -0,0 +1,19 @@ +using AltV.Net.Client.Elements.Interfaces; + +namespace AltV.Net.Client.Elements.Pools +{ + public class VirtualEntityPool : BaseObjectPool + { + public VirtualEntityPool(IBaseObjectFactory virtualEntityFactory) : base(virtualEntityFactory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.VirtualEntityGroup_GetID(entityPointer); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/WebSocketClientPool.cs b/api/AltV.Net.Client/Elements/Pools/WebSocketClientPool.cs index bae540b26..76e5bbf3b 100644 --- a/api/AltV.Net.Client/Elements/Pools/WebSocketClientPool.cs +++ b/api/AltV.Net.Client/Elements/Pools/WebSocketClientPool.cs @@ -7,5 +7,13 @@ public class WebSocketClientPool : BaseObjectPool public WebSocketClientPool(IBaseObjectFactory webSocketClientFactory) : base(webSocketClientFactory) { } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.WebSocketClient_GetID(entityPointer); + } + } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Elements/Pools/WebViewPool.cs b/api/AltV.Net.Client/Elements/Pools/WebViewPool.cs index acfd41728..e33415ca9 100644 --- a/api/AltV.Net.Client/Elements/Pools/WebViewPool.cs +++ b/api/AltV.Net.Client/Elements/Pools/WebViewPool.cs @@ -7,5 +7,13 @@ public class WebViewPool : BaseObjectPool public WebViewPool(IBaseObjectFactory webViewFactory) : base(webViewFactory) { } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.WebView_GetID(entityPointer); + } + } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Events/Events.cs b/api/AltV.Net.Client/Events/Events.cs index d293a6a5c..66968dc45 100644 --- a/api/AltV.Net.Client/Events/Events.cs +++ b/api/AltV.Net.Client/Events/Events.cs @@ -3,6 +3,9 @@ using System.Windows.Input; using AltV.Net.Client.Elements.Data; using AltV.Net.Data; +using AltV.Net.Elements.Args; +using AltV.Net.Elements.Entities; +using AltV.Net.Shared.Elements.Entities; namespace AltV.Net.Client.Events { @@ -33,8 +36,9 @@ namespace AltV.Net.Client.Events public delegate void GlobalMetaChangeDelegate(string key, object value, object oldValue); public delegate void GlobalSyncedMetaChangeDelegate(string key, object value, object oldValue); public delegate void LocalMetaChangeDelegate(string key, object value, object oldValue); - public delegate void StreamSyncedMetaChangeDelegate(IEntity target, string key, object value, object oldValue); - public delegate void SyncedMetaChangeDelegate(IEntity target, string key, object value, object oldValue); + public delegate void StreamSyncedMetaChangeDelegate(IBaseObject target, string key, object value, object oldValue); + public delegate void SyncedMetaChangeDelegate(IBaseObject target, string key, object value, object oldValue); + public delegate void MetaChangeDelegate(IBaseObject target, string key, object value, object oldValue); public delegate void TaskChangeDelegate(int oldTask, int newTask); @@ -44,7 +48,26 @@ namespace AltV.Net.Client.Events public delegate void NetOwnerChangeDelegate(IEntity target, IPlayer? newOwner, IPlayer? oldOwner); public delegate bool WeaponDamageDelegate(IEntity target, uint weapon, ushort damage, Position shotOffset, - BodyPart bodyPart); + BodyPart bodyPart, IEntity sourceEntity); + + public delegate void WorldObjectPositionChangeDelegate(IWorldObject target, Position oldPosition); + public delegate void WorldObjectStreamInDelegate(IWorldObject target); + public delegate void WorldObjectStreamOutDelegate(IWorldObject target); + + public delegate void ColShapeDelegate(IColShape colShape, IWorldObject target, bool state); + public delegate void CheckpointDelegate(ICheckpoint checkpoint, IWorldObject target, bool state); + + public delegate void PlayerStartEnterVehicleDelegate(IVehicle vehicle, IPlayer player, byte seat); + public delegate void PlayerStartLeaveVehicleDelegate(IVehicle vehicle, IPlayer player, byte seat); + public delegate void EntityHitEntityDelegate(IEntity target, IEntity damager, uint weaponHash); + + public delegate void PlayerBulletHitDelegate(uint weapon, IEntity victim, Position position); + public delegate void VoiceConnectionDelegate(VoiceConnectionState state); + + public delegate void ScriptRPCDelegate(IScriptRPCEvent scriptRpcEvent, string name, object[] args, ushort answerId); + public delegate void ScriptRPCAnswerDelegate(ushort answerId, object answer, string answerError); + + } \ No newline at end of file diff --git a/api/AltV.Net.Client/Exceptions/PermissionException.cs b/api/AltV.Net.Client/Exceptions/PermissionException.cs index 9472ef6ac..508b5c523 100644 --- a/api/AltV.Net.Client/Exceptions/PermissionException.cs +++ b/api/AltV.Net.Client/Exceptions/PermissionException.cs @@ -5,25 +5,12 @@ namespace AltV.Net.Client.Exceptions public class PermissionException : Exception { public Permission Permission { get; } - public PermissionState PermissionState { get; } - public PermissionException(Permission permission, PermissionState permissionState) + public PermissionException(Permission permission) { Permission = permission; - PermissionState = permissionState; } - public override string Message - { - get - { - return PermissionState switch - { - PermissionState.Denied => $"Permission {Permission} is denied", - PermissionState.Unspecified => $"Permission {Permission} is not specified", - _ => $"Permission {Permission} check failed" - }; - } - } + public override string Message => $"Permission {Permission} is denied"; } } \ No newline at end of file diff --git a/api/AltV.Net.Client/FocusData.cs b/api/AltV.Net.Client/FocusData.cs index ce0d67b19..c30792186 100644 --- a/api/AltV.Net.Client/FocusData.cs +++ b/api/AltV.Net.Client/FocusData.cs @@ -68,8 +68,9 @@ public IEntity FocusOverrideEntity unsafe { var type = (byte) BaseObjectType.Undefined; - if (!core.BaseEntityPool.Get(core.Library.Client.Core_GetFocusOverrideEntity(core.NativePointer, &type), (BaseObjectType) type, out var entity)) - return null; + var entity = (IEntity) + core.PoolManager.Get(core.Library.Client.Core_GetFocusOverrideEntity(core.NativePointer, &type), + (BaseObjectType)type); return entity; } } diff --git a/api/AltV.Net.Client/IBaseObjectFactory.cs b/api/AltV.Net.Client/IBaseObjectFactory.cs index 93f017965..8d2ef9bc4 100644 --- a/api/AltV.Net.Client/IBaseObjectFactory.cs +++ b/api/AltV.Net.Client/IBaseObjectFactory.cs @@ -4,6 +4,6 @@ namespace AltV.Net.Client { public interface IBaseObjectFactory where TBaseObject : IBaseObject { - TBaseObject Create(ICore core, IntPtr baseObjectPointer); + TBaseObject Create(ICore core, IntPtr baseObjectPointer, uint id); } } \ No newline at end of file diff --git a/api/AltV.Net.Client/ICore.cs b/api/AltV.Net.Client/ICore.cs index 356a68da7..27478da0d 100644 --- a/api/AltV.Net.Client/ICore.cs +++ b/api/AltV.Net.Client/ICore.cs @@ -7,24 +7,14 @@ using AltV.Net.Elements.Args; using AltV.Net.Elements.Entities; using AltV.Net.Shared; +using AltV.Net.Shared.Enums; using WeaponData = AltV.Net.Client.Elements.Data.WeaponData; namespace AltV.Net.Client { public interface ICore : ISharedCore { - new IPlayerPool PlayerPool { get; } - new IEntityPool VehiclePool { get; } - IBaseEntityPool BaseEntityPool { get; } - IBaseBaseObjectPool BaseBaseObjectPool { get; } - IBaseObjectPool WebViewPool { get; } - new IBaseObjectPool BlipPool { get; } - new IBaseObjectPool CheckpointPool { get; } - IBaseObjectPool AudioPool { get; } - IBaseObjectPool HttpClientPool { get; } - IBaseObjectPool WebSocketClientPool { get; } - IBaseObjectPool RmlDocumentPool { get; } - IBaseObjectPool RmlElementPool { get; } + IPoolManager PoolManager { get; } LocalStorage LocalStorage { get; } new INativeResource Resource { get; } INatives Natives { get; } @@ -54,34 +44,41 @@ public interface ICore : ISharedCore IBlip CreatePointBlip(Position position); IBlip CreateRadiusBlip(Position position, float radius); IBlip CreateAreaBlip(Position position, int width, int height); - IntPtr CreateWebViewPtr(string url, bool isOverlay = false, Vector2? pos = null, Vector2? size = null); + IntPtr CreateWebViewPtr(out uint id, string url, bool isOverlay = false, Vector2? pos = null, Vector2? size = null); IWebView CreateWebView(string url, bool isOverlay = false, Vector2? pos = null, Vector2? size = null); - IntPtr CreateWebViewPtr(string url, uint propHash, string targetTexture); + IntPtr CreateWebViewPtr(out uint id, string url, uint propHash, string targetTexture); IWebView CreateWebView(string url, uint propHash, string targetTexture); - IntPtr CreatePointBlipPtr(Position position); - IntPtr CreateRadiusBlipPtr(Position position, float radius); - IntPtr CreateAreaBlipPtr(Position position, int width, int height); - new IEntity GetEntityById(ushort id); + IntPtr CreatePointBlipPtr(out uint id, Position position); + IntPtr CreateRadiusBlipPtr(out uint id, Position position, float radius); + IntPtr CreateAreaBlipPtr(out uint id, Position position, int width, int height); + IntPtr CreateMarkerPtr(out uint id, MarkerType type, Position pos, Rgba color, bool useStreaming, uint streamingDistance); + new IBaseObject GetBaseObjectById(BaseObjectType type, uint id); void ShowCursor(bool state); bool IsCursorVisible { get; } Discord Discord { get; } FocusData FocusData { get; } void TriggerServerEvent(string eventName, params object[] args); - IntPtr CreateRmlDocumentPtr(string url); + + ushort TriggerServerRPCEvent(string name, params object[] args); + void TriggerServerRPCAnswer(ushort answerId, object answer, string error); + void TriggerServerEventUnreliable(string eventName, params object[] args); + IntPtr CreateRmlDocumentPtr(out uint id, string url); IRmlDocument CreateRmlDocument(string url); Vector2 WorldToScreen(Vector3 position); string[] MarshalStringArrayPtrAndFree(IntPtr ptr, uint size); DiscordUser? GetDiscordUser(); void LoadRmlFont(string path, string name, bool italic = false, bool bold = false); HandlingData? GetHandlingByModelHash(uint modelHash); + AudioCategory? GetAudioCategoryByName(string audioCategory); Vector3 ScreenToWorld(Vector2 position); void AddGxtText(uint key, string value); string GetGxtText(uint key); void RemoveGxtText(uint key); bool BeginScaleformMovieMethodMinimap(string methodName); void SetMinimapComponentPosition(string name, char alignX, char alignY, float posX, float posY, float sizeX, float sizeY); + void ResetMinimapComponentPosition(string name); void CopyToClipboard(string content); - PermissionState GetPermissionState(Permission permission); + bool GetPermissionState(Permission permission); bool IsTextureExistInArchetype(uint modelHash, string targetTextureName); bool IsPointOnScreen(Vector3 position); void LoadModel(uint modelHash); @@ -136,21 +133,34 @@ public interface ICore : ISharedCore uint NextTick(Action action, [CallerFilePath] string filePath = "", [CallerLineNumber] int lineNumber = 0); uint EveryTick(Action action, [CallerFilePath] string filePath = "", [CallerLineNumber] int lineNumber = 0); void ClearTimer(uint id); - IntPtr CreateCheckpointPtr(CheckpointType type, Vector3 pos, Vector3 nextPos, float radius, float height, Rgba color); - ICheckpoint CreateCheckpoint(CheckpointType type, Vector3 pos, Vector3 nextPos, float radius, float height, Rgba color); - IntPtr CreateAudioPtr(string source, float volume, uint category, bool frontend); - IAudio CreateAudio(string source, float volume, uint category, bool frontend); - IntPtr CreateObjectPtr(uint modelHash, Position position, Rotation rotation, bool noOffset = false, - bool dynamic = false); - IObject CreateObject(uint modelHash, Position position, Rotation rotation, bool noOffset = false, - bool dynamic = false); + IntPtr CreateCheckpointPtr(out uint id, CheckpointType type, Vector3 pos, Vector3 nextPos, float radius, float height, Rgba color, Rgba iconColor, uint streamingDistance); + ICheckpoint CreateCheckpoint(CheckpointType type, Vector3 pos, Vector3 nextPos, float radius, float height, Rgba color, Rgba iconColor, uint streamingDistance); + IntPtr CreateAudioPtr(out uint id, string source, float volume, bool isRadio = false, bool clearCache = true, string basePath = ""); + IAudio CreateAudio(string source, float volume, bool isRadio = false, bool clearCache = true, string basePath = ""); + + IntPtr CreateAudioFilterPtr(out uint id, uint hash); + IntPtr CreateFrontendOutputPtr(out uint id, uint categoryHash); + IntPtr CreateWorldOutputPtr(out uint id, uint categoryHash, Position pos); + IntPtr CreateAttachedOutputPtr(out uint id, uint categoryHash, IWorldObject worldObject); + + IAudioFilter CreateAudioFilter(uint hash); + IAudioOutputFrontend CreateAudioOutputFrontend(uint categoryHash); + IAudioOutputWorld CreateAudioOutputWorld(uint categoryHash, Position pos); + IAudioOutputAttached CreateAudioOutputAttached(uint categoryHash, IWorldObject worldObject); + + WeaponData[] GetAllWeaponData(); + + IntPtr CreateLocalObjectPtr(out uint id, uint modelHash, Position position, Rotation rotation, bool noOffset = false, + bool dynamic = false, bool useStreaming = false, uint streamingDistance = 0); + ILocalObject CreateLocalObject(uint modelHash, Position position, Rotation rotation, bool noOffset = false, + bool dynamic = false, bool useStreaming = false, uint streamingDistance = 0); MapZoomData GetMapZoomData(uint id); MapZoomData GetMapZoomData(string alias); void ResetAllMapZoomData(); void LoadDefaultIpls(); - IntPtr CreateHttpClientPtr(); + IntPtr CreateHttpClientPtr(out uint id); IHttpClient CreateHttpClient(); - IntPtr CreateWebSocketClientPtr(string url); + IntPtr CreateWebSocketClientPtr(out uint id, string url); IWebSocketClient CreateWebSocketClient(string url); bool HasLocalMetaData(string key); void GetLocalMetaData(string key, out MValueConst result); @@ -158,10 +168,49 @@ IObject CreateObject(uint modelHash, Position position, Rotation rotation, bool string FileRead(string path); byte[] FileReadBinary(string path); WeaponData GetWeaponDataByWeaponHash(uint weaponHash); - IReadOnlyCollection GetAllObjects(); - IReadOnlyCollection GetAllWorldObjects(); + IReadOnlyCollection GetAllWorldObjects(); IEnumerable GetRegisteredClientEvents(); IEnumerable GetRegisteredServerEvents(); Vector3 PedBonesPosition(int scriptId, ushort boneId); + + IReadOnlyCollection GetAllPlayers(); + IReadOnlyCollection GetAllVehicles(); + IReadOnlyCollection GetAllBlips(); + IReadOnlyCollection GetAllCheckpoints(); + IReadOnlyCollection GetAllVirtualEntities(); + IReadOnlyCollection GetAllVirtualEntityGroups(); + IReadOnlyCollection GetAllPeds(); + IReadOnlyCollection GetAllNetworkObjects(); + IReadOnlyCollection GetAllColShapes(); + IReadOnlyCollection GetAllMarkers(); + IReadOnlyCollection GetAllTextLabels(); + IReadOnlyCollection GetAllLocalObjects(); + IReadOnlyCollection GetAllLocalVehicles(); + IReadOnlyCollection GetAllLocalPeds(); + bool IsFullScreen { get; } + IBlip GetBlipByGameId(uint gameId); + ICheckpoint GetCheckpointByGameID(uint gameId); + bool IsWebViewGpuAccelerationActive { get; } + IWorldObject GetWorldObjectByScriptID(BaseObjectType type, uint scriptId); + IVirtualEntityGroup CreateVirtualEntityGroup(uint streamingDistance); + IVirtualEntity CreateVirtualEntity(IVirtualEntityGroup group, Position position, uint streamingDistance, Dictionary dataDict); + ILocalPed CreateLocalPed(uint modelHash, int dimension, Position position, Rotation rotation, bool useStreaming, uint streamingDistance); + ILocalVehicle CreateLocalVehicle(uint modelHash, int dimension, Position position, Rotation rotation, bool useStreaming, uint streamingDistance); + IMarker CreateMarker(MarkerType type, Position pos, Rgba color, bool useStreaming, uint streamingDistance); + ITextLabel CreateTextLabel(string name, string fontName, float fontSize, float scale, Position pos, Rotation rot, Rgba color, float outlineWidth, Rgba outlineColor, bool useStreaming, uint streamingDistance); + + IntPtr CreateColShapeCirclePtr(out uint id, Position position, float radius); + IColShape CreateColShapeCircle(Position position, float radius); + IntPtr CreateColShapeCubePtr(out uint id, Position pos1, Position pos2); + IColShape CreateColShapeCube(Position pos1, Position pos2); + IntPtr CreateColShapeCylinderPtr(out uint id, Position position, float radius, float height); + IColShape CreateColShapeCylinder(Position position, float radius, float height); + IntPtr CreateColShapePolygonPtr(out uint id, float minZ, float maxZ, Vector2[] points); + IColShape CreateColShapePolygon(float minZ, float maxZ, Vector2[] points); + IntPtr CreateColShapeRectanglePtr(out uint id, float x1, float y1, float x2, float y2, float z); + IColShape CreateColShapeRectangle(float x1, float y1, float x2, float y2, float z); + IntPtr CreateColShapeSpherePtr(out uint id, Vector3 position, float radius); + IColShape CreateColShapeSphere(Vector3 position, float radius); + IFont RegisterFont(string path); } } \ No newline at end of file diff --git a/api/AltV.Net.Client/IResource.cs b/api/AltV.Net.Client/IResource.cs index 66814cb0a..6dc8c5d83 100644 --- a/api/AltV.Net.Client/IResource.cs +++ b/api/AltV.Net.Client/IResource.cs @@ -14,13 +14,28 @@ public interface IResource public INatives GetNatives(ILibrary library); public IPlayerFactory GetPlayerFactory(); public IEntityFactory GetVehicleFactory(); + public IEntityFactory GetPedFactory(); public IBaseObjectFactory GetBlipFactory(); public IBaseObjectFactory GetCheckpointFactory(); + public IBaseObjectFactory GetColShapeFactory(); public IBaseObjectFactory GetAudioFactory(); public IBaseObjectFactory GetHttpClientFactory(); public IBaseObjectFactory GetWebSocketClientFactory(); public IBaseObjectFactory GetWebViewFactory(); + public IEntityFactory GetLocalObjectFactory(); public IEntityFactory GetObjectFactory(); + public IBaseObjectFactory GetVirtualEntityFactory(); + public IBaseObjectFactory GetVirtualEntityGroupFactory(); + public IBaseObjectFactory GetTextLabelFactory(); + public IBaseObjectFactory GetLocalVehicleFactory(); + public IBaseObjectFactory GetLocalPedFactory(); + public IBaseObjectFactory GetAudioFilterFactory(); + public IBaseObjectFactory GetAudioOutputFactory(); + public IBaseObjectFactory GetAudioOutputWorldFactory(); + public IBaseObjectFactory GetFontFactory(); + public IBaseObjectFactory GetMarkerFactory(); + public IBaseObjectFactory GetAudioOutputAttachedFactory(); + public IBaseObjectFactory GetAudioOutputFrontendFactory(); public INativeResourceFactory GetResourceFactory(); public ILogger GetLogger(ILibrary library, IntPtr corePointer); } diff --git a/api/AltV.Net.Client/ModuleWrapper.cs b/api/AltV.Net.Client/ModuleWrapper.cs index fe1a050b2..f23ba6794 100644 --- a/api/AltV.Net.Client/ModuleWrapper.cs +++ b/api/AltV.Net.Client/ModuleWrapper.cs @@ -2,11 +2,10 @@ using System.Reflection; using System.Runtime.InteropServices; using AltV.Net.CApi; +using AltV.Net.CApi.Exceptions; using AltV.Net.Client.Elements.Data; using AltV.Net.Client.Elements.Factories; using AltV.Net.Client.Elements.Pools; -using AltV.Net.Client.Extensions; -using AltV.Net.Client.WinApi; using AltV.Net.Data; using AltV.Net.Elements.Entities; using AltV.Net.Shared; @@ -37,12 +36,16 @@ public static void MainWithAssembly(Assembly resourceAssembly, IntPtr resourcePo unsafe { - if (library.Shared.Core_GetEventEnumSize() != (byte) EventType.SIZE) + if (library.Shared.Core_GetEventTypeSize() != (byte) EventType.SIZE) { - throw new Exception("Event type enum size doesn't match. Please, update the nuget"); + throw new OutdatedSdkException("EventType", "Event type enum size doesn't match. Please, update the nuget"); + } + if (library.Shared.Core_GetBaseObjectTypeSize() != (byte) BaseObjectType.Size) + { + throw new OutdatedSdkException("BaseObjectType", "BaseObject type enum size doesn't match. Please, update the nuget"); } } - + AppDomain.CurrentDomain.UnhandledException += OnUnhandledException; _resourcePointer = resourcePointer; @@ -62,18 +65,38 @@ public static void MainWithAssembly(Assembly resourceAssembly, IntPtr resourcePo var playerPool = new PlayerPool(_resource.GetPlayerFactory()); var vehiclePool = new VehiclePool(_resource.GetVehicleFactory()); + var pedPool = new PedPool(_resource.GetPedFactory()); var blipPool = new BlipPool(_resource.GetBlipFactory()); var checkpointPool = new CheckpointPool(_resource.GetCheckpointFactory()); + var colShapePool = new ColShapePool(_resource.GetColShapeFactory()); var audioPool = new AudioPool(_resource.GetAudioFactory()); var httpClientPool = new HttpClientPool(_resource.GetHttpClientFactory()); var webSocketClientPool = new WebSocketClientPool(_resource.GetWebSocketClientFactory()); var webViewPool = new WebViewPool(_resource.GetWebViewFactory()); var rmlDocumentPool = new RmlDocumentPool(new RmlDocumentFactory()); var rmlElementPool = new RmlElementPool(new RmlElementFactory()); + var localObjectPool = new LocalObjectPool(_resource.GetLocalObjectFactory()); var objectPool = new ObjectPool(_resource.GetObjectFactory()); + var virtualEntityPool = new VirtualEntityPool(_resource.GetVirtualEntityFactory()); + var virtualEntityGroupPool = new VirtualEntityGroupPool(_resource.GetVirtualEntityGroupFactory()); + var textLabelPool = new TextLabelPool(_resource.GetTextLabelFactory()); var nativeResourcePool = new NativeResourcePool(_resource.GetResourceFactory()); - var baseBaseObjectPool = new BaseBaseObjectPool(playerPool, vehiclePool, blipPool, checkpointPool, audioPool, httpClientPool, webSocketClientPool, webViewPool, rmlElementPool, rmlDocumentPool, objectPool); - var baseEntityPool = new BaseEntityPool(playerPool, vehiclePool); + var localVehiclePool = new LocalVehiclePool(_resource.GetLocalVehicleFactory()); + var localPedPool = new LocalPedPool(_resource.GetLocalPedFactory()); + var audioFilterPool = new AudioFilterPool(_resource.GetAudioFilterFactory()); + var audioOutputPool = new AudioOutputPool(_resource.GetAudioOutputFactory()); + var AudioOutputAttachedPool = new AudioOutputAttachedPool(_resource.GetAudioOutputAttachedFactory()); + var AudioOutputFrontendPool = new AudioOutputFrontendPool(_resource.GetAudioOutputFrontendFactory()); + var AudioOutputWorldPool = new AudioOutputWorldPool(_resource.GetAudioOutputWorldFactory()); + var fontPool = new FontPool(_resource.GetFontFactory()); + var markerPool = new MarkerPool(_resource.GetMarkerFactory()); + var baseBaseObjectPool = new PoolManager(playerPool, vehiclePool, pedPool, + blipPool, checkpointPool, audioPool, + httpClientPool, webSocketClientPool, webViewPool, + rmlElementPool, rmlDocumentPool, localObjectPool, objectPool, + virtualEntityPool, virtualEntityGroupPool, + textLabelPool, colShapePool, localVehiclePool, + localPedPool, audioFilterPool, audioOutputPool, AudioOutputFrontendPool, AudioOutputAttachedPool, AudioOutputWorldPool, fontPool, markerPool); var timerPool = new TimerPool(); var natives = _resource.GetNatives(library); @@ -82,19 +105,7 @@ public static void MainWithAssembly(Assembly resourceAssembly, IntPtr resourcePo library, corePointer, resourcePointer, - playerPool, - vehiclePool, - blipPool, - checkpointPool, - audioPool, - httpClientPool, - webSocketClientPool, - webViewPool, - rmlDocumentPool, - rmlElementPool, - objectPool, baseBaseObjectPool, - baseEntityPool, nativeResourcePool, timerPool, logger, @@ -106,9 +117,21 @@ public static void MainWithAssembly(Assembly resourceAssembly, IntPtr resourcePo AltShared.Core = client; Alt.Log("Core initialized"); - _core.GetPlayers(); - _core.GetVehicles(); - _core.GetBlips(); + _core.GetAllPlayers(); + _core.GetAllVehicles(); + _core.GetAllBlips(); + _core.GetAllCheckpoints(); + _core.GetAllColShapes(); + _core.GetAllMarkers(); + _core.GetAllPeds(); + _core.GetAllLocalObjects(); + _core.GetAllLocalPeds(); + _core.GetAllLocalVehicles(); + _core.GetAllNetworkObjects(); + _core.GetAllTextLabels(); + _core.GetAllVirtualEntities(); + _core.GetAllVirtualEntityGroups(); + _core.GetAllWorldObjects(); playerPool.InitLocalPlayer(_core); @@ -118,21 +141,21 @@ public static void MainWithAssembly(Assembly resourceAssembly, IntPtr resourcePo _resource.OnStart(); Alt.Log("Startup finished"); } - + private static void OnUnhandledException(object _, UnhandledExceptionEventArgs e) { var exception = e.ExceptionObject as Exception; Alt.LogError(e.IsTerminating ? "FATAL EXCEPTION:" : "UNHANDLED EXCEPTION:"); Alt.LogError(exception?.ToString()); _resource.OnUnhandledException(e); - + if (!e.IsTerminating) return; } public static void OnStop() { AppDomain.CurrentDomain.UnhandledException -= OnUnhandledException; - + _resource.OnStop(); Alt.Log("Stopping timers"); @@ -141,50 +164,32 @@ public static void OnStop() safeTimer.Stop(); safeTimer.Dispose(); } - _core.PlayerPool.Dispose(); - _core.VehiclePool.Dispose(); - _core.BlipPool.Dispose(); - _core.AudioPool.Dispose(); - _core.CheckpointPool.Dispose(); - _core.HttpClientPool.Dispose(); - _core.WebSocketClientPool.Dispose(); - _core.WebViewPool.Dispose(); - _core.RmlElementPool.Dispose(); - _core.RmlDocumentPool.Dispose(); + _core.PoolManager.Dispose(); _core.Resource.CSharpResourceImpl.Dispose(); } - public static void OnCreatePlayer(IntPtr pointer, ushort id) - { - _core.OnCreatePlayer(pointer, id); - } - - public static void OnRemovePlayer(IntPtr pointer) - { - _core.OnRemoveEntity(pointer, BaseObjectType.Player); - _core.OnRemovePlayer(pointer); - } - - public static void OnCreateObject(IntPtr pointer, ushort id) - { - _core.OnCreateObject(pointer, id); - } - - public static void OnRemoveObject(IntPtr pointer) + public static void OnCreateBaseObject(IntPtr baseObject, BaseObjectType type, uint id) { - _core.OnRemoveObject(pointer); + _core.OnCreateBaseObject(baseObject, type, id); } - public static void OnCreateVehicle(IntPtr pointer, ushort id) + public static void OnRemoveBaseObject(IntPtr baseObject, BaseObjectType type) { - _core.OnCreateVehicle(pointer, id); - } + if (type == BaseObjectType.Player) + { + _core.OnRemoveEntity(baseObject, BaseObjectType.Player); + } + else if (type == BaseObjectType.Vehicle) + { + _core.OnRemoveEntity(baseObject, BaseObjectType.Vehicle); + } + else if (type == BaseObjectType.Ped) + { + _core.OnRemoveEntity(baseObject, BaseObjectType.Ped); + } - public static void OnRemoveVehicle(IntPtr pointer) - { - _core.OnRemoveEntity(pointer, BaseObjectType.Vehicle); - _core.OnRemoveVehicle(pointer); + _core.OnRemoveBaseObject(baseObject, type); } public static void OnTick() @@ -290,15 +295,9 @@ public static void OnWebSocketEvent(IntPtr webSocket, string name, IntPtr pointe _core.OnWebSocketEvent(webSocket, name, args); } - public static void OnRmlElementEvent(IntPtr webView, string name, IntPtr pointer, ulong size) + public static void OnRmlElementEvent(IntPtr rmlElement, string name, IntPtr pointer) { - var args = new IntPtr[size]; - if (pointer != IntPtr.Zero) - { - Marshal.Copy(pointer, args, 0, (int) size); - } - - _core.OnRmlElementEvent(webView, name, args); + _core.OnRmlElementEvent(rmlElement, name, pointer); } public static void OnConsoleCommand(string name, @@ -350,9 +349,10 @@ public static void OnPlayerWeaponChange(uint oldWeapon, uint newWeapon) } public static void OnWeaponDamage(IntPtr eventPointer, IntPtr entityPointer, - BaseObjectType entityType, uint weapon, ushort damage, Position shotOffset, BodyPart bodyPart) + BaseObjectType entityType, uint weapon, ushort damage, Position shotOffset, BodyPart bodyPart, + IntPtr sourceEntityPointer, BaseObjectType sourceEntityType) { - _core.OnWeaponDamage(eventPointer, entityPointer, entityType, weapon, damage, shotOffset, bodyPart); + _core.OnWeaponDamage(eventPointer, entityPointer, entityType, weapon, damage, shotOffset, bodyPart, sourceEntityPointer, sourceEntityType); } public static void OnLocalMetaChange(string key, IntPtr value, IntPtr oldValue) @@ -387,14 +387,13 @@ public static void OnWindowResolutionChange(Vector2 oldRes, Vector2 newRes) public static void OnNetOwnerChange(IntPtr target, BaseObjectType type, IntPtr newOwner, IntPtr oldOwner) { - var playerPool = _core.PlayerPool.GetAllEntities().Select(x => x.PlayerNativePointer); + var playerPool = _core.PoolManager.Player.GetAllEntities().Select(x => x.PlayerNativePointer); _core.OnNetOwnerChange(target, type, newOwner, oldOwner); } - public static void OnRemoveEntity(IntPtr target, BaseObjectType type) + public static void OnWorldObjectPositionChange(IntPtr target, BaseObjectType type, Position position) { - // todo deleted from api - _core.OnRemoveEntity(target, type); + _core.OnWorldObjectPositionChange(target, type, position); } public static void OnPlayerLeaveVehicle(IntPtr vehicle, byte seat) @@ -402,84 +401,81 @@ public static void OnPlayerLeaveVehicle(IntPtr vehicle, byte seat) _core.OnPlayerLeaveVehicle(vehicle, seat); } - public static void OnBlipCreate(IntPtr blipPointer) + public static void OnWorldObjectStreamIn(IntPtr target, BaseObjectType type) { - _core.OnBlipCreate(blipPointer); + _core.OnWorldObjectStreamIn(target, type); } - public static void OnWebViewCreate(IntPtr webView) + public static void OnWorldObjectStreamOut(IntPtr target, BaseObjectType type) { - _core.OnWebViewCreate(webView); + _core.OnWorldObjectStreamOut(target, type); } - public static void OnCheckpointCreate(IntPtr checkpoint) + public static void OnColShape(IntPtr colshapepointer, IntPtr targetentitypointer, BaseObjectType entitytype, byte state) { - _core.OnCheckpointCreate(checkpoint); + _core.OnColShape(colshapepointer, targetentitypointer, entitytype, state == 1); } - public static void OnWebSocketClientCreate(IntPtr webSocket) + public static void OnCheckpoint(IntPtr colshapepointer, IntPtr targetentitypointer, BaseObjectType entitytype, byte state) { - _core.OnWebSocketClientCreate(webSocket); + _core.OnCheckpoint(colshapepointer, targetentitypointer, entitytype, state == 1); } - public static void OnHttpClientCreate(IntPtr httpClient) + public static void OnMetaChange(IntPtr target, BaseObjectType type, string key, IntPtr value, IntPtr oldvalue) { - _core.OnHttpClientCreate(httpClient); + _core.OnMetaChange(target, type, key, value, oldvalue); } - public static void OnAudioCreate(IntPtr audio) + public static void OnPlayerStartEnterVehicle(IntPtr targetpointer, IntPtr player, byte seat) { - _core.OnAudioCreate(audio); + _core.OnPlayerStartEnterVehicle(targetpointer, player, seat); } - public static void OnRmlElementCreate(IntPtr element) + public static void OnPlayerStartLeaveVehicle(IntPtr targetpointer, IntPtr player, byte seat) { - _core.OnRmlElementCreate(element); + _core.OnPlayerStartLeaveVehicle(targetpointer, player, seat); } - public static void OnRmlDocumentCreate(IntPtr document) + public static void OnEntityHitEntity(IntPtr targetpointer, BaseObjectType targettype, IntPtr damagerpointer, BaseObjectType damagertype, uint weaponhash) { - _core.OnRmlDocumentCreate(document); + _core.OnEntityHitEntity(targetpointer, targettype, damagerpointer, damagertype, weaponhash); } - public static void OnBlipRemove(IntPtr blipPointer) + public static void OnPlayerBulletHit(uint weapon, IntPtr victimpointer, BaseObjectType victimtype, Position pos) { - _core.OnBlipRemove(blipPointer); + _core.OnPlayerBulletHit(weapon, victimpointer, victimtype, pos); } - public static void OnWebViewRemove(IntPtr webView) + public static void OnVoiceConnection(VoiceConnectionState state) { - _core.OnWebViewRemove(webView); + _core.OnVoiceConnection(state); } - public static void OnCheckpointRemove(IntPtr checkpoint) + public static void OnAudioEvent(IntPtr audio, string name, IntPtr pointer, ulong size) { - _core.OnCheckpointRemove(checkpoint); - } - - public static void OnWebSocketClientRemove(IntPtr webSocket) - { - _core.OnWebSocketClientRemove(webSocket); - } + var args = new IntPtr[size]; + if (pointer != IntPtr.Zero) + { + Marshal.Copy(pointer, args, 0, (int)size); + } - public static void OnHttpClientRemove(IntPtr httpClient) - { - _core.OnHttpClientRemove(httpClient); + _core.OnAudioEvent(audio, name, args); } - public static void OnAudioRemove(IntPtr audio) + public static void OnScriptRPCAnswer(ushort answerid, IntPtr answer, string answerError) { - _core.OnAudioRemove(audio); + _core.OnScriptRPCAnswer(answerid, answer, answerError); } - public static void OnRmlElementRemove(IntPtr element) + public static void OnScriptRPC(IntPtr eventpointer, string name, IntPtr pointer, ulong size, ushort answerid) { - _core.OnRmlElementRemove(element); - } + var args = new IntPtr[size]; + if (pointer != IntPtr.Zero) + { + Marshal.Copy(pointer, args, 0, (int)size); + } - public static void OnRmlDocumentRemove(IntPtr document) - { - _core.OnRmlDocumentRemove(document); + _core.OnScriptRPC(eventpointer, name, args, answerid); } } } \ No newline at end of file diff --git a/api/AltV.Net.Client/Natives.cs b/api/AltV.Net.Client/Natives.cs index a75150602..3efb5fd32 100644 --- a/api/AltV.Net.Client/Natives.cs +++ b/api/AltV.Net.Client/Natives.cs @@ -288,7 +288,7 @@ public unsafe interface INatives void DrawShadowedSpotLight(float posX, float posY, float posZ, float dirX, float dirY, float dirZ, int colorR, int colorG, int colorB, float distance, float brightness, float roundness, float radius, float falloff, int shadowId); void FadeUpPedLight(float p0); void UpdateLightsOnEntity(IEntity entity); - void UpdateLightsOnEntity(int entity); + void UpdateLightsOnEntity(uint entity); void SetLightOverrideMaxIntensityScale(int p0); float GetLightOverrideMaxIntensityScale(); /// @@ -482,11 +482,11 @@ public unsafe interface INatives /// GRAPHICS::ADD_ENTITY_ICON(a_0, "MP_Arrow"); /// I tried this and nothing happened... /// - int AddEntityIcon(int entity, string icon); + int AddEntityIcon(uint entity, string icon); void SetEntityIconVisibility(IEntity entity, bool toggle); - void SetEntityIconVisibility(int entity, bool toggle); + void SetEntityIconVisibility(uint entity, bool toggle); void SetEntityIconColor(IEntity entity, int red, int green, int blue, int alpha); - void SetEntityIconColor(int entity, int red, int green, int blue, int alpha); + void SetEntityIconColor(uint entity, int red, int green, int blue, int alpha); /// /// Sets the on-screen drawing origin for draw-functions (which is normally x=0,y=0 in the upper left corner of the screen) to a world coordinate. /// From now on, the screen coordinate which displays the given world coordinate on the screen is seen as x=0,y=0. @@ -530,7 +530,7 @@ public unsafe interface INatives /// /// Might be more appropriate in AUDIO? /// - void AttachTvAudioToEntity(int entity); + void AttachTvAudioToEntity(uint entity); void SetBinkMovieAudioFrontend(int binkMovie, bool p1); /// /// Probably changes tvs from being a 3d audio to being "global" audio @@ -607,7 +607,7 @@ public unsafe interface INatives /// /// Overriding ped badge texture to a passed texture. It's synced between players (even custom textures!), don't forget to request used dict on *all* clients to make it sync properly. Can be removed by passing empty strings. /// - bool OverridePedCrewLogoTexture(int ped, string txd, string txn); + bool OverridePedCrewLogoTexture(uint ped, string txd, string txn); void SetDistanceBlurStrengthOverride(float p0); /// /// Purpose of p0 and p1 unknown. @@ -803,7 +803,7 @@ public unsafe interface INatives /// Axis - Invert Axis Flags /// Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json /// - bool StartParticleFxNonLoopedOnPedBone(string effectName, int ped, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, int boneIndex, float scale, bool axisX, bool axisY, bool axisZ); + bool StartParticleFxNonLoopedOnPedBone(string effectName, uint ped, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, int boneIndex, float scale, bool axisX, bool axisY, bool axisZ); /// /// Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json /// @@ -811,7 +811,7 @@ public unsafe interface INatives /// /// Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json /// - bool StartNetworkedParticleFxNonLoopedOnPedBone(string effectName, int ped, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, int boneIndex, float scale, bool axisX, bool axisY, bool axisZ); + bool StartNetworkedParticleFxNonLoopedOnPedBone(string effectName, uint ped, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, int boneIndex, float scale, bool axisX, bool axisY, bool axisZ); /// /// Starts a particle effect on an entity for example your player. /// Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json @@ -833,7 +833,7 @@ public unsafe interface INatives /// -can confirm START_PARTICLE_FX_NON_LOOPED_ON_PED_BONE does NOT work on vehicle bones. /// /// 0.5, 0.0, 0.0, 0.0, 1.0, false, false, false); - bool StartParticleFxNonLoopedOnEntity(string effectName, int entity, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, float scale, bool axisX, bool axisY, bool axisZ); + bool StartParticleFxNonLoopedOnEntity(string effectName, uint entity, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, float scale, bool axisX, bool axisY, bool axisZ); /// /// Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json /// @@ -841,7 +841,7 @@ public unsafe interface INatives /// /// Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json /// - bool StartNetworkedParticleFxNonLoopedOnEntity(string effectName, int entity, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, float scale, bool axisX, bool axisY, bool axisZ); + bool StartNetworkedParticleFxNonLoopedOnEntity(string effectName, uint entity, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, float scale, bool axisX, bool axisY, bool axisZ); /// /// Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json /// @@ -849,7 +849,7 @@ public unsafe interface INatives /// /// Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json /// - bool StartParticleFxNonLoopedOnEntityBone(string effectName, int entity, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, int boneIndex, float scale, bool axisX, bool axisY, bool axisZ); + bool StartParticleFxNonLoopedOnEntityBone(string effectName, uint entity, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, int boneIndex, float scale, bool axisX, bool axisY, bool axisZ); /// /// only works on some fx's, not networked /// @@ -878,7 +878,7 @@ public unsafe interface INatives /// /// Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json /// - int StartParticleFxLoopedOnPedBone(string effectName, int ped, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, int boneIndex, float scale, bool xAxis, bool yAxis, bool zAxis); + int StartParticleFxLoopedOnPedBone(string effectName, uint ped, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, int boneIndex, float scale, bool xAxis, bool yAxis, bool zAxis); /// /// Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json /// @@ -886,7 +886,7 @@ public unsafe interface INatives /// /// Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json /// - int StartParticleFxLoopedOnEntity(string effectName, int entity, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, float scale, bool xAxis, bool yAxis, bool zAxis); + int StartParticleFxLoopedOnEntity(string effectName, uint entity, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, float scale, bool xAxis, bool yAxis, bool zAxis); /// /// Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json /// @@ -894,7 +894,7 @@ public unsafe interface INatives /// /// Full list of particle effect dictionaries and effects by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/particleEffectsCompact.json /// - int StartParticleFxLoopedOnEntityBone(string effectName, int entity, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, int boneIndex, float scale, bool xAxis, bool yAxis, bool zAxis); + int StartParticleFxLoopedOnEntityBone(string effectName, uint entity, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, int boneIndex, float scale, bool xAxis, bool yAxis, bool zAxis); /// /// /// https @@ -904,7 +904,7 @@ public unsafe interface INatives /// /// https /// https - int StartNetworkedParticleFxLoopedOnEntity(string effectName, int entity, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, float scale, bool xAxis, bool yAxis, bool zAxis, float r, float g, float b, float a); + int StartNetworkedParticleFxLoopedOnEntity(string effectName, uint entity, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, float scale, bool xAxis, bool yAxis, bool zAxis, float r, float g, float b, float a); /// /// /// https @@ -914,14 +914,14 @@ public unsafe interface INatives /// /// https /// https - int StartNetworkedParticleFxLoopedOnEntityBone(string effectName, int entity, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, int boneIndex, float scale, bool xAxis, bool yAxis, bool zAxis, float r, float g, float b, float a); + int StartNetworkedParticleFxLoopedOnEntityBone(string effectName, uint entity, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, int boneIndex, float scale, bool xAxis, bool yAxis, bool zAxis, float r, float g, float b, float a); /// /// /// is always 0 in the native scripts void StopParticleFxLooped(int ptfxHandle, bool p1); void RemoveParticleFx(int ptfxHandle, bool p1); void RemoveParticleFxFromEntity(IEntity entity); - void RemoveParticleFxFromEntity(int entity); + void RemoveParticleFxFromEntity(uint entity); void RemoveParticleFxInRange(float X, float Y, float Z, float radius); void ForceParticleFxInVehicleInterior(int p0, int p1); bool DoesParticleFxLoopedExist(int ptfxHandle); @@ -937,7 +937,7 @@ public unsafe interface INatives void SetParticleFxLoopedFarClipDist(int ptfxHandle, float range); void SetParticleFxCamInsideVehicle(bool p0); void SetParticleFxCamInsideNonplayerVehicle(IVehicle vehicle, bool p1); - void SetParticleFxCamInsideNonplayerVehicle(int vehicle, bool p1); + void SetParticleFxCamInsideNonplayerVehicle(uint vehicle, bool p1); void SetParticleFxShootoutBoat(int p0); void ClearParticleFxShootoutBoat(); void SetParticleFxBloodScale(int p0); @@ -989,7 +989,7 @@ public unsafe interface INatives void SetWeatherPtfxOverrideCurrLevel(float p0); void WashDecalsInRange(float x, float y, float z, float range, float p4); void WashDecalsFromVehicle(IVehicle vehicle, float p1); - void WashDecalsFromVehicle(int vehicle, float p1); + void WashDecalsFromVehicle(uint vehicle, float p1); /// /// Fades nearby decals within the range specified /// @@ -998,10 +998,10 @@ public unsafe interface INatives /// Removes all decals in range from a position, it includes the bullet holes, blood pools, petrol... ///
void RemoveDecalsInRange(float x, float y, float z, float range); - void RemoveDecalsFromObject(int obj); - void RemoveDecalsFromObjectFacing(int obj, float x, float y, float z); + void RemoveDecalsFromObject(uint obj); + void RemoveDecalsFromObjectFacing(uint obj, float x, float y, float z); void RemoveDecalsFromVehicle(IVehicle vehicle); - void RemoveDecalsFromVehicle(int vehicle); + void RemoveDecalsFromVehicle(uint vehicle); /// /// decal types: /// public enum DecalTypes @@ -1033,11 +1033,11 @@ public unsafe interface INatives /// /// /// is always chassis_dummy in the scripts. The x/y/z params are location relative to the chassis bone. - bool AddVehicleCrewEmblem(IVehicle vehicle, int ped, int boneIndex, float x1, float x2, float x3, float y1, float y2, float y3, float z1, float z2, float z3, float scale, int p13, int alpha); + bool AddVehicleCrewEmblem(IVehicle vehicle, uint ped, int boneIndex, float x1, float x2, float x3, float y1, float y2, float y3, float z1, float z2, float z3, float scale, int p13, int alpha); /// /// /// is always chassis_dummy in the scripts. The x/y/z params are location relative to the chassis bone. - bool AddVehicleCrewEmblem(int vehicle, IPlayer ped, int boneIndex, float x1, float x2, float x3, float y1, float y2, float y3, float z1, float z2, float z3, float scale, int p13, int alpha); + bool AddVehicleCrewEmblem(uint vehicle, IPlayer ped, int boneIndex, float x1, float x2, float x3, float y1, float y2, float y3, float z1, float z2, float z3, float scale, int p13, int alpha); /// /// /// is always chassis_dummy in the scripts. The x/y/z params are location relative to the chassis bone. @@ -1045,16 +1045,16 @@ public unsafe interface INatives /// /// /// is always chassis_dummy in the scripts. The x/y/z params are location relative to the chassis bone. - bool AddVehicleCrewEmblem(int vehicle, int ped, int boneIndex, float x1, float x2, float x3, float y1, float y2, float y3, float z1, float z2, float z3, float scale, int p13, int alpha); + bool AddVehicleCrewEmblem(uint vehicle, uint ped, int boneIndex, float x1, float x2, float x3, float y1, float y2, float y3, float z1, float z2, float z3, float scale, int p13, int alpha); /// /// bool AbortVehicleCrewEmblemRequest(ref int p0); void RemoveVehicleCrewEmblem(IVehicle vehicle, int p1); - void RemoveVehicleCrewEmblem(int vehicle, int p1); + void RemoveVehicleCrewEmblem(uint vehicle, int p1); int GetVehicleCrewEmblemRequestState(IVehicle vehicle, int p1); - int GetVehicleCrewEmblemRequestState(int vehicle, int p1); + int GetVehicleCrewEmblemRequestState(uint vehicle, int p1); bool DoesVehicleHaveCrewEmblem(IVehicle vehicle, int p1); - bool DoesVehicleHaveCrewEmblem(int vehicle, int p1); + bool DoesVehicleHaveCrewEmblem(uint vehicle, int p1); void DisableCompositeShotgunDecals(bool toggle); void DisableScuffDecals(bool toggle); void SetDecalBulletImpactRangeScale(float p0); @@ -1348,13 +1348,13 @@ public unsafe interface INatives /// All presets can be found in common\data\ui\uiscenes.meta /// /// was always "CELEBRATION_WINNER" - bool Ui3dsceneAssignPedToSlot(string presetName, IPlayer ped, int p2, float posX, float posY, float posZ); + bool Ui3dsceneAssignPedToSlot(string presetName, IPlayer ped, int slot, float posX, float posY, float posZ); /// /// It's called after UI3DSCENE_IS_AVAILABLE and UI3DSCENE_PUSH_PRESET /// All presets can be found in common\data\ui\uiscenes.meta /// /// was always "CELEBRATION_WINNER" - bool Ui3dsceneAssignPedToSlot(string presetName, int ped, int p2, float posX, float posY, float posZ); + bool Ui3dsceneAssignPedToSlot(string presetName, uint ped, int slot, float posX, float posY, float posZ); void Ui3dsceneClearPatchedData(); void Ui3dsceneMakePushedPresetPersistent(bool toggle); /// @@ -1421,11 +1421,11 @@ public unsafe interface INatives /// AUDIO::PLAY_PED_RINGTONE("Remote_Ring", PLAYER::PLAYER_PED_ID(), 1); /// AUDIO::PLAY_PED_RINGTONE("Dial_and_Remote_Ring", PLAYER::PLAYER_PED_ID(), 1); /// - void PlayPedRingtone(string ringtoneName, int ped, bool p2); + void PlayPedRingtone(string ringtoneName, uint ped, bool p2); bool IsPedRingtonePlaying(IPlayer ped); - bool IsPedRingtonePlaying(int ped); + bool IsPedRingtonePlaying(uint ped); void StopPedRingtone(IPlayer ped); - void StopPedRingtone(int ped); + void StopPedRingtone(uint ped); bool IsMobilePhoneCallOngoing(); bool IsMobileInterferenceActive(); void CreateNewScriptedConversation(); @@ -1460,10 +1460,10 @@ public unsafe interface INatives /// ================================================= /// One of the 2 calls in dialogue_handler.c p0 is in a while-loop, and so is determined to also possibly be 0 - 15. /// - void AddPedToConversation(int index, int ped, string p2); + void AddPedToConversation(int index, uint ped, string p2); void SetPositionForNullConvPed(int p0, float p1, float p2, float p3); void SetEntityForNullConvPed(int p0, IEntity entity); - void SetEntityForNullConvPed(int p0, int entity); + void SetEntityForNullConvPed(int p0, uint entity); /// /// This native controls where the game plays audio from. By default the microphone is positioned on the player. /// When p0 is true the game will play audio from the 3 positions inputted. @@ -1496,7 +1496,7 @@ public unsafe interface INatives /// Example from carsteal3.c: AUDIO::INTERRUPT_CONVERSATION(PLAYER::PLAYER_PED_ID(), "CST4_CFAA", "FRANKLIN"); /// Voicelines can be found in GTAV\x64\audio\sfx in files starting with "SS_" which seems to mean scripted speech. /// - void InterruptConversation(int ped, string voiceline, string speaker); + void InterruptConversation(uint ped, string voiceline, string speaker); /// /// One call found in the b617d scripts: /// AUDIO::INTERRUPT_CONVERSATION_AND_PAUSE(NETWORK::NET_TO_PED(l_3989._f26F[01]), "CONV_INTERRUPT_QUIT_IT", "LESTER"); @@ -1506,7 +1506,7 @@ public unsafe interface INatives /// One call found in the b617d scripts: /// AUDIO::INTERRUPT_CONVERSATION_AND_PAUSE(NETWORK::NET_TO_PED(l_3989._f26F[01]), "CONV_INTERRUPT_QUIT_IT", "LESTER"); /// - void InterruptConversationAndPause(int ped, string p1, string speaker); + void InterruptConversationAndPause(uint ped, string p1, string speaker); /// /// int GetVariationChosenForScriptedLine(ref int p0); @@ -1591,7 +1591,7 @@ public unsafe interface INatives /// gtaforums.com/topic/795622-audio-for-mods /// Full list of audio / sound names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/soundNames.json /// - void PlaySoundFromEntity(int soundId, string audioName, int entity, string audioRef, bool isNetwork, int p5); + void PlaySoundFromEntity(int soundId, string audioName, uint entity, string audioRef, bool isNetwork, int p5); /// /// Only used with "formation_flying_blips_soundset" and "biker_formation_blips_soundset". /// @@ -1601,7 +1601,7 @@ public unsafe interface INatives /// Only used with "formation_flying_blips_soundset" and "biker_formation_blips_soundset". /// /// is always the model of p2 - void PlaySoundFromEntityHash(int soundId, uint model, int entity, uint soundSetHash, int p4, int p5); + void PlaySoundFromEntityHash(int soundId, uint model, uint entity, uint soundSetHash, int p4, int p5); /// /// All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/eeFc5DiW /// gtaforums.com/topic/795622-audio-for-mods @@ -1663,7 +1663,7 @@ public unsafe interface INatives /// The ped to play the ambient speech. /// Name of the speech to play, eg. "GENERIC_HI". /// Can be one of the following: - void PlayPedAmbientSpeechNative(int ped, string speechName, string speechParam, int p3); + void PlayPedAmbientSpeechNative(uint ped, string speechName, string speechParam, int p3); /// /// Plays ambient speech. See also _0x5C57B85D. /// See PLAY_PED_AMBIENT_SPEECH_NATIVE for parameter specifications. @@ -1675,7 +1675,7 @@ public unsafe interface INatives /// See PLAY_PED_AMBIENT_SPEECH_NATIVE for parameter specifications. /// Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json /// - void PlayPedAmbientSpeechAndCloneNative(int ped, string speechName, string speechParam, int p3); + void PlayPedAmbientSpeechAndCloneNative(uint ped, string speechName, string speechParam, int p3); /// /// This is the same as PLAY_PED_AMBIENT_SPEECH_NATIVE and PLAY_PED_AMBIENT_SPEECH_AND_CLONE_NATIVE but it will allow you to play a speech file from a specific voice file. It works on players and all peds, even animals. /// EX (C#): @@ -1691,7 +1691,7 @@ public unsafe interface INatives /// The first param is the ped you want to play it on, the second is the speech name, the third is the voice name, the fourth is the speech param, and the last param is usually always 0. /// Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json /// - void PlayPedAmbientSpeechWithVoiceNative(int ped, string speechName, string voiceName, string speechParam, bool p4); + void PlayPedAmbientSpeechWithVoiceNative(uint ped, string speechName, string voiceName, string speechParam, bool p4); /// /// Full list of speeches and voices names by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/speeches.json /// @@ -1702,7 +1702,7 @@ public unsafe interface INatives void OverrideTrevorRage(string voiceEffect); void ResetTrevorRage(); void SetPlayerAngry(IPlayer ped, bool toggle); - void SetPlayerAngry(int ped, bool toggle); + void SetPlayerAngry(uint ped, bool toggle); /// /// Last 2 parameters always seem to be 0. /// EX: Function.Call(Hash.PLAY_PAIN, TestPed, 6, 0, 0); @@ -1724,7 +1724,7 @@ public unsafe interface INatives /// 7 - Scared Scream (Kinda Long) /// 8 - On Fire /// - void PlayPain(int ped, int painID, int p1, int p3); + void PlayPain(uint ped, int painID, int p1, int p3); void ReleaseWeaponAudio(); /// /// SLOWMO_T1_TRAILER_SMASH @@ -1755,11 +1755,11 @@ public unsafe interface INatives /// gtaforums.com/topic/795622-audio-for-mods/ /// All found occurrences in b617d, sorted alphabetically and identical lines removed: https://pastebin.com/FTeAj4yZ /// - void SetAmbientVoiceName(int ped, string name); + void SetAmbientVoiceName(uint ped, string name); void SetAmbientVoiceNameHash(IPlayer ped, uint hash); - void SetAmbientVoiceNameHash(int ped, uint hash); + void SetAmbientVoiceNameHash(uint ped, uint hash); uint GetAmbientVoiceNameHash(IPlayer ped); - uint GetAmbientVoiceNameHash(int ped); + uint GetAmbientVoiceNameHash(uint ped); /// /// Assigns some ambient voice to the ped. /// @@ -1767,9 +1767,9 @@ public unsafe interface INatives /// /// Assigns some ambient voice to the ped. /// - void SetPedVoiceFull(int ped); + void SetPedVoiceFull(uint ped); void SetPedRaceAndVoiceGroup(IPlayer ped, int p1, uint voiceGroup); - void SetPedRaceAndVoiceGroup(int ped, int p1, uint voiceGroup); + void SetPedRaceAndVoiceGroup(uint ped, int p1, uint voiceGroup); /// /// From the scripts: /// AUDIO::SET_PED_VOICE_GROUP(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("PAIGE_PVG")); @@ -1785,7 +1785,7 @@ public unsafe interface INatives /// AUDIO::SET_PED_VOICE_GROUP(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("FEMALE_LOST_BLACK_PVG")); /// AUDIO::SET_PED_VOICE_GROUP(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("FEMALE_LOST_WHITE_PVG")); /// - void SetPedVoiceGroup(int ped, uint voiceGroupHash); + void SetPedVoiceGroup(uint ped, uint voiceGroupHash); /// /// Dat151RelType == 29 /// @@ -1793,7 +1793,7 @@ public unsafe interface INatives /// /// Dat151RelType == 29 /// - void SetPedVoiceGroupFromRaceToPvg(int ped, uint voiceGroupHash); + void SetPedVoiceGroupFromRaceToPvg(uint ped, uint voiceGroupHash); /// /// BOOL p1: 0 = Female; 1 = Male /// @@ -1801,17 +1801,17 @@ public unsafe interface INatives /// /// BOOL p1: 0 = Female; 1 = Male /// - void SetPedGender(int ped, bool p1); + void SetPedGender(uint ped, bool p1); void StopCurrentPlayingSpeech(IPlayer ped); - void StopCurrentPlayingSpeech(int ped); + void StopCurrentPlayingSpeech(uint ped); void StopCurrentPlayingAmbientSpeech(IPlayer ped); - void StopCurrentPlayingAmbientSpeech(int ped); + void StopCurrentPlayingAmbientSpeech(uint ped); bool IsAmbientSpeechPlaying(IPlayer ped); - bool IsAmbientSpeechPlaying(int ped); + bool IsAmbientSpeechPlaying(uint ped); bool IsScriptedSpeechPlaying(IPlayer p0); - bool IsScriptedSpeechPlaying(int p0); + bool IsScriptedSpeechPlaying(uint p0); bool IsAnySpeechPlaying(IPlayer ped); - bool IsAnySpeechPlaying(int ped); + bool IsAnySpeechPlaying(uint ped); bool IsAnyPositionalSpeechPlaying(); /// /// Checks if the ped can play the speech or has the speech file, p2 is usually false. @@ -1820,9 +1820,9 @@ public unsafe interface INatives /// /// Checks if the ped can play the speech or has the speech file, p2 is usually false. /// - bool DoesContextExistForThisPed(int ped, string speechName, bool p2); + bool DoesContextExistForThisPed(uint ped, string speechName, bool p2); bool IsPedInCurrentConversation(IPlayer ped); - bool IsPedInCurrentConversation(int ped); + bool IsPedInCurrentConversation(uint ped); /// /// Sets the ped drunk sounds. Only works with PLAYER_PED_ID /// ==================================================== @@ -1848,7 +1848,7 @@ public unsafe interface INatives /// } /// See NativeDB for reference: http://natives.altv.mp/#/0x95D2D383D5396B8A /// - void SetPedIsDrunk(int ped, bool toggle); + void SetPedIsDrunk(uint ped, bool toggle); /// /// Plays sounds from a ped with chop model. For example it used to play bark or sniff sounds. p1 is always 3 or 4294967295 in decompiled scripts. By a quick disassembling I can assume that this arg is unused. /// This native is works only when you call it on the ped with right model (ac_chop only ?) @@ -1860,9 +1860,9 @@ public unsafe interface INatives /// This native is works only when you call it on the ped with right model (ac_chop only ?) /// Speech Name can be: CHOP_SNIFF_SEQ CHOP_WHINE CHOP_LICKS_MOUTH CHOP_PANT bark GROWL SNARL BARK_SEQ /// - void PlayAnimalVocalization(int pedHandle, int p1, string speechName); + void PlayAnimalVocalization(uint pedHandle, int p1, string speechName); bool IsAnimalVocalizationPlaying(IPlayer pedHandle); - bool IsAnimalVocalizationPlaying(int pedHandle); + bool IsAnimalVocalizationPlaying(uint pedHandle); /// /// /// can be 0 or 1 (it's not a boolean value!). Effects audio of the animal. @@ -1870,7 +1870,7 @@ public unsafe interface INatives /// /// /// can be 0 or 1 (it's not a boolean value!). Effects audio of the animal. - void SetAnimalMood(int animal, int mood); + void SetAnimalMood(uint animal, int mood); bool IsMobilePhoneRadioActive(); void SetMobilePhoneRadioState(bool state); /// @@ -1910,17 +1910,17 @@ public unsafe interface INatives /// List of radio stations that are in the wheel, in clockwise order, as of LS Tuners DLC: https://git.io/J8a3k /// An older list including hidden radio stations: https://pastebin.com/Kj9t38KF /// - void SetVehRadioStation(int vehicle, string radioStation); + void SetVehRadioStation(uint vehicle, string radioStation); void SetVehHasNormalRadio(IVehicle vehicle); - void SetVehHasNormalRadio(int vehicle); + void SetVehHasNormalRadio(uint vehicle); bool IsVehicleRadioOn(IVehicle vehicle); - bool IsVehicleRadioOn(int vehicle); + bool IsVehicleRadioOn(uint vehicle); void SetVehForcedRadioThisFrame(IVehicle vehicle); - void SetVehForcedRadioThisFrame(int vehicle); + void SetVehForcedRadioThisFrame(uint vehicle); /// /// Full list of static emitters by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/staticEmitters.json /// - void SetEmitterRadioStation(string emitterName, string radioStation); + void SetEmitterRadioStation(string emitterName, string radioStation, int p2); /// /// Example: /// AUDIO::SET_STATIC_EMITTER_ENABLED((Any*)"LOS_SANTOS_VANILLA_UNICORN_01_STAGE", false); AUDIO::SET_STATIC_EMITTER_ENABLED((Any*)"LOS_SANTOS_VANILLA_UNICORN_02_MAIN_ROOM", false); AUDIO::SET_STATIC_EMITTER_ENABLED((Any*)"LOS_SANTOS_VANILLA_UNICORN_03_BACK_ROOM", false); @@ -1935,7 +1935,7 @@ public unsafe interface INatives /// /// Full list of static emitters by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/staticEmitters.json /// - void LinkStaticEmitterToEntity(string emitterName, int entity); + void LinkStaticEmitterToEntity(string emitterName, uint entity); /// /// Sets radio station by index. /// @@ -1962,9 +1962,9 @@ public unsafe interface INatives void SetRadioTrackWithStartOffset(string radioStationName, string mixName, int p2); void SetNextRadioTrack(string radioName, string radioTrack, string p2, string p3); void SetVehicleRadioLoud(IVehicle vehicle, bool toggle); - void SetVehicleRadioLoud(int vehicle, bool toggle); + void SetVehicleRadioLoud(uint vehicle, bool toggle); bool CanVehicleReceiveCbRadio(IVehicle vehicle); - bool CanVehicleReceiveCbRadio(int vehicle); + bool CanVehicleReceiveCbRadio(uint vehicle); void SetMobileRadioEnabledDuringGameplay(bool toggle); bool DoesPlayerVehHaveRadio(); bool IsPlayerVehRadioEnable(); @@ -1975,7 +1975,7 @@ public unsafe interface INatives /// /// can't seem to enable radio on cop cars etc /// - void SetVehicleRadioEnabled(int vehicle, bool toggle); + void SetVehicleRadioEnabled(uint vehicle, bool toggle); void SetPositionedPlayerVehicleRadioEmitterEnabled(int p0); /// /// Examples: @@ -2034,7 +2034,7 @@ public unsafe interface INatives int GetCurrentTrackPlayTime(string radioStationName); uint GetCurrentTrackSoundName(string radioStationName); void SetVehicleMissileWarningEnabled(IVehicle vehicle, bool toggle); - void SetVehicleMissileWarningEnabled(int vehicle, bool toggle); + void SetVehicleMissileWarningEnabled(uint vehicle, bool toggle); /// /// Full list of ambient zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ambientZones.json /// @@ -2084,7 +2084,7 @@ public unsafe interface INatives /// Plays the siren sound of a vehicle which is otherwise activated when fastly double-pressing the horn key. /// Only works on vehicles with a police siren. /// - void BlipSiren(int vehicle); + void BlipSiren(uint vehicle); /// /// Overrides the vehicle's horn hash. /// mute - p1 seems to be an option for muting the horn @@ -2100,7 +2100,7 @@ public unsafe interface INatives /// - the vehicle whose horn should be overwritten /// - maybe a horn id, since the function AUDIO::GET_VEHICLE_DEFAULT_HORN(veh) exists? /// When changing this hash on a vehicle, it will not return the 'overwritten' hash. It will still always return the default horn hash (same as GET_VEHICLE_DEFAULT_HORN) - void OverrideVehHorn(int vehicle, bool @override, int hornHash); + void OverrideVehHorn(uint vehicle, bool @override, int hornHash); /// /// Checks whether the horn of a vehicle is currently played. /// @@ -2108,7 +2108,7 @@ public unsafe interface INatives /// /// Checks whether the horn of a vehicle is currently played. /// - bool IsHornActive(int vehicle); + bool IsHornActive(uint vehicle); /// /// Makes pedestrians sound their horn longer, faster and more agressive when they use their horn. /// @@ -2141,9 +2141,9 @@ public unsafe interface INatives /// bool LoadStreamWithStartOffset(string streamName, int startOffset, string soundSet); void PlayStreamFromPed(IPlayer ped); - void PlayStreamFromPed(int ped); + void PlayStreamFromPed(uint ped); void PlayStreamFromVehicle(IVehicle vehicle); - void PlayStreamFromVehicle(int vehicle); + void PlayStreamFromVehicle(uint vehicle); /// /// Used with AUDIO::LOAD_STREAM /// Example from finale_heist2b.c4: @@ -2156,18 +2156,18 @@ public unsafe interface INatives /// AUDIO::PLAY_STREAM_FROM_OBJECT(l_36F[01]); /// } /// - void PlayStreamFromObject(int @object); + void PlayStreamFromObject(uint @object); void PlayStreamFrontend(); void PlayStreamFromPosition(float x, float y, float z); void StopStream(); void StopPedSpeaking(IPlayer ped, bool shaking); - void StopPedSpeaking(int ped, bool shaking); + void StopPedSpeaking(uint ped, bool shaking); void BlockAllSpeechFromPed(IPlayer ped, bool p1, bool p2); - void BlockAllSpeechFromPed(int ped, bool p1, bool p2); + void BlockAllSpeechFromPed(uint ped, bool p1, bool p2); void StopPedSpeakingSynced(IPlayer ped, bool p1); - void StopPedSpeakingSynced(int ped, bool p1); + void StopPedSpeakingSynced(uint ped, bool p1); void DisablePedPainAudio(IPlayer ped, bool toggle); - void DisablePedPainAudio(int ped, bool toggle); + void DisablePedPainAudio(uint ped, bool toggle); /// /// Common in the scripts: /// AUDIO::IS_AMBIENT_SPEECH_DISABLED(PLAYER::PLAYER_PED_ID()); @@ -2177,25 +2177,25 @@ public unsafe interface INatives /// Common in the scripts: /// AUDIO::IS_AMBIENT_SPEECH_DISABLED(PLAYER::PLAYER_PED_ID()); /// - bool IsAmbientSpeechDisabled(int ped); + bool IsAmbientSpeechDisabled(uint ped); void BlockSpeechContextGroup(string p0, int p1); void UnblockSpeechContextGroup(string p0); void SetSirenWithNoDriver(IVehicle vehicle, bool toggle); - void SetSirenWithNoDriver(int vehicle, bool toggle); + void SetSirenWithNoDriver(uint vehicle, bool toggle); void SetSirenBypassMpDriverCheck(IVehicle vehicle, bool toggle); - void SetSirenBypassMpDriverCheck(int vehicle, bool toggle); + void SetSirenBypassMpDriverCheck(uint vehicle, bool toggle); void TriggerSirenAudio(IVehicle vehicle); - void TriggerSirenAudio(int vehicle); + void TriggerSirenAudio(uint vehicle); void SetHornPermanentlyOn(IVehicle vehicle); - void SetHornPermanentlyOn(int vehicle); + void SetHornPermanentlyOn(uint vehicle); void SetHornEnabled(IVehicle vehicle, bool toggle); - void SetHornEnabled(int vehicle, bool toggle); + void SetHornEnabled(uint vehicle, bool toggle); void SetAudioVehiclePriority(IVehicle vehicle, int p1); - void SetAudioVehiclePriority(int vehicle, int p1); + void SetAudioVehiclePriority(uint vehicle, int p1); void SetHornPermanentlyOnTime(IVehicle vehicle, float time); - void SetHornPermanentlyOnTime(int vehicle, float time); + void SetHornPermanentlyOnTime(uint vehicle, float time); void UseSirenAsHorn(IVehicle vehicle, bool toggle); - void UseSirenAsHorn(int vehicle, bool toggle); + void UseSirenAsHorn(uint vehicle, bool toggle); /// /// This native sets the audio of the specified vehicle to the audioName (p1). /// Use the audioNameHash found in vehicles.meta @@ -2211,17 +2211,17 @@ public unsafe interface INatives /// _SET_VEHICLE_AUDIO(veh, "ADDER"); /// The selected vehicle will now have the audio of the Adder. /// - void ForceUseAudioGameObject(int vehicle, string audioName); + void ForceUseAudioGameObject(uint vehicle, string audioName); void PreloadVehicleAudioBank(uint vehicleModel); void SetVehicleStartupRevSound(IVehicle vehicle, string p1, string p2); - void SetVehicleStartupRevSound(int vehicle, string p1, string p2); + void SetVehicleStartupRevSound(uint vehicle, string p1, string p2); void ResetVehicleStartupRevSound(IVehicle vehicle); - void ResetVehicleStartupRevSound(int vehicle); + void ResetVehicleStartupRevSound(uint vehicle); void SetVehicleForceReverseWarning(int p0, int p1); bool IsVehicleAudiblyDamaged(IVehicle vehicle); - bool IsVehicleAudiblyDamaged(int vehicle); + bool IsVehicleAudiblyDamaged(uint vehicle); void SetVehicleAudioEngineDamageFactor(IVehicle vehicle, float damageFactor); - void SetVehicleAudioEngineDamageFactor(int vehicle, float damageFactor); + void SetVehicleAudioEngineDamageFactor(uint vehicle, float damageFactor); /// /// Makes an engine rattling noise when you decelerate, you need to be going faster to hear lower values /// @@ -2231,11 +2231,11 @@ public unsafe interface INatives /// Makes an engine rattling noise when you decelerate, you need to be going faster to hear lower values /// /// 0.0f - 1.0f, only used once with 1.0f in R* Scripts (nigel2) - void SetVehicleAudioBodyDamageFactor(int vehicle, float intensity); + void SetVehicleAudioBodyDamageFactor(uint vehicle, float intensity); void EnableVehicleFanbeltDamage(IVehicle vehicle, bool toggle); - void EnableVehicleFanbeltDamage(int vehicle, bool toggle); + void EnableVehicleFanbeltDamage(uint vehicle, bool toggle); void EnableVehicleExhaustPops(IVehicle vehicle, bool toggle); - void EnableVehicleExhaustPops(int vehicle, bool toggle); + void EnableVehicleExhaustPops(uint vehicle, bool toggle); /// /// SET_VEHICLE_BOOST_ACTIVE(vehicle, 1, 0); /// SET_VEHICLE_BOOST_ACTIVE(vehicle, 0, 0); @@ -2247,9 +2247,9 @@ public unsafe interface INatives /// SET_VEHICLE_BOOST_ACTIVE(vehicle, 0, 0); /// Will give a boost-soundeffect. /// - void SetVehicleBoostActive(int vehicle, bool toggle); + void SetVehicleBoostActive(uint vehicle, bool toggle); void SetPlayerVehicleAlarmAudioActive(IVehicle vehicle, bool toggle); - void SetPlayerVehicleAlarmAudioActive(int vehicle, bool toggle); + void SetPlayerVehicleAlarmAudioActive(uint vehicle, bool toggle); void SetScriptUpdateDoorAudio(uint doorHash, bool toggle); /// /// @@ -2258,7 +2258,7 @@ public unsafe interface INatives /// /// /// see SET_VEHICLE_DOOR_SHUT - void PlayVehicleDoorOpenSound(int vehicle, int doorId); + void PlayVehicleDoorOpenSound(uint vehicle, int doorId); /// /// /// see SET_VEHICLE_DOOR_SHUT @@ -2266,7 +2266,7 @@ public unsafe interface INatives /// /// /// see SET_VEHICLE_DOOR_SHUT - void PlayVehicleDoorCloseSound(int vehicle, int doorId); + void PlayVehicleDoorCloseSound(uint vehicle, int doorId); /// /// Works for planes only. /// @@ -2274,7 +2274,7 @@ public unsafe interface INatives /// /// Works for planes only. /// - void EnableStallWarningSounds(int vehicle, bool toggle); + void EnableStallWarningSounds(uint vehicle, bool toggle); bool IsGameInControlOfMusic(); void SetGpsActive(bool active); /// @@ -2321,9 +2321,9 @@ public unsafe interface INatives /// All found occurrences in b678d: /// https://pastebin.com/ceu67jz8 /// - void AddEntityToAudioMixGroup(int entity, string groupName, float p2); + void AddEntityToAudioMixGroup(uint entity, string groupName, float p2); void RemoveEntityFromAudioMixGroup(IEntity entity, float p1); - void RemoveEntityFromAudioMixGroup(int entity, float p1); + void RemoveEntityFromAudioMixGroup(uint entity, float p1); bool AudioIsMusicPlaying(); /// /// This is an alias of AUDIO_IS_MUSIC_PLAYING. @@ -2398,11 +2398,11 @@ public unsafe interface INatives /// Returns hash of default vehicle horn /// Hash is stored in audVehicleAudioEntity /// - uint GetVehicleDefaultHorn(int vehicle); + uint GetVehicleDefaultHorn(uint vehicle); uint GetVehicleDefaultHornIgnoreMods(IVehicle vehicle); - uint GetVehicleDefaultHornIgnoreMods(int vehicle); + uint GetVehicleDefaultHornIgnoreMods(uint vehicle); void ResetPedAudioFlags(IPlayer ped); - void ResetPedAudioFlags(int ped); + void ResetPedAudioFlags(uint ped); /// /// Enables/disables ped's "loud" footstep sound. /// @@ -2410,7 +2410,7 @@ public unsafe interface INatives /// /// Enables/disables ped's "loud" footstep sound. /// - void SetPedFootstepsEventsEnabled(int ped, bool toggle); + void SetPedFootstepsEventsEnabled(uint ped, bool toggle); /// /// Enables/disables ped's "quiet" footstep sound. /// @@ -2418,13 +2418,13 @@ public unsafe interface INatives /// /// Enables/disables ped's "quiet" footstep sound. /// - void SetPedClothEventsEnabled(int ped, bool toggle); + void SetPedClothEventsEnabled(uint ped, bool toggle); /// /// Sets audio flag "OverridePlayerGroundMaterial" /// void OverridePlayerGroundMaterial(uint hash, bool toggle); void UseFootstepScriptSweeteners(IPlayer ped, bool p1, uint hash); - void UseFootstepScriptSweeteners(int ped, bool p1, uint hash); + void UseFootstepScriptSweeteners(uint ped, bool p1, uint hash); /// /// Sets audio flag "OverrideMicrophoneSettings" /// @@ -2436,7 +2436,7 @@ public unsafe interface INatives /// void DistantCopCarSirens(bool value); void SetSirenCanBeControlledByAudio(IVehicle vehicle, bool p1); - void SetSirenCanBeControlledByAudio(int vehicle, bool p1); + void SetSirenCanBeControlledByAudio(uint vehicle, bool p1); void EnableStuntJumpAudio(); /// /// Possible flag names: @@ -2460,7 +2460,7 @@ public unsafe interface INatives bool StopSynchronizedAudioEvent(int sceneID); void InitSynchSceneAudioWithPosition(string audioEvent, float x, float y, float z); void InitSynchSceneAudioWithEntity(string audioEvent, IEntity entity); - void InitSynchSceneAudioWithEntity(string audioEvent, int entity); + void InitSynchSceneAudioWithEntity(string audioEvent, uint entity); /// /// Needs to be called every frame. /// Audio mode to apply this frame: https://alloc8or.re/gta5/doc/enums/audSpecialEffectMode.txt @@ -2490,16 +2490,16 @@ public unsafe interface INatives void StopSmokeGrenadeExplosionSounds(); int GetMusicVolSlider(); void RequestTennisBanks(IPlayer ped); - void RequestTennisBanks(int ped); + void RequestTennisBanks(uint ped); void UnrequestTennisBanks(); void SetSkipMinigunSpinUpAudio(bool p0); void StopCutsceneAudio(); bool HasLoadedMpDataSet(); bool HasLoadedSpDataSet(); int GetVehicleHornSoundIndex(IVehicle vehicle); - int GetVehicleHornSoundIndex(int vehicle); + int GetVehicleHornSoundIndex(uint vehicle); void SetVehicleHornSoundIndex(IVehicle vehicle, int value); - void SetVehicleHornSoundIndex(int vehicle, int value); + void SetVehicleHornSoundIndex(uint vehicle, int value); /// /// BRAIN::ADD_SCRIPT_TO_RANDOM_PED("pb_prostitute", ${s_f_y_hooker_01}, 100, 0); /// - Nacorpio @@ -2513,7 +2513,7 @@ public unsafe interface INatives /// - Nacorpio /// void RegisterObjectScriptBrain(string scriptName, uint modelHash, int p2, float activationRange, int p4, int p5); - bool IsObjectWithinBrainActivationRange(int @object); + bool IsObjectWithinBrainActivationRange(uint @object); void RegisterWorldPointScriptBrain(string scriptName, float activationRange, int p2); /// /// Gets whether the world point the calling script is registered to is within desired range of the player. @@ -2674,11 +2674,11 @@ public unsafe interface INatives /// /// Last param determines if its relative to the Entity /// - void AttachCamToEntity(int cam, int entity, float xOffset, float yOffset, float zOffset, bool isRelative); + void AttachCamToEntity(int cam, uint entity, float xOffset, float yOffset, float zOffset, bool isRelative); void AttachCamToPedBone(int cam, IPlayer ped, int boneIndex, float x, float y, float z, bool heading); - void AttachCamToPedBone(int cam, int ped, int boneIndex, float x, float y, float z, bool heading); + void AttachCamToPedBone(int cam, uint ped, int boneIndex, float x, float y, float z, bool heading); void HardAttachCamToPedBone(int cam, IPlayer ped, int boneIndex, float p3, float p4, float p5, float p6, float p7, float p8, bool p9); - void HardAttachCamToPedBone(int cam, int ped, int boneIndex, float p3, float p4, float p5, float p6, float p7, float p8, bool p9); + void HardAttachCamToPedBone(int cam, uint ped, int boneIndex, float p3, float p4, float p5, float p6, float p7, float p8, bool p9); /// /// Example from am_mp_drone script: /// @@ -2688,7 +2688,7 @@ public unsafe interface INatives /// Example from am_mp_drone script: /// /// :HARD_ATTACH_CAM_TO_ENTITY(Local_190.f_169, NETWORK::NET_TO_OBJ(Local_190.f_159), 0f, 0f, 180f, Var0, 1); - void HardAttachCamToEntity(int cam, int entity, float xRot, float yRot, float zRot, float xOffset, float yOffset, float zOffset, bool isRelative); + void HardAttachCamToEntity(int cam, uint entity, float xRot, float yRot, float zRot, float xOffset, float yOffset, float zOffset, bool isRelative); /// /// This native works with vehicles only. Bone indexes are usually given by this native GET_ENTITY_BONE_INDEX_BY_NAME. /// @@ -2696,7 +2696,7 @@ public unsafe interface INatives /// /// This native works with vehicles only. Bone indexes are usually given by this native GET_ENTITY_BONE_INDEX_BY_NAME. /// - void AttachCamToVehicleBone(int cam, int vehicle, int boneIndex, bool relativeRotation, float rotX, float rotY, float rotZ, float offsetX, float offsetY, float offsetZ, bool fixedDirection); + void AttachCamToVehicleBone(int cam, uint vehicle, int boneIndex, bool relativeRotation, float rotX, float rotY, float rotZ, float offsetX, float offsetY, float offsetZ, bool fixedDirection); void DetachCam(int cam); /// /// The native seems to only be called once. @@ -2713,7 +2713,7 @@ public unsafe interface INatives /// /// /// always seems to be 1 i.e TRUE - void PointCamAtEntity(int cam, int entity, float p2, float p3, float p4, bool p5); + void PointCamAtEntity(int cam, uint entity, float p2, float p3, float p4, bool p5); /// /// Parameters p0-p5 seems correct. The bool p6 is unknown, but through every X360 script it's always 1. Please correct p0-p5 if any prove to be wrong. /// @@ -2721,7 +2721,7 @@ public unsafe interface INatives /// /// Parameters p0-p5 seems correct. The bool p6 is unknown, but through every X360 script it's always 1. Please correct p0-p5 if any prove to be wrong. /// - void PointCamAtPedBone(int cam, int ped, int boneIndex, float x, float y, float z, bool p6); + void PointCamAtPedBone(int cam, uint ped, int boneIndex, float x, float y, float z, bool p6); void StopCamPointing(int cam); /// /// Allows you to aim and shoot at the direction the camera is facing. @@ -2847,7 +2847,7 @@ public unsafe interface INatives /// /// /// 0..16 - void TriggerVehiclePartBrokenCameraShake(int vehicle, int p1, float p2); + void TriggerVehiclePartBrokenCameraShake(uint vehicle, int p1, float p2); /// /// Atleast one time in a script for the zRot Rockstar uses GET_ENTITY_HEADING to help fill the parameter. /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json @@ -2955,7 +2955,7 @@ public unsafe interface INatives /// /// Forces gameplay cam to specified ped as if you were the ped or spectating it /// - void SetGameplayCamFollowPedThisUpdate(int ped); + void SetGameplayCamFollowPedThisUpdate(uint ped); /// /// - During busted screen. /// - When player is coming out from a hospital. @@ -2973,12 +2973,12 @@ public unsafe interface INatives void DisableGameplayCamAltitudeFovScalingThisUpdate(); bool IsGameplayCamLookingBehind(); void SetGameplayCamIgnoreEntityCollisionThisUpdate(IEntity entity); - void SetGameplayCamIgnoreEntityCollisionThisUpdate(int entity); + void SetGameplayCamIgnoreEntityCollisionThisUpdate(uint entity); void DisableCamCollisionForObject(IEntity entity); - void DisableCamCollisionForObject(int entity); + void DisableCamCollisionForObject(uint entity); void BypassCameraCollisionBuoyancyTestThisUpdate(); void SetGameplayCamEntityToLimitFocusOverBoundingSphereThisUpdate(IEntity entity); - void SetGameplayCamEntityToLimitFocusOverBoundingSphereThisUpdate(int entity); + void SetGameplayCamEntityToLimitFocusOverBoundingSphereThisUpdate(uint entity); /// /// Sets some flag on cinematic camera /// @@ -3032,7 +3032,7 @@ public unsafe interface INatives /// /// Forces gameplay cam to specified vehicle as if you were in it /// - void SetInVehicleCamStateThisUpdate(int p0, int p1); + void SetInVehicleCamStateThisUpdate(uint p0, int p1); /// /// Disables first person camera for the current frame. /// Found in decompiled scripts: @@ -3123,13 +3123,13 @@ public unsafe interface INatives /// seems to consistently be 2 across scripts Vector3 GetFinalRenderedCamRot(int rotationOrder); Vector3 GetFinalRenderedRemotePlayerCamRot(IPlayer player, int rotationOrder); - Vector3 GetFinalRenderedRemotePlayerCamRot(int player, int rotationOrder); + Vector3 GetFinalRenderedRemotePlayerCamRot(uint player, int rotationOrder); /// /// Gets some camera fov /// float GetFinalRenderedCamFov(); float GetFinalRenderedRemotePlayerCamFov(IPlayer player); - float GetFinalRenderedRemotePlayerCamFov(int player); + float GetFinalRenderedRemotePlayerCamFov(uint player); float GetFinalRenderedCamNearClip(); float GetFinalRenderedCamFarClip(); float GetFinalRenderedCamNearDof(); @@ -3137,7 +3137,7 @@ public unsafe interface INatives float GetFinalRenderedCamMotionBlurStrength(); void SetGameplayCoordHint(float x, float y, float z, int duration, int blendOutDuration, int blendInDuration, int p6); void SetGameplayPedHint(IPlayer ped, float x1, float y1, float z1, bool p4, int duration, int blendOutDuration, int blendInDuration); - void SetGameplayPedHint(int ped, float x1, float y1, float z1, bool p4, int duration, int blendOutDuration, int blendInDuration); + void SetGameplayPedHint(uint ped, float x1, float y1, float z1, bool p4, int duration, int blendOutDuration, int blendInDuration); /// /// Focuses the camera on the specified vehicle. /// @@ -3145,8 +3145,8 @@ public unsafe interface INatives /// /// Focuses the camera on the specified vehicle. /// - void SetGameplayVehicleHint(int vehicle, float offsetX, float offsetY, float offsetZ, bool p4, int time, int easeInTime, int easeOutTime); - void SetGameplayObjectHint(int @object, float xOffset, float yOffset, float zOffset, bool p4, int time, int easeInTime, int easeOutTime); + void SetGameplayVehicleHint(uint vehicle, float offsetX, float offsetY, float offsetZ, bool p4, int time, int easeInTime, int easeOutTime); + void SetGameplayObjectHint(uint @object, float xOffset, float yOffset, float zOffset, bool p4, int time, int easeInTime, int easeOutTime); /// /// -244429742 /// 0 @@ -3162,7 +3162,7 @@ public unsafe interface INatives /// 1844968929 /// /// could be some sort of flag. Scripts use: - void SetGameplayEntityHint(int entity, float xOffset, float yOffset, float zOffset, bool p4, int time, int easeInTime, int easeOutTime, int p8); + void SetGameplayEntityHint(uint entity, float xOffset, float yOffset, float zOffset, bool p4, int time, int easeInTime, int easeOutTime, int p8); bool IsGameplayHintActive(); void StopGameplayHint(bool p0); /// @@ -3206,7 +3206,7 @@ public unsafe interface INatives /// /// hash is always JOAAT("CAMERA_MAN_SHOT") in decompiled scripts /// - void CreateCinematicShot(uint p0, int time, bool p2, int entity); + void CreateCinematicShot(uint p0, int time, bool p2, uint entity); /// /// Hash is always JOAAT("CAMERA_MAN_SHOT") in decompiled scripts /// @@ -3235,7 +3235,7 @@ public unsafe interface INatives /// Hardcoded to only work in multiplayer. /// void SetCutsceneCamFarClipThisUpdate(float p0); - int GetFocusPedOnScreen(float p0, int p1, float p2, float p3, float p4, float p5, float p6, int p7, int p8); + uint GetFocusPedOnScreen(float p0, int p1, float p2, float p3, float p4, float p5, float p6, int p7, int p8); void DisableNearClipScanThisUpdate(); /// /// if p0 is 0, effect is cancelled @@ -3384,7 +3384,7 @@ public unsafe interface INatives bool IsCutsceneActive(); bool IsCutscenePlaying(); int GetCutsceneSectionPlaying(); - int GetEntityIndexOfCutsceneEntity(string cutsceneEntName, uint modelHash); + uint GetEntityIndexOfCutsceneEntity(string cutsceneEntName, uint modelHash); int GetCutsceneConcatSectionPlaying(); /// /// @@ -3392,8 +3392,8 @@ public unsafe interface INatives bool IsCutsceneAuthorized(string cutsceneName); int DoesCutsceneHandleExist(int cutsceneHandle); void RegisterEntityForCutscene(IPlayer cutscenePed, string cutsceneEntName, int p2, uint modelHash, int p4); - void RegisterEntityForCutscene(int cutscenePed, string cutsceneEntName, int p2, uint modelHash, int p4); - int GetEntityIndexOfRegisteredEntity(string cutsceneEntName, uint modelHash); + void RegisterEntityForCutscene(uint cutscenePed, string cutsceneEntName, int p2, uint modelHash, int p4); + uint GetEntityIndexOfRegisteredEntity(string cutsceneEntName, uint modelHash); /// /// Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json /// @@ -3432,7 +3432,7 @@ public unsafe interface INatives /// void SetCutscenePedComponentVariation(string cutsceneEntName, int componentId, int drawableId, int textureId, uint modelHash); void SetCutscenePedComponentVariationFromPed(string cutsceneEntName, IPlayer ped, uint modelHash); - void SetCutscenePedComponentVariationFromPed(string cutsceneEntName, int ped, uint modelHash); + void SetCutscenePedComponentVariationFromPed(string cutsceneEntName, uint ped, uint modelHash); bool DoesCutsceneEntityExist(string cutsceneEntName, uint modelHash); /// /// Thanks R*! ;) @@ -3594,7 +3594,7 @@ public unsafe interface INatives /// int DataarrayGetType(ref int arrayData, int arrayIndex); bool DecorSetTime(IEntity entity, string propertyName, int timestamp); - bool DecorSetTime(int entity, string propertyName, int timestamp); + bool DecorSetTime(uint entity, string propertyName, int timestamp); /// /// This function sets metadata of type bool to specified entity. /// @@ -3602,9 +3602,9 @@ public unsafe interface INatives /// /// This function sets metadata of type bool to specified entity. /// - bool DecorSetBool(int entity, string propertyName, bool value); + bool DecorSetBool(uint entity, string propertyName, bool value); bool DecorSetFloat(IEntity entity, string propertyName, float value); - bool DecorSetFloat(int entity, string propertyName, float value); + bool DecorSetFloat(uint entity, string propertyName, float value); /// /// Sets property to int. /// @@ -3612,13 +3612,13 @@ public unsafe interface INatives /// /// Sets property to int. /// - bool DecorSetInt(int entity, string propertyName, int value); + bool DecorSetInt(uint entity, string propertyName, int value); bool DecorGetBool(IEntity entity, string propertyName); - bool DecorGetBool(int entity, string propertyName); + bool DecorGetBool(uint entity, string propertyName); float DecorGetFloat(IEntity entity, string propertyName); - float DecorGetFloat(int entity, string propertyName); + float DecorGetFloat(uint entity, string propertyName); int DecorGetInt(IEntity entity, string propertyName); - int DecorGetInt(int entity, string propertyName); + int DecorGetInt(uint entity, string propertyName); /// /// Returns whether or not the specified property is set for the entity. /// @@ -3626,9 +3626,9 @@ public unsafe interface INatives /// /// Returns whether or not the specified property is set for the entity. /// - bool DecorExistOn(int entity, string propertyName); + bool DecorExistOn(uint entity, string propertyName); bool DecorRemove(IEntity entity, string propertyName); - bool DecorRemove(int entity, string propertyName); + bool DecorRemove(uint entity, string propertyName); /// /// https://alloc8or.re/gta5/doc/enums/eDecorType.txt /// @@ -3675,17 +3675,17 @@ public unsafe interface INatives /// /// Checks whether an entity exists in the game world. /// - bool DoesEntityExist(int entity); + bool DoesEntityExist(uint entity); bool DoesEntityBelongToThisScript(IEntity entity, bool p1); - bool DoesEntityBelongToThisScript(int entity, bool p1); + bool DoesEntityBelongToThisScript(uint entity, bool p1); bool DoesEntityHaveDrawable(IEntity entity); - bool DoesEntityHaveDrawable(int entity); + bool DoesEntityHaveDrawable(uint entity); bool DoesEntityHavePhysics(IEntity entity); - bool DoesEntityHavePhysics(int entity); + bool DoesEntityHavePhysics(uint entity); bool DoesEntityHaveSkeleton(IEntity entity); - bool DoesEntityHaveSkeleton(int entity); + bool DoesEntityHaveSkeleton(uint entity); bool DoesEntityHaveAnimDirector(IEntity entity); - bool DoesEntityHaveAnimDirector(int entity); + bool DoesEntityHaveAnimDirector(uint entity); /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// @@ -3695,25 +3695,25 @@ public unsafe interface INatives /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// /// is always 3 as far as i cant tell - bool HasEntityAnimFinished(int entity, string animDict, string animName, int p3); + bool HasEntityAnimFinished(uint entity, string animDict, string animName, int p3); bool HasEntityBeenDamagedByAnyObject(IEntity entity); - bool HasEntityBeenDamagedByAnyObject(int entity); + bool HasEntityBeenDamagedByAnyObject(uint entity); bool HasEntityBeenDamagedByAnyPed(IEntity entity); - bool HasEntityBeenDamagedByAnyPed(int entity); + bool HasEntityBeenDamagedByAnyPed(uint entity); bool HasEntityBeenDamagedByAnyVehicle(IEntity entity); - bool HasEntityBeenDamagedByAnyVehicle(int entity); + bool HasEntityBeenDamagedByAnyVehicle(uint entity); /// /// Entity 1 = Victim /// Entity 2 = Attacker /// /// seems to always be 1 - bool HasEntityBeenDamagedByEntity(IEntity entity1, int entity2, bool p2); + bool HasEntityBeenDamagedByEntity(IEntity entity1, uint entity2, bool p2); /// /// Entity 1 = Victim /// Entity 2 = Attacker /// /// seems to always be 1 - bool HasEntityBeenDamagedByEntity(int entity1, IEntity entity2, bool p2); + bool HasEntityBeenDamagedByEntity(uint entity1, IEntity entity2, bool p2); /// /// Entity 1 = Victim /// Entity 2 = Attacker @@ -3725,7 +3725,7 @@ public unsafe interface INatives /// Entity 2 = Attacker /// /// seems to always be 1 - bool HasEntityBeenDamagedByEntity(int entity1, int entity2, bool p2); + bool HasEntityBeenDamagedByEntity(uint entity1, uint entity2, bool p2); /// /// There is other codes used for traceType: /// 19 - in jewelry_prep1a @@ -3733,7 +3733,7 @@ public unsafe interface INatives /// 256 & 287 - in fm_mission_controller /// /// is always 17 in the scripts. - bool HasEntityClearLosToEntity(IEntity entity1, int entity2, int traceType); + bool HasEntityClearLosToEntity(IEntity entity1, uint entity2, int traceType); /// /// There is other codes used for traceType: /// 19 - in jewelry_prep1a @@ -3741,7 +3741,7 @@ public unsafe interface INatives /// 256 & 287 - in fm_mission_controller /// /// is always 17 in the scripts. - bool HasEntityClearLosToEntity(int entity1, IEntity entity2, int traceType); + bool HasEntityClearLosToEntity(uint entity1, IEntity entity2, int traceType); /// /// There is other codes used for traceType: /// 19 - in jewelry_prep1a @@ -3757,21 +3757,21 @@ public unsafe interface INatives /// 256 & 287 - in fm_mission_controller /// /// is always 17 in the scripts. - bool HasEntityClearLosToEntity(int entity1, int entity2, int traceType); - bool HasEntityClearLosToEntityAdjustForCover(IEntity entity1, int entity2, int traceType); - bool HasEntityClearLosToEntityAdjustForCover(int entity1, IEntity entity2, int traceType); + bool HasEntityClearLosToEntity(uint entity1, uint entity2, int traceType); + bool HasEntityClearLosToEntityAdjustForCover(IEntity entity1, uint entity2, int traceType); + bool HasEntityClearLosToEntityAdjustForCover(uint entity1, IEntity entity2, int traceType); bool HasEntityClearLosToEntityAdjustForCover(IEntity entity1, IEntity entity2, int traceType); - bool HasEntityClearLosToEntityAdjustForCover(int entity1, int entity2, int traceType); + bool HasEntityClearLosToEntityAdjustForCover(uint entity1, uint entity2, int traceType); /// /// Has the entity1 got a clear line of sight to the other entity2 from the direction entity1 is facing. /// This is one of the most CPU demanding BOOL natives in the game; avoid calling this in things like nested for-loops /// - bool HasEntityClearLosToEntityInFront(IEntity entity1, int entity2); + bool HasEntityClearLosToEntityInFront(IEntity entity1, uint entity2); /// /// Has the entity1 got a clear line of sight to the other entity2 from the direction entity1 is facing. /// This is one of the most CPU demanding BOOL natives in the game; avoid calling this in things like nested for-loops /// - bool HasEntityClearLosToEntityInFront(int entity1, IEntity entity2); + bool HasEntityClearLosToEntityInFront(uint entity1, IEntity entity2); /// /// Has the entity1 got a clear line of sight to the other entity2 from the direction entity1 is facing. /// This is one of the most CPU demanding BOOL natives in the game; avoid calling this in things like nested for-loops @@ -3781,7 +3781,7 @@ public unsafe interface INatives /// Has the entity1 got a clear line of sight to the other entity2 from the direction entity1 is facing. /// This is one of the most CPU demanding BOOL natives in the game; avoid calling this in things like nested for-loops /// - bool HasEntityClearLosToEntityInFront(int entity1, int entity2); + bool HasEntityClearLosToEntityInFront(uint entity1, uint entity2); /// /// Called on tick. /// Note: for vehicles, the wheels can touch the ground and it will still return false, but if the body of the vehicle touches the ground, it will return true. @@ -3793,11 +3793,11 @@ public unsafe interface INatives /// Note: for vehicles, the wheels can touch the ground and it will still return false, but if the body of the vehicle touches the ground, it will return true. /// /// Tested with vehicles, returns true whenever the vehicle is touching any entity. - bool HasEntityCollidedWithAnything(int entity); + bool HasEntityCollidedWithAnything(uint entity); uint GetLastMaterialHitByEntity(IEntity entity); - uint GetLastMaterialHitByEntity(int entity); + uint GetLastMaterialHitByEntity(uint entity); Vector3 GetCollisionNormalOfLastHitForEntity(IEntity entity); - Vector3 GetCollisionNormalOfLastHitForEntity(int entity); + Vector3 GetCollisionNormalOfLastHitForEntity(uint entity); /// /// Based on carmod_shop script decompile this takes a vehicle parameter. It is called when repair is done on initial enter. /// @@ -3805,7 +3805,7 @@ public unsafe interface INatives /// /// Based on carmod_shop script decompile this takes a vehicle parameter. It is called when repair is done on initial enter. /// - void ForceEntityAiAndAnimationUpdate(int entity); + void ForceEntityAiAndAnimationUpdate(uint entity); /// /// Returns a float value representing animation's current playtime with respect to its total playtime. This value increasing in a range from [0 to 1] and wrap back to 0 when it reach 1. /// Example: @@ -3823,7 +3823,7 @@ public unsafe interface INatives /// 1.000000 - mark the end of animation. /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// - float GetEntityAnimCurrentTime(int entity, string animDict, string animName); + float GetEntityAnimCurrentTime(uint entity, string animDict, string animName); /// /// Returns a float value representing animation's total playtime in milliseconds. /// Example: @@ -3839,13 +3839,13 @@ public unsafe interface INatives /// return 20800.000000 /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// - float GetEntityAnimTotalTime(int entity, string animDict, string animName); + float GetEntityAnimTotalTime(uint entity, string animDict, string animName); /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// float GetAnimDuration(string animDict, string animName); - int GetEntityAttachedTo(IEntity entity); - int GetEntityAttachedTo(int entity); + uint GetEntityAttachedTo(IEntity entity); + uint GetEntityAttachedTo(uint entity); /// /// Gets the current coordinates for a specified entity. /// `entity` = The entity to get the coordinates from. @@ -3857,7 +3857,7 @@ public unsafe interface INatives /// `entity` = The entity to get the coordinates from. /// `alive` = Unused by the game, potentially used by debug builds of GTA in order to assert whether or not an entity was alive. /// - Vector3 GetEntityCoords(int entity, bool alive); + Vector3 GetEntityCoords(uint entity, bool alive); /// /// Gets the entity's forward vector. /// @@ -3865,7 +3865,7 @@ public unsafe interface INatives /// /// Gets the entity's forward vector. /// - Vector3 GetEntityForwardVector(int entity); + Vector3 GetEntityForwardVector(uint entity); /// /// Gets the X-component of the entity's forward vector. /// @@ -3873,7 +3873,7 @@ public unsafe interface INatives /// /// Gets the X-component of the entity's forward vector. /// - float GetEntityForwardX(int entity); + float GetEntityForwardX(uint entity); /// /// Gets the Y-component of the entity's forward vector. /// @@ -3881,7 +3881,7 @@ public unsafe interface INatives /// /// Gets the Y-component of the entity's forward vector. /// - float GetEntityForwardY(int entity); + float GetEntityForwardY(uint entity); /// /// Returns the heading of the entity in degrees. Also know as the "Yaw" of an entity. /// @@ -3889,7 +3889,7 @@ public unsafe interface INatives /// /// Returns the heading of the entity in degrees. Also know as the "Yaw" of an entity. /// - float GetEntityHeading(int entity); + float GetEntityHeading(uint entity); /// /// Gets the heading of the entity physics in degrees, which tends to be more accurate than just "GET_ENTITY_HEADING". This can be clearly seen while, for example, ragdolling a ped/player. /// NOTE: The name and description of this native are based on independent research. If you find this native to be more suitable under a different name and/or described differently, please feel free to do so. @@ -3899,7 +3899,7 @@ public unsafe interface INatives /// Gets the heading of the entity physics in degrees, which tends to be more accurate than just "GET_ENTITY_HEADING". This can be clearly seen while, for example, ragdolling a ped/player. /// NOTE: The name and description of this native are based on independent research. If you find this native to be more suitable under a different name and/or described differently, please feel free to do so. /// - float GetEntityHeadingFromEulers(int entity); + float GetEntityHeadingFromEulers(uint entity); /// /// Returns an integer value of entity's current health. /// Example of range for ped: @@ -3923,7 +3923,7 @@ public unsafe interface INatives /// In order to get the actual value, do: /// float health = *(float *)(entityAddress + 0x280); /// - int GetEntityHealth(int entity); + int GetEntityHealth(uint entity); /// /// Return an integer value of entity's maximum health. /// Example: @@ -3937,7 +3937,7 @@ public unsafe interface INatives /// - Player = 200 /// - Ped = 150 /// - int GetEntityMaxHealth(int entity); + int GetEntityMaxHealth(uint entity); /// /// For instance: ENTITY::SET_ENTITY_MAX_HEALTH(PLAYER::PLAYER_PED_ID(), 200); // director_mode.c4: 67849 /// @@ -3945,9 +3945,9 @@ public unsafe interface INatives /// /// For instance: ENTITY::SET_ENTITY_MAX_HEALTH(PLAYER::PLAYER_PED_ID(), 200); // director_mode.c4: 67849 /// - void SetEntityMaxHealth(int entity, int value); + void SetEntityMaxHealth(uint entity, int value); float GetEntityHeight(IEntity entity, float X, float Y, float Z, bool atTop, bool inWorldCoords); - float GetEntityHeight(int entity, float X, float Y, float Z, bool atTop, bool inWorldCoords); + float GetEntityHeight(uint entity, float X, float Y, float Z, bool atTop, bool inWorldCoords); /// /// Return height (z-dimension) above ground. /// Example: The pilot in a titan plane is 1.844176 above ground. @@ -3961,13 +3961,13 @@ public unsafe interface INatives /// How can i convert it to meters? /// Everything seems to be in meters, probably this too. /// - float GetEntityHeightAboveGround(int entity); + float GetEntityHeightAboveGround(uint entity); /// /// void GetEntityMatrix(IEntity entity, ref Vector3 forwardVector, ref Vector3 rightVector, ref Vector3 upVector, ref Vector3 position); /// /// - void GetEntityMatrix(int entity, ref Vector3 forwardVector, ref Vector3 rightVector, ref Vector3 upVector, ref Vector3 position); + void GetEntityMatrix(uint entity, ref Vector3 forwardVector, ref Vector3 rightVector, ref Vector3 upVector, ref Vector3 position); /// /// Returns the model hash from the entity /// @@ -3975,7 +3975,7 @@ public unsafe interface INatives /// /// Returns the model hash from the entity /// - uint GetEntityModel(int entity); + uint GetEntityModel(uint entity); /// /// Converts world coords (posX - Z) to coords relative to the entity /// Example: @@ -3995,7 +3995,7 @@ public unsafe interface INatives /// is given as 50 /// is given as 50 /// is given as 50 - Vector3 GetOffsetFromEntityGivenWorldCoords(int entity, float posX, float posY, float posZ); + Vector3 GetOffsetFromEntityGivenWorldCoords(uint entity, float posX, float posY, float posZ); /// /// Offset values are relative to the entity. /// x = left/right @@ -4009,9 +4009,9 @@ public unsafe interface INatives /// y = forward/backward /// z = up/down /// - Vector3 GetOffsetFromEntityInWorldCoords(int entity, float offsetX, float offsetY, float offsetZ); + Vector3 GetOffsetFromEntityInWorldCoords(uint entity, float offsetX, float offsetY, float offsetZ); float GetEntityPitch(IEntity entity); - float GetEntityPitch(int entity); + float GetEntityPitch(uint entity); /// /// /// is the correct parameter name! @@ -4019,7 +4019,7 @@ public unsafe interface INatives /// /// /// is the correct parameter name! - void GetEntityQuaternion(int entity, ref float x, ref float y, ref float z, ref float w); + void GetEntityQuaternion(uint entity, ref float x, ref float y, ref float z, ref float w); /// /// Displays the current ROLL axis of the entity [-180.0000/180.0000+] /// (Sideways Roll) such as a vehicle tipped on its side @@ -4029,7 +4029,7 @@ public unsafe interface INatives /// Displays the current ROLL axis of the entity [-180.0000/180.0000+] /// (Sideways Roll) such as a vehicle tipped on its side /// - float GetEntityRoll(int entity); + float GetEntityRoll(uint entity); /// /// rotationOrder refers to the order yaw pitch roll is applied; value ranges from 0 to 5 and is usually *2* in scripts. /// What you use for rotationOrder when getting must be the same as rotationOrder when setting the rotation. @@ -4059,17 +4059,17 @@ public unsafe interface INatives /// /// is the order yaw, pitch and roll is applied. Usually 2. Returns a vector where the Z coordinate is the yaw. /// rotationOrder is the order yaw, pitch and roll is applied. Usually 2. Returns a vector where the Z coordinate is the yaw. - Vector3 GetEntityRotation(int entity, int rotationOrder); + Vector3 GetEntityRotation(uint entity, int rotationOrder); Vector3 GetEntityRotationVelocity(IEntity entity); - Vector3 GetEntityRotationVelocity(int entity); + Vector3 GetEntityRotationVelocity(uint entity); /// /// Returns the name of the script that owns/created the entity or nullptr. Second parameter is unused, can just be a nullptr. /// - string GetEntityScript(IEntity entity, ref int script); + string GetEntityScript(IEntity entity, ref uint script); /// /// Returns the name of the script that owns/created the entity or nullptr. Second parameter is unused, can just be a nullptr. /// - string GetEntityScript(int entity, ref int script); + string GetEntityScript(uint entity, ref uint script); /// /// result is in meters per second /// ------------------------------------------------------------ @@ -4089,7 +4089,7 @@ public unsafe interface INatives /// float mph = (speed * 2.236936); /// ------------------------------------------------------------ /// - float GetEntitySpeed(int entity); + float GetEntitySpeed(uint entity); /// /// /// can be used for getting speed relative to the frame of the vehicle, to determine for example, if you are going in reverse (-y speed) or not (+y speed). @@ -4097,35 +4097,35 @@ public unsafe interface INatives /// /// /// can be used for getting speed relative to the frame of the vehicle, to determine for example, if you are going in reverse (-y speed) or not (+y speed). - Vector3 GetEntitySpeedVector(int entity, bool relative); + Vector3 GetEntitySpeedVector(uint entity, bool relative); float GetEntityUprightValue(IEntity entity); - float GetEntityUprightValue(int entity); + float GetEntityUprightValue(uint entity); Vector3 GetEntityVelocity(IEntity entity); - Vector3 GetEntityVelocity(int entity); + Vector3 GetEntityVelocity(uint entity); /// /// /// Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - int GetObjectIndexFromEntityIndex(IEntity entity); + uint GetObjectIndexFromEntityIndex(IEntity entity); /// /// /// Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - int GetObjectIndexFromEntityIndex(int entity); + uint GetObjectIndexFromEntityIndex(uint entity); /// /// /// Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - int GetPedIndexFromEntityIndex(IEntity entity); + uint GetPedIndexFromEntityIndex(IEntity entity); /// /// /// Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - int GetPedIndexFromEntityIndex(int entity); + uint GetPedIndexFromEntityIndex(uint entity); /// /// /// Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - int GetVehicleIndexFromEntityIndex(IEntity entity); + uint GetVehicleIndexFromEntityIndex(IEntity entity); /// /// /// Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - int GetVehicleIndexFromEntityIndex(int entity); + uint GetVehicleIndexFromEntityIndex(uint entity); /// /// Returns the coordinates of an entity-bone. /// @@ -4133,11 +4133,11 @@ public unsafe interface INatives /// /// Returns the coordinates of an entity-bone. /// - Vector3 GetWorldPositionOfEntityBone(int entity, int boneIndex); - int GetNearestPlayerToEntity(IEntity entity); - int GetNearestPlayerToEntity(int entity); - int GetNearestPlayerToEntityOnTeam(IEntity entity, int team); - int GetNearestPlayerToEntityOnTeam(int entity, int team); + Vector3 GetWorldPositionOfEntityBone(uint entity, int boneIndex); + uint GetNearestPlayerToEntity(IEntity entity); + uint GetNearestPlayerToEntity(uint entity); + uint GetNearestPlayerToEntityOnTeam(IEntity entity, int team); + uint GetNearestPlayerToEntityOnTeam(uint entity, int team); /// /// Returns: /// 0 = no entity @@ -4153,7 +4153,7 @@ public unsafe interface INatives /// 2 = vehicle /// 3 = object /// - int GetEntityType(int entity); + int GetEntityType(uint entity); /// /// A population type, from the following enum: https://alloc8or.re/gta5/doc/enums/ePopulationType.txt /// @@ -4161,16 +4161,16 @@ public unsafe interface INatives /// /// A population type, from the following enum: https://alloc8or.re/gta5/doc/enums/ePopulationType.txt /// - int GetEntityPopulationType(int entity); - bool IsAnEntity(int handle); + int GetEntityPopulationType(uint entity); + bool IsAnEntity(uint handle); bool IsEntityAPed(IEntity entity); - bool IsEntityAPed(int entity); + bool IsEntityAPed(uint entity); bool IsEntityAMissionEntity(IEntity entity); - bool IsEntityAMissionEntity(int entity); + bool IsEntityAMissionEntity(uint entity); bool IsEntityAVehicle(IEntity entity); - bool IsEntityAVehicle(int entity); + bool IsEntityAVehicle(uint entity); bool IsEntityAnObject(IEntity entity); - bool IsEntityAnObject(int entity); + bool IsEntityAnObject(uint entity); /// /// Checks if entity is within x/y/zSize distance of x/y/z. /// Last three are unknown ints, almost always p7 = 0, p8 = 1, p9 = 0 @@ -4180,17 +4180,17 @@ public unsafe interface INatives /// Checks if entity is within x/y/zSize distance of x/y/z. /// Last three are unknown ints, almost always p7 = 0, p8 = 1, p9 = 0 /// - bool IsEntityAtCoord(int entity, float xPos, float yPos, float zPos, float xSize, float ySize, float zSize, bool p7, bool p8, int p9); + bool IsEntityAtCoord(uint entity, float xPos, float yPos, float zPos, float xSize, float ySize, float zSize, bool p7, bool p8, int p9); /// /// Checks if entity1 is within the box defined by x/y/zSize of entity2. /// Last three parameters are almost alwasy p5 = 0, p6 = 1, p7 = 0 /// - bool IsEntityAtEntity(IEntity entity1, int entity2, float xSize, float ySize, float zSize, bool p5, bool p6, int p7); + bool IsEntityAtEntity(IEntity entity1, uint entity2, float xSize, float ySize, float zSize, bool p5, bool p6, int p7); /// /// Checks if entity1 is within the box defined by x/y/zSize of entity2. /// Last three parameters are almost alwasy p5 = 0, p6 = 1, p7 = 0 /// - bool IsEntityAtEntity(int entity1, IEntity entity2, float xSize, float ySize, float zSize, bool p5, bool p6, int p7); + bool IsEntityAtEntity(uint entity1, IEntity entity2, float xSize, float ySize, float zSize, bool p5, bool p6, int p7); /// /// Checks if entity1 is within the box defined by x/y/zSize of entity2. /// Last three parameters are almost alwasy p5 = 0, p6 = 1, p7 = 0 @@ -4200,7 +4200,7 @@ public unsafe interface INatives /// Checks if entity1 is within the box defined by x/y/zSize of entity2. /// Last three parameters are almost alwasy p5 = 0, p6 = 1, p7 = 0 /// - bool IsEntityAtEntity(int entity1, int entity2, float xSize, float ySize, float zSize, bool p5, bool p6, int p7); + bool IsEntityAtEntity(uint entity1, uint entity2, float xSize, float ySize, float zSize, bool p5, bool p6, int p7); /// /// Whether the entity is attached to any other entity. /// @@ -4208,21 +4208,21 @@ public unsafe interface INatives /// /// Whether the entity is attached to any other entity. /// - bool IsEntityAttached(int entity); + bool IsEntityAttached(uint entity); bool IsEntityAttachedToAnyObject(IEntity entity); - bool IsEntityAttachedToAnyObject(int entity); + bool IsEntityAttachedToAnyObject(uint entity); bool IsEntityAttachedToAnyPed(IEntity entity); - bool IsEntityAttachedToAnyPed(int entity); + bool IsEntityAttachedToAnyPed(uint entity); bool IsEntityAttachedToAnyVehicle(IEntity entity); - bool IsEntityAttachedToAnyVehicle(int entity); - bool IsEntityAttachedToEntity(IEntity from, int to); - bool IsEntityAttachedToEntity(int from, IEntity to); + bool IsEntityAttachedToAnyVehicle(uint entity); + bool IsEntityAttachedToEntity(IEntity from, uint to); + bool IsEntityAttachedToEntity(uint from, IEntity to); bool IsEntityAttachedToEntity(IEntity from, IEntity to); - bool IsEntityAttachedToEntity(int from, int to); + bool IsEntityAttachedToEntity(uint from, uint to); bool IsEntityDead(IEntity entity, bool p1); - bool IsEntityDead(int entity, bool p1); + bool IsEntityDead(uint entity, bool p1); bool IsEntityInAir(IEntity entity); - bool IsEntityInAir(int entity); + bool IsEntityInAir(uint entity); /// /// `p8` is a debug flag invoking functions in the same path as ``DRAW_MARKER`` /// `p10` is some entity flag check, also used in `IS_ENTITY_AT_ENTITY`, `IS_ENTITY_IN_AREA`, and `IS_ENTITY_AT_COORD`. @@ -4234,9 +4234,9 @@ public unsafe interface INatives /// `p10` is some entity flag check, also used in `IS_ENTITY_AT_ENTITY`, `IS_ENTITY_IN_AREA`, and `IS_ENTITY_AT_COORD`. /// See IS_POINT_IN_ANGLED_AREA for the definition of an angled area. /// - bool IsEntityInAngledArea(int entity, float x1, float y1, float z1, float x2, float y2, float z2, float width, bool debug, bool includeZ, int p10); + bool IsEntityInAngledArea(uint entity, float x1, float y1, float z1, float x2, float y2, float z2, float width, bool debug, bool includeZ, int p10); bool IsEntityInArea(IEntity entity, float x1, float y1, float z1, float x2, float y2, float z2, bool p7, bool p8, int p9); - bool IsEntityInArea(int entity, float x1, float y1, float z1, float x2, float y2, float z2, bool p7, bool p8, int p9); + bool IsEntityInArea(uint entity, float x1, float y1, float z1, float x2, float y2, float z2, bool p7, bool p8, int p9); /// /// Full list of zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/zones.json /// @@ -4244,9 +4244,9 @@ public unsafe interface INatives /// /// Full list of zones by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/zones.json /// - bool IsEntityInZone(int entity, string zone); + bool IsEntityInZone(uint entity, string zone); bool IsEntityInWater(IEntity entity); - bool IsEntityInWater(int entity); + bool IsEntityInWater(uint entity); /// /// Get how much of the entity is submerged. 1.0f is whole entity. /// @@ -4254,9 +4254,9 @@ public unsafe interface INatives /// /// Get how much of the entity is submerged. 1.0f is whole entity. /// - float GetEntitySubmergedLevel(int entity); + float GetEntitySubmergedLevel(uint entity); void SetEntityRequiresMoreExpensiveRiverCheck(IEntity entity, bool toggle); - void SetEntityRequiresMoreExpensiveRiverCheck(int entity, bool toggle); + void SetEntityRequiresMoreExpensiveRiverCheck(uint entity, bool toggle); /// /// Returns true if the entity is in between the minimum and maximum values for the 2d screen coords. /// Chipping @@ -4268,7 +4268,7 @@ public unsafe interface INatives /// Chipping /// /// This means that it will return true even if the entity is behind a wall for example, as long as you're looking at their location. - bool IsEntityOnScreen(int entity); + bool IsEntityOnScreen(uint entity); /// /// See also PED::IS_SCRIPTED_SCENARIO_PED_USING_CONDITIONAL_ANIM 0x6EC47A344923E1ED 0x3C30B447 /// Taken from ENTITY::IS_ENTITY_PLAYING_ANIM(PLAYER::PLAYER_PED_ID(), "creatures@shark@move", "attack_player", 3) @@ -4282,7 +4282,7 @@ public unsafe interface INatives /// p4 is always 3 in the scripts. /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// - bool IsEntityPlayingAnim(int entity, string animDict, string animName, int taskFlag); + bool IsEntityPlayingAnim(uint entity, string animDict, string animName, int taskFlag); /// /// a static ped will not react to natives like "APPLY_FORCE_TO_ENTITY" or "SET_ENTITY_VELOCITY" and oftentimes will not react to task-natives like "TASK::TASK_COMBAT_PED". The only way I know of to make one of these peds react is to ragdoll them (or sometimes to use CLEAR_PED_TASKS_IMMEDIATELY(). Static peds include almost all far-away peds, beach-combers, peds in certain scenarios, peds crossing a crosswalk, peds walking to get back into their cars, and others. If anyone knows how to make a ped non-static without ragdolling them, please edit this with the solution. /// how can I make an entity static??? @@ -4292,26 +4292,26 @@ public unsafe interface INatives /// a static ped will not react to natives like "APPLY_FORCE_TO_ENTITY" or "SET_ENTITY_VELOCITY" and oftentimes will not react to task-natives like "TASK::TASK_COMBAT_PED". The only way I know of to make one of these peds react is to ragdoll them (or sometimes to use CLEAR_PED_TASKS_IMMEDIATELY(). Static peds include almost all far-away peds, beach-combers, peds in certain scenarios, peds crossing a crosswalk, peds walking to get back into their cars, and others. If anyone knows how to make a ped non-static without ragdolling them, please edit this with the solution. /// how can I make an entity static??? /// - bool IsEntityStatic(int entity); - bool IsEntityTouchingEntity(IEntity entity, int targetEntity); - bool IsEntityTouchingEntity(int entity, IEntity targetEntity); + bool IsEntityStatic(uint entity); + bool IsEntityTouchingEntity(IEntity entity, uint targetEntity); + bool IsEntityTouchingEntity(uint entity, IEntity targetEntity); bool IsEntityTouchingEntity(IEntity entity, IEntity targetEntity); - bool IsEntityTouchingEntity(int entity, int targetEntity); + bool IsEntityTouchingEntity(uint entity, uint targetEntity); bool IsEntityTouchingModel(IEntity entity, uint modelHash); - bool IsEntityTouchingModel(int entity, uint modelHash); + bool IsEntityTouchingModel(uint entity, uint modelHash); bool IsEntityUpright(IEntity entity, float angle); - bool IsEntityUpright(int entity, float angle); + bool IsEntityUpright(uint entity, float angle); bool IsEntityUpsidedown(IEntity entity); - bool IsEntityUpsidedown(int entity); + bool IsEntityUpsidedown(uint entity); bool IsEntityVisible(IEntity entity); - bool IsEntityVisible(int entity); + bool IsEntityVisible(uint entity); bool IsEntityVisibleToScript(IEntity entity); - bool IsEntityVisibleToScript(int entity); + bool IsEntityVisibleToScript(uint entity); bool IsEntityOccluded(IEntity entity); - bool IsEntityOccluded(int entity); + bool IsEntityOccluded(uint entity); bool WouldEntityBeOccluded(uint entityModelHash, float x, float y, float z, bool p4); bool IsEntityWaitingForWorldCollision(IEntity entity); - bool IsEntityWaitingForWorldCollision(int entity); + bool IsEntityWaitingForWorldCollision(uint entity); /// /// Applies a force to the specified entity. /// **List of force types (p1)**: @@ -4337,7 +4337,7 @@ public unsafe interface INatives /// ForceNoRot = 4, /// See NativeDB for reference: http://natives.altv.mp/#/0x18FF00FC7EFF559E /// - void ApplyForceToEntityCenterOfMass(int entity, int forceType, float x, float y, float z, bool p5, bool isDirectionRel, bool isForceRel, bool p8); + void ApplyForceToEntityCenterOfMass(uint entity, int forceType, float x, float y, float z, bool p5, bool isDirectionRel, bool isForceRel, bool p8); /// /// Documented here: /// gtaforums.com/topic/885669-precisely-define-object-physics/ @@ -4369,7 +4369,7 @@ public unsafe interface INatives /// Momentum flag=1 (vector (x,y,z) is a momentum, more research needed) /// Momentum flag=1 (vector (x,y,z) is a momentum, more research needed) /// !!! Whenever I set this !=0, my script stopped. - void ApplyForceToEntity(int entity, int forceFlags, float x, float y, float z, float offX, float offY, float offZ, int boneIndex, bool isDirectionRel, bool ignoreUpVec, bool isForceRel, bool p12, bool p13); + void ApplyForceToEntity(uint entity, int forceFlags, float x, float y, float z, float offX, float offY, float offZ, int boneIndex, bool isDirectionRel, bool ignoreUpVec, bool isForceRel, bool p12, bool p13); /// /// Attaches entity1 to bone (boneIndex) of entity2. /// @@ -4379,7 +4379,7 @@ public unsafe interface INatives /// - pitch doesnt work when false and roll will only work on negative numbers (only peds) /// - position of vertex /// - if false it ignores entity vector - void AttachEntityToEntity(IEntity entity1, int entity2, int boneIndex, float xPos, float yPos, float zPos, float xRot, float yRot, float zRot, bool p9, bool useSoftPinning, bool collision, bool isPed, int vertexIndex, bool fixedRot, int p15); + void AttachEntityToEntity(IEntity entity1, uint entity2, int boneIndex, float xPos, float yPos, float zPos, float xRot, float yRot, float zRot, bool p9, bool useSoftPinning, bool collision, bool isPed, int vertexIndex, bool fixedRot, int p15); /// /// Attaches entity1 to bone (boneIndex) of entity2. /// @@ -4389,7 +4389,7 @@ public unsafe interface INatives /// - pitch doesnt work when false and roll will only work on negative numbers (only peds) /// - position of vertex /// - if false it ignores entity vector - void AttachEntityToEntity(int entity1, IEntity entity2, int boneIndex, float xPos, float yPos, float zPos, float xRot, float yRot, float zRot, bool p9, bool useSoftPinning, bool collision, bool isPed, int vertexIndex, bool fixedRot, int p15); + void AttachEntityToEntity(uint entity1, IEntity entity2, int boneIndex, float xPos, float yPos, float zPos, float xRot, float yRot, float zRot, bool p9, bool useSoftPinning, bool collision, bool isPed, int vertexIndex, bool fixedRot, int p15); /// /// Attaches entity1 to bone (boneIndex) of entity2. /// @@ -4409,15 +4409,15 @@ public unsafe interface INatives /// - pitch doesnt work when false and roll will only work on negative numbers (only peds) /// - position of vertex /// - if false it ignores entity vector - void AttachEntityToEntity(int entity1, int entity2, int boneIndex, float xPos, float yPos, float zPos, float xRot, float yRot, float zRot, bool p9, bool useSoftPinning, bool collision, bool isPed, int vertexIndex, bool fixedRot, int p15); - void AttachEntityBoneToEntityBone(IEntity entity1, int entity2, int boneIndex1, int boneIndex2, bool p4, bool p5); - void AttachEntityBoneToEntityBone(int entity1, IEntity entity2, int boneIndex1, int boneIndex2, bool p4, bool p5); + void AttachEntityToEntity(uint entity1, uint entity2, int boneIndex, float xPos, float yPos, float zPos, float xRot, float yRot, float zRot, bool p9, bool useSoftPinning, bool collision, bool isPed, int vertexIndex, bool fixedRot, int p15); + void AttachEntityBoneToEntityBone(IEntity entity1, uint entity2, int boneIndex1, int boneIndex2, bool p4, bool p5); + void AttachEntityBoneToEntityBone(uint entity1, IEntity entity2, int boneIndex1, int boneIndex2, bool p4, bool p5); void AttachEntityBoneToEntityBone(IEntity entity1, IEntity entity2, int boneIndex1, int boneIndex2, bool p4, bool p5); - void AttachEntityBoneToEntityBone(int entity1, int entity2, int boneIndex1, int boneIndex2, bool p4, bool p5); - void AttachEntityBoneToEntityBoneYForward(IEntity entity1, int entity2, int boneIndex1, int boneIndex2, bool p4, bool p5); - void AttachEntityBoneToEntityBoneYForward(int entity1, IEntity entity2, int boneIndex1, int boneIndex2, bool p4, bool p5); + void AttachEntityBoneToEntityBone(uint entity1, uint entity2, int boneIndex1, int boneIndex2, bool p4, bool p5); + void AttachEntityBoneToEntityBoneYForward(IEntity entity1, uint entity2, int boneIndex1, int boneIndex2, bool p4, bool p5); + void AttachEntityBoneToEntityBoneYForward(uint entity1, IEntity entity2, int boneIndex1, int boneIndex2, bool p4, bool p5); void AttachEntityBoneToEntityBoneYForward(IEntity entity1, IEntity entity2, int boneIndex1, int boneIndex2, bool p4, bool p5); - void AttachEntityBoneToEntityBoneYForward(int entity1, int entity2, int boneIndex1, int boneIndex2, bool p4, bool p5); + void AttachEntityBoneToEntityBoneYForward(uint entity1, uint entity2, int boneIndex1, int boneIndex2, bool p4, bool p5); /// /// /// is the amount of force required to break the bond. @@ -4426,7 +4426,7 @@ public unsafe interface INatives /// - controls collision between the two entities (FALSE disables collision). /// - do not teleport entity to be attached to the position of the bone Index of the target entity (if 1, entity will not be teleported to target bone) /// - is always 2 in scripts. - void AttachEntityToEntityPhysically(IEntity entity1, int entity2, int boneIndex1, int boneIndex2, float xPos1, float yPos1, float zPos1, float xPos2, float yPos2, float zPos2, float xRot, float yRot, float zRot, float breakForce, bool fixedRot, bool p15, bool collision, bool p17, int p18); + void AttachEntityToEntityPhysically(IEntity entity1, uint entity2, int boneIndex1, int boneIndex2, float xPos1, float yPos1, float zPos1, float xPos2, float yPos2, float zPos2, float xRot, float yRot, float zRot, float breakForce, bool fixedRot, bool p15, bool collision, bool p17, int p18); /// /// /// is the amount of force required to break the bond. @@ -4435,7 +4435,7 @@ public unsafe interface INatives /// - controls collision between the two entities (FALSE disables collision). /// - do not teleport entity to be attached to the position of the bone Index of the target entity (if 1, entity will not be teleported to target bone) /// - is always 2 in scripts. - void AttachEntityToEntityPhysically(int entity1, IEntity entity2, int boneIndex1, int boneIndex2, float xPos1, float yPos1, float zPos1, float xPos2, float yPos2, float zPos2, float xRot, float yRot, float zRot, float breakForce, bool fixedRot, bool p15, bool collision, bool p17, int p18); + void AttachEntityToEntityPhysically(uint entity1, IEntity entity2, int boneIndex1, int boneIndex2, float xPos1, float yPos1, float zPos1, float xPos2, float yPos2, float zPos2, float xRot, float yRot, float zRot, float breakForce, bool fixedRot, bool p15, bool collision, bool p17, int p18); /// /// /// is the amount of force required to break the bond. @@ -4453,7 +4453,7 @@ public unsafe interface INatives /// - controls collision between the two entities (FALSE disables collision). /// - do not teleport entity to be attached to the position of the bone Index of the target entity (if 1, entity will not be teleported to target bone) /// - is always 2 in scripts. - void AttachEntityToEntityPhysically(int entity1, int entity2, int boneIndex1, int boneIndex2, float xPos1, float yPos1, float zPos1, float xPos2, float yPos2, float zPos2, float xRot, float yRot, float zRot, float breakForce, bool fixedRot, bool p15, bool collision, bool p17, int p18); + void AttachEntityToEntityPhysically(uint entity1, uint entity2, int boneIndex1, int boneIndex2, float xPos1, float yPos1, float zPos1, float xPos2, float yPos2, float zPos2, float xRot, float yRot, float zRot, float breakForce, bool fixedRot, bool p15, bool collision, bool p17, int p18); /// /// Called to update entity attachments. /// @@ -4461,7 +4461,7 @@ public unsafe interface INatives /// /// Called to update entity attachments. /// - void ProcessEntityAttachments(int entity); + void ProcessEntityAttachments(uint entity); /// /// Returns the index of the bone. If the bone was not found, -1 will be returned. /// list: @@ -4487,13 +4487,13 @@ public unsafe interface INatives /// bodyshell, /// See NativeDB for reference: http://natives.altv.mp/#/0xFB71170B7E76ACBA /// - int GetEntityBoneIndexByName(int entity, string boneName); + int GetEntityBoneIndexByName(uint entity, string boneName); void ClearEntityLastDamageEntity(IEntity entity); - void ClearEntityLastDamageEntity(int entity); + void ClearEntityLastDamageEntity(uint entity); /// /// Deletes the specified entity, then sets the handle pointed to by the pointer to NULL. /// - void DeleteEntity(ref int entity); + void DeleteEntity(ref uint entity); /// /// If `collision` is set to true, both entities won't collide with the other until the distance between them is above 4 meters. /// Set `dynamic` to true to keep velocity after dettaching @@ -4503,7 +4503,7 @@ public unsafe interface INatives /// If `collision` is set to true, both entities won't collide with the other until the distance between them is above 4 meters. /// Set `dynamic` to true to keep velocity after dettaching /// - void DetachEntity(int entity, bool dynamic, bool collision); + void DetachEntity(uint entity, bool dynamic, bool collision); /// /// Freezes or unfreezes an entity preventing its coordinates to change by the player if set to `true`. You can still change the entity position using SET_ENTITY_COORDS. /// @@ -4511,7 +4511,7 @@ public unsafe interface INatives /// /// Freezes or unfreezes an entity preventing its coordinates to change by the player if set to `true`. You can still change the entity position using SET_ENTITY_COORDS. /// - void FreezeEntityPosition(int entity, bool toggle); + void FreezeEntityPosition(uint entity, bool toggle); /// /// True means it can be deleted by the engine when switching lobbies/missions/etc, false means the script is expected to clean it up. /// "Allow Freeze If No Collision" @@ -4521,7 +4521,7 @@ public unsafe interface INatives /// True means it can be deleted by the engine when switching lobbies/missions/etc, false means the script is expected to clean it up. /// "Allow Freeze If No Collision" /// - void SetEntityShouldFreezeWaitingOnCollision(int entity, bool toggle); + void SetEntityShouldFreezeWaitingOnCollision(uint entity, bool toggle); /// /// The only time bitset has a value is 0x4000 and the only time delta has a value is during stealth with usually <1.0f values. /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json @@ -4533,7 +4533,7 @@ public unsafe interface INatives /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// /// and bitset are guessed fields. They are based on the fact that most of the calls have 0 or nil field types passed in. - bool PlayEntityAnim(int entity, string animName, string animDict, float p3, bool loop, bool stayInAnim, bool p6, float delta, int bitset); + bool PlayEntityAnim(uint entity, string animName, string animDict, float p3, bool loop, bool stayInAnim, bool p6, float delta, int bitset); /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// @@ -4543,7 +4543,7 @@ public unsafe interface INatives /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// /// and p7 are usually 1000.0f. - bool PlaySynchronizedEntityAnim(int entity, int syncedScene, string animation, string propName, float p4, float p5, int p6, float p7); + bool PlaySynchronizedEntityAnim(uint entity, int syncedScene, string animation, string propName, float p4, float p5, int p6, float p7); /// /// p6,p7 probably animname and animdict /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json @@ -4559,7 +4559,7 @@ public unsafe interface INatives /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// RAGEPluginHook list: docs.ragepluginhook.net/html/62951c37-a440-478c-b389-c471230ddfc5.htm /// - bool StopEntityAnim(int entity, string animation, string animGroup, float p3); + bool StopEntityAnim(uint entity, string animation, string animGroup, float p3); /// /// /// sync task id? @@ -4567,7 +4567,7 @@ public unsafe interface INatives /// /// /// sync task id? - bool StopSynchronizedEntityAnim(int entity, float p1, bool p2); + bool StopSynchronizedEntityAnim(uint entity, float p1, bool p2); /// /// if (ENTITY::HAS_ANIM_EVENT_FIRED(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("CreateObject"))) /// @@ -4575,7 +4575,7 @@ public unsafe interface INatives /// /// if (ENTITY::HAS_ANIM_EVENT_FIRED(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("CreateObject"))) /// - bool HasAnimEventFired(int entity, uint actionHash); + bool HasAnimEventFired(uint entity, uint actionHash); /// /// In the script "player_scene_t_bbfight.c4": /// "if (ENTITY::FIND_ANIM_EVENT_PHASE(&l_16E, &l_19F[v_416], v_9, &v_A, &v_B))" @@ -4595,7 +4595,7 @@ public unsafe interface INatives /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// - void SetEntityAnimCurrentTime(int entity, string animDictionary, string animName, float time); + void SetEntityAnimCurrentTime(uint entity, string animDictionary, string animName, float time); /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// @@ -4603,7 +4603,7 @@ public unsafe interface INatives /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// - void SetEntityAnimSpeed(int entity, string animDictionary, string animName, float speedMultiplier); + void SetEntityAnimSpeed(uint entity, string animDictionary, string animName, float speedMultiplier); /// /// Makes the specified entity (ped, vehicle or object) persistent. Persistent entities will not automatically be removed by the engine. /// maybe a quick disassembly will tell us what it does @@ -4619,7 +4619,7 @@ public unsafe interface INatives /// /// has no effect when either its on or off /// has no effect when either its on or off - void SetEntityAsMissionEntity(int entity, bool p1, bool p2); + void SetEntityAsMissionEntity(uint entity, bool p1, bool p2); /// /// Marks the specified entity (ped, vehicle or object) as no longer needed if its population type is set to the mission type. /// If the entity is ped, it will also clear their tasks immediately just like when CLEAR_PED_TASKS_IMMEDIATELY is called. @@ -4632,27 +4632,27 @@ public unsafe interface INatives /// } /// See NativeDB for reference: http://natives.altv.mp/#/0xB736A491E64A32CF /// - void SetEntityAsNoLongerNeeded(ref int entity); + void SetEntityAsNoLongerNeeded(ref uint entity); /// /// This is an alias of SET_ENTITY_AS_NO_LONGER_NEEDED. /// - void SetPedAsNoLongerNeeded(ref int ped); + void SetPedAsNoLongerNeeded(ref uint ped); /// /// This is an alias of SET_ENTITY_AS_NO_LONGER_NEEDED. /// - void SetVehicleAsNoLongerNeeded(ref int vehicle); + void SetVehicleAsNoLongerNeeded(ref uint vehicle); /// /// This is an alias of SET_ENTITY_AS_NO_LONGER_NEEDED. /// - void SetObjectAsNoLongerNeeded(ref int @object); + void SetObjectAsNoLongerNeeded(ref uint @object); void SetEntityCanBeDamaged(IEntity entity, bool toggle); - void SetEntityCanBeDamaged(int entity, bool toggle); + void SetEntityCanBeDamaged(uint entity, bool toggle); bool GetEntityCanBeDamaged(IEntity entity); - bool GetEntityCanBeDamaged(int entity); + bool GetEntityCanBeDamaged(uint entity); void SetEntityCanBeDamagedByRelationshipGroup(IEntity entity, bool bCanBeDamaged, int relGroup); - void SetEntityCanBeDamagedByRelationshipGroup(int entity, bool bCanBeDamaged, int relGroup); + void SetEntityCanBeDamagedByRelationshipGroup(uint entity, bool bCanBeDamaged, int relGroup); void SetEntityCanOnlyBeDamagedByScriptParticipants(IEntity entity, bool toggle); - void SetEntityCanOnlyBeDamagedByScriptParticipants(int entity, bool toggle); + void SetEntityCanOnlyBeDamagedByScriptParticipants(uint entity, bool toggle); /// /// Sets whether the entity can be targeted without being in line-of-sight. /// @@ -4660,13 +4660,13 @@ public unsafe interface INatives /// /// Sets whether the entity can be targeted without being in line-of-sight. /// - void SetEntityCanBeTargetedWithoutLos(int entity, bool toggle); + void SetEntityCanBeTargetedWithoutLos(uint entity, bool toggle); void SetEntityCollision(IEntity entity, bool toggle, bool keepPhysics); - void SetEntityCollision(int entity, bool toggle, bool keepPhysics); + void SetEntityCollision(uint entity, bool toggle, bool keepPhysics); bool GetEntityCollisionDisabled(IEntity entity); - bool GetEntityCollisionDisabled(int entity); + bool GetEntityCollisionDisabled(uint entity); void SetEntityCompletelyDisableCollision(IEntity entity, bool toggle, bool keepPhysics); - void SetEntityCompletelyDisableCollision(int entity, bool toggle, bool keepPhysics); + void SetEntityCompletelyDisableCollision(uint entity, bool toggle, bool keepPhysics); /// /// Often ends with 1, 0, 0, 1); in the scripts. It works. /// Axis - Invert Axis Flags @@ -4678,9 +4678,9 @@ public unsafe interface INatives /// Axis - Invert Axis Flags /// /// is always 1 in the scripts. Set to 1, an area around the destination coords for the moved entity is cleared from other entities. - void SetEntityCoords(int entity, float xPos, float yPos, float zPos, bool xAxis, bool yAxis, bool zAxis, bool clearArea); + void SetEntityCoords(uint entity, float xPos, float yPos, float zPos, bool xAxis, bool yAxis, bool zAxis, bool clearArea); void SetEntityCoordsWithoutPlantsReset(IEntity entity, float xPos, float yPos, float zPos, bool alive, bool deadFlag, bool ragdollFlag, bool clearArea); - void SetEntityCoordsWithoutPlantsReset(int entity, float xPos, float yPos, float zPos, bool alive, bool deadFlag, bool ragdollFlag, bool clearArea); + void SetEntityCoordsWithoutPlantsReset(uint entity, float xPos, float yPos, float zPos, bool alive, bool deadFlag, bool ragdollFlag, bool clearArea); /// /// Axis - Invert Axis Flags /// @@ -4688,9 +4688,9 @@ public unsafe interface INatives /// /// Axis - Invert Axis Flags /// - void SetEntityCoordsNoOffset(int entity, float xPos, float yPos, float zPos, bool xAxis, bool yAxis, bool zAxis); + void SetEntityCoordsNoOffset(uint entity, float xPos, float yPos, float zPos, bool xAxis, bool yAxis, bool zAxis); void SetEntityDynamic(IEntity entity, bool toggle); - void SetEntityDynamic(int entity, bool toggle); + void SetEntityDynamic(uint entity, bool toggle); /// /// Set the heading of an entity in degrees also known as "Yaw". /// @@ -4698,7 +4698,7 @@ public unsafe interface INatives /// /// Set the heading of an entity in degrees also known as "Yaw". /// - void SetEntityHeading(int entity, float heading); + void SetEntityHeading(uint entity, float heading); /// /// male ped ~= 100 - 200 /// female ped ~= 0 - 100 @@ -4710,7 +4710,7 @@ public unsafe interface INatives /// female ped ~= 0 - 100 /// /// >= 0 - void SetEntityHealth(int entity, int health, int p2); + void SetEntityHealth(uint entity, int health, int p2); /// /// Sets a ped or an object totally invincible. It doesn't take any kind of damage. Peds will not ragdoll on explosions and the tazer animation won't apply either. /// If you use this for a ped and you want Ragdoll to stay enabled, then do: @@ -4738,11 +4738,11 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x3882114BDE571AD4 /// /// return ((flag & (1 << 8)) != 0) || ((flag & (1 << 9)) != 0); - void SetEntityInvincible(int entity, bool toggle); + void SetEntityInvincible(uint entity, bool toggle); void SetEntityIsTargetPriority(IEntity entity, bool p1, float p2); - void SetEntityIsTargetPriority(int entity, bool p1, float p2); + void SetEntityIsTargetPriority(uint entity, bool p1, float p2); void SetEntityLights(IEntity entity, bool toggle); - void SetEntityLights(int entity, bool toggle); + void SetEntityLights(uint entity, bool toggle); /// /// Loads collision grid for an entity spawned outside of a player's loaded area. This allows peds to execute tasks rather than sit dormant because of a lack of a physics grid. /// Certainly not the main usage of this native but when set to true for a Vehicle, it will prevent the vehicle to explode if it is spawned far away from the player. @@ -4752,15 +4752,15 @@ public unsafe interface INatives /// Loads collision grid for an entity spawned outside of a player's loaded area. This allows peds to execute tasks rather than sit dormant because of a lack of a physics grid. /// Certainly not the main usage of this native but when set to true for a Vehicle, it will prevent the vehicle to explode if it is spawned far away from the player. /// - void SetEntityLoadCollisionFlag(int entity, bool toggle, int p2); + void SetEntityLoadCollisionFlag(uint entity, bool toggle, int p2); bool HasCollisionLoadedAroundEntity(IEntity entity); - bool HasCollisionLoadedAroundEntity(int entity); + bool HasCollisionLoadedAroundEntity(uint entity); void SetEntityMaxSpeed(IEntity entity, float speed); - void SetEntityMaxSpeed(int entity, float speed); + void SetEntityMaxSpeed(uint entity, float speed); void SetEntityOnlyDamagedByPlayer(IEntity entity, bool toggle); - void SetEntityOnlyDamagedByPlayer(int entity, bool toggle); + void SetEntityOnlyDamagedByPlayer(uint entity, bool toggle); void SetEntityOnlyDamagedByRelationshipGroup(IEntity entity, bool p1, int p2); - void SetEntityOnlyDamagedByRelationshipGroup(int entity, bool p1, int p2); + void SetEntityOnlyDamagedByRelationshipGroup(uint entity, bool p1, int p2); /// /// Enable / disable each type of damage. /// -------------- @@ -4774,13 +4774,13 @@ public unsafe interface INatives /// /// is to to '1' in am_mp_property_ext/int: ENTITY::SET_ENTITY_PROOFS(uParam0->f_19, true, true, true, true, true, true, 1, true); /// is damage related to water not drowning - void SetEntityProofs(int entity, bool bulletProof, bool fireProof, bool explosionProof, bool collisionProof, bool meleeProof, bool steamProof, bool p7, bool waterProof); + void SetEntityProofs(uint entity, bool bulletProof, bool fireProof, bool explosionProof, bool collisionProof, bool meleeProof, bool steamProof, bool p7, bool waterProof); /// /// bool GetEntityProofs(IEntity entity, ref bool bulletProof, ref bool fireProof, ref bool explosionProof, ref bool collisionProof, ref bool meleeProof, ref bool steamProof, ref bool p7, ref bool drownProof); /// /// - bool GetEntityProofs(int entity, ref bool bulletProof, ref bool fireProof, ref bool explosionProof, ref bool collisionProof, ref bool meleeProof, ref bool steamProof, ref bool p7, ref bool drownProof); + bool GetEntityProofs(uint entity, ref bool bulletProof, ref bool fireProof, ref bool explosionProof, ref bool collisionProof, ref bool meleeProof, ref bool steamProof, ref bool p7, ref bool drownProof); /// /// /// is the correct parameter name! @@ -4788,9 +4788,9 @@ public unsafe interface INatives /// /// /// is the correct parameter name! - void SetEntityQuaternion(int entity, float x, float y, float z, float w); + void SetEntityQuaternion(uint entity, float x, float y, float z, float w); void SetEntityRecordsCollisions(IEntity entity, bool toggle); - void SetEntityRecordsCollisions(int entity, bool toggle); + void SetEntityRecordsCollisions(uint entity, bool toggle); /// /// value ranges from 0 to 5. What you use for rotationOrder when setting must be the same as rotationOrder when getting the rotation. /// Unsure what value corresponds to what rotation order, more testing will be needed for that. @@ -4806,7 +4806,7 @@ public unsafe interface INatives /// /// refers to the order yaw pitch roll is applied /// is usually set as true - void SetEntityRotation(int entity, float pitch, float roll, float yaw, int rotationOrder, bool p5); + void SetEntityRotation(uint entity, float pitch, float roll, float yaw, int rotationOrder, bool p5); /// /// /// is always 0. @@ -4814,11 +4814,11 @@ public unsafe interface INatives /// /// /// is always 0. - void SetEntityVisible(int entity, bool toggle, bool p2); + void SetEntityVisible(uint entity, bool toggle, bool p2); void SetEntityWaterReflectionFlag(IEntity entity, bool toggle); - void SetEntityWaterReflectionFlag(int entity, bool toggle); + void SetEntityWaterReflectionFlag(uint entity, bool toggle); void SetEntityMirrorReflectionFlag(IEntity entity, bool p1); - void SetEntityMirrorReflectionFlag(int entity, bool p1); + void SetEntityMirrorReflectionFlag(uint entity, bool p1); /// /// Note that the third parameter(denoted as z) is "up and down" with positive numbers encouraging upwards movement. /// @@ -4826,11 +4826,11 @@ public unsafe interface INatives /// /// Note that the third parameter(denoted as z) is "up and down" with positive numbers encouraging upwards movement. /// - void SetEntityVelocity(int entity, float x, float y, float z); + void SetEntityVelocity(uint entity, float x, float y, float z); void SetEntityAngularVelocity(IEntity entity, float x, float y, float z); - void SetEntityAngularVelocity(int entity, float x, float y, float z); + void SetEntityAngularVelocity(uint entity, float x, float y, float z); void SetEntityHasGravity(IEntity entity, bool toggle); - void SetEntityHasGravity(int entity, bool toggle); + void SetEntityHasGravity(uint entity, bool toggle); /// /// LOD distance can be 0 to 0xFFFF (higher values will result in 0xFFFF) as it is actually stored as a 16-bit value (aka uint16_t). /// @@ -4838,7 +4838,7 @@ public unsafe interface INatives /// /// LOD distance can be 0 to 0xFFFF (higher values will result in 0xFFFF) as it is actually stored as a 16-bit value (aka uint16_t). /// - void SetEntityLodDist(int entity, int value); + void SetEntityLodDist(uint entity, int value); /// /// Returns the LOD distance of an entity. /// @@ -4846,7 +4846,7 @@ public unsafe interface INatives /// /// Returns the LOD distance of an entity. /// - int GetEntityLodDist(int entity); + int GetEntityLodDist(uint entity); /// /// Set entity alpha level. Ranging from 0 to 255 but chnages occur after every 20 percent (after every 51). /// @@ -4856,11 +4856,11 @@ public unsafe interface INatives /// Set entity alpha level. Ranging from 0 to 255 but chnages occur after every 20 percent (after every 51). /// /// - everything alpha except skin - void SetEntityAlpha(int entity, int alphaLevel, bool skin); + void SetEntityAlpha(uint entity, int alphaLevel, bool skin); int GetEntityAlpha(IEntity entity); - int GetEntityAlpha(int entity); + int GetEntityAlpha(uint entity); void ResetEntityAlpha(IEntity entity); - void ResetEntityAlpha(int entity); + void ResetEntityAlpha(uint entity); /// /// Similar to RESET_ENTITY_ALPHA /// @@ -4868,7 +4868,7 @@ public unsafe interface INatives /// /// Similar to RESET_ENTITY_ALPHA /// - void ResetPickupEntityGlow(int entity); + void ResetPickupEntityGlow(uint entity); void SetPickupCollidesWithProjectiles(int p0, int p1); /// /// Only called once in the scripts. @@ -4879,11 +4879,11 @@ public unsafe interface INatives /// Only called once in the scripts. /// Related to weapon objects. /// - void SetEntitySortBias(int entity, float p1); + void SetEntitySortBias(uint entity, float p1); void SetEntityAlwaysPrerender(IEntity entity, bool toggle); - void SetEntityAlwaysPrerender(int entity, bool toggle); + void SetEntityAlwaysPrerender(uint entity, bool toggle); void SetEntityRenderScorched(IEntity entity, bool toggle); - void SetEntityRenderScorched(int entity, bool toggle); + void SetEntityRenderScorched(uint entity, bool toggle); /// /// Example here: www.gtaforums.com/topic/830463-help-with-turning-lights-green-and-causing-peds-to-crash-into-each-other/#entry1068211340 /// 0 = green @@ -4901,9 +4901,9 @@ public unsafe interface INatives /// 3 = reset changes /// changing lights may not change the behavior of vehicles /// - void SetEntityTrafficlightOverride(int entity, int state); + void SetEntityTrafficlightOverride(uint entity, int state); void SetEntityIsInVehicle(IEntity entity); - void SetEntityIsInVehicle(int entity); + void SetEntityIsInVehicle(uint entity); /// /// Only works with objects! /// @@ -4928,13 +4928,13 @@ public unsafe interface INatives /// The importance of the order for entity1 and entity2 is unclear. /// The third parameter, `thisFrame`, decides whether the collision is to be disabled until it is turned back on, or if it's just this frame. /// - void SetEntityNoCollisionEntity(IEntity entity1, int entity2, bool thisFrameOnly); + void SetEntityNoCollisionEntity(IEntity entity1, uint entity2, bool thisFrameOnly); /// /// Calling this function disables collision between two entities. /// The importance of the order for entity1 and entity2 is unclear. /// The third parameter, `thisFrame`, decides whether the collision is to be disabled until it is turned back on, or if it's just this frame. /// - void SetEntityNoCollisionEntity(int entity1, IEntity entity2, bool thisFrameOnly); + void SetEntityNoCollisionEntity(uint entity1, IEntity entity2, bool thisFrameOnly); /// /// Calling this function disables collision between two entities. /// The importance of the order for entity1 and entity2 is unclear. @@ -4946,9 +4946,9 @@ public unsafe interface INatives /// The importance of the order for entity1 and entity2 is unclear. /// The third parameter, `thisFrame`, decides whether the collision is to be disabled until it is turned back on, or if it's just this frame. /// - void SetEntityNoCollisionEntity(int entity1, int entity2, bool thisFrameOnly); + void SetEntityNoCollisionEntity(uint entity1, uint entity2, bool thisFrameOnly); void SetEntityMotionBlur(IEntity entity, bool toggle); - void SetEntityMotionBlur(int entity, bool toggle); + void SetEntityMotionBlur(uint entity, bool toggle); /// /// /// always false. @@ -4956,7 +4956,7 @@ public unsafe interface INatives /// /// /// always false. - void SetCanAutoVaultOnEntity(int entity, bool toggle); + void SetCanAutoVaultOnEntity(uint entity, bool toggle); /// /// /// always false. @@ -4964,7 +4964,7 @@ public unsafe interface INatives /// /// /// always false. - void SetCanClimbOnEntity(int entity, bool toggle); + void SetCanClimbOnEntity(uint entity, bool toggle); /// /// Only called within 1 script for x360. 'fm_mission_controller' and it used on an object. /// Ran after these 2 natives, @@ -4978,11 +4978,11 @@ public unsafe interface INatives /// set_object_targettable(uParam0, 0); /// set_entity_invincible(uParam0, 1); /// - void SetWaitForCollisionsBeforeProbe(int entity, bool toggle); + void SetWaitForCollisionsBeforeProbe(uint entity, bool toggle); void SetEntityNoweapondecals(IEntity entity, bool p1); - void SetEntityNoweapondecals(int entity, bool p1); + void SetEntityNoweapondecals(uint entity, bool p1); void SetEntityUseMaxDistanceForWaterReflection(IEntity entity, bool p1); - void SetEntityUseMaxDistanceForWaterReflection(int entity, bool p1); + void SetEntityUseMaxDistanceForWaterReflection(uint entity, bool p1); /// /// Gets the world rotation of the specified bone of the specified entity. /// @@ -4990,7 +4990,7 @@ public unsafe interface INatives /// /// Gets the world rotation of the specified bone of the specified entity. /// - Vector3 GetEntityBoneRotation(int entity, int boneIndex); + Vector3 GetEntityBoneRotation(uint entity, int boneIndex); /// /// Gets the world position of the specified bone of the specified entity. /// @@ -4998,7 +4998,7 @@ public unsafe interface INatives /// /// Gets the world position of the specified bone of the specified entity. /// - Vector3 GetEntityBonePostion(int entity, int boneIndex); + Vector3 GetEntityBonePostion(uint entity, int boneIndex); /// /// Gets the local rotation of the specified bone of the specified entity. /// @@ -5006,19 +5006,19 @@ public unsafe interface INatives /// /// Gets the local rotation of the specified bone of the specified entity. /// - Vector3 GetEntityBoneObjectRotation(int entity, int boneIndex); + Vector3 GetEntityBoneObjectRotation(uint entity, int boneIndex); int GetEntityBoneCount(IEntity entity); - int GetEntityBoneCount(int entity); + int GetEntityBoneCount(uint entity); void EnableEntityBulletCollision(IEntity entity); - void EnableEntityBulletCollision(int entity); - void SetEntityCanOnlyBeDamagedByEntity(IEntity entity1, int entity2); - void SetEntityCanOnlyBeDamagedByEntity(int entity1, IEntity entity2); + void EnableEntityBulletCollision(uint entity); + void SetEntityCanOnlyBeDamagedByEntity(IEntity entity1, uint entity2); + void SetEntityCanOnlyBeDamagedByEntity(uint entity1, IEntity entity2); void SetEntityCanOnlyBeDamagedByEntity(IEntity entity1, IEntity entity2); - void SetEntityCanOnlyBeDamagedByEntity(int entity1, int entity2); - void SetEntityCantCauseCollisionDamagedEntity(IEntity entity1, int entity2); - void SetEntityCantCauseCollisionDamagedEntity(int entity1, IEntity entity2); + void SetEntityCanOnlyBeDamagedByEntity(uint entity1, uint entity2); + void SetEntityCantCauseCollisionDamagedEntity(IEntity entity1, uint entity2); + void SetEntityCantCauseCollisionDamagedEntity(uint entity1, IEntity entity2); void SetEntityCantCauseCollisionDamagedEntity(IEntity entity1, IEntity entity2); - void SetEntityCantCauseCollisionDamagedEntity(int entity1, int entity2); + void SetEntityCantCauseCollisionDamagedEntity(uint entity1, uint entity2); /// /// /// is always set to 1 @@ -5026,25 +5026,25 @@ public unsafe interface INatives /// /// /// is always set to 1 - void SetAllowMigrateToSpectator(int entity, int p1); + void SetAllowMigrateToSpectator(uint entity, int p1); /// /// Gets the handle of an entity with a specific model hash attached to another entity, such as an object attached to a ped. /// This native does not appear to have anything to do with pickups as in scripts it is used with objects. /// Example from fm_mission_controller_2020.c: /// iVar8 = ENTITY::GET_ENTITY_OF_TYPE_ATTACHED_TO_ENTITY(bParam0->f_9, joaat("p_cs_clipboard")); /// - int GetEntityOfTypeAttachedToEntity(IEntity entity, uint modelHash); + uint GetEntityOfTypeAttachedToEntity(IEntity entity, uint modelHash); /// /// Gets the handle of an entity with a specific model hash attached to another entity, such as an object attached to a ped. /// This native does not appear to have anything to do with pickups as in scripts it is used with objects. /// Example from fm_mission_controller_2020.c: /// iVar8 = ENTITY::GET_ENTITY_OF_TYPE_ATTACHED_TO_ENTITY(bParam0->f_9, joaat("p_cs_clipboard")); /// - int GetEntityOfTypeAttachedToEntity(int entity, uint modelHash); + uint GetEntityOfTypeAttachedToEntity(uint entity, uint modelHash); void SetPickUpByCargobobDisabled(IEntity entity, bool toggle); - void SetPickUpByCargobobDisabled(int entity, bool toggle); + void SetPickUpByCargobobDisabled(uint entity, bool toggle); void SetDecisionMaker(IPlayer ped, uint name); - void SetDecisionMaker(int ped, uint name); + void SetDecisionMaker(uint ped, uint name); /// /// /// https://alloc8or.re/gta5/doc/enums/eEventType.txt @@ -5069,12 +5069,12 @@ public unsafe interface INatives /// /// /// https://alloc8or.re/gta5/doc/enums/eEventType.txt - int AddShockingEventForEntity(int eventType, int entity, float duration); + int AddShockingEventForEntity(int eventType, uint entity, float duration); /// /// /// https://alloc8or.re/gta5/doc/enums/eEventType.txt bool IsShockingEventInSphere(int eventType, float x, float y, float z, float radius); - bool RemoveShockingEvent(int @event); + bool RemoveShockingEvent(uint @event); void RemoveAllShockingEvents(bool p0); void RemoveShockingEventSpawnBlockingAreas(); void SuppressShockingEventsNextFrame(); @@ -5159,9 +5159,9 @@ public unsafe interface INatives /// void GetShopPedProp(uint componentHash, ref int outProp); uint GetHashNameForComponent(IEntity entity, int componentId, int drawableVariant, int textureVariant); - uint GetHashNameForComponent(int entity, int componentId, int drawableVariant, int textureVariant); + uint GetHashNameForComponent(uint entity, int componentId, int drawableVariant, int textureVariant); uint GetHashNameForProp(IEntity entity, int componentId, int propIndex, int propTextureIndex); - uint GetHashNameForProp(int entity, int componentId, int propIndex, int propTextureIndex); + uint GetHashNameForProp(uint entity, int componentId, int propIndex, int propTextureIndex); int GetItemVariantsCount(uint componentHash); /// /// `propHash`: Ped helmet prop hash? @@ -5194,9 +5194,9 @@ public unsafe interface INatives /// bool IsTagRestricted(uint componentHash, uint restrictionTagHash, int componentId); bool DoesCurrentPedComponentHaveRestrictionTag(IPlayer ped, int componentId, uint restrictionTagHash); - bool DoesCurrentPedComponentHaveRestrictionTag(int ped, int componentId, uint restrictionTagHash); + bool DoesCurrentPedComponentHaveRestrictionTag(uint ped, int componentId, uint restrictionTagHash); bool DoesCurrentPedPropHaveRestrictionTag(IPlayer ped, int componentId, uint restrictionTagHash); - bool DoesCurrentPedPropHaveRestrictionTag(int ped, int componentId, uint restrictionTagHash); + bool DoesCurrentPedPropHaveRestrictionTag(uint ped, int componentId, uint restrictionTagHash); /// /// characters /// 0: Michael @@ -5312,11 +5312,11 @@ public unsafe interface INatives int StartScriptFire(float X, float Y, float Z, int maxChildren, bool isGasFire); void RemoveScriptFire(int fireHandle); int StartEntityFire(IEntity entity); - int StartEntityFire(int entity); + int StartEntityFire(uint entity); void StopEntityFire(IEntity entity); - void StopEntityFire(int entity); + void StopEntityFire(uint entity); bool IsEntityOnFire(IEntity entity); - bool IsEntityOnFire(int entity); + bool IsEntityOnFire(uint entity); int GetNumberOfFiresInRange(float x, float y, float z, float radius); void SetFlammabilityMultiplier(float p0); void StopFireInRange(float x, float y, float z, float radius); @@ -5341,7 +5341,7 @@ public unsafe interface INatives /// See ADD_EXPLOSION. /// If explosion makes a sound. /// If the explosion is invisible or not. - void AddOwnedExplosion(int ped, float x, float y, float z, int explosionType, float damageScale, bool isAudible, bool isInvisible, float cameraShake); + void AddOwnedExplosion(uint ped, float x, float y, float z, int explosionType, float damageScale, bool isAudible, bool isInvisible, float cameraShake); /// /// /// See ADD_EXPLOSION. @@ -5363,7 +5363,7 @@ public unsafe interface INatives /// /// /// See ADD_EXPLOSION. - int GetOwnerOfExplosionInSphere(int explosionType, float x, float y, float z, float radius); + uint GetOwnerOfExplosionInSphere(int explosionType, float x, float y, float z, float radius); /// /// /// See ADD_EXPLOSION, -1 for any explosion type @@ -5372,7 +5372,7 @@ public unsafe interface INatives /// Returns a handle to the first entity within the a circle spawned inside the 2 points from a radius. /// /// See ADD_EXPLOSION. - int GetOwnerOfExplosionInAngledArea(int explosionType, float x1, float y1, float z1, float x2, float y2, float z2, float radius); + uint GetOwnerOfExplosionInAngledArea(int explosionType, float x1, float y1, float z1, float x2, float y2, float z2, float radius); /// /// Initializes the text entry for the the text next to a loading prompt. All natives for building UI texts can be used here /// e.g @@ -5989,7 +5989,7 @@ public unsafe interface INatives /// 7 - Radius /// int GetBlipInfoIdType(int blip); - int GetBlipInfoIdEntityIndex(int blip); + uint GetBlipInfoIdEntityIndex(int blip); /// /// /// This function is hard-coded to always return 0. @@ -6001,7 +6001,7 @@ public unsafe interface INatives /// /// Returns the Blip handle of given Entity. /// - int GetBlipFromEntity(int entity); + int GetBlipFromEntity(uint entity); int AddBlipForRadius(float posX, float posY, float posZ, float radius); /// /// Adds a rectangular blip for the specified coordinates/area. @@ -6028,7 +6028,7 @@ public unsafe interface INatives /// blip = HUD::ADD_BLIP_FOR_ENTITY(YourPedOrBodyguardName); /// HUD::SET_BLIP_AS_FRIENDLY(blip, true); /// - int AddBlipForEntity(int entity); + int AddBlipForEntity(uint entity); int AddBlipForPickup(int pickup); /// /// @@ -6058,7 +6058,7 @@ public unsafe interface INatives /// void SetBlipNameFromTextFile(int blip, string gxtEntry); void SetBlipNameToPlayerName(int blip, IPlayer player); - void SetBlipNameToPlayerName(int blip, int player); + void SetBlipNameToPlayerName(int blip, uint player); /// /// Sets alpha-channel for blip color. /// Example: @@ -6243,7 +6243,7 @@ public unsafe interface INatives /// /// Interesting fact: A hash collision for this is RESET_JETPACK_MODEL_SETTINGS /// - void RemoveCopBlipFromPed(int ped); + void RemoveCopBlipFromPed(uint ped); void SetupFakeConeData(int blip, float p1, float p2, float p3, float p4, float p5, float p6, int p7, int p8); void RemoveFakeConeData(int blip); void ClearFakeConeArray(); @@ -6431,7 +6431,7 @@ public unsafe interface INatives void FlashMinimapDisplayWithColor(int hudColorIndex); void ToggleStealthRadar(bool toggle); void SetMinimapInSpectatorMode(bool toggle, IPlayer ped); - void SetMinimapInSpectatorMode(bool toggle, int ped); + void SetMinimapInSpectatorMode(bool toggle, uint ped); void SetMissionName(bool p0, string name); void SetMissionNameForUgcMission(bool p0, string name); void SetDescriptionForUgcMissionEightStrings(bool p0, string p1, string p2, string p3, string p4, string p5, string p6, string p7, string p8); @@ -6552,7 +6552,7 @@ public unsafe interface INatives void SetFloatingHelpTextScreenPosition(int hudIndex, float x, float y); void SetFloatingHelpTextWorldPosition(int hudIndex, float x, float y, float z); void SetFloatingHelpTextToEntity(int hudIndex, IEntity entity, float offsetX, float offsetY); - void SetFloatingHelpTextToEntity(int hudIndex, int entity, float offsetX, float offsetY); + void SetFloatingHelpTextToEntity(int hudIndex, uint entity, float offsetX, float offsetY); void SetFloatingHelpTextStyle(int hudIndex, int p1, int p2, int p3, int p4, int p5); void ClearFloatingHelp(int hudIndex, bool p1); /// @@ -6562,7 +6562,7 @@ public unsafe interface INatives /// /// /// takes a number 0-5 - void CreateMpGamerTagWithCrewColor(int player, string username, bool pointedClanTag, bool isRockstarClan, string clanTag, int clanFlag, int r, int g, int b); + void CreateMpGamerTagWithCrewColor(uint player, string username, bool pointedClanTag, bool isRockstarClan, string clanTag, int clanFlag, int r, int g, int b); bool IsMpGamerTagMovieActive(); /// /// @@ -6571,7 +6571,7 @@ public unsafe interface INatives /// /// /// takes a number 0-5 - int CreateFakeMpGamerTag(int ped, string username, bool pointedClanTag, bool isRockstarClan, string clanTag, int clanFlag); + int CreateFakeMpGamerTag(uint ped, string username, bool pointedClanTag, bool isRockstarClan, string clanTag, int clanFlag); void RemoveMpGamerTag(int gamerTagId); bool IsMpGamerTagActive(int gamerTagId); bool IsMpGamerTagFree(int gamerTagId); @@ -6877,7 +6877,7 @@ public unsafe interface INatives /// /// /// is either 1 or 2 in the PC scripts. - void GivePedToPauseMenu(int ped, int p1); + void GivePedToPauseMenu(uint ped, int p1); /// /// Toggles the light state for the pause menu ped in frontend menus. /// This is used by R* in combination with `SET_PAUSE_MENU_PED_SLEEP_STATE` to toggle the "offline" or "online" state in the "friends" tab of the pause menu in GTA Online. @@ -6936,7 +6936,7 @@ public unsafe interface INatives /// This native turns on the AI blip on the specified ped. It also disappears automatically when the ped is too far or if the ped is dead. You don't need to control it with other natives. /// See gtaforums.com/topic/884370-native-research-ai-blips for further information. /// - void SetPedHasAiBlip(int ped, bool hasCone); + void SetPedHasAiBlip(uint ped, bool hasCone); /// /// /// see SET_BLIP_COLOUR @@ -6944,21 +6944,21 @@ public unsafe interface INatives /// /// /// see SET_BLIP_COLOUR - void SetPedHasAiBlipWithColour(int ped, bool hasCone, int color); + void SetPedHasAiBlipWithColour(uint ped, bool hasCone, int color); bool DoesPedHaveAiBlip(IPlayer ped); - bool DoesPedHaveAiBlip(int ped); + bool DoesPedHaveAiBlip(uint ped); void SetPedAiBlipGangId(IPlayer ped, int gangId); - void SetPedAiBlipGangId(int ped, int gangId); + void SetPedAiBlipGangId(uint ped, int gangId); void SetPedAiBlipHasCone(IPlayer ped, bool toggle); - void SetPedAiBlipHasCone(int ped, bool toggle); + void SetPedAiBlipHasCone(uint ped, bool toggle); void SetPedAiBlipForcedOn(IPlayer ped, bool toggle); - void SetPedAiBlipForcedOn(int ped, bool toggle); + void SetPedAiBlipForcedOn(uint ped, bool toggle); void SetPedAiBlipNoticeRange(IPlayer ped, float range); - void SetPedAiBlipNoticeRange(int ped, float range); + void SetPedAiBlipNoticeRange(uint ped, float range); void SetPedAiBlipSprite(IPlayer ped, int spriteId); - void SetPedAiBlipSprite(int ped, int spriteId); + void SetPedAiBlipSprite(uint ped, int spriteId); int GetAiPedPedBlipIndex(IPlayer ped); - int GetAiPedPedBlipIndex(int ped); + int GetAiPedPedBlipIndex(uint ped); /// /// Returns the current AI BLIP for the specified ped /// @@ -6966,7 +6966,7 @@ public unsafe interface INatives /// /// Returns the current AI BLIP for the specified ped /// - int GetAiPedVehicleBlipIndex(int ped); + int GetAiPedVehicleBlipIndex(uint ped); bool HasDirectorModeBeenLaunchedByCode(); void SetDirectorModeLaunchedByScript(); /// @@ -6988,9 +6988,9 @@ public unsafe interface INatives bool IsInteriorScene(); bool IsValidInterior(int interior); void ClearRoomForEntity(IEntity entity); - void ClearRoomForEntity(int entity); + void ClearRoomForEntity(uint entity); void ForceRoomForEntity(IEntity entity, int interior, uint roomHashKey); - void ForceRoomForEntity(int entity, int interior, uint roomHashKey); + void ForceRoomForEntity(uint entity, int interior, uint roomHashKey); /// /// /// Gets the room hash key from the room that the specified entity is in. Each room in every interior has a unique key. Returns 0 if the entity is outside. @@ -6998,7 +6998,7 @@ public unsafe interface INatives /// /// /// Gets the room hash key from the room that the specified entity is in. Each room in every interior has a unique key. Returns 0 if the entity is outside. - uint GetRoomKeyFromEntity(int entity); + uint GetRoomKeyFromEntity(uint entity); /// /// Seems to do the exact same as INTERIOR::GET_ROOM_KEY_FROM_ENTITY /// @@ -7006,7 +7006,7 @@ public unsafe interface INatives /// /// Seems to do the exact same as INTERIOR::GET_ROOM_KEY_FROM_ENTITY /// - uint GetKeyForEntityInRoom(int entity); + uint GetKeyForEntityInRoom(uint entity); /// /// /// Returns the handle of the interior that the entity is in. Returns 0 if outside. @@ -7014,9 +7014,9 @@ public unsafe interface INatives /// /// /// Returns the handle of the interior that the entity is in. Returns 0 if outside. - int GetInteriorFromEntity(int entity); + int GetInteriorFromEntity(uint entity); void RetainEntityInInterior(IEntity entity, int interior); - void RetainEntityInInterior(int entity, int interior); + void RetainEntityInInterior(uint entity, int interior); /// /// Immediately removes entity from an interior. Like sets entity to `limbo` room. /// @@ -7024,7 +7024,7 @@ public unsafe interface INatives /// /// Immediately removes entity from an interior. Like sets entity to `limbo` room. /// - void ClearInteriorStateOfEntity(int entity); + void ClearInteriorStateOfEntity(uint entity); void ForceActivatingTrackingOnEntity(int p0, int p1); void ForceRoomForGameViewport(int interiorID, uint roomHashKey); /// @@ -7126,16 +7126,16 @@ public unsafe interface INatives /// /// Jenkins hash _might_ be 0xFC227584. /// - void SetIsExteriorOnly(int entity, bool toggle); - int CreateItemset(bool p0); - void DestroyItemset(int itemset); - bool IsItemsetValid(int itemset); - bool AddToItemset(int item, int itemset); - void RemoveFromItemset(int item, int itemset); - int GetItemsetSize(int itemset); - int GetIndexedItemInItemset(int index, int itemset); - bool IsInItemset(int item, int itemset); - void CleanItemset(int itemset); + void SetIsExteriorOnly(uint entity, bool toggle); + uint CreateItemset(bool p0); + void DestroyItemset(uint itemset); + bool IsItemsetValid(uint itemset); + bool AddToItemset(uint item, uint itemset); + void RemoveFromItemset(uint item, uint itemset); + int GetItemsetSize(uint itemset); + uint GetIndexedItemInItemset(int index, uint itemset); + bool IsInItemset(uint item, uint itemset); + void CleanItemset(uint itemset); bool LobbyAutoMultiplayerMenu(); bool LobbyAutoMultiplayerFreemode(); void LobbySetAutoMultiplayer(bool toggle); @@ -7480,7 +7480,7 @@ public unsafe interface INatives /// /// The range, seems to not be very accurate during testing. /// `p4`: Unknown, when set to true it seems to always return true no matter what I try. - bool IsPositionOccupied(float x, float y, float z, float range, bool p4, bool checkVehicles, bool checkPeds, bool p7, bool p8, int ignoreEntity, bool p10); + bool IsPositionOccupied(float x, float y, float z, float range, bool p4, bool checkVehicles, bool checkPeds, bool p7, bool p8, uint ignoreEntity, bool p10); bool IsPointObscuredByAMissionEntity(float p0, float p1, float p2, float p3, float p4, float p5, int p6); /// /// Example: CLEAR_AREA(0, 0, 0, 30, true, false, false, false); @@ -7593,15 +7593,15 @@ public unsafe interface INatives int GetStatusOfMissionRepeatSave(); bool IsMemoryCardInUse(); void ShootSingleBulletBetweenCoords(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, IPlayer ownerPed, bool isAudible, bool isInvisible, float speed); - void ShootSingleBulletBetweenCoords(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, int ownerPed, bool isAudible, bool isInvisible, float speed); + void ShootSingleBulletBetweenCoords(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, uint ownerPed, bool isAudible, bool isInvisible, float speed); /// /// /// - entity to ignore - void ShootSingleBulletBetweenCoordsIgnoreEntity(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, IPlayer ownerPed, bool isAudible, bool isInvisible, float speed, int entity, int p14); + void ShootSingleBulletBetweenCoordsIgnoreEntity(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, IPlayer ownerPed, bool isAudible, bool isInvisible, float speed, uint entity, int p14); /// /// /// - entity to ignore - void ShootSingleBulletBetweenCoordsIgnoreEntity(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, int ownerPed, bool isAudible, bool isInvisible, float speed, IEntity entity, int p14); + void ShootSingleBulletBetweenCoordsIgnoreEntity(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, uint ownerPed, bool isAudible, bool isInvisible, float speed, IEntity entity, int p14); /// /// /// - entity to ignore @@ -7609,37 +7609,37 @@ public unsafe interface INatives /// /// /// - entity to ignore - void ShootSingleBulletBetweenCoordsIgnoreEntity(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, int ownerPed, bool isAudible, bool isInvisible, float speed, int entity, int p14); + void ShootSingleBulletBetweenCoordsIgnoreEntity(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, uint ownerPed, bool isAudible, bool isInvisible, float speed, uint entity, int p14); /// /// /// - entity to ignore /// - entity to home in on, if the weapon hash provided supports homing - void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, IPlayer ownerPed, bool isAudible, bool isInvisible, float speed, int entity, bool p14, bool p15, int targetEntity, bool p17, int p18, int p19, int p20); + void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, IPlayer ownerPed, bool isAudible, bool isInvisible, float speed, uint entity, bool p14, bool p15, uint targetEntity, bool p17, int p18, int p19, int p20); /// /// /// - entity to ignore /// - entity to home in on, if the weapon hash provided supports homing - void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, int ownerPed, bool isAudible, bool isInvisible, float speed, IEntity entity, bool p14, bool p15, int targetEntity, bool p17, int p18, int p19, int p20); + void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, uint ownerPed, bool isAudible, bool isInvisible, float speed, IEntity entity, bool p14, bool p15, uint targetEntity, bool p17, int p18, int p19, int p20); /// /// /// - entity to ignore /// - entity to home in on, if the weapon hash provided supports homing - void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, IPlayer ownerPed, bool isAudible, bool isInvisible, float speed, IEntity entity, bool p14, bool p15, int targetEntity, bool p17, int p18, int p19, int p20); + void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, IPlayer ownerPed, bool isAudible, bool isInvisible, float speed, IEntity entity, bool p14, bool p15, uint targetEntity, bool p17, int p18, int p19, int p20); /// /// /// - entity to ignore /// - entity to home in on, if the weapon hash provided supports homing - void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, int ownerPed, bool isAudible, bool isInvisible, float speed, int entity, bool p14, bool p15, IEntity targetEntity, bool p17, int p18, int p19, int p20); + void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, uint ownerPed, bool isAudible, bool isInvisible, float speed, uint entity, bool p14, bool p15, IEntity targetEntity, bool p17, int p18, int p19, int p20); /// /// /// - entity to ignore /// - entity to home in on, if the weapon hash provided supports homing - void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, IPlayer ownerPed, bool isAudible, bool isInvisible, float speed, int entity, bool p14, bool p15, IEntity targetEntity, bool p17, int p18, int p19, int p20); + void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, IPlayer ownerPed, bool isAudible, bool isInvisible, float speed, uint entity, bool p14, bool p15, IEntity targetEntity, bool p17, int p18, int p19, int p20); /// /// /// - entity to ignore /// - entity to home in on, if the weapon hash provided supports homing - void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, int ownerPed, bool isAudible, bool isInvisible, float speed, IEntity entity, bool p14, bool p15, IEntity targetEntity, bool p17, int p18, int p19, int p20); + void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, uint ownerPed, bool isAudible, bool isInvisible, float speed, IEntity entity, bool p14, bool p15, IEntity targetEntity, bool p17, int p18, int p19, int p20); /// /// /// - entity to ignore @@ -7649,7 +7649,7 @@ public unsafe interface INatives /// /// - entity to ignore /// - entity to home in on, if the weapon hash provided supports homing - void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, int ownerPed, bool isAudible, bool isInvisible, float speed, int entity, bool p14, bool p15, int targetEntity, bool p17, int p18, int p19, int p20); + void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, uint ownerPed, bool isAudible, bool isInvisible, float speed, uint entity, bool p14, bool p15, uint targetEntity, bool p17, int p18, int p19, int p20); /// /// Gets the dimensions of a model. /// Calculate (maximum - minimum) to get the size, in which case, Y will be how long the model is. @@ -7720,13 +7720,13 @@ public unsafe interface INatives bool GetCoordsOfProjectileTypeWithinDistance(IPlayer ped, uint weaponHash, float distance, ref Vector3 outCoords, bool p4); /// /// - bool GetCoordsOfProjectileTypeWithinDistance(int ped, uint weaponHash, float distance, ref Vector3 outCoords, bool p4); + bool GetCoordsOfProjectileTypeWithinDistance(uint ped, uint weaponHash, float distance, ref Vector3 outCoords, bool p4); /// /// - bool GetProjectileOfProjectileTypeWithinDistance(IPlayer ped, uint weaponHash, float distance, ref Vector3 outCoords, ref int outProjectile, bool p5); + bool GetProjectileOfProjectileTypeWithinDistance(IPlayer ped, uint weaponHash, float distance, ref Vector3 outCoords, ref uint outProjectile, bool p5); /// /// - bool GetProjectileOfProjectileTypeWithinDistance(int ped, uint weaponHash, float distance, ref Vector3 outCoords, ref int outProjectile, bool p5); + bool GetProjectileOfProjectileTypeWithinDistance(uint ped, uint weaponHash, float distance, ref Vector3 outCoords, ref uint outProjectile, bool p5); /// /// For projectiles, see: IS_PROJECTILE_TYPE_IN_ANGLED_AREA /// See IS_POINT_IN_ANGLED_AREA for the definition of an angled area. @@ -7962,7 +7962,7 @@ public unsafe interface INatives /// ===================================================== /// /// if(CREATE_INCIDENT) etc it will return false if you do as I said above. - bool CreateIncidentWithEntity(int dispatchService, int ped, int numUnits, float radius, ref int outIncidentID, int p5, int p6); + bool CreateIncidentWithEntity(int dispatchService, uint ped, int numUnits, float radius, ref int outIncidentID, int p5, int p6); /// /// Delete an incident with a given id. /// ======================================================= @@ -8008,9 +8008,9 @@ public unsafe interface INatives /// /// Makes the ped jump around like they're in a tennis match /// - void EnableTennisMode(int ped, bool toggle, bool p2); + void EnableTennisMode(uint ped, bool toggle, bool p2); bool IsTennisMode(IPlayer ped); - bool IsTennisMode(int ped); + bool IsTennisMode(uint ped); /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// @@ -8018,15 +8018,15 @@ public unsafe interface INatives /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// - void PlayTennisSwingAnim(int ped, string animDict, string animName, float p3, float p4, bool p5); + void PlayTennisSwingAnim(uint ped, string animDict, string animName, float p3, float p4, bool p5); bool GetTennisSwingAnimComplete(IPlayer ped); - bool GetTennisSwingAnimComplete(int ped); + bool GetTennisSwingAnimComplete(uint ped); bool GetTennisSwingAnimCanBeInterrupted(IPlayer ped); - bool GetTennisSwingAnimCanBeInterrupted(int ped); + bool GetTennisSwingAnimCanBeInterrupted(uint ped); bool GetTennisSwingAnimSwung(IPlayer ped); - bool GetTennisSwingAnimSwung(int ped); + bool GetTennisSwingAnimSwung(uint ped); void PlayTennisDiveAnim(IPlayer ped, int p1, float p2, float p3, float p4, bool p5); - void PlayTennisDiveAnim(int ped, int p1, float p2, float p3, float p4, bool p5); + void PlayTennisDiveAnim(uint ped, int p1, float p2, float p3, float p4, bool p5); /// /// From the scripts: /// MISC::SET_TENNIS_MOVE_NETWORK_SIGNAL_FLOAT(sub_aa49(a_0), "ForcedStopDirection", v_E); @@ -8038,7 +8038,7 @@ public unsafe interface INatives /// MISC::SET_TENNIS_MOVE_NETWORK_SIGNAL_FLOAT(sub_aa49(a_0), "ForcedStopDirection", v_E); /// Related to tennis mode. /// - void SetTennisMoveNetworkSignalFloat(int ped, string p1, float p2); + void SetTennisMoveNetworkSignalFloat(uint ped, string p1, float p2); void ResetDispatchSpawnLocation(); void SetDispatchSpawnLocation(float x, float y, float z); void ResetDispatchIdealSpawnDistance(); @@ -8108,17 +8108,17 @@ public unsafe interface INatives int GetRealWorldTime(); void SupressRandomEventThisFrame(int eventType, bool suppress); void SetExplosiveAmmoThisFrame(IPlayer player); - void SetExplosiveAmmoThisFrame(int player); + void SetExplosiveAmmoThisFrame(uint player); void SetFireAmmoThisFrame(IPlayer player); - void SetFireAmmoThisFrame(int player); + void SetFireAmmoThisFrame(uint player); void SetExplosiveMeleeThisFrame(IPlayer player); - void SetExplosiveMeleeThisFrame(int player); + void SetExplosiveMeleeThisFrame(uint player); void SetSuperJumpThisFrame(IPlayer player); - void SetSuperJumpThisFrame(int player); + void SetSuperJumpThisFrame(uint player); void SetBeastJumpThisFrame(IPlayer player); - void SetBeastJumpThisFrame(int player); + void SetBeastJumpThisFrame(uint player); void SetForcedJumpThisFrame(IPlayer player); - void SetForcedJumpThisFrame(int player); + void SetForcedJumpThisFrame(uint player); bool HasGameInstalledThisSession(); void SetTickerJohnmarstonIsDone(); bool AreProfileSettingsValid(); @@ -8139,13 +8139,13 @@ public unsafe interface INatives void ScriptRaceInit(int p0, int p1, int p2, int p3); void ScriptRaceShutdown(); void ScriptRacePlayerHitCheckpoint(IPlayer player, int p1, int p2, int p3); - void ScriptRacePlayerHitCheckpoint(int player, int p1, int p2, int p3); + void ScriptRacePlayerHitCheckpoint(uint player, int p1, int p2, int p3); /// /// bool ScriptRaceGetPlayerSplitTime(IPlayer player, ref int p1, ref int p2); /// /// - bool ScriptRaceGetPlayerSplitTime(int player, ref int p1, ref int p2); + bool ScriptRaceGetPlayerSplitTime(uint player, ref int p1, ref int p2); void StartEndUserBenchmark(); void StopEndUserBenchmark(); void ResetEndUserBenchmark(); @@ -8237,7 +8237,7 @@ public unsafe interface INatives void GetMobilePhoneRotation(ref Vector3 rotation, IVehicle p1); /// /// - void GetMobilePhoneRotation(ref Vector3 rotation, int p1); + void GetMobilePhoneRotation(ref Vector3 rotation, uint p1); void SetMobilePhonePosition(float posX, float posY, float posZ); /// /// @@ -8274,7 +8274,7 @@ public unsafe interface INatives void CellCamSetSelfieModeHeadRollOffset(float roll); void CellCamSetSelfieModeHeadPitchOffset(float pitch); bool CellCamIsCharVisibleNoFaceCheck(IEntity entity); - bool CellCamIsCharVisibleNoFaceCheck(int entity); + bool CellCamIsCharVisibleNoFaceCheck(uint entity); /// /// void GetMobilePhoneRenderId(ref int renderId); @@ -8400,7 +8400,7 @@ public unsafe interface INatives /// bool NetworkCanSpendMoney2(int p0, bool p1, bool p2, bool p3, ref int p4, int p5, int p6); void NetworkBuyItem(int amount, uint item, int p2, int p3, bool p4, string item_name, int p6, int p7, int p8, bool p9); - void NetworkSpentTaxi(int amount, bool p1, bool p2, int p3); + void NetworkSpentTaxi(int amount, bool p1, bool p2, int p3, int p4); void NetworkPayEmployeeWage(int p0, bool p1, bool p2); void NetworkPayMatchEntryFee(int amount, string matchId, bool p2, bool p3); void NetworkSpentBetting(int amount, int p1, string matchId, bool p3, bool p4); @@ -8426,7 +8426,7 @@ public unsafe interface INatives /// /// /// is just an assumption. p2 was false and p3 was true. - void NetworkBuyBounty(int amount, int victim, bool p2, bool p3, int p4); + void NetworkBuyBounty(int amount, uint victim, bool p2, bool p3, int p4); void NetworkBuyProperty(int cost, uint propertyName, bool p2, bool p3); void NetworkBuySmokes(int p0, bool p1, bool p2); void NetworkSpentHeliPickup(int p0, bool p1, bool p2, int p3); @@ -8572,10 +8572,10 @@ public unsafe interface INatives void NetworkSpentPurchaseNightclubAndWarehouse(int p0, int p1, int p2, int p3); void NetworkSpentUpgradeNightclubAndWarehouse(int p0, int p1, int p2, int p3); void NetworkEarnNightclubAndWarehouse(int p0, int p1, int p2, int p3, int p4, int p5, int p6); - void NetworkSpendNightclubAndWarehouse(int p0, int p1, int p2, int p3, int p4, int p5); + void NetworkSpendNightclubAndWarehouse(int p0, int p1, int p2, int p3); void NetworkSpentRdrHatchetBonus(int amount, bool p1, bool p2); void NetworkSpentNightclubEntryFee(IPlayer player, int amount, int p1, bool p2, bool p3); - void NetworkSpentNightclubEntryFee(int player, int amount, int p1, bool p2, bool p3); + void NetworkSpentNightclubEntryFee(uint player, int amount, int p1, bool p2, bool p3); void NetworkSpendNightclubBarDrink(int amount, int p1, bool p2, bool p3); void NetworkSpendBountyHunterMission(int amount, bool p1, bool p2); void NetworkSpentRehireDj(int amount, int p1, bool p2, bool p3); @@ -8644,7 +8644,7 @@ public unsafe interface INatives void NetworkSpendCarClubTakeover(int p0, int p1, int p2, int p3); void NetworkSpendBuyAutoshop(int p0, int p1, int p2, int p3); void NetworkSpendUpgradeAutoshop(int p0, int p1, int p2, int p3); - void NetworkEarnAutoshopBusiness(int p0, int p1); + void NetworkEarnAutoshopBusiness(int p0, int p1, int p2); void NetworkEarnAutoshopIncome(int p0, int p1); void NetworkEarnCarclubMembership(int p0); void NetworkEarnDailyVehicle(int p0, int p1); @@ -8852,13 +8852,13 @@ public unsafe interface INatives bool NetworkHasSocialClubAccount(); bool NetworkAreSocialClubPoliciesCurrent(); bool NetworkIsHost(); - int NetworkGetHostPlayerIndex(); + uint NetworkGetHostPlayerIndex(); bool NetworkWasGameSuspended(); bool NetworkHaveOnlinePrivileges(); bool NetworkHasAgeRestrictions(); bool NetworkHaveUserContentPrivileges(int p0); bool NetworkHaveCommunicationPrivileges(int p0, IPlayer player); - bool NetworkHaveCommunicationPrivileges(int p0, int player); + bool NetworkHaveCommunicationPrivileges(int p0, uint player); bool NetworkCheckOnlinePrivileges(int p0, bool p1); bool NetworkCheckUserContentPrivileges(int p0, int p1, bool p2); bool NetworkCheckCommunicationPrivileges(int p0, int p1, bool p2); @@ -8890,23 +8890,12 @@ public unsafe interface INatives bool NetworkCanAccessMultiplayer(ref int loadingState); bool NetworkIsMultiplayerDisabled(); bool NetworkCanEnterMultiplayer(); + bool NetworkSessionDoFreeroamQuickmatch(int p0, int p1, int p2, int maxPlayers); + bool NetworkSessionDoFriendMatchmaking(int p0, int p1, int maxPlayers); /// - /// unknown params - /// p5 is reset to 0 if, - /// Global_1315318 = 0 or Global_1315323 = 9 or 12 or (Global_1312629 = 0 && Global_1312631 = true/1) those are passed. + /// p4 seems to be unused in 1.60/build 2628 /// - /// = 0, 2, or 999 (The global is 999 by default.) - /// = 0 (Always in every script it's found in atleast.) - /// = 0, 3, or 4 (Based on a var that is determined by a function.) - /// = maxPlayers (It's obvious in x360 scripts it's always 18) - /// = 0 (Always in every script it's found in atleast.) - /// = 0 or 1. (1 if network_can_enter_multiplayer, but set to 0 if other checks after that are passed.) - bool NetworkSessionDoFreeroamQuickmatch(int p0, int p1, int p2, int maxPlayers, int p4, int p5); - bool NetworkSessionDoFriendMatchmaking(int p0, int p1, int maxPlayers, bool p3); - /// - /// - /// seems to be unused in 1.60/build 2628 - bool NetworkSessionDoCrewMatchmaking(int crewId, int p1, int p2, int maxPlayers, bool p4); + bool NetworkSessionDoCrewMatchmaking(int crewId, int p1, int p2, int maxPlayers); bool NetworkSessionDoActivityQuickmatch(int p0, int p1, int p2, int p3, int p4); /// /// Does nothing in online but in offline it will cause the screen to fade to black. Nothing happens past then, the screen will sit at black until you restart GTA. Other stuff must be needed to actually host a session. @@ -8936,9 +8925,9 @@ public unsafe interface INatives /// /// Only works as host. /// - void NetworkSessionKickPlayer(int player); + void NetworkSessionKickPlayer(uint player); bool NetworkSessionGetKickVote(IPlayer player); - bool NetworkSessionGetKickVote(int player); + bool NetworkSessionGetKickVote(uint player); bool NetworkSessionReserveSlotsTransition(int p0, int p1, int p2); bool NetworkJoinPreviouslyFailedSession(); bool NetworkJoinPreviouslyFailedTransition(); @@ -9180,7 +9169,7 @@ public unsafe interface INatives void NetworkChangeTransitionSlots(int p0, bool p1); void NetworkTransitionBlockJoinRequests(bool p0); bool NetworkHasPlayerStartedTransition(IPlayer player); - bool NetworkHasPlayerStartedTransition(int player); + bool NetworkHasPlayerStartedTransition(uint player); bool NetworkAreTransitionDetailsValid(int p0); /// /// int handle[76]; @@ -9197,7 +9186,7 @@ public unsafe interface INatives /// NETWORK_JOIN_TRANSITION(uVar2); /// nothing doin. /// - bool NetworkJoinTransition(int player); + bool NetworkJoinTransition(uint player); /// /// bool NetworkHasInvitedGamerToTransition(ref int p0); @@ -9315,13 +9304,13 @@ public unsafe interface INatives /// /// /// = 6 - bool TriggerPlayerCrcHackerCheck(int player, int p1, uint scriptHash); + bool TriggerPlayerCrcHackerCheck(uint player, int p1, uint scriptHash); bool TriggerTuningCrcHackerCheck(IPlayer player, string p1, string p2); - bool TriggerTuningCrcHackerCheck(int player, string p1, string p2); + bool TriggerTuningCrcHackerCheck(uint player, string p1, string p2); bool TriggerFileCrcHackerCheck(IPlayer player, string p1); - bool TriggerFileCrcHackerCheck(int player, string p1); + bool TriggerFileCrcHackerCheck(uint player, string p1); bool RemoteCheaterPlayerDetected(IPlayer player, int a, int b); - bool RemoteCheaterPlayerDetected(int player, int a, int b); + bool RemoteCheaterPlayerDetected(uint player, int a, int b); /// /// bool BadSportPlayerLeftDetected(ref int gamerHandle, int @event, int amountReceived); @@ -9329,7 +9318,7 @@ public unsafe interface INatives void NetworkRemoveInvalidObjectModel(uint modelHash); void NetworkClearInvalidObjectModels(); void NetworkApplyPedScarData(IPlayer ped, int p1); - void NetworkApplyPedScarData(int ped, int p1); + void NetworkApplyPedScarData(uint ped, int p1); void NetworkSetThisScriptIsNetworkScript(int maxNumMissionParticipants, bool p1, int instanceId); bool NetworkTryToSetThisScriptIsNetworkScript(int p0, bool p1, int p2); bool NetworkGetThisScriptIsNetworkScript(); @@ -9346,31 +9335,31 @@ public unsafe interface INatives void NetworkRegisterHighFrequencyPlayerBroadcastVariables(int p0, int p1, int p2); void NetworkFinishBroadcastingData(); bool NetworkHasReceivedHostBroadcastData(); - int NetworkGetPlayerIndex(IPlayer player); - int NetworkGetPlayerIndex(int player); + uint NetworkGetPlayerIndex(IPlayer player); + uint NetworkGetPlayerIndex(uint player); int NetworkGetParticipantIndex(int index); /// /// Returns the Player associated to a given Ped when in an online session. /// - int NetworkGetPlayerIndexFromPed(IPlayer ped); + uint NetworkGetPlayerIndexFromPed(IPlayer ped); /// /// Returns the Player associated to a given Ped when in an online session. /// - int NetworkGetPlayerIndexFromPed(int ped); + uint NetworkGetPlayerIndexFromPed(uint ped); /// /// Returns the amount of players connected in the current session. Only works when connected to a session/server. /// int NetworkGetNumConnectedPlayers(); bool NetworkIsPlayerConnected(IPlayer player); - bool NetworkIsPlayerConnected(int player); + bool NetworkIsPlayerConnected(uint player); int NetworkGetTotalNumPlayers(); bool NetworkIsParticipantActive(int p0); bool NetworkIsPlayerActive(IPlayer player); - bool NetworkIsPlayerActive(int player); + bool NetworkIsPlayerActive(uint player); bool NetworkIsPlayerAParticipant(IPlayer player); - bool NetworkIsPlayerAParticipant(int player); + bool NetworkIsPlayerAParticipant(uint player); bool NetworkIsHostOfThisScript(); - int NetworkGetHostOfThisScript(); + uint NetworkGetHostOfThisScript(); /// /// "freemode", "AM_CR_SecurityVan", ... /// Most of the time, these values are used: @@ -9378,7 +9367,7 @@ public unsafe interface INatives /// examples: /// = -1 /// = 0 - int NetworkGetHostOfScript(string scriptName, int instance_id, int position_hash); + uint NetworkGetHostOfScript(string scriptName, int instance_id, int position_hash); void NetworkSetMissionFinished(); bool NetworkIsScriptActive(string scriptName, int instance_id, bool p2, int position_hash); bool NetworkIsScriptActiveByHash(uint scriptHash, int p1, bool p2, int p3); @@ -9387,13 +9376,13 @@ public unsafe interface INatives int NetworkGetInstanceIdOfThisScript(); uint NetworkGetPositionHashOfThisScript(); bool NetworkIsPlayerAParticipantOnScript(IPlayer player, string script, int instance_id); - bool NetworkIsPlayerAParticipantOnScript(int player, string script, int instance_id); + bool NetworkIsPlayerAParticipantOnScript(uint player, string script, int instance_id); void NetworkPreventScriptHostMigration(); void NetworkRequestToBeHostOfThisScript(); /// /// Return the local Participant ID /// - int ParticipantId(); + uint ParticipantId(); /// /// Return the local Participant ID. /// This native is exactly the same as 'PARTICIPANT_ID' native. @@ -9401,27 +9390,27 @@ public unsafe interface INatives int ParticipantIdToInt(); /// /// - int NetworkGetKillerOfPlayer(IPlayer player, ref uint weaponHash); + uint NetworkGetKillerOfPlayer(IPlayer player, ref uint weaponHash); /// /// - int NetworkGetKillerOfPlayer(int player, ref uint weaponHash); + uint NetworkGetKillerOfPlayer(uint player, ref uint weaponHash); /// /// - int NetworkGetDestroyerOfNetworkId(int netId, ref uint weaponHash); + uint NetworkGetDestroyerOfNetworkId(int netId, ref uint weaponHash); /// /// - int NetworkGetDestroyerOfEntity(IEntity entity, ref uint weaponHash); + uint NetworkGetDestroyerOfEntity(IEntity entity, ref uint weaponHash); /// /// - int NetworkGetDestroyerOfEntity(int entity, ref uint weaponHash); + uint NetworkGetDestroyerOfEntity(uint entity, ref uint weaponHash); /// /// NETWORK_GET_ASSISTED_DAMAGE_OF_ENTITY that ensures the entity is dead (IS_ENTITY_DEAD) /// - bool NetworkGetAssistedKillOfEntity(IPlayer player, int entity, ref int p2); + bool NetworkGetAssistedKillOfEntity(IPlayer player, uint entity, ref int p2); /// /// NETWORK_GET_ASSISTED_DAMAGE_OF_ENTITY that ensures the entity is dead (IS_ENTITY_DEAD) /// - bool NetworkGetAssistedKillOfEntity(int player, IEntity entity, ref int p2); + bool NetworkGetAssistedKillOfEntity(uint player, IEntity entity, ref int p2); /// /// NETWORK_GET_ASSISTED_DAMAGE_OF_ENTITY that ensures the entity is dead (IS_ENTITY_DEAD) /// @@ -9429,25 +9418,25 @@ public unsafe interface INatives /// /// NETWORK_GET_ASSISTED_DAMAGE_OF_ENTITY that ensures the entity is dead (IS_ENTITY_DEAD) /// - bool NetworkGetAssistedKillOfEntity(int player, int entity, ref int p2); + bool NetworkGetAssistedKillOfEntity(uint player, uint entity, ref int p2); /// /// - bool NetworkGetAssistedDamageOfEntity(IPlayer player, int entity, ref int p2); + bool NetworkGetAssistedDamageOfEntity(IPlayer player, uint entity, ref int p2); /// /// - bool NetworkGetAssistedDamageOfEntity(int player, IEntity entity, ref int p2); + bool NetworkGetAssistedDamageOfEntity(uint player, IEntity entity, ref int p2); /// /// bool NetworkGetAssistedDamageOfEntity(IPlayer player, IEntity entity, ref int p2); /// /// - bool NetworkGetAssistedDamageOfEntity(int player, int entity, ref int p2); + bool NetworkGetAssistedDamageOfEntity(uint player, uint entity, ref int p2); /// /// - int NetworkGetEntityKillerOfPlayer(IPlayer player, ref uint weaponHash); + uint NetworkGetEntityKillerOfPlayer(IPlayer player, ref uint weaponHash); /// /// - int NetworkGetEntityKillerOfPlayer(int player, ref uint weaponHash); + uint NetworkGetEntityKillerOfPlayer(uint player, ref uint weaponHash); void NetworkSetCurrentPublicContentId(string missionId); /// /// enum eMpSettingSpawn @@ -9470,23 +9459,23 @@ public unsafe interface INatives void NetworkSetLocalPlayerInvincibleTime(int time); bool NetworkIsLocalPlayerInvincible(); void NetworkDisableInvincibleFlashing(IPlayer player, bool toggle); - void NetworkDisableInvincibleFlashing(int player, bool toggle); + void NetworkDisableInvincibleFlashing(uint player, bool toggle); void NetworkPatchPostCutsceneHs4fTunEnt(IPlayer ped); - void NetworkPatchPostCutsceneHs4fTunEnt(int ped); + void NetworkPatchPostCutsceneHs4fTunEnt(uint ped); void NetworkSetLocalPlayerSyncLookAt(bool toggle); bool NetworkHasEntityBeenRegisteredWithThisThread(IEntity entity); - bool NetworkHasEntityBeenRegisteredWithThisThread(int entity); + bool NetworkHasEntityBeenRegisteredWithThisThread(uint entity); int NetworkGetNetworkIdFromEntity(IEntity entity); - int NetworkGetNetworkIdFromEntity(int entity); - int NetworkGetEntityFromNetworkId(int netId); + int NetworkGetNetworkIdFromEntity(uint entity); + uint NetworkGetEntityFromNetworkId(int netId); bool NetworkGetEntityIsNetworked(IEntity entity); - bool NetworkGetEntityIsNetworked(int entity); + bool NetworkGetEntityIsNetworked(uint entity); bool NetworkGetEntityIsLocal(IEntity entity); - bool NetworkGetEntityIsLocal(int entity); + bool NetworkGetEntityIsLocal(uint entity); void NetworkRegisterEntityAsNetworked(IEntity entity); - void NetworkRegisterEntityAsNetworked(int entity); + void NetworkRegisterEntityAsNetworked(uint entity); void NetworkUnregisterNetworkedEntity(IEntity entity); - void NetworkUnregisterNetworkedEntity(int entity); + void NetworkUnregisterNetworkedEntity(uint entity); bool NetworkDoesNetworkIdExist(int netId); bool NetworkDoesEntityExistWithNetworkId(int netId); bool NetworkRequestControlOfNetworkId(int netId); @@ -9496,10 +9485,10 @@ public unsafe interface INatives /// bool NetworkIsNetworkIdRemotelyControlled(int netId); bool NetworkRequestControlOfEntity(IEntity entity); - bool NetworkRequestControlOfEntity(int entity); + bool NetworkRequestControlOfEntity(uint entity); bool NetworkRequestControlOfDoor(int doorID); bool NetworkHasControlOfEntity(IEntity entity); - bool NetworkHasControlOfEntity(int entity); + bool NetworkHasControlOfEntity(uint entity); bool NetworkHasControlOfPickup(int pickup); bool NetworkHasControlOfDoor(uint doorHash); bool NetworkIsDoorNetworked(uint doorHash); @@ -9510,7 +9499,7 @@ public unsafe interface INatives /// /// calls from vehicle to net. /// - int VehToNet(int vehicle); + int VehToNet(uint vehicle); /// /// gets the network id of a ped /// @@ -9518,25 +9507,25 @@ public unsafe interface INatives /// /// gets the network id of a ped /// - int PedToNet(int ped); + int PedToNet(uint ped); /// /// Lets objects spawn online simply do it like this: /// int createdObject = OBJ_TO_NET(CREATE_OBJECT_NO_OFFSET(oball, pCoords.x, pCoords.y, pCoords.z, 1, 0, 0)); /// - int ObjToNet(int @object); - int NetToVeh(int netHandle); + int ObjToNet(uint @object); + uint NetToVeh(int netHandle); /// /// gets the ped id of a network id /// - int NetToPed(int netHandle); + uint NetToPed(int netHandle); /// /// gets the object id of a network id /// - int NetToObj(int netHandle); + uint NetToObj(int netHandle); /// /// gets the entity id of a network id /// - int NetToEnt(int netHandle); + uint NetToEnt(int netHandle); /// /// void NetworkGetLocalHandle(ref int gamerHandle, int gamerHandleSize); @@ -9551,9 +9540,9 @@ public unsafe interface INatives void NetworkHandleFromPlayer(IPlayer player, ref int gamerHandle, int gamerHandleSize); /// /// - void NetworkHandleFromPlayer(int player, ref int gamerHandle, int gamerHandleSize); + void NetworkHandleFromPlayer(uint player, ref int gamerHandle, int gamerHandleSize); uint NetworkHashFromPlayerHandle(IPlayer player); - uint NetworkHashFromPlayerHandle(int player); + uint NetworkHashFromPlayerHandle(uint player); /// /// uint NetworkHashFromGamerHandle(ref int gamerHandle); @@ -9584,7 +9573,7 @@ public unsafe interface INatives bool NetworkIsHandleValid(ref int gamerHandle, int gamerHandleSize); /// /// - int NetworkGetPlayerFromGamerHandle(ref int gamerHandle); + uint NetworkGetPlayerFromGamerHandle(ref int gamerHandle); /// /// string NetworkMemberIdFromGamerHandle(ref int gamerHandle); @@ -9601,7 +9590,7 @@ public unsafe interface INatives /// /// /// Returns the name of a given player. Returns "**Invalid**" if rlGamerInfo of the given player cannot be retrieved or the player doesn't exist. - string NetworkPlayerGetName(int player); + string NetworkPlayerGetName(uint player); /// /// Returns a string of the player's Rockstar Id. /// @@ -9611,7 +9600,7 @@ public unsafe interface INatives /// Returns a string of the player's Rockstar Id. /// /// Takes a 24 char buffer. Returns the buffer or "**Invalid**" if rlGamerInfo of the given player cannot be retrieved or the player doesn't exist. - string NetworkPlayerGetUserid(int player, ref int userID); + string NetworkPlayerGetUserid(uint player, ref int userID); /// /// Checks if a specific value (BYTE) in CNetGamePlayer is nonzero. /// Returns always false in Singleplayer. @@ -9627,11 +9616,11 @@ public unsafe interface INatives /// R* now checks with the IS_DLC_PRESENT native for the dlc hash 2532323046, /// if that is present it will unlock dev stuff. /// - bool NetworkPlayerIsRockstarDev(int player); + bool NetworkPlayerIsRockstarDev(uint player); bool NetworkPlayerIndexIsCheater(IPlayer player); - bool NetworkPlayerIndexIsCheater(int player); + bool NetworkPlayerIndexIsCheater(uint player); int NetworkEntityGetObjectId(IEntity entity); - int NetworkEntityGetObjectId(int entity); + int NetworkEntityGetObjectId(uint entity); /// /// Whatever p0 is, it's at least not synced to other players. /// At least not all the time, some p0 values actually output the same entity, (different handle of course, but same entity). @@ -9639,7 +9628,7 @@ public unsafe interface INatives /// Returns an entity handle or -1, value changes based on p0's value. /// /// I've had this return the player's ped handle sometimes, but also other random entities. - int NetworkGetEntityFromObjectId(int p0); + uint NetworkGetEntityFromObjectId(int p0); /// /// bool NetworkIsInactiveProfile(ref int p0); @@ -9670,7 +9659,7 @@ public unsafe interface INatives bool NetworkIsFriendIndexOnline(int friendIndex); void NetworkSetPlayerIsPassive(bool toggle); bool NetworkGetPlayerOwnsWaypoint(IPlayer player); - bool NetworkGetPlayerOwnsWaypoint(int player); + bool NetworkGetPlayerOwnsWaypoint(uint player); bool NetworkCanSetWaypoint(); void NetworkIgnoreRemoteWaypoints(); bool NetworkSetScriptAutomuted(int p0); @@ -9730,19 +9719,19 @@ public unsafe interface INatives /// /// returns true if someone is screaming or talking in a microphone /// - bool NetworkIsPlayerTalking(int player); + bool NetworkIsPlayerTalking(uint player); bool NetworkPlayerHasHeadset(IPlayer player); - bool NetworkPlayerHasHeadset(int player); + bool NetworkPlayerHasHeadset(uint player); bool NetworkIsPlayerMutedByMe(IPlayer player); - bool NetworkIsPlayerMutedByMe(int player); + bool NetworkIsPlayerMutedByMe(uint player); bool NetworkAmIMutedByPlayer(IPlayer player); - bool NetworkAmIMutedByPlayer(int player); + bool NetworkAmIMutedByPlayer(uint player); bool NetworkIsPlayerBlockedByMe(IPlayer player); - bool NetworkIsPlayerBlockedByMe(int player); + bool NetworkIsPlayerBlockedByMe(uint player); bool NetworkAmIBlockedByPlayer(IPlayer player); - bool NetworkAmIBlockedByPlayer(int player); + bool NetworkAmIBlockedByPlayer(uint player); float NetworkGetPlayerLoudness(IPlayer player); - float NetworkGetPlayerLoudness(int player); + float NetworkGetPlayerLoudness(uint player); void NetworkSetTalkerProximity(float value); float NetworkGetTalkerProximity(); void NetworkSetVoiceActive(bool toggle); @@ -9764,7 +9753,7 @@ public unsafe interface INatives /// /// Could possibly bypass being muted or automatically muted /// - void NetworkOverrideChatRestrictions(int player, bool toggle); + void NetworkOverrideChatRestrictions(uint player, bool toggle); /// /// This is used alongside the native, /// 'NETWORK_OVERRIDE_RECEIVE_RESTRICTIONS'. Read its description for more info. @@ -9774,7 +9763,7 @@ public unsafe interface INatives /// This is used alongside the native, /// 'NETWORK_OVERRIDE_RECEIVE_RESTRICTIONS'. Read its description for more info. /// - void NetworkOverrideSendRestrictions(int player, bool toggle); + void NetworkOverrideSendRestrictions(uint player, bool toggle); void NetworkOverrideSendRestrictionsAll(bool toggle); /// /// R* uses this to hear all player when spectating. @@ -9785,7 +9774,7 @@ public unsafe interface INatives /// R* uses this to hear all player when spectating. /// It allows you to hear other online players when their chat is on none, crew and or friends /// - void NetworkOverrideReceiveRestrictions(int player, bool toggle); + void NetworkOverrideReceiveRestrictions(uint player, bool toggle); /// /// /// is always false in scripts. @@ -9795,9 +9784,9 @@ public unsafe interface INatives void NetworkApplyVoiceProximityOverride(float x, float y, float z); void NetworkClearVoiceProximityOverride(); void NetworkEnableVoiceBandwidthRestriction(IPlayer player); - void NetworkEnableVoiceBandwidthRestriction(int player); + void NetworkEnableVoiceBandwidthRestriction(uint player); void NetworkDisableVoiceBandwidthRestriction(IPlayer player); - void NetworkDisableVoiceBandwidthRestriction(int player); + void NetworkDisableVoiceBandwidthRestriction(uint player); /// /// NETWORK_GET_M[A-U] /// @@ -9805,7 +9794,7 @@ public unsafe interface INatives /// /// NETWORK_GET_M[A-U] /// - void NetworkGetMuteCountForPlayer(int p0, ref float p1, ref float p2); + void NetworkGetMuteCountForPlayer(uint p0, ref float p1, ref float p2); void NetworkSetSpectatorToNonSpectatorTextChat(bool toggle); /// /// Same as _IS_TEXT_CHAT_ACTIVE, except it does not check if the text chat HUD component is initialized, and therefore may crash. @@ -9839,17 +9828,17 @@ public unsafe interface INatives /// /// /// and p5 are always 0 in scripts - void NetworkLeavePedBehindBeforeWarp(int player, float x, float y, float z, bool p4, bool p5); + void NetworkLeavePedBehindBeforeWarp(uint player, float x, float y, float z, bool p4, bool p5); void NetworkLeavePedBehindBeforeCutscene(IPlayer player, bool p1); - void NetworkLeavePedBehindBeforeCutscene(int player, bool p1); + void NetworkLeavePedBehindBeforeCutscene(uint player, bool p1); /// /// /// must be a valid entity; ped can be NULL - void RemoveAllStickyBombsFromEntity(IEntity entity, int ped); + void RemoveAllStickyBombsFromEntity(IEntity entity, uint ped); /// /// /// must be a valid entity; ped can be NULL - void RemoveAllStickyBombsFromEntity(int entity, IPlayer ped); + void RemoveAllStickyBombsFromEntity(uint entity, IPlayer ped); /// /// /// must be a valid entity; ped can be NULL @@ -9857,7 +9846,7 @@ public unsafe interface INatives /// /// /// must be a valid entity; ped can be NULL - void RemoveAllStickyBombsFromEntity(int entity, int ped); + void RemoveAllStickyBombsFromEntity(uint entity, uint ped); void NetworkKeepEntityCollisionDisabledAfterAnimScene(int p0, int p1); bool NetworkIsAnyPlayerNear(int p0, int p1, int p2, int p3, int p4, int p5, int p6); bool NetworkClanServiceIsValid(); @@ -9934,14 +9923,14 @@ public unsafe interface INatives void SetNetworkIdCanMigrate(int netId, bool toggle); void SetNetworkIdExistsOnAllMachines(int netId, bool toggle); void SetNetworkIdAlwaysExistsForPlayer(int netId, IPlayer player, bool toggle); - void SetNetworkIdAlwaysExistsForPlayer(int netId, int player, bool toggle); + void SetNetworkIdAlwaysExistsForPlayer(int netId, uint player, bool toggle); /// /// "No Reassign" in CPhysicalScriptGameStateDataNode /// void SetNetworkIdCanBeReassigned(int netId, bool toggle); void NetworkSetEntityCanBlend(IEntity entity, bool toggle); - void NetworkSetEntityCanBlend(int entity, bool toggle); - void NetworkSetObjectCanBlendWhenFixed(int @object, bool toggle); + void NetworkSetEntityCanBlend(uint entity, bool toggle); + void NetworkSetObjectCanBlendWhenFixed(uint @object, bool toggle); /// /// if set to true other network players can't see it /// if set to false other network player can see it @@ -9959,7 +9948,7 @@ public unsafe interface INatives /// pc or last gen? /// ^^ last-gen /// - void NetworkSetEntityOnlyExistsForParticipants(int entity, bool toggle); + void NetworkSetEntityOnlyExistsForParticipants(uint entity, bool toggle); void SetNetworkIdVisibleInCutscene(int netId, bool p1, bool p2); void SetNetworkIdVisibleInCutsceneHack(int netId, bool p1, bool p2); void SetNetworkIdVisibleInCutsceneRemainHack(int p0, int p1); @@ -9971,12 +9960,12 @@ public unsafe interface INatives void SetNetworkIdPassControlInTutorial(int netId, bool state); bool IsNetworkIdOwnedByParticipant(int netId); void SetLocalPlayerVisibleInCutscene(bool p0, bool p1); - void SetLocalPlayerInvisibleLocally(bool p0); - void SetLocalPlayerVisibleLocally(bool p0); - void SetPlayerInvisibleLocally(IPlayer player, bool toggle); - void SetPlayerInvisibleLocally(int player, bool toggle); - void SetPlayerVisibleLocally(IPlayer player, bool toggle); - void SetPlayerVisibleLocally(int player, bool toggle); + void SetLocalPlayerInvisibleLocally(bool bIncludePlayersVehicle); + void SetLocalPlayerVisibleLocally(bool bIncludePlayersVehicle); + void SetPlayerInvisibleLocally(IPlayer player, bool bIncludePlayersVehicle); + void SetPlayerInvisibleLocally(uint player, bool bIncludePlayersVehicle); + void SetPlayerVisibleLocally(IPlayer player, bool bIncludePlayersVehicle); + void SetPlayerVisibleLocally(uint player, bool bIncludePlayersVehicle); /// /// Hardcoded to not work in SP. /// @@ -9990,7 +9979,7 @@ public unsafe interface INatives /// /// - transition like when your coming out of LSC /// - transition like when you walk into a mission - void NetworkFadeOutEntity(int entity, bool normal, bool slow); + void NetworkFadeOutEntity(uint entity, bool normal, bool slow); /// /// state - 1 does 6 fades /// p3: setting to 1 made vehicle fade in slower, probably "slow" as per NETWORK_FADE_OUT_ENTITY @@ -10002,13 +9991,13 @@ public unsafe interface INatives /// p3: setting to 1 made vehicle fade in slower, probably "slow" as per NETWORK_FADE_OUT_ENTITY /// /// - 0 does 5 fades - void NetworkFadeInEntity(int entity, bool state, int p2); + void NetworkFadeInEntity(uint entity, bool state, int p2); bool NetworkIsPlayerFading(IPlayer player); - bool NetworkIsPlayerFading(int player); + bool NetworkIsPlayerFading(uint player); bool NetworkIsEntityFading(IEntity entity); - bool NetworkIsEntityFading(int entity); + bool NetworkIsEntityFading(uint entity); bool IsPlayerInCutscene(IPlayer player); - bool IsPlayerInCutscene(int player); + bool IsPlayerInCutscene(uint player); void SetEntityVisibleInCutscene(int p0, bool p1, bool p2); /// /// Makes the provided entity visible for yourself for the current frame. @@ -10017,15 +10006,15 @@ public unsafe interface INatives /// /// Makes the provided entity visible for yourself for the current frame. /// - void SetEntityLocallyInvisible(int entity); + void SetEntityLocallyInvisible(uint entity); void SetEntityLocallyVisible(IEntity entity); - void SetEntityLocallyVisible(int entity); + void SetEntityLocallyVisible(uint entity); bool IsDamageTrackerActiveOnNetworkId(int netID); void ActivateDamageTrackerOnNetworkId(int netID, bool toggle); bool IsDamageTrackerActiveOnPlayer(IPlayer player); - bool IsDamageTrackerActiveOnPlayer(int player); + bool IsDamageTrackerActiveOnPlayer(uint player); void ActivateDamageTrackerOnPlayer(IPlayer player, bool toggle); - void ActivateDamageTrackerOnPlayer(int player, bool toggle); + void ActivateDamageTrackerOnPlayer(uint player, bool toggle); bool IsSphereVisibleToAnotherMachine(float p0, float p1, float p2, float p3); bool IsSphereVisibleToPlayer(int p0, float p1, float p2, float p3, float p4); void ReserveNetworkMissionObjects(int amount); @@ -10062,7 +10051,7 @@ public unsafe interface INatives int GetMaxNumNetworkPeds(); int GetMaxNumNetworkVehicles(); int GetMaxNumNetworkPickups(); - void NetworkSetObjectScopeDistance(int @object, float range); + void NetworkSetObjectScopeDistance(uint @object, float range); void NetworkAllowCloningWhileInTutorial(int p0, int p1); /// /// A value between 1.0 and 5.0 @@ -10116,21 +10105,21 @@ public unsafe interface INatives /// void ConvertPosixTime(int posixTime, ref int timeStructure); void NetworkSetInSpectatorMode(bool toggle, IPlayer playerPed); - void NetworkSetInSpectatorMode(bool toggle, int playerPed); + void NetworkSetInSpectatorMode(bool toggle, uint playerPed); void NetworkSetInSpectatorModeExtended(bool toggle, IPlayer playerPed, bool p2); - void NetworkSetInSpectatorModeExtended(bool toggle, int playerPed, bool p2); + void NetworkSetInSpectatorModeExtended(bool toggle, uint playerPed, bool p2); void NetworkSetInFreeCamMode(bool toggle); void NetworkSetAntagonisticToPlayer(bool toggle, IPlayer player); - void NetworkSetAntagonisticToPlayer(bool toggle, int player); + void NetworkSetAntagonisticToPlayer(bool toggle, uint player); bool NetworkIsInSpectatorMode(); void NetworkSetInMpCutscene(bool p0, bool p1); bool NetworkIsInMpCutscene(); bool NetworkIsPlayerInMpCutscene(IPlayer player); - bool NetworkIsPlayerInMpCutscene(int player); + bool NetworkIsPlayerInMpCutscene(uint player); void NetworkHideProjectileInCutscene(); void SetNetworkVehicleRespotTimer(int netId, int time, int p2, int p3); void SetNetworkVehicleAsGhost(IVehicle vehicle, bool toggle); - void SetNetworkVehicleAsGhost(int vehicle, bool toggle); + void SetNetworkVehicleAsGhost(uint vehicle, bool toggle); /// /// rage::netBlenderLinInterp::GetPositionMaxForUpdateLevel /// @@ -10138,7 +10127,7 @@ public unsafe interface INatives /// /// rage::netBlenderLinInterp::GetPositionMaxForUpdateLevel /// - void SetNetworkVehicleMaxPositionDeltaMultiplier(int vehicle, float multiplier); + void SetNetworkVehicleMaxPositionDeltaMultiplier(uint vehicle, float multiplier); /// /// Enables a periodic ShapeTest within the NetBlender and invokes rage::netBlenderLinInterp::GoStraightToTarget (or some functional wrapper). /// @@ -10146,10 +10135,10 @@ public unsafe interface INatives /// /// Enables a periodic ShapeTest within the NetBlender and invokes rage::netBlenderLinInterp::GoStraightToTarget (or some functional wrapper). /// - void SetNetworkEnableHighSpeedEdgeFallDetection(int vehicle, bool toggle); + void SetNetworkEnableHighSpeedEdgeFallDetection(uint vehicle, bool toggle); void SetLocalPlayerAsGhost(bool toggle, bool p1); bool IsEntityAGhost(IEntity entity); - bool IsEntityAGhost(int entity); + bool IsEntityAGhost(uint entity); void SetNonParticipantsOfThisScriptAsGhosts(bool p0); /// /// Enables ghosting between specific players @@ -10158,7 +10147,7 @@ public unsafe interface INatives /// /// Enables ghosting between specific players /// - void SetRemotePlayerAsGhost(int player, bool p1); + void SetRemotePlayerAsGhost(uint player, bool p1); /// /// Must be a value between 1 and 254 /// @@ -10168,17 +10157,17 @@ public unsafe interface INatives /// void ResetGhostAlpha(); void SetEntityGhostedForGhostPlayers(IEntity entity, bool toggle); - void SetEntityGhostedForGhostPlayers(int entity, bool toggle); + void SetEntityGhostedForGhostPlayers(uint entity, bool toggle); void SetInvertGhosting(bool p0); bool IsEntityInGhostCollision(IEntity entity); - bool IsEntityInGhostCollision(int entity); + bool IsEntityInGhostCollision(uint entity); void UsePlayerColourInsteadOfTeamColour(bool toggle); int NetworkCreateSynchronisedScene(float x, float y, float z, float xRot, float yRot, float zRot, int rotationOrder, bool useOcclusionPortal, bool looped, float p9, float animTime, float p11); void NetworkAddPedToSynchronisedScene(IPlayer ped, int netScene, string animDict, string animnName, float speed, float speedMultiplier, int duration, int flag, float playbackRate, int p9); - void NetworkAddPedToSynchronisedScene(int ped, int netScene, string animDict, string animnName, float speed, float speedMultiplier, int duration, int flag, float playbackRate, int p9); + void NetworkAddPedToSynchronisedScene(uint ped, int netScene, string animDict, string animnName, float speed, float speedMultiplier, int duration, int flag, float playbackRate, int p9); void NetworkAddPedToSynchronisedSceneWithIk(int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int p9); void NetworkAddEntityToSynchronisedScene(IEntity entity, int netScene, string animDict, string animName, float speed, float speedMulitiplier, int flag); - void NetworkAddEntityToSynchronisedScene(int entity, int netScene, string animDict, string animName, float speed, float speedMulitiplier, int flag); + void NetworkAddEntityToSynchronisedScene(uint entity, int netScene, string animDict, string animName, float speed, float speedMulitiplier, int flag); /// /// Similar structure as NETWORK_ADD_ENTITY_TO_SYNCHRONISED_SCENE but it includes this time a hash. /// In casino_slots it is used one time in a synced scene involving a ped and the slot machine? @@ -10186,7 +10175,7 @@ public unsafe interface INatives void NetworkAddMapEntityToSynchronisedScene(int netScene, uint modelHash, float x, float y, float z, float p5, string p6, float p7, float p8, int flags); void NetworkAddSynchronisedSceneCamera(int netScene, string animDict, string animName); void NetworkAttachSynchronisedSceneToEntity(int netScene, IEntity entity, int bone); - void NetworkAttachSynchronisedSceneToEntity(int netScene, int entity, int bone); + void NetworkAttachSynchronisedSceneToEntity(int netScene, uint entity, int bone); void NetworkStartSynchronisedScene(int netScene); void NetworkStopSynchronisedScene(int netScene); int NetworkGetLocalSceneFromNetworkId(int netId); @@ -10207,7 +10196,7 @@ public unsafe interface INatives /// Then it calls a function that is used in some tasks and ped based functions. /// p5, p6, p7 is another coordinate (or zero), often related to `GET_BLIP_COORDS, in the decompiled scripts. /// - bool NetworkStartRespawnSearchForPlayer(int player, float x, float y, float z, float radius, float p5, float p6, float p7, int flags); + bool NetworkStartRespawnSearchForPlayer(uint player, float x, float y, float z, float radius, float p5, float p6, float p7, int flags); /// /// p8, p9, p10 is another coordinate, or zero, often related to `GET_BLIP_COORDS in the decompiled scripts. /// @@ -10215,7 +10204,7 @@ public unsafe interface INatives /// /// p8, p9, p10 is another coordinate, or zero, often related to `GET_BLIP_COORDS in the decompiled scripts. /// - bool NetworkStartRespawnSearchInAngledAreaForPlayer(int player, float x1, float y1, float z1, float x2, float y2, float z2, float width, float p8, float p9, float p10, int flags); + bool NetworkStartRespawnSearchInAngledAreaForPlayer(uint player, float x1, float y1, float z1, float x2, float y2, float z2, float width, float p8, float p9, float p10, int flags); /// /// int NetworkQueryRespawnResults(ref int p0); @@ -10235,16 +10224,16 @@ public unsafe interface INatives bool NetworkWaitingPopClearTutorialSession(); bool NetworkIsTutorialSessionChangePending(); int NetworkGetPlayerTutorialSessionInstance(IPlayer player); - int NetworkGetPlayerTutorialSessionInstance(int player); + int NetworkGetPlayerTutorialSessionInstance(uint player); bool NetworkArePlayersInSameTutorialSession(IPlayer player, int index); - bool NetworkArePlayersInSameTutorialSession(int player, int index); + bool NetworkArePlayersInSameTutorialSession(uint player, int index); void NetworkBlockProxyMigrationBetweenTutorialSessions(int p0); void NetworkConcealPlayer(IPlayer player, bool toggle, bool p2); - void NetworkConcealPlayer(int player, bool toggle, bool p2); + void NetworkConcealPlayer(uint player, bool toggle, bool p2); bool NetworkIsPlayerConcealed(IPlayer player); - bool NetworkIsPlayerConcealed(int player); + bool NetworkIsPlayerConcealed(uint player); void NetworkConcealEntity(IEntity entity, bool toggle); - void NetworkConcealEntity(int entity, bool toggle); + void NetworkConcealEntity(uint entity, bool toggle); /// /// Note: This only works for vehicles, which appears to be a bug (since the setter _does_ work for every entity type and the name is 99% correct). /// @@ -10252,7 +10241,7 @@ public unsafe interface INatives /// /// Note: This only works for vehicles, which appears to be a bug (since the setter _does_ work for every entity type and the name is 99% correct). /// - bool NetworkIsEntityConcealed(int entity); + bool NetworkIsEntityConcealed(uint entity); /// /// Works in Singleplayer too. /// Passing wrong data (e.g. hours above 23) will cause the game to crash. @@ -10322,10 +10311,10 @@ public unsafe interface INatives void NetworkResetBodyTracker(); int NetworkGetNumberBodyTrackerHits(); bool NetworkHasBoneBeenHitByKiller(int boneIndex); - bool NetworkSetAttributeDamageToPlayer(IPlayer ped, int player); - bool NetworkSetAttributeDamageToPlayer(int ped, IPlayer player); + bool NetworkSetAttributeDamageToPlayer(IPlayer ped, uint player); + bool NetworkSetAttributeDamageToPlayer(uint ped, IPlayer player); bool NetworkSetAttributeDamageToPlayer(IPlayer ped, IPlayer player); - bool NetworkSetAttributeDamageToPlayer(int ped, int player); + bool NetworkSetAttributeDamageToPlayer(uint ped, uint player); /// /// Allows vehicle wheels to be destructible even when the vehicle entity is invincible. /// @@ -10333,11 +10322,11 @@ public unsafe interface INatives /// /// Allows vehicle wheels to be destructible even when the vehicle entity is invincible. /// - void NetworkTriggerDamageEventForZeroDamage(int entity, bool toggle); + void NetworkTriggerDamageEventForZeroDamage(uint entity, bool toggle); void NetworkTriggerDamageEventForZeroWeaponHash(IEntity entity, bool toggle); - void NetworkTriggerDamageEventForZeroWeaponHash(int entity, bool toggle); + void NetworkTriggerDamageEventForZeroWeaponHash(uint entity, bool toggle); void NetworkSetNoLongerNeeded(IEntity entity, bool toggle); - void NetworkSetNoLongerNeeded(int entity, bool toggle); + void NetworkSetNoLongerNeeded(uint entity, bool toggle); /// /// In the console script dumps, this is only referenced once. /// ^^^^^ That must be PC script dumps? In X360 Script Dumps it is reference a few times with 2 differences in the parameters. @@ -10363,13 +10352,13 @@ public unsafe interface INatives /// network_explode_vehicle(net_to_veh(*uParam0), 1, 0, *uParam0); /// See NativeDB for reference: http://natives.altv.mp/#/0x301A42153C9AD707 /// - bool NetworkExplodeVehicle(int vehicle, bool isAudible, bool isInvisible, int netId); + bool NetworkExplodeVehicle(uint vehicle, bool isAudible, bool isInvisible, int netId); void NetworkExplodeHeli(IVehicle vehicle, bool isAudible, bool isInvisible, int netId); - void NetworkExplodeHeli(int vehicle, bool isAudible, bool isInvisible, int netId); + void NetworkExplodeHeli(uint vehicle, bool isAudible, bool isInvisible, int netId); void NetworkUseLogarithmicBlendingThisFrame(IEntity entity); - void NetworkUseLogarithmicBlendingThisFrame(int entity); + void NetworkUseLogarithmicBlendingThisFrame(uint entity); void NetworkOverrideCoordsAndHeading(IEntity entity, float x, float y, float z, float heading); - void NetworkOverrideCoordsAndHeading(int entity, float x, float y, float z, float heading); + void NetworkOverrideCoordsAndHeading(uint entity, float x, float y, float z, float heading); void NetworkEnableExtraVehicleOrientationBlendChecks(int netId, bool toggle); void NetworkDisableProximityMigration(int netID); /// @@ -10384,11 +10373,11 @@ public unsafe interface INatives void NetworkSetMinimumRankForMission(bool p0); void NetworkCacheLocalPlayerHeadBlendData(); bool NetworkHasCachedPlayerHeadBlendData(IPlayer player); - bool NetworkHasCachedPlayerHeadBlendData(int player); - bool NetworkApplyCachedPlayerHeadBlendData(IPlayer ped, int player); - bool NetworkApplyCachedPlayerHeadBlendData(int ped, IPlayer player); + bool NetworkHasCachedPlayerHeadBlendData(uint player); + bool NetworkApplyCachedPlayerHeadBlendData(IPlayer ped, uint player); + bool NetworkApplyCachedPlayerHeadBlendData(uint ped, IPlayer player); bool NetworkApplyCachedPlayerHeadBlendData(IPlayer ped, IPlayer player); - bool NetworkApplyCachedPlayerHeadBlendData(int ped, int player); + bool NetworkApplyCachedPlayerHeadBlendData(uint ped, uint player); int GetNumCommerceItems(); bool IsCommerceDataValid(); /// @@ -10624,7 +10613,7 @@ public unsafe interface INatives void NetworkForceLocalPlayerScarSync(); void NetworkDisableLeaveRemotePedBehind(bool toggle); void NetworkAllowRemoteAttachmentModification(IEntity entity, bool toggle); - void NetworkAllowRemoteAttachmentModification(int entity, bool toggle); + void NetworkAllowRemoteAttachmentModification(uint entity, bool toggle); /// /// Does nothing (it's a nullsub). /// @@ -10632,7 +10621,7 @@ public unsafe interface INatives /// /// Does nothing (it's a nullsub). /// - void NetworkShowChatRestrictionMsc(int player); + void NetworkShowChatRestrictionMsc(uint player); /// /// This native does absolutely nothing, just a nullsub /// @@ -10640,9 +10629,9 @@ public unsafe interface INatives bool NetworkIsTitleUpdateRequired(); void NetworkQuitMpToDesktop(); bool NetworkIsConnectedViaRelay(IPlayer player); - bool NetworkIsConnectedViaRelay(int player); + bool NetworkIsConnectedViaRelay(uint player); float NetworkGetAverageLatency(IPlayer player); - float NetworkGetAverageLatency(int player); + float NetworkGetAverageLatency(uint player); /// /// Same as NETWORK_GET_AVERAGE_LATENCY /// @@ -10650,18 +10639,18 @@ public unsafe interface INatives /// /// Same as NETWORK_GET_AVERAGE_LATENCY /// - float NetworkGetAveragePing(int player); + float NetworkGetAveragePing(uint player); float NetworkGetAveragePacketLoss(IPlayer player); - float NetworkGetAveragePacketLoss(int player); + float NetworkGetAveragePacketLoss(uint player); int NetworkGetNumUnackedReliables(IPlayer player); - int NetworkGetNumUnackedReliables(int player); + int NetworkGetNumUnackedReliables(uint player); int NetworkGetUnreliableResendCount(IPlayer player); - int NetworkGetUnreliableResendCount(int player); + int NetworkGetUnreliableResendCount(uint player); int NetworkGetHighestReliableResendCount(IPlayer player); - int NetworkGetHighestReliableResendCount(int player); + int NetworkGetHighestReliableResendCount(uint player); void NetworkReportCodeTamper(); Vector3 NetworkGetLastEntityPosReceivedOverNetwork(IEntity entity); - Vector3 NetworkGetLastEntityPosReceivedOverNetwork(int entity); + Vector3 NetworkGetLastEntityPosReceivedOverNetwork(uint entity); /// /// Returns the coordinates of another player. /// @@ -10671,7 +10660,7 @@ public unsafe interface INatives /// Returns the coordinates of another player. /// /// Does not work if you enter your own player id as p0 (will return `(0.0, 0.0, 0.0)` in that case). - Vector3 NetworkGetLastPlayerPosReceivedOverNetwork(int player); + Vector3 NetworkGetLastPlayerPosReceivedOverNetwork(uint player); /// /// Used by NetBlender /// @@ -10679,9 +10668,9 @@ public unsafe interface INatives /// /// Used by NetBlender /// - Vector3 NetworkGetLastVelReceivedOverNetwork(int entity); + Vector3 NetworkGetLastVelReceivedOverNetwork(uint entity); Vector3 NetworkGetPredictedVelocity(IEntity entity); - Vector3 NetworkGetPredictedVelocity(int entity); + Vector3 NetworkGetPredictedVelocity(uint entity); /// /// Does nothing (it's a nullsub). /// @@ -10695,42 +10684,42 @@ public unsafe interface INatives /// void NetworkGetNetStatisticsInfo(ref int p0); int NetworkGetPlayerAccountId(IPlayer player); - int NetworkGetPlayerAccountId(int player); + int NetworkGetPlayerAccountId(uint player); void NetworkUgcNav(int p0, int p1); /// /// List of object models that can be created without any additional effort like making sure ytyp is loaded etc: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ObjectList.ini /// - int CreateObject(uint modelHash, float x, float y, float z, bool isNetwork, bool bScriptHostObj, bool dynamic); + uint CreateObject(uint modelHash, float x, float y, float z, bool isNetwork, bool bScriptHostObj, bool dynamic); /// /// List of object models that can be created without any additional effort like making sure ytyp is loaded etc: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/ObjectList.ini /// - int CreateObjectNoOffset(uint modelHash, float x, float y, float z, bool isNetwork, bool bScriptHostObj, bool dynamic); + uint CreateObjectNoOffset(uint modelHash, float x, float y, float z, bool isNetwork, bool bScriptHostObj, bool dynamic); /// /// Deletes the specified object, then sets the handle pointed to by the pointer to NULL. /// - void DeleteObject(ref int @object); - bool PlaceObjectOnGroundProperly(int @object); - bool PlaceObjectOnGroundOrObjectProperly(int @object); - bool RotateObject(int @object, float p1, float p2, bool p3); + void DeleteObject(ref uint @object); + bool PlaceObjectOnGroundProperly(uint @object); + bool PlaceObjectOnGroundOrObjectProperly(uint @object); + bool RotateObject(uint @object, float p1, float p2, bool p3); /// /// Returns true if the object has finished moving. /// If false, moves the object towards the specified X, Y and Z coordinates with the specified X, Y and Z speed. /// See also: https://gtagmodding.com/opcode-database/opcode/034E/ /// /// Has to be looped until it returns true. - bool SlideObject(int @object, float toX, float toY, float toZ, float speedX, float speedY, float speedZ, bool collision); - void SetObjectTargettable(int @object, bool targettable); + bool SlideObject(uint @object, float toX, float toY, float toZ, float speedX, float speedY, float speedZ, bool collision); + void SetObjectTargettable(uint @object, bool targettable); /// /// Overrides a flag on the object which determines if the object should be avoided by a vehicle in task CTaskVehicleGoToPointWithAvoidanceAutomobile. /// - void SetObjectForceVehiclesToAvoid(int @object, bool toggle); + void SetObjectForceVehiclesToAvoid(uint @object, bool toggle); /// /// Has 8 params in the latest patches. /// /// - if true doesn't return mission objects /// isMission - if true doesn't return mission objects - int GetClosestObjectOfType(float x, float y, float z, float radius, uint modelHash, bool isMission, bool p6, bool p7); - bool HasObjectBeenBroken(int @object, int p1); + uint GetClosestObjectOfType(float x, float y, float z, float radius, uint modelHash, bool isMission, bool p6, bool p7); + bool HasObjectBeenBroken(uint @object, int p1); bool HasClosestObjectOfTypeBeenBroken(float p0, float p1, float p2, float p3, uint modelHash, int p5); bool HasClosestObjectOfTypeBeenCompletelyDestroyed(float x, float y, float z, float radius, uint modelHash, bool p5); bool GetHasObjectBeenCompletelyDestroyed(int p0); @@ -10848,9 +10837,9 @@ public unsafe interface INatives bool DoorSystemFindExistingDoor(float x, float y, float z, uint modelHash, ref uint outDoorHash); bool IsGarageEmpty(uint garageHash, bool p1, int p2); bool IsPlayerEntirelyInsideGarage(uint garageHash, IPlayer player, float p2, int p3); - bool IsPlayerEntirelyInsideGarage(uint garageHash, int player, float p2, int p3); + bool IsPlayerEntirelyInsideGarage(uint garageHash, uint player, float p2, int p3); bool IsPlayerPartiallyInsideGarage(uint garageHash, IPlayer player, int p2); - bool IsPlayerPartiallyInsideGarage(uint garageHash, int player, int p2); + bool IsPlayerPartiallyInsideGarage(uint garageHash, uint player, int p2); bool AreEntitiesEntirelyInsideGarage(uint garageHash, bool p1, bool p2, bool p3, int p4); bool IsAnyEntityEntirelyInsideGarage(uint garageHash, bool p1, bool p2, bool p3, int p4); /// @@ -10860,7 +10849,7 @@ public unsafe interface INatives /// /// Despite the name, it does work for any entity type. /// - bool IsObjectEntirelyInsideGarage(uint garageHash, int entity, float p2, int p3); + bool IsObjectEntirelyInsideGarage(uint garageHash, uint entity, float p2, int p3); /// /// Despite the name, it does work for any entity type. /// @@ -10868,7 +10857,7 @@ public unsafe interface INatives /// /// Despite the name, it does work for any entity type. /// - bool IsObjectPartiallyInsideGarage(uint garageHash, int entity, int p2); + bool IsObjectPartiallyInsideGarage(uint garageHash, uint entity, int p2); void ClearGarage(uint garageHash, bool isNetwork); void ClearObjectsInsideGarage(uint garageHash, bool vehicles, bool peds, bool objects, bool isNetwork); /// @@ -10894,7 +10883,7 @@ public unsafe interface INatives /// /// Overrides the climbing/blocking flags of the object, used in the native scripts mostly for "prop_dock_bouy_*" /// - void SetObjectAllowLowLodBuoyancy(int @object, bool toggle); + void SetObjectAllowLowLodBuoyancy(uint @object, bool toggle); /// /// Adjust the physics parameters of a prop, or otherwise known as "object". This is useful for simulated gravity. /// Other parameters seem to be unknown. @@ -10903,29 +10892,29 @@ public unsafe interface INatives /// seems similar to p2 /// makes obj fall slower the higher the value /// similar to p4 - void SetObjectPhysicsParams(int @object, float weight, float p2, float p3, float p4, float p5, float gravity, float p7, float p8, float p9, float p10, float buoyancy); + void SetObjectPhysicsParams(uint @object, float weight, float p2, float p3, float p4, float p5, float gravity, float p7, float p8, float p9, float p10, float buoyancy); float GetObjectFragmentDamageHealth(int p0, bool p1); - void SetActivateObjectPhysicsAsSoonAsItIsUnfrozen(int @object, bool toggle); + void SetActivateObjectPhysicsAsSoonAsItIsUnfrozen(uint @object, bool toggle); bool IsAnyObjectNearPoint(float x, float y, float z, float range, bool p4); bool IsObjectNearPoint(uint objectHash, float x, float y, float z, float range); - void RemoveObjectHighDetailModel(int @object); - void BreakObjectFragmentChild(int p0, int p1, bool p2); + void RemoveObjectHighDetailModel(uint @object); + void BreakObjectFragmentChild(uint p0, int p1, bool p2); void DamageObjectFragmentChild(int p0, int p1, int p2); - void FixObjectFragment(int @object); - void TrackObjectVisibility(int @object); - bool IsObjectVisible(int @object); - void SetObjectIsSpecialGolfball(int @object, bool toggle); + void FixObjectFragment(uint @object); + void TrackObjectVisibility(uint @object); + bool IsObjectVisible(uint @object); + void SetObjectIsSpecialGolfball(uint @object, bool toggle); void SetObjectTakesDamageFromCollidingWithBuildings(int p0, bool p1); void AllowDamageEventsForNonNetworkedObjects(bool value); /// /// Requires a component_at_*_flsh to be attached to the weapon object /// - void SetCutscenesWeaponFlashlightOnThisFrame(int @object, bool toggle); + void SetCutscenesWeaponFlashlightOnThisFrame(uint @object, bool toggle); /// /// Example: /// OBJECT::GET_RAYFIRE_MAP_OBJECT(-809.9619750976562, 170.919, 75.7406997680664, 3.0, "des_tvsmash"); /// - int GetRayfireMapObject(float x, float y, float z, float radius, string name); + uint GetRayfireMapObject(float x, float y, float z, float radius, string name); /// /// Defines the state of a destructible object. /// Use the GET_RAYFIRE_MAP_OBJECT native to find an object's handle with its name / coords. @@ -10934,23 +10923,23 @@ public unsafe interface INatives /// State 9 == End of the animation /// /// 2 == object just spawned - void SetStateOfRayfireMapObject(int @object, int state); + void SetStateOfRayfireMapObject(uint @object, int state); /// /// Get a destructible object's state. /// Substract 1 to get the real state. /// See SET_STATE_OF_RAYFIRE_MAP_OBJECT to see the different states /// /// For example, if the object just spawned (state 2), the native will return 3. - int GetStateOfRayfireMapObject(int @object); + int GetStateOfRayfireMapObject(uint @object); /// /// Returns true if a destructible object with this handle exists, false otherwise. /// - bool DoesRayfireMapObjectExist(int @object); + bool DoesRayfireMapObjectExist(uint @object); /// /// `object`: The des-object handle to get the animation progress from. /// Return value is a float between 0.0 and 1.0, 0.0 is the beginning of the animation, 1.0 is the end. Value resets to 0.0 instantly after reaching 1.0. /// - float GetRayfireMapObjectAnimPhase(int @object); + float GetRayfireMapObjectAnimPhase(uint @object); /// /// Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json /// @@ -10967,22 +10956,22 @@ public unsafe interface INatives /// /// Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json /// - int CreateAmbientPickup(uint pickupHash, float posX, float posY, float posZ, int flags, int value, uint modelHash, bool p7, bool p8); - int CreateNonNetworkedAmbientPickup(uint pickupHash, float posX, float posY, float posZ, int flags, int value, uint modelHash, bool p7, bool p8); + uint CreateAmbientPickup(uint pickupHash, float posX, float posY, float posZ, int flags, int value, uint modelHash, bool p7, bool p8); + uint CreateNonNetworkedAmbientPickup(uint pickupHash, float posX, float posY, float posZ, int flags, int value, uint modelHash, bool p7, bool p8); void BlockPlayersForAmbientPickup(int p0, int p1); /// /// Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json /// - int CreatePortablePickup(uint pickupHash, float x, float y, float z, bool placeOnGround, uint modelHash); + uint CreatePortablePickup(uint pickupHash, float x, float y, float z, bool placeOnGround, uint modelHash); /// /// Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json /// - int CreateNonNetworkedPortablePickup(uint pickupHash, float x, float y, float z, bool placeOnGround, uint modelHash); - void AttachPortablePickupToPed(int pickupObject, IPlayer ped); - void AttachPortablePickupToPed(int pickupObject, int ped); - void DetachPortablePickupFromPed(int pickupObject); - void ForcePortablePickupLastAccessiblePositionSetting(int @object); - void HidePortablePickupWhenDetached(int pickupObject, bool toggle); + uint CreateNonNetworkedPortablePickup(uint pickupHash, float x, float y, float z, bool placeOnGround, uint modelHash); + void AttachPortablePickupToPed(uint pickupObject, IPlayer ped); + void AttachPortablePickupToPed(uint pickupObject, uint ped); + void DetachPortablePickupFromPed(uint pickupObject); + void ForcePortablePickupLastAccessiblePositionSetting(uint @object); + void HidePortablePickupWhenDetached(uint pickupObject, bool toggle); void SetMaxNumPortablePickupsCarriedByPlayer(uint modelHash, int number); void SetLocalPlayerCanCollectPortablePickups(bool toggle); Vector3 GetSafePickupCoords(float x, float y, float z, float p3, float p4); @@ -11019,10 +11008,10 @@ public unsafe interface INatives /// The model to use, or 0 for default money model. void CreateMoneyPickups(float x, float y, float z, int value, int amount, uint model); bool DoesPickupExist(int pickup); - bool DoesPickupObjectExist(int pickupObject); - int GetPickupObject(int pickup); - bool IsObjectAPickup(int @object); - bool IsObjectAPortablePickup(int @object); + bool DoesPickupObjectExist(uint pickupObject); + uint GetPickupObject(int pickup); + bool IsObjectAPickup(uint @object); + bool IsObjectAPortablePickup(uint @object); /// /// Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json /// @@ -11050,7 +11039,7 @@ public unsafe interface INatives /// OBJECT::SET_PLAYER_PERMITTED_TO_COLLECT_PICKUPS_OF_TYPE(PLAYER::PLAYER_ID(), ${pickup_armour_standard}, 1); /// Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json /// - void SetPlayerPermittedToCollectPickupsOfType(int player, uint pickupHash, bool toggle); + void SetPlayerPermittedToCollectPickupsOfType(uint player, uint pickupHash, bool toggle); /// /// Maximum amount of pickup models that can be disallowed is 30. /// @@ -11059,8 +11048,8 @@ public unsafe interface INatives /// Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json /// void AllowAllPlayersToCollectPickupsOfType(uint pickupHash); - void SetTeamPickupObject(int @object, int p1, bool p2); - void PreventCollectionOfPortablePickup(int @object, bool p1, bool p2); + void SetTeamPickupObject(uint @object, int p1, bool p2); + void PreventCollectionOfPortablePickup(uint @object, bool p1, bool p2); void SetPickupObjectGlowWhenUncollectable(int pickup, bool toggle); /// /// @@ -11124,8 +11113,8 @@ public unsafe interface INatives /// /// Sets entity+38 to C (when false) or 0xFF3f (when true) /// - void SetEntityFlagSuppressShadow(int entity, bool toggle); - void SetEntityFlagRenderSmallShadow(int @object, bool toggle); + void SetEntityFlagSuppressShadow(uint entity, bool toggle); + void SetEntityFlagRenderSmallShadow(uint @object, bool toggle); /// /// Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json /// @@ -11134,8 +11123,8 @@ public unsafe interface INatives /// Returns the pickup hash for the given weapon hash /// uint GetPickupTypeFromWeaponHash(uint weaponHash); - bool IsPickupWeaponObjectValid(int @object); - int GetObjectTintIndex(int @object); + bool IsPickupWeaponObjectValid(uint @object); + int GetObjectTintIndex(uint @object); /// /// enum ObjectPaintVariants /// { @@ -11148,13 +11137,13 @@ public unsafe interface INatives /// Uniform = 6, /// See NativeDB for reference: http://natives.altv.mp/#/0x971DA0055324D033 /// - void SetObjectTintIndex(int @object, int textureVariation); + void SetObjectTintIndex(uint @object, int textureVariation); bool SetTintIndexClosestBuildingOfType(float x, float y, float z, float radius, uint modelHash, int textureVariation); - bool SetPropLightColor(int @object, bool p1, int r, int g, int b); - bool IsPropLightOverriden(int @object); - void SetObjectIsVisibleInMirrors(int @object, bool toggle); - void SetObjectSpeedBoostAmount(int @object, int p1); - void SetObjectSpeedBoostDuration(int @object, float duration); + bool SetPropLightColor(uint @object, bool p1, int r, int g, int b); + bool IsPropLightOverriden(uint @object); + void SetObjectIsVisibleInMirrors(uint @object, bool toggle); + void SetObjectSpeedBoostAmount(uint @object, int p1); + void SetObjectSpeedBoostDuration(uint @object, float duration); /// /// returns pickup hash. /// Full list of pickup types by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pickupTypes.json @@ -11164,22 +11153,22 @@ public unsafe interface INatives /// /// is this like setting is as no longer needed? /// - void OnlyCleanUpObjectWhenOutOfRange(int @object); + void OnlyCleanUpObjectWhenOutOfRange(uint @object); void SetDisableCollisionsBetweenCarsAndCarParachute(int p0); void SetProjectilesShouldExplodeOnContact(IEntity entity, int p1); - void SetProjectilesShouldExplodeOnContact(int entity, int p1); + void SetProjectilesShouldExplodeOnContact(uint entity, int p1); /// /// Activate the physics to: "xs_prop_arena_{flipper,wall,bollard,turntable,pit}" /// - void SetDriveArticulatedJoint(int @object, bool toggle, int p2); - void SetDriveArticulatedJointWithInflictor(int @object, bool toggle, int p2, IPlayer ped); - void SetDriveArticulatedJointWithInflictor(int @object, bool toggle, int p2, int ped); - void SetObjectIsAPressurePlate(int @object, bool toggle); - void SetWeaponImpactsApplyGreaterForce(int @object, bool p1); - bool GetIsArticulatedJointAtMinAngle(int @object, int p1); + void SetDriveArticulatedJoint(uint @object, bool toggle, int p2); + void SetDriveArticulatedJointWithInflictor(uint @object, bool toggle, int p2, IPlayer ped); + void SetDriveArticulatedJointWithInflictor(uint @object, bool toggle, int p2, uint ped); + void SetObjectIsAPressurePlate(uint @object, bool toggle); + void SetWeaponImpactsApplyGreaterForce(uint @object, bool p1); + bool GetIsArticulatedJointAtMinAngle(uint @object, int p1); bool GetIsArticulatedJointAtMaxAngle(int p0, int p1); - void SetIsObjectArticulated(int @object, bool toggle); - void SetIsObjectBall(int @object, bool toggle); + void SetIsObjectArticulated(uint @object, bool toggle); + void SetIsObjectBall(uint @object, bool toggle); /// /// For more info, see https://docs.fivem.net/docs/game-references/controls/ /// @@ -11559,7 +11548,7 @@ public unsafe interface INatives /// Gets a value indicating whether the specified position is on a road. /// The vehicle parameter is not implemented (ignored). /// - bool IsPointOnRoad(float x, float y, float z, int vehicle); + bool IsPointOnRoad(float x, float y, float z, uint vehicle); /// /// Gets the next zone that has been disabled using SET_GPS_DISABLED_ZONE_AT_INDEX. /// @@ -11621,23 +11610,23 @@ public unsafe interface INatives /// https://alloc8or.re/gta5/doc/enums/ePedType.txt /// Full list of peds by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/peds.json /// - int CreatePed(int pedType, uint modelHash, float x, float y, float z, float heading, bool isNetwork, bool bScriptHostPed); + uint CreatePed(int pedType, uint modelHash, float x, float y, float z, float heading, bool isNetwork, bool bScriptHostPed); /// /// Deletes the specified ped, then sets the handle pointed to by the pointer to NULL. /// - void DeletePed(ref int ped); - int ClonePed(IPlayer ped, bool isNetwork, bool bScriptHostPed, bool copyHeadBlendFlag); - int ClonePed(int ped, bool isNetwork, bool bScriptHostPed, bool copyHeadBlendFlag); - int ClonePedAlt(IPlayer ped, bool isNetwork, bool bScriptHostPed, bool copyHeadBlendFlag, bool p4); - int ClonePedAlt(int ped, bool isNetwork, bool bScriptHostPed, bool copyHeadBlendFlag, bool p4); + void DeletePed(ref uint ped); + uint ClonePed(IPlayer ped, bool isNetwork, bool bScriptHostPed, bool copyHeadBlendFlag); + uint ClonePed(uint ped, bool isNetwork, bool bScriptHostPed, bool copyHeadBlendFlag); + uint ClonePedAlt(IPlayer ped, bool isNetwork, bool bScriptHostPed, bool copyHeadBlendFlag, bool p4); + uint ClonePedAlt(uint ped, bool isNetwork, bool bScriptHostPed, bool copyHeadBlendFlag, bool p4); /// /// Copies ped's components and props to targetPed. /// - void ClonePedToTarget(IPlayer ped, int targetPed); + void ClonePedToTarget(IPlayer ped, uint targetPed); /// /// Copies ped's components and props to targetPed. /// - void ClonePedToTarget(int ped, IPlayer targetPed); + void ClonePedToTarget(uint ped, IPlayer targetPed); /// /// Copies ped's components and props to targetPed. /// @@ -11645,21 +11634,21 @@ public unsafe interface INatives /// /// Copies ped's components and props to targetPed. /// - void ClonePedToTarget(int ped, int targetPed); - void ClonePedToTargetAlt(IPlayer ped, int targetPed, bool p2); - void ClonePedToTargetAlt(int ped, IPlayer targetPed, bool p2); + void ClonePedToTarget(uint ped, uint targetPed); + void ClonePedToTargetAlt(IPlayer ped, uint targetPed, bool p2); + void ClonePedToTargetAlt(uint ped, IPlayer targetPed, bool p2); void ClonePedToTargetAlt(IPlayer ped, IPlayer targetPed, bool p2); - void ClonePedToTargetAlt(int ped, int targetPed, bool p2); + void ClonePedToTargetAlt(uint ped, uint targetPed, bool p2); /// /// Gets a value indicating whether the specified ped is in the specified vehicle. /// /// If 'atGetIn' is false, the function will not return true until the ped is sitting in the vehicle and is about to close the door. If it's true, the function returns true the moment the ped starts to get onto the seat (after opening the door). Eg. if false, and the ped is getting into a submersible, the function will not return true until the ped has descended down into the submersible and gotten into the seat, while if it's true, it'll return true the moment the hatch has been opened and the ped is about to descend into the submersible. - bool IsPedInVehicle(IPlayer ped, int vehicle, bool atGetIn); + bool IsPedInVehicle(IPlayer ped, uint vehicle, bool atGetIn); /// /// Gets a value indicating whether the specified ped is in the specified vehicle. /// /// If 'atGetIn' is false, the function will not return true until the ped is sitting in the vehicle and is about to close the door. If it's true, the function returns true the moment the ped starts to get onto the seat (after opening the door). Eg. if false, and the ped is getting into a submersible, the function will not return true until the ped has descended down into the submersible and gotten into the seat, while if it's true, it'll return true the moment the hatch has been opened and the ped is about to descend into the submersible. - bool IsPedInVehicle(int ped, IVehicle vehicle, bool atGetIn); + bool IsPedInVehicle(uint ped, IVehicle vehicle, bool atGetIn); /// /// Gets a value indicating whether the specified ped is in the specified vehicle. /// @@ -11669,9 +11658,9 @@ public unsafe interface INatives /// Gets a value indicating whether the specified ped is in the specified vehicle. /// /// If 'atGetIn' is false, the function will not return true until the ped is sitting in the vehicle and is about to close the door. If it's true, the function returns true the moment the ped starts to get onto the seat (after opening the door). Eg. if false, and the ped is getting into a submersible, the function will not return true until the ped has descended down into the submersible and gotten into the seat, while if it's true, it'll return true the moment the hatch has been opened and the ped is about to descend into the submersible. - bool IsPedInVehicle(int ped, int vehicle, bool atGetIn); + bool IsPedInVehicle(uint ped, uint vehicle, bool atGetIn); bool IsPedInModel(IPlayer ped, uint modelHash); - bool IsPedInModel(int ped, uint modelHash); + bool IsPedInModel(uint ped, uint modelHash); /// /// Gets a value indicating whether the specified ped is in any vehicle. /// @@ -11681,7 +11670,7 @@ public unsafe interface INatives /// Gets a value indicating whether the specified ped is in any vehicle. /// /// If 'atGetIn' is false, the function will not return true until the ped is sitting in the vehicle and is about to close the door. If it's true, the function returns true the moment the ped starts to get onto the seat (after opening the door). Eg. if false, and the ped is getting into a submersible, the function will not return true until the ped has descended down into the submersible and gotten into the seat, while if it's true, it'll return true the moment the hatch has been opened and the ped is about to descend into the submersible. - bool IsPedInAnyVehicle(int ped, bool atGetIn); + bool IsPedInAnyVehicle(uint ped, bool atGetIn); /// /// xyz - relative to the world origin. /// @@ -11695,7 +11684,7 @@ public unsafe interface INatives /// Gets a value indicating whether this ped's health is below its injured threshold. /// The default threshold is 100. /// - bool IsPedInjured(int ped); + bool IsPedInjured(uint ped); /// /// Returns whether the specified ped is hurt. /// @@ -11703,7 +11692,7 @@ public unsafe interface INatives /// /// Returns whether the specified ped is hurt. /// - bool IsPedHurt(int ped); + bool IsPedHurt(uint ped); /// /// Gets a value indicating whether this ped's health is below its fatally injured threshold. The default threshold is 100. /// @@ -11713,7 +11702,7 @@ public unsafe interface INatives /// Gets a value indicating whether this ped's health is below its fatally injured threshold. The default threshold is 100. /// /// If the handle is invalid, the function returns true. - bool IsPedFatallyInjured(int ped); + bool IsPedFatallyInjured(uint ped); /// /// I suggest to remove "OR_DYING" part, because it does not detect dying phase. /// That's what the devs call it, cry about it. @@ -11729,11 +11718,11 @@ public unsafe interface INatives /// /// is always passed 1 in the scripts. /// Seems to consistently return true if the ped is dead. - bool IsPedDeadOrDying(int ped, bool p1); + bool IsPedDeadOrDying(uint ped, bool p1); bool IsConversationPedDead(IPlayer ped); - bool IsConversationPedDead(int ped); + bool IsConversationPedDead(uint ped); bool IsPedAimingFromCover(IPlayer ped); - bool IsPedAimingFromCover(int ped); + bool IsPedAimingFromCover(uint ped); /// /// Returns whether the specified ped is reloading. /// @@ -11741,7 +11730,7 @@ public unsafe interface INatives /// /// Returns whether the specified ped is reloading. /// - bool IsPedReloading(int ped); + bool IsPedReloading(uint ped); /// /// Returns true if the given ped has a valid pointer to CPlayerInfo in its CPed class. That's all. /// @@ -11749,29 +11738,29 @@ public unsafe interface INatives /// /// Returns true if the given ped has a valid pointer to CPlayerInfo in its CPed class. That's all. /// - bool IsPedAPlayer(int ped); + bool IsPedAPlayer(uint ped); /// /// Full list of peds by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/peds.json /// /// see CREATE_PED - int CreatePedInsideVehicle(IVehicle vehicle, int pedType, uint modelHash, int seat, bool isNetwork, bool bScriptHostPed); + uint CreatePedInsideVehicle(IVehicle vehicle, int pedType, uint modelHash, int seat, bool isNetwork, bool bScriptHostPed); /// /// Full list of peds by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/peds.json /// /// see CREATE_PED - int CreatePedInsideVehicle(int vehicle, int pedType, uint modelHash, int seat, bool isNetwork, bool bScriptHostPed); + uint CreatePedInsideVehicle(uint vehicle, int pedType, uint modelHash, int seat, bool isNetwork, bool bScriptHostPed); void SetPedDesiredHeading(IPlayer ped, float heading); - void SetPedDesiredHeading(int ped, float heading); + void SetPedDesiredHeading(uint ped, float heading); void ForceAllHeadingValuesToAlign(IPlayer ped); - void ForceAllHeadingValuesToAlign(int ped); + void ForceAllHeadingValuesToAlign(uint ped); /// /// /// is ped's view cone - bool IsPedFacingPed(IPlayer ped, int otherPed, float angle); + bool IsPedFacingPed(IPlayer ped, uint otherPed, float angle); /// /// /// is ped's view cone - bool IsPedFacingPed(int ped, IPlayer otherPed, float angle); + bool IsPedFacingPed(uint ped, IPlayer otherPed, float angle); /// /// /// is ped's view cone @@ -11779,7 +11768,7 @@ public unsafe interface INatives /// /// /// is ped's view cone - bool IsPedFacingPed(int ped, int otherPed, float angle); + bool IsPedFacingPed(uint ped, uint otherPed, float angle); /// /// A.) Swinging a random melee attack (including pistol-whipping) /// B.) Reacting to being hit by a melee attack (including pistol-whipping) @@ -11795,7 +11784,7 @@ public unsafe interface INatives /// You don't have to be holding the melee-targetting button to be in this stance; you stay in it by default for a few seconds after swinging at someone. If you do a sprinting punch, it returns true for the duration of the punch animation and then returns false again, even if you've punched and made-angry many peds /// /// Notes: The function only returns true while the ped is: - bool IsPedInMeleeCombat(int ped); + bool IsPedInMeleeCombat(uint ped); /// /// /// Returns true if the ped doesn't do any movement. If the ped is being pushed forwards by using APPLY_FORCE_TO_ENTITY for example, the function returns false. @@ -11803,9 +11792,9 @@ public unsafe interface INatives /// /// /// Returns true if the ped doesn't do any movement. If the ped is being pushed forwards by using APPLY_FORCE_TO_ENTITY for example, the function returns false. - bool IsPedStopped(int ped); + bool IsPedStopped(uint ped); bool IsPedShootingInArea(IPlayer ped, float x1, float y1, float z1, float x2, float y2, float z2, bool p7, bool p8); - bool IsPedShootingInArea(int ped, float x1, float y1, float z1, float x2, float y2, float z2, bool p7, bool p8); + bool IsPedShootingInArea(uint ped, float x1, float y1, float z1, float x2, float y2, float z2, bool p7, bool p8); bool IsAnyPedShootingInArea(float x1, float y1, float z1, float x2, float y2, float z2, bool p6, bool p7); /// /// Returns whether the specified ped is shooting. @@ -11814,7 +11803,7 @@ public unsafe interface INatives /// /// Returns whether the specified ped is shooting. /// - bool IsPedShooting(int ped); + bool IsPedShooting(uint ped); /// /// /// = 0-100, 100 being perfectly accurate @@ -11822,12 +11811,12 @@ public unsafe interface INatives /// /// /// = 0-100, 100 being perfectly accurate - void SetPedAccuracy(int ped, int accuracy); + void SetPedAccuracy(uint ped, int accuracy); int GetPedAccuracy(IPlayer ped); - int GetPedAccuracy(int ped); + int GetPedAccuracy(uint ped); void SetAmbientLawPedAccuracyModifier(float multiplier); bool IsPedModel(IPlayer ped, uint modelHash); - bool IsPedModel(int ped, uint modelHash); + bool IsPedModel(uint ped, uint modelHash); /// /// Forces the ped to fall back and kills it. /// It doesn't really explode the ped's head but it kills the ped @@ -11837,11 +11826,11 @@ public unsafe interface INatives /// Forces the ped to fall back and kills it. /// It doesn't really explode the ped's head but it kills the ped /// - void ExplodePedHead(int ped, uint weaponHash); + void ExplodePedHead(uint ped, uint weaponHash); /// /// Judging purely from a quick disassembly, if the ped is in a vehicle, the ped will be deleted immediately. If not, it'll be marked as no longer needed. - very elegant.. /// - void RemovePedElegantly(ref int ped); + void RemovePedElegantly(ref uint ped); /// /// Same as SET_PED_ARMOUR, but ADDS 'amount' to the armor the Ped already has. /// @@ -11849,7 +11838,7 @@ public unsafe interface INatives /// /// Same as SET_PED_ARMOUR, but ADDS 'amount' to the armor the Ped already has. /// - void AddArmourToPed(int ped, int amount); + void AddArmourToPed(uint ped, int amount); /// /// Sets the armor of the specified ped. /// @@ -11861,7 +11850,7 @@ public unsafe interface INatives /// /// The Ped to set the armor of. /// A value between 0 and 100 indicating the value to set the Ped's armor to. - void SetPedArmour(int ped, int amount); + void SetPedArmour(uint ped, int amount); /// /// Seat_Index: [-1 is driver seat, -2 first free passenger seat] /// Moreinfo of Seat Index @@ -11872,7 +11861,7 @@ public unsafe interface INatives /// /// The ped to warp. /// The vehicle to warp the ped into. - void SetPedIntoVehicle(IPlayer ped, int vehicle, int seatIndex); + void SetPedIntoVehicle(IPlayer ped, uint vehicle, int seatIndex); /// /// Seat_Index: [-1 is driver seat, -2 first free passenger seat] /// Moreinfo of Seat Index @@ -11883,7 +11872,7 @@ public unsafe interface INatives /// /// The ped to warp. /// The vehicle to warp the ped into. - void SetPedIntoVehicle(int ped, IVehicle vehicle, int seatIndex); + void SetPedIntoVehicle(uint ped, IVehicle vehicle, int seatIndex); /// /// Seat_Index: [-1 is driver seat, -2 first free passenger seat] /// Moreinfo of Seat Index @@ -11905,9 +11894,9 @@ public unsafe interface INatives /// /// The ped to warp. /// The vehicle to warp the ped into. - void SetPedIntoVehicle(int ped, int vehicle, int seatIndex); + void SetPedIntoVehicle(uint ped, uint vehicle, int seatIndex); void SetPedAllowVehiclesOverride(IPlayer ped, bool toggle); - void SetPedAllowVehiclesOverride(int ped, bool toggle); + void SetPedAllowVehiclesOverride(uint ped, bool toggle); bool CanCreateRandomPed(bool p0); /// /// vb.net @@ -11919,15 +11908,15 @@ public unsafe interface INatives /// Ped will not act until SET_PED_AS_NO_LONGER_NEEDED is called. /// /// Creates a Ped at the specified location, returns the Ped Handle. - int CreateRandomPed(float posX, float posY, float posZ); - int CreateRandomPedAsDriver(IVehicle vehicle, bool returnHandle); - int CreateRandomPedAsDriver(int vehicle, bool returnHandle); + uint CreateRandomPed(float posX, float posY, float posZ); + uint CreateRandomPedAsDriver(IVehicle vehicle, bool returnHandle); + uint CreateRandomPedAsDriver(uint vehicle, bool returnHandle); bool CanCreateRandomDriver(); bool CanCreateRandomBikeRider(); void SetPedMoveAnimsBlendOut(IPlayer ped); - void SetPedMoveAnimsBlendOut(int ped); + void SetPedMoveAnimsBlendOut(uint ped); void SetPedCanBeDraggedOut(IPlayer ped, bool toggle); - void SetPedCanBeDraggedOut(int ped, bool toggle); + void SetPedCanBeDraggedOut(uint ped, bool toggle); /// /// ntoggle was always false except in one instance (b678). /// The one time this is set to true seems to do with when you fail the mission. @@ -11940,7 +11929,7 @@ public unsafe interface INatives /// /// Returns true/false if the ped is/isn't male. /// - bool IsPedMale(int ped); + bool IsPedMale(uint ped); /// /// Returns true/false if the ped is/isn't humanoid. /// @@ -11948,17 +11937,15 @@ public unsafe interface INatives /// /// Returns true/false if the ped is/isn't humanoid. /// - bool IsPedHuman(int ped); + bool IsPedHuman(uint ped); /// - /// If the Ped is not in a vehicle and includeLastVehicle is true, the vehicle they were last in is returned. /// /// Gets the vehicle the specified Ped is in. Returns 0 if the ped is/was not in a vehicle. - int GetVehiclePedIsIn(IPlayer ped, bool includeLastVehicle); + uint GetVehiclePedIsIn(IPlayer ped, bool includeEntering); /// - /// If the Ped is not in a vehicle and includeLastVehicle is true, the vehicle they were last in is returned. /// /// Gets the vehicle the specified Ped is in. Returns 0 if the ped is/was not in a vehicle. - int GetVehiclePedIsIn(int ped, bool includeLastVehicle); + uint GetVehiclePedIsIn(uint ped, bool includeEntering); /// /// Resets the value for the last vehicle driven by the Ped. /// @@ -11966,7 +11953,7 @@ public unsafe interface INatives /// /// Resets the value for the last vehicle driven by the Ped. /// - void ResetPedLastVehicle(int ped); + void ResetPedLastVehicle(uint ped); void SetPedDensityMultiplierThisFrame(float multiplier); void SetScenarioPedDensityMultiplierThisFrame(float p0, float p1); void SuppressAmbientPedAggressiveCleanupThisFrame(); @@ -11984,7 +11971,7 @@ public unsafe interface INatives /// /// /// Same function call as PED::GET_MOUNT, aka just returns 0 - bool IsPedOnMount(int ped); + bool IsPedOnMount(uint ped); /// /// void __fastcall ped__get_mount(NativeContext *a1) /// { @@ -11995,7 +11982,7 @@ public unsafe interface INatives /// } /// /// Function just returns 0 - int GetMount(IPlayer ped); + uint GetMount(IPlayer ped); /// /// void __fastcall ped__get_mount(NativeContext *a1) /// { @@ -12006,7 +11993,7 @@ public unsafe interface INatives /// } /// /// Function just returns 0 - int GetMount(int ped); + uint GetMount(uint ped); /// /// Gets a value indicating whether the specified ped is on top of any vehicle. /// Return 1 when ped is on vehicle. @@ -12018,11 +12005,11 @@ public unsafe interface INatives /// Return 1 when ped is on vehicle. /// Return 0 when ped is not on a vehicle. /// - bool IsPedOnVehicle(int ped); - bool IsPedOnSpecificVehicle(IPlayer ped, int vehicle); - bool IsPedOnSpecificVehicle(int ped, IVehicle vehicle); + bool IsPedOnVehicle(uint ped); + bool IsPedOnSpecificVehicle(IPlayer ped, uint vehicle); + bool IsPedOnSpecificVehicle(uint ped, IVehicle vehicle); bool IsPedOnSpecificVehicle(IPlayer ped, IVehicle vehicle); - bool IsPedOnSpecificVehicle(int ped, int vehicle); + bool IsPedOnSpecificVehicle(uint ped, uint vehicle); /// /// Maximum possible amount of money on MP is 2000. ~JX /// ----------------------------------------------------------------------------- @@ -12034,9 +12021,9 @@ public unsafe interface INatives /// ----------------------------------------------------------------------------- /// Maximum amount that a ped can theoretically have is 65535 (0xFFFF) since the amount is stored as an unsigned short (uint16_t) value. /// - void SetPedMoney(int ped, int amount); + void SetPedMoney(uint ped, int amount); int GetPedMoney(IPlayer ped); - int GetPedMoney(int ped); + int GetPedMoney(uint ped); /// /// Related to Peds dropping pickup_health_snack; p0 is a value between [0.0, 1.0] that corresponds to drop rate /// @@ -12052,19 +12039,19 @@ public unsafe interface INatives /// Example: Headshotting a player no longer one shots them. Instead they will take the same damage as a torso shot. /// /// no longer takes critical damage modifiers if set to FALSE. - void SetPedSuffersCriticalHits(int ped, bool toggle); + void SetPedSuffersCriticalHits(uint ped, bool toggle); void SetPedUpperBodyDamageOnly(IPlayer ped, bool toggle); - void SetPedUpperBodyDamageOnly(int ped, bool toggle); + void SetPedUpperBodyDamageOnly(uint ped, bool toggle); /// /// Detect if ped is sitting in the specified vehicle /// [True/False] /// - bool IsPedSittingInVehicle(IPlayer ped, int vehicle); + bool IsPedSittingInVehicle(IPlayer ped, uint vehicle); /// /// Detect if ped is sitting in the specified vehicle /// [True/False] /// - bool IsPedSittingInVehicle(int ped, IVehicle vehicle); + bool IsPedSittingInVehicle(uint ped, IVehicle vehicle); /// /// Detect if ped is sitting in the specified vehicle /// [True/False] @@ -12074,7 +12061,7 @@ public unsafe interface INatives /// Detect if ped is sitting in the specified vehicle /// [True/False] /// - bool IsPedSittingInVehicle(int ped, int vehicle); + bool IsPedSittingInVehicle(uint ped, uint vehicle); /// /// Detect if ped is in any vehicle /// [True/False] @@ -12084,83 +12071,83 @@ public unsafe interface INatives /// Detect if ped is in any vehicle /// [True/False] /// - bool IsPedSittingInAnyVehicle(int ped); + bool IsPedSittingInAnyVehicle(uint ped); bool IsPedOnFoot(IPlayer ped); - bool IsPedOnFoot(int ped); + bool IsPedOnFoot(uint ped); bool IsPedOnAnyBike(IPlayer ped); - bool IsPedOnAnyBike(int ped); + bool IsPedOnAnyBike(uint ped); bool IsPedPlantingBomb(IPlayer ped); - bool IsPedPlantingBomb(int ped); + bool IsPedPlantingBomb(uint ped); Vector3 GetDeadPedPickupCoords(IPlayer ped, float p1, float p2); - Vector3 GetDeadPedPickupCoords(int ped, float p1, float p2); + Vector3 GetDeadPedPickupCoords(uint ped, float p1, float p2); bool IsPedInAnyBoat(IPlayer ped); - bool IsPedInAnyBoat(int ped); + bool IsPedInAnyBoat(uint ped); bool IsPedInAnySub(IPlayer ped); - bool IsPedInAnySub(int ped); + bool IsPedInAnySub(uint ped); bool IsPedInAnyHeli(IPlayer ped); - bool IsPedInAnyHeli(int ped); + bool IsPedInAnyHeli(uint ped); bool IsPedInAnyPlane(IPlayer ped); - bool IsPedInAnyPlane(int ped); + bool IsPedInAnyPlane(uint ped); bool IsPedInFlyingVehicle(IPlayer ped); - bool IsPedInFlyingVehicle(int ped); + bool IsPedInFlyingVehicle(uint ped); void SetPedDiesInWater(IPlayer ped, bool toggle); - void SetPedDiesInWater(int ped, bool toggle); + void SetPedDiesInWater(uint ped, bool toggle); bool GetPedDiesInWater(IPlayer ped); - bool GetPedDiesInWater(int ped); + bool GetPedDiesInWater(uint ped); void SetPedDiesInSinkingVehicle(IPlayer ped, bool toggle); - void SetPedDiesInSinkingVehicle(int ped, bool toggle); + void SetPedDiesInSinkingVehicle(uint ped, bool toggle); int GetPedArmour(IPlayer ped); - int GetPedArmour(int ped); + int GetPedArmour(uint ped); void SetPedStayInVehicleWhenJacked(IPlayer ped, bool toggle); - void SetPedStayInVehicleWhenJacked(int ped, bool toggle); + void SetPedStayInVehicleWhenJacked(uint ped, bool toggle); void SetPedCanBeShotInVehicle(IPlayer ped, bool toggle); - void SetPedCanBeShotInVehicle(int ped, bool toggle); + void SetPedCanBeShotInVehicle(uint ped, bool toggle); /// /// bool GetPedLastDamageBone(IPlayer ped, ref int outBone); /// /// - bool GetPedLastDamageBone(int ped, ref int outBone); + bool GetPedLastDamageBone(uint ped, ref int outBone); void ClearPedLastDamageBone(IPlayer ped); - void ClearPedLastDamageBone(int ped); + void ClearPedLastDamageBone(uint ped); void SetAiWeaponDamageModifier(float value); void ResetAiWeaponDamageModifier(); void SetAiMeleeWeaponDamageModifier(float modifier); void ResetAiMeleeWeaponDamageModifier(); void SetTreatAsAmbientPedForDriverLockon(IPlayer ped, bool p1); - void SetTreatAsAmbientPedForDriverLockon(int ped, bool p1); + void SetTreatAsAmbientPedForDriverLockon(uint ped, bool p1); void SetPedCanBeTargetted(IPlayer ped, bool toggle); - void SetPedCanBeTargetted(int ped, bool toggle); + void SetPedCanBeTargetted(uint ped, bool toggle); void SetPedCanBeTargettedByTeam(IPlayer ped, int team, bool toggle); - void SetPedCanBeTargettedByTeam(int ped, int team, bool toggle); - void SetPedCanBeTargettedByPlayer(IPlayer ped, int player, bool toggle); - void SetPedCanBeTargettedByPlayer(int ped, IPlayer player, bool toggle); + void SetPedCanBeTargettedByTeam(uint ped, int team, bool toggle); + void SetPedCanBeTargettedByPlayer(IPlayer ped, uint player, bool toggle); + void SetPedCanBeTargettedByPlayer(uint ped, IPlayer player, bool toggle); void SetPedCanBeTargettedByPlayer(IPlayer ped, IPlayer player, bool toggle); - void SetPedCanBeTargettedByPlayer(int ped, int player, bool toggle); + void SetPedCanBeTargettedByPlayer(uint ped, uint player, bool toggle); void SetAllowLockonToPedIfFriendly(IPlayer ped, bool toggle); - void SetAllowLockonToPedIfFriendly(int ped, bool toggle); + void SetAllowLockonToPedIfFriendly(uint ped, bool toggle); void SetUseCameraHeadingForDesiredDirectionLockOnTest(IPlayer ped, bool toggle); - void SetUseCameraHeadingForDesiredDirectionLockOnTest(int ped, bool toggle); + void SetUseCameraHeadingForDesiredDirectionLockOnTest(uint ped, bool toggle); bool IsPedInAnyPoliceVehicle(IPlayer ped); - bool IsPedInAnyPoliceVehicle(int ped); + bool IsPedInAnyPoliceVehicle(uint ped); void ForcePedToOpenParachute(IPlayer ped); - void ForcePedToOpenParachute(int ped); + void ForcePedToOpenParachute(uint ped); bool IsPedInParachuteFreeFall(IPlayer ped); - bool IsPedInParachuteFreeFall(int ped); + bool IsPedInParachuteFreeFall(uint ped); bool IsPedFalling(IPlayer ped); - bool IsPedFalling(int ped); + bool IsPedFalling(uint ped); bool IsPedJumping(IPlayer ped); - bool IsPedJumping(int ped); + bool IsPedJumping(uint ped); bool IsPedLanding(int p0); bool IsPedDoingABeastJump(int p0); bool IsPedClimbing(IPlayer ped); - bool IsPedClimbing(int ped); + bool IsPedClimbing(uint ped); bool IsPedVaulting(IPlayer ped); - bool IsPedVaulting(int ped); + bool IsPedVaulting(uint ped); bool IsPedDiving(IPlayer ped); - bool IsPedDiving(int ped); + bool IsPedDiving(uint ped); bool IsPedJumpingOutOfVehicle(IPlayer ped); - bool IsPedJumpingOutOfVehicle(int ped); + bool IsPedJumpingOutOfVehicle(uint ped); /// /// Returns true if the ped is currently opening a door (CTaskOpenDoor). /// @@ -12168,7 +12155,7 @@ public unsafe interface INatives /// /// Returns true if the ped is currently opening a door (CTaskOpenDoor). /// - bool IsPedOpeningDoor(int ped); + bool IsPedOpeningDoor(uint ped); /// /// Returns: /// -1: Normal @@ -12188,7 +12175,7 @@ public unsafe interface INatives /// 3: Falling to doom (e.g. after exiting parachute) /// Normal means no parachute? /// - int GetPedParachuteState(int ped); + int GetPedParachuteState(uint ped); /// /// -1: no landing /// 0: landing on both feet @@ -12204,19 +12191,19 @@ public unsafe interface INatives /// 2: rolling /// 3: ragdoll /// - int GetPedParachuteLandingType(int ped); + int GetPedParachuteLandingType(uint ped); void SetPedParachuteTintIndex(IPlayer ped, int tintIndex); - void SetPedParachuteTintIndex(int ped, int tintIndex); + void SetPedParachuteTintIndex(uint ped, int tintIndex); /// /// void GetPedParachuteTintIndex(IPlayer ped, ref int outTintIndex); /// /// - void GetPedParachuteTintIndex(int ped, ref int outTintIndex); + void GetPedParachuteTintIndex(uint ped, ref int outTintIndex); void SetPedReserveParachuteTintIndex(IPlayer ped, int p1); - void SetPedReserveParachuteTintIndex(int ped, int p1); - int CreateParachuteBagObject(IPlayer ped, bool p1, bool p2); - int CreateParachuteBagObject(int ped, bool p1, bool p2); + void SetPedReserveParachuteTintIndex(uint ped, int p1); + uint CreateParachuteBagObject(IPlayer ped, bool p1, bool p2); + uint CreateParachuteBagObject(uint ped, bool p1, bool p2); /// /// /// This is the SET_CHAR_DUCKING from GTA IV, that makes Peds duck. This function does nothing in GTA V. It cannot set the ped as ducking in vehicles, and IS_PED_DUCKING will always return false. @@ -12224,28 +12211,28 @@ public unsafe interface INatives /// /// /// This is the SET_CHAR_DUCKING from GTA IV, that makes Peds duck. This function does nothing in GTA V. It cannot set the ped as ducking in vehicles, and IS_PED_DUCKING will always return false. - void SetPedDucking(int ped, bool toggle); + void SetPedDucking(uint ped, bool toggle); bool IsPedDucking(IPlayer ped); - bool IsPedDucking(int ped); + bool IsPedDucking(uint ped); bool IsPedInAnyTaxi(IPlayer ped); - bool IsPedInAnyTaxi(int ped); + bool IsPedInAnyTaxi(uint ped); void SetPedIdRange(IPlayer ped, float value); - void SetPedIdRange(int ped, float value); + void SetPedIdRange(uint ped, float value); void SetPedHighlyPerceptive(IPlayer ped, bool toggle); - void SetPedHighlyPerceptive(int ped, bool toggle); + void SetPedHighlyPerceptive(uint ped, bool toggle); void SetCopPerceptionOverrides(float seeingRange, float seeingRangePeripheral, float hearingRange, float visualFieldMinAzimuthAngle, float visualFieldMaxAzimuthAngle, float fieldOfGazeMaxAngle, float p6); void SetPedInjuredOnGroundBehaviour(IPlayer ped, float p1); - void SetPedInjuredOnGroundBehaviour(int ped, float p1); + void SetPedInjuredOnGroundBehaviour(uint ped, float p1); void DisablePedInjuredOnGroundBehaviour(IPlayer ped); - void DisablePedInjuredOnGroundBehaviour(int ped); + void DisablePedInjuredOnGroundBehaviour(uint ped); void SetPedSeeingRange(IPlayer ped, float value); - void SetPedSeeingRange(int ped, float value); + void SetPedSeeingRange(uint ped, float value); void SetPedHearingRange(IPlayer ped, float value); - void SetPedHearingRange(int ped, float value); + void SetPedHearingRange(uint ped, float value); void SetPedVisualFieldMinAngle(IPlayer ped, float value); - void SetPedVisualFieldMinAngle(int ped, float value); + void SetPedVisualFieldMinAngle(uint ped, float value); void SetPedVisualFieldMaxAngle(IPlayer ped, float value); - void SetPedVisualFieldMaxAngle(int ped, float value); + void SetPedVisualFieldMaxAngle(uint ped, float value); /// /// This native refers to the field of vision the ped has below them, starting at 0 degrees. The angle value should be negative. /// -90f should let the ped see 90 degrees below them, for example. @@ -12255,7 +12242,7 @@ public unsafe interface INatives /// This native refers to the field of vision the ped has below them, starting at 0 degrees. The angle value should be negative. /// -90f should let the ped see 90 degrees below them, for example. /// - void SetPedVisualFieldMinElevationAngle(int ped, float angle); + void SetPedVisualFieldMinElevationAngle(uint ped, float angle); /// /// This native refers to the field of vision the ped has above them, starting at 0 degrees. 90f would let the ped see enemies directly above of them. /// @@ -12263,13 +12250,13 @@ public unsafe interface INatives /// /// This native refers to the field of vision the ped has above them, starting at 0 degrees. 90f would let the ped see enemies directly above of them. /// - void SetPedVisualFieldMaxElevationAngle(int ped, float angle); + void SetPedVisualFieldMaxElevationAngle(uint ped, float angle); void SetPedVisualFieldPeripheralRange(IPlayer ped, float range); - void SetPedVisualFieldPeripheralRange(int ped, float range); + void SetPedVisualFieldPeripheralRange(uint ped, float range); void SetPedVisualFieldCenterAngle(IPlayer ped, float angle); - void SetPedVisualFieldCenterAngle(int ped, float angle); + void SetPedVisualFieldCenterAngle(uint ped, float angle); float GetPedVisualFieldCenterAngle(IPlayer ped); - float GetPedVisualFieldCenterAngle(int ped); + float GetPedVisualFieldCenterAngle(uint ped); /// /// /// is usually 0 in the scripts. action is either 0 or a pointer to "DEFAULT_ACTION". @@ -12277,7 +12264,7 @@ public unsafe interface INatives /// /// /// is usually 0 in the scripts. action is either 0 or a pointer to "DEFAULT_ACTION". - void SetPedStealthMovement(int ped, bool p1, string action); + void SetPedStealthMovement(uint ped, bool p1, string action); /// /// Returns whether the entity is in stealth mode /// @@ -12285,7 +12272,7 @@ public unsafe interface INatives /// /// Returns whether the entity is in stealth mode /// - bool GetPedStealthMovement(int ped); + bool GetPedStealthMovement(uint ped); /// /// Creates a new ped group. /// Groups can contain up to 8 peds. @@ -12294,9 +12281,9 @@ public unsafe interface INatives /// int CreateGroup(int unused); void SetPedAsGroupLeader(IPlayer ped, int groupId); - void SetPedAsGroupLeader(int ped, int groupId); + void SetPedAsGroupLeader(uint ped, int groupId); void SetPedAsGroupMember(IPlayer ped, int groupId); - void SetPedAsGroupMember(int ped, int groupId); + void SetPedAsGroupMember(uint ped, int groupId); /// /// This only will teleport the ped to the group leader if the group leader teleports (sets coords). /// Only works in singleplayer @@ -12306,14 +12293,14 @@ public unsafe interface INatives /// This only will teleport the ped to the group leader if the group leader teleports (sets coords). /// Only works in singleplayer /// - void SetPedCanTeleportToGroupLeader(int pedHandle, int groupHandle, bool toggle); + void SetPedCanTeleportToGroupLeader(uint pedHandle, int groupHandle, bool toggle); void RemoveGroup(int groupId); void RemovePedFromGroup(IPlayer ped); - void RemovePedFromGroup(int ped); + void RemovePedFromGroup(uint ped); bool IsPedGroupMember(IPlayer ped, int groupId); - bool IsPedGroupMember(int ped, int groupId); + bool IsPedGroupMember(uint ped, int groupId); bool IsPedHangingOnToVehicle(IPlayer ped); - bool IsPedHangingOnToVehicle(int ped); + bool IsPedHangingOnToVehicle(uint ped); /// /// Sets the range at which members will automatically leave the group. /// @@ -12325,19 +12312,19 @@ public unsafe interface INatives /// /// /// will stay on the ground after being stunned for at lest ms time. (in milliseconds) - void SetPedMinGroundTimeForStungun(int ped, int ms); + void SetPedMinGroundTimeForStungun(uint ped, int ms); bool IsPedProne(IPlayer ped); - bool IsPedProne(int ped); + bool IsPedProne(uint ped); /// /// /// is usually 0 in the scripts because it gets the ped id during the task sequence. For instance: PED::IS_PED_IN_COMBAT(l_42E[414], PLAYER::PLAYER_PED_ID()) // armenian2.ct4: 43794 /// Checks to see if ped and target are in combat with eachother. Only goes one-way: if target is engaged in combat with ped but ped has not yet reacted, the function will return false until ped starts fighting back. - bool IsPedInCombat(IPlayer ped, int target); + bool IsPedInCombat(IPlayer ped, uint target); /// /// /// is usually 0 in the scripts because it gets the ped id during the task sequence. For instance: PED::IS_PED_IN_COMBAT(l_42E[414], PLAYER::PLAYER_PED_ID()) // armenian2.ct4: 43794 /// Checks to see if ped and target are in combat with eachother. Only goes one-way: if target is engaged in combat with ped but ped has not yet reacted, the function will return false until ped starts fighting back. - bool IsPedInCombat(int ped, IPlayer target); + bool IsPedInCombat(uint ped, IPlayer target); /// /// /// is usually 0 in the scripts because it gets the ped id during the task sequence. For instance: PED::IS_PED_IN_COMBAT(l_42E[414], PLAYER::PLAYER_PED_ID()) // armenian2.ct4: 43794 @@ -12347,19 +12334,19 @@ public unsafe interface INatives /// /// is usually 0 in the scripts because it gets the ped id during the task sequence. For instance: PED::IS_PED_IN_COMBAT(l_42E[414], PLAYER::PLAYER_PED_ID()) // armenian2.ct4: 43794 /// Checks to see if ped and target are in combat with eachother. Only goes one-way: if target is engaged in combat with ped but ped has not yet reacted, the function will return false until ped starts fighting back. - bool IsPedInCombat(int ped, int target); - int GetPedTargetFromCombatPed(IPlayer ped, int p1); - int GetPedTargetFromCombatPed(int ped, int p1); - bool CanPedInCombatSeeTarget(IPlayer ped, int target); - bool CanPedInCombatSeeTarget(int ped, IPlayer target); + bool IsPedInCombat(uint ped, uint target); + uint GetPedTargetFromCombatPed(IPlayer ped, int p1); + uint GetPedTargetFromCombatPed(uint ped, int p1); + bool CanPedInCombatSeeTarget(IPlayer ped, uint target); + bool CanPedInCombatSeeTarget(uint ped, IPlayer target); bool CanPedInCombatSeeTarget(IPlayer ped, IPlayer target); - bool CanPedInCombatSeeTarget(int ped, int target); + bool CanPedInCombatSeeTarget(uint ped, uint target); bool IsPedDoingDriveby(IPlayer ped); - bool IsPedDoingDriveby(int ped); + bool IsPedDoingDriveby(uint ped); bool IsPedJacking(IPlayer ped); - bool IsPedJacking(int ped); + bool IsPedJacking(uint ped); bool IsPedBeingJacked(IPlayer ped); - bool IsPedBeingJacked(int ped); + bool IsPedBeingJacked(uint ped); /// /// /// is always 0 @@ -12367,13 +12354,13 @@ public unsafe interface INatives /// /// /// is always 0 - bool IsPedBeingStunned(int ped, int p1); - int GetPedsJacker(IPlayer ped); - int GetPedsJacker(int ped); - int GetJackTarget(IPlayer ped); - int GetJackTarget(int ped); + bool IsPedBeingStunned(uint ped, int p1); + uint GetPedsJacker(IPlayer ped); + uint GetPedsJacker(uint ped); + uint GetJackTarget(IPlayer ped); + uint GetJackTarget(uint ped); bool IsPedFleeing(IPlayer ped); - bool IsPedFleeing(int ped); + bool IsPedFleeing(uint ped); /// /// /// is nearly always 0 in the scripts. @@ -12381,13 +12368,13 @@ public unsafe interface INatives /// /// /// is nearly always 0 in the scripts. - bool IsPedInCover(int ped, bool exceptUseWeapon); + bool IsPedInCover(uint ped, bool exceptUseWeapon); bool IsPedInCoverFacingLeft(IPlayer ped); - bool IsPedInCoverFacingLeft(int ped); + bool IsPedInCoverFacingLeft(uint ped); bool IsPedInHighCover(IPlayer ped); - bool IsPedInHighCover(int ped); + bool IsPedInHighCover(uint ped); bool IsPedGoingIntoCover(IPlayer ped); - bool IsPedGoingIntoCover(int ped); + bool IsPedGoingIntoCover(uint ped); /// /// /// could be time. Only example in the decompiled scripts uses it as -1. @@ -12395,21 +12382,21 @@ public unsafe interface INatives /// /// /// could be time. Only example in the decompiled scripts uses it as -1. - bool SetPedPinnedDown(int ped, bool pinned, int i); + bool SetPedPinnedDown(uint ped, bool pinned, int i); int GetSeatPedIsTryingToEnter(IPlayer ped); - int GetSeatPedIsTryingToEnter(int ped); - int GetVehiclePedIsTryingToEnter(IPlayer ped); - int GetVehiclePedIsTryingToEnter(int ped); + int GetSeatPedIsTryingToEnter(uint ped); + uint GetVehiclePedIsTryingToEnter(IPlayer ped); + uint GetVehiclePedIsTryingToEnter(uint ped); /// /// Returns the Entity (Ped, Vehicle, or ?Object?) that killed the 'ped' /// Is best to check if the Ped is dead before asking for its killer. /// - int GetPedSourceOfDeath(IPlayer ped); + uint GetPedSourceOfDeath(IPlayer ped); /// /// Returns the Entity (Ped, Vehicle, or ?Object?) that killed the 'ped' /// Is best to check if the Ped is dead before asking for its killer. /// - int GetPedSourceOfDeath(int ped); + uint GetPedSourceOfDeath(uint ped); /// /// Returns the hash of the weapon/model/object that killed the ped. /// @@ -12417,17 +12404,17 @@ public unsafe interface INatives /// /// Returns the hash of the weapon/model/object that killed the ped. /// - uint GetPedCauseOfDeath(int ped); + uint GetPedCauseOfDeath(uint ped); int GetPedTimeOfDeath(IPlayer ped); - int GetPedTimeOfDeath(int ped); + int GetPedTimeOfDeath(uint ped); int CountPedsInCombatWithTarget(IPlayer ped); - int CountPedsInCombatWithTarget(int ped); + int CountPedsInCombatWithTarget(uint ped); int CountPedsInCombatWithTargetWithinRadius(IPlayer ped, float x, float y, float z, float radius); - int CountPedsInCombatWithTargetWithinRadius(int ped, float x, float y, float z, float radius); + int CountPedsInCombatWithTargetWithinRadius(uint ped, float x, float y, float z, float radius); void SetPedRelationshipGroupDefaultHash(IPlayer ped, uint hash); - void SetPedRelationshipGroupDefaultHash(int ped, uint hash); + void SetPedRelationshipGroupDefaultHash(uint ped, uint hash); void SetPedRelationshipGroupHash(IPlayer ped, uint hash); - void SetPedRelationshipGroupHash(int ped, uint hash); + void SetPedRelationshipGroupHash(uint ped, uint hash); /// /// Sets the relationship between two groups. This should be called twice (once for each group). /// 0 = Companion @@ -12474,7 +12461,7 @@ public unsafe interface INatives /// 255 = Pedestrians /// See NativeDB for reference: http://natives.altv.mp/#/0xEBA5AD3A0EAF7121 /// - int GetRelationshipBetweenPeds(IPlayer ped1, int ped2); + int GetRelationshipBetweenPeds(IPlayer ped1, uint ped2); /// /// Gets the relationship between two peds. This should be called twice (once for each ped). /// Relationship types: @@ -12487,7 +12474,7 @@ public unsafe interface INatives /// 255 = Pedestrians /// See NativeDB for reference: http://natives.altv.mp/#/0xEBA5AD3A0EAF7121 /// - int GetRelationshipBetweenPeds(int ped1, IPlayer ped2); + int GetRelationshipBetweenPeds(uint ped1, IPlayer ped2); /// /// Gets the relationship between two peds. This should be called twice (once for each ped). /// Relationship types: @@ -12513,11 +12500,11 @@ public unsafe interface INatives /// 255 = Pedestrians /// See NativeDB for reference: http://natives.altv.mp/#/0xEBA5AD3A0EAF7121 /// - int GetRelationshipBetweenPeds(int ped1, int ped2); + int GetRelationshipBetweenPeds(uint ped1, uint ped2); uint GetPedRelationshipGroupDefaultHash(IPlayer ped); - uint GetPedRelationshipGroupDefaultHash(int ped); + uint GetPedRelationshipGroupDefaultHash(uint ped); uint GetPedRelationshipGroupHash(IPlayer ped); - uint GetPedRelationshipGroupHash(int ped); + uint GetPedRelationshipGroupHash(uint ped); /// /// Gets the relationship between two groups. This should be called twice (once for each group). /// Relationship types: @@ -12533,19 +12520,19 @@ public unsafe interface INatives int GetRelationshipBetweenGroups(uint group1, uint group2); void SetRelationshipGroupAffectsWantedLevel(uint group, bool p1); void TellGroupPedsInAreaToAttack(IPlayer ped, int p1, float p2, uint hash, int p4, int p5); - void TellGroupPedsInAreaToAttack(int ped, int p1, float p2, uint hash, int p4, int p5); + void TellGroupPedsInAreaToAttack(uint ped, int p1, float p2, uint hash, int p4, int p5); void SetPedCanBeTargetedWithoutLos(IPlayer ped, bool toggle); - void SetPedCanBeTargetedWithoutLos(int ped, bool toggle); + void SetPedCanBeTargetedWithoutLos(uint ped, bool toggle); void SetPedToInformRespectedFriends(IPlayer ped, float radius, int maxFriends); - void SetPedToInformRespectedFriends(int ped, float radius, int maxFriends); + void SetPedToInformRespectedFriends(uint ped, float radius, int maxFriends); bool IsPedRespondingToEvent(IPlayer ped, int @event); - bool IsPedRespondingToEvent(int ped, int @event); + bool IsPedRespondingToEvent(uint ped, int @event); /// /// bool GetPosFromFiredEvent(IPlayer ped, int eventType, ref int outData); /// /// - bool GetPosFromFiredEvent(int ped, int eventType, ref int outData); + bool GetPosFromFiredEvent(uint ped, int eventType, ref int outData); /// /// FIRING_PATTERN_BURST_FIRE = 0xD6FF6D61 ( 1073727030 ) /// FIRING_PATTERN_BURST_FIRE_IN_COVER = 0x026321F1 ( 40051185 ) @@ -12571,7 +12558,7 @@ public unsafe interface INatives /// FIRING_PATTERN_BURST_FIRE_SMG = 0xD10DADEE ( 1863348768 ) /// See NativeDB for reference: http://natives.altv.mp/#/0x9AC577F5A12AD8A9 /// - void SetPedFiringPattern(int ped, uint patternHash); + void SetPedFiringPattern(uint ped, uint patternHash); /// /// /// 0-1000 @@ -12579,7 +12566,7 @@ public unsafe interface INatives /// /// /// 0-1000 - void SetPedShootRate(int ped, int shootRate); + void SetPedShootRate(uint ped, int shootRate); /// /// /// can be between 0-14. See GET_COMBAT_FLOAT below for a list of possible parameters. @@ -12587,7 +12574,7 @@ public unsafe interface INatives /// /// /// can be between 0-14. See GET_COMBAT_FLOAT below for a list of possible parameters. - void SetCombatFloat(int ped, int combatType, float p2); + void SetCombatFloat(uint ped, int combatType, float p2); /// /// p1 probably refers to the attributes configured in combatbehavior.meta. There are 13. Example: /// @@ -12617,7 +12604,7 @@ public unsafe interface INatives /// /// Ped Handle /// int i | 0 <= i <= 27 - float GetCombatFloat(int ped, int p1); + float GetCombatFloat(uint ped, int p1); /// /// /// may be a BOOL representing whether or not the group even exists @@ -12630,11 +12617,11 @@ public unsafe interface INatives /// /// Returns the group id of which the specified ped is a member of. /// - int GetPedGroupIndex(int ped); + int GetPedGroupIndex(uint ped); bool IsPedInGroup(IPlayer ped); - bool IsPedInGroup(int ped); - int GetPlayerPedIsFollowing(IPlayer ped); - int GetPlayerPedIsFollowing(int ped); + bool IsPedInGroup(uint ped); + uint GetPlayerPedIsFollowing(IPlayer ped); + uint GetPlayerPedIsFollowing(uint ped); /// /// 0: Default /// 1: Circle Around Leader @@ -12647,13 +12634,13 @@ public unsafe interface INatives /// /// Gets ID of vehicle player using. It means it can get ID at any interaction with vehicle. Enter\exit for example. And that means it is faster than GET_VEHICLE_PED_IS_IN but less safe. /// - int GetVehiclePedIsUsing(IPlayer ped); + uint GetVehiclePedIsUsing(IPlayer ped); /// /// Gets ID of vehicle player using. It means it can get ID at any interaction with vehicle. Enter\exit for example. And that means it is faster than GET_VEHICLE_PED_IS_IN but less safe. /// - int GetVehiclePedIsUsing(int ped); - int GetVehiclePedIsEntering(IPlayer ped); - int GetVehiclePedIsEntering(int ped); + uint GetVehiclePedIsUsing(uint ped); + uint GetVehiclePedIsEntering(IPlayer ped); + uint GetVehiclePedIsEntering(uint ped); /// /// enable or disable the gravity of a ped /// Examples: @@ -12667,7 +12654,7 @@ public unsafe interface INatives /// PED::SET_PED_GRAVITY(Local_289[iVar0 20], 0x00000001); /// /// :SET_PED_GRAVITY(PLAYER::PLAYER_PED_ID(), 0x00000001); - void SetPedGravity(int ped, bool toggle); + void SetPedGravity(uint ped, bool toggle); /// /// damages a ped with the given amount /// @@ -12675,13 +12662,13 @@ public unsafe interface INatives /// /// damages a ped with the given amount /// - void ApplyDamageToPed(int ped, int damageAmount, bool p2, int p3); + void ApplyDamageToPed(uint ped, int damageAmount, bool p2, int p3); int GetTimePedDamagedByWeapon(IPlayer ped, uint weaponHash); - int GetTimePedDamagedByWeapon(int ped, uint weaponHash); + int GetTimePedDamagedByWeapon(uint ped, uint weaponHash); void SetPedAllowedToDuck(IPlayer ped, bool toggle); - void SetPedAllowedToDuck(int ped, bool toggle); + void SetPedAllowedToDuck(uint ped, bool toggle); void SetPedNeverLeavesGroup(IPlayer ped, bool toggle); - void SetPedNeverLeavesGroup(int ped, bool toggle); + void SetPedNeverLeavesGroup(uint ped, bool toggle); /// /// https://alloc8or.re/gta5/doc/enums/ePedType.txt /// @@ -12689,7 +12676,7 @@ public unsafe interface INatives /// /// https://alloc8or.re/gta5/doc/enums/ePedType.txt /// - int GetPedType(int ped); + int GetPedType(uint ped); /// /// /// vision @@ -12697,7 +12684,7 @@ public unsafe interface INatives /// /// /// vision - void SetPedAsCop(int ped, bool toggle); + void SetPedAsCop(uint ped, bool toggle); void SetPedHealthPendingLastDamageEventOverrideFlag(bool toggle); /// /// Sets the maximum health of a ped. @@ -12706,23 +12693,23 @@ public unsafe interface INatives /// /// Sets the maximum health of a ped. /// - void SetPedMaxHealth(int ped, int value); + void SetPedMaxHealth(uint ped, int value); int GetPedMaxHealth(IPlayer ped); - int GetPedMaxHealth(int ped); + int GetPedMaxHealth(uint ped); void SetPedMaxTimeInWater(IPlayer ped, float value); - void SetPedMaxTimeInWater(int ped, float value); + void SetPedMaxTimeInWater(uint ped, float value); void SetPedMaxTimeUnderwater(IPlayer ped, float value); - void SetPedMaxTimeUnderwater(int ped, float value); + void SetPedMaxTimeUnderwater(uint ped, float value); void SetCorpseRagdollFriction(IPlayer ped, float p1); - void SetCorpseRagdollFriction(int ped, float p1); + void SetCorpseRagdollFriction(uint ped, float p1); /// /// /// must be <= 2 - void SetPedVehicleForcedSeatUsage(IPlayer ped, int vehicle, int seatIndex, int flags, int p4); + void SetPedVehicleForcedSeatUsage(IPlayer ped, uint vehicle, int seatIndex, int flags, int p4); /// /// /// must be <= 2 - void SetPedVehicleForcedSeatUsage(int ped, IVehicle vehicle, int seatIndex, int flags, int p4); + void SetPedVehicleForcedSeatUsage(uint ped, IVehicle vehicle, int seatIndex, int flags, int p4); /// /// /// must be <= 2 @@ -12730,9 +12717,9 @@ public unsafe interface INatives /// /// /// must be <= 2 - void SetPedVehicleForcedSeatUsage(int ped, int vehicle, int seatIndex, int flags, int p4); + void SetPedVehicleForcedSeatUsage(uint ped, uint vehicle, int seatIndex, int flags, int p4); void ClearAllPedVehicleForcedSeatUsage(IPlayer ped); - void ClearAllPedVehicleForcedSeatUsage(int ped); + void ClearAllPedVehicleForcedSeatUsage(uint ped); /// /// This native does absolutely nothing, just a nullsub /// @@ -12744,13 +12731,13 @@ public unsafe interface INatives /// /// /// https://alloc8or.re/gta5/doc/enums/eKnockOffVehicle.txt - void SetPedCanBeKnockedOffVehicle(int ped, int state); + void SetPedCanBeKnockedOffVehicle(uint ped, int state); bool CanKnockPedOffVehicle(IPlayer ped); - bool CanKnockPedOffVehicle(int ped); + bool CanKnockPedOffVehicle(uint ped); void KnockPedOffVehicle(IPlayer ped); - void KnockPedOffVehicle(int ped); + void KnockPedOffVehicle(uint ped); void SetPedCoordsNoGang(IPlayer ped, float posX, float posY, float posZ); - void SetPedCoordsNoGang(int ped, float posX, float posY, float posZ); + void SetPedCoordsNoGang(uint ped, float posX, float posY, float posZ); /// /// from fm_mission_controller.c4 (variable names changed for clarity): /// int groupID = PLAYER::GET_PLAYER_GROUP(PLAYER::PLAYER_ID()); @@ -12760,16 +12747,16 @@ public unsafe interface INatives /// . . . . . . . . //and so on /// /// PED::GET_PED_AS_GROUP_MEMBER(groupID, memberNumber); - int GetPedAsGroupMember(int groupID, int memberNumber); - int GetPedAsGroupLeader(int groupID); + uint GetPedAsGroupMember(int groupID, int memberNumber); + uint GetPedAsGroupLeader(int groupID); void SetPedKeepTask(IPlayer ped, bool toggle); - void SetPedKeepTask(int ped, bool toggle); + void SetPedKeepTask(uint ped, bool toggle); void SetPedAllowMinorReactionsAsMissionPed(IPlayer ped, bool toggle); - void SetPedAllowMinorReactionsAsMissionPed(int ped, bool toggle); + void SetPedAllowMinorReactionsAsMissionPed(uint ped, bool toggle); bool IsPedSwimming(IPlayer ped); - bool IsPedSwimming(int ped); + bool IsPedSwimming(uint ped); bool IsPedSwimmingUnderWater(IPlayer ped); - bool IsPedSwimmingUnderWater(int ped); + bool IsPedSwimmingUnderWater(uint ped); /// /// teleports ped to coords along with the vehicle ped is in /// @@ -12777,23 +12764,23 @@ public unsafe interface INatives /// /// teleports ped to coords along with the vehicle ped is in /// - void SetPedCoordsKeepVehicle(int ped, float posX, float posY, float posZ); + void SetPedCoordsKeepVehicle(uint ped, float posX, float posY, float posZ); void SetPedDiesInVehicle(IPlayer ped, bool toggle); - void SetPedDiesInVehicle(int ped, bool toggle); + void SetPedDiesInVehicle(uint ped, bool toggle); void SetCreateRandomCops(bool toggle); void SetCreateRandomCopsNotOnScenarios(bool toggle); void SetCreateRandomCopsOnScenarios(bool toggle); bool CanCreateRandomCops(); void SetPedAsEnemy(IPlayer ped, bool toggle); - void SetPedAsEnemy(int ped, bool toggle); + void SetPedAsEnemy(uint ped, bool toggle); void SetPedCanSmashGlass(IPlayer ped, bool p1, bool p2); - void SetPedCanSmashGlass(int ped, bool p1, bool p2); + void SetPedCanSmashGlass(uint ped, bool p1, bool p2); bool IsPedInAnyTrain(IPlayer ped); - bool IsPedInAnyTrain(int ped); + bool IsPedInAnyTrain(uint ped); bool IsPedGettingIntoAVehicle(IPlayer ped); - bool IsPedGettingIntoAVehicle(int ped); + bool IsPedGettingIntoAVehicle(uint ped); bool IsPedTryingToEnterALockedVehicle(IPlayer ped); - bool IsPedTryingToEnterALockedVehicle(int ped); + bool IsPedTryingToEnterALockedVehicle(uint ped); /// /// /// can not pull out a weapon when true @@ -12801,7 +12788,7 @@ public unsafe interface INatives /// /// /// can not pull out a weapon when true - void SetEnableHandcuffs(int ped, bool toggle); + void SetEnableHandcuffs(uint ped, bool toggle); /// /// Used with SET_ENABLE_HANDCUFFS in decompiled scripts. From my observations, I have noticed that while being ragdolled you are not able to get up but you can still run. Your legs can also bend. /// @@ -12809,7 +12796,7 @@ public unsafe interface INatives /// /// Used with SET_ENABLE_HANDCUFFS in decompiled scripts. From my observations, I have noticed that while being ragdolled you are not able to get up but you can still run. Your legs can also bend. /// - void SetEnableBoundAnkles(int ped, bool toggle); + void SetEnableBoundAnkles(uint ped, bool toggle); /// /// Enables diving motion when underwater. /// @@ -12817,7 +12804,7 @@ public unsafe interface INatives /// /// Enables diving motion when underwater. /// - void SetEnableScuba(int ped, bool toggle); + void SetEnableScuba(uint ped, bool toggle); /// /// Setting ped to true allows the ped to shoot "friendlies". /// p1 = true & p2 = false for able to aim at. @@ -12831,7 +12818,7 @@ public unsafe interface INatives /// /// = false & p2 = false for unable to aim at. /// set to true when toggle is also true seams to make peds permanently unable to aim at, even if you set p2 back to false. - void SetCanAttackFriendly(int ped, bool toggle, bool p2); + void SetCanAttackFriendly(uint ped, bool toggle, bool p2); /// /// Returns the ped's alertness (0-3). /// Values : @@ -12851,7 +12838,7 @@ public unsafe interface INatives /// 3 : Fully alerted (is facing the event?) /// /// If the Ped does not exist, returns -1. - int GetPedAlertness(int ped); + int GetPedAlertness(uint ped); /// /// /// ranges from 0 to 3. @@ -12859,9 +12846,9 @@ public unsafe interface INatives /// /// /// ranges from 0 to 3. - void SetPedAlertness(int ped, int value); + void SetPedAlertness(uint ped, int value); void SetPedGetOutUpsideDownVehicle(IPlayer ped, bool toggle); - void SetPedGetOutUpsideDownVehicle(int ped, bool toggle); + void SetPedGetOutUpsideDownVehicle(uint ped, bool toggle); /// /// List of movement clipsets: /// Thanks to elsewhat for list. @@ -12889,7 +12876,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xAF8A94EDE7712BEF /// /// is the time in seconds it takes to transition from one movement clipset to another. ransitionSpeed is usually 1.0f - void SetPedMovementClipset(int ped, string clipSet, float transitionSpeed); + void SetPedMovementClipset(uint ped, string clipSet, float transitionSpeed); /// /// If p1 is 0.0, I believe you are back to normal. /// If p1 is 1.0, it looks like you can only rotate the ped, not walk. @@ -12903,7 +12890,7 @@ public unsafe interface INatives /// Using the following code to reset back to normal /// /// :RESET_PED_MOVEMENT_CLIPSET(PLAYER::PLAYER_PED_ID(), 0.0); - void ResetPedMovementClipset(int ped, float p1); + void ResetPedMovementClipset(uint ped, float p1); /// /// Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json /// @@ -12911,17 +12898,17 @@ public unsafe interface INatives /// /// Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json /// - void SetPedStrafeClipset(int ped, string clipSet); + void SetPedStrafeClipset(uint ped, string clipSet); void ResetPedStrafeClipset(IPlayer ped); - void ResetPedStrafeClipset(int ped); + void ResetPedStrafeClipset(uint ped); void SetPedWeaponMovementClipset(IPlayer ped, string clipSet); - void SetPedWeaponMovementClipset(int ped, string clipSet); + void SetPedWeaponMovementClipset(uint ped, string clipSet); void ResetPedWeaponMovementClipset(IPlayer ped); - void ResetPedWeaponMovementClipset(int ped); + void ResetPedWeaponMovementClipset(uint ped); void SetPedDriveByClipsetOverride(IPlayer ped, string clipset); - void SetPedDriveByClipsetOverride(int ped, string clipset); + void SetPedDriveByClipsetOverride(uint ped, string clipset); void ClearPedDriveByClipsetOverride(IPlayer ped); - void ClearPedDriveByClipsetOverride(int ped); + void ClearPedDriveByClipsetOverride(uint ped); /// /// Found in the b617d scripts: /// @@ -12931,11 +12918,11 @@ public unsafe interface INatives /// Found in the b617d scripts: /// /// :SET_PED_MOTION_IN_COVER_CLIPSET_OVERRIDE(v_7, "trevor_heist_cover_2h"); - void SetPedMotionInCoverClipsetOverride(int ped, string p1); + void SetPedMotionInCoverClipsetOverride(uint ped, string p1); void ClearPedMotionInCoverClipsetOverride(IPlayer ped); - void ClearPedMotionInCoverClipsetOverride(int ped); + void ClearPedMotionInCoverClipsetOverride(uint ped); void ClearPedFallUpperBodyClipsetOverride(IPlayer ped); - void ClearPedFallUpperBodyClipsetOverride(int ped); + void ClearPedFallUpperBodyClipsetOverride(uint ped); /// /// PED::SET_PED_IN_VEHICLE_CONTEXT(l_128, MISC::GET_HASH_KEY("MINI_PROSTITUTE_LOW_RESTRICTED_PASSENGER")); /// PED::SET_PED_IN_VEHICLE_CONTEXT(l_3212, MISC::GET_HASH_KEY("MISS_FAMILY1_JIMMY_SIT")); @@ -12957,9 +12944,9 @@ public unsafe interface INatives /// PED::SET_PED_IN_VEHICLE_CONTEXT(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("MISSFBI5_TREVOR_DRIVING")); /// /// :SET_PED_IN_VEHICLE_CONTEXT(l_128, MISC::GET_HASH_KEY("MINI_PROSTITUTE_LOW_PASSENGER")); - void SetPedInVehicleContext(int ped, uint context); + void SetPedInVehicleContext(uint ped, uint context); void ResetPedInVehicleContext(IPlayer ped); - void ResetPedInVehicleContext(int ped); + void ResetPedInVehicleContext(uint ped); /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// @@ -12967,7 +12954,7 @@ public unsafe interface INatives /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// - bool IsScriptedScenarioPedUsingConditionalAnim(int ped, string animDict, string anim); + bool IsScriptedScenarioPedUsingConditionalAnim(uint ped, string animDict, string anim); /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json @@ -12977,9 +12964,9 @@ public unsafe interface INatives /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json /// - void SetPedAlternateWalkAnim(int ped, string animDict, string animName, float p3, bool p4); + void SetPedAlternateWalkAnim(uint ped, string animDict, string animName, float p3, bool p4); void ClearPedAlternateWalkAnim(IPlayer ped, float p1); - void ClearPedAlternateWalkAnim(int ped, float p1); + void ClearPedAlternateWalkAnim(uint ped, float p1); /// /// 0 = idle /// 1 = walk @@ -12997,9 +12984,9 @@ public unsafe interface INatives /// Full list of movement clipsets by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/movementClipsetsCompact.json /// /// = usually set to true - void SetPedAlternateMovementAnim(int ped, int stance, string animDictionary, string animationName, float p4, bool p5); + void SetPedAlternateMovementAnim(uint ped, int stance, string animDictionary, string animationName, float p4, bool p5); void ClearPedAlternateMovementAnim(IPlayer ped, int stance, float p2); - void ClearPedAlternateMovementAnim(int ped, int stance, float p2); + void ClearPedAlternateMovementAnim(uint ped, int stance, float p2); /// /// From the scripts: /// "ANIM_GROUP_GESTURE_MISS_FRA0"); @@ -13015,7 +13002,7 @@ public unsafe interface INatives /// "ANIM_GROUP_GESTURE_MISS_DocksSetup1"); /// /// :SET_PED_GESTURE_GROUP(PLAYER::PLAYER_PED_ID(), - void SetPedGestureGroup(int ped, string animGroupGesture); + void SetPedGestureGroup(uint ped, string animGroupGesture); /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// @@ -13049,7 +13036,7 @@ public unsafe interface INatives /// 7 - ------ /// See NativeDB for reference: http://natives.altv.mp/#/0x67F3780DD425D4FC /// - int GetPedDrawableVariation(int ped, int componentId); + int GetPedDrawableVariation(uint ped, int componentId); /// /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html @@ -13059,7 +13046,7 @@ public unsafe interface INatives /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html /// - int GetNumberOfPedDrawableVariations(int ped, int componentId); + int GetNumberOfPedDrawableVariations(uint ped, int componentId); /// /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html @@ -13069,7 +13056,7 @@ public unsafe interface INatives /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html /// - int GetPedTextureVariation(int ped, int componentId); + int GetPedTextureVariation(uint ped, int componentId); /// /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html @@ -13079,7 +13066,7 @@ public unsafe interface INatives /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html /// - int GetNumberOfPedTextureVariations(int ped, int componentId, int drawableId); + int GetNumberOfPedTextureVariations(uint ped, int componentId, int drawableId); /// /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html @@ -13089,7 +13076,7 @@ public unsafe interface INatives /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html /// - int GetNumberOfPedPropDrawableVariations(int ped, int propId); + int GetNumberOfPedPropDrawableVariations(uint ped, int propId); /// /// Need to check behavior when drawableId = -1 /// - Doofy.Ass @@ -13109,7 +13096,7 @@ public unsafe interface INatives /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html /// /// Why this function doesn't work and return nill value? - int GetNumberOfPedPropTextureVariations(int ped, int propId, int drawableId); + int GetNumberOfPedPropTextureVariations(uint ped, int propId, int drawableId); /// /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html @@ -13119,7 +13106,7 @@ public unsafe interface INatives /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html /// - int GetPedPaletteVariation(int ped, int componentId); + int GetPedPaletteVariation(uint ped, int componentId); /// /// bool GetMpOutfitDataFromMetadata(ref int p0, ref int p1); @@ -13138,7 +13125,7 @@ public unsafe interface INatives /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html /// Full list of ped components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedComponentVariations.json /// - bool IsPedComponentVariationValid(int ped, int componentId, int drawableId, int textureId); + bool IsPedComponentVariationValid(uint ped, int componentId, int drawableId, int textureId); /// /// enum ePedVarComp /// { @@ -13166,7 +13153,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x262B14F48D29DE80 /// /// 0 to 3. - void SetPedComponentVariation(int ped, int componentId, int drawableId, int textureId, int paletteId); + void SetPedComponentVariation(uint ped, int componentId, int drawableId, int textureId, int paletteId); /// /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html @@ -13178,7 +13165,7 @@ public unsafe interface INatives /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html /// /// is always 0 in R* scripts. - void SetPedRandomComponentVariation(int ped, int p1); + void SetPedRandomComponentVariation(uint ped, int p1); /// /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html @@ -13188,7 +13175,7 @@ public unsafe interface INatives /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html /// - void SetPedRandomProps(int ped); + void SetPedRandomProps(uint ped); /// /// Sets Ped Default Clothes /// @@ -13196,9 +13183,9 @@ public unsafe interface INatives /// /// Sets Ped Default Clothes /// - void SetPedDefaultComponentVariation(int ped); + void SetPedDefaultComponentVariation(uint ped); void SetPedBlendFromParents(IPlayer ped, int p1, int p2, float p3, float p4); - void SetPedBlendFromParents(int ped, int p1, int p2, float p3, float p4); + void SetPedBlendFromParents(uint ped, int p1, int p2, float p3, float p4); /// /// The "shape" parameters control the shape of the ped's face. The "skin" parameters control the skin tone. ShapeMix and skinMix control how much the first and second IDs contribute,(typically mother and father.) ThirdMix overrides the others in favor of the third IDs. IsParent is set for "children" of the player character's grandparents during old-gen character creation. It has unknown effect otherwise. /// The IDs start at zero and go Male Non-DLC, Female Non-DLC, Male DLC, and Female DLC. @@ -13224,7 +13211,7 @@ public unsafe interface INatives /// For more info please refer to this topic. /// gtaforums.com/topic/858970-all-gtao-face-ids-pedset-ped-head-blend-data-explained /// - void SetPedHeadBlendData(int ped, int shapeFirstID, int shapeSecondID, int shapeThirdID, int skinFirstID, int skinSecondID, int skinThirdID, float shapeMix, float skinMix, float thirdMix, bool isParent); + void SetPedHeadBlendData(uint ped, int shapeFirstID, int shapeSecondID, int shapeThirdID, int skinFirstID, int skinSecondID, int skinThirdID, float shapeMix, float skinMix, float thirdMix, bool isParent); /// /// The pointer is to a padded struct that matches the arguments to SET_PED_HEAD_BLEND_DATA(...). There are 4 bytes of padding after each field. /// pass this struct in the second parameter @@ -13250,7 +13237,7 @@ public unsafe interface INatives /// int shapeThird; /// See NativeDB for reference: http://natives.altv.mp/#/0x2746BD9D88C5C5D0 /// - bool GetPedHeadBlendData(int ped, ref int headBlendData); + bool GetPedHeadBlendData(uint ped, ref int headBlendData); /// /// See SET_PED_HEAD_BLEND_DATA(). /// @@ -13258,7 +13245,7 @@ public unsafe interface INatives /// /// See SET_PED_HEAD_BLEND_DATA(). /// - void UpdatePedHeadBlendData(int ped, float shapeMix, float skinMix, float thirdMix); + void UpdatePedHeadBlendData(uint ped, float shapeMix, float skinMix, float thirdMix); /// /// Used for freemode (online) characters. /// For some reason, the scripts use a rounded float for the index. @@ -13284,7 +13271,7 @@ public unsafe interface INatives /// 6. light brown /// See NativeDB for reference: http://natives.altv.mp/#/0x50B56988B170AFDF /// - void SetHeadBlendEyeColor(int ped, int index); + void SetHeadBlendEyeColor(uint ped, int index); /// /// /// A getter for _SET_PED_EYE_COLOR. Returns -1 if fails to get. @@ -13292,7 +13279,7 @@ public unsafe interface INatives /// /// /// A getter for _SET_PED_EYE_COLOR. Returns -1 if fails to get. - int GetHeadBlendEyeColor(int ped); + int GetHeadBlendEyeColor(uint ped); /// /// overlayID Part Index, to disable /// 0 Blemishes 0 - 23, 255 @@ -13320,7 +13307,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x48F44967FA05CC1E /// /// ranges from 0 to 12, index from 0 to _GET_NUM_OVERLAY_VALUES(overlayID)-1, and opacity from 0.0 to 1.0. - void SetPedHeadOverlay(int ped, int overlayID, int index, float opacity); + void SetPedHeadOverlay(uint ped, int overlayID, int index, float opacity); /// /// This might be the once removed native GET_PED_HEAD_OVERLAY. /// @@ -13330,7 +13317,7 @@ public unsafe interface INatives /// This might be the once removed native GET_PED_HEAD_OVERLAY. /// /// Likely a char, if that overlay is not set, e.i. "None" option, returns 255; - int GetPedHeadOverlay(int ped, int overlayID); + int GetPedHeadOverlay(uint ped, int overlayID); int GetPedHeadOverlayNum(int overlayID); /// /// Called after SET_PED_HEAD_OVERLAY(). @@ -13341,9 +13328,9 @@ public unsafe interface INatives /// Called after SET_PED_HEAD_OVERLAY(). /// /// is 1 for eyebrows, beards, and chest hair; 2 for blush and lipstick; and 0 otherwise, though not called in those cases. - void SetPedHeadOverlayTint(int ped, int overlayID, int colorType, int colorID, int secondColorID); + void SetPedHeadOverlayTint(uint ped, int overlayID, int colorType, int colorID, int secondColorID); void SetPedHairTint(IPlayer ped, int colorID, int highlightColorID); - void SetPedHairTint(int ped, int colorID, int highlightColorID); + void SetPedHairTint(uint ped, int colorID, int highlightColorID); int GetNumPedHairTints(); int GetNumPedMakeupTints(); /// @@ -13395,11 +13382,11 @@ public unsafe interface INatives /// 7 - Eyebrow (In/Out) /// See NativeDB for reference: http://natives.altv.mp/#/0x71A5C1DBA060049E /// - void SetPedMicroMorph(int ped, int index, float scale); + void SetPedMicroMorph(uint ped, int index, float scale); bool HasPedHeadBlendFinished(IPlayer ped); - bool HasPedHeadBlendFinished(int ped); + bool HasPedHeadBlendFinished(uint ped); void FinalizeHeadBlend(IPlayer ped); - void FinalizeHeadBlend(int ped); + void FinalizeHeadBlend(uint ped); /// /// Preview: https://gfycat.com/MaleRareAmazonparrot /// @@ -13409,9 +13396,9 @@ public unsafe interface INatives /// Preview: https://gfycat.com/MaleRareAmazonparrot /// /// seems to vary from 0 to 3. - void SetHeadBlendPaletteColor(int ped, int r, int g, int b, int id); + void SetHeadBlendPaletteColor(uint ped, int r, int g, int b, int id); void DisableHeadBlendPaletteColor(IPlayer ped); - void DisableHeadBlendPaletteColor(int ped); + void DisableHeadBlendPaletteColor(uint ped); /// /// Used when calling SET_PED_HEAD_BLEND_DATA. /// @@ -13432,11 +13419,11 @@ public unsafe interface INatives /// /// :SET_PED_PRELOAD_VARIATION_DATA(PLAYER::PLAYER_PED_ID(), 8, PED::GET_PED_DRAWABLE_VARIATION(PLAYER::PLAYER_PED_ID(), 8), PED::GET_PED_TEXTURE_VARIATION(PLAYER::PLAYER_PED_ID(), 8)); /// is probably componentId - int SetPedPreloadVariationData(int ped, int slot, int drawableId, int textureId); + int SetPedPreloadVariationData(uint ped, int slot, int drawableId, int textureId); bool HasPedPreloadVariationDataFinished(IPlayer ped); - bool HasPedPreloadVariationDataFinished(int ped); + bool HasPedPreloadVariationDataFinished(uint ped); void ReleasePedPreloadVariationData(IPlayer ped); - void ReleasePedPreloadVariationData(int ped); + void ReleasePedPreloadVariationData(uint ped); /// /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html @@ -13446,21 +13433,21 @@ public unsafe interface INatives /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html /// - int SetPedPreloadPropData(int ped, int componentId, int drawableId, int TextureId); + int SetPedPreloadPropData(uint ped, int componentId, int drawableId, int TextureId); bool HasPedPreloadPropDataFinished(IPlayer ped); - bool HasPedPreloadPropDataFinished(int ped); + bool HasPedPreloadPropDataFinished(uint ped); void ReleasePedPreloadPropData(IPlayer ped); - void ReleasePedPreloadPropData(int ped); + void ReleasePedPreloadPropData(uint ped); /// /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html /// - int GetPedPropIndex(IPlayer ped, int componentId); + int GetPedPropIndex(IPlayer ped, int componentId, int p2); /// /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html /// - int GetPedPropIndex(int ped, int componentId); + int GetPedPropIndex(uint ped, int componentId, int p2); /// /// enum PedPropsData /// { @@ -13474,7 +13461,7 @@ public unsafe interface INatives /// /// SET_PED_PROP_INDEX(playerPed, PED_PROP_HATS, GET_NUMBER_OF_PED_PROP_DRAWABLE_VARIATIONS(playerPed, PED_PROP_HATS), GET_NUMBER_OF_PED_PROP_TEXTURE_VARIATIONS(playerPed, PED_PROP_HATS, 0), TRUE); /// can be set to various things based on what category you're wanting to set - void SetPedPropIndex(IPlayer ped, int componentId, int drawableId, int TextureId, bool attach); + void SetPedPropIndex(IPlayer ped, int componentId, int drawableId, int TextureId, bool attach, int p5); /// /// enum PedPropsData /// { @@ -13488,7 +13475,7 @@ public unsafe interface INatives /// /// SET_PED_PROP_INDEX(playerPed, PED_PROP_HATS, GET_NUMBER_OF_PED_PROP_DRAWABLE_VARIATIONS(playerPed, PED_PROP_HATS), GET_NUMBER_OF_PED_PROP_TEXTURE_VARIATIONS(playerPed, PED_PROP_HATS, 0), TRUE); /// can be set to various things based on what category you're wanting to set - void SetPedPropIndex(int ped, int componentId, int drawableId, int TextureId, bool attach); + void SetPedPropIndex(uint ped, int componentId, int drawableId, int TextureId, bool attach, int p5); /// /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html @@ -13498,29 +13485,29 @@ public unsafe interface INatives /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html /// - void KnockOffPedProp(int ped, bool p1, bool p2, bool p3, bool p4); + void KnockOffPedProp(uint ped, bool p1, bool p2, bool p3, bool p4); /// /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html /// - void ClearPedProp(IPlayer ped, int propId); + void ClearPedProp(IPlayer ped, int propId, int p2); /// /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html /// - void ClearPedProp(int ped, int propId); + void ClearPedProp(uint ped, int propId, int p2); /// /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html /// - void ClearAllPedProps(IPlayer ped); + void ClearAllPedProps(IPlayer ped, int p1); /// /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html /// - void ClearAllPedProps(int ped); + void ClearAllPedProps(uint ped, int p1); void DropAmbientProp(IPlayer ped); - void DropAmbientProp(int ped); + void DropAmbientProp(uint ped); /// /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html @@ -13530,9 +13517,9 @@ public unsafe interface INatives /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html /// - int GetPedPropTextureIndex(int ped, int componentId); + int GetPedPropTextureIndex(uint ped, int componentId); void ClearPedParachutePackVariation(IPlayer ped); - void ClearPedParachutePackVariation(int ped); + void ClearPedParachutePackVariation(uint ped); /// /// This native sets a scuba mask for freemode models and an oxygen bottle for player_* models. It works on freemode and player_* models. /// @@ -13540,7 +13527,7 @@ public unsafe interface INatives /// /// This native sets a scuba mask for freemode models and an oxygen bottle for player_* models. It works on freemode and player_* models. /// - void SetPedScubaGearVariation(int ped); + void SetPedScubaGearVariation(uint ped); /// /// Removes the scubagear (for mp male: component id: 8, drawableId: 123, textureId: any) from peds. Does not play the 'remove scuba gear' animation, but instantly removes it. /// @@ -13548,7 +13535,7 @@ public unsafe interface INatives /// /// Removes the scubagear (for mp male: component id: 8, drawableId: 123, textureId: any) from peds. Does not play the 'remove scuba gear' animation, but instantly removes it. /// - void ClearPedScubaGearVariation(int ped); + void ClearPedScubaGearVariation(uint ped); bool IsUsingPedScubaGearVariation(int p0); /// /// works with TASK::TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS to make a ped completely oblivious to all events going on around him @@ -13557,19 +13544,19 @@ public unsafe interface INatives /// /// works with TASK::TASK_SET_BLOCKING_OF_NON_TEMPORARY_EVENTS to make a ped completely oblivious to all events going on around him /// - void SetBlockingOfNonTemporaryEvents(int ped, bool toggle); + void SetBlockingOfNonTemporaryEvents(uint ped, bool toggle); void SetPedBoundsOrientation(IPlayer ped, float p1, float p2, float x, float y, float z); - void SetPedBoundsOrientation(int ped, float p1, float p2, float x, float y, float z); + void SetPedBoundsOrientation(uint ped, float p1, float p2, float x, float y, float z); /// /// l_216 = RECSBRobber1 /// /// :REGISTER_TARGET(l_216, PLAYER::PLAYER_PED_ID()); from re_prisonbreak.txt. - void RegisterTarget(IPlayer ped, int target); + void RegisterTarget(IPlayer ped, uint target); /// /// l_216 = RECSBRobber1 /// /// :REGISTER_TARGET(l_216, PLAYER::PLAYER_PED_ID()); from re_prisonbreak.txt. - void RegisterTarget(int ped, IPlayer target); + void RegisterTarget(uint ped, IPlayer target); /// /// l_216 = RECSBRobber1 /// @@ -13579,7 +13566,7 @@ public unsafe interface INatives /// l_216 = RECSBRobber1 /// /// :REGISTER_TARGET(l_216, PLAYER::PLAYER_PED_ID()); from re_prisonbreak.txt. - void RegisterTarget(int ped, int target); + void RegisterTarget(uint ped, uint target); /// /// Based on TASK_COMBAT_HATED_TARGETS_AROUND_PED, the parameters are likely similar (PedHandle, and area to attack in). /// @@ -13587,7 +13574,7 @@ public unsafe interface INatives /// /// Based on TASK_COMBAT_HATED_TARGETS_AROUND_PED, the parameters are likely similar (PedHandle, and area to attack in). /// - void RegisterHatedTargetsAroundPed(int ped, float radius); + void RegisterHatedTargetsAroundPed(uint ped, float radius); /// /// Gets a random ped in the x/y/zRadius near the x/y/z coordinates passed. /// Ped Types: @@ -13600,7 +13587,7 @@ public unsafe interface INatives /// SWAT = 27 /// See NativeDB for reference: http://natives.altv.mp/#/0x876046A8E3A4B71C /// - int GetRandomPedAtCoord(float x, float y, float z, float xRadius, float yRadius, float zRadius, int pedType); + uint GetRandomPedAtCoord(float x, float y, float z, float xRadius, float yRadius, float zRadius, int pedType); /// /// Gets the closest ped in a radius. /// Ped Types: @@ -13616,13 +13603,13 @@ public unsafe interface INatives /// 1 1 x = return Ped you are using /// P5 P7 P8 /// 1 0 x x = return nearest walking Ped - bool GetClosestPed(float x, float y, float z, float radius, bool p4, bool p5, ref int outPed, bool p7, bool p8, int pedType); + bool GetClosestPed(float x, float y, float z, float radius, bool p4, bool p5, ref uint outPed, bool p7, bool p8, int pedType); /// /// /// Sets a value indicating whether scenario peds should be returned by the next call to a command that returns peds. Eg. GET_CLOSEST_PED. void SetScenarioPedsToBeReturnedByNextCommand(bool value); bool GetCanPedBeGrabbedByScript(IPlayer ped, bool p1, bool p2, bool p3, bool p4, bool p5, bool p6, bool p7, int p8); - bool GetCanPedBeGrabbedByScript(int ped, bool p1, bool p2, bool p3, bool p4, bool p5, bool p6, bool p7, int p8); + bool GetCanPedBeGrabbedByScript(uint ped, bool p1, bool p2, bool p3, bool p4, bool p5, bool p6, bool p7, int p8); /// /// Scripts use 0.2, 0.5 and 1.0. Value must be >= 0.0 && <= 1.0 /// @@ -13630,7 +13617,7 @@ public unsafe interface INatives /// /// Scripts use 0.2, 0.5 and 1.0. Value must be >= 0.0 && <= 1.0 /// - void SetDriverRacingModifier(int driver, float modifier); + void SetDriverRacingModifier(uint driver, float modifier); /// /// The function specifically verifies the value is equal to, or less than 1.0f. If it is greater than 1.0f, the function does nothing at all. /// @@ -13638,7 +13625,7 @@ public unsafe interface INatives /// /// The function specifically verifies the value is equal to, or less than 1.0f. If it is greater than 1.0f, the function does nothing at all. /// - void SetDriverAbility(int driver, float ability); + void SetDriverAbility(uint driver, float ability); /// /// range 0.0f - 1.0f /// @@ -13646,7 +13633,7 @@ public unsafe interface INatives /// /// range 0.0f - 1.0f /// - void SetDriverAggressiveness(int driver, float aggressiveness); + void SetDriverAggressiveness(uint driver, float aggressiveness); /// /// Prevents the ped from going limp. /// [Example: Can prevent peds from falling when standing on moving vehicles.] @@ -13656,7 +13643,7 @@ public unsafe interface INatives /// Prevents the ped from going limp. /// [Example: Can prevent peds from falling when standing on moving vehicles.] /// - bool CanPedRagdoll(int ped); + bool CanPedRagdoll(uint ped); /// /// Ragdoll Types: /// **0**: CTaskNMRelax @@ -13686,7 +13673,7 @@ public unsafe interface INatives /// /// Unused in TU27 /// No idea. In R*'s scripts they are usually either "true, true, false" or "false, false, false". - bool SetPedToRagdoll(int ped, int time1, int time2, int ragdollType, bool p4, bool p5, bool p6); + bool SetPedToRagdoll(uint ped, int time1, int time2, int ragdollType, bool p4, bool p5, bool p6); /// /// Return variable is never used in R*'s scripts. /// Not sure what p2 does. It seems like it would be a time judging by it's usage in R*'s scripts, but didn't seem to affect anything in my testings. @@ -13716,7 +13703,7 @@ public unsafe interface INatives /// /// :set_ped_to_ragdoll_with_fall(ped, 1500, 2000, 1, -entity::get_entity_forward_vector(ped), 1f, 0f, 0f, 0f, 0f, 0f, 0f); /// to p13 are always 0f in R*'s scripts. - bool SetPedToRagdollWithFall(int ped, int time, int p2, int ragdollType, float x, float y, float z, float velocity, float p8, float p9, float p10, float p11, float p12, float p13); + bool SetPedToRagdollWithFall(uint ped, int time, int p2, int ragdollType, float x, float y, float z, float velocity, float p8, float p9, float p10, float p11, float p12, float p13); /// /// Causes Ped to ragdoll on collision with any object (e.g Running into trashcan). If applied to player you will sometimes trip on the sidewalk. /// @@ -13724,7 +13711,7 @@ public unsafe interface INatives /// /// Causes Ped to ragdoll on collision with any object (e.g Running into trashcan). If applied to player you will sometimes trip on the sidewalk. /// - void SetPedRagdollOnCollision(int ped, bool toggle); + void SetPedRagdollOnCollision(uint ped, bool toggle); /// /// /// If the ped handle passed through the parenthesis is in a ragdoll state this will return true. @@ -13732,21 +13719,21 @@ public unsafe interface INatives /// /// /// If the ped handle passed through the parenthesis is in a ragdoll state this will return true. - bool IsPedRagdoll(int ped); + bool IsPedRagdoll(uint ped); bool IsPedRunningRagdollTask(IPlayer ped); - bool IsPedRunningRagdollTask(int ped); + bool IsPedRunningRagdollTask(uint ped); void SetPedRagdollForceFall(IPlayer ped); - void SetPedRagdollForceFall(int ped); + void SetPedRagdollForceFall(uint ped); void ResetPedRagdollTimer(IPlayer ped); - void ResetPedRagdollTimer(int ped); + void ResetPedRagdollTimer(uint ped); void SetPedCanRagdoll(IPlayer ped, bool toggle); - void SetPedCanRagdoll(int ped, bool toggle); + void SetPedCanRagdoll(uint ped, bool toggle); bool IsPedRunningMeleeTask(IPlayer ped); - bool IsPedRunningMeleeTask(int ped); + bool IsPedRunningMeleeTask(uint ped); bool IsPedRunningMobilePhoneTask(IPlayer ped); - bool IsPedRunningMobilePhoneTask(int ped); + bool IsPedRunningMobilePhoneTask(uint ped); bool IsMobilePhoneToPedEar(IPlayer ped); - bool IsMobilePhoneToPedEar(int ped); + bool IsMobilePhoneToPedEar(uint ped); /// /// Works for both player and peds, /// enum eRagdollBlockingFlags @@ -13772,7 +13759,7 @@ public unsafe interface INatives /// RBF_EXPLOSION = 5,0 /// See NativeDB for reference: http://natives.altv.mp/#/0x26695EC767728D84 /// - void SetRagdollBlockingFlags(int ped, int blockingFlag); + void SetRagdollBlockingFlags(uint ped, int blockingFlag); /// /// See SET_RAGDOLL_BLOCKING_FLAGS for flags /// @@ -13780,25 +13767,25 @@ public unsafe interface INatives /// /// See SET_RAGDOLL_BLOCKING_FLAGS for flags /// - void ClearRagdollBlockingFlags(int ped, int blockingFlag); + void ClearRagdollBlockingFlags(uint ped, int blockingFlag); void SetPedAngledDefensiveArea(IPlayer ped, float p1, float p2, float p3, float p4, float p5, float p6, float p7, bool p8, bool p9); - void SetPedAngledDefensiveArea(int ped, float p1, float p2, float p3, float p4, float p5, float p6, float p7, bool p8, bool p9); + void SetPedAngledDefensiveArea(uint ped, float p1, float p2, float p3, float p4, float p5, float p6, float p7, bool p8, bool p9); void SetPedSphereDefensiveArea(IPlayer ped, float x, float y, float z, float radius, bool p5, bool p6); - void SetPedSphereDefensiveArea(int ped, float x, float y, float z, float radius, bool p5, bool p6); - void SetPedDefensiveSphereAttachedToPed(IPlayer ped, int target, float xOffset, float yOffset, float zOffset, float radius, bool p6); - void SetPedDefensiveSphereAttachedToPed(int ped, IPlayer target, float xOffset, float yOffset, float zOffset, float radius, bool p6); + void SetPedSphereDefensiveArea(uint ped, float x, float y, float z, float radius, bool p5, bool p6); + void SetPedDefensiveSphereAttachedToPed(IPlayer ped, uint target, float xOffset, float yOffset, float zOffset, float radius, bool p6); + void SetPedDefensiveSphereAttachedToPed(uint ped, IPlayer target, float xOffset, float yOffset, float zOffset, float radius, bool p6); void SetPedDefensiveSphereAttachedToPed(IPlayer ped, IPlayer target, float xOffset, float yOffset, float zOffset, float radius, bool p6); - void SetPedDefensiveSphereAttachedToPed(int ped, int target, float xOffset, float yOffset, float zOffset, float radius, bool p6); - void SetPedDefensiveSphereAttachedToVehicle(IPlayer ped, int target, float xOffset, float yOffset, float zOffset, float radius, bool p6); - void SetPedDefensiveSphereAttachedToVehicle(int ped, IVehicle target, float xOffset, float yOffset, float zOffset, float radius, bool p6); + void SetPedDefensiveSphereAttachedToPed(uint ped, uint target, float xOffset, float yOffset, float zOffset, float radius, bool p6); + void SetPedDefensiveSphereAttachedToVehicle(IPlayer ped, uint target, float xOffset, float yOffset, float zOffset, float radius, bool p6); + void SetPedDefensiveSphereAttachedToVehicle(uint ped, IVehicle target, float xOffset, float yOffset, float zOffset, float radius, bool p6); void SetPedDefensiveSphereAttachedToVehicle(IPlayer ped, IVehicle target, float xOffset, float yOffset, float zOffset, float radius, bool p6); - void SetPedDefensiveSphereAttachedToVehicle(int ped, int target, float xOffset, float yOffset, float zOffset, float radius, bool p6); - void SetPedDefensiveAreaAttachedToPed(IPlayer ped, int attachPed, float p2, float p3, float p4, float p5, float p6, float p7, float p8, bool p9, bool p10); - void SetPedDefensiveAreaAttachedToPed(int ped, IPlayer attachPed, float p2, float p3, float p4, float p5, float p6, float p7, float p8, bool p9, bool p10); + void SetPedDefensiveSphereAttachedToVehicle(uint ped, uint target, float xOffset, float yOffset, float zOffset, float radius, bool p6); + void SetPedDefensiveAreaAttachedToPed(IPlayer ped, uint attachPed, float p2, float p3, float p4, float p5, float p6, float p7, float p8, bool p9, bool p10); + void SetPedDefensiveAreaAttachedToPed(uint ped, IPlayer attachPed, float p2, float p3, float p4, float p5, float p6, float p7, float p8, bool p9, bool p10); void SetPedDefensiveAreaAttachedToPed(IPlayer ped, IPlayer attachPed, float p2, float p3, float p4, float p5, float p6, float p7, float p8, bool p9, bool p10); - void SetPedDefensiveAreaAttachedToPed(int ped, int attachPed, float p2, float p3, float p4, float p5, float p6, float p7, float p8, bool p9, bool p10); + void SetPedDefensiveAreaAttachedToPed(uint ped, uint attachPed, float p2, float p3, float p4, float p5, float p6, float p7, float p8, bool p9, bool p10); void SetPedDefensiveAreaDirection(IPlayer ped, float p1, float p2, float p3, bool p4); - void SetPedDefensiveAreaDirection(int ped, float p1, float p2, float p3, bool p4); + void SetPedDefensiveAreaDirection(uint ped, float p1, float p2, float p3, bool p4); /// /// /// will no longer get angry when you stay near him. @@ -13806,15 +13793,15 @@ public unsafe interface INatives /// /// /// will no longer get angry when you stay near him. - void RemovePedDefensiveArea(int ped, bool toggle); + void RemovePedDefensiveArea(uint ped, bool toggle); Vector3 GetPedDefensiveAreaPosition(IPlayer ped, bool p1); - Vector3 GetPedDefensiveAreaPosition(int ped, bool p1); + Vector3 GetPedDefensiveAreaPosition(uint ped, bool p1); bool IsPedDefensiveAreaActive(IPlayer ped, bool p1); - bool IsPedDefensiveAreaActive(int ped, bool p1); + bool IsPedDefensiveAreaActive(uint ped, bool p1); void SetPedPreferredCoverSet(IPlayer ped, int itemSet); - void SetPedPreferredCoverSet(int ped, int itemSet); + void SetPedPreferredCoverSet(uint ped, int itemSet); void RemovePedPreferredCoverSet(IPlayer ped); - void RemovePedPreferredCoverSet(int ped); + void RemovePedPreferredCoverSet(uint ped); /// /// It will revive/cure the injured ped. The condition is ped must not be dead. /// Upon setting and converting the health int, found, if health falls below 5, the ped will lay on the ground in pain(Maximum default health is 100). @@ -13826,7 +13813,7 @@ public unsafe interface INatives /// Upon setting and converting the health int, found, if health falls below 5, the ped will lay on the ground in pain(Maximum default health is 100). /// This function is well suited there. /// - void ReviveInjuredPed(int ped); + void ReviveInjuredPed(uint ped); /// /// This function will simply bring the dead person back to life. /// Try not to use it alone, since using this function alone, will make peds fall through ground in hell(well for the most of the times). @@ -13840,7 +13827,7 @@ public unsafe interface INatives /// Instead, before calling this function, you may want to declare the position, where your Resurrected ped to be spawn at.(For instance, Around 2 floats of Player's current position.) /// Also, disabling any assigned task immediately helped in the number of scenarios, where If you want peds to perform certain decided tasks. /// - void ResurrectPed(int ped); + void ResurrectPed(uint ped); /// /// NOTE: Debugging functions are not present in the retail version of the game. /// *untested but char *name could also be a hash for a localized string @@ -13850,7 +13837,7 @@ public unsafe interface INatives /// NOTE: Debugging functions are not present in the retail version of the game. /// *untested but char *name could also be a hash for a localized string /// - void SetPedNameDebug(int ped, string name); + void SetPedNameDebug(uint ped, string name); /// /// Gets the offset the specified ped has moved since the previous tick. /// If worldSpace is true, the returned offset is relative to the world. That is, if the ped has moved 1 meter on the X axis and 5 meters on the Y axis, it'll return 1,5,0. @@ -13862,11 +13849,11 @@ public unsafe interface INatives /// If worldSpace is true, the returned offset is relative to the world. That is, if the ped has moved 1 meter on the X axis and 5 meters on the Y axis, it'll return 1,5,0. /// /// If worldSpace is false, the returned offset is relative to the ped. That is, if the ped has moved 1 meter right and 5 meters forward, it'll return 1,5,0. - Vector3 GetPedExtractedDisplacement(int ped, bool worldSpace); + Vector3 GetPedExtractedDisplacement(uint ped, bool worldSpace); void SetPedDiesWhenInjured(IPlayer ped, bool toggle); - void SetPedDiesWhenInjured(int ped, bool toggle); + void SetPedDiesWhenInjured(uint ped, bool toggle); void SetPedEnableWeaponBlocking(IPlayer ped, bool toggle); - void SetPedEnableWeaponBlocking(int ped, bool toggle); + void SetPedEnableWeaponBlocking(uint ped, bool toggle); /// /// /// focus on this ped (also disables its collision). If doing this for your player ped, you'll still be able to drive the vehicle. @@ -13876,11 +13863,11 @@ public unsafe interface INatives /// /// focus on this ped (also disables its collision). If doing this for your player ped, you'll still be able to drive the vehicle. /// was always 1 (true). - void SpecialFunctionDoNotUse(int ped, bool p1); + void SpecialFunctionDoNotUse(uint ped, bool p1); void ResetPedVisibleDamage(IPlayer ped); - void ResetPedVisibleDamage(int ped); + void ResetPedVisibleDamage(uint ped); void ApplyPedBloodDamageByZone(IPlayer ped, int p1, float p2, float p3, int p4); - void ApplyPedBloodDamageByZone(int ped, int p1, float p2, float p3, int p4); + void ApplyPedBloodDamageByZone(uint ped, int p1, float p2, float p3, int p4); /// /// woundTypes: /// - soak_splat @@ -13906,11 +13893,11 @@ public unsafe interface INatives /// - ShotgunLargeMonolithic /// See NativeDB for reference: http://natives.altv.mp/#/0x83F7E01C7B769A26 /// - void ApplyPedBlood(int ped, int boneIndex, float xRot, float yRot, float zRot, string woundType); + void ApplyPedBlood(uint ped, int boneIndex, float xRot, float yRot, float zRot, string woundType); void ApplyPedBloodByZone(IPlayer ped, int p1, float p2, float p3, string p4); - void ApplyPedBloodByZone(int ped, int p1, float p2, float p3, string p4); + void ApplyPedBloodByZone(uint ped, int p1, float p2, float p3, string p4); void ApplyPedBloodSpecific(IPlayer ped, int p1, float p2, float p3, float p4, float p5, int p6, float p7, string p8); - void ApplyPedBloodSpecific(int ped, int p1, float p2, float p3, float p4, float p5, int p6, float p7, string p8); + void ApplyPedBloodSpecific(uint ped, int p1, float p2, float p3, float p4, float p5, int p6, float p7, string p8); /// /// enum eDamageZone /// { @@ -13936,7 +13923,7 @@ public unsafe interface INatives /// }; /// See NativeDB for reference: http://natives.altv.mp/#/0x397C38AA7B4A5F83 /// - void ApplyPedDamageDecal(int ped, int damageZone, float xOffset, float yOffset, float heading, float scale, float alpha, int unkVariation, bool fadeIn, string decalName); + void ApplyPedDamageDecal(uint ped, int damageZone, float xOffset, float yOffset, float heading, float scale, float alpha, int unkVariation, bool fadeIn, string decalName); /// /// "SCR_TrevorTreeBang" /// "HOSPITAL_0" @@ -13964,9 +13951,9 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x46DF918788CB093F /// /// Packs: - void ApplyPedDamagePack(int ped, string damagePack, float damage, float mult); + void ApplyPedDamagePack(uint ped, string damagePack, float damage, float mult); void ClearPedBloodDamage(IPlayer ped); - void ClearPedBloodDamage(int ped); + void ClearPedBloodDamage(uint ped); /// /// Somehow related to changing ped's clothes. /// @@ -13974,9 +13961,9 @@ public unsafe interface INatives /// /// Somehow related to changing ped's clothes. /// - void ClearPedBloodDamageByZone(int ped, int p1); + void ClearPedBloodDamageByZone(uint ped, int p1); void HidePedBloodDamageByZone(IPlayer ped, int p1, bool p2); - void HidePedBloodDamageByZone(int ped, int p1, bool p2); + void HidePedBloodDamageByZone(uint ped, int p1, bool p2); /// /// /// from 0 to 5 in the b617d scripts. @@ -13986,11 +13973,11 @@ public unsafe interface INatives /// /// from 0 to 5 in the b617d scripts. /// "blushing" and "ALL" found in the b617d scripts. - void ClearPedDamageDecalByZone(int ped, int p1, string p2); + void ClearPedDamageDecalByZone(uint ped, int p1, string p2); int GetPedDecorationsState(IPlayer ped); - int GetPedDecorationsState(int ped); + int GetPedDecorationsState(uint ped); void MarkPedDecorationsAsClonedFromLocalPlayer(IPlayer ped, bool p1); - void MarkPedDecorationsAsClonedFromLocalPlayer(int ped, bool p1); + void MarkPedDecorationsAsClonedFromLocalPlayer(uint ped, bool p1); /// /// It clears the wetness of the selected Ped/Player. Clothes have to be wet to notice the difference. /// @@ -13998,7 +13985,7 @@ public unsafe interface INatives /// /// It clears the wetness of the selected Ped/Player. Clothes have to be wet to notice the difference. /// - void ClearPedWetness(int ped); + void ClearPedWetness(uint ped); /// /// It adds the wetness level to the player clothing/outfit. As if player just got out from water surface. /// @@ -14006,7 +13993,7 @@ public unsafe interface INatives /// /// It adds the wetness level to the player clothing/outfit. As if player just got out from water surface. /// - void SetPedWetnessHeight(int ped, float height); + void SetPedWetnessHeight(uint ped, float height); /// /// combined with PED::SET_PED_WETNESS_HEIGHT(), this native makes the ped drenched in water up to the height specified in the other function /// @@ -14014,9 +14001,9 @@ public unsafe interface INatives /// /// combined with PED::SET_PED_WETNESS_HEIGHT(), this native makes the ped drenched in water up to the height specified in the other function /// - void SetPedWetnessEnabledThisFrame(int ped); + void SetPedWetnessEnabledThisFrame(uint ped); void ClearPedEnvDirt(IPlayer ped); - void ClearPedEnvDirt(int ped); + void ClearPedEnvDirt(uint ped); /// /// /// is set to 100.0 or 0.0 in the decompiled scripts. @@ -14024,7 +14011,7 @@ public unsafe interface INatives /// /// /// is set to 100.0 or 0.0 in the decompiled scripts. - void SetPedSweat(int ped, float sweat); + void SetPedSweat(uint ped, float sweat); /// /// Applies an Item from a PedDecorationCollection to a ped. These include tattoos and shirt decals. /// Example: @@ -14056,7 +14043,7 @@ public unsafe interface INatives /// :ADD_PED_DECORATION_FROM_HASHES(PLAYER::PLAYER_PED_ID(), MISC::GET_HASH_KEY("mpbeach_overlays"), MISC::GET_HASH_KEY("fm_hair_fuzz")) /// - PedDecorationCollection filename hash /// - Item name hash - void AddPedDecorationFromHashes(int ped, uint collection, uint overlay); + void AddPedDecorationFromHashes(uint ped, uint collection, uint overlay); /// /// Full list of ped overlays / decorations by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedOverlayCollections.json /// @@ -14064,7 +14051,7 @@ public unsafe interface INatives /// /// Full list of ped overlays / decorations by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/pedOverlayCollections.json /// - void AddPedDecorationFromHashesInCorona(int ped, uint collection, uint overlay); + void AddPedDecorationFromHashesInCorona(uint ped, uint collection, uint overlay); /// /// Returns the zoneID for the overlay if it is a member of collection. /// enum ePedDecorationZone @@ -14079,9 +14066,9 @@ public unsafe interface INatives /// int GetPedDecorationZoneFromHashes(uint collection, uint overlay); void ClearPedDecorations(IPlayer ped); - void ClearPedDecorations(int ped); + void ClearPedDecorations(uint ped); void ClearPedDecorationsLeaveScars(IPlayer ped); - void ClearPedDecorationsLeaveScars(int ped); + void ClearPedDecorationsLeaveScars(uint ped); /// /// /// Despite this function's name, it simply returns whether the specified handle is a Ped. @@ -14089,7 +14076,7 @@ public unsafe interface INatives /// /// /// Despite this function's name, it simply returns whether the specified handle is a Ped. - bool WasPedSkeletonUpdated(int ped); + bool WasPedSkeletonUpdated(uint ped); /// /// Gets the position of the specified bone of the specified ped. /// @@ -14107,7 +14094,7 @@ public unsafe interface INatives /// The X-component of the offset to add to the position relative to the bone's rotation. /// The Y-component of the offset to add to the position relative to the bone's rotation. /// The Z-component of the offset to add to the position relative to the bone's rotation. - Vector3 GetPedBoneCoords(int ped, int boneId, float offsetX, float offsetY, float offsetZ); + Vector3 GetPedBoneCoords(uint ped, int boneId, float offsetX, float offsetY, float offsetZ); /// /// Creates a new NaturalMotion message. /// If a message already exists, this function does nothing. A message exists until the point it has been successfully dispatched by GIVE_PED_NM_MESSAGE. @@ -14142,7 +14129,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xB158DFCCC56E5C5B /// /// SET_PED_TO_RAGDOLL(ped, 4000, 5000, 1, 1, 1, 0); - void GivePedNmMessage(int ped); + void GivePedNmMessage(uint ped); int AddScenarioBlockingArea(float x1, float y1, float z1, float x2, float y2, float z2, bool p6, bool p7, bool p8, bool p9); void RemoveScenarioBlockingAreas(); void RemoveScenarioBlockingArea(int p0, bool p1); @@ -14155,22 +14142,22 @@ public unsafe interface INatives /// /// Full list of ped scenarios by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json /// - bool IsPedUsingScenario(int ped, string scenario); + bool IsPedUsingScenario(uint ped, string scenario); bool IsPedUsingAnyScenario(IPlayer ped); - bool IsPedUsingAnyScenario(int ped); + bool IsPedUsingAnyScenario(uint ped); bool SetPedPanicExitScenario(int p0, int p1, int p2, int p3); void ToggleScenarioPedCowerInPlace(IPlayer ped, bool toggle); - void ToggleScenarioPedCowerInPlace(int ped, bool toggle); + void ToggleScenarioPedCowerInPlace(uint ped, bool toggle); bool TriggerPedScenarioPanicexittoflee(int p0, int p1, int p2, int p3); bool SetPedShouldPlayDirectedNormalScenarioExit(int p0, int p1, int p2, int p3); void SetPedShouldPlayNormalScenarioExit(IPlayer ped); - void SetPedShouldPlayNormalScenarioExit(int ped); + void SetPedShouldPlayNormalScenarioExit(uint ped); void SetPedShouldPlayImmediateScenarioExit(IPlayer ped); - void SetPedShouldPlayImmediateScenarioExit(int ped); + void SetPedShouldPlayImmediateScenarioExit(uint ped); bool SetPedShouldPlayFleeScenarioExit(IPlayer ped, int p1, int p2, int p3); - bool SetPedShouldPlayFleeScenarioExit(int ped, int p1, int p2, int p3); + bool SetPedShouldPlayFleeScenarioExit(uint ped, int p1, int p2, int p3); void SetPedShouldIgnoreScenarioExitCollisionChecks(IPlayer ped, bool p1); - void SetPedShouldIgnoreScenarioExitCollisionChecks(int ped, bool p1); + void SetPedShouldIgnoreScenarioExitCollisionChecks(uint ped, bool p1); void SetPedShouldIgnoreScenarioNavChecks(int p0, bool p1); void SetPedShouldProbeForScenarioExitsInOneFrame(int p0, bool p1); bool IsPedGesturing(int p0); @@ -14181,7 +14168,7 @@ public unsafe interface INatives /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// - void PlayFacialAnim(int ped, string animName, string animDict); + void PlayFacialAnim(uint ped, string animName, string animDict); /// /// Clipsets: /// facials@gen_female@base @@ -14205,7 +14192,7 @@ public unsafe interface INatives /// mood_happy_1 /// mood_talking_1 /// - void SetFacialClipset(int ped, string animDict); + void SetFacialClipset(uint ped, string animDict); /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// @@ -14213,11 +14200,11 @@ public unsafe interface INatives /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// - void SetFacialIdleAnimOverride(int ped, string animName, string animDict); + void SetFacialIdleAnimOverride(uint ped, string animName, string animDict); void ClearFacialIdleAnimOverride(IPlayer ped); - void ClearFacialIdleAnimOverride(int ped); + void ClearFacialIdleAnimOverride(uint ped); void SetPedCanPlayGestureAnims(IPlayer ped, bool toggle); - void SetPedCanPlayGestureAnims(int ped, bool toggle); + void SetPedCanPlayGestureAnims(uint ped, bool toggle); /// /// /// usually 0 @@ -14225,51 +14212,51 @@ public unsafe interface INatives /// /// /// usually 0 - void SetPedCanPlayVisemeAnims(int ped, bool toggle, bool p2); + void SetPedCanPlayVisemeAnims(uint ped, bool toggle, bool p2); void SetPedIsIgnoredByAutoOpenDoors(IPlayer ped, bool p1); - void SetPedIsIgnoredByAutoOpenDoors(int ped, bool p1); + void SetPedIsIgnoredByAutoOpenDoors(uint ped, bool p1); void SetPedCanPlayAmbientAnims(IPlayer ped, bool toggle); - void SetPedCanPlayAmbientAnims(int ped, bool toggle); + void SetPedCanPlayAmbientAnims(uint ped, bool toggle); void SetPedCanPlayAmbientBaseAnims(IPlayer ped, bool toggle); - void SetPedCanPlayAmbientBaseAnims(int ped, bool toggle); + void SetPedCanPlayAmbientBaseAnims(uint ped, bool toggle); void TriggerIdleAnimationOnPed(IPlayer ped); - void TriggerIdleAnimationOnPed(int ped); + void TriggerIdleAnimationOnPed(uint ped); void SetPedCanArmIk(IPlayer ped, bool toggle); - void SetPedCanArmIk(int ped, bool toggle); + void SetPedCanArmIk(uint ped, bool toggle); void SetPedCanHeadIk(IPlayer ped, bool toggle); - void SetPedCanHeadIk(int ped, bool toggle); + void SetPedCanHeadIk(uint ped, bool toggle); void SetPedCanLegIk(IPlayer ped, bool toggle); - void SetPedCanLegIk(int ped, bool toggle); + void SetPedCanLegIk(uint ped, bool toggle); void SetPedCanTorsoIk(IPlayer ped, bool toggle); - void SetPedCanTorsoIk(int ped, bool toggle); + void SetPedCanTorsoIk(uint ped, bool toggle); void SetPedCanTorsoReactIk(IPlayer ped, bool p1); - void SetPedCanTorsoReactIk(int ped, bool p1); + void SetPedCanTorsoReactIk(uint ped, bool p1); void SetPedCanTorsoVehicleIk(IPlayer ped, bool p1); - void SetPedCanTorsoVehicleIk(int ped, bool p1); + void SetPedCanTorsoVehicleIk(uint ped, bool p1); void SetPedCanUseAutoConversationLookat(IPlayer ped, bool toggle); - void SetPedCanUseAutoConversationLookat(int ped, bool toggle); - bool IsPedHeadtrackingPed(IPlayer ped1, int ped2); - bool IsPedHeadtrackingPed(int ped1, IPlayer ped2); + void SetPedCanUseAutoConversationLookat(uint ped, bool toggle); + bool IsPedHeadtrackingPed(IPlayer ped1, uint ped2); + bool IsPedHeadtrackingPed(uint ped1, IPlayer ped2); bool IsPedHeadtrackingPed(IPlayer ped1, IPlayer ped2); - bool IsPedHeadtrackingPed(int ped1, int ped2); - bool IsPedHeadtrackingEntity(IPlayer ped, int entity); - bool IsPedHeadtrackingEntity(int ped, IEntity entity); + bool IsPedHeadtrackingPed(uint ped1, uint ped2); + bool IsPedHeadtrackingEntity(IPlayer ped, uint entity); + bool IsPedHeadtrackingEntity(uint ped, IEntity entity); bool IsPedHeadtrackingEntity(IPlayer ped, IEntity entity); - bool IsPedHeadtrackingEntity(int ped, int entity); + bool IsPedHeadtrackingEntity(uint ped, uint entity); /// /// This is only called once in the scripts. /// sub_1CD9(&l_49, 0, getElem(3, &l_34, 4), "MICHAEL", 0, 1); /// sub_1CA8("WORLD_HUMAN_SMOKING", 2); /// PED::SET_PED_PRIMARY_LOOKAT(getElem(3, &l_34, 4), PLAYER::PLAYER_PED_ID()); /// - void SetPedPrimaryLookat(IPlayer ped, int lookAt); + void SetPedPrimaryLookat(IPlayer ped, uint lookAt); /// /// This is only called once in the scripts. /// sub_1CD9(&l_49, 0, getElem(3, &l_34, 4), "MICHAEL", 0, 1); /// sub_1CA8("WORLD_HUMAN_SMOKING", 2); /// PED::SET_PED_PRIMARY_LOOKAT(getElem(3, &l_34, 4), PLAYER::PLAYER_PED_ID()); /// - void SetPedPrimaryLookat(int ped, IPlayer lookAt); + void SetPedPrimaryLookat(uint ped, IPlayer lookAt); /// /// This is only called once in the scripts. /// sub_1CD9(&l_49, 0, getElem(3, &l_34, 4), "MICHAEL", 0, 1); @@ -14283,7 +14270,7 @@ public unsafe interface INatives /// sub_1CA8("WORLD_HUMAN_SMOKING", 2); /// PED::SET_PED_PRIMARY_LOOKAT(getElem(3, &l_34, 4), PLAYER::PLAYER_PED_ID()); /// - void SetPedPrimaryLookat(int ped, int lookAt); + void SetPedPrimaryLookat(uint ped, uint lookAt); void SetPedClothPinFrames(int p0, int p1); void SetPedClothPackageIndex(int p0, int p1); void SetPedClothProne(int p0, bool p1); @@ -14312,7 +14299,7 @@ public unsafe interface INatives /// CPED_CONFIG_FLAG_UpperBodyDamageAnimsOnly = 7, /// See NativeDB for reference: http://natives.altv.mp/#/0x1913FE4CBF41C463 /// - void SetPedConfigFlag(int ped, int flagId, bool value); + void SetPedConfigFlag(uint ped, int flagId, bool value); /// /// Known values: /// PRF_PreventGoingIntoStillInVehicleState = 236 *(fanatic2.c)* @@ -14324,7 +14311,7 @@ public unsafe interface INatives /// PRF_PreventGoingIntoStillInVehicleState = 236 *(fanatic2.c)* /// /// :SET_PED_RESET_FLAG(PLAYER::PLAYER_PED_ID(), 240, 1); - void SetPedResetFlag(int ped, int flagId, bool doReset); + void SetPedResetFlag(uint ped, int flagId, bool doReset); /// /// See SET_PED_CONFIG_FLAG /// @@ -14332,43 +14319,43 @@ public unsafe interface INatives /// /// See SET_PED_CONFIG_FLAG /// - bool GetPedConfigFlag(int ped, int flagId, bool p2); + bool GetPedConfigFlag(uint ped, int flagId, bool p2); bool GetPedResetFlag(IPlayer ped, int flagId); - bool GetPedResetFlag(int ped, int flagId); + bool GetPedResetFlag(uint ped, int flagId); void SetPedGroupMemberPassengerIndex(IPlayer ped, int index); - void SetPedGroupMemberPassengerIndex(int ped, int index); + void SetPedGroupMemberPassengerIndex(uint ped, int index); void SetPedCanEvasiveDive(IPlayer ped, bool toggle); - void SetPedCanEvasiveDive(int ped, bool toggle); + void SetPedCanEvasiveDive(uint ped, bool toggle); /// /// var num3; /// if (PED::IS_PED_EVASIVE_DIVING(A_0, &num3) != 0) /// if (ENTITY::IS_ENTITY_A_VEHICLE(num3) != 0) /// /// Presumably returns the Entity that the Ped is currently diving out of the way of. - bool IsPedEvasiveDiving(IPlayer ped, ref int evadingEntity); + bool IsPedEvasiveDiving(IPlayer ped, ref uint evadingEntity); /// /// var num3; /// if (PED::IS_PED_EVASIVE_DIVING(A_0, &num3) != 0) /// if (ENTITY::IS_ENTITY_A_VEHICLE(num3) != 0) /// /// Presumably returns the Entity that the Ped is currently diving out of the way of. - bool IsPedEvasiveDiving(int ped, ref int evadingEntity); + bool IsPedEvasiveDiving(uint ped, ref uint evadingEntity); void SetPedShootsAtCoord(IPlayer ped, float x, float y, float z, bool toggle); - void SetPedShootsAtCoord(int ped, float x, float y, float z, bool toggle); + void SetPedShootsAtCoord(uint ped, float x, float y, float z, bool toggle); /// /// Full list of peds by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/peds.json /// void SetPedModelIsSuppressed(uint modelHash, bool toggle); void StopAnyPedModelBeingSuppressed(); void SetPedCanBeTargetedWhenInjured(IPlayer ped, bool toggle); - void SetPedCanBeTargetedWhenInjured(int ped, bool toggle); + void SetPedCanBeTargetedWhenInjured(uint ped, bool toggle); void SetPedGeneratesDeadBodyEvents(IPlayer ped, bool toggle); - void SetPedGeneratesDeadBodyEvents(int ped, bool toggle); + void SetPedGeneratesDeadBodyEvents(uint ped, bool toggle); void BlockPedFromGeneratingDeadBodyEventsWhenDead(IPlayer ped, bool toggle); - void BlockPedFromGeneratingDeadBodyEventsWhenDead(int ped, bool toggle); + void BlockPedFromGeneratingDeadBodyEventsWhenDead(uint ped, bool toggle); void SetPedWillOnlyAttackWantedPlayer(int p0, int p1); void SetPedCanRagdollFromPlayerImpact(IPlayer ped, bool toggle); - void SetPedCanRagdollFromPlayerImpact(int ped, bool toggle); + void SetPedCanRagdollFromPlayerImpact(uint ped, bool toggle); /// /// PoliceMotorcycleHelmet 1024 /// RegularMotorcycleHelmet 4096 @@ -14388,15 +14375,15 @@ public unsafe interface INatives /// -- /// /// is generally 4096 or 16384 in the scripts. p1 varies between 1 and 0. - void GivePedHelmet(int ped, bool cannotRemove, int helmetFlag, int textureIndex); + void GivePedHelmet(uint ped, bool cannotRemove, int helmetFlag, int textureIndex); void RemovePedHelmet(IPlayer ped, bool instantly); - void RemovePedHelmet(int ped, bool instantly); + void RemovePedHelmet(uint ped, bool instantly); bool IsPedTakingOffHelmet(IPlayer ped); - bool IsPedTakingOffHelmet(int ped); + bool IsPedTakingOffHelmet(uint ped); void SetPedHelmet(IPlayer ped, bool canWearHelmet); - void SetPedHelmet(int ped, bool canWearHelmet); + void SetPedHelmet(uint ped, bool canWearHelmet); void SetPedHelmetFlag(IPlayer ped, int helmetFlag); - void SetPedHelmetFlag(int ped, int helmetFlag); + void SetPedHelmetFlag(uint ped, int helmetFlag); /// /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html @@ -14406,13 +14393,13 @@ public unsafe interface INatives /// List of component/props ID /// gtaxscripting.blogspot.com/2016/04/gta-v-peds-component-and-props.html /// - void SetPedHelmetPropIndex(int ped, int propIndex, bool p2); + void SetPedHelmetPropIndex(uint ped, int propIndex, bool p2); void SetPedHelmetVisorPropIndices(IPlayer ped, bool p1, int p2, int p3); - void SetPedHelmetVisorPropIndices(int ped, bool p1, int p2, int p3); + void SetPedHelmetVisorPropIndices(uint ped, bool p1, int p2, int p3); bool IsPedHelmetVisorUp(IPlayer ped); - bool IsPedHelmetVisorUp(int ped); + bool IsPedHelmetVisorUp(uint ped); void SetPedHelmetTextureIndex(IPlayer ped, int textureIndex); - void SetPedHelmetTextureIndex(int ped, int textureIndex); + void SetPedHelmetTextureIndex(uint ped, int textureIndex); /// /// Returns true if the ped passed through the parenthesis is wearing a helmet. /// @@ -14420,16 +14407,16 @@ public unsafe interface INatives /// /// Returns true if the ped passed through the parenthesis is wearing a helmet. /// - bool IsPedWearingHelmet(int ped); + bool IsPedWearingHelmet(uint ped); void ClearPedStoredHatProp(IPlayer ped); - void ClearPedStoredHatProp(int ped); + void ClearPedStoredHatProp(uint ped); int GetPedHelmetStoredHatPropIndex(IPlayer ped); - int GetPedHelmetStoredHatPropIndex(int ped); + int GetPedHelmetStoredHatPropIndex(uint ped); int GetPedHelmetStoredHatTexIndex(IPlayer ped); - int GetPedHelmetStoredHatTexIndex(int ped); + int GetPedHelmetStoredHatTexIndex(uint ped); bool IsCurrentHeadPropAHelmet(int p0); void SetPedToLoadCover(IPlayer ped, bool toggle); - void SetPedToLoadCover(int ped, bool toggle); + void SetPedToLoadCover(uint ped, bool toggle); /// /// It simply makes the said ped to cower behind cover object(wall, desk, car) /// Peds flee attributes must be set to not to flee, first. Else, most of the peds, will just flee from gunshot sounds or any other panic situations. @@ -14439,9 +14426,9 @@ public unsafe interface INatives /// It simply makes the said ped to cower behind cover object(wall, desk, car) /// Peds flee attributes must be set to not to flee, first. Else, most of the peds, will just flee from gunshot sounds or any other panic situations. /// - void SetPedCanCowerInCover(int ped, bool toggle); + void SetPedCanCowerInCover(uint ped, bool toggle); void SetPedCanPeekInCover(IPlayer ped, bool toggle); - void SetPedCanPeekInCover(int ped, bool toggle); + void SetPedCanPeekInCover(uint ped, bool toggle); /// /// This native does absolutely nothing, just a nullsub /// @@ -14449,7 +14436,7 @@ public unsafe interface INatives /// /// This native does absolutely nothing, just a nullsub /// - void SetPedPlaysHeadOnHornAnimWhenDiesInVehicle(int ped, bool toggle); + void SetPedPlaysHeadOnHornAnimWhenDiesInVehicle(uint ped, bool toggle); /// /// "IK" stands for "Inverse kinematics." I assume this has something to do with how the ped uses his legs to balance. In the scripts, the second parameter is always an int with a value of 2, 0, or sometimes 1 /// @@ -14457,13 +14444,13 @@ public unsafe interface INatives /// /// "IK" stands for "Inverse kinematics." I assume this has something to do with how the ped uses his legs to balance. In the scripts, the second parameter is always an int with a value of 2, 0, or sometimes 1 /// - void SetPedLegIkMode(int ped, int mode); + void SetPedLegIkMode(uint ped, int mode); void SetPedMotionBlur(IPlayer ped, bool toggle); - void SetPedMotionBlur(int ped, bool toggle); + void SetPedMotionBlur(uint ped, bool toggle); void SetPedCanSwitchWeapon(IPlayer ped, bool toggle); - void SetPedCanSwitchWeapon(int ped, bool toggle); + void SetPedCanSwitchWeapon(uint ped, bool toggle); void SetPedDiesInstantlyInWater(IPlayer ped, bool toggle); - void SetPedDiesInstantlyInWater(int ped, bool toggle); + void SetPedDiesInstantlyInWater(uint ped, bool toggle); /// /// Only appears in lamar1 script. /// @@ -14471,11 +14458,11 @@ public unsafe interface INatives /// /// Only appears in lamar1 script. /// - void SetLadderClimbInputState(int ped, int p1); + void SetLadderClimbInputState(uint ped, int p1); void StopPedWeaponFiringWhenDropped(IPlayer ped); - void StopPedWeaponFiringWhenDropped(int ped); + void StopPedWeaponFiringWhenDropped(uint ped); void SetScriptedAnimSeatOffset(IPlayer ped, float p1); - void SetScriptedAnimSeatOffset(int ped, float p1); + void SetScriptedAnimSeatOffset(uint ped, float p1); /// /// enum eCombatMovement // 0x4F456B61 /// { @@ -14495,7 +14482,7 @@ public unsafe interface INatives /// CM_WillRetreat /// }; /// - void SetPedCombatMovement(int ped, int combatMovement); + void SetPedCombatMovement(uint ped, int combatMovement); /// /// See SET_PED_COMBAT_MOVEMENT /// @@ -14503,7 +14490,7 @@ public unsafe interface INatives /// /// See SET_PED_COMBAT_MOVEMENT /// - int GetPedCombatMovement(int ped); + int GetPedCombatMovement(uint ped); /// /// enum eCombatAbility // 0xE793438C /// { @@ -14523,7 +14510,7 @@ public unsafe interface INatives /// CA_NumTypes /// }; /// - void SetPedCombatAbility(int ped, int abilityLevel); + void SetPedCombatAbility(uint ped, int abilityLevel); /// /// enum eCombatRange // 0xB69160F5 /// { @@ -14545,7 +14532,7 @@ public unsafe interface INatives /// CR_NumRanges /// }; /// - void SetPedCombatRange(int ped, int combatRange); + void SetPedCombatRange(uint ped, int combatRange); /// /// See SET_PED_COMBAT_RANGE /// @@ -14553,7 +14540,7 @@ public unsafe interface INatives /// /// See SET_PED_COMBAT_RANGE /// - int GetPedCombatRange(int ped); + int GetPedCombatRange(uint ped); /// /// enum eCombatAttributes // 0x0E8E7201 /// { @@ -14579,7 +14566,7 @@ public unsafe interface INatives /// BF_0x66BB9FCC = 6, /// See NativeDB for reference: http://natives.altv.mp/#/0x9F7794730795E019 /// - void SetPedCombatAttributes(int ped, int attributeId, bool enabled); + void SetPedCombatAttributes(uint ped, int attributeId, bool enabled); /// /// enum eTargetLossResponseType /// { @@ -14597,23 +14584,23 @@ public unsafe interface INatives /// TLR_SearchForTarget /// }; /// - void SetPedTargetLossResponse(int ped, int responseType); + void SetPedTargetLossResponse(uint ped, int responseType); bool IsPedPerformingMeleeAction(IPlayer ped); - bool IsPedPerformingMeleeAction(int ped); + bool IsPedPerformingMeleeAction(uint ped); bool IsPedPerformingStealthKill(IPlayer ped); - bool IsPedPerformingStealthKill(int ped); + bool IsPedPerformingStealthKill(uint ped); bool IsPedPerformingACounterAttack(IPlayer ped); - bool IsPedPerformingACounterAttack(int ped); + bool IsPedPerformingACounterAttack(uint ped); bool IsPedBeingStealthKilled(IPlayer ped); - bool IsPedBeingStealthKilled(int ped); - int GetMeleeTargetForPed(IPlayer ped); - int GetMeleeTargetForPed(int ped); + bool IsPedBeingStealthKilled(uint ped); + uint GetMeleeTargetForPed(IPlayer ped); + uint GetMeleeTargetForPed(uint ped); bool WasPedKilledByStealth(IPlayer ped); - bool WasPedKilledByStealth(int ped); + bool WasPedKilledByStealth(uint ped); bool WasPedKilledByTakedown(IPlayer ped); - bool WasPedKilledByTakedown(int ped); + bool WasPedKilledByTakedown(uint ped); bool WasPedKnockedOut(IPlayer ped); - bool WasPedKnockedOut(int ped); + bool WasPedKnockedOut(uint ped); /// /// bit 1 (0x2) = use vehicle /// bit 15 (0x8000) = force cower @@ -14623,7 +14610,7 @@ public unsafe interface INatives /// bit 1 (0x2) = use vehicle /// bit 15 (0x8000) = force cower /// - void SetPedFleeAttributes(int ped, int attributeFlags, bool enable); + void SetPedFleeAttributes(uint ped, int attributeFlags, bool enable); /// /// /// Only "CODE_HUMAN_STAND_COWER" found in the b617d scripts. @@ -14631,34 +14618,34 @@ public unsafe interface INatives /// /// /// Only "CODE_HUMAN_STAND_COWER" found in the b617d scripts. - void SetPedCowerHash(int ped, string p1); + void SetPedCowerHash(uint ped, string p1); void SetPedSteersAroundDeadBodies(IPlayer ped, bool toggle); - void SetPedSteersAroundDeadBodies(int ped, bool toggle); + void SetPedSteersAroundDeadBodies(uint ped, bool toggle); void SetPedSteersAroundPeds(IPlayer ped, bool toggle); - void SetPedSteersAroundPeds(int ped, bool toggle); + void SetPedSteersAroundPeds(uint ped, bool toggle); void SetPedSteersAroundObjects(IPlayer ped, bool toggle); - void SetPedSteersAroundObjects(int ped, bool toggle); + void SetPedSteersAroundObjects(uint ped, bool toggle); void SetPedSteersAroundVehicles(IPlayer ped, bool toggle); - void SetPedSteersAroundVehicles(int ped, bool toggle); + void SetPedSteersAroundVehicles(uint ped, bool toggle); void SetPedIsAvoidedByOthers(int p0, bool p1); void SetPedIncreasedAvoidanceRadius(IPlayer ped); - void SetPedIncreasedAvoidanceRadius(int ped); + void SetPedIncreasedAvoidanceRadius(uint ped); void SetPedBlocksPathingWhenDead(IPlayer ped, bool toggle); - void SetPedBlocksPathingWhenDead(int ped, bool toggle); + void SetPedBlocksPathingWhenDead(uint ped, bool toggle); void SetPedNoTimeDelayBeforeShot(int p0); bool IsAnyPedNearPoint(float x, float y, float z, float radius); void ForcePedAiAndAnimationUpdate(IPlayer ped, bool p1, bool p2); - void ForcePedAiAndAnimationUpdate(int ped, bool p1, bool p2); + void ForcePedAiAndAnimationUpdate(uint ped, bool p1, bool p2); bool IsPedHeadingTowardsPosition(IPlayer ped, float x, float y, float z, float p4); - bool IsPedHeadingTowardsPosition(int ped, float x, float y, float z, float p4); + bool IsPedHeadingTowardsPosition(uint ped, float x, float y, float z, float p4); void RequestPedVisibilityTracking(IPlayer ped); - void RequestPedVisibilityTracking(int ped); + void RequestPedVisibilityTracking(uint ped); void RequestPedVehicleVisibilityTracking(IPlayer ped, bool p1); - void RequestPedVehicleVisibilityTracking(int ped, bool p1); + void RequestPedVehicleVisibilityTracking(uint ped, bool p1); void RequestPedRestrictedVehicleVisibilityTracking(IPlayer ped, bool p1); - void RequestPedRestrictedVehicleVisibilityTracking(int ped, bool p1); + void RequestPedRestrictedVehicleVisibilityTracking(uint ped, bool p1); void RequestPedUseSmallBboxVisibilityTracking(IPlayer ped, bool p1); - void RequestPedUseSmallBboxVisibilityTracking(int ped, bool p1); + void RequestPedUseSmallBboxVisibilityTracking(uint ped, bool p1); /// /// returns whether or not a ped is visible within your FOV, not this check auto's to false after a certain distance. /// Target needs to be tracked.. won't work otherwise. @@ -14668,29 +14655,29 @@ public unsafe interface INatives /// returns whether or not a ped is visible within your FOV, not this check auto's to false after a certain distance. /// Target needs to be tracked.. won't work otherwise. /// - bool IsTrackedPedVisible(int ped); + bool IsTrackedPedVisible(uint ped); int GetTrackedPedPixelcount(IPlayer ped); - int GetTrackedPedPixelcount(int ped); + int GetTrackedPedPixelcount(uint ped); bool IsPedTracked(IPlayer ped); - bool IsPedTracked(int ped); + bool IsPedTracked(uint ped); bool HasPedReceivedEvent(IPlayer ped, int eventId); - bool HasPedReceivedEvent(int ped, int eventId); - bool CanPedSeeHatedPed(IPlayer ped1, int ped2); - bool CanPedSeeHatedPed(int ped1, IPlayer ped2); + bool HasPedReceivedEvent(uint ped, int eventId); + bool CanPedSeeHatedPed(IPlayer ped1, uint ped2); + bool CanPedSeeHatedPed(uint ped1, IPlayer ped2); bool CanPedSeeHatedPed(IPlayer ped1, IPlayer ped2); - bool CanPedSeeHatedPed(int ped1, int ped2); + bool CanPedSeeHatedPed(uint ped1, uint ped2); /// /// bool CanPedShuffleToOrFromTurretSeat(IPlayer ped, ref int p1); /// /// - bool CanPedShuffleToOrFromTurretSeat(int ped, ref int p1); + bool CanPedShuffleToOrFromTurretSeat(uint ped, ref int p1); /// /// bool CanPedShuffleToOrFromExtraSeat(IPlayer ped, ref int p1); /// /// - bool CanPedShuffleToOrFromExtraSeat(int ped, ref int p1); + bool CanPedShuffleToOrFromExtraSeat(uint ped, ref int p1); /// /// no bone= -1 /// boneIds: @@ -14716,9 +14703,9 @@ public unsafe interface INatives /// IK_L_Foot = 0xfedd, /// See NativeDB for reference: http://natives.altv.mp/#/0x3F428D08BE5AAE31 /// - int GetPedBoneIndex(int ped, int boneId); + int GetPedBoneIndex(uint ped, int boneId); int GetPedRagdollBoneIndex(IPlayer ped, int bone); - int GetPedRagdollBoneIndex(int ped, int bone); + int GetPedRagdollBoneIndex(uint ped, int bone); /// /// Values look to be between 0.0 and 1.0 /// From decompiled scripts: 0.0, 0.6, 0.65, 0.8, 1.0 @@ -14730,11 +14717,11 @@ public unsafe interface INatives /// From decompiled scripts: 0.0, 0.6, 0.65, 0.8, 1.0 /// You are correct, just looked in IDA it breaks from the function if it's less than 0.0f or greater than 1.0f. /// - void SetPedEnveffScale(int ped, float value); + void SetPedEnveffScale(uint ped, float value); float GetPedEnveffScale(IPlayer ped); - float GetPedEnveffScale(int ped); + float GetPedEnveffScale(uint ped); void SetEnablePedEnveffScale(IPlayer ped, bool toggle); - void SetEnablePedEnveffScale(int ped, bool toggle); + void SetEnablePedEnveffScale(uint ped, bool toggle); /// /// In agency_heist3b.c4, its like this 90% of the time: /// PED::SET_PED_ENVEFF_SCALE(ped, 1.0); @@ -14760,7 +14747,7 @@ public unsafe interface INatives /// PED::SET_ENABLE_PED_ENVEFF_SCALE(ped, 1); /// /// :SET_PED_ENVEFF_CPV_ADD(ped, 0.099); - void SetPedEnveffCpvAdd(int ped, float p1); + void SetPedEnveffCpvAdd(uint ped, float p1); /// /// Something related to the environmental effects natives. /// In the "agency_heist3b" script, p1 - p3 are always under 100 - usually they are {87, 81, 68}. If SET_PED_ENVEFF_SCALE is set to 0.65 (instead of the usual 1.0), they use {74, 69, 60} @@ -14770,7 +14757,7 @@ public unsafe interface INatives /// Something related to the environmental effects natives. /// In the "agency_heist3b" script, p1 - p3 are always under 100 - usually they are {87, 81, 68}. If SET_PED_ENVEFF_SCALE is set to 0.65 (instead of the usual 1.0), they use {74, 69, 60} /// - void SetPedEnveffColorModulator(int ped, int p1, int p2, int p3); + void SetPedEnveffColorModulator(uint ped, int p1, int p2, int p3); /// /// This native sets the emissive intensity for the given ped. It is used for different 'glow' levels on illuminated clothing. /// @@ -14780,7 +14767,7 @@ public unsafe interface INatives /// This native sets the emissive intensity for the given ped. It is used for different 'glow' levels on illuminated clothing. /// /// 0.0f - 1.0f - void SetPedEmissiveScale(int ped, float intensity); + void SetPedEmissiveScale(uint ped, float intensity); /// /// Use 0x4E90D746056E273D to set the illuminated clothing glow intensity for a specific ped. /// Returns a float between 0.0 and 1.0 representing the current illuminated clothing glow intensity. @@ -14790,11 +14777,11 @@ public unsafe interface INatives /// Use 0x4E90D746056E273D to set the illuminated clothing glow intensity for a specific ped. /// Returns a float between 0.0 and 1.0 representing the current illuminated clothing glow intensity. /// - float GetPedEmissiveScale(int ped); + float GetPedEmissiveScale(uint ped); bool IsPedShaderReady(IPlayer ped); - bool IsPedShaderReady(int ped); + bool IsPedShaderReady(uint ped); void SetPedEnableCrewEmblem(IPlayer ped, bool toggle); - void SetPedEnableCrewEmblem(int ped, bool toggle); + void SetPedEnableCrewEmblem(uint ped, bool toggle); /// /// This native does absolutely nothing, just a nullsub /// @@ -14806,9 +14793,9 @@ public unsafe interface INatives /// /// Enable/disable ped shadow (ambient occlusion). https://gfycat.com/thankfulesteemedgecko /// - void SetPedAoBlobRendering(int ped, bool toggle); + void SetPedAoBlobRendering(uint ped, bool toggle); bool IsPedSheltered(IPlayer ped); - bool IsPedSheltered(int ped); + bool IsPedSheltered(uint ped); /// /// /// and pitch 0 @@ -14830,7 +14817,7 @@ public unsafe interface INatives void SetSynchronizedSceneHoldLastFrame(int sceneID, bool toggle); bool IsSynchronizedSceneHoldLastFrame(int sceneID); void AttachSynchronizedSceneToEntity(int sceneID, IEntity entity, int boneIndex); - void AttachSynchronizedSceneToEntity(int sceneID, int entity, int boneIndex); + void AttachSynchronizedSceneToEntity(int sceneID, uint entity, int boneIndex); void DetachSynchronizedScene(int sceneID); void TakeOwnershipOfSynchronizedScene(int scene); /// @@ -14860,17 +14847,17 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xF28965D04F570DCA /// /// Most common is 0, 0, 0); followed by 0, 1, 0); and 1, 1, 0); in R* scripts. p4 is very rarely something other than 0. - bool ForcePedMotionState(int ped, uint motionStateHash, bool p2, int p3, bool p4); + bool ForcePedMotionState(uint ped, uint motionStateHash, bool p2, int p3, bool p4); /// /// bool GetPedCurrentMoveBlendRatio(IPlayer ped, ref float speedX, ref float speedY); /// /// - bool GetPedCurrentMoveBlendRatio(int ped, ref float speedX, ref float speedY); + bool GetPedCurrentMoveBlendRatio(uint ped, ref float speedX, ref float speedY); void SetPedMaxMoveBlendRatio(IPlayer ped, float value); - void SetPedMaxMoveBlendRatio(int ped, float value); + void SetPedMaxMoveBlendRatio(uint ped, float value); void SetPedMinMoveBlendRatio(IPlayer ped, float value); - void SetPedMinMoveBlendRatio(int ped, float value); + void SetPedMinMoveBlendRatio(uint ped, float value); /// /// Min: 0.00 /// Max: 10.00 @@ -14892,9 +14879,9 @@ public unsafe interface INatives /// Needs to be looped! /// Note: According to IDA for the Xbox360 xex, when they check bgt they seem to have the min to 0.0f, but the max set to 1.15f not 10.0f. /// - void SetPedMoveRateOverride(int ped, float value); + void SetPedMoveRateOverride(uint ped, float value); void SetPedMoveRateInWaterOverride(IPlayer ped, float p1); - void SetPedMoveRateInWaterOverride(int ped, float p1); + void SetPedMoveRateInWaterOverride(uint ped, float p1); /// /// Checks if the specified sexiness flag is set /// enum eSexinessFlags @@ -14914,7 +14901,7 @@ public unsafe interface INatives /// SF_HOT_PERSON = 2, /// }; /// - bool PedHasSexinessFlagSet(int ped, int sexinessFlag); + bool PedHasSexinessFlagSet(uint ped, int sexinessFlag); /// /// Returns size of array, passed into the second variable. /// See below for usage information. @@ -14940,7 +14927,7 @@ public unsafe interface INatives /// veh[0] = numElements; /// See NativeDB for reference: http://natives.altv.mp/#/0xCFF869CBFA210D82 /// - int GetPedNearbyVehicles(int ped, ref int sizeAndVehs); + int GetPedNearbyVehicles(uint ped, ref int sizeAndVehs); /// /// Return value is the number of peds found and added to the array passed. /// ----------------------------------- @@ -14962,11 +14949,11 @@ public unsafe interface INatives /// /// - is a pointer to an array. The array is filled with peds found nearby the ped supplied to the first argument. /// - ped type to ignore - int GetPedNearbyPeds(int ped, ref int sizeAndPeds, int ignore); + int GetPedNearbyPeds(uint ped, ref int sizeAndPeds, int ignore); bool HaveAllStreamingRequestsCompleted(IPlayer ped); - bool HaveAllStreamingRequestsCompleted(int ped); + bool HaveAllStreamingRequestsCompleted(uint ped); bool IsPedUsingActionMode(IPlayer ped); - bool IsPedUsingActionMode(int ped); + bool IsPedUsingActionMode(uint ped); /// /// /// is usually -1 in the scripts. action is either 0 or "DEFAULT_ACTION". @@ -14974,7 +14961,7 @@ public unsafe interface INatives /// /// /// is usually -1 in the scripts. action is either 0 or "DEFAULT_ACTION". - void SetPedUsingActionMode(int ped, bool p1, int p2, string action); + void SetPedUsingActionMode(uint ped, bool p1, int p2, string action); /// /// /// "MP_FEMALE_ACTION" found multiple times in the b617d scripts. @@ -14982,7 +14969,7 @@ public unsafe interface INatives /// /// /// "MP_FEMALE_ACTION" found multiple times in the b617d scripts. - void SetMovementModeOverride(int ped, string name); + void SetMovementModeOverride(uint ped, string name); /// /// Overrides the ped's collision capsule radius for the current tick. /// Must be called every tick to be effective. @@ -14994,7 +14981,7 @@ public unsafe interface INatives /// Must be called every tick to be effective. /// Setting this to 0.001 will allow warping through some objects. /// - void SetPedCapsule(int ped, float value); + void SetPedCapsule(uint ped, float value); /// /// gtaforums.com/topic/885580-ped-headshotmugshot-txd/ /// @@ -15002,9 +14989,9 @@ public unsafe interface INatives /// /// gtaforums.com/topic/885580-ped-headshotmugshot-txd/ /// - int RegisterPedheadshot(int ped); + int RegisterPedheadshot(uint ped); int RegisterPedheadshotHires(IPlayer ped); - int RegisterPedheadshotHires(int ped); + int RegisterPedheadshotHires(uint ped); /// /// Similar to REGISTER_PEDHEADSHOT but creates a transparent background instead of black. Example: https://i.imgur.com/iHz8ztn.png /// @@ -15012,7 +14999,7 @@ public unsafe interface INatives /// /// Similar to REGISTER_PEDHEADSHOT but creates a transparent background instead of black. Example: https://i.imgur.com/iHz8ztn.png /// - int RegisterPedheadshotTransparent(int ped); + int RegisterPedheadshotTransparent(uint ped); /// /// gtaforums.com/topic/885580-ped-headshotmugshot-txd/ /// @@ -15035,9 +15022,9 @@ public unsafe interface INatives bool HasPedheadshotImgUploadFailed(); bool HasPedheadshotImgUploadSucceeded(); void SetPedHeatscaleOverride(IPlayer ped, float heatScale); - void SetPedHeatscaleOverride(int ped, float heatScale); + void SetPedHeatscaleOverride(uint ped, float heatScale); void DisablePedHeatscaleOverride(IPlayer ped); - void DisablePedHeatscaleOverride(int ped); + void DisablePedHeatscaleOverride(uint ped); void SpawnpointsStartSearch(float p0, float p1, float p2, float p3, float p4, int interiorFlags, float scale, int duration); void SpawnpointsStartSearchInAngledArea(float x1, float y1, float z1, float x2, float y2, float z2, float width, int interiorFlags, float scale, int duration); void SpawnpointsCancelSearch(); @@ -15051,12 +15038,12 @@ public unsafe interface INatives /// /// void SpawnpointsGetSearchResultFlags(int p0, ref int p1); - void SetIkTarget(IPlayer ped, int ikIndex, int entityLookAt, int boneLookAt, float offsetX, float offsetY, float offsetZ, int p7, int blendInDuration, int blendOutDuration); - void SetIkTarget(int ped, int ikIndex, IEntity entityLookAt, int boneLookAt, float offsetX, float offsetY, float offsetZ, int p7, int blendInDuration, int blendOutDuration); + void SetIkTarget(IPlayer ped, int ikIndex, uint entityLookAt, int boneLookAt, float offsetX, float offsetY, float offsetZ, int p7, int blendInDuration, int blendOutDuration); + void SetIkTarget(uint ped, int ikIndex, IEntity entityLookAt, int boneLookAt, float offsetX, float offsetY, float offsetZ, int p7, int blendInDuration, int blendOutDuration); void SetIkTarget(IPlayer ped, int ikIndex, IEntity entityLookAt, int boneLookAt, float offsetX, float offsetY, float offsetZ, int p7, int blendInDuration, int blendOutDuration); - void SetIkTarget(int ped, int ikIndex, int entityLookAt, int boneLookAt, float offsetX, float offsetY, float offsetZ, int p7, int blendInDuration, int blendOutDuration); + void SetIkTarget(uint ped, int ikIndex, uint entityLookAt, int boneLookAt, float offsetX, float offsetY, float offsetZ, int p7, int blendInDuration, int blendOutDuration); void ForceInstantLegIkSetup(IPlayer ped); - void ForceInstantLegIkSetup(int ped); + void ForceInstantLegIkSetup(uint ped); void RequestActionModeAsset(string asset); bool HasActionModeAssetLoaded(string asset); void RemoveActionModeAsset(string asset); @@ -15064,15 +15051,15 @@ public unsafe interface INatives bool HasStealthModeAssetLoaded(string asset); void RemoveStealthModeAsset(string asset); void SetPedLodMultiplier(IPlayer ped, float multiplier); - void SetPedLodMultiplier(int ped, float multiplier); + void SetPedLodMultiplier(uint ped, float multiplier); void SetPedCanLosePropsOnDamage(IPlayer ped, bool toggle, int p2); - void SetPedCanLosePropsOnDamage(int ped, bool toggle, int p2); + void SetPedCanLosePropsOnDamage(uint ped, bool toggle, int p2); void SetForceFootstepUpdate(IPlayer ped, bool toggle); - void SetForceFootstepUpdate(int ped, bool toggle); + void SetForceFootstepUpdate(uint ped, bool toggle); void SetForceStepType(IPlayer ped, bool p1, int type, int p3); - void SetForceStepType(int ped, bool p1, int type, int p3); + void SetForceStepType(uint ped, bool p1, int type, int p3); bool IsAnyHostilePedNearPoint(IPlayer ped, float x, float y, float z, float radius); - bool IsAnyHostilePedNearPoint(int ped, float x, float y, float z, float radius); + bool IsAnyHostilePedNearPoint(uint ped, float x, float y, float z, float radius); /// /// Toggles config flag CPED_CONFIG_FLAG_CanPlayInCarIdles. /// @@ -15080,35 +15067,35 @@ public unsafe interface INatives /// /// Toggles config flag CPED_CONFIG_FLAG_CanPlayInCarIdles. /// - void SetPedCanPlayInCarIdles(int ped, bool toggle); - bool IsTargetPedInPerceptionArea(IPlayer ped, int targetPed, float p2, float p3, float p4, float p5); - bool IsTargetPedInPerceptionArea(int ped, IPlayer targetPed, float p2, float p3, float p4, float p5); + void SetPedCanPlayInCarIdles(uint ped, bool toggle); + bool IsTargetPedInPerceptionArea(IPlayer ped, uint targetPed, float p2, float p3, float p4, float p5); + bool IsTargetPedInPerceptionArea(uint ped, IPlayer targetPed, float p2, float p3, float p4, float p5); bool IsTargetPedInPerceptionArea(IPlayer ped, IPlayer targetPed, float p2, float p3, float p4, float p5); - bool IsTargetPedInPerceptionArea(int ped, int targetPed, float p2, float p3, float p4, float p5); + bool IsTargetPedInPerceptionArea(uint ped, uint targetPed, float p2, float p3, float p4, float p5); /// /// /// and max are usually 100.0 and 200.0 void SetPopControlSphereThisFrame(float x, float y, float z, float min, float max); void ForceZeroMassInCollisions(IPlayer ped); - void ForceZeroMassInCollisions(int ped); + void ForceZeroMassInCollisions(uint ped); void SetDisableHighFallDeath(IPlayer ped, bool toggle); - void SetDisableHighFallDeath(int ped, bool toggle); + void SetDisableHighFallDeath(uint ped, bool toggle); void SetPedPhonePaletteIdx(int p0, int p1); void SetPedSteerBias(IPlayer ped, float value); - void SetPedSteerBias(int ped, float value); + void SetPedSteerBias(uint ped, float value); bool IsPedSwitchingWeapon(IPlayer Ped); - bool IsPedSwitchingWeapon(int Ped); + bool IsPedSwitchingWeapon(uint Ped); void SetPedTreatedAsFriendly(int p0, int p1, int p2); void SetDisablePedMapCollision(IPlayer ped); - void SetDisablePedMapCollision(int ped); + void SetDisablePedMapCollision(uint ped); void EnableMpLight(IPlayer ped, bool toggle); - void EnableMpLight(int ped, bool toggle); + void EnableMpLight(uint ped, bool toggle); bool GetMpLightEnabled(IPlayer ped); - bool GetMpLightEnabled(int ped); + bool GetMpLightEnabled(uint ped); void ClearCoverPointForPed(IPlayer ped); - void ClearCoverPointForPed(int ped); + void ClearCoverPointForPed(uint ped); void SetAllowStuntJumpCamera(IPlayer ped, bool toggle); - void SetAllowStuntJumpCamera(int ped, bool toggle); + void SetAllowStuntJumpCamera(uint ped, bool toggle); /// /// Creates a rope at the specific position, that extends in the specified direction when not attached to any entities. /// __ @@ -15149,11 +15136,11 @@ public unsafe interface INatives /// /// Attaches entity 1 to entity 2. /// - void AttachEntitiesToRope(int ropeId, IEntity ent1, int ent2, float ent1_x, float ent1_y, float ent1_z, float ent2_x, float ent2_y, float ent2_z, float length, bool p10, bool p11, ref int p12, ref int p13); + void AttachEntitiesToRope(int ropeId, IEntity ent1, uint ent2, float ent1_x, float ent1_y, float ent1_z, float ent2_x, float ent2_y, float ent2_z, float length, bool p10, bool p11, ref int p12, ref int p13); /// /// Attaches entity 1 to entity 2. /// - void AttachEntitiesToRope(int ropeId, int ent1, IEntity ent2, float ent1_x, float ent1_y, float ent1_z, float ent2_x, float ent2_y, float ent2_z, float length, bool p10, bool p11, ref int p12, ref int p13); + void AttachEntitiesToRope(int ropeId, uint ent1, IEntity ent2, float ent1_x, float ent1_y, float ent1_z, float ent2_x, float ent2_y, float ent2_z, float length, bool p10, bool p11, ref int p12, ref int p13); /// /// Attaches entity 1 to entity 2. /// @@ -15161,7 +15148,7 @@ public unsafe interface INatives /// /// Attaches entity 1 to entity 2. /// - void AttachEntitiesToRope(int ropeId, int ent1, int ent2, float ent1_x, float ent1_y, float ent1_z, float ent2_x, float ent2_y, float ent2_z, float length, bool p10, bool p11, ref int p12, ref int p13); + void AttachEntitiesToRope(int ropeId, uint ent1, uint ent2, float ent1_x, float ent1_y, float ent1_z, float ent2_x, float ent2_y, float ent2_z, float length, bool p10, bool p11, ref int p12, ref int p13); /// /// The position supplied can be anywhere, and the entity should anchor relative to that point from it's origin. /// @@ -15169,9 +15156,9 @@ public unsafe interface INatives /// /// The position supplied can be anywhere, and the entity should anchor relative to that point from it's origin. /// - void AttachRopeToEntity(int ropeId, int entity, float x, float y, float z, bool p5); + void AttachRopeToEntity(int ropeId, uint entity, float x, float y, float z, bool p5); void DetachRopeFromEntity(int ropeId, IEntity entity); - void DetachRopeFromEntity(int ropeId, int entity); + void DetachRopeFromEntity(int ropeId, uint entity); void RopeSetUpdatePinverts(int ropeId); void RopeSetUpdateOrder(int ropeId, int p1); void RopeSetSmoothReelin(int ropeId, bool p1); @@ -15209,21 +15196,21 @@ public unsafe interface INatives void RopeResetLength(int ropeId, float length); void ApplyImpulseToCloth(float posX, float posY, float posZ, float vecX, float vecY, float vecZ, float impulse); void SetDamping(IEntity entity, int vertex, float value); - void SetDamping(int entity, int vertex, float value); + void SetDamping(uint entity, int vertex, float value); void ActivatePhysics(IEntity entity); - void ActivatePhysics(int entity); + void ActivatePhysics(uint entity); void SetCgoffset(IEntity entity, float x, float y, float z); - void SetCgoffset(int entity, float x, float y, float z); + void SetCgoffset(uint entity, float x, float y, float z); Vector3 GetCgoffset(IEntity entity); - Vector3 GetCgoffset(int entity); + Vector3 GetCgoffset(uint entity); void SetCgAtBoundcenter(IEntity entity); - void SetCgAtBoundcenter(int entity); + void SetCgAtBoundcenter(uint entity); void BreakEntityGlass(IEntity entity, float p1, float p2, float p3, float p4, float p5, float p6, float p7, float p8, int p9, bool p10); - void BreakEntityGlass(int entity, float p1, float p2, float p3, float p4, float p5, float p6, float p7, float p8, int p9, bool p10); - bool GetIsEntityAFrag(int @object); - void SetDisableBreaking(int @object, bool toggle); - void ResetDisableBreaking(int @object); - void SetDisableFragDamage(int @object, bool toggle); + void BreakEntityGlass(uint entity, float p1, float p2, float p3, float p4, float p5, float p6, float p7, float p8, int p9, bool p10); + bool GetIsEntityAFrag(uint @object); + void SetDisableBreaking(uint @object, bool toggle); + void ResetDisableBreaking(uint @object); + void SetDisableFragDamage(uint @object, bool toggle); /// /// PED_RAGDOLL_BUMP Proof? /// @@ -15231,7 +15218,7 @@ public unsafe interface INatives /// /// PED_RAGDOLL_BUMP Proof? /// - void SetUseKinematicPhysics(int entity, bool toggle); + void SetUseKinematicPhysics(uint entity, bool toggle); void SetInStuntMode(bool p0); /// /// Related to the lower-end of a vehicles fTractionCurve, e.g., from standing starts and acceleration from low/zero speeds. @@ -15240,19 +15227,19 @@ public unsafe interface INatives /// /// Gets the ped for a specified player index. /// - int GetPlayerPed(IPlayer player); + uint GetPlayerPed(IPlayer player); /// /// Gets the ped for a specified player index. /// - int GetPlayerPed(int player); + uint GetPlayerPed(uint player); /// /// Does the same like PLAYER::GET_PLAYER_PED /// - int GetPlayerPedScriptIndex(IPlayer player); + uint GetPlayerPedScriptIndex(IPlayer player); /// /// Does the same like PLAYER::GET_PLAYER_PED /// - int GetPlayerPedScriptIndex(int player); + uint GetPlayerPedScriptIndex(uint player); /// /// Set the model for a specific Player. Be aware that this will destroy the current Ped for the Player and create a new one, any reference to the old ped should be reset /// Make sure to request the model first and wait until it has loaded. @@ -15262,17 +15249,17 @@ public unsafe interface INatives /// Set the model for a specific Player. Be aware that this will destroy the current Ped for the Player and create a new one, any reference to the old ped should be reset /// Make sure to request the model first and wait until it has loaded. /// - void SetPlayerModel(int player, uint model); - void ChangePlayerPed(IPlayer player, int ped, bool p2, bool resetDamage); - void ChangePlayerPed(int player, IPlayer ped, bool p2, bool resetDamage); + void SetPlayerModel(uint player, uint model); + void ChangePlayerPed(IPlayer player, uint ped, bool p2, bool resetDamage); + void ChangePlayerPed(uint player, IPlayer ped, bool p2, bool resetDamage); void ChangePlayerPed(IPlayer player, IPlayer ped, bool p2, bool resetDamage); - void ChangePlayerPed(int player, int ped, bool p2, bool resetDamage); + void ChangePlayerPed(uint player, uint ped, bool p2, bool resetDamage); /// /// void GetPlayerRgbColour(IPlayer player, ref int r, ref int g, ref int b); /// /// - void GetPlayerRgbColour(int player, ref int r, ref int g, ref int b); + void GetPlayerRgbColour(uint player, ref int r, ref int g, ref int b); /// /// Gets the number of players in the current session. /// @@ -15287,7 +15274,7 @@ public unsafe interface INatives /// Gets the player's team. /// Does nothing in singleplayer. /// - int GetPlayerTeam(int player); + int GetPlayerTeam(uint player); /// /// Set player team on deathmatch and last team standing.. /// @@ -15295,10 +15282,10 @@ public unsafe interface INatives /// /// Set player team on deathmatch and last team standing.. /// - void SetPlayerTeam(int player, int team); + void SetPlayerTeam(uint player, int team); int GetNumberOfPlayersInTeam(int team); string GetPlayerName(IPlayer player); - string GetPlayerName(int player); + string GetPlayerName(uint player); /// /// Remnant from GTA IV. Does nothing in GTA V. /// @@ -15306,9 +15293,9 @@ public unsafe interface INatives /// /// Remnant from GTA IV. Does nothing in GTA V. /// - float GetWantedLevelRadius(int player); + float GetWantedLevelRadius(uint player); Vector3 GetPlayerWantedCentrePosition(IPlayer player); - Vector3 GetPlayerWantedCentrePosition(int player); + Vector3 GetPlayerWantedCentrePosition(uint player); /// /// # Predominant call signatures /// # Parameter value ranges @@ -15326,7 +15313,7 @@ public unsafe interface INatives /// :SET_PLAYER_WANTED_CENTRE_POSITION(PLAYER::PLAYER_ID(), ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1)); /// ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), 1) /// Not set by any call - void SetPlayerWantedCentrePosition(int player, ref Vector3 position, bool p2, bool p3); + void SetPlayerWantedCentrePosition(uint player, ref Vector3 position, bool p2, bool p3); /// /// Drft /// @@ -15342,7 +15329,7 @@ public unsafe interface INatives /// disableNoMission- Disables When Off Mission- appears to always be false /// /// is an integer value representing 0 to 5 stars even though the game supports the 6th wanted level but no police will appear since no definitions are present for it in the game files - void SetPlayerWantedLevel(int player, int wantedLevel, bool disableNoMission); + void SetPlayerWantedLevel(uint player, int wantedLevel, bool disableNoMission); /// /// /// is always false in R* scripts @@ -15350,7 +15337,7 @@ public unsafe interface INatives /// /// /// is always false in R* scripts - void SetPlayerWantedLevelNoDrop(int player, int wantedLevel, bool p2); + void SetPlayerWantedLevelNoDrop(uint player, int wantedLevel, bool p2); /// /// Forces any pending wanted level to be applied to the specified player immediately. /// Call SET_PLAYER_WANTED_LEVEL with the desired wanted level, followed by SET_PLAYER_WANTED_LEVEL_NOW. @@ -15362,17 +15349,17 @@ public unsafe interface INatives /// Call SET_PLAYER_WANTED_LEVEL with the desired wanted level, followed by SET_PLAYER_WANTED_LEVEL_NOW. /// Second parameter is unknown (always false). /// - void SetPlayerWantedLevelNow(int player, bool p1); + void SetPlayerWantedLevelNow(uint player, bool p1); bool ArePlayerFlashingStarsAboutToDrop(IPlayer player); - bool ArePlayerFlashingStarsAboutToDrop(int player); + bool ArePlayerFlashingStarsAboutToDrop(uint player); bool ArePlayerStarsGreyedOut(IPlayer player); - bool ArePlayerStarsGreyedOut(int player); + bool ArePlayerStarsGreyedOut(uint player); bool IsWantedAndHasBeenSeenByCops(IPlayer player); - bool IsWantedAndHasBeenSeenByCops(int player); + bool IsWantedAndHasBeenSeenByCops(uint player); void SetDispatchCopsForPlayer(IPlayer player, bool toggle); - void SetDispatchCopsForPlayer(int player, bool toggle); + void SetDispatchCopsForPlayer(uint player, bool toggle); bool IsPlayerWantedLevelGreater(IPlayer player, int wantedLevel); - bool IsPlayerWantedLevelGreater(int player, int wantedLevel); + bool IsPlayerWantedLevelGreater(uint player, int wantedLevel); /// /// PLAYER::GET_PLAYER_WANTED_LEVEL(player); executes in less than half the time. Which means that it's worth first checking if the wanted level needs to be cleared before clearing. However, this is mostly about good code practice and can important in other situations. The difference in time in this example is negligible. /// @@ -15380,11 +15367,11 @@ public unsafe interface INatives /// /// PLAYER::GET_PLAYER_WANTED_LEVEL(player); executes in less than half the time. Which means that it's worth first checking if the wanted level needs to be cleared before clearing. However, this is mostly about good code practice and can important in other situations. The difference in time in this example is negligible. /// - void ClearPlayerWantedLevel(int player); + void ClearPlayerWantedLevel(uint player); bool IsPlayerDead(IPlayer player); - bool IsPlayerDead(int player); + bool IsPlayerDead(uint player); bool IsPlayerPressingHorn(IPlayer player); - bool IsPlayerPressingHorn(int player); + bool IsPlayerPressingHorn(uint player); /// /// SPC_AMBIENT_SCRIPT = (1 << 1), /// SPC_CLEAR_TASKS = (1 << 2), @@ -15410,9 +15397,9 @@ public unsafe interface INatives /// SPC_ALLOW_PLAYER_DAMAGE = (1 << 9), /// See NativeDB for reference: http://natives.altv.mp/#/0x8D32347D6D4C40A2 /// - void SetPlayerControl(int player, bool bHasControl, int flags); + void SetPlayerControl(uint player, bool bHasControl, int flags); int GetPlayerWantedLevel(IPlayer player); - int GetPlayerWantedLevel(int player); + int GetPlayerWantedLevel(uint player); void SetMaxWantedLevel(int maxWantedLevel); /// /// If toggle is set to false: @@ -15428,7 +15415,7 @@ public unsafe interface INatives /// /// The player will be ignored by the police if toggle is set to true /// - void SetPoliceIgnorePlayer(int player, bool toggle); + void SetPoliceIgnorePlayer(uint player, bool toggle); /// /// Checks whether the specified player has a Ped, the Ped is not dead, is not injured and is not arrested. /// @@ -15436,15 +15423,15 @@ public unsafe interface INatives /// /// Checks whether the specified player has a Ped, the Ped is not dead, is not injured and is not arrested. /// - bool IsPlayerPlaying(int player); + bool IsPlayerPlaying(uint player); void SetEveryoneIgnorePlayer(IPlayer player, bool toggle); - void SetEveryoneIgnorePlayer(int player, bool toggle); + void SetEveryoneIgnorePlayer(uint player, bool toggle); void SetAllRandomPedsFlee(IPlayer player, bool toggle); - void SetAllRandomPedsFlee(int player, bool toggle); + void SetAllRandomPedsFlee(uint player, bool toggle); void SetAllRandomPedsFleeThisFrame(IPlayer player); - void SetAllRandomPedsFleeThisFrame(int player); + void SetAllRandomPedsFleeThisFrame(uint player); void SetAllNeutralRandomPedsFlee(IPlayer player, bool toggle); - void SetAllNeutralRandomPedsFlee(int player, bool toggle); + void SetAllNeutralRandomPedsFlee(uint player, bool toggle); /// /// - This is called after SET_ALL_RANDOM_PEDS_FLEE_THIS_FRAME /// @@ -15452,11 +15439,11 @@ public unsafe interface INatives /// /// - This is called after SET_ALL_RANDOM_PEDS_FLEE_THIS_FRAME /// - void SetAllNeutralRandomPedsFleeThisFrame(int player); + void SetAllNeutralRandomPedsFleeThisFrame(uint player); void SetLawPedsCanAttackNonWantedPlayerThisFrame(IPlayer player); - void SetLawPedsCanAttackNonWantedPlayerThisFrame(int player); + void SetLawPedsCanAttackNonWantedPlayerThisFrame(uint player); void SetIgnoreLowPriorityShockingEvents(IPlayer player, bool toggle); - void SetIgnoreLowPriorityShockingEvents(int player, bool toggle); + void SetIgnoreLowPriorityShockingEvents(uint player, bool toggle); void SetWantedLevelMultiplier(float multiplier); /// /// Max value is 1.0 @@ -15465,14 +15452,14 @@ public unsafe interface INatives /// /// Max value is 1.0 /// - void SetWantedLevelDifficulty(int player, float difficulty); + void SetWantedLevelDifficulty(uint player, float difficulty); void ResetWantedLevelDifficulty(IPlayer player); - void ResetWantedLevelDifficulty(int player); + void ResetWantedLevelDifficulty(uint player); int GetWantedLevelTimeToEscape(); void SetWantedLevelHiddenEscapeTime(IPlayer player, int wantedLevel, int lossTime); - void SetWantedLevelHiddenEscapeTime(int player, int wantedLevel, int lossTime); + void SetWantedLevelHiddenEscapeTime(uint player, int wantedLevel, int lossTime); void ResetWantedLevelHiddenEscapeTime(IPlayer player); - void ResetWantedLevelHiddenEscapeTime(int player); + void ResetWantedLevelHiddenEscapeTime(uint player); void StartFiringAmnesty(int duration); /// /// From am_armybase.ysc.c4: @@ -15501,7 +15488,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xE9B09589827545E7 /// /// :REPORT_CRIME(PLAYER::PLAYER_ID(), 37, PLAYER::GET_WANTED_LEVEL_THRESHOLD(1)); - void ReportCrime(int player, int crimeType, int wantedLvlThresh); + void ReportCrime(uint player, int crimeType, int wantedLvlThresh); /// /// /// see REPORT_CRIME @@ -15509,7 +15496,7 @@ public unsafe interface INatives /// /// /// see REPORT_CRIME - void SuppressCrimeThisFrame(int player, int crimeType); + void SuppressCrimeThisFrame(uint player, int crimeType); /// /// This native is used in both singleplayer and multiplayer scripts. /// Always used like this in scripts @@ -15521,7 +15508,7 @@ public unsafe interface INatives /// Always used like this in scripts /// /// :UPDATE_WANTED_POSITION_THIS_FRAME(PLAYER::PLAYER_ID()); - void UpdateWantedPositionThisFrame(int player); + void UpdateWantedPositionThisFrame(uint player); /// /// This has been found in use in the decompiled files. /// @@ -15529,9 +15516,9 @@ public unsafe interface INatives /// /// This has been found in use in the decompiled files. /// - void SuppressLosingWantedLevelIfHiddenThisFrame(int player); + void SuppressLosingWantedLevelIfHiddenThisFrame(uint player); void AllowEvasionHudIfDisablingHiddenEvasionThisFrame(IPlayer player, int p1); - void AllowEvasionHudIfDisablingHiddenEvasionThisFrame(int player, int p1); + void AllowEvasionHudIfDisablingHiddenEvasionThisFrame(uint player, int p1); /// /// This has been found in use in the decompiled files. /// @@ -15539,11 +15526,11 @@ public unsafe interface INatives /// /// This has been found in use in the decompiled files. /// - void ForceStartHiddenEvasion(int player); + void ForceStartHiddenEvasion(uint player); void SuppressWitnessesCallingPoliceThisFrame(IPlayer player); - void SuppressWitnessesCallingPoliceThisFrame(int player); + void SuppressWitnessesCallingPoliceThisFrame(uint player); void ReportPoliceSpottedPlayer(IPlayer player); - void ReportPoliceSpottedPlayer(int player); + void ReportPoliceSpottedPlayer(uint player); /// /// PLAYER::SET_LAW_RESPONSE_DELAY_OVERRIDE(rPtr((&l_122) + 71)); // Found in decompilation /// *** @@ -15558,23 +15545,23 @@ public unsafe interface INatives /// void ResetLawResponseDelayOverride(); bool CanPlayerStartMission(IPlayer player); - bool CanPlayerStartMission(int player); + bool CanPlayerStartMission(uint player); bool IsPlayerReadyForCutscene(IPlayer player); - bool IsPlayerReadyForCutscene(int player); - bool IsPlayerTargettingEntity(IPlayer player, int entity); - bool IsPlayerTargettingEntity(int player, IEntity entity); + bool IsPlayerReadyForCutscene(uint player); + bool IsPlayerTargettingEntity(IPlayer player, uint entity); + bool IsPlayerTargettingEntity(uint player, IEntity entity); bool IsPlayerTargettingEntity(IPlayer player, IEntity entity); - bool IsPlayerTargettingEntity(int player, int entity); + bool IsPlayerTargettingEntity(uint player, uint entity); /// /// Assigns the handle of locked-on melee target to *entity that you pass it. /// Returns false if no entity found. /// - bool GetPlayerTargetEntity(IPlayer player, ref int entity); + bool GetPlayerTargetEntity(IPlayer player, ref uint entity); /// /// Assigns the handle of locked-on melee target to *entity that you pass it. /// Returns false if no entity found. /// - bool GetPlayerTargetEntity(int player, ref int entity); + bool GetPlayerTargetEntity(uint player, ref uint entity); /// /// Gets a value indicating whether the specified player is currently aiming freely. /// @@ -15582,15 +15569,15 @@ public unsafe interface INatives /// /// Gets a value indicating whether the specified player is currently aiming freely. /// - bool IsPlayerFreeAiming(int player); + bool IsPlayerFreeAiming(uint player); /// /// Gets a value indicating whether the specified player is currently aiming freely at the specified entity. /// - bool IsPlayerFreeAimingAtEntity(IPlayer player, int entity); + bool IsPlayerFreeAimingAtEntity(IPlayer player, uint entity); /// /// Gets a value indicating whether the specified player is currently aiming freely at the specified entity. /// - bool IsPlayerFreeAimingAtEntity(int player, IEntity entity); + bool IsPlayerFreeAimingAtEntity(uint player, IEntity entity); /// /// Gets a value indicating whether the specified player is currently aiming freely at the specified entity. /// @@ -15598,17 +15585,17 @@ public unsafe interface INatives /// /// Gets a value indicating whether the specified player is currently aiming freely at the specified entity. /// - bool IsPlayerFreeAimingAtEntity(int player, int entity); + bool IsPlayerFreeAimingAtEntity(uint player, uint entity); /// /// Returns TRUE if it found an entity in your crosshair within range of your weapon. Assigns the handle of the target to the *entity that you pass it. /// Returns false if no entity found. /// - bool GetEntityPlayerIsFreeAimingAt(IPlayer player, ref int entity); + bool GetEntityPlayerIsFreeAimingAt(IPlayer player, ref uint entity); /// /// Returns TRUE if it found an entity in your crosshair within range of your weapon. Assigns the handle of the target to the *entity that you pass it. /// Returns false if no entity found. /// - bool GetEntityPlayerIsFreeAimingAt(int player, ref int entity); + bool GetEntityPlayerIsFreeAimingAt(uint player, ref uint entity); /// /// Affects the range of auto aim target. /// @@ -15616,7 +15603,7 @@ public unsafe interface INatives /// /// Affects the range of auto aim target. /// - void SetPlayerLockonRangeOverride(int player, float range); + void SetPlayerLockonRangeOverride(uint player, float range); /// /// Set whether this player should be able to do drive-bys. /// "A drive-by is when a ped is aiming/shooting from vehicle. This includes middle finger taunts. By setting this value to false I confirm the player is unable to do all that. Tested on tick." @@ -15626,7 +15613,7 @@ public unsafe interface INatives /// Set whether this player should be able to do drive-bys. /// "A drive-by is when a ped is aiming/shooting from vehicle. This includes middle finger taunts. By setting this value to false I confirm the player is unable to do all that. Tested on tick." /// - void SetPlayerCanDoDriveBy(int player, bool toggle); + void SetPlayerCanDoDriveBy(uint player, bool toggle); /// /// Sets whether this player can be hassled by gangs. /// @@ -15634,7 +15621,7 @@ public unsafe interface INatives /// /// Sets whether this player can be hassled by gangs. /// - void SetPlayerCanBeHassledByGangs(int player, bool toggle); + void SetPlayerCanBeHassledByGangs(uint player, bool toggle); /// /// Sets whether this player can take cover. /// @@ -15642,28 +15629,28 @@ public unsafe interface INatives /// /// Sets whether this player can take cover. /// - void SetPlayerCanUseCover(int player, bool toggle); + void SetPlayerCanUseCover(uint player, bool toggle); /// /// Gets the maximum wanted level the player can get. /// Ranges from 0 to 5. /// int GetMaxWantedLevel(); bool IsPlayerTargettingAnything(IPlayer player); - bool IsPlayerTargettingAnything(int player); + bool IsPlayerTargettingAnything(uint player); void SetPlayerSprint(IPlayer player, bool toggle); - void SetPlayerSprint(int player, bool toggle); + void SetPlayerSprint(uint player, bool toggle); void ResetPlayerStamina(IPlayer player); - void ResetPlayerStamina(int player); + void ResetPlayerStamina(uint player); void RestorePlayerStamina(IPlayer player, float p1); - void RestorePlayerStamina(int player, float p1); + void RestorePlayerStamina(uint player, float p1); float GetPlayerSprintStaminaRemaining(IPlayer player); - float GetPlayerSprintStaminaRemaining(int player); + float GetPlayerSprintStaminaRemaining(uint player); float GetPlayerSprintTimeRemaining(IPlayer player); - float GetPlayerSprintTimeRemaining(int player); + float GetPlayerSprintTimeRemaining(uint player); float GetPlayerUnderwaterTimeRemaining(IPlayer player); - float GetPlayerUnderwaterTimeRemaining(int player); + float GetPlayerUnderwaterTimeRemaining(uint player); float SetPlayerUnderwaterBreathPercentRemaining(IPlayer player, float time); - float SetPlayerUnderwaterBreathPercentRemaining(int player, float time); + float SetPlayerUnderwaterBreathPercentRemaining(uint player, float time); /// /// Returns the group ID the player is member of. /// @@ -15671,9 +15658,9 @@ public unsafe interface INatives /// /// Returns the group ID the player is member of. /// - int GetPlayerGroup(int player); + int GetPlayerGroup(uint player); int GetPlayerMaxArmour(IPlayer player); - int GetPlayerMaxArmour(int player); + int GetPlayerMaxArmour(uint player); /// /// Can the player control himself, used to disable controls for player for things like a cutscene. /// --- @@ -15685,14 +15672,14 @@ public unsafe interface INatives /// --- /// You can't disable controls with this, use SET_PLAYER_CONTROL(...) for this. /// - bool IsPlayerControlOn(int player); + bool IsPlayerControlOn(uint player); /// /// Returns true when the player is not able to control the cam i.e. when running a benchmark test, switching the player or viewing a cutscene. /// Note: I am not 100% sure if the native actually checks if the cam control is disabled but it seems promising. /// bool GetAreCameraControlsDisabled(); bool IsPlayerScriptControlOn(IPlayer player); - bool IsPlayerScriptControlOn(int player); + bool IsPlayerScriptControlOn(uint player); /// /// Returns TRUE if the player ('s ped) is climbing at the moment. /// @@ -15700,7 +15687,7 @@ public unsafe interface INatives /// /// Returns TRUE if the player ('s ped) is climbing at the moment. /// - bool IsPlayerClimbing(int player); + bool IsPlayerClimbing(uint player); /// /// Return true while player is being arrested / busted. /// If atArresting is set to 0, this function will return 1 only when the busted screen is shown. @@ -15712,21 +15699,21 @@ public unsafe interface INatives /// If atArresting is set to 0, this function will return 1 only when the busted screen is shown. /// /// If atArresting is set to 1, this function will return 1 when player is being arrested (while player is putting his hand up, but still have control) - bool IsPlayerBeingArrested(int player, bool atArresting); + bool IsPlayerBeingArrested(uint player, bool atArresting); void ResetPlayerArrestState(IPlayer player); - void ResetPlayerArrestState(int player); + void ResetPlayerArrestState(uint player); /// /// Alternative: GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID(), 1); /// - int GetPlayersLastVehicle(); + uint GetPlayersLastVehicle(); /// /// Returns the same as PLAYER_ID and NETWORK_PLAYER_ID_TO_INT /// - int GetPlayerIndex(); + uint GetPlayerIndex(); /// /// /// Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). - int IntToPlayerindex(int value); + uint IntToPlayerindex(int value); /// /// -------------------------------------------------------- /// if (NETWORK::NETWORK_IS_PARTICIPANT_ACTIVE(PLAYER::INT_TO_PARTICIPANTINDEX(i))) @@ -15734,24 +15721,24 @@ public unsafe interface INatives /// Simply returns whatever is passed to it (Regardless of whether the handle is valid or not). int IntToParticipantindex(int value); int GetTimeSincePlayerHitVehicle(IPlayer player); - int GetTimeSincePlayerHitVehicle(int player); + int GetTimeSincePlayerHitVehicle(uint player); int GetTimeSincePlayerHitPed(IPlayer player); - int GetTimeSincePlayerHitPed(int player); + int GetTimeSincePlayerHitPed(uint player); int GetTimeSincePlayerDroveOnPavement(IPlayer player); - int GetTimeSincePlayerDroveOnPavement(int player); + int GetTimeSincePlayerDroveOnPavement(uint player); int GetTimeSincePlayerDroveAgainstTraffic(IPlayer player); - int GetTimeSincePlayerDroveAgainstTraffic(int player); + int GetTimeSincePlayerDroveAgainstTraffic(uint player); bool IsPlayerFreeForAmbientTask(IPlayer player); - bool IsPlayerFreeForAmbientTask(int player); + bool IsPlayerFreeForAmbientTask(uint player); /// /// Always returns 0 in story mode. /// /// This returns YOUR 'identity' as a Player type. - int PlayerId(); + uint PlayerId(); /// /// Returns current player ped /// - int PlayerPedId(); + uint PlayerPedId(); /// /// Does exactly the same thing as PLAYER_ID() /// @@ -15767,12 +15754,12 @@ public unsafe interface INatives void ForceCleanupForAllThreadsWithThisName(string name, int cleanupFlags); void ForceCleanupForThreadWithThisId(int id, int cleanupFlags); int GetCauseOfMostRecentForceCleanup(); - void SetPlayerMayOnlyEnterThisVehicle(IPlayer player, int vehicle); - void SetPlayerMayOnlyEnterThisVehicle(int player, IVehicle vehicle); + void SetPlayerMayOnlyEnterThisVehicle(IPlayer player, uint vehicle); + void SetPlayerMayOnlyEnterThisVehicle(uint player, IVehicle vehicle); void SetPlayerMayOnlyEnterThisVehicle(IPlayer player, IVehicle vehicle); - void SetPlayerMayOnlyEnterThisVehicle(int player, int vehicle); + void SetPlayerMayOnlyEnterThisVehicle(uint player, uint vehicle); void SetPlayerMayNotEnterAnyVehicle(IPlayer player); - void SetPlayerMayNotEnterAnyVehicle(int player); + void SetPlayerMayNotEnterAnyVehicle(uint player); /// /// 1 - Welcome to Los Santos /// 2 - A Friendship Resurrected @@ -15823,7 +15810,7 @@ public unsafe interface INatives /// Use 0x733A643B5B0C53C1 instead if you want Ragdoll enabled, which is equal to: /// *(DWORD *)(playerPedAddress + 0x188) |= (1 << 9); /// - void SetPlayerInvincible(int player, bool toggle); + void SetPlayerInvincible(uint player, bool toggle); /// /// Returns the Player's Invincible status. /// bool IsPlayerInvincible(Player player) @@ -15851,7 +15838,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xB721981B2B939E07 /// /// This function will always return false if 0x733A643B5B0C53C1 is used to set the invincibility status. To always get the correct result, use this: - bool GetPlayerInvincible(int player); + bool GetPlayerInvincible(uint player); /// /// /// Always returns false. @@ -15859,15 +15846,15 @@ public unsafe interface INatives /// /// /// Always returns false. - bool GetPlayerDebugInvincible(int player); + bool GetPlayerDebugInvincible(uint player); void SetPlayerInvincibleButHasReactions(IPlayer player, bool toggle); - void SetPlayerInvincibleButHasReactions(int player, bool toggle); + void SetPlayerInvincibleButHasReactions(uint player, bool toggle); void SetPlayerCanCollectDroppedMoney(IPlayer player, bool p1); - void SetPlayerCanCollectDroppedMoney(int player, bool p1); + void SetPlayerCanCollectDroppedMoney(uint player, bool p1); void RemovePlayerHelmet(IPlayer player, bool p2); - void RemovePlayerHelmet(int player, bool p2); + void RemovePlayerHelmet(uint player, bool p2); void GivePlayerRagdollControl(IPlayer player, bool toggle); - void GivePlayerRagdollControl(int player, bool toggle); + void GivePlayerRagdollControl(uint player, bool toggle); /// /// Example from fm_mission_controler.ysc.c4: /// All other decompiled scripts using this seem to be using the player id as the first parameter, so I feel the need to confirm it as so. @@ -15881,7 +15868,7 @@ public unsafe interface INatives /// No need to confirm it says PLAYER_ID() so it uses PLAYER_ID() lol. /// /// :SET_PLAYER_LOCKON(PLAYER::PLAYER_ID(), 1); - void SetPlayerLockon(int player, bool toggle); + void SetPlayerLockon(uint player, bool toggle); /// /// Sets your targeting mode. /// 0 = Assisted Aim - Full @@ -15900,13 +15887,13 @@ public unsafe interface INatives /// bool GetIsUsingHoodCamera(); void ClearPlayerHasDamagedAtLeastOnePed(IPlayer player); - void ClearPlayerHasDamagedAtLeastOnePed(int player); + void ClearPlayerHasDamagedAtLeastOnePed(uint player); bool HasPlayerDamagedAtLeastOnePed(IPlayer player); - bool HasPlayerDamagedAtLeastOnePed(int player); + bool HasPlayerDamagedAtLeastOnePed(uint player); void ClearPlayerHasDamagedAtLeastOneNonAnimalPed(IPlayer player); - void ClearPlayerHasDamagedAtLeastOneNonAnimalPed(int player); + void ClearPlayerHasDamagedAtLeastOneNonAnimalPed(uint player); bool HasPlayerDamagedAtLeastOneNonAnimalPed(IPlayer player); - bool HasPlayerDamagedAtLeastOneNonAnimalPed(int player); + bool HasPlayerDamagedAtLeastOneNonAnimalPed(uint player); /// /// This can be between 1.0f - 14.9f /// You can change the max in IDA from 15.0. I say 15.0 as the function blrs if what you input is greater than or equal to 15.0 hence why it's 14.9 max default. @@ -15916,7 +15903,7 @@ public unsafe interface INatives /// This can be between 1.0f - 14.9f /// You can change the max in IDA from 15.0. I say 15.0 as the function blrs if what you input is greater than or equal to 15.0 hence why it's 14.9 max default. /// - void SetAirDragMultiplierForPlayersVehicle(int player, float multiplier); + void SetAirDragMultiplierForPlayersVehicle(uint player, float multiplier); /// /// Swim speed multiplier. /// Just call it one time, it is not required to be called once every tick. - Note copied from below native. @@ -15930,7 +15917,7 @@ public unsafe interface INatives /// Note: At least the IDA method if you change the max float multiplier from 1.5 it will change it for both this and RUN_SPRINT below. I say 1.5 as the function blrs if what you input is greater than or equal to 1.5 hence why it's 1.49 max default. /// /// goes up to 1.49 - void SetSwimMultiplierForPlayer(int player, float multiplier); + void SetSwimMultiplierForPlayer(uint player, float multiplier); /// /// Just call it one time, it is not required to be called once every tick. /// Note: At least the IDA method if you change the max float multiplier from 1.5 it will change it for both this and SWIM above. I say 1.5 as the function blrs if what you input is greater than or equal to 1.5 hence why it's 1.49 max default. @@ -15942,7 +15929,7 @@ public unsafe interface INatives /// Note: At least the IDA method if you change the max float multiplier from 1.5 it will change it for both this and SWIM above. I say 1.5 as the function blrs if what you input is greater than or equal to 1.5 hence why it's 1.49 max default. /// /// goes up to 1.49 any value above will be completely overruled by the game and the multiplier will not take effect, this can be edited in memory however. - void SetRunSprintMultiplierForPlayer(int player, float multiplier); + void SetRunSprintMultiplierForPlayer(uint player, float multiplier); /// /// Returns the time since the character was arrested in (ms) milliseconds. /// example @@ -15962,11 +15949,11 @@ public unsafe interface INatives void AssistedMovementCloseRoute(); void AssistedMovementFlushRoute(); void SetPlayerForcedAim(IPlayer player, bool toggle); - void SetPlayerForcedAim(int player, bool toggle); + void SetPlayerForcedAim(uint player, bool toggle); void SetPlayerForcedZoom(IPlayer player, bool toggle); - void SetPlayerForcedZoom(int player, bool toggle); + void SetPlayerForcedZoom(uint player, bool toggle); void SetPlayerForceSkipAimIntro(IPlayer player, bool toggle); - void SetPlayerForceSkipAimIntro(int player, bool toggle); + void SetPlayerForceSkipAimIntro(uint player, bool toggle); /// /// Inhibits the player from using any method of combat including melee and firearms. /// NOTE: Only disables the firing for one frame @@ -15976,13 +15963,13 @@ public unsafe interface INatives /// Inhibits the player from using any method of combat including melee and firearms. /// NOTE: Only disables the firing for one frame /// - void DisablePlayerFiring(int player, bool toggle); + void DisablePlayerFiring(uint player, bool toggle); /// /// Used only once in R* scripts (freemode.ysc). /// void DisablePlayerThrowGrenadeWhileUsingGun(); void SetDisableAmbientMeleeMove(IPlayer player, bool toggle); - void SetDisableAmbientMeleeMove(int player, bool toggle); + void SetDisableAmbientMeleeMove(uint player, bool toggle); /// /// Default is 100. Use player id and not ped id. For instance: PLAYER::SET_PLAYER_MAX_ARMOUR(PLAYER::PLAYER_ID(), 100); // main_persistent.ct4 /// @@ -15990,7 +15977,7 @@ public unsafe interface INatives /// /// Default is 100. Use player id and not ped id. For instance: PLAYER::SET_PLAYER_MAX_ARMOUR(PLAYER::PLAYER_ID(), 100); // main_persistent.ct4 /// - void SetPlayerMaxArmour(int player, int value); + void SetPlayerMaxArmour(uint player, int value); /// /// /// is always 0 in the scripts @@ -15998,9 +15985,9 @@ public unsafe interface INatives /// /// /// is always 0 in the scripts - void SpecialAbilityActivate(int player, int p1); + void SpecialAbilityActivate(uint player, int p1); void SetSpecialAbilityMp(IPlayer player, int p1, int p2); - void SetSpecialAbilityMp(int player, int p1, int p2); + void SetSpecialAbilityMp(uint player, int p1, int p2); /// /// /// is always 0 in the scripts @@ -16008,15 +15995,15 @@ public unsafe interface INatives /// /// /// is always 0 in the scripts - void SpecialAbilityDeactivateMp(int player, int p1); + void SpecialAbilityDeactivateMp(uint player, int p1); void SpecialAbilityDeactivate(IPlayer player, int p1); - void SpecialAbilityDeactivate(int player, int p1); + void SpecialAbilityDeactivate(uint player, int p1); void SpecialAbilityDeactivateFast(IPlayer player, int p1); - void SpecialAbilityDeactivateFast(int player, int p1); + void SpecialAbilityDeactivateFast(uint player, int p1); void SpecialAbilityReset(IPlayer player, int p1); - void SpecialAbilityReset(int player, int p1); + void SpecialAbilityReset(uint player, int p1); void SpecialAbilityChargeOnMissionFailed(IPlayer player, int p1); - void SpecialAbilityChargeOnMissionFailed(int player, int p1); + void SpecialAbilityChargeOnMissionFailed(uint player, int p1); /// /// Every occurrence of p1 & p2 were both true. /// @@ -16024,7 +16011,7 @@ public unsafe interface INatives /// /// Every occurrence of p1 & p2 were both true. /// - void SpecialAbilityChargeSmall(int player, bool p1, bool p2, int p3); + void SpecialAbilityChargeSmall(uint player, bool p1, bool p2, int p3); /// /// Only 1 match. Both p1 & p2 were true. /// @@ -16032,7 +16019,7 @@ public unsafe interface INatives /// /// Only 1 match. Both p1 & p2 were true. /// - void SpecialAbilityChargeMedium(int player, bool p1, bool p2, int p3); + void SpecialAbilityChargeMedium(uint player, bool p1, bool p2, int p3); /// /// 2 matches. p1 was always true. /// @@ -16040,15 +16027,15 @@ public unsafe interface INatives /// /// 2 matches. p1 was always true. /// - void SpecialAbilityChargeLarge(int player, bool p1, bool p2, int p3); + void SpecialAbilityChargeLarge(uint player, bool p1, bool p2, int p3); /// /// /// appears to always be 1 (only comes up twice) - void SpecialAbilityChargeContinuous(IPlayer player, int p1, int p2); + void SpecialAbilityChargeContinuous(IPlayer player, uint p1, int p2); /// /// /// appears to always be 1 (only comes up twice) - void SpecialAbilityChargeContinuous(int player, IPlayer p1, int p2); + void SpecialAbilityChargeContinuous(uint player, IPlayer p1, int p2); /// /// /// appears to always be 1 (only comes up twice) @@ -16056,7 +16043,7 @@ public unsafe interface INatives /// /// /// appears to always be 1 (only comes up twice) - void SpecialAbilityChargeContinuous(int player, int p1, int p2); + void SpecialAbilityChargeContinuous(uint player, uint p1, int p2); /// /// /// appears as 5, 10, 15, 25, or 30. p2 is always true. @@ -16064,7 +16051,7 @@ public unsafe interface INatives /// /// /// appears as 5, 10, 15, 25, or 30. p2 is always true. - void SpecialAbilityChargeAbsolute(int player, int p1, bool p2, int p3); + void SpecialAbilityChargeAbsolute(uint player, int p1, bool p2, int p3); /// /// /// is from 0.0 - 1.0 @@ -16074,7 +16061,7 @@ public unsafe interface INatives /// /// is from 0.0 - 1.0 /// is always 1 - void SpecialAbilityChargeNormalized(int player, float normalizedValue, bool p2, int p3); + void SpecialAbilityChargeNormalized(uint player, float normalizedValue, bool p2, int p3); /// /// Also known as _RECHARGE_SPECIAL_ABILITY /// @@ -16082,7 +16069,7 @@ public unsafe interface INatives /// /// Also known as _RECHARGE_SPECIAL_ABILITY /// - void SpecialAbilityFillMeter(int player, bool p1, int p2); + void SpecialAbilityFillMeter(uint player, bool p1, int p2); /// /// /// was always true. @@ -16090,21 +16077,21 @@ public unsafe interface INatives /// /// /// was always true. - void SpecialAbilityDepleteMeter(int player, bool p1, int p2); + void SpecialAbilityDepleteMeter(uint player, bool p1, int p2); void SpecialAbilityLock(uint playerModel, int p1); void SpecialAbilityUnlock(uint playerModel, int p1); bool IsSpecialAbilityUnlocked(uint playerModel); bool IsSpecialAbilityActive(IPlayer player, int p1); - bool IsSpecialAbilityActive(int player, int p1); + bool IsSpecialAbilityActive(uint player, int p1); bool IsSpecialAbilityMeterFull(IPlayer player, int p1); - bool IsSpecialAbilityMeterFull(int player, int p1); + bool IsSpecialAbilityMeterFull(uint player, int p1); void EnableSpecialAbility(IPlayer player, bool toggle, int p2); - void EnableSpecialAbility(int player, bool toggle, int p2); + void EnableSpecialAbility(uint player, bool toggle, int p2); bool IsSpecialAbilityEnabled(IPlayer player, int p1); - bool IsSpecialAbilityEnabled(int player, int p1); + bool IsSpecialAbilityEnabled(uint player, int p1); void SetSpecialAbilityMultiplier(float multiplier); void UpdateSpecialAbilityFromStat(IPlayer player, int p1); - void UpdateSpecialAbilityFromStat(int player, int p1); + void UpdateSpecialAbilityFromStat(uint player, int p1); /// /// Appears once in "re_dealgonewrong" /// @@ -16112,7 +16099,7 @@ public unsafe interface INatives /// /// Appears once in "re_dealgonewrong" /// - bool GetIsPlayerDrivingOnHighway(int player); + bool GetIsPlayerDrivingOnHighway(uint player); /// /// Only 1 occurrence. p1 was 2. /// @@ -16120,7 +16107,7 @@ public unsafe interface INatives /// /// Only 1 occurrence. p1 was 2. /// - bool GetIsPlayerDrivingWreckless(int player, int p1); + bool GetIsPlayerDrivingWreckless(uint player, int p1); /// /// 2 occurrences in agency_heist3a. p1 was 0.7f then 0.4f. /// @@ -16128,7 +16115,7 @@ public unsafe interface INatives /// /// 2 occurrences in agency_heist3a. p1 was 0.7f then 0.4f. /// - bool GetIsMoppingAreaFreeInFrontOfPlayer(int player, float p1); + bool GetIsMoppingAreaFreeInFrontOfPlayer(uint player, float p1); /// /// `findCollisionLand`: This teleports the player to land when set to true and will not consider the Z coordinate parameter provided by you. It will automatically put the Z coordinate so that you don't fall from sky. /// @@ -16136,16 +16123,16 @@ public unsafe interface INatives /// /// `findCollisionLand`: This teleports the player to land when set to true and will not consider the Z coordinate parameter provided by you. It will automatically put the Z coordinate so that you don't fall from sky. /// - void StartPlayerTeleport(int player, float x, float y, float z, float heading, bool p5, bool findCollisionLand, bool p7); + void StartPlayerTeleport(uint player, float x, float y, float z, float heading, bool p5, bool findCollisionLand, bool p7); bool UpdatePlayerTeleport(IPlayer player); - bool UpdatePlayerTeleport(int player); + bool UpdatePlayerTeleport(uint player); /// /// Disables the player's teleportation /// void StopPlayerTeleport(); bool IsPlayerTeleportActive(); float GetPlayerCurrentStealthNoise(IPlayer player); - float GetPlayerCurrentStealthNoise(int player); + float GetPlayerCurrentStealthNoise(uint player); /// /// `regenRate`: The recharge multiplier, a value between 0.0 and 1.0. /// Use 1.0 to reset it back to normal @@ -16155,13 +16142,13 @@ public unsafe interface INatives /// `regenRate`: The recharge multiplier, a value between 0.0 and 1.0. /// Use 1.0 to reset it back to normal /// - void SetPlayerHealthRechargeMultiplier(int player, float regenRate); + void SetPlayerHealthRechargeMultiplier(uint player, float regenRate); float GetPlayerHealthRechargeMaxPercent(IPlayer player); - float GetPlayerHealthRechargeMaxPercent(int player); + float GetPlayerHealthRechargeMaxPercent(uint player); void SetPlayerHealthRechargeMaxPercent(IPlayer player, float limit); - void SetPlayerHealthRechargeMaxPercent(int player, float limit); + void SetPlayerHealthRechargeMaxPercent(uint player, float limit); void SetPlayerFallDistanceToTriggerRagdollOverride(IPlayer player, float p1); - void SetPlayerFallDistanceToTriggerRagdollOverride(int player, float p1); + void SetPlayerFallDistanceToTriggerRagdollOverride(uint player, float p1); /// /// This modifies the damage value of your weapon. Whether it is a multiplier or base damage is unknown. /// Based on tests, it is unlikely to be a multiplier. @@ -16173,7 +16160,7 @@ public unsafe interface INatives /// Based on tests, it is unlikely to be a multiplier. /// modifier's min value is 0.1 /// - void SetPlayerWeaponDamageModifier(int player, float modifier); + void SetPlayerWeaponDamageModifier(uint player, float modifier); /// /// modifier's min value is 0.1 /// @@ -16181,7 +16168,7 @@ public unsafe interface INatives /// /// modifier's min value is 0.1 /// - void SetPlayerWeaponDefenseModifier(int player, float modifier); + void SetPlayerWeaponDefenseModifier(uint player, float modifier); /// /// modifier's min value is 0.1 /// @@ -16189,7 +16176,7 @@ public unsafe interface INatives /// /// modifier's min value is 0.1 /// - void SetPlayerWeaponMinigunDefenseModifier(int player, float modifier); + void SetPlayerWeaponMinigunDefenseModifier(uint player, float modifier); /// /// modifier's min value is 0.1 /// @@ -16197,7 +16184,7 @@ public unsafe interface INatives /// /// modifier's min value is 0.1 /// - void SetPlayerMeleeWeaponDamageModifier(int player, float modifier, bool p2); + void SetPlayerMeleeWeaponDamageModifier(uint player, float modifier, bool p2); /// /// modifier's min value is 0.1 /// @@ -16205,7 +16192,7 @@ public unsafe interface INatives /// /// modifier's min value is 0.1 /// - void SetPlayerMeleeWeaponDefenseModifier(int player, float modifier); + void SetPlayerMeleeWeaponDefenseModifier(uint player, float modifier); /// /// modifier's min value is 0.1 /// @@ -16213,7 +16200,7 @@ public unsafe interface INatives /// /// modifier's min value is 0.1 /// - void SetPlayerVehicleDamageModifier(int player, float modifier); + void SetPlayerVehicleDamageModifier(uint player, float modifier); /// /// modifier's min value is 0.1 /// @@ -16221,13 +16208,13 @@ public unsafe interface INatives /// /// modifier's min value is 0.1 /// - void SetPlayerVehicleDefenseModifier(int player, float modifier); + void SetPlayerVehicleDefenseModifier(uint player, float modifier); void SetPlayerMaxExplosiveDamage(IPlayer player, float p1); - void SetPlayerMaxExplosiveDamage(int player, float p1); + void SetPlayerMaxExplosiveDamage(uint player, float p1); void SetPlayerExplosiveDamageModifier(IPlayer player, int p1); - void SetPlayerExplosiveDamageModifier(int player, int p1); + void SetPlayerExplosiveDamageModifier(uint player, int p1); void SetPlayerWeaponTakedownDefenseModifier(IPlayer player, float p1); - void SetPlayerWeaponTakedownDefenseModifier(int player, float p1); + void SetPlayerWeaponTakedownDefenseModifier(uint player, float p1); /// /// Tints: /// None = -1, @@ -16253,7 +16240,7 @@ public unsafe interface INatives /// Black = 6, /// See NativeDB for reference: http://natives.altv.mp/#/0xA3D0E54541D9A5E5 /// - void SetPlayerParachuteTintIndex(int player, int tintIndex); + void SetPlayerParachuteTintIndex(uint player, int tintIndex); /// /// Tints: /// None = -1, @@ -16279,7 +16266,7 @@ public unsafe interface INatives /// Black = 6, /// See NativeDB for reference: http://natives.altv.mp/#/0x75D3F7A1B0D9B145 /// - void GetPlayerParachuteTintIndex(int player, ref int tintIndex); + void GetPlayerParachuteTintIndex(uint player, ref int tintIndex); /// /// Tints: /// None = -1, @@ -16305,7 +16292,7 @@ public unsafe interface INatives /// Black = 6, /// See NativeDB for reference: http://natives.altv.mp/#/0xAF04C87F5DC1DF38 /// - void SetPlayerReserveParachuteTintIndex(int player, int index); + void SetPlayerReserveParachuteTintIndex(uint player, int index); /// /// Tints: /// None = -1, @@ -16331,7 +16318,7 @@ public unsafe interface INatives /// Black = 6, /// See NativeDB for reference: http://natives.altv.mp/#/0xD5A016BC3C09CF40 /// - void GetPlayerReserveParachuteTintIndex(int player, ref int index); + void GetPlayerReserveParachuteTintIndex(uint player, ref int index); /// /// tints 0- 13 /// 0 - unkown @@ -16349,27 +16336,27 @@ public unsafe interface INatives /// 3 - unkown /// 4 - unkown /// - void SetPlayerParachutePackTintIndex(int player, int tintIndex); + void SetPlayerParachutePackTintIndex(uint player, int tintIndex); /// /// void GetPlayerParachutePackTintIndex(IPlayer player, ref int tintIndex); /// /// - void GetPlayerParachutePackTintIndex(int player, ref int tintIndex); + void GetPlayerParachutePackTintIndex(uint player, ref int tintIndex); void SetPlayerHasReserveParachute(IPlayer player); - void SetPlayerHasReserveParachute(int player); + void SetPlayerHasReserveParachute(uint player); bool GetPlayerHasReserveParachute(IPlayer player); - bool GetPlayerHasReserveParachute(int player); + bool GetPlayerHasReserveParachute(uint player); void SetPlayerCanLeaveParachuteSmokeTrail(IPlayer player, bool enabled); - void SetPlayerCanLeaveParachuteSmokeTrail(int player, bool enabled); + void SetPlayerCanLeaveParachuteSmokeTrail(uint player, bool enabled); void SetPlayerParachuteSmokeTrailColor(IPlayer player, int r, int g, int b); - void SetPlayerParachuteSmokeTrailColor(int player, int r, int g, int b); + void SetPlayerParachuteSmokeTrailColor(uint player, int r, int g, int b); /// /// void GetPlayerParachuteSmokeTrailColor(IPlayer player, ref int r, ref int g, ref int b); /// /// - void GetPlayerParachuteSmokeTrailColor(int player, ref int r, ref int g, ref int b); + void GetPlayerParachuteSmokeTrailColor(uint player, ref int r, ref int g, ref int b); /// /// example: /// wouldnt the flag be the seatIndex? @@ -16383,9 +16370,9 @@ public unsafe interface INatives /// /// :SET_PLAYER_RESET_FLAG_PREFER_REAR_SEATS(PLAYER::PLAYER_ID(), 6); /// 0-6 - void SetPlayerPhonePaletteIdx(int player, int flags); + void SetPlayerPhonePaletteIdx(uint player, int flags); void SetPlayerNoiseMultiplier(IPlayer player, float multiplier); - void SetPlayerNoiseMultiplier(int player, float multiplier); + void SetPlayerNoiseMultiplier(uint player, float multiplier); /// /// Values around 1.0f to 2.0f used in game scripts. /// @@ -16393,11 +16380,11 @@ public unsafe interface INatives /// /// Values around 1.0f to 2.0f used in game scripts. /// - void SetPlayerSneakingNoiseMultiplier(int player, float multiplier); - bool CanPedHearPlayer(IPlayer player, int ped); - bool CanPedHearPlayer(int player, IPlayer ped); + void SetPlayerSneakingNoiseMultiplier(uint player, float multiplier); + bool CanPedHearPlayer(IPlayer player, uint ped); + bool CanPedHearPlayer(uint player, IPlayer ped); bool CanPedHearPlayer(IPlayer player, IPlayer ped); - bool CanPedHearPlayer(int player, int ped); + bool CanPedHearPlayer(uint player, uint ped); /// /// This is to make the player walk without accepting input from INPUT. /// C# Example : @@ -16413,23 +16400,23 @@ public unsafe interface INatives /// /// is in increments of 100s. 2000, 500, 300, 200, etc. /// is always 1 and p5 is always 0. - void SimulatePlayerInputGait(int player, float amount, int gaitType, float speed, bool p4, bool p5); + void SimulatePlayerInputGait(uint player, float amount, int gaitType, float speed, bool p4, bool p5); void ResetPlayerInputGait(IPlayer player); - void ResetPlayerInputGait(int player); + void ResetPlayerInputGait(uint player); void SetAutoGiveParachuteWhenEnterPlane(IPlayer player, bool toggle); - void SetAutoGiveParachuteWhenEnterPlane(int player, bool toggle); + void SetAutoGiveParachuteWhenEnterPlane(uint player, bool toggle); void SetAutoGiveScubaGearWhenExitVehicle(IPlayer player, bool toggle); - void SetAutoGiveScubaGearWhenExitVehicle(int player, bool toggle); + void SetAutoGiveScubaGearWhenExitVehicle(uint player, bool toggle); void SetPlayerStealthPerceptionModifier(IPlayer player, float value); - void SetPlayerStealthPerceptionModifier(int player, float value); + void SetPlayerStealthPerceptionModifier(uint player, float value); bool IsRemotePlayerInNonClonedVehicle(IPlayer player); - bool IsRemotePlayerInNonClonedVehicle(int player); + bool IsRemotePlayerInNonClonedVehicle(uint player); void IncreasePlayerJumpSuppressionRange(IPlayer player); - void IncreasePlayerJumpSuppressionRange(int player); + void IncreasePlayerJumpSuppressionRange(uint player); void SetPlayerSimulateAiming(IPlayer player, bool toggle); - void SetPlayerSimulateAiming(int player, bool toggle); + void SetPlayerSimulateAiming(uint player, bool toggle); void SetPlayerClothPinFrames(IPlayer player, int p1); - void SetPlayerClothPinFrames(int player, int p1); + void SetPlayerClothPinFrames(uint player, int p1); /// /// Every occurrence was either 0 or 2. /// @@ -16448,7 +16435,7 @@ public unsafe interface INatives /// void PlayerDetachVirtualBound(); bool HasPlayerBeenSpottedInStolenVehicle(IPlayer player); - bool HasPlayerBeenSpottedInStolenVehicle(int player); + bool HasPlayerBeenSpottedInStolenVehicle(uint player); /// /// Returns true if an unk value is greater than 0.0f /// @@ -16456,9 +16443,9 @@ public unsafe interface INatives /// /// Returns true if an unk value is greater than 0.0f /// - bool IsPlayerBattleAware(int player); + bool IsPlayerBattleAware(uint player); bool GetPlayerReceivedBattleEventRecently(IPlayer player, int p1, bool p2); - bool GetPlayerReceivedBattleEventRecently(int player, int p1, bool p2); + bool GetPlayerReceivedBattleEventRecently(uint player, int p1, bool p2); /// /// Appears only 3 times in the scripts, more specifically in michael1.ysc /// - @@ -16473,11 +16460,11 @@ public unsafe interface INatives /// /// Returns true if the player is riding a train. /// - bool IsPlayerRidingTrain(int player); + bool IsPlayerRidingTrain(uint player); bool HasPlayerLeftTheWorld(IPlayer player); - bool HasPlayerLeftTheWorld(int player); + bool HasPlayerLeftTheWorld(uint player); void SetPlayerLeavePedBehind(IPlayer player, bool toggle); - void SetPlayerLeavePedBehind(int player, bool toggle); + void SetPlayerLeavePedBehind(uint player, bool toggle); /// /// /// was always 5. @@ -16487,58 +16474,58 @@ public unsafe interface INatives /// /// was always 5. /// was always false. - void SetPlayerParachuteVariationOverride(int player, int p1, int p2, int p3, bool p4); + void SetPlayerParachuteVariationOverride(uint player, int p1, int p2, int p3, bool p4); void ClearPlayerParachuteVariationOverride(IPlayer player); - void ClearPlayerParachuteVariationOverride(int player); + void ClearPlayerParachuteVariationOverride(uint player); void SetPlayerParachuteModelOverride(IPlayer player, uint model); - void SetPlayerParachuteModelOverride(int player, uint model); + void SetPlayerParachuteModelOverride(uint player, uint model); void SetPlayerReserveParachuteModelOverride(IPlayer player, uint model); - void SetPlayerReserveParachuteModelOverride(int player, uint model); + void SetPlayerReserveParachuteModelOverride(uint player, uint model); uint GetPlayerParachuteModelOverride(IPlayer player); - uint GetPlayerParachuteModelOverride(int player); + uint GetPlayerParachuteModelOverride(uint player); uint GetPlayerReserveParachuteModelOverride(IPlayer player); - uint GetPlayerReserveParachuteModelOverride(int player); + uint GetPlayerReserveParachuteModelOverride(uint player); void ClearPlayerParachuteModelOverride(IPlayer player); - void ClearPlayerParachuteModelOverride(int player); + void ClearPlayerParachuteModelOverride(uint player); void ClearPlayerReserveParachuteModelOverride(IPlayer player); - void ClearPlayerReserveParachuteModelOverride(int player); + void ClearPlayerReserveParachuteModelOverride(uint player); void SetPlayerParachutePackModelOverride(IPlayer player, uint model); - void SetPlayerParachutePackModelOverride(int player, uint model); + void SetPlayerParachutePackModelOverride(uint player, uint model); void ClearPlayerParachutePackModelOverride(IPlayer player); - void ClearPlayerParachutePackModelOverride(int player); + void ClearPlayerParachutePackModelOverride(uint player); void DisablePlayerVehicleRewards(IPlayer player); - void DisablePlayerVehicleRewards(int player); + void DisablePlayerVehicleRewards(uint player); void SetPlayerSpectatedVehicleRadioOverride(bool p0); void SetPlayerBluetoothState(IPlayer player, bool state); - void SetPlayerBluetoothState(int player, bool state); + void SetPlayerBluetoothState(uint player, bool state); bool IsPlayerBluetoothEnable(IPlayer player); - bool IsPlayerBluetoothEnable(int player); + bool IsPlayerBluetoothEnable(uint player); void DisableCameraViewModeCycle(IPlayer player); - void DisableCameraViewModeCycle(int player); + void DisableCameraViewModeCycle(uint player); int GetPlayerFakeWantedLevel(IPlayer player); - int GetPlayerFakeWantedLevel(int player); - void SetPlayerCanDamagePlayer(IPlayer player1, int player2, bool toggle); - void SetPlayerCanDamagePlayer(int player1, IPlayer player2, bool toggle); + int GetPlayerFakeWantedLevel(uint player); + void SetPlayerCanDamagePlayer(IPlayer player1, uint player2, bool toggle); + void SetPlayerCanDamagePlayer(uint player1, IPlayer player2, bool toggle); void SetPlayerCanDamagePlayer(IPlayer player1, IPlayer player2, bool toggle); - void SetPlayerCanDamagePlayer(int player1, int player2, bool toggle); + void SetPlayerCanDamagePlayer(uint player1, uint player2, bool toggle); void SetApplyWaypointOfPlayer(IPlayer player, int hudColor); - void SetApplyWaypointOfPlayer(int player, int hudColor); + void SetApplyWaypointOfPlayer(uint player, int hudColor); bool IsPlayerVehicleWeaponToggledToNonHoming(int p0); /// /// Unsets playerPed+330 if the current weapon has certain flags. /// void SetPlayerVehicleWeaponToNonHoming(int p0); void SetPlayerHomingDisabledForAllVehicleWeapons(int p0, int p1); - void AddPlayerTargetableEntity(IPlayer player, int entity); - void AddPlayerTargetableEntity(int player, IEntity entity); + void AddPlayerTargetableEntity(IPlayer player, uint entity); + void AddPlayerTargetableEntity(uint player, IEntity entity); void AddPlayerTargetableEntity(IPlayer player, IEntity entity); - void AddPlayerTargetableEntity(int player, int entity); - void RemovePlayerTargetableEntity(IPlayer player, int entity); - void RemovePlayerTargetableEntity(int player, IEntity entity); + void AddPlayerTargetableEntity(uint player, uint entity); + void RemovePlayerTargetableEntity(IPlayer player, uint entity); + void RemovePlayerTargetableEntity(uint player, IEntity entity); void RemovePlayerTargetableEntity(IPlayer player, IEntity entity); - void RemovePlayerTargetableEntity(int player, int entity); + void RemovePlayerTargetableEntity(uint player, uint entity); void SetPlayerPreviousVariationData(IPlayer player, int p1, int p2, int p3, int p4, int p5); - void SetPlayerPreviousVariationData(int player, int p1, int p2, int p3, int p4, int p5); + void SetPlayerPreviousVariationData(uint player, int p1, int p2, int p3, int p4, int p5); /// /// Resets values set by SET_SCRIPT_FIRE_POSITION /// @@ -16713,7 +16700,7 @@ public unsafe interface INatives /// /// is a bit mask with bits 1, 2 and/or 4, relating to collider types; 4 should usually be used. /// Use the handle with 0x3D87450E15D98694 or 0x65287525D951F6BE until it returns 0 or 2. - int StartShapeTestLosProbe(float x1, float y1, float z1, float x2, float y2, float z2, int flags, int entity, int p8); + int StartShapeTestLosProbe(float x1, float y1, float z1, float x2, float y2, float z2, int flags, uint entity, int p8); /// /// Does the same as 0x7EE9F5D83DD4F90E, except blocking until the shape test completes. /// @@ -16721,13 +16708,13 @@ public unsafe interface INatives /// /// Does the same as 0x7EE9F5D83DD4F90E, except blocking until the shape test completes. /// - int StartExpensiveSynchronousShapeTestLosProbe(float x1, float y1, float z1, float x2, float y2, float z2, int flags, int entity, int p8); + int StartExpensiveSynchronousShapeTestLosProbe(float x1, float y1, float z1, float x2, float y2, float z2, int flags, uint entity, int p8); int StartShapeTestBoundingBox(IEntity entity, int flags1, int flags2); - int StartShapeTestBoundingBox(int entity, int flags1, int flags2); + int StartShapeTestBoundingBox(uint entity, int flags1, int flags2); int StartShapeTestBox(float x, float y, float z, float dimX, float dimY, float dimZ, float rotX, float rotY, float rotZ, int p9, int flags, IEntity entity, int p12); - int StartShapeTestBox(float x, float y, float z, float dimX, float dimY, float dimZ, float rotX, float rotY, float rotZ, int p9, int flags, int entity, int p12); + int StartShapeTestBox(float x, float y, float z, float dimX, float dimY, float dimZ, float rotX, float rotY, float rotZ, int p9, int flags, uint entity, int p12); int StartShapeTestBound(IEntity entity, int flags1, int flags2); - int StartShapeTestBound(int entity, int flags1, int flags2); + int StartShapeTestBound(uint entity, int flags1, int flags2); /// /// Raycast from point to point, where the ray has a radius. /// vehicles=10 @@ -16745,9 +16732,9 @@ public unsafe interface INatives /// /// is an entity to ignore /// = 7, but no idea what it does - int StartShapeTestCapsule(float x1, float y1, float z1, float x2, float y2, float z2, float radius, int flags, int entity, int p9); + int StartShapeTestCapsule(float x1, float y1, float z1, float x2, float y2, float z2, float radius, int flags, uint entity, int p9); int StartShapeTestSweptSphere(float x1, float y1, float z1, float x2, float y2, float z2, float radius, int flags, IEntity entity, int p9); - int StartShapeTestSweptSphere(float x1, float y1, float z1, float x2, float y2, float z2, float radius, int flags, int entity, int p9); + int StartShapeTestSweptSphere(float x1, float y1, float z1, float x2, float y2, float z2, float radius, int flags, uint entity, int p9); /// /// Returns a ShapeTest handle that can be used with GET_SHAPE_TEST_RESULT. /// In its only usage in game scripts its called with flag set to 511, entity to player_ped_id and flag2 set to 7 @@ -16757,18 +16744,18 @@ public unsafe interface INatives /// Returns a ShapeTest handle that can be used with GET_SHAPE_TEST_RESULT. /// In its only usage in game scripts its called with flag set to 511, entity to player_ped_id and flag2 set to 7 /// - int StartShapeTestMouseCursorLosProbe(ref Vector3 pVec1, ref Vector3 pVec2, int flag, int entity, int flag2); + int StartShapeTestMouseCursorLosProbe(ref Vector3 pVec1, ref Vector3 pVec2, int flag, uint entity, int flag2); /// /// Returns the result of a shape test: 0 if the handle is invalid, 1 if the shape test is still pending, or 2 if the shape test has completed, and the handle should be invalidated. /// When used with an asynchronous shape test, this native should be looped until returning 0 or 2, after which the handle is invalidated. /// - int GetShapeTestResult(int shapeTestHandle, ref bool hit, ref Vector3 endCoords, ref Vector3 surfaceNormal, ref int entityHit); + int GetShapeTestResult(int shapeTestHandle, ref bool hit, ref Vector3 endCoords, ref Vector3 surfaceNormal, ref uint entityHit); /// /// Returns the result of a shape test, also returning the material of any touched surface. /// When used with an asynchronous shape test, this native should be looped until returning 0 or 2, after which the handle is invalidated. /// /// Unless the return value is 2, the other return values are undefined. - int GetShapeTestResultIncludingMaterial(int shapeTestHandle, ref bool hit, ref Vector3 endCoords, ref Vector3 surfaceNormal, ref uint materialHash, ref int entityHit); + int GetShapeTestResultIncludingMaterial(int shapeTestHandle, ref bool hit, ref Vector3 endCoords, ref Vector3 surfaceNormal, ref uint materialHash, ref uint entityHit); /// /// Invalidates the entity handle passed by removing the fwScriptGuid from the entity. This should be used when receiving an ambient entity from shape testing natives, but can also be used for other natives returning an 'irrelevant' entity handle. /// @@ -16776,7 +16763,7 @@ public unsafe interface INatives /// /// Invalidates the entity handle passed by removing the fwScriptGuid from the entity. This should be used when receiving an ambient entity from shape testing natives, but can also be used for other natives returning an 'irrelevant' entity handle. /// - void ReleaseScriptGuidFromEntity(int entityHit); + void ReleaseScriptGuidFromEntity(uint entityHit); int ScInboxGetTotalNumMessages(); uint ScInboxGetMessageTypeAtIndex(int msgIndex); bool ScInboxGetMessageIsReadAtIndex(int msgIndex); @@ -17108,9 +17095,9 @@ public unsafe interface INatives void PlaystatsMissionCheckpoint(string p0, int p1, int p2, int p3); void PlaystatsRandomMissionDone(string name, int p1, int p2, int p3); void PlaystatsRosBet(int amount, int act, IPlayer player, float cm); - void PlaystatsRosBet(int amount, int act, int player, float cm); + void PlaystatsRosBet(int amount, int act, uint player, float cm); void PlaystatsRaceCheckpoint(IVehicle p0, int p1, int p2, int p3, int p4); - void PlaystatsRaceCheckpoint(int p0, int p1, int p2, int p3, int p4); + void PlaystatsRaceCheckpoint(uint p0, int p1, int p2, int p3, int p4); /// /// bool PlaystatsCreateMatchHistoryId2(ref int playerAccountId, ref int posixTime); @@ -17129,9 +17116,9 @@ public unsafe interface INatives /// void PlaystatsOddjobDone(int totalTimeMs, int p1, bool p2); void PlaystatsPropChange(IPlayer p0, int p1, int p2, int p3); - void PlaystatsPropChange(int p0, int p1, int p2, int p3); + void PlaystatsPropChange(uint p0, int p1, int p2, int p3); void PlaystatsClothChange(IPlayer p0, int p1, int p2, int p3, int p4); - void PlaystatsClothChange(int p0, int p1, int p2, int p3, int p4); + void PlaystatsClothChange(uint p0, int p1, int p2, int p3, int p4); /// /// This is a typo made by R*. It's supposed to be called PLAYSTATS_WEAPON_MOD_CHANGE. /// @@ -17430,7 +17417,7 @@ public unsafe interface INatives void PlaystatsAbandonedMc(int p0, int p1, int p2, int p3, int p4); void PlaystatsEarnedMcPoints(int p0, int p1, int p2, int p3, int p4, int p5); void PlaystatsMcFormationEnds(int p0, int p1, int p2, int p3, int p4, int p5, int p6); - void PlaystatsMcClubhouseActivity(int p0, int p1, int p2, int p3, int p4, int p5, int p6); + void PlaystatsMcClubhouseActivity(int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7); void PlaystatsRivalBehavior(int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int p9); void PlaystatsCopyRankIntoNewSlot(int p0, int p1, int p2, int p3, int p4, int p5, int p6); /// @@ -17492,7 +17479,7 @@ public unsafe interface INatives void PlaystatsFreemodeCasinoMissionEnded(ref int data); void PlaystatsHeist3Drone(int p0); void PlaystatsHeist3Hack(int p0, int p1, int p2, int p3, int p4, int p5); - void PlaystatsNpcPhone(int p0, int p1, int p2, int p3, int p4, int p5); + void PlaystatsNpcPhone(int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int p9, int p10, int p11, int p12); void PlaystatsArcadeCabinet(int p0); void PlaystatsHeist3Finale(int p0); void PlaystatsHeist3Prep(int p0); @@ -17506,7 +17493,7 @@ public unsafe interface INatives void PlaystatsHeist4Finale(int p0); void PlaystatsHeist4Hack(int p0, int p1, int p2, int p3, int p4); void PlaystatsSubWeap(int p0, int p1, int p2, int p3); - void PlaystatsFastTrvl(int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8); + void PlaystatsFastTrvl(int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int p9, int p10); void PlaystatsHubEntry(int p0); void PlaystatsDjMissionEnded(int p0); void PlaystatsRobberyPrep(int p0); @@ -17515,7 +17502,7 @@ public unsafe interface INatives void PlaystatsCarclubPoints(int p0); void PlaystatsCarclubChallenge(int p0, int p1, int p2, int p3); void PlaystatsCarclubPrize(int p0, uint vehicleModel); - void PlaystatsAwardNav(int p0, int p1); + void PlaystatsAwardNav(int p0, int p1, int p2, int p3); void PlaystatsInstMissionEnd(int p0); void PlaystatsHubExit(int p0); void PlaystatsInventory(int p0); @@ -17694,11 +17681,11 @@ public unsafe interface INatives /// /// It seems to make the entity's coords mark the point from which LOD-distances are measured. In my testing, setting a vehicle as the focus entity and moving that vehicle more than 300 distance units away from the player will make the level of detail around the player go down drastically (shadows disappear, textures go extremely low res, etc). The player seems to be the default focus entity. /// - void SetFocusEntity(int entity); + void SetFocusEntity(uint entity); bool IsEntityFocus(IEntity entity); - bool IsEntityFocus(int entity); + bool IsEntityFocus(uint entity); void SetRestoreFocusEntity(IEntity p0); - void SetRestoreFocusEntity(int p0); + void SetRestoreFocusEntity(uint p0); /// /// Possible p0 values: /// "prologue" @@ -17749,7 +17736,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xFAA23F2CBA159D67 /// /// Note: DO NOT, use SWITCH_TYPE_LONG with flag 513. It leaves you stuck in the clouds. You'll have to call STOP_PLAYER_SWITCH() to return to your ped. - void StartPlayerSwitch(IPlayer from, int to, int flags, int switchType); + void StartPlayerSwitch(IPlayer from, uint to, int flags, int switchType); /// /// // this enum comes directly from R* so don't edit this /// enum ePlayerSwitchTypes @@ -17763,7 +17750,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xFAA23F2CBA159D67 /// /// Note: DO NOT, use SWITCH_TYPE_LONG with flag 513. It leaves you stuck in the clouds. You'll have to call STOP_PLAYER_SWITCH() to return to your ped. - void StartPlayerSwitch(int from, IPlayer to, int flags, int switchType); + void StartPlayerSwitch(uint from, IPlayer to, int flags, int switchType); /// /// // this enum comes directly from R* so don't edit this /// enum ePlayerSwitchTypes @@ -17791,7 +17778,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xFAA23F2CBA159D67 /// /// Note: DO NOT, use SWITCH_TYPE_LONG with flag 513. It leaves you stuck in the clouds. You'll have to call STOP_PLAYER_SWITCH() to return to your ped. - void StartPlayerSwitch(int from, int to, int flags, int switchType); + void StartPlayerSwitch(uint from, uint to, int flags, int switchType); void StopPlayerSwitch(); /// /// Returns true if the player is currently switching, false otherwise. @@ -17845,9 +17832,9 @@ public unsafe interface INatives /// /// is a bitflag: /// 0 - 3 - void SwitchToMultiFirstpart(int ped, int flags, int switchType); + void SwitchToMultiFirstpart(uint ped, int flags, int switchType); void SwitchToMultiSecondpart(IPlayer ped); - void SwitchToMultiSecondpart(int ped); + void SwitchToMultiSecondpart(uint ped); bool IsSwitchToMultiFirstpartFinished(); int GetPlayerSwitchInterpOutDuration(); int GetPlayerSwitchInterpOutCurrentTime(); @@ -17913,7 +17900,7 @@ public unsafe interface INatives /// /// Stand still (?) /// - void TaskPause(int ped, int ms); + void TaskPause(uint ped, int ms); /// /// Makes the specified ped stand still for (time) milliseconds. /// @@ -17921,7 +17908,7 @@ public unsafe interface INatives /// /// Makes the specified ped stand still for (time) milliseconds. /// - void TaskStandStill(int ped, int time); + void TaskStandStill(uint ped, int time); /// /// Definition is wrong. This has 4 parameters (Not sure when they were added. v350 has 2, v678 has 4). /// v678: Ped ped, bool unused, bool flag1, bool flag2 @@ -17935,21 +17922,21 @@ public unsafe interface INatives /// flag1 = super jump, flag2 = do nothing if flag1 is false and doubles super jump height if flag1 is true. /// /// Ped ped, bool unused - void TaskJump(int ped, bool usePlayerLaunchForce, bool doSuperJump, bool useFullSuperJumpForce); + void TaskJump(uint ped, bool usePlayerLaunchForce, bool doSuperJump, bool useFullSuperJumpForce); void TaskCower(IPlayer ped, int duration); - void TaskCower(int ped, int duration); + void TaskCower(uint ped, int duration); /// /// In the scripts, p3 was always -1. /// Also facingPed can be 0 or -1 so ped will just raise hands up. /// /// seems to be duration or timeout of turn animation. - void TaskHandsUp(IPlayer ped, int duration, int facingPed, int timeToFacePed, int flags); + void TaskHandsUp(IPlayer ped, int duration, uint facingPed, int timeToFacePed, int flags); /// /// In the scripts, p3 was always -1. /// Also facingPed can be 0 or -1 so ped will just raise hands up. /// /// seems to be duration or timeout of turn animation. - void TaskHandsUp(int ped, int duration, IPlayer facingPed, int timeToFacePed, int flags); + void TaskHandsUp(uint ped, int duration, IPlayer facingPed, int timeToFacePed, int flags); /// /// In the scripts, p3 was always -1. /// Also facingPed can be 0 or -1 so ped will just raise hands up. @@ -17961,19 +17948,19 @@ public unsafe interface INatives /// Also facingPed can be 0 or -1 so ped will just raise hands up. /// /// seems to be duration or timeout of turn animation. - void TaskHandsUp(int ped, int duration, int facingPed, int timeToFacePed, int flags); + void TaskHandsUp(uint ped, int duration, uint facingPed, int timeToFacePed, int flags); void UpdateTaskHandsUpDuration(IPlayer ped, int duration); - void UpdateTaskHandsUpDuration(int ped, int duration); + void UpdateTaskHandsUpDuration(uint ped, int duration); /// /// The given ped will try to open the nearest door to 'seat'. /// Example: telling the ped to open the door for the driver seat does not necessarily mean it will open the driver door, it may choose to open the passenger door instead if that one is closer. /// - void TaskOpenVehicleDoor(IPlayer ped, int vehicle, int timeOut, int seat, float speed); + void TaskOpenVehicleDoor(IPlayer ped, uint vehicle, int timeOut, int seat, float speed); /// /// The given ped will try to open the nearest door to 'seat'. /// Example: telling the ped to open the door for the driver seat does not necessarily mean it will open the driver door, it may choose to open the passenger door instead if that one is closer. /// - void TaskOpenVehicleDoor(int ped, IVehicle vehicle, int timeOut, int seat, float speed); + void TaskOpenVehicleDoor(uint ped, IVehicle vehicle, int timeOut, int seat, float speed); /// /// The given ped will try to open the nearest door to 'seat'. /// Example: telling the ped to open the door for the driver seat does not necessarily mean it will open the driver door, it may choose to open the passenger door instead if that one is closer. @@ -17983,7 +17970,7 @@ public unsafe interface INatives /// The given ped will try to open the nearest door to 'seat'. /// Example: telling the ped to open the door for the driver seat does not necessarily mean it will open the driver door, it may choose to open the passenger door instead if that one is closer. /// - void TaskOpenVehicleDoor(int ped, int vehicle, int timeOut, int seat, float speed); + void TaskOpenVehicleDoor(uint ped, uint vehicle, int timeOut, int seat, float speed); /// /// Usage of seat /// -1 = driver @@ -17997,7 +17984,7 @@ public unsafe interface INatives /// 1.0 = walk, 2.0 = run /// 1 = normal, 3 = teleport to vehicle, 16 = teleport directly into vehicle /// is always 0 - void TaskEnterVehicle(IPlayer ped, int vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName); + void TaskEnterVehicle(IPlayer ped, uint vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName); /// /// Usage of seat /// -1 = driver @@ -18011,7 +17998,7 @@ public unsafe interface INatives /// 1.0 = walk, 2.0 = run /// 1 = normal, 3 = teleport to vehicle, 16 = teleport directly into vehicle /// is always 0 - void TaskEnterVehicle(int ped, IVehicle vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName); + void TaskEnterVehicle(uint ped, IVehicle vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName); /// /// Usage of seat /// -1 = driver @@ -18039,7 +18026,7 @@ public unsafe interface INatives /// 1.0 = walk, 2.0 = run /// 1 = normal, 3 = teleport to vehicle, 16 = teleport directly into vehicle /// is always 0 - void TaskEnterVehicle(int ped, int vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName); + void TaskEnterVehicle(uint ped, uint vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName); /// /// 0 = normal exit and closes door. /// 1 = normal exit and closes door. @@ -18051,7 +18038,7 @@ public unsafe interface INatives /// Others to be tried out: 320, 512, 131072. /// /// from decompiled scripts: - void TaskLeaveVehicle(IPlayer ped, int vehicle, int flags); + void TaskLeaveVehicle(IPlayer ped, uint vehicle, int flags); /// /// 0 = normal exit and closes door. /// 1 = normal exit and closes door. @@ -18063,7 +18050,7 @@ public unsafe interface INatives /// Others to be tried out: 320, 512, 131072. /// /// from decompiled scripts: - void TaskLeaveVehicle(int ped, IVehicle vehicle, int flags); + void TaskLeaveVehicle(uint ped, IVehicle vehicle, int flags); /// /// 0 = normal exit and closes door. /// 1 = normal exit and closes door. @@ -18087,13 +18074,13 @@ public unsafe interface INatives /// Others to be tried out: 320, 512, 131072. /// /// from decompiled scripts: - void TaskLeaveVehicle(int ped, int vehicle, int flags); - void TaskGetOffBoat(IPlayer ped, int boat); - void TaskGetOffBoat(int ped, IVehicle boat); + void TaskLeaveVehicle(uint ped, uint vehicle, int flags); + void TaskGetOffBoat(IPlayer ped, uint boat); + void TaskGetOffBoat(uint ped, IVehicle boat); void TaskGetOffBoat(IPlayer ped, IVehicle boat); - void TaskGetOffBoat(int ped, int boat); + void TaskGetOffBoat(uint ped, uint boat); void TaskSkyDive(IPlayer ped, bool instant); - void TaskSkyDive(int ped, bool instant); + void TaskSkyDive(uint ped, bool instant); /// /// Second parameter is unused. /// second parameter was for jetpack in the early stages of gta and the hard coded code is now removed @@ -18103,7 +18090,7 @@ public unsafe interface INatives /// Second parameter is unused. /// second parameter was for jetpack in the early stages of gta and the hard coded code is now removed /// - void TaskParachute(int ped, bool giveParachuteItem, bool instant); + void TaskParachute(uint ped, bool giveParachuteItem, bool instant); /// /// makes ped parachute to coords x y z. Works well with PATHFIND::GET_SAFE_COORD_FOR_PED /// @@ -18111,11 +18098,11 @@ public unsafe interface INatives /// /// makes ped parachute to coords x y z. Works well with PATHFIND::GET_SAFE_COORD_FOR_PED /// - void TaskParachuteToTarget(int ped, float x, float y, float z); + void TaskParachuteToTarget(uint ped, float x, float y, float z); void SetParachuteTaskTarget(IPlayer ped, float x, float y, float z); - void SetParachuteTaskTarget(int ped, float x, float y, float z); + void SetParachuteTaskTarget(uint ped, float x, float y, float z); void SetParachuteTaskThrust(IPlayer ped, float thrust); - void SetParachuteTaskThrust(int ped, float thrust); + void SetParachuteTaskThrust(uint ped, float thrust); /// /// Only appears twice in the scripts. /// TASK::TASK_RAPPEL_FROM_HELI(PLAYER::PLAYER_PED_ID(), 10.0f); @@ -18129,15 +18116,15 @@ public unsafe interface INatives /// TASK::TASK_RAPPEL_FROM_HELI(a_0, 10.0f); /// /// the minimum height above ground the heli must be at before the ped can start rappelling - void TaskRappelFromHeli(int ped, float minHeightAboveGround); + void TaskRappelFromHeli(uint ped, float minHeightAboveGround); /// /// info about driving modes: https://gtaforums.com/topic/822314-guide-driving-styles/ /// - void TaskVehicleDriveToCoord(IPlayer ped, int vehicle, float x, float y, float z, float speed, int p6, uint vehicleModel, int drivingMode, float stopRange, float straightLineDistance); + void TaskVehicleDriveToCoord(IPlayer ped, uint vehicle, float x, float y, float z, float speed, int p6, uint vehicleModel, int drivingMode, float stopRange, float straightLineDistance); /// /// info about driving modes: https://gtaforums.com/topic/822314-guide-driving-styles/ /// - void TaskVehicleDriveToCoord(int ped, IVehicle vehicle, float x, float y, float z, float speed, int p6, uint vehicleModel, int drivingMode, float stopRange, float straightLineDistance); + void TaskVehicleDriveToCoord(uint ped, IVehicle vehicle, float x, float y, float z, float speed, int p6, uint vehicleModel, int drivingMode, float stopRange, float straightLineDistance); /// /// info about driving modes: https://gtaforums.com/topic/822314-guide-driving-styles/ /// @@ -18145,27 +18132,27 @@ public unsafe interface INatives /// /// info about driving modes: https://gtaforums.com/topic/822314-guide-driving-styles/ /// - void TaskVehicleDriveToCoord(int ped, int vehicle, float x, float y, float z, float speed, int p6, uint vehicleModel, int drivingMode, float stopRange, float straightLineDistance); - void TaskVehicleDriveToCoordLongrange(IPlayer ped, int vehicle, float x, float y, float z, float speed, int driveMode, float stopRange); - void TaskVehicleDriveToCoordLongrange(int ped, IVehicle vehicle, float x, float y, float z, float speed, int driveMode, float stopRange); + void TaskVehicleDriveToCoord(uint ped, uint vehicle, float x, float y, float z, float speed, int p6, uint vehicleModel, int drivingMode, float stopRange, float straightLineDistance); + void TaskVehicleDriveToCoordLongrange(IPlayer ped, uint vehicle, float x, float y, float z, float speed, int driveMode, float stopRange); + void TaskVehicleDriveToCoordLongrange(uint ped, IVehicle vehicle, float x, float y, float z, float speed, int driveMode, float stopRange); void TaskVehicleDriveToCoordLongrange(IPlayer ped, IVehicle vehicle, float x, float y, float z, float speed, int driveMode, float stopRange); - void TaskVehicleDriveToCoordLongrange(int ped, int vehicle, float x, float y, float z, float speed, int driveMode, float stopRange); - void TaskVehicleDriveWander(IPlayer ped, int vehicle, float speed, int drivingStyle); - void TaskVehicleDriveWander(int ped, IVehicle vehicle, float speed, int drivingStyle); + void TaskVehicleDriveToCoordLongrange(uint ped, uint vehicle, float x, float y, float z, float speed, int driveMode, float stopRange); + void TaskVehicleDriveWander(IPlayer ped, uint vehicle, float speed, int drivingStyle); + void TaskVehicleDriveWander(uint ped, IVehicle vehicle, float speed, int drivingStyle); void TaskVehicleDriveWander(IPlayer ped, IVehicle vehicle, float speed, int drivingStyle); - void TaskVehicleDriveWander(int ped, int vehicle, float speed, int drivingStyle); + void TaskVehicleDriveWander(uint ped, uint vehicle, float speed, int drivingStyle); /// /// /// always -1 /// always 10.0 /// always 1 - void TaskFollowToOffsetOfEntity(IPlayer ped, int entity, float offsetX, float offsetY, float offsetZ, float movementSpeed, int timeout, float stoppingRange, bool persistFollowing); + void TaskFollowToOffsetOfEntity(IPlayer ped, uint entity, float offsetX, float offsetY, float offsetZ, float movementSpeed, int timeout, float stoppingRange, bool persistFollowing); /// /// /// always -1 /// always 10.0 /// always 1 - void TaskFollowToOffsetOfEntity(int ped, IEntity entity, float offsetX, float offsetY, float offsetZ, float movementSpeed, int timeout, float stoppingRange, bool persistFollowing); + void TaskFollowToOffsetOfEntity(uint ped, IEntity entity, float offsetX, float offsetY, float offsetZ, float movementSpeed, int timeout, float stoppingRange, bool persistFollowing); /// /// /// always -1 @@ -18177,13 +18164,13 @@ public unsafe interface INatives /// always -1 /// always 10.0 /// always 1 - void TaskFollowToOffsetOfEntity(int ped, int entity, float offsetX, float offsetY, float offsetZ, float movementSpeed, int timeout, float stoppingRange, bool persistFollowing); + void TaskFollowToOffsetOfEntity(uint ped, uint entity, float offsetX, float offsetY, float offsetZ, float movementSpeed, int timeout, float stoppingRange, bool persistFollowing); void TaskGoStraightToCoord(IPlayer ped, float x, float y, float z, float speed, int timeout, float targetHeading, float distanceToSlide); - void TaskGoStraightToCoord(int ped, float x, float y, float z, float speed, int timeout, float targetHeading, float distanceToSlide); - void TaskGoStraightToCoordRelativeToEntity(IPlayer ped, int entity, float x, float y, float z, float moveBlendRatio, int time); - void TaskGoStraightToCoordRelativeToEntity(int ped, IEntity entity, float x, float y, float z, float moveBlendRatio, int time); + void TaskGoStraightToCoord(uint ped, float x, float y, float z, float speed, int timeout, float targetHeading, float distanceToSlide); + void TaskGoStraightToCoordRelativeToEntity(IPlayer ped, uint entity, float x, float y, float z, float moveBlendRatio, int time); + void TaskGoStraightToCoordRelativeToEntity(uint ped, IEntity entity, float x, float y, float z, float moveBlendRatio, int time); void TaskGoStraightToCoordRelativeToEntity(IPlayer ped, IEntity entity, float x, float y, float z, float moveBlendRatio, int time); - void TaskGoStraightToCoordRelativeToEntity(int ped, int entity, float x, float y, float z, float moveBlendRatio, int time); + void TaskGoStraightToCoordRelativeToEntity(uint ped, uint entity, float x, float y, float z, float moveBlendRatio, int time); /// /// Makes the specified ped achieve the specified heading. /// pedHandle: The handle of the ped to assign the task to. @@ -18197,7 +18184,7 @@ public unsafe interface INatives /// /// The desired heading. /// The time, in milliseconds, to allow the task to complete. If the task times out, it is cancelled, and the ped will stay at the heading it managed to reach in the time. - void TaskAchieveHeading(int ped, float heading, int timeout); + void TaskAchieveHeading(uint ped, float heading, int timeout); /// /// MulleKD19: Clears the current point route. Call this before TASK_EXTEND_ROUTE and TASK_FOLLOW_POINT_ROUTE. /// @@ -18232,7 +18219,7 @@ public unsafe interface INatives /// /// The ped to give the task to. /// The speed to move at in m/s. - void TaskFollowPointRoute(int ped, float speed, int mode); + void TaskFollowPointRoute(uint ped, float speed, int mode); /// /// The entity will move towards the target until time is over (duration) or get in target's range (distance). p5 and p6 are unknown, but you could leave p5 = 1073741824 or 100 or even 0 (didn't see any difference but on the decompiled scripts, they use 1073741824 mostly) and p6 = 0 /// Note: I've only tested it on entity -> ped and target -> vehicle. It could work differently on other entities, didn't try it yet. @@ -18243,7 +18230,7 @@ public unsafe interface INatives /// EGOTO_ENTITY_NEVER_SLOW_FOR_PATH_LENGTH = 0x01, /// }; /// - void TaskGoToEntity(IEntity entity, int target, int duration, float distance, float moveBlendRatio, float slowDownDistance, int flags); + void TaskGoToEntity(IEntity entity, uint target, int duration, float distance, float moveBlendRatio, float slowDownDistance, int flags); /// /// The entity will move towards the target until time is over (duration) or get in target's range (distance). p5 and p6 are unknown, but you could leave p5 = 1073741824 or 100 or even 0 (didn't see any difference but on the decompiled scripts, they use 1073741824 mostly) and p6 = 0 /// Note: I've only tested it on entity -> ped and target -> vehicle. It could work differently on other entities, didn't try it yet. @@ -18254,7 +18241,7 @@ public unsafe interface INatives /// EGOTO_ENTITY_NEVER_SLOW_FOR_PATH_LENGTH = 0x01, /// }; /// - void TaskGoToEntity(int entity, IEntity target, int duration, float distance, float moveBlendRatio, float slowDownDistance, int flags); + void TaskGoToEntity(uint entity, IEntity target, int duration, float distance, float moveBlendRatio, float slowDownDistance, int flags); /// /// The entity will move towards the target until time is over (duration) or get in target's range (distance). p5 and p6 are unknown, but you could leave p5 = 1073741824 or 100 or even 0 (didn't see any difference but on the decompiled scripts, they use 1073741824 mostly) and p6 = 0 /// Note: I've only tested it on entity -> ped and target -> vehicle. It could work differently on other entities, didn't try it yet. @@ -18276,7 +18263,7 @@ public unsafe interface INatives /// EGOTO_ENTITY_NEVER_SLOW_FOR_PATH_LENGTH = 0x01, /// }; /// - void TaskGoToEntity(int entity, int target, int duration, float distance, float moveBlendRatio, float slowDownDistance, int flags); + void TaskGoToEntity(uint entity, uint target, int duration, float distance, float moveBlendRatio, float slowDownDistance, int flags); /// /// Makes the specified ped flee the specified distance from the specified position. /// @@ -18284,19 +18271,19 @@ public unsafe interface INatives /// /// Makes the specified ped flee the specified distance from the specified position. /// - void TaskSmartFleeCoord(int ped, float x, float y, float z, float distance, int time, bool preferPavements, bool quitIfOutOfRange); + void TaskSmartFleeCoord(uint ped, float x, float y, float z, float distance, int time, bool preferPavements, bool quitIfOutOfRange); /// /// Makes a ped run away from another ped (fleeTarget). /// distance = ped will flee this distance. /// /// = ped will flee for this amount of time, set to "-1" to flee forever - void TaskSmartFleePed(IPlayer ped, int fleeTarget, float safeDistance, int fleeTime, bool preferPavements, bool updateToNearestHatedPed); + void TaskSmartFleePed(IPlayer ped, uint fleeTarget, float safeDistance, int fleeTime, bool preferPavements, bool updateToNearestHatedPed); /// /// Makes a ped run away from another ped (fleeTarget). /// distance = ped will flee this distance. /// /// = ped will flee for this amount of time, set to "-1" to flee forever - void TaskSmartFleePed(int ped, IPlayer fleeTarget, float safeDistance, int fleeTime, bool preferPavements, bool updateToNearestHatedPed); + void TaskSmartFleePed(uint ped, IPlayer fleeTarget, float safeDistance, int fleeTime, bool preferPavements, bool updateToNearestHatedPed); /// /// Makes a ped run away from another ped (fleeTarget). /// distance = ped will flee this distance. @@ -18308,15 +18295,15 @@ public unsafe interface INatives /// distance = ped will flee this distance. /// /// = ped will flee for this amount of time, set to "-1" to flee forever - void TaskSmartFleePed(int ped, int fleeTarget, float safeDistance, int fleeTime, bool preferPavements, bool updateToNearestHatedPed); - void TaskReactAndFleePed(IPlayer ped, int fleeTarget); - void TaskReactAndFleePed(int ped, IPlayer fleeTarget); + void TaskSmartFleePed(uint ped, uint fleeTarget, float safeDistance, int fleeTime, bool preferPavements, bool updateToNearestHatedPed); + void TaskReactAndFleePed(IPlayer ped, uint fleeTarget); + void TaskReactAndFleePed(uint ped, IPlayer fleeTarget); void TaskReactAndFleePed(IPlayer ped, IPlayer fleeTarget); - void TaskReactAndFleePed(int ped, int fleeTarget); + void TaskReactAndFleePed(uint ped, uint fleeTarget); void TaskShockingEventReact(IPlayer ped, int eventHandle); - void TaskShockingEventReact(int ped, int eventHandle); + void TaskShockingEventReact(uint ped, int eventHandle); void TaskWanderInArea(IPlayer ped, float x, float y, float z, float radius, float minimalLength, float timeBetweenWalks); - void TaskWanderInArea(int ped, float x, float y, float z, float radius, float minimalLength, float timeBetweenWalks); + void TaskWanderInArea(uint ped, float x, float y, float z, float radius, float minimalLength, float timeBetweenWalks); /// /// Makes ped walk around the area. /// set p1 to 10.0f and p2 to 10 if you want the ped to walk anywhere without a duration. @@ -18326,9 +18313,9 @@ public unsafe interface INatives /// Makes ped walk around the area. /// set p1 to 10.0f and p2 to 10 if you want the ped to walk anywhere without a duration. /// - void TaskWanderStandard(int ped, float heading, int flags); + void TaskWanderStandard(uint ped, float heading, int flags); void TaskWanderSpecific(IPlayer ped, string conditionalAnimGroupStr, string conditionalAnimStr, float heading); - void TaskWanderSpecific(int ped, string conditionalAnimGroupStr, string conditionalAnimStr, float heading); + void TaskWanderSpecific(uint ped, string conditionalAnimGroupStr, string conditionalAnimStr, float heading); /// /// Modes: /// 0 - ignore heading @@ -18337,7 +18324,7 @@ public unsafe interface INatives /// Depending on the angle of approach, the vehicle can park at the specified heading or at its exact opposite (-180) angle. /// /// seems to define how close the vehicle has to be -after parking- to the position for this task considered completed. If the value is too small, the vehicle will try to park again until it's exactly where it should be. 20.0 Works well but lower values don't, like the radius is measured in centimeters or something. - void TaskVehiclePark(IPlayer ped, int vehicle, float x, float y, float z, float heading, int mode, float radius, bool keepEngineOn); + void TaskVehiclePark(IPlayer ped, uint vehicle, float x, float y, float z, float heading, int mode, float radius, bool keepEngineOn); /// /// Modes: /// 0 - ignore heading @@ -18346,7 +18333,7 @@ public unsafe interface INatives /// Depending on the angle of approach, the vehicle can park at the specified heading or at its exact opposite (-180) angle. /// /// seems to define how close the vehicle has to be -after parking- to the position for this task considered completed. If the value is too small, the vehicle will try to park again until it's exactly where it should be. 20.0 Works well but lower values don't, like the radius is measured in centimeters or something. - void TaskVehiclePark(int ped, IVehicle vehicle, float x, float y, float z, float heading, int mode, float radius, bool keepEngineOn); + void TaskVehiclePark(uint ped, IVehicle vehicle, float x, float y, float z, float heading, int mode, float radius, bool keepEngineOn); /// /// Modes: /// 0 - ignore heading @@ -18364,15 +18351,15 @@ public unsafe interface INatives /// Depending on the angle of approach, the vehicle can park at the specified heading or at its exact opposite (-180) angle. /// /// seems to define how close the vehicle has to be -after parking- to the position for this task considered completed. If the value is too small, the vehicle will try to park again until it's exactly where it should be. 20.0 Works well but lower values don't, like the radius is measured in centimeters or something. - void TaskVehiclePark(int ped, int vehicle, float x, float y, float z, float heading, int mode, float radius, bool keepEngineOn); + void TaskVehiclePark(uint ped, uint vehicle, float x, float y, float z, float heading, int mode, float radius, bool keepEngineOn); /// /// known "killTypes" are: "AR_stealth_kill_knife" and "AR_stealth_kill_a". /// - void TaskStealthKill(IPlayer killer, int target, uint stealthKillActionResultHash, float desiredMoveBlendRatio, int stealthFlags); + void TaskStealthKill(IPlayer killer, uint target, uint stealthKillActionResultHash, float desiredMoveBlendRatio, int stealthFlags); /// /// known "killTypes" are: "AR_stealth_kill_knife" and "AR_stealth_kill_a". /// - void TaskStealthKill(int killer, IPlayer target, uint stealthKillActionResultHash, float desiredMoveBlendRatio, int stealthFlags); + void TaskStealthKill(uint killer, IPlayer target, uint stealthKillActionResultHash, float desiredMoveBlendRatio, int stealthFlags); /// /// known "killTypes" are: "AR_stealth_kill_knife" and "AR_stealth_kill_a". /// @@ -18380,9 +18367,9 @@ public unsafe interface INatives /// /// known "killTypes" are: "AR_stealth_kill_knife" and "AR_stealth_kill_a". /// - void TaskStealthKill(int killer, int target, uint stealthKillActionResultHash, float desiredMoveBlendRatio, int stealthFlags); + void TaskStealthKill(uint killer, uint target, uint stealthKillActionResultHash, float desiredMoveBlendRatio, int stealthFlags); void TaskPlantBomb(IPlayer ped, float x, float y, float z, float heading); - void TaskPlantBomb(int ped, float x, float y, float z, float heading); + void TaskPlantBomb(uint ped, float x, float y, float z, float heading); /// /// If no timeout, set timeout to -1. /// @@ -18390,15 +18377,15 @@ public unsafe interface INatives /// /// If no timeout, set timeout to -1. /// - void TaskFollowNavMeshToCoord(int ped, float x, float y, float z, float moveBlendRatio, int time, float targetRadius, int flags, float targetHeading); + void TaskFollowNavMeshToCoord(uint ped, float x, float y, float z, float moveBlendRatio, int time, float targetRadius, int flags, float targetHeading); void TaskFollowNavMeshToCoordAdvanced(IPlayer ped, float x, float y, float z, float moveBlendRatio, int time, float targetRadius, int flags, float slideToCoordHeading, float maxSlopeNavigable, float clampMaxSearchDistance, float targetHeading); - void TaskFollowNavMeshToCoordAdvanced(int ped, float x, float y, float z, float moveBlendRatio, int time, float targetRadius, int flags, float slideToCoordHeading, float maxSlopeNavigable, float clampMaxSearchDistance, float targetHeading); + void TaskFollowNavMeshToCoordAdvanced(uint ped, float x, float y, float z, float moveBlendRatio, int time, float targetRadius, int flags, float slideToCoordHeading, float maxSlopeNavigable, float clampMaxSearchDistance, float targetHeading); void SetPedPathCanUseClimbovers(IPlayer ped, bool Toggle); - void SetPedPathCanUseClimbovers(int ped, bool Toggle); + void SetPedPathCanUseClimbovers(uint ped, bool Toggle); void SetPedPathCanUseLadders(IPlayer ped, bool Toggle); - void SetPedPathCanUseLadders(int ped, bool Toggle); + void SetPedPathCanUseLadders(uint ped, bool Toggle); void SetPedPathCanDropFromHeight(IPlayer ped, bool Toggle); - void SetPedPathCanDropFromHeight(int ped, bool Toggle); + void SetPedPathCanDropFromHeight(uint ped, bool Toggle); /// /// Default modifier is 1.0, minimum is 0.0 and maximum is 10.0. /// @@ -18406,13 +18393,13 @@ public unsafe interface INatives /// /// Default modifier is 1.0, minimum is 0.0 and maximum is 10.0. /// - void SetPedPathClimbCostModifier(int ped, float modifier); + void SetPedPathClimbCostModifier(uint ped, float modifier); void SetPedPathMayEnterWater(IPlayer ped, bool mayEnterWater); - void SetPedPathMayEnterWater(int ped, bool mayEnterWater); + void SetPedPathMayEnterWater(uint ped, bool mayEnterWater); void SetPedPathPreferToAvoidWater(IPlayer ped, bool avoidWater); - void SetPedPathPreferToAvoidWater(int ped, bool avoidWater); + void SetPedPathPreferToAvoidWater(uint ped, bool avoidWater); void SetPedPathAvoidFire(IPlayer ped, bool avoidFire); - void SetPedPathAvoidFire(int ped, bool avoidFire); + void SetPedPathAvoidFire(uint ped, bool avoidFire); /// /// Needs to be looped! And yes, it does work and is not a hash collision. /// Birds will try to reach the given height. @@ -18435,7 +18422,7 @@ public unsafe interface INatives /// 3 - Finished Generating /// /// Looks like the last parameter returns true if the path has been calculated, while the first returns the remaining distance to the end of the path. - int GetNavmeshRouteDistanceRemaining(int ped, ref float distanceRemaining, ref bool isPathReady); + int GetNavmeshRouteDistanceRemaining(uint ped, ref float distanceRemaining, ref bool isPathReady); /// /// See GET_NAVMESH_ROUTE_DISTANCE_REMAINING for more details. /// @@ -18443,19 +18430,19 @@ public unsafe interface INatives /// /// See GET_NAVMESH_ROUTE_DISTANCE_REMAINING for more details. /// - int GetNavmeshRouteResult(int ped); + int GetNavmeshRouteResult(uint ped); bool IsControlledVehicleUnableToGetToRoad(IPlayer ped); - bool IsControlledVehicleUnableToGetToRoad(int ped); + bool IsControlledVehicleUnableToGetToRoad(uint ped); /// /// example from fm_mission_controller /// TASK::TASK_GO_TO_COORD_ANY_MEANS(l_649, sub_f7e86(-1, 0), 1.0, 0, 0, 786603, 0xbf800000); /// - void TaskGoToCoordAnyMeans(IPlayer ped, float x, float y, float z, float moveBlendRatio, int vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets); + void TaskGoToCoordAnyMeans(IPlayer ped, float x, float y, float z, float moveBlendRatio, uint vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets); /// /// example from fm_mission_controller /// TASK::TASK_GO_TO_COORD_ANY_MEANS(l_649, sub_f7e86(-1, 0), 1.0, 0, 0, 786603, 0xbf800000); /// - void TaskGoToCoordAnyMeans(int ped, float x, float y, float z, float moveBlendRatio, IVehicle vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets); + void TaskGoToCoordAnyMeans(uint ped, float x, float y, float z, float moveBlendRatio, IVehicle vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets); /// /// example from fm_mission_controller /// TASK::TASK_GO_TO_COORD_ANY_MEANS(l_649, sub_f7e86(-1, 0), 1.0, 0, 0, 786603, 0xbf800000); @@ -18465,15 +18452,15 @@ public unsafe interface INatives /// example from fm_mission_controller /// TASK::TASK_GO_TO_COORD_ANY_MEANS(l_649, sub_f7e86(-1, 0), 1.0, 0, 0, 786603, 0xbf800000); /// - void TaskGoToCoordAnyMeans(int ped, float x, float y, float z, float moveBlendRatio, int vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets); - void TaskGoToCoordAnyMeansExtraParams(IPlayer ped, float x, float y, float z, float moveBlendRatio, int vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float warpTimerMS); - void TaskGoToCoordAnyMeansExtraParams(int ped, float x, float y, float z, float moveBlendRatio, IVehicle vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float warpTimerMS); + void TaskGoToCoordAnyMeans(uint ped, float x, float y, float z, float moveBlendRatio, uint vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets); + void TaskGoToCoordAnyMeansExtraParams(IPlayer ped, float x, float y, float z, float moveBlendRatio, uint vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float warpTimerMS); + void TaskGoToCoordAnyMeansExtraParams(uint ped, float x, float y, float z, float moveBlendRatio, IVehicle vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float warpTimerMS); void TaskGoToCoordAnyMeansExtraParams(IPlayer ped, float x, float y, float z, float moveBlendRatio, IVehicle vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float warpTimerMS); - void TaskGoToCoordAnyMeansExtraParams(int ped, float x, float y, float z, float moveBlendRatio, int vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float warpTimerMS); - void TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(IPlayer ped, float x, float y, float z, float moveBlendRatio, int vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float cruiseSpeed, float targetArriveDist); - void TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(int ped, float x, float y, float z, float moveBlendRatio, IVehicle vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float cruiseSpeed, float targetArriveDist); + void TaskGoToCoordAnyMeansExtraParams(uint ped, float x, float y, float z, float moveBlendRatio, uint vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float warpTimerMS); + void TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(IPlayer ped, float x, float y, float z, float moveBlendRatio, uint vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float cruiseSpeed, float targetArriveDist); + void TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(uint ped, float x, float y, float z, float moveBlendRatio, IVehicle vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float cruiseSpeed, float targetArriveDist); void TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(IPlayer ped, float x, float y, float z, float moveBlendRatio, IVehicle vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float cruiseSpeed, float targetArriveDist); - void TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(int ped, float x, float y, float z, float moveBlendRatio, int vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float cruiseSpeed, float targetArriveDist); + void TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(uint ped, float x, float y, float z, float moveBlendRatio, uint vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float cruiseSpeed, float targetArriveDist); /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// float speed > normal speed is 8.0f @@ -18499,7 +18486,7 @@ public unsafe interface INatives /// 0 _ _ _ _ _ _ _ > Not play at all /// See NativeDB for reference: http://natives.altv.mp/#/0xEA47FE3719165B94 /// - void TaskPlayAnim(int ped, string animDictionary, string animationName, float blendInSpeed, float blendOutSpeed, int duration, int flag, float playbackRate, bool lockX, bool lockY, bool lockZ); + void TaskPlayAnim(uint ped, string animDictionary, string animationName, float blendInSpeed, float blendOutSpeed, int duration, int flag, float playbackRate, bool lockX, bool lockY, bool lockZ); /// /// It's similar to TASK_PLAY_ANIM, except the first 6 floats let you specify the initial position and rotation of the task. (Ped gets teleported to the position). /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json @@ -18509,7 +18496,7 @@ public unsafe interface INatives /// It's similar to TASK_PLAY_ANIM, except the first 6 floats let you specify the initial position and rotation of the task. (Ped gets teleported to the position). /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// - void TaskPlayAnimAdvanced(int ped, string animDict, string animName, float posX, float posY, float posZ, float rotX, float rotY, float rotZ, float animEnterSpeed, float animExitSpeed, int duration, int flag, float animTime, int rotOrder, int ikFlags); + void TaskPlayAnimAdvanced(uint ped, string animDict, string animName, float posX, float posY, float posZ, float rotX, float rotY, float rotZ, float animEnterSpeed, float animExitSpeed, int duration, int flag, float animTime, int rotOrder, int ikFlags); /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// @@ -18517,7 +18504,7 @@ public unsafe interface INatives /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// - void StopAnimTask(int entity, string animDictionary, string animationName, float blendDelta); + void StopAnimTask(uint entity, string animDictionary, string animationName, float blendDelta); /// /// From fm_mission_controller.c: /// reserve_network_mission_objects(get_num_reserved_mission_objects(0) + 1); @@ -18543,13 +18530,13 @@ public unsafe interface INatives /// Var31.imm_5 = 1065353216; /// See NativeDB for reference: http://natives.altv.mp/#/0x126EF75F1E17ABE5 /// - void TaskScriptedAnimation(int ped, ref int priorityLowData, ref int priorityMidData, ref int priorityHighData, float blendInDelta, float blendOutDelta); + void TaskScriptedAnimation(uint ped, ref int priorityLowData, ref int priorityMidData, ref int priorityHighData, float blendInDelta, float blendOutDelta); /// /// void PlayEntityScriptedAnim(IEntity entity, ref int priorityLowData, ref int priorityMidData, ref int priorityHighData, float blendInDelta, float blendOutDelta); /// /// - void PlayEntityScriptedAnim(int entity, ref int priorityLowData, ref int priorityMidData, ref int priorityHighData, float blendInDelta, float blendOutDelta); + void PlayEntityScriptedAnim(uint entity, ref int priorityLowData, ref int priorityMidData, ref int priorityHighData, float blendInDelta, float blendOutDelta); /// /// Looks like p1 may be a flag, still need to do some research, though. /// @@ -18557,15 +18544,15 @@ public unsafe interface INatives /// /// Looks like p1 may be a flag, still need to do some research, though. /// - void StopAnimPlayback(int entity, int priority, bool secondary); + void StopAnimPlayback(uint entity, int priority, bool secondary); void SetAnimWeight(IEntity entity, float weight, int priority, int index, bool secondary); - void SetAnimWeight(int entity, float weight, int priority, int index, bool secondary); + void SetAnimWeight(uint entity, float weight, int priority, int index, bool secondary); void SetAnimPhase(IEntity entity, float phase, int priority, bool secondary); - void SetAnimPhase(int entity, float phase, int priority, bool secondary); + void SetAnimPhase(uint entity, float phase, int priority, bool secondary); void SetAnimRate(IEntity entity, float rate, int priority, bool secondary); - void SetAnimRate(int entity, float rate, int priority, bool secondary); + void SetAnimRate(uint entity, float rate, int priority, bool secondary); void SetAnimLooped(IEntity entity, bool looped, int priority, bool secondary); - void SetAnimLooped(int entity, bool looped, int priority, bool secondary); + void SetAnimLooped(uint entity, bool looped, int priority, bool secondary); /// /// Example from the scripts: /// TASK::TASK_PLAY_PHONE_GESTURE_ANIMATION(PLAYER::PLAYER_PED_ID(), v_3, v_2, v_4, 0.25, 0.25, 0, 0); @@ -18599,15 +18586,15 @@ public unsafe interface INatives /// known args - 0.0f, 0.25f /// known args - 1 if a global if check is passed. /// known args - 1 if a global if check is passed. - void TaskPlayPhoneGestureAnimation(int ped, string animDict, string animation, string boneMaskType, float blendInDuration, float blendOutDuration, bool isLooping, bool holdLastFrame); + void TaskPlayPhoneGestureAnimation(uint ped, string animDict, string animation, string boneMaskType, float blendInDuration, float blendOutDuration, bool isLooping, bool holdLastFrame); void TaskStopPhoneGestureAnimation(IPlayer ped, float blendOutOverride); - void TaskStopPhoneGestureAnimation(int ped, float blendOutOverride); + void TaskStopPhoneGestureAnimation(uint ped, float blendOutOverride); bool IsPlayingPhoneGestureAnim(IPlayer ped); - bool IsPlayingPhoneGestureAnim(int ped); + bool IsPlayingPhoneGestureAnim(uint ped); float GetPhoneGestureAnimCurrentTime(IPlayer ped); - float GetPhoneGestureAnimCurrentTime(int ped); + float GetPhoneGestureAnimCurrentTime(uint ped); float GetPhoneGestureAnimTotalTime(IPlayer ped); - float GetPhoneGestureAnimTotalTime(int ped); + float GetPhoneGestureAnimTotalTime(uint ped); /// /// Most probably plays a specific animation on vehicle. For example getting chop out of van etc... /// Here's how its used - @@ -18623,7 +18610,7 @@ public unsafe interface INatives /// TASK::TASK_VEHICLE_PLAY_ANIM(l_556[01], "missfra0_chop_drhome", "InCar_GetOutofBack_Speedo"); /// FYI : Speedo is the name of van in which chop was put in the mission. /// - void TaskVehiclePlayAnim(int vehicle, string animationSet, string animationName); + void TaskVehiclePlayAnim(uint vehicle, string animationSet, string animationName); /// /// enum eScriptLookatFlags /// { @@ -18649,15 +18636,15 @@ public unsafe interface INatives /// SLF_NARROW_YAW_LIMIT = 64, // narrow yaw head limits /// See NativeDB for reference: http://natives.altv.mp/#/0x6FA46612594F7973 /// - void TaskLookAtCoord(int entity, float x, float y, float z, int duration, int flags, int priority); + void TaskLookAtCoord(uint entity, float x, float y, float z, int duration, int flags, int priority); /// /// For flags, please refer to TASK_LOOK_AT_COORD. /// - void TaskLookAtEntity(IPlayer ped, int lookAt, int duration, int flags, int priority); + void TaskLookAtEntity(IPlayer ped, uint lookAt, int duration, int flags, int priority); /// /// For flags, please refer to TASK_LOOK_AT_COORD. /// - void TaskLookAtEntity(int ped, IEntity lookAt, int duration, int flags, int priority); + void TaskLookAtEntity(uint ped, IEntity lookAt, int duration, int flags, int priority); /// /// For flags, please refer to TASK_LOOK_AT_COORD. /// @@ -18665,17 +18652,17 @@ public unsafe interface INatives /// /// For flags, please refer to TASK_LOOK_AT_COORD. /// - void TaskLookAtEntity(int ped, int lookAt, int duration, int flags, int priority); + void TaskLookAtEntity(uint ped, uint lookAt, int duration, int flags, int priority); void TaskClearLookAt(IPlayer ped); - void TaskClearLookAt(int ped); + void TaskClearLookAt(uint ped); /// /// void OpenSequenceTask(ref int taskSequenceId); void CloseSequenceTask(int taskSequenceId); void TaskPerformSequence(IPlayer ped, int taskSequenceId); - void TaskPerformSequence(int ped, int taskSequenceId); + void TaskPerformSequence(uint ped, int taskSequenceId); void TaskPerformSequenceLocally(IPlayer ped, int taskSequenceId); - void TaskPerformSequenceLocally(int ped, int taskSequenceId); + void TaskPerformSequenceLocally(uint ped, int taskSequenceId); /// /// void ClearSequenceTask(ref int taskSequenceId); @@ -18691,7 +18678,7 @@ public unsafe interface INatives /// 0 to 7 = task that's currently in progress, 0 meaning the first one. /// -1 no task sequence in progress. /// - int GetSequenceProgress(int ped); + int GetSequenceProgress(uint ped); /// /// Task index enum: https://alloc8or.re/gta5/doc/enums/eTaskTypeIndex.txt /// @@ -18699,7 +18686,7 @@ public unsafe interface INatives /// /// Task index enum: https://alloc8or.re/gta5/doc/enums/eTaskTypeIndex.txt /// - bool GetIsTaskActive(int ped, int taskIndex); + bool GetIsTaskActive(uint ped, int taskIndex); /// /// Gets the status of a script-assigned task. /// @@ -18709,7 +18696,7 @@ public unsafe interface INatives /// Gets the status of a script-assigned task. /// /// https://alloc8or.re/gta5/doc/enums/eScriptTaskHash.txt - int GetScriptTaskStatus(int ped, uint taskHash); + int GetScriptTaskStatus(uint ped, uint taskHash); /// /// https://alloc8or.re/gta5/doc/enums/eVehicleMissionType.txt /// @@ -18717,7 +18704,7 @@ public unsafe interface INatives /// /// https://alloc8or.re/gta5/doc/enums/eVehicleMissionType.txt /// - int GetActiveVehicleMissionType(int vehicle); + int GetActiveVehicleMissionType(uint vehicle); /// /// /// are the same flags used in TASK_LEAVE_VEHICLE @@ -18725,26 +18712,26 @@ public unsafe interface INatives /// /// /// are the same flags used in TASK_LEAVE_VEHICLE - void TaskLeaveAnyVehicle(int ped, int delayTime, int flags); + void TaskLeaveAnyVehicle(uint ped, int delayTime, int flags); void TaskAimGunScripted(IPlayer ped, uint scriptTask, bool disableBlockingClip, bool instantBlendToAim); - void TaskAimGunScripted(int ped, uint scriptTask, bool disableBlockingClip, bool instantBlendToAim); - void TaskAimGunScriptedWithTarget(IPlayer ped, int target, float x, float y, float z, int gunTaskType, bool disableBlockingClip, bool forceAim); - void TaskAimGunScriptedWithTarget(int ped, IPlayer target, float x, float y, float z, int gunTaskType, bool disableBlockingClip, bool forceAim); + void TaskAimGunScripted(uint ped, uint scriptTask, bool disableBlockingClip, bool instantBlendToAim); + void TaskAimGunScriptedWithTarget(IPlayer ped, uint target, float x, float y, float z, int gunTaskType, bool disableBlockingClip, bool forceAim); + void TaskAimGunScriptedWithTarget(uint ped, IPlayer target, float x, float y, float z, int gunTaskType, bool disableBlockingClip, bool forceAim); void TaskAimGunScriptedWithTarget(IPlayer ped, IPlayer target, float x, float y, float z, int gunTaskType, bool disableBlockingClip, bool forceAim); - void TaskAimGunScriptedWithTarget(int ped, int target, float x, float y, float z, int gunTaskType, bool disableBlockingClip, bool forceAim); - void UpdateTaskAimGunScriptedTarget(IPlayer ped, int target, float x, float y, float z, bool disableBlockingClip); - void UpdateTaskAimGunScriptedTarget(int ped, IPlayer target, float x, float y, float z, bool disableBlockingClip); + void TaskAimGunScriptedWithTarget(uint ped, uint target, float x, float y, float z, int gunTaskType, bool disableBlockingClip, bool forceAim); + void UpdateTaskAimGunScriptedTarget(IPlayer ped, uint target, float x, float y, float z, bool disableBlockingClip); + void UpdateTaskAimGunScriptedTarget(uint ped, IPlayer target, float x, float y, float z, bool disableBlockingClip); void UpdateTaskAimGunScriptedTarget(IPlayer ped, IPlayer target, float x, float y, float z, bool disableBlockingClip); - void UpdateTaskAimGunScriptedTarget(int ped, int target, float x, float y, float z, bool disableBlockingClip); + void UpdateTaskAimGunScriptedTarget(uint ped, uint target, float x, float y, float z, bool disableBlockingClip); string GetClipSetForScriptedGunTask(int gunTaskType); /// /// /// the amount of time in milliseconds to do the task. -1 will keep the task going until either another task is applied, or CLEAR_ALL_TASKS() is called with the ped - void TaskAimGunAtEntity(IPlayer ped, int entity, int duration, bool instantBlendToAim); + void TaskAimGunAtEntity(IPlayer ped, uint entity, int duration, bool instantBlendToAim); /// /// /// the amount of time in milliseconds to do the task. -1 will keep the task going until either another task is applied, or CLEAR_ALL_TASKS() is called with the ped - void TaskAimGunAtEntity(int ped, IEntity entity, int duration, bool instantBlendToAim); + void TaskAimGunAtEntity(uint ped, IEntity entity, int duration, bool instantBlendToAim); /// /// /// the amount of time in milliseconds to do the task. -1 will keep the task going until either another task is applied, or CLEAR_ALL_TASKS() is called with the ped @@ -18752,15 +18739,15 @@ public unsafe interface INatives /// /// /// the amount of time in milliseconds to do the task. -1 will keep the task going until either another task is applied, or CLEAR_ALL_TASKS() is called with the ped - void TaskAimGunAtEntity(int ped, int entity, int duration, bool instantBlendToAim); + void TaskAimGunAtEntity(uint ped, uint entity, int duration, bool instantBlendToAim); /// /// /// the amount of time in milliseconds to do the task. -1 will keep the task going until either another task is applied, or CLEAR_ALL_TASKS() is called with the ped - void TaskTurnPedToFaceEntity(IPlayer ped, int entity, int duration); + void TaskTurnPedToFaceEntity(IPlayer ped, uint entity, int duration); /// /// /// the amount of time in milliseconds to do the task. -1 will keep the task going until either another task is applied, or CLEAR_ALL_TASKS() is called with the ped - void TaskTurnPedToFaceEntity(int ped, IEntity entity, int duration); + void TaskTurnPedToFaceEntity(uint ped, IEntity entity, int duration); /// /// /// the amount of time in milliseconds to do the task. -1 will keep the task going until either another task is applied, or CLEAR_ALL_TASKS() is called with the ped @@ -18768,9 +18755,9 @@ public unsafe interface INatives /// /// /// the amount of time in milliseconds to do the task. -1 will keep the task going until either another task is applied, or CLEAR_ALL_TASKS() is called with the ped - void TaskTurnPedToFaceEntity(int ped, int entity, int duration); + void TaskTurnPedToFaceEntity(uint ped, uint entity, int duration); void TaskAimGunAtCoord(IPlayer ped, float x, float y, float z, int time, bool instantBlendToAim, bool playAnimIntro); - void TaskAimGunAtCoord(int ped, float x, float y, float z, int time, bool instantBlendToAim, bool playAnimIntro); + void TaskAimGunAtCoord(uint ped, float x, float y, float z, int time, bool instantBlendToAim, bool playAnimIntro); /// /// Firing Pattern Hash Information: https://pastebin.com/Px036isB /// @@ -18778,17 +18765,17 @@ public unsafe interface INatives /// /// Firing Pattern Hash Information: https://pastebin.com/Px036isB /// - void TaskShootAtCoord(int ped, float x, float y, float z, int duration, uint firingPattern); + void TaskShootAtCoord(uint ped, float x, float y, float z, int duration, uint firingPattern); /// /// Makes the specified ped shuffle to the next vehicle seat. /// The ped MUST be in a vehicle and the vehicle parameter MUST be the ped's current vehicle. /// - void TaskShuffleToNextVehicleSeat(IPlayer ped, int vehicle, bool useAlternateShuffle); + void TaskShuffleToNextVehicleSeat(IPlayer ped, uint vehicle, bool useAlternateShuffle); /// /// Makes the specified ped shuffle to the next vehicle seat. /// The ped MUST be in a vehicle and the vehicle parameter MUST be the ped's current vehicle. /// - void TaskShuffleToNextVehicleSeat(int ped, IVehicle vehicle, bool useAlternateShuffle); + void TaskShuffleToNextVehicleSeat(uint ped, IVehicle vehicle, bool useAlternateShuffle); /// /// Makes the specified ped shuffle to the next vehicle seat. /// The ped MUST be in a vehicle and the vehicle parameter MUST be the ped's current vehicle. @@ -18798,13 +18785,13 @@ public unsafe interface INatives /// Makes the specified ped shuffle to the next vehicle seat. /// The ped MUST be in a vehicle and the vehicle parameter MUST be the ped's current vehicle. /// - void TaskShuffleToNextVehicleSeat(int ped, int vehicle, bool useAlternateShuffle); + void TaskShuffleToNextVehicleSeat(uint ped, uint vehicle, bool useAlternateShuffle); void ClearPedTasks(IPlayer ped); - void ClearPedTasks(int ped); + void ClearPedTasks(uint ped); void ClearPedSecondaryTask(IPlayer ped); - void ClearPedSecondaryTask(int ped); + void ClearPedSecondaryTask(uint ped); void TaskEveryoneLeaveVehicle(IVehicle vehicle); - void TaskEveryoneLeaveVehicle(int vehicle); + void TaskEveryoneLeaveVehicle(uint vehicle); /// /// enum ESEEK_ENTITY_OFFSET_FLAGS /// { @@ -18812,7 +18799,7 @@ public unsafe interface INatives /// ESEEK_KEEP_TO_PAVEMENTS = 0x02 /// }; /// - void TaskGotoEntityOffset(IPlayer ped, int entity, int time, float seekRadius, float seekAngleDeg, float moveBlendRatio, int gotoEntityOffsetFlags); + void TaskGotoEntityOffset(IPlayer ped, uint entity, int time, float seekRadius, float seekAngleDeg, float moveBlendRatio, int gotoEntityOffsetFlags); /// /// enum ESEEK_ENTITY_OFFSET_FLAGS /// { @@ -18820,7 +18807,7 @@ public unsafe interface INatives /// ESEEK_KEEP_TO_PAVEMENTS = 0x02 /// }; /// - void TaskGotoEntityOffset(int ped, IEntity entity, int time, float seekRadius, float seekAngleDeg, float moveBlendRatio, int gotoEntityOffsetFlags); + void TaskGotoEntityOffset(uint ped, IEntity entity, int time, float seekRadius, float seekAngleDeg, float moveBlendRatio, int gotoEntityOffsetFlags); /// /// enum ESEEK_ENTITY_OFFSET_FLAGS /// { @@ -18836,11 +18823,11 @@ public unsafe interface INatives /// ESEEK_KEEP_TO_PAVEMENTS = 0x02 /// }; /// - void TaskGotoEntityOffset(int ped, int entity, int time, float seekRadius, float seekAngleDeg, float moveBlendRatio, int gotoEntityOffsetFlags); - void TaskGotoEntityOffsetXy(IPlayer ped, int entity, int duration, float targetRadius, float offsetX, float offsetY, float moveBlendRatio, int gotoEntityOffsetFlags); - void TaskGotoEntityOffsetXy(int ped, IEntity entity, int duration, float targetRadius, float offsetX, float offsetY, float moveBlendRatio, int gotoEntityOffsetFlags); + void TaskGotoEntityOffset(uint ped, uint entity, int time, float seekRadius, float seekAngleDeg, float moveBlendRatio, int gotoEntityOffsetFlags); + void TaskGotoEntityOffsetXy(IPlayer ped, uint entity, int duration, float targetRadius, float offsetX, float offsetY, float moveBlendRatio, int gotoEntityOffsetFlags); + void TaskGotoEntityOffsetXy(uint ped, IEntity entity, int duration, float targetRadius, float offsetX, float offsetY, float moveBlendRatio, int gotoEntityOffsetFlags); void TaskGotoEntityOffsetXy(IPlayer ped, IEntity entity, int duration, float targetRadius, float offsetX, float offsetY, float moveBlendRatio, int gotoEntityOffsetFlags); - void TaskGotoEntityOffsetXy(int ped, int entity, int duration, float targetRadius, float offsetX, float offsetY, float moveBlendRatio, int gotoEntityOffsetFlags); + void TaskGotoEntityOffsetXy(uint ped, uint entity, int duration, float targetRadius, float offsetX, float offsetY, float moveBlendRatio, int gotoEntityOffsetFlags); /// /// /// in milliseconds @@ -18848,7 +18835,7 @@ public unsafe interface INatives /// /// /// in milliseconds - void TaskTurnPedToFaceCoord(int ped, float x, float y, float z, int duration); + void TaskTurnPedToFaceCoord(uint ped, float x, float y, float z, int duration); /// /// '1 - brake /// '3 - brake + reverse @@ -18861,7 +18848,7 @@ public unsafe interface INatives /// '10 - turn left + restore wheel pos to center in the end /// See NativeDB for reference: http://natives.altv.mp/#/0xC429DCEEB339E129 /// - void TaskVehicleTempAction(IPlayer driver, int vehicle, int action, int time); + void TaskVehicleTempAction(IPlayer driver, uint vehicle, int action, int time); /// /// '1 - brake /// '3 - brake + reverse @@ -18874,7 +18861,7 @@ public unsafe interface INatives /// '10 - turn left + restore wheel pos to center in the end /// See NativeDB for reference: http://natives.altv.mp/#/0xC429DCEEB339E129 /// - void TaskVehicleTempAction(int driver, IVehicle vehicle, int action, int time); + void TaskVehicleTempAction(uint driver, IVehicle vehicle, int action, int time); /// /// '1 - brake /// '3 - brake + reverse @@ -18900,31 +18887,31 @@ public unsafe interface INatives /// '10 - turn left + restore wheel pos to center in the end /// See NativeDB for reference: http://natives.altv.mp/#/0xC429DCEEB339E129 /// - void TaskVehicleTempAction(int driver, int vehicle, int action, int time); + void TaskVehicleTempAction(uint driver, uint vehicle, int action, int time); /// /// /// https://alloc8or.re/gta5/doc/enums/eVehicleMissionType.txt - void TaskVehicleMission(IPlayer driver, int vehicle, int vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic); + void TaskVehicleMission(IPlayer driver, uint vehicle, uint vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic); /// /// /// https://alloc8or.re/gta5/doc/enums/eVehicleMissionType.txt - void TaskVehicleMission(int driver, IVehicle vehicle, int vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic); + void TaskVehicleMission(uint driver, IVehicle vehicle, uint vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic); /// /// /// https://alloc8or.re/gta5/doc/enums/eVehicleMissionType.txt - void TaskVehicleMission(IPlayer driver, IVehicle vehicle, int vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic); + void TaskVehicleMission(IPlayer driver, IVehicle vehicle, uint vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic); /// /// /// https://alloc8or.re/gta5/doc/enums/eVehicleMissionType.txt - void TaskVehicleMission(int driver, int vehicle, IVehicle vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic); + void TaskVehicleMission(uint driver, uint vehicle, IVehicle vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic); /// /// /// https://alloc8or.re/gta5/doc/enums/eVehicleMissionType.txt - void TaskVehicleMission(IPlayer driver, int vehicle, IVehicle vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic); + void TaskVehicleMission(IPlayer driver, uint vehicle, IVehicle vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic); /// /// /// https://alloc8or.re/gta5/doc/enums/eVehicleMissionType.txt - void TaskVehicleMission(int driver, IVehicle vehicle, IVehicle vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic); + void TaskVehicleMission(uint driver, IVehicle vehicle, IVehicle vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic); /// /// /// https://alloc8or.re/gta5/doc/enums/eVehicleMissionType.txt @@ -18932,31 +18919,31 @@ public unsafe interface INatives /// /// /// https://alloc8or.re/gta5/doc/enums/eVehicleMissionType.txt - void TaskVehicleMission(int driver, int vehicle, int vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic); + void TaskVehicleMission(uint driver, uint vehicle, uint vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic); /// /// See TASK_VEHICLE_MISSION /// - void TaskVehicleMissionPedTarget(IPlayer ped, int vehicle, int pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic); + void TaskVehicleMissionPedTarget(IPlayer ped, uint vehicle, uint pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic); /// /// See TASK_VEHICLE_MISSION /// - void TaskVehicleMissionPedTarget(int ped, IVehicle vehicle, int pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic); + void TaskVehicleMissionPedTarget(uint ped, IVehicle vehicle, uint pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic); /// /// See TASK_VEHICLE_MISSION /// - void TaskVehicleMissionPedTarget(IPlayer ped, IVehicle vehicle, int pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic); + void TaskVehicleMissionPedTarget(IPlayer ped, IVehicle vehicle, uint pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic); /// /// See TASK_VEHICLE_MISSION /// - void TaskVehicleMissionPedTarget(int ped, int vehicle, IPlayer pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic); + void TaskVehicleMissionPedTarget(uint ped, uint vehicle, IPlayer pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic); /// /// See TASK_VEHICLE_MISSION /// - void TaskVehicleMissionPedTarget(IPlayer ped, int vehicle, IPlayer pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic); + void TaskVehicleMissionPedTarget(IPlayer ped, uint vehicle, IPlayer pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic); /// /// See TASK_VEHICLE_MISSION /// - void TaskVehicleMissionPedTarget(int ped, IVehicle vehicle, IPlayer pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic); + void TaskVehicleMissionPedTarget(uint ped, IVehicle vehicle, IPlayer pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic); /// /// See TASK_VEHICLE_MISSION /// @@ -18964,15 +18951,15 @@ public unsafe interface INatives /// /// See TASK_VEHICLE_MISSION /// - void TaskVehicleMissionPedTarget(int ped, int vehicle, int pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic); + void TaskVehicleMissionPedTarget(uint ped, uint vehicle, uint pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic); /// /// See TASK_VEHICLE_MISSION /// - void TaskVehicleMissionCoorsTarget(IPlayer ped, int vehicle, float x, float y, float z, int mission, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic); + void TaskVehicleMissionCoorsTarget(IPlayer ped, uint vehicle, float x, float y, float z, int mission, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic); /// /// See TASK_VEHICLE_MISSION /// - void TaskVehicleMissionCoorsTarget(int ped, IVehicle vehicle, float x, float y, float z, int mission, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic); + void TaskVehicleMissionCoorsTarget(uint ped, IVehicle vehicle, float x, float y, float z, int mission, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic); /// /// See TASK_VEHICLE_MISSION /// @@ -18980,7 +18967,7 @@ public unsafe interface INatives /// /// See TASK_VEHICLE_MISSION /// - void TaskVehicleMissionCoorsTarget(int ped, int vehicle, float x, float y, float z, int mission, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic); + void TaskVehicleMissionCoorsTarget(uint ped, uint vehicle, float x, float y, float z, int mission, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic); /// /// Makes a ped follow the targetVehicle with in between. /// note: minDistance is ignored if drivingstyle is avoiding traffic, but Rushed is fine. @@ -18994,7 +18981,7 @@ public unsafe interface INatives /// Driving Styles guide: gtaforums.com/topic/822314-guide-driving-styles/ /// /// The mode defines the relative position to the targetVehicle. The ped will try to position its vehicle there. - void TaskVehicleEscort(IPlayer ped, int vehicle, int targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance); + void TaskVehicleEscort(IPlayer ped, uint vehicle, uint targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance); /// /// Makes a ped follow the targetVehicle with in between. /// note: minDistance is ignored if drivingstyle is avoiding traffic, but Rushed is fine. @@ -19008,7 +18995,7 @@ public unsafe interface INatives /// Driving Styles guide: gtaforums.com/topic/822314-guide-driving-styles/ /// /// The mode defines the relative position to the targetVehicle. The ped will try to position its vehicle there. - void TaskVehicleEscort(int ped, IVehicle vehicle, int targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance); + void TaskVehicleEscort(uint ped, IVehicle vehicle, uint targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance); /// /// Makes a ped follow the targetVehicle with in between. /// note: minDistance is ignored if drivingstyle is avoiding traffic, but Rushed is fine. @@ -19022,7 +19009,7 @@ public unsafe interface INatives /// Driving Styles guide: gtaforums.com/topic/822314-guide-driving-styles/ /// /// The mode defines the relative position to the targetVehicle. The ped will try to position its vehicle there. - void TaskVehicleEscort(IPlayer ped, IVehicle vehicle, int targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance); + void TaskVehicleEscort(IPlayer ped, IVehicle vehicle, uint targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance); /// /// Makes a ped follow the targetVehicle with in between. /// note: minDistance is ignored if drivingstyle is avoiding traffic, but Rushed is fine. @@ -19036,7 +19023,7 @@ public unsafe interface INatives /// Driving Styles guide: gtaforums.com/topic/822314-guide-driving-styles/ /// /// The mode defines the relative position to the targetVehicle. The ped will try to position its vehicle there. - void TaskVehicleEscort(int ped, int vehicle, IVehicle targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance); + void TaskVehicleEscort(uint ped, uint vehicle, IVehicle targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance); /// /// Makes a ped follow the targetVehicle with in between. /// note: minDistance is ignored if drivingstyle is avoiding traffic, but Rushed is fine. @@ -19050,7 +19037,7 @@ public unsafe interface INatives /// Driving Styles guide: gtaforums.com/topic/822314-guide-driving-styles/ /// /// The mode defines the relative position to the targetVehicle. The ped will try to position its vehicle there. - void TaskVehicleEscort(IPlayer ped, int vehicle, IVehicle targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance); + void TaskVehicleEscort(IPlayer ped, uint vehicle, IVehicle targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance); /// /// Makes a ped follow the targetVehicle with in between. /// note: minDistance is ignored if drivingstyle is avoiding traffic, but Rushed is fine. @@ -19064,7 +19051,7 @@ public unsafe interface INatives /// Driving Styles guide: gtaforums.com/topic/822314-guide-driving-styles/ /// /// The mode defines the relative position to the targetVehicle. The ped will try to position its vehicle there. - void TaskVehicleEscort(int ped, IVehicle vehicle, IVehicle targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance); + void TaskVehicleEscort(uint ped, IVehicle vehicle, IVehicle targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance); /// /// Makes a ped follow the targetVehicle with in between. /// note: minDistance is ignored if drivingstyle is avoiding traffic, but Rushed is fine. @@ -19092,37 +19079,37 @@ public unsafe interface INatives /// Driving Styles guide: gtaforums.com/topic/822314-guide-driving-styles/ /// /// The mode defines the relative position to the targetVehicle. The ped will try to position its vehicle there. - void TaskVehicleEscort(int ped, int vehicle, int targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance); + void TaskVehicleEscort(uint ped, uint vehicle, uint targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance); /// /// Makes a ped in a vehicle follow an entity (ped, vehicle, etc.) /// /// http://gtaforums.com/topic/822314-guide-driving-styles/ - void TaskVehicleFollow(IPlayer driver, int vehicle, int targetEntity, float speed, int drivingStyle, int minDistance); + void TaskVehicleFollow(IPlayer driver, uint vehicle, uint targetEntity, float speed, int drivingStyle, int minDistance); /// /// Makes a ped in a vehicle follow an entity (ped, vehicle, etc.) /// /// http://gtaforums.com/topic/822314-guide-driving-styles/ - void TaskVehicleFollow(int driver, IVehicle vehicle, int targetEntity, float speed, int drivingStyle, int minDistance); + void TaskVehicleFollow(uint driver, IVehicle vehicle, uint targetEntity, float speed, int drivingStyle, int minDistance); /// /// Makes a ped in a vehicle follow an entity (ped, vehicle, etc.) /// /// http://gtaforums.com/topic/822314-guide-driving-styles/ - void TaskVehicleFollow(IPlayer driver, IVehicle vehicle, int targetEntity, float speed, int drivingStyle, int minDistance); + void TaskVehicleFollow(IPlayer driver, IVehicle vehicle, uint targetEntity, float speed, int drivingStyle, int minDistance); /// /// Makes a ped in a vehicle follow an entity (ped, vehicle, etc.) /// /// http://gtaforums.com/topic/822314-guide-driving-styles/ - void TaskVehicleFollow(int driver, int vehicle, IEntity targetEntity, float speed, int drivingStyle, int minDistance); + void TaskVehicleFollow(uint driver, uint vehicle, IEntity targetEntity, float speed, int drivingStyle, int minDistance); /// /// Makes a ped in a vehicle follow an entity (ped, vehicle, etc.) /// /// http://gtaforums.com/topic/822314-guide-driving-styles/ - void TaskVehicleFollow(IPlayer driver, int vehicle, IEntity targetEntity, float speed, int drivingStyle, int minDistance); + void TaskVehicleFollow(IPlayer driver, uint vehicle, IEntity targetEntity, float speed, int drivingStyle, int minDistance); /// /// Makes a ped in a vehicle follow an entity (ped, vehicle, etc.) /// /// http://gtaforums.com/topic/822314-guide-driving-styles/ - void TaskVehicleFollow(int driver, IVehicle vehicle, IEntity targetEntity, float speed, int drivingStyle, int minDistance); + void TaskVehicleFollow(uint driver, IVehicle vehicle, IEntity targetEntity, float speed, int drivingStyle, int minDistance); /// /// Makes a ped in a vehicle follow an entity (ped, vehicle, etc.) /// @@ -19132,19 +19119,19 @@ public unsafe interface INatives /// Makes a ped in a vehicle follow an entity (ped, vehicle, etc.) /// /// http://gtaforums.com/topic/822314-guide-driving-styles/ - void TaskVehicleFollow(int driver, int vehicle, int targetEntity, float speed, int drivingStyle, int minDistance); + void TaskVehicleFollow(uint driver, uint vehicle, uint targetEntity, float speed, int drivingStyle, int minDistance); /// /// chases targetEnt fast and aggressively /// -- /// Makes ped (needs to be in vehicle) chase targetEnt. /// - void TaskVehicleChase(IPlayer driver, int targetEnt); + void TaskVehicleChase(IPlayer driver, uint targetEnt); /// /// chases targetEnt fast and aggressively /// -- /// Makes ped (needs to be in vehicle) chase targetEnt. /// - void TaskVehicleChase(int driver, IEntity targetEnt); + void TaskVehicleChase(uint driver, IEntity targetEnt); /// /// chases targetEnt fast and aggressively /// -- @@ -19156,7 +19143,7 @@ public unsafe interface INatives /// -- /// Makes ped (needs to be in vehicle) chase targetEnt. /// - void TaskVehicleChase(int driver, int targetEnt); + void TaskVehicleChase(uint driver, uint targetEnt); /// /// 'targetSpeed': The pilot will dip the nose AS MUCH AS POSSIBLE so as to reach this value AS FAST AS POSSIBLE. As such, you'll want to modulate it as opposed to calling it via a hard-wired, constant #. /// 'radius' isn't just "stop within radius of X of target" like with ground vehicles. In this case, the pilot will fly an entire circle around 'radius' and continue to do so. @@ -19166,7 +19153,7 @@ public unsafe interface INatives /// is unused variable in the function. /// p7 appears to be a FlyingStyle enum. Still investigating it as of this writing, but playing around with values here appears to result in different -behavior- as opposed to offsetting coordinates, altitude, target speed, etc. /// NOTE: If the pilot finds enemies, it will engage them until it kills them, but will return to protect the ped/vehicle given shortly thereafter. - void TaskVehicleHeliProtect(IPlayer pilot, int vehicle, int entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags); + void TaskVehicleHeliProtect(IPlayer pilot, uint vehicle, uint entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags); /// /// 'targetSpeed': The pilot will dip the nose AS MUCH AS POSSIBLE so as to reach this value AS FAST AS POSSIBLE. As such, you'll want to modulate it as opposed to calling it via a hard-wired, constant #. /// 'radius' isn't just "stop within radius of X of target" like with ground vehicles. In this case, the pilot will fly an entire circle around 'radius' and continue to do so. @@ -19176,7 +19163,7 @@ public unsafe interface INatives /// is unused variable in the function. /// p7 appears to be a FlyingStyle enum. Still investigating it as of this writing, but playing around with values here appears to result in different -behavior- as opposed to offsetting coordinates, altitude, target speed, etc. /// NOTE: If the pilot finds enemies, it will engage them until it kills them, but will return to protect the ped/vehicle given shortly thereafter. - void TaskVehicleHeliProtect(int pilot, IVehicle vehicle, int entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags); + void TaskVehicleHeliProtect(uint pilot, IVehicle vehicle, uint entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags); /// /// 'targetSpeed': The pilot will dip the nose AS MUCH AS POSSIBLE so as to reach this value AS FAST AS POSSIBLE. As such, you'll want to modulate it as opposed to calling it via a hard-wired, constant #. /// 'radius' isn't just "stop within radius of X of target" like with ground vehicles. In this case, the pilot will fly an entire circle around 'radius' and continue to do so. @@ -19186,7 +19173,7 @@ public unsafe interface INatives /// is unused variable in the function. /// p7 appears to be a FlyingStyle enum. Still investigating it as of this writing, but playing around with values here appears to result in different -behavior- as opposed to offsetting coordinates, altitude, target speed, etc. /// NOTE: If the pilot finds enemies, it will engage them until it kills them, but will return to protect the ped/vehicle given shortly thereafter. - void TaskVehicleHeliProtect(IPlayer pilot, IVehicle vehicle, int entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags); + void TaskVehicleHeliProtect(IPlayer pilot, IVehicle vehicle, uint entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags); /// /// 'targetSpeed': The pilot will dip the nose AS MUCH AS POSSIBLE so as to reach this value AS FAST AS POSSIBLE. As such, you'll want to modulate it as opposed to calling it via a hard-wired, constant #. /// 'radius' isn't just "stop within radius of X of target" like with ground vehicles. In this case, the pilot will fly an entire circle around 'radius' and continue to do so. @@ -19196,7 +19183,7 @@ public unsafe interface INatives /// is unused variable in the function. /// p7 appears to be a FlyingStyle enum. Still investigating it as of this writing, but playing around with values here appears to result in different -behavior- as opposed to offsetting coordinates, altitude, target speed, etc. /// NOTE: If the pilot finds enemies, it will engage them until it kills them, but will return to protect the ped/vehicle given shortly thereafter. - void TaskVehicleHeliProtect(int pilot, int vehicle, IEntity entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags); + void TaskVehicleHeliProtect(uint pilot, uint vehicle, IEntity entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags); /// /// 'targetSpeed': The pilot will dip the nose AS MUCH AS POSSIBLE so as to reach this value AS FAST AS POSSIBLE. As such, you'll want to modulate it as opposed to calling it via a hard-wired, constant #. /// 'radius' isn't just "stop within radius of X of target" like with ground vehicles. In this case, the pilot will fly an entire circle around 'radius' and continue to do so. @@ -19206,7 +19193,7 @@ public unsafe interface INatives /// is unused variable in the function. /// p7 appears to be a FlyingStyle enum. Still investigating it as of this writing, but playing around with values here appears to result in different -behavior- as opposed to offsetting coordinates, altitude, target speed, etc. /// NOTE: If the pilot finds enemies, it will engage them until it kills them, but will return to protect the ped/vehicle given shortly thereafter. - void TaskVehicleHeliProtect(IPlayer pilot, int vehicle, IEntity entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags); + void TaskVehicleHeliProtect(IPlayer pilot, uint vehicle, IEntity entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags); /// /// 'targetSpeed': The pilot will dip the nose AS MUCH AS POSSIBLE so as to reach this value AS FAST AS POSSIBLE. As such, you'll want to modulate it as opposed to calling it via a hard-wired, constant #. /// 'radius' isn't just "stop within radius of X of target" like with ground vehicles. In this case, the pilot will fly an entire circle around 'radius' and continue to do so. @@ -19216,7 +19203,7 @@ public unsafe interface INatives /// is unused variable in the function. /// p7 appears to be a FlyingStyle enum. Still investigating it as of this writing, but playing around with values here appears to result in different -behavior- as opposed to offsetting coordinates, altitude, target speed, etc. /// NOTE: If the pilot finds enemies, it will engage them until it kills them, but will return to protect the ped/vehicle given shortly thereafter. - void TaskVehicleHeliProtect(int pilot, IVehicle vehicle, IEntity entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags); + void TaskVehicleHeliProtect(uint pilot, IVehicle vehicle, IEntity entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags); /// /// 'targetSpeed': The pilot will dip the nose AS MUCH AS POSSIBLE so as to reach this value AS FAST AS POSSIBLE. As such, you'll want to modulate it as opposed to calling it via a hard-wired, constant #. /// 'radius' isn't just "stop within radius of X of target" like with ground vehicles. In this case, the pilot will fly an entire circle around 'radius' and continue to do so. @@ -19236,7 +19223,7 @@ public unsafe interface INatives /// is unused variable in the function. /// p7 appears to be a FlyingStyle enum. Still investigating it as of this writing, but playing around with values here appears to result in different -behavior- as opposed to offsetting coordinates, altitude, target speed, etc. /// NOTE: If the pilot finds enemies, it will engage them until it kills them, but will return to protect the ped/vehicle given shortly thereafter. - void TaskVehicleHeliProtect(int pilot, int vehicle, int entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags); + void TaskVehicleHeliProtect(uint pilot, uint vehicle, uint entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags); /// /// Flag 1: Aggressive ramming of suspect /// Flag 2: Ram attempts @@ -19252,9 +19239,9 @@ public unsafe interface INatives /// Flag 16: Ramming, seems to be slightly less aggressive than 1-2. /// /// 8: Medium-aggressive boxing tactic with a bit of PIT - void SetTaskVehicleChaseBehaviorFlag(int ped, int flag, bool set); + void SetTaskVehicleChaseBehaviorFlag(uint ped, int flag, bool set); void SetTaskVehicleChaseIdealPursuitDistance(IPlayer ped, float distance); - void SetTaskVehicleChaseIdealPursuitDistance(int ped, float distance); + void SetTaskVehicleChaseIdealPursuitDistance(uint ped, float distance); /// /// Ped pilot should be in a heli. /// NOTE: If the pilot finds enemies, it will engage them, then remain there idle, not continuing to chase the Entity given. @@ -19262,7 +19249,7 @@ public unsafe interface INatives /// can be a vehicle or Ped. /// 5.0, it tries to go below (if the EntityToFollow is a heli or plane) /// 5.0, it tries to go below (if the EntityToFollow is a heli or plane) - void TaskHeliChase(IPlayer pilot, int entityToFollow, float x, float y, float z); + void TaskHeliChase(IPlayer pilot, uint entityToFollow, float x, float y, float z); /// /// Ped pilot should be in a heli. /// NOTE: If the pilot finds enemies, it will engage them, then remain there idle, not continuing to chase the Entity given. @@ -19270,7 +19257,7 @@ public unsafe interface INatives /// can be a vehicle or Ped. /// 5.0, it tries to go below (if the EntityToFollow is a heli or plane) /// 5.0, it tries to go below (if the EntityToFollow is a heli or plane) - void TaskHeliChase(int pilot, IEntity entityToFollow, float x, float y, float z); + void TaskHeliChase(uint pilot, IEntity entityToFollow, float x, float y, float z); /// /// Ped pilot should be in a heli. /// NOTE: If the pilot finds enemies, it will engage them, then remain there idle, not continuing to chase the Entity given. @@ -19286,17 +19273,17 @@ public unsafe interface INatives /// can be a vehicle or Ped. /// 5.0, it tries to go below (if the EntityToFollow is a heli or plane) /// 5.0, it tries to go below (if the EntityToFollow is a heli or plane) - void TaskHeliChase(int pilot, int entityToFollow, float x, float y, float z); - void TaskPlaneChase(IPlayer pilot, int entityToFollow, float x, float y, float z); - void TaskPlaneChase(int pilot, IEntity entityToFollow, float x, float y, float z); + void TaskHeliChase(uint pilot, uint entityToFollow, float x, float y, float z); + void TaskPlaneChase(IPlayer pilot, uint entityToFollow, float x, float y, float z); + void TaskPlaneChase(uint pilot, IEntity entityToFollow, float x, float y, float z); void TaskPlaneChase(IPlayer pilot, IEntity entityToFollow, float x, float y, float z); - void TaskPlaneChase(int pilot, int entityToFollow, float x, float y, float z); - void TaskPlaneLand(IPlayer pilot, int plane, float runwayStartX, float runwayStartY, float runwayStartZ, float runwayEndX, float runwayEndY, float runwayEndZ); - void TaskPlaneLand(int pilot, IVehicle plane, float runwayStartX, float runwayStartY, float runwayStartZ, float runwayEndX, float runwayEndY, float runwayEndZ); + void TaskPlaneChase(uint pilot, uint entityToFollow, float x, float y, float z); + void TaskPlaneLand(IPlayer pilot, uint plane, float runwayStartX, float runwayStartY, float runwayStartZ, float runwayEndX, float runwayEndY, float runwayEndZ); + void TaskPlaneLand(uint pilot, IVehicle plane, float runwayStartX, float runwayStartY, float runwayStartZ, float runwayEndX, float runwayEndY, float runwayEndZ); void TaskPlaneLand(IPlayer pilot, IVehicle plane, float runwayStartX, float runwayStartY, float runwayStartZ, float runwayEndX, float runwayEndY, float runwayEndZ); - void TaskPlaneLand(int pilot, int plane, float runwayStartX, float runwayStartY, float runwayStartZ, float runwayEndX, float runwayEndY, float runwayEndZ); + void TaskPlaneLand(uint pilot, uint plane, float runwayStartX, float runwayStartY, float runwayStartZ, float runwayEndX, float runwayEndY, float runwayEndZ); void ClearDefaultPrimaryTask(IPlayer ped); - void ClearDefaultPrimaryTask(int ped); + void ClearDefaultPrimaryTask(uint ped); /// /// This native is very useful when switching the player to a ped inside a vehicle that has a task assigned prior to the player switch. /// It is necessary to clear the ped's tasks AND call this native with the vehicle the player is switching into in order to allow the player to control the vehicle after the player switches. @@ -19306,27 +19293,27 @@ public unsafe interface INatives /// This native is very useful when switching the player to a ped inside a vehicle that has a task assigned prior to the player switch. /// It is necessary to clear the ped's tasks AND call this native with the vehicle the player is switching into in order to allow the player to control the vehicle after the player switches. /// - void ClearPrimaryVehicleTask(int vehicle); + void ClearPrimaryVehicleTask(uint vehicle); void ClearVehicleCrashTask(IVehicle vehicle); - void ClearVehicleCrashTask(int vehicle); - void TaskPlaneGotoPreciseVtol(IPlayer ped, int vehicle, float x, float y, float z, int flightHeight, int minHeightAboveTerrain, bool useDesiredOrientation, float desiredOrientation, bool autopilot); - void TaskPlaneGotoPreciseVtol(int ped, IVehicle vehicle, float x, float y, float z, int flightHeight, int minHeightAboveTerrain, bool useDesiredOrientation, float desiredOrientation, bool autopilot); + void ClearVehicleCrashTask(uint vehicle); + void TaskPlaneGotoPreciseVtol(IPlayer ped, uint vehicle, float x, float y, float z, int flightHeight, int minHeightAboveTerrain, bool useDesiredOrientation, float desiredOrientation, bool autopilot); + void TaskPlaneGotoPreciseVtol(uint ped, IVehicle vehicle, float x, float y, float z, int flightHeight, int minHeightAboveTerrain, bool useDesiredOrientation, float desiredOrientation, bool autopilot); void TaskPlaneGotoPreciseVtol(IPlayer ped, IVehicle vehicle, float x, float y, float z, int flightHeight, int minHeightAboveTerrain, bool useDesiredOrientation, float desiredOrientation, bool autopilot); - void TaskPlaneGotoPreciseVtol(int ped, int vehicle, float x, float y, float z, int flightHeight, int minHeightAboveTerrain, bool useDesiredOrientation, float desiredOrientation, bool autopilot); + void TaskPlaneGotoPreciseVtol(uint ped, uint vehicle, float x, float y, float z, int flightHeight, int minHeightAboveTerrain, bool useDesiredOrientation, float desiredOrientation, bool autopilot); /// /// Used in am_vehicle_spawn.ysc and am_mp_submarine.ysc. /// Speed can be set by calling SET_DRIVE_TASK_CRUISE_SPEED after /// /// is always 0, p5 is always 1 /// is the vehicle handle of the submarine. Submarine must have a driver, but the ped handle is not passed to the native. - void TaskSubmarineGotoAndStop(IPlayer ped, int submarine, float x, float y, float z, bool autopilot); + void TaskSubmarineGotoAndStop(IPlayer ped, uint submarine, float x, float y, float z, bool autopilot); /// /// Used in am_vehicle_spawn.ysc and am_mp_submarine.ysc. /// Speed can be set by calling SET_DRIVE_TASK_CRUISE_SPEED after /// /// is always 0, p5 is always 1 /// is the vehicle handle of the submarine. Submarine must have a driver, but the ped handle is not passed to the native. - void TaskSubmarineGotoAndStop(int ped, IVehicle submarine, float x, float y, float z, bool autopilot); + void TaskSubmarineGotoAndStop(uint ped, IVehicle submarine, float x, float y, float z, bool autopilot); /// /// Used in am_vehicle_spawn.ysc and am_mp_submarine.ysc. /// Speed can be set by calling SET_DRIVE_TASK_CRUISE_SPEED after @@ -19340,7 +19327,7 @@ public unsafe interface INatives /// /// is always 0, p5 is always 1 /// is the vehicle handle of the submarine. Submarine must have a driver, but the ped handle is not passed to the native. - void TaskSubmarineGotoAndStop(int ped, int submarine, float x, float y, float z, bool autopilot); + void TaskSubmarineGotoAndStop(uint ped, uint submarine, float x, float y, float z, bool autopilot); /// /// Must have targetVehicle, targetPed, OR destination X/Y/Z set /// Will follow targeted vehicle/ped, or fly to destination @@ -19354,7 +19341,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xDAD029E187A2BEB4 /// /// affects how closely the heli will follow tracked ped/vehicle, and when circling (mission type 9) sets the radius (in meters) that it will circle the target from - void TaskHeliMission(IPlayer pilot, int aircraft, int targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); + void TaskHeliMission(IPlayer pilot, uint aircraft, uint targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); /// /// Must have targetVehicle, targetPed, OR destination X/Y/Z set /// Will follow targeted vehicle/ped, or fly to destination @@ -19368,7 +19355,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xDAD029E187A2BEB4 /// /// affects how closely the heli will follow tracked ped/vehicle, and when circling (mission type 9) sets the radius (in meters) that it will circle the target from - void TaskHeliMission(int pilot, IVehicle aircraft, int targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); + void TaskHeliMission(uint pilot, IVehicle aircraft, uint targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); /// /// Must have targetVehicle, targetPed, OR destination X/Y/Z set /// Will follow targeted vehicle/ped, or fly to destination @@ -19382,7 +19369,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xDAD029E187A2BEB4 /// /// affects how closely the heli will follow tracked ped/vehicle, and when circling (mission type 9) sets the radius (in meters) that it will circle the target from - void TaskHeliMission(IPlayer pilot, IVehicle aircraft, int targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); + void TaskHeliMission(IPlayer pilot, IVehicle aircraft, uint targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); /// /// Must have targetVehicle, targetPed, OR destination X/Y/Z set /// Will follow targeted vehicle/ped, or fly to destination @@ -19396,7 +19383,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xDAD029E187A2BEB4 /// /// affects how closely the heli will follow tracked ped/vehicle, and when circling (mission type 9) sets the radius (in meters) that it will circle the target from - void TaskHeliMission(int pilot, int aircraft, IVehicle targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); + void TaskHeliMission(uint pilot, uint aircraft, IVehicle targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); /// /// Must have targetVehicle, targetPed, OR destination X/Y/Z set /// Will follow targeted vehicle/ped, or fly to destination @@ -19410,7 +19397,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xDAD029E187A2BEB4 /// /// affects how closely the heli will follow tracked ped/vehicle, and when circling (mission type 9) sets the radius (in meters) that it will circle the target from - void TaskHeliMission(IPlayer pilot, int aircraft, IVehicle targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); + void TaskHeliMission(IPlayer pilot, uint aircraft, IVehicle targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); /// /// Must have targetVehicle, targetPed, OR destination X/Y/Z set /// Will follow targeted vehicle/ped, or fly to destination @@ -19424,7 +19411,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xDAD029E187A2BEB4 /// /// affects how closely the heli will follow tracked ped/vehicle, and when circling (mission type 9) sets the radius (in meters) that it will circle the target from - void TaskHeliMission(int pilot, IVehicle aircraft, IVehicle targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); + void TaskHeliMission(uint pilot, IVehicle aircraft, IVehicle targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); /// /// Must have targetVehicle, targetPed, OR destination X/Y/Z set /// Will follow targeted vehicle/ped, or fly to destination @@ -19438,7 +19425,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xDAD029E187A2BEB4 /// /// affects how closely the heli will follow tracked ped/vehicle, and when circling (mission type 9) sets the radius (in meters) that it will circle the target from - void TaskHeliMission(IPlayer pilot, IVehicle aircraft, IVehicle targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); + void TaskHeliMission(IPlayer pilot, IVehicle aircraft, IVehicle targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); /// /// Must have targetVehicle, targetPed, OR destination X/Y/Z set /// Will follow targeted vehicle/ped, or fly to destination @@ -19452,7 +19439,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xDAD029E187A2BEB4 /// /// affects how closely the heli will follow tracked ped/vehicle, and when circling (mission type 9) sets the radius (in meters) that it will circle the target from - void TaskHeliMission(int pilot, int aircraft, int targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); + void TaskHeliMission(uint pilot, uint aircraft, uint targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); /// /// Must have targetVehicle, targetPed, OR destination X/Y/Z set /// Will follow targeted vehicle/ped, or fly to destination @@ -19466,7 +19453,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xDAD029E187A2BEB4 /// /// affects how closely the heli will follow tracked ped/vehicle, and when circling (mission type 9) sets the radius (in meters) that it will circle the target from - void TaskHeliMission(IPlayer pilot, int aircraft, int targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); + void TaskHeliMission(IPlayer pilot, uint aircraft, uint targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); /// /// Must have targetVehicle, targetPed, OR destination X/Y/Z set /// Will follow targeted vehicle/ped, or fly to destination @@ -19480,7 +19467,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xDAD029E187A2BEB4 /// /// affects how closely the heli will follow tracked ped/vehicle, and when circling (mission type 9) sets the radius (in meters) that it will circle the target from - void TaskHeliMission(int pilot, IVehicle aircraft, int targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); + void TaskHeliMission(uint pilot, IVehicle aircraft, uint targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); /// /// Must have targetVehicle, targetPed, OR destination X/Y/Z set /// Will follow targeted vehicle/ped, or fly to destination @@ -19494,7 +19481,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xDAD029E187A2BEB4 /// /// affects how closely the heli will follow tracked ped/vehicle, and when circling (mission type 9) sets the radius (in meters) that it will circle the target from - void TaskHeliMission(IPlayer pilot, IVehicle aircraft, int targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); + void TaskHeliMission(IPlayer pilot, IVehicle aircraft, uint targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); /// /// Must have targetVehicle, targetPed, OR destination X/Y/Z set /// Will follow targeted vehicle/ped, or fly to destination @@ -19508,7 +19495,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xDAD029E187A2BEB4 /// /// affects how closely the heli will follow tracked ped/vehicle, and when circling (mission type 9) sets the radius (in meters) that it will circle the target from - void TaskHeliMission(int pilot, int aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); + void TaskHeliMission(uint pilot, uint aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); /// /// Must have targetVehicle, targetPed, OR destination X/Y/Z set /// Will follow targeted vehicle/ped, or fly to destination @@ -19522,7 +19509,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xDAD029E187A2BEB4 /// /// affects how closely the heli will follow tracked ped/vehicle, and when circling (mission type 9) sets the radius (in meters) that it will circle the target from - void TaskHeliMission(IPlayer pilot, int aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); + void TaskHeliMission(IPlayer pilot, uint aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); /// /// Must have targetVehicle, targetPed, OR destination X/Y/Z set /// Will follow targeted vehicle/ped, or fly to destination @@ -19536,7 +19523,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xDAD029E187A2BEB4 /// /// affects how closely the heli will follow tracked ped/vehicle, and when circling (mission type 9) sets the radius (in meters) that it will circle the target from - void TaskHeliMission(int pilot, IVehicle aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); + void TaskHeliMission(uint pilot, IVehicle aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); /// /// Must have targetVehicle, targetPed, OR destination X/Y/Z set /// Will follow targeted vehicle/ped, or fly to destination @@ -19564,15 +19551,15 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xDAD029E187A2BEB4 /// /// affects how closely the heli will follow tracked ped/vehicle, and when circling (mission type 9) sets the radius (in meters) that it will circle the target from - void TaskHeliMission(int pilot, int aircraft, int targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); - void TaskHeliEscortHeli(IPlayer pilot, int heli1, int heli2, float offsetX, float offsetY, float offsetZ); - void TaskHeliEscortHeli(int pilot, IVehicle heli1, int heli2, float offsetX, float offsetY, float offsetZ); - void TaskHeliEscortHeli(IPlayer pilot, IVehicle heli1, int heli2, float offsetX, float offsetY, float offsetZ); - void TaskHeliEscortHeli(int pilot, int heli1, IVehicle heli2, float offsetX, float offsetY, float offsetZ); - void TaskHeliEscortHeli(IPlayer pilot, int heli1, IVehicle heli2, float offsetX, float offsetY, float offsetZ); - void TaskHeliEscortHeli(int pilot, IVehicle heli1, IVehicle heli2, float offsetX, float offsetY, float offsetZ); + void TaskHeliMission(uint pilot, uint aircraft, uint targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags); + void TaskHeliEscortHeli(IPlayer pilot, uint heli1, uint heli2, float offsetX, float offsetY, float offsetZ); + void TaskHeliEscortHeli(uint pilot, IVehicle heli1, uint heli2, float offsetX, float offsetY, float offsetZ); + void TaskHeliEscortHeli(IPlayer pilot, IVehicle heli1, uint heli2, float offsetX, float offsetY, float offsetZ); + void TaskHeliEscortHeli(uint pilot, uint heli1, IVehicle heli2, float offsetX, float offsetY, float offsetZ); + void TaskHeliEscortHeli(IPlayer pilot, uint heli1, IVehicle heli2, float offsetX, float offsetY, float offsetZ); + void TaskHeliEscortHeli(uint pilot, IVehicle heli1, IVehicle heli2, float offsetX, float offsetY, float offsetZ); void TaskHeliEscortHeli(IPlayer pilot, IVehicle heli1, IVehicle heli2, float offsetX, float offsetY, float offsetZ); - void TaskHeliEscortHeli(int pilot, int heli1, int heli2, float offsetX, float offsetY, float offsetZ); + void TaskHeliEscortHeli(uint pilot, uint heli1, uint heli2, float offsetX, float offsetY, float offsetZ); /// /// EXAMPLE USAGE: /// Fly around target (Precautiously, keeps high altitude): @@ -19586,7 +19573,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x23703CD154E83B88 /// /// 500f); - void TaskPlaneMission(IPlayer pilot, int aircraft, int targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); + void TaskPlaneMission(IPlayer pilot, uint aircraft, uint targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); /// /// EXAMPLE USAGE: /// Fly around target (Precautiously, keeps high altitude): @@ -19600,7 +19587,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x23703CD154E83B88 /// /// 500f); - void TaskPlaneMission(int pilot, IVehicle aircraft, int targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); + void TaskPlaneMission(uint pilot, IVehicle aircraft, uint targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); /// /// EXAMPLE USAGE: /// Fly around target (Precautiously, keeps high altitude): @@ -19614,7 +19601,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x23703CD154E83B88 /// /// 500f); - void TaskPlaneMission(IPlayer pilot, IVehicle aircraft, int targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); + void TaskPlaneMission(IPlayer pilot, IVehicle aircraft, uint targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); /// /// EXAMPLE USAGE: /// Fly around target (Precautiously, keeps high altitude): @@ -19628,7 +19615,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x23703CD154E83B88 /// /// 500f); - void TaskPlaneMission(int pilot, int aircraft, IVehicle targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); + void TaskPlaneMission(uint pilot, uint aircraft, IVehicle targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); /// /// EXAMPLE USAGE: /// Fly around target (Precautiously, keeps high altitude): @@ -19642,7 +19629,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x23703CD154E83B88 /// /// 500f); - void TaskPlaneMission(IPlayer pilot, int aircraft, IVehicle targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); + void TaskPlaneMission(IPlayer pilot, uint aircraft, IVehicle targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); /// /// EXAMPLE USAGE: /// Fly around target (Precautiously, keeps high altitude): @@ -19656,7 +19643,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x23703CD154E83B88 /// /// 500f); - void TaskPlaneMission(int pilot, IVehicle aircraft, IVehicle targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); + void TaskPlaneMission(uint pilot, IVehicle aircraft, IVehicle targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); /// /// EXAMPLE USAGE: /// Fly around target (Precautiously, keeps high altitude): @@ -19670,7 +19657,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x23703CD154E83B88 /// /// 500f); - void TaskPlaneMission(IPlayer pilot, IVehicle aircraft, IVehicle targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); + void TaskPlaneMission(IPlayer pilot, IVehicle aircraft, IVehicle targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); /// /// EXAMPLE USAGE: /// Fly around target (Precautiously, keeps high altitude): @@ -19684,7 +19671,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x23703CD154E83B88 /// /// 500f); - void TaskPlaneMission(int pilot, int aircraft, int targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); + void TaskPlaneMission(uint pilot, uint aircraft, uint targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); /// /// EXAMPLE USAGE: /// Fly around target (Precautiously, keeps high altitude): @@ -19698,7 +19685,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x23703CD154E83B88 /// /// 500f); - void TaskPlaneMission(IPlayer pilot, int aircraft, int targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); + void TaskPlaneMission(IPlayer pilot, uint aircraft, uint targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); /// /// EXAMPLE USAGE: /// Fly around target (Precautiously, keeps high altitude): @@ -19712,7 +19699,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x23703CD154E83B88 /// /// 500f); - void TaskPlaneMission(int pilot, IVehicle aircraft, int targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); + void TaskPlaneMission(uint pilot, IVehicle aircraft, uint targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); /// /// EXAMPLE USAGE: /// Fly around target (Precautiously, keeps high altitude): @@ -19726,7 +19713,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x23703CD154E83B88 /// /// 500f); - void TaskPlaneMission(IPlayer pilot, IVehicle aircraft, int targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); + void TaskPlaneMission(IPlayer pilot, IVehicle aircraft, uint targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); /// /// EXAMPLE USAGE: /// Fly around target (Precautiously, keeps high altitude): @@ -19740,7 +19727,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x23703CD154E83B88 /// /// 500f); - void TaskPlaneMission(int pilot, int aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); + void TaskPlaneMission(uint pilot, uint aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); /// /// EXAMPLE USAGE: /// Fly around target (Precautiously, keeps high altitude): @@ -19754,7 +19741,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x23703CD154E83B88 /// /// 500f); - void TaskPlaneMission(IPlayer pilot, int aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); + void TaskPlaneMission(IPlayer pilot, uint aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); /// /// EXAMPLE USAGE: /// Fly around target (Precautiously, keeps high altitude): @@ -19768,7 +19755,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x23703CD154E83B88 /// /// 500f); - void TaskPlaneMission(int pilot, IVehicle aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); + void TaskPlaneMission(uint pilot, IVehicle aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); /// /// EXAMPLE USAGE: /// Fly around target (Precautiously, keeps high altitude): @@ -19796,11 +19783,11 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x23703CD154E83B88 /// /// 500f); - void TaskPlaneMission(int pilot, int aircraft, int targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); - void TaskPlaneTaxi(IPlayer pilot, int aircraft, float x, float y, float z, float cruiseSpeed, float targetReached); - void TaskPlaneTaxi(int pilot, IVehicle aircraft, float x, float y, float z, float cruiseSpeed, float targetReached); + void TaskPlaneMission(uint pilot, uint aircraft, uint targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise); + void TaskPlaneTaxi(IPlayer pilot, uint aircraft, float x, float y, float z, float cruiseSpeed, float targetReached); + void TaskPlaneTaxi(uint pilot, IVehicle aircraft, float x, float y, float z, float cruiseSpeed, float targetReached); void TaskPlaneTaxi(IPlayer pilot, IVehicle aircraft, float x, float y, float z, float cruiseSpeed, float targetReached); - void TaskPlaneTaxi(int pilot, int aircraft, float x, float y, float z, float cruiseSpeed, float targetReached); + void TaskPlaneTaxi(uint pilot, uint aircraft, float x, float y, float z, float cruiseSpeed, float targetReached); /// /// You need to call PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS after TASK_BOAT_MISSION in order for the task to execute. /// Working example @@ -19808,7 +19795,7 @@ public unsafe interface INatives /// PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedDriver, 1); /// P8 appears to be driving style flag - see gtaforums.com/topic/822314-guide-driving-styles/ for documentation /// - void TaskBoatMission(IPlayer pedDriver, int vehicle, int targetVehicle, int targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); + void TaskBoatMission(IPlayer pedDriver, uint vehicle, uint targetVehicle, uint targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); /// /// You need to call PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS after TASK_BOAT_MISSION in order for the task to execute. /// Working example @@ -19816,7 +19803,7 @@ public unsafe interface INatives /// PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedDriver, 1); /// P8 appears to be driving style flag - see gtaforums.com/topic/822314-guide-driving-styles/ for documentation /// - void TaskBoatMission(int pedDriver, IVehicle vehicle, int targetVehicle, int targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); + void TaskBoatMission(uint pedDriver, IVehicle vehicle, uint targetVehicle, uint targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); /// /// You need to call PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS after TASK_BOAT_MISSION in order for the task to execute. /// Working example @@ -19824,7 +19811,7 @@ public unsafe interface INatives /// PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedDriver, 1); /// P8 appears to be driving style flag - see gtaforums.com/topic/822314-guide-driving-styles/ for documentation /// - void TaskBoatMission(IPlayer pedDriver, IVehicle vehicle, int targetVehicle, int targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); + void TaskBoatMission(IPlayer pedDriver, IVehicle vehicle, uint targetVehicle, uint targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); /// /// You need to call PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS after TASK_BOAT_MISSION in order for the task to execute. /// Working example @@ -19832,7 +19819,7 @@ public unsafe interface INatives /// PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedDriver, 1); /// P8 appears to be driving style flag - see gtaforums.com/topic/822314-guide-driving-styles/ for documentation /// - void TaskBoatMission(int pedDriver, int vehicle, IVehicle targetVehicle, int targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); + void TaskBoatMission(uint pedDriver, uint vehicle, IVehicle targetVehicle, uint targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); /// /// You need to call PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS after TASK_BOAT_MISSION in order for the task to execute. /// Working example @@ -19840,7 +19827,7 @@ public unsafe interface INatives /// PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedDriver, 1); /// P8 appears to be driving style flag - see gtaforums.com/topic/822314-guide-driving-styles/ for documentation /// - void TaskBoatMission(IPlayer pedDriver, int vehicle, IVehicle targetVehicle, int targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); + void TaskBoatMission(IPlayer pedDriver, uint vehicle, IVehicle targetVehicle, uint targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); /// /// You need to call PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS after TASK_BOAT_MISSION in order for the task to execute. /// Working example @@ -19848,7 +19835,7 @@ public unsafe interface INatives /// PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedDriver, 1); /// P8 appears to be driving style flag - see gtaforums.com/topic/822314-guide-driving-styles/ for documentation /// - void TaskBoatMission(int pedDriver, IVehicle vehicle, IVehicle targetVehicle, int targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); + void TaskBoatMission(uint pedDriver, IVehicle vehicle, IVehicle targetVehicle, uint targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); /// /// You need to call PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS after TASK_BOAT_MISSION in order for the task to execute. /// Working example @@ -19856,7 +19843,7 @@ public unsafe interface INatives /// PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedDriver, 1); /// P8 appears to be driving style flag - see gtaforums.com/topic/822314-guide-driving-styles/ for documentation /// - void TaskBoatMission(IPlayer pedDriver, IVehicle vehicle, IVehicle targetVehicle, int targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); + void TaskBoatMission(IPlayer pedDriver, IVehicle vehicle, IVehicle targetVehicle, uint targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); /// /// You need to call PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS after TASK_BOAT_MISSION in order for the task to execute. /// Working example @@ -19864,7 +19851,7 @@ public unsafe interface INatives /// PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedDriver, 1); /// P8 appears to be driving style flag - see gtaforums.com/topic/822314-guide-driving-styles/ for documentation /// - void TaskBoatMission(int pedDriver, int vehicle, int targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); + void TaskBoatMission(uint pedDriver, uint vehicle, uint targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); /// /// You need to call PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS after TASK_BOAT_MISSION in order for the task to execute. /// Working example @@ -19872,7 +19859,7 @@ public unsafe interface INatives /// PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedDriver, 1); /// P8 appears to be driving style flag - see gtaforums.com/topic/822314-guide-driving-styles/ for documentation /// - void TaskBoatMission(IPlayer pedDriver, int vehicle, int targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); + void TaskBoatMission(IPlayer pedDriver, uint vehicle, uint targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); /// /// You need to call PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS after TASK_BOAT_MISSION in order for the task to execute. /// Working example @@ -19880,7 +19867,7 @@ public unsafe interface INatives /// PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedDriver, 1); /// P8 appears to be driving style flag - see gtaforums.com/topic/822314-guide-driving-styles/ for documentation /// - void TaskBoatMission(int pedDriver, IVehicle vehicle, int targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); + void TaskBoatMission(uint pedDriver, IVehicle vehicle, uint targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); /// /// You need to call PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS after TASK_BOAT_MISSION in order for the task to execute. /// Working example @@ -19888,7 +19875,7 @@ public unsafe interface INatives /// PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedDriver, 1); /// P8 appears to be driving style flag - see gtaforums.com/topic/822314-guide-driving-styles/ for documentation /// - void TaskBoatMission(IPlayer pedDriver, IVehicle vehicle, int targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); + void TaskBoatMission(IPlayer pedDriver, IVehicle vehicle, uint targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); /// /// You need to call PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS after TASK_BOAT_MISSION in order for the task to execute. /// Working example @@ -19896,7 +19883,7 @@ public unsafe interface INatives /// PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedDriver, 1); /// P8 appears to be driving style flag - see gtaforums.com/topic/822314-guide-driving-styles/ for documentation /// - void TaskBoatMission(int pedDriver, int vehicle, IVehicle targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); + void TaskBoatMission(uint pedDriver, uint vehicle, IVehicle targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); /// /// You need to call PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS after TASK_BOAT_MISSION in order for the task to execute. /// Working example @@ -19904,7 +19891,7 @@ public unsafe interface INatives /// PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedDriver, 1); /// P8 appears to be driving style flag - see gtaforums.com/topic/822314-guide-driving-styles/ for documentation /// - void TaskBoatMission(IPlayer pedDriver, int vehicle, IVehicle targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); + void TaskBoatMission(IPlayer pedDriver, uint vehicle, IVehicle targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); /// /// You need to call PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS after TASK_BOAT_MISSION in order for the task to execute. /// Working example @@ -19912,7 +19899,7 @@ public unsafe interface INatives /// PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedDriver, 1); /// P8 appears to be driving style flag - see gtaforums.com/topic/822314-guide-driving-styles/ for documentation /// - void TaskBoatMission(int pedDriver, IVehicle vehicle, IVehicle targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); + void TaskBoatMission(uint pedDriver, IVehicle vehicle, IVehicle targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); /// /// You need to call PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS after TASK_BOAT_MISSION in order for the task to execute. /// Working example @@ -19928,7 +19915,7 @@ public unsafe interface INatives /// PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(pedDriver, 1); /// P8 appears to be driving style flag - see gtaforums.com/topic/822314-guide-driving-styles/ for documentation /// - void TaskBoatMission(int pedDriver, int vehicle, int targetVehicle, int targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); + void TaskBoatMission(uint pedDriver, uint vehicle, uint targetVehicle, uint targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags); /// /// Example: /// TASK::TASK_DRIVE_BY(l_467[122], PLAYER::PLAYER_PED_ID(), 0, 0.0, 0.0, 2.0, 300.0, 100, 0, ${firing_pattern_burst_fire_driveby}); @@ -19937,7 +19924,7 @@ public unsafe interface INatives /// I marked p6 as distanceToShoot as if you think of GTA's Logic with the native SET_VEHICLE_SHOOT natives, it won't shoot till it gets within a certain distance of the target. /// I marked p7 as pedAccuracy as it seems it's mostly 100 (Completely Accurate), 75, 90, etc. Although this could be the ammo count within the gun, but I highly doubt it. I will change this comment once I find out if it's ammo count or not. /// - void TaskDriveBy(IPlayer driverPed, int targetPed, int targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern); + void TaskDriveBy(IPlayer driverPed, uint targetPed, uint targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern); /// /// Example: /// TASK::TASK_DRIVE_BY(l_467[122], PLAYER::PLAYER_PED_ID(), 0, 0.0, 0.0, 2.0, 300.0, 100, 0, ${firing_pattern_burst_fire_driveby}); @@ -19946,7 +19933,7 @@ public unsafe interface INatives /// I marked p6 as distanceToShoot as if you think of GTA's Logic with the native SET_VEHICLE_SHOOT natives, it won't shoot till it gets within a certain distance of the target. /// I marked p7 as pedAccuracy as it seems it's mostly 100 (Completely Accurate), 75, 90, etc. Although this could be the ammo count within the gun, but I highly doubt it. I will change this comment once I find out if it's ammo count or not. /// - void TaskDriveBy(int driverPed, IPlayer targetPed, int targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern); + void TaskDriveBy(uint driverPed, IPlayer targetPed, uint targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern); /// /// Example: /// TASK::TASK_DRIVE_BY(l_467[122], PLAYER::PLAYER_PED_ID(), 0, 0.0, 0.0, 2.0, 300.0, 100, 0, ${firing_pattern_burst_fire_driveby}); @@ -19955,7 +19942,7 @@ public unsafe interface INatives /// I marked p6 as distanceToShoot as if you think of GTA's Logic with the native SET_VEHICLE_SHOOT natives, it won't shoot till it gets within a certain distance of the target. /// I marked p7 as pedAccuracy as it seems it's mostly 100 (Completely Accurate), 75, 90, etc. Although this could be the ammo count within the gun, but I highly doubt it. I will change this comment once I find out if it's ammo count or not. /// - void TaskDriveBy(IPlayer driverPed, IPlayer targetPed, int targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern); + void TaskDriveBy(IPlayer driverPed, IPlayer targetPed, uint targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern); /// /// Example: /// TASK::TASK_DRIVE_BY(l_467[122], PLAYER::PLAYER_PED_ID(), 0, 0.0, 0.0, 2.0, 300.0, 100, 0, ${firing_pattern_burst_fire_driveby}); @@ -19964,7 +19951,7 @@ public unsafe interface INatives /// I marked p6 as distanceToShoot as if you think of GTA's Logic with the native SET_VEHICLE_SHOOT natives, it won't shoot till it gets within a certain distance of the target. /// I marked p7 as pedAccuracy as it seems it's mostly 100 (Completely Accurate), 75, 90, etc. Although this could be the ammo count within the gun, but I highly doubt it. I will change this comment once I find out if it's ammo count or not. /// - void TaskDriveBy(int driverPed, int targetPed, IVehicle targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern); + void TaskDriveBy(uint driverPed, uint targetPed, IVehicle targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern); /// /// Example: /// TASK::TASK_DRIVE_BY(l_467[122], PLAYER::PLAYER_PED_ID(), 0, 0.0, 0.0, 2.0, 300.0, 100, 0, ${firing_pattern_burst_fire_driveby}); @@ -19973,7 +19960,7 @@ public unsafe interface INatives /// I marked p6 as distanceToShoot as if you think of GTA's Logic with the native SET_VEHICLE_SHOOT natives, it won't shoot till it gets within a certain distance of the target. /// I marked p7 as pedAccuracy as it seems it's mostly 100 (Completely Accurate), 75, 90, etc. Although this could be the ammo count within the gun, but I highly doubt it. I will change this comment once I find out if it's ammo count or not. /// - void TaskDriveBy(IPlayer driverPed, int targetPed, IVehicle targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern); + void TaskDriveBy(IPlayer driverPed, uint targetPed, IVehicle targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern); /// /// Example: /// TASK::TASK_DRIVE_BY(l_467[122], PLAYER::PLAYER_PED_ID(), 0, 0.0, 0.0, 2.0, 300.0, 100, 0, ${firing_pattern_burst_fire_driveby}); @@ -19982,7 +19969,7 @@ public unsafe interface INatives /// I marked p6 as distanceToShoot as if you think of GTA's Logic with the native SET_VEHICLE_SHOOT natives, it won't shoot till it gets within a certain distance of the target. /// I marked p7 as pedAccuracy as it seems it's mostly 100 (Completely Accurate), 75, 90, etc. Although this could be the ammo count within the gun, but I highly doubt it. I will change this comment once I find out if it's ammo count or not. /// - void TaskDriveBy(int driverPed, IPlayer targetPed, IVehicle targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern); + void TaskDriveBy(uint driverPed, IPlayer targetPed, IVehicle targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern); /// /// Example: /// TASK::TASK_DRIVE_BY(l_467[122], PLAYER::PLAYER_PED_ID(), 0, 0.0, 0.0, 2.0, 300.0, 100, 0, ${firing_pattern_burst_fire_driveby}); @@ -20000,31 +19987,31 @@ public unsafe interface INatives /// I marked p6 as distanceToShoot as if you think of GTA's Logic with the native SET_VEHICLE_SHOOT natives, it won't shoot till it gets within a certain distance of the target. /// I marked p7 as pedAccuracy as it seems it's mostly 100 (Completely Accurate), 75, 90, etc. Although this could be the ammo count within the gun, but I highly doubt it. I will change this comment once I find out if it's ammo count or not. /// - void TaskDriveBy(int driverPed, int targetPed, int targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern); + void TaskDriveBy(uint driverPed, uint targetPed, uint targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern); /// /// For p1 & p2 (Ped, Vehicle). I could be wrong, as the only time this native is called in scripts is once and both are 0, but I assume this native will work like SET_MOUNTED_WEAPON_TARGET in which has the same exact amount of parameters and the 1st and last 3 parameters are right and the same for both natives. /// - void SetDrivebyTaskTarget(IPlayer shootingPed, int targetPed, int targetVehicle, float x, float y, float z); + void SetDrivebyTaskTarget(IPlayer shootingPed, uint targetPed, uint targetVehicle, float x, float y, float z); /// /// For p1 & p2 (Ped, Vehicle). I could be wrong, as the only time this native is called in scripts is once and both are 0, but I assume this native will work like SET_MOUNTED_WEAPON_TARGET in which has the same exact amount of parameters and the 1st and last 3 parameters are right and the same for both natives. /// - void SetDrivebyTaskTarget(int shootingPed, IPlayer targetPed, int targetVehicle, float x, float y, float z); + void SetDrivebyTaskTarget(uint shootingPed, IPlayer targetPed, uint targetVehicle, float x, float y, float z); /// /// For p1 & p2 (Ped, Vehicle). I could be wrong, as the only time this native is called in scripts is once and both are 0, but I assume this native will work like SET_MOUNTED_WEAPON_TARGET in which has the same exact amount of parameters and the 1st and last 3 parameters are right and the same for both natives. /// - void SetDrivebyTaskTarget(IPlayer shootingPed, IPlayer targetPed, int targetVehicle, float x, float y, float z); + void SetDrivebyTaskTarget(IPlayer shootingPed, IPlayer targetPed, uint targetVehicle, float x, float y, float z); /// /// For p1 & p2 (Ped, Vehicle). I could be wrong, as the only time this native is called in scripts is once and both are 0, but I assume this native will work like SET_MOUNTED_WEAPON_TARGET in which has the same exact amount of parameters and the 1st and last 3 parameters are right and the same for both natives. /// - void SetDrivebyTaskTarget(int shootingPed, int targetPed, IVehicle targetVehicle, float x, float y, float z); + void SetDrivebyTaskTarget(uint shootingPed, uint targetPed, IVehicle targetVehicle, float x, float y, float z); /// /// For p1 & p2 (Ped, Vehicle). I could be wrong, as the only time this native is called in scripts is once and both are 0, but I assume this native will work like SET_MOUNTED_WEAPON_TARGET in which has the same exact amount of parameters and the 1st and last 3 parameters are right and the same for both natives. /// - void SetDrivebyTaskTarget(IPlayer shootingPed, int targetPed, IVehicle targetVehicle, float x, float y, float z); + void SetDrivebyTaskTarget(IPlayer shootingPed, uint targetPed, IVehicle targetVehicle, float x, float y, float z); /// /// For p1 & p2 (Ped, Vehicle). I could be wrong, as the only time this native is called in scripts is once and both are 0, but I assume this native will work like SET_MOUNTED_WEAPON_TARGET in which has the same exact amount of parameters and the 1st and last 3 parameters are right and the same for both natives. /// - void SetDrivebyTaskTarget(int shootingPed, IPlayer targetPed, IVehicle targetVehicle, float x, float y, float z); + void SetDrivebyTaskTarget(uint shootingPed, IPlayer targetPed, IVehicle targetVehicle, float x, float y, float z); /// /// For p1 & p2 (Ped, Vehicle). I could be wrong, as the only time this native is called in scripts is once and both are 0, but I assume this native will work like SET_MOUNTED_WEAPON_TARGET in which has the same exact amount of parameters and the 1st and last 3 parameters are right and the same for both natives. /// @@ -20032,11 +20019,11 @@ public unsafe interface INatives /// /// For p1 & p2 (Ped, Vehicle). I could be wrong, as the only time this native is called in scripts is once and both are 0, but I assume this native will work like SET_MOUNTED_WEAPON_TARGET in which has the same exact amount of parameters and the 1st and last 3 parameters are right and the same for both natives. /// - void SetDrivebyTaskTarget(int shootingPed, int targetPed, int targetVehicle, float x, float y, float z); + void SetDrivebyTaskTarget(uint shootingPed, uint targetPed, uint targetVehicle, float x, float y, float z); void ClearDrivebyTaskUnderneathDrivingTask(IPlayer ped); - void ClearDrivebyTaskUnderneathDrivingTask(int ped); + void ClearDrivebyTaskUnderneathDrivingTask(uint ped); bool IsDrivebyTaskUnderneathDrivingTask(IPlayer ped); - bool IsDrivebyTaskUnderneathDrivingTask(int ped); + bool IsDrivebyTaskUnderneathDrivingTask(uint ped); /// /// Forces the ped to use the mounted weapon. /// Returns false if task is not possible. @@ -20046,31 +20033,31 @@ public unsafe interface INatives /// Forces the ped to use the mounted weapon. /// Returns false if task is not possible. /// - bool ControlMountedWeapon(int ped); + bool ControlMountedWeapon(uint ped); /// /// Note: Look in decompiled scripts and the times that p1 and p2 aren't 0. They are filled with vars. If you look through out that script what other natives those vars are used in, you can tell p1 is a ped and p2 is a vehicle. Which most likely means if you want the mounted weapon to target a ped set targetVehicle to 0 or vice-versa. /// - void SetMountedWeaponTarget(IPlayer shootingPed, int targetPed, int targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck); + void SetMountedWeaponTarget(IPlayer shootingPed, uint targetPed, uint targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck); /// /// Note: Look in decompiled scripts and the times that p1 and p2 aren't 0. They are filled with vars. If you look through out that script what other natives those vars are used in, you can tell p1 is a ped and p2 is a vehicle. Which most likely means if you want the mounted weapon to target a ped set targetVehicle to 0 or vice-versa. /// - void SetMountedWeaponTarget(int shootingPed, IPlayer targetPed, int targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck); + void SetMountedWeaponTarget(uint shootingPed, IPlayer targetPed, uint targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck); /// /// Note: Look in decompiled scripts and the times that p1 and p2 aren't 0. They are filled with vars. If you look through out that script what other natives those vars are used in, you can tell p1 is a ped and p2 is a vehicle. Which most likely means if you want the mounted weapon to target a ped set targetVehicle to 0 or vice-versa. /// - void SetMountedWeaponTarget(IPlayer shootingPed, IPlayer targetPed, int targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck); + void SetMountedWeaponTarget(IPlayer shootingPed, IPlayer targetPed, uint targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck); /// /// Note: Look in decompiled scripts and the times that p1 and p2 aren't 0. They are filled with vars. If you look through out that script what other natives those vars are used in, you can tell p1 is a ped and p2 is a vehicle. Which most likely means if you want the mounted weapon to target a ped set targetVehicle to 0 or vice-versa. /// - void SetMountedWeaponTarget(int shootingPed, int targetPed, IVehicle targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck); + void SetMountedWeaponTarget(uint shootingPed, uint targetPed, IVehicle targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck); /// /// Note: Look in decompiled scripts and the times that p1 and p2 aren't 0. They are filled with vars. If you look through out that script what other natives those vars are used in, you can tell p1 is a ped and p2 is a vehicle. Which most likely means if you want the mounted weapon to target a ped set targetVehicle to 0 or vice-versa. /// - void SetMountedWeaponTarget(IPlayer shootingPed, int targetPed, IVehicle targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck); + void SetMountedWeaponTarget(IPlayer shootingPed, uint targetPed, IVehicle targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck); /// /// Note: Look in decompiled scripts and the times that p1 and p2 aren't 0. They are filled with vars. If you look through out that script what other natives those vars are used in, you can tell p1 is a ped and p2 is a vehicle. Which most likely means if you want the mounted weapon to target a ped set targetVehicle to 0 or vice-versa. /// - void SetMountedWeaponTarget(int shootingPed, IPlayer targetPed, IVehicle targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck); + void SetMountedWeaponTarget(uint shootingPed, IPlayer targetPed, IVehicle targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck); /// /// Note: Look in decompiled scripts and the times that p1 and p2 aren't 0. They are filled with vars. If you look through out that script what other natives those vars are used in, you can tell p1 is a ped and p2 is a vehicle. Which most likely means if you want the mounted weapon to target a ped set targetVehicle to 0 or vice-versa. /// @@ -20078,9 +20065,9 @@ public unsafe interface INatives /// /// Note: Look in decompiled scripts and the times that p1 and p2 aren't 0. They are filled with vars. If you look through out that script what other natives those vars are used in, you can tell p1 is a ped and p2 is a vehicle. Which most likely means if you want the mounted weapon to target a ped set targetVehicle to 0 or vice-versa. /// - void SetMountedWeaponTarget(int shootingPed, int targetPed, int targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck); + void SetMountedWeaponTarget(uint shootingPed, uint targetPed, uint targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck); bool IsMountedWeaponTaskUnderneathDrivingTask(IPlayer ped); - bool IsMountedWeaponTaskUnderneathDrivingTask(int ped); + bool IsMountedWeaponTaskUnderneathDrivingTask(uint ped); /// /// Actually has 3 params, not 2. /// @@ -20094,19 +20081,19 @@ public unsafe interface INatives /// Ped /// int (or bool?) /// int - void TaskUseMobilePhone(int ped, bool usePhone, int desiredPhoneMode); + void TaskUseMobilePhone(uint ped, bool usePhone, int desiredPhoneMode); void TaskUseMobilePhoneTimed(IPlayer ped, int duration); - void TaskUseMobilePhoneTimed(int ped, int duration); + void TaskUseMobilePhoneTimed(uint ped, int duration); /// /// /// tend to be 16, 17 or 1 /// to p7 tend to be 0.0 - void TaskChatToPed(IPlayer ped, int target, int flags, float goToLocationX, float goToLocationY, float goToLocationZ, float headingDegs, float idleTime); + void TaskChatToPed(IPlayer ped, uint target, int flags, float goToLocationX, float goToLocationY, float goToLocationZ, float headingDegs, float idleTime); /// /// /// tend to be 16, 17 or 1 /// to p7 tend to be 0.0 - void TaskChatToPed(int ped, IPlayer target, int flags, float goToLocationX, float goToLocationY, float goToLocationZ, float headingDegs, float idleTime); + void TaskChatToPed(uint ped, IPlayer target, int flags, float goToLocationX, float goToLocationY, float goToLocationZ, float headingDegs, float idleTime); /// /// /// tend to be 16, 17 or 1 @@ -20116,7 +20103,7 @@ public unsafe interface INatives /// /// tend to be 16, 17 or 1 /// to p7 tend to be 0.0 - void TaskChatToPed(int ped, int target, int flags, float goToLocationX, float goToLocationY, float goToLocationZ, float headingDegs, float idleTime); + void TaskChatToPed(uint ped, uint target, int flags, float goToLocationX, float goToLocationY, float goToLocationZ, float headingDegs, float idleTime); /// /// ------------------------------- /// Driver = -1 @@ -20127,7 +20114,7 @@ public unsafe interface INatives /// Extra seats = 3-14(This may differ from vehicle type e.g. Firetruck Rear Stand, Ambulance Rear) /// /// Numbers - void TaskWarpPedIntoVehicle(IPlayer ped, int vehicle, int seat); + void TaskWarpPedIntoVehicle(IPlayer ped, uint vehicle, int seat); /// /// ------------------------------- /// Driver = -1 @@ -20138,7 +20125,7 @@ public unsafe interface INatives /// Extra seats = 3-14(This may differ from vehicle type e.g. Firetruck Rear Stand, Ambulance Rear) /// /// Numbers - void TaskWarpPedIntoVehicle(int ped, IVehicle vehicle, int seat); + void TaskWarpPedIntoVehicle(uint ped, IVehicle vehicle, int seat); /// /// ------------------------------- /// Driver = -1 @@ -20160,7 +20147,7 @@ public unsafe interface INatives /// Extra seats = 3-14(This may differ from vehicle type e.g. Firetruck Rear Stand, Ambulance Rear) /// /// Numbers - void TaskWarpPedIntoVehicle(int ped, int vehicle, int seat); + void TaskWarpPedIntoVehicle(uint ped, uint vehicle, int seat); /// /// //this part of the code is to determine at which entity the player is aiming, for example if you want to create a mod where you give orders to peds /// Player player = PLAYER::PLAYER_ID(); @@ -20171,7 +20158,7 @@ public unsafe interface INatives /// Firing Pattern Hash Information: https://pastebin.com/Px036isB /// /// aimedentity; - void TaskShootAtEntity(IEntity entity, int target, int duration, uint firingPattern); + void TaskShootAtEntity(IEntity entity, uint target, int duration, uint firingPattern); /// /// //this part of the code is to determine at which entity the player is aiming, for example if you want to create a mod where you give orders to peds /// Player player = PLAYER::PLAYER_ID(); @@ -20182,7 +20169,7 @@ public unsafe interface INatives /// Firing Pattern Hash Information: https://pastebin.com/Px036isB /// /// aimedentity; - void TaskShootAtEntity(int entity, IEntity target, int duration, uint firingPattern); + void TaskShootAtEntity(uint entity, IEntity target, int duration, uint firingPattern); /// /// //this part of the code is to determine at which entity the player is aiming, for example if you want to create a mod where you give orders to peds /// Player player = PLAYER::PLAYER_ID(); @@ -20204,7 +20191,7 @@ public unsafe interface INatives /// Firing Pattern Hash Information: https://pastebin.com/Px036isB /// /// aimedentity; - void TaskShootAtEntity(int entity, int target, int duration, uint firingPattern); + void TaskShootAtEntity(uint entity, uint target, int duration, uint firingPattern); /// /// Climbs or vaults the nearest thing. /// @@ -20214,9 +20201,9 @@ public unsafe interface INatives /// Climbs or vaults the nearest thing. /// /// is unused. - void TaskClimb(int ped, bool usePlayerLaunchForce); + void TaskClimb(uint ped, bool usePlayerLaunchForce); void TaskClimbLadder(IPlayer ped, bool fast); - void TaskClimbLadder(int ped, bool fast); + void TaskClimbLadder(uint ped, bool fast); /// /// Attaches a ped to a rope and allows player control to rappel down a wall. Disables all collisions while on the rope. /// @@ -20226,9 +20213,9 @@ public unsafe interface INatives /// Attaches a ped to a rope and allows player control to rappel down a wall. Disables all collisions while on the rope. /// /// Usually 1 in the scripts, clipSet: Clipset to use for the task, minZ: Minimum Z that the player can descend to, ropeHandle: Rope to attach this task to created with ADD_ROPE - void TaskRappelDownWallUsingClipsetOverride(int ped, float x1, float y1, float z1, float x2, float y2, float z2, float minZ, int ropeHandle, string clipSet, int p10); + void TaskRappelDownWallUsingClipsetOverride(uint ped, float x1, float y1, float z1, float x2, float y2, float z2, float minZ, int ropeHandle, string clipSet, int p10); int GetTaskRappelDownWallState(IPlayer ped); - int GetTaskRappelDownWallState(int ped); + int GetTaskRappelDownWallState(uint ped); /// /// Immediately stops the pedestrian from whatever it's doing. They stop fighting, animations, etc. they forget what they were doing. /// @@ -20236,9 +20223,9 @@ public unsafe interface INatives /// /// Immediately stops the pedestrian from whatever it's doing. They stop fighting, animations, etc. they forget what they were doing. /// - void ClearPedTasksImmediately(int ped); + void ClearPedTasksImmediately(uint ped); void TaskPerformSequenceFromProgress(IPlayer ped, int taskIndex, int progress1, int progress2); - void TaskPerformSequenceFromProgress(int ped, int taskIndex, int progress1, int progress2); + void TaskPerformSequenceFromProgress(uint ped, int taskIndex, int progress1, int progress2); /// /// This native does absolutely nothing, just a nullsub /// R* Comment: @@ -20246,9 +20233,9 @@ public unsafe interface INatives /// void SetNextDesiredMoveState(float nextMoveState); void SetPedDesiredMoveBlendRatio(IPlayer ped, float newMoveBlendRatio); - void SetPedDesiredMoveBlendRatio(int ped, float newMoveBlendRatio); + void SetPedDesiredMoveBlendRatio(uint ped, float newMoveBlendRatio); float GetPedDesiredMoveBlendRatio(IPlayer ped); - float GetPedDesiredMoveBlendRatio(int ped); + float GetPedDesiredMoveBlendRatio(uint ped); /// /// eg /// TASK::TASK_GOTO_ENTITY_AIMING(v_2, PLAYER::PLAYER_PED_ID(), 5.0, 25.0); @@ -20257,7 +20244,7 @@ public unsafe interface INatives /// = the Entity they should aim at. /// = distance from the target, where the ped should stop to aim. /// = distance where the ped should start to aim. - void TaskGotoEntityAiming(IPlayer ped, int target, float distanceToStopAt, float StartAimingDist); + void TaskGotoEntityAiming(IPlayer ped, uint target, float distanceToStopAt, float StartAimingDist); /// /// eg /// TASK::TASK_GOTO_ENTITY_AIMING(v_2, PLAYER::PLAYER_PED_ID(), 5.0, 25.0); @@ -20266,7 +20253,7 @@ public unsafe interface INatives /// = the Entity they should aim at. /// = distance from the target, where the ped should stop to aim. /// = distance where the ped should start to aim. - void TaskGotoEntityAiming(int ped, IEntity target, float distanceToStopAt, float StartAimingDist); + void TaskGotoEntityAiming(uint ped, IEntity target, float distanceToStopAt, float StartAimingDist); /// /// eg /// TASK::TASK_GOTO_ENTITY_AIMING(v_2, PLAYER::PLAYER_PED_ID(), 5.0, 25.0); @@ -20284,7 +20271,7 @@ public unsafe interface INatives /// = the Entity they should aim at. /// = distance from the target, where the ped should stop to aim. /// = distance where the ped should start to aim. - void TaskGotoEntityAiming(int ped, int target, float distanceToStopAt, float StartAimingDist); + void TaskGotoEntityAiming(uint ped, uint target, float distanceToStopAt, float StartAimingDist); /// /// /// is always GET_HASH_KEY("empty") in scripts, for the rare times this is used @@ -20292,35 +20279,35 @@ public unsafe interface INatives /// /// /// is always GET_HASH_KEY("empty") in scripts, for the rare times this is used - void TaskSetDecisionMaker(int ped, uint decisionMakerId); + void TaskSetDecisionMaker(uint ped, uint decisionMakerId); void TaskSetSphereDefensiveArea(IPlayer ped, float x, float y, float z, float radius); - void TaskSetSphereDefensiveArea(int ped, float x, float y, float z, float radius); + void TaskSetSphereDefensiveArea(uint ped, float x, float y, float z, float radius); void TaskClearDefensiveArea(IPlayer ped); - void TaskClearDefensiveArea(int ped); + void TaskClearDefensiveArea(uint ped); void TaskPedSlideToCoord(IPlayer ped, float x, float y, float z, float heading, float speed); - void TaskPedSlideToCoord(int ped, float x, float y, float z, float heading, float speed); + void TaskPedSlideToCoord(uint ped, float x, float y, float z, float heading, float speed); void TaskPedSlideToCoordHdgRate(IPlayer ped, float x, float y, float z, float heading, float speed, float headingChangeRate); - void TaskPedSlideToCoordHdgRate(int ped, float x, float y, float z, float heading, float speed, float headingChangeRate); - int AddCoverPoint(float x, float y, float z, float direction, int usage, int height, int arc, bool isPriority); - void RemoveCoverPoint(int coverpoint); + void TaskPedSlideToCoordHdgRate(uint ped, float x, float y, float z, float heading, float speed, float headingChangeRate); + uint AddCoverPoint(float x, float y, float z, float direction, int usage, int height, int arc, bool isPriority); + void RemoveCoverPoint(uint coverpoint); /// /// Checks if there is a cover point at position /// bool DoesScriptedCoverPointExistAtCoords(float x, float y, float z); - Vector3 GetScriptedCoverPointCoords(int coverpoint); + Vector3 GetScriptedCoverPointCoords(uint coverpoint); void AddScriptedCoverArea(float x, float y, float z, float radius); /// /// Makes the specified ped attack the target ped. /// /// should be 0 /// should be 16 - void TaskCombatPed(IPlayer ped, int targetPed, int combatFlags, int threatResponseFlags); + void TaskCombatPed(IPlayer ped, uint targetPed, int combatFlags, int threatResponseFlags); /// /// Makes the specified ped attack the target ped. /// /// should be 0 /// should be 16 - void TaskCombatPed(int ped, IPlayer targetPed, int combatFlags, int threatResponseFlags); + void TaskCombatPed(uint ped, IPlayer targetPed, int combatFlags, int threatResponseFlags); /// /// Makes the specified ped attack the target ped. /// @@ -20332,25 +20319,25 @@ public unsafe interface INatives /// /// should be 0 /// should be 16 - void TaskCombatPed(int ped, int targetPed, int combatFlags, int threatResponseFlags); - void TaskCombatPedTimed(IPlayer ped, int target, int time, int flags); - void TaskCombatPedTimed(int ped, IPlayer target, int time, int flags); + void TaskCombatPed(uint ped, uint targetPed, int combatFlags, int threatResponseFlags); + void TaskCombatPedTimed(IPlayer ped, uint target, int time, int flags); + void TaskCombatPedTimed(uint ped, IPlayer target, int time, int flags); void TaskCombatPedTimed(IPlayer ped, IPlayer target, int time, int flags); - void TaskCombatPedTimed(int ped, int target, int time, int flags); + void TaskCombatPedTimed(uint ped, uint target, int time, int flags); void TaskSeekCoverFromPos(IPlayer ped, float x, float y, float z, int duration, bool allowPeekingAndFiring); - void TaskSeekCoverFromPos(int ped, float x, float y, float z, int duration, bool allowPeekingAndFiring); - void TaskSeekCoverFromPed(IPlayer ped, int target, int duration, bool allowPeekingAndFiring); - void TaskSeekCoverFromPed(int ped, IPlayer target, int duration, bool allowPeekingAndFiring); + void TaskSeekCoverFromPos(uint ped, float x, float y, float z, int duration, bool allowPeekingAndFiring); + void TaskSeekCoverFromPed(IPlayer ped, uint target, int duration, bool allowPeekingAndFiring); + void TaskSeekCoverFromPed(uint ped, IPlayer target, int duration, bool allowPeekingAndFiring); void TaskSeekCoverFromPed(IPlayer ped, IPlayer target, int duration, bool allowPeekingAndFiring); - void TaskSeekCoverFromPed(int ped, int target, int duration, bool allowPeekingAndFiring); + void TaskSeekCoverFromPed(uint ped, uint target, int duration, bool allowPeekingAndFiring); /// /// /// is always -1 - void TaskSeekCoverToCoverPoint(IPlayer ped, int coverpoint, float x, float y, float z, int time, bool allowPeekingAndFiring); + void TaskSeekCoverToCoverPoint(IPlayer ped, uint coverpoint, float x, float y, float z, int time, bool allowPeekingAndFiring); /// /// /// is always -1 - void TaskSeekCoverToCoverPoint(int ped, int coverpoint, float x, float y, float z, int time, bool allowPeekingAndFiring); + void TaskSeekCoverToCoverPoint(uint ped, uint coverpoint, float x, float y, float z, int time, bool allowPeekingAndFiring); /// /// from michael2: /// appears to be shorter variation @@ -20366,11 +20353,11 @@ public unsafe interface INatives /// TASK::TASK_SEEK_COVER_TO_COORDS(ped, -2231.011474609375, 263.6326599121094, 173.60195922851562, -1, 0); /// /// causes the ped to take the shortest route to the cover position. It may have something to do with navmesh or pathfinding mechanics. - void TaskSeekCoverToCoords(int ped, float x1, float y1, float z1, float x2, float y2, float z2, int timeout, bool shortRoute); + void TaskSeekCoverToCoords(uint ped, float x1, float y1, float z1, float x2, float y2, float z2, int timeout, bool shortRoute); void TaskPutPedDirectlyIntoCover(IPlayer ped, float x, float y, float z, int time, bool allowPeekingAndFiring, float blendInDuration, bool forceInitialFacingDirection, bool forceFaceLeft, int identifier, bool doEntry); - void TaskPutPedDirectlyIntoCover(int ped, float x, float y, float z, int time, bool allowPeekingAndFiring, float blendInDuration, bool forceInitialFacingDirection, bool forceFaceLeft, int identifier, bool doEntry); + void TaskPutPedDirectlyIntoCover(uint ped, float x, float y, float z, int time, bool allowPeekingAndFiring, float blendInDuration, bool forceInitialFacingDirection, bool forceFaceLeft, int identifier, bool doEntry); void TaskWarpPedDirectlyIntoCover(IPlayer ped, int time, bool allowPeekingAndFiring, bool forceInitialFacingDirection, bool forceFaceLeft, int identifier); - void TaskWarpPedDirectlyIntoCover(int ped, int time, bool allowPeekingAndFiring, bool forceInitialFacingDirection, bool forceFaceLeft, int identifier); + void TaskWarpPedDirectlyIntoCover(uint ped, int time, bool allowPeekingAndFiring, bool forceInitialFacingDirection, bool forceFaceLeft, int identifier); /// /// /// is 1, 2, or 3 in scripts @@ -20378,15 +20365,15 @@ public unsafe interface INatives /// /// /// is 1, 2, or 3 in scripts - void TaskExitCover(int ped, int exitType, float x, float y, float z); + void TaskExitCover(uint ped, int exitType, float x, float y, float z); /// /// from armenian3.c4 /// - void TaskPutPedDirectlyIntoMelee(IPlayer ped, int meleeTarget, float blendInDuration, float timeInMelee, float strafePhaseSync, int aiCombatFlags); + void TaskPutPedDirectlyIntoMelee(IPlayer ped, uint meleeTarget, float blendInDuration, float timeInMelee, float strafePhaseSync, int aiCombatFlags); /// /// from armenian3.c4 /// - void TaskPutPedDirectlyIntoMelee(int ped, IPlayer meleeTarget, float blendInDuration, float timeInMelee, float strafePhaseSync, int aiCombatFlags); + void TaskPutPedDirectlyIntoMelee(uint ped, IPlayer meleeTarget, float blendInDuration, float timeInMelee, float strafePhaseSync, int aiCombatFlags); /// /// from armenian3.c4 /// @@ -20394,7 +20381,7 @@ public unsafe interface INatives /// /// from armenian3.c4 /// - void TaskPutPedDirectlyIntoMelee(int ped, int meleeTarget, float blendInDuration, float timeInMelee, float strafePhaseSync, int aiCombatFlags); + void TaskPutPedDirectlyIntoMelee(uint ped, uint meleeTarget, float blendInDuration, float timeInMelee, float strafePhaseSync, int aiCombatFlags); /// /// used in sequence task /// both parameters seems to be always 0 @@ -20404,7 +20391,7 @@ public unsafe interface INatives /// used in sequence task /// both parameters seems to be always 0 /// - void TaskToggleDuck(int ped, int toggleType); + void TaskToggleDuck(uint ped, int toggleType); /// /// From re_prisonvanbreak: /// TASK::TASK_GUARD_CURRENT_POSITION(l_DD, 35.0, 35.0, 1); @@ -20414,11 +20401,11 @@ public unsafe interface INatives /// From re_prisonvanbreak: /// TASK::TASK_GUARD_CURRENT_POSITION(l_DD, 35.0, 35.0, 1); /// - void TaskGuardCurrentPosition(int ped, float maxPatrolProximity, float defensiveAreaRadius, bool setDefensiveArea); + void TaskGuardCurrentPosition(uint ped, float maxPatrolProximity, float defensiveAreaRadius, bool setDefensiveArea); void TaskGuardAssignedDefensiveArea(IPlayer ped, float x, float y, float z, float heading, float maxPatrolProximity, int timer); - void TaskGuardAssignedDefensiveArea(int ped, float x, float y, float z, float heading, float maxPatrolProximity, int timer); + void TaskGuardAssignedDefensiveArea(uint ped, float x, float y, float z, float heading, float maxPatrolProximity, int timer); void TaskGuardSphereDefensiveArea(IPlayer ped, float defendPositionX, float defendPositionY, float defendPositionZ, float heading, float maxPatrolProximity, int time, float x, float y, float z, float defensiveAreaRadius); - void TaskGuardSphereDefensiveArea(int ped, float defendPositionX, float defendPositionY, float defendPositionZ, float heading, float maxPatrolProximity, int time, float x, float y, float z, float defensiveAreaRadius); + void TaskGuardSphereDefensiveArea(uint ped, float defendPositionX, float defendPositionY, float defendPositionZ, float heading, float maxPatrolProximity, int time, float x, float y, float z, float defensiveAreaRadius); /// /// /// example: "WORLD_HUMAN_GUARD_STAND" @@ -20426,11 +20413,11 @@ public unsafe interface INatives /// /// /// example: "WORLD_HUMAN_GUARD_STAND" - void TaskStandGuard(int ped, float x, float y, float z, float heading, string scenarioName); + void TaskStandGuard(uint ped, float x, float y, float z, float heading, string scenarioName); void SetDriveTaskCruiseSpeed(IPlayer driver, float cruiseSpeed); - void SetDriveTaskCruiseSpeed(int driver, float cruiseSpeed); + void SetDriveTaskCruiseSpeed(uint driver, float cruiseSpeed); void SetDriveTaskMaxCruiseSpeed(IPlayer ped, float speed); - void SetDriveTaskMaxCruiseSpeed(int ped, float speed); + void SetDriveTaskMaxCruiseSpeed(uint ped, float speed); /// /// This native is used to set the driving style for specific ped. /// Driving styles id seems to be: @@ -20448,7 +20435,7 @@ public unsafe interface INatives /// 786469 /// http://gtaforums.com/topic/822314-guide-driving-styles/ /// - void SetDriveTaskDrivingStyle(int ped, int drivingStyle); + void SetDriveTaskDrivingStyle(uint ped, int drivingStyle); void AddCoverBlockingArea(float startX, float startY, float startZ, float endX, float endY, float endZ, bool blockObjects, bool blockVehicles, bool blockMap, bool blockPlayer); void RemoveAllCoverBlockingAreas(); void RemoveCoverBlockingAreasAtPosition(float x, float y, float z); @@ -20484,7 +20471,7 @@ public unsafe interface INatives /// - Usually 0 or -1, doesn't seem to have any effect. Might be a delay between sequences. /// - Plays the "Enter" anim if true, otherwise plays the "Exit" anim. Scenarios that don't have any "Enter" anims won't play if this is set to true. /// I'm unsure of what the last two parameters are, however sub_adf() randomly returns 1 of 3 scenarios, those being: - void TaskStartScenarioInPlace(int ped, string scenarioName, int unkDelay, bool playEnterAnim); + void TaskStartScenarioInPlace(uint ped, string scenarioName, int unkDelay, bool playEnterAnim); /// /// Full list of ped scenarios by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenariosCompact.json /// Also a few more listed at TASK::TASK_START_SCENARIO_IN_PLACE just above. @@ -20512,7 +20499,7 @@ public unsafe interface INatives /// -1 also used in scrips /// used for sitting scenarios /// teleports ped to position - void TaskStartScenarioAtPosition(int ped, string scenarioName, float x, float y, float z, float heading, int duration, bool sittingScenario, bool teleport); + void TaskStartScenarioAtPosition(uint ped, string scenarioName, float x, float y, float z, float heading, int duration, bool sittingScenario, bool teleport); /// /// Updated variables /// An alternative to TASK::TASK_USE_NEAREST_SCENARIO_TO_COORD_WARP. Makes the ped walk to the scenario instead. @@ -20522,9 +20509,9 @@ public unsafe interface INatives /// Updated variables /// An alternative to TASK::TASK_USE_NEAREST_SCENARIO_TO_COORD_WARP. Makes the ped walk to the scenario instead. /// - void TaskUseNearestScenarioToCoord(int ped, float x, float y, float z, float distance, int duration); + void TaskUseNearestScenarioToCoord(uint ped, float x, float y, float z, float distance, int duration); void TaskUseNearestScenarioToCoordWarp(IPlayer ped, float x, float y, float z, float radius, int timeToLeave); - void TaskUseNearestScenarioToCoordWarp(int ped, float x, float y, float z, float radius, int timeToLeave); + void TaskUseNearestScenarioToCoordWarp(uint ped, float x, float y, float z, float radius, int timeToLeave); /// /// /// is always 0 in scripts @@ -20532,7 +20519,7 @@ public unsafe interface INatives /// /// /// is always 0 in scripts - void TaskUseNearestScenarioChainToCoord(int ped, float x, float y, float z, float maxRange, int timeToLeave); + void TaskUseNearestScenarioChainToCoord(uint ped, float x, float y, float z, float maxRange, int timeToLeave); /// /// /// is always -1 or 0 in scripts @@ -20540,12 +20527,12 @@ public unsafe interface INatives /// /// /// is always -1 or 0 in scripts - void TaskUseNearestScenarioChainToCoordWarp(int ped, float x, float y, float z, float radius, int timeToLeave); + void TaskUseNearestScenarioChainToCoordWarp(uint ped, float x, float y, float z, float radius, int timeToLeave); bool DoesScenarioExistInArea(float x, float y, float z, float radius, bool mustBeFree); bool DoesScenarioOfTypeExistInArea(float x, float y, float z, string scenarioName, float radius, bool mustBeFree); bool IsScenarioOccupied(float x, float y, float z, float maxRange, bool onlyUsersActuallyAtScenario); bool PedHasUseScenarioTask(IPlayer ped); - bool PedHasUseScenarioTask(int ped); + bool PedHasUseScenarioTask(uint ped); /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// @@ -20553,7 +20540,7 @@ public unsafe interface INatives /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// - void PlayAnimOnRunningScenario(int ped, string animDict, string animName); + void PlayAnimOnRunningScenario(uint ped, string animDict, string animName); /// /// Full list of scenario groups used in scripts by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/scenarioGroupNames.json /// Occurrences in the b617d scripts: @@ -20626,7 +20613,7 @@ public unsafe interface INatives void SetScenarioTypeEnabled(string scenarioType, bool toggle); void ResetScenarioTypesEnabled(); bool IsPedActiveInScenario(IPlayer ped); - bool IsPedActiveInScenario(int ped); + bool IsPedActiveInScenario(uint ped); /// /// Used only once (am_mp_property_int) /// Related to CTaskAmbientClips. @@ -20638,7 +20625,7 @@ public unsafe interface INatives /// Related to CTaskAmbientClips. /// /// was PLAYER_PED_ID() - bool IsPedPlayingBaseClipInScenario(int ped); + bool IsPedPlayingBaseClipInScenario(uint ped); /// /// Appears only in fm_mission_controller and used only 3 times. /// @@ -20652,7 +20639,7 @@ public unsafe interface INatives /// was always PLAYER_PED_ID() /// was always true /// was always true - void SetPedCanPlayAmbientIdles(int ped, bool blockIdleClips, bool removeIdleClipIfPlaying); + void SetPedCanPlayAmbientIdles(uint ped, bool blockIdleClips, bool removeIdleClipIfPlaying); /// /// Despite its name, it only attacks ONE hated target. The one closest to the specified position. /// @@ -20660,7 +20647,7 @@ public unsafe interface INatives /// /// Despite its name, it only attacks ONE hated target. The one closest to the specified position. /// - void TaskCombatHatedTargetsInArea(int ped, float x, float y, float z, float radius, int combatFlags); + void TaskCombatHatedTargetsInArea(uint ped, float x, float y, float z, float radius, int combatFlags); /// /// Despite its name, it only attacks ONE hated target. The one closest hated target. /// @@ -20670,9 +20657,9 @@ public unsafe interface INatives /// Despite its name, it only attacks ONE hated target. The one closest hated target. /// /// seems to be always 0 - void TaskCombatHatedTargetsAroundPed(int ped, float radius, int combatFlags); + void TaskCombatHatedTargetsAroundPed(uint ped, float radius, int combatFlags); void TaskCombatHatedTargetsAroundPedTimed(IPlayer ped, float radius, int time, int combatFlags); - void TaskCombatHatedTargetsAroundPedTimed(int ped, float radius, int time, int combatFlags); + void TaskCombatHatedTargetsAroundPedTimed(uint ped, float radius, int time, int combatFlags); /// /// In every case of this native, I've only seen the first parameter passed as 0, although I believe it's a Ped after seeing tasks around it using 0. That's because it's used in a Sequence Task. /// The last 3 parameters are definitely coordinates after seeing them passed in other scripts, and even being used straight from the player's coordinates. @@ -20692,9 +20679,9 @@ public unsafe interface INatives /// ---------------------------------------------------- /// The first comment is right it definately is the ped as if you look in script finale_heist2b.c line 59628 in Xbox Scripts atleast you will see task_throw_projectile and the first param is Local_559[2 <14>] if you look above it a little bit line 59622 give_weapon_to_ped uses the same exact param Local_559[2 <14>] and we all know the first param of that native is ped. So it guaranteed has to be ped. 0 just may mean to use your ped by default for some reason. /// - void TaskThrowProjectile(int ped, float x, float y, float z, int ignoreCollisionEntityIndex, bool createInvincibleProjectile); + void TaskThrowProjectile(uint ped, float x, float y, float z, int ignoreCollisionEntityIndex, bool createInvincibleProjectile); void TaskSwapWeapon(IPlayer ped, bool drawWeapon); - void TaskSwapWeapon(int ped, bool drawWeapon); + void TaskSwapWeapon(uint ped, bool drawWeapon); /// /// The 2nd param (drawWeapon) is not implemented. /// ----------------------------------------------------------------------- @@ -20712,21 +20699,21 @@ public unsafe interface INatives /// TASK::TASK_RELOAD_WEAPON(PLAYER::PLAYER_PED_ID(), 1); /// } /// - void TaskReloadWeapon(int ped, bool drawWeapon); + void TaskReloadWeapon(uint ped, bool drawWeapon); bool IsPedGettingUp(IPlayer ped); - bool IsPedGettingUp(int ped); + bool IsPedGettingUp(uint ped); /// /// EX: Function.Call(Ped1, Ped2, Time, 0); /// The last parameter is always 0 for some reason I do not know. The first parameter is the pedestrian who will writhe to the pedestrian in the other parameter. The third paremeter is how long until the Writhe task ends. When the task ends, the ped will die. If set to -1, he will not die automatically, and the task will continue until something causes it to end. This can be being touched by an entity, being shot, explosion, going into ragdoll, having task cleared. Anything that ends the current task will kill the ped at this point. /// Third parameter does not appear to be time. The last parameter is not implemented (It's not used, regardless of value). /// - void TaskWrithe(IPlayer ped, int target, int minFireLoops, int startState, bool forceShootOnGround, int shootFromGroundTimer); + void TaskWrithe(IPlayer ped, uint target, int minFireLoops, int startState, bool forceShootOnGround, int shootFromGroundTimer); /// /// EX: Function.Call(Ped1, Ped2, Time, 0); /// The last parameter is always 0 for some reason I do not know. The first parameter is the pedestrian who will writhe to the pedestrian in the other parameter. The third paremeter is how long until the Writhe task ends. When the task ends, the ped will die. If set to -1, he will not die automatically, and the task will continue until something causes it to end. This can be being touched by an entity, being shot, explosion, going into ragdoll, having task cleared. Anything that ends the current task will kill the ped at this point. /// Third parameter does not appear to be time. The last parameter is not implemented (It's not used, regardless of value). /// - void TaskWrithe(int ped, IPlayer target, int minFireLoops, int startState, bool forceShootOnGround, int shootFromGroundTimer); + void TaskWrithe(uint ped, IPlayer target, int minFireLoops, int startState, bool forceShootOnGround, int shootFromGroundTimer); /// /// EX: Function.Call(Ped1, Ped2, Time, 0); /// The last parameter is always 0 for some reason I do not know. The first parameter is the pedestrian who will writhe to the pedestrian in the other parameter. The third paremeter is how long until the Writhe task ends. When the task ends, the ped will die. If set to -1, he will not die automatically, and the task will continue until something causes it to end. This can be being touched by an entity, being shot, explosion, going into ragdoll, having task cleared. Anything that ends the current task will kill the ped at this point. @@ -20738,7 +20725,7 @@ public unsafe interface INatives /// The last parameter is always 0 for some reason I do not know. The first parameter is the pedestrian who will writhe to the pedestrian in the other parameter. The third paremeter is how long until the Writhe task ends. When the task ends, the ped will die. If set to -1, he will not die automatically, and the task will continue until something causes it to end. This can be being touched by an entity, being shot, explosion, going into ragdoll, having task cleared. Anything that ends the current task will kill the ped at this point. /// Third parameter does not appear to be time. The last parameter is not implemented (It's not used, regardless of value). /// - void TaskWrithe(int ped, int target, int minFireLoops, int startState, bool forceShootOnGround, int shootFromGroundTimer); + void TaskWrithe(uint ped, uint target, int minFireLoops, int startState, bool forceShootOnGround, int shootFromGroundTimer); /// /// This native checks if a ped is on the ground, in pain from a (gunshot) wound. /// Returns `true` if the ped is in writhe, `false` otherwise. @@ -20748,7 +20735,7 @@ public unsafe interface INatives /// This native checks if a ped is on the ground, in pain from a (gunshot) wound. /// Returns `true` if the ped is in writhe, `false` otherwise. /// - bool IsPedInWrithe(int ped); + bool IsPedInWrithe(uint ped); /// /// patrolRoutes found in the b617d scripts: /// "miss_Ass0", @@ -20791,7 +20778,7 @@ public unsafe interface INatives bool GetPatrolTaskInfo(IPlayer ped, ref int timeLeftAtNode, ref int nodeId); /// /// - bool GetPatrolTaskInfo(int ped, ref int timeLeftAtNode, ref int nodeId); + bool GetPatrolTaskInfo(uint ped, ref int timeLeftAtNode, ref int nodeId); /// /// After looking at some scripts the second parameter seems to be an id of some kind. Here are some I found from some R* scripts: /// "miss_Tower_01" (this went from 01 - 10) @@ -20817,7 +20804,7 @@ public unsafe interface INatives /// TASK::ADD_PATROL_ROUTE_NODE(0, "WORLD_HUMAN_GUARD_STAND", l_738[03], -139.4076690673828, -993.4732055664062, 26.2754, MISC::GET_RANDOM_INT_IN_RANGE(5000, 10000)); /// See NativeDB for reference: http://natives.altv.mp/#/0xBDA5DF49D080FE4E /// - void TaskPatrol(int ped, string patrolRouteName, int alertState, bool canChatToPeds, bool useHeadLookAt); + void TaskPatrol(uint ped, string patrolRouteName, int alertState, bool canChatToPeds, bool useHeadLookAt); /// /// Makes the ped run to take cover /// @@ -20825,7 +20812,7 @@ public unsafe interface INatives /// /// Makes the ped run to take cover /// - void TaskStayInCover(int ped); + void TaskStayInCover(uint ped); /// /// /// offset in world coords from some entity. @@ -20835,23 +20822,23 @@ public unsafe interface INatives /// /// offset in world coords from some entity. /// offset in world coords from some entity. - void AddVehicleSubtaskAttackCoord(int ped, float x, float y, float z); - void AddVehicleSubtaskAttackPed(IPlayer ped, int target); - void AddVehicleSubtaskAttackPed(int ped, IPlayer target); + void AddVehicleSubtaskAttackCoord(uint ped, float x, float y, float z); + void AddVehicleSubtaskAttackPed(IPlayer ped, uint target); + void AddVehicleSubtaskAttackPed(uint ped, IPlayer target); void AddVehicleSubtaskAttackPed(IPlayer ped, IPlayer target); - void AddVehicleSubtaskAttackPed(int ped, int target); - void TaskVehicleShootAtPed(IPlayer ped, int target, float fireTolerance); - void TaskVehicleShootAtPed(int ped, IPlayer target, float fireTolerance); + void AddVehicleSubtaskAttackPed(uint ped, uint target); + void TaskVehicleShootAtPed(IPlayer ped, uint target, float fireTolerance); + void TaskVehicleShootAtPed(uint ped, IPlayer target, float fireTolerance); void TaskVehicleShootAtPed(IPlayer ped, IPlayer target, float fireTolerance); - void TaskVehicleShootAtPed(int ped, int target, float fireTolerance); - void TaskVehicleAimAtPed(IPlayer ped, int target); - void TaskVehicleAimAtPed(int ped, IPlayer target); + void TaskVehicleShootAtPed(uint ped, uint target, float fireTolerance); + void TaskVehicleAimAtPed(IPlayer ped, uint target); + void TaskVehicleAimAtPed(uint ped, IPlayer target); void TaskVehicleAimAtPed(IPlayer ped, IPlayer target); - void TaskVehicleAimAtPed(int ped, int target); + void TaskVehicleAimAtPed(uint ped, uint target); void TaskVehicleShootAtCoord(IPlayer ped, float x, float y, float z, float fireTolerance); - void TaskVehicleShootAtCoord(int ped, float x, float y, float z, float fireTolerance); + void TaskVehicleShootAtCoord(uint ped, float x, float y, float z, float fireTolerance); void TaskVehicleAimAtCoord(IPlayer ped, float x, float y, float z); - void TaskVehicleAimAtCoord(int ped, float x, float y, float z); + void TaskVehicleAimAtCoord(uint ped, float x, float y, float z); /// /// Differs from TASK_VEHICLE_DRIVE_TO_COORDS in that it will pick the shortest possible road route without taking one-way streets and other "road laws" into consideration. /// WARNING: @@ -20864,7 +20851,7 @@ public unsafe interface INatives /// = 30.0f, /// = 156, /// = 5.0f; - void TaskVehicleGotoNavmesh(IPlayer ped, int vehicle, float x, float y, float z, float speed, int behaviorFlag, float stoppingRange); + void TaskVehicleGotoNavmesh(IPlayer ped, uint vehicle, float x, float y, float z, float speed, int behaviorFlag, float stoppingRange); /// /// Differs from TASK_VEHICLE_DRIVE_TO_COORDS in that it will pick the shortest possible road route without taking one-way streets and other "road laws" into consideration. /// WARNING: @@ -20877,7 +20864,7 @@ public unsafe interface INatives /// = 30.0f, /// = 156, /// = 5.0f; - void TaskVehicleGotoNavmesh(int ped, IVehicle vehicle, float x, float y, float z, float speed, int behaviorFlag, float stoppingRange); + void TaskVehicleGotoNavmesh(uint ped, IVehicle vehicle, float x, float y, float z, float speed, int behaviorFlag, float stoppingRange); /// /// Differs from TASK_VEHICLE_DRIVE_TO_COORDS in that it will pick the shortest possible road route without taking one-way streets and other "road laws" into consideration. /// WARNING: @@ -20903,7 +20890,7 @@ public unsafe interface INatives /// = 30.0f, /// = 156, /// = 5.0f; - void TaskVehicleGotoNavmesh(int ped, int vehicle, float x, float y, float z, float speed, int behaviorFlag, float stoppingRange); + void TaskVehicleGotoNavmesh(uint ped, uint vehicle, float x, float y, float z, float speed, int behaviorFlag, float stoppingRange); /// /// movement_speed: mostly 2f, but also 1/1.2f, etc. /// firing_pattern: ${firing_pattern_full_auto}, 0xC6EE6B4C @@ -20925,11 +20912,11 @@ public unsafe interface INatives /// true /// 0 / 512 / 513, etc. /// 0 - void TaskGoToCoordWhileAimingAtCoord(int ped, float x, float y, float z, float aimAtX, float aimAtY, float aimAtZ, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, int navFlags, bool instantBlendToAim, uint firingPattern); - void TaskGoToCoordWhileAimingAtEntity(IPlayer ped, float x, float y, float z, int aimAtID, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, int navFlags, bool instantBlendToAim, uint firingPattern, int time); - void TaskGoToCoordWhileAimingAtEntity(int ped, float x, float y, float z, IEntity aimAtID, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, int navFlags, bool instantBlendToAim, uint firingPattern, int time); + void TaskGoToCoordWhileAimingAtCoord(uint ped, float x, float y, float z, float aimAtX, float aimAtY, float aimAtZ, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, int navFlags, bool instantBlendToAim, uint firingPattern); + void TaskGoToCoordWhileAimingAtEntity(IPlayer ped, float x, float y, float z, uint aimAtID, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, int navFlags, bool instantBlendToAim, uint firingPattern, int time); + void TaskGoToCoordWhileAimingAtEntity(uint ped, float x, float y, float z, IEntity aimAtID, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, int navFlags, bool instantBlendToAim, uint firingPattern, int time); void TaskGoToCoordWhileAimingAtEntity(IPlayer ped, float x, float y, float z, IEntity aimAtID, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, int navFlags, bool instantBlendToAim, uint firingPattern, int time); - void TaskGoToCoordWhileAimingAtEntity(int ped, float x, float y, float z, int aimAtID, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, int navFlags, bool instantBlendToAim, uint firingPattern, int time); + void TaskGoToCoordWhileAimingAtEntity(uint ped, float x, float y, float z, uint aimAtID, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, int navFlags, bool instantBlendToAim, uint firingPattern, int time); /// /// The ped will walk or run towards goToLocation, aiming towards goToLocation or focusLocation (depending on the aimingFlag) and shooting if shootAtEnemies = true to any enemy in his path. /// If the ped is closer than noRoadsDistance, the ped will ignore pathing/navmesh and go towards goToLocation directly. This could cause the ped to get stuck behind tall walls if the goToLocation is on the other side. To avoid this, use 0.0f and the ped will always use pathing/navmesh to reach his destination. @@ -20955,41 +20942,41 @@ public unsafe interface INatives /// Example: /// See NativeDB for reference: http://natives.altv.mp/#/0xA55547801EB331FC /// - void TaskGoToCoordAndAimAtHatedEntitiesNearCoord(int pedHandle, float goToLocationX, float goToLocationY, float goToLocationZ, float focusLocationX, float focusLocationY, float focusLocationZ, float speed, bool shootAtEnemies, float distanceToStopAt, float noRoadsDistance, bool useNavMesh, int navFlags, int taskFlags, uint firingPattern); - void TaskGoToEntityWhileAimingAtCoord(IPlayer ped, int entity, float aimX, float aimY, float aimZ, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); - void TaskGoToEntityWhileAimingAtCoord(int ped, IEntity entity, float aimX, float aimY, float aimZ, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); + void TaskGoToCoordAndAimAtHatedEntitiesNearCoord(uint pedHandle, float goToLocationX, float goToLocationY, float goToLocationZ, float focusLocationX, float focusLocationY, float focusLocationZ, float speed, bool shootAtEnemies, float distanceToStopAt, float noRoadsDistance, bool useNavMesh, int navFlags, int taskFlags, uint firingPattern); + void TaskGoToEntityWhileAimingAtCoord(IPlayer ped, uint entity, float aimX, float aimY, float aimZ, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); + void TaskGoToEntityWhileAimingAtCoord(uint ped, IEntity entity, float aimX, float aimY, float aimZ, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); void TaskGoToEntityWhileAimingAtCoord(IPlayer ped, IEntity entity, float aimX, float aimY, float aimZ, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); - void TaskGoToEntityWhileAimingAtCoord(int ped, int entity, float aimX, float aimY, float aimZ, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); + void TaskGoToEntityWhileAimingAtCoord(uint ped, uint entity, float aimX, float aimY, float aimZ, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); /// /// If true, peds will shoot at Entity till it is dead. /// If false, peds will just walk till they reach the entity and will cease shooting. /// - void TaskGoToEntityWhileAimingAtEntity(IPlayer ped, int entityToWalkTo, int entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); + void TaskGoToEntityWhileAimingAtEntity(IPlayer ped, uint entityToWalkTo, uint entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); /// /// If true, peds will shoot at Entity till it is dead. /// If false, peds will just walk till they reach the entity and will cease shooting. /// - void TaskGoToEntityWhileAimingAtEntity(int ped, IEntity entityToWalkTo, int entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); + void TaskGoToEntityWhileAimingAtEntity(uint ped, IEntity entityToWalkTo, uint entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); /// /// If true, peds will shoot at Entity till it is dead. /// If false, peds will just walk till they reach the entity and will cease shooting. /// - void TaskGoToEntityWhileAimingAtEntity(IPlayer ped, IEntity entityToWalkTo, int entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); + void TaskGoToEntityWhileAimingAtEntity(IPlayer ped, IEntity entityToWalkTo, uint entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); /// /// If true, peds will shoot at Entity till it is dead. /// If false, peds will just walk till they reach the entity and will cease shooting. /// - void TaskGoToEntityWhileAimingAtEntity(int ped, int entityToWalkTo, IEntity entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); + void TaskGoToEntityWhileAimingAtEntity(uint ped, uint entityToWalkTo, IEntity entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); /// /// If true, peds will shoot at Entity till it is dead. /// If false, peds will just walk till they reach the entity and will cease shooting. /// - void TaskGoToEntityWhileAimingAtEntity(IPlayer ped, int entityToWalkTo, IEntity entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); + void TaskGoToEntityWhileAimingAtEntity(IPlayer ped, uint entityToWalkTo, IEntity entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); /// /// If true, peds will shoot at Entity till it is dead. /// If false, peds will just walk till they reach the entity and will cease shooting. /// - void TaskGoToEntityWhileAimingAtEntity(int ped, IEntity entityToWalkTo, IEntity entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); + void TaskGoToEntityWhileAimingAtEntity(uint ped, IEntity entityToWalkTo, IEntity entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); /// /// If true, peds will shoot at Entity till it is dead. /// If false, peds will just walk till they reach the entity and will cease shooting. @@ -20999,7 +20986,7 @@ public unsafe interface INatives /// If true, peds will shoot at Entity till it is dead. /// If false, peds will just walk till they reach the entity and will cease shooting. /// - void TaskGoToEntityWhileAimingAtEntity(int ped, int entityToWalkTo, int entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); + void TaskGoToEntityWhileAimingAtEntity(uint ped, uint entityToWalkTo, uint entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern); /// /// Makes the ped ragdoll like when falling from a great height /// @@ -21007,7 +20994,7 @@ public unsafe interface INatives /// /// Makes the ped ragdoll like when falling from a great height /// - void SetHighFallTask(int ped, int minTime, int maxTime, int entryType); + void SetHighFallTask(uint ped, int minTime, int maxTime, int entryType); /// /// Full list of waypoint recordings by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/waypointRecordings.json /// For a full list of the points, see here: goo.gl/wIH0vn @@ -21042,14 +21029,14 @@ public unsafe interface INatives /// bool WaypointRecordingGetClosestWaypoint(string name, float x, float y, float z, ref int point); void TaskFollowWaypointRecording(IPlayer ped, string name, int p2, int p3, int p4); - void TaskFollowWaypointRecording(int ped, string name, int p2, int p3, int p4); + void TaskFollowWaypointRecording(uint ped, string name, int p2, int p3, int p4); bool IsWaypointPlaybackGoingOnForPed(IPlayer ped); - bool IsWaypointPlaybackGoingOnForPed(int ped); + bool IsWaypointPlaybackGoingOnForPed(uint ped); int GetPedWaypointProgress(IPlayer ped); - int GetPedWaypointProgress(int ped); + int GetPedWaypointProgress(uint ped); float GetPedWaypointDistance(int p0); bool SetPedWaypointRouteOffset(IPlayer ped, float x, float y, float z); - bool SetPedWaypointRouteOffset(int ped, float x, float y, float z); + bool SetPedWaypointRouteOffset(uint ped, float x, float y, float z); float GetWaypointDistanceAlongRoute(string name, int point); bool WaypointPlaybackGetIsPaused(int p0); void WaypointPlaybackPause(int p0, bool p1, bool p2); @@ -21057,20 +21044,20 @@ public unsafe interface INatives void WaypointPlaybackOverrideSpeed(int p0, float p1, bool p2); void WaypointPlaybackUseDefaultSpeed(int p0); void UseWaypointRecordingAsAssistedMovementRoute(string name, bool p1, float p2, float p3); - void WaypointPlaybackStartAimingAtPed(IPlayer ped, int target, bool p2); - void WaypointPlaybackStartAimingAtPed(int ped, IPlayer target, bool p2); + void WaypointPlaybackStartAimingAtPed(IPlayer ped, uint target, bool p2); + void WaypointPlaybackStartAimingAtPed(uint ped, IPlayer target, bool p2); void WaypointPlaybackStartAimingAtPed(IPlayer ped, IPlayer target, bool p2); - void WaypointPlaybackStartAimingAtPed(int ped, int target, bool p2); + void WaypointPlaybackStartAimingAtPed(uint ped, uint target, bool p2); void WaypointPlaybackStartAimingAtCoord(IPlayer ped, float x, float y, float z, bool p4); - void WaypointPlaybackStartAimingAtCoord(int ped, float x, float y, float z, bool p4); - void WaypointPlaybackStartShootingAtPed(IPlayer ped, int ped2, bool p2, bool p3); - void WaypointPlaybackStartShootingAtPed(int ped, IPlayer ped2, bool p2, bool p3); + void WaypointPlaybackStartAimingAtCoord(uint ped, float x, float y, float z, bool p4); + void WaypointPlaybackStartShootingAtPed(IPlayer ped, uint ped2, bool p2, bool p3); + void WaypointPlaybackStartShootingAtPed(uint ped, IPlayer ped2, bool p2, bool p3); void WaypointPlaybackStartShootingAtPed(IPlayer ped, IPlayer ped2, bool p2, bool p3); - void WaypointPlaybackStartShootingAtPed(int ped, int ped2, bool p2, bool p3); + void WaypointPlaybackStartShootingAtPed(uint ped, uint ped2, bool p2, bool p3); void WaypointPlaybackStartShootingAtCoord(IPlayer ped, float x, float y, float z, bool p4, uint firingPattern); - void WaypointPlaybackStartShootingAtCoord(int ped, float x, float y, float z, bool p4, uint firingPattern); + void WaypointPlaybackStartShootingAtCoord(uint ped, float x, float y, float z, bool p4, uint firingPattern); void WaypointPlaybackStopAimingOrShooting(IPlayer ped); - void WaypointPlaybackStopAimingOrShooting(int ped); + void WaypointPlaybackStopAimingOrShooting(uint ped); /// /// Routes: "1_FIBStairs", "2_FIBStairs", "3_FIBStairs", "4_FIBStairs", "5_FIBStairs", "5_TowardsFire", "6a_FIBStairs", "7_FIBStairs", "8_FIBStairs", "Aprtmnt_1", "AssAfterLift", "ATM_1", "coroner2", "coroner_stairs", "f5_jimmy1", "fame1", "family5b", "family5c", "Family5d", "family5d", "FIB_Glass1", "FIB_Glass2", "FIB_Glass3", "finaBroute1A", "finalb1st", "finalB1sta", "finalbround", "finalbroute2", "Hairdresser1", "jan_foyet_ft_door", "Jo_3", "Lemar1", "Lemar2", "mansion_1", "Mansion_1", "pols_1", "pols_2", "pols_3", "pols_4", "pols_5", "pols_6", "pols_7", "pols_8", "Pro_S1", "Pro_S1a", "Pro_S2", "Towards_case", "trev_steps", "tunrs1", "tunrs2", "tunrs3", "Wave01457s" /// @@ -21090,7 +21077,7 @@ public unsafe interface INatives /// = 16 /// = -1 (angle?) /// usually v3.zero - void TaskVehicleFollowWaypointRecording(IPlayer ped, int vehicle, string WPRecording, int p3, int p4, int p5, int p6, float p7, bool p8, float p9); + void TaskVehicleFollowWaypointRecording(IPlayer ped, uint vehicle, string WPRecording, int p3, int p4, int p5, int p6, float p7, bool p8, float p9); /// /// p10 = bool (repeat?) /// p11 = 1073741824 @@ -21102,7 +21089,7 @@ public unsafe interface INatives /// = 16 /// = -1 (angle?) /// usually v3.zero - void TaskVehicleFollowWaypointRecording(int ped, IVehicle vehicle, string WPRecording, int p3, int p4, int p5, int p6, float p7, bool p8, float p9); + void TaskVehicleFollowWaypointRecording(uint ped, IVehicle vehicle, string WPRecording, int p3, int p4, int p5, int p6, float p7, bool p8, float p9); /// /// p10 = bool (repeat?) /// p11 = 1073741824 @@ -21126,21 +21113,21 @@ public unsafe interface INatives /// = 16 /// = -1 (angle?) /// usually v3.zero - void TaskVehicleFollowWaypointRecording(int ped, int vehicle, string WPRecording, int p3, int p4, int p5, int p6, float p7, bool p8, float p9); + void TaskVehicleFollowWaypointRecording(uint ped, uint vehicle, string WPRecording, int p3, int p4, int p5, int p6, float p7, bool p8, float p9); bool IsWaypointPlaybackGoingOnForVehicle(IVehicle vehicle); - bool IsWaypointPlaybackGoingOnForVehicle(int vehicle); + bool IsWaypointPlaybackGoingOnForVehicle(uint vehicle); int GetVehicleWaypointProgress(IVehicle vehicle); - int GetVehicleWaypointProgress(int vehicle); + int GetVehicleWaypointProgress(uint vehicle); int GetVehicleWaypointTargetPoint(IVehicle vehicle); - int GetVehicleWaypointTargetPoint(int vehicle); + int GetVehicleWaypointTargetPoint(uint vehicle); void VehicleWaypointPlaybackPause(IVehicle vehicle); - void VehicleWaypointPlaybackPause(int vehicle); + void VehicleWaypointPlaybackPause(uint vehicle); void VehicleWaypointPlaybackResume(IVehicle vehicle); - void VehicleWaypointPlaybackResume(int vehicle); + void VehicleWaypointPlaybackResume(uint vehicle); void VehicleWaypointPlaybackUseDefaultSpeed(IVehicle vehicle); - void VehicleWaypointPlaybackUseDefaultSpeed(int vehicle); + void VehicleWaypointPlaybackUseDefaultSpeed(uint vehicle); void VehicleWaypointPlaybackOverrideSpeed(IVehicle vehicle, float speed); - void VehicleWaypointPlaybackOverrideSpeed(int vehicle, float speed); + void VehicleWaypointPlaybackOverrideSpeed(uint vehicle, float speed); /// /// I cant believe I have to define this, this is one of the best natives. /// It makes the ped ignore basically all shocking events around it. Occasionally the ped may comment or gesture, but other than that they just continue their daily activities. This includes shooting and wounding the ped. And - most importantly - they do not flee. @@ -21152,7 +21139,7 @@ public unsafe interface INatives /// It makes the ped ignore basically all shocking events around it. Occasionally the ped may comment or gesture, but other than that they just continue their daily activities. This includes shooting and wounding the ped. And - most importantly - they do not flee. /// Since it is a task, every time the native is called the ped will stop for a moment. /// - void TaskSetBlockingOfNonTemporaryEvents(int ped, bool toggle); + void TaskSetBlockingOfNonTemporaryEvents(uint ped, bool toggle); /// /// [30/03/2017] ins1de : /// See FORCE_PED_MOTION_STATE @@ -21164,7 +21151,7 @@ public unsafe interface INatives /// See FORCE_PED_MOTION_STATE /// /// always false - void TaskForceMotionState(int ped, uint state, bool forceRestart); + void TaskForceMotionState(uint ped, uint state, bool forceRestart); /// /// Example: /// @@ -21174,7 +21161,7 @@ public unsafe interface INatives /// Example: /// /// :TASK_MOVE_NETWORK_BY_NAME(PLAYER::PLAYER_PED_ID(), "arm_wrestling_sweep_paired_a_rev3", 0.0f, true, "mini@arm_wrestling", 0); - void TaskMoveNetworkByName(int ped, string task, float multiplier, bool allowOverrideCloneUpdate, string animDict, int flags); + void TaskMoveNetworkByName(uint ped, string task, float multiplier, bool allowOverrideCloneUpdate, string animDict, int flags); /// /// Example: /// TASK::TASK_MOVE_NETWORK_ADVANCED_BY_NAME(PLAYER::PLAYER_PED_ID(), "minigame_tattoo_michael_parts", 324.13f, 181.29f, 102.6f, 0.0f, 0.0f, 22.32f, 2, 0, false, 0, 0); @@ -21184,7 +21171,7 @@ public unsafe interface INatives /// Example: /// TASK::TASK_MOVE_NETWORK_ADVANCED_BY_NAME(PLAYER::PLAYER_PED_ID(), "minigame_tattoo_michael_parts", 324.13f, 181.29f, 102.6f, 0.0f, 0.0f, 22.32f, 2, 0, false, 0, 0); /// - void TaskMoveNetworkAdvancedByName(int ped, string network, float x, float y, float z, float rotX, float rotY, float rotZ, int rotOrder, float blendDuration, bool allowOverrideCloneUpdate, string animDict, int flags); + void TaskMoveNetworkAdvancedByName(uint ped, string network, float x, float y, float z, float rotX, float rotY, float rotZ, int rotOrder, float blendDuration, bool allowOverrideCloneUpdate, string animDict, int flags); /// /// Used only once in the scripts (am_mp_nightclub) /// @@ -21192,19 +21179,19 @@ public unsafe interface INatives /// /// Used only once in the scripts (am_mp_nightclub) /// - void TaskMoveNetworkByNameWithInitParams(int ped, string network, ref int initialParameters, float blendDuration, bool allowOverrideCloneUpdate, string animDict, int flags); + void TaskMoveNetworkByNameWithInitParams(uint ped, string network, ref int initialParameters, float blendDuration, bool allowOverrideCloneUpdate, string animDict, int flags); /// /// void TaskMoveNetworkAdvancedByNameWithInitParams(IPlayer ped, string network, ref int initialParameters, float x, float y, float z, float rotX, float rotY, float rotZ, int rotOrder, float blendDuration, bool allowOverrideCloneUpdate, string dictionary, int flags); /// /// - void TaskMoveNetworkAdvancedByNameWithInitParams(int ped, string network, ref int initialParameters, float x, float y, float z, float rotX, float rotY, float rotZ, int rotOrder, float blendDuration, bool allowOverrideCloneUpdate, string dictionary, int flags); + void TaskMoveNetworkAdvancedByNameWithInitParams(uint ped, string network, ref int initialParameters, float x, float y, float z, float rotX, float rotY, float rotZ, int rotOrder, float blendDuration, bool allowOverrideCloneUpdate, string dictionary, int flags); bool IsTaskMoveNetworkActive(IPlayer ped); - bool IsTaskMoveNetworkActive(int ped); + bool IsTaskMoveNetworkActive(uint ped); bool IsTaskMoveNetworkReadyForTransition(IPlayer ped); - bool IsTaskMoveNetworkReadyForTransition(int ped); + bool IsTaskMoveNetworkReadyForTransition(uint ped); bool RequestTaskMoveNetworkStateTransition(IPlayer ped, string name); - bool RequestTaskMoveNetworkStateTransition(int ped, string name); + bool RequestTaskMoveNetworkStateTransition(uint ped, string name); /// /// Used only once in the scripts (fm_mission_controller) like so: /// TASK::SET_EXPECTED_CLONE_NEXT_TASK_MOVE_NETWORK_STATE(iLocal_3160, "Cutting"); @@ -21214,11 +21201,11 @@ public unsafe interface INatives /// Used only once in the scripts (fm_mission_controller) like so: /// TASK::SET_EXPECTED_CLONE_NEXT_TASK_MOVE_NETWORK_STATE(iLocal_3160, "Cutting"); /// - bool SetExpectedCloneNextTaskMoveNetworkState(int ped, string state); + bool SetExpectedCloneNextTaskMoveNetworkState(uint ped, string state); string GetTaskMoveNetworkState(IPlayer ped); - string GetTaskMoveNetworkState(int ped); + string GetTaskMoveNetworkState(uint ped); void SetTaskMoveNetworkAnimSet(IPlayer ped, uint clipSet, uint unkVariableClipSet); - void SetTaskMoveNetworkAnimSet(int ped, uint clipSet, uint unkVariableClipSet); + void SetTaskMoveNetworkAnimSet(uint ped, uint clipSet, uint unkVariableClipSet); /// /// Example: TASK::SET_TASK_MOVE_NETWORK_SIGNAL_FLOAT(PLAYER::PLAYER_PED_ID(), "Phase", 0.5); /// @@ -21230,19 +21217,19 @@ public unsafe interface INatives /// /// - "Phase", "Wobble", "x_axis","y_axis","introphase","speed". /// - From what i can see it goes up to 1f (maybe). - void SetTaskMoveNetworkSignalFloat(int ped, string signalName, float value); + void SetTaskMoveNetworkSignalFloat(uint ped, string signalName, float value); void SetTaskMoveNetworkSignalLocalFloat(IPlayer ped, string signalName, float value); - void SetTaskMoveNetworkSignalLocalFloat(int ped, string signalName, float value); + void SetTaskMoveNetworkSignalLocalFloat(uint ped, string signalName, float value); void SetTaskMoveNetworkSignalFloatLerpRate(IPlayer ped, string signalName, float value); - void SetTaskMoveNetworkSignalFloatLerpRate(int ped, string signalName, float value); + void SetTaskMoveNetworkSignalFloatLerpRate(uint ped, string signalName, float value); void SetTaskMoveNetworkSignalBool(IPlayer ped, string signalName, bool value); - void SetTaskMoveNetworkSignalBool(int ped, string signalName, bool value); + void SetTaskMoveNetworkSignalBool(uint ped, string signalName, bool value); float GetTaskMoveNetworkSignalFloat(IPlayer ped, string signalName); - float GetTaskMoveNetworkSignalFloat(int ped, string signalName); + float GetTaskMoveNetworkSignalFloat(uint ped, string signalName); bool GetTaskMoveNetworkSignalBool(IPlayer ped, string signalName); - bool GetTaskMoveNetworkSignalBool(int ped, string signalName); + bool GetTaskMoveNetworkSignalBool(uint ped, string signalName); bool GetTaskMoveNetworkEvent(IPlayer ped, string eventName); - bool GetTaskMoveNetworkEvent(int ped, string eventName); + bool GetTaskMoveNetworkEvent(uint ped, string eventName); /// /// /// Doesn't actually return anything. @@ -21250,23 +21237,23 @@ public unsafe interface INatives /// /// /// Doesn't actually return anything. - bool SetTaskMoveNetworkEnableCollisionOnNetworkCloneWhenFixed(int ped, bool enable); + bool SetTaskMoveNetworkEnableCollisionOnNetworkCloneWhenFixed(uint ped, bool enable); bool IsMoveBlendRatioStill(IPlayer ped); - bool IsMoveBlendRatioStill(int ped); + bool IsMoveBlendRatioStill(uint ped); bool IsMoveBlendRatioWalking(IPlayer ped); - bool IsMoveBlendRatioWalking(int ped); + bool IsMoveBlendRatioWalking(uint ped); bool IsMoveBlendRatioRunning(IPlayer ped); - bool IsMoveBlendRatioRunning(int ped); + bool IsMoveBlendRatioRunning(uint ped); bool IsMoveBlendRatioSprinting(IPlayer ped); - bool IsMoveBlendRatioSprinting(int ped); + bool IsMoveBlendRatioSprinting(uint ped); bool IsPedStill(IPlayer ped); - bool IsPedStill(int ped); + bool IsPedStill(uint ped); bool IsPedWalking(IPlayer ped); - bool IsPedWalking(int ped); + bool IsPedWalking(uint ped); bool IsPedRunning(IPlayer ped); - bool IsPedRunning(int ped); + bool IsPedRunning(uint ped); bool IsPedSprinting(IPlayer ped); - bool IsPedSprinting(int ped); + bool IsPedSprinting(uint ped); /// /// What's strafing? /// @@ -21274,7 +21261,7 @@ public unsafe interface INatives /// /// What's strafing? /// - bool IsPedStrafing(int ped); + bool IsPedStrafing(uint ped); /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// @@ -21282,25 +21269,25 @@ public unsafe interface INatives /// /// Full list of animation dictionaries and anims by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/animDictsCompact.json /// - void TaskSynchronizedScene(int ped, int scene, string animDictionary, string animationName, float blendIn, float blendOut, int flags, int ragdollBlockingFlags, float moverBlendDelta, int ikFlags); - void TaskAgitatedActionConfrontResponse(IPlayer ped, int ped2); - void TaskAgitatedActionConfrontResponse(int ped, IPlayer ped2); + void TaskSynchronizedScene(uint ped, int scene, string animDictionary, string animationName, float blendIn, float blendOut, int flags, int ragdollBlockingFlags, float moverBlendDelta, int ikFlags); + void TaskAgitatedActionConfrontResponse(IPlayer ped, uint ped2); + void TaskAgitatedActionConfrontResponse(uint ped, IPlayer ped2); void TaskAgitatedActionConfrontResponse(IPlayer ped, IPlayer ped2); - void TaskAgitatedActionConfrontResponse(int ped, int ped2); + void TaskAgitatedActionConfrontResponse(uint ped, uint ped2); /// /// This function is called on peds in vehicles. /// anim: animation name /// p2, p3, p4: "sweep_low", "sweep_med" or "sweep_high" /// /// no idea what it does but is usually -1 - void TaskSweepAimEntity(IPlayer ped, string animDict, string lowAnimName, string medAnimName, string hiAnimName, int runtime, int targetEntity, float turnRate, float blendInDuration); + void TaskSweepAimEntity(IPlayer ped, string animDict, string lowAnimName, string medAnimName, string hiAnimName, int runtime, uint targetEntity, float turnRate, float blendInDuration); /// /// This function is called on peds in vehicles. /// anim: animation name /// p2, p3, p4: "sweep_low", "sweep_med" or "sweep_high" /// /// no idea what it does but is usually -1 - void TaskSweepAimEntity(int ped, string animDict, string lowAnimName, string medAnimName, string hiAnimName, int runtime, IEntity targetEntity, float turnRate, float blendInDuration); + void TaskSweepAimEntity(uint ped, string animDict, string lowAnimName, string medAnimName, string hiAnimName, int runtime, IEntity targetEntity, float turnRate, float blendInDuration); /// /// This function is called on peds in vehicles. /// anim: animation name @@ -21314,15 +21301,15 @@ public unsafe interface INatives /// p2, p3, p4: "sweep_low", "sweep_med" or "sweep_high" /// /// no idea what it does but is usually -1 - void TaskSweepAimEntity(int ped, string animDict, string lowAnimName, string medAnimName, string hiAnimName, int runtime, int targetEntity, float turnRate, float blendInDuration); - void UpdateTaskSweepAimEntity(IPlayer ped, int entity); - void UpdateTaskSweepAimEntity(int ped, IEntity entity); + void TaskSweepAimEntity(uint ped, string animDict, string lowAnimName, string medAnimName, string hiAnimName, int runtime, uint targetEntity, float turnRate, float blendInDuration); + void UpdateTaskSweepAimEntity(IPlayer ped, uint entity); + void UpdateTaskSweepAimEntity(uint ped, IEntity entity); void UpdateTaskSweepAimEntity(IPlayer ped, IEntity entity); - void UpdateTaskSweepAimEntity(int ped, int entity); + void UpdateTaskSweepAimEntity(uint ped, uint entity); void TaskSweepAimPosition(IPlayer ped, string animDict, string lowAnimName, string medAnimName, string hiAnimName, int runtime, float x, float y, float z, float turnRate, float blendInDuration); - void TaskSweepAimPosition(int ped, string animDict, string lowAnimName, string medAnimName, string hiAnimName, int runtime, float x, float y, float z, float turnRate, float blendInDuration); + void TaskSweepAimPosition(uint ped, string animDict, string lowAnimName, string medAnimName, string hiAnimName, int runtime, float x, float y, float z, float turnRate, float blendInDuration); void UpdateTaskSweepAimPosition(IPlayer ped, float x, float y, float z); - void UpdateTaskSweepAimPosition(int ped, float x, float y, float z); + void UpdateTaskSweepAimPosition(uint ped, float x, float y, float z); /// /// Example from "me_amanda1.ysc.c4": /// TASK::TASK_ARREST_PED(l_19F This is a Ped , PLAYER::PLAYER_PED_ID()); @@ -21333,7 +21320,7 @@ public unsafe interface INatives /// I would love to have time to experiment to see if a player Ped can arrest another Ped. Might make for a good cop mod. /// Looks like only the player can be arrested this way. Peds react and try to arrest you if you task them, but the player charater doesn't do anything if tasked to arrest another ped. /// - void TaskArrestPed(IPlayer ped, int target); + void TaskArrestPed(IPlayer ped, uint target); /// /// Example from "me_amanda1.ysc.c4": /// TASK::TASK_ARREST_PED(l_19F This is a Ped , PLAYER::PLAYER_PED_ID()); @@ -21344,7 +21331,7 @@ public unsafe interface INatives /// I would love to have time to experiment to see if a player Ped can arrest another Ped. Might make for a good cop mod. /// Looks like only the player can be arrested this way. Peds react and try to arrest you if you task them, but the player charater doesn't do anything if tasked to arrest another ped. /// - void TaskArrestPed(int ped, IPlayer target); + void TaskArrestPed(uint ped, IPlayer target); /// /// Example from "me_amanda1.ysc.c4": /// TASK::TASK_ARREST_PED(l_19F This is a Ped , PLAYER::PLAYER_PED_ID()); @@ -21366,9 +21353,9 @@ public unsafe interface INatives /// I would love to have time to experiment to see if a player Ped can arrest another Ped. Might make for a good cop mod. /// Looks like only the player can be arrested this way. Peds react and try to arrest you if you task them, but the player charater doesn't do anything if tasked to arrest another ped. /// - void TaskArrestPed(int ped, int target); + void TaskArrestPed(uint ped, uint target); bool IsPedRunningArrestTask(IPlayer ped); - bool IsPedRunningArrestTask(int ped); + bool IsPedRunningArrestTask(uint ped); /// /// /// This function is hard-coded to always return 0. @@ -21376,16 +21363,16 @@ public unsafe interface INatives /// /// /// This function is hard-coded to always return 0. - bool IsPedBeingArrested(int ped); + bool IsPedBeingArrested(uint ped); void UncuffPed(IPlayer ped); - void UncuffPed(int ped); + void UncuffPed(uint ped); bool IsPedCuffed(IPlayer ped); - bool IsPedCuffed(int ped); + bool IsPedCuffed(uint ped); /// /// Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json /// /// when set to true allows you to spawn vehicles under -100 z. - int CreateVehicle(uint modelHash, float x, float y, float z, float heading, bool isNetwork, bool bScriptHostVeh, bool p7); + uint CreateVehicle(uint modelHash, float x, float y, float z, float heading, bool isNetwork, bool bScriptHostVeh, bool p7); /// /// Deletes a vehicle. /// eg how to use: @@ -21394,11 +21381,11 @@ public unsafe interface INatives /// Deletes the specified vehicle, then sets the handle pointed to by the pointer to NULL. /// /// SET_ENTITY_AS_MISSION_ENTITY(vehicle, true, true); - void DeleteVehicle(ref int vehicle); + void DeleteVehicle(ref uint vehicle); void SetVehicleAllowHomingMissleLockon(IVehicle vehicle, bool toggle, bool p2); - void SetVehicleAllowHomingMissleLockon(int vehicle, bool toggle, bool p2); + void SetVehicleAllowHomingMissleLockon(uint vehicle, bool toggle, bool p2); void SetVehicleAllowHomingMissleLockonSynced(IVehicle vehicle, bool canBeLockedOn, bool p2); - void SetVehicleAllowHomingMissleLockonSynced(int vehicle, bool canBeLockedOn, bool p2); + void SetVehicleAllowHomingMissleLockonSynced(uint vehicle, bool canBeLockedOn, bool p2); /// /// Makes the vehicle accept no passengers. /// @@ -21406,7 +21393,7 @@ public unsafe interface INatives /// /// Makes the vehicle accept no passengers. /// - void SetVehicleAllowNoPassengersLockon(int veh, bool toggle); + void SetVehicleAllowNoPassengersLockon(uint veh, bool toggle); /// /// Returns a value depending on the lock-on state of vehicle weapons. /// 0: not locked on @@ -21420,11 +21407,11 @@ public unsafe interface INatives /// 1: locking on /// 2: locked on /// - int GetVehicleHomingLockonState(int vehicle); + int GetVehicleHomingLockonState(uint vehicle); int GetVehicleHomingLockedontoState(int p0); void SetVehicleHomingLockedontoState(int p0, int p1); bool IsVehicleModel(IVehicle vehicle, uint model); - bool IsVehicleModel(int vehicle, uint model); + bool IsVehicleModel(uint vehicle, uint model); bool DoesScriptVehicleGeneratorExist(int vehicleGenerator); /// /// Creates a script vehicle generator at the given coordinates. Most parameters after the model hash are unknown. @@ -21470,15 +21457,15 @@ public unsafe interface INatives /// /// This has an additional param(Vehicle vehicle, float p1) which is always set to 5.0f in the b944 scripts. /// Sets a vehicle on the ground on all wheels. Returns whether or not the operation was successful. - bool SetVehicleOnGroundProperly(int vehicle, float p1); + bool SetVehicleOnGroundProperly(uint vehicle, float p1); bool SetVehicleUseCutsceneWheelCompression(IVehicle p0, bool p1, bool p2, bool p3); - bool SetVehicleUseCutsceneWheelCompression(int p0, bool p1, bool p2, bool p3); + bool SetVehicleUseCutsceneWheelCompression(uint p0, bool p1, bool p2, bool p3); bool IsVehicleStuckOnRoof(IVehicle vehicle); - bool IsVehicleStuckOnRoof(int vehicle); + bool IsVehicleStuckOnRoof(uint vehicle); void AddVehicleUpsidedownCheck(IVehicle vehicle); - void AddVehicleUpsidedownCheck(int vehicle); + void AddVehicleUpsidedownCheck(uint vehicle); void RemoveVehicleUpsidedownCheck(IVehicle vehicle); - void RemoveVehicleUpsidedownCheck(int vehicle); + void RemoveVehicleUpsidedownCheck(uint vehicle); /// /// Returns true if the vehicle's current speed is less than, or equal to 0.0025f. /// @@ -21488,7 +21475,7 @@ public unsafe interface INatives /// Returns true if the vehicle's current speed is less than, or equal to 0.0025f. /// /// For some vehicles it returns true if the current speed is <= 0.00039999999. - bool IsVehicleStopped(int vehicle); + bool IsVehicleStopped(uint vehicle); /// /// Gets the number of passengers. /// This native was modified in b2545 to take two additional parameters, allowing you to include the driver or exclude dead passengers. @@ -21500,18 +21487,18 @@ public unsafe interface INatives /// This native was modified in b2545 to take two additional parameters, allowing you to include the driver or exclude dead passengers. /// To keep it working like before b2545, set includeDriver to false and includeDeadOccupants to true. /// - int GetVehicleNumberOfPassengers(int vehicle, bool includeDriver, bool includeDeadOccupants); + int GetVehicleNumberOfPassengers(uint vehicle, bool includeDriver, bool includeDeadOccupants); int GetVehicleMaxNumberOfPassengers(IVehicle vehicle); - int GetVehicleMaxNumberOfPassengers(int vehicle); + int GetVehicleMaxNumberOfPassengers(uint vehicle); /// /// Returns max number of passengers (including the driver) for the specified vehicle model. /// Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json /// int GetVehicleModelNumberOfSeats(uint modelHash); bool IsSeatWarpOnly(IVehicle vehicle, int seatIndex); - bool IsSeatWarpOnly(int vehicle, int seatIndex); + bool IsSeatWarpOnly(uint vehicle, int seatIndex); bool IsTurretSeat(IVehicle vehicle, int seatIndex); - bool IsTurretSeat(int vehicle, int seatIndex); + bool IsTurretSeat(uint vehicle, int seatIndex); /// /// Returns true if the vehicle has the FLAG_ALLOWS_RAPPEL flag set. /// @@ -21519,7 +21506,7 @@ public unsafe interface INatives /// /// Returns true if the vehicle has the FLAG_ALLOWS_RAPPEL flag set. /// - bool DoesVehicleAllowRappel(int vehicle); + bool DoesVehicleAllowRappel(uint vehicle); /// /// Use this native inside a looped function. /// Values: @@ -21558,7 +21545,7 @@ public unsafe interface INatives /// VEHICLELOCK_FORCE_SHUT_DOORS, /// See NativeDB for reference: http://natives.altv.mp/#/0xB664292EAECF7FA6 /// - void SetVehicleDoorsLocked(int vehicle, int doorLockStatus); + void SetVehicleDoorsLocked(uint vehicle, int doorLockStatus); /// /// /// see SET_VEHICLE_DOOR_SHUT @@ -21566,7 +21553,7 @@ public unsafe interface INatives /// /// /// see SET_VEHICLE_DOOR_SHUT - void SetVehicleIndividualDoorsLocked(int vehicle, int doorId, int doorLockStatus); + void SetVehicleIndividualDoorsLocked(uint vehicle, int doorId, int doorLockStatus); /// /// If set to true, prevents vehicle sirens from having sound, leaving only the lights. /// @@ -21574,15 +21561,15 @@ public unsafe interface INatives /// /// If set to true, prevents vehicle sirens from having sound, leaving only the lights. /// - void SetVehicleHasMutedSirens(int vehicle, bool toggle); - void SetVehicleDoorsLockedForPlayer(IVehicle vehicle, int player, bool toggle); - void SetVehicleDoorsLockedForPlayer(int vehicle, IPlayer player, bool toggle); + void SetVehicleHasMutedSirens(uint vehicle, bool toggle); + void SetVehicleDoorsLockedForPlayer(IVehicle vehicle, uint player, bool toggle); + void SetVehicleDoorsLockedForPlayer(uint vehicle, IPlayer player, bool toggle); void SetVehicleDoorsLockedForPlayer(IVehicle vehicle, IPlayer player, bool toggle); - void SetVehicleDoorsLockedForPlayer(int vehicle, int player, bool toggle); - bool GetVehicleDoorsLockedForPlayer(IVehicle vehicle, int player); - bool GetVehicleDoorsLockedForPlayer(int vehicle, IPlayer player); + void SetVehicleDoorsLockedForPlayer(uint vehicle, uint player, bool toggle); + bool GetVehicleDoorsLockedForPlayer(IVehicle vehicle, uint player); + bool GetVehicleDoorsLockedForPlayer(uint vehicle, IPlayer player); bool GetVehicleDoorsLockedForPlayer(IVehicle vehicle, IPlayer player); - bool GetVehicleDoorsLockedForPlayer(int vehicle, int player); + bool GetVehicleDoorsLockedForPlayer(uint vehicle, uint player); /// /// After some analysis, I've decided that these are what the parameters are. /// We can see this being used in R* scripts such as "am_mp_property_int.ysc.c4": @@ -21598,15 +21585,15 @@ public unsafe interface INatives /// ... /// /// :SET_VEHICLE_DOORS_LOCKED_FOR_ALL_PLAYERS(l_11A1, 1); - void SetVehicleDoorsLockedForAllPlayers(int vehicle, bool toggle); + void SetVehicleDoorsLockedForAllPlayers(uint vehicle, bool toggle); void SetVehicleDoorsLockedForNonScriptPlayers(IVehicle vehicle, bool toggle); - void SetVehicleDoorsLockedForNonScriptPlayers(int vehicle, bool toggle); + void SetVehicleDoorsLockedForNonScriptPlayers(uint vehicle, bool toggle); void SetVehicleDoorsLockedForTeam(IVehicle vehicle, int team, bool toggle); - void SetVehicleDoorsLockedForTeam(int vehicle, int team, bool toggle); + void SetVehicleDoorsLockedForTeam(uint vehicle, int team, bool toggle); void SetVehicleDoorsLockedForAllTeams(IVehicle vehicle, bool toggle); - void SetVehicleDoorsLockedForAllTeams(int vehicle, bool toggle); + void SetVehicleDoorsLockedForAllTeams(uint vehicle, bool toggle); void SetVehicleDontTerminateTaskWhenAchieved(IVehicle vehicle); - void SetVehicleDontTerminateTaskWhenAchieved(int vehicle); + void SetVehicleDontTerminateTaskWhenAchieved(uint vehicle); /// /// Explodes a selected vehicle. /// BOOL isAudible = If explosion makes a sound. @@ -21622,7 +21609,7 @@ public unsafe interface INatives /// First BOOL does not give any visual explosion, the vehicle just falls apart completely but slowly and starts to burn. /// /// vehicle = Vehicle you want to explode. - void ExplodeVehicle(int vehicle, bool isAudible, bool isInvisible); + void ExplodeVehicle(uint vehicle, bool isAudible, bool isInvisible); /// /// Tested on the player's current vehicle. Unless you kill the driver, the vehicle doesn't loose control, however, if enabled, explodeOnImpact is still active. The moment you crash, boom. /// @@ -21630,13 +21617,13 @@ public unsafe interface INatives /// /// Tested on the player's current vehicle. Unless you kill the driver, the vehicle doesn't loose control, however, if enabled, explodeOnImpact is still active. The moment you crash, boom. /// - void SetVehicleOutOfControl(int vehicle, bool killDriver, bool explodeOnImpact); - void SetVehicleTimedExplosion(IVehicle vehicle, int ped, bool toggle); - void SetVehicleTimedExplosion(int vehicle, IPlayer ped, bool toggle); + void SetVehicleOutOfControl(uint vehicle, bool killDriver, bool explodeOnImpact); + void SetVehicleTimedExplosion(IVehicle vehicle, uint ped, bool toggle); + void SetVehicleTimedExplosion(uint vehicle, IPlayer ped, bool toggle); void SetVehicleTimedExplosion(IVehicle vehicle, IPlayer ped, bool toggle); - void SetVehicleTimedExplosion(int vehicle, int ped, bool toggle); + void SetVehicleTimedExplosion(uint vehicle, uint ped, bool toggle); void AddVehiclePhoneExplosiveDevice(IVehicle vehicle); - void AddVehiclePhoneExplosiveDevice(int vehicle); + void AddVehiclePhoneExplosiveDevice(uint vehicle); void ClearVehiclePhoneExplosiveDevice(); bool HasVehiclePhoneExplosiveDevice(); void DetonateVehiclePhoneExplosiveDevice(); @@ -21659,9 +21646,9 @@ public unsafe interface INatives /// VEHICLE::SET_TAXI_LIGHTS(l_115, 1); /// } /// - void SetTaxiLights(int vehicle, bool state); + void SetTaxiLights(uint vehicle, bool state); bool IsTaxiLightOn(IVehicle vehicle); - bool IsTaxiLightOn(int vehicle); + bool IsTaxiLightOn(uint vehicle); /// /// Full list of garages by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/garages.json /// @@ -21671,7 +21658,7 @@ public unsafe interface INatives /// Full list of garages by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/garages.json /// /// example "Michael - Beverly Hills" - bool IsVehicleInGarageArea(string garageName, int vehicle); + bool IsVehicleInGarageArea(string garageName, uint vehicle); /// /// For a list of valid paint indexes, view: https://pastebin.com/pwHci0xK /// ------------------------------------------------------------------------- @@ -21687,7 +21674,7 @@ public unsafe interface INatives /// Full list of vehicle colors by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json /// /// & colorSecondary are the paint index for the vehicle. - void SetVehicleColours(int vehicle, int colorPrimary, int colorSecondary); + void SetVehicleColours(uint vehicle, int colorPrimary, int colorSecondary); /// /// It switch to highbeam when p1 is set to true. /// @@ -21695,7 +21682,7 @@ public unsafe interface INatives /// /// It switch to highbeam when p1 is set to true. /// - void SetVehicleFullbeam(int vehicle, bool toggle); + void SetVehicleFullbeam(uint vehicle, bool toggle); /// /// /// (toggle) was always 1 (true) except in one case in the b678 scripts. @@ -21703,7 +21690,7 @@ public unsafe interface INatives /// /// /// (toggle) was always 1 (true) except in one case in the b678 scripts. - void SetVehicleIsRacing(int vehicle, bool toggle); + void SetVehicleIsRacing(uint vehicle, bool toggle); /// /// p1, p2, p3 are RGB values for color (255,0,0 for Red, ect) /// @@ -21711,17 +21698,17 @@ public unsafe interface INatives /// /// p1, p2, p3 are RGB values for color (255,0,0 for Red, ect) /// - void SetVehicleCustomPrimaryColour(int vehicle, int r, int g, int b); + void SetVehicleCustomPrimaryColour(uint vehicle, int r, int g, int b); /// /// void GetVehicleCustomPrimaryColour(IVehicle vehicle, ref int r, ref int g, ref int b); /// /// - void GetVehicleCustomPrimaryColour(int vehicle, ref int r, ref int g, ref int b); + void GetVehicleCustomPrimaryColour(uint vehicle, ref int r, ref int g, ref int b); void ClearVehicleCustomPrimaryColour(IVehicle vehicle); - void ClearVehicleCustomPrimaryColour(int vehicle); + void ClearVehicleCustomPrimaryColour(uint vehicle); bool GetIsVehiclePrimaryColourCustom(IVehicle vehicle); - bool GetIsVehiclePrimaryColourCustom(int vehicle); + bool GetIsVehiclePrimaryColourCustom(uint vehicle); /// /// p1, p2, p3 are RGB values for color (255,0,0 for Red, ect) /// @@ -21729,15 +21716,15 @@ public unsafe interface INatives /// /// p1, p2, p3 are RGB values for color (255,0,0 for Red, ect) /// - void SetVehicleCustomSecondaryColour(int vehicle, int r, int g, int b); + void SetVehicleCustomSecondaryColour(uint vehicle, int r, int g, int b); /// /// void GetVehicleCustomSecondaryColour(IVehicle vehicle, ref int r, ref int g, ref int b); /// /// - void GetVehicleCustomSecondaryColour(int vehicle, ref int r, ref int g, ref int b); + void GetVehicleCustomSecondaryColour(uint vehicle, ref int r, ref int g, ref int b); void ClearVehicleCustomSecondaryColour(IVehicle vehicle); - void ClearVehicleCustomSecondaryColour(int vehicle); + void ClearVehicleCustomSecondaryColour(uint vehicle); /// /// Check if Vehicle Secondary is avaliable for customize /// @@ -21745,7 +21732,7 @@ public unsafe interface INatives /// /// Check if Vehicle Secondary is avaliable for customize /// - bool GetIsVehicleSecondaryColourCustom(int vehicle); + bool GetIsVehicleSecondaryColourCustom(uint vehicle); /// /// The parameter fade is a value from 0-1, where 0 is fresh paint. /// @@ -21753,7 +21740,7 @@ public unsafe interface INatives /// /// The parameter fade is a value from 0-1, where 0 is fresh paint. /// - void SetVehicleEnveffScale(int vehicle, float fade); + void SetVehicleEnveffScale(uint vehicle, float fade); /// /// The result is a value from 0-1, where 0 is fresh paint. /// @@ -21761,7 +21748,7 @@ public unsafe interface INatives /// /// The result is a value from 0-1, where 0 is fresh paint. /// - float GetVehicleEnveffScale(int vehicle); + float GetVehicleEnveffScale(uint vehicle); /// /// Hardcoded to not work in multiplayer. /// @@ -21769,7 +21756,7 @@ public unsafe interface INatives /// /// Hardcoded to not work in multiplayer. /// - void SetCanResprayVehicle(int vehicle, bool state); + void SetCanResprayVehicle(uint vehicle, bool state); /// /// Used for GTAO CEO/Associate spawned vehicles. /// @@ -21777,27 +21764,27 @@ public unsafe interface INatives /// /// Used for GTAO CEO/Associate spawned vehicles. /// - void SetGoonBossVehicle(int vehicle, bool toggle); + void SetGoonBossVehicle(uint vehicle, bool toggle); void SetOpenRearDoorsOnExplosion(IVehicle vehicle, bool toggle); - void SetOpenRearDoorsOnExplosion(int vehicle, bool toggle); + void SetOpenRearDoorsOnExplosion(uint vehicle, bool toggle); void ForceSubmarineSurfaceMode(IVehicle vehicle, bool toggle); - void ForceSubmarineSurfaceMode(int vehicle, bool toggle); + void ForceSubmarineSurfaceMode(uint vehicle, bool toggle); void ForceSubmarineNeurtalBuoyancy(int p0, int p1); void SetSubmarineCrushDepths(IVehicle vehicle, bool p1, float depth1, float depth2, float depth3); - void SetSubmarineCrushDepths(int vehicle, bool p1, float depth1, float depth2, float depth3); + void SetSubmarineCrushDepths(uint vehicle, bool p1, float depth1, float depth2, float depth3); bool GetSubmarineIsUnderDesignDepth(IVehicle submarine); - bool GetSubmarineIsUnderDesignDepth(int submarine); + bool GetSubmarineIsUnderDesignDepth(uint submarine); int GetSubmarineNumberOfAirLeaks(IVehicle submarine); - int GetSubmarineNumberOfAirLeaks(int submarine); + int GetSubmarineNumberOfAirLeaks(uint submarine); void SetBoatIgnoreLandProbes(int p0, int p1); void SetBoatAnchor(IVehicle vehicle, bool toggle); - void SetBoatAnchor(int vehicle, bool toggle); + void SetBoatAnchor(uint vehicle, bool toggle); bool CanAnchorBoatHere(IVehicle vehicle); - bool CanAnchorBoatHere(int vehicle); + bool CanAnchorBoatHere(uint vehicle); bool CanAnchorBoatHereIgnorePlayers(IVehicle vehicle); - bool CanAnchorBoatHereIgnorePlayers(int vehicle); + bool CanAnchorBoatHereIgnorePlayers(uint vehicle); void SetBoatRemainsAnchoredWhilePlayerIsDriver(IVehicle vehicle, bool toggle); - void SetBoatRemainsAnchoredWhilePlayerIsDriver(int vehicle, bool toggle); + void SetBoatRemainsAnchoredWhilePlayerIsDriver(uint vehicle, bool toggle); /// /// No observed effect. /// @@ -21805,15 +21792,15 @@ public unsafe interface INatives /// /// No observed effect. /// - void SetForceLowLodAnchorMode(int vehicle, bool p1); + void SetForceLowLodAnchorMode(uint vehicle, bool p1); void SetBoatLowLodAnchorDistance(IVehicle vehicle, float value); - void SetBoatLowLodAnchorDistance(int vehicle, float value); + void SetBoatLowLodAnchorDistance(uint vehicle, float value); bool IsBoatAnchored(IVehicle vehicle); - bool IsBoatAnchored(int vehicle); + bool IsBoatAnchored(uint vehicle); void SetBoatSinksWhenWrecked(IVehicle vehicle, bool toggle); - void SetBoatSinksWhenWrecked(int vehicle, bool toggle); + void SetBoatSinksWhenWrecked(uint vehicle, bool toggle); void SetBoatWrecked(IVehicle vehicle); - void SetBoatWrecked(int vehicle); + void SetBoatWrecked(uint vehicle); /// /// Activate siren on vehicle (Only works if the vehicle has a siren). /// @@ -21821,11 +21808,11 @@ public unsafe interface INatives /// /// Activate siren on vehicle (Only works if the vehicle has a siren). /// - void SetVehicleSiren(int vehicle, bool toggle); + void SetVehicleSiren(uint vehicle, bool toggle); bool IsVehicleSirenOn(IVehicle vehicle); - bool IsVehicleSirenOn(int vehicle); + bool IsVehicleSirenOn(uint vehicle); bool IsVehicleSirenAudioOn(IVehicle vehicle); - bool IsVehicleSirenAudioOn(int vehicle); + bool IsVehicleSirenAudioOn(uint vehicle); /// /// If set to true, vehicle will not take crash damage, but is still susceptible to damage from bullets and explosives /// @@ -21833,15 +21820,15 @@ public unsafe interface INatives /// /// If set to true, vehicle will not take crash damage, but is still susceptible to damage from bullets and explosives /// - void SetVehicleStrong(int vehicle, bool toggle); + void SetVehicleStrong(uint vehicle, bool toggle); void RemoveVehicleStuckCheck(IVehicle vehicle); - void RemoveVehicleStuckCheck(int vehicle); + void RemoveVehicleStuckCheck(uint vehicle); /// /// void GetVehicleColours(IVehicle vehicle, ref int colorPrimary, ref int colorSecondary); /// /// - void GetVehicleColours(int vehicle, ref int colorPrimary, ref int colorSecondary); + void GetVehicleColours(uint vehicle, ref int colorPrimary, ref int colorSecondary); /// /// Check if a vehicle seat is free. /// Use GET_VEHICLE_MAX_NUMBER_OF_PASSENGERS(vehicle) - 1 for last seat index. @@ -21859,7 +21846,7 @@ public unsafe interface INatives /// = -1 being the driver seat. /// = on true the function returns already false while a task on the target seat is running (TASK_ENTER_VEHICLE/TASK_SHUFFLE_TO_NEXT_VEHICLE_SEAT) - on false only when a ped is finally sitting in the seat. /// isTaskRunning = on true the function returns already false while a task on the target seat is running (TASK_ENTER_VEHICLE/TASK_SHUFFLE_TO_NEXT_VEHICLE_SEAT) - on false only when a ped is finally sitting in the seat. - bool IsVehicleSeatFree(int vehicle, int seatIndex, bool isTaskRunning); + bool IsVehicleSeatFree(uint vehicle, int seatIndex, bool isTaskRunning); /// /// If there is no ped in the seat, and the game considers the vehicle as ambient population, this will create a random occupant ped in the seat, which may be cleaned up by the game fairly soon if not marked as script-owned mission entity. /// Seat indexes: @@ -21872,7 +21859,7 @@ public unsafe interface INatives /// etc. /// If p2 is true it uses a different GetOccupant function. /// - int GetPedInVehicleSeat(IVehicle vehicle, int seatIndex, bool p2); + uint GetPedInVehicleSeat(IVehicle vehicle, int seatIndex, bool p2); /// /// If there is no ped in the seat, and the game considers the vehicle as ambient population, this will create a random occupant ped in the seat, which may be cleaned up by the game fairly soon if not marked as script-owned mission entity. /// Seat indexes: @@ -21885,15 +21872,15 @@ public unsafe interface INatives /// etc. /// If p2 is true it uses a different GetOccupant function. /// - int GetPedInVehicleSeat(int vehicle, int seatIndex, bool p2); - int GetLastPedInVehicleSeat(IVehicle vehicle, int seatIndex); - int GetLastPedInVehicleSeat(int vehicle, int seatIndex); + uint GetPedInVehicleSeat(uint vehicle, int seatIndex, bool p2); + uint GetLastPedInVehicleSeat(IVehicle vehicle, int seatIndex); + uint GetLastPedInVehicleSeat(uint vehicle, int seatIndex); /// /// bool GetVehicleLightsState(IVehicle vehicle, ref bool lightsOn, ref bool highbeamsOn); /// /// - bool GetVehicleLightsState(int vehicle, ref bool lightsOn, ref bool highbeamsOn); + bool GetVehicleLightsState(uint vehicle, ref bool lightsOn, ref bool highbeamsOn); /// /// '0 = wheel_lf / bike, plane or jet front /// '1 = wheel_rf @@ -21919,7 +21906,7 @@ public unsafe interface INatives /// /// used for 4 wheelers seem to be (0, 1, 4, 5) /// - is to check if tire completely gone from rim. - bool IsVehicleTyreBurst(int vehicle, int wheelID, bool completely); + bool IsVehicleTyreBurst(uint vehicle, int wheelID, bool completely); /// /// SCALE: Setting the speed to 30 would result in a speed of roughly 60mph, according to speedometer. /// You can convert meters/s to mph here: @@ -21933,7 +21920,7 @@ public unsafe interface INatives /// http://www.calculateme.com/Speed/MetersperSecond/ToMilesperHour.htm /// /// is in meters per second - void SetVehicleForwardSpeed(int vehicle, float speed); + void SetVehicleForwardSpeed(uint vehicle, float speed); /// /// Seems to be identical to SET_VEHICLE_FORWARD_SPEED /// @@ -21941,7 +21928,7 @@ public unsafe interface INatives /// /// Seems to be identical to SET_VEHICLE_FORWARD_SPEED /// - void SetVehicleForwardSpeedXy(int vehicle, float speed); + void SetVehicleForwardSpeedXy(uint vehicle, float speed); /// /// This native makes the vehicle stop immediately, as happens when we enter a MP garage. /// . distance defines how far it will travel until stopping. Garage doors use 3.0. @@ -21953,11 +21940,11 @@ public unsafe interface INatives /// . distance defines how far it will travel until stopping. Garage doors use 3.0. /// . If killEngine is set to 1, you cannot resume driving the vehicle once it stops. This looks like is a bitmapped integer. /// - void BringVehicleToHalt(int vehicle, float distance, int duration, bool p3); + void BringVehicleToHalt(uint vehicle, float distance, int duration, bool p3); void SetVehicleSteerForBuildings(IVehicle vehicle, int p1); - void SetVehicleSteerForBuildings(int vehicle, int p1); + void SetVehicleSteerForBuildings(uint vehicle, int p1); void SetVehicleCausesSwerving(IVehicle vehicle, bool toggle); - void SetVehicleCausesSwerving(int vehicle, bool toggle); + void SetVehicleCausesSwerving(uint vehicle, bool toggle); void SetIgnorePlanesSmallPitchChange(int p0, int p1); /// /// Stops CTaskBringVehicleToHalt @@ -21966,7 +21953,7 @@ public unsafe interface INatives /// /// Stops CTaskBringVehicleToHalt /// - void StopBringingVehicleToHalt(int vehicle); + void StopBringingVehicleToHalt(uint vehicle); /// /// Returns true if vehicle is halted by BRING_VEHICLE_TO_HALT /// @@ -21974,7 +21961,7 @@ public unsafe interface INatives /// /// Returns true if vehicle is halted by BRING_VEHICLE_TO_HALT /// - bool IsVehicleBeingBroughtToHalt(int vehicle); + bool IsVehicleBeingBroughtToHalt(uint vehicle); /// /// 0.0 = Lowest 1.0 = Highest. This is best to be used if you wanna pick-up a car since un-realistically on GTA V forklifts can't pick up much of anything due to vehicle mass. If you put this under a car then set it above 0.0 to a 'lifted-value' it will raise the car with no issue lol /// @@ -21982,39 +21969,39 @@ public unsafe interface INatives /// /// 0.0 = Lowest 1.0 = Highest. This is best to be used if you wanna pick-up a car since un-realistically on GTA V forklifts can't pick up much of anything due to vehicle mass. If you put this under a car then set it above 0.0 to a 'lifted-value' it will raise the car with no issue lol /// - void SetForkliftForkHeight(int vehicle, float height); - bool IsEntityAttachedToHandlerFrame(IVehicle vehicle, int entity); - bool IsEntityAttachedToHandlerFrame(int vehicle, IEntity entity); + void SetForkliftForkHeight(uint vehicle, float height); + bool IsEntityAttachedToHandlerFrame(IVehicle vehicle, uint entity); + bool IsEntityAttachedToHandlerFrame(uint vehicle, IEntity entity); bool IsEntityAttachedToHandlerFrame(IVehicle vehicle, IEntity entity); - bool IsEntityAttachedToHandlerFrame(int vehicle, int entity); + bool IsEntityAttachedToHandlerFrame(uint vehicle, uint entity); bool IsAnyEntityAttachedToHandlerFrame(IVehicle vehicle); - bool IsAnyEntityAttachedToHandlerFrame(int vehicle); + bool IsAnyEntityAttachedToHandlerFrame(uint vehicle); /// /// Finds the vehicle that is carrying this entity with a handler frame. /// /// The model of the entity must be prop_contr_03b_ld or the function will return 0. - int FindHandlerVehicleContainerIsAttachedTo(IEntity entity); + uint FindHandlerVehicleContainerIsAttachedTo(IEntity entity); /// /// Finds the vehicle that is carrying this entity with a handler frame. /// /// The model of the entity must be prop_contr_03b_ld or the function will return 0. - int FindHandlerVehicleContainerIsAttachedTo(int entity); - bool IsHandlerFrameLinedUpWithContainer(IVehicle vehicle, int entity); - bool IsHandlerFrameLinedUpWithContainer(int vehicle, IEntity entity); + uint FindHandlerVehicleContainerIsAttachedTo(uint entity); + bool IsHandlerFrameLinedUpWithContainer(IVehicle vehicle, uint entity); + bool IsHandlerFrameLinedUpWithContainer(uint vehicle, IEntity entity); bool IsHandlerFrameLinedUpWithContainer(IVehicle vehicle, IEntity entity); - bool IsHandlerFrameLinedUpWithContainer(int vehicle, int entity); - void AttachContainerToHandlerFrameWhenLinedUp(IVehicle vehicle, int entity); - void AttachContainerToHandlerFrameWhenLinedUp(int vehicle, IEntity entity); + bool IsHandlerFrameLinedUpWithContainer(uint vehicle, uint entity); + void AttachContainerToHandlerFrameWhenLinedUp(IVehicle vehicle, uint entity); + void AttachContainerToHandlerFrameWhenLinedUp(uint vehicle, IEntity entity); void AttachContainerToHandlerFrameWhenLinedUp(IVehicle vehicle, IEntity entity); - void AttachContainerToHandlerFrameWhenLinedUp(int vehicle, int entity); + void AttachContainerToHandlerFrameWhenLinedUp(uint vehicle, uint entity); void DetachContainerFromHandlerFrame(IVehicle vehicle); - void DetachContainerFromHandlerFrame(int vehicle); + void DetachContainerFromHandlerFrame(uint vehicle); void SetVehicleDisableHeightMapAvoidance(IVehicle vehicle, bool p1); - void SetVehicleDisableHeightMapAvoidance(int vehicle, bool p1); + void SetVehicleDisableHeightMapAvoidance(uint vehicle, bool p1); void SetBoatDisableAvoidance(IVehicle vehicle, bool p1); - void SetBoatDisableAvoidance(int vehicle, bool p1); + void SetBoatDisableAvoidance(uint vehicle, bool p1); bool IsHeliLandingAreaBlocked(IVehicle vehicle); - bool IsHeliLandingAreaBlocked(int vehicle); + bool IsHeliLandingAreaBlocked(uint vehicle); /// /// Used on helicopters and blimps during the CTaskVehicleLand task. Sets a value on the task to 10f /// @@ -22022,9 +22009,9 @@ public unsafe interface INatives /// /// Used on helicopters and blimps during the CTaskVehicleLand task. Sets a value on the task to 10f /// - void SetShortSlowdownForLanding(int vehicle); + void SetShortSlowdownForLanding(uint vehicle); void SetHeliTurbulenceScalar(IVehicle vehicle, float p1); - void SetHeliTurbulenceScalar(int vehicle, float p1); + void SetHeliTurbulenceScalar(uint vehicle, float p1); /// /// Initially used in Max Payne 3, that's why we know the name. /// @@ -22032,7 +22019,7 @@ public unsafe interface INatives /// /// Initially used in Max Payne 3, that's why we know the name. /// - void SetCarBootOpen(int vehicle); + void SetCarBootOpen(uint vehicle); /// /// to burst all tyres type it 8 times where p1 = 0 to 7. /// '0 = wheel_lf / bike, plane or jet front @@ -22058,7 +22045,7 @@ public unsafe interface INatives /// '47 = 6 wheels trailer mid wheel right /// /// seems to be how much damage it has taken. 0 doesn't deflate them, 1000 completely deflates them. - void SetVehicleTyreBurst(int vehicle, int index, bool onRim, float p3); + void SetVehicleTyreBurst(uint vehicle, int index, bool onRim, float p3); /// /// Closes all doors of a vehicle: /// @@ -22066,7 +22053,7 @@ public unsafe interface INatives /// /// Closes all doors of a vehicle: /// - void SetVehicleDoorsShut(int vehicle, bool closeInstantly); + void SetVehicleDoorsShut(uint vehicle, bool closeInstantly); /// /// Allows you to toggle bulletproof tires. /// @@ -22074,11 +22061,11 @@ public unsafe interface INatives /// /// Allows you to toggle bulletproof tires. /// - void SetVehicleTyresCanBurst(int vehicle, bool toggle); + void SetVehicleTyresCanBurst(uint vehicle, bool toggle); bool GetVehicleTyresCanBurst(IVehicle vehicle); - bool GetVehicleTyresCanBurst(int vehicle); + bool GetVehicleTyresCanBurst(uint vehicle); void SetVehicleWheelsCanBreak(IVehicle vehicle, bool enabled); - void SetVehicleWheelsCanBreak(int vehicle, bool enabled); + void SetVehicleWheelsCanBreak(uint vehicle, bool enabled); /// /// /// see SET_VEHICLE_DOOR_SHUT @@ -22086,7 +22073,7 @@ public unsafe interface INatives /// /// /// see SET_VEHICLE_DOOR_SHUT - void SetVehicleDoorOpen(int vehicle, int doorId, bool loose, bool openInstantly); + void SetVehicleDoorOpen(uint vehicle, int doorId, bool loose, bool openInstantly); /// /// Usually used alongside other vehicle door natives. /// @@ -22096,7 +22083,7 @@ public unsafe interface INatives /// Usually used alongside other vehicle door natives. /// /// see SET_VEHICLE_DOOR_SHUT - void SetVehicleDoorAutoLock(int vehicle, int doorId, bool toggle); + void SetVehicleDoorAutoLock(uint vehicle, int doorId, bool toggle); void SetFleeingVehiclesUseSwitchedOffNodes(int p0); /// /// 0 = Front Right Window @@ -22119,7 +22106,7 @@ public unsafe interface INatives /// 6 = Windscreen /// 7 = Rear Windscreen /// - void RemoveVehicleWindow(int vehicle, int windowIndex); + void RemoveVehicleWindow(uint vehicle, int windowIndex); /// /// Roll down all the windows of the vehicle passed through the first parameter. /// @@ -22127,7 +22114,7 @@ public unsafe interface INatives /// /// Roll down all the windows of the vehicle passed through the first parameter. /// - void RollDownWindows(int vehicle); + void RollDownWindows(uint vehicle); /// /// 0 = Front Left Window /// 1 = Front Right Window @@ -22151,7 +22138,7 @@ public unsafe interface INatives /// 7 = Mid Right /// 8 = Invalid /// - void RollDownWindow(int vehicle, int windowIndex); + void RollDownWindow(uint vehicle, int windowIndex); /// /// 0 = Front Left Window /// 1 = Front Right Window @@ -22175,7 +22162,7 @@ public unsafe interface INatives /// 7 = Mid Right /// 8 = Invalid /// - void RollUpWindow(int vehicle, int windowIndex); + void RollUpWindow(uint vehicle, int windowIndex); /// /// 0 = Front Left Window /// 1 = Front Right Window @@ -22199,7 +22186,7 @@ public unsafe interface INatives /// 7 = Mid Right /// 8 = Invalid /// - void SmashVehicleWindow(int vehicle, int windowIndex); + void SmashVehicleWindow(uint vehicle, int windowIndex); /// /// 0 = Front Left Window /// 1 = Front Right Window @@ -22225,7 +22212,7 @@ public unsafe interface INatives /// 8 = Invalid /// See NativeDB for reference: http://natives.altv.mp/#/0x772282EBEB95E682 /// - void FixVehicleWindow(int vehicle, int windowIndex); + void FixVehicleWindow(uint vehicle, int windowIndex); /// /// Detaches the vehicle's windscreen. /// For further information, see : gtaforums.com/topic/859570-glass/#entry1068894566 @@ -22235,7 +22222,7 @@ public unsafe interface INatives /// Detaches the vehicle's windscreen. /// For further information, see : gtaforums.com/topic/859570-glass/#entry1068894566 /// - void PopOutVehicleWindscreen(int vehicle); + void PopOutVehicleWindscreen(uint vehicle); /// /// Pops off the "roof" bone in the direction of the specified offset from the vehicle. /// @@ -22243,7 +22230,7 @@ public unsafe interface INatives /// /// Pops off the "roof" bone in the direction of the specified offset from the vehicle. /// - void PopOffVehicleRoofWithImpulse(int vehicle, float x, float y, float z); + void PopOffVehicleRoofWithImpulse(uint vehicle, float x, float y, float z); /// /// set's if the vehicle has lights or not. /// not an on off toggle. @@ -22267,9 +22254,9 @@ public unsafe interface INatives /// note2: when using =0 it's affected by day or night for highbeams don't exist in daytime. /// /// = 0 ;vehicle normal lights, off then lowbeams, then highbeams - void SetVehicleLights(int vehicle, int state); + void SetVehicleLights(uint vehicle, int state); void SetVehicleUsePlayerLightSettings(IVehicle vehicle, bool toggle); - void SetVehicleUsePlayerLightSettings(int vehicle, bool toggle); + void SetVehicleUsePlayerLightSettings(uint vehicle, bool toggle); /// /// Determines how vehicle lights behave when toggled. /// 0 = Default (Lights can be toggled between off, normal and high beams) @@ -22285,15 +22272,15 @@ public unsafe interface INatives /// 2 = Always On (Lights can be toggled between normal and high beams) /// /// can be either 0, 1 or 2. - void SetVehicleHeadlightShadows(int vehicle, int p1); + void SetVehicleHeadlightShadows(uint vehicle, int p1); void SetVehicleAlarm(IVehicle vehicle, bool state); - void SetVehicleAlarm(int vehicle, bool state); + void SetVehicleAlarm(uint vehicle, bool state); void StartVehicleAlarm(IVehicle vehicle); - void StartVehicleAlarm(int vehicle); + void StartVehicleAlarm(uint vehicle); bool IsVehicleAlarmActivated(IVehicle vehicle); - bool IsVehicleAlarmActivated(int vehicle); + bool IsVehicleAlarmActivated(uint vehicle); void SetVehicleInteriorlight(IVehicle vehicle, bool toggle); - void SetVehicleInteriorlight(int vehicle, bool toggle); + void SetVehicleInteriorlight(uint vehicle, bool toggle); /// /// Sets some bit of vehicle /// @@ -22301,7 +22288,7 @@ public unsafe interface INatives /// /// Sets some bit of vehicle /// - void SetVehicleForceInteriorlight(int vehicle, bool toggle); + void SetVehicleForceInteriorlight(uint vehicle, bool toggle); /// /// this value isn't capped afaik. /// multiplier = 0.0 no lights @@ -22315,19 +22302,19 @@ public unsafe interface INatives /// multiplier = 1.0 default game value /// /// = brightness of head lights. - void SetVehicleLightMultiplier(int vehicle, float multiplier); - void AttachVehicleToTrailer(IVehicle vehicle, int trailer, float radius); - void AttachVehicleToTrailer(int vehicle, IVehicle trailer, float radius); + void SetVehicleLightMultiplier(uint vehicle, float multiplier); + void AttachVehicleToTrailer(IVehicle vehicle, uint trailer, float radius); + void AttachVehicleToTrailer(uint vehicle, IVehicle trailer, float radius); void AttachVehicleToTrailer(IVehicle vehicle, IVehicle trailer, float radius); - void AttachVehicleToTrailer(int vehicle, int trailer, float radius); + void AttachVehicleToTrailer(uint vehicle, uint trailer, float radius); /// /// This is the proper way of attaching vehicles to the car carrier, it's what Rockstar uses. Video Demo: https://www.youtube.com/watch?v=2lVEIzf7bgo /// - void AttachVehicleOnToTrailer(IVehicle vehicle, int trailer, float offsetX, float offsetY, float offsetZ, float coordsX, float coordsY, float coordsZ, float rotationX, float rotationY, float rotationZ, float disableCollisions); + void AttachVehicleOnToTrailer(IVehicle vehicle, uint trailer, float offsetX, float offsetY, float offsetZ, float coordsX, float coordsY, float coordsZ, float rotationX, float rotationY, float rotationZ, float disableCollisions); /// /// This is the proper way of attaching vehicles to the car carrier, it's what Rockstar uses. Video Demo: https://www.youtube.com/watch?v=2lVEIzf7bgo /// - void AttachVehicleOnToTrailer(int vehicle, IVehicle trailer, float offsetX, float offsetY, float offsetZ, float coordsX, float coordsY, float coordsZ, float rotationX, float rotationY, float rotationZ, float disableCollisions); + void AttachVehicleOnToTrailer(uint vehicle, IVehicle trailer, float offsetX, float offsetY, float offsetZ, float coordsX, float coordsY, float coordsZ, float rotationX, float rotationY, float rotationZ, float disableCollisions); /// /// This is the proper way of attaching vehicles to the car carrier, it's what Rockstar uses. Video Demo: https://www.youtube.com/watch?v=2lVEIzf7bgo /// @@ -22335,17 +22322,17 @@ public unsafe interface INatives /// /// This is the proper way of attaching vehicles to the car carrier, it's what Rockstar uses. Video Demo: https://www.youtube.com/watch?v=2lVEIzf7bgo /// - void AttachVehicleOnToTrailer(int vehicle, int trailer, float offsetX, float offsetY, float offsetZ, float coordsX, float coordsY, float coordsZ, float rotationX, float rotationY, float rotationZ, float disableCollisions); - void StabiliseEntityAttachedToHeli(IVehicle vehicle, int entity, float p2); - void StabiliseEntityAttachedToHeli(int vehicle, IEntity entity, float p2); + void AttachVehicleOnToTrailer(uint vehicle, uint trailer, float offsetX, float offsetY, float offsetZ, float coordsX, float coordsY, float coordsZ, float rotationX, float rotationY, float rotationZ, float disableCollisions); + void StabiliseEntityAttachedToHeli(IVehicle vehicle, uint entity, float p2); + void StabiliseEntityAttachedToHeli(uint vehicle, IEntity entity, float p2); void StabiliseEntityAttachedToHeli(IVehicle vehicle, IEntity entity, float p2); - void StabiliseEntityAttachedToHeli(int vehicle, int entity, float p2); + void StabiliseEntityAttachedToHeli(uint vehicle, uint entity, float p2); void DetachVehicleFromTrailer(IVehicle vehicle); - void DetachVehicleFromTrailer(int vehicle); + void DetachVehicleFromTrailer(uint vehicle); bool IsVehicleAttachedToTrailer(IVehicle vehicle); - bool IsVehicleAttachedToTrailer(int vehicle); + bool IsVehicleAttachedToTrailer(uint vehicle); void SetTrailerInverseMassScale(IVehicle vehicle, float p1); - void SetTrailerInverseMassScale(int vehicle, float p1); + void SetTrailerInverseMassScale(uint vehicle, float p1); /// /// in the decompiled scripts, seems to be always called on the vehicle right after being attached to a trailer. /// @@ -22353,9 +22340,9 @@ public unsafe interface INatives /// /// in the decompiled scripts, seems to be always called on the vehicle right after being attached to a trailer. /// - void SetTrailerLegsRaised(int vehicle); + void SetTrailerLegsRaised(uint vehicle); void SetTrailerLegsLowered(IVehicle vehicle); - void SetTrailerLegsLowered(int vehicle); + void SetTrailerLegsLowered(uint vehicle); /// /// '0 = wheel_lf / bike, plane or jet front /// '1 = wheel_rf @@ -22379,7 +22366,7 @@ public unsafe interface INatives /// '47 = 6 wheels trailer mid wheel right /// /// = 0 to 4 on normal vehicles - void SetVehicleTyreFixed(int vehicle, int tyreIndex); + void SetVehicleTyreFixed(uint vehicle, int tyreIndex); /// /// Sets a vehicle's license plate text. 8 chars maximum. /// Example: @@ -22397,7 +22384,7 @@ public unsafe interface INatives /// VEHICLE::SET_VEHICLE_NUMBER_PLATE_TEXT(veh, plateText); /// /// veh = PED::GET_VEHICLE_PED_IS_USING(playerPed); - void SetVehicleNumberPlateText(int vehicle, string plateText); + void SetVehicleNumberPlateText(uint vehicle, string plateText); /// /// Returns the license plate text from a vehicle. 8 chars maximum. /// @@ -22405,7 +22392,7 @@ public unsafe interface INatives /// /// Returns the license plate text from a vehicle. 8 chars maximum. /// - string GetVehicleNumberPlateText(int vehicle); + string GetVehicleNumberPlateText(uint vehicle); /// /// Returns the number of *types* of licence plates, enumerated below in SET_VEHICLE_NUMBER_PLATE_TEXT_INDEX. /// @@ -22429,7 +22416,7 @@ public unsafe interface INatives /// Blue/White3 - 4 /// Yankton - 5 /// - void SetVehicleNumberPlateTextIndex(int vehicle, int plateIndex); + void SetVehicleNumberPlateTextIndex(uint vehicle, int plateIndex); /// /// Returns the PlateType of a vehicle /// Blue_on_White_1 = 3, @@ -22449,7 +22436,7 @@ public unsafe interface INatives /// Yellow_on_Black = 1, /// North_Yankton = 5, /// - int GetVehicleNumberPlateTextIndex(int vehicle); + int GetVehicleNumberPlateTextIndex(uint vehicle); void SetRandomTrains(bool toggle); /// /// Train models HAVE TO be loaded (requested) before you use this. @@ -22461,7 +22448,7 @@ public unsafe interface INatives /// freightcont2 /// freighttrailer /// - int CreateMissionTrain(int unkVariation, float x, float y, float z, bool direction, int p5, int p6); + uint CreateMissionTrain(int unkVariation, float x, float y, float z, bool direction, int p5, int p6); /// /// Toggles whether ambient trains can spawn on the specified track or not /// `trackId` is the internal id of the train track to switch. @@ -22484,9 +22471,9 @@ public unsafe interface INatives void AllowTrainToBeRemovedByPopulation(int p0); void DeleteAllTrains(); void SetTrainSpeed(IVehicle train, float speed); - void SetTrainSpeed(int train, float speed); + void SetTrainSpeed(uint train, float speed); void SetTrainCruiseSpeed(IVehicle train, float speed); - void SetTrainCruiseSpeed(int train, float speed); + void SetTrainCruiseSpeed(uint train, float speed); void SetRandomBoats(bool toggle); void SetRandomBoatsMp(bool toggle); void SetGarbageTrucks(bool toggle); @@ -22497,7 +22484,7 @@ public unsafe interface INatives /// /// Maximum amount of vehicles with vehicle stuck check appears to be 16. /// - bool DoesVehicleHaveStuckVehicleCheck(int vehicle); + bool DoesVehicleHaveStuckVehicleCheck(uint vehicle); /// /// See REQUEST_VEHICLE_RECORDING /// @@ -22540,7 +22527,7 @@ public unsafe interface INatives /// /// Distance traveled in the vehicles current recording. /// - float GetPositionInRecording(int vehicle); + float GetPositionInRecording(uint vehicle); /// /// Can be used with GET_TOTAL_DURATION_OF_VEHICLE_RECORDING{_ID} to compute a percentage. /// @@ -22548,7 +22535,7 @@ public unsafe interface INatives /// /// Can be used with GET_TOTAL_DURATION_OF_VEHICLE_RECORDING{_ID} to compute a percentage. /// - float GetTimePositionInRecording(int vehicle); + float GetTimePositionInRecording(uint vehicle); /// /// See REQUEST_VEHICLE_RECORDING /// @@ -22558,7 +22545,7 @@ public unsafe interface INatives /// See REQUEST_VEHICLE_RECORDING /// /// is some flag related to 'trailers' (invokes CVehicle::GetTrailer). - void StartPlaybackRecordedVehicle(int vehicle, int recording, string script, bool p3); + void StartPlaybackRecordedVehicle(uint vehicle, int recording, string script, bool p3); /// /// time, often zero and capped at 500, is related to SET_PLAYBACK_TO_USE_AI_TRY_TO_REVERT_BACK_LATER /// @@ -22568,7 +22555,7 @@ public unsafe interface INatives /// time, often zero and capped at 500, is related to SET_PLAYBACK_TO_USE_AI_TRY_TO_REVERT_BACK_LATER /// /// requires further research, e.g., 0x4/0x8 are related to the AI driving task and 0x20 is internally set and interacts with dynamic entity components. - void StartPlaybackRecordedVehicleWithFlags(int vehicle, int recording, string script, int flags, int time, int drivingStyle); + void StartPlaybackRecordedVehicleWithFlags(uint vehicle, int recording, string script, int flags, int time, int drivingStyle); /// /// Often called after START_PLAYBACK_RECORDED_VEHICLE and SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE; similar in use to FORCE_ENTITY_AI_AND_ANIMATION_UPDATE. /// @@ -22576,23 +22563,23 @@ public unsafe interface INatives /// /// Often called after START_PLAYBACK_RECORDED_VEHICLE and SKIP_TIME_IN_PLAYBACK_RECORDED_VEHICLE; similar in use to FORCE_ENTITY_AI_AND_ANIMATION_UPDATE. /// - void ForcePlaybackRecordedVehicleUpdate(int vehicle, bool p1); + void ForcePlaybackRecordedVehicleUpdate(uint vehicle, bool p1); void StopPlaybackRecordedVehicle(IVehicle vehicle); - void StopPlaybackRecordedVehicle(int vehicle); + void StopPlaybackRecordedVehicle(uint vehicle); void PausePlaybackRecordedVehicle(IVehicle vehicle); - void PausePlaybackRecordedVehicle(int vehicle); + void PausePlaybackRecordedVehicle(uint vehicle); void UnpausePlaybackRecordedVehicle(IVehicle vehicle); - void UnpausePlaybackRecordedVehicle(int vehicle); + void UnpausePlaybackRecordedVehicle(uint vehicle); bool IsPlaybackGoingOnForVehicle(IVehicle vehicle); - bool IsPlaybackGoingOnForVehicle(int vehicle); + bool IsPlaybackGoingOnForVehicle(uint vehicle); bool IsPlaybackUsingAiGoingOnForVehicle(IVehicle vehicle); - bool IsPlaybackUsingAiGoingOnForVehicle(int vehicle); + bool IsPlaybackUsingAiGoingOnForVehicle(uint vehicle); int GetCurrentPlaybackForVehicle(IVehicle vehicle); - int GetCurrentPlaybackForVehicle(int vehicle); + int GetCurrentPlaybackForVehicle(uint vehicle); void SkipToEndAndStopPlaybackRecordedVehicle(IVehicle vehicle); - void SkipToEndAndStopPlaybackRecordedVehicle(int vehicle); + void SkipToEndAndStopPlaybackRecordedVehicle(uint vehicle); void SetPlaybackSpeed(IVehicle vehicle, float speed); - void SetPlaybackSpeed(int vehicle, float speed); + void SetPlaybackSpeed(uint vehicle, float speed); /// /// AI abides by the provided driving style (e.g., stopping at red lights or waiting behind traffic) while executing the specificed vehicle recording. /// FORCE_PLAYBACK_RECORDED_VEHICLE_UPDATE is a related native that deals with the AI physics for such recordings. @@ -22602,7 +22589,7 @@ public unsafe interface INatives /// AI abides by the provided driving style (e.g., stopping at red lights or waiting behind traffic) while executing the specificed vehicle recording. /// FORCE_PLAYBACK_RECORDED_VEHICLE_UPDATE is a related native that deals with the AI physics for such recordings. /// - void StartPlaybackRecordedVehicleUsingAi(int vehicle, int recording, string script, float speed, int drivingStyle); + void StartPlaybackRecordedVehicleUsingAi(uint vehicle, int recording, string script, float speed, int drivingStyle); /// /// SET_TIME_POSITION_IN_RECORDING can be emulated by: desired_time - GET_TIME_POSITION_IN_RECORDING(vehicle) /// @@ -22610,7 +22597,7 @@ public unsafe interface INatives /// /// SET_TIME_POSITION_IN_RECORDING can be emulated by: desired_time - GET_TIME_POSITION_IN_RECORDING(vehicle) /// - void SkipTimeInPlaybackRecordedVehicle(int vehicle, float time); + void SkipTimeInPlaybackRecordedVehicle(uint vehicle, float time); /// /// Identical to SET_PLAYBACK_TO_USE_AI_TRY_TO_REVERT_BACK_LATER with 0 as arguments for p1 and p3. /// @@ -22618,7 +22605,7 @@ public unsafe interface INatives /// /// Identical to SET_PLAYBACK_TO_USE_AI_TRY_TO_REVERT_BACK_LATER with 0 as arguments for p1 and p3. /// - void SetPlaybackToUseAi(int vehicle, int drivingStyle); + void SetPlaybackToUseAi(uint vehicle, int drivingStyle); /// /// /// is number of milliseconds before reverting, zero for indefinitely. @@ -22626,13 +22613,13 @@ public unsafe interface INatives /// /// /// is number of milliseconds before reverting, zero for indefinitely. - void SetPlaybackToUseAiTryToRevertBackLater(int vehicle, int time, int drivingStyle, bool p3); + void SetPlaybackToUseAiTryToRevertBackLater(uint vehicle, int time, int drivingStyle, bool p3); void SetAdditionalRotationForRecordedVehiclePlayback(IVehicle vehicle, float x, float y, float z, int p4); - void SetAdditionalRotationForRecordedVehiclePlayback(int vehicle, float x, float y, float z, int p4); + void SetAdditionalRotationForRecordedVehiclePlayback(uint vehicle, float x, float y, float z, int p4); void SetPositionOffsetForRecordedVehiclePlayback(IVehicle vehicle, float x, float y, float z); - void SetPositionOffsetForRecordedVehiclePlayback(int vehicle, float x, float y, float z); + void SetPositionOffsetForRecordedVehiclePlayback(uint vehicle, float x, float y, float z); void SetGlobalPositionOffsetForRecordedVehiclePlayback(IVehicle vehicle, float x, float y, float z); - void SetGlobalPositionOffsetForRecordedVehiclePlayback(int vehicle, float x, float y, float z); + void SetGlobalPositionOffsetForRecordedVehiclePlayback(uint vehicle, float x, float y, float z); /// /// A vehicle recording playback flag only used in jewelry_heist /// @@ -22640,9 +22627,9 @@ public unsafe interface INatives /// /// A vehicle recording playback flag only used in jewelry_heist /// - void SetShouldLerpFromAiToFullRecording(int vehicle, bool p1); + void SetShouldLerpFromAiToFullRecording(uint vehicle, bool p1); void ExplodeVehicleInCutscene(IVehicle vehicle, bool p1); - void ExplodeVehicleInCutscene(int vehicle, bool p1); + void ExplodeVehicleInCutscene(uint vehicle, bool p1); void AddVehicleStuckCheckWithWarp(int p0, float p1, int p2, bool p3, bool p4, bool p5, int p6); /// /// Makes the vehicle stop spawning naturally in traffic. Here's an essential example: @@ -22660,9 +22647,9 @@ public unsafe interface INatives /// The radius of the sphere. Max is 9999.9004. /// The vehicle model to limit the selection to. Pass 0 for any model. /// The bitwise flags that modifies the behaviour of this function. - int GetRandomVehicleInSphere(float x, float y, float z, float radius, uint modelHash, int flags); - int GetRandomVehicleFrontBumperInSphere(float p0, float p1, float p2, float p3, int p4, int p5, int p6); - int GetRandomVehicleBackBumperInSphere(float p0, float p1, float p2, float p3, int p4, int p5, int p6); + uint GetRandomVehicleInSphere(float x, float y, float z, float radius, uint modelHash, int flags); + uint GetRandomVehicleFrontBumperInSphere(float p0, float p1, float p2, float p3, int p4, int p5, int p6); + uint GetRandomVehicleBackBumperInSphere(float p0, float p1, float p2, float p3, int p4, int p5, int p6); /// /// Example usage /// x, y, z: Position to get closest vehicle to. @@ -22678,26 +22665,26 @@ public unsafe interface INatives /// Limit to vehicles with this model. 0 for any. /// The bitwise flags altering the function's behaviour. /// Does not return police cars or helicopters. - int GetClosestVehicle(float x, float y, float z, float radius, uint modelHash, int flags); + uint GetClosestVehicle(float x, float y, float z, float radius, uint modelHash, int flags); /// /// Corrected p1. it's basically the 'carriage/trailer number'. So if the train has 3 trailers you'd call the native once with a var or 3 times with 1, 2, 3. /// - int GetTrainCarriage(IVehicle train, int trailerNumber); + uint GetTrainCarriage(IVehicle train, int trailerNumber); /// /// Corrected p1. it's basically the 'carriage/trailer number'. So if the train has 3 trailers you'd call the native once with a var or 3 times with 1, 2, 3. /// - int GetTrainCarriage(int train, int trailerNumber); + uint GetTrainCarriage(uint train, int trailerNumber); bool IsMissionTrain(IVehicle train); - bool IsMissionTrain(int train); + bool IsMissionTrain(uint train); /// /// - void DeleteMissionTrain(ref int train); + void DeleteMissionTrain(ref uint train); /// /// /// is always 0 - void SetMissionTrainAsNoLongerNeeded(ref int train, bool p1); + void SetMissionTrainAsNoLongerNeeded(ref uint train, bool p1); void SetMissionTrainCoords(IVehicle train, float x, float y, float z); - void SetMissionTrainCoords(int train, float x, float y, float z); + void SetMissionTrainCoords(uint train, float x, float y, float z); bool IsThisModelABoat(uint model); /// /// Checks if model is a boat, then checks for FLAG_IS_JETSKI. @@ -22724,7 +22711,7 @@ public unsafe interface INatives /// Equivalent of SET_HELI_BLADES_SPEED(vehicleHandle, 1.0f); /// this native works on planes to? /// - void SetHeliBladesFullSpeed(int vehicle); + void SetHeliBladesFullSpeed(uint vehicle); /// /// Sets the speed of the helicopter blades in percentage of the full speed. /// vehicleHandle: The helicopter. @@ -22736,9 +22723,9 @@ public unsafe interface INatives /// vehicleHandle: The helicopter. /// /// The speed in percentage, 0.0f being 0% and 1.0f being 100%. - void SetHeliBladesSpeed(int vehicle, float speed); + void SetHeliBladesSpeed(uint vehicle, float speed); void ForceSubThrottleForTime(IVehicle vehicle, float p1, float p2); - void ForceSubThrottleForTime(int vehicle, float p1, float p2); + void ForceSubThrottleForTime(uint vehicle, float p1, float p2); /// /// This has not yet been tested - it's just an assumption of what the types could be. /// @@ -22746,15 +22733,15 @@ public unsafe interface INatives /// /// This has not yet been tested - it's just an assumption of what the types could be. /// - void SetVehicleCanBeTargetted(int vehicle, bool state); + void SetVehicleCanBeTargetted(uint vehicle, bool state); void SetDontAllowPlayerToEnterVehicleIfLockedForPlayer(IVehicle vehicle, bool p1); - void SetDontAllowPlayerToEnterVehicleIfLockedForPlayer(int vehicle, bool p1); + void SetDontAllowPlayerToEnterVehicleIfLockedForPlayer(uint vehicle, bool p1); void SetVehicleCanBeVisiblyDamaged(IVehicle vehicle, bool state); - void SetVehicleCanBeVisiblyDamaged(int vehicle, bool state); + void SetVehicleCanBeVisiblyDamaged(uint vehicle, bool state); void SetVehicleHasUnbreakableLights(IVehicle vehicle, bool toggle); - void SetVehicleHasUnbreakableLights(int vehicle, bool toggle); + void SetVehicleHasUnbreakableLights(uint vehicle, bool toggle); void SetVehicleRespectsLocksWhenHasDriver(IVehicle vehicle, bool p1); - void SetVehicleRespectsLocksWhenHasDriver(int vehicle, bool p1); + void SetVehicleRespectsLocksWhenHasDriver(uint vehicle, bool p1); void SetVehicleCanEjectPassengersIfLocked(int p0, int p1); /// /// Dirt level does not become greater than 15.0 @@ -22763,7 +22750,7 @@ public unsafe interface INatives /// /// Dirt level does not become greater than 15.0 /// - float GetVehicleDirtLevel(int vehicle); + float GetVehicleDirtLevel(uint vehicle); /// /// You can't use values greater than 15.0 /// Also, R* does (float)(rand() % 15) to get a random dirt level when generating a vehicle. @@ -22773,7 +22760,7 @@ public unsafe interface INatives /// You can't use values greater than 15.0 /// Also, R* does (float)(rand() % 15) to get a random dirt level when generating a vehicle. /// - void SetVehicleDirtLevel(int vehicle, float dirtLevel); + void SetVehicleDirtLevel(uint vehicle, float dirtLevel); /// /// /// Appears to return true if the vehicle has any damage, including cosmetically. @@ -22781,7 +22768,7 @@ public unsafe interface INatives /// /// /// Appears to return true if the vehicle has any damage, including cosmetically. - bool GetDoesVehicleHaveDamageDecals(int vehicle); + bool GetDoesVehicleHaveDamageDecals(uint vehicle); /// /// /// see SET_VEHICLE_DOOR_SHUT @@ -22789,7 +22776,7 @@ public unsafe interface INatives /// /// /// see SET_VEHICLE_DOOR_SHUT - bool IsVehicleDoorFullyOpen(int vehicle, int doorId); + bool IsVehicleDoorFullyOpen(uint vehicle, int doorId); /// /// Starts or stops the engine on the specified vehicle. /// from what I've tested when I do this to a helicopter the propellers turn off after the engine has started. so is there any way to keep the heli propellers on? @@ -22807,11 +22794,11 @@ public unsafe interface INatives /// true to turn the vehicle on; false to turn it off. /// if true, the vehicle will be set to the state immediately; otherwise, the current driver will physically turn on or off the engine. /// If true, the system will prevent the engine from starting when the player got into it. - void SetVehicleEngineOn(int vehicle, bool value, bool instantly, bool disableAutoStart); + void SetVehicleEngineOn(uint vehicle, bool value, bool instantly, bool disableAutoStart); void SetVehicleUndriveable(IVehicle vehicle, bool toggle); - void SetVehicleUndriveable(int vehicle, bool toggle); + void SetVehicleUndriveable(uint vehicle, bool toggle); void SetVehicleProvidesCover(IVehicle vehicle, bool toggle); - void SetVehicleProvidesCover(int vehicle, bool toggle); + void SetVehicleProvidesCover(uint vehicle, bool toggle); /// /// /// see SET_VEHICLE_DOOR_SHUT @@ -22819,7 +22806,7 @@ public unsafe interface INatives /// /// /// see SET_VEHICLE_DOOR_SHUT - void SetVehicleDoorControl(int vehicle, int doorId, int speed, float angle); + void SetVehicleDoorControl(uint vehicle, int doorId, int speed, float angle); /// /// /// see SET_VEHICLE_DOOR_SHUT @@ -22827,7 +22814,7 @@ public unsafe interface INatives /// /// /// see SET_VEHICLE_DOOR_SHUT - void SetVehicleDoorLatched(int vehicle, int doorId, bool p2, bool p3, bool p4); + void SetVehicleDoorLatched(uint vehicle, int doorId, bool p2, bool p3, bool p4); /// /// /// see SET_VEHICLE_DOOR_SHUT @@ -22835,15 +22822,15 @@ public unsafe interface INatives /// /// /// see SET_VEHICLE_DOOR_SHUT - float GetVehicleDoorAngleRatio(int vehicle, int doorId); + float GetVehicleDoorAngleRatio(uint vehicle, int doorId); /// /// doorId: see SET_VEHICLE_DOOR_SHUT /// - int GetPedUsingVehicleDoor(IVehicle vehicle, int doord); + uint GetPedUsingVehicleDoor(IVehicle vehicle, int doord); /// /// doorId: see SET_VEHICLE_DOOR_SHUT /// - int GetPedUsingVehicleDoor(int vehicle, int doord); + uint GetPedUsingVehicleDoor(uint vehicle, int doord); /// /// enum eDoorId /// { @@ -22869,7 +22856,7 @@ public unsafe interface INatives /// VEH_EXT_BOOT /// }; /// - void SetVehicleDoorShut(int vehicle, int doorId, bool closeInstantly); + void SetVehicleDoorShut(uint vehicle, int doorId, bool closeInstantly); /// /// /// see SET_VEHICLE_DOOR_SHUT @@ -22877,11 +22864,11 @@ public unsafe interface INatives /// /// /// see SET_VEHICLE_DOOR_SHUT - void SetVehicleDoorBroken(int vehicle, int doorId, bool deleteDoor); + void SetVehicleDoorBroken(uint vehicle, int doorId, bool deleteDoor); void SetVehicleCanBreak(IVehicle vehicle, bool toggle); - void SetVehicleCanBreak(int vehicle, bool toggle); + void SetVehicleCanBreak(uint vehicle, bool toggle); bool DoesVehicleHaveRoof(IVehicle vehicle); - bool DoesVehicleHaveRoof(int vehicle); + bool DoesVehicleHaveRoof(uint vehicle); void SetVehicleRemoveAggressiveCarjackMission(int p0); void SetVehicleAvoidPlayerVehicleRiotVanMission(int p0); void SetCarjackMissionRemovalParameters(int p0, int p1); @@ -22892,7 +22879,7 @@ public unsafe interface INatives /// /// Returns true if MF_IS_BIG (strModelFlags 0x8) handling model flag is set. /// - bool IsBigVehicle(int vehicle); + bool IsBigVehicle(uint vehicle); /// /// Returns the total amount of color combinations found in the vehicle's carvariations.meta entry. /// @@ -22900,7 +22887,7 @@ public unsafe interface INatives /// /// Returns the total amount of color combinations found in the vehicle's carvariations.meta entry. /// - int GetNumberOfVehicleColours(int vehicle); + int GetNumberOfVehicleColours(uint vehicle); /// /// Sets the selected vehicle's colors to the specified index of the color combination found in the vehicle's carvariations.meta entry. /// @@ -22908,7 +22895,7 @@ public unsafe interface INatives /// /// Sets the selected vehicle's colors to the specified index of the color combination found in the vehicle's carvariations.meta entry. /// - void SetVehicleColourCombination(int vehicle, int colorCombination); + void SetVehicleColourCombination(uint vehicle, int colorCombination); /// /// Returns the index of the color combination found in the vehicle's carvariations.meta entry. /// @@ -22916,7 +22903,7 @@ public unsafe interface INatives /// /// Returns the index of the color combination found in the vehicle's carvariations.meta entry. /// - int GetVehicleColourCombination(int vehicle); + int GetVehicleColourCombination(uint vehicle); /// /// `color`: is the paint index for the vehicle. /// Paint index goes from 0 to 12. @@ -22930,7 +22917,7 @@ public unsafe interface INatives /// Be aware that it only works on xenon lights. Example: https://i.imgur.com/yV3cpG9.png /// Full list of all vehicle xenon lights by DurtyFree https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleColors.json /// - void SetVehicleXenonLightColorIndex(int vehicle, int colorIndex); + void SetVehicleXenonLightColorIndex(uint vehicle, int colorIndex); /// /// Returns the headlight color index from the vehicle. Value between 0, 12. /// Use SET_VEHICLE_XENON_LIGHT_COLOR_INDEX to set the headlights color for the vehicle. @@ -22944,7 +22931,7 @@ public unsafe interface INatives /// Must enable xenon headlights before it'll take affect. /// Returns an int, value between 0-12 or 255 if no color is set. /// - int GetVehicleXenonLightColorIndex(int vehicle); + int GetVehicleXenonLightColorIndex(uint vehicle); /// /// Setting this to false, makes the specified vehicle to where if you press Y your character doesn't even attempt the animation to enter the vehicle. Hence it's not considered aka ignored. /// @@ -22952,15 +22939,15 @@ public unsafe interface INatives /// /// Setting this to false, makes the specified vehicle to where if you press Y your character doesn't even attempt the animation to enter the vehicle. Hence it's not considered aka ignored. /// - void SetVehicleIsConsideredByPlayer(int vehicle, bool toggle); + void SetVehicleIsConsideredByPlayer(uint vehicle, bool toggle); void SetVehicleWillForceOtherVehiclesToStop(IVehicle vehicle, bool toggle); - void SetVehicleWillForceOtherVehiclesToStop(int vehicle, bool toggle); + void SetVehicleWillForceOtherVehiclesToStop(uint vehicle, bool toggle); void SetVehicleActAsIfHasSirenOn(IVehicle vehicle, bool p1); - void SetVehicleActAsIfHasSirenOn(int vehicle, bool p1); + void SetVehicleActAsIfHasSirenOn(uint vehicle, bool p1); void SetVehicleUseMoreRestrictiveSpawnChecks(IVehicle vehicle, bool p1); - void SetVehicleUseMoreRestrictiveSpawnChecks(int vehicle, bool p1); + void SetVehicleUseMoreRestrictiveSpawnChecks(uint vehicle, bool p1); void SetVehicleMayBeUsedByGotoPointAnyMeans(IVehicle vehicle, bool p1); - void SetVehicleMayBeUsedByGotoPointAnyMeans(int vehicle, bool p1); + void SetVehicleMayBeUsedByGotoPointAnyMeans(uint vehicle, bool p1); /// /// Not present in the retail version! It's just a nullsub. /// @@ -22992,7 +22979,7 @@ public unsafe interface INatives /// CannotBeTriedToEnter = 10, -- Cannot be tried to enter (Nothing happens when you press the vehicle enter key). /// } /// - int GetVehicleDoorLockStatus(int vehicle); + int GetVehicleDoorLockStatus(uint vehicle); /// /// Returns vehicle door lock state previously set with SET_VEHICLE_INDIVIDUAL_DOORS_LOCKED /// @@ -23000,7 +22987,7 @@ public unsafe interface INatives /// /// Returns vehicle door lock state previously set with SET_VEHICLE_INDIVIDUAL_DOORS_LOCKED /// - int GetVehicleIndividualDoorLockStatus(int vehicle, int doorId); + int GetVehicleIndividualDoorLockStatus(uint vehicle, int doorId); /// /// /// starts at 0, not seeming to skip any numbers. Four door vehicles intuitively range from 0 to 3. @@ -23008,7 +22995,7 @@ public unsafe interface INatives /// /// /// starts at 0, not seeming to skip any numbers. Four door vehicles intuitively range from 0 to 3. - bool IsVehicleDoorDamaged(int veh, int doorID); + bool IsVehicleDoorDamaged(uint veh, int doorID); /// /// /// see SET_VEHICLE_DOOR_SHUT @@ -23016,11 +23003,11 @@ public unsafe interface INatives /// /// /// see SET_VEHICLE_DOOR_SHUT - void SetDoorAllowedToBeBrokenOff(int vehicle, int doorId, bool isBreakable); + void SetDoorAllowedToBeBrokenOff(uint vehicle, int doorId, bool isBreakable); bool IsVehicleBumperBouncing(IVehicle vehicle, bool frontBumper); - bool IsVehicleBumperBouncing(int vehicle, bool frontBumper); + bool IsVehicleBumperBouncing(uint vehicle, bool frontBumper); bool IsVehicleBumperBrokenOff(IVehicle vehicle, bool frontBumper); - bool IsVehicleBumperBrokenOff(int vehicle, bool frontBumper); + bool IsVehicleBumperBrokenOff(uint vehicle, bool frontBumper); /// /// Usage: /// public bool isCopInRange(Vector3 Location, float Range) @@ -23040,7 +23027,7 @@ public unsafe interface INatives /// End Function /// /// Return Native.Function.Call(Of Boolean)(Hash.IS_VEHICLE_ON_ALL_WHEELS, vh) - bool IsVehicleOnAllWheels(int vehicle); + bool IsVehicleOnAllWheels(uint vehicle); /// /// Returns `nMonetaryValue` from handling.meta for specific model. /// @@ -23052,9 +23039,9 @@ public unsafe interface INatives /// /// Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json /// - uint GetVehicleLayoutHash(int vehicle); + uint GetVehicleLayoutHash(uint vehicle); uint GetInVehicleClipsetHashForSeat(IVehicle vehicle, int p1); - uint GetInVehicleClipsetHashForSeat(int vehicle, int p1); + uint GetInVehicleClipsetHashForSeat(uint vehicle, int p1); /// /// Makes the train all jumbled up and derailed as it moves on the tracks (though that wont stop it from its normal operations) /// @@ -23062,7 +23049,7 @@ public unsafe interface INatives /// /// Makes the train all jumbled up and derailed as it moves on the tracks (though that wont stop it from its normal operations) /// - void SetRenderTrainAsDerailed(int train, bool toggle); + void SetRenderTrainAsDerailed(uint train, bool toggle); /// /// They use the same color indexs as SET_VEHICLE_COLOURS. /// @@ -23070,29 +23057,29 @@ public unsafe interface INatives /// /// They use the same color indexs as SET_VEHICLE_COLOURS. /// - void SetVehicleExtraColours(int vehicle, int pearlescentColor, int wheelColor); + void SetVehicleExtraColours(uint vehicle, int pearlescentColor, int wheelColor); /// /// void GetVehicleExtraColours(IVehicle vehicle, ref int pearlescentColor, ref int wheelColor); /// /// - void GetVehicleExtraColours(int vehicle, ref int pearlescentColor, ref int wheelColor); + void GetVehicleExtraColours(uint vehicle, ref int pearlescentColor, ref int wheelColor); void SetVehicleExtraColour5(IVehicle vehicle, int color); - void SetVehicleExtraColour5(int vehicle, int color); + void SetVehicleExtraColour5(uint vehicle, int color); /// /// void GetVehicleExtraColour5(IVehicle vehicle, ref int color); /// /// - void GetVehicleExtraColour5(int vehicle, ref int color); + void GetVehicleExtraColour5(uint vehicle, ref int color); void SetVehicleExtraColour6(IVehicle vehicle, int color); - void SetVehicleExtraColour6(int vehicle, int color); + void SetVehicleExtraColour6(uint vehicle, int color); /// /// void GetVehicleExtraColour6(IVehicle vehicle, ref int color); /// /// - void GetVehicleExtraColour6(int vehicle, ref int color); + void GetVehicleExtraColour6(uint vehicle, ref int color); void StopAllGarageActivity(); /// /// This fixes a vehicle. @@ -23103,7 +23090,7 @@ public unsafe interface INatives /// This fixes a vehicle. /// If the vehicle's engine's broken then you cannot fix it with this native. /// - void SetVehicleFixed(int vehicle); + void SetVehicleFixed(uint vehicle); /// /// This fixes the deformation of a vehicle but the vehicle health doesn't improve /// @@ -23111,21 +23098,21 @@ public unsafe interface INatives /// /// This fixes the deformation of a vehicle but the vehicle health doesn't improve /// - void SetVehicleDeformationFixed(int vehicle); + void SetVehicleDeformationFixed(uint vehicle); void SetVehicleCanEngineMissfire(IVehicle vehicle, bool toggle); - void SetVehicleCanEngineMissfire(int vehicle, bool toggle); + void SetVehicleCanEngineMissfire(uint vehicle, bool toggle); void SetVehicleCanLeakOil(IVehicle vehicle, bool toggle); - void SetVehicleCanLeakOil(int vehicle, bool toggle); + void SetVehicleCanLeakOil(uint vehicle, bool toggle); void SetVehicleCanLeakPetrol(IVehicle vehicle, bool toggle); - void SetVehicleCanLeakPetrol(int vehicle, bool toggle); + void SetVehicleCanLeakPetrol(uint vehicle, bool toggle); void SetDisableVehiclePetrolTankFires(IVehicle vehicle, bool toggle); - void SetDisableVehiclePetrolTankFires(int vehicle, bool toggle); + void SetDisableVehiclePetrolTankFires(uint vehicle, bool toggle); void SetDisableVehiclePetrolTankDamage(IVehicle vehicle, bool toggle); - void SetDisableVehiclePetrolTankDamage(int vehicle, bool toggle); + void SetDisableVehiclePetrolTankDamage(uint vehicle, bool toggle); void SetDisableVehicleEngineFires(IVehicle vehicle, bool toggle); - void SetDisableVehicleEngineFires(int vehicle, bool toggle); + void SetDisableVehicleEngineFires(uint vehicle, bool toggle); void SetVehicleLimitSpeedWhenPlayerInactive(IVehicle vehicle, bool toggle); - void SetVehicleLimitSpeedWhenPlayerInactive(int vehicle, bool toggle); + void SetVehicleLimitSpeedWhenPlayerInactive(uint vehicle, bool toggle); /// /// sfink: sets bit in vehicle's structure, used by maintransition, fm_mission_controller, mission_race and a couple of other scripts. see dissassembly: /// CVehicle *__fastcall sub_140CDAA10(signed int a1, char a2) @@ -23153,9 +23140,9 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x6EBFB22D646FFC18 /// /// return result; - void SetVehicleStopInstantlyWhenPlayerInactive(int vehicle, bool toggle); + void SetVehicleStopInstantlyWhenPlayerInactive(uint vehicle, bool toggle); void SetDisablePretendOccupants(IVehicle vehicle, bool toggle); - void SetDisablePretendOccupants(int vehicle, bool toggle); + void SetDisablePretendOccupants(uint vehicle, bool toggle); void RemoveVehiclesFromGeneratorsInArea(float x1, float y1, float z1, float x2, float y2, float z2, int p6); /// /// Locks the vehicle's steering to the desired angle, explained below. @@ -23174,9 +23161,9 @@ public unsafe interface INatives /// 0.0 = centered steering /// 1.0 = full left /// - void SetVehicleSteerBias(int vehicle, float value); + void SetVehicleSteerBias(uint vehicle, float value); bool IsVehicleExtraTurnedOn(IVehicle vehicle, int extraId); - bool IsVehicleExtraTurnedOn(int vehicle, int extraId); + bool IsVehicleExtraTurnedOn(uint vehicle, int extraId); /// /// Available extraIds are 1-14, however none of the vehicles have extras above 12. /// @@ -23184,7 +23171,7 @@ public unsafe interface INatives /// /// Available extraIds are 1-14, however none of the vehicles have extras above 12. /// - void SetVehicleExtra(int vehicle, int extraId, bool disable); + void SetVehicleExtra(uint vehicle, int extraId, bool disable); /// /// Checks via CVehicleModelInfo /// @@ -23192,7 +23179,7 @@ public unsafe interface INatives /// /// Checks via CVehicleModelInfo /// - bool DoesExtraExist(int vehicle, int extraId); + bool DoesExtraExist(uint vehicle, int extraId); /// /// /// Returns true if specified extra part is broken off. It only works for extras that can break off during collisions, non-breakable extras always return false. Also returns true if the breakable extra is toggled off through script. @@ -23200,13 +23187,13 @@ public unsafe interface INatives /// /// /// Returns true if specified extra part is broken off. It only works for extras that can break off during collisions, non-breakable extras always return false. Also returns true if the breakable extra is toggled off through script. - bool IsExtraBrokenOff(int vehicle, int extraId); + bool IsExtraBrokenOff(uint vehicle, int extraId); void SetConvertibleRoof(IVehicle vehicle, bool p1); - void SetConvertibleRoof(int vehicle, bool p1); + void SetConvertibleRoof(uint vehicle, bool p1); void LowerConvertibleRoof(IVehicle vehicle, bool instantlyLower); - void LowerConvertibleRoof(int vehicle, bool instantlyLower); + void LowerConvertibleRoof(uint vehicle, bool instantlyLower); void RaiseConvertibleRoof(IVehicle vehicle, bool instantlyRaise); - void RaiseConvertibleRoof(int vehicle, bool instantlyRaise); + void RaiseConvertibleRoof(uint vehicle, bool instantlyRaise); /// /// 0 -> up /// 1 -> lowering down @@ -23220,7 +23207,7 @@ public unsafe interface INatives /// 2 -> down /// 3 -> raising up /// - int GetConvertibleRoofState(int vehicle); + int GetConvertibleRoofState(uint vehicle); /// /// Returns true if the vehicle has a convertible roof. /// @@ -23232,7 +23219,7 @@ public unsafe interface INatives /// /// is false almost always. However, in launcher_carwash/carwash1/carwash2 scripts, p1 is true and is accompanied by DOES_VEHICLE_HAVE_ROOF. If p1 is true, it seems that every single vehicle will return true irrespective of being a convertible. /// p1 is false almost always. However, in launcher_carwash/carwash1/carwash2 scripts, p1 is true and is accompanied by DOES_VEHICLE_HAVE_ROOF. If p1 is true, it seems that every single vehicle will return true irrespective of being a convertible. - bool IsVehicleAConvertible(int vehicle, bool p1); + bool IsVehicleAConvertible(uint vehicle, bool p1); /// /// Transforms the `stormberg`/`toreador` to its "submarine" variant. If the vehicle is already in that state then the vehicle transformation audio will still play, but the vehicle won't change at all. /// @@ -23240,7 +23227,7 @@ public unsafe interface INatives /// /// Transforms the `stormberg`/`toreador` to its "submarine" variant. If the vehicle is already in that state then the vehicle transformation audio will still play, but the vehicle won't change at all. /// - bool TransformToSubmarine(int vehicle, bool noAnimation); + bool TransformToSubmarine(uint vehicle, bool noAnimation); /// /// Transforms the `stormberg`/`toreador` to its "road vehicle" variant. If the vehicle is already in that state then the vehicle transformation audio will still play, but the vehicle won't change at all. /// @@ -23248,11 +23235,11 @@ public unsafe interface INatives /// /// Transforms the `stormberg`/`toreador` to its "road vehicle" variant. If the vehicle is already in that state then the vehicle transformation audio will still play, but the vehicle won't change at all. /// - void TransformToCar(int vehicle, bool noAnimation); + void TransformToCar(uint vehicle, bool noAnimation); bool IsVehicleInSubmarineMode(IVehicle vehicle); - bool IsVehicleInSubmarineMode(int vehicle); + bool IsVehicleInSubmarineMode(uint vehicle); bool IsVehicleStoppedAtTrafficLights(IVehicle vehicle); - bool IsVehicleStoppedAtTrafficLights(int vehicle); + bool IsVehicleStoppedAtTrafficLights(uint vehicle); /// /// Apply damage to vehicle at a location. Location is relative to vehicle model (not world). /// When `focusOnModel` set to `true`, the damage sphere will travel towards the vehicle from the given point, thus guaranteeing an impact @@ -23264,9 +23251,9 @@ public unsafe interface INatives /// When `focusOnModel` set to `true`, the damage sphere will travel towards the vehicle from the given point, thus guaranteeing an impact /// /// of effect damage applied in a sphere at impact location - void SetVehicleDamage(int vehicle, float xOffset, float yOffset, float zOffset, float damage, float radius, bool focusOnModel); + void SetVehicleDamage(uint vehicle, float xOffset, float yOffset, float zOffset, float damage, float radius, bool focusOnModel); void SetVehicleOccupantsTakeExplosiveDamage(IVehicle vehicle, bool toggle); - void SetVehicleOccupantsTakeExplosiveDamage(int vehicle, bool toggle); + void SetVehicleOccupantsTakeExplosiveDamage(uint vehicle, bool toggle); /// /// Returns 1000.0 if the function is unable to get the address of the specified vehicle or if it's not a vehicle. /// Minimum: -4000 @@ -23286,7 +23273,7 @@ public unsafe interface INatives /// 300: Engine is smoking and losing functionality /// 1000: Engine is perfect /// - float GetVehicleEngineHealth(int vehicle); + float GetVehicleEngineHealth(uint vehicle); /// /// 1000 is max health /// Begins leaking gas at around 650 health @@ -23308,7 +23295,7 @@ public unsafe interface INatives /// 300: Engine is smoking and losing functionality /// 1000: Engine is perfect /// - void SetVehicleEngineHealth(int vehicle, float health); + void SetVehicleEngineHealth(uint vehicle, float health); /// /// Works just like SET_VEHICLE_ENGINE_HEALTH, but only for planes. /// @@ -23316,7 +23303,7 @@ public unsafe interface INatives /// /// Works just like SET_VEHICLE_ENGINE_HEALTH, but only for planes. /// - void SetPlaneEngineHealth(int vehicle, float health); + void SetPlaneEngineHealth(uint vehicle, float health); /// /// 1000 is max health /// Begins leaking gas at around 650 health @@ -23328,7 +23315,7 @@ public unsafe interface INatives /// Begins leaking gas at around 650 health /// -999.90002441406 appears to be minimum health, although nothing special occurs /// - float GetVehiclePetrolTankHealth(int vehicle); + float GetVehiclePetrolTankHealth(uint vehicle); /// /// 1000 is max health /// Begins leaking gas at around 650 health @@ -23340,7 +23327,7 @@ public unsafe interface INatives /// Begins leaking gas at around 650 health /// /// 999.90002441406 appears to be minimum health, although nothing special occurs - void SetVehiclePetrolTankHealth(int vehicle, float health); + void SetVehiclePetrolTankHealth(uint vehicle, float health); /// /// /// can be anywhere from 0 to 3 in the scripts. @@ -23350,7 +23337,7 @@ public unsafe interface INatives /// /// can be anywhere from 0 to 3 in the scripts. /// being how long in milliseconds the vehicle has been stuck - bool IsVehicleStuckTimerUp(int vehicle, int p1, int ms); + bool IsVehicleStuckTimerUp(uint vehicle, int p1, int ms); /// /// The inner function has a switch on the second parameter. It's the stuck timer index. /// Here's some pseudo code I wrote for the inner function: @@ -23376,7 +23363,7 @@ public unsafe interface INatives /// case 1: /// See NativeDB for reference: http://natives.altv.mp/#/0xD7591B0065AFAA7A /// - void ResetVehicleStuckTimer(int vehicle, int nullAttributes); + void ResetVehicleStuckTimer(uint vehicle, int nullAttributes); /// /// p1 = check if vehicle is on fire /// @@ -23386,15 +23373,15 @@ public unsafe interface INatives /// p1 = check if vehicle is on fire /// /// is always 0 in the scripts. - bool IsVehicleDriveable(int vehicle, bool isOnFireCheck); + bool IsVehicleDriveable(uint vehicle, bool isOnFireCheck); void SetVehicleHasBeenOwnedByPlayer(IVehicle vehicle, bool owned); - void SetVehicleHasBeenOwnedByPlayer(int vehicle, bool owned); + void SetVehicleHasBeenOwnedByPlayer(uint vehicle, bool owned); void SetVehicleNeedsToBeHotwired(IVehicle vehicle, bool toggle); - void SetVehicleNeedsToBeHotwired(int vehicle, bool toggle); + void SetVehicleNeedsToBeHotwired(uint vehicle, bool toggle); void SetVehicleBlipThrottleRandomly(IVehicle vehicle, bool p1); - void SetVehicleBlipThrottleRandomly(int vehicle, bool p1); + void SetVehicleBlipThrottleRandomly(uint vehicle, bool p1); void SetPoliceFocusWillTrackVehicle(IVehicle vehicle, bool toggle); - void SetPoliceFocusWillTrackVehicle(int vehicle, bool toggle); + void SetPoliceFocusWillTrackVehicle(uint vehicle, bool toggle); /// /// Sounds the horn for the specified vehicle. /// Note: If a player is in the vehicle, it will only sound briefly. @@ -23410,7 +23397,7 @@ public unsafe interface INatives /// The vehicle to activate the horn for. /// The duration to sound the horn, in milliseconds. /// The hash of "NORMAL" or "HELDDOWN". Can be 0. - void StartVehicleHorn(int vehicle, int duration, uint mode, bool forever); + void StartVehicleHorn(uint vehicle, int duration, uint mode, bool forever); /// /// If set to TRUE, it seems to suppress door noises and doesn't allow the horn to be continuous. /// @@ -23418,7 +23405,7 @@ public unsafe interface INatives /// /// If set to TRUE, it seems to suppress door noises and doesn't allow the horn to be continuous. /// - void SetVehicleInCarModShop(int vehicle, bool toggle); + void SetVehicleInCarModShop(uint vehicle, bool toggle); /// /// if true, axles won't bend. /// @@ -23426,7 +23413,7 @@ public unsafe interface INatives /// /// if true, axles won't bend. /// - void SetVehicleHasStrongAxles(int vehicle, bool toggle); + void SetVehicleHasStrongAxles(uint vehicle, bool toggle); /// /// Returns model name of vehicle in all caps. Needs to be displayed through localizing text natives to get proper display name. /// ----------------------------------------------------------------------------------------------------------------------------------------- @@ -23458,9 +23445,9 @@ public unsafe interface INatives /// PC scripts: /// v_5{3} = VEHICLE::GET_VEHICLE_DEFORMATION_AT_POS(a_0._f1, 1.21, 6.15, 0.3); /// - Vector3 GetVehicleDeformationAtPos(int vehicle, float offsetX, float offsetY, float offsetZ); + Vector3 GetVehicleDeformationAtPos(uint vehicle, float offsetX, float offsetY, float offsetZ); void SetVehicleLivery(IVehicle vehicle, int livery); - void SetVehicleLivery(int vehicle, int livery); + void SetVehicleLivery(uint vehicle, int livery); /// /// -1 = no livery /// @@ -23468,7 +23455,7 @@ public unsafe interface INatives /// /// -1 = no livery /// - int GetVehicleLivery(int vehicle); + int GetVehicleLivery(uint vehicle); /// /// Returns -1 if the vehicle has no livery /// @@ -23476,7 +23463,7 @@ public unsafe interface INatives /// /// Returns -1 if the vehicle has no livery /// - int GetVehicleLiveryCount(int vehicle); + int GetVehicleLiveryCount(uint vehicle); /// /// Used to set the secondary livery (the roof on Tornado Custom being one such example.) /// @@ -23486,7 +23473,7 @@ public unsafe interface INatives /// Used to set the secondary livery (the roof on Tornado Custom being one such example.) /// /// value is dependent on the amount of liveries present in the vehicle's texture dictionary, for Tornado Custom this would be 0-6. - void SetVehicleLivery2(int vehicle, int livery); + void SetVehicleLivery2(uint vehicle, int livery); /// /// Returns index of the current vehicle's secondary livery. A getter for SET_VEHICLE_LIVERY2. /// @@ -23494,7 +23481,7 @@ public unsafe interface INatives /// /// Returns index of the current vehicle's secondary livery. A getter for SET_VEHICLE_LIVERY2. /// - int GetVehicleLivery2(int vehicle); + int GetVehicleLivery2(uint vehicle); /// /// Returns a number of available secondary liveries, or -1 if vehicle has no secondary liveries available. /// @@ -23502,7 +23489,7 @@ public unsafe interface INatives /// /// Returns a number of available secondary liveries, or -1 if vehicle has no secondary liveries available. /// - int GetVehicleLivery2Count(int vehicle); + int GetVehicleLivery2Count(uint vehicle); /// /// Window indexes: /// 0 = Front Right Window @@ -23522,7 +23509,7 @@ public unsafe interface INatives /// Those numbers go on for vehicles that have more than 4 doors with windows. /// /// This will return false if the window is broken, or rolled down. - bool IsVehicleWindowIntact(int vehicle, int windowIndex); + bool IsVehicleWindowIntact(uint vehicle, int windowIndex); /// /// /// Appears to return false if any window is broken. @@ -23530,7 +23517,7 @@ public unsafe interface INatives /// /// /// Appears to return false if any window is broken. - bool AreAllVehicleWindowsIntact(int vehicle); + bool AreAllVehicleWindowsIntact(uint vehicle); /// /// Returns false if every seat is occupied. /// @@ -23538,11 +23525,11 @@ public unsafe interface INatives /// /// Returns false if every seat is occupied. /// - bool AreAnyVehicleSeatsFree(int vehicle); + bool AreAnyVehicleSeatsFree(uint vehicle); void ResetVehicleWheels(IVehicle vehicle, bool toggle); - void ResetVehicleWheels(int vehicle, bool toggle); + void ResetVehicleWheels(uint vehicle, bool toggle); bool IsHeliPartBroken(IVehicle vehicle, bool p1, bool p2, bool p3); - bool IsHeliPartBroken(int vehicle, bool p1, bool p2, bool p3); + bool IsHeliPartBroken(uint vehicle, bool p1, bool p2, bool p3); /// /// Max 1000. /// At 0 the main rotor will stall. @@ -23552,7 +23539,7 @@ public unsafe interface INatives /// Max 1000. /// At 0 the main rotor will stall. /// - float GetHeliMainRotorHealth(int vehicle); + float GetHeliMainRotorHealth(uint vehicle); /// /// Max 1000. /// At 0 the tail rotor will stall. @@ -23562,7 +23549,7 @@ public unsafe interface INatives /// Max 1000. /// At 0 the tail rotor will stall. /// - float GetHeliTailRotorHealth(int vehicle); + float GetHeliTailRotorHealth(uint vehicle); /// /// Max 1000. /// At -100 both helicopter rotors will stall. @@ -23572,13 +23559,13 @@ public unsafe interface INatives /// Max 1000. /// At -100 both helicopter rotors will stall. /// - float GetHeliTailBoomHealth(int vehicle); + float GetHeliTailBoomHealth(uint vehicle); void SetHeliMainRotorHealth(IVehicle vehicle, float health); - void SetHeliMainRotorHealth(int vehicle, float health); + void SetHeliMainRotorHealth(uint vehicle, float health); void SetHeliTailRotorHealth(IVehicle vehicle, float health); - void SetHeliTailRotorHealth(int vehicle, float health); + void SetHeliTailRotorHealth(uint vehicle, float health); bool SetHeliTailBoomCanBreakOff(IVehicle vehicle, bool toggle); - bool SetHeliTailBoomCanBreakOff(int vehicle, bool toggle); + bool SetHeliTailBoomCanBreakOff(uint vehicle, bool toggle); /// /// NOTE: Debugging functions are not present in the retail version of the game. /// @@ -23586,7 +23573,7 @@ public unsafe interface INatives /// /// NOTE: Debugging functions are not present in the retail version of the game. /// - void SetVehicleNameDebug(int vehicle, string name); + void SetVehicleNameDebug(uint vehicle, string name); /// /// Sets a vehicle to be strongly resistant to explosions. p0 is the vehicle; set p1 to false to toggle the effect on/off. /// @@ -23594,15 +23581,15 @@ public unsafe interface INatives /// /// Sets a vehicle to be strongly resistant to explosions. p0 is the vehicle; set p1 to false to toggle the effect on/off. /// - void SetVehicleExplodesOnHighExplosionDamage(int vehicle, bool toggle); + void SetVehicleExplodesOnHighExplosionDamage(uint vehicle, bool toggle); void SetVehicleExplodesOnExplosionDamageAtZeroBodyHealth(IVehicle vehicle, bool toggle); - void SetVehicleExplodesOnExplosionDamageAtZeroBodyHealth(int vehicle, bool toggle); + void SetVehicleExplodesOnExplosionDamageAtZeroBodyHealth(uint vehicle, bool toggle); void SetAllowVehicleExplodesOnContact(IVehicle vehicle, bool toggle); - void SetAllowVehicleExplodesOnContact(int vehicle, bool toggle); + void SetAllowVehicleExplodesOnContact(uint vehicle, bool toggle); void SetVehicleDisableTowing(IVehicle vehicle, bool toggle); - void SetVehicleDisableTowing(int vehicle, bool toggle); + void SetVehicleDisableTowing(uint vehicle, bool toggle); bool GetVehicleHasLandingGear(IVehicle vehicle); - bool GetVehicleHasLandingGear(int vehicle); + bool GetVehicleHasLandingGear(uint vehicle); /// /// Works for vehicles with a retractable landing gear /// Landing gear states: @@ -23620,7 +23607,7 @@ public unsafe interface INatives /// 2: Opening /// 3: Retracted /// - void ControlLandingGear(int vehicle, int state); + void ControlLandingGear(uint vehicle, int state); /// /// Landing gear states: /// 0: Deployed @@ -23640,14 +23627,14 @@ public unsafe interface INatives /// 4: Retracted /// Returns the current state of the vehicles landing gear. /// - int GetLandingGearState(int vehicle); + int GetLandingGearState(uint vehicle); bool IsAnyVehicleNearPoint(float x, float y, float z, float radius); void RequestVehicleHighDetailModel(IVehicle vehicle); - void RequestVehicleHighDetailModel(int vehicle); + void RequestVehicleHighDetailModel(uint vehicle); void RemoveVehicleHighDetailModel(IVehicle vehicle); - void RemoveVehicleHighDetailModel(int vehicle); + void RemoveVehicleHighDetailModel(uint vehicle); bool IsVehicleHighDetail(IVehicle vehicle); - bool IsVehicleHighDetail(int vehicle); + bool IsVehicleHighDetail(uint vehicle); /// /// REQUEST_VEHICLE_ASSET(GET_HASH_KEY(cargobob3), 3); /// vehicle found that have asset's: @@ -23665,15 +23652,15 @@ public unsafe interface INatives /// /// Sets how much the crane on the tow truck is raised, where 0.0 is fully lowered and 1.0 is fully raised. /// - void SetVehicleTowTruckArmPosition(int vehicle, float position); + void SetVehicleTowTruckArmPosition(uint vehicle, float position); /// /// HookOffset defines where the hook is attached. leave at 0 for default attachment. /// - void AttachVehicleToTowTruck(IVehicle towTruck, int vehicle, bool rear, float hookOffsetX, float hookOffsetY, float hookOffsetZ); + void AttachVehicleToTowTruck(IVehicle towTruck, uint vehicle, bool rear, float hookOffsetX, float hookOffsetY, float hookOffsetZ); /// /// HookOffset defines where the hook is attached. leave at 0 for default attachment. /// - void AttachVehicleToTowTruck(int towTruck, IVehicle vehicle, bool rear, float hookOffsetX, float hookOffsetY, float hookOffsetZ); + void AttachVehicleToTowTruck(uint towTruck, IVehicle vehicle, bool rear, float hookOffsetX, float hookOffsetY, float hookOffsetZ); /// /// HookOffset defines where the hook is attached. leave at 0 for default attachment. /// @@ -23681,15 +23668,15 @@ public unsafe interface INatives /// /// HookOffset defines where the hook is attached. leave at 0 for default attachment. /// - void AttachVehicleToTowTruck(int towTruck, int vehicle, bool rear, float hookOffsetX, float hookOffsetY, float hookOffsetZ); + void AttachVehicleToTowTruck(uint towTruck, uint vehicle, bool rear, float hookOffsetX, float hookOffsetY, float hookOffsetZ); /// /// First two parameters swapped. Scripts verify that towTruck is the first parameter, not the second. /// - void DetachVehicleFromTowTruck(IVehicle towTruck, int vehicle); + void DetachVehicleFromTowTruck(IVehicle towTruck, uint vehicle); /// /// First two parameters swapped. Scripts verify that towTruck is the first parameter, not the second. /// - void DetachVehicleFromTowTruck(int towTruck, IVehicle vehicle); + void DetachVehicleFromTowTruck(uint towTruck, IVehicle vehicle); /// /// First two parameters swapped. Scripts verify that towTruck is the first parameter, not the second. /// @@ -23697,17 +23684,17 @@ public unsafe interface INatives /// /// First two parameters swapped. Scripts verify that towTruck is the first parameter, not the second. /// - void DetachVehicleFromTowTruck(int towTruck, int vehicle); + void DetachVehicleFromTowTruck(uint towTruck, uint vehicle); bool DetachVehicleFromAnyTowTruck(IVehicle vehicle); - bool DetachVehicleFromAnyTowTruck(int vehicle); + bool DetachVehicleFromAnyTowTruck(uint vehicle); /// /// Scripts verify that towTruck is the first parameter, not the second. /// - bool IsVehicleAttachedToTowTruck(IVehicle towTruck, int vehicle); + bool IsVehicleAttachedToTowTruck(IVehicle towTruck, uint vehicle); /// /// Scripts verify that towTruck is the first parameter, not the second. /// - bool IsVehicleAttachedToTowTruck(int towTruck, IVehicle vehicle); + bool IsVehicleAttachedToTowTruck(uint towTruck, IVehicle vehicle); /// /// Scripts verify that towTruck is the first parameter, not the second. /// @@ -23715,11 +23702,11 @@ public unsafe interface INatives /// /// Scripts verify that towTruck is the first parameter, not the second. /// - bool IsVehicleAttachedToTowTruck(int towTruck, int vehicle); - int GetEntityAttachedToTowTruck(IVehicle towTruck); - int GetEntityAttachedToTowTruck(int towTruck); - int SetVehicleAutomaticallyAttaches(IVehicle vehicle, bool p1, int p2); - int SetVehicleAutomaticallyAttaches(int vehicle, bool p1, int p2); + bool IsVehicleAttachedToTowTruck(uint towTruck, uint vehicle); + uint GetEntityAttachedToTowTruck(IVehicle towTruck); + uint GetEntityAttachedToTowTruck(uint towTruck); + uint SetVehicleAutomaticallyAttaches(IVehicle vehicle, bool p1, int p2); + uint SetVehicleAutomaticallyAttaches(uint vehicle, bool p1, int p2); /// /// Sets the arm position of a bulldozer. Position must be a value between 0.0 and 1.0. Ignored when `p2` is set to false, instead incrementing arm position by 0.1 (or 10%). /// @@ -23727,23 +23714,23 @@ public unsafe interface INatives /// /// Sets the arm position of a bulldozer. Position must be a value between 0.0 and 1.0. Ignored when `p2` is set to false, instead incrementing arm position by 0.1 (or 10%). /// - void SetVehicleBulldozerArmPosition(int vehicle, float position, bool p2); + void SetVehicleBulldozerArmPosition(uint vehicle, float position, bool p2); void SetVehicleTankTurretPosition(IVehicle vehicle, float position, bool p2); - void SetVehicleTankTurretPosition(int vehicle, float position, bool p2); + void SetVehicleTankTurretPosition(uint vehicle, float position, bool p2); void SetVehicleTurretTarget(IVehicle vehicle, bool p1, float x, float y, float z, bool p5); - void SetVehicleTurretTarget(int vehicle, bool p1, float x, float y, float z, bool p5); + void SetVehicleTurretTarget(uint vehicle, bool p1, float x, float y, float z, bool p5); void SetVehicleTankStationary(IVehicle vehicle, bool p1); - void SetVehicleTankStationary(int vehicle, bool p1); + void SetVehicleTankStationary(uint vehicle, bool p1); void SetVehicleTurretSpeedThisFrame(IVehicle vehicle, float speed); - void SetVehicleTurretSpeedThisFrame(int vehicle, float speed); + void SetVehicleTurretSpeedThisFrame(uint vehicle, float speed); void DisableVehicleTurretMovementThisFrame(IVehicle vehicle); - void DisableVehicleTurretMovementThisFrame(int vehicle); + void DisableVehicleTurretMovementThisFrame(uint vehicle); void SetVehicleFlightNozzlePosition(IVehicle vehicle, float angleRatio); - void SetVehicleFlightNozzlePosition(int vehicle, float angleRatio); + void SetVehicleFlightNozzlePosition(uint vehicle, float angleRatio); void SetVehicleFlightNozzlePositionImmediate(IVehicle vehicle, float angle); - void SetVehicleFlightNozzlePositionImmediate(int vehicle, float angle); + void SetVehicleFlightNozzlePositionImmediate(uint vehicle, float angle); float GetVehicleFlightNozzlePosition(IVehicle plane); - float GetVehicleFlightNozzlePosition(int plane); + float GetVehicleFlightNozzlePosition(uint plane); /// /// True stops vtols from switching modes. Doesn't stop the sound though. /// @@ -23751,7 +23738,7 @@ public unsafe interface INatives /// /// True stops vtols from switching modes. Doesn't stop the sound though. /// - void SetDisableVerticalFlightModeTransition(int vehicle, bool toggle); + void SetDisableVerticalFlightModeTransition(uint vehicle, bool toggle); /// /// bool GenerateVehicleCreationPosFromPaths(ref Vector3 outVec, int p1, ref Vector3 outVec1, int p3, int p4, int p5, int p6, int p7, int p8); @@ -23762,7 +23749,7 @@ public unsafe interface INatives /// /// On accelerating, spins the driven wheels with the others braked, so you don't go anywhere. /// - void SetVehicleBurnout(int vehicle, bool toggle); + void SetVehicleBurnout(uint vehicle, bool toggle); /// /// Returns whether the specified vehicle is currently in a burnout. /// vb.net @@ -23778,7 +23765,7 @@ public unsafe interface INatives /// End Function /// /// Return Native.Function.Call(Of Boolean)(Hash.IS_VEHICLE_IN_BURNOUT, vh) - bool IsVehicleInBurnout(int vehicle); + bool IsVehicleInBurnout(uint vehicle); /// /// Reduces grip significantly so it's hard to go anywhere. /// @@ -23786,7 +23773,7 @@ public unsafe interface INatives /// /// Reduces grip significantly so it's hard to go anywhere. /// - void SetVehicleReduceGrip(int vehicle, bool toggle); + void SetVehicleReduceGrip(uint vehicle, bool toggle); /// /// Often used in conjunction with: SET_VEHICLE_REDUCE_GRIP /// @@ -23796,7 +23783,7 @@ public unsafe interface INatives /// Often used in conjunction with: SET_VEHICLE_REDUCE_GRIP /// /// is 0-3 - void SetVehicleReduceGripLevel(int vehicle, int val); + void SetVehicleReduceGripLevel(uint vehicle, int val); /// /// Sets the turn signal enabled for a vehicle. /// Set turnSignal to 1 for left light, 0 for right light. @@ -23806,13 +23793,13 @@ public unsafe interface INatives /// Sets the turn signal enabled for a vehicle. /// Set turnSignal to 1 for left light, 0 for right light. /// - void SetVehicleIndicatorLights(int vehicle, int turnSignal, bool toggle); + void SetVehicleIndicatorLights(uint vehicle, int turnSignal, bool toggle); void SetVehicleBrakeLights(IVehicle vehicle, bool toggle); - void SetVehicleBrakeLights(int vehicle, bool toggle); + void SetVehicleBrakeLights(uint vehicle, bool toggle); void SetVehicleHandbrake(IVehicle vehicle, bool toggle); - void SetVehicleHandbrake(int vehicle, bool toggle); + void SetVehicleHandbrake(uint vehicle, bool toggle); void SetVehicleBrake(IVehicle vehicle, bool toggle); - void SetVehicleBrake(int vehicle, bool toggle); + void SetVehicleBrake(uint vehicle, bool toggle); void InstantlyFillVehiclePopulation(); bool HasInstantFillVehiclePopulationFinished(); void NetworkEnableEmptyCrowdingVehiclesRemoval(bool toggle); @@ -23823,11 +23810,11 @@ public unsafe interface INatives /// /// Gets the trailer of a vehicle and puts it into the trailer parameter. /// - bool GetVehicleTrailerVehicle(IVehicle vehicle, ref int trailer); + bool GetVehicleTrailerVehicle(IVehicle vehicle, ref uint trailer); /// /// Gets the trailer of a vehicle and puts it into the trailer parameter. /// - bool GetVehicleTrailerVehicle(int vehicle, ref int trailer); + bool GetVehicleTrailerVehicle(uint vehicle, ref uint trailer); /// /// /// must be a plane @@ -23835,17 +23822,17 @@ public unsafe interface INatives /// /// /// must be a plane - void SetVehicleUsesLargeRearRamp(int vehicle, bool toggle); + void SetVehicleUsesLargeRearRamp(uint vehicle, bool toggle); void SetVehicleRudderBroken(IVehicle vehicle, bool toggle); - void SetVehicleRudderBroken(int vehicle, bool toggle); + void SetVehicleRudderBroken(uint vehicle, bool toggle); void SetConvertibleRoofLatchState(IVehicle vehicle, bool state); - void SetConvertibleRoofLatchState(int vehicle, bool state); + void SetConvertibleRoofLatchState(uint vehicle, bool state); float GetVehicleEstimatedMaxSpeed(IVehicle vehicle); - float GetVehicleEstimatedMaxSpeed(int vehicle); + float GetVehicleEstimatedMaxSpeed(uint vehicle); float GetVehicleMaxBraking(IVehicle vehicle); - float GetVehicleMaxBraking(int vehicle); + float GetVehicleMaxBraking(uint vehicle); float GetVehicleMaxTraction(IVehicle vehicle); - float GetVehicleMaxTraction(int vehicle); + float GetVehicleMaxTraction(uint vehicle); /// /// static - max acceleration /// @@ -23853,7 +23840,7 @@ public unsafe interface INatives /// /// static - max acceleration /// - float GetVehicleAcceleration(int vehicle); + float GetVehicleAcceleration(uint vehicle); /// /// Returns max speed (without mods) of the specified vehicle model in m/s. /// Full list of vehicles by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicles.json @@ -23899,9 +23886,9 @@ public unsafe interface INatives int AddRoadNodeSpeedZone(float x, float y, float z, float radius, float speed, bool p5); bool RemoveRoadNodeSpeedZone(int speedzone); void OpenBombBayDoors(IVehicle vehicle); - void OpenBombBayDoors(int vehicle); + void OpenBombBayDoors(uint vehicle); void CloseBombBayDoors(IVehicle vehicle); - void CloseBombBayDoors(int vehicle); + void CloseBombBayDoors(uint vehicle); /// /// Returns true when the bomb bay doors of this plane are open. False if they're closed. /// @@ -23909,7 +23896,7 @@ public unsafe interface INatives /// /// Returns true when the bomb bay doors of this plane are open. False if they're closed. /// - bool GetAreBombBayDoorsOpen(int aircraft); + bool GetAreBombBayDoorsOpen(uint aircraft); /// /// @Author Nac /// @@ -23919,7 +23906,7 @@ public unsafe interface INatives /// @Author Nac /// /// Possibly: Returns whether the searchlight (found on police vehicles) is toggled on. - bool IsVehicleSearchlightOn(int vehicle); + bool IsVehicleSearchlightOn(uint vehicle); /// /// Only works during nighttime. /// @@ -23927,9 +23914,9 @@ public unsafe interface INatives /// /// Only works during nighttime. /// - void SetVehicleSearchlight(int heli, bool toggle, bool canBeUsedByAI); + void SetVehicleSearchlight(uint heli, bool toggle, bool canBeUsedByAI); bool DoesVehicleHaveSearchlight(IVehicle vehicle); - bool DoesVehicleHaveSearchlight(int vehicle); + bool DoesVehicleHaveSearchlight(uint vehicle); /// /// Use GET_VEHICLE_MAX_NUMBER_OF_PASSENGERS(vehicle) - 1 for last seat index. /// @@ -23937,7 +23924,7 @@ public unsafe interface INatives /// = only relevant for bikes/motorcycles to check if the left (false)/right (true) side is blocked. /// = check if you can enter (true) or exit (false) a vehicle. /// Check if a vehicle seat is accessible. If you park your vehicle near a wall and the ped cannot enter/exit this side, the return value toggles from true (not blocked) to false (blocked). - bool IsEntryPointForSeatClear(IPlayer ped, int vehicle, int seatIndex, bool side, bool onEnter); + bool IsEntryPointForSeatClear(IPlayer ped, uint vehicle, int seatIndex, bool side, bool onEnter); /// /// Use GET_VEHICLE_MAX_NUMBER_OF_PASSENGERS(vehicle) - 1 for last seat index. /// @@ -23945,7 +23932,7 @@ public unsafe interface INatives /// = only relevant for bikes/motorcycles to check if the left (false)/right (true) side is blocked. /// = check if you can enter (true) or exit (false) a vehicle. /// Check if a vehicle seat is accessible. If you park your vehicle near a wall and the ped cannot enter/exit this side, the return value toggles from true (not blocked) to false (blocked). - bool IsEntryPointForSeatClear(int ped, IVehicle vehicle, int seatIndex, bool side, bool onEnter); + bool IsEntryPointForSeatClear(uint ped, IVehicle vehicle, int seatIndex, bool side, bool onEnter); /// /// Use GET_VEHICLE_MAX_NUMBER_OF_PASSENGERS(vehicle) - 1 for last seat index. /// @@ -23961,7 +23948,7 @@ public unsafe interface INatives /// = only relevant for bikes/motorcycles to check if the left (false)/right (true) side is blocked. /// = check if you can enter (true) or exit (false) a vehicle. /// Check if a vehicle seat is accessible. If you park your vehicle near a wall and the ped cannot enter/exit this side, the return value toggles from true (not blocked) to false (blocked). - bool IsEntryPointForSeatClear(int ped, int vehicle, int seatIndex, bool side, bool onEnter); + bool IsEntryPointForSeatClear(uint ped, uint vehicle, int seatIndex, bool side, bool onEnter); /// /// /// see SET_VEHICLE_DOOR_SHUT @@ -23969,11 +23956,11 @@ public unsafe interface INatives /// /// /// see SET_VEHICLE_DOOR_SHUT - Vector3 GetEntryPointPosition(int vehicle, int doorId); + Vector3 GetEntryPointPosition(uint vehicle, int doorId); bool CanShuffleSeat(IVehicle vehicle, int seatIndex); - bool CanShuffleSeat(int vehicle, int seatIndex); + bool CanShuffleSeat(uint vehicle, int seatIndex); int GetNumModKits(IVehicle vehicle); - int GetNumModKits(int vehicle); + int GetNumModKits(uint vehicle); /// /// Set modKit to 0 if you plan to call SET_VEHICLE_MOD. That's what the game does. Most body modifications through SET_VEHICLE_MOD will not take effect until this is set to 0. /// Full list of vehicle mod kits and mods by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleModKits.json @@ -23983,11 +23970,11 @@ public unsafe interface INatives /// Set modKit to 0 if you plan to call SET_VEHICLE_MOD. That's what the game does. Most body modifications through SET_VEHICLE_MOD will not take effect until this is set to 0. /// Full list of vehicle mod kits and mods by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/vehicleModKits.json /// - void SetVehicleModKit(int vehicle, int modKit); + void SetVehicleModKit(uint vehicle, int modKit); int GetVehicleModKit(IVehicle vehicle); - int GetVehicleModKit(int vehicle); + int GetVehicleModKit(uint vehicle); int GetVehicleModKitType(IVehicle vehicle); - int GetVehicleModKitType(int vehicle); + int GetVehicleModKitType(uint vehicle); /// /// Returns an int /// Wheel Types: @@ -24013,7 +24000,7 @@ public unsafe interface INatives /// 6: Bike Wheels /// See NativeDB for reference: http://natives.altv.mp/#/0xB3ED1BFB4BE636DC /// - int GetVehicleWheelType(int vehicle); + int GetVehicleWheelType(uint vehicle); /// /// 0: Sport /// 1: Muscle @@ -24039,7 +24026,7 @@ public unsafe interface INatives /// 8: Benny's Originals /// See NativeDB for reference: http://natives.altv.mp/#/0x487EB21CC7295BA1 /// - void SetVehicleWheelType(int vehicle, int WheelType); + void SetVehicleWheelType(uint vehicle, int WheelType); /// /// 0: Normal /// 1: Metallic @@ -24075,7 +24062,7 @@ public unsafe interface INatives /// /// https /// seems to always be 0. - void SetVehicleModColor1(int vehicle, int paintType, int color, int pearlescentColor); + void SetVehicleModColor1(uint vehicle, int paintType, int color, int pearlescentColor); /// /// Changes the secondary paint type and color /// 0: Normal @@ -24101,19 +24088,19 @@ public unsafe interface INatives /// color: number of the color /// /// https - void SetVehicleModColor2(int vehicle, int paintType, int color); + void SetVehicleModColor2(uint vehicle, int paintType, int color); /// /// void GetVehicleModColor1(IVehicle vehicle, ref int paintType, ref int color, ref int pearlescentColor); /// /// - void GetVehicleModColor1(int vehicle, ref int paintType, ref int color, ref int pearlescentColor); + void GetVehicleModColor1(uint vehicle, ref int paintType, ref int color, ref int pearlescentColor); /// /// void GetVehicleModColor2(IVehicle vehicle, ref int paintType, ref int color); /// /// - void GetVehicleModColor2(int vehicle, ref int paintType, ref int color); + void GetVehicleModColor2(uint vehicle, ref int paintType, ref int color); /// /// Returns a string which is the codename of the vehicle's currently selected primary color /// @@ -24123,7 +24110,7 @@ public unsafe interface INatives /// Returns a string which is the codename of the vehicle's currently selected primary color /// /// is always 0 - string GetVehicleModColor1Name(int vehicle, bool p1); + string GetVehicleModColor1Name(uint vehicle, bool p1); /// /// Returns a string which is the codename of the vehicle's currently selected secondary color /// @@ -24131,9 +24118,9 @@ public unsafe interface INatives /// /// Returns a string which is the codename of the vehicle's currently selected secondary color /// - string GetVehicleModColor2Name(int vehicle); + string GetVehicleModColor2Name(uint vehicle); bool HaveVehicleModsStreamedIn(IVehicle vehicle); - bool HaveVehicleModsStreamedIn(int vehicle); + bool HaveVehicleModsStreamedIn(uint vehicle); /// /// Returns true for any mod part listed in GEN9_EXCLUSIVE_ASSETS_VEHICLES_FILE. /// @@ -24141,7 +24128,7 @@ public unsafe interface INatives /// /// Returns true for any mod part listed in GEN9_EXCLUSIVE_ASSETS_VEHICLES_FILE. /// - bool IsVehicleModGen9Exclusive(int vehicle, int modType, int modIndex); + bool IsVehicleModGen9Exclusive(uint vehicle, int modType, int modIndex); /// /// In b944, there are 50 (0 - 49) mod types. /// Sets the vehicle mod. @@ -24167,7 +24154,7 @@ public unsafe interface INatives /// Side Skirt - 3 /// See NativeDB for reference: http://natives.altv.mp/#/0x6AF0636DDEDCB6DD /// - void SetVehicleMod(int vehicle, int modType, int modIndex, bool customTires); + void SetVehicleMod(uint vehicle, int modType, int modIndex, bool customTires); /// /// In b944, there are 50 (0 - 49) mod types. See SET_VEHICLE_MOD for the list. /// Returns -1 if the vehicle mod is stock @@ -24177,7 +24164,7 @@ public unsafe interface INatives /// In b944, there are 50 (0 - 49) mod types. See SET_VEHICLE_MOD for the list. /// Returns -1 if the vehicle mod is stock /// - int GetVehicleMod(int vehicle, int modType); + int GetVehicleMod(uint vehicle, int modType); /// /// /// Only used for wheels(ModType = 23/24) Returns true if the wheels are custom wheels @@ -24185,7 +24172,7 @@ public unsafe interface INatives /// /// /// Only used for wheels(ModType = 23/24) Returns true if the wheels are custom wheels - int GetVehicleModVariation(int vehicle, int modType); + int GetVehicleModVariation(uint vehicle, int modType); /// /// Returns how many possible mods a vehicle has for a given mod type /// @@ -24193,9 +24180,9 @@ public unsafe interface INatives /// /// Returns how many possible mods a vehicle has for a given mod type /// - int GetNumVehicleMods(int vehicle, int modType); + int GetNumVehicleMods(uint vehicle, int modType); void RemoveVehicleMod(IVehicle vehicle, int modType); - void RemoveVehicleMod(int vehicle, int modType); + void RemoveVehicleMod(uint vehicle, int modType); /// /// Toggles: /// UNK17 - 17 @@ -24215,9 +24202,9 @@ public unsafe interface INatives /// UNK21 - 21 /// Xenon Headlights - 22 /// - void ToggleVehicleMod(int vehicle, int modType, bool toggle); + void ToggleVehicleMod(uint vehicle, int modType, bool toggle); bool IsToggleModOn(IVehicle vehicle, int modType); - bool IsToggleModOn(int vehicle, int modType); + bool IsToggleModOn(uint vehicle, int modType); /// /// Returns the text label of a mod type for a given vehicle /// Use GET_FILENAME_FOR_AUDIO_CONVERSATION to get the part name in the game's language @@ -24227,7 +24214,7 @@ public unsafe interface INatives /// Returns the text label of a mod type for a given vehicle /// Use GET_FILENAME_FOR_AUDIO_CONVERSATION to get the part name in the game's language /// - string GetModTextLabel(int vehicle, int modType, int modValue); + string GetModTextLabel(uint vehicle, int modType, int modValue); /// /// Returns the name for the type of vehicle mod(Armour, engine etc) /// @@ -24235,7 +24222,7 @@ public unsafe interface INatives /// /// Returns the name for the type of vehicle mod(Armour, engine etc) /// - string GetModSlotName(int vehicle, int modType); + string GetModSlotName(uint vehicle, int modType); /// /// Returns the text label of the vehicle's liveryIndex, as specified by the liveryNames section of the vehicle's modkit data in the carcols file. /// example @@ -24261,9 +24248,9 @@ public unsafe interface INatives /// for example for Sanchez we get /// See NativeDB for reference: http://natives.altv.mp/#/0xB4C7A93837C91A1F /// - string GetLiveryName(int vehicle, int liveryIndex); + string GetLiveryName(uint vehicle, int liveryIndex); int GetVehicleModModifierValue(IVehicle vehicle, int modType, int modIndex); - int GetVehicleModModifierValue(int vehicle, int modType, int modIndex); + int GetVehicleModModifierValue(uint vehicle, int modType, int modIndex); /// /// Can be used for IS_DLC_VEHICLE_MOD and GET_DLC_VEHICLE_MOD_LOCK_HASH /// @@ -24271,13 +24258,13 @@ public unsafe interface INatives /// /// Can be used for IS_DLC_VEHICLE_MOD and GET_DLC_VEHICLE_MOD_LOCK_HASH /// - uint GetVehicleModIdentifierHash(int vehicle, int modType, int modIndex); + uint GetVehicleModIdentifierHash(uint vehicle, int modType, int modIndex); void PreloadVehicleMod(IVehicle vehicle, int modType, int modIndex); - void PreloadVehicleMod(int vehicle, int modType, int modIndex); + void PreloadVehicleMod(uint vehicle, int modType, int modIndex); bool HasPreloadModsFinished(IVehicle vehicle); - bool HasPreloadModsFinished(int vehicle); + bool HasPreloadModsFinished(uint vehicle); void ReleasePreloadMods(IVehicle vehicle); - void ReleasePreloadMods(int vehicle); + void ReleasePreloadMods(uint vehicle); /// /// Sets the tire smoke's color of this vehicle. /// Note: setting r,g,b to 0 will give the car the "Patriot" tire smoke. @@ -24295,13 +24282,13 @@ public unsafe interface INatives /// The red level in the RGB color code. /// The green level in the RGB color code. /// The blue level in the RGB color code. - void SetVehicleTyreSmokeColor(int vehicle, int r, int g, int b); + void SetVehicleTyreSmokeColor(uint vehicle, int r, int g, int b); /// /// void GetVehicleTyreSmokeColor(IVehicle vehicle, ref int r, ref int g, ref int b); /// /// - void GetVehicleTyreSmokeColor(int vehicle, ref int r, ref int g, ref int b); + void GetVehicleTyreSmokeColor(uint vehicle, ref int r, ref int g, ref int b); /// /// enum WindowTints /// { @@ -24327,9 +24314,9 @@ public unsafe interface INatives /// WINDOWTINT_GREEN /// See NativeDB for reference: http://natives.altv.mp/#/0x57C51E6BAD752696 /// - void SetVehicleWindowTint(int vehicle, int tint); + void SetVehicleWindowTint(uint vehicle, int tint); int GetVehicleWindowTint(IVehicle vehicle); - int GetVehicleWindowTint(int vehicle); + int GetVehicleWindowTint(uint vehicle); int GetNumVehicleWindowTints(); /// /// What's this for? Primary and Secondary RGB have their own natives and this one doesn't seem specific. @@ -24338,7 +24325,7 @@ public unsafe interface INatives /// /// What's this for? Primary and Secondary RGB have their own natives and this one doesn't seem specific. /// - void GetVehicleColor(int vehicle, ref int r, ref int g, ref int b); + void GetVehicleColor(uint vehicle, ref int r, ref int g, ref int b); /// /// Some kind of flags. /// @@ -24346,7 +24333,7 @@ public unsafe interface INatives /// /// Some kind of flags. /// - int GetVehicleColoursWhichCanBeSet(int vehicle); + int GetVehicleColoursWhichCanBeSet(uint vehicle); /// /// iVar3 = get_vehicle_cause_of_destruction(uLocal_248[iVar2]); /// if (iVar3 == joaat("weapon_stickybomb")) @@ -24364,7 +24351,7 @@ public unsafe interface INatives /// iLocal_260 = 1; /// } /// - uint GetVehicleCauseOfDestruction(int vehicle); + uint GetVehicleCauseOfDestruction(uint vehicle); /// /// Used for helis. /// @@ -24372,7 +24359,7 @@ public unsafe interface INatives /// /// Used for helis. /// - void OverridePlaneDamageThrehsold(int vehicle, float health); + void OverridePlaneDamageThrehsold(uint vehicle, float health); /// /// From the driver's perspective, is the left headlight broken. /// @@ -24380,7 +24367,7 @@ public unsafe interface INatives /// /// From the driver's perspective, is the left headlight broken. /// - bool GetIsLeftVehicleHeadlightDamaged(int vehicle); + bool GetIsLeftVehicleHeadlightDamaged(uint vehicle); /// /// From the driver's perspective, is the right headlight broken. /// @@ -24388,7 +24375,7 @@ public unsafe interface INatives /// /// From the driver's perspective, is the right headlight broken. /// - bool GetIsRightVehicleHeadlightDamaged(int vehicle); + bool GetIsRightVehicleHeadlightDamaged(uint vehicle); /// /// Returns true when both headlights are broken. This does not include extralights. /// @@ -24396,9 +24383,9 @@ public unsafe interface INatives /// /// Returns true when both headlights are broken. This does not include extralights. /// - bool GetBothVehicleHeadlightsDamaged(int vehicle); + bool GetBothVehicleHeadlightsDamaged(uint vehicle); void ModifyVehicleTopSpeed(IVehicle vehicle, float value); - void ModifyVehicleTopSpeed(int vehicle, float value); + void ModifyVehicleTopSpeed(uint vehicle, float value); /// /// To reset the max speed, set the `speed` value to `0.0` or lower. /// @@ -24406,7 +24393,7 @@ public unsafe interface INatives /// /// To reset the max speed, set the `speed` value to `0.0` or lower. /// - void SetVehicleMaxSpeed(int vehicle, float speed); + void SetVehicleMaxSpeed(uint vehicle, float speed); /// /// Has something to do with trains. Always precedes SET_MISSION_TRAIN_AS_NO_LONGER_NEEDED. /// May be true that it can be used with trains not sure, but not specifically for trains. Go find Xbox360 decompiled scripts and search for 'func_1333' in freemode.c it isn't used just for trains. Thanks for the info tho. @@ -24416,9 +24403,9 @@ public unsafe interface INatives /// Has something to do with trains. Always precedes SET_MISSION_TRAIN_AS_NO_LONGER_NEEDED. /// May be true that it can be used with trains not sure, but not specifically for trains. Go find Xbox360 decompiled scripts and search for 'func_1333' in freemode.c it isn't used just for trains. Thanks for the info tho. /// - void SetVehicleStaysFrozenWhenCleanedUp(int vehicle, bool toggle); + void SetVehicleStaysFrozenWhenCleanedUp(uint vehicle, bool toggle); void SetVehicleActAsIfHighSpeedForFragSmashing(IVehicle vehicle, bool p1); - void SetVehicleActAsIfHighSpeedForFragSmashing(int vehicle, bool p1); + void SetVehicleActAsIfHighSpeedForFragSmashing(uint vehicle, bool p1); /// /// Sets some bit and float of vehicle. float is >= 0 /// @@ -24426,11 +24413,11 @@ public unsafe interface INatives /// /// Sets some bit and float of vehicle. float is >= 0 /// - void SetPedsCanFallOffThisVehicleFromLargeFallDamage(int vehicle, bool toggle, float p2); + void SetPedsCanFallOffThisVehicleFromLargeFallDamage(uint vehicle, bool toggle, float p2); int AddVehicleCombatAngledAvoidanceArea(float p0, float p1, float p2, float p3, float p4, float p5, float p6); void RemoveVehicleCombatAvoidanceArea(int p0); bool IsAnyPedRappellingFromHeli(IVehicle vehicle); - bool IsAnyPedRappellingFromHeli(int vehicle); + bool IsAnyPedRappellingFromHeli(uint vehicle); /// /// <1.0 - Decreased torque /// =1.0 - Default torque @@ -24448,7 +24435,7 @@ public unsafe interface INatives /// This needs to be called every frame to take effect. /// /// - is between 0.2 and 1.8 in the decompiled scripts. - void SetVehicleCheatPowerIncrease(int vehicle, float value); + void SetVehicleCheatPowerIncrease(uint vehicle, float value); void SetVehicleInfluencesWantedLevel(int p0, bool p1); /// /// Sets the wanted state of this vehicle. @@ -24457,7 +24444,7 @@ public unsafe interface INatives /// /// Sets the wanted state of this vehicle. /// - void SetVehicleIsWanted(int vehicle, bool state); + void SetVehicleIsWanted(uint vehicle, bool state); /// /// Sets the boat boom position for the `TR3` trailer. /// To get the current boom position ratio, use GET_BOAT_BOOM_POSITION_RATIO @@ -24469,7 +24456,7 @@ public unsafe interface INatives /// To get the current boom position ratio, use GET_BOAT_BOOM_POSITION_RATIO /// /// value is between `0.0` and `1.0`, where `0.0` is 90 degrees to the left of the boat, and `1.0` is just slightly to the right/back of the boat. - void SwingBoatBoomToRatio(int vehicle, float ratio); + void SwingBoatBoomToRatio(uint vehicle, float ratio); /// /// Same call as ALLOW_BOAT_BOOM_TO_ANIMATE /// @@ -24477,13 +24464,13 @@ public unsafe interface INatives /// /// Same call as ALLOW_BOAT_BOOM_TO_ANIMATE /// - void SwingBoatBoomFreely(int vehicle, bool toggle); + void SwingBoatBoomFreely(uint vehicle, bool toggle); void AllowBoatBoomToAnimate(IVehicle vehicle, bool toggle); - void AllowBoatBoomToAnimate(int vehicle, bool toggle); + void AllowBoatBoomToAnimate(uint vehicle, bool toggle); float GetBoatBoomPositionRatio(IVehicle vehicle); - float GetBoatBoomPositionRatio(int vehicle); + float GetBoatBoomPositionRatio(uint vehicle); void DisablePlaneAileron(IVehicle vehicle, bool p1, bool p2); - void DisablePlaneAileron(int vehicle, bool p1, bool p2); + void DisablePlaneAileron(uint vehicle, bool p1, bool p2); /// /// Returns true when in a vehicle, false whilst entering/exiting. /// @@ -24491,9 +24478,9 @@ public unsafe interface INatives /// /// Returns true when in a vehicle, false whilst entering/exiting. /// - bool GetIsVehicleEngineRunning(int vehicle); + bool GetIsVehicleEngineRunning(uint vehicle); void SetVehicleUseAlternateHandling(IVehicle vehicle, bool toggle); - void SetVehicleUseAlternateHandling(int vehicle, bool toggle); + void SetVehicleUseAlternateHandling(uint vehicle, bool toggle); /// /// Only works on bikes, both X and Y work in the -1 - 1 range. /// Example with X -1/Y 1 @@ -24509,23 +24496,23 @@ public unsafe interface INatives /// /// forces the bike to turn left or right (-1, 1) /// forces the bike to lean to the left or to the right (-1, 1) - void SetBikeOnStand(int vehicle, float x, float y); + void SetBikeOnStand(uint vehicle, float x, float y); void SetVehicleNotStealableAmbiently(IVehicle vehicle, bool p1); - void SetVehicleNotStealableAmbiently(int vehicle, bool p1); + void SetVehicleNotStealableAmbiently(uint vehicle, bool p1); void LockDoorsWhenNoLongerNeeded(IVehicle vehicle); - void LockDoorsWhenNoLongerNeeded(int vehicle); + void LockDoorsWhenNoLongerNeeded(uint vehicle); void SetLastDrivenVehicle(IVehicle vehicle); - void SetLastDrivenVehicle(int vehicle); - int GetLastDrivenVehicle(); + void SetLastDrivenVehicle(uint vehicle); + uint GetLastDrivenVehicle(); void ClearLastDrivenVehicle(); void SetVehicleHasBeenDrivenFlag(IVehicle vehicle, bool toggle); - void SetVehicleHasBeenDrivenFlag(int vehicle, bool toggle); + void SetVehicleHasBeenDrivenFlag(uint vehicle, bool toggle); void SetTaskVehicleGotoPlaneMinHeightAboveTerrain(IVehicle plane, int height); - void SetTaskVehicleGotoPlaneMinHeightAboveTerrain(int plane, int height); + void SetTaskVehicleGotoPlaneMinHeightAboveTerrain(uint plane, int height); void SetVehicleLodMultiplier(IVehicle vehicle, float multiplier); - void SetVehicleLodMultiplier(int vehicle, float multiplier); + void SetVehicleLodMultiplier(uint vehicle, float multiplier); void SetVehicleCanSaveInGarage(IVehicle vehicle, bool toggle); - void SetVehicleCanSaveInGarage(int vehicle, bool toggle); + void SetVehicleCanSaveInGarage(uint vehicle, bool toggle); /// /// Also includes some "turnOffBones" when vehicle mods are installed. /// @@ -24533,9 +24520,9 @@ public unsafe interface INatives /// /// Also includes some "turnOffBones" when vehicle mods are installed. /// - int GetVehicleNumOfBrokenOffParts(int vehicle); + int GetVehicleNumOfBrokenOffParts(uint vehicle); int GetVehicleNumOfBrokenLoosenParts(IVehicle vehicle); - int GetVehicleNumOfBrokenLoosenParts(int vehicle); + int GetVehicleNumOfBrokenLoosenParts(uint vehicle); void SetForceVehicleEngineDamageByBullet(int p0, bool p1); /// /// Allows creation of CEventShockingPlaneFlyby, CEventShockingHelicopterOverhead, and other(?) Shocking events @@ -24544,15 +24531,15 @@ public unsafe interface INatives /// /// Allows creation of CEventShockingPlaneFlyby, CEventShockingHelicopterOverhead, and other(?) Shocking events /// - void SetVehicleGeneratesEngineShockingEvents(int vehicle, bool toggle); + void SetVehicleGeneratesEngineShockingEvents(uint vehicle, bool toggle); /// /// Copies sourceVehicle's damage (broken bumpers, broken lights, etc.) to targetVehicle. /// - void CopyVehicleDamages(IVehicle sourceVehicle, int targetVehicle); + void CopyVehicleDamages(IVehicle sourceVehicle, uint targetVehicle); /// /// Copies sourceVehicle's damage (broken bumpers, broken lights, etc.) to targetVehicle. /// - void CopyVehicleDamages(int sourceVehicle, IVehicle targetVehicle); + void CopyVehicleDamages(uint sourceVehicle, IVehicle targetVehicle); /// /// Copies sourceVehicle's damage (broken bumpers, broken lights, etc.) to targetVehicle. /// @@ -24560,19 +24547,19 @@ public unsafe interface INatives /// /// Copies sourceVehicle's damage (broken bumpers, broken lights, etc.) to targetVehicle. /// - void CopyVehicleDamages(int sourceVehicle, int targetVehicle); + void CopyVehicleDamages(uint sourceVehicle, uint targetVehicle); void DisableVehicleExplosionBreakOffParts(); void SetLightsCutoffDistanceTweak(float distance); /// /// Commands the driver of an armed vehicle (p0) to shoot its weapon at a target (p1). p3, p4 and p5 are the coordinates of the target. Example: /// WEAPON::SET_CURRENT_PED_VEHICLE_WEAPON(pilot,MISC::GET_HASH_KEY("VEHICLE_WEAPON_PLANE_ROCKET")); VEHICLE::SET_VEHICLE_SHOOT_AT_TARGET(pilot, target, targPos.x, targPos.y, targPos.z); /// - void SetVehicleShootAtTarget(IPlayer driver, int entity, float xTarget, float yTarget, float zTarget); + void SetVehicleShootAtTarget(IPlayer driver, uint entity, float xTarget, float yTarget, float zTarget); /// /// Commands the driver of an armed vehicle (p0) to shoot its weapon at a target (p1). p3, p4 and p5 are the coordinates of the target. Example: /// WEAPON::SET_CURRENT_PED_VEHICLE_WEAPON(pilot,MISC::GET_HASH_KEY("VEHICLE_WEAPON_PLANE_ROCKET")); VEHICLE::SET_VEHICLE_SHOOT_AT_TARGET(pilot, target, targPos.x, targPos.y, targPos.z); /// - void SetVehicleShootAtTarget(int driver, IEntity entity, float xTarget, float yTarget, float zTarget); + void SetVehicleShootAtTarget(uint driver, IEntity entity, float xTarget, float yTarget, float zTarget); /// /// Commands the driver of an armed vehicle (p0) to shoot its weapon at a target (p1). p3, p4 and p5 are the coordinates of the target. Example: /// WEAPON::SET_CURRENT_PED_VEHICLE_WEAPON(pilot,MISC::GET_HASH_KEY("VEHICLE_WEAPON_PLANE_ROCKET")); VEHICLE::SET_VEHICLE_SHOOT_AT_TARGET(pilot, target, targPos.x, targPos.y, targPos.z); @@ -24582,19 +24569,19 @@ public unsafe interface INatives /// Commands the driver of an armed vehicle (p0) to shoot its weapon at a target (p1). p3, p4 and p5 are the coordinates of the target. Example: /// WEAPON::SET_CURRENT_PED_VEHICLE_WEAPON(pilot,MISC::GET_HASH_KEY("VEHICLE_WEAPON_PLANE_ROCKET")); VEHICLE::SET_VEHICLE_SHOOT_AT_TARGET(pilot, target, targPos.x, targPos.y, targPos.z); /// - void SetVehicleShootAtTarget(int driver, int entity, float xTarget, float yTarget, float zTarget); + void SetVehicleShootAtTarget(uint driver, uint entity, float xTarget, float yTarget, float zTarget); /// /// - bool GetVehicleLockOnTarget(IVehicle vehicle, ref int entity); + bool GetVehicleLockOnTarget(IVehicle vehicle, ref uint entity); /// /// - bool GetVehicleLockOnTarget(int vehicle, ref int entity); + bool GetVehicleLockOnTarget(uint vehicle, ref uint entity); void SetForceHdVehicle(IVehicle vehicle, bool toggle); - void SetForceHdVehicle(int vehicle, bool toggle); + void SetForceHdVehicle(uint vehicle, bool toggle); void SetVehicleCustomPathNodeStreamingRadius(IVehicle vehicle, float p1); - void SetVehicleCustomPathNodeStreamingRadius(int vehicle, float p1); + void SetVehicleCustomPathNodeStreamingRadius(uint vehicle, float p1); int GetVehiclePlateType(IVehicle vehicle); - int GetVehiclePlateType(int vehicle); + int GetVehiclePlateType(uint vehicle); /// /// in script hook .net /// Function.Call(Hash.TRACK_VEHICLE_VISIBILITY, v.Handle); @@ -24606,7 +24593,7 @@ public unsafe interface INatives /// Function.Call(Hash.TRACK_VEHICLE_VISIBILITY, v.Handle); /// /// v = ...; - void TrackVehicleVisibility(int vehicle); + void TrackVehicleVisibility(uint vehicle); /// /// must be called after TRACK_VEHICLE_VISIBILITY /// it's not instant so probabilly must pass an 'update' to see correct result. @@ -24616,9 +24603,9 @@ public unsafe interface INatives /// must be called after TRACK_VEHICLE_VISIBILITY /// it's not instant so probabilly must pass an 'update' to see correct result. /// - bool IsVehicleVisible(int vehicle); + bool IsVehicleVisible(uint vehicle); void SetVehicleGravity(IVehicle vehicle, bool toggle); - void SetVehicleGravity(int vehicle, bool toggle); + void SetVehicleGravity(uint vehicle, bool toggle); /// /// Enable/Disables global slipstream physics /// @@ -24631,7 +24618,7 @@ public unsafe interface INatives /// /// Returns a float value between 0.0 and 3.0 related to its slipstream draft (boost/speedup). /// - float GetVehicleCurrentTimeInSlipStream(int vehicle); + float GetVehicleCurrentTimeInSlipStream(uint vehicle); /// /// Returns true if the vehicle is being slipstreamed by another vehicle /// @@ -24639,11 +24626,11 @@ public unsafe interface INatives /// /// Returns true if the vehicle is being slipstreamed by another vehicle /// - bool IsVehicleProducingSlipStream(int vehicle); + bool IsVehicleProducingSlipStream(uint vehicle); void SetVehicleInactiveDuringPlayback(IVehicle vehicle, bool toggle); - void SetVehicleInactiveDuringPlayback(int vehicle, bool toggle); + void SetVehicleInactiveDuringPlayback(uint vehicle, bool toggle); void SetVehicleActiveDuringPlayback(IVehicle vehicle, bool toggle); - void SetVehicleActiveDuringPlayback(int vehicle, bool toggle); + void SetVehicleActiveDuringPlayback(uint vehicle, bool toggle); /// /// Returns false if the vehicle has the FLAG_NO_RESPRAY flag set. /// @@ -24651,9 +24638,9 @@ public unsafe interface INatives /// /// Returns false if the vehicle has the FLAG_NO_RESPRAY flag set. /// - bool IsVehicleSprayable(int vehicle); + bool IsVehicleSprayable(uint vehicle); void SetVehicleEngineCanDegrade(IVehicle vehicle, bool toggle); - void SetVehicleEngineCanDegrade(int vehicle, bool toggle); + void SetVehicleEngineCanDegrade(uint vehicle, bool toggle); /// /// Adds some kind of shadow to the vehicle. /// @@ -24663,7 +24650,7 @@ public unsafe interface INatives /// Adds some kind of shadow to the vehicle. /// /// and p2 use values from 0-255 and both make the shadow darker the lower the value is. -1 disables the effect. - void DisableVehcileDynamicAmbientScales(int vehicle, int p1, int p2); + void DisableVehcileDynamicAmbientScales(uint vehicle, int p1, int p2); /// /// Remove the weird shadow applied by DISABLE_VEHCILE_DYNAMIC_AMBIENT_SCALES. /// @@ -24671,15 +24658,15 @@ public unsafe interface INatives /// /// Remove the weird shadow applied by DISABLE_VEHCILE_DYNAMIC_AMBIENT_SCALES. /// - void EnableVehicleDynamicAmbientScales(int vehicle); + void EnableVehicleDynamicAmbientScales(uint vehicle); bool IsPlaneLandingGearIntact(IVehicle plane); - bool IsPlaneLandingGearIntact(int plane); + bool IsPlaneLandingGearIntact(uint plane); bool ArePlanePropellersIntact(IVehicle plane); - bool ArePlanePropellersIntact(int plane); + bool ArePlanePropellersIntact(uint plane); bool SetPlanePropellerHealth(IVehicle plane, float health); - bool SetPlanePropellerHealth(int plane, float health); + bool SetPlanePropellerHealth(uint plane, float health); void SetVehicleCanDeformWheels(IVehicle vehicle, bool toggle); - void SetVehicleCanDeformWheels(int vehicle, bool toggle); + void SetVehicleCanDeformWheels(uint vehicle, bool toggle); /// /// /// Only returns true if the vehicle was marked as stolen with SET_VEHICLE_IS_STOLEN. @@ -24687,9 +24674,9 @@ public unsafe interface INatives /// /// /// Only returns true if the vehicle was marked as stolen with SET_VEHICLE_IS_STOLEN. - bool IsVehicleStolen(int vehicle); + bool IsVehicleStolen(uint vehicle); void SetVehicleIsStolen(IVehicle vehicle, bool isStolen); - void SetVehicleIsStolen(int vehicle, bool isStolen); + void SetVehicleIsStolen(uint vehicle, bool isStolen); /// /// This native sets the turbulence multiplier. It only works for planes. /// 0.0 = no turbulence at all. @@ -24703,9 +24690,9 @@ public unsafe interface INatives /// 1.0 = heavy turbulence. /// Works by just calling it once, does not need to be called every tick. /// - void SetPlaneTurbulenceMultiplier(int vehicle, float multiplier); + void SetPlaneTurbulenceMultiplier(uint vehicle, float multiplier); bool AreWingsOfPlaneIntact(IVehicle plane); - bool AreWingsOfPlaneIntact(int plane); + bool AreWingsOfPlaneIntact(uint plane); /// /// This native doesn't seem to do anything, might be a debug-only native. /// Confirmed, it is a debug native. @@ -24715,34 +24702,34 @@ public unsafe interface INatives /// This native doesn't seem to do anything, might be a debug-only native. /// Confirmed, it is a debug native. /// - void AllowAmbientVehiclesToAvoidAdverseConditions(int vehicle); - void DetachVehicleFromCargobob(IVehicle vehicle, int cargobob); - void DetachVehicleFromCargobob(int vehicle, IVehicle cargobob); + void AllowAmbientVehiclesToAvoidAdverseConditions(uint vehicle); + void DetachVehicleFromCargobob(IVehicle vehicle, uint cargobob); + void DetachVehicleFromCargobob(uint vehicle, IVehicle cargobob); void DetachVehicleFromCargobob(IVehicle vehicle, IVehicle cargobob); - void DetachVehicleFromCargobob(int vehicle, int cargobob); + void DetachVehicleFromCargobob(uint vehicle, uint cargobob); bool DetachVehicleFromAnyCargobob(IVehicle vehicle); - bool DetachVehicleFromAnyCargobob(int vehicle); - bool DetachEntityFromCargobob(IVehicle cargobob, int entity); - bool DetachEntityFromCargobob(int cargobob, IEntity entity); + bool DetachVehicleFromAnyCargobob(uint vehicle); + bool DetachEntityFromCargobob(IVehicle cargobob, uint entity); + bool DetachEntityFromCargobob(uint cargobob, IEntity entity); bool DetachEntityFromCargobob(IVehicle cargobob, IEntity entity); - bool DetachEntityFromCargobob(int cargobob, int entity); - bool IsVehicleAttachedToCargobob(IVehicle cargobob, int vehicleAttached); - bool IsVehicleAttachedToCargobob(int cargobob, IVehicle vehicleAttached); + bool DetachEntityFromCargobob(uint cargobob, uint entity); + bool IsVehicleAttachedToCargobob(IVehicle cargobob, uint vehicleAttached); + bool IsVehicleAttachedToCargobob(uint cargobob, IVehicle vehicleAttached); bool IsVehicleAttachedToCargobob(IVehicle cargobob, IVehicle vehicleAttached); - bool IsVehicleAttachedToCargobob(int cargobob, int vehicleAttached); + bool IsVehicleAttachedToCargobob(uint cargobob, uint vehicleAttached); /// /// Returns attached vehicle (Vehicle in parameter must be cargobob) /// - int GetVehicleAttachedToCargobob(IVehicle cargobob); + uint GetVehicleAttachedToCargobob(IVehicle cargobob); /// /// Returns attached vehicle (Vehicle in parameter must be cargobob) /// - int GetVehicleAttachedToCargobob(int cargobob); - int GetEntityAttachedToCargobob(int p0); - void AttachVehicleToCargobob(IVehicle vehicle, int cargobob, int p2, float x, float y, float z); - void AttachVehicleToCargobob(int vehicle, IVehicle cargobob, int p2, float x, float y, float z); + uint GetVehicleAttachedToCargobob(uint cargobob); + uint GetEntityAttachedToCargobob(int p0); + void AttachVehicleToCargobob(IVehicle vehicle, uint cargobob, int p2, float x, float y, float z); + void AttachVehicleToCargobob(uint vehicle, IVehicle cargobob, int p2, float x, float y, float z); void AttachVehicleToCargobob(IVehicle vehicle, IVehicle cargobob, int p2, float x, float y, float z); - void AttachVehicleToCargobob(int vehicle, int cargobob, int p2, float x, float y, float z); + void AttachVehicleToCargobob(uint vehicle, uint cargobob, int p2, float x, float y, float z); void AttachEntityToCargobob(int p0, int p1, int p2, int p3, int p4, int p5); /// /// Stops cargobob from being able to detach the attached vehicle. @@ -24751,7 +24738,7 @@ public unsafe interface INatives /// /// Stops cargobob from being able to detach the attached vehicle. /// - void SetCargobobForceDontDetachVehicle(int cargobob, bool toggle); + void SetCargobobForceDontDetachVehicle(uint cargobob, bool toggle); void SetCargobobExcludeFromPickupEntity(int p0, int p1); bool CanCargobobPickUpEntity(int p0, int p1); /// @@ -24761,7 +24748,7 @@ public unsafe interface INatives /// /// Gets the position of the cargobob hook, in world coords. /// - Vector3 GetAttachedPickUpHookPosition(int cargobob); + Vector3 GetAttachedPickUpHookPosition(uint cargobob); /// /// /// Returns true only when the hook is active, will return false if the magnet is active @@ -24769,7 +24756,7 @@ public unsafe interface INatives /// /// /// Returns true only when the hook is active, will return false if the magnet is active - bool DoesCargobobHavePickUpRope(int cargobob); + bool DoesCargobobHavePickUpRope(uint cargobob); /// /// Drops the Hook/Magnet on a cargobob /// state @@ -24789,7 +24776,7 @@ public unsafe interface INatives /// CARGOBOB_MAGNET = 1, /// }; /// - void CreatePickUpRopeForCargobob(int cargobob, int state); + void CreatePickUpRopeForCargobob(uint cargobob, int state); /// /// Retracts the hook on the cargobob. /// Note: after you retract it the natives for dropping the hook no longer work @@ -24799,7 +24786,7 @@ public unsafe interface INatives /// Retracts the hook on the cargobob. /// Note: after you retract it the natives for dropping the hook no longer work /// - void RemovePickUpRopeForCargobob(int cargobob); + void RemovePickUpRopeForCargobob(uint cargobob); /// /// min: 1.9f, max: 100.0f /// @@ -24807,7 +24794,7 @@ public unsafe interface INatives /// /// min: 1.9f, max: 100.0f /// - void SetPickupRopeLengthForCargobob(int cargobob, float length1, float length2, bool p3); + void SetPickupRopeLengthForCargobob(uint cargobob, float length1, float length2, bool p3); void SetPickupRopeLengthWithoutCreatingRopeForCargobob(int p0, int p1, int p2); void SetCargobobPickupRopeDampingMultiplier(int p0, int p1); void SetCargobobPickupRopeType(int p0, int p1); @@ -24818,7 +24805,7 @@ public unsafe interface INatives /// /// /// Returns true only when the magnet is active, will return false if the hook is active - bool DoesCargobobHavePickupMagnet(int cargobob); + bool DoesCargobobHavePickupMagnet(uint cargobob); /// /// Won't attract or magnetize to any helicopters or planes of course, but that's common sense. /// @@ -24826,39 +24813,39 @@ public unsafe interface INatives /// /// Won't attract or magnetize to any helicopters or planes of course, but that's common sense. /// - void SetCargobobPickupMagnetActive(int cargobob, bool isActive); + void SetCargobobPickupMagnetActive(uint cargobob, bool isActive); void SetCargobobPickupMagnetStrength(IVehicle cargobob, float strength); - void SetCargobobPickupMagnetStrength(int cargobob, float strength); + void SetCargobobPickupMagnetStrength(uint cargobob, float strength); void SetCargobobPickupMagnetFalloff(IVehicle cargobob, float p1); - void SetCargobobPickupMagnetFalloff(int cargobob, float p1); + void SetCargobobPickupMagnetFalloff(uint cargobob, float p1); void SetCargobobPickupMagnetReducedStrength(IVehicle cargobob, float p1); - void SetCargobobPickupMagnetReducedStrength(int cargobob, float p1); + void SetCargobobPickupMagnetReducedStrength(uint cargobob, float p1); void SetCargobobPickupMagnetReducedFalloff(IVehicle cargobob, float p1); - void SetCargobobPickupMagnetReducedFalloff(int cargobob, float p1); + void SetCargobobPickupMagnetReducedFalloff(uint cargobob, float p1); void SetCargobobPickupMagnetPullStrength(IVehicle cargobob, float p1); - void SetCargobobPickupMagnetPullStrength(int cargobob, float p1); + void SetCargobobPickupMagnetPullStrength(uint cargobob, float p1); void SetCargobobPickupMagnetPullRopeLength(IVehicle vehicle, float p1); - void SetCargobobPickupMagnetPullRopeLength(int vehicle, float p1); - void SetCargobobPickupMagnetSetTargetedMode(IVehicle vehicle, int cargobob); - void SetCargobobPickupMagnetSetTargetedMode(int vehicle, IVehicle cargobob); + void SetCargobobPickupMagnetPullRopeLength(uint vehicle, float p1); + void SetCargobobPickupMagnetSetTargetedMode(IVehicle vehicle, uint cargobob); + void SetCargobobPickupMagnetSetTargetedMode(uint vehicle, IVehicle cargobob); void SetCargobobPickupMagnetSetTargetedMode(IVehicle vehicle, IVehicle cargobob); - void SetCargobobPickupMagnetSetTargetedMode(int vehicle, int cargobob); + void SetCargobobPickupMagnetSetTargetedMode(uint vehicle, uint cargobob); void SetCargobobPickupMagnetSetAmbientMode(IVehicle vehicle, bool p1, bool p2); - void SetCargobobPickupMagnetSetAmbientMode(int vehicle, bool p1, bool p2); + void SetCargobobPickupMagnetSetAmbientMode(uint vehicle, bool p1, bool p2); void SetCargobobPickupMagnetEnsurePickupEntityUpright(IVehicle vehicle, bool p1); - void SetCargobobPickupMagnetEnsurePickupEntityUpright(int vehicle, bool p1); + void SetCargobobPickupMagnetEnsurePickupEntityUpright(uint vehicle, bool p1); bool DoesVehicleHaveWeapons(IVehicle vehicle); - bool DoesVehicleHaveWeapons(int vehicle); + bool DoesVehicleHaveWeapons(uint vehicle); void SetVehicleWillTellOthersToHurry(IVehicle vehicle, bool p1); - void SetVehicleWillTellOthersToHurry(int vehicle, bool p1); + void SetVehicleWillTellOthersToHurry(uint vehicle, bool p1); /// /// Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - void DisableVehicleWeapon(bool disabled, uint weaponHash, IVehicle vehicle, int owner); + void DisableVehicleWeapon(bool disabled, uint weaponHash, IVehicle vehicle, uint owner); /// /// Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - void DisableVehicleWeapon(bool disabled, uint weaponHash, int vehicle, IPlayer owner); + void DisableVehicleWeapon(bool disabled, uint weaponHash, uint vehicle, IPlayer owner); /// /// Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// @@ -24866,15 +24853,15 @@ public unsafe interface INatives /// /// Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - void DisableVehicleWeapon(bool disabled, uint weaponHash, int vehicle, int owner); + void DisableVehicleWeapon(bool disabled, uint weaponHash, uint vehicle, uint owner); /// /// Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - bool IsVehicleWeaponDisabled(uint weaponHash, IVehicle vehicle, int owner); + bool IsVehicleWeaponDisabled(uint weaponHash, IVehicle vehicle, uint owner); /// /// Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - bool IsVehicleWeaponDisabled(uint weaponHash, int vehicle, IPlayer owner); + bool IsVehicleWeaponDisabled(uint weaponHash, uint vehicle, IPlayer owner); /// /// Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// @@ -24882,11 +24869,11 @@ public unsafe interface INatives /// /// Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - bool IsVehicleWeaponDisabled(uint weaponHash, int vehicle, int owner); + bool IsVehicleWeaponDisabled(uint weaponHash, uint vehicle, uint owner); void SetVehicleUsedForPilotSchool(IVehicle vehicle, bool toggle); - void SetVehicleUsedForPilotSchool(int vehicle, bool toggle); + void SetVehicleUsedForPilotSchool(uint vehicle, bool toggle); void SetVehicleActiveForPedNavigation(IVehicle vehicle, bool toggle); - void SetVehicleActiveForPedNavigation(int vehicle, bool toggle); + void SetVehicleActiveForPedNavigation(uint vehicle, bool toggle); /// /// Returns an int /// 0: Compacts @@ -24914,7 +24901,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x29439776AAA00A62 /// /// Classes: - int GetVehicleClass(int vehicle); + int GetVehicleClass(uint vehicle); /// /// char buffer[128]; /// std::sprintf(buffer, "VEH_CLASS_%i", VEHICLE::GET_VEHICLE_CLASS_FROM_NAME (hash)); @@ -24923,11 +24910,11 @@ public unsafe interface INatives /// int GetVehicleClassFromName(uint modelHash); void SetPlayersLastVehicle(IVehicle vehicle); - void SetPlayersLastVehicle(int vehicle); + void SetPlayersLastVehicle(uint vehicle); void SetVehicleCanBeUsedByFleeingPeds(IVehicle vehicle, bool toggle); - void SetVehicleCanBeUsedByFleeingPeds(int vehicle, bool toggle); + void SetVehicleCanBeUsedByFleeingPeds(uint vehicle, bool toggle); void SetAircraftPilotSkillNoiseScalar(IVehicle vehicle, float p1); - void SetAircraftPilotSkillNoiseScalar(int vehicle, float p1); + void SetAircraftPilotSkillNoiseScalar(uint vehicle, float p1); /// /// Money pickups are created around cars when they explode. Only works when the vehicle model is a car. A single pickup is between 1 and 18 dollars in size. All car models seem to give the same amount of money. /// youtu.be/3arlUxzHl5Y @@ -24939,9 +24926,9 @@ public unsafe interface INatives /// youtu.be/3arlUxzHl5Y /// i.imgur.com/WrNpYFs.jpg /// - void SetVehicleDropsMoneyWhenBlownUp(int vehicle, bool toggle); + void SetVehicleDropsMoneyWhenBlownUp(uint vehicle, bool toggle); void SetVehicleKeepEngineOnWhenAbandoned(IVehicle vehicle, bool toggle); - void SetVehicleKeepEngineOnWhenAbandoned(int vehicle, bool toggle); + void SetVehicleKeepEngineOnWhenAbandoned(uint vehicle, bool toggle); /// /// Seems to copy some values in vehicle /// @@ -24949,7 +24936,7 @@ public unsafe interface INatives /// /// Seems to copy some values in vehicle /// - void SetVehicleImpatienceTimer(int vehicle, int p1); + void SetVehicleImpatienceTimer(uint vehicle, int p1); /// /// Use the "AIHandling" string found in handling.meta /// @@ -24957,7 +24944,7 @@ public unsafe interface INatives /// /// Use the "AIHandling" string found in handling.meta /// - void SetVehicleHandlingOverride(int vehicle, uint hash); + void SetVehicleHandlingOverride(uint vehicle, uint hash); /// /// Max value is 32767 /// @@ -24965,7 +24952,7 @@ public unsafe interface INatives /// /// Max value is 32767 /// - void SetVehicleExtendedRemovalRange(int vehicle, int range); + void SetVehicleExtendedRemovalRange(uint vehicle, int range); void SetVehicleSteeringBiasScalar(int p0, float p1); /// /// value between 0.0 and 1.0 @@ -24974,7 +24961,7 @@ public unsafe interface INatives /// /// value between 0.0 and 1.0 /// - void SetHeliControlLaggingRateScalar(int helicopter, float multiplier); + void SetHeliControlLaggingRateScalar(uint helicopter, float multiplier); /// /// Seems to be related to the metal parts, not tyres (like i was expecting lol) /// @@ -24982,18 +24969,18 @@ public unsafe interface INatives /// /// Seems to be related to the metal parts, not tyres (like i was expecting lol) /// - void SetVehicleFrictionOverride(int vehicle, float friction); + void SetVehicleFrictionOverride(uint vehicle, float friction); void SetVehicleWheelsCanBreakOffWhenBlowUp(IVehicle vehicle, bool toggle); - void SetVehicleWheelsCanBreakOffWhenBlowUp(int vehicle, bool toggle); + void SetVehicleWheelsCanBreakOffWhenBlowUp(uint vehicle, bool toggle); bool ArePlaneControlPanelsIntact(IVehicle vehicle, bool p1); - bool ArePlaneControlPanelsIntact(int vehicle, bool p1); + bool ArePlaneControlPanelsIntact(uint vehicle, bool p1); void SetVehicleCeilingHeight(IVehicle vehicle, float height); - void SetVehicleCeilingHeight(int vehicle, float height); + void SetVehicleCeilingHeight(uint vehicle, float height); void SetVehicleNoExplosionDamageFromDriver(IVehicle vehicle, bool toggle); - void SetVehicleNoExplosionDamageFromDriver(int vehicle, bool toggle); + void SetVehicleNoExplosionDamageFromDriver(uint vehicle, bool toggle); void ClearVehicleRouteHistory(IVehicle vehicle); - void ClearVehicleRouteHistory(int vehicle); - int DoesVehicleExistWithDecorator(string decorator); + void ClearVehicleRouteHistory(uint vehicle); + uint DoesVehicleExistWithDecorator(string decorator); /// /// Used to be incorrectly named SET_VEHICLE_EXCLUSIVE_DRIVER /// Toggles a flag related to SET_VEHICLE_EXCLUSIVE_DRIVER, however, doesn't enable that feature (or trigger script events related to it). @@ -25003,17 +24990,17 @@ public unsafe interface INatives /// Used to be incorrectly named SET_VEHICLE_EXCLUSIVE_DRIVER /// Toggles a flag related to SET_VEHICLE_EXCLUSIVE_DRIVER, however, doesn't enable that feature (or trigger script events related to it). /// - void SetVehicleAiCanUseExclusiveSeats(int vehicle, bool toggle); + void SetVehicleAiCanUseExclusiveSeats(uint vehicle, bool toggle); /// /// Used to be incorrectly named _SET_VEHICLE_EXCLUSIVE_DRIVER_2 /// /// 0 - 1 - void SetVehicleExclusiveDriver(IVehicle vehicle, int ped, int index); + void SetVehicleExclusiveDriver(IVehicle vehicle, uint ped, int index); /// /// Used to be incorrectly named _SET_VEHICLE_EXCLUSIVE_DRIVER_2 /// /// 0 - 1 - void SetVehicleExclusiveDriver(int vehicle, IPlayer ped, int index); + void SetVehicleExclusiveDriver(uint vehicle, IPlayer ped, int index); /// /// Used to be incorrectly named _SET_VEHICLE_EXCLUSIVE_DRIVER_2 /// @@ -25023,23 +25010,23 @@ public unsafe interface INatives /// Used to be incorrectly named _SET_VEHICLE_EXCLUSIVE_DRIVER_2 /// /// 0 - 1 - void SetVehicleExclusiveDriver(int vehicle, int ped, int index); + void SetVehicleExclusiveDriver(uint vehicle, uint ped, int index); /// /// - bool IsPedExclusiveDriverOfVehicle(IPlayer ped, int vehicle, ref int outIndex); + bool IsPedExclusiveDriverOfVehicle(IPlayer ped, uint vehicle, ref int outIndex); /// /// - bool IsPedExclusiveDriverOfVehicle(int ped, IVehicle vehicle, ref int outIndex); + bool IsPedExclusiveDriverOfVehicle(uint ped, IVehicle vehicle, ref int outIndex); /// /// bool IsPedExclusiveDriverOfVehicle(IPlayer ped, IVehicle vehicle, ref int outIndex); /// /// - bool IsPedExclusiveDriverOfVehicle(int ped, int vehicle, ref int outIndex); + bool IsPedExclusiveDriverOfVehicle(uint ped, uint vehicle, ref int outIndex); void DisableIndividualPlanePropeller(IVehicle vehicle, int propeller); - void DisableIndividualPlanePropeller(int vehicle, int propeller); + void DisableIndividualPlanePropeller(uint vehicle, int propeller); void SetVehicleForceAfterburner(IVehicle vehicle, bool toggle); - void SetVehicleForceAfterburner(int vehicle, bool toggle); + void SetVehicleForceAfterburner(uint vehicle, bool toggle); /// /// R* used it to "remove" vehicle windows when "nightshark" had some mod, which adding some kind of armored windows. When enabled, you can't break vehicles glass. All your bullets wiil shoot through glass. You also will not able to break the glass with any other way (hitting and etc) /// @@ -25047,13 +25034,13 @@ public unsafe interface INatives /// /// R* used it to "remove" vehicle windows when "nightshark" had some mod, which adding some kind of armored windows. When enabled, you can't break vehicles glass. All your bullets wiil shoot through glass. You also will not able to break the glass with any other way (hitting and etc) /// - void SetDontProcessVehicleGlass(int vehicle, bool toggle); + void SetDontProcessVehicleGlass(uint vehicle, bool toggle); void SetDisableWantedConesResponse(IVehicle vehicle, bool toggle); - void SetDisableWantedConesResponse(int vehicle, bool toggle); + void SetDisableWantedConesResponse(uint vehicle, bool toggle); void SetUseDesiredZCruiseSpeedForLanding(IVehicle vehicle, bool toggle); - void SetUseDesiredZCruiseSpeedForLanding(int vehicle, bool toggle); + void SetUseDesiredZCruiseSpeedForLanding(uint vehicle, bool toggle); void SetArriveDistanceOverrideForVehiclePersuitAttack(IVehicle vehicle, float p1); - void SetArriveDistanceOverrideForVehiclePersuitAttack(int vehicle, float p1); + void SetArriveDistanceOverrideForVehiclePersuitAttack(uint vehicle, float p1); void SetVehicleReadyForCleanup(int p0); /// /// Toggles to render distant vehicles. They may not be vehicles but images to look like vehicles. @@ -25066,7 +25053,7 @@ public unsafe interface INatives /// /// Sets the color of the neon lights of the specified vehicle. /// - void SetVehicleNeonColour(int vehicle, int r, int g, int b); + void SetVehicleNeonColour(uint vehicle, int r, int g, int b); /// /// /// references CVehicleModelColor @@ -25074,7 +25061,7 @@ public unsafe interface INatives /// /// /// references CVehicleModelColor - void SetVehicleNeonIndexColour(int vehicle, int index); + void SetVehicleNeonIndexColour(uint vehicle, int index); /// /// Gets the color of the neon lights of the specified vehicle. /// See SET_VEHICLE_NEON_COLOUR (0x8E0A582209A62695) for more information @@ -25084,7 +25071,7 @@ public unsafe interface INatives /// Gets the color of the neon lights of the specified vehicle. /// See SET_VEHICLE_NEON_COLOUR (0x8E0A582209A62695) for more information /// - void GetVehicleNeonColour(int vehicle, ref int r, ref int g, ref int b); + void GetVehicleNeonColour(uint vehicle, ref int r, ref int g, ref int b); /// /// Sets the neon lights of the specified vehicle on/off. /// Indices: @@ -25102,7 +25089,7 @@ public unsafe interface INatives /// 2 = Front /// 3 = Back /// - void SetVehicleNeonEnabled(int vehicle, int index, bool toggle); + void SetVehicleNeonEnabled(uint vehicle, int index, bool toggle); /// /// indices: /// 0 = Left @@ -25118,14 +25105,14 @@ public unsafe interface INatives /// 2 = Front /// 3 = Back /// - bool GetVehicleNeonEnabled(int vehicle, int index); + bool GetVehicleNeonEnabled(uint vehicle, int index); void SetAmbientVehicleNeonEnabled(bool p0); void SuppressNeonsOnVehicle(IVehicle vehicle, bool toggle); - void SuppressNeonsOnVehicle(int vehicle, bool toggle); + void SuppressNeonsOnVehicle(uint vehicle, bool toggle); void SetDisableSuperdummy(IVehicle vehicle, bool p1); - void SetDisableSuperdummy(int vehicle, bool p1); + void SetDisableSuperdummy(uint vehicle, bool p1); void RequestVehicleDial(IVehicle vehicle); - void RequestVehicleDial(int vehicle); + void RequestVehicleDial(uint vehicle); /// /// Seems related to vehicle health, like the one in IV. /// Max 1000, min 0. @@ -25137,7 +25124,7 @@ public unsafe interface INatives /// Max 1000, min 0. /// /// does not necessarily explode or become undrivable at 0. - float GetVehicleBodyHealth(int vehicle); + float GetVehicleBodyHealth(uint vehicle); /// /// p2 often set to 1000.0 in the decompiled scripts. /// @@ -25145,7 +25132,7 @@ public unsafe interface INatives /// /// p2 often set to 1000.0 in the decompiled scripts. /// - void SetVehicleBodyHealth(int vehicle, float value); + void SetVehicleBodyHealth(uint vehicle, float value); /// /// Outputs 2 Vector3's. /// Scripts check if out2.x - out1.x > someshit.x @@ -25157,7 +25144,7 @@ public unsafe interface INatives /// Scripts check if out2.x - out1.x > someshit.x /// Could be suspension related, as in max suspension height and min suspension height, considering the natives location. /// - void GetVehicleSize(int vehicle, ref Vector3 out1, ref Vector3 out2); + void GetVehicleSize(uint vehicle, ref Vector3 out1, ref Vector3 out2); /// /// Gets the height of the vehicle's suspension. /// The higher the value the lower the suspension. Each 0.002 corresponds with one more level lowered. @@ -25171,10 +25158,10 @@ public unsafe interface INatives /// 0.000 is the stock suspension. /// 0.008 is Ultra Suspension. /// - float GetFakeSuspensionLoweringAmount(int vehicle); + float GetFakeSuspensionLoweringAmount(uint vehicle); void SetCarHighSpeedBumpSeverityMultiplier(float multiplier); int GetNumberOfVehicleDoors(IVehicle vehicle); - int GetNumberOfVehicleDoors(int vehicle); + int GetNumberOfVehicleDoors(uint vehicle); /// /// If false, lowers hydraulics (if raised) and disables hydraulics controls. If true, raises hydraulics and enables hydraulics controls. /// Only used once in each carmod script, on a car that does not have hydraulics to begin with. @@ -25184,9 +25171,9 @@ public unsafe interface INatives /// If false, lowers hydraulics (if raised) and disables hydraulics controls. If true, raises hydraulics and enables hydraulics controls. /// Only used once in each carmod script, on a car that does not have hydraulics to begin with. /// - void SetHydraulicsControl(int vehicle, bool toggle); + void SetHydraulicsControl(uint vehicle, bool toggle); void SetCanAdjustGroundClearance(IVehicle vehicle, bool p1); - void SetCanAdjustGroundClearance(int vehicle, bool p1); + void SetCanAdjustGroundClearance(uint vehicle, bool p1); /// /// 0 min 100 max /// starts at 100 @@ -25214,13 +25201,13 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0xB8EF61207C2393A9 /// /// May return the vehicle health on a scale of 0.0 - 100.0 (needs to be confirmed) - float GetVehicleHealthPercentage(int vehicle, float maxEngineHealth, float maxPetrolTankHealth, float maxBodyHealth, float maxMainRotorHealth, float maxTailRotorHealth, float maxUnkHealth); + float GetVehicleHealthPercentage(uint vehicle, float maxEngineHealth, float maxPetrolTankHealth, float maxBodyHealth, float maxMainRotorHealth, float maxTailRotorHealth, float maxUnkHealth); bool GetVehicleIsMercenary(IVehicle vehicle); - bool GetVehicleIsMercenary(int vehicle); + bool GetVehicleIsMercenary(uint vehicle); void SetVehicleBrokenPartsDontAffectAiHandling(IVehicle vehicle, bool p1); - void SetVehicleBrokenPartsDontAffectAiHandling(int vehicle, bool p1); + void SetVehicleBrokenPartsDontAffectAiHandling(uint vehicle, bool p1); void SetVehicleKersAllowed(IVehicle vehicle, bool toggle); - void SetVehicleKersAllowed(int vehicle, bool toggle); + void SetVehicleKersAllowed(uint vehicle, bool toggle); /// /// Returns true if the vehicle has a HF_HAS_KERS (strHandlingFlags 0x4) handing flag set, for instance the lectro/vindicator bikes or the open wheelers. /// @@ -25228,11 +25215,11 @@ public unsafe interface INatives /// /// Returns true if the vehicle has a HF_HAS_KERS (strHandlingFlags 0x4) handing flag set, for instance the lectro/vindicator bikes or the open wheelers. /// - bool GetVehicleHasKers(int vehicle); + bool GetVehicleHasKers(uint vehicle); void SetPlaneResistToExplosion(IVehicle vehicle, bool toggle); - void SetPlaneResistToExplosion(int vehicle, bool toggle); + void SetPlaneResistToExplosion(uint vehicle, bool toggle); void SetHeliResistToExplosion(IVehicle vehicle, bool toggle); - void SetHeliResistToExplosion(int vehicle, bool toggle); + void SetHeliResistToExplosion(uint vehicle, bool toggle); void SetDisableBmxExtraTrickForces(int p0); /// /// Works only on vehicles that support hydraulics. @@ -25241,11 +25228,11 @@ public unsafe interface INatives /// /// Works only on vehicles that support hydraulics. /// - void SetHydraulicSuspensionRaiseFactor(int vehicle, int wheelId, float value); + void SetHydraulicSuspensionRaiseFactor(uint vehicle, int wheelId, float value); float GetHydraulicSuspensionRaiseFactor(IVehicle vehicle, int wheelId); - float GetHydraulicSuspensionRaiseFactor(int vehicle, int wheelId); + float GetHydraulicSuspensionRaiseFactor(uint vehicle, int wheelId); void SetCanUseHydraulics(IVehicle vehicle, bool toggle); - void SetCanUseHydraulics(int vehicle, bool toggle); + void SetCanUseHydraulics(uint vehicle, bool toggle); /// /// States: /// 4 = raise @@ -25259,7 +25246,7 @@ public unsafe interface INatives /// 5 = lower /// 6 = jump /// - void SetHydraulicVehicleState(int vehicle, int state); + void SetHydraulicVehicleState(uint vehicle, int state); /// /// Sets vehicle wheel hydraulic states transition. Known states: /// 0 - reset @@ -25273,10 +25260,10 @@ public unsafe interface INatives /// 1 - raise wheel (uses value arg, works just like _SET_VEHICLE_HYDRAULIC_WHEEL_VALUE) /// 2 - jump using wheel /// - void SetHydraulicWheelState(int vehicle, int wheelId, int state, float value, int p4); + void SetHydraulicWheelState(uint vehicle, int wheelId, int state, float value, int p4); bool HasVehiclePetroltankSetOnFireByEntity(int p0, int p1); void ClearVehiclePetroltankFireCulprit(IVehicle vehicle); - void ClearVehiclePetroltankFireCulprit(int vehicle); + void ClearVehiclePetroltankFireCulprit(uint vehicle); /// /// Controls how fast bobbleheads and tsurikawas move on each axis. /// @@ -25284,9 +25271,9 @@ public unsafe interface INatives void SetVehicleBobbleheadVelocity(float x, float y, float p2); bool GetVehicleIsDummy(int p0); bool SetVehicleDamageScale(IVehicle vehicle, float p1); - bool SetVehicleDamageScale(int vehicle, float p1); + bool SetVehicleDamageScale(uint vehicle, float p1); bool SetVehicleWeaponDamageScale(IVehicle vehicle, float multiplier); - bool SetVehicleWeaponDamageScale(int vehicle, float multiplier); + bool SetVehicleWeaponDamageScale(uint vehicle, float multiplier); bool SetDisableDamageWithPickedUpEntity(int p0, int p1); void SetVehicleUsesMpPlayerDamageMultiplier(int p0, int p1); /// @@ -25296,7 +25283,7 @@ public unsafe interface INatives /// /// When enabled, the player won't fall off the bike when landing from large heights. /// - void SetBikeEasyToLand(int vehicle, bool toggle); + void SetBikeEasyToLand(uint vehicle, bool toggle); /// /// Inverts vehicle's controls. So INPUT_VEH_ACCELERATE will be INPUT_VEH_BRAKE and vise versa (same for A/D controls) /// Doesn't work for planes/helis. @@ -25306,7 +25293,7 @@ public unsafe interface INatives /// Inverts vehicle's controls. So INPUT_VEH_ACCELERATE will be INPUT_VEH_BRAKE and vise versa (same for A/D controls) /// Doesn't work for planes/helis. /// - void SetInvertVehicleControls(int vehicle, bool state); + void SetInvertVehicleControls(uint vehicle, bool state); /// /// Disables the screen effects and sound effects when driving over a speed boost pad. /// @@ -25316,16 +25303,16 @@ public unsafe interface INatives /// void SetSlowDownEffectDisabled(bool disabled); void SetFormationLeader(IVehicle vehicle, float x, float y, float z, float p4); - void SetFormationLeader(int vehicle, float x, float y, float z, float p4); + void SetFormationLeader(uint vehicle, float x, float y, float z, float p4); /// /// Resets the effect of SET_FORMATION_LEADER /// void ResetFormationLeader(); bool GetIsBoatCapsized(IVehicle vehicle); - bool GetIsBoatCapsized(int vehicle); + bool GetIsBoatCapsized(uint vehicle); void SetAllowRammingSoopOrRamp(int p0, int p1); void SetScriptRampImpulseScale(IVehicle vehicle, float impulseScale); - void SetScriptRampImpulseScale(int vehicle, float impulseScale); + void SetScriptRampImpulseScale(uint vehicle, float impulseScale); /// /// /// see SET_VEHICLE_DOOR_SHUT @@ -25333,23 +25320,23 @@ public unsafe interface INatives /// /// /// see SET_VEHICLE_DOOR_SHUT - bool GetIsDoorValid(int vehicle, int doorId); + bool GetIsDoorValid(uint vehicle, int doorId); void SetScriptRocketBoostRechargeTime(IVehicle vehicle, float seconds); - void SetScriptRocketBoostRechargeTime(int vehicle, float seconds); + void SetScriptRocketBoostRechargeTime(uint vehicle, float seconds); bool GetHasRocketBoost(IVehicle vehicle); - bool GetHasRocketBoost(int vehicle); + bool GetHasRocketBoost(uint vehicle); bool IsRocketBoostActive(IVehicle vehicle); - bool IsRocketBoostActive(int vehicle); + bool IsRocketBoostActive(uint vehicle); void SetRocketBoostActive(IVehicle vehicle, bool active); - void SetRocketBoostActive(int vehicle, bool active); + void SetRocketBoostActive(uint vehicle, bool active); bool GetHasRetractableWheels(IVehicle vehicle); - bool GetHasRetractableWheels(int vehicle); + bool GetHasRetractableWheels(uint vehicle); bool GetIsWheelsRetracted(IVehicle vehicle); - bool GetIsWheelsRetracted(int vehicle); + bool GetIsWheelsRetracted(uint vehicle); void SetWheelsExtendedInstantly(IVehicle vehicle); - void SetWheelsExtendedInstantly(int vehicle); + void SetWheelsExtendedInstantly(uint vehicle); void SetWheelsRetractedInstantly(IVehicle vehicle); - void SetWheelsRetractedInstantly(int vehicle); + void SetWheelsRetractedInstantly(uint vehicle); /// /// Returns true if the vehicle has the FLAG_JUMPING_CAR flag set. /// @@ -25357,7 +25344,7 @@ public unsafe interface INatives /// /// Returns true if the vehicle has the FLAG_JUMPING_CAR flag set. /// - bool GetCarHasJump(int vehicle); + bool GetCarHasJump(uint vehicle); /// /// Allows vehicles with the FLAG_JUMPING_CAR flag to jump higher (i.e. Ruiner 2000). /// @@ -25365,9 +25352,9 @@ public unsafe interface INatives /// /// Allows vehicles with the FLAG_JUMPING_CAR flag to jump higher (i.e. Ruiner 2000). /// - void SetUseHigherCarJump(int vehicle, bool toggle); + void SetUseHigherCarJump(uint vehicle, bool toggle); void SetClearFreezeWaitingOnCollisionOncePlayerEnters(IVehicle vehicle, bool toggle); - void SetClearFreezeWaitingOnCollisionOncePlayerEnters(int vehicle, bool toggle); + void SetClearFreezeWaitingOnCollisionOncePlayerEnters(uint vehicle, bool toggle); /// /// Set vehicle's primary mounted weapon 2 ammo. For example, use it on APC. /// For example, you can "remove" any vehicle weapon from any vehicle. @@ -25379,24 +25366,24 @@ public unsafe interface INatives /// For example, you can "remove" any vehicle weapon from any vehicle. /// ammoAmount -1 = infinite ammo (default value for any spawned vehicle tho) /// - void SetVehicleWeaponRestrictedAmmo(int vehicle, int weaponIndex, int capacity); + void SetVehicleWeaponRestrictedAmmo(uint vehicle, int weaponIndex, int capacity); int GetVehicleWeaponRestrictedAmmo(IVehicle vehicle, int weaponIndex); - int GetVehicleWeaponRestrictedAmmo(int vehicle, int weaponIndex); + int GetVehicleWeaponRestrictedAmmo(uint vehicle, int weaponIndex); bool GetVehicleHasParachute(IVehicle vehicle); - bool GetVehicleHasParachute(int vehicle); + bool GetVehicleHasParachute(uint vehicle); bool GetVehicleCanDeployParachute(IVehicle vehicle); - bool GetVehicleCanDeployParachute(int vehicle); + bool GetVehicleCanDeployParachute(uint vehicle); void VehicleStartParachuting(IVehicle vehicle, bool active); - void VehicleStartParachuting(int vehicle, bool active); + void VehicleStartParachuting(uint vehicle, bool active); bool IsVehicleParachuteDeployed(IVehicle vehicle); - bool IsVehicleParachuteDeployed(int vehicle); + bool IsVehicleParachuteDeployed(uint vehicle); void VehicleSetRampAndRammingCarsTakeDamage(IVehicle vehicle, bool toggle); - void VehicleSetRampAndRammingCarsTakeDamage(int vehicle, bool toggle); + void VehicleSetRampAndRammingCarsTakeDamage(uint vehicle, bool toggle); void VehicleSetEnableRampCarSideImpulse(int p0, int p1); void VehicleSetEnableNormaliseRampCarVerticalVeloctiy(int p0, int p1); void VehicleSetJetWashForceEnabled(int p0); void SetVehicleWeaponCanTargetObjects(IVehicle vehicle, bool toggle); - void SetVehicleWeaponCanTargetObjects(int vehicle, bool toggle); + void SetVehicleWeaponCanTargetObjects(uint vehicle, bool toggle); /// /// Used for blazer5. Changes the quadbike-jetski transformation input from raise/lower convertible roof (hold H by default) to horn (press E by default.) /// @@ -25414,7 +25401,7 @@ public unsafe interface INatives /// - imp_prop_impexp_para_s (SecuroServ; Default) /// Plus, many more props can be used as vehicle parachutes, like umbrellas (prop_beach_parasol_03), and unlike SET_PLAYER_PARACHUTE_MODEL_OVERRIDE, you won't get stuck mid-air when using an umbrella. /// - void VehicleSetParachuteModelOverride(int vehicle, uint modelHash); + void VehicleSetParachuteModelOverride(uint vehicle, uint modelHash); /// /// Variations available for the generic parachute (sr_prop_specraces_para_s_01): /// - 0: Rainbow @@ -25438,7 +25425,7 @@ public unsafe interface INatives /// - 6: Black /// - 7: Black, yellow /// - void VehicleSetParachuteModelTintIndex(int vehicle, int textureVariation); + void VehicleSetParachuteModelTintIndex(uint vehicle, int textureVariation); int VehicleSetOverrideExtenableSideRatio(int p0, int p1); int VehicleSetExtenableSideTargetRatio(int p0, int p1); int VehicleSetOverrideSideRatio(int p0, int p1); @@ -25454,13 +25441,13 @@ public unsafe interface INatives /// /// Enables/disables the ability to wheelie on motorcycles. /// - void SetWheelieEnabled(int vehicle, bool enabled); + void SetWheelieEnabled(uint vehicle, bool enabled); void SetDisableHeliExplodeFromBodyDamage(int p0, int p1); void SetDisableExplodeFromBodyDamageOnCollision(IVehicle vehicle, float value); - void SetDisableExplodeFromBodyDamageOnCollision(int vehicle, float value); + void SetDisableExplodeFromBodyDamageOnCollision(uint vehicle, float value); void SetTrailerAttachmentEnabled(int p0, int p1); void SetRocketBoostFill(IVehicle vehicle, float percentage); - void SetRocketBoostFill(int vehicle, float percentage); + void SetRocketBoostFill(uint vehicle, float percentage); /// /// Set state to true to extend the wings, false to retract them. /// @@ -25468,7 +25455,7 @@ public unsafe interface INatives /// /// Set state to true to extend the wings, false to retract them. /// - void SetGliderActive(int vehicle, bool state); + void SetGliderActive(uint vehicle, bool state); /// /// Resets the vehicle's turret to its default position in scripted cameras. Doesn't seem to affect turrets that are occupied by a ped. /// @@ -25476,9 +25463,9 @@ public unsafe interface INatives /// /// Resets the vehicle's turret to its default position in scripted cameras. Doesn't seem to affect turrets that are occupied by a ped. /// - void SetShouldResetTurretInScriptedCameras(int vehicle, bool shouldReset); + void SetShouldResetTurretInScriptedCameras(uint vehicle, bool shouldReset); void SetVehicleDisableCollisionUponCreation(IVehicle vehicle, bool disable); - void SetVehicleDisableCollisionUponCreation(int vehicle, bool disable); + void SetVehicleDisableCollisionUponCreation(uint vehicle, bool disable); void SetGroundEffectReducesDrag(bool toggle); /// /// Disables collision for this vehicle (maybe it also supports other entities, not sure). @@ -25493,13 +25480,13 @@ public unsafe interface INatives /// Example: https://streamable.com/6n45d5 /// Not sure if there is a native (and if so, which one) that resets the collisions. /// - void SetDisableMapCollision(int vehicle); + void SetDisableMapCollision(uint vehicle); void SetDisablePedStandOnTop(IVehicle vehicle, bool toggle); - void SetDisablePedStandOnTop(int vehicle, bool toggle); + void SetDisablePedStandOnTop(uint vehicle, bool toggle); void SetVehicleDamageScales(IVehicle vehicle, int p1, int p2, int p3, int p4); - void SetVehicleDamageScales(int vehicle, int p1, int p2, int p3, int p4); + void SetVehicleDamageScales(uint vehicle, int p1, int p2, int p3, int p4); void SetPlaneSectionDamageScale(IVehicle vehicle, int p1, int p2); - void SetPlaneSectionDamageScale(int vehicle, int p1, int p2); + void SetPlaneSectionDamageScale(uint vehicle, int p1, int p2); /// /// Stops the cargobob from being able to attach any vehicle /// @@ -25507,7 +25494,7 @@ public unsafe interface INatives /// /// Stops the cargobob from being able to attach any vehicle /// - void SetHeliCanPickupEntityThatHasPickUpDisabled(int vehicle, bool toggle); + void SetHeliCanPickupEntityThatHasPickUpDisabled(uint vehicle, bool toggle); /// /// Sets the amount of bombs that this vehicle has. As far as I know, this does _not_ impact vehicle weapons or the ammo of those weapons in any way, it is just a way to keep track of the amount of bombs in a specific plane. /// @@ -25515,7 +25502,7 @@ public unsafe interface INatives /// /// Sets the amount of bombs that this vehicle has. As far as I know, this does _not_ impact vehicle weapons or the ammo of those weapons in any way, it is just a way to keep track of the amount of bombs in a specific plane. /// - void SetVehicleBombAmmo(int vehicle, int bombCount); + void SetVehicleBombAmmo(uint vehicle, int bombCount); /// /// Gets the amount of bombs that this vehicle has. As far as I know, this does _not_ impact vehicle weapons or the ammo of those weapons in any way, it is just a way to keep track of the amount of bombs in a specific plane. /// @@ -25523,7 +25510,7 @@ public unsafe interface INatives /// /// Gets the amount of bombs that this vehicle has. As far as I know, this does _not_ impact vehicle weapons or the ammo of those weapons in any way, it is just a way to keep track of the amount of bombs in a specific plane. /// - int GetVehicleBombAmmo(int vehicle); + int GetVehicleBombAmmo(uint vehicle); /// /// Similar to SET_VEHICLE_BOMB_AMMO, this sets the amount of countermeasures that are present on this vehicle. /// Use GET_VEHICLE_BOMB_AMMO to get the current amount. @@ -25533,7 +25520,7 @@ public unsafe interface INatives /// Similar to SET_VEHICLE_BOMB_AMMO, this sets the amount of countermeasures that are present on this vehicle. /// Use GET_VEHICLE_BOMB_AMMO to get the current amount. /// - void SetVehicleCountermeasureAmmo(int vehicle, int counterMeasureCount); + void SetVehicleCountermeasureAmmo(uint vehicle, int counterMeasureCount); /// /// Similar to `GET_VEHICLE_BOMB_AMMO`, this gets the amount of countermeasures that are present on this vehicle. /// Use SET_VEHICLE_COUNTERMEASURE_AMMO to set the current amount. @@ -25543,9 +25530,9 @@ public unsafe interface INatives /// Similar to `GET_VEHICLE_BOMB_AMMO`, this gets the amount of countermeasures that are present on this vehicle. /// Use SET_VEHICLE_COUNTERMEASURE_AMMO to set the current amount. /// - int GetVehicleCountermeasureAmmo(int vehicle); + int GetVehicleCountermeasureAmmo(uint vehicle); void SetHeliCombatOffset(IVehicle vehicle, float x, float y, float z); - void SetHeliCombatOffset(int vehicle, float x, float y, float z); + void SetHeliCombatOffset(uint vehicle, float x, float y, float z); /// /// Used in decompiled scripts in combination with GET_VEHICLE_SIZE /// @@ -25557,7 +25544,7 @@ public unsafe interface INatives /// /// is usually 2 /// is usually 1 - bool GetCanVehicleBePlacedHere(int vehicle, float x, float y, float z, float rotX, float rotY, float rotZ, int p7, int p8); + bool GetCanVehicleBePlacedHere(uint vehicle, float x, float y, float z, float rotX, float rotY, float rotZ, int p7, int p8); /// /// Sets a flag on heli and another vehicle type. /// @@ -25565,7 +25552,7 @@ public unsafe interface INatives /// /// Sets a flag on heli and another vehicle type. /// - void SetDisableAutomaticCrashTask(int vehicle, bool toggle); + void SetDisableAutomaticCrashTask(uint vehicle, bool toggle); /// /// Used in conjunction with SET_SPECIAL_FLIGHT_MODE_TARGET_RATIO, in Rockstar's scripts. Using this will instantly transform the vehicle into hover mode starting from the given ratio (ranging from 0.0 to 1.0, values greater than 1.0 will put the vehicle into a glitched state.) If this is not used alongside SET_SPECIAL_FLIGHT_MODE_TARGET_RATIO, the vehicle will automatically transform back into car mode. /// Usable only with the deluxo and other vehicles with deluxo-like hover mode toggle, modded or otherwise. Does nothing when used on oppressor2. @@ -25585,7 +25572,7 @@ public unsafe interface INatives /// VEHICLE::SET_SPECIAL_FLIGHT_MODE_TARGET_RATIO(veh, 1.0f); /// /// veh = PED::GET_VEHICLE_PED_IS_USING(playerPed); - void SetSpecialFlightModeRatio(int vehicle, float ratio); + void SetSpecialFlightModeRatio(uint vehicle, float ratio); /// /// Used in conjunction with SET_SPECIAL_FLIGHT_MODE_RATIO, in Rockstar's scripts. The vehicle will transform into the given targetRatio, starting from the vehicle's current hover mode transform ratio (which can also be manually set by SET_SPECIAL_FLIGHT_MODE_RATIO,) i.e. setting targetRatio to 0.0 while the vehicle is in hover mode will transform the vehicle into car mode, likewise setting targetRatio to 1.0 while the vehicle is in car mode will transform the vehicle into hover mode, and if the current transform ratio is set to 0.7 while targetRatio is 1.0 the vehicle will transform into hover mode starting from being already partially transformed. /// Usable only with the deluxo and other vehicles with deluxo-like hover mode toggle, modded or otherwise. Does nothing when used on oppressor2. @@ -25607,7 +25594,7 @@ public unsafe interface INatives /// /// veh = PED::GET_VEHICLE_PED_IS_USING(playerPed); /// is recommended to always be 0.0 or 1.0, otherwise the vehicle will transform into a glitched state. - void SetSpecialFlightModeTargetRatio(int vehicle, float targetRatio); + void SetSpecialFlightModeTargetRatio(uint vehicle, float targetRatio); /// /// It will override the ability to transform deluxo. For oppressor it will work just like SET_DISABLE_HOVER_MODE_FLIGHT /// @@ -25615,7 +25602,7 @@ public unsafe interface INatives /// /// It will override the ability to transform deluxo. For oppressor it will work just like SET_DISABLE_HOVER_MODE_FLIGHT /// - void SetSpecialFlightModeAllowed(int vehicle, bool toggle); + void SetSpecialFlightModeAllowed(uint vehicle, bool toggle); /// /// Disables "wings" for some flying vehicles. Works only for oppressor _2_ and deluxo. /// For deluxo it just immediately removes vehicle's "wings" and you will be not able to fly up. @@ -25629,7 +25616,7 @@ public unsafe interface INatives /// For oppressor 2 it will remove wings right after you land. And you will not able to fly up anymore too. /// But for opressor 2 you still can fly if you somehow get back in the air. /// - void SetDisableHoverModeFlight(int vehicle, bool toggle); + void SetDisableHoverModeFlight(uint vehicle, bool toggle); /// /// Checks if Chernobog's stabilizers are deployed or not. /// These are the metal supports that allow it to fire. @@ -25641,7 +25628,7 @@ public unsafe interface INatives /// These are the metal supports that allow it to fire. /// This native only applies to the Chernobog. /// - bool GetOutriggersDeployed(int vehicle); + bool GetOutriggersDeployed(uint vehicle); /// /// Native is significantly more complicated than simply generating a random vector & length. /// The 'point' is either 400.0 or 250.0 units away from the Ped's current coordinates; and paths into functions like rage::grcViewport___IsSphereVisible @@ -25651,7 +25638,7 @@ public unsafe interface INatives /// Native is significantly more complicated than simply generating a random vector & length. /// The 'point' is either 400.0 or 250.0 units away from the Ped's current coordinates; and paths into functions like rage::grcViewport___IsSphereVisible /// - Vector3 FindSpawnCoordinatesForHeli(int ped); + Vector3 FindSpawnCoordinatesForHeli(uint ped); /// /// Only used with the "akula" and "annihilator2" in the decompiled native scripts. /// @@ -25659,7 +25646,7 @@ public unsafe interface INatives /// /// Only used with the "akula" and "annihilator2" in the decompiled native scripts. /// - void SetDeployFoldingWings(int vehicle, bool deploy, bool p2); + void SetDeployFoldingWings(uint vehicle, bool deploy, bool p2); /// /// Only used with the "akula" and "annihilator2" in the decompiled native scripts. /// @@ -25667,9 +25654,9 @@ public unsafe interface INatives /// /// Only used with the "akula" and "annihilator2" in the decompiled native scripts. /// - bool AreFoldingWingsDeployed(int vehicle); + bool AreFoldingWingsDeployed(uint vehicle); void SetDipStraightDownWhenCrashingPlane(IVehicle vehicle, bool toggle); - void SetDipStraightDownWhenCrashingPlane(int vehicle, bool toggle); + void SetDipStraightDownWhenCrashingPlane(uint vehicle, bool toggle); /// /// Toggles specific flag on turret /// @@ -25677,9 +25664,9 @@ public unsafe interface INatives /// /// Toggles specific flag on turret /// - void SetTurretHidden(int vehicle, int index, bool toggle); + void SetTurretHidden(uint vehicle, int index, bool toggle); void SetHoverModeWingRatio(IVehicle vehicle, float ratio); - void SetHoverModeWingRatio(int vehicle, float ratio); + void SetHoverModeWingRatio(uint vehicle, float ratio); /// /// Disables turret movement when called in a loop. You can still fire and aim. You cannot shoot backwards though. /// @@ -25687,9 +25674,9 @@ public unsafe interface INatives /// /// Disables turret movement when called in a loop. You can still fire and aim. You cannot shoot backwards though. /// - void SetDisableTurretMovement(int vehicle, int turretId); + void SetDisableTurretMovement(uint vehicle, int turretId); void SetForceFixLinkMatrices(IVehicle vehicle); - void SetForceFixLinkMatrices(int vehicle); + void SetForceFixLinkMatrices(uint vehicle); /// /// Affects the playback speed of the submarine car conversion animations. Does not affect hardcoded animations such as the wheels being retracted. /// @@ -25697,7 +25684,7 @@ public unsafe interface INatives /// /// Affects the playback speed of the submarine car conversion animations. Does not affect hardcoded animations such as the wheels being retracted. /// - void SetTransformRateForAnimation(int vehicle, float transformRate); + void SetTransformRateForAnimation(uint vehicle, float transformRate); /// /// When set to true, the key to transform a car to submarine mode changes from raise/lower convertible roof (hold H by default) to special vehicle transform (press X by default.) /// @@ -25705,7 +25692,7 @@ public unsafe interface INatives /// /// When set to true, the key to transform a car to submarine mode changes from raise/lower convertible roof (hold H by default) to special vehicle transform (press X by default.) /// - void SetTransformToSubmarineUsesAlternateInput(int vehicle, bool toggle); + void SetTransformToSubmarineUsesAlternateInput(uint vehicle, bool toggle); /// /// Does nothing. It's a nullsub. /// @@ -25719,22 +25706,22 @@ public unsafe interface INatives /// void SetVehicleShuntOnStick(bool toggle); bool GetIsVehicleShunting(IVehicle vehicle); - bool GetIsVehicleShunting(int vehicle); + bool GetIsVehicleShunting(uint vehicle); bool GetHasVehicleBeenHitByShunt(IVehicle vehicle); - bool GetHasVehicleBeenHitByShunt(int vehicle); + bool GetHasVehicleBeenHitByShunt(uint vehicle); /// /// Returns last vehicle that was rammed by the given vehicle using the shunt boost. /// - int GetLastShuntVehicle(IVehicle vehicle); + uint GetLastShuntVehicle(IVehicle vehicle); /// /// Returns last vehicle that was rammed by the given vehicle using the shunt boost. /// - int GetLastShuntVehicle(int vehicle); + uint GetLastShuntVehicle(uint vehicle); void SetDisableVehicleExplosionsDamage(bool toggle); void SetOverrideNitrousLevel(IVehicle vehicle, bool toggle, float level, float power, float rechargeTime, bool disableSound); - void SetOverrideNitrousLevel(int vehicle, bool toggle, float level, float power, float rechargeTime, bool disableSound); + void SetOverrideNitrousLevel(uint vehicle, bool toggle, float level, float power, float rechargeTime, bool disableSound); void SetIncreaseWheelCrushDamage(IVehicle vehicle, bool toggle); - void SetIncreaseWheelCrushDamage(int vehicle, bool toggle); + void SetIncreaseWheelCrushDamage(uint vehicle, bool toggle); /// /// Sets some global vehicle related bool /// @@ -25750,7 +25737,7 @@ public unsafe interface INatives /// /// /// Returns true only if the "tombstone" bone is attached to the vehicle, irrespective of "FLAG_HAS_TOMBSTONE" being present or not. Detaching the tombstone will return false. - bool GetDoesVehicleHaveTombstone(int vehicle); + bool GetDoesVehicleHaveTombstone(uint vehicle); /// /// Disables detachable bumber from domnator4, dominator5, dominator6, see https://gfycat.com/SecondUnluckyGosling /// @@ -25758,7 +25745,7 @@ public unsafe interface INatives /// /// Disables detachable bumber from domnator4, dominator5, dominator6, see https://gfycat.com/SecondUnluckyGosling /// - void HideTombstone(int vehicle, bool toggle); + void HideTombstone(uint vehicle, bool toggle); /// /// Returns whether this vehicle is currently disabled by an EMP mine. /// @@ -25766,7 +25753,7 @@ public unsafe interface INatives /// /// Returns whether this vehicle is currently disabled by an EMP mine. /// - bool GetIsVehicleDisabledByEmp(int vehicle); + bool GetIsVehicleDisabledByEmp(uint vehicle); void SetDisableRetractingWeaponBlades(bool toggle); /// /// Usable wheels: @@ -25787,7 +25774,7 @@ public unsafe interface INatives /// 4: wheel_lr /// 5: wheel_rr /// - float GetTyreHealth(int vehicle, int wheelIndex); + float GetTyreHealth(uint vehicle, int wheelIndex); /// /// SET_TYRE_WEAR_RATE must be active, otherwise values set to <1000.0f will default to 350.0f /// Usable wheels: @@ -25809,7 +25796,7 @@ public unsafe interface INatives /// 4: wheel_lr /// 5: wheel_rr /// - void SetTyreHealth(int vehicle, int wheelIndex, float health); + void SetTyreHealth(uint vehicle, int wheelIndex, float health); /// /// Returns the multiplier value from SET_TYRE_WEAR_RATE /// Usable wheels: @@ -25831,7 +25818,7 @@ public unsafe interface INatives /// 4: wheel_lr /// 5: wheel_rr /// - float GetTyreWearRate(int vehicle, int wheelIndex); + float GetTyreWearRate(uint vehicle, int wheelIndex); /// /// Needs to be run for tire wear to work. Multiplier affects the downforce and how fast the tires will wear out, higher values essentially make the vehicle slower on straights and its tires will wear down quicker when cornering. Value must be >0f. /// Default value in Rockstar's Open Wheel Race JSON's ("owrtws", "owrtwm", "owrtwh") is 1.0 @@ -25855,7 +25842,7 @@ public unsafe interface INatives /// 4: wheel_lr /// 5: wheel_rr /// - void SetTyreWearRate(int vehicle, int wheelIndex, float multiplier); + void SetTyreWearRate(uint vehicle, int wheelIndex, float multiplier); /// /// Controls how much traction the wheel loses. /// Default values from Rockstar's Open Wheel Race JSON's: @@ -25881,9 +25868,9 @@ public unsafe interface INatives /// 2: wheel_lm1 /// See NativeDB for reference: http://natives.altv.mp/#/0xC970D0E0FC31D768 /// - void SetTyreMaximumGripDifferenceDueToWearRate(int vehicle, int wheelIndex, float multiplier); + void SetTyreMaximumGripDifferenceDueToWearRate(uint vehicle, int wheelIndex, float multiplier); void SetAircraftIgnoreHightmapOptimisation(IVehicle vehicle, int p1); - void SetAircraftIgnoreHightmapOptimisation(int vehicle, int p1); + void SetAircraftIgnoreHightmapOptimisation(uint vehicle, int p1); /// /// Lowers the vehicle's stance. Only works for vehicles that have strAdvancedFlags 0x8000 and 0x4000000 set. /// @@ -25891,11 +25878,11 @@ public unsafe interface INatives /// /// Lowers the vehicle's stance. Only works for vehicles that have strAdvancedFlags 0x8000 and 0x4000000 set. /// - void SetReducedSuspensionForce(int vehicle, bool enable); + void SetReducedSuspensionForce(uint vehicle, bool enable); void SetDriftTyres(IVehicle vehicle, bool toggle); - void SetDriftTyres(int vehicle, bool toggle); + void SetDriftTyres(uint vehicle, bool toggle); bool GetDriftTyresSet(IVehicle vehicle); - bool GetDriftTyresSet(int vehicle); + bool GetDriftTyresSet(uint vehicle); /// /// Implemented only for trains. /// @@ -25903,7 +25890,7 @@ public unsafe interface INatives /// /// Implemented only for trains. /// - void NetworkUseHighPrecisionTrainBlending(int vehicle, bool toggle); + void NetworkUseHighPrecisionTrainBlending(uint vehicle, bool toggle); /// /// Only used in R* Script fm_content_cargo /// @@ -25911,7 +25898,7 @@ public unsafe interface INatives /// /// Only used in R* Script fm_content_cargo /// - void SetCheckForEnoughRoomForPed(int vehicle, bool p1); + void SetCheckForEnoughRoomForPed(uint vehicle, bool p1); /// /// This function set height to the value of z-axis of the water surface. /// note: seems to return true when you are in water @@ -25990,7 +25977,7 @@ public unsafe interface INatives /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - void SetCurrentPedWeapon(int ped, uint weaponHash, bool bForceInHand); + void SetCurrentPedWeapon(uint ped, uint weaponHash, bool bForceInHand); /// /// p2 is not implemented /// disassembly said that? @@ -26004,9 +25991,9 @@ public unsafe interface INatives /// /// seems to be 1 most of the time. /// The return value seems to indicate returns true if the hash of the weapon object weapon equals the weapon hash. - bool GetCurrentPedWeapon(int ped, ref uint weaponHash, bool p2); - int GetCurrentPedWeaponEntityIndex(IPlayer ped, int p1); - int GetCurrentPedWeaponEntityIndex(int ped, int p1); + bool GetCurrentPedWeapon(uint ped, ref uint weaponHash, bool p2); + uint GetCurrentPedWeaponEntityIndex(IPlayer ped, int p1); + uint GetCurrentPedWeaponEntityIndex(uint ped, int p1); /// /// /// is always 0 in the scripts. @@ -26014,7 +26001,7 @@ public unsafe interface INatives /// /// /// is always 0 in the scripts. - uint GetBestPedWeapon(int ped, bool p1); + uint GetBestPedWeapon(uint ped, bool p1); /// /// Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// @@ -26022,7 +26009,7 @@ public unsafe interface INatives /// /// Full list of weapons by DurtyFree (Search for VEHICLE_*): https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - bool SetCurrentPedVehicleWeapon(int ped, uint weaponHash); + bool SetCurrentPedVehicleWeapon(uint ped, uint weaponHash); /// /// Example in VB /// Public Shared Function GetVehicleCurrentWeapon(Ped As Ped) As Integer @@ -26046,9 +26033,9 @@ public unsafe interface INatives /// Note: -821520672 = VEHICLE_WEAPON_PLANE_ROCKET /// /// Return arg.GetResult(Of Integer)() - bool GetCurrentPedVehicleWeapon(int ped, ref uint weaponHash); + bool GetCurrentPedVehicleWeapon(uint ped, ref uint weaponHash); void SetPedCycleVehicleWeaponsOnly(IPlayer ped); - void SetPedCycleVehicleWeaponsOnly(int ped); + void SetPedCycleVehicleWeaponsOnly(uint ped); /// /// Checks if the ped is currently equipped with a weapon matching a bit specified using a bitwise-or in typeFlags. /// Type flag bit values: @@ -26076,7 +26063,7 @@ public unsafe interface INatives /// See NativeDB for reference: http://natives.altv.mp/#/0x475768A975D5AD17 /// /// 7 returns true if you are equipped with any weapon except your fists. - bool IsPedArmed(int ped, int typeFlags); + bool IsPedArmed(uint ped, int typeFlags); /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// @@ -26094,11 +26081,11 @@ public unsafe interface INatives /// /// should be FALSE, otherwise it seems to always return FALSE /// p2 should be FALSE, otherwise it seems to always return FALSE - bool HasPedGotWeapon(int ped, uint weaponHash, bool p2); + bool HasPedGotWeapon(uint ped, uint weaponHash, bool p2); bool IsPedWeaponReadyToShoot(IPlayer ped); - bool IsPedWeaponReadyToShoot(int ped); + bool IsPedWeaponReadyToShoot(uint ped); uint GetPedWeapontypeInSlot(IPlayer ped, uint weaponSlot); - uint GetPedWeapontypeInSlot(int ped, uint weaponSlot); + uint GetPedWeapontypeInSlot(uint ped, uint weaponSlot); /// /// WEAPON::GET_AMMO_IN_PED_WEAPON(PLAYER::PLAYER_PED_ID(), a_0) /// From decompiled scripts @@ -26116,7 +26103,7 @@ public unsafe interface INatives /// natives.WEAPON.GET_AMMO_IN_PED_WEAPON(plyPed, WeaponHash) /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - int GetAmmoInPedWeapon(int ped, uint weaponhash); + int GetAmmoInPedWeapon(uint ped, uint weaponhash); /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// @@ -26124,7 +26111,7 @@ public unsafe interface INatives /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - void AddAmmoToPed(int ped, uint weaponHash, int ammo); + void AddAmmoToPed(uint ped, uint weaponHash, int ammo); /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// @@ -26132,7 +26119,7 @@ public unsafe interface INatives /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - void SetPedAmmo(int ped, uint weaponHash, int ammo, bool p3); + void SetPedAmmo(uint ped, uint weaponHash, int ammo, bool p3); /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// @@ -26140,9 +26127,9 @@ public unsafe interface INatives /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - void SetPedInfiniteAmmo(int ped, bool toggle, uint weaponHash); + void SetPedInfiniteAmmo(uint ped, bool toggle, uint weaponHash); void SetPedInfiniteAmmoClip(IPlayer ped, bool toggle); - void SetPedInfiniteAmmoClip(int ped, bool toggle); + void SetPedInfiniteAmmoClip(uint ped, bool toggle); void SetPedStunGunFiniteAmmo(int p0, int p1); /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json @@ -26151,7 +26138,7 @@ public unsafe interface INatives /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - void GiveWeaponToPed(int ped, uint weaponHash, int ammoCount, bool isHidden, bool bForceInHand); + void GiveWeaponToPed(uint ped, uint weaponHash, int ammoCount, bool isHidden, bool bForceInHand); /// /// Gives a weapon to PED with a delay, example: /// WEAPON::GIVE_DELAYED_WEAPON_TO_PED(PED::PLAYER_PED_ID(), MISC::GET_HASH_KEY("WEAPON_PISTOL"), 1000, false) @@ -26163,7 +26150,7 @@ public unsafe interface INatives /// WEAPON::GIVE_DELAYED_WEAPON_TO_PED(PED::PLAYER_PED_ID(), MISC::GET_HASH_KEY("WEAPON_PISTOL"), 1000, false) /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - void GiveDelayedWeaponToPed(int ped, uint weaponHash, int ammoCount, bool bForceInHand); + void GiveDelayedWeaponToPed(uint ped, uint weaponHash, int ammoCount, bool bForceInHand); /// /// setting the last params to false it does that same so I would suggest its not a toggle /// @@ -26171,7 +26158,7 @@ public unsafe interface INatives /// /// setting the last params to false it does that same so I would suggest its not a toggle /// - void RemoveAllPedWeapons(int ped, bool p1); + void RemoveAllPedWeapons(uint ped, bool p1); /// /// This native removes a specified weapon from your selected ped. /// Example: @@ -26193,7 +26180,7 @@ public unsafe interface INatives /// The code above removes the knife from the player. /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - void RemoveWeaponFromPed(int ped, uint weaponHash); + void RemoveWeaponFromPed(uint ped, uint weaponHash); /// /// Hides the players weapon during a cutscene. /// @@ -26201,7 +26188,7 @@ public unsafe interface INatives /// /// Hides the players weapon during a cutscene. /// - void HidePedWeaponForScriptedCutscene(int ped, bool toggle); + void HidePedWeaponForScriptedCutscene(uint ped, bool toggle); /// /// Has 5 parameters since latest patches. /// @@ -26209,9 +26196,9 @@ public unsafe interface INatives /// /// Has 5 parameters since latest patches. /// - void SetPedCurrentWeaponVisible(int ped, bool visible, bool deselectWeapon, bool p3, bool p4); + void SetPedCurrentWeaponVisible(uint ped, bool visible, bool deselectWeapon, bool p3, bool p4); void SetPedDropsWeaponsWhenDead(IPlayer ped, bool toggle); - void SetPedDropsWeaponsWhenDead(int ped, bool toggle); + void SetPedDropsWeaponsWhenDead(uint ped, bool toggle); /// /// It determines what weapons caused damage: /// If you want to define only a specific weapon, second parameter=weapon hash code, third parameter=0 @@ -26227,7 +26214,7 @@ public unsafe interface INatives /// If you want to identify any weapon (firearms, melee, rockets, etc.), second parameter=0, third parameter=2. /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - bool HasPedBeenDamagedByWeapon(int ped, uint weaponHash, int weaponType); + bool HasPedBeenDamagedByWeapon(uint ped, uint weaponHash, int weaponType); /// /// Does NOT seem to work with HAS_PED_BEEN_DAMAGED_BY_WEAPON. Use CLEAR_ENTITY_LAST_WEAPON_DAMAGE and HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON instead. /// @@ -26235,7 +26222,7 @@ public unsafe interface INatives /// /// Does NOT seem to work with HAS_PED_BEEN_DAMAGED_BY_WEAPON. Use CLEAR_ENTITY_LAST_WEAPON_DAMAGE and HAS_ENTITY_BEEN_DAMAGED_BY_WEAPON instead. /// - void ClearPedLastWeaponDamage(int ped); + void ClearPedLastWeaponDamage(uint ped); /// /// It determines what weapons caused damage: /// If you want to define only a specific weapon, second parameter=weapon hash code, third parameter=0 @@ -26251,11 +26238,11 @@ public unsafe interface INatives /// If you want to identify any weapon (firearms, melee, rockets, etc.), second parameter=0, third parameter=2. /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - bool HasEntityBeenDamagedByWeapon(int entity, uint weaponHash, int weaponType); + bool HasEntityBeenDamagedByWeapon(uint entity, uint weaponHash, int weaponType); void ClearEntityLastWeaponDamage(IEntity entity); - void ClearEntityLastWeaponDamage(int entity); + void ClearEntityLastWeaponDamage(uint entity); void SetPedDropsWeapon(IPlayer ped); - void SetPedDropsWeapon(int ped); + void SetPedDropsWeapon(uint ped); /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// @@ -26263,7 +26250,7 @@ public unsafe interface INatives /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - void SetPedDropsInventoryWeapon(int ped, uint weaponHash, float xOffset, float yOffset, float zOffset, int ammoCount); + void SetPedDropsInventoryWeapon(uint ped, uint weaponHash, float xOffset, float yOffset, float zOffset, int ammoCount); /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// @@ -26273,7 +26260,7 @@ public unsafe interface INatives /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// /// is mostly 1 in the scripts. - int GetMaxAmmoInClip(int ped, uint weaponHash, bool p2); + int GetMaxAmmoInClip(uint ped, uint weaponHash, bool p2); /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// @@ -26281,7 +26268,7 @@ public unsafe interface INatives /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - bool GetAmmoInClip(int ped, uint weaponHash, ref int ammo); + bool GetAmmoInClip(uint ped, uint weaponHash, ref int ammo); /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// @@ -26289,7 +26276,7 @@ public unsafe interface INatives /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - bool SetAmmoInClip(int ped, uint weaponHash, int ammo); + bool SetAmmoInClip(uint ped, uint weaponHash, int ammo); /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// @@ -26297,7 +26284,7 @@ public unsafe interface INatives /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - bool GetMaxAmmo(int ped, uint weaponHash, ref int ammo); + bool GetMaxAmmo(uint ped, uint weaponHash, ref int ammo); /// /// Returns the max ammo for an ammo type. Ammo types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1 /// @@ -26305,7 +26292,7 @@ public unsafe interface INatives /// /// Returns the max ammo for an ammo type. Ammo types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1 /// - bool GetMaxAmmoByType(int ped, uint ammoTypeHash, ref int ammo); + bool GetMaxAmmoByType(uint ped, uint ammoTypeHash, ref int ammo); /// /// /// types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1 @@ -26313,7 +26300,7 @@ public unsafe interface INatives /// /// /// types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1 - void AddPedAmmoByType(int ped, uint ammoTypeHash, int ammo); + void AddPedAmmoByType(uint ped, uint ammoTypeHash, int ammo); /// /// /// types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1 @@ -26321,11 +26308,11 @@ public unsafe interface INatives /// /// /// types: https://gist.github.com/root-cause/faf41f59f7a6d818b7db0b839bd147c1 - void SetPedAmmoByType(int ped, uint ammoTypeHash, int ammo); + void SetPedAmmoByType(uint ped, uint ammoTypeHash, int ammo); int GetPedAmmoByType(IPlayer ped, uint ammoTypeHash); - int GetPedAmmoByType(int ped, uint ammoTypeHash); + int GetPedAmmoByType(uint ped, uint ammoTypeHash); void SetPedAmmoToDrop(IPlayer ped, int p1); - void SetPedAmmoToDrop(int ped, int p1); + void SetPedAmmoToDrop(uint ped, int p1); void SetPickupAmmoAmountScaler(float p0); /// /// Returns the current ammo type of the specified ped's specified weapon. @@ -26340,7 +26327,7 @@ public unsafe interface INatives /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// /// MkII magazines will change the return value, like Pistol MkII returning AMMO_PISTOL without any components and returning AMMO_PISTOL_TRACER after Tracer Rounds component is attached. - uint GetPedAmmoTypeFromWeapon(int ped, uint weaponHash); + uint GetPedAmmoTypeFromWeapon(uint ped, uint weaponHash); /// /// Returns the base/default ammo type of the specified ped's specified weapon. /// Use GET_PED_AMMO_TYPE_FROM_WEAPON if you want current ammo type (like AMMO_MG_INCENDIARY/AMMO_MG_TRACER while using MkII magazines) and use this if you want base ammo type. (AMMO_MG) @@ -26352,7 +26339,7 @@ public unsafe interface INatives /// Use GET_PED_AMMO_TYPE_FROM_WEAPON if you want current ammo type (like AMMO_MG_INCENDIARY/AMMO_MG_TRACER while using MkII magazines) and use this if you want base ammo type. (AMMO_MG) /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - uint GetPedOriginalAmmoTypeFromWeapon(int ped, uint weaponHash); + uint GetPedOriginalAmmoTypeFromWeapon(uint ped, uint weaponHash); /// /// Pass ped. Pass address of Vector3. /// The coord will be put into the Vector3. @@ -26364,7 +26351,7 @@ public unsafe interface INatives /// The coord will be put into the Vector3. /// /// The return will determine whether there was a coord found or not. - bool GetPedLastWeaponImpactCoord(int ped, ref Vector3 coords); + bool GetPedLastWeaponImpactCoord(uint ped, ref Vector3 coords); /// /// p1/gadgetHash was always 0xFBAB5776 ("GADGET_PARACHUTE"). /// @@ -26374,7 +26361,7 @@ public unsafe interface INatives /// p1/gadgetHash was always 0xFBAB5776 ("GADGET_PARACHUTE"). /// /// is always true. - void SetPedGadget(int ped, uint gadgetHash, bool p2); + void SetPedGadget(uint ped, uint gadgetHash, bool p2); /// /// /// - was always 0xFBAB5776 ("GADGET_PARACHUTE"). @@ -26382,7 +26369,7 @@ public unsafe interface INatives /// /// /// - was always 0xFBAB5776 ("GADGET_PARACHUTE"). - bool GetIsPedGadgetEquipped(int ped, uint gadgetHash); + bool GetIsPedGadgetEquipped(uint ped, uint gadgetHash); /// /// Returns the hash of the weapon. /// var num7 = WEAPON::GET_SELECTED_PED_WEAPON(num4); @@ -26408,7 +26395,7 @@ public unsafe interface INatives /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// /// The difference is that GET_SELECTED_PED_WEAPON simply returns the ped's current weapon hash but GET_CURRENT_PED_WEAPON also checks the weapon object and returns true if the hash of the weapon object equals the weapon hash - uint GetSelectedPedWeapon(int ped); + uint GetSelectedPedWeapon(uint ped); /// /// WEAPON::EXPLODE_PROJECTILES(PLAYER::PLAYER_PED_ID(), func_221(0x00000003), 0x00000001); /// @@ -26416,23 +26403,23 @@ public unsafe interface INatives /// /// WEAPON::EXPLODE_PROJECTILES(PLAYER::PLAYER_PED_ID(), func_221(0x00000003), 0x00000001); /// - void ExplodeProjectiles(int ped, uint weaponHash, bool p2); + void ExplodeProjectiles(uint ped, uint weaponHash, bool p2); /// /// If `explode` true, then removal is done through exploding the projectile. Basically the same as EXPLODE_PROJECTILES but without defining the owner ped. /// void RemoveAllProjectilesOfType(uint weaponHash, bool explode); float GetLockonDistanceOfCurrentPedWeapon(IPlayer ped); - float GetLockonDistanceOfCurrentPedWeapon(int ped); + float GetLockonDistanceOfCurrentPedWeapon(uint ped); float GetMaxRangeOfCurrentPedWeapon(IPlayer ped); - float GetMaxRangeOfCurrentPedWeapon(int ped); + float GetMaxRangeOfCurrentPedWeapon(uint ped); /// /// Fourth Parameter = unsure, almost always -1 /// - bool HasVehicleGotProjectileAttached(IPlayer driver, int vehicle, uint weaponHash, int p3); + bool HasVehicleGotProjectileAttached(IPlayer driver, uint vehicle, uint weaponHash, int p3); /// /// Fourth Parameter = unsure, almost always -1 /// - bool HasVehicleGotProjectileAttached(int driver, IVehicle vehicle, uint weaponHash, int p3); + bool HasVehicleGotProjectileAttached(uint driver, IVehicle vehicle, uint weaponHash, int p3); /// /// Fourth Parameter = unsure, almost always -1 /// @@ -26440,7 +26427,7 @@ public unsafe interface INatives /// /// Fourth Parameter = unsure, almost always -1 /// - bool HasVehicleGotProjectileAttached(int driver, int vehicle, uint weaponHash, int p3); + bool HasVehicleGotProjectileAttached(uint driver, uint vehicle, uint weaponHash, int p3); /// /// Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// @@ -26448,7 +26435,7 @@ public unsafe interface INatives /// /// Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - void GiveWeaponComponentToPed(int ped, uint weaponHash, uint componentHash); + void GiveWeaponComponentToPed(uint ped, uint weaponHash, uint componentHash); /// /// Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// @@ -26456,7 +26443,7 @@ public unsafe interface INatives /// /// Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - void RemoveWeaponComponentFromPed(int ped, uint weaponHash, uint componentHash); + void RemoveWeaponComponentFromPed(uint ped, uint weaponHash, uint componentHash); /// /// Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// @@ -26464,7 +26451,7 @@ public unsafe interface INatives /// /// Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - bool HasPedGotWeaponComponent(int ped, uint weaponHash, uint componentHash); + bool HasPedGotWeaponComponent(uint ped, uint weaponHash, uint componentHash); /// /// Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// @@ -26472,9 +26459,9 @@ public unsafe interface INatives /// /// Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - bool IsPedWeaponComponentActive(int ped, uint weaponHash, uint componentHash); + bool IsPedWeaponComponentActive(uint ped, uint weaponHash, uint componentHash); bool RefillAmmoInstantly(IPlayer ped); - bool RefillAmmoInstantly(int ped); + bool RefillAmmoInstantly(uint ped); /// /// Forces a ped to reload only if they are able to; if they have a full magazine, they will not reload. /// @@ -26482,7 +26469,7 @@ public unsafe interface INatives /// /// Forces a ped to reload only if they are able to; if they have a full magazine, they will not reload. /// - bool MakePedReload(int ped); + bool MakePedReload(uint ped); /// /// Nearly every instance of p1 I found was 31. Nearly every instance of p2 I found was 0. /// REQUEST_WEAPON_ASSET(iLocal_1888, 31, 26); @@ -26493,22 +26480,22 @@ public unsafe interface INatives /// /// Now has 8 params. /// - int CreateWeaponObject(uint weaponHash, int ammoCount, float x, float y, float z, bool showWorldModel, float scale, int p7, int p8, int p9); + uint CreateWeaponObject(uint weaponHash, int ammoCount, float x, float y, float z, bool showWorldModel, float scale, int p7, int p8, int p9); /// /// (use WEAPON::GET_WEAPON_COMPONENT_TYPE_MODEL() to get hash value) /// ${component_at_ar_flsh}, ${component_at_ar_supp}, ${component_at_pi_flsh}, ${component_at_scope_large}, ${component_at_ar_supp_02} /// - void GiveWeaponComponentToWeaponObject(int weaponObject, uint componentHash); + void GiveWeaponComponentToWeaponObject(uint weaponObject, uint componentHash); /// /// see DOES_WEAPON_TAKE_WEAPON_COMPONENT for full list of weapons & components /// - void RemoveWeaponComponentFromWeaponObject(int @object, uint componentHash); + void RemoveWeaponComponentFromWeaponObject(uint @object, uint componentHash); /// /// see DOES_WEAPON_TAKE_WEAPON_COMPONENT for full list of weapons & components /// - bool HasWeaponGotWeaponComponent(int weapon, uint componentHash); - void GiveWeaponObjectToPed(int weaponObject, IPlayer ped); - void GiveWeaponObjectToPed(int weaponObject, int ped); + bool HasWeaponGotWeaponComponent(uint weapon, uint componentHash); + void GiveWeaponObjectToPed(uint weaponObject, IPlayer ped); + void GiveWeaponObjectToPed(uint weaponObject, uint ped); /// /// Full list of weapons & components by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// @@ -26517,12 +26504,12 @@ public unsafe interface INatives /// Unknown behavior when unarmed. /// /// Drops the current weapon and returns the object - int GetWeaponObjectFromPed(IPlayer ped, bool p1); + uint GetWeaponObjectFromPed(IPlayer ped, bool p1); /// /// Unknown behavior when unarmed. /// /// Drops the current weapon and returns the object - int GetWeaponObjectFromPed(int ped, bool p1); + uint GetWeaponObjectFromPed(uint ped, bool p1); /// /// Gives the specified loadout to the specified ped. /// Loadouts are defined in common.rpf\data\ai\loadouts.meta @@ -26532,7 +26519,7 @@ public unsafe interface INatives /// Gives the specified loadout to the specified ped. /// Loadouts are defined in common.rpf\data\ai\loadouts.meta /// - void GiveLoadoutToPed(int ped, uint loadoutHash); + void GiveLoadoutToPed(uint ped, uint loadoutHash); /// /// 0 - Normal /// 1 - Green @@ -26558,7 +26545,7 @@ public unsafe interface INatives /// Full list of weapons, components & tint indexes by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// /// can be the following: - void SetPedWeaponTintIndex(int ped, uint weaponHash, int tintIndex); + void SetPedWeaponTintIndex(uint ped, uint weaponHash, int tintIndex); /// /// Full list of weapons, components & tint indexes by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// @@ -26566,12 +26553,12 @@ public unsafe interface INatives /// /// Full list of weapons, components & tint indexes by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - int GetPedWeaponTintIndex(int ped, uint weaponHash); + int GetPedWeaponTintIndex(uint ped, uint weaponHash); /// /// Full list of weapons, components & tint indexes by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - void SetWeaponObjectTintIndex(int weapon, int tintIndex); - int GetWeaponObjectTintIndex(int weapon); + void SetWeaponObjectTintIndex(uint weapon, int tintIndex); + int GetWeaponObjectTintIndex(uint weapon); /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// @@ -26601,7 +26588,7 @@ public unsafe interface INatives /// 7 = Cool Blue /// See NativeDB for reference: http://natives.altv.mp/#/0x9FE5633880ECD8ED /// - void SetPedWeaponComponentTintIndex(int ped, uint weaponHash, uint camoComponentHash, int colorIndex); + void SetPedWeaponComponentTintIndex(uint ped, uint weaponHash, uint camoComponentHash, int colorIndex); /// /// Returns -1 if camoComponentHash is invalid/not attached to the weapon. /// Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json @@ -26611,7 +26598,7 @@ public unsafe interface INatives /// Returns -1 if camoComponentHash is invalid/not attached to the weapon. /// Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - int GetPedWeaponComponentTintIndex(int ped, uint weaponHash, uint camoComponentHash); + int GetPedWeaponComponentTintIndex(uint ped, uint weaponHash, uint camoComponentHash); /// /// Colors: /// 0 = Gray @@ -26624,15 +26611,15 @@ public unsafe interface INatives /// 7 = Cool Blue /// See NativeDB for reference: http://natives.altv.mp/#/0x5DA825A85D0EA6E6 /// - void SetWeaponObjectComponentTintIndex(int weaponObject, uint camoComponentHash, int colorIndex); + void SetWeaponObjectComponentTintIndex(uint weaponObject, uint camoComponentHash, int colorIndex); /// /// Returns -1 if camoComponentHash is invalid/not attached to the weapon object. /// Full list of weapons, components, tint indexes & weapon liveries by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - int GetWeaponObjectComponentTintIndex(int weaponObject, uint camoComponentHash); + int GetWeaponObjectComponentTintIndex(uint weaponObject, uint camoComponentHash); int GetPedWeaponCamoIndex(IPlayer ped, uint weaponHash); - int GetPedWeaponCamoIndex(int ped, uint weaponHash); - void SetWeaponObjectCamoIndex(int weaponObject, int p1); + int GetPedWeaponCamoIndex(uint ped, uint weaponHash); + void SetWeaponObjectCamoIndex(uint weaponObject, int p1); /// /// struct WeaponHudStatsData /// { @@ -26673,17 +26660,17 @@ public unsafe interface INatives /// float GetWeaponTimeBetweenShots(uint weaponHash); void SetPedChanceOfFiringBlanks(IPlayer ped, float xBias, float yBias); - void SetPedChanceOfFiringBlanks(int ped, float xBias, float yBias); + void SetPedChanceOfFiringBlanks(uint ped, float xBias, float yBias); /// /// Returns handle of the projectile. /// - int SetPedShootOrdnanceWeapon(IPlayer ped, float p1); + uint SetPedShootOrdnanceWeapon(IPlayer ped, float p1); /// /// Returns handle of the projectile. /// - int SetPedShootOrdnanceWeapon(int ped, float p1); + uint SetPedShootOrdnanceWeapon(uint ped, float p1); void RequestWeaponHighDetailModel(IEntity weaponObject); - void RequestWeaponHighDetailModel(int weaponObject); + void RequestWeaponHighDetailModel(uint weaponObject); /// /// Changes the weapon damage output by the given multiplier value. Must be run every frame. /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json @@ -26703,9 +26690,9 @@ public unsafe interface INatives /// /// ped = The ped whose weapon you want to check. /// This native returns a true or false value. - bool IsPedCurrentWeaponSilenced(int ped); + bool IsPedCurrentWeaponSilenced(uint ped); bool IsFlashLightOn(IPlayer ped); - bool IsFlashLightOn(int ped); + bool IsFlashLightOn(uint ped); bool SetFlashLightFadeDistance(float distance); /// /// Enables/disables flashlight on ped's weapon. @@ -26714,7 +26701,7 @@ public unsafe interface INatives /// /// Enables/disables flashlight on ped's weapon. /// - void SetFlashLightActiveHistory(int ped, bool toggle); + void SetFlashLightActiveHistory(uint ped, bool toggle); /// /// Changes the selected ped aiming animation style. /// Note : You must use GET_HASH_KEY! @@ -26740,7 +26727,7 @@ public unsafe interface INatives /// "FirstPersonAiming", /// See NativeDB for reference: http://natives.altv.mp/#/0x1055AC3A667F09D9 /// - void SetWeaponAnimationOverride(int ped, uint animStyle); + void SetWeaponAnimationOverride(uint ped, uint animStyle); /// /// enum class eDamageType /// { @@ -26755,7 +26742,7 @@ public unsafe interface INatives /// int GetWeaponDamageType(uint weaponHash); void SetEqippedWeaponStartSpinningAtFullSpeed(IPlayer ped); - void SetEqippedWeaponStartSpinningAtFullSpeed(int ped); + void SetEqippedWeaponStartSpinningAtFullSpeed(uint ped); /// /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// @@ -26772,7 +26759,7 @@ public unsafe interface INatives bool RemoveAirDefenceSphere(int zoneId); void RemoveAllAirDefenceSpheres(); void SetPlayerTargettableForAirDefenceSphere(IPlayer player, int zoneId, bool enable); - void SetPlayerTargettableForAirDefenceSphere(int player, int zoneId, bool enable); + void SetPlayerTargettableForAirDefenceSphere(uint player, int zoneId, bool enable); /// /// bool IsAirDefenceSphereInArea(float x, float y, float z, float radius, ref int outZoneId); @@ -26787,7 +26774,7 @@ public unsafe interface INatives /// Disables selecting the given weapon. Ped isn't forced to put the gun away. However you can't reselect the weapon if you holster then unholster. Weapon is also grayed out on the weapon wheel. /// Full list of weapons by DurtyFree: https://github.com/DurtyFree/gta-v-data-dumps/blob/master/weapons.json /// - void SetCanPedSelectInventoryWeapon(int ped, uint weaponHash, bool toggle); + void SetCanPedSelectInventoryWeapon(uint ped, uint weaponHash, bool toggle); /// /// Disable all weapons. Does the same as 0xB4771B9AAF4E68E4 except for all weapons. /// @@ -26795,7 +26782,7 @@ public unsafe interface INatives /// /// Disable all weapons. Does the same as 0xB4771B9AAF4E68E4 except for all weapons. /// - void SetCanPedSelectAllWeapons(int ped, bool toggle); + void SetCanPedSelectAllWeapons(uint ped, bool toggle); int GetZoneAtCoords(float x, float y, float z); /// /// 'zoneName' corresponds to an entry in 'popzone.ipl'. @@ -26834,7 +26821,7 @@ public unsafe interface INatives /// Modified example from "am_imp_exp.c4", line 6406: /// popSchedules[0] = ZONE::GET_ZONE_POPSCHEDULE(ZONE::GET_ZONE_AT_COORDS(891.3, 807.9, 188.1)); /// etc. - /// + /// /// ZONE::OVERRIDE_POPSCHEDULE_VEHICLE_MODEL(popSchedules[index], vehicleHash); /// STREAMING::REQUEST_MODEL(vehicleHash); /// @@ -26844,7 +26831,7 @@ public unsafe interface INatives /// Modified example from "am_imp_exp.c4", line 6418: /// popSchedules[0] = ZONE::GET_ZONE_POPSCHEDULE(ZONE::GET_ZONE_AT_COORDS(891.3, 807.9, 188.1)); /// etc. - /// + /// /// STREAMING::SET_MODEL_AS_NO_LONGER_NEEDED(vehicleHash); /// ZONE::CLEAR_POPSCHEDULE_OVERRIDE_VEHICLE_MODEL(popSchedules[index]); /// @@ -26957,7 +26944,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__drawSpotLight; private delegate* unmanaged[Cdecl] fn__drawShadowedSpotLight; private delegate* unmanaged[Cdecl] fn__fadeUpPedLight; - private delegate* unmanaged[Cdecl] fn__updateLightsOnEntity; + private delegate* unmanaged[Cdecl] fn__updateLightsOnEntity; private delegate* unmanaged[Cdecl] fn__setLightOverrideMaxIntensityScale; private delegate* unmanaged[Cdecl] fn__getLightOverrideMaxIntensityScale; private delegate* unmanaged[Cdecl] fn__drawMarker; @@ -26992,9 +26979,9 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__drawSpriteArx; private delegate* unmanaged[Cdecl] fn__drawSpriteNamedRendertarget; private delegate* unmanaged[Cdecl] fn__drawSpriteArxWithUv; - private delegate* unmanaged[Cdecl] fn__addEntityIcon; - private delegate* unmanaged[Cdecl] fn__setEntityIconVisibility; - private delegate* unmanaged[Cdecl] fn__setEntityIconColor; + private delegate* unmanaged[Cdecl] fn__addEntityIcon; + private delegate* unmanaged[Cdecl] fn__setEntityIconVisibility; + private delegate* unmanaged[Cdecl] fn__setEntityIconColor; private delegate* unmanaged[Cdecl] fn__setDrawOrigin; private delegate* unmanaged[Cdecl] fn__clearDrawOrigin; private delegate* unmanaged[Cdecl] fn__setBinkMovie; @@ -27005,7 +26992,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setBinkMovieTime; private delegate* unmanaged[Cdecl] fn__getBinkMovieTime; private delegate* unmanaged[Cdecl] fn__setBinkMovieVolume; - private delegate* unmanaged[Cdecl] fn__attachTvAudioToEntity; + private delegate* unmanaged[Cdecl] fn__attachTvAudioToEntity; private delegate* unmanaged[Cdecl] fn__setBinkMovieAudioFrontend; private delegate* unmanaged[Cdecl] fn__setTvAudioFrontend; private delegate* unmanaged[Cdecl] fn__setBinkShouldSkip; @@ -27029,7 +27016,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setNoisinessoveride; private delegate* unmanaged[Cdecl] fn__getScreenCoordFromWorldCoord; private delegate* unmanaged[Cdecl] fn__getTextureResolution; - private delegate* unmanaged[Cdecl] fn__overridePedCrewLogoTexture; + private delegate* unmanaged[Cdecl] fn__overridePedCrewLogoTexture; private delegate* unmanaged[Cdecl] fn__setDistanceBlurStrengthOverride; private delegate* unmanaged[Cdecl] fn__setFlash; private delegate* unmanaged[Cdecl] fn__disableOcclusionThisFrame; @@ -27112,24 +27099,24 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__phonephotoeditorSetFrameTxd; private delegate* unmanaged[Cdecl] fn__startParticleFxNonLoopedAtCoord; private delegate* unmanaged[Cdecl] fn__startNetworkedParticleFxNonLoopedAtCoord; - private delegate* unmanaged[Cdecl] fn__startParticleFxNonLoopedOnPedBone; - private delegate* unmanaged[Cdecl] fn__startNetworkedParticleFxNonLoopedOnPedBone; - private delegate* unmanaged[Cdecl] fn__startParticleFxNonLoopedOnEntity; - private delegate* unmanaged[Cdecl] fn__startNetworkedParticleFxNonLoopedOnEntity; - private delegate* unmanaged[Cdecl] fn__startParticleFxNonLoopedOnEntityBone; + private delegate* unmanaged[Cdecl] fn__startParticleFxNonLoopedOnPedBone; + private delegate* unmanaged[Cdecl] fn__startNetworkedParticleFxNonLoopedOnPedBone; + private delegate* unmanaged[Cdecl] fn__startParticleFxNonLoopedOnEntity; + private delegate* unmanaged[Cdecl] fn__startNetworkedParticleFxNonLoopedOnEntity; + private delegate* unmanaged[Cdecl] fn__startParticleFxNonLoopedOnEntityBone; private delegate* unmanaged[Cdecl] fn__setParticleFxNonLoopedColour; private delegate* unmanaged[Cdecl] fn__setParticleFxNonLoopedAlpha; private delegate* unmanaged[Cdecl] fn__setParticleFxNonLoopedEmitterSize; private delegate* unmanaged[Cdecl] fn__setParticleFxForceVehicleInterior; private delegate* unmanaged[Cdecl] fn__startParticleFxLoopedAtCoord; - private delegate* unmanaged[Cdecl] fn__startParticleFxLoopedOnPedBone; - private delegate* unmanaged[Cdecl] fn__startParticleFxLoopedOnEntity; - private delegate* unmanaged[Cdecl] fn__startParticleFxLoopedOnEntityBone; - private delegate* unmanaged[Cdecl] fn__startNetworkedParticleFxLoopedOnEntity; - private delegate* unmanaged[Cdecl] fn__startNetworkedParticleFxLoopedOnEntityBone; + private delegate* unmanaged[Cdecl] fn__startParticleFxLoopedOnPedBone; + private delegate* unmanaged[Cdecl] fn__startParticleFxLoopedOnEntity; + private delegate* unmanaged[Cdecl] fn__startParticleFxLoopedOnEntityBone; + private delegate* unmanaged[Cdecl] fn__startNetworkedParticleFxLoopedOnEntity; + private delegate* unmanaged[Cdecl] fn__startNetworkedParticleFxLoopedOnEntityBone; private delegate* unmanaged[Cdecl] fn__stopParticleFxLooped; private delegate* unmanaged[Cdecl] fn__removeParticleFx; - private delegate* unmanaged[Cdecl] fn__removeParticleFxFromEntity; + private delegate* unmanaged[Cdecl] fn__removeParticleFxFromEntity; private delegate* unmanaged[Cdecl] fn__removeParticleFxInRange; private delegate* unmanaged[Cdecl] fn__forceParticleFxInVehicleInterior; private delegate* unmanaged[Cdecl] fn__doesParticleFxLoopedExist; @@ -27140,7 +27127,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setParticleFxLoopedScale; private delegate* unmanaged[Cdecl] fn__setParticleFxLoopedFarClipDist; private delegate* unmanaged[Cdecl] fn__setParticleFxCamInsideVehicle; - private delegate* unmanaged[Cdecl] fn__setParticleFxCamInsideNonplayerVehicle; + private delegate* unmanaged[Cdecl] fn__setParticleFxCamInsideNonplayerVehicle; private delegate* unmanaged[Cdecl] fn__setParticleFxShootoutBoat; private delegate* unmanaged[Cdecl] fn__clearParticleFxShootoutBoat; private delegate* unmanaged[Cdecl] fn__setParticleFxBloodScale; @@ -27164,12 +27151,12 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setWeatherPtfxUseOverrideSettings; private delegate* unmanaged[Cdecl] fn__setWeatherPtfxOverrideCurrLevel; private delegate* unmanaged[Cdecl] fn__washDecalsInRange; - private delegate* unmanaged[Cdecl] fn__washDecalsFromVehicle; + private delegate* unmanaged[Cdecl] fn__washDecalsFromVehicle; private delegate* unmanaged[Cdecl] fn__fadeDecalsInRange; private delegate* unmanaged[Cdecl] fn__removeDecalsInRange; - private delegate* unmanaged[Cdecl] fn__removeDecalsFromObject; - private delegate* unmanaged[Cdecl] fn__removeDecalsFromObjectFacing; - private delegate* unmanaged[Cdecl] fn__removeDecalsFromVehicle; + private delegate* unmanaged[Cdecl] fn__removeDecalsFromObject; + private delegate* unmanaged[Cdecl] fn__removeDecalsFromObjectFacing; + private delegate* unmanaged[Cdecl] fn__removeDecalsFromVehicle; private delegate* unmanaged[Cdecl] fn__addDecal; private delegate* unmanaged[Cdecl] fn__addPetrolDecal; private delegate* unmanaged[Cdecl] fn__addOilDecal; @@ -27186,11 +27173,11 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__patchDecalDiffuseMap; private delegate* unmanaged[Cdecl] fn__unpatchDecalDiffuseMap; private delegate* unmanaged[Cdecl] fn__moveVehicleDecals; - private delegate* unmanaged[Cdecl] fn__addVehicleCrewEmblem; + private delegate* unmanaged[Cdecl] fn__addVehicleCrewEmblem; private delegate* unmanaged[Cdecl] fn__abortVehicleCrewEmblemRequest; - private delegate* unmanaged[Cdecl] fn__removeVehicleCrewEmblem; - private delegate* unmanaged[Cdecl] fn__getVehicleCrewEmblemRequestState; - private delegate* unmanaged[Cdecl] fn__doesVehicleHaveCrewEmblem; + private delegate* unmanaged[Cdecl] fn__removeVehicleCrewEmblem; + private delegate* unmanaged[Cdecl] fn__getVehicleCrewEmblemRequestState; + private delegate* unmanaged[Cdecl] fn__doesVehicleHaveCrewEmblem; private delegate* unmanaged[Cdecl] fn__disableCompositeShotgunDecals; private delegate* unmanaged[Cdecl] fn__disableScuffDecals; private delegate* unmanaged[Cdecl] fn__setDecalBulletImpactRangeScale; @@ -27287,7 +27274,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__enableMovieSubtitles; private delegate* unmanaged[Cdecl] fn__ui3dsceneIsAvailable; private delegate* unmanaged[Cdecl] fn__ui3dscenePushPreset; - private delegate* unmanaged[Cdecl] fn__ui3dsceneAssignPedToSlot; + private delegate* unmanaged[Cdecl] fn__ui3dsceneAssignPedToSlot; private delegate* unmanaged[Cdecl] fn__ui3dsceneClearPatchedData; private delegate* unmanaged[Cdecl] fn__ui3dsceneMakePushedPresetPersistent; private delegate* unmanaged[Cdecl] fn__terraingridActivate; @@ -27299,16 +27286,16 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__animpostfxIsRunning; private delegate* unmanaged[Cdecl] fn__animpostfxStopAll; private delegate* unmanaged[Cdecl] fn__animpostfxStopAndFlushRequests; - private delegate* unmanaged[Cdecl] fn__playPedRingtone; - private delegate* unmanaged[Cdecl] fn__isPedRingtonePlaying; - private delegate* unmanaged[Cdecl] fn__stopPedRingtone; + private delegate* unmanaged[Cdecl] fn__playPedRingtone; + private delegate* unmanaged[Cdecl] fn__isPedRingtonePlaying; + private delegate* unmanaged[Cdecl] fn__stopPedRingtone; private delegate* unmanaged[Cdecl] fn__isMobilePhoneCallOngoing; private delegate* unmanaged[Cdecl] fn__isMobileInterferenceActive; private delegate* unmanaged[Cdecl] fn__createNewScriptedConversation; private delegate* unmanaged[Cdecl] fn__addLineToConversation; - private delegate* unmanaged[Cdecl] fn__addPedToConversation; + private delegate* unmanaged[Cdecl] fn__addPedToConversation; private delegate* unmanaged[Cdecl] fn__setPositionForNullConvPed; - private delegate* unmanaged[Cdecl] fn__setEntityForNullConvPed; + private delegate* unmanaged[Cdecl] fn__setEntityForNullConvPed; private delegate* unmanaged[Cdecl] fn__setMicrophonePosition; private delegate* unmanaged[Cdecl] fn__setConversationAudioControlledByAnim; private delegate* unmanaged[Cdecl] fn__setConversationAudioPlaceholder; @@ -27325,8 +27312,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__restartScriptedConversation; private delegate* unmanaged[Cdecl] fn__stopScriptedConversation; private delegate* unmanaged[Cdecl] fn__skipToNextScriptedConversationLine; - private delegate* unmanaged[Cdecl] fn__interruptConversation; - private delegate* unmanaged[Cdecl] fn__interruptConversationAndPause; + private delegate* unmanaged[Cdecl] fn__interruptConversation; + private delegate* unmanaged[Cdecl] fn__interruptConversationAndPause; private delegate* unmanaged[Cdecl] fn__getVariationChosenForScriptedLine; private delegate* unmanaged[Cdecl] fn__setNoDuckingForConversation; private delegate* unmanaged[Cdecl] fn__registerScriptWithAudio; @@ -27349,8 +27336,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__playSound; private delegate* unmanaged[Cdecl] fn__playSoundFrontend; private delegate* unmanaged[Cdecl] fn__playDeferredSoundFrontend; - private delegate* unmanaged[Cdecl] fn__playSoundFromEntity; - private delegate* unmanaged[Cdecl] fn__playSoundFromEntityHash; + private delegate* unmanaged[Cdecl] fn__playSoundFromEntity; + private delegate* unmanaged[Cdecl] fn__playSoundFromEntityHash; private delegate* unmanaged[Cdecl] fn__playSoundFromCoord; private delegate* unmanaged[Cdecl] fn__updateSoundCoord; private delegate* unmanaged[Cdecl] fn__stopSound; @@ -27361,37 +27348,37 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__overrideUnderwaterStream; private delegate* unmanaged[Cdecl] fn__setVariableOnUnderWaterStream; private delegate* unmanaged[Cdecl] fn__hasSoundFinished; - private delegate* unmanaged[Cdecl] fn__playPedAmbientSpeechNative; - private delegate* unmanaged[Cdecl] fn__playPedAmbientSpeechAndCloneNative; - private delegate* unmanaged[Cdecl] fn__playPedAmbientSpeechWithVoiceNative; + private delegate* unmanaged[Cdecl] fn__playPedAmbientSpeechNative; + private delegate* unmanaged[Cdecl] fn__playPedAmbientSpeechAndCloneNative; + private delegate* unmanaged[Cdecl] fn__playPedAmbientSpeechWithVoiceNative; private delegate* unmanaged[Cdecl] fn__playAmbientSpeechFromPositionNative; private delegate* unmanaged[Cdecl] fn__overrideTrevorRage; private delegate* unmanaged[Cdecl] fn__resetTrevorRage; - private delegate* unmanaged[Cdecl] fn__setPlayerAngry; - private delegate* unmanaged[Cdecl] fn__playPain; + private delegate* unmanaged[Cdecl] fn__setPlayerAngry; + private delegate* unmanaged[Cdecl] fn__playPain; private delegate* unmanaged[Cdecl] fn__releaseWeaponAudio; private delegate* unmanaged[Cdecl] fn__activateAudioSlowmoMode; private delegate* unmanaged[Cdecl] fn__deactivateAudioSlowmoMode; - private delegate* unmanaged[Cdecl] fn__setAmbientVoiceName; - private delegate* unmanaged[Cdecl] fn__setAmbientVoiceNameHash; - private delegate* unmanaged[Cdecl] fn__getAmbientVoiceNameHash; - private delegate* unmanaged[Cdecl] fn__setPedVoiceFull; - private delegate* unmanaged[Cdecl] fn__setPedRaceAndVoiceGroup; - private delegate* unmanaged[Cdecl] fn__setPedVoiceGroup; - private delegate* unmanaged[Cdecl] fn__setPedVoiceGroupFromRaceToPvg; - private delegate* unmanaged[Cdecl] fn__setPedGender; - private delegate* unmanaged[Cdecl] fn__stopCurrentPlayingSpeech; - private delegate* unmanaged[Cdecl] fn__stopCurrentPlayingAmbientSpeech; - private delegate* unmanaged[Cdecl] fn__isAmbientSpeechPlaying; - private delegate* unmanaged[Cdecl] fn__isScriptedSpeechPlaying; - private delegate* unmanaged[Cdecl] fn__isAnySpeechPlaying; + private delegate* unmanaged[Cdecl] fn__setAmbientVoiceName; + private delegate* unmanaged[Cdecl] fn__setAmbientVoiceNameHash; + private delegate* unmanaged[Cdecl] fn__getAmbientVoiceNameHash; + private delegate* unmanaged[Cdecl] fn__setPedVoiceFull; + private delegate* unmanaged[Cdecl] fn__setPedRaceAndVoiceGroup; + private delegate* unmanaged[Cdecl] fn__setPedVoiceGroup; + private delegate* unmanaged[Cdecl] fn__setPedVoiceGroupFromRaceToPvg; + private delegate* unmanaged[Cdecl] fn__setPedGender; + private delegate* unmanaged[Cdecl] fn__stopCurrentPlayingSpeech; + private delegate* unmanaged[Cdecl] fn__stopCurrentPlayingAmbientSpeech; + private delegate* unmanaged[Cdecl] fn__isAmbientSpeechPlaying; + private delegate* unmanaged[Cdecl] fn__isScriptedSpeechPlaying; + private delegate* unmanaged[Cdecl] fn__isAnySpeechPlaying; private delegate* unmanaged[Cdecl] fn__isAnyPositionalSpeechPlaying; - private delegate* unmanaged[Cdecl] fn__doesContextExistForThisPed; - private delegate* unmanaged[Cdecl] fn__isPedInCurrentConversation; - private delegate* unmanaged[Cdecl] fn__setPedIsDrunk; - private delegate* unmanaged[Cdecl] fn__playAnimalVocalization; - private delegate* unmanaged[Cdecl] fn__isAnimalVocalizationPlaying; - private delegate* unmanaged[Cdecl] fn__setAnimalMood; + private delegate* unmanaged[Cdecl] fn__doesContextExistForThisPed; + private delegate* unmanaged[Cdecl] fn__isPedInCurrentConversation; + private delegate* unmanaged[Cdecl] fn__setPedIsDrunk; + private delegate* unmanaged[Cdecl] fn__playAnimalVocalization; + private delegate* unmanaged[Cdecl] fn__isAnimalVocalizationPlaying; + private delegate* unmanaged[Cdecl] fn__setAnimalMood; private delegate* unmanaged[Cdecl] fn__isMobilePhoneRadioActive; private delegate* unmanaged[Cdecl] fn__setMobilePhoneRadioState; private delegate* unmanaged[Cdecl] fn__getPlayerRadioStationIndex; @@ -27403,13 +27390,13 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setRadioRetuneUp; private delegate* unmanaged[Cdecl] fn__setRadioRetuneDown; private delegate* unmanaged[Cdecl] fn__setRadioToStationName; - private delegate* unmanaged[Cdecl] fn__setVehRadioStation; - private delegate* unmanaged[Cdecl] fn__setVehHasNormalRadio; - private delegate* unmanaged[Cdecl] fn__isVehicleRadioOn; - private delegate* unmanaged[Cdecl] fn__setVehForcedRadioThisFrame; - private delegate* unmanaged[Cdecl] fn__setEmitterRadioStation; + private delegate* unmanaged[Cdecl] fn__setVehRadioStation; + private delegate* unmanaged[Cdecl] fn__setVehHasNormalRadio; + private delegate* unmanaged[Cdecl] fn__isVehicleRadioOn; + private delegate* unmanaged[Cdecl] fn__setVehForcedRadioThisFrame; + private delegate* unmanaged[Cdecl] fn__setEmitterRadioStation; private delegate* unmanaged[Cdecl] fn__setStaticEmitterEnabled; - private delegate* unmanaged[Cdecl] fn__linkStaticEmitterToEntity; + private delegate* unmanaged[Cdecl] fn__linkStaticEmitterToEntity; private delegate* unmanaged[Cdecl] fn__setRadioToStationIndex; private delegate* unmanaged[Cdecl] fn__setFrontendRadioActive; private delegate* unmanaged[Cdecl] fn__unlockMissionNewsStory; @@ -27425,12 +27412,12 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setRadioTrack; private delegate* unmanaged[Cdecl] fn__setRadioTrackWithStartOffset; private delegate* unmanaged[Cdecl] fn__setNextRadioTrack; - private delegate* unmanaged[Cdecl] fn__setVehicleRadioLoud; - private delegate* unmanaged[Cdecl] fn__canVehicleReceiveCbRadio; + private delegate* unmanaged[Cdecl] fn__setVehicleRadioLoud; + private delegate* unmanaged[Cdecl] fn__canVehicleReceiveCbRadio; private delegate* unmanaged[Cdecl] fn__setMobileRadioEnabledDuringGameplay; private delegate* unmanaged[Cdecl] fn__doesPlayerVehHaveRadio; private delegate* unmanaged[Cdecl] fn__isPlayerVehRadioEnable; - private delegate* unmanaged[Cdecl] fn__setVehicleRadioEnabled; + private delegate* unmanaged[Cdecl] fn__setVehicleRadioEnabled; private delegate* unmanaged[Cdecl] fn__setPositionedPlayerVehicleRadioEmitterEnabled; private delegate* unmanaged[Cdecl] fn__setCustomRadioTrackList; private delegate* unmanaged[Cdecl] fn__clearCustomRadioTrackList; @@ -27448,7 +27435,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__forceMusicTrackList; private delegate* unmanaged[Cdecl] fn__getCurrentTrackPlayTime; private delegate* unmanaged[Cdecl] fn__getCurrentTrackSoundName; - private delegate* unmanaged[Cdecl] fn__setVehicleMissileWarningEnabled; + private delegate* unmanaged[Cdecl] fn__setVehicleMissileWarningEnabled; private delegate* unmanaged[Cdecl] fn__setAmbientZoneState; private delegate* unmanaged[Cdecl] fn__clearAmbientZoneState; private delegate* unmanaged[Cdecl] fn__setAmbientZoneListState; @@ -27461,9 +27448,9 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setVariableOnSynchSceneAudio; private delegate* unmanaged[Cdecl] fn__playPoliceReport; private delegate* unmanaged[Cdecl] fn__cancelAllPoliceReports; - private delegate* unmanaged[Cdecl] fn__blipSiren; - private delegate* unmanaged[Cdecl] fn__overrideVehHorn; - private delegate* unmanaged[Cdecl] fn__isHornActive; + private delegate* unmanaged[Cdecl] fn__blipSiren; + private delegate* unmanaged[Cdecl] fn__overrideVehHorn; + private delegate* unmanaged[Cdecl] fn__isHornActive; private delegate* unmanaged[Cdecl] fn__setAggressiveHorns; private delegate* unmanaged[Cdecl] fn__setRadioPositionAudioMute; private delegate* unmanaged[Cdecl] fn__setVehicleConversationsPersist; @@ -27472,43 +27459,43 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getStreamPlayTime; private delegate* unmanaged[Cdecl] fn__loadStream; private delegate* unmanaged[Cdecl] fn__loadStreamWithStartOffset; - private delegate* unmanaged[Cdecl] fn__playStreamFromPed; - private delegate* unmanaged[Cdecl] fn__playStreamFromVehicle; - private delegate* unmanaged[Cdecl] fn__playStreamFromObject; + private delegate* unmanaged[Cdecl] fn__playStreamFromPed; + private delegate* unmanaged[Cdecl] fn__playStreamFromVehicle; + private delegate* unmanaged[Cdecl] fn__playStreamFromObject; private delegate* unmanaged[Cdecl] fn__playStreamFrontend; private delegate* unmanaged[Cdecl] fn__playStreamFromPosition; private delegate* unmanaged[Cdecl] fn__stopStream; - private delegate* unmanaged[Cdecl] fn__stopPedSpeaking; - private delegate* unmanaged[Cdecl] fn__blockAllSpeechFromPed; - private delegate* unmanaged[Cdecl] fn__stopPedSpeakingSynced; - private delegate* unmanaged[Cdecl] fn__disablePedPainAudio; - private delegate* unmanaged[Cdecl] fn__isAmbientSpeechDisabled; + private delegate* unmanaged[Cdecl] fn__stopPedSpeaking; + private delegate* unmanaged[Cdecl] fn__blockAllSpeechFromPed; + private delegate* unmanaged[Cdecl] fn__stopPedSpeakingSynced; + private delegate* unmanaged[Cdecl] fn__disablePedPainAudio; + private delegate* unmanaged[Cdecl] fn__isAmbientSpeechDisabled; private delegate* unmanaged[Cdecl] fn__blockSpeechContextGroup; private delegate* unmanaged[Cdecl] fn__unblockSpeechContextGroup; - private delegate* unmanaged[Cdecl] fn__setSirenWithNoDriver; - private delegate* unmanaged[Cdecl] fn__setSirenBypassMpDriverCheck; - private delegate* unmanaged[Cdecl] fn__triggerSirenAudio; - private delegate* unmanaged[Cdecl] fn__setHornPermanentlyOn; - private delegate* unmanaged[Cdecl] fn__setHornEnabled; - private delegate* unmanaged[Cdecl] fn__setAudioVehiclePriority; - private delegate* unmanaged[Cdecl] fn__setHornPermanentlyOnTime; - private delegate* unmanaged[Cdecl] fn__useSirenAsHorn; - private delegate* unmanaged[Cdecl] fn__forceUseAudioGameObject; + private delegate* unmanaged[Cdecl] fn__setSirenWithNoDriver; + private delegate* unmanaged[Cdecl] fn__setSirenBypassMpDriverCheck; + private delegate* unmanaged[Cdecl] fn__triggerSirenAudio; + private delegate* unmanaged[Cdecl] fn__setHornPermanentlyOn; + private delegate* unmanaged[Cdecl] fn__setHornEnabled; + private delegate* unmanaged[Cdecl] fn__setAudioVehiclePriority; + private delegate* unmanaged[Cdecl] fn__setHornPermanentlyOnTime; + private delegate* unmanaged[Cdecl] fn__useSirenAsHorn; + private delegate* unmanaged[Cdecl] fn__forceUseAudioGameObject; private delegate* unmanaged[Cdecl] fn__preloadVehicleAudioBank; - private delegate* unmanaged[Cdecl] fn__setVehicleStartupRevSound; - private delegate* unmanaged[Cdecl] fn__resetVehicleStartupRevSound; + private delegate* unmanaged[Cdecl] fn__setVehicleStartupRevSound; + private delegate* unmanaged[Cdecl] fn__resetVehicleStartupRevSound; private delegate* unmanaged[Cdecl] fn__setVehicleForceReverseWarning; - private delegate* unmanaged[Cdecl] fn__isVehicleAudiblyDamaged; - private delegate* unmanaged[Cdecl] fn__setVehicleAudioEngineDamageFactor; - private delegate* unmanaged[Cdecl] fn__setVehicleAudioBodyDamageFactor; - private delegate* unmanaged[Cdecl] fn__enableVehicleFanbeltDamage; - private delegate* unmanaged[Cdecl] fn__enableVehicleExhaustPops; - private delegate* unmanaged[Cdecl] fn__setVehicleBoostActive; - private delegate* unmanaged[Cdecl] fn__setPlayerVehicleAlarmAudioActive; + private delegate* unmanaged[Cdecl] fn__isVehicleAudiblyDamaged; + private delegate* unmanaged[Cdecl] fn__setVehicleAudioEngineDamageFactor; + private delegate* unmanaged[Cdecl] fn__setVehicleAudioBodyDamageFactor; + private delegate* unmanaged[Cdecl] fn__enableVehicleFanbeltDamage; + private delegate* unmanaged[Cdecl] fn__enableVehicleExhaustPops; + private delegate* unmanaged[Cdecl] fn__setVehicleBoostActive; + private delegate* unmanaged[Cdecl] fn__setPlayerVehicleAlarmAudioActive; private delegate* unmanaged[Cdecl] fn__setScriptUpdateDoorAudio; - private delegate* unmanaged[Cdecl] fn__playVehicleDoorOpenSound; - private delegate* unmanaged[Cdecl] fn__playVehicleDoorCloseSound; - private delegate* unmanaged[Cdecl] fn__enableStallWarningSounds; + private delegate* unmanaged[Cdecl] fn__playVehicleDoorOpenSound; + private delegate* unmanaged[Cdecl] fn__playVehicleDoorCloseSound; + private delegate* unmanaged[Cdecl] fn__enableStallWarningSounds; private delegate* unmanaged[Cdecl] fn__isGameInControlOfMusic; private delegate* unmanaged[Cdecl] fn__setGpsActive; private delegate* unmanaged[Cdecl] fn__playMissionCompleteAudio; @@ -27521,8 +27508,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__isAudioSceneActive; private delegate* unmanaged[Cdecl] fn__setAudioSceneVariable; private delegate* unmanaged[Cdecl] fn__setAudioScriptCleanupTime; - private delegate* unmanaged[Cdecl] fn__addEntityToAudioMixGroup; - private delegate* unmanaged[Cdecl] fn__removeEntityFromAudioMixGroup; + private delegate* unmanaged[Cdecl] fn__addEntityToAudioMixGroup; + private delegate* unmanaged[Cdecl] fn__removeEntityFromAudioMixGroup; private delegate* unmanaged[Cdecl] fn__audioIsMusicPlaying; private delegate* unmanaged[Cdecl] fn__audioIsScriptedMusicPlaying; private delegate* unmanaged[Cdecl] fn__prepareMusicEvent; @@ -27542,17 +27529,17 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__stopAlarm; private delegate* unmanaged[Cdecl] fn__stopAllAlarms; private delegate* unmanaged[Cdecl] fn__isAlarmPlaying; - private delegate* unmanaged[Cdecl] fn__getVehicleDefaultHorn; - private delegate* unmanaged[Cdecl] fn__getVehicleDefaultHornIgnoreMods; - private delegate* unmanaged[Cdecl] fn__resetPedAudioFlags; - private delegate* unmanaged[Cdecl] fn__setPedFootstepsEventsEnabled; - private delegate* unmanaged[Cdecl] fn__setPedClothEventsEnabled; + private delegate* unmanaged[Cdecl] fn__getVehicleDefaultHorn; + private delegate* unmanaged[Cdecl] fn__getVehicleDefaultHornIgnoreMods; + private delegate* unmanaged[Cdecl] fn__resetPedAudioFlags; + private delegate* unmanaged[Cdecl] fn__setPedFootstepsEventsEnabled; + private delegate* unmanaged[Cdecl] fn__setPedClothEventsEnabled; private delegate* unmanaged[Cdecl] fn__overridePlayerGroundMaterial; - private delegate* unmanaged[Cdecl] fn__useFootstepScriptSweeteners; + private delegate* unmanaged[Cdecl] fn__useFootstepScriptSweeteners; private delegate* unmanaged[Cdecl] fn__overrideMicrophoneSettings; private delegate* unmanaged[Cdecl] fn__freezeMicrophone; private delegate* unmanaged[Cdecl] fn__distantCopCarSirens; - private delegate* unmanaged[Cdecl] fn__setSirenCanBeControlledByAudio; + private delegate* unmanaged[Cdecl] fn__setSirenCanBeControlledByAudio; private delegate* unmanaged[Cdecl] fn__enableStuntJumpAudio; private delegate* unmanaged[Cdecl] fn__setAudioFlag; private delegate* unmanaged[Cdecl] fn__prepareSynchronizedAudioEvent; @@ -27560,23 +27547,23 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__playSynchronizedAudioEvent; private delegate* unmanaged[Cdecl] fn__stopSynchronizedAudioEvent; private delegate* unmanaged[Cdecl] fn__initSynchSceneAudioWithPosition; - private delegate* unmanaged[Cdecl] fn__initSynchSceneAudioWithEntity; + private delegate* unmanaged[Cdecl] fn__initSynchSceneAudioWithEntity; private delegate* unmanaged[Cdecl] fn__setAudioSpecialEffectMode; private delegate* unmanaged[Cdecl] fn__setPortalSettingsOverride; private delegate* unmanaged[Cdecl] fn__removePortalSettingsOverride; private delegate* unmanaged[Cdecl] fn__stopSmokeGrenadeExplosionSounds; private delegate* unmanaged[Cdecl] fn__getMusicVolSlider; - private delegate* unmanaged[Cdecl] fn__requestTennisBanks; + private delegate* unmanaged[Cdecl] fn__requestTennisBanks; private delegate* unmanaged[Cdecl] fn__unrequestTennisBanks; private delegate* unmanaged[Cdecl] fn__setSkipMinigunSpinUpAudio; private delegate* unmanaged[Cdecl] fn__stopCutsceneAudio; private delegate* unmanaged[Cdecl] fn__hasLoadedMpDataSet; private delegate* unmanaged[Cdecl] fn__hasLoadedSpDataSet; - private delegate* unmanaged[Cdecl] fn__getVehicleHornSoundIndex; - private delegate* unmanaged[Cdecl] fn__setVehicleHornSoundIndex; + private delegate* unmanaged[Cdecl] fn__getVehicleHornSoundIndex; + private delegate* unmanaged[Cdecl] fn__setVehicleHornSoundIndex; private delegate* unmanaged[Cdecl] fn__addScriptToRandomPed; private delegate* unmanaged[Cdecl] fn__registerObjectScriptBrain; - private delegate* unmanaged[Cdecl] fn__isObjectWithinBrainActivationRange; + private delegate* unmanaged[Cdecl] fn__isObjectWithinBrainActivationRange; private delegate* unmanaged[Cdecl] fn__registerWorldPointScriptBrain; private delegate* unmanaged[Cdecl] fn__isWorldPointWithinBrainActivationRange; private delegate* unmanaged[Cdecl] fn__enableScriptBrainSet; @@ -27628,16 +27615,16 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setCamDofFocusDistanceBias; private delegate* unmanaged[Cdecl] fn__setCamDofMaxNearInFocusDistance; private delegate* unmanaged[Cdecl] fn__setCamDofMaxNearInFocusDistanceBlendLevel; - private delegate* unmanaged[Cdecl] fn__attachCamToEntity; - private delegate* unmanaged[Cdecl] fn__attachCamToPedBone; - private delegate* unmanaged[Cdecl] fn__hardAttachCamToPedBone; - private delegate* unmanaged[Cdecl] fn__hardAttachCamToEntity; - private delegate* unmanaged[Cdecl] fn__attachCamToVehicleBone; + private delegate* unmanaged[Cdecl] fn__attachCamToEntity; + private delegate* unmanaged[Cdecl] fn__attachCamToPedBone; + private delegate* unmanaged[Cdecl] fn__hardAttachCamToPedBone; + private delegate* unmanaged[Cdecl] fn__hardAttachCamToEntity; + private delegate* unmanaged[Cdecl] fn__attachCamToVehicleBone; private delegate* unmanaged[Cdecl] fn__detachCam; private delegate* unmanaged[Cdecl] fn__setCamInheritRollVehicle; private delegate* unmanaged[Cdecl] fn__pointCamAtCoord; - private delegate* unmanaged[Cdecl] fn__pointCamAtEntity; - private delegate* unmanaged[Cdecl] fn__pointCamAtPedBone; + private delegate* unmanaged[Cdecl] fn__pointCamAtEntity; + private delegate* unmanaged[Cdecl] fn__pointCamAtPedBone; private delegate* unmanaged[Cdecl] fn__stopCamPointing; private delegate* unmanaged[Cdecl] fn__setCamAffectsAiming; private delegate* unmanaged[Cdecl] fn__setCamControlsMiniMapHeading; @@ -27672,7 +27659,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__animatedShakeScriptGlobal; private delegate* unmanaged[Cdecl] fn__isScriptGlobalShaking; private delegate* unmanaged[Cdecl] fn__stopScriptGlobalShaking; - private delegate* unmanaged[Cdecl] fn__triggerVehiclePartBrokenCameraShake; + private delegate* unmanaged[Cdecl] fn__triggerVehiclePartBrokenCameraShake; private delegate* unmanaged[Cdecl] fn__playCamAnim; private delegate* unmanaged[Cdecl] fn__isCamPlayingAnim; private delegate* unmanaged[Cdecl] fn__setCamAnimCurrentPhase; @@ -27711,17 +27698,17 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__isGameplayCamShaking; private delegate* unmanaged[Cdecl] fn__setGameplayCamShakeAmplitude; private delegate* unmanaged[Cdecl] fn__stopGameplayCamShaking; - private delegate* unmanaged[Cdecl] fn__setGameplayCamFollowPedThisUpdate; + private delegate* unmanaged[Cdecl] fn__setGameplayCamFollowPedThisUpdate; private delegate* unmanaged[Cdecl] fn__isGameplayCamRendering; private delegate* unmanaged[Cdecl] fn__isInterpolatingFromScriptCams; private delegate* unmanaged[Cdecl] fn__isInterpolatingToScriptCams; private delegate* unmanaged[Cdecl] fn__setGameplayCamAltitudeFovScalingState; private delegate* unmanaged[Cdecl] fn__disableGameplayCamAltitudeFovScalingThisUpdate; private delegate* unmanaged[Cdecl] fn__isGameplayCamLookingBehind; - private delegate* unmanaged[Cdecl] fn__setGameplayCamIgnoreEntityCollisionThisUpdate; - private delegate* unmanaged[Cdecl] fn__disableCamCollisionForObject; + private delegate* unmanaged[Cdecl] fn__setGameplayCamIgnoreEntityCollisionThisUpdate; + private delegate* unmanaged[Cdecl] fn__disableCamCollisionForObject; private delegate* unmanaged[Cdecl] fn__bypassCameraCollisionBuoyancyTestThisUpdate; - private delegate* unmanaged[Cdecl] fn__setGameplayCamEntityToLimitFocusOverBoundingSphereThisUpdate; + private delegate* unmanaged[Cdecl] fn__setGameplayCamEntityToLimitFocusOverBoundingSphereThisUpdate; private delegate* unmanaged[Cdecl] fn__disableFirstPersonCameraWaterClippingTestThisUpdate; private delegate* unmanaged[Cdecl] fn__setFollowCamIgnoreAttachParentMovementThisUpdate; private delegate* unmanaged[Cdecl] fn__isSphereVisible; @@ -27732,7 +27719,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setThirdPersonCamRelativeHeadingLimitsThisUpdate; private delegate* unmanaged[Cdecl] fn__setThirdPersonCamRelativePitchLimitsThisUpdate; private delegate* unmanaged[Cdecl] fn__setThirdPersonCamOrbitDistanceLimitsThisUpdate; - private delegate* unmanaged[Cdecl] fn__setInVehicleCamStateThisUpdate; + private delegate* unmanaged[Cdecl] fn__setInVehicleCamStateThisUpdate; private delegate* unmanaged[Cdecl] fn__disableOnFootFirstPersonViewThisUpdate; private delegate* unmanaged[Cdecl] fn__disableFirstPersonFlashEffectThisUpdate; private delegate* unmanaged[Cdecl] fn__blockFirstPersonOrientationResetThisUpdate; @@ -27769,19 +27756,19 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__forceTightspaceCustomFramingThisUpdate; private delegate* unmanaged[Cdecl] fn__getFinalRenderedCamCoord; private delegate* unmanaged[Cdecl] fn__getFinalRenderedCamRot; - private delegate* unmanaged[Cdecl] fn__getFinalRenderedRemotePlayerCamRot; + private delegate* unmanaged[Cdecl] fn__getFinalRenderedRemotePlayerCamRot; private delegate* unmanaged[Cdecl] fn__getFinalRenderedCamFov; - private delegate* unmanaged[Cdecl] fn__getFinalRenderedRemotePlayerCamFov; + private delegate* unmanaged[Cdecl] fn__getFinalRenderedRemotePlayerCamFov; private delegate* unmanaged[Cdecl] fn__getFinalRenderedCamNearClip; private delegate* unmanaged[Cdecl] fn__getFinalRenderedCamFarClip; private delegate* unmanaged[Cdecl] fn__getFinalRenderedCamNearDof; private delegate* unmanaged[Cdecl] fn__getFinalRenderedCamFarDof; private delegate* unmanaged[Cdecl] fn__getFinalRenderedCamMotionBlurStrength; private delegate* unmanaged[Cdecl] fn__setGameplayCoordHint; - private delegate* unmanaged[Cdecl] fn__setGameplayPedHint; - private delegate* unmanaged[Cdecl] fn__setGameplayVehicleHint; - private delegate* unmanaged[Cdecl] fn__setGameplayObjectHint; - private delegate* unmanaged[Cdecl] fn__setGameplayEntityHint; + private delegate* unmanaged[Cdecl] fn__setGameplayPedHint; + private delegate* unmanaged[Cdecl] fn__setGameplayVehicleHint; + private delegate* unmanaged[Cdecl] fn__setGameplayObjectHint; + private delegate* unmanaged[Cdecl] fn__setGameplayEntityHint; private delegate* unmanaged[Cdecl] fn__isGameplayHintActive; private delegate* unmanaged[Cdecl] fn__stopGameplayHint; private delegate* unmanaged[Cdecl] fn__stopGameplayHintBeingCancelledThisUpdate; @@ -27805,7 +27792,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__invalidateIdleCam; private delegate* unmanaged[Cdecl] fn__isCinematicIdleCamRendering; private delegate* unmanaged[Cdecl] fn__isCinematicFirstPersonVehicleInteriorCamRendering; - private delegate* unmanaged[Cdecl] fn__createCinematicShot; + private delegate* unmanaged[Cdecl] fn__createCinematicShot; private delegate* unmanaged[Cdecl] fn__isCinematicShotActive; private delegate* unmanaged[Cdecl] fn__stopCinematicShot; private delegate* unmanaged[Cdecl] fn__forceCinematicRenderingThisUpdate; @@ -27819,7 +27806,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__bypassCutsceneCamRenderingThisUpdate; private delegate* unmanaged[Cdecl] fn__stopCutsceneCamShaking; private delegate* unmanaged[Cdecl] fn__setCutsceneCamFarClipThisUpdate; - private delegate* unmanaged[Cdecl] fn__getFocusPedOnScreen; + private delegate* unmanaged[Cdecl] fn__getFocusPedOnScreen; private delegate* unmanaged[Cdecl] fn__disableNearClipScanThisUpdate; private delegate* unmanaged[Cdecl] fn__setCamDeathFailEffectState; private delegate* unmanaged[Cdecl] fn__setFirstPersonFlashEffectType; @@ -27871,12 +27858,12 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__isCutsceneActive; private delegate* unmanaged[Cdecl] fn__isCutscenePlaying; private delegate* unmanaged[Cdecl] fn__getCutsceneSectionPlaying; - private delegate* unmanaged[Cdecl] fn__getEntityIndexOfCutsceneEntity; + private delegate* unmanaged[Cdecl] fn__getEntityIndexOfCutsceneEntity; private delegate* unmanaged[Cdecl] fn__getCutsceneConcatSectionPlaying; private delegate* unmanaged[Cdecl] fn__isCutsceneAuthorized; private delegate* unmanaged[Cdecl] fn__doesCutsceneHandleExist; - private delegate* unmanaged[Cdecl] fn__registerEntityForCutscene; - private delegate* unmanaged[Cdecl] fn__getEntityIndexOfRegisteredEntity; + private delegate* unmanaged[Cdecl] fn__registerEntityForCutscene; + private delegate* unmanaged[Cdecl] fn__getEntityIndexOfRegisteredEntity; private delegate* unmanaged[Cdecl] fn__setVehicleModelPlayerWillExitScene; private delegate* unmanaged[Cdecl] fn__setCutsceneTriggerArea; private delegate* unmanaged[Cdecl] fn__canSetEnterStateForRegisteredEntity; @@ -27893,7 +27880,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setCutsceneCanBeSkipped; private delegate* unmanaged[Cdecl] fn__setCanDisplayMinimapDuringCutsceneThisUpdate; private delegate* unmanaged[Cdecl] fn__setCutscenePedComponentVariation; - private delegate* unmanaged[Cdecl] fn__setCutscenePedComponentVariationFromPed; + private delegate* unmanaged[Cdecl] fn__setCutscenePedComponentVariationFromPed; private delegate* unmanaged[Cdecl] fn__doesCutsceneEntityExist; private delegate* unmanaged[Cdecl] fn__setCutscenePedPropVariation; private delegate* unmanaged[Cdecl] fn__hasCutsceneCutThisFrame; @@ -27954,15 +27941,15 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__dataarrayGetDict; private delegate* unmanaged[Cdecl] fn__dataarrayGetCount; private delegate* unmanaged[Cdecl] fn__dataarrayGetType; - private delegate* unmanaged[Cdecl] fn__decorSetTime; - private delegate* unmanaged[Cdecl] fn__decorSetBool; - private delegate* unmanaged[Cdecl] fn__decorSetFloat; - private delegate* unmanaged[Cdecl] fn__decorSetInt; - private delegate* unmanaged[Cdecl] fn__decorGetBool; - private delegate* unmanaged[Cdecl] fn__decorGetFloat; - private delegate* unmanaged[Cdecl] fn__decorGetInt; - private delegate* unmanaged[Cdecl] fn__decorExistOn; - private delegate* unmanaged[Cdecl] fn__decorRemove; + private delegate* unmanaged[Cdecl] fn__decorSetTime; + private delegate* unmanaged[Cdecl] fn__decorSetBool; + private delegate* unmanaged[Cdecl] fn__decorSetFloat; + private delegate* unmanaged[Cdecl] fn__decorSetInt; + private delegate* unmanaged[Cdecl] fn__decorGetBool; + private delegate* unmanaged[Cdecl] fn__decorGetFloat; + private delegate* unmanaged[Cdecl] fn__decorGetInt; + private delegate* unmanaged[Cdecl] fn__decorExistOn; + private delegate* unmanaged[Cdecl] fn__decorRemove; private delegate* unmanaged[Cdecl] fn__decorRegister; private delegate* unmanaged[Cdecl] fn__decorIsRegisteredAsType; private delegate* unmanaged[Cdecl] fn__decorRegisterLock; @@ -27977,166 +27964,166 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__hasCloudRequestsFinished; private delegate* unmanaged[Cdecl] fn__onEnterSp; private delegate* unmanaged[Cdecl] fn__onEnterMp; - private delegate* unmanaged[Cdecl] fn__doesEntityExist; - private delegate* unmanaged[Cdecl] fn__doesEntityBelongToThisScript; - private delegate* unmanaged[Cdecl] fn__doesEntityHaveDrawable; - private delegate* unmanaged[Cdecl] fn__doesEntityHavePhysics; - private delegate* unmanaged[Cdecl] fn__doesEntityHaveSkeleton; - private delegate* unmanaged[Cdecl] fn__doesEntityHaveAnimDirector; - private delegate* unmanaged[Cdecl] fn__hasEntityAnimFinished; - private delegate* unmanaged[Cdecl] fn__hasEntityBeenDamagedByAnyObject; - private delegate* unmanaged[Cdecl] fn__hasEntityBeenDamagedByAnyPed; - private delegate* unmanaged[Cdecl] fn__hasEntityBeenDamagedByAnyVehicle; - private delegate* unmanaged[Cdecl] fn__hasEntityBeenDamagedByEntity; - private delegate* unmanaged[Cdecl] fn__hasEntityClearLosToEntity; - private delegate* unmanaged[Cdecl] fn__hasEntityClearLosToEntityAdjustForCover; - private delegate* unmanaged[Cdecl] fn__hasEntityClearLosToEntityInFront; - private delegate* unmanaged[Cdecl] fn__hasEntityCollidedWithAnything; - private delegate* unmanaged[Cdecl] fn__getLastMaterialHitByEntity; - private delegate* unmanaged[Cdecl] fn__getCollisionNormalOfLastHitForEntity; - private delegate* unmanaged[Cdecl] fn__forceEntityAiAndAnimationUpdate; - private delegate* unmanaged[Cdecl] fn__getEntityAnimCurrentTime; - private delegate* unmanaged[Cdecl] fn__getEntityAnimTotalTime; + private delegate* unmanaged[Cdecl] fn__doesEntityExist; + private delegate* unmanaged[Cdecl] fn__doesEntityBelongToThisScript; + private delegate* unmanaged[Cdecl] fn__doesEntityHaveDrawable; + private delegate* unmanaged[Cdecl] fn__doesEntityHavePhysics; + private delegate* unmanaged[Cdecl] fn__doesEntityHaveSkeleton; + private delegate* unmanaged[Cdecl] fn__doesEntityHaveAnimDirector; + private delegate* unmanaged[Cdecl] fn__hasEntityAnimFinished; + private delegate* unmanaged[Cdecl] fn__hasEntityBeenDamagedByAnyObject; + private delegate* unmanaged[Cdecl] fn__hasEntityBeenDamagedByAnyPed; + private delegate* unmanaged[Cdecl] fn__hasEntityBeenDamagedByAnyVehicle; + private delegate* unmanaged[Cdecl] fn__hasEntityBeenDamagedByEntity; + private delegate* unmanaged[Cdecl] fn__hasEntityClearLosToEntity; + private delegate* unmanaged[Cdecl] fn__hasEntityClearLosToEntityAdjustForCover; + private delegate* unmanaged[Cdecl] fn__hasEntityClearLosToEntityInFront; + private delegate* unmanaged[Cdecl] fn__hasEntityCollidedWithAnything; + private delegate* unmanaged[Cdecl] fn__getLastMaterialHitByEntity; + private delegate* unmanaged[Cdecl] fn__getCollisionNormalOfLastHitForEntity; + private delegate* unmanaged[Cdecl] fn__forceEntityAiAndAnimationUpdate; + private delegate* unmanaged[Cdecl] fn__getEntityAnimCurrentTime; + private delegate* unmanaged[Cdecl] fn__getEntityAnimTotalTime; private delegate* unmanaged[Cdecl] fn__getAnimDuration; - private delegate* unmanaged[Cdecl] fn__getEntityAttachedTo; - private delegate* unmanaged[Cdecl] fn__getEntityCoords; - private delegate* unmanaged[Cdecl] fn__getEntityForwardVector; - private delegate* unmanaged[Cdecl] fn__getEntityForwardX; - private delegate* unmanaged[Cdecl] fn__getEntityForwardY; - private delegate* unmanaged[Cdecl] fn__getEntityHeading; - private delegate* unmanaged[Cdecl] fn__getEntityHeadingFromEulers; - private delegate* unmanaged[Cdecl] fn__getEntityHealth; - private delegate* unmanaged[Cdecl] fn__getEntityMaxHealth; - private delegate* unmanaged[Cdecl] fn__setEntityMaxHealth; - private delegate* unmanaged[Cdecl] fn__getEntityHeight; - private delegate* unmanaged[Cdecl] fn__getEntityHeightAboveGround; - private delegate* unmanaged[Cdecl] fn__getEntityMatrix; - private delegate* unmanaged[Cdecl] fn__getEntityModel; - private delegate* unmanaged[Cdecl] fn__getOffsetFromEntityGivenWorldCoords; - private delegate* unmanaged[Cdecl] fn__getOffsetFromEntityInWorldCoords; - private delegate* unmanaged[Cdecl] fn__getEntityPitch; - private delegate* unmanaged[Cdecl] fn__getEntityQuaternion; - private delegate* unmanaged[Cdecl] fn__getEntityRoll; - private delegate* unmanaged[Cdecl] fn__getEntityRotation; - private delegate* unmanaged[Cdecl] fn__getEntityRotationVelocity; - private delegate* unmanaged[Cdecl] fn__getEntityScript; - private delegate* unmanaged[Cdecl] fn__getEntitySpeed; - private delegate* unmanaged[Cdecl] fn__getEntitySpeedVector; - private delegate* unmanaged[Cdecl] fn__getEntityUprightValue; - private delegate* unmanaged[Cdecl] fn__getEntityVelocity; - private delegate* unmanaged[Cdecl] fn__getObjectIndexFromEntityIndex; - private delegate* unmanaged[Cdecl] fn__getPedIndexFromEntityIndex; - private delegate* unmanaged[Cdecl] fn__getVehicleIndexFromEntityIndex; - private delegate* unmanaged[Cdecl] fn__getWorldPositionOfEntityBone; - private delegate* unmanaged[Cdecl] fn__getNearestPlayerToEntity; - private delegate* unmanaged[Cdecl] fn__getNearestPlayerToEntityOnTeam; - private delegate* unmanaged[Cdecl] fn__getEntityType; - private delegate* unmanaged[Cdecl] fn__getEntityPopulationType; - private delegate* unmanaged[Cdecl] fn__isAnEntity; - private delegate* unmanaged[Cdecl] fn__isEntityAPed; - private delegate* unmanaged[Cdecl] fn__isEntityAMissionEntity; - private delegate* unmanaged[Cdecl] fn__isEntityAVehicle; - private delegate* unmanaged[Cdecl] fn__isEntityAnObject; - private delegate* unmanaged[Cdecl] fn__isEntityAtCoord; - private delegate* unmanaged[Cdecl] fn__isEntityAtEntity; - private delegate* unmanaged[Cdecl] fn__isEntityAttached; - private delegate* unmanaged[Cdecl] fn__isEntityAttachedToAnyObject; - private delegate* unmanaged[Cdecl] fn__isEntityAttachedToAnyPed; - private delegate* unmanaged[Cdecl] fn__isEntityAttachedToAnyVehicle; - private delegate* unmanaged[Cdecl] fn__isEntityAttachedToEntity; - private delegate* unmanaged[Cdecl] fn__isEntityDead; - private delegate* unmanaged[Cdecl] fn__isEntityInAir; - private delegate* unmanaged[Cdecl] fn__isEntityInAngledArea; - private delegate* unmanaged[Cdecl] fn__isEntityInArea; - private delegate* unmanaged[Cdecl] fn__isEntityInZone; - private delegate* unmanaged[Cdecl] fn__isEntityInWater; - private delegate* unmanaged[Cdecl] fn__getEntitySubmergedLevel; - private delegate* unmanaged[Cdecl] fn__setEntityRequiresMoreExpensiveRiverCheck; - private delegate* unmanaged[Cdecl] fn__isEntityOnScreen; - private delegate* unmanaged[Cdecl] fn__isEntityPlayingAnim; - private delegate* unmanaged[Cdecl] fn__isEntityStatic; - private delegate* unmanaged[Cdecl] fn__isEntityTouchingEntity; - private delegate* unmanaged[Cdecl] fn__isEntityTouchingModel; - private delegate* unmanaged[Cdecl] fn__isEntityUpright; - private delegate* unmanaged[Cdecl] fn__isEntityUpsidedown; - private delegate* unmanaged[Cdecl] fn__isEntityVisible; - private delegate* unmanaged[Cdecl] fn__isEntityVisibleToScript; - private delegate* unmanaged[Cdecl] fn__isEntityOccluded; + private delegate* unmanaged[Cdecl] fn__getEntityAttachedTo; + private delegate* unmanaged[Cdecl] fn__getEntityCoords; + private delegate* unmanaged[Cdecl] fn__getEntityForwardVector; + private delegate* unmanaged[Cdecl] fn__getEntityForwardX; + private delegate* unmanaged[Cdecl] fn__getEntityForwardY; + private delegate* unmanaged[Cdecl] fn__getEntityHeading; + private delegate* unmanaged[Cdecl] fn__getEntityHeadingFromEulers; + private delegate* unmanaged[Cdecl] fn__getEntityHealth; + private delegate* unmanaged[Cdecl] fn__getEntityMaxHealth; + private delegate* unmanaged[Cdecl] fn__setEntityMaxHealth; + private delegate* unmanaged[Cdecl] fn__getEntityHeight; + private delegate* unmanaged[Cdecl] fn__getEntityHeightAboveGround; + private delegate* unmanaged[Cdecl] fn__getEntityMatrix; + private delegate* unmanaged[Cdecl] fn__getEntityModel; + private delegate* unmanaged[Cdecl] fn__getOffsetFromEntityGivenWorldCoords; + private delegate* unmanaged[Cdecl] fn__getOffsetFromEntityInWorldCoords; + private delegate* unmanaged[Cdecl] fn__getEntityPitch; + private delegate* unmanaged[Cdecl] fn__getEntityQuaternion; + private delegate* unmanaged[Cdecl] fn__getEntityRoll; + private delegate* unmanaged[Cdecl] fn__getEntityRotation; + private delegate* unmanaged[Cdecl] fn__getEntityRotationVelocity; + private delegate* unmanaged[Cdecl] fn__getEntityScript; + private delegate* unmanaged[Cdecl] fn__getEntitySpeed; + private delegate* unmanaged[Cdecl] fn__getEntitySpeedVector; + private delegate* unmanaged[Cdecl] fn__getEntityUprightValue; + private delegate* unmanaged[Cdecl] fn__getEntityVelocity; + private delegate* unmanaged[Cdecl] fn__getObjectIndexFromEntityIndex; + private delegate* unmanaged[Cdecl] fn__getPedIndexFromEntityIndex; + private delegate* unmanaged[Cdecl] fn__getVehicleIndexFromEntityIndex; + private delegate* unmanaged[Cdecl] fn__getWorldPositionOfEntityBone; + private delegate* unmanaged[Cdecl] fn__getNearestPlayerToEntity; + private delegate* unmanaged[Cdecl] fn__getNearestPlayerToEntityOnTeam; + private delegate* unmanaged[Cdecl] fn__getEntityType; + private delegate* unmanaged[Cdecl] fn__getEntityPopulationType; + private delegate* unmanaged[Cdecl] fn__isAnEntity; + private delegate* unmanaged[Cdecl] fn__isEntityAPed; + private delegate* unmanaged[Cdecl] fn__isEntityAMissionEntity; + private delegate* unmanaged[Cdecl] fn__isEntityAVehicle; + private delegate* unmanaged[Cdecl] fn__isEntityAnObject; + private delegate* unmanaged[Cdecl] fn__isEntityAtCoord; + private delegate* unmanaged[Cdecl] fn__isEntityAtEntity; + private delegate* unmanaged[Cdecl] fn__isEntityAttached; + private delegate* unmanaged[Cdecl] fn__isEntityAttachedToAnyObject; + private delegate* unmanaged[Cdecl] fn__isEntityAttachedToAnyPed; + private delegate* unmanaged[Cdecl] fn__isEntityAttachedToAnyVehicle; + private delegate* unmanaged[Cdecl] fn__isEntityAttachedToEntity; + private delegate* unmanaged[Cdecl] fn__isEntityDead; + private delegate* unmanaged[Cdecl] fn__isEntityInAir; + private delegate* unmanaged[Cdecl] fn__isEntityInAngledArea; + private delegate* unmanaged[Cdecl] fn__isEntityInArea; + private delegate* unmanaged[Cdecl] fn__isEntityInZone; + private delegate* unmanaged[Cdecl] fn__isEntityInWater; + private delegate* unmanaged[Cdecl] fn__getEntitySubmergedLevel; + private delegate* unmanaged[Cdecl] fn__setEntityRequiresMoreExpensiveRiverCheck; + private delegate* unmanaged[Cdecl] fn__isEntityOnScreen; + private delegate* unmanaged[Cdecl] fn__isEntityPlayingAnim; + private delegate* unmanaged[Cdecl] fn__isEntityStatic; + private delegate* unmanaged[Cdecl] fn__isEntityTouchingEntity; + private delegate* unmanaged[Cdecl] fn__isEntityTouchingModel; + private delegate* unmanaged[Cdecl] fn__isEntityUpright; + private delegate* unmanaged[Cdecl] fn__isEntityUpsidedown; + private delegate* unmanaged[Cdecl] fn__isEntityVisible; + private delegate* unmanaged[Cdecl] fn__isEntityVisibleToScript; + private delegate* unmanaged[Cdecl] fn__isEntityOccluded; private delegate* unmanaged[Cdecl] fn__wouldEntityBeOccluded; - private delegate* unmanaged[Cdecl] fn__isEntityWaitingForWorldCollision; - private delegate* unmanaged[Cdecl] fn__applyForceToEntityCenterOfMass; - private delegate* unmanaged[Cdecl] fn__applyForceToEntity; - private delegate* unmanaged[Cdecl] fn__attachEntityToEntity; - private delegate* unmanaged[Cdecl] fn__attachEntityBoneToEntityBone; - private delegate* unmanaged[Cdecl] fn__attachEntityBoneToEntityBoneYForward; - private delegate* unmanaged[Cdecl] fn__attachEntityToEntityPhysically; - private delegate* unmanaged[Cdecl] fn__processEntityAttachments; - private delegate* unmanaged[Cdecl] fn__getEntityBoneIndexByName; - private delegate* unmanaged[Cdecl] fn__clearEntityLastDamageEntity; - private delegate* unmanaged[Cdecl] fn__deleteEntity; - private delegate* unmanaged[Cdecl] fn__detachEntity; - private delegate* unmanaged[Cdecl] fn__freezeEntityPosition; - private delegate* unmanaged[Cdecl] fn__setEntityShouldFreezeWaitingOnCollision; - private delegate* unmanaged[Cdecl] fn__playEntityAnim; - private delegate* unmanaged[Cdecl] fn__playSynchronizedEntityAnim; + private delegate* unmanaged[Cdecl] fn__isEntityWaitingForWorldCollision; + private delegate* unmanaged[Cdecl] fn__applyForceToEntityCenterOfMass; + private delegate* unmanaged[Cdecl] fn__applyForceToEntity; + private delegate* unmanaged[Cdecl] fn__attachEntityToEntity; + private delegate* unmanaged[Cdecl] fn__attachEntityBoneToEntityBone; + private delegate* unmanaged[Cdecl] fn__attachEntityBoneToEntityBoneYForward; + private delegate* unmanaged[Cdecl] fn__attachEntityToEntityPhysically; + private delegate* unmanaged[Cdecl] fn__processEntityAttachments; + private delegate* unmanaged[Cdecl] fn__getEntityBoneIndexByName; + private delegate* unmanaged[Cdecl] fn__clearEntityLastDamageEntity; + private delegate* unmanaged[Cdecl] fn__deleteEntity; + private delegate* unmanaged[Cdecl] fn__detachEntity; + private delegate* unmanaged[Cdecl] fn__freezeEntityPosition; + private delegate* unmanaged[Cdecl] fn__setEntityShouldFreezeWaitingOnCollision; + private delegate* unmanaged[Cdecl] fn__playEntityAnim; + private delegate* unmanaged[Cdecl] fn__playSynchronizedEntityAnim; private delegate* unmanaged[Cdecl] fn__playSynchronizedMapEntityAnim; private delegate* unmanaged[Cdecl] fn__stopSynchronizedMapEntityAnim; - private delegate* unmanaged[Cdecl] fn__stopEntityAnim; - private delegate* unmanaged[Cdecl] fn__stopSynchronizedEntityAnim; - private delegate* unmanaged[Cdecl] fn__hasAnimEventFired; + private delegate* unmanaged[Cdecl] fn__stopEntityAnim; + private delegate* unmanaged[Cdecl] fn__stopSynchronizedEntityAnim; + private delegate* unmanaged[Cdecl] fn__hasAnimEventFired; private delegate* unmanaged[Cdecl] fn__findAnimEventPhase; - private delegate* unmanaged[Cdecl] fn__setEntityAnimCurrentTime; - private delegate* unmanaged[Cdecl] fn__setEntityAnimSpeed; - private delegate* unmanaged[Cdecl] fn__setEntityAsMissionEntity; - private delegate* unmanaged[Cdecl] fn__setEntityAsNoLongerNeeded; - private delegate* unmanaged[Cdecl] fn__setPedAsNoLongerNeeded; - private delegate* unmanaged[Cdecl] fn__setVehicleAsNoLongerNeeded; - private delegate* unmanaged[Cdecl] fn__setObjectAsNoLongerNeeded; - private delegate* unmanaged[Cdecl] fn__setEntityCanBeDamaged; - private delegate* unmanaged[Cdecl] fn__getEntityCanBeDamaged; - private delegate* unmanaged[Cdecl] fn__setEntityCanBeDamagedByRelationshipGroup; - private delegate* unmanaged[Cdecl] fn__setEntityCanOnlyBeDamagedByScriptParticipants; - private delegate* unmanaged[Cdecl] fn__setEntityCanBeTargetedWithoutLos; - private delegate* unmanaged[Cdecl] fn__setEntityCollision; - private delegate* unmanaged[Cdecl] fn__getEntityCollisionDisabled; - private delegate* unmanaged[Cdecl] fn__setEntityCompletelyDisableCollision; - private delegate* unmanaged[Cdecl] fn__setEntityCoords; - private delegate* unmanaged[Cdecl] fn__setEntityCoordsWithoutPlantsReset; - private delegate* unmanaged[Cdecl] fn__setEntityCoordsNoOffset; - private delegate* unmanaged[Cdecl] fn__setEntityDynamic; - private delegate* unmanaged[Cdecl] fn__setEntityHeading; - private delegate* unmanaged[Cdecl] fn__setEntityHealth; - private delegate* unmanaged[Cdecl] fn__setEntityInvincible; - private delegate* unmanaged[Cdecl] fn__setEntityIsTargetPriority; - private delegate* unmanaged[Cdecl] fn__setEntityLights; - private delegate* unmanaged[Cdecl] fn__setEntityLoadCollisionFlag; - private delegate* unmanaged[Cdecl] fn__hasCollisionLoadedAroundEntity; - private delegate* unmanaged[Cdecl] fn__setEntityMaxSpeed; - private delegate* unmanaged[Cdecl] fn__setEntityOnlyDamagedByPlayer; - private delegate* unmanaged[Cdecl] fn__setEntityOnlyDamagedByRelationshipGroup; - private delegate* unmanaged[Cdecl] fn__setEntityProofs; - private delegate* unmanaged[Cdecl] fn__getEntityProofs; - private delegate* unmanaged[Cdecl] fn__setEntityQuaternion; - private delegate* unmanaged[Cdecl] fn__setEntityRecordsCollisions; - private delegate* unmanaged[Cdecl] fn__setEntityRotation; - private delegate* unmanaged[Cdecl] fn__setEntityVisible; - private delegate* unmanaged[Cdecl] fn__setEntityWaterReflectionFlag; - private delegate* unmanaged[Cdecl] fn__setEntityMirrorReflectionFlag; - private delegate* unmanaged[Cdecl] fn__setEntityVelocity; - private delegate* unmanaged[Cdecl] fn__setEntityAngularVelocity; - private delegate* unmanaged[Cdecl] fn__setEntityHasGravity; - private delegate* unmanaged[Cdecl] fn__setEntityLodDist; - private delegate* unmanaged[Cdecl] fn__getEntityLodDist; - private delegate* unmanaged[Cdecl] fn__setEntityAlpha; - private delegate* unmanaged[Cdecl] fn__getEntityAlpha; - private delegate* unmanaged[Cdecl] fn__resetEntityAlpha; - private delegate* unmanaged[Cdecl] fn__resetPickupEntityGlow; + private delegate* unmanaged[Cdecl] fn__setEntityAnimCurrentTime; + private delegate* unmanaged[Cdecl] fn__setEntityAnimSpeed; + private delegate* unmanaged[Cdecl] fn__setEntityAsMissionEntity; + private delegate* unmanaged[Cdecl] fn__setEntityAsNoLongerNeeded; + private delegate* unmanaged[Cdecl] fn__setPedAsNoLongerNeeded; + private delegate* unmanaged[Cdecl] fn__setVehicleAsNoLongerNeeded; + private delegate* unmanaged[Cdecl] fn__setObjectAsNoLongerNeeded; + private delegate* unmanaged[Cdecl] fn__setEntityCanBeDamaged; + private delegate* unmanaged[Cdecl] fn__getEntityCanBeDamaged; + private delegate* unmanaged[Cdecl] fn__setEntityCanBeDamagedByRelationshipGroup; + private delegate* unmanaged[Cdecl] fn__setEntityCanOnlyBeDamagedByScriptParticipants; + private delegate* unmanaged[Cdecl] fn__setEntityCanBeTargetedWithoutLos; + private delegate* unmanaged[Cdecl] fn__setEntityCollision; + private delegate* unmanaged[Cdecl] fn__getEntityCollisionDisabled; + private delegate* unmanaged[Cdecl] fn__setEntityCompletelyDisableCollision; + private delegate* unmanaged[Cdecl] fn__setEntityCoords; + private delegate* unmanaged[Cdecl] fn__setEntityCoordsWithoutPlantsReset; + private delegate* unmanaged[Cdecl] fn__setEntityCoordsNoOffset; + private delegate* unmanaged[Cdecl] fn__setEntityDynamic; + private delegate* unmanaged[Cdecl] fn__setEntityHeading; + private delegate* unmanaged[Cdecl] fn__setEntityHealth; + private delegate* unmanaged[Cdecl] fn__setEntityInvincible; + private delegate* unmanaged[Cdecl] fn__setEntityIsTargetPriority; + private delegate* unmanaged[Cdecl] fn__setEntityLights; + private delegate* unmanaged[Cdecl] fn__setEntityLoadCollisionFlag; + private delegate* unmanaged[Cdecl] fn__hasCollisionLoadedAroundEntity; + private delegate* unmanaged[Cdecl] fn__setEntityMaxSpeed; + private delegate* unmanaged[Cdecl] fn__setEntityOnlyDamagedByPlayer; + private delegate* unmanaged[Cdecl] fn__setEntityOnlyDamagedByRelationshipGroup; + private delegate* unmanaged[Cdecl] fn__setEntityProofs; + private delegate* unmanaged[Cdecl] fn__getEntityProofs; + private delegate* unmanaged[Cdecl] fn__setEntityQuaternion; + private delegate* unmanaged[Cdecl] fn__setEntityRecordsCollisions; + private delegate* unmanaged[Cdecl] fn__setEntityRotation; + private delegate* unmanaged[Cdecl] fn__setEntityVisible; + private delegate* unmanaged[Cdecl] fn__setEntityWaterReflectionFlag; + private delegate* unmanaged[Cdecl] fn__setEntityMirrorReflectionFlag; + private delegate* unmanaged[Cdecl] fn__setEntityVelocity; + private delegate* unmanaged[Cdecl] fn__setEntityAngularVelocity; + private delegate* unmanaged[Cdecl] fn__setEntityHasGravity; + private delegate* unmanaged[Cdecl] fn__setEntityLodDist; + private delegate* unmanaged[Cdecl] fn__getEntityLodDist; + private delegate* unmanaged[Cdecl] fn__setEntityAlpha; + private delegate* unmanaged[Cdecl] fn__getEntityAlpha; + private delegate* unmanaged[Cdecl] fn__resetEntityAlpha; + private delegate* unmanaged[Cdecl] fn__resetPickupEntityGlow; private delegate* unmanaged[Cdecl] fn__setPickupCollidesWithProjectiles; - private delegate* unmanaged[Cdecl] fn__setEntitySortBias; - private delegate* unmanaged[Cdecl] fn__setEntityAlwaysPrerender; - private delegate* unmanaged[Cdecl] fn__setEntityRenderScorched; - private delegate* unmanaged[Cdecl] fn__setEntityTrafficlightOverride; - private delegate* unmanaged[Cdecl] fn__setEntityIsInVehicle; + private delegate* unmanaged[Cdecl] fn__setEntitySortBias; + private delegate* unmanaged[Cdecl] fn__setEntityAlwaysPrerender; + private delegate* unmanaged[Cdecl] fn__setEntityRenderScorched; + private delegate* unmanaged[Cdecl] fn__setEntityTrafficlightOverride; + private delegate* unmanaged[Cdecl] fn__setEntityIsInVehicle; private delegate* unmanaged[Cdecl] fn__createModelSwap; private delegate* unmanaged[Cdecl] fn__removeModelSwap; private delegate* unmanaged[Cdecl] fn__createModelHide; @@ -28144,31 +28131,31 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__removeModelHide; private delegate* unmanaged[Cdecl] fn__createForcedObject; private delegate* unmanaged[Cdecl] fn__removeForcedObject; - private delegate* unmanaged[Cdecl] fn__setEntityNoCollisionEntity; - private delegate* unmanaged[Cdecl] fn__setEntityMotionBlur; - private delegate* unmanaged[Cdecl] fn__setCanAutoVaultOnEntity; - private delegate* unmanaged[Cdecl] fn__setCanClimbOnEntity; - private delegate* unmanaged[Cdecl] fn__setWaitForCollisionsBeforeProbe; - private delegate* unmanaged[Cdecl] fn__setEntityNoweapondecals; - private delegate* unmanaged[Cdecl] fn__setEntityUseMaxDistanceForWaterReflection; - private delegate* unmanaged[Cdecl] fn__getEntityBoneRotation; - private delegate* unmanaged[Cdecl] fn__getEntityBonePostion; - private delegate* unmanaged[Cdecl] fn__getEntityBoneObjectRotation; - private delegate* unmanaged[Cdecl] fn__getEntityBoneCount; - private delegate* unmanaged[Cdecl] fn__enableEntityBulletCollision; - private delegate* unmanaged[Cdecl] fn__setEntityCanOnlyBeDamagedByEntity; - private delegate* unmanaged[Cdecl] fn__setEntityCantCauseCollisionDamagedEntity; - private delegate* unmanaged[Cdecl] fn__setAllowMigrateToSpectator; - private delegate* unmanaged[Cdecl] fn__getEntityOfTypeAttachedToEntity; - private delegate* unmanaged[Cdecl] fn__setPickUpByCargobobDisabled; - private delegate* unmanaged[Cdecl] fn__setDecisionMaker; + private delegate* unmanaged[Cdecl] fn__setEntityNoCollisionEntity; + private delegate* unmanaged[Cdecl] fn__setEntityMotionBlur; + private delegate* unmanaged[Cdecl] fn__setCanAutoVaultOnEntity; + private delegate* unmanaged[Cdecl] fn__setCanClimbOnEntity; + private delegate* unmanaged[Cdecl] fn__setWaitForCollisionsBeforeProbe; + private delegate* unmanaged[Cdecl] fn__setEntityNoweapondecals; + private delegate* unmanaged[Cdecl] fn__setEntityUseMaxDistanceForWaterReflection; + private delegate* unmanaged[Cdecl] fn__getEntityBoneRotation; + private delegate* unmanaged[Cdecl] fn__getEntityBonePostion; + private delegate* unmanaged[Cdecl] fn__getEntityBoneObjectRotation; + private delegate* unmanaged[Cdecl] fn__getEntityBoneCount; + private delegate* unmanaged[Cdecl] fn__enableEntityBulletCollision; + private delegate* unmanaged[Cdecl] fn__setEntityCanOnlyBeDamagedByEntity; + private delegate* unmanaged[Cdecl] fn__setEntityCantCauseCollisionDamagedEntity; + private delegate* unmanaged[Cdecl] fn__setAllowMigrateToSpectator; + private delegate* unmanaged[Cdecl] fn__getEntityOfTypeAttachedToEntity; + private delegate* unmanaged[Cdecl] fn__setPickUpByCargobobDisabled; + private delegate* unmanaged[Cdecl] fn__setDecisionMaker; private delegate* unmanaged[Cdecl] fn__clearDecisionMakerEventResponse; private delegate* unmanaged[Cdecl] fn__blockDecisionMakerEvent; private delegate* unmanaged[Cdecl] fn__unblockDecisionMakerEvent; private delegate* unmanaged[Cdecl] fn__addShockingEventAtPosition; - private delegate* unmanaged[Cdecl] fn__addShockingEventForEntity; + private delegate* unmanaged[Cdecl] fn__addShockingEventForEntity; private delegate* unmanaged[Cdecl] fn__isShockingEventInSphere; - private delegate* unmanaged[Cdecl] fn__removeShockingEvent; + private delegate* unmanaged[Cdecl] fn__removeShockingEvent; private delegate* unmanaged[Cdecl] fn__removeAllShockingEvents; private delegate* unmanaged[Cdecl] fn__removeShockingEventSpawnBlockingAreas; private delegate* unmanaged[Cdecl] fn__suppressShockingEventsNextFrame; @@ -28187,8 +28174,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getShopPedQueryProp; private delegate* unmanaged[Cdecl] fn__getShopPedQueryPropIndex; private delegate* unmanaged[Cdecl] fn__getShopPedProp; - private delegate* unmanaged[Cdecl] fn__getHashNameForComponent; - private delegate* unmanaged[Cdecl] fn__getHashNameForProp; + private delegate* unmanaged[Cdecl] fn__getHashNameForComponent; + private delegate* unmanaged[Cdecl] fn__getHashNameForProp; private delegate* unmanaged[Cdecl] fn__getItemVariantsCount; private delegate* unmanaged[Cdecl] fn__getShopPedApparelVariantPropCount; private delegate* unmanaged[Cdecl] fn__getVariantComponent; @@ -28198,8 +28185,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getForcedComponent; private delegate* unmanaged[Cdecl] fn__getForcedProp; private delegate* unmanaged[Cdecl] fn__isTagRestricted; - private delegate* unmanaged[Cdecl] fn__doesCurrentPedComponentHaveRestrictionTag; - private delegate* unmanaged[Cdecl] fn__doesCurrentPedPropHaveRestrictionTag; + private delegate* unmanaged[Cdecl] fn__doesCurrentPedComponentHaveRestrictionTag; + private delegate* unmanaged[Cdecl] fn__doesCurrentPedPropHaveRestrictionTag; private delegate* unmanaged[Cdecl] fn__setupShopPedOutfitQuery; private delegate* unmanaged[Cdecl] fn__getShopPedQueryOutfit; private delegate* unmanaged[Cdecl] fn__getShopPedOutfit; @@ -28225,22 +28212,22 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__revertContentChangesetGroupForAll; private delegate* unmanaged[Cdecl] fn__startScriptFire; private delegate* unmanaged[Cdecl] fn__removeScriptFire; - private delegate* unmanaged[Cdecl] fn__startEntityFire; - private delegate* unmanaged[Cdecl] fn__stopEntityFire; - private delegate* unmanaged[Cdecl] fn__isEntityOnFire; + private delegate* unmanaged[Cdecl] fn__startEntityFire; + private delegate* unmanaged[Cdecl] fn__stopEntityFire; + private delegate* unmanaged[Cdecl] fn__isEntityOnFire; private delegate* unmanaged[Cdecl] fn__getNumberOfFiresInRange; private delegate* unmanaged[Cdecl] fn__setFlammabilityMultiplier; private delegate* unmanaged[Cdecl] fn__stopFireInRange; private delegate* unmanaged[Cdecl] fn__getClosestFirePos; private delegate* unmanaged[Cdecl] fn__addExplosion; - private delegate* unmanaged[Cdecl] fn__addOwnedExplosion; + private delegate* unmanaged[Cdecl] fn__addOwnedExplosion; private delegate* unmanaged[Cdecl] fn__addExplosionWithUserVfx; private delegate* unmanaged[Cdecl] fn__isExplosionInArea; private delegate* unmanaged[Cdecl] fn__isExplosionActiveInArea; private delegate* unmanaged[Cdecl] fn__isExplosionInSphere; - private delegate* unmanaged[Cdecl] fn__getOwnerOfExplosionInSphere; + private delegate* unmanaged[Cdecl] fn__getOwnerOfExplosionInSphere; private delegate* unmanaged[Cdecl] fn__isExplosionInAngledArea; - private delegate* unmanaged[Cdecl] fn__getOwnerOfExplosionInAngledArea; + private delegate* unmanaged[Cdecl] fn__getOwnerOfExplosionInAngledArea; private delegate* unmanaged[Cdecl] fn__beginTextCommandBusyspinnerOn; private delegate* unmanaged[Cdecl] fn__endTextCommandBusyspinnerOn; private delegate* unmanaged[Cdecl] fn__busyspinnerOff; @@ -28434,12 +28421,12 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getBlipInfoIdCoord; private delegate* unmanaged[Cdecl] fn__getBlipInfoIdDisplay; private delegate* unmanaged[Cdecl] fn__getBlipInfoIdType; - private delegate* unmanaged[Cdecl] fn__getBlipInfoIdEntityIndex; + private delegate* unmanaged[Cdecl] fn__getBlipInfoIdEntityIndex; private delegate* unmanaged[Cdecl] fn__getBlipInfoIdPickupIndex; - private delegate* unmanaged[Cdecl] fn__getBlipFromEntity; + private delegate* unmanaged[Cdecl] fn__getBlipFromEntity; private delegate* unmanaged[Cdecl] fn__addBlipForRadius; private delegate* unmanaged[Cdecl] fn__addBlipForArea; - private delegate* unmanaged[Cdecl] fn__addBlipForEntity; + private delegate* unmanaged[Cdecl] fn__addBlipForEntity; private delegate* unmanaged[Cdecl] fn__addBlipForPickup; private delegate* unmanaged[Cdecl] fn__addBlipForCoord; private delegate* unmanaged[Cdecl] fn__triggerSonarBlip; @@ -28451,7 +28438,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setCopBlipSprite; private delegate* unmanaged[Cdecl] fn__setCopBlipSpriteAsStandard; private delegate* unmanaged[Cdecl] fn__setBlipNameFromTextFile; - private delegate* unmanaged[Cdecl] fn__setBlipNameToPlayerName; + private delegate* unmanaged[Cdecl] fn__setBlipNameToPlayerName; private delegate* unmanaged[Cdecl] fn__setBlipAlpha; private delegate* unmanaged[Cdecl] fn__getBlipAlpha; private delegate* unmanaged[Cdecl] fn__setBlipFade; @@ -28512,7 +28499,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setNewWaypoint; private delegate* unmanaged[Cdecl] fn__setBlipBright; private delegate* unmanaged[Cdecl] fn__setBlipShowCone; - private delegate* unmanaged[Cdecl] fn__removeCopBlipFromPed; + private delegate* unmanaged[Cdecl] fn__removeCopBlipFromPed; private delegate* unmanaged[Cdecl] fn__setupFakeConeData; private delegate* unmanaged[Cdecl] fn__removeFakeConeData; private delegate* unmanaged[Cdecl] fn__clearFakeConeArray; @@ -28577,7 +28564,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__flashMinimapDisplay; private delegate* unmanaged[Cdecl] fn__flashMinimapDisplayWithColor; private delegate* unmanaged[Cdecl] fn__toggleStealthRadar; - private delegate* unmanaged[Cdecl] fn__setMinimapInSpectatorMode; + private delegate* unmanaged[Cdecl] fn__setMinimapInSpectatorMode; private delegate* unmanaged[Cdecl] fn__setMissionName; private delegate* unmanaged[Cdecl] fn__setMissionNameForUgcMission; private delegate* unmanaged[Cdecl] fn__setDescriptionForUgcMissionEightStrings; @@ -28619,12 +28606,12 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__isFloatingHelpTextOnScreen; private delegate* unmanaged[Cdecl] fn__setFloatingHelpTextScreenPosition; private delegate* unmanaged[Cdecl] fn__setFloatingHelpTextWorldPosition; - private delegate* unmanaged[Cdecl] fn__setFloatingHelpTextToEntity; + private delegate* unmanaged[Cdecl] fn__setFloatingHelpTextToEntity; private delegate* unmanaged[Cdecl] fn__setFloatingHelpTextStyle; private delegate* unmanaged[Cdecl] fn__clearFloatingHelp; - private delegate* unmanaged[Cdecl] fn__createMpGamerTagWithCrewColor; + private delegate* unmanaged[Cdecl] fn__createMpGamerTagWithCrewColor; private delegate* unmanaged[Cdecl] fn__isMpGamerTagMovieActive; - private delegate* unmanaged[Cdecl] fn__createFakeMpGamerTag; + private delegate* unmanaged[Cdecl] fn__createFakeMpGamerTag; private delegate* unmanaged[Cdecl] fn__removeMpGamerTag; private delegate* unmanaged[Cdecl] fn__isMpGamerTagActive; private delegate* unmanaged[Cdecl] fn__isMpGamerTagFree; @@ -28714,7 +28701,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getCharacterMenuPedFloatStat; private delegate* unmanaged[Cdecl] fn__getMenuPedBoolStat; private delegate* unmanaged[Cdecl] fn__clearPedInPauseMenu; - private delegate* unmanaged[Cdecl] fn__givePedToPauseMenu; + private delegate* unmanaged[Cdecl] fn__givePedToPauseMenu; private delegate* unmanaged[Cdecl] fn__setPauseMenuPedLighting; private delegate* unmanaged[Cdecl] fn__setPauseMenuPedSleepState; private delegate* unmanaged[Cdecl] fn__openOnlinePoliciesMenu; @@ -28734,16 +28721,16 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__overrideMpTextChatColor; private delegate* unmanaged[Cdecl] fn__mpTextChatDisable; private delegate* unmanaged[Cdecl] fn__flagPlayerContextInTournament; - private delegate* unmanaged[Cdecl] fn__setPedHasAiBlip; - private delegate* unmanaged[Cdecl] fn__setPedHasAiBlipWithColour; - private delegate* unmanaged[Cdecl] fn__doesPedHaveAiBlip; - private delegate* unmanaged[Cdecl] fn__setPedAiBlipGangId; - private delegate* unmanaged[Cdecl] fn__setPedAiBlipHasCone; - private delegate* unmanaged[Cdecl] fn__setPedAiBlipForcedOn; - private delegate* unmanaged[Cdecl] fn__setPedAiBlipNoticeRange; - private delegate* unmanaged[Cdecl] fn__setPedAiBlipSprite; - private delegate* unmanaged[Cdecl] fn__getAiPedPedBlipIndex; - private delegate* unmanaged[Cdecl] fn__getAiPedVehicleBlipIndex; + private delegate* unmanaged[Cdecl] fn__setPedHasAiBlip; + private delegate* unmanaged[Cdecl] fn__setPedHasAiBlipWithColour; + private delegate* unmanaged[Cdecl] fn__doesPedHaveAiBlip; + private delegate* unmanaged[Cdecl] fn__setPedAiBlipGangId; + private delegate* unmanaged[Cdecl] fn__setPedAiBlipHasCone; + private delegate* unmanaged[Cdecl] fn__setPedAiBlipForcedOn; + private delegate* unmanaged[Cdecl] fn__setPedAiBlipNoticeRange; + private delegate* unmanaged[Cdecl] fn__setPedAiBlipSprite; + private delegate* unmanaged[Cdecl] fn__getAiPedPedBlipIndex; + private delegate* unmanaged[Cdecl] fn__getAiPedVehicleBlipIndex; private delegate* unmanaged[Cdecl] fn__hasDirectorModeBeenLaunchedByCode; private delegate* unmanaged[Cdecl] fn__setDirectorModeLaunchedByScript; private delegate* unmanaged[Cdecl] fn__setPlayerIsInDirectorMode; @@ -28755,13 +28742,13 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getOffsetFromInteriorInWorldCoords; private delegate* unmanaged[Cdecl] fn__isInteriorScene; private delegate* unmanaged[Cdecl] fn__isValidInterior; - private delegate* unmanaged[Cdecl] fn__clearRoomForEntity; - private delegate* unmanaged[Cdecl] fn__forceRoomForEntity; - private delegate* unmanaged[Cdecl] fn__getRoomKeyFromEntity; - private delegate* unmanaged[Cdecl] fn__getKeyForEntityInRoom; - private delegate* unmanaged[Cdecl] fn__getInteriorFromEntity; - private delegate* unmanaged[Cdecl] fn__retainEntityInInterior; - private delegate* unmanaged[Cdecl] fn__clearInteriorStateOfEntity; + private delegate* unmanaged[Cdecl] fn__clearRoomForEntity; + private delegate* unmanaged[Cdecl] fn__forceRoomForEntity; + private delegate* unmanaged[Cdecl] fn__getRoomKeyFromEntity; + private delegate* unmanaged[Cdecl] fn__getKeyForEntityInRoom; + private delegate* unmanaged[Cdecl] fn__getInteriorFromEntity; + private delegate* unmanaged[Cdecl] fn__retainEntityInInterior; + private delegate* unmanaged[Cdecl] fn__clearInteriorStateOfEntity; private delegate* unmanaged[Cdecl] fn__forceActivatingTrackingOnEntity; private delegate* unmanaged[Cdecl] fn__forceRoomForGameViewport; private delegate* unmanaged[Cdecl] fn__setRoomForGameViewportByName; @@ -28793,16 +28780,16 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__capInterior; private delegate* unmanaged[Cdecl] fn__isInteriorCapped; private delegate* unmanaged[Cdecl] fn__disableMetroSystem; - private delegate* unmanaged[Cdecl] fn__setIsExteriorOnly; - private delegate* unmanaged[Cdecl] fn__createItemset; - private delegate* unmanaged[Cdecl] fn__destroyItemset; - private delegate* unmanaged[Cdecl] fn__isItemsetValid; - private delegate* unmanaged[Cdecl] fn__addToItemset; - private delegate* unmanaged[Cdecl] fn__removeFromItemset; - private delegate* unmanaged[Cdecl] fn__getItemsetSize; - private delegate* unmanaged[Cdecl] fn__getIndexedItemInItemset; - private delegate* unmanaged[Cdecl] fn__isInItemset; - private delegate* unmanaged[Cdecl] fn__cleanItemset; + private delegate* unmanaged[Cdecl] fn__setIsExteriorOnly; + private delegate* unmanaged[Cdecl] fn__createItemset; + private delegate* unmanaged[Cdecl] fn__destroyItemset; + private delegate* unmanaged[Cdecl] fn__isItemsetValid; + private delegate* unmanaged[Cdecl] fn__addToItemset; + private delegate* unmanaged[Cdecl] fn__removeFromItemset; + private delegate* unmanaged[Cdecl] fn__getItemsetSize; + private delegate* unmanaged[Cdecl] fn__getIndexedItemInItemset; + private delegate* unmanaged[Cdecl] fn__isInItemset; + private delegate* unmanaged[Cdecl] fn__cleanItemset; private delegate* unmanaged[Cdecl] fn__lobbyAutoMultiplayerMenu; private delegate* unmanaged[Cdecl] fn__lobbyAutoMultiplayerFreemode; private delegate* unmanaged[Cdecl] fn__lobbySetAutoMultiplayer; @@ -28912,7 +28899,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__slerpNearQuaternion; private delegate* unmanaged[Cdecl] fn__isAreaOccupied; private delegate* unmanaged[Cdecl] fn__isAreaOccupiedSlow; - private delegate* unmanaged[Cdecl] fn__isPositionOccupied; + private delegate* unmanaged[Cdecl] fn__isPositionOccupied; private delegate* unmanaged[Cdecl] fn__isPointObscuredByAMissionEntity; private delegate* unmanaged[Cdecl] fn__clearArea; private delegate* unmanaged[Cdecl] fn__clearAreaLeaveVehicleHealth; @@ -28965,9 +28952,9 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__queueMissionRepeatSaveForBenchmarkTest; private delegate* unmanaged[Cdecl] fn__getStatusOfMissionRepeatSave; private delegate* unmanaged[Cdecl] fn__isMemoryCardInUse; - private delegate* unmanaged[Cdecl] fn__shootSingleBulletBetweenCoords; - private delegate* unmanaged[Cdecl] fn__shootSingleBulletBetweenCoordsIgnoreEntity; - private delegate* unmanaged[Cdecl] fn__shootSingleBulletBetweenCoordsIgnoreEntityNew; + private delegate* unmanaged[Cdecl] fn__shootSingleBulletBetweenCoords; + private delegate* unmanaged[Cdecl] fn__shootSingleBulletBetweenCoordsIgnoreEntity; + private delegate* unmanaged[Cdecl] fn__shootSingleBulletBetweenCoordsIgnoreEntityNew; private delegate* unmanaged[Cdecl] fn__getModelDimensions; private delegate* unmanaged[Cdecl] fn__setFakeWantedLevel; private delegate* unmanaged[Cdecl] fn__getFakeWantedLevel; @@ -28989,8 +28976,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__isProjectileTypeInAngledArea; private delegate* unmanaged[Cdecl] fn__isProjectileTypeWithinDistance; private delegate* unmanaged[Cdecl] fn__getCoordsOfProjectileTypeInArea; - private delegate* unmanaged[Cdecl] fn__getCoordsOfProjectileTypeWithinDistance; - private delegate* unmanaged[Cdecl] fn__getProjectileOfProjectileTypeWithinDistance; + private delegate* unmanaged[Cdecl] fn__getCoordsOfProjectileTypeWithinDistance; + private delegate* unmanaged[Cdecl] fn__getProjectileOfProjectileTypeWithinDistance; private delegate* unmanaged[Cdecl] fn__isBulletInAngledArea; private delegate* unmanaged[Cdecl] fn__isBulletInArea; private delegate* unmanaged[Cdecl] fn__isBulletInBox; @@ -29059,7 +29046,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__blockDispatchServiceResourceCreation; private delegate* unmanaged[Cdecl] fn__getNumberResourcesAllocatedToWantedLevel; private delegate* unmanaged[Cdecl] fn__createIncident; - private delegate* unmanaged[Cdecl] fn__createIncidentWithEntity; + private delegate* unmanaged[Cdecl] fn__createIncidentWithEntity; private delegate* unmanaged[Cdecl] fn__deleteIncident; private delegate* unmanaged[Cdecl] fn__isIncidentValid; private delegate* unmanaged[Cdecl] fn__setIncidentRequestedUnits; @@ -29072,14 +29059,14 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__addPopMultiplierSphere; private delegate* unmanaged[Cdecl] fn__doesPopMultiplierSphereExist; private delegate* unmanaged[Cdecl] fn__removePopMultiplierSphere; - private delegate* unmanaged[Cdecl] fn__enableTennisMode; - private delegate* unmanaged[Cdecl] fn__isTennisMode; - private delegate* unmanaged[Cdecl] fn__playTennisSwingAnim; - private delegate* unmanaged[Cdecl] fn__getTennisSwingAnimComplete; - private delegate* unmanaged[Cdecl] fn__getTennisSwingAnimCanBeInterrupted; - private delegate* unmanaged[Cdecl] fn__getTennisSwingAnimSwung; - private delegate* unmanaged[Cdecl] fn__playTennisDiveAnim; - private delegate* unmanaged[Cdecl] fn__setTennisMoveNetworkSignalFloat; + private delegate* unmanaged[Cdecl] fn__enableTennisMode; + private delegate* unmanaged[Cdecl] fn__isTennisMode; + private delegate* unmanaged[Cdecl] fn__playTennisSwingAnim; + private delegate* unmanaged[Cdecl] fn__getTennisSwingAnimComplete; + private delegate* unmanaged[Cdecl] fn__getTennisSwingAnimCanBeInterrupted; + private delegate* unmanaged[Cdecl] fn__getTennisSwingAnimSwung; + private delegate* unmanaged[Cdecl] fn__playTennisDiveAnim; + private delegate* unmanaged[Cdecl] fn__setTennisMoveNetworkSignalFloat; private delegate* unmanaged[Cdecl] fn__resetDispatchSpawnLocation; private delegate* unmanaged[Cdecl] fn__setDispatchSpawnLocation; private delegate* unmanaged[Cdecl] fn__resetDispatchIdealSpawnDistance; @@ -29105,12 +29092,12 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__actionManagerEnableAction; private delegate* unmanaged[Cdecl] fn__getRealWorldTime; private delegate* unmanaged[Cdecl] fn__supressRandomEventThisFrame; - private delegate* unmanaged[Cdecl] fn__setExplosiveAmmoThisFrame; - private delegate* unmanaged[Cdecl] fn__setFireAmmoThisFrame; - private delegate* unmanaged[Cdecl] fn__setExplosiveMeleeThisFrame; - private delegate* unmanaged[Cdecl] fn__setSuperJumpThisFrame; - private delegate* unmanaged[Cdecl] fn__setBeastJumpThisFrame; - private delegate* unmanaged[Cdecl] fn__setForcedJumpThisFrame; + private delegate* unmanaged[Cdecl] fn__setExplosiveAmmoThisFrame; + private delegate* unmanaged[Cdecl] fn__setFireAmmoThisFrame; + private delegate* unmanaged[Cdecl] fn__setExplosiveMeleeThisFrame; + private delegate* unmanaged[Cdecl] fn__setSuperJumpThisFrame; + private delegate* unmanaged[Cdecl] fn__setBeastJumpThisFrame; + private delegate* unmanaged[Cdecl] fn__setForcedJumpThisFrame; private delegate* unmanaged[Cdecl] fn__hasGameInstalledThisSession; private delegate* unmanaged[Cdecl] fn__setTickerJohnmarstonIsDone; private delegate* unmanaged[Cdecl] fn__areProfileSettingsValid; @@ -29118,8 +29105,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__forceGameStatePlaying; private delegate* unmanaged[Cdecl] fn__scriptRaceInit; private delegate* unmanaged[Cdecl] fn__scriptRaceShutdown; - private delegate* unmanaged[Cdecl] fn__scriptRacePlayerHitCheckpoint; - private delegate* unmanaged[Cdecl] fn__scriptRaceGetPlayerSplitTime; + private delegate* unmanaged[Cdecl] fn__scriptRacePlayerHitCheckpoint; + private delegate* unmanaged[Cdecl] fn__scriptRaceGetPlayerSplitTime; private delegate* unmanaged[Cdecl] fn__startEndUserBenchmark; private delegate* unmanaged[Cdecl] fn__stopEndUserBenchmark; private delegate* unmanaged[Cdecl] fn__resetEndUserBenchmark; @@ -29147,7 +29134,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__destroyMobilePhone; private delegate* unmanaged[Cdecl] fn__setMobilePhoneScale; private delegate* unmanaged[Cdecl] fn__setMobilePhoneRotation; - private delegate* unmanaged[Cdecl] fn__getMobilePhoneRotation; + private delegate* unmanaged[Cdecl] fn__getMobilePhoneRotation; private delegate* unmanaged[Cdecl] fn__setMobilePhonePosition; private delegate* unmanaged[Cdecl] fn__getMobilePhonePosition; private delegate* unmanaged[Cdecl] fn__scriptIsMovingMobilePhoneOffscreen; @@ -29166,7 +29153,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__cellCamSetSelfieModeHeadYawOffset; private delegate* unmanaged[Cdecl] fn__cellCamSetSelfieModeHeadRollOffset; private delegate* unmanaged[Cdecl] fn__cellCamSetSelfieModeHeadPitchOffset; - private delegate* unmanaged[Cdecl] fn__cellCamIsCharVisibleNoFaceCheck; + private delegate* unmanaged[Cdecl] fn__cellCamIsCharVisibleNoFaceCheck; private delegate* unmanaged[Cdecl] fn__getMobilePhoneRenderId; private delegate* unmanaged[Cdecl] fn__networkInitializeCash; private delegate* unmanaged[Cdecl] fn__networkDeleteCharacter; @@ -29235,7 +29222,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkCanSpendMoney; private delegate* unmanaged[Cdecl] fn__networkCanSpendMoney2; private delegate* unmanaged[Cdecl] fn__networkBuyItem; - private delegate* unmanaged[Cdecl] fn__networkSpentTaxi; + private delegate* unmanaged[Cdecl] fn__networkSpentTaxi; private delegate* unmanaged[Cdecl] fn__networkPayEmployeeWage; private delegate* unmanaged[Cdecl] fn__networkPayMatchEntryFee; private delegate* unmanaged[Cdecl] fn__networkSpentBetting; @@ -29246,7 +29233,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkBuyBackupGang; private delegate* unmanaged[Cdecl] fn__networkBuyHeliStrike; private delegate* unmanaged[Cdecl] fn__networkSpentAmmoDrop; - private delegate* unmanaged[Cdecl] fn__networkBuyBounty; + private delegate* unmanaged[Cdecl] fn__networkBuyBounty; private delegate* unmanaged[Cdecl] fn__networkBuyProperty; private delegate* unmanaged[Cdecl] fn__networkBuySmokes; private delegate* unmanaged[Cdecl] fn__networkSpentHeliPickup; @@ -29360,9 +29347,9 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkSpentPurchaseNightclubAndWarehouse; private delegate* unmanaged[Cdecl] fn__networkSpentUpgradeNightclubAndWarehouse; private delegate* unmanaged[Cdecl] fn__networkEarnNightclubAndWarehouse; - private delegate* unmanaged[Cdecl] fn__networkSpendNightclubAndWarehouse; + private delegate* unmanaged[Cdecl] fn__networkSpendNightclubAndWarehouse; private delegate* unmanaged[Cdecl] fn__networkSpentRdrHatchetBonus; - private delegate* unmanaged[Cdecl] fn__networkSpentNightclubEntryFee; + private delegate* unmanaged[Cdecl] fn__networkSpentNightclubEntryFee; private delegate* unmanaged[Cdecl] fn__networkSpendNightclubBarDrink; private delegate* unmanaged[Cdecl] fn__networkSpendBountyHunterMission; private delegate* unmanaged[Cdecl] fn__networkSpentRehireDj; @@ -29424,7 +29411,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkSpendCarClubTakeover; private delegate* unmanaged[Cdecl] fn__networkSpendBuyAutoshop; private delegate* unmanaged[Cdecl] fn__networkSpendUpgradeAutoshop; - private delegate* unmanaged[Cdecl] fn__networkEarnAutoshopBusiness; + private delegate* unmanaged[Cdecl] fn__networkEarnAutoshopBusiness; private delegate* unmanaged[Cdecl] fn__networkEarnAutoshopIncome; private delegate* unmanaged[Cdecl] fn__networkEarnCarclubMembership; private delegate* unmanaged[Cdecl] fn__networkEarnDailyVehicle; @@ -29537,12 +29524,12 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkHasSocialClubAccount; private delegate* unmanaged[Cdecl] fn__networkAreSocialClubPoliciesCurrent; private delegate* unmanaged[Cdecl] fn__networkIsHost; - private delegate* unmanaged[Cdecl] fn__networkGetHostPlayerIndex; + private delegate* unmanaged[Cdecl] fn__networkGetHostPlayerIndex; private delegate* unmanaged[Cdecl] fn__networkWasGameSuspended; private delegate* unmanaged[Cdecl] fn__networkHaveOnlinePrivileges; private delegate* unmanaged[Cdecl] fn__networkHasAgeRestrictions; private delegate* unmanaged[Cdecl] fn__networkHaveUserContentPrivileges; - private delegate* unmanaged[Cdecl] fn__networkHaveCommunicationPrivileges; + private delegate* unmanaged[Cdecl] fn__networkHaveCommunicationPrivileges; private delegate* unmanaged[Cdecl] fn__networkCheckOnlinePrivileges; private delegate* unmanaged[Cdecl] fn__networkCheckUserContentPrivileges; private delegate* unmanaged[Cdecl] fn__networkCheckCommunicationPrivileges; @@ -29569,9 +29556,9 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkCanAccessMultiplayer; private delegate* unmanaged[Cdecl] fn__networkIsMultiplayerDisabled; private delegate* unmanaged[Cdecl] fn__networkCanEnterMultiplayer; - private delegate* unmanaged[Cdecl] fn__networkSessionDoFreeroamQuickmatch; - private delegate* unmanaged[Cdecl] fn__networkSessionDoFriendMatchmaking; - private delegate* unmanaged[Cdecl] fn__networkSessionDoCrewMatchmaking; + private delegate* unmanaged[Cdecl] fn__networkSessionDoFreeroamQuickmatch; + private delegate* unmanaged[Cdecl] fn__networkSessionDoFriendMatchmaking; + private delegate* unmanaged[Cdecl] fn__networkSessionDoCrewMatchmaking; private delegate* unmanaged[Cdecl] fn__networkSessionDoActivityQuickmatch; private delegate* unmanaged[Cdecl] fn__networkSessionHost; private delegate* unmanaged[Cdecl] fn__networkSessionHostClosed; @@ -29582,8 +29569,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkSessionIsPrivate; private delegate* unmanaged[Cdecl] fn__networkSessionEnd; private delegate* unmanaged[Cdecl] fn__networkSessionLeave; - private delegate* unmanaged[Cdecl] fn__networkSessionKickPlayer; - private delegate* unmanaged[Cdecl] fn__networkSessionGetKickVote; + private delegate* unmanaged[Cdecl] fn__networkSessionKickPlayer; + private delegate* unmanaged[Cdecl] fn__networkSessionGetKickVote; private delegate* unmanaged[Cdecl] fn__networkSessionReserveSlotsTransition; private delegate* unmanaged[Cdecl] fn__networkJoinPreviouslyFailedSession; private delegate* unmanaged[Cdecl] fn__networkJoinPreviouslyFailedTransition; @@ -29719,9 +29706,9 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkSetTransitionActivityId; private delegate* unmanaged[Cdecl] fn__networkChangeTransitionSlots; private delegate* unmanaged[Cdecl] fn__networkTransitionBlockJoinRequests; - private delegate* unmanaged[Cdecl] fn__networkHasPlayerStartedTransition; + private delegate* unmanaged[Cdecl] fn__networkHasPlayerStartedTransition; private delegate* unmanaged[Cdecl] fn__networkAreTransitionDetailsValid; - private delegate* unmanaged[Cdecl] fn__networkJoinTransition; + private delegate* unmanaged[Cdecl] fn__networkJoinTransition; private delegate* unmanaged[Cdecl] fn__networkHasInvitedGamerToTransition; private delegate* unmanaged[Cdecl] fn__networkHasTransitionInviteBeenAcked; private delegate* unmanaged[Cdecl] fn__networkIsActivitySession; @@ -29780,15 +29767,15 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkPlayerIsCheater; private delegate* unmanaged[Cdecl] fn__networkPlayerGetCheaterReason; private delegate* unmanaged[Cdecl] fn__networkPlayerIsBadsport; - private delegate* unmanaged[Cdecl] fn__triggerPlayerCrcHackerCheck; - private delegate* unmanaged[Cdecl] fn__triggerTuningCrcHackerCheck; - private delegate* unmanaged[Cdecl] fn__triggerFileCrcHackerCheck; - private delegate* unmanaged[Cdecl] fn__remoteCheaterPlayerDetected; + private delegate* unmanaged[Cdecl] fn__triggerPlayerCrcHackerCheck; + private delegate* unmanaged[Cdecl] fn__triggerTuningCrcHackerCheck; + private delegate* unmanaged[Cdecl] fn__triggerFileCrcHackerCheck; + private delegate* unmanaged[Cdecl] fn__remoteCheaterPlayerDetected; private delegate* unmanaged[Cdecl] fn__badSportPlayerLeftDetected; private delegate* unmanaged[Cdecl] fn__networkAddInvalidObjectModel; private delegate* unmanaged[Cdecl] fn__networkRemoveInvalidObjectModel; private delegate* unmanaged[Cdecl] fn__networkClearInvalidObjectModels; - private delegate* unmanaged[Cdecl] fn__networkApplyPedScarData; + private delegate* unmanaged[Cdecl] fn__networkApplyPedScarData; private delegate* unmanaged[Cdecl] fn__networkSetThisScriptIsNetworkScript; private delegate* unmanaged[Cdecl] fn__networkTryToSetThisScriptIsNetworkScript; private delegate* unmanaged[Cdecl] fn__networkGetThisScriptIsNetworkScript; @@ -29801,18 +29788,18 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkRegisterHighFrequencyPlayerBroadcastVariables; private delegate* unmanaged[Cdecl] fn__networkFinishBroadcastingData; private delegate* unmanaged[Cdecl] fn__networkHasReceivedHostBroadcastData; - private delegate* unmanaged[Cdecl] fn__networkGetPlayerIndex; + private delegate* unmanaged[Cdecl] fn__networkGetPlayerIndex; private delegate* unmanaged[Cdecl] fn__networkGetParticipantIndex; - private delegate* unmanaged[Cdecl] fn__networkGetPlayerIndexFromPed; + private delegate* unmanaged[Cdecl] fn__networkGetPlayerIndexFromPed; private delegate* unmanaged[Cdecl] fn__networkGetNumConnectedPlayers; - private delegate* unmanaged[Cdecl] fn__networkIsPlayerConnected; + private delegate* unmanaged[Cdecl] fn__networkIsPlayerConnected; private delegate* unmanaged[Cdecl] fn__networkGetTotalNumPlayers; private delegate* unmanaged[Cdecl] fn__networkIsParticipantActive; - private delegate* unmanaged[Cdecl] fn__networkIsPlayerActive; - private delegate* unmanaged[Cdecl] fn__networkIsPlayerAParticipant; + private delegate* unmanaged[Cdecl] fn__networkIsPlayerActive; + private delegate* unmanaged[Cdecl] fn__networkIsPlayerAParticipant; private delegate* unmanaged[Cdecl] fn__networkIsHostOfThisScript; - private delegate* unmanaged[Cdecl] fn__networkGetHostOfThisScript; - private delegate* unmanaged[Cdecl] fn__networkGetHostOfScript; + private delegate* unmanaged[Cdecl] fn__networkGetHostOfThisScript; + private delegate* unmanaged[Cdecl] fn__networkGetHostOfScript; private delegate* unmanaged[Cdecl] fn__networkSetMissionFinished; private delegate* unmanaged[Cdecl] fn__networkIsScriptActive; private delegate* unmanaged[Cdecl] fn__networkIsScriptActiveByHash; @@ -29820,56 +29807,56 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkGetNumScriptParticipants; private delegate* unmanaged[Cdecl] fn__networkGetInstanceIdOfThisScript; private delegate* unmanaged[Cdecl] fn__networkGetPositionHashOfThisScript; - private delegate* unmanaged[Cdecl] fn__networkIsPlayerAParticipantOnScript; + private delegate* unmanaged[Cdecl] fn__networkIsPlayerAParticipantOnScript; private delegate* unmanaged[Cdecl] fn__networkPreventScriptHostMigration; private delegate* unmanaged[Cdecl] fn__networkRequestToBeHostOfThisScript; - private delegate* unmanaged[Cdecl] fn__participantId; + private delegate* unmanaged[Cdecl] fn__participantId; private delegate* unmanaged[Cdecl] fn__participantIdToInt; - private delegate* unmanaged[Cdecl] fn__networkGetKillerOfPlayer; - private delegate* unmanaged[Cdecl] fn__networkGetDestroyerOfNetworkId; - private delegate* unmanaged[Cdecl] fn__networkGetDestroyerOfEntity; - private delegate* unmanaged[Cdecl] fn__networkGetAssistedKillOfEntity; - private delegate* unmanaged[Cdecl] fn__networkGetAssistedDamageOfEntity; - private delegate* unmanaged[Cdecl] fn__networkGetEntityKillerOfPlayer; + private delegate* unmanaged[Cdecl] fn__networkGetKillerOfPlayer; + private delegate* unmanaged[Cdecl] fn__networkGetDestroyerOfNetworkId; + private delegate* unmanaged[Cdecl] fn__networkGetDestroyerOfEntity; + private delegate* unmanaged[Cdecl] fn__networkGetAssistedKillOfEntity; + private delegate* unmanaged[Cdecl] fn__networkGetAssistedDamageOfEntity; + private delegate* unmanaged[Cdecl] fn__networkGetEntityKillerOfPlayer; private delegate* unmanaged[Cdecl] fn__networkSetCurrentPublicContentId; private delegate* unmanaged[Cdecl] fn__networkSetCurrentSpawnLocationOption; private delegate* unmanaged[Cdecl] fn__networkSetVehicleDrivenInTestDrive; private delegate* unmanaged[Cdecl] fn__networkResurrectLocalPlayer; private delegate* unmanaged[Cdecl] fn__networkSetLocalPlayerInvincibleTime; private delegate* unmanaged[Cdecl] fn__networkIsLocalPlayerInvincible; - private delegate* unmanaged[Cdecl] fn__networkDisableInvincibleFlashing; - private delegate* unmanaged[Cdecl] fn__networkPatchPostCutsceneHs4fTunEnt; + private delegate* unmanaged[Cdecl] fn__networkDisableInvincibleFlashing; + private delegate* unmanaged[Cdecl] fn__networkPatchPostCutsceneHs4fTunEnt; private delegate* unmanaged[Cdecl] fn__networkSetLocalPlayerSyncLookAt; - private delegate* unmanaged[Cdecl] fn__networkHasEntityBeenRegisteredWithThisThread; - private delegate* unmanaged[Cdecl] fn__networkGetNetworkIdFromEntity; - private delegate* unmanaged[Cdecl] fn__networkGetEntityFromNetworkId; - private delegate* unmanaged[Cdecl] fn__networkGetEntityIsNetworked; - private delegate* unmanaged[Cdecl] fn__networkGetEntityIsLocal; - private delegate* unmanaged[Cdecl] fn__networkRegisterEntityAsNetworked; - private delegate* unmanaged[Cdecl] fn__networkUnregisterNetworkedEntity; + private delegate* unmanaged[Cdecl] fn__networkHasEntityBeenRegisteredWithThisThread; + private delegate* unmanaged[Cdecl] fn__networkGetNetworkIdFromEntity; + private delegate* unmanaged[Cdecl] fn__networkGetEntityFromNetworkId; + private delegate* unmanaged[Cdecl] fn__networkGetEntityIsNetworked; + private delegate* unmanaged[Cdecl] fn__networkGetEntityIsLocal; + private delegate* unmanaged[Cdecl] fn__networkRegisterEntityAsNetworked; + private delegate* unmanaged[Cdecl] fn__networkUnregisterNetworkedEntity; private delegate* unmanaged[Cdecl] fn__networkDoesNetworkIdExist; private delegate* unmanaged[Cdecl] fn__networkDoesEntityExistWithNetworkId; private delegate* unmanaged[Cdecl] fn__networkRequestControlOfNetworkId; private delegate* unmanaged[Cdecl] fn__networkHasControlOfNetworkId; private delegate* unmanaged[Cdecl] fn__networkIsNetworkIdRemotelyControlled; - private delegate* unmanaged[Cdecl] fn__networkRequestControlOfEntity; + private delegate* unmanaged[Cdecl] fn__networkRequestControlOfEntity; private delegate* unmanaged[Cdecl] fn__networkRequestControlOfDoor; - private delegate* unmanaged[Cdecl] fn__networkHasControlOfEntity; + private delegate* unmanaged[Cdecl] fn__networkHasControlOfEntity; private delegate* unmanaged[Cdecl] fn__networkHasControlOfPickup; private delegate* unmanaged[Cdecl] fn__networkHasControlOfDoor; private delegate* unmanaged[Cdecl] fn__networkIsDoorNetworked; - private delegate* unmanaged[Cdecl] fn__vehToNet; - private delegate* unmanaged[Cdecl] fn__pedToNet; - private delegate* unmanaged[Cdecl] fn__objToNet; - private delegate* unmanaged[Cdecl] fn__netToVeh; - private delegate* unmanaged[Cdecl] fn__netToPed; - private delegate* unmanaged[Cdecl] fn__netToObj; - private delegate* unmanaged[Cdecl] fn__netToEnt; + private delegate* unmanaged[Cdecl] fn__vehToNet; + private delegate* unmanaged[Cdecl] fn__pedToNet; + private delegate* unmanaged[Cdecl] fn__objToNet; + private delegate* unmanaged[Cdecl] fn__netToVeh; + private delegate* unmanaged[Cdecl] fn__netToPed; + private delegate* unmanaged[Cdecl] fn__netToObj; + private delegate* unmanaged[Cdecl] fn__netToEnt; private delegate* unmanaged[Cdecl] fn__networkGetLocalHandle; private delegate* unmanaged[Cdecl] fn__networkHandleFromUserId; private delegate* unmanaged[Cdecl] fn__networkHandleFromMemberId; - private delegate* unmanaged[Cdecl] fn__networkHandleFromPlayer; - private delegate* unmanaged[Cdecl] fn__networkHashFromPlayerHandle; + private delegate* unmanaged[Cdecl] fn__networkHandleFromPlayer; + private delegate* unmanaged[Cdecl] fn__networkHashFromPlayerHandle; private delegate* unmanaged[Cdecl] fn__networkHashFromGamerHandle; private delegate* unmanaged[Cdecl] fn__networkHandleFromFriend; private delegate* unmanaged[Cdecl] fn__networkGamertagFromHandleStart; @@ -29880,16 +29867,16 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkGetDisplaynamesFromHandles; private delegate* unmanaged[Cdecl] fn__networkAreHandlesTheSame; private delegate* unmanaged[Cdecl] fn__networkIsHandleValid; - private delegate* unmanaged[Cdecl] fn__networkGetPlayerFromGamerHandle; + private delegate* unmanaged[Cdecl] fn__networkGetPlayerFromGamerHandle; private delegate* unmanaged[Cdecl] fn__networkMemberIdFromGamerHandle; private delegate* unmanaged[Cdecl] fn__networkIsGamerInMySession; private delegate* unmanaged[Cdecl] fn__networkShowProfileUi; - private delegate* unmanaged[Cdecl] fn__networkPlayerGetName; - private delegate* unmanaged[Cdecl] fn__networkPlayerGetUserid; - private delegate* unmanaged[Cdecl] fn__networkPlayerIsRockstarDev; - private delegate* unmanaged[Cdecl] fn__networkPlayerIndexIsCheater; - private delegate* unmanaged[Cdecl] fn__networkEntityGetObjectId; - private delegate* unmanaged[Cdecl] fn__networkGetEntityFromObjectId; + private delegate* unmanaged[Cdecl] fn__networkPlayerGetName; + private delegate* unmanaged[Cdecl] fn__networkPlayerGetUserid; + private delegate* unmanaged[Cdecl] fn__networkPlayerIsRockstarDev; + private delegate* unmanaged[Cdecl] fn__networkPlayerIndexIsCheater; + private delegate* unmanaged[Cdecl] fn__networkEntityGetObjectId; + private delegate* unmanaged[Cdecl] fn__networkGetEntityFromObjectId; private delegate* unmanaged[Cdecl] fn__networkIsInactiveProfile; private delegate* unmanaged[Cdecl] fn__networkGetMaxFriends; private delegate* unmanaged[Cdecl] fn__networkGetFriendCount; @@ -29905,7 +29892,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkAddFriend; private delegate* unmanaged[Cdecl] fn__networkIsFriendIndexOnline; private delegate* unmanaged[Cdecl] fn__networkSetPlayerIsPassive; - private delegate* unmanaged[Cdecl] fn__networkGetPlayerOwnsWaypoint; + private delegate* unmanaged[Cdecl] fn__networkGetPlayerOwnsWaypoint; private delegate* unmanaged[Cdecl] fn__networkCanSetWaypoint; private delegate* unmanaged[Cdecl] fn__networkIgnoreRemoteWaypoints; private delegate* unmanaged[Cdecl] fn__networkSetScriptAutomuted; @@ -29928,13 +29915,13 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkCanGamerPlayMultiplayerWithMe; private delegate* unmanaged[Cdecl] fn__networkCanSendLocalInvite; private delegate* unmanaged[Cdecl] fn__networkCanReceiveLocalInvite; - private delegate* unmanaged[Cdecl] fn__networkIsPlayerTalking; - private delegate* unmanaged[Cdecl] fn__networkPlayerHasHeadset; - private delegate* unmanaged[Cdecl] fn__networkIsPlayerMutedByMe; - private delegate* unmanaged[Cdecl] fn__networkAmIMutedByPlayer; - private delegate* unmanaged[Cdecl] fn__networkIsPlayerBlockedByMe; - private delegate* unmanaged[Cdecl] fn__networkAmIBlockedByPlayer; - private delegate* unmanaged[Cdecl] fn__networkGetPlayerLoudness; + private delegate* unmanaged[Cdecl] fn__networkIsPlayerTalking; + private delegate* unmanaged[Cdecl] fn__networkPlayerHasHeadset; + private delegate* unmanaged[Cdecl] fn__networkIsPlayerMutedByMe; + private delegate* unmanaged[Cdecl] fn__networkAmIMutedByPlayer; + private delegate* unmanaged[Cdecl] fn__networkIsPlayerBlockedByMe; + private delegate* unmanaged[Cdecl] fn__networkAmIBlockedByPlayer; + private delegate* unmanaged[Cdecl] fn__networkGetPlayerLoudness; private delegate* unmanaged[Cdecl] fn__networkSetTalkerProximity; private delegate* unmanaged[Cdecl] fn__networkGetTalkerProximity; private delegate* unmanaged[Cdecl] fn__networkSetVoiceActive; @@ -29949,18 +29936,18 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkSetProximityAffectsTeam; private delegate* unmanaged[Cdecl] fn__networkSetNoSpectatorChat; private delegate* unmanaged[Cdecl] fn__networkSetIgnoreSpectatorChatLimitsSameTeam; - private delegate* unmanaged[Cdecl] fn__networkOverrideChatRestrictions; - private delegate* unmanaged[Cdecl] fn__networkOverrideSendRestrictions; + private delegate* unmanaged[Cdecl] fn__networkOverrideChatRestrictions; + private delegate* unmanaged[Cdecl] fn__networkOverrideSendRestrictions; private delegate* unmanaged[Cdecl] fn__networkOverrideSendRestrictionsAll; - private delegate* unmanaged[Cdecl] fn__networkOverrideReceiveRestrictions; + private delegate* unmanaged[Cdecl] fn__networkOverrideReceiveRestrictions; private delegate* unmanaged[Cdecl] fn__networkOverrideReceiveRestrictionsAll; private delegate* unmanaged[Cdecl] fn__networkSetVoiceChannel; private delegate* unmanaged[Cdecl] fn__networkClearVoiceChannel; private delegate* unmanaged[Cdecl] fn__networkApplyVoiceProximityOverride; private delegate* unmanaged[Cdecl] fn__networkClearVoiceProximityOverride; - private delegate* unmanaged[Cdecl] fn__networkEnableVoiceBandwidthRestriction; - private delegate* unmanaged[Cdecl] fn__networkDisableVoiceBandwidthRestriction; - private delegate* unmanaged[Cdecl] fn__networkGetMuteCountForPlayer; + private delegate* unmanaged[Cdecl] fn__networkEnableVoiceBandwidthRestriction; + private delegate* unmanaged[Cdecl] fn__networkDisableVoiceBandwidthRestriction; + private delegate* unmanaged[Cdecl] fn__networkGetMuteCountForPlayer; private delegate* unmanaged[Cdecl] fn__networkSetSpectatorToNonSpectatorTextChat; private delegate* unmanaged[Cdecl] fn__networkTextChatIsTyping; private delegate* unmanaged[Cdecl] fn__shutdownAndLaunchSinglePlayerGame; @@ -29969,9 +29956,9 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkSetRichPresence; private delegate* unmanaged[Cdecl] fn__networkSetRichPresenceString; private delegate* unmanaged[Cdecl] fn__networkGetTimeoutTime; - private delegate* unmanaged[Cdecl] fn__networkLeavePedBehindBeforeWarp; - private delegate* unmanaged[Cdecl] fn__networkLeavePedBehindBeforeCutscene; - private delegate* unmanaged[Cdecl] fn__removeAllStickyBombsFromEntity; + private delegate* unmanaged[Cdecl] fn__networkLeavePedBehindBeforeWarp; + private delegate* unmanaged[Cdecl] fn__networkLeavePedBehindBeforeCutscene; + private delegate* unmanaged[Cdecl] fn__removeAllStickyBombsFromEntity; private delegate* unmanaged[Cdecl] fn__networkKeepEntityCollisionDisabledAfterAnimScene; private delegate* unmanaged[Cdecl] fn__networkIsAnyPlayerNear; private delegate* unmanaged[Cdecl] fn__networkClanServiceIsValid; @@ -30004,11 +29991,11 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkGetPrimaryClanDataNew; private delegate* unmanaged[Cdecl] fn__setNetworkIdCanMigrate; private delegate* unmanaged[Cdecl] fn__setNetworkIdExistsOnAllMachines; - private delegate* unmanaged[Cdecl] fn__setNetworkIdAlwaysExistsForPlayer; + private delegate* unmanaged[Cdecl] fn__setNetworkIdAlwaysExistsForPlayer; private delegate* unmanaged[Cdecl] fn__setNetworkIdCanBeReassigned; - private delegate* unmanaged[Cdecl] fn__networkSetEntityCanBlend; - private delegate* unmanaged[Cdecl] fn__networkSetObjectCanBlendWhenFixed; - private delegate* unmanaged[Cdecl] fn__networkSetEntityOnlyExistsForParticipants; + private delegate* unmanaged[Cdecl] fn__networkSetEntityCanBlend; + private delegate* unmanaged[Cdecl] fn__networkSetObjectCanBlendWhenFixed; + private delegate* unmanaged[Cdecl] fn__networkSetEntityOnlyExistsForParticipants; private delegate* unmanaged[Cdecl] fn__setNetworkIdVisibleInCutscene; private delegate* unmanaged[Cdecl] fn__setNetworkIdVisibleInCutsceneHack; private delegate* unmanaged[Cdecl] fn__setNetworkIdVisibleInCutsceneRemainHack; @@ -30019,21 +30006,21 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setLocalPlayerVisibleInCutscene; private delegate* unmanaged[Cdecl] fn__setLocalPlayerInvisibleLocally; private delegate* unmanaged[Cdecl] fn__setLocalPlayerVisibleLocally; - private delegate* unmanaged[Cdecl] fn__setPlayerInvisibleLocally; - private delegate* unmanaged[Cdecl] fn__setPlayerVisibleLocally; + private delegate* unmanaged[Cdecl] fn__setPlayerInvisibleLocally; + private delegate* unmanaged[Cdecl] fn__setPlayerVisibleLocally; private delegate* unmanaged[Cdecl] fn__fadeOutLocalPlayer; - private delegate* unmanaged[Cdecl] fn__networkFadeOutEntity; - private delegate* unmanaged[Cdecl] fn__networkFadeInEntity; - private delegate* unmanaged[Cdecl] fn__networkIsPlayerFading; - private delegate* unmanaged[Cdecl] fn__networkIsEntityFading; - private delegate* unmanaged[Cdecl] fn__isPlayerInCutscene; + private delegate* unmanaged[Cdecl] fn__networkFadeOutEntity; + private delegate* unmanaged[Cdecl] fn__networkFadeInEntity; + private delegate* unmanaged[Cdecl] fn__networkIsPlayerFading; + private delegate* unmanaged[Cdecl] fn__networkIsEntityFading; + private delegate* unmanaged[Cdecl] fn__isPlayerInCutscene; private delegate* unmanaged[Cdecl] fn__setEntityVisibleInCutscene; - private delegate* unmanaged[Cdecl] fn__setEntityLocallyInvisible; - private delegate* unmanaged[Cdecl] fn__setEntityLocallyVisible; + private delegate* unmanaged[Cdecl] fn__setEntityLocallyInvisible; + private delegate* unmanaged[Cdecl] fn__setEntityLocallyVisible; private delegate* unmanaged[Cdecl] fn__isDamageTrackerActiveOnNetworkId; private delegate* unmanaged[Cdecl] fn__activateDamageTrackerOnNetworkId; - private delegate* unmanaged[Cdecl] fn__isDamageTrackerActiveOnPlayer; - private delegate* unmanaged[Cdecl] fn__activateDamageTrackerOnPlayer; + private delegate* unmanaged[Cdecl] fn__isDamageTrackerActiveOnPlayer; + private delegate* unmanaged[Cdecl] fn__activateDamageTrackerOnPlayer; private delegate* unmanaged[Cdecl] fn__isSphereVisibleToAnotherMachine; private delegate* unmanaged[Cdecl] fn__isSphereVisibleToPlayer; private delegate* unmanaged[Cdecl] fn__reserveNetworkMissionObjects; @@ -30059,7 +30046,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getMaxNumNetworkPeds; private delegate* unmanaged[Cdecl] fn__getMaxNumNetworkVehicles; private delegate* unmanaged[Cdecl] fn__getMaxNumNetworkPickups; - private delegate* unmanaged[Cdecl] fn__networkSetObjectScopeDistance; + private delegate* unmanaged[Cdecl] fn__networkSetObjectScopeDistance; private delegate* unmanaged[Cdecl] fn__networkAllowCloningWhileInTutorial; private delegate* unmanaged[Cdecl] fn__networkSetTaskCutsceneInscopeMultipler; private delegate* unmanaged[Cdecl] fn__getNetworkTime; @@ -30074,44 +30061,44 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getCloudTimeAsString; private delegate* unmanaged[Cdecl] fn__getCloudTimeAsInt; private delegate* unmanaged[Cdecl] fn__convertPosixTime; - private delegate* unmanaged[Cdecl] fn__networkSetInSpectatorMode; - private delegate* unmanaged[Cdecl] fn__networkSetInSpectatorModeExtended; + private delegate* unmanaged[Cdecl] fn__networkSetInSpectatorMode; + private delegate* unmanaged[Cdecl] fn__networkSetInSpectatorModeExtended; private delegate* unmanaged[Cdecl] fn__networkSetInFreeCamMode; - private delegate* unmanaged[Cdecl] fn__networkSetAntagonisticToPlayer; + private delegate* unmanaged[Cdecl] fn__networkSetAntagonisticToPlayer; private delegate* unmanaged[Cdecl] fn__networkIsInSpectatorMode; private delegate* unmanaged[Cdecl] fn__networkSetInMpCutscene; private delegate* unmanaged[Cdecl] fn__networkIsInMpCutscene; - private delegate* unmanaged[Cdecl] fn__networkIsPlayerInMpCutscene; + private delegate* unmanaged[Cdecl] fn__networkIsPlayerInMpCutscene; private delegate* unmanaged[Cdecl] fn__networkHideProjectileInCutscene; private delegate* unmanaged[Cdecl] fn__setNetworkVehicleRespotTimer; - private delegate* unmanaged[Cdecl] fn__setNetworkVehicleAsGhost; - private delegate* unmanaged[Cdecl] fn__setNetworkVehicleMaxPositionDeltaMultiplier; - private delegate* unmanaged[Cdecl] fn__setNetworkEnableHighSpeedEdgeFallDetection; + private delegate* unmanaged[Cdecl] fn__setNetworkVehicleAsGhost; + private delegate* unmanaged[Cdecl] fn__setNetworkVehicleMaxPositionDeltaMultiplier; + private delegate* unmanaged[Cdecl] fn__setNetworkEnableHighSpeedEdgeFallDetection; private delegate* unmanaged[Cdecl] fn__setLocalPlayerAsGhost; - private delegate* unmanaged[Cdecl] fn__isEntityAGhost; + private delegate* unmanaged[Cdecl] fn__isEntityAGhost; private delegate* unmanaged[Cdecl] fn__setNonParticipantsOfThisScriptAsGhosts; - private delegate* unmanaged[Cdecl] fn__setRemotePlayerAsGhost; + private delegate* unmanaged[Cdecl] fn__setRemotePlayerAsGhost; private delegate* unmanaged[Cdecl] fn__setGhostAlpha; private delegate* unmanaged[Cdecl] fn__resetGhostAlpha; - private delegate* unmanaged[Cdecl] fn__setEntityGhostedForGhostPlayers; + private delegate* unmanaged[Cdecl] fn__setEntityGhostedForGhostPlayers; private delegate* unmanaged[Cdecl] fn__setInvertGhosting; - private delegate* unmanaged[Cdecl] fn__isEntityInGhostCollision; + private delegate* unmanaged[Cdecl] fn__isEntityInGhostCollision; private delegate* unmanaged[Cdecl] fn__usePlayerColourInsteadOfTeamColour; private delegate* unmanaged[Cdecl] fn__networkCreateSynchronisedScene; - private delegate* unmanaged[Cdecl] fn__networkAddPedToSynchronisedScene; + private delegate* unmanaged[Cdecl] fn__networkAddPedToSynchronisedScene; private delegate* unmanaged[Cdecl] fn__networkAddPedToSynchronisedSceneWithIk; - private delegate* unmanaged[Cdecl] fn__networkAddEntityToSynchronisedScene; + private delegate* unmanaged[Cdecl] fn__networkAddEntityToSynchronisedScene; private delegate* unmanaged[Cdecl] fn__networkAddMapEntityToSynchronisedScene; private delegate* unmanaged[Cdecl] fn__networkAddSynchronisedSceneCamera; - private delegate* unmanaged[Cdecl] fn__networkAttachSynchronisedSceneToEntity; + private delegate* unmanaged[Cdecl] fn__networkAttachSynchronisedSceneToEntity; private delegate* unmanaged[Cdecl] fn__networkStartSynchronisedScene; private delegate* unmanaged[Cdecl] fn__networkStopSynchronisedScene; private delegate* unmanaged[Cdecl] fn__networkGetLocalSceneFromNetworkId; private delegate* unmanaged[Cdecl] fn__networkForceLocalUseOfSyncedSceneCamera; private delegate* unmanaged[Cdecl] fn__networkAllowRemoteSyncedSceneLocalPlayerRequests; private delegate* unmanaged[Cdecl] fn__networkFindLargestBunchOfPlayers; - private delegate* unmanaged[Cdecl] fn__networkStartRespawnSearchForPlayer; - private delegate* unmanaged[Cdecl] fn__networkStartRespawnSearchInAngledAreaForPlayer; + private delegate* unmanaged[Cdecl] fn__networkStartRespawnSearchForPlayer; + private delegate* unmanaged[Cdecl] fn__networkStartRespawnSearchInAngledAreaForPlayer; private delegate* unmanaged[Cdecl] fn__networkQueryRespawnResults; private delegate* unmanaged[Cdecl] fn__networkCancelRespawnSearch; private delegate* unmanaged[Cdecl] fn__networkGetRespawnResult; @@ -30122,13 +30109,13 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkIsInTutorialSession; private delegate* unmanaged[Cdecl] fn__networkWaitingPopClearTutorialSession; private delegate* unmanaged[Cdecl] fn__networkIsTutorialSessionChangePending; - private delegate* unmanaged[Cdecl] fn__networkGetPlayerTutorialSessionInstance; - private delegate* unmanaged[Cdecl] fn__networkArePlayersInSameTutorialSession; + private delegate* unmanaged[Cdecl] fn__networkGetPlayerTutorialSessionInstance; + private delegate* unmanaged[Cdecl] fn__networkArePlayersInSameTutorialSession; private delegate* unmanaged[Cdecl] fn__networkBlockProxyMigrationBetweenTutorialSessions; - private delegate* unmanaged[Cdecl] fn__networkConcealPlayer; - private delegate* unmanaged[Cdecl] fn__networkIsPlayerConcealed; - private delegate* unmanaged[Cdecl] fn__networkConcealEntity; - private delegate* unmanaged[Cdecl] fn__networkIsEntityConcealed; + private delegate* unmanaged[Cdecl] fn__networkConcealPlayer; + private delegate* unmanaged[Cdecl] fn__networkIsPlayerConcealed; + private delegate* unmanaged[Cdecl] fn__networkConcealEntity; + private delegate* unmanaged[Cdecl] fn__networkIsEntityConcealed; private delegate* unmanaged[Cdecl] fn__networkOverrideClockTime; private delegate* unmanaged[Cdecl] fn__networkOverrideClockRate; private delegate* unmanaged[Cdecl] fn__networkClearClockTimeOverride; @@ -30167,14 +30154,14 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkResetBodyTracker; private delegate* unmanaged[Cdecl] fn__networkGetNumberBodyTrackerHits; private delegate* unmanaged[Cdecl] fn__networkHasBoneBeenHitByKiller; - private delegate* unmanaged[Cdecl] fn__networkSetAttributeDamageToPlayer; - private delegate* unmanaged[Cdecl] fn__networkTriggerDamageEventForZeroDamage; - private delegate* unmanaged[Cdecl] fn__networkTriggerDamageEventForZeroWeaponHash; - private delegate* unmanaged[Cdecl] fn__networkSetNoLongerNeeded; - private delegate* unmanaged[Cdecl] fn__networkExplodeVehicle; - private delegate* unmanaged[Cdecl] fn__networkExplodeHeli; - private delegate* unmanaged[Cdecl] fn__networkUseLogarithmicBlendingThisFrame; - private delegate* unmanaged[Cdecl] fn__networkOverrideCoordsAndHeading; + private delegate* unmanaged[Cdecl] fn__networkSetAttributeDamageToPlayer; + private delegate* unmanaged[Cdecl] fn__networkTriggerDamageEventForZeroDamage; + private delegate* unmanaged[Cdecl] fn__networkTriggerDamageEventForZeroWeaponHash; + private delegate* unmanaged[Cdecl] fn__networkSetNoLongerNeeded; + private delegate* unmanaged[Cdecl] fn__networkExplodeVehicle; + private delegate* unmanaged[Cdecl] fn__networkExplodeHeli; + private delegate* unmanaged[Cdecl] fn__networkUseLogarithmicBlendingThisFrame; + private delegate* unmanaged[Cdecl] fn__networkOverrideCoordsAndHeading; private delegate* unmanaged[Cdecl] fn__networkEnableExtraVehicleOrientationBlendChecks; private delegate* unmanaged[Cdecl] fn__networkDisableProximityMigration; private delegate* unmanaged[Cdecl] fn__networkSetPropertyId; @@ -30182,8 +30169,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkSetPlayerMentalState; private delegate* unmanaged[Cdecl] fn__networkSetMinimumRankForMission; private delegate* unmanaged[Cdecl] fn__networkCacheLocalPlayerHeadBlendData; - private delegate* unmanaged[Cdecl] fn__networkHasCachedPlayerHeadBlendData; - private delegate* unmanaged[Cdecl] fn__networkApplyCachedPlayerHeadBlendData; + private delegate* unmanaged[Cdecl] fn__networkHasCachedPlayerHeadBlendData; + private delegate* unmanaged[Cdecl] fn__networkApplyCachedPlayerHeadBlendData; private delegate* unmanaged[Cdecl] fn__getNumCommerceItems; private delegate* unmanaged[Cdecl] fn__isCommerceDataValid; private delegate* unmanaged[Cdecl] fn__triggerCommerceDataFetch; @@ -30331,39 +30318,39 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__networkSkipRadioWarning; private delegate* unmanaged[Cdecl] fn__networkForceLocalPlayerScarSync; private delegate* unmanaged[Cdecl] fn__networkDisableLeaveRemotePedBehind; - private delegate* unmanaged[Cdecl] fn__networkAllowRemoteAttachmentModification; - private delegate* unmanaged[Cdecl] fn__networkShowChatRestrictionMsc; + private delegate* unmanaged[Cdecl] fn__networkAllowRemoteAttachmentModification; + private delegate* unmanaged[Cdecl] fn__networkShowChatRestrictionMsc; private delegate* unmanaged[Cdecl] fn__networkShowPsnUgcRestriction; private delegate* unmanaged[Cdecl] fn__networkIsTitleUpdateRequired; private delegate* unmanaged[Cdecl] fn__networkQuitMpToDesktop; - private delegate* unmanaged[Cdecl] fn__networkIsConnectedViaRelay; - private delegate* unmanaged[Cdecl] fn__networkGetAverageLatency; - private delegate* unmanaged[Cdecl] fn__networkGetAveragePing; - private delegate* unmanaged[Cdecl] fn__networkGetAveragePacketLoss; - private delegate* unmanaged[Cdecl] fn__networkGetNumUnackedReliables; - private delegate* unmanaged[Cdecl] fn__networkGetUnreliableResendCount; - private delegate* unmanaged[Cdecl] fn__networkGetHighestReliableResendCount; + private delegate* unmanaged[Cdecl] fn__networkIsConnectedViaRelay; + private delegate* unmanaged[Cdecl] fn__networkGetAverageLatency; + private delegate* unmanaged[Cdecl] fn__networkGetAveragePing; + private delegate* unmanaged[Cdecl] fn__networkGetAveragePacketLoss; + private delegate* unmanaged[Cdecl] fn__networkGetNumUnackedReliables; + private delegate* unmanaged[Cdecl] fn__networkGetUnreliableResendCount; + private delegate* unmanaged[Cdecl] fn__networkGetHighestReliableResendCount; private delegate* unmanaged[Cdecl] fn__networkReportCodeTamper; - private delegate* unmanaged[Cdecl] fn__networkGetLastEntityPosReceivedOverNetwork; - private delegate* unmanaged[Cdecl] fn__networkGetLastPlayerPosReceivedOverNetwork; - private delegate* unmanaged[Cdecl] fn__networkGetLastVelReceivedOverNetwork; - private delegate* unmanaged[Cdecl] fn__networkGetPredictedVelocity; + private delegate* unmanaged[Cdecl] fn__networkGetLastEntityPosReceivedOverNetwork; + private delegate* unmanaged[Cdecl] fn__networkGetLastPlayerPosReceivedOverNetwork; + private delegate* unmanaged[Cdecl] fn__networkGetLastVelReceivedOverNetwork; + private delegate* unmanaged[Cdecl] fn__networkGetPredictedVelocity; private delegate* unmanaged[Cdecl] fn__networkDumpNetIfConfig; private delegate* unmanaged[Cdecl] fn__networkGetSignallingInfo; private delegate* unmanaged[Cdecl] fn__networkGetNetStatisticsInfo; - private delegate* unmanaged[Cdecl] fn__networkGetPlayerAccountId; + private delegate* unmanaged[Cdecl] fn__networkGetPlayerAccountId; private delegate* unmanaged[Cdecl] fn__networkUgcNav; - private delegate* unmanaged[Cdecl] fn__createObject; - private delegate* unmanaged[Cdecl] fn__createObjectNoOffset; - private delegate* unmanaged[Cdecl] fn__deleteObject; - private delegate* unmanaged[Cdecl] fn__placeObjectOnGroundProperly; - private delegate* unmanaged[Cdecl] fn__placeObjectOnGroundOrObjectProperly; - private delegate* unmanaged[Cdecl] fn__rotateObject; - private delegate* unmanaged[Cdecl] fn__slideObject; - private delegate* unmanaged[Cdecl] fn__setObjectTargettable; - private delegate* unmanaged[Cdecl] fn__setObjectForceVehiclesToAvoid; - private delegate* unmanaged[Cdecl] fn__getClosestObjectOfType; - private delegate* unmanaged[Cdecl] fn__hasObjectBeenBroken; + private delegate* unmanaged[Cdecl] fn__createObject; + private delegate* unmanaged[Cdecl] fn__createObjectNoOffset; + private delegate* unmanaged[Cdecl] fn__deleteObject; + private delegate* unmanaged[Cdecl] fn__placeObjectOnGroundProperly; + private delegate* unmanaged[Cdecl] fn__placeObjectOnGroundOrObjectProperly; + private delegate* unmanaged[Cdecl] fn__rotateObject; + private delegate* unmanaged[Cdecl] fn__slideObject; + private delegate* unmanaged[Cdecl] fn__setObjectTargettable; + private delegate* unmanaged[Cdecl] fn__setObjectForceVehiclesToAvoid; + private delegate* unmanaged[Cdecl] fn__getClosestObjectOfType; + private delegate* unmanaged[Cdecl] fn__hasObjectBeenBroken; private delegate* unmanaged[Cdecl] fn__hasClosestObjectOfTypeBeenBroken; private delegate* unmanaged[Cdecl] fn__hasClosestObjectOfTypeBeenCompletelyDestroyed; private delegate* unmanaged[Cdecl] fn__getHasObjectBeenCompletelyDestroyed; @@ -30393,12 +30380,12 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__doorSystemGetIsPhysicsLoaded; private delegate* unmanaged[Cdecl] fn__doorSystemFindExistingDoor; private delegate* unmanaged[Cdecl] fn__isGarageEmpty; - private delegate* unmanaged[Cdecl] fn__isPlayerEntirelyInsideGarage; - private delegate* unmanaged[Cdecl] fn__isPlayerPartiallyInsideGarage; + private delegate* unmanaged[Cdecl] fn__isPlayerEntirelyInsideGarage; + private delegate* unmanaged[Cdecl] fn__isPlayerPartiallyInsideGarage; private delegate* unmanaged[Cdecl] fn__areEntitiesEntirelyInsideGarage; private delegate* unmanaged[Cdecl] fn__isAnyEntityEntirelyInsideGarage; - private delegate* unmanaged[Cdecl] fn__isObjectEntirelyInsideGarage; - private delegate* unmanaged[Cdecl] fn__isObjectPartiallyInsideGarage; + private delegate* unmanaged[Cdecl] fn__isObjectEntirelyInsideGarage; + private delegate* unmanaged[Cdecl] fn__isObjectPartiallyInsideGarage; private delegate* unmanaged[Cdecl] fn__clearGarage; private delegate* unmanaged[Cdecl] fn__clearObjectsInsideGarage; private delegate* unmanaged[Cdecl] fn__disableTidyingUpInGarage; @@ -30406,40 +30393,40 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__closeSafehouseGarages; private delegate* unmanaged[Cdecl] fn__doesObjectOfTypeExistAtCoords; private delegate* unmanaged[Cdecl] fn__isPointInAngledArea; - private delegate* unmanaged[Cdecl] fn__setObjectAllowLowLodBuoyancy; - private delegate* unmanaged[Cdecl] fn__setObjectPhysicsParams; + private delegate* unmanaged[Cdecl] fn__setObjectAllowLowLodBuoyancy; + private delegate* unmanaged[Cdecl] fn__setObjectPhysicsParams; private delegate* unmanaged[Cdecl] fn__getObjectFragmentDamageHealth; - private delegate* unmanaged[Cdecl] fn__setActivateObjectPhysicsAsSoonAsItIsUnfrozen; + private delegate* unmanaged[Cdecl] fn__setActivateObjectPhysicsAsSoonAsItIsUnfrozen; private delegate* unmanaged[Cdecl] fn__isAnyObjectNearPoint; private delegate* unmanaged[Cdecl] fn__isObjectNearPoint; - private delegate* unmanaged[Cdecl] fn__removeObjectHighDetailModel; - private delegate* unmanaged[Cdecl] fn__breakObjectFragmentChild; + private delegate* unmanaged[Cdecl] fn__removeObjectHighDetailModel; + private delegate* unmanaged[Cdecl] fn__breakObjectFragmentChild; private delegate* unmanaged[Cdecl] fn__damageObjectFragmentChild; - private delegate* unmanaged[Cdecl] fn__fixObjectFragment; - private delegate* unmanaged[Cdecl] fn__trackObjectVisibility; - private delegate* unmanaged[Cdecl] fn__isObjectVisible; - private delegate* unmanaged[Cdecl] fn__setObjectIsSpecialGolfball; + private delegate* unmanaged[Cdecl] fn__fixObjectFragment; + private delegate* unmanaged[Cdecl] fn__trackObjectVisibility; + private delegate* unmanaged[Cdecl] fn__isObjectVisible; + private delegate* unmanaged[Cdecl] fn__setObjectIsSpecialGolfball; private delegate* unmanaged[Cdecl] fn__setObjectTakesDamageFromCollidingWithBuildings; private delegate* unmanaged[Cdecl] fn__allowDamageEventsForNonNetworkedObjects; - private delegate* unmanaged[Cdecl] fn__setCutscenesWeaponFlashlightOnThisFrame; - private delegate* unmanaged[Cdecl] fn__getRayfireMapObject; - private delegate* unmanaged[Cdecl] fn__setStateOfRayfireMapObject; - private delegate* unmanaged[Cdecl] fn__getStateOfRayfireMapObject; - private delegate* unmanaged[Cdecl] fn__doesRayfireMapObjectExist; - private delegate* unmanaged[Cdecl] fn__getRayfireMapObjectAnimPhase; + private delegate* unmanaged[Cdecl] fn__setCutscenesWeaponFlashlightOnThisFrame; + private delegate* unmanaged[Cdecl] fn__getRayfireMapObject; + private delegate* unmanaged[Cdecl] fn__setStateOfRayfireMapObject; + private delegate* unmanaged[Cdecl] fn__getStateOfRayfireMapObject; + private delegate* unmanaged[Cdecl] fn__doesRayfireMapObjectExist; + private delegate* unmanaged[Cdecl] fn__getRayfireMapObjectAnimPhase; private delegate* unmanaged[Cdecl] fn__createPickup; private delegate* unmanaged[Cdecl] fn__createPickupRotate; private delegate* unmanaged[Cdecl] fn__forcePickupRotateFaceUp; private delegate* unmanaged[Cdecl] fn__setCustomPickupWeaponHash; - private delegate* unmanaged[Cdecl] fn__createAmbientPickup; - private delegate* unmanaged[Cdecl] fn__createNonNetworkedAmbientPickup; + private delegate* unmanaged[Cdecl] fn__createAmbientPickup; + private delegate* unmanaged[Cdecl] fn__createNonNetworkedAmbientPickup; private delegate* unmanaged[Cdecl] fn__blockPlayersForAmbientPickup; - private delegate* unmanaged[Cdecl] fn__createPortablePickup; - private delegate* unmanaged[Cdecl] fn__createNonNetworkedPortablePickup; - private delegate* unmanaged[Cdecl] fn__attachPortablePickupToPed; - private delegate* unmanaged[Cdecl] fn__detachPortablePickupFromPed; - private delegate* unmanaged[Cdecl] fn__forcePortablePickupLastAccessiblePositionSetting; - private delegate* unmanaged[Cdecl] fn__hidePortablePickupWhenDetached; + private delegate* unmanaged[Cdecl] fn__createPortablePickup; + private delegate* unmanaged[Cdecl] fn__createNonNetworkedPortablePickup; + private delegate* unmanaged[Cdecl] fn__attachPortablePickupToPed; + private delegate* unmanaged[Cdecl] fn__detachPortablePickupFromPed; + private delegate* unmanaged[Cdecl] fn__forcePortablePickupLastAccessiblePositionSetting; + private delegate* unmanaged[Cdecl] fn__hidePortablePickupWhenDetached; private delegate* unmanaged[Cdecl] fn__setMaxNumPortablePickupsCarriedByPlayer; private delegate* unmanaged[Cdecl] fn__setLocalPlayerCanCollectPortablePickups; private delegate* unmanaged[Cdecl] fn__getSafePickupCoords; @@ -30452,18 +30439,18 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__removePickup; private delegate* unmanaged[Cdecl] fn__createMoneyPickups; private delegate* unmanaged[Cdecl] fn__doesPickupExist; - private delegate* unmanaged[Cdecl] fn__doesPickupObjectExist; - private delegate* unmanaged[Cdecl] fn__getPickupObject; - private delegate* unmanaged[Cdecl] fn__isObjectAPickup; - private delegate* unmanaged[Cdecl] fn__isObjectAPortablePickup; + private delegate* unmanaged[Cdecl] fn__doesPickupObjectExist; + private delegate* unmanaged[Cdecl] fn__getPickupObject; + private delegate* unmanaged[Cdecl] fn__isObjectAPickup; + private delegate* unmanaged[Cdecl] fn__isObjectAPortablePickup; private delegate* unmanaged[Cdecl] fn__doesPickupOfTypeExistInArea; private delegate* unmanaged[Cdecl] fn__setPickupRegenerationTime; private delegate* unmanaged[Cdecl] fn__forcePickupRegenerate; - private delegate* unmanaged[Cdecl] fn__setPlayerPermittedToCollectPickupsOfType; + private delegate* unmanaged[Cdecl] fn__setPlayerPermittedToCollectPickupsOfType; private delegate* unmanaged[Cdecl] fn__setLocalPlayerPermittedToCollectPickupsWithModel; private delegate* unmanaged[Cdecl] fn__allowAllPlayersToCollectPickupsOfType; - private delegate* unmanaged[Cdecl] fn__setTeamPickupObject; - private delegate* unmanaged[Cdecl] fn__preventCollectionOfPortablePickup; + private delegate* unmanaged[Cdecl] fn__setTeamPickupObject; + private delegate* unmanaged[Cdecl] fn__preventCollectionOfPortablePickup; private delegate* unmanaged[Cdecl] fn__setPickupObjectGlowWhenUncollectable; private delegate* unmanaged[Cdecl] fn__setPickupGlowOffset; private delegate* unmanaged[Cdecl] fn__setPickupObjectGlowOffset; @@ -30489,32 +30476,32 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__renderFakePickupGlow; private delegate* unmanaged[Cdecl] fn__setPickupObjectCollectableInVehicle; private delegate* unmanaged[Cdecl] fn__setPickupTrackDamageEvents; - private delegate* unmanaged[Cdecl] fn__setEntityFlagSuppressShadow; - private delegate* unmanaged[Cdecl] fn__setEntityFlagRenderSmallShadow; + private delegate* unmanaged[Cdecl] fn__setEntityFlagSuppressShadow; + private delegate* unmanaged[Cdecl] fn__setEntityFlagRenderSmallShadow; private delegate* unmanaged[Cdecl] fn__getWeaponTypeFromPickupType; private delegate* unmanaged[Cdecl] fn__getPickupTypeFromWeaponHash; - private delegate* unmanaged[Cdecl] fn__isPickupWeaponObjectValid; - private delegate* unmanaged[Cdecl] fn__getObjectTintIndex; - private delegate* unmanaged[Cdecl] fn__setObjectTintIndex; + private delegate* unmanaged[Cdecl] fn__isPickupWeaponObjectValid; + private delegate* unmanaged[Cdecl] fn__getObjectTintIndex; + private delegate* unmanaged[Cdecl] fn__setObjectTintIndex; private delegate* unmanaged[Cdecl] fn__setTintIndexClosestBuildingOfType; - private delegate* unmanaged[Cdecl] fn__setPropLightColor; - private delegate* unmanaged[Cdecl] fn__isPropLightOverriden; - private delegate* unmanaged[Cdecl] fn__setObjectIsVisibleInMirrors; - private delegate* unmanaged[Cdecl] fn__setObjectSpeedBoostAmount; - private delegate* unmanaged[Cdecl] fn__setObjectSpeedBoostDuration; + private delegate* unmanaged[Cdecl] fn__setPropLightColor; + private delegate* unmanaged[Cdecl] fn__isPropLightOverriden; + private delegate* unmanaged[Cdecl] fn__setObjectIsVisibleInMirrors; + private delegate* unmanaged[Cdecl] fn__setObjectSpeedBoostAmount; + private delegate* unmanaged[Cdecl] fn__setObjectSpeedBoostDuration; private delegate* unmanaged[Cdecl] fn__convertOldPickupTypeToNew; private delegate* unmanaged[Cdecl] fn__setForceObjectThisFrame; - private delegate* unmanaged[Cdecl] fn__onlyCleanUpObjectWhenOutOfRange; + private delegate* unmanaged[Cdecl] fn__onlyCleanUpObjectWhenOutOfRange; private delegate* unmanaged[Cdecl] fn__setDisableCollisionsBetweenCarsAndCarParachute; - private delegate* unmanaged[Cdecl] fn__setProjectilesShouldExplodeOnContact; - private delegate* unmanaged[Cdecl] fn__setDriveArticulatedJoint; - private delegate* unmanaged[Cdecl] fn__setDriveArticulatedJointWithInflictor; - private delegate* unmanaged[Cdecl] fn__setObjectIsAPressurePlate; - private delegate* unmanaged[Cdecl] fn__setWeaponImpactsApplyGreaterForce; - private delegate* unmanaged[Cdecl] fn__getIsArticulatedJointAtMinAngle; + private delegate* unmanaged[Cdecl] fn__setProjectilesShouldExplodeOnContact; + private delegate* unmanaged[Cdecl] fn__setDriveArticulatedJoint; + private delegate* unmanaged[Cdecl] fn__setDriveArticulatedJointWithInflictor; + private delegate* unmanaged[Cdecl] fn__setObjectIsAPressurePlate; + private delegate* unmanaged[Cdecl] fn__setWeaponImpactsApplyGreaterForce; + private delegate* unmanaged[Cdecl] fn__getIsArticulatedJointAtMinAngle; private delegate* unmanaged[Cdecl] fn__getIsArticulatedJointAtMaxAngle; - private delegate* unmanaged[Cdecl] fn__setIsObjectArticulated; - private delegate* unmanaged[Cdecl] fn__setIsObjectBall; + private delegate* unmanaged[Cdecl] fn__setIsObjectArticulated; + private delegate* unmanaged[Cdecl] fn__setIsObjectBall; private delegate* unmanaged[Cdecl] fn__isControlEnabled; private delegate* unmanaged[Cdecl] fn__isControlPressed; private delegate* unmanaged[Cdecl] fn__isControlReleased; @@ -30601,7 +30588,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getGpsBlipRouteFound; private delegate* unmanaged[Cdecl] fn__getRoadBoundaryUsingHeading; private delegate* unmanaged[Cdecl] fn__getPositionBySideOfRoad; - private delegate* unmanaged[Cdecl] fn__isPointOnRoad; + private delegate* unmanaged[Cdecl] fn__isPointOnRoad; private delegate* unmanaged[Cdecl] fn__getNextGpsDisabledZoneIndex; private delegate* unmanaged[Cdecl] fn__setGpsDisabledZoneAtIndex; private delegate* unmanaged[Cdecl] fn__clearGpsDisabledZoneAtIndex; @@ -30621,55 +30608,55 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getApproxFloorForPoint; private delegate* unmanaged[Cdecl] fn__getApproxFloorForArea; private delegate* unmanaged[Cdecl] fn__calculateTravelDistanceBetweenPoints; - private delegate* unmanaged[Cdecl] fn__createPed; - private delegate* unmanaged[Cdecl] fn__deletePed; - private delegate* unmanaged[Cdecl] fn__clonePed; - private delegate* unmanaged[Cdecl] fn__clonePedAlt; - private delegate* unmanaged[Cdecl] fn__clonePedToTarget; - private delegate* unmanaged[Cdecl] fn__clonePedToTargetAlt; - private delegate* unmanaged[Cdecl] fn__isPedInVehicle; - private delegate* unmanaged[Cdecl] fn__isPedInModel; - private delegate* unmanaged[Cdecl] fn__isPedInAnyVehicle; + private delegate* unmanaged[Cdecl] fn__createPed; + private delegate* unmanaged[Cdecl] fn__deletePed; + private delegate* unmanaged[Cdecl] fn__clonePed; + private delegate* unmanaged[Cdecl] fn__clonePedAlt; + private delegate* unmanaged[Cdecl] fn__clonePedToTarget; + private delegate* unmanaged[Cdecl] fn__clonePedToTargetAlt; + private delegate* unmanaged[Cdecl] fn__isPedInVehicle; + private delegate* unmanaged[Cdecl] fn__isPedInModel; + private delegate* unmanaged[Cdecl] fn__isPedInAnyVehicle; private delegate* unmanaged[Cdecl] fn__isCopPedInArea3d; - private delegate* unmanaged[Cdecl] fn__isPedInjured; - private delegate* unmanaged[Cdecl] fn__isPedHurt; - private delegate* unmanaged[Cdecl] fn__isPedFatallyInjured; - private delegate* unmanaged[Cdecl] fn__isPedDeadOrDying; - private delegate* unmanaged[Cdecl] fn__isConversationPedDead; - private delegate* unmanaged[Cdecl] fn__isPedAimingFromCover; - private delegate* unmanaged[Cdecl] fn__isPedReloading; - private delegate* unmanaged[Cdecl] fn__isPedAPlayer; - private delegate* unmanaged[Cdecl] fn__createPedInsideVehicle; - private delegate* unmanaged[Cdecl] fn__setPedDesiredHeading; - private delegate* unmanaged[Cdecl] fn__forceAllHeadingValuesToAlign; - private delegate* unmanaged[Cdecl] fn__isPedFacingPed; - private delegate* unmanaged[Cdecl] fn__isPedInMeleeCombat; - private delegate* unmanaged[Cdecl] fn__isPedStopped; - private delegate* unmanaged[Cdecl] fn__isPedShootingInArea; + private delegate* unmanaged[Cdecl] fn__isPedInjured; + private delegate* unmanaged[Cdecl] fn__isPedHurt; + private delegate* unmanaged[Cdecl] fn__isPedFatallyInjured; + private delegate* unmanaged[Cdecl] fn__isPedDeadOrDying; + private delegate* unmanaged[Cdecl] fn__isConversationPedDead; + private delegate* unmanaged[Cdecl] fn__isPedAimingFromCover; + private delegate* unmanaged[Cdecl] fn__isPedReloading; + private delegate* unmanaged[Cdecl] fn__isPedAPlayer; + private delegate* unmanaged[Cdecl] fn__createPedInsideVehicle; + private delegate* unmanaged[Cdecl] fn__setPedDesiredHeading; + private delegate* unmanaged[Cdecl] fn__forceAllHeadingValuesToAlign; + private delegate* unmanaged[Cdecl] fn__isPedFacingPed; + private delegate* unmanaged[Cdecl] fn__isPedInMeleeCombat; + private delegate* unmanaged[Cdecl] fn__isPedStopped; + private delegate* unmanaged[Cdecl] fn__isPedShootingInArea; private delegate* unmanaged[Cdecl] fn__isAnyPedShootingInArea; - private delegate* unmanaged[Cdecl] fn__isPedShooting; - private delegate* unmanaged[Cdecl] fn__setPedAccuracy; - private delegate* unmanaged[Cdecl] fn__getPedAccuracy; + private delegate* unmanaged[Cdecl] fn__isPedShooting; + private delegate* unmanaged[Cdecl] fn__setPedAccuracy; + private delegate* unmanaged[Cdecl] fn__getPedAccuracy; private delegate* unmanaged[Cdecl] fn__setAmbientLawPedAccuracyModifier; - private delegate* unmanaged[Cdecl] fn__isPedModel; - private delegate* unmanaged[Cdecl] fn__explodePedHead; - private delegate* unmanaged[Cdecl] fn__removePedElegantly; - private delegate* unmanaged[Cdecl] fn__addArmourToPed; - private delegate* unmanaged[Cdecl] fn__setPedArmour; - private delegate* unmanaged[Cdecl] fn__setPedIntoVehicle; - private delegate* unmanaged[Cdecl] fn__setPedAllowVehiclesOverride; + private delegate* unmanaged[Cdecl] fn__isPedModel; + private delegate* unmanaged[Cdecl] fn__explodePedHead; + private delegate* unmanaged[Cdecl] fn__removePedElegantly; + private delegate* unmanaged[Cdecl] fn__addArmourToPed; + private delegate* unmanaged[Cdecl] fn__setPedArmour; + private delegate* unmanaged[Cdecl] fn__setPedIntoVehicle; + private delegate* unmanaged[Cdecl] fn__setPedAllowVehiclesOverride; private delegate* unmanaged[Cdecl] fn__canCreateRandomPed; - private delegate* unmanaged[Cdecl] fn__createRandomPed; - private delegate* unmanaged[Cdecl] fn__createRandomPedAsDriver; + private delegate* unmanaged[Cdecl] fn__createRandomPed; + private delegate* unmanaged[Cdecl] fn__createRandomPedAsDriver; private delegate* unmanaged[Cdecl] fn__canCreateRandomDriver; private delegate* unmanaged[Cdecl] fn__canCreateRandomBikeRider; - private delegate* unmanaged[Cdecl] fn__setPedMoveAnimsBlendOut; - private delegate* unmanaged[Cdecl] fn__setPedCanBeDraggedOut; + private delegate* unmanaged[Cdecl] fn__setPedMoveAnimsBlendOut; + private delegate* unmanaged[Cdecl] fn__setPedCanBeDraggedOut; private delegate* unmanaged[Cdecl] fn__setPedAllowHurtCombatForAllMissionPeds; - private delegate* unmanaged[Cdecl] fn__isPedMale; - private delegate* unmanaged[Cdecl] fn__isPedHuman; - private delegate* unmanaged[Cdecl] fn__getVehiclePedIsIn; - private delegate* unmanaged[Cdecl] fn__resetPedLastVehicle; + private delegate* unmanaged[Cdecl] fn__isPedMale; + private delegate* unmanaged[Cdecl] fn__isPedHuman; + private delegate* unmanaged[Cdecl] fn__getVehiclePedIsIn; + private delegate* unmanaged[Cdecl] fn__resetPedLastVehicle; private delegate* unmanaged[Cdecl] fn__setPedDensityMultiplierThisFrame; private delegate* unmanaged[Cdecl] fn__setScenarioPedDensityMultiplierThisFrame; private delegate* unmanaged[Cdecl] fn__suppressAmbientPedAggressiveCleanupThisFrame; @@ -30677,238 +30664,238 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setPedNonCreationArea; private delegate* unmanaged[Cdecl] fn__clearPedNonCreationArea; private delegate* unmanaged[Cdecl] fn__instantlyFillPedPopulation; - private delegate* unmanaged[Cdecl] fn__isPedOnMount; - private delegate* unmanaged[Cdecl] fn__getMount; - private delegate* unmanaged[Cdecl] fn__isPedOnVehicle; - private delegate* unmanaged[Cdecl] fn__isPedOnSpecificVehicle; - private delegate* unmanaged[Cdecl] fn__setPedMoney; - private delegate* unmanaged[Cdecl] fn__getPedMoney; + private delegate* unmanaged[Cdecl] fn__isPedOnMount; + private delegate* unmanaged[Cdecl] fn__getMount; + private delegate* unmanaged[Cdecl] fn__isPedOnVehicle; + private delegate* unmanaged[Cdecl] fn__isPedOnSpecificVehicle; + private delegate* unmanaged[Cdecl] fn__setPedMoney; + private delegate* unmanaged[Cdecl] fn__getPedMoney; private delegate* unmanaged[Cdecl] fn__setHealthSnacksCarriedByAllNewPeds; private delegate* unmanaged[Cdecl] fn__setAmbientPedsDropMoney; private delegate* unmanaged[Cdecl] fn__setBlockingOfNonTemporaryEventsForAmbientPedsThisFrame; - private delegate* unmanaged[Cdecl] fn__setPedSuffersCriticalHits; - private delegate* unmanaged[Cdecl] fn__setPedUpperBodyDamageOnly; - private delegate* unmanaged[Cdecl] fn__isPedSittingInVehicle; - private delegate* unmanaged[Cdecl] fn__isPedSittingInAnyVehicle; - private delegate* unmanaged[Cdecl] fn__isPedOnFoot; - private delegate* unmanaged[Cdecl] fn__isPedOnAnyBike; - private delegate* unmanaged[Cdecl] fn__isPedPlantingBomb; - private delegate* unmanaged[Cdecl] fn__getDeadPedPickupCoords; - private delegate* unmanaged[Cdecl] fn__isPedInAnyBoat; - private delegate* unmanaged[Cdecl] fn__isPedInAnySub; - private delegate* unmanaged[Cdecl] fn__isPedInAnyHeli; - private delegate* unmanaged[Cdecl] fn__isPedInAnyPlane; - private delegate* unmanaged[Cdecl] fn__isPedInFlyingVehicle; - private delegate* unmanaged[Cdecl] fn__setPedDiesInWater; - private delegate* unmanaged[Cdecl] fn__getPedDiesInWater; - private delegate* unmanaged[Cdecl] fn__setPedDiesInSinkingVehicle; - private delegate* unmanaged[Cdecl] fn__getPedArmour; - private delegate* unmanaged[Cdecl] fn__setPedStayInVehicleWhenJacked; - private delegate* unmanaged[Cdecl] fn__setPedCanBeShotInVehicle; - private delegate* unmanaged[Cdecl] fn__getPedLastDamageBone; - private delegate* unmanaged[Cdecl] fn__clearPedLastDamageBone; + private delegate* unmanaged[Cdecl] fn__setPedSuffersCriticalHits; + private delegate* unmanaged[Cdecl] fn__setPedUpperBodyDamageOnly; + private delegate* unmanaged[Cdecl] fn__isPedSittingInVehicle; + private delegate* unmanaged[Cdecl] fn__isPedSittingInAnyVehicle; + private delegate* unmanaged[Cdecl] fn__isPedOnFoot; + private delegate* unmanaged[Cdecl] fn__isPedOnAnyBike; + private delegate* unmanaged[Cdecl] fn__isPedPlantingBomb; + private delegate* unmanaged[Cdecl] fn__getDeadPedPickupCoords; + private delegate* unmanaged[Cdecl] fn__isPedInAnyBoat; + private delegate* unmanaged[Cdecl] fn__isPedInAnySub; + private delegate* unmanaged[Cdecl] fn__isPedInAnyHeli; + private delegate* unmanaged[Cdecl] fn__isPedInAnyPlane; + private delegate* unmanaged[Cdecl] fn__isPedInFlyingVehicle; + private delegate* unmanaged[Cdecl] fn__setPedDiesInWater; + private delegate* unmanaged[Cdecl] fn__getPedDiesInWater; + private delegate* unmanaged[Cdecl] fn__setPedDiesInSinkingVehicle; + private delegate* unmanaged[Cdecl] fn__getPedArmour; + private delegate* unmanaged[Cdecl] fn__setPedStayInVehicleWhenJacked; + private delegate* unmanaged[Cdecl] fn__setPedCanBeShotInVehicle; + private delegate* unmanaged[Cdecl] fn__getPedLastDamageBone; + private delegate* unmanaged[Cdecl] fn__clearPedLastDamageBone; private delegate* unmanaged[Cdecl] fn__setAiWeaponDamageModifier; private delegate* unmanaged[Cdecl] fn__resetAiWeaponDamageModifier; private delegate* unmanaged[Cdecl] fn__setAiMeleeWeaponDamageModifier; private delegate* unmanaged[Cdecl] fn__resetAiMeleeWeaponDamageModifier; - private delegate* unmanaged[Cdecl] fn__setTreatAsAmbientPedForDriverLockon; - private delegate* unmanaged[Cdecl] fn__setPedCanBeTargetted; - private delegate* unmanaged[Cdecl] fn__setPedCanBeTargettedByTeam; - private delegate* unmanaged[Cdecl] fn__setPedCanBeTargettedByPlayer; - private delegate* unmanaged[Cdecl] fn__setAllowLockonToPedIfFriendly; - private delegate* unmanaged[Cdecl] fn__setUseCameraHeadingForDesiredDirectionLockOnTest; - private delegate* unmanaged[Cdecl] fn__isPedInAnyPoliceVehicle; - private delegate* unmanaged[Cdecl] fn__forcePedToOpenParachute; - private delegate* unmanaged[Cdecl] fn__isPedInParachuteFreeFall; - private delegate* unmanaged[Cdecl] fn__isPedFalling; - private delegate* unmanaged[Cdecl] fn__isPedJumping; + private delegate* unmanaged[Cdecl] fn__setTreatAsAmbientPedForDriverLockon; + private delegate* unmanaged[Cdecl] fn__setPedCanBeTargetted; + private delegate* unmanaged[Cdecl] fn__setPedCanBeTargettedByTeam; + private delegate* unmanaged[Cdecl] fn__setPedCanBeTargettedByPlayer; + private delegate* unmanaged[Cdecl] fn__setAllowLockonToPedIfFriendly; + private delegate* unmanaged[Cdecl] fn__setUseCameraHeadingForDesiredDirectionLockOnTest; + private delegate* unmanaged[Cdecl] fn__isPedInAnyPoliceVehicle; + private delegate* unmanaged[Cdecl] fn__forcePedToOpenParachute; + private delegate* unmanaged[Cdecl] fn__isPedInParachuteFreeFall; + private delegate* unmanaged[Cdecl] fn__isPedFalling; + private delegate* unmanaged[Cdecl] fn__isPedJumping; private delegate* unmanaged[Cdecl] fn__isPedLanding; private delegate* unmanaged[Cdecl] fn__isPedDoingABeastJump; - private delegate* unmanaged[Cdecl] fn__isPedClimbing; - private delegate* unmanaged[Cdecl] fn__isPedVaulting; - private delegate* unmanaged[Cdecl] fn__isPedDiving; - private delegate* unmanaged[Cdecl] fn__isPedJumpingOutOfVehicle; - private delegate* unmanaged[Cdecl] fn__isPedOpeningDoor; - private delegate* unmanaged[Cdecl] fn__getPedParachuteState; - private delegate* unmanaged[Cdecl] fn__getPedParachuteLandingType; - private delegate* unmanaged[Cdecl] fn__setPedParachuteTintIndex; - private delegate* unmanaged[Cdecl] fn__getPedParachuteTintIndex; - private delegate* unmanaged[Cdecl] fn__setPedReserveParachuteTintIndex; - private delegate* unmanaged[Cdecl] fn__createParachuteBagObject; - private delegate* unmanaged[Cdecl] fn__setPedDucking; - private delegate* unmanaged[Cdecl] fn__isPedDucking; - private delegate* unmanaged[Cdecl] fn__isPedInAnyTaxi; - private delegate* unmanaged[Cdecl] fn__setPedIdRange; - private delegate* unmanaged[Cdecl] fn__setPedHighlyPerceptive; + private delegate* unmanaged[Cdecl] fn__isPedClimbing; + private delegate* unmanaged[Cdecl] fn__isPedVaulting; + private delegate* unmanaged[Cdecl] fn__isPedDiving; + private delegate* unmanaged[Cdecl] fn__isPedJumpingOutOfVehicle; + private delegate* unmanaged[Cdecl] fn__isPedOpeningDoor; + private delegate* unmanaged[Cdecl] fn__getPedParachuteState; + private delegate* unmanaged[Cdecl] fn__getPedParachuteLandingType; + private delegate* unmanaged[Cdecl] fn__setPedParachuteTintIndex; + private delegate* unmanaged[Cdecl] fn__getPedParachuteTintIndex; + private delegate* unmanaged[Cdecl] fn__setPedReserveParachuteTintIndex; + private delegate* unmanaged[Cdecl] fn__createParachuteBagObject; + private delegate* unmanaged[Cdecl] fn__setPedDucking; + private delegate* unmanaged[Cdecl] fn__isPedDucking; + private delegate* unmanaged[Cdecl] fn__isPedInAnyTaxi; + private delegate* unmanaged[Cdecl] fn__setPedIdRange; + private delegate* unmanaged[Cdecl] fn__setPedHighlyPerceptive; private delegate* unmanaged[Cdecl] fn__setCopPerceptionOverrides; - private delegate* unmanaged[Cdecl] fn__setPedInjuredOnGroundBehaviour; - private delegate* unmanaged[Cdecl] fn__disablePedInjuredOnGroundBehaviour; - private delegate* unmanaged[Cdecl] fn__setPedSeeingRange; - private delegate* unmanaged[Cdecl] fn__setPedHearingRange; - private delegate* unmanaged[Cdecl] fn__setPedVisualFieldMinAngle; - private delegate* unmanaged[Cdecl] fn__setPedVisualFieldMaxAngle; - private delegate* unmanaged[Cdecl] fn__setPedVisualFieldMinElevationAngle; - private delegate* unmanaged[Cdecl] fn__setPedVisualFieldMaxElevationAngle; - private delegate* unmanaged[Cdecl] fn__setPedVisualFieldPeripheralRange; - private delegate* unmanaged[Cdecl] fn__setPedVisualFieldCenterAngle; - private delegate* unmanaged[Cdecl] fn__getPedVisualFieldCenterAngle; - private delegate* unmanaged[Cdecl] fn__setPedStealthMovement; - private delegate* unmanaged[Cdecl] fn__getPedStealthMovement; + private delegate* unmanaged[Cdecl] fn__setPedInjuredOnGroundBehaviour; + private delegate* unmanaged[Cdecl] fn__disablePedInjuredOnGroundBehaviour; + private delegate* unmanaged[Cdecl] fn__setPedSeeingRange; + private delegate* unmanaged[Cdecl] fn__setPedHearingRange; + private delegate* unmanaged[Cdecl] fn__setPedVisualFieldMinAngle; + private delegate* unmanaged[Cdecl] fn__setPedVisualFieldMaxAngle; + private delegate* unmanaged[Cdecl] fn__setPedVisualFieldMinElevationAngle; + private delegate* unmanaged[Cdecl] fn__setPedVisualFieldMaxElevationAngle; + private delegate* unmanaged[Cdecl] fn__setPedVisualFieldPeripheralRange; + private delegate* unmanaged[Cdecl] fn__setPedVisualFieldCenterAngle; + private delegate* unmanaged[Cdecl] fn__getPedVisualFieldCenterAngle; + private delegate* unmanaged[Cdecl] fn__setPedStealthMovement; + private delegate* unmanaged[Cdecl] fn__getPedStealthMovement; private delegate* unmanaged[Cdecl] fn__createGroup; - private delegate* unmanaged[Cdecl] fn__setPedAsGroupLeader; - private delegate* unmanaged[Cdecl] fn__setPedAsGroupMember; - private delegate* unmanaged[Cdecl] fn__setPedCanTeleportToGroupLeader; + private delegate* unmanaged[Cdecl] fn__setPedAsGroupLeader; + private delegate* unmanaged[Cdecl] fn__setPedAsGroupMember; + private delegate* unmanaged[Cdecl] fn__setPedCanTeleportToGroupLeader; private delegate* unmanaged[Cdecl] fn__removeGroup; - private delegate* unmanaged[Cdecl] fn__removePedFromGroup; - private delegate* unmanaged[Cdecl] fn__isPedGroupMember; - private delegate* unmanaged[Cdecl] fn__isPedHangingOnToVehicle; + private delegate* unmanaged[Cdecl] fn__removePedFromGroup; + private delegate* unmanaged[Cdecl] fn__isPedGroupMember; + private delegate* unmanaged[Cdecl] fn__isPedHangingOnToVehicle; private delegate* unmanaged[Cdecl] fn__setGroupSeparationRange; - private delegate* unmanaged[Cdecl] fn__setPedMinGroundTimeForStungun; - private delegate* unmanaged[Cdecl] fn__isPedProne; - private delegate* unmanaged[Cdecl] fn__isPedInCombat; - private delegate* unmanaged[Cdecl] fn__getPedTargetFromCombatPed; - private delegate* unmanaged[Cdecl] fn__canPedInCombatSeeTarget; - private delegate* unmanaged[Cdecl] fn__isPedDoingDriveby; - private delegate* unmanaged[Cdecl] fn__isPedJacking; - private delegate* unmanaged[Cdecl] fn__isPedBeingJacked; - private delegate* unmanaged[Cdecl] fn__isPedBeingStunned; - private delegate* unmanaged[Cdecl] fn__getPedsJacker; - private delegate* unmanaged[Cdecl] fn__getJackTarget; - private delegate* unmanaged[Cdecl] fn__isPedFleeing; - private delegate* unmanaged[Cdecl] fn__isPedInCover; - private delegate* unmanaged[Cdecl] fn__isPedInCoverFacingLeft; - private delegate* unmanaged[Cdecl] fn__isPedInHighCover; - private delegate* unmanaged[Cdecl] fn__isPedGoingIntoCover; - private delegate* unmanaged[Cdecl] fn__setPedPinnedDown; - private delegate* unmanaged[Cdecl] fn__getSeatPedIsTryingToEnter; - private delegate* unmanaged[Cdecl] fn__getVehiclePedIsTryingToEnter; - private delegate* unmanaged[Cdecl] fn__getPedSourceOfDeath; - private delegate* unmanaged[Cdecl] fn__getPedCauseOfDeath; - private delegate* unmanaged[Cdecl] fn__getPedTimeOfDeath; - private delegate* unmanaged[Cdecl] fn__countPedsInCombatWithTarget; - private delegate* unmanaged[Cdecl] fn__countPedsInCombatWithTargetWithinRadius; - private delegate* unmanaged[Cdecl] fn__setPedRelationshipGroupDefaultHash; - private delegate* unmanaged[Cdecl] fn__setPedRelationshipGroupHash; + private delegate* unmanaged[Cdecl] fn__setPedMinGroundTimeForStungun; + private delegate* unmanaged[Cdecl] fn__isPedProne; + private delegate* unmanaged[Cdecl] fn__isPedInCombat; + private delegate* unmanaged[Cdecl] fn__getPedTargetFromCombatPed; + private delegate* unmanaged[Cdecl] fn__canPedInCombatSeeTarget; + private delegate* unmanaged[Cdecl] fn__isPedDoingDriveby; + private delegate* unmanaged[Cdecl] fn__isPedJacking; + private delegate* unmanaged[Cdecl] fn__isPedBeingJacked; + private delegate* unmanaged[Cdecl] fn__isPedBeingStunned; + private delegate* unmanaged[Cdecl] fn__getPedsJacker; + private delegate* unmanaged[Cdecl] fn__getJackTarget; + private delegate* unmanaged[Cdecl] fn__isPedFleeing; + private delegate* unmanaged[Cdecl] fn__isPedInCover; + private delegate* unmanaged[Cdecl] fn__isPedInCoverFacingLeft; + private delegate* unmanaged[Cdecl] fn__isPedInHighCover; + private delegate* unmanaged[Cdecl] fn__isPedGoingIntoCover; + private delegate* unmanaged[Cdecl] fn__setPedPinnedDown; + private delegate* unmanaged[Cdecl] fn__getSeatPedIsTryingToEnter; + private delegate* unmanaged[Cdecl] fn__getVehiclePedIsTryingToEnter; + private delegate* unmanaged[Cdecl] fn__getPedSourceOfDeath; + private delegate* unmanaged[Cdecl] fn__getPedCauseOfDeath; + private delegate* unmanaged[Cdecl] fn__getPedTimeOfDeath; + private delegate* unmanaged[Cdecl] fn__countPedsInCombatWithTarget; + private delegate* unmanaged[Cdecl] fn__countPedsInCombatWithTargetWithinRadius; + private delegate* unmanaged[Cdecl] fn__setPedRelationshipGroupDefaultHash; + private delegate* unmanaged[Cdecl] fn__setPedRelationshipGroupHash; private delegate* unmanaged[Cdecl] fn__setRelationshipBetweenGroups; private delegate* unmanaged[Cdecl] fn__clearRelationshipBetweenGroups; private delegate* unmanaged[Cdecl] fn__addRelationshipGroup; private delegate* unmanaged[Cdecl] fn__removeRelationshipGroup; private delegate* unmanaged[Cdecl] fn__doesRelationshipGroupExist; - private delegate* unmanaged[Cdecl] fn__getRelationshipBetweenPeds; - private delegate* unmanaged[Cdecl] fn__getPedRelationshipGroupDefaultHash; - private delegate* unmanaged[Cdecl] fn__getPedRelationshipGroupHash; + private delegate* unmanaged[Cdecl] fn__getRelationshipBetweenPeds; + private delegate* unmanaged[Cdecl] fn__getPedRelationshipGroupDefaultHash; + private delegate* unmanaged[Cdecl] fn__getPedRelationshipGroupHash; private delegate* unmanaged[Cdecl] fn__getRelationshipBetweenGroups; private delegate* unmanaged[Cdecl] fn__setRelationshipGroupAffectsWantedLevel; - private delegate* unmanaged[Cdecl] fn__tellGroupPedsInAreaToAttack; - private delegate* unmanaged[Cdecl] fn__setPedCanBeTargetedWithoutLos; - private delegate* unmanaged[Cdecl] fn__setPedToInformRespectedFriends; - private delegate* unmanaged[Cdecl] fn__isPedRespondingToEvent; - private delegate* unmanaged[Cdecl] fn__getPosFromFiredEvent; - private delegate* unmanaged[Cdecl] fn__setPedFiringPattern; - private delegate* unmanaged[Cdecl] fn__setPedShootRate; - private delegate* unmanaged[Cdecl] fn__setCombatFloat; - private delegate* unmanaged[Cdecl] fn__getCombatFloat; + private delegate* unmanaged[Cdecl] fn__tellGroupPedsInAreaToAttack; + private delegate* unmanaged[Cdecl] fn__setPedCanBeTargetedWithoutLos; + private delegate* unmanaged[Cdecl] fn__setPedToInformRespectedFriends; + private delegate* unmanaged[Cdecl] fn__isPedRespondingToEvent; + private delegate* unmanaged[Cdecl] fn__getPosFromFiredEvent; + private delegate* unmanaged[Cdecl] fn__setPedFiringPattern; + private delegate* unmanaged[Cdecl] fn__setPedShootRate; + private delegate* unmanaged[Cdecl] fn__setCombatFloat; + private delegate* unmanaged[Cdecl] fn__getCombatFloat; private delegate* unmanaged[Cdecl] fn__getGroupSize; private delegate* unmanaged[Cdecl] fn__doesGroupExist; - private delegate* unmanaged[Cdecl] fn__getPedGroupIndex; - private delegate* unmanaged[Cdecl] fn__isPedInGroup; - private delegate* unmanaged[Cdecl] fn__getPlayerPedIsFollowing; + private delegate* unmanaged[Cdecl] fn__getPedGroupIndex; + private delegate* unmanaged[Cdecl] fn__isPedInGroup; + private delegate* unmanaged[Cdecl] fn__getPlayerPedIsFollowing; private delegate* unmanaged[Cdecl] fn__setGroupFormation; private delegate* unmanaged[Cdecl] fn__setGroupFormationSpacing; private delegate* unmanaged[Cdecl] fn__resetGroupFormationDefaultSpacing; - private delegate* unmanaged[Cdecl] fn__getVehiclePedIsUsing; - private delegate* unmanaged[Cdecl] fn__getVehiclePedIsEntering; - private delegate* unmanaged[Cdecl] fn__setPedGravity; - private delegate* unmanaged[Cdecl] fn__applyDamageToPed; - private delegate* unmanaged[Cdecl] fn__getTimePedDamagedByWeapon; - private delegate* unmanaged[Cdecl] fn__setPedAllowedToDuck; - private delegate* unmanaged[Cdecl] fn__setPedNeverLeavesGroup; - private delegate* unmanaged[Cdecl] fn__getPedType; - private delegate* unmanaged[Cdecl] fn__setPedAsCop; + private delegate* unmanaged[Cdecl] fn__getVehiclePedIsUsing; + private delegate* unmanaged[Cdecl] fn__getVehiclePedIsEntering; + private delegate* unmanaged[Cdecl] fn__setPedGravity; + private delegate* unmanaged[Cdecl] fn__applyDamageToPed; + private delegate* unmanaged[Cdecl] fn__getTimePedDamagedByWeapon; + private delegate* unmanaged[Cdecl] fn__setPedAllowedToDuck; + private delegate* unmanaged[Cdecl] fn__setPedNeverLeavesGroup; + private delegate* unmanaged[Cdecl] fn__getPedType; + private delegate* unmanaged[Cdecl] fn__setPedAsCop; private delegate* unmanaged[Cdecl] fn__setPedHealthPendingLastDamageEventOverrideFlag; - private delegate* unmanaged[Cdecl] fn__setPedMaxHealth; - private delegate* unmanaged[Cdecl] fn__getPedMaxHealth; - private delegate* unmanaged[Cdecl] fn__setPedMaxTimeInWater; - private delegate* unmanaged[Cdecl] fn__setPedMaxTimeUnderwater; - private delegate* unmanaged[Cdecl] fn__setCorpseRagdollFriction; - private delegate* unmanaged[Cdecl] fn__setPedVehicleForcedSeatUsage; - private delegate* unmanaged[Cdecl] fn__clearAllPedVehicleForcedSeatUsage; + private delegate* unmanaged[Cdecl] fn__setPedMaxHealth; + private delegate* unmanaged[Cdecl] fn__getPedMaxHealth; + private delegate* unmanaged[Cdecl] fn__setPedMaxTimeInWater; + private delegate* unmanaged[Cdecl] fn__setPedMaxTimeUnderwater; + private delegate* unmanaged[Cdecl] fn__setCorpseRagdollFriction; + private delegate* unmanaged[Cdecl] fn__setPedVehicleForcedSeatUsage; + private delegate* unmanaged[Cdecl] fn__clearAllPedVehicleForcedSeatUsage; private delegate* unmanaged[Cdecl] fn__setPedCanBeKnockedOffBike; - private delegate* unmanaged[Cdecl] fn__setPedCanBeKnockedOffVehicle; - private delegate* unmanaged[Cdecl] fn__canKnockPedOffVehicle; - private delegate* unmanaged[Cdecl] fn__knockPedOffVehicle; - private delegate* unmanaged[Cdecl] fn__setPedCoordsNoGang; - private delegate* unmanaged[Cdecl] fn__getPedAsGroupMember; - private delegate* unmanaged[Cdecl] fn__getPedAsGroupLeader; - private delegate* unmanaged[Cdecl] fn__setPedKeepTask; - private delegate* unmanaged[Cdecl] fn__setPedAllowMinorReactionsAsMissionPed; - private delegate* unmanaged[Cdecl] fn__isPedSwimming; - private delegate* unmanaged[Cdecl] fn__isPedSwimmingUnderWater; - private delegate* unmanaged[Cdecl] fn__setPedCoordsKeepVehicle; - private delegate* unmanaged[Cdecl] fn__setPedDiesInVehicle; + private delegate* unmanaged[Cdecl] fn__setPedCanBeKnockedOffVehicle; + private delegate* unmanaged[Cdecl] fn__canKnockPedOffVehicle; + private delegate* unmanaged[Cdecl] fn__knockPedOffVehicle; + private delegate* unmanaged[Cdecl] fn__setPedCoordsNoGang; + private delegate* unmanaged[Cdecl] fn__getPedAsGroupMember; + private delegate* unmanaged[Cdecl] fn__getPedAsGroupLeader; + private delegate* unmanaged[Cdecl] fn__setPedKeepTask; + private delegate* unmanaged[Cdecl] fn__setPedAllowMinorReactionsAsMissionPed; + private delegate* unmanaged[Cdecl] fn__isPedSwimming; + private delegate* unmanaged[Cdecl] fn__isPedSwimmingUnderWater; + private delegate* unmanaged[Cdecl] fn__setPedCoordsKeepVehicle; + private delegate* unmanaged[Cdecl] fn__setPedDiesInVehicle; private delegate* unmanaged[Cdecl] fn__setCreateRandomCops; private delegate* unmanaged[Cdecl] fn__setCreateRandomCopsNotOnScenarios; private delegate* unmanaged[Cdecl] fn__setCreateRandomCopsOnScenarios; private delegate* unmanaged[Cdecl] fn__canCreateRandomCops; - private delegate* unmanaged[Cdecl] fn__setPedAsEnemy; - private delegate* unmanaged[Cdecl] fn__setPedCanSmashGlass; - private delegate* unmanaged[Cdecl] fn__isPedInAnyTrain; - private delegate* unmanaged[Cdecl] fn__isPedGettingIntoAVehicle; - private delegate* unmanaged[Cdecl] fn__isPedTryingToEnterALockedVehicle; - private delegate* unmanaged[Cdecl] fn__setEnableHandcuffs; - private delegate* unmanaged[Cdecl] fn__setEnableBoundAnkles; - private delegate* unmanaged[Cdecl] fn__setEnableScuba; - private delegate* unmanaged[Cdecl] fn__setCanAttackFriendly; - private delegate* unmanaged[Cdecl] fn__getPedAlertness; - private delegate* unmanaged[Cdecl] fn__setPedAlertness; - private delegate* unmanaged[Cdecl] fn__setPedGetOutUpsideDownVehicle; - private delegate* unmanaged[Cdecl] fn__setPedMovementClipset; - private delegate* unmanaged[Cdecl] fn__resetPedMovementClipset; - private delegate* unmanaged[Cdecl] fn__setPedStrafeClipset; - private delegate* unmanaged[Cdecl] fn__resetPedStrafeClipset; - private delegate* unmanaged[Cdecl] fn__setPedWeaponMovementClipset; - private delegate* unmanaged[Cdecl] fn__resetPedWeaponMovementClipset; - private delegate* unmanaged[Cdecl] fn__setPedDriveByClipsetOverride; - private delegate* unmanaged[Cdecl] fn__clearPedDriveByClipsetOverride; - private delegate* unmanaged[Cdecl] fn__setPedMotionInCoverClipsetOverride; - private delegate* unmanaged[Cdecl] fn__clearPedMotionInCoverClipsetOverride; - private delegate* unmanaged[Cdecl] fn__clearPedFallUpperBodyClipsetOverride; - private delegate* unmanaged[Cdecl] fn__setPedInVehicleContext; - private delegate* unmanaged[Cdecl] fn__resetPedInVehicleContext; - private delegate* unmanaged[Cdecl] fn__isScriptedScenarioPedUsingConditionalAnim; - private delegate* unmanaged[Cdecl] fn__setPedAlternateWalkAnim; - private delegate* unmanaged[Cdecl] fn__clearPedAlternateWalkAnim; - private delegate* unmanaged[Cdecl] fn__setPedAlternateMovementAnim; - private delegate* unmanaged[Cdecl] fn__clearPedAlternateMovementAnim; - private delegate* unmanaged[Cdecl] fn__setPedGestureGroup; + private delegate* unmanaged[Cdecl] fn__setPedAsEnemy; + private delegate* unmanaged[Cdecl] fn__setPedCanSmashGlass; + private delegate* unmanaged[Cdecl] fn__isPedInAnyTrain; + private delegate* unmanaged[Cdecl] fn__isPedGettingIntoAVehicle; + private delegate* unmanaged[Cdecl] fn__isPedTryingToEnterALockedVehicle; + private delegate* unmanaged[Cdecl] fn__setEnableHandcuffs; + private delegate* unmanaged[Cdecl] fn__setEnableBoundAnkles; + private delegate* unmanaged[Cdecl] fn__setEnableScuba; + private delegate* unmanaged[Cdecl] fn__setCanAttackFriendly; + private delegate* unmanaged[Cdecl] fn__getPedAlertness; + private delegate* unmanaged[Cdecl] fn__setPedAlertness; + private delegate* unmanaged[Cdecl] fn__setPedGetOutUpsideDownVehicle; + private delegate* unmanaged[Cdecl] fn__setPedMovementClipset; + private delegate* unmanaged[Cdecl] fn__resetPedMovementClipset; + private delegate* unmanaged[Cdecl] fn__setPedStrafeClipset; + private delegate* unmanaged[Cdecl] fn__resetPedStrafeClipset; + private delegate* unmanaged[Cdecl] fn__setPedWeaponMovementClipset; + private delegate* unmanaged[Cdecl] fn__resetPedWeaponMovementClipset; + private delegate* unmanaged[Cdecl] fn__setPedDriveByClipsetOverride; + private delegate* unmanaged[Cdecl] fn__clearPedDriveByClipsetOverride; + private delegate* unmanaged[Cdecl] fn__setPedMotionInCoverClipsetOverride; + private delegate* unmanaged[Cdecl] fn__clearPedMotionInCoverClipsetOverride; + private delegate* unmanaged[Cdecl] fn__clearPedFallUpperBodyClipsetOverride; + private delegate* unmanaged[Cdecl] fn__setPedInVehicleContext; + private delegate* unmanaged[Cdecl] fn__resetPedInVehicleContext; + private delegate* unmanaged[Cdecl] fn__isScriptedScenarioPedUsingConditionalAnim; + private delegate* unmanaged[Cdecl] fn__setPedAlternateWalkAnim; + private delegate* unmanaged[Cdecl] fn__clearPedAlternateWalkAnim; + private delegate* unmanaged[Cdecl] fn__setPedAlternateMovementAnim; + private delegate* unmanaged[Cdecl] fn__clearPedAlternateMovementAnim; + private delegate* unmanaged[Cdecl] fn__setPedGestureGroup; private delegate* unmanaged[Cdecl] fn__getAnimInitialOffsetPosition; private delegate* unmanaged[Cdecl] fn__getAnimInitialOffsetRotation; - private delegate* unmanaged[Cdecl] fn__getPedDrawableVariation; - private delegate* unmanaged[Cdecl] fn__getNumberOfPedDrawableVariations; - private delegate* unmanaged[Cdecl] fn__getPedTextureVariation; - private delegate* unmanaged[Cdecl] fn__getNumberOfPedTextureVariations; - private delegate* unmanaged[Cdecl] fn__getNumberOfPedPropDrawableVariations; - private delegate* unmanaged[Cdecl] fn__getNumberOfPedPropTextureVariations; - private delegate* unmanaged[Cdecl] fn__getPedPaletteVariation; + private delegate* unmanaged[Cdecl] fn__getPedDrawableVariation; + private delegate* unmanaged[Cdecl] fn__getNumberOfPedDrawableVariations; + private delegate* unmanaged[Cdecl] fn__getPedTextureVariation; + private delegate* unmanaged[Cdecl] fn__getNumberOfPedTextureVariations; + private delegate* unmanaged[Cdecl] fn__getNumberOfPedPropDrawableVariations; + private delegate* unmanaged[Cdecl] fn__getNumberOfPedPropTextureVariations; + private delegate* unmanaged[Cdecl] fn__getPedPaletteVariation; private delegate* unmanaged[Cdecl] fn__getMpOutfitDataFromMetadata; private delegate* unmanaged[Cdecl] fn__getFmMaleShopPedApparelItemIndex; private delegate* unmanaged[Cdecl] fn__getFmFemaleShopPedApparelItemIndex; - private delegate* unmanaged[Cdecl] fn__isPedComponentVariationValid; - private delegate* unmanaged[Cdecl] fn__setPedComponentVariation; - private delegate* unmanaged[Cdecl] fn__setPedRandomComponentVariation; - private delegate* unmanaged[Cdecl] fn__setPedRandomProps; - private delegate* unmanaged[Cdecl] fn__setPedDefaultComponentVariation; - private delegate* unmanaged[Cdecl] fn__setPedBlendFromParents; - private delegate* unmanaged[Cdecl] fn__setPedHeadBlendData; - private delegate* unmanaged[Cdecl] fn__getPedHeadBlendData; - private delegate* unmanaged[Cdecl] fn__updatePedHeadBlendData; - private delegate* unmanaged[Cdecl] fn__setHeadBlendEyeColor; - private delegate* unmanaged[Cdecl] fn__getHeadBlendEyeColor; - private delegate* unmanaged[Cdecl] fn__setPedHeadOverlay; - private delegate* unmanaged[Cdecl] fn__getPedHeadOverlay; + private delegate* unmanaged[Cdecl] fn__isPedComponentVariationValid; + private delegate* unmanaged[Cdecl] fn__setPedComponentVariation; + private delegate* unmanaged[Cdecl] fn__setPedRandomComponentVariation; + private delegate* unmanaged[Cdecl] fn__setPedRandomProps; + private delegate* unmanaged[Cdecl] fn__setPedDefaultComponentVariation; + private delegate* unmanaged[Cdecl] fn__setPedBlendFromParents; + private delegate* unmanaged[Cdecl] fn__setPedHeadBlendData; + private delegate* unmanaged[Cdecl] fn__getPedHeadBlendData; + private delegate* unmanaged[Cdecl] fn__updatePedHeadBlendData; + private delegate* unmanaged[Cdecl] fn__setHeadBlendEyeColor; + private delegate* unmanaged[Cdecl] fn__getHeadBlendEyeColor; + private delegate* unmanaged[Cdecl] fn__setPedHeadOverlay; + private delegate* unmanaged[Cdecl] fn__getPedHeadOverlay; private delegate* unmanaged[Cdecl] fn__getPedHeadOverlayNum; - private delegate* unmanaged[Cdecl] fn__setPedHeadOverlayTint; - private delegate* unmanaged[Cdecl] fn__setPedHairTint; + private delegate* unmanaged[Cdecl] fn__setPedHeadOverlayTint; + private delegate* unmanaged[Cdecl] fn__setPedHairTint; private delegate* unmanaged[Cdecl] fn__getNumPedHairTints; private delegate* unmanaged[Cdecl] fn__getNumPedMakeupTints; private delegate* unmanaged[Cdecl] fn__getPedHairTintColor; @@ -30923,234 +30910,234 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__isPedBlushTintForBarber; private delegate* unmanaged[Cdecl] fn__isPedBlushFacepaintTintForBarber; private delegate* unmanaged[Cdecl] fn__getTintIndexForLastGenHairTexture; - private delegate* unmanaged[Cdecl] fn__setPedMicroMorph; - private delegate* unmanaged[Cdecl] fn__hasPedHeadBlendFinished; - private delegate* unmanaged[Cdecl] fn__finalizeHeadBlend; - private delegate* unmanaged[Cdecl] fn__setHeadBlendPaletteColor; - private delegate* unmanaged[Cdecl] fn__disableHeadBlendPaletteColor; + private delegate* unmanaged[Cdecl] fn__setPedMicroMorph; + private delegate* unmanaged[Cdecl] fn__hasPedHeadBlendFinished; + private delegate* unmanaged[Cdecl] fn__finalizeHeadBlend; + private delegate* unmanaged[Cdecl] fn__setHeadBlendPaletteColor; + private delegate* unmanaged[Cdecl] fn__disableHeadBlendPaletteColor; private delegate* unmanaged[Cdecl] fn__getPedHeadBlendFirstIndex; private delegate* unmanaged[Cdecl] fn__getPedHeadBlendNumHeads; - private delegate* unmanaged[Cdecl] fn__setPedPreloadVariationData; - private delegate* unmanaged[Cdecl] fn__hasPedPreloadVariationDataFinished; - private delegate* unmanaged[Cdecl] fn__releasePedPreloadVariationData; - private delegate* unmanaged[Cdecl] fn__setPedPreloadPropData; - private delegate* unmanaged[Cdecl] fn__hasPedPreloadPropDataFinished; - private delegate* unmanaged[Cdecl] fn__releasePedPreloadPropData; - private delegate* unmanaged[Cdecl] fn__getPedPropIndex; - private delegate* unmanaged[Cdecl] fn__setPedPropIndex; - private delegate* unmanaged[Cdecl] fn__knockOffPedProp; - private delegate* unmanaged[Cdecl] fn__clearPedProp; - private delegate* unmanaged[Cdecl] fn__clearAllPedProps; - private delegate* unmanaged[Cdecl] fn__dropAmbientProp; - private delegate* unmanaged[Cdecl] fn__getPedPropTextureIndex; - private delegate* unmanaged[Cdecl] fn__clearPedParachutePackVariation; - private delegate* unmanaged[Cdecl] fn__setPedScubaGearVariation; - private delegate* unmanaged[Cdecl] fn__clearPedScubaGearVariation; + private delegate* unmanaged[Cdecl] fn__setPedPreloadVariationData; + private delegate* unmanaged[Cdecl] fn__hasPedPreloadVariationDataFinished; + private delegate* unmanaged[Cdecl] fn__releasePedPreloadVariationData; + private delegate* unmanaged[Cdecl] fn__setPedPreloadPropData; + private delegate* unmanaged[Cdecl] fn__hasPedPreloadPropDataFinished; + private delegate* unmanaged[Cdecl] fn__releasePedPreloadPropData; + private delegate* unmanaged[Cdecl] fn__getPedPropIndex; + private delegate* unmanaged[Cdecl] fn__setPedPropIndex; + private delegate* unmanaged[Cdecl] fn__knockOffPedProp; + private delegate* unmanaged[Cdecl] fn__clearPedProp; + private delegate* unmanaged[Cdecl] fn__clearAllPedProps; + private delegate* unmanaged[Cdecl] fn__dropAmbientProp; + private delegate* unmanaged[Cdecl] fn__getPedPropTextureIndex; + private delegate* unmanaged[Cdecl] fn__clearPedParachutePackVariation; + private delegate* unmanaged[Cdecl] fn__setPedScubaGearVariation; + private delegate* unmanaged[Cdecl] fn__clearPedScubaGearVariation; private delegate* unmanaged[Cdecl] fn__isUsingPedScubaGearVariation; - private delegate* unmanaged[Cdecl] fn__setBlockingOfNonTemporaryEvents; - private delegate* unmanaged[Cdecl] fn__setPedBoundsOrientation; - private delegate* unmanaged[Cdecl] fn__registerTarget; - private delegate* unmanaged[Cdecl] fn__registerHatedTargetsAroundPed; - private delegate* unmanaged[Cdecl] fn__getRandomPedAtCoord; - private delegate* unmanaged[Cdecl] fn__getClosestPed; + private delegate* unmanaged[Cdecl] fn__setBlockingOfNonTemporaryEvents; + private delegate* unmanaged[Cdecl] fn__setPedBoundsOrientation; + private delegate* unmanaged[Cdecl] fn__registerTarget; + private delegate* unmanaged[Cdecl] fn__registerHatedTargetsAroundPed; + private delegate* unmanaged[Cdecl] fn__getRandomPedAtCoord; + private delegate* unmanaged[Cdecl] fn__getClosestPed; private delegate* unmanaged[Cdecl] fn__setScenarioPedsToBeReturnedByNextCommand; - private delegate* unmanaged[Cdecl] fn__getCanPedBeGrabbedByScript; - private delegate* unmanaged[Cdecl] fn__setDriverRacingModifier; - private delegate* unmanaged[Cdecl] fn__setDriverAbility; - private delegate* unmanaged[Cdecl] fn__setDriverAggressiveness; - private delegate* unmanaged[Cdecl] fn__canPedRagdoll; - private delegate* unmanaged[Cdecl] fn__setPedToRagdoll; - private delegate* unmanaged[Cdecl] fn__setPedToRagdollWithFall; - private delegate* unmanaged[Cdecl] fn__setPedRagdollOnCollision; - private delegate* unmanaged[Cdecl] fn__isPedRagdoll; - private delegate* unmanaged[Cdecl] fn__isPedRunningRagdollTask; - private delegate* unmanaged[Cdecl] fn__setPedRagdollForceFall; - private delegate* unmanaged[Cdecl] fn__resetPedRagdollTimer; - private delegate* unmanaged[Cdecl] fn__setPedCanRagdoll; - private delegate* unmanaged[Cdecl] fn__isPedRunningMeleeTask; - private delegate* unmanaged[Cdecl] fn__isPedRunningMobilePhoneTask; - private delegate* unmanaged[Cdecl] fn__isMobilePhoneToPedEar; - private delegate* unmanaged[Cdecl] fn__setRagdollBlockingFlags; - private delegate* unmanaged[Cdecl] fn__clearRagdollBlockingFlags; - private delegate* unmanaged[Cdecl] fn__setPedAngledDefensiveArea; - private delegate* unmanaged[Cdecl] fn__setPedSphereDefensiveArea; - private delegate* unmanaged[Cdecl] fn__setPedDefensiveSphereAttachedToPed; - private delegate* unmanaged[Cdecl] fn__setPedDefensiveSphereAttachedToVehicle; - private delegate* unmanaged[Cdecl] fn__setPedDefensiveAreaAttachedToPed; - private delegate* unmanaged[Cdecl] fn__setPedDefensiveAreaDirection; - private delegate* unmanaged[Cdecl] fn__removePedDefensiveArea; - private delegate* unmanaged[Cdecl] fn__getPedDefensiveAreaPosition; - private delegate* unmanaged[Cdecl] fn__isPedDefensiveAreaActive; - private delegate* unmanaged[Cdecl] fn__setPedPreferredCoverSet; - private delegate* unmanaged[Cdecl] fn__removePedPreferredCoverSet; - private delegate* unmanaged[Cdecl] fn__reviveInjuredPed; - private delegate* unmanaged[Cdecl] fn__resurrectPed; - private delegate* unmanaged[Cdecl] fn__setPedNameDebug; - private delegate* unmanaged[Cdecl] fn__getPedExtractedDisplacement; - private delegate* unmanaged[Cdecl] fn__setPedDiesWhenInjured; - private delegate* unmanaged[Cdecl] fn__setPedEnableWeaponBlocking; - private delegate* unmanaged[Cdecl] fn__specialFunctionDoNotUse; - private delegate* unmanaged[Cdecl] fn__resetPedVisibleDamage; - private delegate* unmanaged[Cdecl] fn__applyPedBloodDamageByZone; - private delegate* unmanaged[Cdecl] fn__applyPedBlood; - private delegate* unmanaged[Cdecl] fn__applyPedBloodByZone; - private delegate* unmanaged[Cdecl] fn__applyPedBloodSpecific; - private delegate* unmanaged[Cdecl] fn__applyPedDamageDecal; - private delegate* unmanaged[Cdecl] fn__applyPedDamagePack; - private delegate* unmanaged[Cdecl] fn__clearPedBloodDamage; - private delegate* unmanaged[Cdecl] fn__clearPedBloodDamageByZone; - private delegate* unmanaged[Cdecl] fn__hidePedBloodDamageByZone; - private delegate* unmanaged[Cdecl] fn__clearPedDamageDecalByZone; - private delegate* unmanaged[Cdecl] fn__getPedDecorationsState; - private delegate* unmanaged[Cdecl] fn__markPedDecorationsAsClonedFromLocalPlayer; - private delegate* unmanaged[Cdecl] fn__clearPedWetness; - private delegate* unmanaged[Cdecl] fn__setPedWetnessHeight; - private delegate* unmanaged[Cdecl] fn__setPedWetnessEnabledThisFrame; - private delegate* unmanaged[Cdecl] fn__clearPedEnvDirt; - private delegate* unmanaged[Cdecl] fn__setPedSweat; - private delegate* unmanaged[Cdecl] fn__addPedDecorationFromHashes; - private delegate* unmanaged[Cdecl] fn__addPedDecorationFromHashesInCorona; + private delegate* unmanaged[Cdecl] fn__getCanPedBeGrabbedByScript; + private delegate* unmanaged[Cdecl] fn__setDriverRacingModifier; + private delegate* unmanaged[Cdecl] fn__setDriverAbility; + private delegate* unmanaged[Cdecl] fn__setDriverAggressiveness; + private delegate* unmanaged[Cdecl] fn__canPedRagdoll; + private delegate* unmanaged[Cdecl] fn__setPedToRagdoll; + private delegate* unmanaged[Cdecl] fn__setPedToRagdollWithFall; + private delegate* unmanaged[Cdecl] fn__setPedRagdollOnCollision; + private delegate* unmanaged[Cdecl] fn__isPedRagdoll; + private delegate* unmanaged[Cdecl] fn__isPedRunningRagdollTask; + private delegate* unmanaged[Cdecl] fn__setPedRagdollForceFall; + private delegate* unmanaged[Cdecl] fn__resetPedRagdollTimer; + private delegate* unmanaged[Cdecl] fn__setPedCanRagdoll; + private delegate* unmanaged[Cdecl] fn__isPedRunningMeleeTask; + private delegate* unmanaged[Cdecl] fn__isPedRunningMobilePhoneTask; + private delegate* unmanaged[Cdecl] fn__isMobilePhoneToPedEar; + private delegate* unmanaged[Cdecl] fn__setRagdollBlockingFlags; + private delegate* unmanaged[Cdecl] fn__clearRagdollBlockingFlags; + private delegate* unmanaged[Cdecl] fn__setPedAngledDefensiveArea; + private delegate* unmanaged[Cdecl] fn__setPedSphereDefensiveArea; + private delegate* unmanaged[Cdecl] fn__setPedDefensiveSphereAttachedToPed; + private delegate* unmanaged[Cdecl] fn__setPedDefensiveSphereAttachedToVehicle; + private delegate* unmanaged[Cdecl] fn__setPedDefensiveAreaAttachedToPed; + private delegate* unmanaged[Cdecl] fn__setPedDefensiveAreaDirection; + private delegate* unmanaged[Cdecl] fn__removePedDefensiveArea; + private delegate* unmanaged[Cdecl] fn__getPedDefensiveAreaPosition; + private delegate* unmanaged[Cdecl] fn__isPedDefensiveAreaActive; + private delegate* unmanaged[Cdecl] fn__setPedPreferredCoverSet; + private delegate* unmanaged[Cdecl] fn__removePedPreferredCoverSet; + private delegate* unmanaged[Cdecl] fn__reviveInjuredPed; + private delegate* unmanaged[Cdecl] fn__resurrectPed; + private delegate* unmanaged[Cdecl] fn__setPedNameDebug; + private delegate* unmanaged[Cdecl] fn__getPedExtractedDisplacement; + private delegate* unmanaged[Cdecl] fn__setPedDiesWhenInjured; + private delegate* unmanaged[Cdecl] fn__setPedEnableWeaponBlocking; + private delegate* unmanaged[Cdecl] fn__specialFunctionDoNotUse; + private delegate* unmanaged[Cdecl] fn__resetPedVisibleDamage; + private delegate* unmanaged[Cdecl] fn__applyPedBloodDamageByZone; + private delegate* unmanaged[Cdecl] fn__applyPedBlood; + private delegate* unmanaged[Cdecl] fn__applyPedBloodByZone; + private delegate* unmanaged[Cdecl] fn__applyPedBloodSpecific; + private delegate* unmanaged[Cdecl] fn__applyPedDamageDecal; + private delegate* unmanaged[Cdecl] fn__applyPedDamagePack; + private delegate* unmanaged[Cdecl] fn__clearPedBloodDamage; + private delegate* unmanaged[Cdecl] fn__clearPedBloodDamageByZone; + private delegate* unmanaged[Cdecl] fn__hidePedBloodDamageByZone; + private delegate* unmanaged[Cdecl] fn__clearPedDamageDecalByZone; + private delegate* unmanaged[Cdecl] fn__getPedDecorationsState; + private delegate* unmanaged[Cdecl] fn__markPedDecorationsAsClonedFromLocalPlayer; + private delegate* unmanaged[Cdecl] fn__clearPedWetness; + private delegate* unmanaged[Cdecl] fn__setPedWetnessHeight; + private delegate* unmanaged[Cdecl] fn__setPedWetnessEnabledThisFrame; + private delegate* unmanaged[Cdecl] fn__clearPedEnvDirt; + private delegate* unmanaged[Cdecl] fn__setPedSweat; + private delegate* unmanaged[Cdecl] fn__addPedDecorationFromHashes; + private delegate* unmanaged[Cdecl] fn__addPedDecorationFromHashesInCorona; private delegate* unmanaged[Cdecl] fn__getPedDecorationZoneFromHashes; - private delegate* unmanaged[Cdecl] fn__clearPedDecorations; - private delegate* unmanaged[Cdecl] fn__clearPedDecorationsLeaveScars; - private delegate* unmanaged[Cdecl] fn__wasPedSkeletonUpdated; - private delegate* unmanaged[Cdecl] fn__getPedBoneCoords; + private delegate* unmanaged[Cdecl] fn__clearPedDecorations; + private delegate* unmanaged[Cdecl] fn__clearPedDecorationsLeaveScars; + private delegate* unmanaged[Cdecl] fn__wasPedSkeletonUpdated; + private delegate* unmanaged[Cdecl] fn__getPedBoneCoords; private delegate* unmanaged[Cdecl] fn__createNmMessage; - private delegate* unmanaged[Cdecl] fn__givePedNmMessage; + private delegate* unmanaged[Cdecl] fn__givePedNmMessage; private delegate* unmanaged[Cdecl] fn__addScenarioBlockingArea; private delegate* unmanaged[Cdecl] fn__removeScenarioBlockingAreas; private delegate* unmanaged[Cdecl] fn__removeScenarioBlockingArea; private delegate* unmanaged[Cdecl] fn__setScenarioPedsSpawnInSphereArea; private delegate* unmanaged[Cdecl] fn__doesScenarioBlockingAreaExists; - private delegate* unmanaged[Cdecl] fn__isPedUsingScenario; - private delegate* unmanaged[Cdecl] fn__isPedUsingAnyScenario; + private delegate* unmanaged[Cdecl] fn__isPedUsingScenario; + private delegate* unmanaged[Cdecl] fn__isPedUsingAnyScenario; private delegate* unmanaged[Cdecl] fn__setPedPanicExitScenario; - private delegate* unmanaged[Cdecl] fn__toggleScenarioPedCowerInPlace; + private delegate* unmanaged[Cdecl] fn__toggleScenarioPedCowerInPlace; private delegate* unmanaged[Cdecl] fn__triggerPedScenarioPanicexittoflee; private delegate* unmanaged[Cdecl] fn__setPedShouldPlayDirectedNormalScenarioExit; - private delegate* unmanaged[Cdecl] fn__setPedShouldPlayNormalScenarioExit; - private delegate* unmanaged[Cdecl] fn__setPedShouldPlayImmediateScenarioExit; - private delegate* unmanaged[Cdecl] fn__setPedShouldPlayFleeScenarioExit; - private delegate* unmanaged[Cdecl] fn__setPedShouldIgnoreScenarioExitCollisionChecks; + private delegate* unmanaged[Cdecl] fn__setPedShouldPlayNormalScenarioExit; + private delegate* unmanaged[Cdecl] fn__setPedShouldPlayImmediateScenarioExit; + private delegate* unmanaged[Cdecl] fn__setPedShouldPlayFleeScenarioExit; + private delegate* unmanaged[Cdecl] fn__setPedShouldIgnoreScenarioExitCollisionChecks; private delegate* unmanaged[Cdecl] fn__setPedShouldIgnoreScenarioNavChecks; private delegate* unmanaged[Cdecl] fn__setPedShouldProbeForScenarioExitsInOneFrame; private delegate* unmanaged[Cdecl] fn__isPedGesturing; - private delegate* unmanaged[Cdecl] fn__playFacialAnim; - private delegate* unmanaged[Cdecl] fn__setFacialClipset; - private delegate* unmanaged[Cdecl] fn__setFacialIdleAnimOverride; - private delegate* unmanaged[Cdecl] fn__clearFacialIdleAnimOverride; - private delegate* unmanaged[Cdecl] fn__setPedCanPlayGestureAnims; - private delegate* unmanaged[Cdecl] fn__setPedCanPlayVisemeAnims; - private delegate* unmanaged[Cdecl] fn__setPedIsIgnoredByAutoOpenDoors; - private delegate* unmanaged[Cdecl] fn__setPedCanPlayAmbientAnims; - private delegate* unmanaged[Cdecl] fn__setPedCanPlayAmbientBaseAnims; - private delegate* unmanaged[Cdecl] fn__triggerIdleAnimationOnPed; - private delegate* unmanaged[Cdecl] fn__setPedCanArmIk; - private delegate* unmanaged[Cdecl] fn__setPedCanHeadIk; - private delegate* unmanaged[Cdecl] fn__setPedCanLegIk; - private delegate* unmanaged[Cdecl] fn__setPedCanTorsoIk; - private delegate* unmanaged[Cdecl] fn__setPedCanTorsoReactIk; - private delegate* unmanaged[Cdecl] fn__setPedCanTorsoVehicleIk; - private delegate* unmanaged[Cdecl] fn__setPedCanUseAutoConversationLookat; - private delegate* unmanaged[Cdecl] fn__isPedHeadtrackingPed; - private delegate* unmanaged[Cdecl] fn__isPedHeadtrackingEntity; - private delegate* unmanaged[Cdecl] fn__setPedPrimaryLookat; + private delegate* unmanaged[Cdecl] fn__playFacialAnim; + private delegate* unmanaged[Cdecl] fn__setFacialClipset; + private delegate* unmanaged[Cdecl] fn__setFacialIdleAnimOverride; + private delegate* unmanaged[Cdecl] fn__clearFacialIdleAnimOverride; + private delegate* unmanaged[Cdecl] fn__setPedCanPlayGestureAnims; + private delegate* unmanaged[Cdecl] fn__setPedCanPlayVisemeAnims; + private delegate* unmanaged[Cdecl] fn__setPedIsIgnoredByAutoOpenDoors; + private delegate* unmanaged[Cdecl] fn__setPedCanPlayAmbientAnims; + private delegate* unmanaged[Cdecl] fn__setPedCanPlayAmbientBaseAnims; + private delegate* unmanaged[Cdecl] fn__triggerIdleAnimationOnPed; + private delegate* unmanaged[Cdecl] fn__setPedCanArmIk; + private delegate* unmanaged[Cdecl] fn__setPedCanHeadIk; + private delegate* unmanaged[Cdecl] fn__setPedCanLegIk; + private delegate* unmanaged[Cdecl] fn__setPedCanTorsoIk; + private delegate* unmanaged[Cdecl] fn__setPedCanTorsoReactIk; + private delegate* unmanaged[Cdecl] fn__setPedCanTorsoVehicleIk; + private delegate* unmanaged[Cdecl] fn__setPedCanUseAutoConversationLookat; + private delegate* unmanaged[Cdecl] fn__isPedHeadtrackingPed; + private delegate* unmanaged[Cdecl] fn__isPedHeadtrackingEntity; + private delegate* unmanaged[Cdecl] fn__setPedPrimaryLookat; private delegate* unmanaged[Cdecl] fn__setPedClothPinFrames; private delegate* unmanaged[Cdecl] fn__setPedClothPackageIndex; private delegate* unmanaged[Cdecl] fn__setPedClothProne; - private delegate* unmanaged[Cdecl] fn__setPedConfigFlag; - private delegate* unmanaged[Cdecl] fn__setPedResetFlag; - private delegate* unmanaged[Cdecl] fn__getPedConfigFlag; - private delegate* unmanaged[Cdecl] fn__getPedResetFlag; - private delegate* unmanaged[Cdecl] fn__setPedGroupMemberPassengerIndex; - private delegate* unmanaged[Cdecl] fn__setPedCanEvasiveDive; - private delegate* unmanaged[Cdecl] fn__isPedEvasiveDiving; - private delegate* unmanaged[Cdecl] fn__setPedShootsAtCoord; + private delegate* unmanaged[Cdecl] fn__setPedConfigFlag; + private delegate* unmanaged[Cdecl] fn__setPedResetFlag; + private delegate* unmanaged[Cdecl] fn__getPedConfigFlag; + private delegate* unmanaged[Cdecl] fn__getPedResetFlag; + private delegate* unmanaged[Cdecl] fn__setPedGroupMemberPassengerIndex; + private delegate* unmanaged[Cdecl] fn__setPedCanEvasiveDive; + private delegate* unmanaged[Cdecl] fn__isPedEvasiveDiving; + private delegate* unmanaged[Cdecl] fn__setPedShootsAtCoord; private delegate* unmanaged[Cdecl] fn__setPedModelIsSuppressed; private delegate* unmanaged[Cdecl] fn__stopAnyPedModelBeingSuppressed; - private delegate* unmanaged[Cdecl] fn__setPedCanBeTargetedWhenInjured; - private delegate* unmanaged[Cdecl] fn__setPedGeneratesDeadBodyEvents; - private delegate* unmanaged[Cdecl] fn__blockPedFromGeneratingDeadBodyEventsWhenDead; + private delegate* unmanaged[Cdecl] fn__setPedCanBeTargetedWhenInjured; + private delegate* unmanaged[Cdecl] fn__setPedGeneratesDeadBodyEvents; + private delegate* unmanaged[Cdecl] fn__blockPedFromGeneratingDeadBodyEventsWhenDead; private delegate* unmanaged[Cdecl] fn__setPedWillOnlyAttackWantedPlayer; - private delegate* unmanaged[Cdecl] fn__setPedCanRagdollFromPlayerImpact; - private delegate* unmanaged[Cdecl] fn__givePedHelmet; - private delegate* unmanaged[Cdecl] fn__removePedHelmet; - private delegate* unmanaged[Cdecl] fn__isPedTakingOffHelmet; - private delegate* unmanaged[Cdecl] fn__setPedHelmet; - private delegate* unmanaged[Cdecl] fn__setPedHelmetFlag; - private delegate* unmanaged[Cdecl] fn__setPedHelmetPropIndex; - private delegate* unmanaged[Cdecl] fn__setPedHelmetVisorPropIndices; - private delegate* unmanaged[Cdecl] fn__isPedHelmetVisorUp; - private delegate* unmanaged[Cdecl] fn__setPedHelmetTextureIndex; - private delegate* unmanaged[Cdecl] fn__isPedWearingHelmet; - private delegate* unmanaged[Cdecl] fn__clearPedStoredHatProp; - private delegate* unmanaged[Cdecl] fn__getPedHelmetStoredHatPropIndex; - private delegate* unmanaged[Cdecl] fn__getPedHelmetStoredHatTexIndex; + private delegate* unmanaged[Cdecl] fn__setPedCanRagdollFromPlayerImpact; + private delegate* unmanaged[Cdecl] fn__givePedHelmet; + private delegate* unmanaged[Cdecl] fn__removePedHelmet; + private delegate* unmanaged[Cdecl] fn__isPedTakingOffHelmet; + private delegate* unmanaged[Cdecl] fn__setPedHelmet; + private delegate* unmanaged[Cdecl] fn__setPedHelmetFlag; + private delegate* unmanaged[Cdecl] fn__setPedHelmetPropIndex; + private delegate* unmanaged[Cdecl] fn__setPedHelmetVisorPropIndices; + private delegate* unmanaged[Cdecl] fn__isPedHelmetVisorUp; + private delegate* unmanaged[Cdecl] fn__setPedHelmetTextureIndex; + private delegate* unmanaged[Cdecl] fn__isPedWearingHelmet; + private delegate* unmanaged[Cdecl] fn__clearPedStoredHatProp; + private delegate* unmanaged[Cdecl] fn__getPedHelmetStoredHatPropIndex; + private delegate* unmanaged[Cdecl] fn__getPedHelmetStoredHatTexIndex; private delegate* unmanaged[Cdecl] fn__isCurrentHeadPropAHelmet; - private delegate* unmanaged[Cdecl] fn__setPedToLoadCover; - private delegate* unmanaged[Cdecl] fn__setPedCanCowerInCover; - private delegate* unmanaged[Cdecl] fn__setPedCanPeekInCover; - private delegate* unmanaged[Cdecl] fn__setPedPlaysHeadOnHornAnimWhenDiesInVehicle; - private delegate* unmanaged[Cdecl] fn__setPedLegIkMode; - private delegate* unmanaged[Cdecl] fn__setPedMotionBlur; - private delegate* unmanaged[Cdecl] fn__setPedCanSwitchWeapon; - private delegate* unmanaged[Cdecl] fn__setPedDiesInstantlyInWater; - private delegate* unmanaged[Cdecl] fn__setLadderClimbInputState; - private delegate* unmanaged[Cdecl] fn__stopPedWeaponFiringWhenDropped; - private delegate* unmanaged[Cdecl] fn__setScriptedAnimSeatOffset; - private delegate* unmanaged[Cdecl] fn__setPedCombatMovement; - private delegate* unmanaged[Cdecl] fn__getPedCombatMovement; - private delegate* unmanaged[Cdecl] fn__setPedCombatAbility; - private delegate* unmanaged[Cdecl] fn__setPedCombatRange; - private delegate* unmanaged[Cdecl] fn__getPedCombatRange; - private delegate* unmanaged[Cdecl] fn__setPedCombatAttributes; - private delegate* unmanaged[Cdecl] fn__setPedTargetLossResponse; - private delegate* unmanaged[Cdecl] fn__isPedPerformingMeleeAction; - private delegate* unmanaged[Cdecl] fn__isPedPerformingStealthKill; - private delegate* unmanaged[Cdecl] fn__isPedPerformingACounterAttack; - private delegate* unmanaged[Cdecl] fn__isPedBeingStealthKilled; - private delegate* unmanaged[Cdecl] fn__getMeleeTargetForPed; - private delegate* unmanaged[Cdecl] fn__wasPedKilledByStealth; - private delegate* unmanaged[Cdecl] fn__wasPedKilledByTakedown; - private delegate* unmanaged[Cdecl] fn__wasPedKnockedOut; - private delegate* unmanaged[Cdecl] fn__setPedFleeAttributes; - private delegate* unmanaged[Cdecl] fn__setPedCowerHash; - private delegate* unmanaged[Cdecl] fn__setPedSteersAroundDeadBodies; - private delegate* unmanaged[Cdecl] fn__setPedSteersAroundPeds; - private delegate* unmanaged[Cdecl] fn__setPedSteersAroundObjects; - private delegate* unmanaged[Cdecl] fn__setPedSteersAroundVehicles; + private delegate* unmanaged[Cdecl] fn__setPedToLoadCover; + private delegate* unmanaged[Cdecl] fn__setPedCanCowerInCover; + private delegate* unmanaged[Cdecl] fn__setPedCanPeekInCover; + private delegate* unmanaged[Cdecl] fn__setPedPlaysHeadOnHornAnimWhenDiesInVehicle; + private delegate* unmanaged[Cdecl] fn__setPedLegIkMode; + private delegate* unmanaged[Cdecl] fn__setPedMotionBlur; + private delegate* unmanaged[Cdecl] fn__setPedCanSwitchWeapon; + private delegate* unmanaged[Cdecl] fn__setPedDiesInstantlyInWater; + private delegate* unmanaged[Cdecl] fn__setLadderClimbInputState; + private delegate* unmanaged[Cdecl] fn__stopPedWeaponFiringWhenDropped; + private delegate* unmanaged[Cdecl] fn__setScriptedAnimSeatOffset; + private delegate* unmanaged[Cdecl] fn__setPedCombatMovement; + private delegate* unmanaged[Cdecl] fn__getPedCombatMovement; + private delegate* unmanaged[Cdecl] fn__setPedCombatAbility; + private delegate* unmanaged[Cdecl] fn__setPedCombatRange; + private delegate* unmanaged[Cdecl] fn__getPedCombatRange; + private delegate* unmanaged[Cdecl] fn__setPedCombatAttributes; + private delegate* unmanaged[Cdecl] fn__setPedTargetLossResponse; + private delegate* unmanaged[Cdecl] fn__isPedPerformingMeleeAction; + private delegate* unmanaged[Cdecl] fn__isPedPerformingStealthKill; + private delegate* unmanaged[Cdecl] fn__isPedPerformingACounterAttack; + private delegate* unmanaged[Cdecl] fn__isPedBeingStealthKilled; + private delegate* unmanaged[Cdecl] fn__getMeleeTargetForPed; + private delegate* unmanaged[Cdecl] fn__wasPedKilledByStealth; + private delegate* unmanaged[Cdecl] fn__wasPedKilledByTakedown; + private delegate* unmanaged[Cdecl] fn__wasPedKnockedOut; + private delegate* unmanaged[Cdecl] fn__setPedFleeAttributes; + private delegate* unmanaged[Cdecl] fn__setPedCowerHash; + private delegate* unmanaged[Cdecl] fn__setPedSteersAroundDeadBodies; + private delegate* unmanaged[Cdecl] fn__setPedSteersAroundPeds; + private delegate* unmanaged[Cdecl] fn__setPedSteersAroundObjects; + private delegate* unmanaged[Cdecl] fn__setPedSteersAroundVehicles; private delegate* unmanaged[Cdecl] fn__setPedIsAvoidedByOthers; - private delegate* unmanaged[Cdecl] fn__setPedIncreasedAvoidanceRadius; - private delegate* unmanaged[Cdecl] fn__setPedBlocksPathingWhenDead; + private delegate* unmanaged[Cdecl] fn__setPedIncreasedAvoidanceRadius; + private delegate* unmanaged[Cdecl] fn__setPedBlocksPathingWhenDead; private delegate* unmanaged[Cdecl] fn__setPedNoTimeDelayBeforeShot; private delegate* unmanaged[Cdecl] fn__isAnyPedNearPoint; - private delegate* unmanaged[Cdecl] fn__forcePedAiAndAnimationUpdate; - private delegate* unmanaged[Cdecl] fn__isPedHeadingTowardsPosition; - private delegate* unmanaged[Cdecl] fn__requestPedVisibilityTracking; - private delegate* unmanaged[Cdecl] fn__requestPedVehicleVisibilityTracking; - private delegate* unmanaged[Cdecl] fn__requestPedRestrictedVehicleVisibilityTracking; - private delegate* unmanaged[Cdecl] fn__requestPedUseSmallBboxVisibilityTracking; - private delegate* unmanaged[Cdecl] fn__isTrackedPedVisible; - private delegate* unmanaged[Cdecl] fn__getTrackedPedPixelcount; - private delegate* unmanaged[Cdecl] fn__isPedTracked; - private delegate* unmanaged[Cdecl] fn__hasPedReceivedEvent; - private delegate* unmanaged[Cdecl] fn__canPedSeeHatedPed; - private delegate* unmanaged[Cdecl] fn__canPedShuffleToOrFromTurretSeat; - private delegate* unmanaged[Cdecl] fn__canPedShuffleToOrFromExtraSeat; - private delegate* unmanaged[Cdecl] fn__getPedBoneIndex; - private delegate* unmanaged[Cdecl] fn__getPedRagdollBoneIndex; - private delegate* unmanaged[Cdecl] fn__setPedEnveffScale; - private delegate* unmanaged[Cdecl] fn__getPedEnveffScale; - private delegate* unmanaged[Cdecl] fn__setEnablePedEnveffScale; - private delegate* unmanaged[Cdecl] fn__setPedEnveffCpvAdd; - private delegate* unmanaged[Cdecl] fn__setPedEnveffColorModulator; - private delegate* unmanaged[Cdecl] fn__setPedEmissiveScale; - private delegate* unmanaged[Cdecl] fn__getPedEmissiveScale; - private delegate* unmanaged[Cdecl] fn__isPedShaderReady; - private delegate* unmanaged[Cdecl] fn__setPedEnableCrewEmblem; + private delegate* unmanaged[Cdecl] fn__forcePedAiAndAnimationUpdate; + private delegate* unmanaged[Cdecl] fn__isPedHeadingTowardsPosition; + private delegate* unmanaged[Cdecl] fn__requestPedVisibilityTracking; + private delegate* unmanaged[Cdecl] fn__requestPedVehicleVisibilityTracking; + private delegate* unmanaged[Cdecl] fn__requestPedRestrictedVehicleVisibilityTracking; + private delegate* unmanaged[Cdecl] fn__requestPedUseSmallBboxVisibilityTracking; + private delegate* unmanaged[Cdecl] fn__isTrackedPedVisible; + private delegate* unmanaged[Cdecl] fn__getTrackedPedPixelcount; + private delegate* unmanaged[Cdecl] fn__isPedTracked; + private delegate* unmanaged[Cdecl] fn__hasPedReceivedEvent; + private delegate* unmanaged[Cdecl] fn__canPedSeeHatedPed; + private delegate* unmanaged[Cdecl] fn__canPedShuffleToOrFromTurretSeat; + private delegate* unmanaged[Cdecl] fn__canPedShuffleToOrFromExtraSeat; + private delegate* unmanaged[Cdecl] fn__getPedBoneIndex; + private delegate* unmanaged[Cdecl] fn__getPedRagdollBoneIndex; + private delegate* unmanaged[Cdecl] fn__setPedEnveffScale; + private delegate* unmanaged[Cdecl] fn__getPedEnveffScale; + private delegate* unmanaged[Cdecl] fn__setEnablePedEnveffScale; + private delegate* unmanaged[Cdecl] fn__setPedEnveffCpvAdd; + private delegate* unmanaged[Cdecl] fn__setPedEnveffColorModulator; + private delegate* unmanaged[Cdecl] fn__setPedEmissiveScale; + private delegate* unmanaged[Cdecl] fn__getPedEmissiveScale; + private delegate* unmanaged[Cdecl] fn__isPedShaderReady; + private delegate* unmanaged[Cdecl] fn__setPedEnableCrewEmblem; private delegate* unmanaged[Cdecl] fn__requestRagdollBoundsUpdate; - private delegate* unmanaged[Cdecl] fn__setPedAoBlobRendering; - private delegate* unmanaged[Cdecl] fn__isPedSheltered; + private delegate* unmanaged[Cdecl] fn__setPedAoBlobRendering; + private delegate* unmanaged[Cdecl] fn__isPedSheltered; private delegate* unmanaged[Cdecl] fn__createSynchronizedScene; private delegate* unmanaged[Cdecl] fn__createSynchronizedSceneAtMapObject; private delegate* unmanaged[Cdecl] fn__isSynchronizedSceneRunning; @@ -31163,26 +31150,26 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__isSynchronizedSceneLooped; private delegate* unmanaged[Cdecl] fn__setSynchronizedSceneHoldLastFrame; private delegate* unmanaged[Cdecl] fn__isSynchronizedSceneHoldLastFrame; - private delegate* unmanaged[Cdecl] fn__attachSynchronizedSceneToEntity; + private delegate* unmanaged[Cdecl] fn__attachSynchronizedSceneToEntity; private delegate* unmanaged[Cdecl] fn__detachSynchronizedScene; private delegate* unmanaged[Cdecl] fn__takeOwnershipOfSynchronizedScene; - private delegate* unmanaged[Cdecl] fn__forcePedMotionState; - private delegate* unmanaged[Cdecl] fn__getPedCurrentMoveBlendRatio; - private delegate* unmanaged[Cdecl] fn__setPedMaxMoveBlendRatio; - private delegate* unmanaged[Cdecl] fn__setPedMinMoveBlendRatio; - private delegate* unmanaged[Cdecl] fn__setPedMoveRateOverride; - private delegate* unmanaged[Cdecl] fn__setPedMoveRateInWaterOverride; - private delegate* unmanaged[Cdecl] fn__pedHasSexinessFlagSet; - private delegate* unmanaged[Cdecl] fn__getPedNearbyVehicles; - private delegate* unmanaged[Cdecl] fn__getPedNearbyPeds; - private delegate* unmanaged[Cdecl] fn__haveAllStreamingRequestsCompleted; - private delegate* unmanaged[Cdecl] fn__isPedUsingActionMode; - private delegate* unmanaged[Cdecl] fn__setPedUsingActionMode; - private delegate* unmanaged[Cdecl] fn__setMovementModeOverride; - private delegate* unmanaged[Cdecl] fn__setPedCapsule; - private delegate* unmanaged[Cdecl] fn__registerPedheadshot; - private delegate* unmanaged[Cdecl] fn__registerPedheadshotHires; - private delegate* unmanaged[Cdecl] fn__registerPedheadshotTransparent; + private delegate* unmanaged[Cdecl] fn__forcePedMotionState; + private delegate* unmanaged[Cdecl] fn__getPedCurrentMoveBlendRatio; + private delegate* unmanaged[Cdecl] fn__setPedMaxMoveBlendRatio; + private delegate* unmanaged[Cdecl] fn__setPedMinMoveBlendRatio; + private delegate* unmanaged[Cdecl] fn__setPedMoveRateOverride; + private delegate* unmanaged[Cdecl] fn__setPedMoveRateInWaterOverride; + private delegate* unmanaged[Cdecl] fn__pedHasSexinessFlagSet; + private delegate* unmanaged[Cdecl] fn__getPedNearbyVehicles; + private delegate* unmanaged[Cdecl] fn__getPedNearbyPeds; + private delegate* unmanaged[Cdecl] fn__haveAllStreamingRequestsCompleted; + private delegate* unmanaged[Cdecl] fn__isPedUsingActionMode; + private delegate* unmanaged[Cdecl] fn__setPedUsingActionMode; + private delegate* unmanaged[Cdecl] fn__setMovementModeOverride; + private delegate* unmanaged[Cdecl] fn__setPedCapsule; + private delegate* unmanaged[Cdecl] fn__registerPedheadshot; + private delegate* unmanaged[Cdecl] fn__registerPedheadshotHires; + private delegate* unmanaged[Cdecl] fn__registerPedheadshotTransparent; private delegate* unmanaged[Cdecl] fn__unregisterPedheadshot; private delegate* unmanaged[Cdecl] fn__isPedheadshotValid; private delegate* unmanaged[Cdecl] fn__isPedheadshotReady; @@ -31192,8 +31179,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__isPedheadshotImgUploadAvailable; private delegate* unmanaged[Cdecl] fn__hasPedheadshotImgUploadFailed; private delegate* unmanaged[Cdecl] fn__hasPedheadshotImgUploadSucceeded; - private delegate* unmanaged[Cdecl] fn__setPedHeatscaleOverride; - private delegate* unmanaged[Cdecl] fn__disablePedHeatscaleOverride; + private delegate* unmanaged[Cdecl] fn__setPedHeatscaleOverride; + private delegate* unmanaged[Cdecl] fn__disablePedHeatscaleOverride; private delegate* unmanaged[Cdecl] fn__spawnpointsStartSearch; private delegate* unmanaged[Cdecl] fn__spawnpointsStartSearchInAngledArea; private delegate* unmanaged[Cdecl] fn__spawnpointsCancelSearch; @@ -31203,33 +31190,33 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__spawnpointsGetNumSearchResults; private delegate* unmanaged[Cdecl] fn__spawnpointsGetSearchResult; private delegate* unmanaged[Cdecl] fn__spawnpointsGetSearchResultFlags; - private delegate* unmanaged[Cdecl] fn__setIkTarget; - private delegate* unmanaged[Cdecl] fn__forceInstantLegIkSetup; + private delegate* unmanaged[Cdecl] fn__setIkTarget; + private delegate* unmanaged[Cdecl] fn__forceInstantLegIkSetup; private delegate* unmanaged[Cdecl] fn__requestActionModeAsset; private delegate* unmanaged[Cdecl] fn__hasActionModeAssetLoaded; private delegate* unmanaged[Cdecl] fn__removeActionModeAsset; private delegate* unmanaged[Cdecl] fn__requestStealthModeAsset; private delegate* unmanaged[Cdecl] fn__hasStealthModeAssetLoaded; private delegate* unmanaged[Cdecl] fn__removeStealthModeAsset; - private delegate* unmanaged[Cdecl] fn__setPedLodMultiplier; - private delegate* unmanaged[Cdecl] fn__setPedCanLosePropsOnDamage; - private delegate* unmanaged[Cdecl] fn__setForceFootstepUpdate; - private delegate* unmanaged[Cdecl] fn__setForceStepType; - private delegate* unmanaged[Cdecl] fn__isAnyHostilePedNearPoint; - private delegate* unmanaged[Cdecl] fn__setPedCanPlayInCarIdles; - private delegate* unmanaged[Cdecl] fn__isTargetPedInPerceptionArea; + private delegate* unmanaged[Cdecl] fn__setPedLodMultiplier; + private delegate* unmanaged[Cdecl] fn__setPedCanLosePropsOnDamage; + private delegate* unmanaged[Cdecl] fn__setForceFootstepUpdate; + private delegate* unmanaged[Cdecl] fn__setForceStepType; + private delegate* unmanaged[Cdecl] fn__isAnyHostilePedNearPoint; + private delegate* unmanaged[Cdecl] fn__setPedCanPlayInCarIdles; + private delegate* unmanaged[Cdecl] fn__isTargetPedInPerceptionArea; private delegate* unmanaged[Cdecl] fn__setPopControlSphereThisFrame; - private delegate* unmanaged[Cdecl] fn__forceZeroMassInCollisions; - private delegate* unmanaged[Cdecl] fn__setDisableHighFallDeath; + private delegate* unmanaged[Cdecl] fn__forceZeroMassInCollisions; + private delegate* unmanaged[Cdecl] fn__setDisableHighFallDeath; private delegate* unmanaged[Cdecl] fn__setPedPhonePaletteIdx; - private delegate* unmanaged[Cdecl] fn__setPedSteerBias; - private delegate* unmanaged[Cdecl] fn__isPedSwitchingWeapon; + private delegate* unmanaged[Cdecl] fn__setPedSteerBias; + private delegate* unmanaged[Cdecl] fn__isPedSwitchingWeapon; private delegate* unmanaged[Cdecl] fn__setPedTreatedAsFriendly; - private delegate* unmanaged[Cdecl] fn__setDisablePedMapCollision; - private delegate* unmanaged[Cdecl] fn__enableMpLight; - private delegate* unmanaged[Cdecl] fn__getMpLightEnabled; - private delegate* unmanaged[Cdecl] fn__clearCoverPointForPed; - private delegate* unmanaged[Cdecl] fn__setAllowStuntJumpCamera; + private delegate* unmanaged[Cdecl] fn__setDisablePedMapCollision; + private delegate* unmanaged[Cdecl] fn__enableMpLight; + private delegate* unmanaged[Cdecl] fn__getMpLightEnabled; + private delegate* unmanaged[Cdecl] fn__clearCoverPointForPed; + private delegate* unmanaged[Cdecl] fn__setAllowStuntJumpCamera; private delegate* unmanaged[Cdecl] fn__addRope; private delegate* unmanaged[Cdecl] fn__deleteRope; private delegate* unmanaged[Cdecl] fn__deleteChildRope; @@ -31240,9 +31227,9 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__pinRopeVertex; private delegate* unmanaged[Cdecl] fn__unpinRopeVertex; private delegate* unmanaged[Cdecl] fn__getRopeVertexCount; - private delegate* unmanaged[Cdecl] fn__attachEntitiesToRope; - private delegate* unmanaged[Cdecl] fn__attachRopeToEntity; - private delegate* unmanaged[Cdecl] fn__detachRopeFromEntity; + private delegate* unmanaged[Cdecl] fn__attachEntitiesToRope; + private delegate* unmanaged[Cdecl] fn__attachRopeToEntity; + private delegate* unmanaged[Cdecl] fn__detachRopeFromEntity; private delegate* unmanaged[Cdecl] fn__ropeSetUpdatePinverts; private delegate* unmanaged[Cdecl] fn__ropeSetUpdateOrder; private delegate* unmanaged[Cdecl] fn__ropeSetSmoothReelin; @@ -31265,121 +31252,121 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__ropeForceLength; private delegate* unmanaged[Cdecl] fn__ropeResetLength; private delegate* unmanaged[Cdecl] fn__applyImpulseToCloth; - private delegate* unmanaged[Cdecl] fn__setDamping; - private delegate* unmanaged[Cdecl] fn__activatePhysics; - private delegate* unmanaged[Cdecl] fn__setCgoffset; - private delegate* unmanaged[Cdecl] fn__getCgoffset; - private delegate* unmanaged[Cdecl] fn__setCgAtBoundcenter; - private delegate* unmanaged[Cdecl] fn__breakEntityGlass; - private delegate* unmanaged[Cdecl] fn__getIsEntityAFrag; - private delegate* unmanaged[Cdecl] fn__setDisableBreaking; - private delegate* unmanaged[Cdecl] fn__resetDisableBreaking; - private delegate* unmanaged[Cdecl] fn__setDisableFragDamage; - private delegate* unmanaged[Cdecl] fn__setUseKinematicPhysics; + private delegate* unmanaged[Cdecl] fn__setDamping; + private delegate* unmanaged[Cdecl] fn__activatePhysics; + private delegate* unmanaged[Cdecl] fn__setCgoffset; + private delegate* unmanaged[Cdecl] fn__getCgoffset; + private delegate* unmanaged[Cdecl] fn__setCgAtBoundcenter; + private delegate* unmanaged[Cdecl] fn__breakEntityGlass; + private delegate* unmanaged[Cdecl] fn__getIsEntityAFrag; + private delegate* unmanaged[Cdecl] fn__setDisableBreaking; + private delegate* unmanaged[Cdecl] fn__resetDisableBreaking; + private delegate* unmanaged[Cdecl] fn__setDisableFragDamage; + private delegate* unmanaged[Cdecl] fn__setUseKinematicPhysics; private delegate* unmanaged[Cdecl] fn__setInStuntMode; private delegate* unmanaged[Cdecl] fn__setInArenaMode; - private delegate* unmanaged[Cdecl] fn__getPlayerPed; - private delegate* unmanaged[Cdecl] fn__getPlayerPedScriptIndex; - private delegate* unmanaged[Cdecl] fn__setPlayerModel; - private delegate* unmanaged[Cdecl] fn__changePlayerPed; - private delegate* unmanaged[Cdecl] fn__getPlayerRgbColour; + private delegate* unmanaged[Cdecl] fn__getPlayerPed; + private delegate* unmanaged[Cdecl] fn__getPlayerPedScriptIndex; + private delegate* unmanaged[Cdecl] fn__setPlayerModel; + private delegate* unmanaged[Cdecl] fn__changePlayerPed; + private delegate* unmanaged[Cdecl] fn__getPlayerRgbColour; private delegate* unmanaged[Cdecl] fn__getNumberOfPlayers; - private delegate* unmanaged[Cdecl] fn__getPlayerTeam; - private delegate* unmanaged[Cdecl] fn__setPlayerTeam; + private delegate* unmanaged[Cdecl] fn__getPlayerTeam; + private delegate* unmanaged[Cdecl] fn__setPlayerTeam; private delegate* unmanaged[Cdecl] fn__getNumberOfPlayersInTeam; - private delegate* unmanaged[Cdecl] fn__getPlayerName; - private delegate* unmanaged[Cdecl] fn__getWantedLevelRadius; - private delegate* unmanaged[Cdecl] fn__getPlayerWantedCentrePosition; - private delegate* unmanaged[Cdecl] fn__setPlayerWantedCentrePosition; + private delegate* unmanaged[Cdecl] fn__getPlayerName; + private delegate* unmanaged[Cdecl] fn__getWantedLevelRadius; + private delegate* unmanaged[Cdecl] fn__getPlayerWantedCentrePosition; + private delegate* unmanaged[Cdecl] fn__setPlayerWantedCentrePosition; private delegate* unmanaged[Cdecl] fn__getWantedLevelThreshold; - private delegate* unmanaged[Cdecl] fn__setPlayerWantedLevel; - private delegate* unmanaged[Cdecl] fn__setPlayerWantedLevelNoDrop; - private delegate* unmanaged[Cdecl] fn__setPlayerWantedLevelNow; - private delegate* unmanaged[Cdecl] fn__arePlayerFlashingStarsAboutToDrop; - private delegate* unmanaged[Cdecl] fn__arePlayerStarsGreyedOut; - private delegate* unmanaged[Cdecl] fn__isWantedAndHasBeenSeenByCops; - private delegate* unmanaged[Cdecl] fn__setDispatchCopsForPlayer; - private delegate* unmanaged[Cdecl] fn__isPlayerWantedLevelGreater; - private delegate* unmanaged[Cdecl] fn__clearPlayerWantedLevel; - private delegate* unmanaged[Cdecl] fn__isPlayerDead; - private delegate* unmanaged[Cdecl] fn__isPlayerPressingHorn; - private delegate* unmanaged[Cdecl] fn__setPlayerControl; - private delegate* unmanaged[Cdecl] fn__getPlayerWantedLevel; + private delegate* unmanaged[Cdecl] fn__setPlayerWantedLevel; + private delegate* unmanaged[Cdecl] fn__setPlayerWantedLevelNoDrop; + private delegate* unmanaged[Cdecl] fn__setPlayerWantedLevelNow; + private delegate* unmanaged[Cdecl] fn__arePlayerFlashingStarsAboutToDrop; + private delegate* unmanaged[Cdecl] fn__arePlayerStarsGreyedOut; + private delegate* unmanaged[Cdecl] fn__isWantedAndHasBeenSeenByCops; + private delegate* unmanaged[Cdecl] fn__setDispatchCopsForPlayer; + private delegate* unmanaged[Cdecl] fn__isPlayerWantedLevelGreater; + private delegate* unmanaged[Cdecl] fn__clearPlayerWantedLevel; + private delegate* unmanaged[Cdecl] fn__isPlayerDead; + private delegate* unmanaged[Cdecl] fn__isPlayerPressingHorn; + private delegate* unmanaged[Cdecl] fn__setPlayerControl; + private delegate* unmanaged[Cdecl] fn__getPlayerWantedLevel; private delegate* unmanaged[Cdecl] fn__setMaxWantedLevel; private delegate* unmanaged[Cdecl] fn__setPoliceRadarBlips; - private delegate* unmanaged[Cdecl] fn__setPoliceIgnorePlayer; - private delegate* unmanaged[Cdecl] fn__isPlayerPlaying; - private delegate* unmanaged[Cdecl] fn__setEveryoneIgnorePlayer; - private delegate* unmanaged[Cdecl] fn__setAllRandomPedsFlee; - private delegate* unmanaged[Cdecl] fn__setAllRandomPedsFleeThisFrame; - private delegate* unmanaged[Cdecl] fn__setAllNeutralRandomPedsFlee; - private delegate* unmanaged[Cdecl] fn__setAllNeutralRandomPedsFleeThisFrame; - private delegate* unmanaged[Cdecl] fn__setLawPedsCanAttackNonWantedPlayerThisFrame; - private delegate* unmanaged[Cdecl] fn__setIgnoreLowPriorityShockingEvents; + private delegate* unmanaged[Cdecl] fn__setPoliceIgnorePlayer; + private delegate* unmanaged[Cdecl] fn__isPlayerPlaying; + private delegate* unmanaged[Cdecl] fn__setEveryoneIgnorePlayer; + private delegate* unmanaged[Cdecl] fn__setAllRandomPedsFlee; + private delegate* unmanaged[Cdecl] fn__setAllRandomPedsFleeThisFrame; + private delegate* unmanaged[Cdecl] fn__setAllNeutralRandomPedsFlee; + private delegate* unmanaged[Cdecl] fn__setAllNeutralRandomPedsFleeThisFrame; + private delegate* unmanaged[Cdecl] fn__setLawPedsCanAttackNonWantedPlayerThisFrame; + private delegate* unmanaged[Cdecl] fn__setIgnoreLowPriorityShockingEvents; private delegate* unmanaged[Cdecl] fn__setWantedLevelMultiplier; - private delegate* unmanaged[Cdecl] fn__setWantedLevelDifficulty; - private delegate* unmanaged[Cdecl] fn__resetWantedLevelDifficulty; + private delegate* unmanaged[Cdecl] fn__setWantedLevelDifficulty; + private delegate* unmanaged[Cdecl] fn__resetWantedLevelDifficulty; private delegate* unmanaged[Cdecl] fn__getWantedLevelTimeToEscape; - private delegate* unmanaged[Cdecl] fn__setWantedLevelHiddenEscapeTime; - private delegate* unmanaged[Cdecl] fn__resetWantedLevelHiddenEscapeTime; + private delegate* unmanaged[Cdecl] fn__setWantedLevelHiddenEscapeTime; + private delegate* unmanaged[Cdecl] fn__resetWantedLevelHiddenEscapeTime; private delegate* unmanaged[Cdecl] fn__startFiringAmnesty; - private delegate* unmanaged[Cdecl] fn__reportCrime; - private delegate* unmanaged[Cdecl] fn__suppressCrimeThisFrame; - private delegate* unmanaged[Cdecl] fn__updateWantedPositionThisFrame; - private delegate* unmanaged[Cdecl] fn__suppressLosingWantedLevelIfHiddenThisFrame; - private delegate* unmanaged[Cdecl] fn__allowEvasionHudIfDisablingHiddenEvasionThisFrame; - private delegate* unmanaged[Cdecl] fn__forceStartHiddenEvasion; - private delegate* unmanaged[Cdecl] fn__suppressWitnessesCallingPoliceThisFrame; - private delegate* unmanaged[Cdecl] fn__reportPoliceSpottedPlayer; + private delegate* unmanaged[Cdecl] fn__reportCrime; + private delegate* unmanaged[Cdecl] fn__suppressCrimeThisFrame; + private delegate* unmanaged[Cdecl] fn__updateWantedPositionThisFrame; + private delegate* unmanaged[Cdecl] fn__suppressLosingWantedLevelIfHiddenThisFrame; + private delegate* unmanaged[Cdecl] fn__allowEvasionHudIfDisablingHiddenEvasionThisFrame; + private delegate* unmanaged[Cdecl] fn__forceStartHiddenEvasion; + private delegate* unmanaged[Cdecl] fn__suppressWitnessesCallingPoliceThisFrame; + private delegate* unmanaged[Cdecl] fn__reportPoliceSpottedPlayer; private delegate* unmanaged[Cdecl] fn__setLawResponseDelayOverride; private delegate* unmanaged[Cdecl] fn__resetLawResponseDelayOverride; - private delegate* unmanaged[Cdecl] fn__canPlayerStartMission; - private delegate* unmanaged[Cdecl] fn__isPlayerReadyForCutscene; - private delegate* unmanaged[Cdecl] fn__isPlayerTargettingEntity; - private delegate* unmanaged[Cdecl] fn__getPlayerTargetEntity; - private delegate* unmanaged[Cdecl] fn__isPlayerFreeAiming; - private delegate* unmanaged[Cdecl] fn__isPlayerFreeAimingAtEntity; - private delegate* unmanaged[Cdecl] fn__getEntityPlayerIsFreeAimingAt; - private delegate* unmanaged[Cdecl] fn__setPlayerLockonRangeOverride; - private delegate* unmanaged[Cdecl] fn__setPlayerCanDoDriveBy; - private delegate* unmanaged[Cdecl] fn__setPlayerCanBeHassledByGangs; - private delegate* unmanaged[Cdecl] fn__setPlayerCanUseCover; + private delegate* unmanaged[Cdecl] fn__canPlayerStartMission; + private delegate* unmanaged[Cdecl] fn__isPlayerReadyForCutscene; + private delegate* unmanaged[Cdecl] fn__isPlayerTargettingEntity; + private delegate* unmanaged[Cdecl] fn__getPlayerTargetEntity; + private delegate* unmanaged[Cdecl] fn__isPlayerFreeAiming; + private delegate* unmanaged[Cdecl] fn__isPlayerFreeAimingAtEntity; + private delegate* unmanaged[Cdecl] fn__getEntityPlayerIsFreeAimingAt; + private delegate* unmanaged[Cdecl] fn__setPlayerLockonRangeOverride; + private delegate* unmanaged[Cdecl] fn__setPlayerCanDoDriveBy; + private delegate* unmanaged[Cdecl] fn__setPlayerCanBeHassledByGangs; + private delegate* unmanaged[Cdecl] fn__setPlayerCanUseCover; private delegate* unmanaged[Cdecl] fn__getMaxWantedLevel; - private delegate* unmanaged[Cdecl] fn__isPlayerTargettingAnything; - private delegate* unmanaged[Cdecl] fn__setPlayerSprint; - private delegate* unmanaged[Cdecl] fn__resetPlayerStamina; - private delegate* unmanaged[Cdecl] fn__restorePlayerStamina; - private delegate* unmanaged[Cdecl] fn__getPlayerSprintStaminaRemaining; - private delegate* unmanaged[Cdecl] fn__getPlayerSprintTimeRemaining; - private delegate* unmanaged[Cdecl] fn__getPlayerUnderwaterTimeRemaining; - private delegate* unmanaged[Cdecl] fn__setPlayerUnderwaterBreathPercentRemaining; - private delegate* unmanaged[Cdecl] fn__getPlayerGroup; - private delegate* unmanaged[Cdecl] fn__getPlayerMaxArmour; - private delegate* unmanaged[Cdecl] fn__isPlayerControlOn; + private delegate* unmanaged[Cdecl] fn__isPlayerTargettingAnything; + private delegate* unmanaged[Cdecl] fn__setPlayerSprint; + private delegate* unmanaged[Cdecl] fn__resetPlayerStamina; + private delegate* unmanaged[Cdecl] fn__restorePlayerStamina; + private delegate* unmanaged[Cdecl] fn__getPlayerSprintStaminaRemaining; + private delegate* unmanaged[Cdecl] fn__getPlayerSprintTimeRemaining; + private delegate* unmanaged[Cdecl] fn__getPlayerUnderwaterTimeRemaining; + private delegate* unmanaged[Cdecl] fn__setPlayerUnderwaterBreathPercentRemaining; + private delegate* unmanaged[Cdecl] fn__getPlayerGroup; + private delegate* unmanaged[Cdecl] fn__getPlayerMaxArmour; + private delegate* unmanaged[Cdecl] fn__isPlayerControlOn; private delegate* unmanaged[Cdecl] fn__getAreCameraControlsDisabled; - private delegate* unmanaged[Cdecl] fn__isPlayerScriptControlOn; - private delegate* unmanaged[Cdecl] fn__isPlayerClimbing; - private delegate* unmanaged[Cdecl] fn__isPlayerBeingArrested; - private delegate* unmanaged[Cdecl] fn__resetPlayerArrestState; - private delegate* unmanaged[Cdecl] fn__getPlayersLastVehicle; - private delegate* unmanaged[Cdecl] fn__getPlayerIndex; - private delegate* unmanaged[Cdecl] fn__intToPlayerindex; + private delegate* unmanaged[Cdecl] fn__isPlayerScriptControlOn; + private delegate* unmanaged[Cdecl] fn__isPlayerClimbing; + private delegate* unmanaged[Cdecl] fn__isPlayerBeingArrested; + private delegate* unmanaged[Cdecl] fn__resetPlayerArrestState; + private delegate* unmanaged[Cdecl] fn__getPlayersLastVehicle; + private delegate* unmanaged[Cdecl] fn__getPlayerIndex; + private delegate* unmanaged[Cdecl] fn__intToPlayerindex; private delegate* unmanaged[Cdecl] fn__intToParticipantindex; - private delegate* unmanaged[Cdecl] fn__getTimeSincePlayerHitVehicle; - private delegate* unmanaged[Cdecl] fn__getTimeSincePlayerHitPed; - private delegate* unmanaged[Cdecl] fn__getTimeSincePlayerDroveOnPavement; - private delegate* unmanaged[Cdecl] fn__getTimeSincePlayerDroveAgainstTraffic; - private delegate* unmanaged[Cdecl] fn__isPlayerFreeForAmbientTask; - private delegate* unmanaged[Cdecl] fn__playerId; - private delegate* unmanaged[Cdecl] fn__playerPedId; + private delegate* unmanaged[Cdecl] fn__getTimeSincePlayerHitVehicle; + private delegate* unmanaged[Cdecl] fn__getTimeSincePlayerHitPed; + private delegate* unmanaged[Cdecl] fn__getTimeSincePlayerDroveOnPavement; + private delegate* unmanaged[Cdecl] fn__getTimeSincePlayerDroveAgainstTraffic; + private delegate* unmanaged[Cdecl] fn__isPlayerFreeForAmbientTask; + private delegate* unmanaged[Cdecl] fn__playerId; + private delegate* unmanaged[Cdecl] fn__playerPedId; private delegate* unmanaged[Cdecl] fn__networkPlayerIdToInt; private delegate* unmanaged[Cdecl] fn__hasForceCleanupOccurred; private delegate* unmanaged[Cdecl] fn__forceCleanup; private delegate* unmanaged[Cdecl] fn__forceCleanupForAllThreadsWithThisName; private delegate* unmanaged[Cdecl] fn__forceCleanupForThreadWithThisId; private delegate* unmanaged[Cdecl] fn__getCauseOfMostRecentForceCleanup; - private delegate* unmanaged[Cdecl] fn__setPlayerMayOnlyEnterThisVehicle; - private delegate* unmanaged[Cdecl] fn__setPlayerMayNotEnterAnyVehicle; + private delegate* unmanaged[Cdecl] fn__setPlayerMayOnlyEnterThisVehicle; + private delegate* unmanaged[Cdecl] fn__setPlayerMayNotEnterAnyVehicle; private delegate* unmanaged[Cdecl] fn__giveAchievementToPlayer; private delegate* unmanaged[Cdecl] fn__setAchievementProgress; private delegate* unmanaged[Cdecl] fn__getAchievementProgress; @@ -31388,142 +31375,142 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__isPlayerLoggingInNp; private delegate* unmanaged[Cdecl] fn__displaySystemSigninUi; private delegate* unmanaged[Cdecl] fn__isSystemUiBeingDisplayed; - private delegate* unmanaged[Cdecl] fn__setPlayerInvincible; - private delegate* unmanaged[Cdecl] fn__getPlayerInvincible; - private delegate* unmanaged[Cdecl] fn__getPlayerDebugInvincible; - private delegate* unmanaged[Cdecl] fn__setPlayerInvincibleButHasReactions; - private delegate* unmanaged[Cdecl] fn__setPlayerCanCollectDroppedMoney; - private delegate* unmanaged[Cdecl] fn__removePlayerHelmet; - private delegate* unmanaged[Cdecl] fn__givePlayerRagdollControl; - private delegate* unmanaged[Cdecl] fn__setPlayerLockon; + private delegate* unmanaged[Cdecl] fn__setPlayerInvincible; + private delegate* unmanaged[Cdecl] fn__getPlayerInvincible; + private delegate* unmanaged[Cdecl] fn__getPlayerDebugInvincible; + private delegate* unmanaged[Cdecl] fn__setPlayerInvincibleButHasReactions; + private delegate* unmanaged[Cdecl] fn__setPlayerCanCollectDroppedMoney; + private delegate* unmanaged[Cdecl] fn__removePlayerHelmet; + private delegate* unmanaged[Cdecl] fn__givePlayerRagdollControl; + private delegate* unmanaged[Cdecl] fn__setPlayerLockon; private delegate* unmanaged[Cdecl] fn__setPlayerTargetingMode; private delegate* unmanaged[Cdecl] fn__setPlayerTargetLevel; private delegate* unmanaged[Cdecl] fn__getIsUsingFpsThirdPersonCover; private delegate* unmanaged[Cdecl] fn__getIsUsingHoodCamera; - private delegate* unmanaged[Cdecl] fn__clearPlayerHasDamagedAtLeastOnePed; - private delegate* unmanaged[Cdecl] fn__hasPlayerDamagedAtLeastOnePed; - private delegate* unmanaged[Cdecl] fn__clearPlayerHasDamagedAtLeastOneNonAnimalPed; - private delegate* unmanaged[Cdecl] fn__hasPlayerDamagedAtLeastOneNonAnimalPed; - private delegate* unmanaged[Cdecl] fn__setAirDragMultiplierForPlayersVehicle; - private delegate* unmanaged[Cdecl] fn__setSwimMultiplierForPlayer; - private delegate* unmanaged[Cdecl] fn__setRunSprintMultiplierForPlayer; + private delegate* unmanaged[Cdecl] fn__clearPlayerHasDamagedAtLeastOnePed; + private delegate* unmanaged[Cdecl] fn__hasPlayerDamagedAtLeastOnePed; + private delegate* unmanaged[Cdecl] fn__clearPlayerHasDamagedAtLeastOneNonAnimalPed; + private delegate* unmanaged[Cdecl] fn__hasPlayerDamagedAtLeastOneNonAnimalPed; + private delegate* unmanaged[Cdecl] fn__setAirDragMultiplierForPlayersVehicle; + private delegate* unmanaged[Cdecl] fn__setSwimMultiplierForPlayer; + private delegate* unmanaged[Cdecl] fn__setRunSprintMultiplierForPlayer; private delegate* unmanaged[Cdecl] fn__getTimeSinceLastArrest; private delegate* unmanaged[Cdecl] fn__getTimeSinceLastDeath; private delegate* unmanaged[Cdecl] fn__assistedMovementCloseRoute; private delegate* unmanaged[Cdecl] fn__assistedMovementFlushRoute; - private delegate* unmanaged[Cdecl] fn__setPlayerForcedAim; - private delegate* unmanaged[Cdecl] fn__setPlayerForcedZoom; - private delegate* unmanaged[Cdecl] fn__setPlayerForceSkipAimIntro; - private delegate* unmanaged[Cdecl] fn__disablePlayerFiring; + private delegate* unmanaged[Cdecl] fn__setPlayerForcedAim; + private delegate* unmanaged[Cdecl] fn__setPlayerForcedZoom; + private delegate* unmanaged[Cdecl] fn__setPlayerForceSkipAimIntro; + private delegate* unmanaged[Cdecl] fn__disablePlayerFiring; private delegate* unmanaged[Cdecl] fn__disablePlayerThrowGrenadeWhileUsingGun; - private delegate* unmanaged[Cdecl] fn__setDisableAmbientMeleeMove; - private delegate* unmanaged[Cdecl] fn__setPlayerMaxArmour; - private delegate* unmanaged[Cdecl] fn__specialAbilityActivate; - private delegate* unmanaged[Cdecl] fn__setSpecialAbilityMp; - private delegate* unmanaged[Cdecl] fn__specialAbilityDeactivateMp; - private delegate* unmanaged[Cdecl] fn__specialAbilityDeactivate; - private delegate* unmanaged[Cdecl] fn__specialAbilityDeactivateFast; - private delegate* unmanaged[Cdecl] fn__specialAbilityReset; - private delegate* unmanaged[Cdecl] fn__specialAbilityChargeOnMissionFailed; - private delegate* unmanaged[Cdecl] fn__specialAbilityChargeSmall; - private delegate* unmanaged[Cdecl] fn__specialAbilityChargeMedium; - private delegate* unmanaged[Cdecl] fn__specialAbilityChargeLarge; - private delegate* unmanaged[Cdecl] fn__specialAbilityChargeContinuous; - private delegate* unmanaged[Cdecl] fn__specialAbilityChargeAbsolute; - private delegate* unmanaged[Cdecl] fn__specialAbilityChargeNormalized; - private delegate* unmanaged[Cdecl] fn__specialAbilityFillMeter; - private delegate* unmanaged[Cdecl] fn__specialAbilityDepleteMeter; + private delegate* unmanaged[Cdecl] fn__setDisableAmbientMeleeMove; + private delegate* unmanaged[Cdecl] fn__setPlayerMaxArmour; + private delegate* unmanaged[Cdecl] fn__specialAbilityActivate; + private delegate* unmanaged[Cdecl] fn__setSpecialAbilityMp; + private delegate* unmanaged[Cdecl] fn__specialAbilityDeactivateMp; + private delegate* unmanaged[Cdecl] fn__specialAbilityDeactivate; + private delegate* unmanaged[Cdecl] fn__specialAbilityDeactivateFast; + private delegate* unmanaged[Cdecl] fn__specialAbilityReset; + private delegate* unmanaged[Cdecl] fn__specialAbilityChargeOnMissionFailed; + private delegate* unmanaged[Cdecl] fn__specialAbilityChargeSmall; + private delegate* unmanaged[Cdecl] fn__specialAbilityChargeMedium; + private delegate* unmanaged[Cdecl] fn__specialAbilityChargeLarge; + private delegate* unmanaged[Cdecl] fn__specialAbilityChargeContinuous; + private delegate* unmanaged[Cdecl] fn__specialAbilityChargeAbsolute; + private delegate* unmanaged[Cdecl] fn__specialAbilityChargeNormalized; + private delegate* unmanaged[Cdecl] fn__specialAbilityFillMeter; + private delegate* unmanaged[Cdecl] fn__specialAbilityDepleteMeter; private delegate* unmanaged[Cdecl] fn__specialAbilityLock; private delegate* unmanaged[Cdecl] fn__specialAbilityUnlock; private delegate* unmanaged[Cdecl] fn__isSpecialAbilityUnlocked; - private delegate* unmanaged[Cdecl] fn__isSpecialAbilityActive; - private delegate* unmanaged[Cdecl] fn__isSpecialAbilityMeterFull; - private delegate* unmanaged[Cdecl] fn__enableSpecialAbility; - private delegate* unmanaged[Cdecl] fn__isSpecialAbilityEnabled; + private delegate* unmanaged[Cdecl] fn__isSpecialAbilityActive; + private delegate* unmanaged[Cdecl] fn__isSpecialAbilityMeterFull; + private delegate* unmanaged[Cdecl] fn__enableSpecialAbility; + private delegate* unmanaged[Cdecl] fn__isSpecialAbilityEnabled; private delegate* unmanaged[Cdecl] fn__setSpecialAbilityMultiplier; - private delegate* unmanaged[Cdecl] fn__updateSpecialAbilityFromStat; - private delegate* unmanaged[Cdecl] fn__getIsPlayerDrivingOnHighway; - private delegate* unmanaged[Cdecl] fn__getIsPlayerDrivingWreckless; - private delegate* unmanaged[Cdecl] fn__getIsMoppingAreaFreeInFrontOfPlayer; - private delegate* unmanaged[Cdecl] fn__startPlayerTeleport; - private delegate* unmanaged[Cdecl] fn__updatePlayerTeleport; + private delegate* unmanaged[Cdecl] fn__updateSpecialAbilityFromStat; + private delegate* unmanaged[Cdecl] fn__getIsPlayerDrivingOnHighway; + private delegate* unmanaged[Cdecl] fn__getIsPlayerDrivingWreckless; + private delegate* unmanaged[Cdecl] fn__getIsMoppingAreaFreeInFrontOfPlayer; + private delegate* unmanaged[Cdecl] fn__startPlayerTeleport; + private delegate* unmanaged[Cdecl] fn__updatePlayerTeleport; private delegate* unmanaged[Cdecl] fn__stopPlayerTeleport; private delegate* unmanaged[Cdecl] fn__isPlayerTeleportActive; - private delegate* unmanaged[Cdecl] fn__getPlayerCurrentStealthNoise; - private delegate* unmanaged[Cdecl] fn__setPlayerHealthRechargeMultiplier; - private delegate* unmanaged[Cdecl] fn__getPlayerHealthRechargeMaxPercent; - private delegate* unmanaged[Cdecl] fn__setPlayerHealthRechargeMaxPercent; - private delegate* unmanaged[Cdecl] fn__setPlayerFallDistanceToTriggerRagdollOverride; - private delegate* unmanaged[Cdecl] fn__setPlayerWeaponDamageModifier; - private delegate* unmanaged[Cdecl] fn__setPlayerWeaponDefenseModifier; - private delegate* unmanaged[Cdecl] fn__setPlayerWeaponMinigunDefenseModifier; - private delegate* unmanaged[Cdecl] fn__setPlayerMeleeWeaponDamageModifier; - private delegate* unmanaged[Cdecl] fn__setPlayerMeleeWeaponDefenseModifier; - private delegate* unmanaged[Cdecl] fn__setPlayerVehicleDamageModifier; - private delegate* unmanaged[Cdecl] fn__setPlayerVehicleDefenseModifier; - private delegate* unmanaged[Cdecl] fn__setPlayerMaxExplosiveDamage; - private delegate* unmanaged[Cdecl] fn__setPlayerExplosiveDamageModifier; - private delegate* unmanaged[Cdecl] fn__setPlayerWeaponTakedownDefenseModifier; - private delegate* unmanaged[Cdecl] fn__setPlayerParachuteTintIndex; - private delegate* unmanaged[Cdecl] fn__getPlayerParachuteTintIndex; - private delegate* unmanaged[Cdecl] fn__setPlayerReserveParachuteTintIndex; - private delegate* unmanaged[Cdecl] fn__getPlayerReserveParachuteTintIndex; - private delegate* unmanaged[Cdecl] fn__setPlayerParachutePackTintIndex; - private delegate* unmanaged[Cdecl] fn__getPlayerParachutePackTintIndex; - private delegate* unmanaged[Cdecl] fn__setPlayerHasReserveParachute; - private delegate* unmanaged[Cdecl] fn__getPlayerHasReserveParachute; - private delegate* unmanaged[Cdecl] fn__setPlayerCanLeaveParachuteSmokeTrail; - private delegate* unmanaged[Cdecl] fn__setPlayerParachuteSmokeTrailColor; - private delegate* unmanaged[Cdecl] fn__getPlayerParachuteSmokeTrailColor; - private delegate* unmanaged[Cdecl] fn__setPlayerPhonePaletteIdx; - private delegate* unmanaged[Cdecl] fn__setPlayerNoiseMultiplier; - private delegate* unmanaged[Cdecl] fn__setPlayerSneakingNoiseMultiplier; - private delegate* unmanaged[Cdecl] fn__canPedHearPlayer; - private delegate* unmanaged[Cdecl] fn__simulatePlayerInputGait; - private delegate* unmanaged[Cdecl] fn__resetPlayerInputGait; - private delegate* unmanaged[Cdecl] fn__setAutoGiveParachuteWhenEnterPlane; - private delegate* unmanaged[Cdecl] fn__setAutoGiveScubaGearWhenExitVehicle; - private delegate* unmanaged[Cdecl] fn__setPlayerStealthPerceptionModifier; - private delegate* unmanaged[Cdecl] fn__isRemotePlayerInNonClonedVehicle; - private delegate* unmanaged[Cdecl] fn__increasePlayerJumpSuppressionRange; - private delegate* unmanaged[Cdecl] fn__setPlayerSimulateAiming; - private delegate* unmanaged[Cdecl] fn__setPlayerClothPinFrames; + private delegate* unmanaged[Cdecl] fn__getPlayerCurrentStealthNoise; + private delegate* unmanaged[Cdecl] fn__setPlayerHealthRechargeMultiplier; + private delegate* unmanaged[Cdecl] fn__getPlayerHealthRechargeMaxPercent; + private delegate* unmanaged[Cdecl] fn__setPlayerHealthRechargeMaxPercent; + private delegate* unmanaged[Cdecl] fn__setPlayerFallDistanceToTriggerRagdollOverride; + private delegate* unmanaged[Cdecl] fn__setPlayerWeaponDamageModifier; + private delegate* unmanaged[Cdecl] fn__setPlayerWeaponDefenseModifier; + private delegate* unmanaged[Cdecl] fn__setPlayerWeaponMinigunDefenseModifier; + private delegate* unmanaged[Cdecl] fn__setPlayerMeleeWeaponDamageModifier; + private delegate* unmanaged[Cdecl] fn__setPlayerMeleeWeaponDefenseModifier; + private delegate* unmanaged[Cdecl] fn__setPlayerVehicleDamageModifier; + private delegate* unmanaged[Cdecl] fn__setPlayerVehicleDefenseModifier; + private delegate* unmanaged[Cdecl] fn__setPlayerMaxExplosiveDamage; + private delegate* unmanaged[Cdecl] fn__setPlayerExplosiveDamageModifier; + private delegate* unmanaged[Cdecl] fn__setPlayerWeaponTakedownDefenseModifier; + private delegate* unmanaged[Cdecl] fn__setPlayerParachuteTintIndex; + private delegate* unmanaged[Cdecl] fn__getPlayerParachuteTintIndex; + private delegate* unmanaged[Cdecl] fn__setPlayerReserveParachuteTintIndex; + private delegate* unmanaged[Cdecl] fn__getPlayerReserveParachuteTintIndex; + private delegate* unmanaged[Cdecl] fn__setPlayerParachutePackTintIndex; + private delegate* unmanaged[Cdecl] fn__getPlayerParachutePackTintIndex; + private delegate* unmanaged[Cdecl] fn__setPlayerHasReserveParachute; + private delegate* unmanaged[Cdecl] fn__getPlayerHasReserveParachute; + private delegate* unmanaged[Cdecl] fn__setPlayerCanLeaveParachuteSmokeTrail; + private delegate* unmanaged[Cdecl] fn__setPlayerParachuteSmokeTrailColor; + private delegate* unmanaged[Cdecl] fn__getPlayerParachuteSmokeTrailColor; + private delegate* unmanaged[Cdecl] fn__setPlayerPhonePaletteIdx; + private delegate* unmanaged[Cdecl] fn__setPlayerNoiseMultiplier; + private delegate* unmanaged[Cdecl] fn__setPlayerSneakingNoiseMultiplier; + private delegate* unmanaged[Cdecl] fn__canPedHearPlayer; + private delegate* unmanaged[Cdecl] fn__simulatePlayerInputGait; + private delegate* unmanaged[Cdecl] fn__resetPlayerInputGait; + private delegate* unmanaged[Cdecl] fn__setAutoGiveParachuteWhenEnterPlane; + private delegate* unmanaged[Cdecl] fn__setAutoGiveScubaGearWhenExitVehicle; + private delegate* unmanaged[Cdecl] fn__setPlayerStealthPerceptionModifier; + private delegate* unmanaged[Cdecl] fn__isRemotePlayerInNonClonedVehicle; + private delegate* unmanaged[Cdecl] fn__increasePlayerJumpSuppressionRange; + private delegate* unmanaged[Cdecl] fn__setPlayerSimulateAiming; + private delegate* unmanaged[Cdecl] fn__setPlayerClothPinFrames; private delegate* unmanaged[Cdecl] fn__setPlayerClothPackageIndex; private delegate* unmanaged[Cdecl] fn__setPlayerClothLockCounter; private delegate* unmanaged[Cdecl] fn__playerAttachVirtualBound; private delegate* unmanaged[Cdecl] fn__playerDetachVirtualBound; - private delegate* unmanaged[Cdecl] fn__hasPlayerBeenSpottedInStolenVehicle; - private delegate* unmanaged[Cdecl] fn__isPlayerBattleAware; - private delegate* unmanaged[Cdecl] fn__getPlayerReceivedBattleEventRecently; + private delegate* unmanaged[Cdecl] fn__hasPlayerBeenSpottedInStolenVehicle; + private delegate* unmanaged[Cdecl] fn__isPlayerBattleAware; + private delegate* unmanaged[Cdecl] fn__getPlayerReceivedBattleEventRecently; private delegate* unmanaged[Cdecl] fn__extendWorldBoundaryForPlayer; private delegate* unmanaged[Cdecl] fn__resetWorldBoundaryForPlayer; - private delegate* unmanaged[Cdecl] fn__isPlayerRidingTrain; - private delegate* unmanaged[Cdecl] fn__hasPlayerLeftTheWorld; - private delegate* unmanaged[Cdecl] fn__setPlayerLeavePedBehind; - private delegate* unmanaged[Cdecl] fn__setPlayerParachuteVariationOverride; - private delegate* unmanaged[Cdecl] fn__clearPlayerParachuteVariationOverride; - private delegate* unmanaged[Cdecl] fn__setPlayerParachuteModelOverride; - private delegate* unmanaged[Cdecl] fn__setPlayerReserveParachuteModelOverride; - private delegate* unmanaged[Cdecl] fn__getPlayerParachuteModelOverride; - private delegate* unmanaged[Cdecl] fn__getPlayerReserveParachuteModelOverride; - private delegate* unmanaged[Cdecl] fn__clearPlayerParachuteModelOverride; - private delegate* unmanaged[Cdecl] fn__clearPlayerReserveParachuteModelOverride; - private delegate* unmanaged[Cdecl] fn__setPlayerParachutePackModelOverride; - private delegate* unmanaged[Cdecl] fn__clearPlayerParachutePackModelOverride; - private delegate* unmanaged[Cdecl] fn__disablePlayerVehicleRewards; + private delegate* unmanaged[Cdecl] fn__isPlayerRidingTrain; + private delegate* unmanaged[Cdecl] fn__hasPlayerLeftTheWorld; + private delegate* unmanaged[Cdecl] fn__setPlayerLeavePedBehind; + private delegate* unmanaged[Cdecl] fn__setPlayerParachuteVariationOverride; + private delegate* unmanaged[Cdecl] fn__clearPlayerParachuteVariationOverride; + private delegate* unmanaged[Cdecl] fn__setPlayerParachuteModelOverride; + private delegate* unmanaged[Cdecl] fn__setPlayerReserveParachuteModelOverride; + private delegate* unmanaged[Cdecl] fn__getPlayerParachuteModelOverride; + private delegate* unmanaged[Cdecl] fn__getPlayerReserveParachuteModelOverride; + private delegate* unmanaged[Cdecl] fn__clearPlayerParachuteModelOverride; + private delegate* unmanaged[Cdecl] fn__clearPlayerReserveParachuteModelOverride; + private delegate* unmanaged[Cdecl] fn__setPlayerParachutePackModelOverride; + private delegate* unmanaged[Cdecl] fn__clearPlayerParachutePackModelOverride; + private delegate* unmanaged[Cdecl] fn__disablePlayerVehicleRewards; private delegate* unmanaged[Cdecl] fn__setPlayerSpectatedVehicleRadioOverride; - private delegate* unmanaged[Cdecl] fn__setPlayerBluetoothState; - private delegate* unmanaged[Cdecl] fn__isPlayerBluetoothEnable; - private delegate* unmanaged[Cdecl] fn__disableCameraViewModeCycle; - private delegate* unmanaged[Cdecl] fn__getPlayerFakeWantedLevel; - private delegate* unmanaged[Cdecl] fn__setPlayerCanDamagePlayer; - private delegate* unmanaged[Cdecl] fn__setApplyWaypointOfPlayer; + private delegate* unmanaged[Cdecl] fn__setPlayerBluetoothState; + private delegate* unmanaged[Cdecl] fn__isPlayerBluetoothEnable; + private delegate* unmanaged[Cdecl] fn__disableCameraViewModeCycle; + private delegate* unmanaged[Cdecl] fn__getPlayerFakeWantedLevel; + private delegate* unmanaged[Cdecl] fn__setPlayerCanDamagePlayer; + private delegate* unmanaged[Cdecl] fn__setApplyWaypointOfPlayer; private delegate* unmanaged[Cdecl] fn__isPlayerVehicleWeaponToggledToNonHoming; private delegate* unmanaged[Cdecl] fn__setPlayerVehicleWeaponToNonHoming; private delegate* unmanaged[Cdecl] fn__setPlayerHomingDisabledForAllVehicleWeapons; - private delegate* unmanaged[Cdecl] fn__addPlayerTargetableEntity; - private delegate* unmanaged[Cdecl] fn__removePlayerTargetableEntity; - private delegate* unmanaged[Cdecl] fn__setPlayerPreviousVariationData; + private delegate* unmanaged[Cdecl] fn__addPlayerTargetableEntity; + private delegate* unmanaged[Cdecl] fn__removePlayerTargetableEntity; + private delegate* unmanaged[Cdecl] fn__setPlayerPreviousVariationData; private delegate* unmanaged[Cdecl] fn__removeScriptFirePosition; private delegate* unmanaged[Cdecl] fn__setScriptFirePosition; private delegate* unmanaged[Cdecl] fn__replayStartEvent; @@ -31585,17 +31572,17 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__bgDoesLaunchParamExist; private delegate* unmanaged[Cdecl] fn__bgGetLaunchParamValue; private delegate* unmanaged[Cdecl] fn__bgGetScriptIdFromNameHash; - private delegate* unmanaged[Cdecl] fn__startShapeTestLosProbe; - private delegate* unmanaged[Cdecl] fn__startExpensiveSynchronousShapeTestLosProbe; - private delegate* unmanaged[Cdecl] fn__startShapeTestBoundingBox; - private delegate* unmanaged[Cdecl] fn__startShapeTestBox; - private delegate* unmanaged[Cdecl] fn__startShapeTestBound; - private delegate* unmanaged[Cdecl] fn__startShapeTestCapsule; - private delegate* unmanaged[Cdecl] fn__startShapeTestSweptSphere; - private delegate* unmanaged[Cdecl] fn__startShapeTestMouseCursorLosProbe; - private delegate* unmanaged[Cdecl] fn__getShapeTestResult; - private delegate* unmanaged[Cdecl] fn__getShapeTestResultIncludingMaterial; - private delegate* unmanaged[Cdecl] fn__releaseScriptGuidFromEntity; + private delegate* unmanaged[Cdecl] fn__startShapeTestLosProbe; + private delegate* unmanaged[Cdecl] fn__startExpensiveSynchronousShapeTestLosProbe; + private delegate* unmanaged[Cdecl] fn__startShapeTestBoundingBox; + private delegate* unmanaged[Cdecl] fn__startShapeTestBox; + private delegate* unmanaged[Cdecl] fn__startShapeTestBound; + private delegate* unmanaged[Cdecl] fn__startShapeTestCapsule; + private delegate* unmanaged[Cdecl] fn__startShapeTestSweptSphere; + private delegate* unmanaged[Cdecl] fn__startShapeTestMouseCursorLosProbe; + private delegate* unmanaged[Cdecl] fn__getShapeTestResult; + private delegate* unmanaged[Cdecl] fn__getShapeTestResultIncludingMaterial; + private delegate* unmanaged[Cdecl] fn__releaseScriptGuidFromEntity; private delegate* unmanaged[Cdecl] fn__scInboxGetTotalNumMessages; private delegate* unmanaged[Cdecl] fn__scInboxGetMessageTypeAtIndex; private delegate* unmanaged[Cdecl] fn__scInboxGetMessageIsReadAtIndex; @@ -31746,8 +31733,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__playstatsMissionOver; private delegate* unmanaged[Cdecl] fn__playstatsMissionCheckpoint; private delegate* unmanaged[Cdecl] fn__playstatsRandomMissionDone; - private delegate* unmanaged[Cdecl] fn__playstatsRosBet; - private delegate* unmanaged[Cdecl] fn__playstatsRaceCheckpoint; + private delegate* unmanaged[Cdecl] fn__playstatsRosBet; + private delegate* unmanaged[Cdecl] fn__playstatsRaceCheckpoint; private delegate* unmanaged[Cdecl] fn__playstatsCreateMatchHistoryId2; private delegate* unmanaged[Cdecl] fn__playstatsMatchStarted; private delegate* unmanaged[Cdecl] fn__playstatsShopItem; @@ -31760,8 +31747,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__playstatsWebsiteVisited; private delegate* unmanaged[Cdecl] fn__playstatsFriendActivity; private delegate* unmanaged[Cdecl] fn__playstatsOddjobDone; - private delegate* unmanaged[Cdecl] fn__playstatsPropChange; - private delegate* unmanaged[Cdecl] fn__playstatsClothChange; + private delegate* unmanaged[Cdecl] fn__playstatsPropChange; + private delegate* unmanaged[Cdecl] fn__playstatsClothChange; private delegate* unmanaged[Cdecl] fn__playstatsWeaponModeChange; private delegate* unmanaged[Cdecl] fn__playstatsCheatApplied; private delegate* unmanaged[Cdecl] fn__playstatsJobActivityEnd; @@ -31919,7 +31906,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__playstatsAbandonedMc; private delegate* unmanaged[Cdecl] fn__playstatsEarnedMcPoints; private delegate* unmanaged[Cdecl] fn__playstatsMcFormationEnds; - private delegate* unmanaged[Cdecl] fn__playstatsMcClubhouseActivity; + private delegate* unmanaged[Cdecl] fn__playstatsMcClubhouseActivity; private delegate* unmanaged[Cdecl] fn__playstatsRivalBehavior; private delegate* unmanaged[Cdecl] fn__playstatsCopyRankIntoNewSlot; private delegate* unmanaged[Cdecl] fn__playstatsDupeDetected; @@ -31961,7 +31948,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__playstatsFreemodeCasinoMissionEnded; private delegate* unmanaged[Cdecl] fn__playstatsHeist3Drone; private delegate* unmanaged[Cdecl] fn__playstatsHeist3Hack; - private delegate* unmanaged[Cdecl] fn__playstatsNpcPhone; + private delegate* unmanaged[Cdecl] fn__playstatsNpcPhone; private delegate* unmanaged[Cdecl] fn__playstatsArcadeCabinet; private delegate* unmanaged[Cdecl] fn__playstatsHeist3Finale; private delegate* unmanaged[Cdecl] fn__playstatsHeist3Prep; @@ -31975,7 +31962,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__playstatsHeist4Finale; private delegate* unmanaged[Cdecl] fn__playstatsHeist4Hack; private delegate* unmanaged[Cdecl] fn__playstatsSubWeap; - private delegate* unmanaged[Cdecl] fn__playstatsFastTrvl; + private delegate* unmanaged[Cdecl] fn__playstatsFastTrvl; private delegate* unmanaged[Cdecl] fn__playstatsHubEntry; private delegate* unmanaged[Cdecl] fn__playstatsDjMissionEnded; private delegate* unmanaged[Cdecl] fn__playstatsRobberyPrep; @@ -31984,7 +31971,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__playstatsCarclubPoints; private delegate* unmanaged[Cdecl] fn__playstatsCarclubChallenge; private delegate* unmanaged[Cdecl] fn__playstatsCarclubPrize; - private delegate* unmanaged[Cdecl] fn__playstatsAwardNav; + private delegate* unmanaged[Cdecl] fn__playstatsAwardNav; private delegate* unmanaged[Cdecl] fn__playstatsInstMissionEnd; private delegate* unmanaged[Cdecl] fn__playstatsHubExit; private delegate* unmanaged[Cdecl] fn__playstatsInventory; @@ -32037,9 +32024,9 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setPedPopulationBudget; private delegate* unmanaged[Cdecl] fn__clearFocus; private delegate* unmanaged[Cdecl] fn__setFocusPosAndVel; - private delegate* unmanaged[Cdecl] fn__setFocusEntity; - private delegate* unmanaged[Cdecl] fn__isEntityFocus; - private delegate* unmanaged[Cdecl] fn__setRestoreFocusEntity; + private delegate* unmanaged[Cdecl] fn__setFocusEntity; + private delegate* unmanaged[Cdecl] fn__isEntityFocus; + private delegate* unmanaged[Cdecl] fn__setRestoreFocusEntity; private delegate* unmanaged[Cdecl] fn__setMapdatacullboxEnabled; private delegate* unmanaged[Cdecl] fn__setAllMapdataCulled; private delegate* unmanaged[Cdecl] fn__streamvolCreateSphere; @@ -32055,7 +32042,7 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__isNewLoadSceneActive; private delegate* unmanaged[Cdecl] fn__isNewLoadSceneLoaded; private delegate* unmanaged[Cdecl] fn__isSafeToStartPlayerSwitch; - private delegate* unmanaged[Cdecl] fn__startPlayerSwitch; + private delegate* unmanaged[Cdecl] fn__startPlayerSwitch; private delegate* unmanaged[Cdecl] fn__stopPlayerSwitch; private delegate* unmanaged[Cdecl] fn__isPlayerSwitchInProgress; private delegate* unmanaged[Cdecl] fn__getPlayerSwitchType; @@ -32073,8 +32060,8 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__isSwitchReadyForDescent; private delegate* unmanaged[Cdecl] fn__enableSwitchPauseBeforeDescent; private delegate* unmanaged[Cdecl] fn__disableSwitchOutroFx; - private delegate* unmanaged[Cdecl] fn__switchToMultiFirstpart; - private delegate* unmanaged[Cdecl] fn__switchToMultiSecondpart; + private delegate* unmanaged[Cdecl] fn__switchToMultiFirstpart; + private delegate* unmanaged[Cdecl] fn__switchToMultiSecondpart; private delegate* unmanaged[Cdecl] fn__isSwitchToMultiFirstpartFinished; private delegate* unmanaged[Cdecl] fn__getPlayerSwitchInterpOutDuration; private delegate* unmanaged[Cdecl] fn__getPlayerSwitchInterpOutCurrentTime; @@ -32108,192 +32095,192 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__removeModelFromCreatorBudget; private delegate* unmanaged[Cdecl] fn__getUsedCreatorBudget; private delegate* unmanaged[Cdecl] fn__setIslandEnabled; - private delegate* unmanaged[Cdecl] fn__taskPause; - private delegate* unmanaged[Cdecl] fn__taskStandStill; - private delegate* unmanaged[Cdecl] fn__taskJump; - private delegate* unmanaged[Cdecl] fn__taskCower; - private delegate* unmanaged[Cdecl] fn__taskHandsUp; - private delegate* unmanaged[Cdecl] fn__updateTaskHandsUpDuration; - private delegate* unmanaged[Cdecl] fn__taskOpenVehicleDoor; - private delegate* unmanaged[Cdecl] fn__taskEnterVehicle; - private delegate* unmanaged[Cdecl] fn__taskLeaveVehicle; - private delegate* unmanaged[Cdecl] fn__taskGetOffBoat; - private delegate* unmanaged[Cdecl] fn__taskSkyDive; - private delegate* unmanaged[Cdecl] fn__taskParachute; - private delegate* unmanaged[Cdecl] fn__taskParachuteToTarget; - private delegate* unmanaged[Cdecl] fn__setParachuteTaskTarget; - private delegate* unmanaged[Cdecl] fn__setParachuteTaskThrust; - private delegate* unmanaged[Cdecl] fn__taskRappelFromHeli; - private delegate* unmanaged[Cdecl] fn__taskVehicleDriveToCoord; - private delegate* unmanaged[Cdecl] fn__taskVehicleDriveToCoordLongrange; - private delegate* unmanaged[Cdecl] fn__taskVehicleDriveWander; - private delegate* unmanaged[Cdecl] fn__taskFollowToOffsetOfEntity; - private delegate* unmanaged[Cdecl] fn__taskGoStraightToCoord; - private delegate* unmanaged[Cdecl] fn__taskGoStraightToCoordRelativeToEntity; - private delegate* unmanaged[Cdecl] fn__taskAchieveHeading; + private delegate* unmanaged[Cdecl] fn__taskPause; + private delegate* unmanaged[Cdecl] fn__taskStandStill; + private delegate* unmanaged[Cdecl] fn__taskJump; + private delegate* unmanaged[Cdecl] fn__taskCower; + private delegate* unmanaged[Cdecl] fn__taskHandsUp; + private delegate* unmanaged[Cdecl] fn__updateTaskHandsUpDuration; + private delegate* unmanaged[Cdecl] fn__taskOpenVehicleDoor; + private delegate* unmanaged[Cdecl] fn__taskEnterVehicle; + private delegate* unmanaged[Cdecl] fn__taskLeaveVehicle; + private delegate* unmanaged[Cdecl] fn__taskGetOffBoat; + private delegate* unmanaged[Cdecl] fn__taskSkyDive; + private delegate* unmanaged[Cdecl] fn__taskParachute; + private delegate* unmanaged[Cdecl] fn__taskParachuteToTarget; + private delegate* unmanaged[Cdecl] fn__setParachuteTaskTarget; + private delegate* unmanaged[Cdecl] fn__setParachuteTaskThrust; + private delegate* unmanaged[Cdecl] fn__taskRappelFromHeli; + private delegate* unmanaged[Cdecl] fn__taskVehicleDriveToCoord; + private delegate* unmanaged[Cdecl] fn__taskVehicleDriveToCoordLongrange; + private delegate* unmanaged[Cdecl] fn__taskVehicleDriveWander; + private delegate* unmanaged[Cdecl] fn__taskFollowToOffsetOfEntity; + private delegate* unmanaged[Cdecl] fn__taskGoStraightToCoord; + private delegate* unmanaged[Cdecl] fn__taskGoStraightToCoordRelativeToEntity; + private delegate* unmanaged[Cdecl] fn__taskAchieveHeading; private delegate* unmanaged[Cdecl] fn__taskFlushRoute; private delegate* unmanaged[Cdecl] fn__taskExtendRoute; - private delegate* unmanaged[Cdecl] fn__taskFollowPointRoute; - private delegate* unmanaged[Cdecl] fn__taskGoToEntity; - private delegate* unmanaged[Cdecl] fn__taskSmartFleeCoord; - private delegate* unmanaged[Cdecl] fn__taskSmartFleePed; - private delegate* unmanaged[Cdecl] fn__taskReactAndFleePed; - private delegate* unmanaged[Cdecl] fn__taskShockingEventReact; - private delegate* unmanaged[Cdecl] fn__taskWanderInArea; - private delegate* unmanaged[Cdecl] fn__taskWanderStandard; - private delegate* unmanaged[Cdecl] fn__taskWanderSpecific; - private delegate* unmanaged[Cdecl] fn__taskVehiclePark; - private delegate* unmanaged[Cdecl] fn__taskStealthKill; - private delegate* unmanaged[Cdecl] fn__taskPlantBomb; - private delegate* unmanaged[Cdecl] fn__taskFollowNavMeshToCoord; - private delegate* unmanaged[Cdecl] fn__taskFollowNavMeshToCoordAdvanced; - private delegate* unmanaged[Cdecl] fn__setPedPathCanUseClimbovers; - private delegate* unmanaged[Cdecl] fn__setPedPathCanUseLadders; - private delegate* unmanaged[Cdecl] fn__setPedPathCanDropFromHeight; - private delegate* unmanaged[Cdecl] fn__setPedPathClimbCostModifier; - private delegate* unmanaged[Cdecl] fn__setPedPathMayEnterWater; - private delegate* unmanaged[Cdecl] fn__setPedPathPreferToAvoidWater; - private delegate* unmanaged[Cdecl] fn__setPedPathAvoidFire; + private delegate* unmanaged[Cdecl] fn__taskFollowPointRoute; + private delegate* unmanaged[Cdecl] fn__taskGoToEntity; + private delegate* unmanaged[Cdecl] fn__taskSmartFleeCoord; + private delegate* unmanaged[Cdecl] fn__taskSmartFleePed; + private delegate* unmanaged[Cdecl] fn__taskReactAndFleePed; + private delegate* unmanaged[Cdecl] fn__taskShockingEventReact; + private delegate* unmanaged[Cdecl] fn__taskWanderInArea; + private delegate* unmanaged[Cdecl] fn__taskWanderStandard; + private delegate* unmanaged[Cdecl] fn__taskWanderSpecific; + private delegate* unmanaged[Cdecl] fn__taskVehiclePark; + private delegate* unmanaged[Cdecl] fn__taskStealthKill; + private delegate* unmanaged[Cdecl] fn__taskPlantBomb; + private delegate* unmanaged[Cdecl] fn__taskFollowNavMeshToCoord; + private delegate* unmanaged[Cdecl] fn__taskFollowNavMeshToCoordAdvanced; + private delegate* unmanaged[Cdecl] fn__setPedPathCanUseClimbovers; + private delegate* unmanaged[Cdecl] fn__setPedPathCanUseLadders; + private delegate* unmanaged[Cdecl] fn__setPedPathCanDropFromHeight; + private delegate* unmanaged[Cdecl] fn__setPedPathClimbCostModifier; + private delegate* unmanaged[Cdecl] fn__setPedPathMayEnterWater; + private delegate* unmanaged[Cdecl] fn__setPedPathPreferToAvoidWater; + private delegate* unmanaged[Cdecl] fn__setPedPathAvoidFire; private delegate* unmanaged[Cdecl] fn__setGlobalMinBirdFlightHeight; - private delegate* unmanaged[Cdecl] fn__getNavmeshRouteDistanceRemaining; - private delegate* unmanaged[Cdecl] fn__getNavmeshRouteResult; - private delegate* unmanaged[Cdecl] fn__isControlledVehicleUnableToGetToRoad; - private delegate* unmanaged[Cdecl] fn__taskGoToCoordAnyMeans; - private delegate* unmanaged[Cdecl] fn__taskGoToCoordAnyMeansExtraParams; - private delegate* unmanaged[Cdecl] fn__taskGoToCoordAnyMeansExtraParamsWithCruiseSpeed; - private delegate* unmanaged[Cdecl] fn__taskPlayAnim; - private delegate* unmanaged[Cdecl] fn__taskPlayAnimAdvanced; - private delegate* unmanaged[Cdecl] fn__stopAnimTask; - private delegate* unmanaged[Cdecl] fn__taskScriptedAnimation; - private delegate* unmanaged[Cdecl] fn__playEntityScriptedAnim; - private delegate* unmanaged[Cdecl] fn__stopAnimPlayback; - private delegate* unmanaged[Cdecl] fn__setAnimWeight; - private delegate* unmanaged[Cdecl] fn__setAnimPhase; - private delegate* unmanaged[Cdecl] fn__setAnimRate; - private delegate* unmanaged[Cdecl] fn__setAnimLooped; - private delegate* unmanaged[Cdecl] fn__taskPlayPhoneGestureAnimation; - private delegate* unmanaged[Cdecl] fn__taskStopPhoneGestureAnimation; - private delegate* unmanaged[Cdecl] fn__isPlayingPhoneGestureAnim; - private delegate* unmanaged[Cdecl] fn__getPhoneGestureAnimCurrentTime; - private delegate* unmanaged[Cdecl] fn__getPhoneGestureAnimTotalTime; - private delegate* unmanaged[Cdecl] fn__taskVehiclePlayAnim; - private delegate* unmanaged[Cdecl] fn__taskLookAtCoord; - private delegate* unmanaged[Cdecl] fn__taskLookAtEntity; - private delegate* unmanaged[Cdecl] fn__taskClearLookAt; + private delegate* unmanaged[Cdecl] fn__getNavmeshRouteDistanceRemaining; + private delegate* unmanaged[Cdecl] fn__getNavmeshRouteResult; + private delegate* unmanaged[Cdecl] fn__isControlledVehicleUnableToGetToRoad; + private delegate* unmanaged[Cdecl] fn__taskGoToCoordAnyMeans; + private delegate* unmanaged[Cdecl] fn__taskGoToCoordAnyMeansExtraParams; + private delegate* unmanaged[Cdecl] fn__taskGoToCoordAnyMeansExtraParamsWithCruiseSpeed; + private delegate* unmanaged[Cdecl] fn__taskPlayAnim; + private delegate* unmanaged[Cdecl] fn__taskPlayAnimAdvanced; + private delegate* unmanaged[Cdecl] fn__stopAnimTask; + private delegate* unmanaged[Cdecl] fn__taskScriptedAnimation; + private delegate* unmanaged[Cdecl] fn__playEntityScriptedAnim; + private delegate* unmanaged[Cdecl] fn__stopAnimPlayback; + private delegate* unmanaged[Cdecl] fn__setAnimWeight; + private delegate* unmanaged[Cdecl] fn__setAnimPhase; + private delegate* unmanaged[Cdecl] fn__setAnimRate; + private delegate* unmanaged[Cdecl] fn__setAnimLooped; + private delegate* unmanaged[Cdecl] fn__taskPlayPhoneGestureAnimation; + private delegate* unmanaged[Cdecl] fn__taskStopPhoneGestureAnimation; + private delegate* unmanaged[Cdecl] fn__isPlayingPhoneGestureAnim; + private delegate* unmanaged[Cdecl] fn__getPhoneGestureAnimCurrentTime; + private delegate* unmanaged[Cdecl] fn__getPhoneGestureAnimTotalTime; + private delegate* unmanaged[Cdecl] fn__taskVehiclePlayAnim; + private delegate* unmanaged[Cdecl] fn__taskLookAtCoord; + private delegate* unmanaged[Cdecl] fn__taskLookAtEntity; + private delegate* unmanaged[Cdecl] fn__taskClearLookAt; private delegate* unmanaged[Cdecl] fn__openSequenceTask; private delegate* unmanaged[Cdecl] fn__closeSequenceTask; - private delegate* unmanaged[Cdecl] fn__taskPerformSequence; - private delegate* unmanaged[Cdecl] fn__taskPerformSequenceLocally; + private delegate* unmanaged[Cdecl] fn__taskPerformSequence; + private delegate* unmanaged[Cdecl] fn__taskPerformSequenceLocally; private delegate* unmanaged[Cdecl] fn__clearSequenceTask; private delegate* unmanaged[Cdecl] fn__setSequenceToRepeat; - private delegate* unmanaged[Cdecl] fn__getSequenceProgress; - private delegate* unmanaged[Cdecl] fn__getIsTaskActive; - private delegate* unmanaged[Cdecl] fn__getScriptTaskStatus; - private delegate* unmanaged[Cdecl] fn__getActiveVehicleMissionType; - private delegate* unmanaged[Cdecl] fn__taskLeaveAnyVehicle; - private delegate* unmanaged[Cdecl] fn__taskAimGunScripted; - private delegate* unmanaged[Cdecl] fn__taskAimGunScriptedWithTarget; - private delegate* unmanaged[Cdecl] fn__updateTaskAimGunScriptedTarget; + private delegate* unmanaged[Cdecl] fn__getSequenceProgress; + private delegate* unmanaged[Cdecl] fn__getIsTaskActive; + private delegate* unmanaged[Cdecl] fn__getScriptTaskStatus; + private delegate* unmanaged[Cdecl] fn__getActiveVehicleMissionType; + private delegate* unmanaged[Cdecl] fn__taskLeaveAnyVehicle; + private delegate* unmanaged[Cdecl] fn__taskAimGunScripted; + private delegate* unmanaged[Cdecl] fn__taskAimGunScriptedWithTarget; + private delegate* unmanaged[Cdecl] fn__updateTaskAimGunScriptedTarget; private delegate* unmanaged[Cdecl] fn__getClipSetForScriptedGunTask; - private delegate* unmanaged[Cdecl] fn__taskAimGunAtEntity; - private delegate* unmanaged[Cdecl] fn__taskTurnPedToFaceEntity; - private delegate* unmanaged[Cdecl] fn__taskAimGunAtCoord; - private delegate* unmanaged[Cdecl] fn__taskShootAtCoord; - private delegate* unmanaged[Cdecl] fn__taskShuffleToNextVehicleSeat; - private delegate* unmanaged[Cdecl] fn__clearPedTasks; - private delegate* unmanaged[Cdecl] fn__clearPedSecondaryTask; - private delegate* unmanaged[Cdecl] fn__taskEveryoneLeaveVehicle; - private delegate* unmanaged[Cdecl] fn__taskGotoEntityOffset; - private delegate* unmanaged[Cdecl] fn__taskGotoEntityOffsetXy; - private delegate* unmanaged[Cdecl] fn__taskTurnPedToFaceCoord; - private delegate* unmanaged[Cdecl] fn__taskVehicleTempAction; - private delegate* unmanaged[Cdecl] fn__taskVehicleMission; - private delegate* unmanaged[Cdecl] fn__taskVehicleMissionPedTarget; - private delegate* unmanaged[Cdecl] fn__taskVehicleMissionCoorsTarget; - private delegate* unmanaged[Cdecl] fn__taskVehicleEscort; - private delegate* unmanaged[Cdecl] fn__taskVehicleFollow; - private delegate* unmanaged[Cdecl] fn__taskVehicleChase; - private delegate* unmanaged[Cdecl] fn__taskVehicleHeliProtect; - private delegate* unmanaged[Cdecl] fn__setTaskVehicleChaseBehaviorFlag; - private delegate* unmanaged[Cdecl] fn__setTaskVehicleChaseIdealPursuitDistance; - private delegate* unmanaged[Cdecl] fn__taskHeliChase; - private delegate* unmanaged[Cdecl] fn__taskPlaneChase; - private delegate* unmanaged[Cdecl] fn__taskPlaneLand; - private delegate* unmanaged[Cdecl] fn__clearDefaultPrimaryTask; - private delegate* unmanaged[Cdecl] fn__clearPrimaryVehicleTask; - private delegate* unmanaged[Cdecl] fn__clearVehicleCrashTask; - private delegate* unmanaged[Cdecl] fn__taskPlaneGotoPreciseVtol; - private delegate* unmanaged[Cdecl] fn__taskSubmarineGotoAndStop; - private delegate* unmanaged[Cdecl] fn__taskHeliMission; - private delegate* unmanaged[Cdecl] fn__taskHeliEscortHeli; - private delegate* unmanaged[Cdecl] fn__taskPlaneMission; - private delegate* unmanaged[Cdecl] fn__taskPlaneTaxi; - private delegate* unmanaged[Cdecl] fn__taskBoatMission; - private delegate* unmanaged[Cdecl] fn__taskDriveBy; - private delegate* unmanaged[Cdecl] fn__setDrivebyTaskTarget; - private delegate* unmanaged[Cdecl] fn__clearDrivebyTaskUnderneathDrivingTask; - private delegate* unmanaged[Cdecl] fn__isDrivebyTaskUnderneathDrivingTask; - private delegate* unmanaged[Cdecl] fn__controlMountedWeapon; - private delegate* unmanaged[Cdecl] fn__setMountedWeaponTarget; - private delegate* unmanaged[Cdecl] fn__isMountedWeaponTaskUnderneathDrivingTask; - private delegate* unmanaged[Cdecl] fn__taskUseMobilePhone; - private delegate* unmanaged[Cdecl] fn__taskUseMobilePhoneTimed; - private delegate* unmanaged[Cdecl] fn__taskChatToPed; - private delegate* unmanaged[Cdecl] fn__taskWarpPedIntoVehicle; - private delegate* unmanaged[Cdecl] fn__taskShootAtEntity; - private delegate* unmanaged[Cdecl] fn__taskClimb; - private delegate* unmanaged[Cdecl] fn__taskClimbLadder; - private delegate* unmanaged[Cdecl] fn__taskRappelDownWallUsingClipsetOverride; - private delegate* unmanaged[Cdecl] fn__getTaskRappelDownWallState; - private delegate* unmanaged[Cdecl] fn__clearPedTasksImmediately; - private delegate* unmanaged[Cdecl] fn__taskPerformSequenceFromProgress; + private delegate* unmanaged[Cdecl] fn__taskAimGunAtEntity; + private delegate* unmanaged[Cdecl] fn__taskTurnPedToFaceEntity; + private delegate* unmanaged[Cdecl] fn__taskAimGunAtCoord; + private delegate* unmanaged[Cdecl] fn__taskShootAtCoord; + private delegate* unmanaged[Cdecl] fn__taskShuffleToNextVehicleSeat; + private delegate* unmanaged[Cdecl] fn__clearPedTasks; + private delegate* unmanaged[Cdecl] fn__clearPedSecondaryTask; + private delegate* unmanaged[Cdecl] fn__taskEveryoneLeaveVehicle; + private delegate* unmanaged[Cdecl] fn__taskGotoEntityOffset; + private delegate* unmanaged[Cdecl] fn__taskGotoEntityOffsetXy; + private delegate* unmanaged[Cdecl] fn__taskTurnPedToFaceCoord; + private delegate* unmanaged[Cdecl] fn__taskVehicleTempAction; + private delegate* unmanaged[Cdecl] fn__taskVehicleMission; + private delegate* unmanaged[Cdecl] fn__taskVehicleMissionPedTarget; + private delegate* unmanaged[Cdecl] fn__taskVehicleMissionCoorsTarget; + private delegate* unmanaged[Cdecl] fn__taskVehicleEscort; + private delegate* unmanaged[Cdecl] fn__taskVehicleFollow; + private delegate* unmanaged[Cdecl] fn__taskVehicleChase; + private delegate* unmanaged[Cdecl] fn__taskVehicleHeliProtect; + private delegate* unmanaged[Cdecl] fn__setTaskVehicleChaseBehaviorFlag; + private delegate* unmanaged[Cdecl] fn__setTaskVehicleChaseIdealPursuitDistance; + private delegate* unmanaged[Cdecl] fn__taskHeliChase; + private delegate* unmanaged[Cdecl] fn__taskPlaneChase; + private delegate* unmanaged[Cdecl] fn__taskPlaneLand; + private delegate* unmanaged[Cdecl] fn__clearDefaultPrimaryTask; + private delegate* unmanaged[Cdecl] fn__clearPrimaryVehicleTask; + private delegate* unmanaged[Cdecl] fn__clearVehicleCrashTask; + private delegate* unmanaged[Cdecl] fn__taskPlaneGotoPreciseVtol; + private delegate* unmanaged[Cdecl] fn__taskSubmarineGotoAndStop; + private delegate* unmanaged[Cdecl] fn__taskHeliMission; + private delegate* unmanaged[Cdecl] fn__taskHeliEscortHeli; + private delegate* unmanaged[Cdecl] fn__taskPlaneMission; + private delegate* unmanaged[Cdecl] fn__taskPlaneTaxi; + private delegate* unmanaged[Cdecl] fn__taskBoatMission; + private delegate* unmanaged[Cdecl] fn__taskDriveBy; + private delegate* unmanaged[Cdecl] fn__setDrivebyTaskTarget; + private delegate* unmanaged[Cdecl] fn__clearDrivebyTaskUnderneathDrivingTask; + private delegate* unmanaged[Cdecl] fn__isDrivebyTaskUnderneathDrivingTask; + private delegate* unmanaged[Cdecl] fn__controlMountedWeapon; + private delegate* unmanaged[Cdecl] fn__setMountedWeaponTarget; + private delegate* unmanaged[Cdecl] fn__isMountedWeaponTaskUnderneathDrivingTask; + private delegate* unmanaged[Cdecl] fn__taskUseMobilePhone; + private delegate* unmanaged[Cdecl] fn__taskUseMobilePhoneTimed; + private delegate* unmanaged[Cdecl] fn__taskChatToPed; + private delegate* unmanaged[Cdecl] fn__taskWarpPedIntoVehicle; + private delegate* unmanaged[Cdecl] fn__taskShootAtEntity; + private delegate* unmanaged[Cdecl] fn__taskClimb; + private delegate* unmanaged[Cdecl] fn__taskClimbLadder; + private delegate* unmanaged[Cdecl] fn__taskRappelDownWallUsingClipsetOverride; + private delegate* unmanaged[Cdecl] fn__getTaskRappelDownWallState; + private delegate* unmanaged[Cdecl] fn__clearPedTasksImmediately; + private delegate* unmanaged[Cdecl] fn__taskPerformSequenceFromProgress; private delegate* unmanaged[Cdecl] fn__setNextDesiredMoveState; - private delegate* unmanaged[Cdecl] fn__setPedDesiredMoveBlendRatio; - private delegate* unmanaged[Cdecl] fn__getPedDesiredMoveBlendRatio; - private delegate* unmanaged[Cdecl] fn__taskGotoEntityAiming; - private delegate* unmanaged[Cdecl] fn__taskSetDecisionMaker; - private delegate* unmanaged[Cdecl] fn__taskSetSphereDefensiveArea; - private delegate* unmanaged[Cdecl] fn__taskClearDefensiveArea; - private delegate* unmanaged[Cdecl] fn__taskPedSlideToCoord; - private delegate* unmanaged[Cdecl] fn__taskPedSlideToCoordHdgRate; - private delegate* unmanaged[Cdecl] fn__addCoverPoint; - private delegate* unmanaged[Cdecl] fn__removeCoverPoint; + private delegate* unmanaged[Cdecl] fn__setPedDesiredMoveBlendRatio; + private delegate* unmanaged[Cdecl] fn__getPedDesiredMoveBlendRatio; + private delegate* unmanaged[Cdecl] fn__taskGotoEntityAiming; + private delegate* unmanaged[Cdecl] fn__taskSetDecisionMaker; + private delegate* unmanaged[Cdecl] fn__taskSetSphereDefensiveArea; + private delegate* unmanaged[Cdecl] fn__taskClearDefensiveArea; + private delegate* unmanaged[Cdecl] fn__taskPedSlideToCoord; + private delegate* unmanaged[Cdecl] fn__taskPedSlideToCoordHdgRate; + private delegate* unmanaged[Cdecl] fn__addCoverPoint; + private delegate* unmanaged[Cdecl] fn__removeCoverPoint; private delegate* unmanaged[Cdecl] fn__doesScriptedCoverPointExistAtCoords; - private delegate* unmanaged[Cdecl] fn__getScriptedCoverPointCoords; + private delegate* unmanaged[Cdecl] fn__getScriptedCoverPointCoords; private delegate* unmanaged[Cdecl] fn__addScriptedCoverArea; - private delegate* unmanaged[Cdecl] fn__taskCombatPed; - private delegate* unmanaged[Cdecl] fn__taskCombatPedTimed; - private delegate* unmanaged[Cdecl] fn__taskSeekCoverFromPos; - private delegate* unmanaged[Cdecl] fn__taskSeekCoverFromPed; - private delegate* unmanaged[Cdecl] fn__taskSeekCoverToCoverPoint; - private delegate* unmanaged[Cdecl] fn__taskSeekCoverToCoords; - private delegate* unmanaged[Cdecl] fn__taskPutPedDirectlyIntoCover; - private delegate* unmanaged[Cdecl] fn__taskWarpPedDirectlyIntoCover; - private delegate* unmanaged[Cdecl] fn__taskExitCover; - private delegate* unmanaged[Cdecl] fn__taskPutPedDirectlyIntoMelee; - private delegate* unmanaged[Cdecl] fn__taskToggleDuck; - private delegate* unmanaged[Cdecl] fn__taskGuardCurrentPosition; - private delegate* unmanaged[Cdecl] fn__taskGuardAssignedDefensiveArea; - private delegate* unmanaged[Cdecl] fn__taskGuardSphereDefensiveArea; - private delegate* unmanaged[Cdecl] fn__taskStandGuard; - private delegate* unmanaged[Cdecl] fn__setDriveTaskCruiseSpeed; - private delegate* unmanaged[Cdecl] fn__setDriveTaskMaxCruiseSpeed; - private delegate* unmanaged[Cdecl] fn__setDriveTaskDrivingStyle; + private delegate* unmanaged[Cdecl] fn__taskCombatPed; + private delegate* unmanaged[Cdecl] fn__taskCombatPedTimed; + private delegate* unmanaged[Cdecl] fn__taskSeekCoverFromPos; + private delegate* unmanaged[Cdecl] fn__taskSeekCoverFromPed; + private delegate* unmanaged[Cdecl] fn__taskSeekCoverToCoverPoint; + private delegate* unmanaged[Cdecl] fn__taskSeekCoverToCoords; + private delegate* unmanaged[Cdecl] fn__taskPutPedDirectlyIntoCover; + private delegate* unmanaged[Cdecl] fn__taskWarpPedDirectlyIntoCover; + private delegate* unmanaged[Cdecl] fn__taskExitCover; + private delegate* unmanaged[Cdecl] fn__taskPutPedDirectlyIntoMelee; + private delegate* unmanaged[Cdecl] fn__taskToggleDuck; + private delegate* unmanaged[Cdecl] fn__taskGuardCurrentPosition; + private delegate* unmanaged[Cdecl] fn__taskGuardAssignedDefensiveArea; + private delegate* unmanaged[Cdecl] fn__taskGuardSphereDefensiveArea; + private delegate* unmanaged[Cdecl] fn__taskStandGuard; + private delegate* unmanaged[Cdecl] fn__setDriveTaskCruiseSpeed; + private delegate* unmanaged[Cdecl] fn__setDriveTaskMaxCruiseSpeed; + private delegate* unmanaged[Cdecl] fn__setDriveTaskDrivingStyle; private delegate* unmanaged[Cdecl] fn__addCoverBlockingArea; private delegate* unmanaged[Cdecl] fn__removeAllCoverBlockingAreas; private delegate* unmanaged[Cdecl] fn__removeCoverBlockingAreasAtPosition; private delegate* unmanaged[Cdecl] fn__removeSpecificCoverBlockingAreas; - private delegate* unmanaged[Cdecl] fn__taskStartScenarioInPlace; - private delegate* unmanaged[Cdecl] fn__taskStartScenarioAtPosition; - private delegate* unmanaged[Cdecl] fn__taskUseNearestScenarioToCoord; - private delegate* unmanaged[Cdecl] fn__taskUseNearestScenarioToCoordWarp; - private delegate* unmanaged[Cdecl] fn__taskUseNearestScenarioChainToCoord; - private delegate* unmanaged[Cdecl] fn__taskUseNearestScenarioChainToCoordWarp; + private delegate* unmanaged[Cdecl] fn__taskStartScenarioInPlace; + private delegate* unmanaged[Cdecl] fn__taskStartScenarioAtPosition; + private delegate* unmanaged[Cdecl] fn__taskUseNearestScenarioToCoord; + private delegate* unmanaged[Cdecl] fn__taskUseNearestScenarioToCoordWarp; + private delegate* unmanaged[Cdecl] fn__taskUseNearestScenarioChainToCoord; + private delegate* unmanaged[Cdecl] fn__taskUseNearestScenarioChainToCoordWarp; private delegate* unmanaged[Cdecl] fn__doesScenarioExistInArea; private delegate* unmanaged[Cdecl] fn__doesScenarioOfTypeExistInArea; private delegate* unmanaged[Cdecl] fn__isScenarioOccupied; - private delegate* unmanaged[Cdecl] fn__pedHasUseScenarioTask; - private delegate* unmanaged[Cdecl] fn__playAnimOnRunningScenario; + private delegate* unmanaged[Cdecl] fn__pedHasUseScenarioTask; + private delegate* unmanaged[Cdecl] fn__playAnimOnRunningScenario; private delegate* unmanaged[Cdecl] fn__doesScenarioGroupExist; private delegate* unmanaged[Cdecl] fn__isScenarioGroupEnabled; private delegate* unmanaged[Cdecl] fn__setScenarioGroupEnabled; @@ -32303,40 +32290,40 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__isScenarioTypeEnabled; private delegate* unmanaged[Cdecl] fn__setScenarioTypeEnabled; private delegate* unmanaged[Cdecl] fn__resetScenarioTypesEnabled; - private delegate* unmanaged[Cdecl] fn__isPedActiveInScenario; - private delegate* unmanaged[Cdecl] fn__isPedPlayingBaseClipInScenario; - private delegate* unmanaged[Cdecl] fn__setPedCanPlayAmbientIdles; - private delegate* unmanaged[Cdecl] fn__taskCombatHatedTargetsInArea; - private delegate* unmanaged[Cdecl] fn__taskCombatHatedTargetsAroundPed; - private delegate* unmanaged[Cdecl] fn__taskCombatHatedTargetsAroundPedTimed; - private delegate* unmanaged[Cdecl] fn__taskThrowProjectile; - private delegate* unmanaged[Cdecl] fn__taskSwapWeapon; - private delegate* unmanaged[Cdecl] fn__taskReloadWeapon; - private delegate* unmanaged[Cdecl] fn__isPedGettingUp; - private delegate* unmanaged[Cdecl] fn__taskWrithe; - private delegate* unmanaged[Cdecl] fn__isPedInWrithe; + private delegate* unmanaged[Cdecl] fn__isPedActiveInScenario; + private delegate* unmanaged[Cdecl] fn__isPedPlayingBaseClipInScenario; + private delegate* unmanaged[Cdecl] fn__setPedCanPlayAmbientIdles; + private delegate* unmanaged[Cdecl] fn__taskCombatHatedTargetsInArea; + private delegate* unmanaged[Cdecl] fn__taskCombatHatedTargetsAroundPed; + private delegate* unmanaged[Cdecl] fn__taskCombatHatedTargetsAroundPedTimed; + private delegate* unmanaged[Cdecl] fn__taskThrowProjectile; + private delegate* unmanaged[Cdecl] fn__taskSwapWeapon; + private delegate* unmanaged[Cdecl] fn__taskReloadWeapon; + private delegate* unmanaged[Cdecl] fn__isPedGettingUp; + private delegate* unmanaged[Cdecl] fn__taskWrithe; + private delegate* unmanaged[Cdecl] fn__isPedInWrithe; private delegate* unmanaged[Cdecl] fn__openPatrolRoute; private delegate* unmanaged[Cdecl] fn__closePatrolRoute; private delegate* unmanaged[Cdecl] fn__addPatrolRouteNode; private delegate* unmanaged[Cdecl] fn__addPatrolRouteLink; private delegate* unmanaged[Cdecl] fn__createPatrolRoute; private delegate* unmanaged[Cdecl] fn__deletePatrolRoute; - private delegate* unmanaged[Cdecl] fn__getPatrolTaskInfo; - private delegate* unmanaged[Cdecl] fn__taskPatrol; - private delegate* unmanaged[Cdecl] fn__taskStayInCover; - private delegate* unmanaged[Cdecl] fn__addVehicleSubtaskAttackCoord; - private delegate* unmanaged[Cdecl] fn__addVehicleSubtaskAttackPed; - private delegate* unmanaged[Cdecl] fn__taskVehicleShootAtPed; - private delegate* unmanaged[Cdecl] fn__taskVehicleAimAtPed; - private delegate* unmanaged[Cdecl] fn__taskVehicleShootAtCoord; - private delegate* unmanaged[Cdecl] fn__taskVehicleAimAtCoord; - private delegate* unmanaged[Cdecl] fn__taskVehicleGotoNavmesh; - private delegate* unmanaged[Cdecl] fn__taskGoToCoordWhileAimingAtCoord; - private delegate* unmanaged[Cdecl] fn__taskGoToCoordWhileAimingAtEntity; - private delegate* unmanaged[Cdecl] fn__taskGoToCoordAndAimAtHatedEntitiesNearCoord; - private delegate* unmanaged[Cdecl] fn__taskGoToEntityWhileAimingAtCoord; - private delegate* unmanaged[Cdecl] fn__taskGoToEntityWhileAimingAtEntity; - private delegate* unmanaged[Cdecl] fn__setHighFallTask; + private delegate* unmanaged[Cdecl] fn__getPatrolTaskInfo; + private delegate* unmanaged[Cdecl] fn__taskPatrol; + private delegate* unmanaged[Cdecl] fn__taskStayInCover; + private delegate* unmanaged[Cdecl] fn__addVehicleSubtaskAttackCoord; + private delegate* unmanaged[Cdecl] fn__addVehicleSubtaskAttackPed; + private delegate* unmanaged[Cdecl] fn__taskVehicleShootAtPed; + private delegate* unmanaged[Cdecl] fn__taskVehicleAimAtPed; + private delegate* unmanaged[Cdecl] fn__taskVehicleShootAtCoord; + private delegate* unmanaged[Cdecl] fn__taskVehicleAimAtCoord; + private delegate* unmanaged[Cdecl] fn__taskVehicleGotoNavmesh; + private delegate* unmanaged[Cdecl] fn__taskGoToCoordWhileAimingAtCoord; + private delegate* unmanaged[Cdecl] fn__taskGoToCoordWhileAimingAtEntity; + private delegate* unmanaged[Cdecl] fn__taskGoToCoordAndAimAtHatedEntitiesNearCoord; + private delegate* unmanaged[Cdecl] fn__taskGoToEntityWhileAimingAtCoord; + private delegate* unmanaged[Cdecl] fn__taskGoToEntityWhileAimingAtEntity; + private delegate* unmanaged[Cdecl] fn__setHighFallTask; private delegate* unmanaged[Cdecl] fn__requestWaypointRecording; private delegate* unmanaged[Cdecl] fn__getIsWaypointRecordingLoaded; private delegate* unmanaged[Cdecl] fn__removeWaypointRecording; @@ -32344,11 +32331,11 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__waypointRecordingGetCoord; private delegate* unmanaged[Cdecl] fn__waypointRecordingGetSpeedAtPoint; private delegate* unmanaged[Cdecl] fn__waypointRecordingGetClosestWaypoint; - private delegate* unmanaged[Cdecl] fn__taskFollowWaypointRecording; - private delegate* unmanaged[Cdecl] fn__isWaypointPlaybackGoingOnForPed; - private delegate* unmanaged[Cdecl] fn__getPedWaypointProgress; + private delegate* unmanaged[Cdecl] fn__taskFollowWaypointRecording; + private delegate* unmanaged[Cdecl] fn__isWaypointPlaybackGoingOnForPed; + private delegate* unmanaged[Cdecl] fn__getPedWaypointProgress; private delegate* unmanaged[Cdecl] fn__getPedWaypointDistance; - private delegate* unmanaged[Cdecl] fn__setPedWaypointRouteOffset; + private delegate* unmanaged[Cdecl] fn__setPedWaypointRouteOffset; private delegate* unmanaged[Cdecl] fn__getWaypointDistanceAlongRoute; private delegate* unmanaged[Cdecl] fn__waypointPlaybackGetIsPaused; private delegate* unmanaged[Cdecl] fn__waypointPlaybackPause; @@ -32356,73 +32343,73 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__waypointPlaybackOverrideSpeed; private delegate* unmanaged[Cdecl] fn__waypointPlaybackUseDefaultSpeed; private delegate* unmanaged[Cdecl] fn__useWaypointRecordingAsAssistedMovementRoute; - private delegate* unmanaged[Cdecl] fn__waypointPlaybackStartAimingAtPed; - private delegate* unmanaged[Cdecl] fn__waypointPlaybackStartAimingAtCoord; - private delegate* unmanaged[Cdecl] fn__waypointPlaybackStartShootingAtPed; - private delegate* unmanaged[Cdecl] fn__waypointPlaybackStartShootingAtCoord; - private delegate* unmanaged[Cdecl] fn__waypointPlaybackStopAimingOrShooting; + private delegate* unmanaged[Cdecl] fn__waypointPlaybackStartAimingAtPed; + private delegate* unmanaged[Cdecl] fn__waypointPlaybackStartAimingAtCoord; + private delegate* unmanaged[Cdecl] fn__waypointPlaybackStartShootingAtPed; + private delegate* unmanaged[Cdecl] fn__waypointPlaybackStartShootingAtCoord; + private delegate* unmanaged[Cdecl] fn__waypointPlaybackStopAimingOrShooting; private delegate* unmanaged[Cdecl] fn__assistedMovementRequestRoute; private delegate* unmanaged[Cdecl] fn__assistedMovementRemoveRoute; private delegate* unmanaged[Cdecl] fn__assistedMovementIsRouteLoaded; private delegate* unmanaged[Cdecl] fn__assistedMovementSetRouteProperties; private delegate* unmanaged[Cdecl] fn__assistedMovementOverrideLoadDistanceThisFrame; - private delegate* unmanaged[Cdecl] fn__taskVehicleFollowWaypointRecording; - private delegate* unmanaged[Cdecl] fn__isWaypointPlaybackGoingOnForVehicle; - private delegate* unmanaged[Cdecl] fn__getVehicleWaypointProgress; - private delegate* unmanaged[Cdecl] fn__getVehicleWaypointTargetPoint; - private delegate* unmanaged[Cdecl] fn__vehicleWaypointPlaybackPause; - private delegate* unmanaged[Cdecl] fn__vehicleWaypointPlaybackResume; - private delegate* unmanaged[Cdecl] fn__vehicleWaypointPlaybackUseDefaultSpeed; - private delegate* unmanaged[Cdecl] fn__vehicleWaypointPlaybackOverrideSpeed; - private delegate* unmanaged[Cdecl] fn__taskSetBlockingOfNonTemporaryEvents; - private delegate* unmanaged[Cdecl] fn__taskForceMotionState; - private delegate* unmanaged[Cdecl] fn__taskMoveNetworkByName; - private delegate* unmanaged[Cdecl] fn__taskMoveNetworkAdvancedByName; - private delegate* unmanaged[Cdecl] fn__taskMoveNetworkByNameWithInitParams; - private delegate* unmanaged[Cdecl] fn__taskMoveNetworkAdvancedByNameWithInitParams; - private delegate* unmanaged[Cdecl] fn__isTaskMoveNetworkActive; - private delegate* unmanaged[Cdecl] fn__isTaskMoveNetworkReadyForTransition; - private delegate* unmanaged[Cdecl] fn__requestTaskMoveNetworkStateTransition; - private delegate* unmanaged[Cdecl] fn__setExpectedCloneNextTaskMoveNetworkState; - private delegate* unmanaged[Cdecl] fn__getTaskMoveNetworkState; - private delegate* unmanaged[Cdecl] fn__setTaskMoveNetworkAnimSet; - private delegate* unmanaged[Cdecl] fn__setTaskMoveNetworkSignalFloat; - private delegate* unmanaged[Cdecl] fn__setTaskMoveNetworkSignalLocalFloat; - private delegate* unmanaged[Cdecl] fn__setTaskMoveNetworkSignalFloatLerpRate; - private delegate* unmanaged[Cdecl] fn__setTaskMoveNetworkSignalBool; - private delegate* unmanaged[Cdecl] fn__getTaskMoveNetworkSignalFloat; - private delegate* unmanaged[Cdecl] fn__getTaskMoveNetworkSignalBool; - private delegate* unmanaged[Cdecl] fn__getTaskMoveNetworkEvent; - private delegate* unmanaged[Cdecl] fn__setTaskMoveNetworkEnableCollisionOnNetworkCloneWhenFixed; - private delegate* unmanaged[Cdecl] fn__isMoveBlendRatioStill; - private delegate* unmanaged[Cdecl] fn__isMoveBlendRatioWalking; - private delegate* unmanaged[Cdecl] fn__isMoveBlendRatioRunning; - private delegate* unmanaged[Cdecl] fn__isMoveBlendRatioSprinting; - private delegate* unmanaged[Cdecl] fn__isPedStill; - private delegate* unmanaged[Cdecl] fn__isPedWalking; - private delegate* unmanaged[Cdecl] fn__isPedRunning; - private delegate* unmanaged[Cdecl] fn__isPedSprinting; - private delegate* unmanaged[Cdecl] fn__isPedStrafing; - private delegate* unmanaged[Cdecl] fn__taskSynchronizedScene; - private delegate* unmanaged[Cdecl] fn__taskAgitatedActionConfrontResponse; - private delegate* unmanaged[Cdecl] fn__taskSweepAimEntity; - private delegate* unmanaged[Cdecl] fn__updateTaskSweepAimEntity; - private delegate* unmanaged[Cdecl] fn__taskSweepAimPosition; - private delegate* unmanaged[Cdecl] fn__updateTaskSweepAimPosition; - private delegate* unmanaged[Cdecl] fn__taskArrestPed; - private delegate* unmanaged[Cdecl] fn__isPedRunningArrestTask; - private delegate* unmanaged[Cdecl] fn__isPedBeingArrested; - private delegate* unmanaged[Cdecl] fn__uncuffPed; - private delegate* unmanaged[Cdecl] fn__isPedCuffed; - private delegate* unmanaged[Cdecl] fn__createVehicle; - private delegate* unmanaged[Cdecl] fn__deleteVehicle; - private delegate* unmanaged[Cdecl] fn__setVehicleAllowHomingMissleLockon; - private delegate* unmanaged[Cdecl] fn__setVehicleAllowHomingMissleLockonSynced; - private delegate* unmanaged[Cdecl] fn__setVehicleAllowNoPassengersLockon; - private delegate* unmanaged[Cdecl] fn__getVehicleHomingLockonState; + private delegate* unmanaged[Cdecl] fn__taskVehicleFollowWaypointRecording; + private delegate* unmanaged[Cdecl] fn__isWaypointPlaybackGoingOnForVehicle; + private delegate* unmanaged[Cdecl] fn__getVehicleWaypointProgress; + private delegate* unmanaged[Cdecl] fn__getVehicleWaypointTargetPoint; + private delegate* unmanaged[Cdecl] fn__vehicleWaypointPlaybackPause; + private delegate* unmanaged[Cdecl] fn__vehicleWaypointPlaybackResume; + private delegate* unmanaged[Cdecl] fn__vehicleWaypointPlaybackUseDefaultSpeed; + private delegate* unmanaged[Cdecl] fn__vehicleWaypointPlaybackOverrideSpeed; + private delegate* unmanaged[Cdecl] fn__taskSetBlockingOfNonTemporaryEvents; + private delegate* unmanaged[Cdecl] fn__taskForceMotionState; + private delegate* unmanaged[Cdecl] fn__taskMoveNetworkByName; + private delegate* unmanaged[Cdecl] fn__taskMoveNetworkAdvancedByName; + private delegate* unmanaged[Cdecl] fn__taskMoveNetworkByNameWithInitParams; + private delegate* unmanaged[Cdecl] fn__taskMoveNetworkAdvancedByNameWithInitParams; + private delegate* unmanaged[Cdecl] fn__isTaskMoveNetworkActive; + private delegate* unmanaged[Cdecl] fn__isTaskMoveNetworkReadyForTransition; + private delegate* unmanaged[Cdecl] fn__requestTaskMoveNetworkStateTransition; + private delegate* unmanaged[Cdecl] fn__setExpectedCloneNextTaskMoveNetworkState; + private delegate* unmanaged[Cdecl] fn__getTaskMoveNetworkState; + private delegate* unmanaged[Cdecl] fn__setTaskMoveNetworkAnimSet; + private delegate* unmanaged[Cdecl] fn__setTaskMoveNetworkSignalFloat; + private delegate* unmanaged[Cdecl] fn__setTaskMoveNetworkSignalLocalFloat; + private delegate* unmanaged[Cdecl] fn__setTaskMoveNetworkSignalFloatLerpRate; + private delegate* unmanaged[Cdecl] fn__setTaskMoveNetworkSignalBool; + private delegate* unmanaged[Cdecl] fn__getTaskMoveNetworkSignalFloat; + private delegate* unmanaged[Cdecl] fn__getTaskMoveNetworkSignalBool; + private delegate* unmanaged[Cdecl] fn__getTaskMoveNetworkEvent; + private delegate* unmanaged[Cdecl] fn__setTaskMoveNetworkEnableCollisionOnNetworkCloneWhenFixed; + private delegate* unmanaged[Cdecl] fn__isMoveBlendRatioStill; + private delegate* unmanaged[Cdecl] fn__isMoveBlendRatioWalking; + private delegate* unmanaged[Cdecl] fn__isMoveBlendRatioRunning; + private delegate* unmanaged[Cdecl] fn__isMoveBlendRatioSprinting; + private delegate* unmanaged[Cdecl] fn__isPedStill; + private delegate* unmanaged[Cdecl] fn__isPedWalking; + private delegate* unmanaged[Cdecl] fn__isPedRunning; + private delegate* unmanaged[Cdecl] fn__isPedSprinting; + private delegate* unmanaged[Cdecl] fn__isPedStrafing; + private delegate* unmanaged[Cdecl] fn__taskSynchronizedScene; + private delegate* unmanaged[Cdecl] fn__taskAgitatedActionConfrontResponse; + private delegate* unmanaged[Cdecl] fn__taskSweepAimEntity; + private delegate* unmanaged[Cdecl] fn__updateTaskSweepAimEntity; + private delegate* unmanaged[Cdecl] fn__taskSweepAimPosition; + private delegate* unmanaged[Cdecl] fn__updateTaskSweepAimPosition; + private delegate* unmanaged[Cdecl] fn__taskArrestPed; + private delegate* unmanaged[Cdecl] fn__isPedRunningArrestTask; + private delegate* unmanaged[Cdecl] fn__isPedBeingArrested; + private delegate* unmanaged[Cdecl] fn__uncuffPed; + private delegate* unmanaged[Cdecl] fn__isPedCuffed; + private delegate* unmanaged[Cdecl] fn__createVehicle; + private delegate* unmanaged[Cdecl] fn__deleteVehicle; + private delegate* unmanaged[Cdecl] fn__setVehicleAllowHomingMissleLockon; + private delegate* unmanaged[Cdecl] fn__setVehicleAllowHomingMissleLockonSynced; + private delegate* unmanaged[Cdecl] fn__setVehicleAllowNoPassengersLockon; + private delegate* unmanaged[Cdecl] fn__getVehicleHomingLockonState; private delegate* unmanaged[Cdecl] fn__getVehicleHomingLockedontoState; private delegate* unmanaged[Cdecl] fn__setVehicleHomingLockedontoState; - private delegate* unmanaged[Cdecl] fn__isVehicleModel; + private delegate* unmanaged[Cdecl] fn__isVehicleModel; private delegate* unmanaged[Cdecl] fn__doesScriptVehicleGeneratorExist; private delegate* unmanaged[Cdecl] fn__createScriptVehicleGenerator; private delegate* unmanaged[Cdecl] fn__deleteScriptVehicleGenerator; @@ -32432,18 +32419,18 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setAllLowPriorityVehicleGeneratorsActive; private delegate* unmanaged[Cdecl] fn__setVehicleGeneratorAreaOfInterest; private delegate* unmanaged[Cdecl] fn__clearVehicleGeneratorAreaOfInterest; - private delegate* unmanaged[Cdecl] fn__setVehicleOnGroundProperly; - private delegate* unmanaged[Cdecl] fn__setVehicleUseCutsceneWheelCompression; - private delegate* unmanaged[Cdecl] fn__isVehicleStuckOnRoof; - private delegate* unmanaged[Cdecl] fn__addVehicleUpsidedownCheck; - private delegate* unmanaged[Cdecl] fn__removeVehicleUpsidedownCheck; - private delegate* unmanaged[Cdecl] fn__isVehicleStopped; - private delegate* unmanaged[Cdecl] fn__getVehicleNumberOfPassengers; - private delegate* unmanaged[Cdecl] fn__getVehicleMaxNumberOfPassengers; + private delegate* unmanaged[Cdecl] fn__setVehicleOnGroundProperly; + private delegate* unmanaged[Cdecl] fn__setVehicleUseCutsceneWheelCompression; + private delegate* unmanaged[Cdecl] fn__isVehicleStuckOnRoof; + private delegate* unmanaged[Cdecl] fn__addVehicleUpsidedownCheck; + private delegate* unmanaged[Cdecl] fn__removeVehicleUpsidedownCheck; + private delegate* unmanaged[Cdecl] fn__isVehicleStopped; + private delegate* unmanaged[Cdecl] fn__getVehicleNumberOfPassengers; + private delegate* unmanaged[Cdecl] fn__getVehicleMaxNumberOfPassengers; private delegate* unmanaged[Cdecl] fn__getVehicleModelNumberOfSeats; - private delegate* unmanaged[Cdecl] fn__isSeatWarpOnly; - private delegate* unmanaged[Cdecl] fn__isTurretSeat; - private delegate* unmanaged[Cdecl] fn__doesVehicleAllowRappel; + private delegate* unmanaged[Cdecl] fn__isSeatWarpOnly; + private delegate* unmanaged[Cdecl] fn__isTurretSeat; + private delegate* unmanaged[Cdecl] fn__doesVehicleAllowRappel; private delegate* unmanaged[Cdecl] fn__setVehicleDensityMultiplierThisFrame; private delegate* unmanaged[Cdecl] fn__setRandomVehicleDensityMultiplierThisFrame; private delegate* unmanaged[Cdecl] fn__setParkedVehicleDensityMultiplierThisFrame; @@ -32451,140 +32438,140 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__setAmbientVehicleRangeMultiplierThisFrame; private delegate* unmanaged[Cdecl] fn__setFarDrawVehicles; private delegate* unmanaged[Cdecl] fn__setNumberOfParkedVehicles; - private delegate* unmanaged[Cdecl] fn__setVehicleDoorsLocked; - private delegate* unmanaged[Cdecl] fn__setVehicleIndividualDoorsLocked; - private delegate* unmanaged[Cdecl] fn__setVehicleHasMutedSirens; - private delegate* unmanaged[Cdecl] fn__setVehicleDoorsLockedForPlayer; - private delegate* unmanaged[Cdecl] fn__getVehicleDoorsLockedForPlayer; - private delegate* unmanaged[Cdecl] fn__setVehicleDoorsLockedForAllPlayers; - private delegate* unmanaged[Cdecl] fn__setVehicleDoorsLockedForNonScriptPlayers; - private delegate* unmanaged[Cdecl] fn__setVehicleDoorsLockedForTeam; - private delegate* unmanaged[Cdecl] fn__setVehicleDoorsLockedForAllTeams; - private delegate* unmanaged[Cdecl] fn__setVehicleDontTerminateTaskWhenAchieved; - private delegate* unmanaged[Cdecl] fn__explodeVehicle; - private delegate* unmanaged[Cdecl] fn__setVehicleOutOfControl; - private delegate* unmanaged[Cdecl] fn__setVehicleTimedExplosion; - private delegate* unmanaged[Cdecl] fn__addVehiclePhoneExplosiveDevice; + private delegate* unmanaged[Cdecl] fn__setVehicleDoorsLocked; + private delegate* unmanaged[Cdecl] fn__setVehicleIndividualDoorsLocked; + private delegate* unmanaged[Cdecl] fn__setVehicleHasMutedSirens; + private delegate* unmanaged[Cdecl] fn__setVehicleDoorsLockedForPlayer; + private delegate* unmanaged[Cdecl] fn__getVehicleDoorsLockedForPlayer; + private delegate* unmanaged[Cdecl] fn__setVehicleDoorsLockedForAllPlayers; + private delegate* unmanaged[Cdecl] fn__setVehicleDoorsLockedForNonScriptPlayers; + private delegate* unmanaged[Cdecl] fn__setVehicleDoorsLockedForTeam; + private delegate* unmanaged[Cdecl] fn__setVehicleDoorsLockedForAllTeams; + private delegate* unmanaged[Cdecl] fn__setVehicleDontTerminateTaskWhenAchieved; + private delegate* unmanaged[Cdecl] fn__explodeVehicle; + private delegate* unmanaged[Cdecl] fn__setVehicleOutOfControl; + private delegate* unmanaged[Cdecl] fn__setVehicleTimedExplosion; + private delegate* unmanaged[Cdecl] fn__addVehiclePhoneExplosiveDevice; private delegate* unmanaged[Cdecl] fn__clearVehiclePhoneExplosiveDevice; private delegate* unmanaged[Cdecl] fn__hasVehiclePhoneExplosiveDevice; private delegate* unmanaged[Cdecl] fn__detonateVehiclePhoneExplosiveDevice; - private delegate* unmanaged[Cdecl] fn__setTaxiLights; - private delegate* unmanaged[Cdecl] fn__isTaxiLightOn; - private delegate* unmanaged[Cdecl] fn__isVehicleInGarageArea; - private delegate* unmanaged[Cdecl] fn__setVehicleColours; - private delegate* unmanaged[Cdecl] fn__setVehicleFullbeam; - private delegate* unmanaged[Cdecl] fn__setVehicleIsRacing; - private delegate* unmanaged[Cdecl] fn__setVehicleCustomPrimaryColour; - private delegate* unmanaged[Cdecl] fn__getVehicleCustomPrimaryColour; - private delegate* unmanaged[Cdecl] fn__clearVehicleCustomPrimaryColour; - private delegate* unmanaged[Cdecl] fn__getIsVehiclePrimaryColourCustom; - private delegate* unmanaged[Cdecl] fn__setVehicleCustomSecondaryColour; - private delegate* unmanaged[Cdecl] fn__getVehicleCustomSecondaryColour; - private delegate* unmanaged[Cdecl] fn__clearVehicleCustomSecondaryColour; - private delegate* unmanaged[Cdecl] fn__getIsVehicleSecondaryColourCustom; - private delegate* unmanaged[Cdecl] fn__setVehicleEnveffScale; - private delegate* unmanaged[Cdecl] fn__getVehicleEnveffScale; - private delegate* unmanaged[Cdecl] fn__setCanResprayVehicle; - private delegate* unmanaged[Cdecl] fn__setGoonBossVehicle; - private delegate* unmanaged[Cdecl] fn__setOpenRearDoorsOnExplosion; - private delegate* unmanaged[Cdecl] fn__forceSubmarineSurfaceMode; + private delegate* unmanaged[Cdecl] fn__setTaxiLights; + private delegate* unmanaged[Cdecl] fn__isTaxiLightOn; + private delegate* unmanaged[Cdecl] fn__isVehicleInGarageArea; + private delegate* unmanaged[Cdecl] fn__setVehicleColours; + private delegate* unmanaged[Cdecl] fn__setVehicleFullbeam; + private delegate* unmanaged[Cdecl] fn__setVehicleIsRacing; + private delegate* unmanaged[Cdecl] fn__setVehicleCustomPrimaryColour; + private delegate* unmanaged[Cdecl] fn__getVehicleCustomPrimaryColour; + private delegate* unmanaged[Cdecl] fn__clearVehicleCustomPrimaryColour; + private delegate* unmanaged[Cdecl] fn__getIsVehiclePrimaryColourCustom; + private delegate* unmanaged[Cdecl] fn__setVehicleCustomSecondaryColour; + private delegate* unmanaged[Cdecl] fn__getVehicleCustomSecondaryColour; + private delegate* unmanaged[Cdecl] fn__clearVehicleCustomSecondaryColour; + private delegate* unmanaged[Cdecl] fn__getIsVehicleSecondaryColourCustom; + private delegate* unmanaged[Cdecl] fn__setVehicleEnveffScale; + private delegate* unmanaged[Cdecl] fn__getVehicleEnveffScale; + private delegate* unmanaged[Cdecl] fn__setCanResprayVehicle; + private delegate* unmanaged[Cdecl] fn__setGoonBossVehicle; + private delegate* unmanaged[Cdecl] fn__setOpenRearDoorsOnExplosion; + private delegate* unmanaged[Cdecl] fn__forceSubmarineSurfaceMode; private delegate* unmanaged[Cdecl] fn__forceSubmarineNeurtalBuoyancy; - private delegate* unmanaged[Cdecl] fn__setSubmarineCrushDepths; - private delegate* unmanaged[Cdecl] fn__getSubmarineIsUnderDesignDepth; - private delegate* unmanaged[Cdecl] fn__getSubmarineNumberOfAirLeaks; + private delegate* unmanaged[Cdecl] fn__setSubmarineCrushDepths; + private delegate* unmanaged[Cdecl] fn__getSubmarineIsUnderDesignDepth; + private delegate* unmanaged[Cdecl] fn__getSubmarineNumberOfAirLeaks; private delegate* unmanaged[Cdecl] fn__setBoatIgnoreLandProbes; - private delegate* unmanaged[Cdecl] fn__setBoatAnchor; - private delegate* unmanaged[Cdecl] fn__canAnchorBoatHere; - private delegate* unmanaged[Cdecl] fn__canAnchorBoatHereIgnorePlayers; - private delegate* unmanaged[Cdecl] fn__setBoatRemainsAnchoredWhilePlayerIsDriver; - private delegate* unmanaged[Cdecl] fn__setForceLowLodAnchorMode; - private delegate* unmanaged[Cdecl] fn__setBoatLowLodAnchorDistance; - private delegate* unmanaged[Cdecl] fn__isBoatAnchored; - private delegate* unmanaged[Cdecl] fn__setBoatSinksWhenWrecked; - private delegate* unmanaged[Cdecl] fn__setBoatWrecked; - private delegate* unmanaged[Cdecl] fn__setVehicleSiren; - private delegate* unmanaged[Cdecl] fn__isVehicleSirenOn; - private delegate* unmanaged[Cdecl] fn__isVehicleSirenAudioOn; - private delegate* unmanaged[Cdecl] fn__setVehicleStrong; - private delegate* unmanaged[Cdecl] fn__removeVehicleStuckCheck; - private delegate* unmanaged[Cdecl] fn__getVehicleColours; - private delegate* unmanaged[Cdecl] fn__isVehicleSeatFree; - private delegate* unmanaged[Cdecl] fn__getPedInVehicleSeat; - private delegate* unmanaged[Cdecl] fn__getLastPedInVehicleSeat; - private delegate* unmanaged[Cdecl] fn__getVehicleLightsState; - private delegate* unmanaged[Cdecl] fn__isVehicleTyreBurst; - private delegate* unmanaged[Cdecl] fn__setVehicleForwardSpeed; - private delegate* unmanaged[Cdecl] fn__setVehicleForwardSpeedXy; - private delegate* unmanaged[Cdecl] fn__bringVehicleToHalt; - private delegate* unmanaged[Cdecl] fn__setVehicleSteerForBuildings; - private delegate* unmanaged[Cdecl] fn__setVehicleCausesSwerving; + private delegate* unmanaged[Cdecl] fn__setBoatAnchor; + private delegate* unmanaged[Cdecl] fn__canAnchorBoatHere; + private delegate* unmanaged[Cdecl] fn__canAnchorBoatHereIgnorePlayers; + private delegate* unmanaged[Cdecl] fn__setBoatRemainsAnchoredWhilePlayerIsDriver; + private delegate* unmanaged[Cdecl] fn__setForceLowLodAnchorMode; + private delegate* unmanaged[Cdecl] fn__setBoatLowLodAnchorDistance; + private delegate* unmanaged[Cdecl] fn__isBoatAnchored; + private delegate* unmanaged[Cdecl] fn__setBoatSinksWhenWrecked; + private delegate* unmanaged[Cdecl] fn__setBoatWrecked; + private delegate* unmanaged[Cdecl] fn__setVehicleSiren; + private delegate* unmanaged[Cdecl] fn__isVehicleSirenOn; + private delegate* unmanaged[Cdecl] fn__isVehicleSirenAudioOn; + private delegate* unmanaged[Cdecl] fn__setVehicleStrong; + private delegate* unmanaged[Cdecl] fn__removeVehicleStuckCheck; + private delegate* unmanaged[Cdecl] fn__getVehicleColours; + private delegate* unmanaged[Cdecl] fn__isVehicleSeatFree; + private delegate* unmanaged[Cdecl] fn__getPedInVehicleSeat; + private delegate* unmanaged[Cdecl] fn__getLastPedInVehicleSeat; + private delegate* unmanaged[Cdecl] fn__getVehicleLightsState; + private delegate* unmanaged[Cdecl] fn__isVehicleTyreBurst; + private delegate* unmanaged[Cdecl] fn__setVehicleForwardSpeed; + private delegate* unmanaged[Cdecl] fn__setVehicleForwardSpeedXy; + private delegate* unmanaged[Cdecl] fn__bringVehicleToHalt; + private delegate* unmanaged[Cdecl] fn__setVehicleSteerForBuildings; + private delegate* unmanaged[Cdecl] fn__setVehicleCausesSwerving; private delegate* unmanaged[Cdecl] fn__setIgnorePlanesSmallPitchChange; - private delegate* unmanaged[Cdecl] fn__stopBringingVehicleToHalt; - private delegate* unmanaged[Cdecl] fn__isVehicleBeingBroughtToHalt; - private delegate* unmanaged[Cdecl] fn__setForkliftForkHeight; - private delegate* unmanaged[Cdecl] fn__isEntityAttachedToHandlerFrame; - private delegate* unmanaged[Cdecl] fn__isAnyEntityAttachedToHandlerFrame; - private delegate* unmanaged[Cdecl] fn__findHandlerVehicleContainerIsAttachedTo; - private delegate* unmanaged[Cdecl] fn__isHandlerFrameLinedUpWithContainer; - private delegate* unmanaged[Cdecl] fn__attachContainerToHandlerFrameWhenLinedUp; - private delegate* unmanaged[Cdecl] fn__detachContainerFromHandlerFrame; - private delegate* unmanaged[Cdecl] fn__setVehicleDisableHeightMapAvoidance; - private delegate* unmanaged[Cdecl] fn__setBoatDisableAvoidance; - private delegate* unmanaged[Cdecl] fn__isHeliLandingAreaBlocked; - private delegate* unmanaged[Cdecl] fn__setShortSlowdownForLanding; - private delegate* unmanaged[Cdecl] fn__setHeliTurbulenceScalar; - private delegate* unmanaged[Cdecl] fn__setCarBootOpen; - private delegate* unmanaged[Cdecl] fn__setVehicleTyreBurst; - private delegate* unmanaged[Cdecl] fn__setVehicleDoorsShut; - private delegate* unmanaged[Cdecl] fn__setVehicleTyresCanBurst; - private delegate* unmanaged[Cdecl] fn__getVehicleTyresCanBurst; - private delegate* unmanaged[Cdecl] fn__setVehicleWheelsCanBreak; - private delegate* unmanaged[Cdecl] fn__setVehicleDoorOpen; - private delegate* unmanaged[Cdecl] fn__setVehicleDoorAutoLock; + private delegate* unmanaged[Cdecl] fn__stopBringingVehicleToHalt; + private delegate* unmanaged[Cdecl] fn__isVehicleBeingBroughtToHalt; + private delegate* unmanaged[Cdecl] fn__setForkliftForkHeight; + private delegate* unmanaged[Cdecl] fn__isEntityAttachedToHandlerFrame; + private delegate* unmanaged[Cdecl] fn__isAnyEntityAttachedToHandlerFrame; + private delegate* unmanaged[Cdecl] fn__findHandlerVehicleContainerIsAttachedTo; + private delegate* unmanaged[Cdecl] fn__isHandlerFrameLinedUpWithContainer; + private delegate* unmanaged[Cdecl] fn__attachContainerToHandlerFrameWhenLinedUp; + private delegate* unmanaged[Cdecl] fn__detachContainerFromHandlerFrame; + private delegate* unmanaged[Cdecl] fn__setVehicleDisableHeightMapAvoidance; + private delegate* unmanaged[Cdecl] fn__setBoatDisableAvoidance; + private delegate* unmanaged[Cdecl] fn__isHeliLandingAreaBlocked; + private delegate* unmanaged[Cdecl] fn__setShortSlowdownForLanding; + private delegate* unmanaged[Cdecl] fn__setHeliTurbulenceScalar; + private delegate* unmanaged[Cdecl] fn__setCarBootOpen; + private delegate* unmanaged[Cdecl] fn__setVehicleTyreBurst; + private delegate* unmanaged[Cdecl] fn__setVehicleDoorsShut; + private delegate* unmanaged[Cdecl] fn__setVehicleTyresCanBurst; + private delegate* unmanaged[Cdecl] fn__getVehicleTyresCanBurst; + private delegate* unmanaged[Cdecl] fn__setVehicleWheelsCanBreak; + private delegate* unmanaged[Cdecl] fn__setVehicleDoorOpen; + private delegate* unmanaged[Cdecl] fn__setVehicleDoorAutoLock; private delegate* unmanaged[Cdecl] fn__setFleeingVehiclesUseSwitchedOffNodes; - private delegate* unmanaged[Cdecl] fn__removeVehicleWindow; - private delegate* unmanaged[Cdecl] fn__rollDownWindows; - private delegate* unmanaged[Cdecl] fn__rollDownWindow; - private delegate* unmanaged[Cdecl] fn__rollUpWindow; - private delegate* unmanaged[Cdecl] fn__smashVehicleWindow; - private delegate* unmanaged[Cdecl] fn__fixVehicleWindow; - private delegate* unmanaged[Cdecl] fn__popOutVehicleWindscreen; - private delegate* unmanaged[Cdecl] fn__popOffVehicleRoofWithImpulse; - private delegate* unmanaged[Cdecl] fn__setVehicleLights; - private delegate* unmanaged[Cdecl] fn__setVehicleUsePlayerLightSettings; - private delegate* unmanaged[Cdecl] fn__setVehicleHeadlightShadows; - private delegate* unmanaged[Cdecl] fn__setVehicleAlarm; - private delegate* unmanaged[Cdecl] fn__startVehicleAlarm; - private delegate* unmanaged[Cdecl] fn__isVehicleAlarmActivated; - private delegate* unmanaged[Cdecl] fn__setVehicleInteriorlight; - private delegate* unmanaged[Cdecl] fn__setVehicleForceInteriorlight; - private delegate* unmanaged[Cdecl] fn__setVehicleLightMultiplier; - private delegate* unmanaged[Cdecl] fn__attachVehicleToTrailer; - private delegate* unmanaged[Cdecl] fn__attachVehicleOnToTrailer; - private delegate* unmanaged[Cdecl] fn__stabiliseEntityAttachedToHeli; - private delegate* unmanaged[Cdecl] fn__detachVehicleFromTrailer; - private delegate* unmanaged[Cdecl] fn__isVehicleAttachedToTrailer; - private delegate* unmanaged[Cdecl] fn__setTrailerInverseMassScale; - private delegate* unmanaged[Cdecl] fn__setTrailerLegsRaised; - private delegate* unmanaged[Cdecl] fn__setTrailerLegsLowered; - private delegate* unmanaged[Cdecl] fn__setVehicleTyreFixed; - private delegate* unmanaged[Cdecl] fn__setVehicleNumberPlateText; - private delegate* unmanaged[Cdecl] fn__getVehicleNumberPlateText; + private delegate* unmanaged[Cdecl] fn__removeVehicleWindow; + private delegate* unmanaged[Cdecl] fn__rollDownWindows; + private delegate* unmanaged[Cdecl] fn__rollDownWindow; + private delegate* unmanaged[Cdecl] fn__rollUpWindow; + private delegate* unmanaged[Cdecl] fn__smashVehicleWindow; + private delegate* unmanaged[Cdecl] fn__fixVehicleWindow; + private delegate* unmanaged[Cdecl] fn__popOutVehicleWindscreen; + private delegate* unmanaged[Cdecl] fn__popOffVehicleRoofWithImpulse; + private delegate* unmanaged[Cdecl] fn__setVehicleLights; + private delegate* unmanaged[Cdecl] fn__setVehicleUsePlayerLightSettings; + private delegate* unmanaged[Cdecl] fn__setVehicleHeadlightShadows; + private delegate* unmanaged[Cdecl] fn__setVehicleAlarm; + private delegate* unmanaged[Cdecl] fn__startVehicleAlarm; + private delegate* unmanaged[Cdecl] fn__isVehicleAlarmActivated; + private delegate* unmanaged[Cdecl] fn__setVehicleInteriorlight; + private delegate* unmanaged[Cdecl] fn__setVehicleForceInteriorlight; + private delegate* unmanaged[Cdecl] fn__setVehicleLightMultiplier; + private delegate* unmanaged[Cdecl] fn__attachVehicleToTrailer; + private delegate* unmanaged[Cdecl] fn__attachVehicleOnToTrailer; + private delegate* unmanaged[Cdecl] fn__stabiliseEntityAttachedToHeli; + private delegate* unmanaged[Cdecl] fn__detachVehicleFromTrailer; + private delegate* unmanaged[Cdecl] fn__isVehicleAttachedToTrailer; + private delegate* unmanaged[Cdecl] fn__setTrailerInverseMassScale; + private delegate* unmanaged[Cdecl] fn__setTrailerLegsRaised; + private delegate* unmanaged[Cdecl] fn__setTrailerLegsLowered; + private delegate* unmanaged[Cdecl] fn__setVehicleTyreFixed; + private delegate* unmanaged[Cdecl] fn__setVehicleNumberPlateText; + private delegate* unmanaged[Cdecl] fn__getVehicleNumberPlateText; private delegate* unmanaged[Cdecl] fn__getNumberOfVehicleNumberPlates; - private delegate* unmanaged[Cdecl] fn__setVehicleNumberPlateTextIndex; - private delegate* unmanaged[Cdecl] fn__getVehicleNumberPlateTextIndex; + private delegate* unmanaged[Cdecl] fn__setVehicleNumberPlateTextIndex; + private delegate* unmanaged[Cdecl] fn__getVehicleNumberPlateTextIndex; private delegate* unmanaged[Cdecl] fn__setRandomTrains; - private delegate* unmanaged[Cdecl] fn__createMissionTrain; + private delegate* unmanaged[Cdecl] fn__createMissionTrain; private delegate* unmanaged[Cdecl] fn__switchTrainTrack; private delegate* unmanaged[Cdecl] fn__setTrainTrackSpawnFrequency; private delegate* unmanaged[Cdecl] fn__allowTrainToBeRemovedByPopulation; private delegate* unmanaged[Cdecl] fn__deleteAllTrains; - private delegate* unmanaged[Cdecl] fn__setTrainSpeed; - private delegate* unmanaged[Cdecl] fn__setTrainCruiseSpeed; + private delegate* unmanaged[Cdecl] fn__setTrainSpeed; + private delegate* unmanaged[Cdecl] fn__setTrainCruiseSpeed; private delegate* unmanaged[Cdecl] fn__setRandomBoats; private delegate* unmanaged[Cdecl] fn__setRandomBoatsMp; private delegate* unmanaged[Cdecl] fn__setGarbageTrucks; - private delegate* unmanaged[Cdecl] fn__doesVehicleHaveStuckVehicleCheck; + private delegate* unmanaged[Cdecl] fn__doesVehicleHaveStuckVehicleCheck; private delegate* unmanaged[Cdecl] fn__getVehicleRecordingId; private delegate* unmanaged[Cdecl] fn__requestVehicleRecording; private delegate* unmanaged[Cdecl] fn__hasVehicleRecordingBeenLoaded; @@ -32595,39 +32582,39 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getRotationOfVehicleRecordingAtTime; private delegate* unmanaged[Cdecl] fn__getTotalDurationOfVehicleRecordingId; private delegate* unmanaged[Cdecl] fn__getTotalDurationOfVehicleRecording; - private delegate* unmanaged[Cdecl] fn__getPositionInRecording; - private delegate* unmanaged[Cdecl] fn__getTimePositionInRecording; - private delegate* unmanaged[Cdecl] fn__startPlaybackRecordedVehicle; - private delegate* unmanaged[Cdecl] fn__startPlaybackRecordedVehicleWithFlags; - private delegate* unmanaged[Cdecl] fn__forcePlaybackRecordedVehicleUpdate; - private delegate* unmanaged[Cdecl] fn__stopPlaybackRecordedVehicle; - private delegate* unmanaged[Cdecl] fn__pausePlaybackRecordedVehicle; - private delegate* unmanaged[Cdecl] fn__unpausePlaybackRecordedVehicle; - private delegate* unmanaged[Cdecl] fn__isPlaybackGoingOnForVehicle; - private delegate* unmanaged[Cdecl] fn__isPlaybackUsingAiGoingOnForVehicle; - private delegate* unmanaged[Cdecl] fn__getCurrentPlaybackForVehicle; - private delegate* unmanaged[Cdecl] fn__skipToEndAndStopPlaybackRecordedVehicle; - private delegate* unmanaged[Cdecl] fn__setPlaybackSpeed; - private delegate* unmanaged[Cdecl] fn__startPlaybackRecordedVehicleUsingAi; - private delegate* unmanaged[Cdecl] fn__skipTimeInPlaybackRecordedVehicle; - private delegate* unmanaged[Cdecl] fn__setPlaybackToUseAi; - private delegate* unmanaged[Cdecl] fn__setPlaybackToUseAiTryToRevertBackLater; - private delegate* unmanaged[Cdecl] fn__setAdditionalRotationForRecordedVehiclePlayback; - private delegate* unmanaged[Cdecl] fn__setPositionOffsetForRecordedVehiclePlayback; - private delegate* unmanaged[Cdecl] fn__setGlobalPositionOffsetForRecordedVehiclePlayback; - private delegate* unmanaged[Cdecl] fn__setShouldLerpFromAiToFullRecording; - private delegate* unmanaged[Cdecl] fn__explodeVehicleInCutscene; + private delegate* unmanaged[Cdecl] fn__getPositionInRecording; + private delegate* unmanaged[Cdecl] fn__getTimePositionInRecording; + private delegate* unmanaged[Cdecl] fn__startPlaybackRecordedVehicle; + private delegate* unmanaged[Cdecl] fn__startPlaybackRecordedVehicleWithFlags; + private delegate* unmanaged[Cdecl] fn__forcePlaybackRecordedVehicleUpdate; + private delegate* unmanaged[Cdecl] fn__stopPlaybackRecordedVehicle; + private delegate* unmanaged[Cdecl] fn__pausePlaybackRecordedVehicle; + private delegate* unmanaged[Cdecl] fn__unpausePlaybackRecordedVehicle; + private delegate* unmanaged[Cdecl] fn__isPlaybackGoingOnForVehicle; + private delegate* unmanaged[Cdecl] fn__isPlaybackUsingAiGoingOnForVehicle; + private delegate* unmanaged[Cdecl] fn__getCurrentPlaybackForVehicle; + private delegate* unmanaged[Cdecl] fn__skipToEndAndStopPlaybackRecordedVehicle; + private delegate* unmanaged[Cdecl] fn__setPlaybackSpeed; + private delegate* unmanaged[Cdecl] fn__startPlaybackRecordedVehicleUsingAi; + private delegate* unmanaged[Cdecl] fn__skipTimeInPlaybackRecordedVehicle; + private delegate* unmanaged[Cdecl] fn__setPlaybackToUseAi; + private delegate* unmanaged[Cdecl] fn__setPlaybackToUseAiTryToRevertBackLater; + private delegate* unmanaged[Cdecl] fn__setAdditionalRotationForRecordedVehiclePlayback; + private delegate* unmanaged[Cdecl] fn__setPositionOffsetForRecordedVehiclePlayback; + private delegate* unmanaged[Cdecl] fn__setGlobalPositionOffsetForRecordedVehiclePlayback; + private delegate* unmanaged[Cdecl] fn__setShouldLerpFromAiToFullRecording; + private delegate* unmanaged[Cdecl] fn__explodeVehicleInCutscene; private delegate* unmanaged[Cdecl] fn__addVehicleStuckCheckWithWarp; private delegate* unmanaged[Cdecl] fn__setVehicleModelIsSuppressed; - private delegate* unmanaged[Cdecl] fn__getRandomVehicleInSphere; - private delegate* unmanaged[Cdecl] fn__getRandomVehicleFrontBumperInSphere; - private delegate* unmanaged[Cdecl] fn__getRandomVehicleBackBumperInSphere; - private delegate* unmanaged[Cdecl] fn__getClosestVehicle; - private delegate* unmanaged[Cdecl] fn__getTrainCarriage; - private delegate* unmanaged[Cdecl] fn__isMissionTrain; - private delegate* unmanaged[Cdecl] fn__deleteMissionTrain; - private delegate* unmanaged[Cdecl] fn__setMissionTrainAsNoLongerNeeded; - private delegate* unmanaged[Cdecl] fn__setMissionTrainCoords; + private delegate* unmanaged[Cdecl] fn__getRandomVehicleInSphere; + private delegate* unmanaged[Cdecl] fn__getRandomVehicleFrontBumperInSphere; + private delegate* unmanaged[Cdecl] fn__getRandomVehicleBackBumperInSphere; + private delegate* unmanaged[Cdecl] fn__getClosestVehicle; + private delegate* unmanaged[Cdecl] fn__getTrainCarriage; + private delegate* unmanaged[Cdecl] fn__isMissionTrain; + private delegate* unmanaged[Cdecl] fn__deleteMissionTrain; + private delegate* unmanaged[Cdecl] fn__setMissionTrainAsNoLongerNeeded; + private delegate* unmanaged[Cdecl] fn__setMissionTrainCoords; private delegate* unmanaged[Cdecl] fn__isThisModelABoat; private delegate* unmanaged[Cdecl] fn__isThisModelAJetski; private delegate* unmanaged[Cdecl] fn__isThisModelAPlane; @@ -32639,180 +32626,180 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__isThisModelAQuadbike; private delegate* unmanaged[Cdecl] fn__isThisModelAnAmphibiousCar; private delegate* unmanaged[Cdecl] fn__isThisModelAnAmphibiousQuadbike; - private delegate* unmanaged[Cdecl] fn__setHeliBladesFullSpeed; - private delegate* unmanaged[Cdecl] fn__setHeliBladesSpeed; - private delegate* unmanaged[Cdecl] fn__forceSubThrottleForTime; - private delegate* unmanaged[Cdecl] fn__setVehicleCanBeTargetted; - private delegate* unmanaged[Cdecl] fn__setDontAllowPlayerToEnterVehicleIfLockedForPlayer; - private delegate* unmanaged[Cdecl] fn__setVehicleCanBeVisiblyDamaged; - private delegate* unmanaged[Cdecl] fn__setVehicleHasUnbreakableLights; - private delegate* unmanaged[Cdecl] fn__setVehicleRespectsLocksWhenHasDriver; + private delegate* unmanaged[Cdecl] fn__setHeliBladesFullSpeed; + private delegate* unmanaged[Cdecl] fn__setHeliBladesSpeed; + private delegate* unmanaged[Cdecl] fn__forceSubThrottleForTime; + private delegate* unmanaged[Cdecl] fn__setVehicleCanBeTargetted; + private delegate* unmanaged[Cdecl] fn__setDontAllowPlayerToEnterVehicleIfLockedForPlayer; + private delegate* unmanaged[Cdecl] fn__setVehicleCanBeVisiblyDamaged; + private delegate* unmanaged[Cdecl] fn__setVehicleHasUnbreakableLights; + private delegate* unmanaged[Cdecl] fn__setVehicleRespectsLocksWhenHasDriver; private delegate* unmanaged[Cdecl] fn__setVehicleCanEjectPassengersIfLocked; - private delegate* unmanaged[Cdecl] fn__getVehicleDirtLevel; - private delegate* unmanaged[Cdecl] fn__setVehicleDirtLevel; - private delegate* unmanaged[Cdecl] fn__getDoesVehicleHaveDamageDecals; - private delegate* unmanaged[Cdecl] fn__isVehicleDoorFullyOpen; - private delegate* unmanaged[Cdecl] fn__setVehicleEngineOn; - private delegate* unmanaged[Cdecl] fn__setVehicleUndriveable; - private delegate* unmanaged[Cdecl] fn__setVehicleProvidesCover; - private delegate* unmanaged[Cdecl] fn__setVehicleDoorControl; - private delegate* unmanaged[Cdecl] fn__setVehicleDoorLatched; - private delegate* unmanaged[Cdecl] fn__getVehicleDoorAngleRatio; - private delegate* unmanaged[Cdecl] fn__getPedUsingVehicleDoor; - private delegate* unmanaged[Cdecl] fn__setVehicleDoorShut; - private delegate* unmanaged[Cdecl] fn__setVehicleDoorBroken; - private delegate* unmanaged[Cdecl] fn__setVehicleCanBreak; - private delegate* unmanaged[Cdecl] fn__doesVehicleHaveRoof; + private delegate* unmanaged[Cdecl] fn__getVehicleDirtLevel; + private delegate* unmanaged[Cdecl] fn__setVehicleDirtLevel; + private delegate* unmanaged[Cdecl] fn__getDoesVehicleHaveDamageDecals; + private delegate* unmanaged[Cdecl] fn__isVehicleDoorFullyOpen; + private delegate* unmanaged[Cdecl] fn__setVehicleEngineOn; + private delegate* unmanaged[Cdecl] fn__setVehicleUndriveable; + private delegate* unmanaged[Cdecl] fn__setVehicleProvidesCover; + private delegate* unmanaged[Cdecl] fn__setVehicleDoorControl; + private delegate* unmanaged[Cdecl] fn__setVehicleDoorLatched; + private delegate* unmanaged[Cdecl] fn__getVehicleDoorAngleRatio; + private delegate* unmanaged[Cdecl] fn__getPedUsingVehicleDoor; + private delegate* unmanaged[Cdecl] fn__setVehicleDoorShut; + private delegate* unmanaged[Cdecl] fn__setVehicleDoorBroken; + private delegate* unmanaged[Cdecl] fn__setVehicleCanBreak; + private delegate* unmanaged[Cdecl] fn__doesVehicleHaveRoof; private delegate* unmanaged[Cdecl] fn__setVehicleRemoveAggressiveCarjackMission; private delegate* unmanaged[Cdecl] fn__setVehicleAvoidPlayerVehicleRiotVanMission; private delegate* unmanaged[Cdecl] fn__setCarjackMissionRemovalParameters; - private delegate* unmanaged[Cdecl] fn__isBigVehicle; - private delegate* unmanaged[Cdecl] fn__getNumberOfVehicleColours; - private delegate* unmanaged[Cdecl] fn__setVehicleColourCombination; - private delegate* unmanaged[Cdecl] fn__getVehicleColourCombination; - private delegate* unmanaged[Cdecl] fn__setVehicleXenonLightColorIndex; - private delegate* unmanaged[Cdecl] fn__getVehicleXenonLightColorIndex; - private delegate* unmanaged[Cdecl] fn__setVehicleIsConsideredByPlayer; - private delegate* unmanaged[Cdecl] fn__setVehicleWillForceOtherVehiclesToStop; - private delegate* unmanaged[Cdecl] fn__setVehicleActAsIfHasSirenOn; - private delegate* unmanaged[Cdecl] fn__setVehicleUseMoreRestrictiveSpawnChecks; - private delegate* unmanaged[Cdecl] fn__setVehicleMayBeUsedByGotoPointAnyMeans; + private delegate* unmanaged[Cdecl] fn__isBigVehicle; + private delegate* unmanaged[Cdecl] fn__getNumberOfVehicleColours; + private delegate* unmanaged[Cdecl] fn__setVehicleColourCombination; + private delegate* unmanaged[Cdecl] fn__getVehicleColourCombination; + private delegate* unmanaged[Cdecl] fn__setVehicleXenonLightColorIndex; + private delegate* unmanaged[Cdecl] fn__getVehicleXenonLightColorIndex; + private delegate* unmanaged[Cdecl] fn__setVehicleIsConsideredByPlayer; + private delegate* unmanaged[Cdecl] fn__setVehicleWillForceOtherVehiclesToStop; + private delegate* unmanaged[Cdecl] fn__setVehicleActAsIfHasSirenOn; + private delegate* unmanaged[Cdecl] fn__setVehicleUseMoreRestrictiveSpawnChecks; + private delegate* unmanaged[Cdecl] fn__setVehicleMayBeUsedByGotoPointAnyMeans; private delegate* unmanaged[Cdecl] fn__getRandomVehicleModelInMemory; - private delegate* unmanaged[Cdecl] fn__getVehicleDoorLockStatus; - private delegate* unmanaged[Cdecl] fn__getVehicleIndividualDoorLockStatus; - private delegate* unmanaged[Cdecl] fn__isVehicleDoorDamaged; - private delegate* unmanaged[Cdecl] fn__setDoorAllowedToBeBrokenOff; - private delegate* unmanaged[Cdecl] fn__isVehicleBumperBouncing; - private delegate* unmanaged[Cdecl] fn__isVehicleBumperBrokenOff; + private delegate* unmanaged[Cdecl] fn__getVehicleDoorLockStatus; + private delegate* unmanaged[Cdecl] fn__getVehicleIndividualDoorLockStatus; + private delegate* unmanaged[Cdecl] fn__isVehicleDoorDamaged; + private delegate* unmanaged[Cdecl] fn__setDoorAllowedToBeBrokenOff; + private delegate* unmanaged[Cdecl] fn__isVehicleBumperBouncing; + private delegate* unmanaged[Cdecl] fn__isVehicleBumperBrokenOff; private delegate* unmanaged[Cdecl] fn__isCopVehicleInArea3d; - private delegate* unmanaged[Cdecl] fn__isVehicleOnAllWheels; + private delegate* unmanaged[Cdecl] fn__isVehicleOnAllWheels; private delegate* unmanaged[Cdecl] fn__getVehicleModelValue; - private delegate* unmanaged[Cdecl] fn__getVehicleLayoutHash; - private delegate* unmanaged[Cdecl] fn__getInVehicleClipsetHashForSeat; - private delegate* unmanaged[Cdecl] fn__setRenderTrainAsDerailed; - private delegate* unmanaged[Cdecl] fn__setVehicleExtraColours; - private delegate* unmanaged[Cdecl] fn__getVehicleExtraColours; - private delegate* unmanaged[Cdecl] fn__setVehicleExtraColour5; - private delegate* unmanaged[Cdecl] fn__getVehicleExtraColour5; - private delegate* unmanaged[Cdecl] fn__setVehicleExtraColour6; - private delegate* unmanaged[Cdecl] fn__getVehicleExtraColour6; + private delegate* unmanaged[Cdecl] fn__getVehicleLayoutHash; + private delegate* unmanaged[Cdecl] fn__getInVehicleClipsetHashForSeat; + private delegate* unmanaged[Cdecl] fn__setRenderTrainAsDerailed; + private delegate* unmanaged[Cdecl] fn__setVehicleExtraColours; + private delegate* unmanaged[Cdecl] fn__getVehicleExtraColours; + private delegate* unmanaged[Cdecl] fn__setVehicleExtraColour5; + private delegate* unmanaged[Cdecl] fn__getVehicleExtraColour5; + private delegate* unmanaged[Cdecl] fn__setVehicleExtraColour6; + private delegate* unmanaged[Cdecl] fn__getVehicleExtraColour6; private delegate* unmanaged[Cdecl] fn__stopAllGarageActivity; - private delegate* unmanaged[Cdecl] fn__setVehicleFixed; - private delegate* unmanaged[Cdecl] fn__setVehicleDeformationFixed; - private delegate* unmanaged[Cdecl] fn__setVehicleCanEngineMissfire; - private delegate* unmanaged[Cdecl] fn__setVehicleCanLeakOil; - private delegate* unmanaged[Cdecl] fn__setVehicleCanLeakPetrol; - private delegate* unmanaged[Cdecl] fn__setDisableVehiclePetrolTankFires; - private delegate* unmanaged[Cdecl] fn__setDisableVehiclePetrolTankDamage; - private delegate* unmanaged[Cdecl] fn__setDisableVehicleEngineFires; - private delegate* unmanaged[Cdecl] fn__setVehicleLimitSpeedWhenPlayerInactive; - private delegate* unmanaged[Cdecl] fn__setVehicleStopInstantlyWhenPlayerInactive; - private delegate* unmanaged[Cdecl] fn__setDisablePretendOccupants; + private delegate* unmanaged[Cdecl] fn__setVehicleFixed; + private delegate* unmanaged[Cdecl] fn__setVehicleDeformationFixed; + private delegate* unmanaged[Cdecl] fn__setVehicleCanEngineMissfire; + private delegate* unmanaged[Cdecl] fn__setVehicleCanLeakOil; + private delegate* unmanaged[Cdecl] fn__setVehicleCanLeakPetrol; + private delegate* unmanaged[Cdecl] fn__setDisableVehiclePetrolTankFires; + private delegate* unmanaged[Cdecl] fn__setDisableVehiclePetrolTankDamage; + private delegate* unmanaged[Cdecl] fn__setDisableVehicleEngineFires; + private delegate* unmanaged[Cdecl] fn__setVehicleLimitSpeedWhenPlayerInactive; + private delegate* unmanaged[Cdecl] fn__setVehicleStopInstantlyWhenPlayerInactive; + private delegate* unmanaged[Cdecl] fn__setDisablePretendOccupants; private delegate* unmanaged[Cdecl] fn__removeVehiclesFromGeneratorsInArea; - private delegate* unmanaged[Cdecl] fn__setVehicleSteerBias; - private delegate* unmanaged[Cdecl] fn__isVehicleExtraTurnedOn; - private delegate* unmanaged[Cdecl] fn__setVehicleExtra; - private delegate* unmanaged[Cdecl] fn__doesExtraExist; - private delegate* unmanaged[Cdecl] fn__isExtraBrokenOff; - private delegate* unmanaged[Cdecl] fn__setConvertibleRoof; - private delegate* unmanaged[Cdecl] fn__lowerConvertibleRoof; - private delegate* unmanaged[Cdecl] fn__raiseConvertibleRoof; - private delegate* unmanaged[Cdecl] fn__getConvertibleRoofState; - private delegate* unmanaged[Cdecl] fn__isVehicleAConvertible; - private delegate* unmanaged[Cdecl] fn__transformToSubmarine; - private delegate* unmanaged[Cdecl] fn__transformToCar; - private delegate* unmanaged[Cdecl] fn__isVehicleInSubmarineMode; - private delegate* unmanaged[Cdecl] fn__isVehicleStoppedAtTrafficLights; - private delegate* unmanaged[Cdecl] fn__setVehicleDamage; - private delegate* unmanaged[Cdecl] fn__setVehicleOccupantsTakeExplosiveDamage; - private delegate* unmanaged[Cdecl] fn__getVehicleEngineHealth; - private delegate* unmanaged[Cdecl] fn__setVehicleEngineHealth; - private delegate* unmanaged[Cdecl] fn__setPlaneEngineHealth; - private delegate* unmanaged[Cdecl] fn__getVehiclePetrolTankHealth; - private delegate* unmanaged[Cdecl] fn__setVehiclePetrolTankHealth; - private delegate* unmanaged[Cdecl] fn__isVehicleStuckTimerUp; - private delegate* unmanaged[Cdecl] fn__resetVehicleStuckTimer; - private delegate* unmanaged[Cdecl] fn__isVehicleDriveable; - private delegate* unmanaged[Cdecl] fn__setVehicleHasBeenOwnedByPlayer; - private delegate* unmanaged[Cdecl] fn__setVehicleNeedsToBeHotwired; - private delegate* unmanaged[Cdecl] fn__setVehicleBlipThrottleRandomly; - private delegate* unmanaged[Cdecl] fn__setPoliceFocusWillTrackVehicle; - private delegate* unmanaged[Cdecl] fn__startVehicleHorn; - private delegate* unmanaged[Cdecl] fn__setVehicleInCarModShop; - private delegate* unmanaged[Cdecl] fn__setVehicleHasStrongAxles; + private delegate* unmanaged[Cdecl] fn__setVehicleSteerBias; + private delegate* unmanaged[Cdecl] fn__isVehicleExtraTurnedOn; + private delegate* unmanaged[Cdecl] fn__setVehicleExtra; + private delegate* unmanaged[Cdecl] fn__doesExtraExist; + private delegate* unmanaged[Cdecl] fn__isExtraBrokenOff; + private delegate* unmanaged[Cdecl] fn__setConvertibleRoof; + private delegate* unmanaged[Cdecl] fn__lowerConvertibleRoof; + private delegate* unmanaged[Cdecl] fn__raiseConvertibleRoof; + private delegate* unmanaged[Cdecl] fn__getConvertibleRoofState; + private delegate* unmanaged[Cdecl] fn__isVehicleAConvertible; + private delegate* unmanaged[Cdecl] fn__transformToSubmarine; + private delegate* unmanaged[Cdecl] fn__transformToCar; + private delegate* unmanaged[Cdecl] fn__isVehicleInSubmarineMode; + private delegate* unmanaged[Cdecl] fn__isVehicleStoppedAtTrafficLights; + private delegate* unmanaged[Cdecl] fn__setVehicleDamage; + private delegate* unmanaged[Cdecl] fn__setVehicleOccupantsTakeExplosiveDamage; + private delegate* unmanaged[Cdecl] fn__getVehicleEngineHealth; + private delegate* unmanaged[Cdecl] fn__setVehicleEngineHealth; + private delegate* unmanaged[Cdecl] fn__setPlaneEngineHealth; + private delegate* unmanaged[Cdecl] fn__getVehiclePetrolTankHealth; + private delegate* unmanaged[Cdecl] fn__setVehiclePetrolTankHealth; + private delegate* unmanaged[Cdecl] fn__isVehicleStuckTimerUp; + private delegate* unmanaged[Cdecl] fn__resetVehicleStuckTimer; + private delegate* unmanaged[Cdecl] fn__isVehicleDriveable; + private delegate* unmanaged[Cdecl] fn__setVehicleHasBeenOwnedByPlayer; + private delegate* unmanaged[Cdecl] fn__setVehicleNeedsToBeHotwired; + private delegate* unmanaged[Cdecl] fn__setVehicleBlipThrottleRandomly; + private delegate* unmanaged[Cdecl] fn__setPoliceFocusWillTrackVehicle; + private delegate* unmanaged[Cdecl] fn__startVehicleHorn; + private delegate* unmanaged[Cdecl] fn__setVehicleInCarModShop; + private delegate* unmanaged[Cdecl] fn__setVehicleHasStrongAxles; private delegate* unmanaged[Cdecl] fn__getDisplayNameFromVehicleModel; private delegate* unmanaged[Cdecl] fn__getMakeNameFromVehicleModel; - private delegate* unmanaged[Cdecl] fn__getVehicleDeformationAtPos; - private delegate* unmanaged[Cdecl] fn__setVehicleLivery; - private delegate* unmanaged[Cdecl] fn__getVehicleLivery; - private delegate* unmanaged[Cdecl] fn__getVehicleLiveryCount; - private delegate* unmanaged[Cdecl] fn__setVehicleLivery2; - private delegate* unmanaged[Cdecl] fn__getVehicleLivery2; - private delegate* unmanaged[Cdecl] fn__getVehicleLivery2Count; - private delegate* unmanaged[Cdecl] fn__isVehicleWindowIntact; - private delegate* unmanaged[Cdecl] fn__areAllVehicleWindowsIntact; - private delegate* unmanaged[Cdecl] fn__areAnyVehicleSeatsFree; - private delegate* unmanaged[Cdecl] fn__resetVehicleWheels; - private delegate* unmanaged[Cdecl] fn__isHeliPartBroken; - private delegate* unmanaged[Cdecl] fn__getHeliMainRotorHealth; - private delegate* unmanaged[Cdecl] fn__getHeliTailRotorHealth; - private delegate* unmanaged[Cdecl] fn__getHeliTailBoomHealth; - private delegate* unmanaged[Cdecl] fn__setHeliMainRotorHealth; - private delegate* unmanaged[Cdecl] fn__setHeliTailRotorHealth; - private delegate* unmanaged[Cdecl] fn__setHeliTailBoomCanBreakOff; - private delegate* unmanaged[Cdecl] fn__setVehicleNameDebug; - private delegate* unmanaged[Cdecl] fn__setVehicleExplodesOnHighExplosionDamage; - private delegate* unmanaged[Cdecl] fn__setVehicleExplodesOnExplosionDamageAtZeroBodyHealth; - private delegate* unmanaged[Cdecl] fn__setAllowVehicleExplodesOnContact; - private delegate* unmanaged[Cdecl] fn__setVehicleDisableTowing; - private delegate* unmanaged[Cdecl] fn__getVehicleHasLandingGear; - private delegate* unmanaged[Cdecl] fn__controlLandingGear; - private delegate* unmanaged[Cdecl] fn__getLandingGearState; + private delegate* unmanaged[Cdecl] fn__getVehicleDeformationAtPos; + private delegate* unmanaged[Cdecl] fn__setVehicleLivery; + private delegate* unmanaged[Cdecl] fn__getVehicleLivery; + private delegate* unmanaged[Cdecl] fn__getVehicleLiveryCount; + private delegate* unmanaged[Cdecl] fn__setVehicleLivery2; + private delegate* unmanaged[Cdecl] fn__getVehicleLivery2; + private delegate* unmanaged[Cdecl] fn__getVehicleLivery2Count; + private delegate* unmanaged[Cdecl] fn__isVehicleWindowIntact; + private delegate* unmanaged[Cdecl] fn__areAllVehicleWindowsIntact; + private delegate* unmanaged[Cdecl] fn__areAnyVehicleSeatsFree; + private delegate* unmanaged[Cdecl] fn__resetVehicleWheels; + private delegate* unmanaged[Cdecl] fn__isHeliPartBroken; + private delegate* unmanaged[Cdecl] fn__getHeliMainRotorHealth; + private delegate* unmanaged[Cdecl] fn__getHeliTailRotorHealth; + private delegate* unmanaged[Cdecl] fn__getHeliTailBoomHealth; + private delegate* unmanaged[Cdecl] fn__setHeliMainRotorHealth; + private delegate* unmanaged[Cdecl] fn__setHeliTailRotorHealth; + private delegate* unmanaged[Cdecl] fn__setHeliTailBoomCanBreakOff; + private delegate* unmanaged[Cdecl] fn__setVehicleNameDebug; + private delegate* unmanaged[Cdecl] fn__setVehicleExplodesOnHighExplosionDamage; + private delegate* unmanaged[Cdecl] fn__setVehicleExplodesOnExplosionDamageAtZeroBodyHealth; + private delegate* unmanaged[Cdecl] fn__setAllowVehicleExplodesOnContact; + private delegate* unmanaged[Cdecl] fn__setVehicleDisableTowing; + private delegate* unmanaged[Cdecl] fn__getVehicleHasLandingGear; + private delegate* unmanaged[Cdecl] fn__controlLandingGear; + private delegate* unmanaged[Cdecl] fn__getLandingGearState; private delegate* unmanaged[Cdecl] fn__isAnyVehicleNearPoint; - private delegate* unmanaged[Cdecl] fn__requestVehicleHighDetailModel; - private delegate* unmanaged[Cdecl] fn__removeVehicleHighDetailModel; - private delegate* unmanaged[Cdecl] fn__isVehicleHighDetail; + private delegate* unmanaged[Cdecl] fn__requestVehicleHighDetailModel; + private delegate* unmanaged[Cdecl] fn__removeVehicleHighDetailModel; + private delegate* unmanaged[Cdecl] fn__isVehicleHighDetail; private delegate* unmanaged[Cdecl] fn__requestVehicleAsset; private delegate* unmanaged[Cdecl] fn__hasVehicleAssetLoaded; private delegate* unmanaged[Cdecl] fn__removeVehicleAsset; - private delegate* unmanaged[Cdecl] fn__setVehicleTowTruckArmPosition; - private delegate* unmanaged[Cdecl] fn__attachVehicleToTowTruck; - private delegate* unmanaged[Cdecl] fn__detachVehicleFromTowTruck; - private delegate* unmanaged[Cdecl] fn__detachVehicleFromAnyTowTruck; - private delegate* unmanaged[Cdecl] fn__isVehicleAttachedToTowTruck; - private delegate* unmanaged[Cdecl] fn__getEntityAttachedToTowTruck; - private delegate* unmanaged[Cdecl] fn__setVehicleAutomaticallyAttaches; - private delegate* unmanaged[Cdecl] fn__setVehicleBulldozerArmPosition; - private delegate* unmanaged[Cdecl] fn__setVehicleTankTurretPosition; - private delegate* unmanaged[Cdecl] fn__setVehicleTurretTarget; - private delegate* unmanaged[Cdecl] fn__setVehicleTankStationary; - private delegate* unmanaged[Cdecl] fn__setVehicleTurretSpeedThisFrame; - private delegate* unmanaged[Cdecl] fn__disableVehicleTurretMovementThisFrame; - private delegate* unmanaged[Cdecl] fn__setVehicleFlightNozzlePosition; - private delegate* unmanaged[Cdecl] fn__setVehicleFlightNozzlePositionImmediate; - private delegate* unmanaged[Cdecl] fn__getVehicleFlightNozzlePosition; - private delegate* unmanaged[Cdecl] fn__setDisableVerticalFlightModeTransition; + private delegate* unmanaged[Cdecl] fn__setVehicleTowTruckArmPosition; + private delegate* unmanaged[Cdecl] fn__attachVehicleToTowTruck; + private delegate* unmanaged[Cdecl] fn__detachVehicleFromTowTruck; + private delegate* unmanaged[Cdecl] fn__detachVehicleFromAnyTowTruck; + private delegate* unmanaged[Cdecl] fn__isVehicleAttachedToTowTruck; + private delegate* unmanaged[Cdecl] fn__getEntityAttachedToTowTruck; + private delegate* unmanaged[Cdecl] fn__setVehicleAutomaticallyAttaches; + private delegate* unmanaged[Cdecl] fn__setVehicleBulldozerArmPosition; + private delegate* unmanaged[Cdecl] fn__setVehicleTankTurretPosition; + private delegate* unmanaged[Cdecl] fn__setVehicleTurretTarget; + private delegate* unmanaged[Cdecl] fn__setVehicleTankStationary; + private delegate* unmanaged[Cdecl] fn__setVehicleTurretSpeedThisFrame; + private delegate* unmanaged[Cdecl] fn__disableVehicleTurretMovementThisFrame; + private delegate* unmanaged[Cdecl] fn__setVehicleFlightNozzlePosition; + private delegate* unmanaged[Cdecl] fn__setVehicleFlightNozzlePositionImmediate; + private delegate* unmanaged[Cdecl] fn__getVehicleFlightNozzlePosition; + private delegate* unmanaged[Cdecl] fn__setDisableVerticalFlightModeTransition; private delegate* unmanaged[Cdecl] fn__generateVehicleCreationPosFromPaths; - private delegate* unmanaged[Cdecl] fn__setVehicleBurnout; - private delegate* unmanaged[Cdecl] fn__isVehicleInBurnout; - private delegate* unmanaged[Cdecl] fn__setVehicleReduceGrip; - private delegate* unmanaged[Cdecl] fn__setVehicleReduceGripLevel; - private delegate* unmanaged[Cdecl] fn__setVehicleIndicatorLights; - private delegate* unmanaged[Cdecl] fn__setVehicleBrakeLights; - private delegate* unmanaged[Cdecl] fn__setVehicleHandbrake; - private delegate* unmanaged[Cdecl] fn__setVehicleBrake; + private delegate* unmanaged[Cdecl] fn__setVehicleBurnout; + private delegate* unmanaged[Cdecl] fn__isVehicleInBurnout; + private delegate* unmanaged[Cdecl] fn__setVehicleReduceGrip; + private delegate* unmanaged[Cdecl] fn__setVehicleReduceGripLevel; + private delegate* unmanaged[Cdecl] fn__setVehicleIndicatorLights; + private delegate* unmanaged[Cdecl] fn__setVehicleBrakeLights; + private delegate* unmanaged[Cdecl] fn__setVehicleHandbrake; + private delegate* unmanaged[Cdecl] fn__setVehicleBrake; private delegate* unmanaged[Cdecl] fn__instantlyFillVehiclePopulation; private delegate* unmanaged[Cdecl] fn__hasInstantFillVehiclePopulationFinished; private delegate* unmanaged[Cdecl] fn__networkEnableEmptyCrowdingVehiclesRemoval; private delegate* unmanaged[Cdecl] fn__networkCapEmptyCrowdingVehiclesRemoval; - private delegate* unmanaged[Cdecl] fn__getVehicleTrailerVehicle; - private delegate* unmanaged[Cdecl] fn__setVehicleUsesLargeRearRamp; - private delegate* unmanaged[Cdecl] fn__setVehicleRudderBroken; - private delegate* unmanaged[Cdecl] fn__setConvertibleRoofLatchState; - private delegate* unmanaged[Cdecl] fn__getVehicleEstimatedMaxSpeed; - private delegate* unmanaged[Cdecl] fn__getVehicleMaxBraking; - private delegate* unmanaged[Cdecl] fn__getVehicleMaxTraction; - private delegate* unmanaged[Cdecl] fn__getVehicleAcceleration; + private delegate* unmanaged[Cdecl] fn__getVehicleTrailerVehicle; + private delegate* unmanaged[Cdecl] fn__setVehicleUsesLargeRearRamp; + private delegate* unmanaged[Cdecl] fn__setVehicleRudderBroken; + private delegate* unmanaged[Cdecl] fn__setConvertibleRoofLatchState; + private delegate* unmanaged[Cdecl] fn__getVehicleEstimatedMaxSpeed; + private delegate* unmanaged[Cdecl] fn__getVehicleMaxBraking; + private delegate* unmanaged[Cdecl] fn__getVehicleMaxTraction; + private delegate* unmanaged[Cdecl] fn__getVehicleAcceleration; private delegate* unmanaged[Cdecl] fn__getVehicleModelEstimatedMaxSpeed; private delegate* unmanaged[Cdecl] fn__getVehicleModelMaxBraking; private delegate* unmanaged[Cdecl] fn__getVehicleModelMaxBrakingMaxMods; @@ -32828,326 +32815,326 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getVehicleClassMaxBraking; private delegate* unmanaged[Cdecl] fn__addRoadNodeSpeedZone; private delegate* unmanaged[Cdecl] fn__removeRoadNodeSpeedZone; - private delegate* unmanaged[Cdecl] fn__openBombBayDoors; - private delegate* unmanaged[Cdecl] fn__closeBombBayDoors; - private delegate* unmanaged[Cdecl] fn__getAreBombBayDoorsOpen; - private delegate* unmanaged[Cdecl] fn__isVehicleSearchlightOn; - private delegate* unmanaged[Cdecl] fn__setVehicleSearchlight; - private delegate* unmanaged[Cdecl] fn__doesVehicleHaveSearchlight; - private delegate* unmanaged[Cdecl] fn__isEntryPointForSeatClear; - private delegate* unmanaged[Cdecl] fn__getEntryPointPosition; - private delegate* unmanaged[Cdecl] fn__canShuffleSeat; - private delegate* unmanaged[Cdecl] fn__getNumModKits; - private delegate* unmanaged[Cdecl] fn__setVehicleModKit; - private delegate* unmanaged[Cdecl] fn__getVehicleModKit; - private delegate* unmanaged[Cdecl] fn__getVehicleModKitType; - private delegate* unmanaged[Cdecl] fn__getVehicleWheelType; - private delegate* unmanaged[Cdecl] fn__setVehicleWheelType; + private delegate* unmanaged[Cdecl] fn__openBombBayDoors; + private delegate* unmanaged[Cdecl] fn__closeBombBayDoors; + private delegate* unmanaged[Cdecl] fn__getAreBombBayDoorsOpen; + private delegate* unmanaged[Cdecl] fn__isVehicleSearchlightOn; + private delegate* unmanaged[Cdecl] fn__setVehicleSearchlight; + private delegate* unmanaged[Cdecl] fn__doesVehicleHaveSearchlight; + private delegate* unmanaged[Cdecl] fn__isEntryPointForSeatClear; + private delegate* unmanaged[Cdecl] fn__getEntryPointPosition; + private delegate* unmanaged[Cdecl] fn__canShuffleSeat; + private delegate* unmanaged[Cdecl] fn__getNumModKits; + private delegate* unmanaged[Cdecl] fn__setVehicleModKit; + private delegate* unmanaged[Cdecl] fn__getVehicleModKit; + private delegate* unmanaged[Cdecl] fn__getVehicleModKitType; + private delegate* unmanaged[Cdecl] fn__getVehicleWheelType; + private delegate* unmanaged[Cdecl] fn__setVehicleWheelType; private delegate* unmanaged[Cdecl] fn__getNumModColors; - private delegate* unmanaged[Cdecl] fn__setVehicleModColor1; - private delegate* unmanaged[Cdecl] fn__setVehicleModColor2; - private delegate* unmanaged[Cdecl] fn__getVehicleModColor1; - private delegate* unmanaged[Cdecl] fn__getVehicleModColor2; - private delegate* unmanaged[Cdecl] fn__getVehicleModColor1Name; - private delegate* unmanaged[Cdecl] fn__getVehicleModColor2Name; - private delegate* unmanaged[Cdecl] fn__haveVehicleModsStreamedIn; - private delegate* unmanaged[Cdecl] fn__isVehicleModGen9Exclusive; - private delegate* unmanaged[Cdecl] fn__setVehicleMod; - private delegate* unmanaged[Cdecl] fn__getVehicleMod; - private delegate* unmanaged[Cdecl] fn__getVehicleModVariation; - private delegate* unmanaged[Cdecl] fn__getNumVehicleMods; - private delegate* unmanaged[Cdecl] fn__removeVehicleMod; - private delegate* unmanaged[Cdecl] fn__toggleVehicleMod; - private delegate* unmanaged[Cdecl] fn__isToggleModOn; - private delegate* unmanaged[Cdecl] fn__getModTextLabel; - private delegate* unmanaged[Cdecl] fn__getModSlotName; - private delegate* unmanaged[Cdecl] fn__getLiveryName; - private delegate* unmanaged[Cdecl] fn__getVehicleModModifierValue; - private delegate* unmanaged[Cdecl] fn__getVehicleModIdentifierHash; - private delegate* unmanaged[Cdecl] fn__preloadVehicleMod; - private delegate* unmanaged[Cdecl] fn__hasPreloadModsFinished; - private delegate* unmanaged[Cdecl] fn__releasePreloadMods; - private delegate* unmanaged[Cdecl] fn__setVehicleTyreSmokeColor; - private delegate* unmanaged[Cdecl] fn__getVehicleTyreSmokeColor; - private delegate* unmanaged[Cdecl] fn__setVehicleWindowTint; - private delegate* unmanaged[Cdecl] fn__getVehicleWindowTint; + private delegate* unmanaged[Cdecl] fn__setVehicleModColor1; + private delegate* unmanaged[Cdecl] fn__setVehicleModColor2; + private delegate* unmanaged[Cdecl] fn__getVehicleModColor1; + private delegate* unmanaged[Cdecl] fn__getVehicleModColor2; + private delegate* unmanaged[Cdecl] fn__getVehicleModColor1Name; + private delegate* unmanaged[Cdecl] fn__getVehicleModColor2Name; + private delegate* unmanaged[Cdecl] fn__haveVehicleModsStreamedIn; + private delegate* unmanaged[Cdecl] fn__isVehicleModGen9Exclusive; + private delegate* unmanaged[Cdecl] fn__setVehicleMod; + private delegate* unmanaged[Cdecl] fn__getVehicleMod; + private delegate* unmanaged[Cdecl] fn__getVehicleModVariation; + private delegate* unmanaged[Cdecl] fn__getNumVehicleMods; + private delegate* unmanaged[Cdecl] fn__removeVehicleMod; + private delegate* unmanaged[Cdecl] fn__toggleVehicleMod; + private delegate* unmanaged[Cdecl] fn__isToggleModOn; + private delegate* unmanaged[Cdecl] fn__getModTextLabel; + private delegate* unmanaged[Cdecl] fn__getModSlotName; + private delegate* unmanaged[Cdecl] fn__getLiveryName; + private delegate* unmanaged[Cdecl] fn__getVehicleModModifierValue; + private delegate* unmanaged[Cdecl] fn__getVehicleModIdentifierHash; + private delegate* unmanaged[Cdecl] fn__preloadVehicleMod; + private delegate* unmanaged[Cdecl] fn__hasPreloadModsFinished; + private delegate* unmanaged[Cdecl] fn__releasePreloadMods; + private delegate* unmanaged[Cdecl] fn__setVehicleTyreSmokeColor; + private delegate* unmanaged[Cdecl] fn__getVehicleTyreSmokeColor; + private delegate* unmanaged[Cdecl] fn__setVehicleWindowTint; + private delegate* unmanaged[Cdecl] fn__getVehicleWindowTint; private delegate* unmanaged[Cdecl] fn__getNumVehicleWindowTints; - private delegate* unmanaged[Cdecl] fn__getVehicleColor; - private delegate* unmanaged[Cdecl] fn__getVehicleColoursWhichCanBeSet; - private delegate* unmanaged[Cdecl] fn__getVehicleCauseOfDestruction; - private delegate* unmanaged[Cdecl] fn__overridePlaneDamageThrehsold; - private delegate* unmanaged[Cdecl] fn__getIsLeftVehicleHeadlightDamaged; - private delegate* unmanaged[Cdecl] fn__getIsRightVehicleHeadlightDamaged; - private delegate* unmanaged[Cdecl] fn__getBothVehicleHeadlightsDamaged; - private delegate* unmanaged[Cdecl] fn__modifyVehicleTopSpeed; - private delegate* unmanaged[Cdecl] fn__setVehicleMaxSpeed; - private delegate* unmanaged[Cdecl] fn__setVehicleStaysFrozenWhenCleanedUp; - private delegate* unmanaged[Cdecl] fn__setVehicleActAsIfHighSpeedForFragSmashing; - private delegate* unmanaged[Cdecl] fn__setPedsCanFallOffThisVehicleFromLargeFallDamage; + private delegate* unmanaged[Cdecl] fn__getVehicleColor; + private delegate* unmanaged[Cdecl] fn__getVehicleColoursWhichCanBeSet; + private delegate* unmanaged[Cdecl] fn__getVehicleCauseOfDestruction; + private delegate* unmanaged[Cdecl] fn__overridePlaneDamageThrehsold; + private delegate* unmanaged[Cdecl] fn__getIsLeftVehicleHeadlightDamaged; + private delegate* unmanaged[Cdecl] fn__getIsRightVehicleHeadlightDamaged; + private delegate* unmanaged[Cdecl] fn__getBothVehicleHeadlightsDamaged; + private delegate* unmanaged[Cdecl] fn__modifyVehicleTopSpeed; + private delegate* unmanaged[Cdecl] fn__setVehicleMaxSpeed; + private delegate* unmanaged[Cdecl] fn__setVehicleStaysFrozenWhenCleanedUp; + private delegate* unmanaged[Cdecl] fn__setVehicleActAsIfHighSpeedForFragSmashing; + private delegate* unmanaged[Cdecl] fn__setPedsCanFallOffThisVehicleFromLargeFallDamage; private delegate* unmanaged[Cdecl] fn__addVehicleCombatAngledAvoidanceArea; private delegate* unmanaged[Cdecl] fn__removeVehicleCombatAvoidanceArea; - private delegate* unmanaged[Cdecl] fn__isAnyPedRappellingFromHeli; - private delegate* unmanaged[Cdecl] fn__setVehicleCheatPowerIncrease; + private delegate* unmanaged[Cdecl] fn__isAnyPedRappellingFromHeli; + private delegate* unmanaged[Cdecl] fn__setVehicleCheatPowerIncrease; private delegate* unmanaged[Cdecl] fn__setVehicleInfluencesWantedLevel; - private delegate* unmanaged[Cdecl] fn__setVehicleIsWanted; - private delegate* unmanaged[Cdecl] fn__swingBoatBoomToRatio; - private delegate* unmanaged[Cdecl] fn__swingBoatBoomFreely; - private delegate* unmanaged[Cdecl] fn__allowBoatBoomToAnimate; - private delegate* unmanaged[Cdecl] fn__getBoatBoomPositionRatio; - private delegate* unmanaged[Cdecl] fn__disablePlaneAileron; - private delegate* unmanaged[Cdecl] fn__getIsVehicleEngineRunning; - private delegate* unmanaged[Cdecl] fn__setVehicleUseAlternateHandling; - private delegate* unmanaged[Cdecl] fn__setBikeOnStand; - private delegate* unmanaged[Cdecl] fn__setVehicleNotStealableAmbiently; - private delegate* unmanaged[Cdecl] fn__lockDoorsWhenNoLongerNeeded; - private delegate* unmanaged[Cdecl] fn__setLastDrivenVehicle; - private delegate* unmanaged[Cdecl] fn__getLastDrivenVehicle; + private delegate* unmanaged[Cdecl] fn__setVehicleIsWanted; + private delegate* unmanaged[Cdecl] fn__swingBoatBoomToRatio; + private delegate* unmanaged[Cdecl] fn__swingBoatBoomFreely; + private delegate* unmanaged[Cdecl] fn__allowBoatBoomToAnimate; + private delegate* unmanaged[Cdecl] fn__getBoatBoomPositionRatio; + private delegate* unmanaged[Cdecl] fn__disablePlaneAileron; + private delegate* unmanaged[Cdecl] fn__getIsVehicleEngineRunning; + private delegate* unmanaged[Cdecl] fn__setVehicleUseAlternateHandling; + private delegate* unmanaged[Cdecl] fn__setBikeOnStand; + private delegate* unmanaged[Cdecl] fn__setVehicleNotStealableAmbiently; + private delegate* unmanaged[Cdecl] fn__lockDoorsWhenNoLongerNeeded; + private delegate* unmanaged[Cdecl] fn__setLastDrivenVehicle; + private delegate* unmanaged[Cdecl] fn__getLastDrivenVehicle; private delegate* unmanaged[Cdecl] fn__clearLastDrivenVehicle; - private delegate* unmanaged[Cdecl] fn__setVehicleHasBeenDrivenFlag; - private delegate* unmanaged[Cdecl] fn__setTaskVehicleGotoPlaneMinHeightAboveTerrain; - private delegate* unmanaged[Cdecl] fn__setVehicleLodMultiplier; - private delegate* unmanaged[Cdecl] fn__setVehicleCanSaveInGarage; - private delegate* unmanaged[Cdecl] fn__getVehicleNumOfBrokenOffParts; - private delegate* unmanaged[Cdecl] fn__getVehicleNumOfBrokenLoosenParts; + private delegate* unmanaged[Cdecl] fn__setVehicleHasBeenDrivenFlag; + private delegate* unmanaged[Cdecl] fn__setTaskVehicleGotoPlaneMinHeightAboveTerrain; + private delegate* unmanaged[Cdecl] fn__setVehicleLodMultiplier; + private delegate* unmanaged[Cdecl] fn__setVehicleCanSaveInGarage; + private delegate* unmanaged[Cdecl] fn__getVehicleNumOfBrokenOffParts; + private delegate* unmanaged[Cdecl] fn__getVehicleNumOfBrokenLoosenParts; private delegate* unmanaged[Cdecl] fn__setForceVehicleEngineDamageByBullet; - private delegate* unmanaged[Cdecl] fn__setVehicleGeneratesEngineShockingEvents; - private delegate* unmanaged[Cdecl] fn__copyVehicleDamages; + private delegate* unmanaged[Cdecl] fn__setVehicleGeneratesEngineShockingEvents; + private delegate* unmanaged[Cdecl] fn__copyVehicleDamages; private delegate* unmanaged[Cdecl] fn__disableVehicleExplosionBreakOffParts; private delegate* unmanaged[Cdecl] fn__setLightsCutoffDistanceTweak; - private delegate* unmanaged[Cdecl] fn__setVehicleShootAtTarget; - private delegate* unmanaged[Cdecl] fn__getVehicleLockOnTarget; - private delegate* unmanaged[Cdecl] fn__setForceHdVehicle; - private delegate* unmanaged[Cdecl] fn__setVehicleCustomPathNodeStreamingRadius; - private delegate* unmanaged[Cdecl] fn__getVehiclePlateType; - private delegate* unmanaged[Cdecl] fn__trackVehicleVisibility; - private delegate* unmanaged[Cdecl] fn__isVehicleVisible; - private delegate* unmanaged[Cdecl] fn__setVehicleGravity; + private delegate* unmanaged[Cdecl] fn__setVehicleShootAtTarget; + private delegate* unmanaged[Cdecl] fn__getVehicleLockOnTarget; + private delegate* unmanaged[Cdecl] fn__setForceHdVehicle; + private delegate* unmanaged[Cdecl] fn__setVehicleCustomPathNodeStreamingRadius; + private delegate* unmanaged[Cdecl] fn__getVehiclePlateType; + private delegate* unmanaged[Cdecl] fn__trackVehicleVisibility; + private delegate* unmanaged[Cdecl] fn__isVehicleVisible; + private delegate* unmanaged[Cdecl] fn__setVehicleGravity; private delegate* unmanaged[Cdecl] fn__setEnableVehicleSlipstreaming; private delegate* unmanaged[Cdecl] fn__setVehicleSlipstreamingShouldTimeOut; - private delegate* unmanaged[Cdecl] fn__getVehicleCurrentTimeInSlipStream; - private delegate* unmanaged[Cdecl] fn__isVehicleProducingSlipStream; - private delegate* unmanaged[Cdecl] fn__setVehicleInactiveDuringPlayback; - private delegate* unmanaged[Cdecl] fn__setVehicleActiveDuringPlayback; - private delegate* unmanaged[Cdecl] fn__isVehicleSprayable; - private delegate* unmanaged[Cdecl] fn__setVehicleEngineCanDegrade; - private delegate* unmanaged[Cdecl] fn__disableVehcileDynamicAmbientScales; - private delegate* unmanaged[Cdecl] fn__enableVehicleDynamicAmbientScales; - private delegate* unmanaged[Cdecl] fn__isPlaneLandingGearIntact; - private delegate* unmanaged[Cdecl] fn__arePlanePropellersIntact; - private delegate* unmanaged[Cdecl] fn__setPlanePropellerHealth; - private delegate* unmanaged[Cdecl] fn__setVehicleCanDeformWheels; - private delegate* unmanaged[Cdecl] fn__isVehicleStolen; - private delegate* unmanaged[Cdecl] fn__setVehicleIsStolen; - private delegate* unmanaged[Cdecl] fn__setPlaneTurbulenceMultiplier; - private delegate* unmanaged[Cdecl] fn__areWingsOfPlaneIntact; - private delegate* unmanaged[Cdecl] fn__allowAmbientVehiclesToAvoidAdverseConditions; - private delegate* unmanaged[Cdecl] fn__detachVehicleFromCargobob; - private delegate* unmanaged[Cdecl] fn__detachVehicleFromAnyCargobob; - private delegate* unmanaged[Cdecl] fn__detachEntityFromCargobob; - private delegate* unmanaged[Cdecl] fn__isVehicleAttachedToCargobob; - private delegate* unmanaged[Cdecl] fn__getVehicleAttachedToCargobob; - private delegate* unmanaged[Cdecl] fn__getEntityAttachedToCargobob; - private delegate* unmanaged[Cdecl] fn__attachVehicleToCargobob; + private delegate* unmanaged[Cdecl] fn__getVehicleCurrentTimeInSlipStream; + private delegate* unmanaged[Cdecl] fn__isVehicleProducingSlipStream; + private delegate* unmanaged[Cdecl] fn__setVehicleInactiveDuringPlayback; + private delegate* unmanaged[Cdecl] fn__setVehicleActiveDuringPlayback; + private delegate* unmanaged[Cdecl] fn__isVehicleSprayable; + private delegate* unmanaged[Cdecl] fn__setVehicleEngineCanDegrade; + private delegate* unmanaged[Cdecl] fn__disableVehcileDynamicAmbientScales; + private delegate* unmanaged[Cdecl] fn__enableVehicleDynamicAmbientScales; + private delegate* unmanaged[Cdecl] fn__isPlaneLandingGearIntact; + private delegate* unmanaged[Cdecl] fn__arePlanePropellersIntact; + private delegate* unmanaged[Cdecl] fn__setPlanePropellerHealth; + private delegate* unmanaged[Cdecl] fn__setVehicleCanDeformWheels; + private delegate* unmanaged[Cdecl] fn__isVehicleStolen; + private delegate* unmanaged[Cdecl] fn__setVehicleIsStolen; + private delegate* unmanaged[Cdecl] fn__setPlaneTurbulenceMultiplier; + private delegate* unmanaged[Cdecl] fn__areWingsOfPlaneIntact; + private delegate* unmanaged[Cdecl] fn__allowAmbientVehiclesToAvoidAdverseConditions; + private delegate* unmanaged[Cdecl] fn__detachVehicleFromCargobob; + private delegate* unmanaged[Cdecl] fn__detachVehicleFromAnyCargobob; + private delegate* unmanaged[Cdecl] fn__detachEntityFromCargobob; + private delegate* unmanaged[Cdecl] fn__isVehicleAttachedToCargobob; + private delegate* unmanaged[Cdecl] fn__getVehicleAttachedToCargobob; + private delegate* unmanaged[Cdecl] fn__getEntityAttachedToCargobob; + private delegate* unmanaged[Cdecl] fn__attachVehicleToCargobob; private delegate* unmanaged[Cdecl] fn__attachEntityToCargobob; - private delegate* unmanaged[Cdecl] fn__setCargobobForceDontDetachVehicle; + private delegate* unmanaged[Cdecl] fn__setCargobobForceDontDetachVehicle; private delegate* unmanaged[Cdecl] fn__setCargobobExcludeFromPickupEntity; private delegate* unmanaged[Cdecl] fn__canCargobobPickUpEntity; - private delegate* unmanaged[Cdecl] fn__getAttachedPickUpHookPosition; - private delegate* unmanaged[Cdecl] fn__doesCargobobHavePickUpRope; - private delegate* unmanaged[Cdecl] fn__createPickUpRopeForCargobob; - private delegate* unmanaged[Cdecl] fn__removePickUpRopeForCargobob; - private delegate* unmanaged[Cdecl] fn__setPickupRopeLengthForCargobob; + private delegate* unmanaged[Cdecl] fn__getAttachedPickUpHookPosition; + private delegate* unmanaged[Cdecl] fn__doesCargobobHavePickUpRope; + private delegate* unmanaged[Cdecl] fn__createPickUpRopeForCargobob; + private delegate* unmanaged[Cdecl] fn__removePickUpRopeForCargobob; + private delegate* unmanaged[Cdecl] fn__setPickupRopeLengthForCargobob; private delegate* unmanaged[Cdecl] fn__setPickupRopeLengthWithoutCreatingRopeForCargobob; private delegate* unmanaged[Cdecl] fn__setCargobobPickupRopeDampingMultiplier; private delegate* unmanaged[Cdecl] fn__setCargobobPickupRopeType; - private delegate* unmanaged[Cdecl] fn__doesCargobobHavePickupMagnet; - private delegate* unmanaged[Cdecl] fn__setCargobobPickupMagnetActive; - private delegate* unmanaged[Cdecl] fn__setCargobobPickupMagnetStrength; - private delegate* unmanaged[Cdecl] fn__setCargobobPickupMagnetFalloff; - private delegate* unmanaged[Cdecl] fn__setCargobobPickupMagnetReducedStrength; - private delegate* unmanaged[Cdecl] fn__setCargobobPickupMagnetReducedFalloff; - private delegate* unmanaged[Cdecl] fn__setCargobobPickupMagnetPullStrength; - private delegate* unmanaged[Cdecl] fn__setCargobobPickupMagnetPullRopeLength; - private delegate* unmanaged[Cdecl] fn__setCargobobPickupMagnetSetTargetedMode; - private delegate* unmanaged[Cdecl] fn__setCargobobPickupMagnetSetAmbientMode; - private delegate* unmanaged[Cdecl] fn__setCargobobPickupMagnetEnsurePickupEntityUpright; - private delegate* unmanaged[Cdecl] fn__doesVehicleHaveWeapons; - private delegate* unmanaged[Cdecl] fn__setVehicleWillTellOthersToHurry; - private delegate* unmanaged[Cdecl] fn__disableVehicleWeapon; - private delegate* unmanaged[Cdecl] fn__isVehicleWeaponDisabled; - private delegate* unmanaged[Cdecl] fn__setVehicleUsedForPilotSchool; - private delegate* unmanaged[Cdecl] fn__setVehicleActiveForPedNavigation; - private delegate* unmanaged[Cdecl] fn__getVehicleClass; + private delegate* unmanaged[Cdecl] fn__doesCargobobHavePickupMagnet; + private delegate* unmanaged[Cdecl] fn__setCargobobPickupMagnetActive; + private delegate* unmanaged[Cdecl] fn__setCargobobPickupMagnetStrength; + private delegate* unmanaged[Cdecl] fn__setCargobobPickupMagnetFalloff; + private delegate* unmanaged[Cdecl] fn__setCargobobPickupMagnetReducedStrength; + private delegate* unmanaged[Cdecl] fn__setCargobobPickupMagnetReducedFalloff; + private delegate* unmanaged[Cdecl] fn__setCargobobPickupMagnetPullStrength; + private delegate* unmanaged[Cdecl] fn__setCargobobPickupMagnetPullRopeLength; + private delegate* unmanaged[Cdecl] fn__setCargobobPickupMagnetSetTargetedMode; + private delegate* unmanaged[Cdecl] fn__setCargobobPickupMagnetSetAmbientMode; + private delegate* unmanaged[Cdecl] fn__setCargobobPickupMagnetEnsurePickupEntityUpright; + private delegate* unmanaged[Cdecl] fn__doesVehicleHaveWeapons; + private delegate* unmanaged[Cdecl] fn__setVehicleWillTellOthersToHurry; + private delegate* unmanaged[Cdecl] fn__disableVehicleWeapon; + private delegate* unmanaged[Cdecl] fn__isVehicleWeaponDisabled; + private delegate* unmanaged[Cdecl] fn__setVehicleUsedForPilotSchool; + private delegate* unmanaged[Cdecl] fn__setVehicleActiveForPedNavigation; + private delegate* unmanaged[Cdecl] fn__getVehicleClass; private delegate* unmanaged[Cdecl] fn__getVehicleClassFromName; - private delegate* unmanaged[Cdecl] fn__setPlayersLastVehicle; - private delegate* unmanaged[Cdecl] fn__setVehicleCanBeUsedByFleeingPeds; - private delegate* unmanaged[Cdecl] fn__setAircraftPilotSkillNoiseScalar; - private delegate* unmanaged[Cdecl] fn__setVehicleDropsMoneyWhenBlownUp; - private delegate* unmanaged[Cdecl] fn__setVehicleKeepEngineOnWhenAbandoned; - private delegate* unmanaged[Cdecl] fn__setVehicleImpatienceTimer; - private delegate* unmanaged[Cdecl] fn__setVehicleHandlingOverride; - private delegate* unmanaged[Cdecl] fn__setVehicleExtendedRemovalRange; + private delegate* unmanaged[Cdecl] fn__setPlayersLastVehicle; + private delegate* unmanaged[Cdecl] fn__setVehicleCanBeUsedByFleeingPeds; + private delegate* unmanaged[Cdecl] fn__setAircraftPilotSkillNoiseScalar; + private delegate* unmanaged[Cdecl] fn__setVehicleDropsMoneyWhenBlownUp; + private delegate* unmanaged[Cdecl] fn__setVehicleKeepEngineOnWhenAbandoned; + private delegate* unmanaged[Cdecl] fn__setVehicleImpatienceTimer; + private delegate* unmanaged[Cdecl] fn__setVehicleHandlingOverride; + private delegate* unmanaged[Cdecl] fn__setVehicleExtendedRemovalRange; private delegate* unmanaged[Cdecl] fn__setVehicleSteeringBiasScalar; - private delegate* unmanaged[Cdecl] fn__setHeliControlLaggingRateScalar; - private delegate* unmanaged[Cdecl] fn__setVehicleFrictionOverride; - private delegate* unmanaged[Cdecl] fn__setVehicleWheelsCanBreakOffWhenBlowUp; - private delegate* unmanaged[Cdecl] fn__arePlaneControlPanelsIntact; - private delegate* unmanaged[Cdecl] fn__setVehicleCeilingHeight; - private delegate* unmanaged[Cdecl] fn__setVehicleNoExplosionDamageFromDriver; - private delegate* unmanaged[Cdecl] fn__clearVehicleRouteHistory; - private delegate* unmanaged[Cdecl] fn__doesVehicleExistWithDecorator; - private delegate* unmanaged[Cdecl] fn__setVehicleAiCanUseExclusiveSeats; - private delegate* unmanaged[Cdecl] fn__setVehicleExclusiveDriver; - private delegate* unmanaged[Cdecl] fn__isPedExclusiveDriverOfVehicle; - private delegate* unmanaged[Cdecl] fn__disableIndividualPlanePropeller; - private delegate* unmanaged[Cdecl] fn__setVehicleForceAfterburner; - private delegate* unmanaged[Cdecl] fn__setDontProcessVehicleGlass; - private delegate* unmanaged[Cdecl] fn__setDisableWantedConesResponse; - private delegate* unmanaged[Cdecl] fn__setUseDesiredZCruiseSpeedForLanding; - private delegate* unmanaged[Cdecl] fn__setArriveDistanceOverrideForVehiclePersuitAttack; + private delegate* unmanaged[Cdecl] fn__setHeliControlLaggingRateScalar; + private delegate* unmanaged[Cdecl] fn__setVehicleFrictionOverride; + private delegate* unmanaged[Cdecl] fn__setVehicleWheelsCanBreakOffWhenBlowUp; + private delegate* unmanaged[Cdecl] fn__arePlaneControlPanelsIntact; + private delegate* unmanaged[Cdecl] fn__setVehicleCeilingHeight; + private delegate* unmanaged[Cdecl] fn__setVehicleNoExplosionDamageFromDriver; + private delegate* unmanaged[Cdecl] fn__clearVehicleRouteHistory; + private delegate* unmanaged[Cdecl] fn__doesVehicleExistWithDecorator; + private delegate* unmanaged[Cdecl] fn__setVehicleAiCanUseExclusiveSeats; + private delegate* unmanaged[Cdecl] fn__setVehicleExclusiveDriver; + private delegate* unmanaged[Cdecl] fn__isPedExclusiveDriverOfVehicle; + private delegate* unmanaged[Cdecl] fn__disableIndividualPlanePropeller; + private delegate* unmanaged[Cdecl] fn__setVehicleForceAfterburner; + private delegate* unmanaged[Cdecl] fn__setDontProcessVehicleGlass; + private delegate* unmanaged[Cdecl] fn__setDisableWantedConesResponse; + private delegate* unmanaged[Cdecl] fn__setUseDesiredZCruiseSpeedForLanding; + private delegate* unmanaged[Cdecl] fn__setArriveDistanceOverrideForVehiclePersuitAttack; private delegate* unmanaged[Cdecl] fn__setVehicleReadyForCleanup; private delegate* unmanaged[Cdecl] fn__setDistantCarsEnabled; - private delegate* unmanaged[Cdecl] fn__setVehicleNeonColour; - private delegate* unmanaged[Cdecl] fn__setVehicleNeonIndexColour; - private delegate* unmanaged[Cdecl] fn__getVehicleNeonColour; - private delegate* unmanaged[Cdecl] fn__setVehicleNeonEnabled; - private delegate* unmanaged[Cdecl] fn__getVehicleNeonEnabled; + private delegate* unmanaged[Cdecl] fn__setVehicleNeonColour; + private delegate* unmanaged[Cdecl] fn__setVehicleNeonIndexColour; + private delegate* unmanaged[Cdecl] fn__getVehicleNeonColour; + private delegate* unmanaged[Cdecl] fn__setVehicleNeonEnabled; + private delegate* unmanaged[Cdecl] fn__getVehicleNeonEnabled; private delegate* unmanaged[Cdecl] fn__setAmbientVehicleNeonEnabled; - private delegate* unmanaged[Cdecl] fn__suppressNeonsOnVehicle; - private delegate* unmanaged[Cdecl] fn__setDisableSuperdummy; - private delegate* unmanaged[Cdecl] fn__requestVehicleDial; - private delegate* unmanaged[Cdecl] fn__getVehicleBodyHealth; - private delegate* unmanaged[Cdecl] fn__setVehicleBodyHealth; - private delegate* unmanaged[Cdecl] fn__getVehicleSize; - private delegate* unmanaged[Cdecl] fn__getFakeSuspensionLoweringAmount; + private delegate* unmanaged[Cdecl] fn__suppressNeonsOnVehicle; + private delegate* unmanaged[Cdecl] fn__setDisableSuperdummy; + private delegate* unmanaged[Cdecl] fn__requestVehicleDial; + private delegate* unmanaged[Cdecl] fn__getVehicleBodyHealth; + private delegate* unmanaged[Cdecl] fn__setVehicleBodyHealth; + private delegate* unmanaged[Cdecl] fn__getVehicleSize; + private delegate* unmanaged[Cdecl] fn__getFakeSuspensionLoweringAmount; private delegate* unmanaged[Cdecl] fn__setCarHighSpeedBumpSeverityMultiplier; - private delegate* unmanaged[Cdecl] fn__getNumberOfVehicleDoors; - private delegate* unmanaged[Cdecl] fn__setHydraulicsControl; - private delegate* unmanaged[Cdecl] fn__setCanAdjustGroundClearance; - private delegate* unmanaged[Cdecl] fn__getVehicleHealthPercentage; - private delegate* unmanaged[Cdecl] fn__getVehicleIsMercenary; - private delegate* unmanaged[Cdecl] fn__setVehicleBrokenPartsDontAffectAiHandling; - private delegate* unmanaged[Cdecl] fn__setVehicleKersAllowed; - private delegate* unmanaged[Cdecl] fn__getVehicleHasKers; - private delegate* unmanaged[Cdecl] fn__setPlaneResistToExplosion; - private delegate* unmanaged[Cdecl] fn__setHeliResistToExplosion; + private delegate* unmanaged[Cdecl] fn__getNumberOfVehicleDoors; + private delegate* unmanaged[Cdecl] fn__setHydraulicsControl; + private delegate* unmanaged[Cdecl] fn__setCanAdjustGroundClearance; + private delegate* unmanaged[Cdecl] fn__getVehicleHealthPercentage; + private delegate* unmanaged[Cdecl] fn__getVehicleIsMercenary; + private delegate* unmanaged[Cdecl] fn__setVehicleBrokenPartsDontAffectAiHandling; + private delegate* unmanaged[Cdecl] fn__setVehicleKersAllowed; + private delegate* unmanaged[Cdecl] fn__getVehicleHasKers; + private delegate* unmanaged[Cdecl] fn__setPlaneResistToExplosion; + private delegate* unmanaged[Cdecl] fn__setHeliResistToExplosion; private delegate* unmanaged[Cdecl] fn__setDisableBmxExtraTrickForces; - private delegate* unmanaged[Cdecl] fn__setHydraulicSuspensionRaiseFactor; - private delegate* unmanaged[Cdecl] fn__getHydraulicSuspensionRaiseFactor; - private delegate* unmanaged[Cdecl] fn__setCanUseHydraulics; - private delegate* unmanaged[Cdecl] fn__setHydraulicVehicleState; - private delegate* unmanaged[Cdecl] fn__setHydraulicWheelState; + private delegate* unmanaged[Cdecl] fn__setHydraulicSuspensionRaiseFactor; + private delegate* unmanaged[Cdecl] fn__getHydraulicSuspensionRaiseFactor; + private delegate* unmanaged[Cdecl] fn__setCanUseHydraulics; + private delegate* unmanaged[Cdecl] fn__setHydraulicVehicleState; + private delegate* unmanaged[Cdecl] fn__setHydraulicWheelState; private delegate* unmanaged[Cdecl] fn__hasVehiclePetroltankSetOnFireByEntity; - private delegate* unmanaged[Cdecl] fn__clearVehiclePetroltankFireCulprit; + private delegate* unmanaged[Cdecl] fn__clearVehiclePetroltankFireCulprit; private delegate* unmanaged[Cdecl] fn__setVehicleBobbleheadVelocity; private delegate* unmanaged[Cdecl] fn__getVehicleIsDummy; - private delegate* unmanaged[Cdecl] fn__setVehicleDamageScale; - private delegate* unmanaged[Cdecl] fn__setVehicleWeaponDamageScale; + private delegate* unmanaged[Cdecl] fn__setVehicleDamageScale; + private delegate* unmanaged[Cdecl] fn__setVehicleWeaponDamageScale; private delegate* unmanaged[Cdecl] fn__setDisableDamageWithPickedUpEntity; private delegate* unmanaged[Cdecl] fn__setVehicleUsesMpPlayerDamageMultiplier; - private delegate* unmanaged[Cdecl] fn__setBikeEasyToLand; - private delegate* unmanaged[Cdecl] fn__setInvertVehicleControls; + private delegate* unmanaged[Cdecl] fn__setBikeEasyToLand; + private delegate* unmanaged[Cdecl] fn__setInvertVehicleControls; private delegate* unmanaged[Cdecl] fn__setSpeedBoostEffectDisabled; private delegate* unmanaged[Cdecl] fn__setSlowDownEffectDisabled; - private delegate* unmanaged[Cdecl] fn__setFormationLeader; + private delegate* unmanaged[Cdecl] fn__setFormationLeader; private delegate* unmanaged[Cdecl] fn__resetFormationLeader; - private delegate* unmanaged[Cdecl] fn__getIsBoatCapsized; + private delegate* unmanaged[Cdecl] fn__getIsBoatCapsized; private delegate* unmanaged[Cdecl] fn__setAllowRammingSoopOrRamp; - private delegate* unmanaged[Cdecl] fn__setScriptRampImpulseScale; - private delegate* unmanaged[Cdecl] fn__getIsDoorValid; - private delegate* unmanaged[Cdecl] fn__setScriptRocketBoostRechargeTime; - private delegate* unmanaged[Cdecl] fn__getHasRocketBoost; - private delegate* unmanaged[Cdecl] fn__isRocketBoostActive; - private delegate* unmanaged[Cdecl] fn__setRocketBoostActive; - private delegate* unmanaged[Cdecl] fn__getHasRetractableWheels; - private delegate* unmanaged[Cdecl] fn__getIsWheelsRetracted; - private delegate* unmanaged[Cdecl] fn__setWheelsExtendedInstantly; - private delegate* unmanaged[Cdecl] fn__setWheelsRetractedInstantly; - private delegate* unmanaged[Cdecl] fn__getCarHasJump; - private delegate* unmanaged[Cdecl] fn__setUseHigherCarJump; - private delegate* unmanaged[Cdecl] fn__setClearFreezeWaitingOnCollisionOncePlayerEnters; - private delegate* unmanaged[Cdecl] fn__setVehicleWeaponRestrictedAmmo; - private delegate* unmanaged[Cdecl] fn__getVehicleWeaponRestrictedAmmo; - private delegate* unmanaged[Cdecl] fn__getVehicleHasParachute; - private delegate* unmanaged[Cdecl] fn__getVehicleCanDeployParachute; - private delegate* unmanaged[Cdecl] fn__vehicleStartParachuting; - private delegate* unmanaged[Cdecl] fn__isVehicleParachuteDeployed; - private delegate* unmanaged[Cdecl] fn__vehicleSetRampAndRammingCarsTakeDamage; + private delegate* unmanaged[Cdecl] fn__setScriptRampImpulseScale; + private delegate* unmanaged[Cdecl] fn__getIsDoorValid; + private delegate* unmanaged[Cdecl] fn__setScriptRocketBoostRechargeTime; + private delegate* unmanaged[Cdecl] fn__getHasRocketBoost; + private delegate* unmanaged[Cdecl] fn__isRocketBoostActive; + private delegate* unmanaged[Cdecl] fn__setRocketBoostActive; + private delegate* unmanaged[Cdecl] fn__getHasRetractableWheels; + private delegate* unmanaged[Cdecl] fn__getIsWheelsRetracted; + private delegate* unmanaged[Cdecl] fn__setWheelsExtendedInstantly; + private delegate* unmanaged[Cdecl] fn__setWheelsRetractedInstantly; + private delegate* unmanaged[Cdecl] fn__getCarHasJump; + private delegate* unmanaged[Cdecl] fn__setUseHigherCarJump; + private delegate* unmanaged[Cdecl] fn__setClearFreezeWaitingOnCollisionOncePlayerEnters; + private delegate* unmanaged[Cdecl] fn__setVehicleWeaponRestrictedAmmo; + private delegate* unmanaged[Cdecl] fn__getVehicleWeaponRestrictedAmmo; + private delegate* unmanaged[Cdecl] fn__getVehicleHasParachute; + private delegate* unmanaged[Cdecl] fn__getVehicleCanDeployParachute; + private delegate* unmanaged[Cdecl] fn__vehicleStartParachuting; + private delegate* unmanaged[Cdecl] fn__isVehicleParachuteDeployed; + private delegate* unmanaged[Cdecl] fn__vehicleSetRampAndRammingCarsTakeDamage; private delegate* unmanaged[Cdecl] fn__vehicleSetEnableRampCarSideImpulse; private delegate* unmanaged[Cdecl] fn__vehicleSetEnableNormaliseRampCarVerticalVeloctiy; private delegate* unmanaged[Cdecl] fn__vehicleSetJetWashForceEnabled; - private delegate* unmanaged[Cdecl] fn__setVehicleWeaponCanTargetObjects; + private delegate* unmanaged[Cdecl] fn__setVehicleWeaponCanTargetObjects; private delegate* unmanaged[Cdecl] fn__setVehicleUseBoostButtonForWheelRetract; - private delegate* unmanaged[Cdecl] fn__vehicleSetParachuteModelOverride; - private delegate* unmanaged[Cdecl] fn__vehicleSetParachuteModelTintIndex; + private delegate* unmanaged[Cdecl] fn__vehicleSetParachuteModelOverride; + private delegate* unmanaged[Cdecl] fn__vehicleSetParachuteModelTintIndex; private delegate* unmanaged[Cdecl] fn__vehicleSetOverrideExtenableSideRatio; private delegate* unmanaged[Cdecl] fn__vehicleSetExtenableSideTargetRatio; private delegate* unmanaged[Cdecl] fn__vehicleSetOverrideSideRatio; private delegate* unmanaged[Cdecl] fn__getAllVehicles; private delegate* unmanaged[Cdecl] fn__setCargobobExtaPickupRange; private delegate* unmanaged[Cdecl] fn__setOverrideVehicleDoorTorque; - private delegate* unmanaged[Cdecl] fn__setWheelieEnabled; + private delegate* unmanaged[Cdecl] fn__setWheelieEnabled; private delegate* unmanaged[Cdecl] fn__setDisableHeliExplodeFromBodyDamage; - private delegate* unmanaged[Cdecl] fn__setDisableExplodeFromBodyDamageOnCollision; + private delegate* unmanaged[Cdecl] fn__setDisableExplodeFromBodyDamageOnCollision; private delegate* unmanaged[Cdecl] fn__setTrailerAttachmentEnabled; - private delegate* unmanaged[Cdecl] fn__setRocketBoostFill; - private delegate* unmanaged[Cdecl] fn__setGliderActive; - private delegate* unmanaged[Cdecl] fn__setShouldResetTurretInScriptedCameras; - private delegate* unmanaged[Cdecl] fn__setVehicleDisableCollisionUponCreation; + private delegate* unmanaged[Cdecl] fn__setRocketBoostFill; + private delegate* unmanaged[Cdecl] fn__setGliderActive; + private delegate* unmanaged[Cdecl] fn__setShouldResetTurretInScriptedCameras; + private delegate* unmanaged[Cdecl] fn__setVehicleDisableCollisionUponCreation; private delegate* unmanaged[Cdecl] fn__setGroundEffectReducesDrag; - private delegate* unmanaged[Cdecl] fn__setDisableMapCollision; - private delegate* unmanaged[Cdecl] fn__setDisablePedStandOnTop; - private delegate* unmanaged[Cdecl] fn__setVehicleDamageScales; - private delegate* unmanaged[Cdecl] fn__setPlaneSectionDamageScale; - private delegate* unmanaged[Cdecl] fn__setHeliCanPickupEntityThatHasPickUpDisabled; - private delegate* unmanaged[Cdecl] fn__setVehicleBombAmmo; - private delegate* unmanaged[Cdecl] fn__getVehicleBombAmmo; - private delegate* unmanaged[Cdecl] fn__setVehicleCountermeasureAmmo; - private delegate* unmanaged[Cdecl] fn__getVehicleCountermeasureAmmo; - private delegate* unmanaged[Cdecl] fn__setHeliCombatOffset; - private delegate* unmanaged[Cdecl] fn__getCanVehicleBePlacedHere; - private delegate* unmanaged[Cdecl] fn__setDisableAutomaticCrashTask; - private delegate* unmanaged[Cdecl] fn__setSpecialFlightModeRatio; - private delegate* unmanaged[Cdecl] fn__setSpecialFlightModeTargetRatio; - private delegate* unmanaged[Cdecl] fn__setSpecialFlightModeAllowed; - private delegate* unmanaged[Cdecl] fn__setDisableHoverModeFlight; - private delegate* unmanaged[Cdecl] fn__getOutriggersDeployed; - private delegate* unmanaged[Cdecl] fn__findSpawnCoordinatesForHeli; - private delegate* unmanaged[Cdecl] fn__setDeployFoldingWings; - private delegate* unmanaged[Cdecl] fn__areFoldingWingsDeployed; - private delegate* unmanaged[Cdecl] fn__setDipStraightDownWhenCrashingPlane; - private delegate* unmanaged[Cdecl] fn__setTurretHidden; - private delegate* unmanaged[Cdecl] fn__setHoverModeWingRatio; - private delegate* unmanaged[Cdecl] fn__setDisableTurretMovement; - private delegate* unmanaged[Cdecl] fn__setForceFixLinkMatrices; - private delegate* unmanaged[Cdecl] fn__setTransformRateForAnimation; - private delegate* unmanaged[Cdecl] fn__setTransformToSubmarineUsesAlternateInput; + private delegate* unmanaged[Cdecl] fn__setDisableMapCollision; + private delegate* unmanaged[Cdecl] fn__setDisablePedStandOnTop; + private delegate* unmanaged[Cdecl] fn__setVehicleDamageScales; + private delegate* unmanaged[Cdecl] fn__setPlaneSectionDamageScale; + private delegate* unmanaged[Cdecl] fn__setHeliCanPickupEntityThatHasPickUpDisabled; + private delegate* unmanaged[Cdecl] fn__setVehicleBombAmmo; + private delegate* unmanaged[Cdecl] fn__getVehicleBombAmmo; + private delegate* unmanaged[Cdecl] fn__setVehicleCountermeasureAmmo; + private delegate* unmanaged[Cdecl] fn__getVehicleCountermeasureAmmo; + private delegate* unmanaged[Cdecl] fn__setHeliCombatOffset; + private delegate* unmanaged[Cdecl] fn__getCanVehicleBePlacedHere; + private delegate* unmanaged[Cdecl] fn__setDisableAutomaticCrashTask; + private delegate* unmanaged[Cdecl] fn__setSpecialFlightModeRatio; + private delegate* unmanaged[Cdecl] fn__setSpecialFlightModeTargetRatio; + private delegate* unmanaged[Cdecl] fn__setSpecialFlightModeAllowed; + private delegate* unmanaged[Cdecl] fn__setDisableHoverModeFlight; + private delegate* unmanaged[Cdecl] fn__getOutriggersDeployed; + private delegate* unmanaged[Cdecl] fn__findSpawnCoordinatesForHeli; + private delegate* unmanaged[Cdecl] fn__setDeployFoldingWings; + private delegate* unmanaged[Cdecl] fn__areFoldingWingsDeployed; + private delegate* unmanaged[Cdecl] fn__setDipStraightDownWhenCrashingPlane; + private delegate* unmanaged[Cdecl] fn__setTurretHidden; + private delegate* unmanaged[Cdecl] fn__setHoverModeWingRatio; + private delegate* unmanaged[Cdecl] fn__setDisableTurretMovement; + private delegate* unmanaged[Cdecl] fn__setForceFixLinkMatrices; + private delegate* unmanaged[Cdecl] fn__setTransformRateForAnimation; + private delegate* unmanaged[Cdecl] fn__setTransformToSubmarineUsesAlternateInput; private delegate* unmanaged[Cdecl] fn__setVehicleCombatMode; private delegate* unmanaged[Cdecl] fn__setVehicleDetonationMode; private delegate* unmanaged[Cdecl] fn__setVehicleShuntOnStick; - private delegate* unmanaged[Cdecl] fn__getIsVehicleShunting; - private delegate* unmanaged[Cdecl] fn__getHasVehicleBeenHitByShunt; - private delegate* unmanaged[Cdecl] fn__getLastShuntVehicle; + private delegate* unmanaged[Cdecl] fn__getIsVehicleShunting; + private delegate* unmanaged[Cdecl] fn__getHasVehicleBeenHitByShunt; + private delegate* unmanaged[Cdecl] fn__getLastShuntVehicle; private delegate* unmanaged[Cdecl] fn__setDisableVehicleExplosionsDamage; - private delegate* unmanaged[Cdecl] fn__setOverrideNitrousLevel; - private delegate* unmanaged[Cdecl] fn__setIncreaseWheelCrushDamage; + private delegate* unmanaged[Cdecl] fn__setOverrideNitrousLevel; + private delegate* unmanaged[Cdecl] fn__setIncreaseWheelCrushDamage; private delegate* unmanaged[Cdecl] fn__setDisableWeaponBladeForces; private delegate* unmanaged[Cdecl] fn__setUseDoubleClickForCarJump; - private delegate* unmanaged[Cdecl] fn__getDoesVehicleHaveTombstone; - private delegate* unmanaged[Cdecl] fn__hideTombstone; - private delegate* unmanaged[Cdecl] fn__getIsVehicleDisabledByEmp; + private delegate* unmanaged[Cdecl] fn__getDoesVehicleHaveTombstone; + private delegate* unmanaged[Cdecl] fn__hideTombstone; + private delegate* unmanaged[Cdecl] fn__getIsVehicleDisabledByEmp; private delegate* unmanaged[Cdecl] fn__setDisableRetractingWeaponBlades; - private delegate* unmanaged[Cdecl] fn__getTyreHealth; - private delegate* unmanaged[Cdecl] fn__setTyreHealth; - private delegate* unmanaged[Cdecl] fn__getTyreWearRate; - private delegate* unmanaged[Cdecl] fn__setTyreWearRate; - private delegate* unmanaged[Cdecl] fn__setTyreMaximumGripDifferenceDueToWearRate; - private delegate* unmanaged[Cdecl] fn__setAircraftIgnoreHightmapOptimisation; - private delegate* unmanaged[Cdecl] fn__setReducedSuspensionForce; - private delegate* unmanaged[Cdecl] fn__setDriftTyres; - private delegate* unmanaged[Cdecl] fn__getDriftTyresSet; - private delegate* unmanaged[Cdecl] fn__networkUseHighPrecisionTrainBlending; - private delegate* unmanaged[Cdecl] fn__setCheckForEnoughRoomForPed; + private delegate* unmanaged[Cdecl] fn__getTyreHealth; + private delegate* unmanaged[Cdecl] fn__setTyreHealth; + private delegate* unmanaged[Cdecl] fn__getTyreWearRate; + private delegate* unmanaged[Cdecl] fn__setTyreWearRate; + private delegate* unmanaged[Cdecl] fn__setTyreMaximumGripDifferenceDueToWearRate; + private delegate* unmanaged[Cdecl] fn__setAircraftIgnoreHightmapOptimisation; + private delegate* unmanaged[Cdecl] fn__setReducedSuspensionForce; + private delegate* unmanaged[Cdecl] fn__setDriftTyres; + private delegate* unmanaged[Cdecl] fn__getDriftTyresSet; + private delegate* unmanaged[Cdecl] fn__networkUseHighPrecisionTrainBlending; + private delegate* unmanaged[Cdecl] fn__setCheckForEnoughRoomForPed; private delegate* unmanaged[Cdecl] fn__getWaterHeight; private delegate* unmanaged[Cdecl] fn__getWaterHeightNoWaves; private delegate* unmanaged[Cdecl] fn__testProbeAgainstWater; @@ -33167,115 +33154,115 @@ public unsafe class Natives : INatives private delegate* unmanaged[Cdecl] fn__getWeapontypeGroup; private delegate* unmanaged[Cdecl] fn__getWeaponComponentVariantExtraCount; private delegate* unmanaged[Cdecl] fn__getWeaponComponentVariantExtraModel; - private delegate* unmanaged[Cdecl] fn__setCurrentPedWeapon; - private delegate* unmanaged[Cdecl] fn__getCurrentPedWeapon; - private delegate* unmanaged[Cdecl] fn__getCurrentPedWeaponEntityIndex; - private delegate* unmanaged[Cdecl] fn__getBestPedWeapon; - private delegate* unmanaged[Cdecl] fn__setCurrentPedVehicleWeapon; - private delegate* unmanaged[Cdecl] fn__getCurrentPedVehicleWeapon; - private delegate* unmanaged[Cdecl] fn__setPedCycleVehicleWeaponsOnly; - private delegate* unmanaged[Cdecl] fn__isPedArmed; + private delegate* unmanaged[Cdecl] fn__setCurrentPedWeapon; + private delegate* unmanaged[Cdecl] fn__getCurrentPedWeapon; + private delegate* unmanaged[Cdecl] fn__getCurrentPedWeaponEntityIndex; + private delegate* unmanaged[Cdecl] fn__getBestPedWeapon; + private delegate* unmanaged[Cdecl] fn__setCurrentPedVehicleWeapon; + private delegate* unmanaged[Cdecl] fn__getCurrentPedVehicleWeapon; + private delegate* unmanaged[Cdecl] fn__setPedCycleVehicleWeaponsOnly; + private delegate* unmanaged[Cdecl] fn__isPedArmed; private delegate* unmanaged[Cdecl] fn__isWeaponValid; - private delegate* unmanaged[Cdecl] fn__hasPedGotWeapon; - private delegate* unmanaged[Cdecl] fn__isPedWeaponReadyToShoot; - private delegate* unmanaged[Cdecl] fn__getPedWeapontypeInSlot; - private delegate* unmanaged[Cdecl] fn__getAmmoInPedWeapon; - private delegate* unmanaged[Cdecl] fn__addAmmoToPed; - private delegate* unmanaged[Cdecl] fn__setPedAmmo; - private delegate* unmanaged[Cdecl] fn__setPedInfiniteAmmo; - private delegate* unmanaged[Cdecl] fn__setPedInfiniteAmmoClip; + private delegate* unmanaged[Cdecl] fn__hasPedGotWeapon; + private delegate* unmanaged[Cdecl] fn__isPedWeaponReadyToShoot; + private delegate* unmanaged[Cdecl] fn__getPedWeapontypeInSlot; + private delegate* unmanaged[Cdecl] fn__getAmmoInPedWeapon; + private delegate* unmanaged[Cdecl] fn__addAmmoToPed; + private delegate* unmanaged[Cdecl] fn__setPedAmmo; + private delegate* unmanaged[Cdecl] fn__setPedInfiniteAmmo; + private delegate* unmanaged[Cdecl] fn__setPedInfiniteAmmoClip; private delegate* unmanaged[Cdecl] fn__setPedStunGunFiniteAmmo; - private delegate* unmanaged[Cdecl] fn__giveWeaponToPed; - private delegate* unmanaged[Cdecl] fn__giveDelayedWeaponToPed; - private delegate* unmanaged[Cdecl] fn__removeAllPedWeapons; - private delegate* unmanaged[Cdecl] fn__removeWeaponFromPed; - private delegate* unmanaged[Cdecl] fn__hidePedWeaponForScriptedCutscene; - private delegate* unmanaged[Cdecl] fn__setPedCurrentWeaponVisible; - private delegate* unmanaged[Cdecl] fn__setPedDropsWeaponsWhenDead; - private delegate* unmanaged[Cdecl] fn__hasPedBeenDamagedByWeapon; - private delegate* unmanaged[Cdecl] fn__clearPedLastWeaponDamage; - private delegate* unmanaged[Cdecl] fn__hasEntityBeenDamagedByWeapon; - private delegate* unmanaged[Cdecl] fn__clearEntityLastWeaponDamage; - private delegate* unmanaged[Cdecl] fn__setPedDropsWeapon; - private delegate* unmanaged[Cdecl] fn__setPedDropsInventoryWeapon; - private delegate* unmanaged[Cdecl] fn__getMaxAmmoInClip; - private delegate* unmanaged[Cdecl] fn__getAmmoInClip; - private delegate* unmanaged[Cdecl] fn__setAmmoInClip; - private delegate* unmanaged[Cdecl] fn__getMaxAmmo; - private delegate* unmanaged[Cdecl] fn__getMaxAmmoByType; - private delegate* unmanaged[Cdecl] fn__addPedAmmoByType; - private delegate* unmanaged[Cdecl] fn__setPedAmmoByType; - private delegate* unmanaged[Cdecl] fn__getPedAmmoByType; - private delegate* unmanaged[Cdecl] fn__setPedAmmoToDrop; + private delegate* unmanaged[Cdecl] fn__giveWeaponToPed; + private delegate* unmanaged[Cdecl] fn__giveDelayedWeaponToPed; + private delegate* unmanaged[Cdecl] fn__removeAllPedWeapons; + private delegate* unmanaged[Cdecl] fn__removeWeaponFromPed; + private delegate* unmanaged[Cdecl] fn__hidePedWeaponForScriptedCutscene; + private delegate* unmanaged[Cdecl] fn__setPedCurrentWeaponVisible; + private delegate* unmanaged[Cdecl] fn__setPedDropsWeaponsWhenDead; + private delegate* unmanaged[Cdecl] fn__hasPedBeenDamagedByWeapon; + private delegate* unmanaged[Cdecl] fn__clearPedLastWeaponDamage; + private delegate* unmanaged[Cdecl] fn__hasEntityBeenDamagedByWeapon; + private delegate* unmanaged[Cdecl] fn__clearEntityLastWeaponDamage; + private delegate* unmanaged[Cdecl] fn__setPedDropsWeapon; + private delegate* unmanaged[Cdecl] fn__setPedDropsInventoryWeapon; + private delegate* unmanaged[Cdecl] fn__getMaxAmmoInClip; + private delegate* unmanaged[Cdecl] fn__getAmmoInClip; + private delegate* unmanaged[Cdecl] fn__setAmmoInClip; + private delegate* unmanaged[Cdecl] fn__getMaxAmmo; + private delegate* unmanaged[Cdecl] fn__getMaxAmmoByType; + private delegate* unmanaged[Cdecl] fn__addPedAmmoByType; + private delegate* unmanaged[Cdecl] fn__setPedAmmoByType; + private delegate* unmanaged[Cdecl] fn__getPedAmmoByType; + private delegate* unmanaged[Cdecl] fn__setPedAmmoToDrop; private delegate* unmanaged[Cdecl] fn__setPickupAmmoAmountScaler; - private delegate* unmanaged[Cdecl] fn__getPedAmmoTypeFromWeapon; - private delegate* unmanaged[Cdecl] fn__getPedOriginalAmmoTypeFromWeapon; - private delegate* unmanaged[Cdecl] fn__getPedLastWeaponImpactCoord; - private delegate* unmanaged[Cdecl] fn__setPedGadget; - private delegate* unmanaged[Cdecl] fn__getIsPedGadgetEquipped; - private delegate* unmanaged[Cdecl] fn__getSelectedPedWeapon; - private delegate* unmanaged[Cdecl] fn__explodeProjectiles; + private delegate* unmanaged[Cdecl] fn__getPedAmmoTypeFromWeapon; + private delegate* unmanaged[Cdecl] fn__getPedOriginalAmmoTypeFromWeapon; + private delegate* unmanaged[Cdecl] fn__getPedLastWeaponImpactCoord; + private delegate* unmanaged[Cdecl] fn__setPedGadget; + private delegate* unmanaged[Cdecl] fn__getIsPedGadgetEquipped; + private delegate* unmanaged[Cdecl] fn__getSelectedPedWeapon; + private delegate* unmanaged[Cdecl] fn__explodeProjectiles; private delegate* unmanaged[Cdecl] fn__removeAllProjectilesOfType; - private delegate* unmanaged[Cdecl] fn__getLockonDistanceOfCurrentPedWeapon; - private delegate* unmanaged[Cdecl] fn__getMaxRangeOfCurrentPedWeapon; - private delegate* unmanaged[Cdecl] fn__hasVehicleGotProjectileAttached; - private delegate* unmanaged[Cdecl] fn__giveWeaponComponentToPed; - private delegate* unmanaged[Cdecl] fn__removeWeaponComponentFromPed; - private delegate* unmanaged[Cdecl] fn__hasPedGotWeaponComponent; - private delegate* unmanaged[Cdecl] fn__isPedWeaponComponentActive; - private delegate* unmanaged[Cdecl] fn__refillAmmoInstantly; - private delegate* unmanaged[Cdecl] fn__makePedReload; + private delegate* unmanaged[Cdecl] fn__getLockonDistanceOfCurrentPedWeapon; + private delegate* unmanaged[Cdecl] fn__getMaxRangeOfCurrentPedWeapon; + private delegate* unmanaged[Cdecl] fn__hasVehicleGotProjectileAttached; + private delegate* unmanaged[Cdecl] fn__giveWeaponComponentToPed; + private delegate* unmanaged[Cdecl] fn__removeWeaponComponentFromPed; + private delegate* unmanaged[Cdecl] fn__hasPedGotWeaponComponent; + private delegate* unmanaged[Cdecl] fn__isPedWeaponComponentActive; + private delegate* unmanaged[Cdecl] fn__refillAmmoInstantly; + private delegate* unmanaged[Cdecl] fn__makePedReload; private delegate* unmanaged[Cdecl] fn__requestWeaponAsset; private delegate* unmanaged[Cdecl] fn__hasWeaponAssetLoaded; private delegate* unmanaged[Cdecl] fn__removeWeaponAsset; - private delegate* unmanaged[Cdecl] fn__createWeaponObject; - private delegate* unmanaged[Cdecl] fn__giveWeaponComponentToWeaponObject; - private delegate* unmanaged[Cdecl] fn__removeWeaponComponentFromWeaponObject; - private delegate* unmanaged[Cdecl] fn__hasWeaponGotWeaponComponent; - private delegate* unmanaged[Cdecl] fn__giveWeaponObjectToPed; + private delegate* unmanaged[Cdecl] fn__createWeaponObject; + private delegate* unmanaged[Cdecl] fn__giveWeaponComponentToWeaponObject; + private delegate* unmanaged[Cdecl] fn__removeWeaponComponentFromWeaponObject; + private delegate* unmanaged[Cdecl] fn__hasWeaponGotWeaponComponent; + private delegate* unmanaged[Cdecl] fn__giveWeaponObjectToPed; private delegate* unmanaged[Cdecl] fn__doesWeaponTakeWeaponComponent; - private delegate* unmanaged[Cdecl] fn__getWeaponObjectFromPed; - private delegate* unmanaged[Cdecl] fn__giveLoadoutToPed; - private delegate* unmanaged[Cdecl] fn__setPedWeaponTintIndex; - private delegate* unmanaged[Cdecl] fn__getPedWeaponTintIndex; - private delegate* unmanaged[Cdecl] fn__setWeaponObjectTintIndex; - private delegate* unmanaged[Cdecl] fn__getWeaponObjectTintIndex; + private delegate* unmanaged[Cdecl] fn__getWeaponObjectFromPed; + private delegate* unmanaged[Cdecl] fn__giveLoadoutToPed; + private delegate* unmanaged[Cdecl] fn__setPedWeaponTintIndex; + private delegate* unmanaged[Cdecl] fn__getPedWeaponTintIndex; + private delegate* unmanaged[Cdecl] fn__setWeaponObjectTintIndex; + private delegate* unmanaged[Cdecl] fn__getWeaponObjectTintIndex; private delegate* unmanaged[Cdecl] fn__getWeaponTintCount; - private delegate* unmanaged[Cdecl] fn__setPedWeaponComponentTintIndex; - private delegate* unmanaged[Cdecl] fn__getPedWeaponComponentTintIndex; - private delegate* unmanaged[Cdecl] fn__setWeaponObjectComponentTintIndex; - private delegate* unmanaged[Cdecl] fn__getWeaponObjectComponentTintIndex; - private delegate* unmanaged[Cdecl] fn__getPedWeaponCamoIndex; - private delegate* unmanaged[Cdecl] fn__setWeaponObjectCamoIndex; + private delegate* unmanaged[Cdecl] fn__setPedWeaponComponentTintIndex; + private delegate* unmanaged[Cdecl] fn__getPedWeaponComponentTintIndex; + private delegate* unmanaged[Cdecl] fn__setWeaponObjectComponentTintIndex; + private delegate* unmanaged[Cdecl] fn__getWeaponObjectComponentTintIndex; + private delegate* unmanaged[Cdecl] fn__getPedWeaponCamoIndex; + private delegate* unmanaged[Cdecl] fn__setWeaponObjectCamoIndex; private delegate* unmanaged[Cdecl] fn__getWeaponHudStats; private delegate* unmanaged[Cdecl] fn__getWeaponComponentHudStats; private delegate* unmanaged[Cdecl] fn__getWeaponDamage; private delegate* unmanaged[Cdecl] fn__getWeaponClipSize; private delegate* unmanaged[Cdecl] fn__getWeaponTimeBetweenShots; - private delegate* unmanaged[Cdecl] fn__setPedChanceOfFiringBlanks; - private delegate* unmanaged[Cdecl] fn__setPedShootOrdnanceWeapon; - private delegate* unmanaged[Cdecl] fn__requestWeaponHighDetailModel; + private delegate* unmanaged[Cdecl] fn__setPedChanceOfFiringBlanks; + private delegate* unmanaged[Cdecl] fn__setPedShootOrdnanceWeapon; + private delegate* unmanaged[Cdecl] fn__requestWeaponHighDetailModel; private delegate* unmanaged[Cdecl] fn__setWeaponDamageModifier; private delegate* unmanaged[Cdecl] fn__setWeaponAoeModifier; private delegate* unmanaged[Cdecl] fn__setWeaponEffectDurationModifier; - private delegate* unmanaged[Cdecl] fn__isPedCurrentWeaponSilenced; - private delegate* unmanaged[Cdecl] fn__isFlashLightOn; + private delegate* unmanaged[Cdecl] fn__isPedCurrentWeaponSilenced; + private delegate* unmanaged[Cdecl] fn__isFlashLightOn; private delegate* unmanaged[Cdecl] fn__setFlashLightFadeDistance; - private delegate* unmanaged[Cdecl] fn__setFlashLightActiveHistory; - private delegate* unmanaged[Cdecl] fn__setWeaponAnimationOverride; + private delegate* unmanaged[Cdecl] fn__setFlashLightActiveHistory; + private delegate* unmanaged[Cdecl] fn__setWeaponAnimationOverride; private delegate* unmanaged[Cdecl] fn__getWeaponDamageType; - private delegate* unmanaged[Cdecl] fn__setEqippedWeaponStartSpinningAtFullSpeed; + private delegate* unmanaged[Cdecl] fn__setEqippedWeaponStartSpinningAtFullSpeed; private delegate* unmanaged[Cdecl] fn__canUseWeaponOnParachute; private delegate* unmanaged[Cdecl] fn__createAirDefenceSphere; private delegate* unmanaged[Cdecl] fn__createAirDefenceAngledArea; private delegate* unmanaged[Cdecl] fn__removeAirDefenceSphere; private delegate* unmanaged[Cdecl] fn__removeAllAirDefenceSpheres; - private delegate* unmanaged[Cdecl] fn__setPlayerTargettableForAirDefenceSphere; + private delegate* unmanaged[Cdecl] fn__setPlayerTargettableForAirDefenceSphere; private delegate* unmanaged[Cdecl] fn__isAirDefenceSphereInArea; private delegate* unmanaged[Cdecl] fn__fireAirDefenceSphereWeaponAtPosition; private delegate* unmanaged[Cdecl] fn__doesAirDefenceSphereExist; - private delegate* unmanaged[Cdecl] fn__setCanPedSelectInventoryWeapon; - private delegate* unmanaged[Cdecl] fn__setCanPedSelectAllWeapons; + private delegate* unmanaged[Cdecl] fn__setCanPedSelectInventoryWeapon; + private delegate* unmanaged[Cdecl] fn__setCanPedSelectAllWeapons; private delegate* unmanaged[Cdecl] fn__getZoneAtCoords; private delegate* unmanaged[Cdecl] fn__getZoneFromNameId; private delegate* unmanaged[Cdecl] fn__getZonePopschedule; @@ -33307,9 +33294,9 @@ public int StartNewScript(string _scriptName, int _stackSize) unsafe { if (fn__startNewScript == null) fn__startNewScript = (delegate* unmanaged[Cdecl]) funcTable[0xE81651AD79516E48UL]; var success = false; - var ptr_scriptName = _scriptName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scriptName); + var ptr_scriptName = MemoryUtils.StringToHGlobalUtf8(_scriptName); var result = fn__startNewScript(&success, ptr_scriptName, _stackSize); - if (ptr_scriptName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scriptName); + Marshal.FreeHGlobal(ptr_scriptName); if (!success) throw new Exception("Native execution failed"); return result; } @@ -33320,10 +33307,10 @@ public int StartNewScriptWithArgs(string _scriptName, ref int _args, int _argCou unsafe { if (fn__startNewScriptWithArgs == null) fn__startNewScriptWithArgs = (delegate* unmanaged[Cdecl]) funcTable[0xB8BA7F44DF1575E1UL]; var success = false; - var ptr_scriptName = _scriptName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scriptName); + var ptr_scriptName = MemoryUtils.StringToHGlobalUtf8(_scriptName); var ref_args = _args; var result = fn__startNewScriptWithArgs(&success, ptr_scriptName, &ref_args, _argCount, _stackSize); - if (ptr_scriptName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scriptName); + Marshal.FreeHGlobal(ptr_scriptName); _args = ref_args; if (!success) throw new Exception("Native execution failed"); return result; @@ -33598,9 +33585,9 @@ public int AppGetInt(string _property) unsafe { if (fn__appGetInt == null) fn__appGetInt = (delegate* unmanaged[Cdecl]) funcTable[0xD3A58A12C77D9D4BUL]; var success = false; - var ptr_property = _property == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_property); + var ptr_property = MemoryUtils.StringToHGlobalUtf8(_property); var result = fn__appGetInt(&success, ptr_property); - if (ptr_property != IntPtr.Zero) Marshal.FreeHGlobal(ptr_property); + Marshal.FreeHGlobal(ptr_property); if (!success) throw new Exception("Native execution failed"); return result; } @@ -33611,9 +33598,9 @@ public float AppGetFloat(string _property) unsafe { if (fn__appGetFloat == null) fn__appGetFloat = (delegate* unmanaged[Cdecl]) funcTable[0x1514FB24C02C2322UL]; var success = false; - var ptr_property = _property == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_property); + var ptr_property = MemoryUtils.StringToHGlobalUtf8(_property); var result = fn__appGetFloat(&success, ptr_property); - if (ptr_property != IntPtr.Zero) Marshal.FreeHGlobal(ptr_property); + Marshal.FreeHGlobal(ptr_property); if (!success) throw new Exception("Native execution failed"); return result; } @@ -33624,12 +33611,12 @@ public string AppGetString(string _property) unsafe { if (fn__appGetString == null) fn__appGetString = (delegate* unmanaged[Cdecl]) funcTable[0x749B023950D2311CUL]; var success = false; - var ptr_property = _property == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_property); + var ptr_property = MemoryUtils.StringToHGlobalUtf8(_property); var result = fn__appGetString(&success, ptr_property); - if (ptr_property != IntPtr.Zero) Marshal.FreeHGlobal(ptr_property); + Marshal.FreeHGlobal(ptr_property); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -33639,9 +33626,9 @@ public void AppSetInt(string _property, int _value) unsafe { if (fn__appSetInt == null) fn__appSetInt = (delegate* unmanaged[Cdecl]) funcTable[0x607E8E3D3E4F9611UL]; var success = false; - var ptr_property = _property == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_property); + var ptr_property = MemoryUtils.StringToHGlobalUtf8(_property); fn__appSetInt(&success, ptr_property, _value); - if (ptr_property != IntPtr.Zero) Marshal.FreeHGlobal(ptr_property); + Marshal.FreeHGlobal(ptr_property); if (!success) throw new Exception("Native execution failed"); } } @@ -33651,9 +33638,9 @@ public void AppSetFloat(string _property, float _value) unsafe { if (fn__appSetFloat == null) fn__appSetFloat = (delegate* unmanaged[Cdecl]) funcTable[0x25D7687C68E0DAA4UL]; var success = false; - var ptr_property = _property == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_property); + var ptr_property = MemoryUtils.StringToHGlobalUtf8(_property); fn__appSetFloat(&success, ptr_property, _value); - if (ptr_property != IntPtr.Zero) Marshal.FreeHGlobal(ptr_property); + Marshal.FreeHGlobal(ptr_property); if (!success) throw new Exception("Native execution failed"); } } @@ -33663,11 +33650,11 @@ public void AppSetString(string _property, string _value) unsafe { if (fn__appSetString == null) fn__appSetString = (delegate* unmanaged[Cdecl]) funcTable[0x3FF2FCEC4B7721B4UL]; var success = false; - var ptr_property = _property == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_property); - var ptr_value = _value == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_value); + var ptr_property = MemoryUtils.StringToHGlobalUtf8(_property); + var ptr_value = MemoryUtils.StringToHGlobalUtf8(_value); fn__appSetString(&success, ptr_property, ptr_value); - if (ptr_property != IntPtr.Zero) Marshal.FreeHGlobal(ptr_property); - if (ptr_value != IntPtr.Zero) Marshal.FreeHGlobal(ptr_value); + Marshal.FreeHGlobal(ptr_property); + Marshal.FreeHGlobal(ptr_value); if (!success) throw new Exception("Native execution failed"); } } @@ -33677,9 +33664,9 @@ public void AppSetApp(string _appName) unsafe { if (fn__appSetApp == null) fn__appSetApp = (delegate* unmanaged[Cdecl]) funcTable[0xCFD0406ADAF90D2BUL]; var success = false; - var ptr_appName = _appName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_appName); + var ptr_appName = MemoryUtils.StringToHGlobalUtf8(_appName); fn__appSetApp(&success, ptr_appName); - if (ptr_appName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_appName); + Marshal.FreeHGlobal(ptr_appName); if (!success) throw new Exception("Native execution failed"); } } @@ -33689,9 +33676,9 @@ public void AppSetBlock(string _blockName) unsafe { if (fn__appSetBlock == null) fn__appSetBlock = (delegate* unmanaged[Cdecl]) funcTable[0x262AB456A3D21F93UL]; var success = false; - var ptr_blockName = _blockName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_blockName); + var ptr_blockName = MemoryUtils.StringToHGlobalUtf8(_blockName); fn__appSetBlock(&success, ptr_blockName); - if (ptr_blockName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_blockName); + Marshal.FreeHGlobal(ptr_blockName); if (!success) throw new Exception("Native execution failed"); } } @@ -33742,9 +33729,9 @@ public bool AppHasSyncedData(string _appName) unsafe { if (fn__appHasSyncedData == null) fn__appHasSyncedData = (delegate* unmanaged[Cdecl]) funcTable[0xCA52279A7271517FUL]; var success = false; - var ptr_appName = _appName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_appName); + var ptr_appName = MemoryUtils.StringToHGlobalUtf8(_appName); var result = fn__appHasSyncedData(&success, ptr_appName); - if (ptr_appName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_appName); + Marshal.FreeHGlobal(ptr_appName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -33776,9 +33763,9 @@ public bool AppDeleteAppData(string _appName) unsafe { if (fn__appDeleteAppData == null) fn__appDeleteAppData = (delegate* unmanaged[Cdecl]) funcTable[0x44151AEA95C8A003UL]; var success = false; - var ptr_appName = _appName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_appName); + var ptr_appName = MemoryUtils.StringToHGlobalUtf8(_appName); var result = fn__appDeleteAppData(&success, ptr_appName); - if (ptr_appName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_appName); + Marshal.FreeHGlobal(ptr_appName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -33849,9 +33836,9 @@ public void DrawDebugText(string _text, float _x, float _y, float _z, int _red, unsafe { if (fn__drawDebugText == null) fn__drawDebugText = (delegate* unmanaged[Cdecl]) funcTable[0x3903E216620488E8UL]; var success = false; - var ptr_text = _text == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_text); + var ptr_text = MemoryUtils.StringToHGlobalUtf8(_text); fn__drawDebugText(&success, ptr_text, _x, _y, _z, _red, _green, _blue, _alpha); - if (ptr_text != IntPtr.Zero) Marshal.FreeHGlobal(ptr_text); + Marshal.FreeHGlobal(ptr_text); if (!success) throw new Exception("Native execution failed"); } } @@ -33861,9 +33848,9 @@ public void DrawDebugText2d(string _text, float _x, float _y, float _z, int _red unsafe { if (fn__drawDebugText2d == null) fn__drawDebugText2d = (delegate* unmanaged[Cdecl]) funcTable[0xA3BB2E9555C05A8FUL]; var success = false; - var ptr_text = _text == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_text); + var ptr_text = MemoryUtils.StringToHGlobalUtf8(_text); fn__drawDebugText2d(&success, ptr_text, _x, _y, _z, _red, _green, _blue, _alpha); - if (ptr_text != IntPtr.Zero) Marshal.FreeHGlobal(ptr_text); + Marshal.FreeHGlobal(ptr_text); if (!success) throw new Exception("Native execution failed"); } } @@ -33893,11 +33880,11 @@ public void DrawTexturedPoly(float _x1, float _y1, float _z1, float _x2, float _ unsafe { if (fn__drawTexturedPoly == null) fn__drawTexturedPoly = (delegate* unmanaged[Cdecl]) funcTable[0x29280002282F1928UL]; var success = false; - var ptr_textureDict = _textureDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureDict); - var ptr_textureName = _textureName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureName); + var ptr_textureDict = MemoryUtils.StringToHGlobalUtf8(_textureDict); + var ptr_textureName = MemoryUtils.StringToHGlobalUtf8(_textureName); fn__drawTexturedPoly(&success, _x1, _y1, _z1, _x2, _y2, _z2, _x3, _y3, _z3, _red, _green, _blue, _alpha, ptr_textureDict, ptr_textureName, _u1, _v1, _w1, _u2, _v2, _w2, _u3, _v3, _w3); - if (ptr_textureDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureDict); - if (ptr_textureName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureName); + Marshal.FreeHGlobal(ptr_textureDict); + Marshal.FreeHGlobal(ptr_textureName); if (!success) throw new Exception("Native execution failed"); } } @@ -33907,11 +33894,11 @@ public void DrawTexturedPolyWithThreeColours(float _x1, float _y1, float _z1, fl unsafe { if (fn__drawTexturedPolyWithThreeColours == null) fn__drawTexturedPolyWithThreeColours = (delegate* unmanaged[Cdecl]) funcTable[0x736D7AA1B750856BUL]; var success = false; - var ptr_textureDict = _textureDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureDict); - var ptr_textureName = _textureName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureName); + var ptr_textureDict = MemoryUtils.StringToHGlobalUtf8(_textureDict); + var ptr_textureName = MemoryUtils.StringToHGlobalUtf8(_textureName); fn__drawTexturedPolyWithThreeColours(&success, _x1, _y1, _z1, _x2, _y2, _z2, _x3, _y3, _z3, _red1, _green1, _blue1, _alpha1, _red2, _green2, _blue2, _alpha2, _red3, _green3, _blue3, _alpha3, ptr_textureDict, ptr_textureName, _u1, _v1, _w1, _u2, _v2, _w2, _u3, _v3, _w3); - if (ptr_textureDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureDict); - if (ptr_textureName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureName); + Marshal.FreeHGlobal(ptr_textureDict); + Marshal.FreeHGlobal(ptr_textureName); if (!success) throw new Exception("Native execution failed"); } } @@ -34301,10 +34288,10 @@ public void FadeUpPedLight(float _p0) } public void UpdateLightsOnEntity(IEntity entity) => UpdateLightsOnEntity(entity.ScriptId); - public void UpdateLightsOnEntity(int _entity) + public void UpdateLightsOnEntity(uint _entity) { unsafe { - if (fn__updateLightsOnEntity == null) fn__updateLightsOnEntity = (delegate* unmanaged[Cdecl]) funcTable[0xDEADC0DEDEADC0DEUL]; + if (fn__updateLightsOnEntity == null) fn__updateLightsOnEntity = (delegate* unmanaged[Cdecl]) funcTable[0xDEADC0DEDEADC0DEUL]; var success = false; fn__updateLightsOnEntity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -34337,11 +34324,11 @@ public void DrawMarker(int _type, float _posX, float _posY, float _posZ, float _ unsafe { if (fn__drawMarker == null) fn__drawMarker = (delegate* unmanaged[Cdecl]) funcTable[0x28477EC23D892089UL]; var success = false; - var ptr_textureDict = _textureDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureDict); - var ptr_textureName = _textureName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureName); + var ptr_textureDict = MemoryUtils.StringToHGlobalUtf8(_textureDict); + var ptr_textureName = MemoryUtils.StringToHGlobalUtf8(_textureName); fn__drawMarker(&success, _type, _posX, _posY, _posZ, _dirX, _dirY, _dirZ, _rotX, _rotY, _rotZ, _scaleX, _scaleY, _scaleZ, _red, _green, _blue, _alpha, (byte) (_bobUpAndDown ? 1 : 0), (byte) (_faceCamera ? 1 : 0), _p19, (byte) (_rotate ? 1 : 0), ptr_textureDict, ptr_textureName, (byte) (_drawOnEnts ? 1 : 0)); - if (ptr_textureDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureDict); - if (ptr_textureName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureName); + Marshal.FreeHGlobal(ptr_textureDict); + Marshal.FreeHGlobal(ptr_textureName); if (!success) throw new Exception("Native execution failed"); } } @@ -34351,11 +34338,11 @@ public void DrawMarkerEx(int _type, float _posX, float _posY, float _posZ, float unsafe { if (fn__drawMarkerEx == null) fn__drawMarkerEx = (delegate* unmanaged[Cdecl]) funcTable[0xE82728F0DE75D13AUL]; var success = false; - var ptr_textureDict = _textureDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureDict); - var ptr_textureName = _textureName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureName); + var ptr_textureDict = MemoryUtils.StringToHGlobalUtf8(_textureDict); + var ptr_textureName = MemoryUtils.StringToHGlobalUtf8(_textureName); fn__drawMarkerEx(&success, _type, _posX, _posY, _posZ, _dirX, _dirY, _dirZ, _rotX, _rotY, _rotZ, _scaleX, _scaleY, _scaleZ, _red, _green, _blue, _alpha, (byte) (_bobUpAndDown ? 1 : 0), (byte) (_faceCamera ? 1 : 0), _p19, (byte) (_rotate ? 1 : 0), ptr_textureDict, ptr_textureName, (byte) (_drawOnEnts ? 1 : 0), (byte) (_p24 ? 1 : 0), (byte) (_p25 ? 1 : 0)); - if (ptr_textureDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureDict); - if (ptr_textureName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureName); + Marshal.FreeHGlobal(ptr_textureDict); + Marshal.FreeHGlobal(ptr_textureName); if (!success) throw new Exception("Native execution failed"); } } @@ -34516,9 +34503,9 @@ public void RequestStreamedTextureDict(string _textureDict, bool _p1) unsafe { if (fn__requestStreamedTextureDict == null) fn__requestStreamedTextureDict = (delegate* unmanaged[Cdecl]) funcTable[0xDFA2EF8E04127DD5UL]; var success = false; - var ptr_textureDict = _textureDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureDict); + var ptr_textureDict = MemoryUtils.StringToHGlobalUtf8(_textureDict); fn__requestStreamedTextureDict(&success, ptr_textureDict, (byte) (_p1 ? 1 : 0)); - if (ptr_textureDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureDict); + Marshal.FreeHGlobal(ptr_textureDict); if (!success) throw new Exception("Native execution failed"); } } @@ -34528,9 +34515,9 @@ public bool HasStreamedTextureDictLoaded(string _textureDict) unsafe { if (fn__hasStreamedTextureDictLoaded == null) fn__hasStreamedTextureDictLoaded = (delegate* unmanaged[Cdecl]) funcTable[0x0145F696AAAAD2E4UL]; var success = false; - var ptr_textureDict = _textureDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureDict); + var ptr_textureDict = MemoryUtils.StringToHGlobalUtf8(_textureDict); var result = fn__hasStreamedTextureDictLoaded(&success, ptr_textureDict); - if (ptr_textureDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureDict); + Marshal.FreeHGlobal(ptr_textureDict); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -34541,9 +34528,9 @@ public void SetStreamedTextureDictAsNoLongerNeeded(string _textureDict) unsafe { if (fn__setStreamedTextureDictAsNoLongerNeeded == null) fn__setStreamedTextureDictAsNoLongerNeeded = (delegate* unmanaged[Cdecl]) funcTable[0xBE2CACCF5A8AA805UL]; var success = false; - var ptr_textureDict = _textureDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureDict); + var ptr_textureDict = MemoryUtils.StringToHGlobalUtf8(_textureDict); fn__setStreamedTextureDictAsNoLongerNeeded(&success, ptr_textureDict); - if (ptr_textureDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureDict); + Marshal.FreeHGlobal(ptr_textureDict); if (!success) throw new Exception("Native execution failed"); } } @@ -34638,11 +34625,11 @@ public void DrawSprite(string _textureDict, string _textureName, float _screenX, unsafe { if (fn__drawSprite == null) fn__drawSprite = (delegate* unmanaged[Cdecl]) funcTable[0xE7FFAE5EBF23D890UL]; var success = false; - var ptr_textureDict = _textureDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureDict); - var ptr_textureName = _textureName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureName); + var ptr_textureDict = MemoryUtils.StringToHGlobalUtf8(_textureDict); + var ptr_textureName = MemoryUtils.StringToHGlobalUtf8(_textureName); fn__drawSprite(&success, ptr_textureDict, ptr_textureName, _screenX, _screenY, _width, _height, _heading, _red, _green, _blue, _alpha, (byte) (_p11 ? 1 : 0), _p12); - if (ptr_textureDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureDict); - if (ptr_textureName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureName); + Marshal.FreeHGlobal(ptr_textureDict); + Marshal.FreeHGlobal(ptr_textureName); if (!success) throw new Exception("Native execution failed"); } } @@ -34652,11 +34639,11 @@ public void DrawSpriteArx(string _textureDict, string _textureName, float _x, fl unsafe { if (fn__drawSpriteArx == null) fn__drawSpriteArx = (delegate* unmanaged[Cdecl]) funcTable[0x2D3B147AFAD49DE0UL]; var success = false; - var ptr_textureDict = _textureDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureDict); - var ptr_textureName = _textureName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureName); + var ptr_textureDict = MemoryUtils.StringToHGlobalUtf8(_textureDict); + var ptr_textureName = MemoryUtils.StringToHGlobalUtf8(_textureName); fn__drawSpriteArx(&success, ptr_textureDict, ptr_textureName, _x, _y, _width, _height, _p6, _red, _green, _blue, _alpha, _p11, _p12); - if (ptr_textureDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureDict); - if (ptr_textureName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureName); + Marshal.FreeHGlobal(ptr_textureDict); + Marshal.FreeHGlobal(ptr_textureName); if (!success) throw new Exception("Native execution failed"); } } @@ -34666,11 +34653,11 @@ public void DrawSpriteNamedRendertarget(string _textureDict, string _textureName unsafe { if (fn__drawSpriteNamedRendertarget == null) fn__drawSpriteNamedRendertarget = (delegate* unmanaged[Cdecl]) funcTable[0x2BC54A8188768488UL]; var success = false; - var ptr_textureDict = _textureDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureDict); - var ptr_textureName = _textureName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureName); + var ptr_textureDict = MemoryUtils.StringToHGlobalUtf8(_textureDict); + var ptr_textureName = MemoryUtils.StringToHGlobalUtf8(_textureName); fn__drawSpriteNamedRendertarget(&success, ptr_textureDict, ptr_textureName, _screenX, _screenY, _width, _height, _heading, _red, _green, _blue, _alpha, _p11); - if (ptr_textureDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureDict); - if (ptr_textureName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureName); + Marshal.FreeHGlobal(ptr_textureDict); + Marshal.FreeHGlobal(ptr_textureName); if (!success) throw new Exception("Native execution failed"); } } @@ -34680,34 +34667,34 @@ public void DrawSpriteArxWithUv(string _textureDict, string _textureName, float unsafe { if (fn__drawSpriteArxWithUv == null) fn__drawSpriteArxWithUv = (delegate* unmanaged[Cdecl]) funcTable[0x95812F9B26074726UL]; var success = false; - var ptr_textureDict = _textureDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureDict); - var ptr_textureName = _textureName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureName); + var ptr_textureDict = MemoryUtils.StringToHGlobalUtf8(_textureDict); + var ptr_textureName = MemoryUtils.StringToHGlobalUtf8(_textureName); fn__drawSpriteArxWithUv(&success, ptr_textureDict, ptr_textureName, _x, _y, _width, _height, _u1, _v1, _u2, _v2, _heading, _red, _green, _blue, _alpha, _p15); - if (ptr_textureDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureDict); - if (ptr_textureName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureName); + Marshal.FreeHGlobal(ptr_textureDict); + Marshal.FreeHGlobal(ptr_textureName); if (!success) throw new Exception("Native execution failed"); } } public int AddEntityIcon(IEntity entity, string icon) => AddEntityIcon(entity.ScriptId, icon); - public int AddEntityIcon(int _entity, string _icon) + public int AddEntityIcon(uint _entity, string _icon) { unsafe { - if (fn__addEntityIcon == null) fn__addEntityIcon = (delegate* unmanaged[Cdecl]) funcTable[0x9CD43EEE12BF4DD0UL]; + if (fn__addEntityIcon == null) fn__addEntityIcon = (delegate* unmanaged[Cdecl]) funcTable[0x9CD43EEE12BF4DD0UL]; var success = false; - var ptr_icon = _icon == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_icon); + var ptr_icon = MemoryUtils.StringToHGlobalUtf8(_icon); var result = fn__addEntityIcon(&success, _entity, ptr_icon); - if (ptr_icon != IntPtr.Zero) Marshal.FreeHGlobal(ptr_icon); + Marshal.FreeHGlobal(ptr_icon); if (!success) throw new Exception("Native execution failed"); return result; } } public void SetEntityIconVisibility(IEntity entity, bool toggle) => SetEntityIconVisibility(entity.ScriptId, toggle); - public void SetEntityIconVisibility(int _entity, bool _toggle) + public void SetEntityIconVisibility(uint _entity, bool _toggle) { unsafe { - if (fn__setEntityIconVisibility == null) fn__setEntityIconVisibility = (delegate* unmanaged[Cdecl]) funcTable[0xE0E8BEECCA96BA31UL]; + if (fn__setEntityIconVisibility == null) fn__setEntityIconVisibility = (delegate* unmanaged[Cdecl]) funcTable[0xE0E8BEECCA96BA31UL]; var success = false; fn__setEntityIconVisibility(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -34715,10 +34702,10 @@ public void SetEntityIconVisibility(int _entity, bool _toggle) } public void SetEntityIconColor(IEntity entity, int red, int green, int blue, int alpha) => SetEntityIconColor(entity.ScriptId, red, green, blue, alpha); - public void SetEntityIconColor(int _entity, int _red, int _green, int _blue, int _alpha) + public void SetEntityIconColor(uint _entity, int _red, int _green, int _blue, int _alpha) { unsafe { - if (fn__setEntityIconColor == null) fn__setEntityIconColor = (delegate* unmanaged[Cdecl]) funcTable[0x1D5F595CCAE2E238UL]; + if (fn__setEntityIconColor == null) fn__setEntityIconColor = (delegate* unmanaged[Cdecl]) funcTable[0x1D5F595CCAE2E238UL]; var success = false; fn__setEntityIconColor(&success, _entity, _red, _green, _blue, _alpha); if (!success) throw new Exception("Native execution failed"); @@ -34750,9 +34737,9 @@ public int SetBinkMovie(string _name) unsafe { if (fn__setBinkMovie == null) fn__setBinkMovie = (delegate* unmanaged[Cdecl]) funcTable[0x338D9F609FD632DBUL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var result = fn__setBinkMovie(&success, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); return result; } @@ -34830,10 +34817,10 @@ public void SetBinkMovieVolume(int _binkMovie, float _value) } public void AttachTvAudioToEntity(IEntity entity) => AttachTvAudioToEntity(entity.ScriptId); - public void AttachTvAudioToEntity(int _entity) + public void AttachTvAudioToEntity(uint _entity) { unsafe { - if (fn__attachTvAudioToEntity == null) fn__attachTvAudioToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x845BAD77CC770633UL]; + if (fn__attachTvAudioToEntity == null) fn__attachTvAudioToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x845BAD77CC770633UL]; var success = false; fn__attachTvAudioToEntity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -34875,9 +34862,9 @@ public int LoadMovieMeshSet(string _movieMeshSetName) unsafe { if (fn__loadMovieMeshSet == null) fn__loadMovieMeshSet = (delegate* unmanaged[Cdecl]) funcTable[0xB66064452270E8F1UL]; var success = false; - var ptr_movieMeshSetName = _movieMeshSetName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_movieMeshSetName); + var ptr_movieMeshSetName = MemoryUtils.StringToHGlobalUtf8(_movieMeshSetName); var result = fn__loadMovieMeshSet(&success, ptr_movieMeshSetName); - if (ptr_movieMeshSetName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_movieMeshSetName); + Marshal.FreeHGlobal(ptr_movieMeshSetName); if (!success) throw new Exception("Native execution failed"); return result; } @@ -35088,27 +35075,27 @@ public Vector3 GetTextureResolution(string _textureDict, string _textureName) unsafe { if (fn__getTextureResolution == null) fn__getTextureResolution = (delegate* unmanaged[Cdecl]) funcTable[0x35736EE65BD00C11UL]; var success = false; - var ptr_textureDict = _textureDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureDict); - var ptr_textureName = _textureName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureName); + var ptr_textureDict = MemoryUtils.StringToHGlobalUtf8(_textureDict); + var ptr_textureName = MemoryUtils.StringToHGlobalUtf8(_textureName); var result = fn__getTextureResolution(&success, ptr_textureDict, ptr_textureName); - if (ptr_textureDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureDict); - if (ptr_textureName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureName); + Marshal.FreeHGlobal(ptr_textureDict); + Marshal.FreeHGlobal(ptr_textureName); if (!success) throw new Exception("Native execution failed"); return result; } } public bool OverridePedCrewLogoTexture(IPlayer ped, string txd, string txn) => OverridePedCrewLogoTexture(ped.ScriptId, txd, txn); - public bool OverridePedCrewLogoTexture(int _ped, string _txd, string _txn) + public bool OverridePedCrewLogoTexture(uint _ped, string _txd, string _txn) { unsafe { - if (fn__overridePedCrewLogoTexture == null) fn__overridePedCrewLogoTexture = (delegate* unmanaged[Cdecl]) funcTable[0x95EB5E34F821BABEUL]; + if (fn__overridePedCrewLogoTexture == null) fn__overridePedCrewLogoTexture = (delegate* unmanaged[Cdecl]) funcTable[0x95EB5E34F821BABEUL]; var success = false; - var ptr_txd = _txd == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_txd); - var ptr_txn = _txn == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_txn); + var ptr_txd = MemoryUtils.StringToHGlobalUtf8(_txd); + var ptr_txn = MemoryUtils.StringToHGlobalUtf8(_txn); var result = fn__overridePedCrewLogoTexture(&success, _ped, ptr_txd, ptr_txn); - if (ptr_txd != IntPtr.Zero) Marshal.FreeHGlobal(ptr_txd); - if (ptr_txn != IntPtr.Zero) Marshal.FreeHGlobal(ptr_txn); + Marshal.FreeHGlobal(ptr_txd); + Marshal.FreeHGlobal(ptr_txn); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -35423,9 +35410,9 @@ public void CascadeShadowsSetShadowSampleType(string _type) unsafe { if (fn__cascadeShadowsSetShadowSampleType == null) fn__cascadeShadowsSetShadowSampleType = (delegate* unmanaged[Cdecl]) funcTable[0xB11D94BC55F41932UL]; var success = false; - var ptr_type = _type == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_type); + var ptr_type = MemoryUtils.StringToHGlobalUtf8(_type); fn__cascadeShadowsSetShadowSampleType(&success, ptr_type); - if (ptr_type != IntPtr.Zero) Marshal.FreeHGlobal(ptr_type); + Marshal.FreeHGlobal(ptr_type); if (!success) throw new Exception("Native execution failed"); } } @@ -35927,9 +35914,9 @@ public bool PhonephotoeditorSetFrameTxd(string _textureDict, bool _p1) unsafe { if (fn__phonephotoeditorSetFrameTxd == null) fn__phonephotoeditorSetFrameTxd = (delegate* unmanaged[Cdecl]) funcTable[0x27FEB5254759CDE3UL]; var success = false; - var ptr_textureDict = _textureDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureDict); + var ptr_textureDict = MemoryUtils.StringToHGlobalUtf8(_textureDict); var result = fn__phonephotoeditorSetFrameTxd(&success, ptr_textureDict, (byte) (_p1 ? 1 : 0)); - if (ptr_textureDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureDict); + Marshal.FreeHGlobal(ptr_textureDict); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -35940,9 +35927,9 @@ public bool StartParticleFxNonLoopedAtCoord(string _effectName, float _xPos, flo unsafe { if (fn__startParticleFxNonLoopedAtCoord == null) fn__startParticleFxNonLoopedAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x25129531F77B9ED3UL]; var success = false; - var ptr_effectName = _effectName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_effectName); + var ptr_effectName = MemoryUtils.StringToHGlobalUtf8(_effectName); var result = fn__startParticleFxNonLoopedAtCoord(&success, ptr_effectName, _xPos, _yPos, _zPos, _xRot, _yRot, _zRot, _scale, (byte) (_xAxis ? 1 : 0), (byte) (_yAxis ? 1 : 0), (byte) (_zAxis ? 1 : 0)); - if (ptr_effectName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_effectName); + Marshal.FreeHGlobal(ptr_effectName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -35953,79 +35940,79 @@ public bool StartNetworkedParticleFxNonLoopedAtCoord(string _effectName, float _ unsafe { if (fn__startNetworkedParticleFxNonLoopedAtCoord == null) fn__startNetworkedParticleFxNonLoopedAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0xF56B8137DF10135DUL]; var success = false; - var ptr_effectName = _effectName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_effectName); + var ptr_effectName = MemoryUtils.StringToHGlobalUtf8(_effectName); var result = fn__startNetworkedParticleFxNonLoopedAtCoord(&success, ptr_effectName, _xPos, _yPos, _zPos, _xRot, _yRot, _zRot, _scale, (byte) (_xAxis ? 1 : 0), (byte) (_yAxis ? 1 : 0), (byte) (_zAxis ? 1 : 0), (byte) (_p11 ? 1 : 0)); - if (ptr_effectName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_effectName); + Marshal.FreeHGlobal(ptr_effectName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool StartParticleFxNonLoopedOnPedBone(string effectName, IPlayer ped, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, int boneIndex, float scale, bool axisX, bool axisY, bool axisZ) => StartParticleFxNonLoopedOnPedBone(effectName, ped.ScriptId, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, boneIndex, scale, axisX, axisY, axisZ); - public bool StartParticleFxNonLoopedOnPedBone(string _effectName, int _ped, float _offsetX, float _offsetY, float _offsetZ, float _rotX, float _rotY, float _rotZ, int _boneIndex, float _scale, bool _axisX, bool _axisY, bool _axisZ) + public bool StartParticleFxNonLoopedOnPedBone(string _effectName, uint _ped, float _offsetX, float _offsetY, float _offsetZ, float _rotX, float _rotY, float _rotZ, int _boneIndex, float _scale, bool _axisX, bool _axisY, bool _axisZ) { unsafe { - if (fn__startParticleFxNonLoopedOnPedBone == null) fn__startParticleFxNonLoopedOnPedBone = (delegate* unmanaged[Cdecl]) funcTable[0x0E7E72961BA18619UL]; + if (fn__startParticleFxNonLoopedOnPedBone == null) fn__startParticleFxNonLoopedOnPedBone = (delegate* unmanaged[Cdecl]) funcTable[0x0E7E72961BA18619UL]; var success = false; - var ptr_effectName = _effectName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_effectName); + var ptr_effectName = MemoryUtils.StringToHGlobalUtf8(_effectName); var result = fn__startParticleFxNonLoopedOnPedBone(&success, ptr_effectName, _ped, _offsetX, _offsetY, _offsetZ, _rotX, _rotY, _rotZ, _boneIndex, _scale, (byte) (_axisX ? 1 : 0), (byte) (_axisY ? 1 : 0), (byte) (_axisZ ? 1 : 0)); - if (ptr_effectName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_effectName); + Marshal.FreeHGlobal(ptr_effectName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool StartNetworkedParticleFxNonLoopedOnPedBone(string effectName, IPlayer ped, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, int boneIndex, float scale, bool axisX, bool axisY, bool axisZ) => StartNetworkedParticleFxNonLoopedOnPedBone(effectName, ped.ScriptId, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, boneIndex, scale, axisX, axisY, axisZ); - public bool StartNetworkedParticleFxNonLoopedOnPedBone(string _effectName, int _ped, float _offsetX, float _offsetY, float _offsetZ, float _rotX, float _rotY, float _rotZ, int _boneIndex, float _scale, bool _axisX, bool _axisY, bool _axisZ) + public bool StartNetworkedParticleFxNonLoopedOnPedBone(string _effectName, uint _ped, float _offsetX, float _offsetY, float _offsetZ, float _rotX, float _rotY, float _rotZ, int _boneIndex, float _scale, bool _axisX, bool _axisY, bool _axisZ) { unsafe { - if (fn__startNetworkedParticleFxNonLoopedOnPedBone == null) fn__startNetworkedParticleFxNonLoopedOnPedBone = (delegate* unmanaged[Cdecl]) funcTable[0xA41B6A43642AC2CFUL]; + if (fn__startNetworkedParticleFxNonLoopedOnPedBone == null) fn__startNetworkedParticleFxNonLoopedOnPedBone = (delegate* unmanaged[Cdecl]) funcTable[0xA41B6A43642AC2CFUL]; var success = false; - var ptr_effectName = _effectName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_effectName); + var ptr_effectName = MemoryUtils.StringToHGlobalUtf8(_effectName); var result = fn__startNetworkedParticleFxNonLoopedOnPedBone(&success, ptr_effectName, _ped, _offsetX, _offsetY, _offsetZ, _rotX, _rotY, _rotZ, _boneIndex, _scale, (byte) (_axisX ? 1 : 0), (byte) (_axisY ? 1 : 0), (byte) (_axisZ ? 1 : 0)); - if (ptr_effectName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_effectName); + Marshal.FreeHGlobal(ptr_effectName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool StartParticleFxNonLoopedOnEntity(string effectName, IEntity entity, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, float scale, bool axisX, bool axisY, bool axisZ) => StartParticleFxNonLoopedOnEntity(effectName, entity.ScriptId, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, scale, axisX, axisY, axisZ); - public bool StartParticleFxNonLoopedOnEntity(string _effectName, int _entity, float _offsetX, float _offsetY, float _offsetZ, float _rotX, float _rotY, float _rotZ, float _scale, bool _axisX, bool _axisY, bool _axisZ) + public bool StartParticleFxNonLoopedOnEntity(string _effectName, uint _entity, float _offsetX, float _offsetY, float _offsetZ, float _rotX, float _rotY, float _rotZ, float _scale, bool _axisX, bool _axisY, bool _axisZ) { unsafe { - if (fn__startParticleFxNonLoopedOnEntity == null) fn__startParticleFxNonLoopedOnEntity = (delegate* unmanaged[Cdecl]) funcTable[0x0D53A3B8DA0809D2UL]; + if (fn__startParticleFxNonLoopedOnEntity == null) fn__startParticleFxNonLoopedOnEntity = (delegate* unmanaged[Cdecl]) funcTable[0x0D53A3B8DA0809D2UL]; var success = false; - var ptr_effectName = _effectName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_effectName); + var ptr_effectName = MemoryUtils.StringToHGlobalUtf8(_effectName); var result = fn__startParticleFxNonLoopedOnEntity(&success, ptr_effectName, _entity, _offsetX, _offsetY, _offsetZ, _rotX, _rotY, _rotZ, _scale, (byte) (_axisX ? 1 : 0), (byte) (_axisY ? 1 : 0), (byte) (_axisZ ? 1 : 0)); - if (ptr_effectName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_effectName); + Marshal.FreeHGlobal(ptr_effectName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool StartNetworkedParticleFxNonLoopedOnEntity(string effectName, IEntity entity, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, float scale, bool axisX, bool axisY, bool axisZ) => StartNetworkedParticleFxNonLoopedOnEntity(effectName, entity.ScriptId, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, scale, axisX, axisY, axisZ); - public bool StartNetworkedParticleFxNonLoopedOnEntity(string _effectName, int _entity, float _offsetX, float _offsetY, float _offsetZ, float _rotX, float _rotY, float _rotZ, float _scale, bool _axisX, bool _axisY, bool _axisZ) + public bool StartNetworkedParticleFxNonLoopedOnEntity(string _effectName, uint _entity, float _offsetX, float _offsetY, float _offsetZ, float _rotX, float _rotY, float _rotZ, float _scale, bool _axisX, bool _axisY, bool _axisZ) { unsafe { - if (fn__startNetworkedParticleFxNonLoopedOnEntity == null) fn__startNetworkedParticleFxNonLoopedOnEntity = (delegate* unmanaged[Cdecl]) funcTable[0xC95EB1DB6E92113DUL]; + if (fn__startNetworkedParticleFxNonLoopedOnEntity == null) fn__startNetworkedParticleFxNonLoopedOnEntity = (delegate* unmanaged[Cdecl]) funcTable[0xC95EB1DB6E92113DUL]; var success = false; - var ptr_effectName = _effectName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_effectName); + var ptr_effectName = MemoryUtils.StringToHGlobalUtf8(_effectName); var result = fn__startNetworkedParticleFxNonLoopedOnEntity(&success, ptr_effectName, _entity, _offsetX, _offsetY, _offsetZ, _rotX, _rotY, _rotZ, _scale, (byte) (_axisX ? 1 : 0), (byte) (_axisY ? 1 : 0), (byte) (_axisZ ? 1 : 0)); - if (ptr_effectName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_effectName); + Marshal.FreeHGlobal(ptr_effectName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool StartParticleFxNonLoopedOnEntityBone(string effectName, IEntity entity, float offsetX, float offsetY, float offsetZ, float rotX, float rotY, float rotZ, int boneIndex, float scale, bool axisX, bool axisY, bool axisZ) => StartParticleFxNonLoopedOnEntityBone(effectName, entity.ScriptId, offsetX, offsetY, offsetZ, rotX, rotY, rotZ, boneIndex, scale, axisX, axisY, axisZ); - public bool StartParticleFxNonLoopedOnEntityBone(string _effectName, int _entity, float _offsetX, float _offsetY, float _offsetZ, float _rotX, float _rotY, float _rotZ, int _boneIndex, float _scale, bool _axisX, bool _axisY, bool _axisZ) + public bool StartParticleFxNonLoopedOnEntityBone(string _effectName, uint _entity, float _offsetX, float _offsetY, float _offsetZ, float _rotX, float _rotY, float _rotZ, int _boneIndex, float _scale, bool _axisX, bool _axisY, bool _axisZ) { unsafe { - if (fn__startParticleFxNonLoopedOnEntityBone == null) fn__startParticleFxNonLoopedOnEntityBone = (delegate* unmanaged[Cdecl]) funcTable[0x02B1F2A72E0F5325UL]; + if (fn__startParticleFxNonLoopedOnEntityBone == null) fn__startParticleFxNonLoopedOnEntityBone = (delegate* unmanaged[Cdecl]) funcTable[0x02B1F2A72E0F5325UL]; var success = false; - var ptr_effectName = _effectName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_effectName); + var ptr_effectName = MemoryUtils.StringToHGlobalUtf8(_effectName); var result = fn__startParticleFxNonLoopedOnEntityBone(&success, ptr_effectName, _entity, _offsetX, _offsetY, _offsetZ, _rotX, _rotY, _rotZ, _boneIndex, _scale, (byte) (_axisX ? 1 : 0), (byte) (_axisY ? 1 : 0), (byte) (_axisZ ? 1 : 0)); - if (ptr_effectName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_effectName); + Marshal.FreeHGlobal(ptr_effectName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -36076,79 +36063,79 @@ public int StartParticleFxLoopedAtCoord(string _effectName, float _x, float _y, unsafe { if (fn__startParticleFxLoopedAtCoord == null) fn__startParticleFxLoopedAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0xE184F4F0DC5910E7UL]; var success = false; - var ptr_effectName = _effectName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_effectName); + var ptr_effectName = MemoryUtils.StringToHGlobalUtf8(_effectName); var result = fn__startParticleFxLoopedAtCoord(&success, ptr_effectName, _x, _y, _z, _xRot, _yRot, _zRot, _scale, (byte) (_xAxis ? 1 : 0), (byte) (_yAxis ? 1 : 0), (byte) (_zAxis ? 1 : 0), (byte) (_p11 ? 1 : 0)); - if (ptr_effectName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_effectName); + Marshal.FreeHGlobal(ptr_effectName); if (!success) throw new Exception("Native execution failed"); return result; } } public int StartParticleFxLoopedOnPedBone(string effectName, IPlayer ped, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, int boneIndex, float scale, bool xAxis, bool yAxis, bool zAxis) => StartParticleFxLoopedOnPedBone(effectName, ped.ScriptId, xOffset, yOffset, zOffset, xRot, yRot, zRot, boneIndex, scale, xAxis, yAxis, zAxis); - public int StartParticleFxLoopedOnPedBone(string _effectName, int _ped, float _xOffset, float _yOffset, float _zOffset, float _xRot, float _yRot, float _zRot, int _boneIndex, float _scale, bool _xAxis, bool _yAxis, bool _zAxis) + public int StartParticleFxLoopedOnPedBone(string _effectName, uint _ped, float _xOffset, float _yOffset, float _zOffset, float _xRot, float _yRot, float _zRot, int _boneIndex, float _scale, bool _xAxis, bool _yAxis, bool _zAxis) { unsafe { - if (fn__startParticleFxLoopedOnPedBone == null) fn__startParticleFxLoopedOnPedBone = (delegate* unmanaged[Cdecl]) funcTable[0xF28DA9F38CD1787CUL]; + if (fn__startParticleFxLoopedOnPedBone == null) fn__startParticleFxLoopedOnPedBone = (delegate* unmanaged[Cdecl]) funcTable[0xF28DA9F38CD1787CUL]; var success = false; - var ptr_effectName = _effectName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_effectName); + var ptr_effectName = MemoryUtils.StringToHGlobalUtf8(_effectName); var result = fn__startParticleFxLoopedOnPedBone(&success, ptr_effectName, _ped, _xOffset, _yOffset, _zOffset, _xRot, _yRot, _zRot, _boneIndex, _scale, (byte) (_xAxis ? 1 : 0), (byte) (_yAxis ? 1 : 0), (byte) (_zAxis ? 1 : 0)); - if (ptr_effectName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_effectName); + Marshal.FreeHGlobal(ptr_effectName); if (!success) throw new Exception("Native execution failed"); return result; } } public int StartParticleFxLoopedOnEntity(string effectName, IEntity entity, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, float scale, bool xAxis, bool yAxis, bool zAxis) => StartParticleFxLoopedOnEntity(effectName, entity.ScriptId, xOffset, yOffset, zOffset, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis); - public int StartParticleFxLoopedOnEntity(string _effectName, int _entity, float _xOffset, float _yOffset, float _zOffset, float _xRot, float _yRot, float _zRot, float _scale, bool _xAxis, bool _yAxis, bool _zAxis) + public int StartParticleFxLoopedOnEntity(string _effectName, uint _entity, float _xOffset, float _yOffset, float _zOffset, float _xRot, float _yRot, float _zRot, float _scale, bool _xAxis, bool _yAxis, bool _zAxis) { unsafe { - if (fn__startParticleFxLoopedOnEntity == null) fn__startParticleFxLoopedOnEntity = (delegate* unmanaged[Cdecl]) funcTable[0x1AE42C1660FD6517UL]; + if (fn__startParticleFxLoopedOnEntity == null) fn__startParticleFxLoopedOnEntity = (delegate* unmanaged[Cdecl]) funcTable[0x1AE42C1660FD6517UL]; var success = false; - var ptr_effectName = _effectName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_effectName); + var ptr_effectName = MemoryUtils.StringToHGlobalUtf8(_effectName); var result = fn__startParticleFxLoopedOnEntity(&success, ptr_effectName, _entity, _xOffset, _yOffset, _zOffset, _xRot, _yRot, _zRot, _scale, (byte) (_xAxis ? 1 : 0), (byte) (_yAxis ? 1 : 0), (byte) (_zAxis ? 1 : 0)); - if (ptr_effectName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_effectName); + Marshal.FreeHGlobal(ptr_effectName); if (!success) throw new Exception("Native execution failed"); return result; } } public int StartParticleFxLoopedOnEntityBone(string effectName, IEntity entity, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, int boneIndex, float scale, bool xAxis, bool yAxis, bool zAxis) => StartParticleFxLoopedOnEntityBone(effectName, entity.ScriptId, xOffset, yOffset, zOffset, xRot, yRot, zRot, boneIndex, scale, xAxis, yAxis, zAxis); - public int StartParticleFxLoopedOnEntityBone(string _effectName, int _entity, float _xOffset, float _yOffset, float _zOffset, float _xRot, float _yRot, float _zRot, int _boneIndex, float _scale, bool _xAxis, bool _yAxis, bool _zAxis) + public int StartParticleFxLoopedOnEntityBone(string _effectName, uint _entity, float _xOffset, float _yOffset, float _zOffset, float _xRot, float _yRot, float _zRot, int _boneIndex, float _scale, bool _xAxis, bool _yAxis, bool _zAxis) { unsafe { - if (fn__startParticleFxLoopedOnEntityBone == null) fn__startParticleFxLoopedOnEntityBone = (delegate* unmanaged[Cdecl]) funcTable[0xC6EB449E33977F0BUL]; + if (fn__startParticleFxLoopedOnEntityBone == null) fn__startParticleFxLoopedOnEntityBone = (delegate* unmanaged[Cdecl]) funcTable[0xC6EB449E33977F0BUL]; var success = false; - var ptr_effectName = _effectName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_effectName); + var ptr_effectName = MemoryUtils.StringToHGlobalUtf8(_effectName); var result = fn__startParticleFxLoopedOnEntityBone(&success, ptr_effectName, _entity, _xOffset, _yOffset, _zOffset, _xRot, _yRot, _zRot, _boneIndex, _scale, (byte) (_xAxis ? 1 : 0), (byte) (_yAxis ? 1 : 0), (byte) (_zAxis ? 1 : 0)); - if (ptr_effectName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_effectName); + Marshal.FreeHGlobal(ptr_effectName); if (!success) throw new Exception("Native execution failed"); return result; } } public int StartNetworkedParticleFxLoopedOnEntity(string effectName, IEntity entity, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, float scale, bool xAxis, bool yAxis, bool zAxis, float r, float g, float b, float a) => StartNetworkedParticleFxLoopedOnEntity(effectName, entity.ScriptId, xOffset, yOffset, zOffset, xRot, yRot, zRot, scale, xAxis, yAxis, zAxis, r, g, b, a); - public int StartNetworkedParticleFxLoopedOnEntity(string _effectName, int _entity, float _xOffset, float _yOffset, float _zOffset, float _xRot, float _yRot, float _zRot, float _scale, bool _xAxis, bool _yAxis, bool _zAxis, float _r, float _g, float _b, float _a) + public int StartNetworkedParticleFxLoopedOnEntity(string _effectName, uint _entity, float _xOffset, float _yOffset, float _zOffset, float _xRot, float _yRot, float _zRot, float _scale, bool _xAxis, bool _yAxis, bool _zAxis, float _r, float _g, float _b, float _a) { unsafe { - if (fn__startNetworkedParticleFxLoopedOnEntity == null) fn__startNetworkedParticleFxLoopedOnEntity = (delegate* unmanaged[Cdecl]) funcTable[0x6F60E89A7B64EE1DUL]; + if (fn__startNetworkedParticleFxLoopedOnEntity == null) fn__startNetworkedParticleFxLoopedOnEntity = (delegate* unmanaged[Cdecl]) funcTable[0x6F60E89A7B64EE1DUL]; var success = false; - var ptr_effectName = _effectName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_effectName); + var ptr_effectName = MemoryUtils.StringToHGlobalUtf8(_effectName); var result = fn__startNetworkedParticleFxLoopedOnEntity(&success, ptr_effectName, _entity, _xOffset, _yOffset, _zOffset, _xRot, _yRot, _zRot, _scale, (byte) (_xAxis ? 1 : 0), (byte) (_yAxis ? 1 : 0), (byte) (_zAxis ? 1 : 0), _r, _g, _b, _a); - if (ptr_effectName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_effectName); + Marshal.FreeHGlobal(ptr_effectName); if (!success) throw new Exception("Native execution failed"); return result; } } public int StartNetworkedParticleFxLoopedOnEntityBone(string effectName, IEntity entity, float xOffset, float yOffset, float zOffset, float xRot, float yRot, float zRot, int boneIndex, float scale, bool xAxis, bool yAxis, bool zAxis, float r, float g, float b, float a) => StartNetworkedParticleFxLoopedOnEntityBone(effectName, entity.ScriptId, xOffset, yOffset, zOffset, xRot, yRot, zRot, boneIndex, scale, xAxis, yAxis, zAxis, r, g, b, a); - public int StartNetworkedParticleFxLoopedOnEntityBone(string _effectName, int _entity, float _xOffset, float _yOffset, float _zOffset, float _xRot, float _yRot, float _zRot, int _boneIndex, float _scale, bool _xAxis, bool _yAxis, bool _zAxis, float _r, float _g, float _b, float _a) + public int StartNetworkedParticleFxLoopedOnEntityBone(string _effectName, uint _entity, float _xOffset, float _yOffset, float _zOffset, float _xRot, float _yRot, float _zRot, int _boneIndex, float _scale, bool _xAxis, bool _yAxis, bool _zAxis, float _r, float _g, float _b, float _a) { unsafe { - if (fn__startNetworkedParticleFxLoopedOnEntityBone == null) fn__startNetworkedParticleFxLoopedOnEntityBone = (delegate* unmanaged[Cdecl]) funcTable[0xDDE23F30CC5A0F03UL]; + if (fn__startNetworkedParticleFxLoopedOnEntityBone == null) fn__startNetworkedParticleFxLoopedOnEntityBone = (delegate* unmanaged[Cdecl]) funcTable[0xDDE23F30CC5A0F03UL]; var success = false; - var ptr_effectName = _effectName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_effectName); + var ptr_effectName = MemoryUtils.StringToHGlobalUtf8(_effectName); var result = fn__startNetworkedParticleFxLoopedOnEntityBone(&success, ptr_effectName, _entity, _xOffset, _yOffset, _zOffset, _xRot, _yRot, _zRot, _boneIndex, _scale, (byte) (_xAxis ? 1 : 0), (byte) (_yAxis ? 1 : 0), (byte) (_zAxis ? 1 : 0), _r, _g, _b, _a); - if (ptr_effectName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_effectName); + Marshal.FreeHGlobal(ptr_effectName); if (!success) throw new Exception("Native execution failed"); return result; } @@ -36175,10 +36162,10 @@ public void RemoveParticleFx(int _ptfxHandle, bool _p1) } public void RemoveParticleFxFromEntity(IEntity entity) => RemoveParticleFxFromEntity(entity.ScriptId); - public void RemoveParticleFxFromEntity(int _entity) + public void RemoveParticleFxFromEntity(uint _entity) { unsafe { - if (fn__removeParticleFxFromEntity == null) fn__removeParticleFxFromEntity = (delegate* unmanaged[Cdecl]) funcTable[0xB8FEAEEBCC127425UL]; + if (fn__removeParticleFxFromEntity == null) fn__removeParticleFxFromEntity = (delegate* unmanaged[Cdecl]) funcTable[0xB8FEAEEBCC127425UL]; var success = false; fn__removeParticleFxFromEntity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -36231,9 +36218,9 @@ public void SetParticleFxLoopedEvolution(int _ptfxHandle, string _propertyName, unsafe { if (fn__setParticleFxLoopedEvolution == null) fn__setParticleFxLoopedEvolution = (delegate* unmanaged[Cdecl]) funcTable[0x5F0C4B5B1C393BE2UL]; var success = false; - var ptr_propertyName = _propertyName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_propertyName); + var ptr_propertyName = MemoryUtils.StringToHGlobalUtf8(_propertyName); fn__setParticleFxLoopedEvolution(&success, _ptfxHandle, ptr_propertyName, _amount, (byte) (_noNetwork ? 1 : 0)); - if (ptr_propertyName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_propertyName); + Marshal.FreeHGlobal(ptr_propertyName); if (!success) throw new Exception("Native execution failed"); } } @@ -36289,10 +36276,10 @@ public void SetParticleFxCamInsideVehicle(bool _p0) } public void SetParticleFxCamInsideNonplayerVehicle(IVehicle vehicle, bool p1) => SetParticleFxCamInsideNonplayerVehicle(vehicle.ScriptId, p1); - public void SetParticleFxCamInsideNonplayerVehicle(int _vehicle, bool _p1) + public void SetParticleFxCamInsideNonplayerVehicle(uint _vehicle, bool _p1) { unsafe { - if (fn__setParticleFxCamInsideNonplayerVehicle == null) fn__setParticleFxCamInsideNonplayerVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xACEE6F360FC1F6B6UL]; + if (fn__setParticleFxCamInsideNonplayerVehicle == null) fn__setParticleFxCamInsideNonplayerVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xACEE6F360FC1F6B6UL]; var success = false; fn__setParticleFxCamInsideNonplayerVehicle(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -36434,9 +36421,9 @@ public void SetParticleFxFootOverrideName(string _p0) unsafe { if (fn__setParticleFxFootOverrideName == null) fn__setParticleFxFootOverrideName = (delegate* unmanaged[Cdecl]) funcTable[0xBA3D194057C79A7BUL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__setParticleFxFootOverrideName(&success, ptr_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -36476,9 +36463,9 @@ public void UseParticleFxAsset(string _name) unsafe { if (fn__useParticleFxAsset == null) fn__useParticleFxAsset = (delegate* unmanaged[Cdecl]) funcTable[0x6C38AF3693A69A91UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__useParticleFxAsset(&success, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -36488,11 +36475,11 @@ public void SetParticleFxOverride(string _oldAsset, string _newAsset) unsafe { if (fn__setParticleFxOverride == null) fn__setParticleFxOverride = (delegate* unmanaged[Cdecl]) funcTable[0xEA1E2D93F6F75ED9UL]; var success = false; - var ptr_oldAsset = _oldAsset == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_oldAsset); - var ptr_newAsset = _newAsset == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_newAsset); + var ptr_oldAsset = MemoryUtils.StringToHGlobalUtf8(_oldAsset); + var ptr_newAsset = MemoryUtils.StringToHGlobalUtf8(_newAsset); fn__setParticleFxOverride(&success, ptr_oldAsset, ptr_newAsset); - if (ptr_oldAsset != IntPtr.Zero) Marshal.FreeHGlobal(ptr_oldAsset); - if (ptr_newAsset != IntPtr.Zero) Marshal.FreeHGlobal(ptr_newAsset); + Marshal.FreeHGlobal(ptr_oldAsset); + Marshal.FreeHGlobal(ptr_newAsset); if (!success) throw new Exception("Native execution failed"); } } @@ -36502,9 +36489,9 @@ public void ResetParticleFxOverride(string _name) unsafe { if (fn__resetParticleFxOverride == null) fn__resetParticleFxOverride = (delegate* unmanaged[Cdecl]) funcTable[0x89C8553DD3274AAEUL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__resetParticleFxOverride(&success, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -36540,10 +36527,10 @@ public void WashDecalsInRange(float _x, float _y, float _z, float _range, float } public void WashDecalsFromVehicle(IVehicle vehicle, float p1) => WashDecalsFromVehicle(vehicle.ScriptId, p1); - public void WashDecalsFromVehicle(int _vehicle, float _p1) + public void WashDecalsFromVehicle(uint _vehicle, float _p1) { unsafe { - if (fn__washDecalsFromVehicle == null) fn__washDecalsFromVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x5B712761429DBC14UL]; + if (fn__washDecalsFromVehicle == null) fn__washDecalsFromVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x5B712761429DBC14UL]; var success = false; fn__washDecalsFromVehicle(&success, _vehicle, _p1); if (!success) throw new Exception("Native execution failed"); @@ -36570,20 +36557,20 @@ public void RemoveDecalsInRange(float _x, float _y, float _z, float _range) } } - public void RemoveDecalsFromObject(int _obj) + public void RemoveDecalsFromObject(uint _obj) { unsafe { - if (fn__removeDecalsFromObject == null) fn__removeDecalsFromObject = (delegate* unmanaged[Cdecl]) funcTable[0xCCF71CBDDF5B6CB9UL]; + if (fn__removeDecalsFromObject == null) fn__removeDecalsFromObject = (delegate* unmanaged[Cdecl]) funcTable[0xCCF71CBDDF5B6CB9UL]; var success = false; fn__removeDecalsFromObject(&success, _obj); if (!success) throw new Exception("Native execution failed"); } } - public void RemoveDecalsFromObjectFacing(int _obj, float _x, float _y, float _z) + public void RemoveDecalsFromObjectFacing(uint _obj, float _x, float _y, float _z) { unsafe { - if (fn__removeDecalsFromObjectFacing == null) fn__removeDecalsFromObjectFacing = (delegate* unmanaged[Cdecl]) funcTable[0xA6F6F70FDC6D144CUL]; + if (fn__removeDecalsFromObjectFacing == null) fn__removeDecalsFromObjectFacing = (delegate* unmanaged[Cdecl]) funcTable[0xA6F6F70FDC6D144CUL]; var success = false; fn__removeDecalsFromObjectFacing(&success, _obj, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); @@ -36591,10 +36578,10 @@ public void RemoveDecalsFromObjectFacing(int _obj, float _x, float _y, float _z) } public void RemoveDecalsFromVehicle(IVehicle vehicle) => RemoveDecalsFromVehicle(vehicle.ScriptId); - public void RemoveDecalsFromVehicle(int _vehicle) + public void RemoveDecalsFromVehicle(uint _vehicle) { unsafe { - if (fn__removeDecalsFromVehicle == null) fn__removeDecalsFromVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xE91F1B65F2B48D57UL]; + if (fn__removeDecalsFromVehicle == null) fn__removeDecalsFromVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xE91F1B65F2B48D57UL]; var success = false; fn__removeDecalsFromVehicle(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -36742,11 +36729,11 @@ public void PatchDecalDiffuseMap(int _decalType, string _textureDict, string _te unsafe { if (fn__patchDecalDiffuseMap == null) fn__patchDecalDiffuseMap = (delegate* unmanaged[Cdecl]) funcTable[0x8A35C742130C6080UL]; var success = false; - var ptr_textureDict = _textureDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureDict); - var ptr_textureName = _textureName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureName); + var ptr_textureDict = MemoryUtils.StringToHGlobalUtf8(_textureDict); + var ptr_textureName = MemoryUtils.StringToHGlobalUtf8(_textureName); fn__patchDecalDiffuseMap(&success, _decalType, ptr_textureDict, ptr_textureName); - if (ptr_textureDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureDict); - if (ptr_textureName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureName); + Marshal.FreeHGlobal(ptr_textureDict); + Marshal.FreeHGlobal(ptr_textureName); if (!success) throw new Exception("Native execution failed"); } } @@ -36771,13 +36758,13 @@ public void MoveVehicleDecals(int _p0, int _p1) } } - public bool AddVehicleCrewEmblem(IVehicle vehicle, int ped, int boneIndex, float x1, float x2, float x3, float y1, float y2, float y3, float z1, float z2, float z3, float scale, int p13, int alpha) => AddVehicleCrewEmblem(vehicle.ScriptId, ped, boneIndex, x1, x2, x3, y1, y2, y3, z1, z2, z3, scale, p13, alpha); - public bool AddVehicleCrewEmblem(int vehicle, IPlayer ped, int boneIndex, float x1, float x2, float x3, float y1, float y2, float y3, float z1, float z2, float z3, float scale, int p13, int alpha) => AddVehicleCrewEmblem(vehicle, ped.ScriptId, boneIndex, x1, x2, x3, y1, y2, y3, z1, z2, z3, scale, p13, alpha); + public bool AddVehicleCrewEmblem(IVehicle vehicle, uint ped, int boneIndex, float x1, float x2, float x3, float y1, float y2, float y3, float z1, float z2, float z3, float scale, int p13, int alpha) => AddVehicleCrewEmblem(vehicle.ScriptId, ped, boneIndex, x1, x2, x3, y1, y2, y3, z1, z2, z3, scale, p13, alpha); + public bool AddVehicleCrewEmblem(uint vehicle, IPlayer ped, int boneIndex, float x1, float x2, float x3, float y1, float y2, float y3, float z1, float z2, float z3, float scale, int p13, int alpha) => AddVehicleCrewEmblem(vehicle, ped.ScriptId, boneIndex, x1, x2, x3, y1, y2, y3, z1, z2, z3, scale, p13, alpha); public bool AddVehicleCrewEmblem(IVehicle vehicle, IPlayer ped, int boneIndex, float x1, float x2, float x3, float y1, float y2, float y3, float z1, float z2, float z3, float scale, int p13, int alpha) => AddVehicleCrewEmblem(vehicle.ScriptId, ped.ScriptId, boneIndex, x1, x2, x3, y1, y2, y3, z1, z2, z3, scale, p13, alpha); - public bool AddVehicleCrewEmblem(int _vehicle, int _ped, int _boneIndex, float _x1, float _x2, float _x3, float _y1, float _y2, float _y3, float _z1, float _z2, float _z3, float _scale, int _p13, int _alpha) + public bool AddVehicleCrewEmblem(uint _vehicle, uint _ped, int _boneIndex, float _x1, float _x2, float _x3, float _y1, float _y2, float _y3, float _z1, float _z2, float _z3, float _scale, int _p13, int _alpha) { unsafe { - if (fn__addVehicleCrewEmblem == null) fn__addVehicleCrewEmblem = (delegate* unmanaged[Cdecl]) funcTable[0x428BDCB9DA58DA53UL]; + if (fn__addVehicleCrewEmblem == null) fn__addVehicleCrewEmblem = (delegate* unmanaged[Cdecl]) funcTable[0x428BDCB9DA58DA53UL]; var success = false; var result = fn__addVehicleCrewEmblem(&success, _vehicle, _ped, _boneIndex, _x1, _x2, _x3, _y1, _y2, _y3, _z1, _z2, _z3, _scale, _p13, _alpha); if (!success) throw new Exception("Native execution failed"); @@ -36799,10 +36786,10 @@ public bool AbortVehicleCrewEmblemRequest(ref int _p0) } public void RemoveVehicleCrewEmblem(IVehicle vehicle, int p1) => RemoveVehicleCrewEmblem(vehicle.ScriptId, p1); - public void RemoveVehicleCrewEmblem(int _vehicle, int _p1) + public void RemoveVehicleCrewEmblem(uint _vehicle, int _p1) { unsafe { - if (fn__removeVehicleCrewEmblem == null) fn__removeVehicleCrewEmblem = (delegate* unmanaged[Cdecl]) funcTable[0xD2300034310557E4UL]; + if (fn__removeVehicleCrewEmblem == null) fn__removeVehicleCrewEmblem = (delegate* unmanaged[Cdecl]) funcTable[0xD2300034310557E4UL]; var success = false; fn__removeVehicleCrewEmblem(&success, _vehicle, _p1); if (!success) throw new Exception("Native execution failed"); @@ -36810,10 +36797,10 @@ public void RemoveVehicleCrewEmblem(int _vehicle, int _p1) } public int GetVehicleCrewEmblemRequestState(IVehicle vehicle, int p1) => GetVehicleCrewEmblemRequestState(vehicle.ScriptId, p1); - public int GetVehicleCrewEmblemRequestState(int _vehicle, int _p1) + public int GetVehicleCrewEmblemRequestState(uint _vehicle, int _p1) { unsafe { - if (fn__getVehicleCrewEmblemRequestState == null) fn__getVehicleCrewEmblemRequestState = (delegate* unmanaged[Cdecl]) funcTable[0xFE26117A5841B2FFUL]; + if (fn__getVehicleCrewEmblemRequestState == null) fn__getVehicleCrewEmblemRequestState = (delegate* unmanaged[Cdecl]) funcTable[0xFE26117A5841B2FFUL]; var success = false; var result = fn__getVehicleCrewEmblemRequestState(&success, _vehicle, _p1); if (!success) throw new Exception("Native execution failed"); @@ -36822,10 +36809,10 @@ public int GetVehicleCrewEmblemRequestState(int _vehicle, int _p1) } public bool DoesVehicleHaveCrewEmblem(IVehicle vehicle, int p1) => DoesVehicleHaveCrewEmblem(vehicle.ScriptId, p1); - public bool DoesVehicleHaveCrewEmblem(int _vehicle, int _p1) + public bool DoesVehicleHaveCrewEmblem(uint _vehicle, int _p1) { unsafe { - if (fn__doesVehicleHaveCrewEmblem == null) fn__doesVehicleHaveCrewEmblem = (delegate* unmanaged[Cdecl]) funcTable[0x060D935D3981A275UL]; + if (fn__doesVehicleHaveCrewEmblem == null) fn__doesVehicleHaveCrewEmblem = (delegate* unmanaged[Cdecl]) funcTable[0x060D935D3981A275UL]; var success = false; var result = fn__doesVehicleHaveCrewEmblem(&success, _vehicle, _p1); if (!success) throw new Exception("Native execution failed"); @@ -36868,9 +36855,9 @@ public void OverrideInteriorSmokeName(string _name) unsafe { if (fn__overrideInteriorSmokeName == null) fn__overrideInteriorSmokeName = (delegate* unmanaged[Cdecl]) funcTable[0x2A2A52824DB96700UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__overrideInteriorSmokeName(&success, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -36970,9 +36957,9 @@ public void PresetInteriorAmbientCache(string _timecycleModifierName) unsafe { if (fn__presetInteriorAmbientCache == null) fn__presetInteriorAmbientCache = (delegate* unmanaged[Cdecl]) funcTable[0xD7021272EB0A451EUL]; var success = false; - var ptr_timecycleModifierName = _timecycleModifierName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_timecycleModifierName); + var ptr_timecycleModifierName = MemoryUtils.StringToHGlobalUtf8(_timecycleModifierName); fn__presetInteriorAmbientCache(&success, ptr_timecycleModifierName); - if (ptr_timecycleModifierName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_timecycleModifierName); + Marshal.FreeHGlobal(ptr_timecycleModifierName); if (!success) throw new Exception("Native execution failed"); } } @@ -36982,9 +36969,9 @@ public void SetTimecycleModifier(string _modifierName) unsafe { if (fn__setTimecycleModifier == null) fn__setTimecycleModifier = (delegate* unmanaged[Cdecl]) funcTable[0x2C933ABF17A1DF41UL]; var success = false; - var ptr_modifierName = _modifierName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_modifierName); + var ptr_modifierName = MemoryUtils.StringToHGlobalUtf8(_modifierName); fn__setTimecycleModifier(&success, ptr_modifierName); - if (ptr_modifierName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_modifierName); + Marshal.FreeHGlobal(ptr_modifierName); if (!success) throw new Exception("Native execution failed"); } } @@ -37004,9 +36991,9 @@ public void SetTransitionTimecycleModifier(string _modifierName, float _transiti unsafe { if (fn__setTransitionTimecycleModifier == null) fn__setTransitionTimecycleModifier = (delegate* unmanaged[Cdecl]) funcTable[0x3BCF567485E1971CUL]; var success = false; - var ptr_modifierName = _modifierName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_modifierName); + var ptr_modifierName = MemoryUtils.StringToHGlobalUtf8(_modifierName); fn__setTransitionTimecycleModifier(&success, ptr_modifierName, _transition); - if (ptr_modifierName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_modifierName); + Marshal.FreeHGlobal(ptr_modifierName); if (!success) throw new Exception("Native execution failed"); } } @@ -37089,9 +37076,9 @@ public void SetCurrentPlayerTcmodifier(string _modifierName) unsafe { if (fn__setCurrentPlayerTcmodifier == null) fn__setCurrentPlayerTcmodifier = (delegate* unmanaged[Cdecl]) funcTable[0xBBF327DED94E4DEBUL]; var success = false; - var ptr_modifierName = _modifierName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_modifierName); + var ptr_modifierName = MemoryUtils.StringToHGlobalUtf8(_modifierName); fn__setCurrentPlayerTcmodifier(&success, ptr_modifierName); - if (ptr_modifierName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_modifierName); + Marshal.FreeHGlobal(ptr_modifierName); if (!success) throw new Exception("Native execution failed"); } } @@ -37111,9 +37098,9 @@ public void SetNextPlayerTcmodifier(string _modifierName) unsafe { if (fn__setNextPlayerTcmodifier == null) fn__setNextPlayerTcmodifier = (delegate* unmanaged[Cdecl]) funcTable[0xBF59707B3E5ED531UL]; var success = false; - var ptr_modifierName = _modifierName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_modifierName); + var ptr_modifierName = MemoryUtils.StringToHGlobalUtf8(_modifierName); fn__setNextPlayerTcmodifier(&success, ptr_modifierName); - if (ptr_modifierName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_modifierName); + Marshal.FreeHGlobal(ptr_modifierName); if (!success) throw new Exception("Native execution failed"); } } @@ -37123,11 +37110,11 @@ public void AddTcmodifierOverride(string _modifierName1, string _modifierName2) unsafe { if (fn__addTcmodifierOverride == null) fn__addTcmodifierOverride = (delegate* unmanaged[Cdecl]) funcTable[0x1A8E2C8B9CF4549CUL]; var success = false; - var ptr_modifierName1 = _modifierName1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_modifierName1); - var ptr_modifierName2 = _modifierName2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_modifierName2); + var ptr_modifierName1 = MemoryUtils.StringToHGlobalUtf8(_modifierName1); + var ptr_modifierName2 = MemoryUtils.StringToHGlobalUtf8(_modifierName2); fn__addTcmodifierOverride(&success, ptr_modifierName1, ptr_modifierName2); - if (ptr_modifierName1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_modifierName1); - if (ptr_modifierName2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_modifierName2); + Marshal.FreeHGlobal(ptr_modifierName1); + Marshal.FreeHGlobal(ptr_modifierName2); if (!success) throw new Exception("Native execution failed"); } } @@ -37137,9 +37124,9 @@ public void ClearAllTcmodifierOverrides(string _p0) unsafe { if (fn__clearAllTcmodifierOverrides == null) fn__clearAllTcmodifierOverrides = (delegate* unmanaged[Cdecl]) funcTable[0x15E33297C3E8DC60UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__clearAllTcmodifierOverrides(&success, ptr_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -37149,9 +37136,9 @@ public void SetExtraTcmodifier(string _modifierName) unsafe { if (fn__setExtraTcmodifier == null) fn__setExtraTcmodifier = (delegate* unmanaged[Cdecl]) funcTable[0x5096FD9CCB49056DUL]; var success = false; - var ptr_modifierName = _modifierName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_modifierName); + var ptr_modifierName = MemoryUtils.StringToHGlobalUtf8(_modifierName); fn__setExtraTcmodifier(&success, ptr_modifierName); - if (ptr_modifierName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_modifierName); + Marshal.FreeHGlobal(ptr_modifierName); if (!success) throw new Exception("Native execution failed"); } } @@ -37202,9 +37189,9 @@ public int RequestScaleformMovie(string _scaleformName) unsafe { if (fn__requestScaleformMovie == null) fn__requestScaleformMovie = (delegate* unmanaged[Cdecl]) funcTable[0x11FE353CF9733E6FUL]; var success = false; - var ptr_scaleformName = _scaleformName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scaleformName); + var ptr_scaleformName = MemoryUtils.StringToHGlobalUtf8(_scaleformName); var result = fn__requestScaleformMovie(&success, ptr_scaleformName); - if (ptr_scaleformName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scaleformName); + Marshal.FreeHGlobal(ptr_scaleformName); if (!success) throw new Exception("Native execution failed"); return result; } @@ -37215,9 +37202,9 @@ public int RequestScaleformMovieInstance(string _scaleformName) unsafe { if (fn__requestScaleformMovieInstance == null) fn__requestScaleformMovieInstance = (delegate* unmanaged[Cdecl]) funcTable[0xC514489CFB8AF806UL]; var success = false; - var ptr_scaleformName = _scaleformName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scaleformName); + var ptr_scaleformName = MemoryUtils.StringToHGlobalUtf8(_scaleformName); var result = fn__requestScaleformMovieInstance(&success, ptr_scaleformName); - if (ptr_scaleformName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scaleformName); + Marshal.FreeHGlobal(ptr_scaleformName); if (!success) throw new Exception("Native execution failed"); return result; } @@ -37228,9 +37215,9 @@ public int RequestScaleformMovieSkipRenderWhilePaused(string _scaleformName) unsafe { if (fn__requestScaleformMovieSkipRenderWhilePaused == null) fn__requestScaleformMovieSkipRenderWhilePaused = (delegate* unmanaged[Cdecl]) funcTable[0xBD06C611BB9048C2UL]; var success = false; - var ptr_scaleformName = _scaleformName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scaleformName); + var ptr_scaleformName = MemoryUtils.StringToHGlobalUtf8(_scaleformName); var result = fn__requestScaleformMovieSkipRenderWhilePaused(&success, ptr_scaleformName); - if (ptr_scaleformName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scaleformName); + Marshal.FreeHGlobal(ptr_scaleformName); if (!success) throw new Exception("Native execution failed"); return result; } @@ -37274,9 +37261,9 @@ public bool HasScaleformMovieFilenameLoaded(string _scaleformName) unsafe { if (fn__hasScaleformMovieFilenameLoaded == null) fn__hasScaleformMovieFilenameLoaded = (delegate* unmanaged[Cdecl]) funcTable[0x0C1C5D756FB5F337UL]; var success = false; - var ptr_scaleformName = _scaleformName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scaleformName); + var ptr_scaleformName = MemoryUtils.StringToHGlobalUtf8(_scaleformName); var result = fn__hasScaleformMovieFilenameLoaded(&success, ptr_scaleformName); - if (ptr_scaleformName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scaleformName); + Marshal.FreeHGlobal(ptr_scaleformName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -37390,9 +37377,9 @@ public void CallScaleformMovieMethod(int _scaleform, string _method) unsafe { if (fn__callScaleformMovieMethod == null) fn__callScaleformMovieMethod = (delegate* unmanaged[Cdecl]) funcTable[0xFBD96D87AC96D533UL]; var success = false; - var ptr_method = _method == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_method); + var ptr_method = MemoryUtils.StringToHGlobalUtf8(_method); fn__callScaleformMovieMethod(&success, _scaleform, ptr_method); - if (ptr_method != IntPtr.Zero) Marshal.FreeHGlobal(ptr_method); + Marshal.FreeHGlobal(ptr_method); if (!success) throw new Exception("Native execution failed"); } } @@ -37402,9 +37389,9 @@ public void CallScaleformMovieMethodWithNumber(int _scaleform, string _methodNam unsafe { if (fn__callScaleformMovieMethodWithNumber == null) fn__callScaleformMovieMethodWithNumber = (delegate* unmanaged[Cdecl]) funcTable[0xD0837058AE2E4BEEUL]; var success = false; - var ptr_methodName = _methodName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_methodName); + var ptr_methodName = MemoryUtils.StringToHGlobalUtf8(_methodName); fn__callScaleformMovieMethodWithNumber(&success, _scaleform, ptr_methodName, _param1, _param2, _param3, _param4, _param5); - if (ptr_methodName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_methodName); + Marshal.FreeHGlobal(ptr_methodName); if (!success) throw new Exception("Native execution failed"); } } @@ -37414,19 +37401,19 @@ public void CallScaleformMovieMethodWithString(int _scaleform, string _methodNam unsafe { if (fn__callScaleformMovieMethodWithString == null) fn__callScaleformMovieMethodWithString = (delegate* unmanaged[Cdecl]) funcTable[0x51BC1ED3CC44E8F7UL]; var success = false; - var ptr_methodName = _methodName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_methodName); - var ptr_param1 = _param1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_param1); - var ptr_param2 = _param2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_param2); - var ptr_param3 = _param3 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_param3); - var ptr_param4 = _param4 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_param4); - var ptr_param5 = _param5 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_param5); + var ptr_methodName = MemoryUtils.StringToHGlobalUtf8(_methodName); + var ptr_param1 = MemoryUtils.StringToHGlobalUtf8(_param1); + var ptr_param2 = MemoryUtils.StringToHGlobalUtf8(_param2); + var ptr_param3 = MemoryUtils.StringToHGlobalUtf8(_param3); + var ptr_param4 = MemoryUtils.StringToHGlobalUtf8(_param4); + var ptr_param5 = MemoryUtils.StringToHGlobalUtf8(_param5); fn__callScaleformMovieMethodWithString(&success, _scaleform, ptr_methodName, ptr_param1, ptr_param2, ptr_param3, ptr_param4, ptr_param5); - if (ptr_methodName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_methodName); - if (ptr_param1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_param1); - if (ptr_param2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_param2); - if (ptr_param3 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_param3); - if (ptr_param4 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_param4); - if (ptr_param5 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_param5); + Marshal.FreeHGlobal(ptr_methodName); + Marshal.FreeHGlobal(ptr_param1); + Marshal.FreeHGlobal(ptr_param2); + Marshal.FreeHGlobal(ptr_param3); + Marshal.FreeHGlobal(ptr_param4); + Marshal.FreeHGlobal(ptr_param5); if (!success) throw new Exception("Native execution failed"); } } @@ -37436,19 +37423,19 @@ public void CallScaleformMovieMethodWithNumberAndString(int _scaleform, string _ unsafe { if (fn__callScaleformMovieMethodWithNumberAndString == null) fn__callScaleformMovieMethodWithNumberAndString = (delegate* unmanaged[Cdecl]) funcTable[0xEF662D8D57E290B1UL]; var success = false; - var ptr_methodName = _methodName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_methodName); - var ptr_stringParam1 = _stringParam1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_stringParam1); - var ptr_stringParam2 = _stringParam2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_stringParam2); - var ptr_stringParam3 = _stringParam3 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_stringParam3); - var ptr_stringParam4 = _stringParam4 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_stringParam4); - var ptr_stringParam5 = _stringParam5 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_stringParam5); + var ptr_methodName = MemoryUtils.StringToHGlobalUtf8(_methodName); + var ptr_stringParam1 = MemoryUtils.StringToHGlobalUtf8(_stringParam1); + var ptr_stringParam2 = MemoryUtils.StringToHGlobalUtf8(_stringParam2); + var ptr_stringParam3 = MemoryUtils.StringToHGlobalUtf8(_stringParam3); + var ptr_stringParam4 = MemoryUtils.StringToHGlobalUtf8(_stringParam4); + var ptr_stringParam5 = MemoryUtils.StringToHGlobalUtf8(_stringParam5); fn__callScaleformMovieMethodWithNumberAndString(&success, _scaleform, ptr_methodName, _floatParam1, _floatParam2, _floatParam3, _floatParam4, _floatParam5, ptr_stringParam1, ptr_stringParam2, ptr_stringParam3, ptr_stringParam4, ptr_stringParam5); - if (ptr_methodName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_methodName); - if (ptr_stringParam1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_stringParam1); - if (ptr_stringParam2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_stringParam2); - if (ptr_stringParam3 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_stringParam3); - if (ptr_stringParam4 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_stringParam4); - if (ptr_stringParam5 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_stringParam5); + Marshal.FreeHGlobal(ptr_methodName); + Marshal.FreeHGlobal(ptr_stringParam1); + Marshal.FreeHGlobal(ptr_stringParam2); + Marshal.FreeHGlobal(ptr_stringParam3); + Marshal.FreeHGlobal(ptr_stringParam4); + Marshal.FreeHGlobal(ptr_stringParam5); if (!success) throw new Exception("Native execution failed"); } } @@ -37458,9 +37445,9 @@ public bool BeginScaleformScriptHudMovieMethod(int _hudComponent, string _method unsafe { if (fn__beginScaleformScriptHudMovieMethod == null) fn__beginScaleformScriptHudMovieMethod = (delegate* unmanaged[Cdecl]) funcTable[0x98C494FD5BDFBFD5UL]; var success = false; - var ptr_methodName = _methodName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_methodName); + var ptr_methodName = MemoryUtils.StringToHGlobalUtf8(_methodName); var result = fn__beginScaleformScriptHudMovieMethod(&success, _hudComponent, ptr_methodName); - if (ptr_methodName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_methodName); + Marshal.FreeHGlobal(ptr_methodName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -37471,9 +37458,9 @@ public bool BeginScaleformMovieMethod(int _scaleform, string _methodName) unsafe { if (fn__beginScaleformMovieMethod == null) fn__beginScaleformMovieMethod = (delegate* unmanaged[Cdecl]) funcTable[0xF6E48914C7A8694EUL]; var success = false; - var ptr_methodName = _methodName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_methodName); + var ptr_methodName = MemoryUtils.StringToHGlobalUtf8(_methodName); var result = fn__beginScaleformMovieMethod(&success, _scaleform, ptr_methodName); - if (ptr_methodName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_methodName); + Marshal.FreeHGlobal(ptr_methodName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -37484,9 +37471,9 @@ public bool BeginScaleformMovieMethodOnFrontend(string _methodName) unsafe { if (fn__beginScaleformMovieMethodOnFrontend == null) fn__beginScaleformMovieMethodOnFrontend = (delegate* unmanaged[Cdecl]) funcTable[0xAB58C27C2E6123C6UL]; var success = false; - var ptr_methodName = _methodName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_methodName); + var ptr_methodName = MemoryUtils.StringToHGlobalUtf8(_methodName); var result = fn__beginScaleformMovieMethodOnFrontend(&success, ptr_methodName); - if (ptr_methodName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_methodName); + Marshal.FreeHGlobal(ptr_methodName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -37497,9 +37484,9 @@ public bool BeginScaleformMovieMethodOnFrontendHeader(string _methodName) unsafe { if (fn__beginScaleformMovieMethodOnFrontendHeader == null) fn__beginScaleformMovieMethodOnFrontendHeader = (delegate* unmanaged[Cdecl]) funcTable[0xB9449845F73F5E9CUL]; var success = false; - var ptr_methodName = _methodName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_methodName); + var ptr_methodName = MemoryUtils.StringToHGlobalUtf8(_methodName); var result = fn__beginScaleformMovieMethodOnFrontendHeader(&success, ptr_methodName); - if (ptr_methodName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_methodName); + Marshal.FreeHGlobal(ptr_methodName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -37566,8 +37553,8 @@ public string GetScaleformMovieMethodReturnValueString(int _methodReturn) var success = false; var result = fn__getScaleformMovieMethodReturnValueString(&success, _methodReturn); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -37607,9 +37594,9 @@ public void BeginTextCommandScaleformString(string _componentType) unsafe { if (fn__beginTextCommandScaleformString == null) fn__beginTextCommandScaleformString = (delegate* unmanaged[Cdecl]) funcTable[0x80338406F3475E55UL]; var success = false; - var ptr_componentType = _componentType == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_componentType); + var ptr_componentType = MemoryUtils.StringToHGlobalUtf8(_componentType); fn__beginTextCommandScaleformString(&success, ptr_componentType); - if (ptr_componentType != IntPtr.Zero) Marshal.FreeHGlobal(ptr_componentType); + Marshal.FreeHGlobal(ptr_componentType); if (!success) throw new Exception("Native execution failed"); } } @@ -37639,9 +37626,9 @@ public void ScaleformMovieMethodAddParamLiteralString(string _string) unsafe { if (fn__scaleformMovieMethodAddParamLiteralString == null) fn__scaleformMovieMethodAddParamLiteralString = (delegate* unmanaged[Cdecl]) funcTable[0x77FE3402004CD1B0UL]; var success = false; - var ptr_string = _string == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_string); + var ptr_string = MemoryUtils.StringToHGlobalUtf8(_string); fn__scaleformMovieMethodAddParamLiteralString(&success, ptr_string); - if (ptr_string != IntPtr.Zero) Marshal.FreeHGlobal(ptr_string); + Marshal.FreeHGlobal(ptr_string); if (!success) throw new Exception("Native execution failed"); } } @@ -37651,9 +37638,9 @@ public void ScaleformMovieMethodAddParamTextureNameString(string _string) unsafe { if (fn__scaleformMovieMethodAddParamTextureNameString == null) fn__scaleformMovieMethodAddParamTextureNameString = (delegate* unmanaged[Cdecl]) funcTable[0xBA7148484BD90365UL]; var success = false; - var ptr_string = _string == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_string); + var ptr_string = MemoryUtils.StringToHGlobalUtf8(_string); fn__scaleformMovieMethodAddParamTextureNameString(&success, ptr_string); - if (ptr_string != IntPtr.Zero) Marshal.FreeHGlobal(ptr_string); + Marshal.FreeHGlobal(ptr_string); if (!success) throw new Exception("Native execution failed"); } } @@ -37663,9 +37650,9 @@ public void ScaleformMovieMethodAddParamPlayerNameString(string _string) unsafe { if (fn__scaleformMovieMethodAddParamPlayerNameString == null) fn__scaleformMovieMethodAddParamPlayerNameString = (delegate* unmanaged[Cdecl]) funcTable[0xE83A3E3557A56640UL]; var success = false; - var ptr_string = _string == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_string); + var ptr_string = MemoryUtils.StringToHGlobalUtf8(_string); fn__scaleformMovieMethodAddParamPlayerNameString(&success, ptr_string); - if (ptr_string != IntPtr.Zero) Marshal.FreeHGlobal(ptr_string); + Marshal.FreeHGlobal(ptr_string); if (!success) throw new Exception("Native execution failed"); } } @@ -37790,9 +37777,9 @@ public void SetTvChannelPlaylist(int _tvChannel, string _playlistName, bool _res unsafe { if (fn__setTvChannelPlaylist == null) fn__setTvChannelPlaylist = (delegate* unmanaged[Cdecl]) funcTable[0xF7B38B8305F1FE8BUL]; var success = false; - var ptr_playlistName = _playlistName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_playlistName); + var ptr_playlistName = MemoryUtils.StringToHGlobalUtf8(_playlistName); fn__setTvChannelPlaylist(&success, _tvChannel, ptr_playlistName, (byte) (_restart ? 1 : 0)); - if (ptr_playlistName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_playlistName); + Marshal.FreeHGlobal(ptr_playlistName); if (!success) throw new Exception("Native execution failed"); } } @@ -37802,9 +37789,9 @@ public void SetTvChannelPlaylistAtHour(int _tvChannel, string _playlistName, int unsafe { if (fn__setTvChannelPlaylistAtHour == null) fn__setTvChannelPlaylistAtHour = (delegate* unmanaged[Cdecl]) funcTable[0x2201C576FACAEBE8UL]; var success = false; - var ptr_playlistName = _playlistName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_playlistName); + var ptr_playlistName = MemoryUtils.StringToHGlobalUtf8(_playlistName); fn__setTvChannelPlaylistAtHour(&success, _tvChannel, ptr_playlistName, _hour); - if (ptr_playlistName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_playlistName); + Marshal.FreeHGlobal(ptr_playlistName); if (!success) throw new Exception("Native execution failed"); } } @@ -37898,23 +37885,23 @@ public bool Ui3dscenePushPreset(string _presetName) unsafe { if (fn__ui3dscenePushPreset == null) fn__ui3dscenePushPreset = (delegate* unmanaged[Cdecl]) funcTable[0xF1CEA8A4198D8E9AUL]; var success = false; - var ptr_presetName = _presetName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_presetName); + var ptr_presetName = MemoryUtils.StringToHGlobalUtf8(_presetName); var result = fn__ui3dscenePushPreset(&success, ptr_presetName); - if (ptr_presetName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_presetName); + Marshal.FreeHGlobal(ptr_presetName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } - public bool Ui3dsceneAssignPedToSlot(string presetName, IPlayer ped, int p2, float posX, float posY, float posZ) => Ui3dsceneAssignPedToSlot(presetName, ped.ScriptId, p2, posX, posY, posZ); - public bool Ui3dsceneAssignPedToSlot(string _presetName, int _ped, int _p2, float _posX, float _posY, float _posZ) + public bool Ui3dsceneAssignPedToSlot(string presetName, IPlayer ped, int slot, float posX, float posY, float posZ) => Ui3dsceneAssignPedToSlot(presetName, ped.ScriptId, slot, posX, posY, posZ); + public bool Ui3dsceneAssignPedToSlot(string _presetName, uint _ped, int _slot, float _posX, float _posY, float _posZ) { unsafe { - if (fn__ui3dsceneAssignPedToSlot == null) fn__ui3dsceneAssignPedToSlot = (delegate* unmanaged[Cdecl]) funcTable[0x98C4FE6EC34154CAUL]; + if (fn__ui3dsceneAssignPedToSlot == null) fn__ui3dsceneAssignPedToSlot = (delegate* unmanaged[Cdecl]) funcTable[0x98C4FE6EC34154CAUL]; var success = false; - var ptr_presetName = _presetName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_presetName); - var result = fn__ui3dsceneAssignPedToSlot(&success, ptr_presetName, _ped, _p2, _posX, _posY, _posZ); - if (ptr_presetName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_presetName); + var ptr_presetName = MemoryUtils.StringToHGlobalUtf8(_presetName); + var result = fn__ui3dsceneAssignPedToSlot(&success, ptr_presetName, _ped, _slot, _posX, _posY, _posZ); + Marshal.FreeHGlobal(ptr_presetName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -37975,9 +37962,9 @@ public void AnimpostfxPlay(string _effectName, int _duration, bool _looped) unsafe { if (fn__animpostfxPlay == null) fn__animpostfxPlay = (delegate* unmanaged[Cdecl]) funcTable[0x2206BF9A37B7F724UL]; var success = false; - var ptr_effectName = _effectName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_effectName); + var ptr_effectName = MemoryUtils.StringToHGlobalUtf8(_effectName); fn__animpostfxPlay(&success, ptr_effectName, _duration, (byte) (_looped ? 1 : 0)); - if (ptr_effectName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_effectName); + Marshal.FreeHGlobal(ptr_effectName); if (!success) throw new Exception("Native execution failed"); } } @@ -37987,9 +37974,9 @@ public void AnimpostfxStop(string _effectName) unsafe { if (fn__animpostfxStop == null) fn__animpostfxStop = (delegate* unmanaged[Cdecl]) funcTable[0x068E835A1D0DC0E3UL]; var success = false; - var ptr_effectName = _effectName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_effectName); + var ptr_effectName = MemoryUtils.StringToHGlobalUtf8(_effectName); fn__animpostfxStop(&success, ptr_effectName); - if (ptr_effectName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_effectName); + Marshal.FreeHGlobal(ptr_effectName); if (!success) throw new Exception("Native execution failed"); } } @@ -37999,9 +37986,9 @@ public float AnimpostfxGetCurrentTime(string _effectName) unsafe { if (fn__animpostfxGetCurrentTime == null) fn__animpostfxGetCurrentTime = (delegate* unmanaged[Cdecl]) funcTable[0xE35B38A27E8E7179UL]; var success = false; - var ptr_effectName = _effectName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_effectName); + var ptr_effectName = MemoryUtils.StringToHGlobalUtf8(_effectName); var result = fn__animpostfxGetCurrentTime(&success, ptr_effectName); - if (ptr_effectName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_effectName); + Marshal.FreeHGlobal(ptr_effectName); if (!success) throw new Exception("Native execution failed"); return result; } @@ -38012,9 +37999,9 @@ public bool AnimpostfxIsRunning(string _effectName) unsafe { if (fn__animpostfxIsRunning == null) fn__animpostfxIsRunning = (delegate* unmanaged[Cdecl]) funcTable[0x36AD3E690DA5ACEBUL]; var success = false; - var ptr_effectName = _effectName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_effectName); + var ptr_effectName = MemoryUtils.StringToHGlobalUtf8(_effectName); var result = fn__animpostfxIsRunning(&success, ptr_effectName); - if (ptr_effectName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_effectName); + Marshal.FreeHGlobal(ptr_effectName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -38035,31 +38022,31 @@ public void AnimpostfxStopAndFlushRequests(string _effectName) unsafe { if (fn__animpostfxStopAndFlushRequests == null) fn__animpostfxStopAndFlushRequests = (delegate* unmanaged[Cdecl]) funcTable[0xD2209BE128B5418CUL]; var success = false; - var ptr_effectName = _effectName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_effectName); + var ptr_effectName = MemoryUtils.StringToHGlobalUtf8(_effectName); fn__animpostfxStopAndFlushRequests(&success, ptr_effectName); - if (ptr_effectName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_effectName); + Marshal.FreeHGlobal(ptr_effectName); if (!success) throw new Exception("Native execution failed"); } } public void PlayPedRingtone(string ringtoneName, IPlayer ped, bool p2) => PlayPedRingtone(ringtoneName, ped.ScriptId, p2); - public void PlayPedRingtone(string _ringtoneName, int _ped, bool _p2) + public void PlayPedRingtone(string _ringtoneName, uint _ped, bool _p2) { unsafe { - if (fn__playPedRingtone == null) fn__playPedRingtone = (delegate* unmanaged[Cdecl]) funcTable[0xF9E56683CA8E11A5UL]; + if (fn__playPedRingtone == null) fn__playPedRingtone = (delegate* unmanaged[Cdecl]) funcTable[0xF9E56683CA8E11A5UL]; var success = false; - var ptr_ringtoneName = _ringtoneName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_ringtoneName); + var ptr_ringtoneName = MemoryUtils.StringToHGlobalUtf8(_ringtoneName); fn__playPedRingtone(&success, ptr_ringtoneName, _ped, (byte) (_p2 ? 1 : 0)); - if (ptr_ringtoneName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_ringtoneName); + Marshal.FreeHGlobal(ptr_ringtoneName); if (!success) throw new Exception("Native execution failed"); } } public bool IsPedRingtonePlaying(IPlayer ped) => IsPedRingtonePlaying(ped.ScriptId); - public bool IsPedRingtonePlaying(int _ped) + public bool IsPedRingtonePlaying(uint _ped) { unsafe { - if (fn__isPedRingtonePlaying == null) fn__isPedRingtonePlaying = (delegate* unmanaged[Cdecl]) funcTable[0x1E8E5E20937E3137UL]; + if (fn__isPedRingtonePlaying == null) fn__isPedRingtonePlaying = (delegate* unmanaged[Cdecl]) funcTable[0x1E8E5E20937E3137UL]; var success = false; var result = fn__isPedRingtonePlaying(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -38068,10 +38055,10 @@ public bool IsPedRingtonePlaying(int _ped) } public void StopPedRingtone(IPlayer ped) => StopPedRingtone(ped.ScriptId); - public void StopPedRingtone(int _ped) + public void StopPedRingtone(uint _ped) { unsafe { - if (fn__stopPedRingtone == null) fn__stopPedRingtone = (delegate* unmanaged[Cdecl]) funcTable[0x6C5AE23EFA885092UL]; + if (fn__stopPedRingtone == null) fn__stopPedRingtone = (delegate* unmanaged[Cdecl]) funcTable[0x6C5AE23EFA885092UL]; var success = false; fn__stopPedRingtone(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -38115,24 +38102,24 @@ public void AddLineToConversation(int _index, string _p1, string _p2, int _p3, i unsafe { if (fn__addLineToConversation == null) fn__addLineToConversation = (delegate* unmanaged[Cdecl]) funcTable[0xC5EF963405593646UL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); fn__addLineToConversation(&success, _index, ptr_p1, ptr_p2, _p3, _p4, (byte) (_p5 ? 1 : 0), (byte) (_p6 ? 1 : 0), (byte) (_p7 ? 1 : 0), (byte) (_p8 ? 1 : 0), _p9, (byte) (_p10 ? 1 : 0), (byte) (_p11 ? 1 : 0), (byte) (_p12 ? 1 : 0)); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p2); if (!success) throw new Exception("Native execution failed"); } } public void AddPedToConversation(int index, IPlayer ped, string p2) => AddPedToConversation(index, ped.ScriptId, p2); - public void AddPedToConversation(int _index, int _ped, string _p2) + public void AddPedToConversation(int _index, uint _ped, string _p2) { unsafe { - if (fn__addPedToConversation == null) fn__addPedToConversation = (delegate* unmanaged[Cdecl]) funcTable[0x95D9F4BC443956E7UL]; + if (fn__addPedToConversation == null) fn__addPedToConversation = (delegate* unmanaged[Cdecl]) funcTable[0x95D9F4BC443956E7UL]; var success = false; - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); fn__addPedToConversation(&success, _index, _ped, ptr_p2); - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p2); if (!success) throw new Exception("Native execution failed"); } } @@ -38148,10 +38135,10 @@ public void SetPositionForNullConvPed(int _p0, float _p1, float _p2, float _p3) } public void SetEntityForNullConvPed(int p0, IEntity entity) => SetEntityForNullConvPed(p0, entity.ScriptId); - public void SetEntityForNullConvPed(int _p0, int _entity) + public void SetEntityForNullConvPed(int _p0, uint _entity) { unsafe { - if (fn__setEntityForNullConvPed == null) fn__setEntityForNullConvPed = (delegate* unmanaged[Cdecl]) funcTable[0x892B6AB8F33606F5UL]; + if (fn__setEntityForNullConvPed == null) fn__setEntityForNullConvPed = (delegate* unmanaged[Cdecl]) funcTable[0x892B6AB8F33606F5UL]; var success = false; fn__setEntityForNullConvPed(&success, _p0, _entity); if (!success) throw new Exception("Native execution failed"); @@ -38324,31 +38311,31 @@ public void SkipToNextScriptedConversationLine() } public void InterruptConversation(IPlayer ped, string voiceline, string speaker) => InterruptConversation(ped.ScriptId, voiceline, speaker); - public void InterruptConversation(int _ped, string _voiceline, string _speaker) + public void InterruptConversation(uint _ped, string _voiceline, string _speaker) { unsafe { - if (fn__interruptConversation == null) fn__interruptConversation = (delegate* unmanaged[Cdecl]) funcTable[0xA018A12E5C5C2FA6UL]; + if (fn__interruptConversation == null) fn__interruptConversation = (delegate* unmanaged[Cdecl]) funcTable[0xA018A12E5C5C2FA6UL]; var success = false; - var ptr_voiceline = _voiceline == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_voiceline); - var ptr_speaker = _speaker == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_speaker); + var ptr_voiceline = MemoryUtils.StringToHGlobalUtf8(_voiceline); + var ptr_speaker = MemoryUtils.StringToHGlobalUtf8(_speaker); fn__interruptConversation(&success, _ped, ptr_voiceline, ptr_speaker); - if (ptr_voiceline != IntPtr.Zero) Marshal.FreeHGlobal(ptr_voiceline); - if (ptr_speaker != IntPtr.Zero) Marshal.FreeHGlobal(ptr_speaker); + Marshal.FreeHGlobal(ptr_voiceline); + Marshal.FreeHGlobal(ptr_speaker); if (!success) throw new Exception("Native execution failed"); } } public void InterruptConversationAndPause(IPlayer ped, string p1, string speaker) => InterruptConversationAndPause(ped.ScriptId, p1, speaker); - public void InterruptConversationAndPause(int _ped, string _p1, string _speaker) + public void InterruptConversationAndPause(uint _ped, string _p1, string _speaker) { unsafe { - if (fn__interruptConversationAndPause == null) fn__interruptConversationAndPause = (delegate* unmanaged[Cdecl]) funcTable[0x8A694D7A68F8DC38UL]; + if (fn__interruptConversationAndPause == null) fn__interruptConversationAndPause = (delegate* unmanaged[Cdecl]) funcTable[0x8A694D7A68F8DC38UL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); - var ptr_speaker = _speaker == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_speaker); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_speaker = MemoryUtils.StringToHGlobalUtf8(_speaker); fn__interruptConversationAndPause(&success, _ped, ptr_p1, ptr_speaker); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); - if (ptr_speaker != IntPtr.Zero) Marshal.FreeHGlobal(ptr_speaker); + Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_speaker); if (!success) throw new Exception("Native execution failed"); } } @@ -38401,9 +38388,9 @@ public bool RequestMissionAudioBank(string _audioBank, bool _p1, int _p2) unsafe { if (fn__requestMissionAudioBank == null) fn__requestMissionAudioBank = (delegate* unmanaged[Cdecl]) funcTable[0x7345BDD95E62E0F2UL]; var success = false; - var ptr_audioBank = _audioBank == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioBank); + var ptr_audioBank = MemoryUtils.StringToHGlobalUtf8(_audioBank); var result = fn__requestMissionAudioBank(&success, ptr_audioBank, (byte) (_p1 ? 1 : 0), _p2); - if (ptr_audioBank != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioBank); + Marshal.FreeHGlobal(ptr_audioBank); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -38414,9 +38401,9 @@ public bool RequestAmbientAudioBank(string _audioBank, bool _p1, int _p2) unsafe { if (fn__requestAmbientAudioBank == null) fn__requestAmbientAudioBank = (delegate* unmanaged[Cdecl]) funcTable[0xFE02FFBED8CA9D99UL]; var success = false; - var ptr_audioBank = _audioBank == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioBank); + var ptr_audioBank = MemoryUtils.StringToHGlobalUtf8(_audioBank); var result = fn__requestAmbientAudioBank(&success, ptr_audioBank, (byte) (_p1 ? 1 : 0), _p2); - if (ptr_audioBank != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioBank); + Marshal.FreeHGlobal(ptr_audioBank); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -38427,9 +38414,9 @@ public bool RequestScriptAudioBank(string _audioBank, bool _p1, int _p2) unsafe { if (fn__requestScriptAudioBank == null) fn__requestScriptAudioBank = (delegate* unmanaged[Cdecl]) funcTable[0x2F844A8B08D76685UL]; var success = false; - var ptr_audioBank = _audioBank == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioBank); + var ptr_audioBank = MemoryUtils.StringToHGlobalUtf8(_audioBank); var result = fn__requestScriptAudioBank(&success, ptr_audioBank, (byte) (_p1 ? 1 : 0), _p2); - if (ptr_audioBank != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioBank); + Marshal.FreeHGlobal(ptr_audioBank); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -38440,9 +38427,9 @@ public bool HintMissionAudioBank(string _audioBank, bool _p1, int _p2) unsafe { if (fn__hintMissionAudioBank == null) fn__hintMissionAudioBank = (delegate* unmanaged[Cdecl]) funcTable[0x40763EA7B9B783E7UL]; var success = false; - var ptr_audioBank = _audioBank == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioBank); + var ptr_audioBank = MemoryUtils.StringToHGlobalUtf8(_audioBank); var result = fn__hintMissionAudioBank(&success, ptr_audioBank, (byte) (_p1 ? 1 : 0), _p2); - if (ptr_audioBank != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioBank); + Marshal.FreeHGlobal(ptr_audioBank); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -38453,9 +38440,9 @@ public bool HintAmbientAudioBank(string _audioBank, bool _p1, int _p2) unsafe { if (fn__hintAmbientAudioBank == null) fn__hintAmbientAudioBank = (delegate* unmanaged[Cdecl]) funcTable[0x8F8C0E370AE62F5CUL]; var success = false; - var ptr_audioBank = _audioBank == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioBank); + var ptr_audioBank = MemoryUtils.StringToHGlobalUtf8(_audioBank); var result = fn__hintAmbientAudioBank(&success, ptr_audioBank, (byte) (_p1 ? 1 : 0), _p2); - if (ptr_audioBank != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioBank); + Marshal.FreeHGlobal(ptr_audioBank); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -38466,9 +38453,9 @@ public bool HintScriptAudioBank(string _audioBank, bool _p1, int _p2) unsafe { if (fn__hintScriptAudioBank == null) fn__hintScriptAudioBank = (delegate* unmanaged[Cdecl]) funcTable[0xFB380A29641EC31AUL]; var success = false; - var ptr_audioBank = _audioBank == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioBank); + var ptr_audioBank = MemoryUtils.StringToHGlobalUtf8(_audioBank); var result = fn__hintScriptAudioBank(&success, ptr_audioBank, (byte) (_p1 ? 1 : 0), _p2); - if (ptr_audioBank != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioBank); + Marshal.FreeHGlobal(ptr_audioBank); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -38499,9 +38486,9 @@ public void ReleaseNamedScriptAudioBank(string _audioBank) unsafe { if (fn__releaseNamedScriptAudioBank == null) fn__releaseNamedScriptAudioBank = (delegate* unmanaged[Cdecl]) funcTable[0x77ED170667F50170UL]; var success = false; - var ptr_audioBank = _audioBank == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioBank); + var ptr_audioBank = MemoryUtils.StringToHGlobalUtf8(_audioBank); fn__releaseNamedScriptAudioBank(&success, ptr_audioBank); - if (ptr_audioBank != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioBank); + Marshal.FreeHGlobal(ptr_audioBank); if (!success) throw new Exception("Native execution failed"); } } @@ -38541,9 +38528,9 @@ public void UnhintNamedScriptAudioBank(string _audioBank) unsafe { if (fn__unhintNamedScriptAudioBank == null) fn__unhintNamedScriptAudioBank = (delegate* unmanaged[Cdecl]) funcTable[0x11579D940949C49EUL]; var success = false; - var ptr_audioBank = _audioBank == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioBank); + var ptr_audioBank = MemoryUtils.StringToHGlobalUtf8(_audioBank); fn__unhintNamedScriptAudioBank(&success, ptr_audioBank); - if (ptr_audioBank != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioBank); + Marshal.FreeHGlobal(ptr_audioBank); if (!success) throw new Exception("Native execution failed"); } } @@ -38574,11 +38561,11 @@ public void PlaySound(int _soundId, string _audioName, string _audioRef, bool _p unsafe { if (fn__playSound == null) fn__playSound = (delegate* unmanaged[Cdecl]) funcTable[0x7FF4944CC209192DUL]; var success = false; - var ptr_audioName = _audioName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioName); - var ptr_audioRef = _audioRef == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioRef); + var ptr_audioName = MemoryUtils.StringToHGlobalUtf8(_audioName); + var ptr_audioRef = MemoryUtils.StringToHGlobalUtf8(_audioRef); fn__playSound(&success, _soundId, ptr_audioName, ptr_audioRef, (byte) (_p3 ? 1 : 0), _p4, (byte) (_p5 ? 1 : 0)); - if (ptr_audioName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioName); - if (ptr_audioRef != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioRef); + Marshal.FreeHGlobal(ptr_audioName); + Marshal.FreeHGlobal(ptr_audioRef); if (!success) throw new Exception("Native execution failed"); } } @@ -38588,11 +38575,11 @@ public void PlaySoundFrontend(int _soundId, string _audioName, string _audioRef, unsafe { if (fn__playSoundFrontend == null) fn__playSoundFrontend = (delegate* unmanaged[Cdecl]) funcTable[0x67C540AA08E4A6F5UL]; var success = false; - var ptr_audioName = _audioName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioName); - var ptr_audioRef = _audioRef == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioRef); + var ptr_audioName = MemoryUtils.StringToHGlobalUtf8(_audioName); + var ptr_audioRef = MemoryUtils.StringToHGlobalUtf8(_audioRef); fn__playSoundFrontend(&success, _soundId, ptr_audioName, ptr_audioRef, (byte) (_p3 ? 1 : 0)); - if (ptr_audioName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioName); - if (ptr_audioRef != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioRef); + Marshal.FreeHGlobal(ptr_audioName); + Marshal.FreeHGlobal(ptr_audioRef); if (!success) throw new Exception("Native execution failed"); } } @@ -38602,35 +38589,35 @@ public void PlayDeferredSoundFrontend(string _soundName, string _soundsetName) unsafe { if (fn__playDeferredSoundFrontend == null) fn__playDeferredSoundFrontend = (delegate* unmanaged[Cdecl]) funcTable[0xCADA5A0D0702381EUL]; var success = false; - var ptr_soundName = _soundName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_soundName); - var ptr_soundsetName = _soundsetName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_soundsetName); + var ptr_soundName = MemoryUtils.StringToHGlobalUtf8(_soundName); + var ptr_soundsetName = MemoryUtils.StringToHGlobalUtf8(_soundsetName); fn__playDeferredSoundFrontend(&success, ptr_soundName, ptr_soundsetName); - if (ptr_soundName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_soundName); - if (ptr_soundsetName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_soundsetName); + Marshal.FreeHGlobal(ptr_soundName); + Marshal.FreeHGlobal(ptr_soundsetName); if (!success) throw new Exception("Native execution failed"); } } public void PlaySoundFromEntity(int soundId, string audioName, IEntity entity, string audioRef, bool isNetwork, int p5) => PlaySoundFromEntity(soundId, audioName, entity.ScriptId, audioRef, isNetwork, p5); - public void PlaySoundFromEntity(int _soundId, string _audioName, int _entity, string _audioRef, bool _isNetwork, int _p5) + public void PlaySoundFromEntity(int _soundId, string _audioName, uint _entity, string _audioRef, bool _isNetwork, int _p5) { unsafe { - if (fn__playSoundFromEntity == null) fn__playSoundFromEntity = (delegate* unmanaged[Cdecl]) funcTable[0xE65F427EB70AB1EDUL]; + if (fn__playSoundFromEntity == null) fn__playSoundFromEntity = (delegate* unmanaged[Cdecl]) funcTable[0xE65F427EB70AB1EDUL]; var success = false; - var ptr_audioName = _audioName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioName); - var ptr_audioRef = _audioRef == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioRef); + var ptr_audioName = MemoryUtils.StringToHGlobalUtf8(_audioName); + var ptr_audioRef = MemoryUtils.StringToHGlobalUtf8(_audioRef); fn__playSoundFromEntity(&success, _soundId, ptr_audioName, _entity, ptr_audioRef, (byte) (_isNetwork ? 1 : 0), _p5); - if (ptr_audioName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioName); - if (ptr_audioRef != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioRef); + Marshal.FreeHGlobal(ptr_audioName); + Marshal.FreeHGlobal(ptr_audioRef); if (!success) throw new Exception("Native execution failed"); } } public void PlaySoundFromEntityHash(int soundId, uint model, IEntity entity, uint soundSetHash, int p4, int p5) => PlaySoundFromEntityHash(soundId, model, entity.ScriptId, soundSetHash, p4, p5); - public void PlaySoundFromEntityHash(int _soundId, uint _model, int _entity, uint _soundSetHash, int _p4, int _p5) + public void PlaySoundFromEntityHash(int _soundId, uint _model, uint _entity, uint _soundSetHash, int _p4, int _p5) { unsafe { - if (fn__playSoundFromEntityHash == null) fn__playSoundFromEntityHash = (delegate* unmanaged[Cdecl]) funcTable[0x5B9853296731E88DUL]; + if (fn__playSoundFromEntityHash == null) fn__playSoundFromEntityHash = (delegate* unmanaged[Cdecl]) funcTable[0x5B9853296731E88DUL]; var success = false; fn__playSoundFromEntityHash(&success, _soundId, _model, _entity, _soundSetHash, _p4, _p5); if (!success) throw new Exception("Native execution failed"); @@ -38642,11 +38629,11 @@ public void PlaySoundFromCoord(int _soundId, string _audioName, float _x, float unsafe { if (fn__playSoundFromCoord == null) fn__playSoundFromCoord = (delegate* unmanaged[Cdecl]) funcTable[0x8D8686B622B88120UL]; var success = false; - var ptr_audioName = _audioName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioName); - var ptr_audioRef = _audioRef == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioRef); + var ptr_audioName = MemoryUtils.StringToHGlobalUtf8(_audioName); + var ptr_audioRef = MemoryUtils.StringToHGlobalUtf8(_audioRef); fn__playSoundFromCoord(&success, _soundId, ptr_audioName, _x, _y, _z, ptr_audioRef, (byte) (_isNetwork ? 1 : 0), _range, (byte) (_p8 ? 1 : 0)); - if (ptr_audioName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioName); - if (ptr_audioRef != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioRef); + Marshal.FreeHGlobal(ptr_audioName); + Marshal.FreeHGlobal(ptr_audioRef); if (!success) throw new Exception("Native execution failed"); } } @@ -38698,9 +38685,9 @@ public void SetVariableOnSound(int _soundId, string _unkVariable, float _p2) unsafe { if (fn__setVariableOnSound == null) fn__setVariableOnSound = (delegate* unmanaged[Cdecl]) funcTable[0xAD6B3148A78AE9B6UL]; var success = false; - var ptr_unkVariable = _unkVariable == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_unkVariable); + var ptr_unkVariable = MemoryUtils.StringToHGlobalUtf8(_unkVariable); fn__setVariableOnSound(&success, _soundId, ptr_unkVariable, _p2); - if (ptr_unkVariable != IntPtr.Zero) Marshal.FreeHGlobal(ptr_unkVariable); + Marshal.FreeHGlobal(ptr_unkVariable); if (!success) throw new Exception("Native execution failed"); } } @@ -38710,9 +38697,9 @@ public void SetVariableOnStream(string _unkVariable, float _p1) unsafe { if (fn__setVariableOnStream == null) fn__setVariableOnStream = (delegate* unmanaged[Cdecl]) funcTable[0x2F9D3834AEB9EF79UL]; var success = false; - var ptr_unkVariable = _unkVariable == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_unkVariable); + var ptr_unkVariable = MemoryUtils.StringToHGlobalUtf8(_unkVariable); fn__setVariableOnStream(&success, ptr_unkVariable, _p1); - if (ptr_unkVariable != IntPtr.Zero) Marshal.FreeHGlobal(ptr_unkVariable); + Marshal.FreeHGlobal(ptr_unkVariable); if (!success) throw new Exception("Native execution failed"); } } @@ -38722,9 +38709,9 @@ public void OverrideUnderwaterStream(string _p0, bool _p1) unsafe { if (fn__overrideUnderwaterStream == null) fn__overrideUnderwaterStream = (delegate* unmanaged[Cdecl]) funcTable[0xF2A9CDABCEA04BD6UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__overrideUnderwaterStream(&success, ptr_p0, (byte) (_p1 ? 1 : 0)); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -38734,9 +38721,9 @@ public void SetVariableOnUnderWaterStream(string _unkVariableName, float _value) unsafe { if (fn__setVariableOnUnderWaterStream == null) fn__setVariableOnUnderWaterStream = (delegate* unmanaged[Cdecl]) funcTable[0x733ADF241531E5C2UL]; var success = false; - var ptr_unkVariableName = _unkVariableName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_unkVariableName); + var ptr_unkVariableName = MemoryUtils.StringToHGlobalUtf8(_unkVariableName); fn__setVariableOnUnderWaterStream(&success, ptr_unkVariableName, _value); - if (ptr_unkVariableName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_unkVariableName); + Marshal.FreeHGlobal(ptr_unkVariableName); if (!success) throw new Exception("Native execution failed"); } } @@ -38753,48 +38740,48 @@ public bool HasSoundFinished(int _soundId) } public void PlayPedAmbientSpeechNative(IPlayer ped, string speechName, string speechParam, int p3) => PlayPedAmbientSpeechNative(ped.ScriptId, speechName, speechParam, p3); - public void PlayPedAmbientSpeechNative(int _ped, string _speechName, string _speechParam, int _p3) + public void PlayPedAmbientSpeechNative(uint _ped, string _speechName, string _speechParam, int _p3) { unsafe { - if (fn__playPedAmbientSpeechNative == null) fn__playPedAmbientSpeechNative = (delegate* unmanaged[Cdecl]) funcTable[0x8E04FEDD28D42462UL]; + if (fn__playPedAmbientSpeechNative == null) fn__playPedAmbientSpeechNative = (delegate* unmanaged[Cdecl]) funcTable[0x8E04FEDD28D42462UL]; var success = false; - var ptr_speechName = _speechName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_speechName); - var ptr_speechParam = _speechParam == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_speechParam); + var ptr_speechName = MemoryUtils.StringToHGlobalUtf8(_speechName); + var ptr_speechParam = MemoryUtils.StringToHGlobalUtf8(_speechParam); fn__playPedAmbientSpeechNative(&success, _ped, ptr_speechName, ptr_speechParam, _p3); - if (ptr_speechName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_speechName); - if (ptr_speechParam != IntPtr.Zero) Marshal.FreeHGlobal(ptr_speechParam); + Marshal.FreeHGlobal(ptr_speechName); + Marshal.FreeHGlobal(ptr_speechParam); if (!success) throw new Exception("Native execution failed"); } } public void PlayPedAmbientSpeechAndCloneNative(IPlayer ped, string speechName, string speechParam, int p3) => PlayPedAmbientSpeechAndCloneNative(ped.ScriptId, speechName, speechParam, p3); - public void PlayPedAmbientSpeechAndCloneNative(int _ped, string _speechName, string _speechParam, int _p3) + public void PlayPedAmbientSpeechAndCloneNative(uint _ped, string _speechName, string _speechParam, int _p3) { unsafe { - if (fn__playPedAmbientSpeechAndCloneNative == null) fn__playPedAmbientSpeechAndCloneNative = (delegate* unmanaged[Cdecl]) funcTable[0xC6941B4A3A8FBBB9UL]; + if (fn__playPedAmbientSpeechAndCloneNative == null) fn__playPedAmbientSpeechAndCloneNative = (delegate* unmanaged[Cdecl]) funcTable[0xC6941B4A3A8FBBB9UL]; var success = false; - var ptr_speechName = _speechName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_speechName); - var ptr_speechParam = _speechParam == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_speechParam); + var ptr_speechName = MemoryUtils.StringToHGlobalUtf8(_speechName); + var ptr_speechParam = MemoryUtils.StringToHGlobalUtf8(_speechParam); fn__playPedAmbientSpeechAndCloneNative(&success, _ped, ptr_speechName, ptr_speechParam, _p3); - if (ptr_speechName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_speechName); - if (ptr_speechParam != IntPtr.Zero) Marshal.FreeHGlobal(ptr_speechParam); + Marshal.FreeHGlobal(ptr_speechName); + Marshal.FreeHGlobal(ptr_speechParam); if (!success) throw new Exception("Native execution failed"); } } public void PlayPedAmbientSpeechWithVoiceNative(IPlayer ped, string speechName, string voiceName, string speechParam, bool p4) => PlayPedAmbientSpeechWithVoiceNative(ped.ScriptId, speechName, voiceName, speechParam, p4); - public void PlayPedAmbientSpeechWithVoiceNative(int _ped, string _speechName, string _voiceName, string _speechParam, bool _p4) + public void PlayPedAmbientSpeechWithVoiceNative(uint _ped, string _speechName, string _voiceName, string _speechParam, bool _p4) { unsafe { - if (fn__playPedAmbientSpeechWithVoiceNative == null) fn__playPedAmbientSpeechWithVoiceNative = (delegate* unmanaged[Cdecl]) funcTable[0x3523634255FC3318UL]; + if (fn__playPedAmbientSpeechWithVoiceNative == null) fn__playPedAmbientSpeechWithVoiceNative = (delegate* unmanaged[Cdecl]) funcTable[0x3523634255FC3318UL]; var success = false; - var ptr_speechName = _speechName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_speechName); - var ptr_voiceName = _voiceName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_voiceName); - var ptr_speechParam = _speechParam == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_speechParam); + var ptr_speechName = MemoryUtils.StringToHGlobalUtf8(_speechName); + var ptr_voiceName = MemoryUtils.StringToHGlobalUtf8(_voiceName); + var ptr_speechParam = MemoryUtils.StringToHGlobalUtf8(_speechParam); fn__playPedAmbientSpeechWithVoiceNative(&success, _ped, ptr_speechName, ptr_voiceName, ptr_speechParam, (byte) (_p4 ? 1 : 0)); - if (ptr_speechName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_speechName); - if (ptr_voiceName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_voiceName); - if (ptr_speechParam != IntPtr.Zero) Marshal.FreeHGlobal(ptr_speechParam); + Marshal.FreeHGlobal(ptr_speechName); + Marshal.FreeHGlobal(ptr_voiceName); + Marshal.FreeHGlobal(ptr_speechParam); if (!success) throw new Exception("Native execution failed"); } } @@ -38804,13 +38791,13 @@ public void PlayAmbientSpeechFromPositionNative(string _speechName, string _voic unsafe { if (fn__playAmbientSpeechFromPositionNative == null) fn__playAmbientSpeechFromPositionNative = (delegate* unmanaged[Cdecl]) funcTable[0xED640017ED337E45UL]; var success = false; - var ptr_speechName = _speechName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_speechName); - var ptr_voiceName = _voiceName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_voiceName); - var ptr_speechParam = _speechParam == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_speechParam); + var ptr_speechName = MemoryUtils.StringToHGlobalUtf8(_speechName); + var ptr_voiceName = MemoryUtils.StringToHGlobalUtf8(_voiceName); + var ptr_speechParam = MemoryUtils.StringToHGlobalUtf8(_speechParam); fn__playAmbientSpeechFromPositionNative(&success, ptr_speechName, ptr_voiceName, _x, _y, _z, ptr_speechParam); - if (ptr_speechName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_speechName); - if (ptr_voiceName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_voiceName); - if (ptr_speechParam != IntPtr.Zero) Marshal.FreeHGlobal(ptr_speechParam); + Marshal.FreeHGlobal(ptr_speechName); + Marshal.FreeHGlobal(ptr_voiceName); + Marshal.FreeHGlobal(ptr_speechParam); if (!success) throw new Exception("Native execution failed"); } } @@ -38820,9 +38807,9 @@ public void OverrideTrevorRage(string _voiceEffect) unsafe { if (fn__overrideTrevorRage == null) fn__overrideTrevorRage = (delegate* unmanaged[Cdecl]) funcTable[0x13AD665062541A7EUL]; var success = false; - var ptr_voiceEffect = _voiceEffect == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_voiceEffect); + var ptr_voiceEffect = MemoryUtils.StringToHGlobalUtf8(_voiceEffect); fn__overrideTrevorRage(&success, ptr_voiceEffect); - if (ptr_voiceEffect != IntPtr.Zero) Marshal.FreeHGlobal(ptr_voiceEffect); + Marshal.FreeHGlobal(ptr_voiceEffect); if (!success) throw new Exception("Native execution failed"); } } @@ -38838,10 +38825,10 @@ public void ResetTrevorRage() } public void SetPlayerAngry(IPlayer ped, bool toggle) => SetPlayerAngry(ped.ScriptId, toggle); - public void SetPlayerAngry(int _ped, bool _toggle) + public void SetPlayerAngry(uint _ped, bool _toggle) { unsafe { - if (fn__setPlayerAngry == null) fn__setPlayerAngry = (delegate* unmanaged[Cdecl]) funcTable[0xEA241BB04110F091UL]; + if (fn__setPlayerAngry == null) fn__setPlayerAngry = (delegate* unmanaged[Cdecl]) funcTable[0xEA241BB04110F091UL]; var success = false; fn__setPlayerAngry(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -38849,10 +38836,10 @@ public void SetPlayerAngry(int _ped, bool _toggle) } public void PlayPain(IPlayer ped, int painID, int p1, int p3) => PlayPain(ped.ScriptId, painID, p1, p3); - public void PlayPain(int _ped, int _painID, int _p1, int _p3) + public void PlayPain(uint _ped, int _painID, int _p1, int _p3) { unsafe { - if (fn__playPain == null) fn__playPain = (delegate* unmanaged[Cdecl]) funcTable[0xBC9AE166038A5CECUL]; + if (fn__playPain == null) fn__playPain = (delegate* unmanaged[Cdecl]) funcTable[0xBC9AE166038A5CECUL]; var success = false; fn__playPain(&success, _ped, _painID, _p1, _p3); if (!success) throw new Exception("Native execution failed"); @@ -38874,9 +38861,9 @@ public void ActivateAudioSlowmoMode(string _mode) unsafe { if (fn__activateAudioSlowmoMode == null) fn__activateAudioSlowmoMode = (delegate* unmanaged[Cdecl]) funcTable[0xD01005D2BA2EB778UL]; var success = false; - var ptr_mode = _mode == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_mode); + var ptr_mode = MemoryUtils.StringToHGlobalUtf8(_mode); fn__activateAudioSlowmoMode(&success, ptr_mode); - if (ptr_mode != IntPtr.Zero) Marshal.FreeHGlobal(ptr_mode); + Marshal.FreeHGlobal(ptr_mode); if (!success) throw new Exception("Native execution failed"); } } @@ -38886,31 +38873,31 @@ public void DeactivateAudioSlowmoMode(string _mode) unsafe { if (fn__deactivateAudioSlowmoMode == null) fn__deactivateAudioSlowmoMode = (delegate* unmanaged[Cdecl]) funcTable[0xDDC635D5B3262C56UL]; var success = false; - var ptr_mode = _mode == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_mode); + var ptr_mode = MemoryUtils.StringToHGlobalUtf8(_mode); fn__deactivateAudioSlowmoMode(&success, ptr_mode); - if (ptr_mode != IntPtr.Zero) Marshal.FreeHGlobal(ptr_mode); + Marshal.FreeHGlobal(ptr_mode); if (!success) throw new Exception("Native execution failed"); } } public void SetAmbientVoiceName(IPlayer ped, string name) => SetAmbientVoiceName(ped.ScriptId, name); - public void SetAmbientVoiceName(int _ped, string _name) + public void SetAmbientVoiceName(uint _ped, string _name) { unsafe { - if (fn__setAmbientVoiceName == null) fn__setAmbientVoiceName = (delegate* unmanaged[Cdecl]) funcTable[0x6C8065A3B780185BUL]; + if (fn__setAmbientVoiceName == null) fn__setAmbientVoiceName = (delegate* unmanaged[Cdecl]) funcTable[0x6C8065A3B780185BUL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__setAmbientVoiceName(&success, _ped, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } public void SetAmbientVoiceNameHash(IPlayer ped, uint hash) => SetAmbientVoiceNameHash(ped.ScriptId, hash); - public void SetAmbientVoiceNameHash(int _ped, uint _hash) + public void SetAmbientVoiceNameHash(uint _ped, uint _hash) { unsafe { - if (fn__setAmbientVoiceNameHash == null) fn__setAmbientVoiceNameHash = (delegate* unmanaged[Cdecl]) funcTable[0x9A53DED9921DE990UL]; + if (fn__setAmbientVoiceNameHash == null) fn__setAmbientVoiceNameHash = (delegate* unmanaged[Cdecl]) funcTable[0x9A53DED9921DE990UL]; var success = false; fn__setAmbientVoiceNameHash(&success, _ped, _hash); if (!success) throw new Exception("Native execution failed"); @@ -38918,10 +38905,10 @@ public void SetAmbientVoiceNameHash(int _ped, uint _hash) } public uint GetAmbientVoiceNameHash(IPlayer ped) => GetAmbientVoiceNameHash(ped.ScriptId); - public uint GetAmbientVoiceNameHash(int _ped) + public uint GetAmbientVoiceNameHash(uint _ped) { unsafe { - if (fn__getAmbientVoiceNameHash == null) fn__getAmbientVoiceNameHash = (delegate* unmanaged[Cdecl]) funcTable[0x5E203DA2BA15D436UL]; + if (fn__getAmbientVoiceNameHash == null) fn__getAmbientVoiceNameHash = (delegate* unmanaged[Cdecl]) funcTable[0x5E203DA2BA15D436UL]; var success = false; var result = fn__getAmbientVoiceNameHash(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -38930,10 +38917,10 @@ public uint GetAmbientVoiceNameHash(int _ped) } public void SetPedVoiceFull(IPlayer ped) => SetPedVoiceFull(ped.ScriptId); - public void SetPedVoiceFull(int _ped) + public void SetPedVoiceFull(uint _ped) { unsafe { - if (fn__setPedVoiceFull == null) fn__setPedVoiceFull = (delegate* unmanaged[Cdecl]) funcTable[0x40CF0D12D142A9E8UL]; + if (fn__setPedVoiceFull == null) fn__setPedVoiceFull = (delegate* unmanaged[Cdecl]) funcTable[0x40CF0D12D142A9E8UL]; var success = false; fn__setPedVoiceFull(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -38941,10 +38928,10 @@ public void SetPedVoiceFull(int _ped) } public void SetPedRaceAndVoiceGroup(IPlayer ped, int p1, uint voiceGroup) => SetPedRaceAndVoiceGroup(ped.ScriptId, p1, voiceGroup); - public void SetPedRaceAndVoiceGroup(int _ped, int _p1, uint _voiceGroup) + public void SetPedRaceAndVoiceGroup(uint _ped, int _p1, uint _voiceGroup) { unsafe { - if (fn__setPedRaceAndVoiceGroup == null) fn__setPedRaceAndVoiceGroup = (delegate* unmanaged[Cdecl]) funcTable[0x1B7ABE26CBCBF8C7UL]; + if (fn__setPedRaceAndVoiceGroup == null) fn__setPedRaceAndVoiceGroup = (delegate* unmanaged[Cdecl]) funcTable[0x1B7ABE26CBCBF8C7UL]; var success = false; fn__setPedRaceAndVoiceGroup(&success, _ped, _p1, _voiceGroup); if (!success) throw new Exception("Native execution failed"); @@ -38952,10 +38939,10 @@ public void SetPedRaceAndVoiceGroup(int _ped, int _p1, uint _voiceGroup) } public void SetPedVoiceGroup(IPlayer ped, uint voiceGroupHash) => SetPedVoiceGroup(ped.ScriptId, voiceGroupHash); - public void SetPedVoiceGroup(int _ped, uint _voiceGroupHash) + public void SetPedVoiceGroup(uint _ped, uint _voiceGroupHash) { unsafe { - if (fn__setPedVoiceGroup == null) fn__setPedVoiceGroup = (delegate* unmanaged[Cdecl]) funcTable[0x7CDC8C3B89F661B3UL]; + if (fn__setPedVoiceGroup == null) fn__setPedVoiceGroup = (delegate* unmanaged[Cdecl]) funcTable[0x7CDC8C3B89F661B3UL]; var success = false; fn__setPedVoiceGroup(&success, _ped, _voiceGroupHash); if (!success) throw new Exception("Native execution failed"); @@ -38963,10 +38950,10 @@ public void SetPedVoiceGroup(int _ped, uint _voiceGroupHash) } public void SetPedVoiceGroupFromRaceToPvg(IPlayer ped, uint voiceGroupHash) => SetPedVoiceGroupFromRaceToPvg(ped.ScriptId, voiceGroupHash); - public void SetPedVoiceGroupFromRaceToPvg(int _ped, uint _voiceGroupHash) + public void SetPedVoiceGroupFromRaceToPvg(uint _ped, uint _voiceGroupHash) { unsafe { - if (fn__setPedVoiceGroupFromRaceToPvg == null) fn__setPedVoiceGroupFromRaceToPvg = (delegate* unmanaged[Cdecl]) funcTable[0x0BABC1345ABBFB16UL]; + if (fn__setPedVoiceGroupFromRaceToPvg == null) fn__setPedVoiceGroupFromRaceToPvg = (delegate* unmanaged[Cdecl]) funcTable[0x0BABC1345ABBFB16UL]; var success = false; fn__setPedVoiceGroupFromRaceToPvg(&success, _ped, _voiceGroupHash); if (!success) throw new Exception("Native execution failed"); @@ -38974,10 +38961,10 @@ public void SetPedVoiceGroupFromRaceToPvg(int _ped, uint _voiceGroupHash) } public void SetPedGender(IPlayer ped, bool p1) => SetPedGender(ped.ScriptId, p1); - public void SetPedGender(int _ped, bool _p1) + public void SetPedGender(uint _ped, bool _p1) { unsafe { - if (fn__setPedGender == null) fn__setPedGender = (delegate* unmanaged[Cdecl]) funcTable[0xA5342D390CDA41D6UL]; + if (fn__setPedGender == null) fn__setPedGender = (delegate* unmanaged[Cdecl]) funcTable[0xA5342D390CDA41D6UL]; var success = false; fn__setPedGender(&success, _ped, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -38985,10 +38972,10 @@ public void SetPedGender(int _ped, bool _p1) } public void StopCurrentPlayingSpeech(IPlayer ped) => StopCurrentPlayingSpeech(ped.ScriptId); - public void StopCurrentPlayingSpeech(int _ped) + public void StopCurrentPlayingSpeech(uint _ped) { unsafe { - if (fn__stopCurrentPlayingSpeech == null) fn__stopCurrentPlayingSpeech = (delegate* unmanaged[Cdecl]) funcTable[0x7A73D05A607734C7UL]; + if (fn__stopCurrentPlayingSpeech == null) fn__stopCurrentPlayingSpeech = (delegate* unmanaged[Cdecl]) funcTable[0x7A73D05A607734C7UL]; var success = false; fn__stopCurrentPlayingSpeech(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -38996,10 +38983,10 @@ public void StopCurrentPlayingSpeech(int _ped) } public void StopCurrentPlayingAmbientSpeech(IPlayer ped) => StopCurrentPlayingAmbientSpeech(ped.ScriptId); - public void StopCurrentPlayingAmbientSpeech(int _ped) + public void StopCurrentPlayingAmbientSpeech(uint _ped) { unsafe { - if (fn__stopCurrentPlayingAmbientSpeech == null) fn__stopCurrentPlayingAmbientSpeech = (delegate* unmanaged[Cdecl]) funcTable[0xB8BEC0CA6F0EDB0FUL]; + if (fn__stopCurrentPlayingAmbientSpeech == null) fn__stopCurrentPlayingAmbientSpeech = (delegate* unmanaged[Cdecl]) funcTable[0xB8BEC0CA6F0EDB0FUL]; var success = false; fn__stopCurrentPlayingAmbientSpeech(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -39007,10 +38994,10 @@ public void StopCurrentPlayingAmbientSpeech(int _ped) } public bool IsAmbientSpeechPlaying(IPlayer ped) => IsAmbientSpeechPlaying(ped.ScriptId); - public bool IsAmbientSpeechPlaying(int _ped) + public bool IsAmbientSpeechPlaying(uint _ped) { unsafe { - if (fn__isAmbientSpeechPlaying == null) fn__isAmbientSpeechPlaying = (delegate* unmanaged[Cdecl]) funcTable[0x9072C8B49907BFADUL]; + if (fn__isAmbientSpeechPlaying == null) fn__isAmbientSpeechPlaying = (delegate* unmanaged[Cdecl]) funcTable[0x9072C8B49907BFADUL]; var success = false; var result = fn__isAmbientSpeechPlaying(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -39019,10 +39006,10 @@ public bool IsAmbientSpeechPlaying(int _ped) } public bool IsScriptedSpeechPlaying(IPlayer p0) => IsScriptedSpeechPlaying(p0.ScriptId); - public bool IsScriptedSpeechPlaying(int _p0) + public bool IsScriptedSpeechPlaying(uint _p0) { unsafe { - if (fn__isScriptedSpeechPlaying == null) fn__isScriptedSpeechPlaying = (delegate* unmanaged[Cdecl]) funcTable[0xCC9AA18DCC7084F4UL]; + if (fn__isScriptedSpeechPlaying == null) fn__isScriptedSpeechPlaying = (delegate* unmanaged[Cdecl]) funcTable[0xCC9AA18DCC7084F4UL]; var success = false; var result = fn__isScriptedSpeechPlaying(&success, _p0); if (!success) throw new Exception("Native execution failed"); @@ -39031,10 +39018,10 @@ public bool IsScriptedSpeechPlaying(int _p0) } public bool IsAnySpeechPlaying(IPlayer ped) => IsAnySpeechPlaying(ped.ScriptId); - public bool IsAnySpeechPlaying(int _ped) + public bool IsAnySpeechPlaying(uint _ped) { unsafe { - if (fn__isAnySpeechPlaying == null) fn__isAnySpeechPlaying = (delegate* unmanaged[Cdecl]) funcTable[0x729072355FA39EC9UL]; + if (fn__isAnySpeechPlaying == null) fn__isAnySpeechPlaying = (delegate* unmanaged[Cdecl]) funcTable[0x729072355FA39EC9UL]; var success = false; var result = fn__isAnySpeechPlaying(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -39054,24 +39041,24 @@ public bool IsAnyPositionalSpeechPlaying() } public bool DoesContextExistForThisPed(IPlayer ped, string speechName, bool p2) => DoesContextExistForThisPed(ped.ScriptId, speechName, p2); - public bool DoesContextExistForThisPed(int _ped, string _speechName, bool _p2) + public bool DoesContextExistForThisPed(uint _ped, string _speechName, bool _p2) { unsafe { - if (fn__doesContextExistForThisPed == null) fn__doesContextExistForThisPed = (delegate* unmanaged[Cdecl]) funcTable[0x49B99BF3FDA89A7AUL]; + if (fn__doesContextExistForThisPed == null) fn__doesContextExistForThisPed = (delegate* unmanaged[Cdecl]) funcTable[0x49B99BF3FDA89A7AUL]; var success = false; - var ptr_speechName = _speechName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_speechName); + var ptr_speechName = MemoryUtils.StringToHGlobalUtf8(_speechName); var result = fn__doesContextExistForThisPed(&success, _ped, ptr_speechName, (byte) (_p2 ? 1 : 0)); - if (ptr_speechName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_speechName); + Marshal.FreeHGlobal(ptr_speechName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool IsPedInCurrentConversation(IPlayer ped) => IsPedInCurrentConversation(ped.ScriptId); - public bool IsPedInCurrentConversation(int _ped) + public bool IsPedInCurrentConversation(uint _ped) { unsafe { - if (fn__isPedInCurrentConversation == null) fn__isPedInCurrentConversation = (delegate* unmanaged[Cdecl]) funcTable[0x049E937F18F4020CUL]; + if (fn__isPedInCurrentConversation == null) fn__isPedInCurrentConversation = (delegate* unmanaged[Cdecl]) funcTable[0x049E937F18F4020CUL]; var success = false; var result = fn__isPedInCurrentConversation(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -39080,10 +39067,10 @@ public bool IsPedInCurrentConversation(int _ped) } public void SetPedIsDrunk(IPlayer ped, bool toggle) => SetPedIsDrunk(ped.ScriptId, toggle); - public void SetPedIsDrunk(int _ped, bool _toggle) + public void SetPedIsDrunk(uint _ped, bool _toggle) { unsafe { - if (fn__setPedIsDrunk == null) fn__setPedIsDrunk = (delegate* unmanaged[Cdecl]) funcTable[0x95D2D383D5396B8AUL]; + if (fn__setPedIsDrunk == null) fn__setPedIsDrunk = (delegate* unmanaged[Cdecl]) funcTable[0x95D2D383D5396B8AUL]; var success = false; fn__setPedIsDrunk(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -39091,23 +39078,23 @@ public void SetPedIsDrunk(int _ped, bool _toggle) } public void PlayAnimalVocalization(IPlayer pedHandle, int p1, string speechName) => PlayAnimalVocalization(pedHandle.ScriptId, p1, speechName); - public void PlayAnimalVocalization(int _pedHandle, int _p1, string _speechName) + public void PlayAnimalVocalization(uint _pedHandle, int _p1, string _speechName) { unsafe { - if (fn__playAnimalVocalization == null) fn__playAnimalVocalization = (delegate* unmanaged[Cdecl]) funcTable[0xEE066C7006C49C0AUL]; + if (fn__playAnimalVocalization == null) fn__playAnimalVocalization = (delegate* unmanaged[Cdecl]) funcTable[0xEE066C7006C49C0AUL]; var success = false; - var ptr_speechName = _speechName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_speechName); + var ptr_speechName = MemoryUtils.StringToHGlobalUtf8(_speechName); fn__playAnimalVocalization(&success, _pedHandle, _p1, ptr_speechName); - if (ptr_speechName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_speechName); + Marshal.FreeHGlobal(ptr_speechName); if (!success) throw new Exception("Native execution failed"); } } public bool IsAnimalVocalizationPlaying(IPlayer pedHandle) => IsAnimalVocalizationPlaying(pedHandle.ScriptId); - public bool IsAnimalVocalizationPlaying(int _pedHandle) + public bool IsAnimalVocalizationPlaying(uint _pedHandle) { unsafe { - if (fn__isAnimalVocalizationPlaying == null) fn__isAnimalVocalizationPlaying = (delegate* unmanaged[Cdecl]) funcTable[0xC265DF9FB44A9FBDUL]; + if (fn__isAnimalVocalizationPlaying == null) fn__isAnimalVocalizationPlaying = (delegate* unmanaged[Cdecl]) funcTable[0xC265DF9FB44A9FBDUL]; var success = false; var result = fn__isAnimalVocalizationPlaying(&success, _pedHandle); if (!success) throw new Exception("Native execution failed"); @@ -39116,10 +39103,10 @@ public bool IsAnimalVocalizationPlaying(int _pedHandle) } public void SetAnimalMood(IPlayer animal, int mood) => SetAnimalMood(animal.ScriptId, mood); - public void SetAnimalMood(int _animal, int _mood) + public void SetAnimalMood(uint _animal, int _mood) { unsafe { - if (fn__setAnimalMood == null) fn__setAnimalMood = (delegate* unmanaged[Cdecl]) funcTable[0xCC97B29285B1DC3BUL]; + if (fn__setAnimalMood == null) fn__setAnimalMood = (delegate* unmanaged[Cdecl]) funcTable[0xCC97B29285B1DC3BUL]; var success = false; fn__setAnimalMood(&success, _animal, _mood); if (!success) throw new Exception("Native execution failed"); @@ -39165,8 +39152,8 @@ public string GetPlayerRadioStationName() var success = false; var result = fn__getPlayerRadioStationName(&success); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -39178,8 +39165,8 @@ public string GetRadioStationName(int _radioStation) var success = false; var result = fn__getRadioStationName(&success, _radioStation); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -39242,31 +39229,31 @@ public void SetRadioToStationName(string _stationName) unsafe { if (fn__setRadioToStationName == null) fn__setRadioToStationName = (delegate* unmanaged[Cdecl]) funcTable[0xC69EDA28699D5107UL]; var success = false; - var ptr_stationName = _stationName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_stationName); + var ptr_stationName = MemoryUtils.StringToHGlobalUtf8(_stationName); fn__setRadioToStationName(&success, ptr_stationName); - if (ptr_stationName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_stationName); + Marshal.FreeHGlobal(ptr_stationName); if (!success) throw new Exception("Native execution failed"); } } public void SetVehRadioStation(IVehicle vehicle, string radioStation) => SetVehRadioStation(vehicle.ScriptId, radioStation); - public void SetVehRadioStation(int _vehicle, string _radioStation) + public void SetVehRadioStation(uint _vehicle, string _radioStation) { unsafe { - if (fn__setVehRadioStation == null) fn__setVehRadioStation = (delegate* unmanaged[Cdecl]) funcTable[0x1B9C0099CB942AC6UL]; + if (fn__setVehRadioStation == null) fn__setVehRadioStation = (delegate* unmanaged[Cdecl]) funcTable[0x1B9C0099CB942AC6UL]; var success = false; - var ptr_radioStation = _radioStation == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioStation); + var ptr_radioStation = MemoryUtils.StringToHGlobalUtf8(_radioStation); fn__setVehRadioStation(&success, _vehicle, ptr_radioStation); - if (ptr_radioStation != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioStation); + Marshal.FreeHGlobal(ptr_radioStation); if (!success) throw new Exception("Native execution failed"); } } public void SetVehHasNormalRadio(IVehicle vehicle) => SetVehHasNormalRadio(vehicle.ScriptId); - public void SetVehHasNormalRadio(int _vehicle) + public void SetVehHasNormalRadio(uint _vehicle) { unsafe { - if (fn__setVehHasNormalRadio == null) fn__setVehHasNormalRadio = (delegate* unmanaged[Cdecl]) funcTable[0x3E45765F3FBB582FUL]; + if (fn__setVehHasNormalRadio == null) fn__setVehHasNormalRadio = (delegate* unmanaged[Cdecl]) funcTable[0x3E45765F3FBB582FUL]; var success = false; fn__setVehHasNormalRadio(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -39274,10 +39261,10 @@ public void SetVehHasNormalRadio(int _vehicle) } public bool IsVehicleRadioOn(IVehicle vehicle) => IsVehicleRadioOn(vehicle.ScriptId); - public bool IsVehicleRadioOn(int _vehicle) + public bool IsVehicleRadioOn(uint _vehicle) { unsafe { - if (fn__isVehicleRadioOn == null) fn__isVehicleRadioOn = (delegate* unmanaged[Cdecl]) funcTable[0x0BE4BE946463F917UL]; + if (fn__isVehicleRadioOn == null) fn__isVehicleRadioOn = (delegate* unmanaged[Cdecl]) funcTable[0x0BE4BE946463F917UL]; var success = false; var result = fn__isVehicleRadioOn(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -39286,26 +39273,26 @@ public bool IsVehicleRadioOn(int _vehicle) } public void SetVehForcedRadioThisFrame(IVehicle vehicle) => SetVehForcedRadioThisFrame(vehicle.ScriptId); - public void SetVehForcedRadioThisFrame(int _vehicle) + public void SetVehForcedRadioThisFrame(uint _vehicle) { unsafe { - if (fn__setVehForcedRadioThisFrame == null) fn__setVehForcedRadioThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0xC1805D05E6D4FE10UL]; + if (fn__setVehForcedRadioThisFrame == null) fn__setVehForcedRadioThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0xC1805D05E6D4FE10UL]; var success = false; fn__setVehForcedRadioThisFrame(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); } } - public void SetEmitterRadioStation(string _emitterName, string _radioStation) + public void SetEmitterRadioStation(string _emitterName, string _radioStation, int _p2) { unsafe { - if (fn__setEmitterRadioStation == null) fn__setEmitterRadioStation = (delegate* unmanaged[Cdecl]) funcTable[0xACF57305B12AF907UL]; + if (fn__setEmitterRadioStation == null) fn__setEmitterRadioStation = (delegate* unmanaged[Cdecl]) funcTable[0xACF57305B12AF907UL]; var success = false; - var ptr_emitterName = _emitterName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_emitterName); - var ptr_radioStation = _radioStation == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioStation); - fn__setEmitterRadioStation(&success, ptr_emitterName, ptr_radioStation); - if (ptr_emitterName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_emitterName); - if (ptr_radioStation != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioStation); + var ptr_emitterName = MemoryUtils.StringToHGlobalUtf8(_emitterName); + var ptr_radioStation = MemoryUtils.StringToHGlobalUtf8(_radioStation); + fn__setEmitterRadioStation(&success, ptr_emitterName, ptr_radioStation, _p2); + Marshal.FreeHGlobal(ptr_emitterName); + Marshal.FreeHGlobal(ptr_radioStation); if (!success) throw new Exception("Native execution failed"); } } @@ -39315,22 +39302,22 @@ public void SetStaticEmitterEnabled(string _emitterName, bool _toggle) unsafe { if (fn__setStaticEmitterEnabled == null) fn__setStaticEmitterEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x399D2D3B33F1B8EBUL]; var success = false; - var ptr_emitterName = _emitterName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_emitterName); + var ptr_emitterName = MemoryUtils.StringToHGlobalUtf8(_emitterName); fn__setStaticEmitterEnabled(&success, ptr_emitterName, (byte) (_toggle ? 1 : 0)); - if (ptr_emitterName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_emitterName); + Marshal.FreeHGlobal(ptr_emitterName); if (!success) throw new Exception("Native execution failed"); } } public void LinkStaticEmitterToEntity(string emitterName, IEntity entity) => LinkStaticEmitterToEntity(emitterName, entity.ScriptId); - public void LinkStaticEmitterToEntity(string _emitterName, int _entity) + public void LinkStaticEmitterToEntity(string _emitterName, uint _entity) { unsafe { - if (fn__linkStaticEmitterToEntity == null) fn__linkStaticEmitterToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x651D3228960D08AFUL]; + if (fn__linkStaticEmitterToEntity == null) fn__linkStaticEmitterToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x651D3228960D08AFUL]; var success = false; - var ptr_emitterName = _emitterName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_emitterName); + var ptr_emitterName = MemoryUtils.StringToHGlobalUtf8(_emitterName); fn__linkStaticEmitterToEntity(&success, ptr_emitterName, _entity); - if (ptr_emitterName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_emitterName); + Marshal.FreeHGlobal(ptr_emitterName); if (!success) throw new Exception("Native execution failed"); } } @@ -39412,9 +39399,9 @@ public void FreezeRadioStation(string _radioStation) unsafe { if (fn__freezeRadioStation == null) fn__freezeRadioStation = (delegate* unmanaged[Cdecl]) funcTable[0x344F393B027E38C3UL]; var success = false; - var ptr_radioStation = _radioStation == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioStation); + var ptr_radioStation = MemoryUtils.StringToHGlobalUtf8(_radioStation); fn__freezeRadioStation(&success, ptr_radioStation); - if (ptr_radioStation != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioStation); + Marshal.FreeHGlobal(ptr_radioStation); if (!success) throw new Exception("Native execution failed"); } } @@ -39424,9 +39411,9 @@ public void UnfreezeRadioStation(string _radioStation) unsafe { if (fn__unfreezeRadioStation == null) fn__unfreezeRadioStation = (delegate* unmanaged[Cdecl]) funcTable[0xFC00454CF60B91DDUL]; var success = false; - var ptr_radioStation = _radioStation == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioStation); + var ptr_radioStation = MemoryUtils.StringToHGlobalUtf8(_radioStation); fn__unfreezeRadioStation(&success, ptr_radioStation); - if (ptr_radioStation != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioStation); + Marshal.FreeHGlobal(ptr_radioStation); if (!success) throw new Exception("Native execution failed"); } } @@ -39446,9 +39433,9 @@ public void SetInitialPlayerStation(string _radioStation) unsafe { if (fn__setInitialPlayerStation == null) fn__setInitialPlayerStation = (delegate* unmanaged[Cdecl]) funcTable[0x88795F13FACDA88DUL]; var success = false; - var ptr_radioStation = _radioStation == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioStation); + var ptr_radioStation = MemoryUtils.StringToHGlobalUtf8(_radioStation); fn__setInitialPlayerStation(&success, ptr_radioStation); - if (ptr_radioStation != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioStation); + Marshal.FreeHGlobal(ptr_radioStation); if (!success) throw new Exception("Native execution failed"); } } @@ -39468,11 +39455,11 @@ public void SetRadioTrack(string _radioStation, string _radioTrack) unsafe { if (fn__setRadioTrack == null) fn__setRadioTrack = (delegate* unmanaged[Cdecl]) funcTable[0xB39786F201FEE30BUL]; var success = false; - var ptr_radioStation = _radioStation == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioStation); - var ptr_radioTrack = _radioTrack == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioTrack); + var ptr_radioStation = MemoryUtils.StringToHGlobalUtf8(_radioStation); + var ptr_radioTrack = MemoryUtils.StringToHGlobalUtf8(_radioTrack); fn__setRadioTrack(&success, ptr_radioStation, ptr_radioTrack); - if (ptr_radioStation != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioStation); - if (ptr_radioTrack != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioTrack); + Marshal.FreeHGlobal(ptr_radioStation); + Marshal.FreeHGlobal(ptr_radioTrack); if (!success) throw new Exception("Native execution failed"); } } @@ -39482,11 +39469,11 @@ public void SetRadioTrackWithStartOffset(string _radioStationName, string _mixNa unsafe { if (fn__setRadioTrackWithStartOffset == null) fn__setRadioTrackWithStartOffset = (delegate* unmanaged[Cdecl]) funcTable[0x2CB0075110BE1E56UL]; var success = false; - var ptr_radioStationName = _radioStationName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioStationName); - var ptr_mixName = _mixName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_mixName); + var ptr_radioStationName = MemoryUtils.StringToHGlobalUtf8(_radioStationName); + var ptr_mixName = MemoryUtils.StringToHGlobalUtf8(_mixName); fn__setRadioTrackWithStartOffset(&success, ptr_radioStationName, ptr_mixName, _p2); - if (ptr_radioStationName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioStationName); - if (ptr_mixName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_mixName); + Marshal.FreeHGlobal(ptr_radioStationName); + Marshal.FreeHGlobal(ptr_mixName); if (!success) throw new Exception("Native execution failed"); } } @@ -39496,24 +39483,24 @@ public void SetNextRadioTrack(string _radioName, string _radioTrack, string _p2, unsafe { if (fn__setNextRadioTrack == null) fn__setNextRadioTrack = (delegate* unmanaged[Cdecl]) funcTable[0x55ECF4D13D9903B0UL]; var success = false; - var ptr_radioName = _radioName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioName); - var ptr_radioTrack = _radioTrack == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioTrack); - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); - var ptr_p3 = _p3 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p3); + var ptr_radioName = MemoryUtils.StringToHGlobalUtf8(_radioName); + var ptr_radioTrack = MemoryUtils.StringToHGlobalUtf8(_radioTrack); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p3 = MemoryUtils.StringToHGlobalUtf8(_p3); fn__setNextRadioTrack(&success, ptr_radioName, ptr_radioTrack, ptr_p2, ptr_p3); - if (ptr_radioName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioName); - if (ptr_radioTrack != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioTrack); - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); - if (ptr_p3 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p3); + Marshal.FreeHGlobal(ptr_radioName); + Marshal.FreeHGlobal(ptr_radioTrack); + Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p3); if (!success) throw new Exception("Native execution failed"); } } public void SetVehicleRadioLoud(IVehicle vehicle, bool toggle) => SetVehicleRadioLoud(vehicle.ScriptId, toggle); - public void SetVehicleRadioLoud(int _vehicle, bool _toggle) + public void SetVehicleRadioLoud(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleRadioLoud == null) fn__setVehicleRadioLoud = (delegate* unmanaged[Cdecl]) funcTable[0xBB6F1CAEC68B0BCEUL]; + if (fn__setVehicleRadioLoud == null) fn__setVehicleRadioLoud = (delegate* unmanaged[Cdecl]) funcTable[0xBB6F1CAEC68B0BCEUL]; var success = false; fn__setVehicleRadioLoud(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -39521,10 +39508,10 @@ public void SetVehicleRadioLoud(int _vehicle, bool _toggle) } public bool CanVehicleReceiveCbRadio(IVehicle vehicle) => CanVehicleReceiveCbRadio(vehicle.ScriptId); - public bool CanVehicleReceiveCbRadio(int _vehicle) + public bool CanVehicleReceiveCbRadio(uint _vehicle) { unsafe { - if (fn__canVehicleReceiveCbRadio == null) fn__canVehicleReceiveCbRadio = (delegate* unmanaged[Cdecl]) funcTable[0x032A116663A4D5ACUL]; + if (fn__canVehicleReceiveCbRadio == null) fn__canVehicleReceiveCbRadio = (delegate* unmanaged[Cdecl]) funcTable[0x032A116663A4D5ACUL]; var success = false; var result = fn__canVehicleReceiveCbRadio(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -39565,10 +39552,10 @@ public bool IsPlayerVehRadioEnable() } public void SetVehicleRadioEnabled(IVehicle vehicle, bool toggle) => SetVehicleRadioEnabled(vehicle.ScriptId, toggle); - public void SetVehicleRadioEnabled(int _vehicle, bool _toggle) + public void SetVehicleRadioEnabled(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleRadioEnabled == null) fn__setVehicleRadioEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x3B988190C0AA6C0BUL]; + if (fn__setVehicleRadioEnabled == null) fn__setVehicleRadioEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x3B988190C0AA6C0BUL]; var success = false; fn__setVehicleRadioEnabled(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -39590,11 +39577,11 @@ public void SetCustomRadioTrackList(string _radioStation, string _trackListName, unsafe { if (fn__setCustomRadioTrackList == null) fn__setCustomRadioTrackList = (delegate* unmanaged[Cdecl]) funcTable[0x4E404A9361F75BB2UL]; var success = false; - var ptr_radioStation = _radioStation == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioStation); - var ptr_trackListName = _trackListName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_trackListName); + var ptr_radioStation = MemoryUtils.StringToHGlobalUtf8(_radioStation); + var ptr_trackListName = MemoryUtils.StringToHGlobalUtf8(_trackListName); fn__setCustomRadioTrackList(&success, ptr_radioStation, ptr_trackListName, (byte) (_p2 ? 1 : 0)); - if (ptr_radioStation != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioStation); - if (ptr_trackListName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_trackListName); + Marshal.FreeHGlobal(ptr_radioStation); + Marshal.FreeHGlobal(ptr_trackListName); if (!success) throw new Exception("Native execution failed"); } } @@ -39604,9 +39591,9 @@ public void ClearCustomRadioTrackList(string _radioStation) unsafe { if (fn__clearCustomRadioTrackList == null) fn__clearCustomRadioTrackList = (delegate* unmanaged[Cdecl]) funcTable[0x1654F24A88A8E3FEUL]; var success = false; - var ptr_radioStation = _radioStation == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioStation); + var ptr_radioStation = MemoryUtils.StringToHGlobalUtf8(_radioStation); fn__clearCustomRadioTrackList(&success, ptr_radioStation); - if (ptr_radioStation != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioStation); + Marshal.FreeHGlobal(ptr_radioStation); if (!success) throw new Exception("Native execution failed"); } } @@ -39638,9 +39625,9 @@ public void SetRadioStationMusicOnly(string _radioStation, bool _toggle) unsafe { if (fn__setRadioStationMusicOnly == null) fn__setRadioStationMusicOnly = (delegate* unmanaged[Cdecl]) funcTable[0x774BD811F656A122UL]; var success = false; - var ptr_radioStation = _radioStation == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioStation); + var ptr_radioStation = MemoryUtils.StringToHGlobalUtf8(_radioStation); fn__setRadioStationMusicOnly(&success, ptr_radioStation, (byte) (_toggle ? 1 : 0)); - if (ptr_radioStation != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioStation); + Marshal.FreeHGlobal(ptr_radioStation); if (!success) throw new Exception("Native execution failed"); } } @@ -39660,11 +39647,11 @@ public void UnlockRadioStationTrackList(string _radioStation, string _trackListN unsafe { if (fn__unlockRadioStationTrackList == null) fn__unlockRadioStationTrackList = (delegate* unmanaged[Cdecl]) funcTable[0x031ACB6ABA18C729UL]; var success = false; - var ptr_radioStation = _radioStation == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioStation); - var ptr_trackListName = _trackListName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_trackListName); + var ptr_radioStation = MemoryUtils.StringToHGlobalUtf8(_radioStation); + var ptr_trackListName = MemoryUtils.StringToHGlobalUtf8(_trackListName); fn__unlockRadioStationTrackList(&success, ptr_radioStation, ptr_trackListName); - if (ptr_radioStation != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioStation); - if (ptr_trackListName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_trackListName); + Marshal.FreeHGlobal(ptr_radioStation); + Marshal.FreeHGlobal(ptr_trackListName); if (!success) throw new Exception("Native execution failed"); } } @@ -39674,11 +39661,11 @@ public void LockRadioStationTrackList(string _radioStation, string _trackListNam unsafe { if (fn__lockRadioStationTrackList == null) fn__lockRadioStationTrackList = (delegate* unmanaged[Cdecl]) funcTable[0xFF5E5EA2DCEEACF3UL]; var success = false; - var ptr_radioStation = _radioStation == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioStation); - var ptr_trackListName = _trackListName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_trackListName); + var ptr_radioStation = MemoryUtils.StringToHGlobalUtf8(_radioStation); + var ptr_trackListName = MemoryUtils.StringToHGlobalUtf8(_trackListName); fn__lockRadioStationTrackList(&success, ptr_radioStation, ptr_trackListName); - if (ptr_radioStation != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioStation); - if (ptr_trackListName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_trackListName); + Marshal.FreeHGlobal(ptr_radioStation); + Marshal.FreeHGlobal(ptr_trackListName); if (!success) throw new Exception("Native execution failed"); } } @@ -39698,9 +39685,9 @@ public void LockRadioStation(string _radioStationName, bool _toggle) unsafe { if (fn__lockRadioStation == null) fn__lockRadioStation = (delegate* unmanaged[Cdecl]) funcTable[0x477D9DB48F889591UL]; var success = false; - var ptr_radioStationName = _radioStationName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioStationName); + var ptr_radioStationName = MemoryUtils.StringToHGlobalUtf8(_radioStationName); fn__lockRadioStation(&success, ptr_radioStationName, (byte) (_toggle ? 1 : 0)); - if (ptr_radioStationName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioStationName); + Marshal.FreeHGlobal(ptr_radioStationName); if (!success) throw new Exception("Native execution failed"); } } @@ -39710,9 +39697,9 @@ public void SetRadioStationAsFavourite(string _radioStation, bool _toggle) unsafe { if (fn__setRadioStationAsFavourite == null) fn__setRadioStationAsFavourite = (delegate* unmanaged[Cdecl]) funcTable[0x4CAFEBFA21EC188DUL]; var success = false; - var ptr_radioStation = _radioStation == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioStation); + var ptr_radioStation = MemoryUtils.StringToHGlobalUtf8(_radioStation); fn__setRadioStationAsFavourite(&success, ptr_radioStation, (byte) (_toggle ? 1 : 0)); - if (ptr_radioStation != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioStation); + Marshal.FreeHGlobal(ptr_radioStation); if (!success) throw new Exception("Native execution failed"); } } @@ -39722,9 +39709,9 @@ public bool IsRadioStationFavourited(string _radioStation) unsafe { if (fn__isRadioStationFavourited == null) fn__isRadioStationFavourited = (delegate* unmanaged[Cdecl]) funcTable[0x2B1784DB08AFEA79UL]; var success = false; - var ptr_radioStation = _radioStation == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioStation); + var ptr_radioStation = MemoryUtils.StringToHGlobalUtf8(_radioStation); var result = fn__isRadioStationFavourited(&success, ptr_radioStation); - if (ptr_radioStation != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioStation); + Marshal.FreeHGlobal(ptr_radioStation); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -39752,11 +39739,11 @@ public void ForceMusicTrackList(string _radioStation, string _trackListName, int unsafe { if (fn__forceMusicTrackList == null) fn__forceMusicTrackList = (delegate* unmanaged[Cdecl]) funcTable[0x4E0AF9114608257CUL]; var success = false; - var ptr_radioStation = _radioStation == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioStation); - var ptr_trackListName = _trackListName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_trackListName); + var ptr_radioStation = MemoryUtils.StringToHGlobalUtf8(_radioStation); + var ptr_trackListName = MemoryUtils.StringToHGlobalUtf8(_trackListName); fn__forceMusicTrackList(&success, ptr_radioStation, ptr_trackListName, _milliseconds); - if (ptr_radioStation != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioStation); - if (ptr_trackListName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_trackListName); + Marshal.FreeHGlobal(ptr_radioStation); + Marshal.FreeHGlobal(ptr_trackListName); if (!success) throw new Exception("Native execution failed"); } } @@ -39766,9 +39753,9 @@ public int GetCurrentTrackPlayTime(string _radioStationName) unsafe { if (fn__getCurrentTrackPlayTime == null) fn__getCurrentTrackPlayTime = (delegate* unmanaged[Cdecl]) funcTable[0x3E65CDE5215832C1UL]; var success = false; - var ptr_radioStationName = _radioStationName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioStationName); + var ptr_radioStationName = MemoryUtils.StringToHGlobalUtf8(_radioStationName); var result = fn__getCurrentTrackPlayTime(&success, ptr_radioStationName); - if (ptr_radioStationName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioStationName); + Marshal.FreeHGlobal(ptr_radioStationName); if (!success) throw new Exception("Native execution failed"); return result; } @@ -39779,19 +39766,19 @@ public uint GetCurrentTrackSoundName(string _radioStationName) unsafe { if (fn__getCurrentTrackSoundName == null) fn__getCurrentTrackSoundName = (delegate* unmanaged[Cdecl]) funcTable[0x34D66BC058019CE0UL]; var success = false; - var ptr_radioStationName = _radioStationName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_radioStationName); + var ptr_radioStationName = MemoryUtils.StringToHGlobalUtf8(_radioStationName); var result = fn__getCurrentTrackSoundName(&success, ptr_radioStationName); - if (ptr_radioStationName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_radioStationName); + Marshal.FreeHGlobal(ptr_radioStationName); if (!success) throw new Exception("Native execution failed"); return result; } } public void SetVehicleMissileWarningEnabled(IVehicle vehicle, bool toggle) => SetVehicleMissileWarningEnabled(vehicle.ScriptId, toggle); - public void SetVehicleMissileWarningEnabled(int _vehicle, bool _toggle) + public void SetVehicleMissileWarningEnabled(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleMissileWarningEnabled == null) fn__setVehicleMissileWarningEnabled = (delegate* unmanaged[Cdecl]) funcTable[0xF3365489E0DD50F9UL]; + if (fn__setVehicleMissileWarningEnabled == null) fn__setVehicleMissileWarningEnabled = (delegate* unmanaged[Cdecl]) funcTable[0xF3365489E0DD50F9UL]; var success = false; fn__setVehicleMissileWarningEnabled(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -39803,9 +39790,9 @@ public void SetAmbientZoneState(string _zoneName, bool _p1, bool _p2) unsafe { if (fn__setAmbientZoneState == null) fn__setAmbientZoneState = (delegate* unmanaged[Cdecl]) funcTable[0xBDA07E5950085E46UL]; var success = false; - var ptr_zoneName = _zoneName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_zoneName); + var ptr_zoneName = MemoryUtils.StringToHGlobalUtf8(_zoneName); fn__setAmbientZoneState(&success, ptr_zoneName, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0)); - if (ptr_zoneName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_zoneName); + Marshal.FreeHGlobal(ptr_zoneName); if (!success) throw new Exception("Native execution failed"); } } @@ -39815,9 +39802,9 @@ public void ClearAmbientZoneState(string _zoneName, bool _p1) unsafe { if (fn__clearAmbientZoneState == null) fn__clearAmbientZoneState = (delegate* unmanaged[Cdecl]) funcTable[0x218DD44AAAC964FFUL]; var success = false; - var ptr_zoneName = _zoneName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_zoneName); + var ptr_zoneName = MemoryUtils.StringToHGlobalUtf8(_zoneName); fn__clearAmbientZoneState(&success, ptr_zoneName, (byte) (_p1 ? 1 : 0)); - if (ptr_zoneName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_zoneName); + Marshal.FreeHGlobal(ptr_zoneName); if (!success) throw new Exception("Native execution failed"); } } @@ -39827,9 +39814,9 @@ public void SetAmbientZoneListState(string _ambientZone, bool _p1, bool _p2) unsafe { if (fn__setAmbientZoneListState == null) fn__setAmbientZoneListState = (delegate* unmanaged[Cdecl]) funcTable[0x9748FA4DE50CCE3EUL]; var success = false; - var ptr_ambientZone = _ambientZone == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_ambientZone); + var ptr_ambientZone = MemoryUtils.StringToHGlobalUtf8(_ambientZone); fn__setAmbientZoneListState(&success, ptr_ambientZone, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0)); - if (ptr_ambientZone != IntPtr.Zero) Marshal.FreeHGlobal(ptr_ambientZone); + Marshal.FreeHGlobal(ptr_ambientZone); if (!success) throw new Exception("Native execution failed"); } } @@ -39839,9 +39826,9 @@ public void ClearAmbientZoneListState(string _ambientZone, bool _p1) unsafe { if (fn__clearAmbientZoneListState == null) fn__clearAmbientZoneListState = (delegate* unmanaged[Cdecl]) funcTable[0x120C48C614909FA4UL]; var success = false; - var ptr_ambientZone = _ambientZone == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_ambientZone); + var ptr_ambientZone = MemoryUtils.StringToHGlobalUtf8(_ambientZone); fn__clearAmbientZoneListState(&success, ptr_ambientZone, (byte) (_p1 ? 1 : 0)); - if (ptr_ambientZone != IntPtr.Zero) Marshal.FreeHGlobal(ptr_ambientZone); + Marshal.FreeHGlobal(ptr_ambientZone); if (!success) throw new Exception("Native execution failed"); } } @@ -39851,9 +39838,9 @@ public void SetAmbientZoneStatePersistent(string _ambientZone, bool _p1, bool _p unsafe { if (fn__setAmbientZoneStatePersistent == null) fn__setAmbientZoneStatePersistent = (delegate* unmanaged[Cdecl]) funcTable[0x1D6650420CEC9D3BUL]; var success = false; - var ptr_ambientZone = _ambientZone == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_ambientZone); + var ptr_ambientZone = MemoryUtils.StringToHGlobalUtf8(_ambientZone); fn__setAmbientZoneStatePersistent(&success, ptr_ambientZone, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0)); - if (ptr_ambientZone != IntPtr.Zero) Marshal.FreeHGlobal(ptr_ambientZone); + Marshal.FreeHGlobal(ptr_ambientZone); if (!success) throw new Exception("Native execution failed"); } } @@ -39863,9 +39850,9 @@ public void SetAmbientZoneListStatePersistent(string _ambientZone, bool _p1, boo unsafe { if (fn__setAmbientZoneListStatePersistent == null) fn__setAmbientZoneListStatePersistent = (delegate* unmanaged[Cdecl]) funcTable[0xF3638DAE8C4045E1UL]; var success = false; - var ptr_ambientZone = _ambientZone == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_ambientZone); + var ptr_ambientZone = MemoryUtils.StringToHGlobalUtf8(_ambientZone); fn__setAmbientZoneListStatePersistent(&success, ptr_ambientZone, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0)); - if (ptr_ambientZone != IntPtr.Zero) Marshal.FreeHGlobal(ptr_ambientZone); + Marshal.FreeHGlobal(ptr_ambientZone); if (!success) throw new Exception("Native execution failed"); } } @@ -39875,9 +39862,9 @@ public bool IsAmbientZoneEnabled(string _ambientZone) unsafe { if (fn__isAmbientZoneEnabled == null) fn__isAmbientZoneEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x01E2817A479A7F9BUL]; var success = false; - var ptr_ambientZone = _ambientZone == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_ambientZone); + var ptr_ambientZone = MemoryUtils.StringToHGlobalUtf8(_ambientZone); var result = fn__isAmbientZoneEnabled(&success, ptr_ambientZone); - if (ptr_ambientZone != IntPtr.Zero) Marshal.FreeHGlobal(ptr_ambientZone); + Marshal.FreeHGlobal(ptr_ambientZone); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -39898,9 +39885,9 @@ public void SetCutsceneAudioOverride(string _name) unsafe { if (fn__setCutsceneAudioOverride == null) fn__setCutsceneAudioOverride = (delegate* unmanaged[Cdecl]) funcTable[0x3B4BF5F0859204D9UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__setCutsceneAudioOverride(&success, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -39910,9 +39897,9 @@ public void SetVariableOnSynchSceneAudio(string _unkVariableName, float _value) unsafe { if (fn__setVariableOnSynchSceneAudio == null) fn__setVariableOnSynchSceneAudio = (delegate* unmanaged[Cdecl]) funcTable[0xBCC29F935ED07688UL]; var success = false; - var ptr_unkVariableName = _unkVariableName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_unkVariableName); + var ptr_unkVariableName = MemoryUtils.StringToHGlobalUtf8(_unkVariableName); fn__setVariableOnSynchSceneAudio(&success, ptr_unkVariableName, _value); - if (ptr_unkVariableName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_unkVariableName); + Marshal.FreeHGlobal(ptr_unkVariableName); if (!success) throw new Exception("Native execution failed"); } } @@ -39922,9 +39909,9 @@ public int PlayPoliceReport(string _name, float _p1) unsafe { if (fn__playPoliceReport == null) fn__playPoliceReport = (delegate* unmanaged[Cdecl]) funcTable[0xDFEBD56D9BD1EB16UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var result = fn__playPoliceReport(&success, ptr_name, _p1); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); return result; } @@ -39941,10 +39928,10 @@ public void CancelAllPoliceReports() } public void BlipSiren(IVehicle vehicle) => BlipSiren(vehicle.ScriptId); - public void BlipSiren(int _vehicle) + public void BlipSiren(uint _vehicle) { unsafe { - if (fn__blipSiren == null) fn__blipSiren = (delegate* unmanaged[Cdecl]) funcTable[0x1B9025BDA76822B6UL]; + if (fn__blipSiren == null) fn__blipSiren = (delegate* unmanaged[Cdecl]) funcTable[0x1B9025BDA76822B6UL]; var success = false; fn__blipSiren(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -39952,10 +39939,10 @@ public void BlipSiren(int _vehicle) } public void OverrideVehHorn(IVehicle vehicle, bool @override, int hornHash) => OverrideVehHorn(vehicle.ScriptId, @override, hornHash); - public void OverrideVehHorn(int _vehicle, bool _override, int _hornHash) + public void OverrideVehHorn(uint _vehicle, bool _override, int _hornHash) { unsafe { - if (fn__overrideVehHorn == null) fn__overrideVehHorn = (delegate* unmanaged[Cdecl]) funcTable[0x3CDC1E622CCE0356UL]; + if (fn__overrideVehHorn == null) fn__overrideVehHorn = (delegate* unmanaged[Cdecl]) funcTable[0x3CDC1E622CCE0356UL]; var success = false; fn__overrideVehHorn(&success, _vehicle, (byte) (_override ? 1 : 0), _hornHash); if (!success) throw new Exception("Native execution failed"); @@ -39963,10 +39950,10 @@ public void OverrideVehHorn(int _vehicle, bool _override, int _hornHash) } public bool IsHornActive(IVehicle vehicle) => IsHornActive(vehicle.ScriptId); - public bool IsHornActive(int _vehicle) + public bool IsHornActive(uint _vehicle) { unsafe { - if (fn__isHornActive == null) fn__isHornActive = (delegate* unmanaged[Cdecl]) funcTable[0x9D6BFC12B05C6121UL]; + if (fn__isHornActive == null) fn__isHornActive = (delegate* unmanaged[Cdecl]) funcTable[0x9D6BFC12B05C6121UL]; var success = false; var result = fn__isHornActive(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -40041,11 +40028,11 @@ public bool LoadStream(string _streamName, string _soundSet) unsafe { if (fn__loadStream == null) fn__loadStream = (delegate* unmanaged[Cdecl]) funcTable[0x1F1F957154EC51DFUL]; var success = false; - var ptr_streamName = _streamName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_streamName); - var ptr_soundSet = _soundSet == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_soundSet); + var ptr_streamName = MemoryUtils.StringToHGlobalUtf8(_streamName); + var ptr_soundSet = MemoryUtils.StringToHGlobalUtf8(_soundSet); var result = fn__loadStream(&success, ptr_streamName, ptr_soundSet); - if (ptr_streamName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_streamName); - if (ptr_soundSet != IntPtr.Zero) Marshal.FreeHGlobal(ptr_soundSet); + Marshal.FreeHGlobal(ptr_streamName); + Marshal.FreeHGlobal(ptr_soundSet); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -40056,21 +40043,21 @@ public bool LoadStreamWithStartOffset(string _streamName, int _startOffset, stri unsafe { if (fn__loadStreamWithStartOffset == null) fn__loadStreamWithStartOffset = (delegate* unmanaged[Cdecl]) funcTable[0x59C16B79F53B3712UL]; var success = false; - var ptr_streamName = _streamName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_streamName); - var ptr_soundSet = _soundSet == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_soundSet); + var ptr_streamName = MemoryUtils.StringToHGlobalUtf8(_streamName); + var ptr_soundSet = MemoryUtils.StringToHGlobalUtf8(_soundSet); var result = fn__loadStreamWithStartOffset(&success, ptr_streamName, _startOffset, ptr_soundSet); - if (ptr_streamName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_streamName); - if (ptr_soundSet != IntPtr.Zero) Marshal.FreeHGlobal(ptr_soundSet); + Marshal.FreeHGlobal(ptr_streamName); + Marshal.FreeHGlobal(ptr_soundSet); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public void PlayStreamFromPed(IPlayer ped) => PlayStreamFromPed(ped.ScriptId); - public void PlayStreamFromPed(int _ped) + public void PlayStreamFromPed(uint _ped) { unsafe { - if (fn__playStreamFromPed == null) fn__playStreamFromPed = (delegate* unmanaged[Cdecl]) funcTable[0x89049DD63C08B5D1UL]; + if (fn__playStreamFromPed == null) fn__playStreamFromPed = (delegate* unmanaged[Cdecl]) funcTable[0x89049DD63C08B5D1UL]; var success = false; fn__playStreamFromPed(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -40078,20 +40065,20 @@ public void PlayStreamFromPed(int _ped) } public void PlayStreamFromVehicle(IVehicle vehicle) => PlayStreamFromVehicle(vehicle.ScriptId); - public void PlayStreamFromVehicle(int _vehicle) + public void PlayStreamFromVehicle(uint _vehicle) { unsafe { - if (fn__playStreamFromVehicle == null) fn__playStreamFromVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xB70374A758007DFAUL]; + if (fn__playStreamFromVehicle == null) fn__playStreamFromVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xB70374A758007DFAUL]; var success = false; fn__playStreamFromVehicle(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); } } - public void PlayStreamFromObject(int _object) + public void PlayStreamFromObject(uint _object) { unsafe { - if (fn__playStreamFromObject == null) fn__playStreamFromObject = (delegate* unmanaged[Cdecl]) funcTable[0xEBAA9B64D76356FDUL]; + if (fn__playStreamFromObject == null) fn__playStreamFromObject = (delegate* unmanaged[Cdecl]) funcTable[0xEBAA9B64D76356FDUL]; var success = false; fn__playStreamFromObject(&success, _object); if (!success) throw new Exception("Native execution failed"); @@ -40129,10 +40116,10 @@ public void StopStream() } public void StopPedSpeaking(IPlayer ped, bool shaking) => StopPedSpeaking(ped.ScriptId, shaking); - public void StopPedSpeaking(int _ped, bool _shaking) + public void StopPedSpeaking(uint _ped, bool _shaking) { unsafe { - if (fn__stopPedSpeaking == null) fn__stopPedSpeaking = (delegate* unmanaged[Cdecl]) funcTable[0x9D64D7405520E3D3UL]; + if (fn__stopPedSpeaking == null) fn__stopPedSpeaking = (delegate* unmanaged[Cdecl]) funcTable[0x9D64D7405520E3D3UL]; var success = false; fn__stopPedSpeaking(&success, _ped, (byte) (_shaking ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -40140,10 +40127,10 @@ public void StopPedSpeaking(int _ped, bool _shaking) } public void BlockAllSpeechFromPed(IPlayer ped, bool p1, bool p2) => BlockAllSpeechFromPed(ped.ScriptId, p1, p2); - public void BlockAllSpeechFromPed(int _ped, bool _p1, bool _p2) + public void BlockAllSpeechFromPed(uint _ped, bool _p1, bool _p2) { unsafe { - if (fn__blockAllSpeechFromPed == null) fn__blockAllSpeechFromPed = (delegate* unmanaged[Cdecl]) funcTable[0xF8AD2EED7C47E8FEUL]; + if (fn__blockAllSpeechFromPed == null) fn__blockAllSpeechFromPed = (delegate* unmanaged[Cdecl]) funcTable[0xF8AD2EED7C47E8FEUL]; var success = false; fn__blockAllSpeechFromPed(&success, _ped, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -40151,10 +40138,10 @@ public void BlockAllSpeechFromPed(int _ped, bool _p1, bool _p2) } public void StopPedSpeakingSynced(IPlayer ped, bool p1) => StopPedSpeakingSynced(ped.ScriptId, p1); - public void StopPedSpeakingSynced(int _ped, bool _p1) + public void StopPedSpeakingSynced(uint _ped, bool _p1) { unsafe { - if (fn__stopPedSpeakingSynced == null) fn__stopPedSpeakingSynced = (delegate* unmanaged[Cdecl]) funcTable[0xAB6781A5F3101470UL]; + if (fn__stopPedSpeakingSynced == null) fn__stopPedSpeakingSynced = (delegate* unmanaged[Cdecl]) funcTable[0xAB6781A5F3101470UL]; var success = false; fn__stopPedSpeakingSynced(&success, _ped, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -40162,10 +40149,10 @@ public void StopPedSpeakingSynced(int _ped, bool _p1) } public void DisablePedPainAudio(IPlayer ped, bool toggle) => DisablePedPainAudio(ped.ScriptId, toggle); - public void DisablePedPainAudio(int _ped, bool _toggle) + public void DisablePedPainAudio(uint _ped, bool _toggle) { unsafe { - if (fn__disablePedPainAudio == null) fn__disablePedPainAudio = (delegate* unmanaged[Cdecl]) funcTable[0xA9A41C1E940FB0E8UL]; + if (fn__disablePedPainAudio == null) fn__disablePedPainAudio = (delegate* unmanaged[Cdecl]) funcTable[0xA9A41C1E940FB0E8UL]; var success = false; fn__disablePedPainAudio(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -40173,10 +40160,10 @@ public void DisablePedPainAudio(int _ped, bool _toggle) } public bool IsAmbientSpeechDisabled(IPlayer ped) => IsAmbientSpeechDisabled(ped.ScriptId); - public bool IsAmbientSpeechDisabled(int _ped) + public bool IsAmbientSpeechDisabled(uint _ped) { unsafe { - if (fn__isAmbientSpeechDisabled == null) fn__isAmbientSpeechDisabled = (delegate* unmanaged[Cdecl]) funcTable[0x932C2D096A2C3FFFUL]; + if (fn__isAmbientSpeechDisabled == null) fn__isAmbientSpeechDisabled = (delegate* unmanaged[Cdecl]) funcTable[0x932C2D096A2C3FFFUL]; var success = false; var result = fn__isAmbientSpeechDisabled(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -40189,9 +40176,9 @@ public void BlockSpeechContextGroup(string _p0, int _p1) unsafe { if (fn__blockSpeechContextGroup == null) fn__blockSpeechContextGroup = (delegate* unmanaged[Cdecl]) funcTable[0xA8A7D434AFB4B97BUL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__blockSpeechContextGroup(&success, ptr_p0, _p1); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -40201,18 +40188,18 @@ public void UnblockSpeechContextGroup(string _p0) unsafe { if (fn__unblockSpeechContextGroup == null) fn__unblockSpeechContextGroup = (delegate* unmanaged[Cdecl]) funcTable[0x2ACABED337622DF2UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__unblockSpeechContextGroup(&success, ptr_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } public void SetSirenWithNoDriver(IVehicle vehicle, bool toggle) => SetSirenWithNoDriver(vehicle.ScriptId, toggle); - public void SetSirenWithNoDriver(int _vehicle, bool _toggle) + public void SetSirenWithNoDriver(uint _vehicle, bool _toggle) { unsafe { - if (fn__setSirenWithNoDriver == null) fn__setSirenWithNoDriver = (delegate* unmanaged[Cdecl]) funcTable[0x1FEF0683B96EBCF2UL]; + if (fn__setSirenWithNoDriver == null) fn__setSirenWithNoDriver = (delegate* unmanaged[Cdecl]) funcTable[0x1FEF0683B96EBCF2UL]; var success = false; fn__setSirenWithNoDriver(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -40220,10 +40207,10 @@ public void SetSirenWithNoDriver(int _vehicle, bool _toggle) } public void SetSirenBypassMpDriverCheck(IVehicle vehicle, bool toggle) => SetSirenBypassMpDriverCheck(vehicle.ScriptId, toggle); - public void SetSirenBypassMpDriverCheck(int _vehicle, bool _toggle) + public void SetSirenBypassMpDriverCheck(uint _vehicle, bool _toggle) { unsafe { - if (fn__setSirenBypassMpDriverCheck == null) fn__setSirenBypassMpDriverCheck = (delegate* unmanaged[Cdecl]) funcTable[0xF584CF8529B51434UL]; + if (fn__setSirenBypassMpDriverCheck == null) fn__setSirenBypassMpDriverCheck = (delegate* unmanaged[Cdecl]) funcTable[0xF584CF8529B51434UL]; var success = false; fn__setSirenBypassMpDriverCheck(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -40231,10 +40218,10 @@ public void SetSirenBypassMpDriverCheck(int _vehicle, bool _toggle) } public void TriggerSirenAudio(IVehicle vehicle) => TriggerSirenAudio(vehicle.ScriptId); - public void TriggerSirenAudio(int _vehicle) + public void TriggerSirenAudio(uint _vehicle) { unsafe { - if (fn__triggerSirenAudio == null) fn__triggerSirenAudio = (delegate* unmanaged[Cdecl]) funcTable[0x66C3FB05206041BAUL]; + if (fn__triggerSirenAudio == null) fn__triggerSirenAudio = (delegate* unmanaged[Cdecl]) funcTable[0x66C3FB05206041BAUL]; var success = false; fn__triggerSirenAudio(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -40242,10 +40229,10 @@ public void TriggerSirenAudio(int _vehicle) } public void SetHornPermanentlyOn(IVehicle vehicle) => SetHornPermanentlyOn(vehicle.ScriptId); - public void SetHornPermanentlyOn(int _vehicle) + public void SetHornPermanentlyOn(uint _vehicle) { unsafe { - if (fn__setHornPermanentlyOn == null) fn__setHornPermanentlyOn = (delegate* unmanaged[Cdecl]) funcTable[0x9C11908013EA4715UL]; + if (fn__setHornPermanentlyOn == null) fn__setHornPermanentlyOn = (delegate* unmanaged[Cdecl]) funcTable[0x9C11908013EA4715UL]; var success = false; fn__setHornPermanentlyOn(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -40253,10 +40240,10 @@ public void SetHornPermanentlyOn(int _vehicle) } public void SetHornEnabled(IVehicle vehicle, bool toggle) => SetHornEnabled(vehicle.ScriptId, toggle); - public void SetHornEnabled(int _vehicle, bool _toggle) + public void SetHornEnabled(uint _vehicle, bool _toggle) { unsafe { - if (fn__setHornEnabled == null) fn__setHornEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x76D683C108594D0EUL]; + if (fn__setHornEnabled == null) fn__setHornEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x76D683C108594D0EUL]; var success = false; fn__setHornEnabled(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -40264,10 +40251,10 @@ public void SetHornEnabled(int _vehicle, bool _toggle) } public void SetAudioVehiclePriority(IVehicle vehicle, int p1) => SetAudioVehiclePriority(vehicle.ScriptId, p1); - public void SetAudioVehiclePriority(int _vehicle, int _p1) + public void SetAudioVehiclePriority(uint _vehicle, int _p1) { unsafe { - if (fn__setAudioVehiclePriority == null) fn__setAudioVehiclePriority = (delegate* unmanaged[Cdecl]) funcTable[0xE5564483E407F914UL]; + if (fn__setAudioVehiclePriority == null) fn__setAudioVehiclePriority = (delegate* unmanaged[Cdecl]) funcTable[0xE5564483E407F914UL]; var success = false; fn__setAudioVehiclePriority(&success, _vehicle, _p1); if (!success) throw new Exception("Native execution failed"); @@ -40275,10 +40262,10 @@ public void SetAudioVehiclePriority(int _vehicle, int _p1) } public void SetHornPermanentlyOnTime(IVehicle vehicle, float time) => SetHornPermanentlyOnTime(vehicle.ScriptId, time); - public void SetHornPermanentlyOnTime(int _vehicle, float _time) + public void SetHornPermanentlyOnTime(uint _vehicle, float _time) { unsafe { - if (fn__setHornPermanentlyOnTime == null) fn__setHornPermanentlyOnTime = (delegate* unmanaged[Cdecl]) funcTable[0x9D3AF56E94C9AE98UL]; + if (fn__setHornPermanentlyOnTime == null) fn__setHornPermanentlyOnTime = (delegate* unmanaged[Cdecl]) funcTable[0x9D3AF56E94C9AE98UL]; var success = false; fn__setHornPermanentlyOnTime(&success, _vehicle, _time); if (!success) throw new Exception("Native execution failed"); @@ -40286,10 +40273,10 @@ public void SetHornPermanentlyOnTime(int _vehicle, float _time) } public void UseSirenAsHorn(IVehicle vehicle, bool toggle) => UseSirenAsHorn(vehicle.ScriptId, toggle); - public void UseSirenAsHorn(int _vehicle, bool _toggle) + public void UseSirenAsHorn(uint _vehicle, bool _toggle) { unsafe { - if (fn__useSirenAsHorn == null) fn__useSirenAsHorn = (delegate* unmanaged[Cdecl]) funcTable[0xFA932DE350266EF8UL]; + if (fn__useSirenAsHorn == null) fn__useSirenAsHorn = (delegate* unmanaged[Cdecl]) funcTable[0xFA932DE350266EF8UL]; var success = false; fn__useSirenAsHorn(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -40297,14 +40284,14 @@ public void UseSirenAsHorn(int _vehicle, bool _toggle) } public void ForceUseAudioGameObject(IVehicle vehicle, string audioName) => ForceUseAudioGameObject(vehicle.ScriptId, audioName); - public void ForceUseAudioGameObject(int _vehicle, string _audioName) + public void ForceUseAudioGameObject(uint _vehicle, string _audioName) { unsafe { - if (fn__forceUseAudioGameObject == null) fn__forceUseAudioGameObject = (delegate* unmanaged[Cdecl]) funcTable[0x4F0C413926060B38UL]; + if (fn__forceUseAudioGameObject == null) fn__forceUseAudioGameObject = (delegate* unmanaged[Cdecl]) funcTable[0x4F0C413926060B38UL]; var success = false; - var ptr_audioName = _audioName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioName); + var ptr_audioName = MemoryUtils.StringToHGlobalUtf8(_audioName); fn__forceUseAudioGameObject(&success, _vehicle, ptr_audioName); - if (ptr_audioName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioName); + Marshal.FreeHGlobal(ptr_audioName); if (!success) throw new Exception("Native execution failed"); } } @@ -40320,25 +40307,25 @@ public void PreloadVehicleAudioBank(uint _vehicleModel) } public void SetVehicleStartupRevSound(IVehicle vehicle, string p1, string p2) => SetVehicleStartupRevSound(vehicle.ScriptId, p1, p2); - public void SetVehicleStartupRevSound(int _vehicle, string _p1, string _p2) + public void SetVehicleStartupRevSound(uint _vehicle, string _p1, string _p2) { unsafe { - if (fn__setVehicleStartupRevSound == null) fn__setVehicleStartupRevSound = (delegate* unmanaged[Cdecl]) funcTable[0xF1F8157B8C3F171CUL]; + if (fn__setVehicleStartupRevSound == null) fn__setVehicleStartupRevSound = (delegate* unmanaged[Cdecl]) funcTable[0xF1F8157B8C3F171CUL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); fn__setVehicleStartupRevSound(&success, _vehicle, ptr_p1, ptr_p2); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p2); if (!success) throw new Exception("Native execution failed"); } } public void ResetVehicleStartupRevSound(IVehicle vehicle) => ResetVehicleStartupRevSound(vehicle.ScriptId); - public void ResetVehicleStartupRevSound(int _vehicle) + public void ResetVehicleStartupRevSound(uint _vehicle) { unsafe { - if (fn__resetVehicleStartupRevSound == null) fn__resetVehicleStartupRevSound = (delegate* unmanaged[Cdecl]) funcTable[0xD2DCCD8E16E20997UL]; + if (fn__resetVehicleStartupRevSound == null) fn__resetVehicleStartupRevSound = (delegate* unmanaged[Cdecl]) funcTable[0xD2DCCD8E16E20997UL]; var success = false; fn__resetVehicleStartupRevSound(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -40356,10 +40343,10 @@ public void SetVehicleForceReverseWarning(int _p0, int _p1) } public bool IsVehicleAudiblyDamaged(IVehicle vehicle) => IsVehicleAudiblyDamaged(vehicle.ScriptId); - public bool IsVehicleAudiblyDamaged(int _vehicle) + public bool IsVehicleAudiblyDamaged(uint _vehicle) { unsafe { - if (fn__isVehicleAudiblyDamaged == null) fn__isVehicleAudiblyDamaged = (delegate* unmanaged[Cdecl]) funcTable[0x5DB8010EE71FDEF2UL]; + if (fn__isVehicleAudiblyDamaged == null) fn__isVehicleAudiblyDamaged = (delegate* unmanaged[Cdecl]) funcTable[0x5DB8010EE71FDEF2UL]; var success = false; var result = fn__isVehicleAudiblyDamaged(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -40368,10 +40355,10 @@ public bool IsVehicleAudiblyDamaged(int _vehicle) } public void SetVehicleAudioEngineDamageFactor(IVehicle vehicle, float damageFactor) => SetVehicleAudioEngineDamageFactor(vehicle.ScriptId, damageFactor); - public void SetVehicleAudioEngineDamageFactor(int _vehicle, float _damageFactor) + public void SetVehicleAudioEngineDamageFactor(uint _vehicle, float _damageFactor) { unsafe { - if (fn__setVehicleAudioEngineDamageFactor == null) fn__setVehicleAudioEngineDamageFactor = (delegate* unmanaged[Cdecl]) funcTable[0x59E7B488451F4D3AUL]; + if (fn__setVehicleAudioEngineDamageFactor == null) fn__setVehicleAudioEngineDamageFactor = (delegate* unmanaged[Cdecl]) funcTable[0x59E7B488451F4D3AUL]; var success = false; fn__setVehicleAudioEngineDamageFactor(&success, _vehicle, _damageFactor); if (!success) throw new Exception("Native execution failed"); @@ -40379,10 +40366,10 @@ public void SetVehicleAudioEngineDamageFactor(int _vehicle, float _damageFactor) } public void SetVehicleAudioBodyDamageFactor(IVehicle vehicle, float intensity) => SetVehicleAudioBodyDamageFactor(vehicle.ScriptId, intensity); - public void SetVehicleAudioBodyDamageFactor(int _vehicle, float _intensity) + public void SetVehicleAudioBodyDamageFactor(uint _vehicle, float _intensity) { unsafe { - if (fn__setVehicleAudioBodyDamageFactor == null) fn__setVehicleAudioBodyDamageFactor = (delegate* unmanaged[Cdecl]) funcTable[0x01BB4D577D38BD9EUL]; + if (fn__setVehicleAudioBodyDamageFactor == null) fn__setVehicleAudioBodyDamageFactor = (delegate* unmanaged[Cdecl]) funcTable[0x01BB4D577D38BD9EUL]; var success = false; fn__setVehicleAudioBodyDamageFactor(&success, _vehicle, _intensity); if (!success) throw new Exception("Native execution failed"); @@ -40390,10 +40377,10 @@ public void SetVehicleAudioBodyDamageFactor(int _vehicle, float _intensity) } public void EnableVehicleFanbeltDamage(IVehicle vehicle, bool toggle) => EnableVehicleFanbeltDamage(vehicle.ScriptId, toggle); - public void EnableVehicleFanbeltDamage(int _vehicle, bool _toggle) + public void EnableVehicleFanbeltDamage(uint _vehicle, bool _toggle) { unsafe { - if (fn__enableVehicleFanbeltDamage == null) fn__enableVehicleFanbeltDamage = (delegate* unmanaged[Cdecl]) funcTable[0x1C073274E065C6D2UL]; + if (fn__enableVehicleFanbeltDamage == null) fn__enableVehicleFanbeltDamage = (delegate* unmanaged[Cdecl]) funcTable[0x1C073274E065C6D2UL]; var success = false; fn__enableVehicleFanbeltDamage(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -40401,10 +40388,10 @@ public void EnableVehicleFanbeltDamage(int _vehicle, bool _toggle) } public void EnableVehicleExhaustPops(IVehicle vehicle, bool toggle) => EnableVehicleExhaustPops(vehicle.ScriptId, toggle); - public void EnableVehicleExhaustPops(int _vehicle, bool _toggle) + public void EnableVehicleExhaustPops(uint _vehicle, bool _toggle) { unsafe { - if (fn__enableVehicleExhaustPops == null) fn__enableVehicleExhaustPops = (delegate* unmanaged[Cdecl]) funcTable[0x2BE4BC731D039D5AUL]; + if (fn__enableVehicleExhaustPops == null) fn__enableVehicleExhaustPops = (delegate* unmanaged[Cdecl]) funcTable[0x2BE4BC731D039D5AUL]; var success = false; fn__enableVehicleExhaustPops(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -40412,10 +40399,10 @@ public void EnableVehicleExhaustPops(int _vehicle, bool _toggle) } public void SetVehicleBoostActive(IVehicle vehicle, bool toggle) => SetVehicleBoostActive(vehicle.ScriptId, toggle); - public void SetVehicleBoostActive(int _vehicle, bool _toggle) + public void SetVehicleBoostActive(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleBoostActive == null) fn__setVehicleBoostActive = (delegate* unmanaged[Cdecl]) funcTable[0x4A04DE7CAB2739A1UL]; + if (fn__setVehicleBoostActive == null) fn__setVehicleBoostActive = (delegate* unmanaged[Cdecl]) funcTable[0x4A04DE7CAB2739A1UL]; var success = false; fn__setVehicleBoostActive(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -40423,10 +40410,10 @@ public void SetVehicleBoostActive(int _vehicle, bool _toggle) } public void SetPlayerVehicleAlarmAudioActive(IVehicle vehicle, bool toggle) => SetPlayerVehicleAlarmAudioActive(vehicle.ScriptId, toggle); - public void SetPlayerVehicleAlarmAudioActive(int _vehicle, bool _toggle) + public void SetPlayerVehicleAlarmAudioActive(uint _vehicle, bool _toggle) { unsafe { - if (fn__setPlayerVehicleAlarmAudioActive == null) fn__setPlayerVehicleAlarmAudioActive = (delegate* unmanaged[Cdecl]) funcTable[0x6FDDAD856E36988AUL]; + if (fn__setPlayerVehicleAlarmAudioActive == null) fn__setPlayerVehicleAlarmAudioActive = (delegate* unmanaged[Cdecl]) funcTable[0x6FDDAD856E36988AUL]; var success = false; fn__setPlayerVehicleAlarmAudioActive(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -40444,10 +40431,10 @@ public void SetScriptUpdateDoorAudio(uint _doorHash, bool _toggle) } public void PlayVehicleDoorOpenSound(IVehicle vehicle, int doorId) => PlayVehicleDoorOpenSound(vehicle.ScriptId, doorId); - public void PlayVehicleDoorOpenSound(int _vehicle, int _doorId) + public void PlayVehicleDoorOpenSound(uint _vehicle, int _doorId) { unsafe { - if (fn__playVehicleDoorOpenSound == null) fn__playVehicleDoorOpenSound = (delegate* unmanaged[Cdecl]) funcTable[0x3A539D52857EA82DUL]; + if (fn__playVehicleDoorOpenSound == null) fn__playVehicleDoorOpenSound = (delegate* unmanaged[Cdecl]) funcTable[0x3A539D52857EA82DUL]; var success = false; fn__playVehicleDoorOpenSound(&success, _vehicle, _doorId); if (!success) throw new Exception("Native execution failed"); @@ -40455,10 +40442,10 @@ public void PlayVehicleDoorOpenSound(int _vehicle, int _doorId) } public void PlayVehicleDoorCloseSound(IVehicle vehicle, int doorId) => PlayVehicleDoorCloseSound(vehicle.ScriptId, doorId); - public void PlayVehicleDoorCloseSound(int _vehicle, int _doorId) + public void PlayVehicleDoorCloseSound(uint _vehicle, int _doorId) { unsafe { - if (fn__playVehicleDoorCloseSound == null) fn__playVehicleDoorCloseSound = (delegate* unmanaged[Cdecl]) funcTable[0x62A456AA4769EF34UL]; + if (fn__playVehicleDoorCloseSound == null) fn__playVehicleDoorCloseSound = (delegate* unmanaged[Cdecl]) funcTable[0x62A456AA4769EF34UL]; var success = false; fn__playVehicleDoorCloseSound(&success, _vehicle, _doorId); if (!success) throw new Exception("Native execution failed"); @@ -40466,10 +40453,10 @@ public void PlayVehicleDoorCloseSound(int _vehicle, int _doorId) } public void EnableStallWarningSounds(IVehicle vehicle, bool toggle) => EnableStallWarningSounds(vehicle.ScriptId, toggle); - public void EnableStallWarningSounds(int _vehicle, bool _toggle) + public void EnableStallWarningSounds(uint _vehicle, bool _toggle) { unsafe { - if (fn__enableStallWarningSounds == null) fn__enableStallWarningSounds = (delegate* unmanaged[Cdecl]) funcTable[0xC15907D667F7CFB2UL]; + if (fn__enableStallWarningSounds == null) fn__enableStallWarningSounds = (delegate* unmanaged[Cdecl]) funcTable[0xC15907D667F7CFB2UL]; var success = false; fn__enableStallWarningSounds(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -40502,9 +40489,9 @@ public void PlayMissionCompleteAudio(string _audioName) unsafe { if (fn__playMissionCompleteAudio == null) fn__playMissionCompleteAudio = (delegate* unmanaged[Cdecl]) funcTable[0xB138AAB8A70D3C69UL]; var success = false; - var ptr_audioName = _audioName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioName); + var ptr_audioName = MemoryUtils.StringToHGlobalUtf8(_audioName); fn__playMissionCompleteAudio(&success, ptr_audioName); - if (ptr_audioName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioName); + Marshal.FreeHGlobal(ptr_audioName); if (!success) throw new Exception("Native execution failed"); } } @@ -40546,9 +40533,9 @@ public bool StartAudioScene(string _scene) unsafe { if (fn__startAudioScene == null) fn__startAudioScene = (delegate* unmanaged[Cdecl]) funcTable[0x013A80FC08F6E4F2UL]; var success = false; - var ptr_scene = _scene == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scene); + var ptr_scene = MemoryUtils.StringToHGlobalUtf8(_scene); var result = fn__startAudioScene(&success, ptr_scene); - if (ptr_scene != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scene); + Marshal.FreeHGlobal(ptr_scene); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -40559,9 +40546,9 @@ public void StopAudioScene(string _scene) unsafe { if (fn__stopAudioScene == null) fn__stopAudioScene = (delegate* unmanaged[Cdecl]) funcTable[0xDFE8422B3B94E688UL]; var success = false; - var ptr_scene = _scene == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scene); + var ptr_scene = MemoryUtils.StringToHGlobalUtf8(_scene); fn__stopAudioScene(&success, ptr_scene); - if (ptr_scene != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scene); + Marshal.FreeHGlobal(ptr_scene); if (!success) throw new Exception("Native execution failed"); } } @@ -40581,9 +40568,9 @@ public bool IsAudioSceneActive(string _scene) unsafe { if (fn__isAudioSceneActive == null) fn__isAudioSceneActive = (delegate* unmanaged[Cdecl]) funcTable[0xB65B60556E2A9225UL]; var success = false; - var ptr_scene = _scene == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scene); + var ptr_scene = MemoryUtils.StringToHGlobalUtf8(_scene); var result = fn__isAudioSceneActive(&success, ptr_scene); - if (ptr_scene != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scene); + Marshal.FreeHGlobal(ptr_scene); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -40594,11 +40581,11 @@ public void SetAudioSceneVariable(string _scene, string _unkVariable, float _val unsafe { if (fn__setAudioSceneVariable == null) fn__setAudioSceneVariable = (delegate* unmanaged[Cdecl]) funcTable[0xEF21A9EF089A2668UL]; var success = false; - var ptr_scene = _scene == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scene); - var ptr_unkVariable = _unkVariable == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_unkVariable); + var ptr_scene = MemoryUtils.StringToHGlobalUtf8(_scene); + var ptr_unkVariable = MemoryUtils.StringToHGlobalUtf8(_unkVariable); fn__setAudioSceneVariable(&success, ptr_scene, ptr_unkVariable, _value); - if (ptr_scene != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scene); - if (ptr_unkVariable != IntPtr.Zero) Marshal.FreeHGlobal(ptr_unkVariable); + Marshal.FreeHGlobal(ptr_scene); + Marshal.FreeHGlobal(ptr_unkVariable); if (!success) throw new Exception("Native execution failed"); } } @@ -40614,23 +40601,23 @@ public void SetAudioScriptCleanupTime(int _time) } public void AddEntityToAudioMixGroup(IEntity entity, string groupName, float p2) => AddEntityToAudioMixGroup(entity.ScriptId, groupName, p2); - public void AddEntityToAudioMixGroup(int _entity, string _groupName, float _p2) + public void AddEntityToAudioMixGroup(uint _entity, string _groupName, float _p2) { unsafe { - if (fn__addEntityToAudioMixGroup == null) fn__addEntityToAudioMixGroup = (delegate* unmanaged[Cdecl]) funcTable[0x153973AB99FE8980UL]; + if (fn__addEntityToAudioMixGroup == null) fn__addEntityToAudioMixGroup = (delegate* unmanaged[Cdecl]) funcTable[0x153973AB99FE8980UL]; var success = false; - var ptr_groupName = _groupName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_groupName); + var ptr_groupName = MemoryUtils.StringToHGlobalUtf8(_groupName); fn__addEntityToAudioMixGroup(&success, _entity, ptr_groupName, _p2); - if (ptr_groupName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_groupName); + Marshal.FreeHGlobal(ptr_groupName); if (!success) throw new Exception("Native execution failed"); } } public void RemoveEntityFromAudioMixGroup(IEntity entity, float p1) => RemoveEntityFromAudioMixGroup(entity.ScriptId, p1); - public void RemoveEntityFromAudioMixGroup(int _entity, float _p1) + public void RemoveEntityFromAudioMixGroup(uint _entity, float _p1) { unsafe { - if (fn__removeEntityFromAudioMixGroup == null) fn__removeEntityFromAudioMixGroup = (delegate* unmanaged[Cdecl]) funcTable[0x18EB48CFC41F2EA0UL]; + if (fn__removeEntityFromAudioMixGroup == null) fn__removeEntityFromAudioMixGroup = (delegate* unmanaged[Cdecl]) funcTable[0x18EB48CFC41F2EA0UL]; var success = false; fn__removeEntityFromAudioMixGroup(&success, _entity, _p1); if (!success) throw new Exception("Native execution failed"); @@ -40664,9 +40651,9 @@ public bool PrepareMusicEvent(string _eventName) unsafe { if (fn__prepareMusicEvent == null) fn__prepareMusicEvent = (delegate* unmanaged[Cdecl]) funcTable[0x1E5185B72EF5158AUL]; var success = false; - var ptr_eventName = _eventName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_eventName); + var ptr_eventName = MemoryUtils.StringToHGlobalUtf8(_eventName); var result = fn__prepareMusicEvent(&success, ptr_eventName); - if (ptr_eventName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_eventName); + Marshal.FreeHGlobal(ptr_eventName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -40677,9 +40664,9 @@ public bool CancelMusicEvent(string _eventName) unsafe { if (fn__cancelMusicEvent == null) fn__cancelMusicEvent = (delegate* unmanaged[Cdecl]) funcTable[0x5B17A90291133DA5UL]; var success = false; - var ptr_eventName = _eventName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_eventName); + var ptr_eventName = MemoryUtils.StringToHGlobalUtf8(_eventName); var result = fn__cancelMusicEvent(&success, ptr_eventName); - if (ptr_eventName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_eventName); + Marshal.FreeHGlobal(ptr_eventName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -40690,9 +40677,9 @@ public bool TriggerMusicEvent(string _eventName) unsafe { if (fn__triggerMusicEvent == null) fn__triggerMusicEvent = (delegate* unmanaged[Cdecl]) funcTable[0x706D57B0F50DA710UL]; var success = false; - var ptr_eventName = _eventName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_eventName); + var ptr_eventName = MemoryUtils.StringToHGlobalUtf8(_eventName); var result = fn__triggerMusicEvent(&success, ptr_eventName); - if (ptr_eventName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_eventName); + Marshal.FreeHGlobal(ptr_eventName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -40795,9 +40782,9 @@ public bool PrepareAlarm(string _alarmName) unsafe { if (fn__prepareAlarm == null) fn__prepareAlarm = (delegate* unmanaged[Cdecl]) funcTable[0x9D74AE343DB65533UL]; var success = false; - var ptr_alarmName = _alarmName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_alarmName); + var ptr_alarmName = MemoryUtils.StringToHGlobalUtf8(_alarmName); var result = fn__prepareAlarm(&success, ptr_alarmName); - if (ptr_alarmName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_alarmName); + Marshal.FreeHGlobal(ptr_alarmName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -40808,9 +40795,9 @@ public void StartAlarm(string _alarmName, bool _p2) unsafe { if (fn__startAlarm == null) fn__startAlarm = (delegate* unmanaged[Cdecl]) funcTable[0x0355EF116C4C97B2UL]; var success = false; - var ptr_alarmName = _alarmName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_alarmName); + var ptr_alarmName = MemoryUtils.StringToHGlobalUtf8(_alarmName); fn__startAlarm(&success, ptr_alarmName, (byte) (_p2 ? 1 : 0)); - if (ptr_alarmName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_alarmName); + Marshal.FreeHGlobal(ptr_alarmName); if (!success) throw new Exception("Native execution failed"); } } @@ -40820,9 +40807,9 @@ public void StopAlarm(string _alarmName, bool _toggle) unsafe { if (fn__stopAlarm == null) fn__stopAlarm = (delegate* unmanaged[Cdecl]) funcTable[0xA1CADDCD98415A41UL]; var success = false; - var ptr_alarmName = _alarmName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_alarmName); + var ptr_alarmName = MemoryUtils.StringToHGlobalUtf8(_alarmName); fn__stopAlarm(&success, ptr_alarmName, (byte) (_toggle ? 1 : 0)); - if (ptr_alarmName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_alarmName); + Marshal.FreeHGlobal(ptr_alarmName); if (!success) throw new Exception("Native execution failed"); } } @@ -40842,19 +40829,19 @@ public bool IsAlarmPlaying(string _alarmName) unsafe { if (fn__isAlarmPlaying == null) fn__isAlarmPlaying = (delegate* unmanaged[Cdecl]) funcTable[0x226435CB96CCFC8CUL]; var success = false; - var ptr_alarmName = _alarmName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_alarmName); + var ptr_alarmName = MemoryUtils.StringToHGlobalUtf8(_alarmName); var result = fn__isAlarmPlaying(&success, ptr_alarmName); - if (ptr_alarmName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_alarmName); + Marshal.FreeHGlobal(ptr_alarmName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public uint GetVehicleDefaultHorn(IVehicle vehicle) => GetVehicleDefaultHorn(vehicle.ScriptId); - public uint GetVehicleDefaultHorn(int _vehicle) + public uint GetVehicleDefaultHorn(uint _vehicle) { unsafe { - if (fn__getVehicleDefaultHorn == null) fn__getVehicleDefaultHorn = (delegate* unmanaged[Cdecl]) funcTable[0x02165D55000219ACUL]; + if (fn__getVehicleDefaultHorn == null) fn__getVehicleDefaultHorn = (delegate* unmanaged[Cdecl]) funcTable[0x02165D55000219ACUL]; var success = false; var result = fn__getVehicleDefaultHorn(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -40863,10 +40850,10 @@ public uint GetVehicleDefaultHorn(int _vehicle) } public uint GetVehicleDefaultHornIgnoreMods(IVehicle vehicle) => GetVehicleDefaultHornIgnoreMods(vehicle.ScriptId); - public uint GetVehicleDefaultHornIgnoreMods(int _vehicle) + public uint GetVehicleDefaultHornIgnoreMods(uint _vehicle) { unsafe { - if (fn__getVehicleDefaultHornIgnoreMods == null) fn__getVehicleDefaultHornIgnoreMods = (delegate* unmanaged[Cdecl]) funcTable[0xACB5DCCA1EC76840UL]; + if (fn__getVehicleDefaultHornIgnoreMods == null) fn__getVehicleDefaultHornIgnoreMods = (delegate* unmanaged[Cdecl]) funcTable[0xACB5DCCA1EC76840UL]; var success = false; var result = fn__getVehicleDefaultHornIgnoreMods(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -40875,10 +40862,10 @@ public uint GetVehicleDefaultHornIgnoreMods(int _vehicle) } public void ResetPedAudioFlags(IPlayer ped) => ResetPedAudioFlags(ped.ScriptId); - public void ResetPedAudioFlags(int _ped) + public void ResetPedAudioFlags(uint _ped) { unsafe { - if (fn__resetPedAudioFlags == null) fn__resetPedAudioFlags = (delegate* unmanaged[Cdecl]) funcTable[0xF54BB7B61036F335UL]; + if (fn__resetPedAudioFlags == null) fn__resetPedAudioFlags = (delegate* unmanaged[Cdecl]) funcTable[0xF54BB7B61036F335UL]; var success = false; fn__resetPedAudioFlags(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -40886,10 +40873,10 @@ public void ResetPedAudioFlags(int _ped) } public void SetPedFootstepsEventsEnabled(IPlayer ped, bool toggle) => SetPedFootstepsEventsEnabled(ped.ScriptId, toggle); - public void SetPedFootstepsEventsEnabled(int _ped, bool _toggle) + public void SetPedFootstepsEventsEnabled(uint _ped, bool _toggle) { unsafe { - if (fn__setPedFootstepsEventsEnabled == null) fn__setPedFootstepsEventsEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x0653B735BFBDFE87UL]; + if (fn__setPedFootstepsEventsEnabled == null) fn__setPedFootstepsEventsEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x0653B735BFBDFE87UL]; var success = false; fn__setPedFootstepsEventsEnabled(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -40897,10 +40884,10 @@ public void SetPedFootstepsEventsEnabled(int _ped, bool _toggle) } public void SetPedClothEventsEnabled(IPlayer ped, bool toggle) => SetPedClothEventsEnabled(ped.ScriptId, toggle); - public void SetPedClothEventsEnabled(int _ped, bool _toggle) + public void SetPedClothEventsEnabled(uint _ped, bool _toggle) { unsafe { - if (fn__setPedClothEventsEnabled == null) fn__setPedClothEventsEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x29DA3CA8D8B2692DUL]; + if (fn__setPedClothEventsEnabled == null) fn__setPedClothEventsEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x29DA3CA8D8B2692DUL]; var success = false; fn__setPedClothEventsEnabled(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -40918,10 +40905,10 @@ public void OverridePlayerGroundMaterial(uint _hash, bool _toggle) } public void UseFootstepScriptSweeteners(IPlayer ped, bool p1, uint hash) => UseFootstepScriptSweeteners(ped.ScriptId, p1, hash); - public void UseFootstepScriptSweeteners(int _ped, bool _p1, uint _hash) + public void UseFootstepScriptSweeteners(uint _ped, bool _p1, uint _hash) { unsafe { - if (fn__useFootstepScriptSweeteners == null) fn__useFootstepScriptSweeteners = (delegate* unmanaged[Cdecl]) funcTable[0xBF4DC1784BE94DFAUL]; + if (fn__useFootstepScriptSweeteners == null) fn__useFootstepScriptSweeteners = (delegate* unmanaged[Cdecl]) funcTable[0xBF4DC1784BE94DFAUL]; var success = false; fn__useFootstepScriptSweeteners(&success, _ped, (byte) (_p1 ? 1 : 0), _hash); if (!success) throw new Exception("Native execution failed"); @@ -40959,10 +40946,10 @@ public void DistantCopCarSirens(bool _value) } public void SetSirenCanBeControlledByAudio(IVehicle vehicle, bool p1) => SetSirenCanBeControlledByAudio(vehicle.ScriptId, p1); - public void SetSirenCanBeControlledByAudio(int _vehicle, bool _p1) + public void SetSirenCanBeControlledByAudio(uint _vehicle, bool _p1) { unsafe { - if (fn__setSirenCanBeControlledByAudio == null) fn__setSirenCanBeControlledByAudio = (delegate* unmanaged[Cdecl]) funcTable[0x43FA0DFC5DF87815UL]; + if (fn__setSirenCanBeControlledByAudio == null) fn__setSirenCanBeControlledByAudio = (delegate* unmanaged[Cdecl]) funcTable[0x43FA0DFC5DF87815UL]; var success = false; fn__setSirenCanBeControlledByAudio(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -40984,9 +40971,9 @@ public void SetAudioFlag(string _flagName, bool _toggle) unsafe { if (fn__setAudioFlag == null) fn__setAudioFlag = (delegate* unmanaged[Cdecl]) funcTable[0xB9EFD5C25018725AUL]; var success = false; - var ptr_flagName = _flagName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_flagName); + var ptr_flagName = MemoryUtils.StringToHGlobalUtf8(_flagName); fn__setAudioFlag(&success, ptr_flagName, (byte) (_toggle ? 1 : 0)); - if (ptr_flagName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_flagName); + Marshal.FreeHGlobal(ptr_flagName); if (!success) throw new Exception("Native execution failed"); } } @@ -40996,9 +40983,9 @@ public bool PrepareSynchronizedAudioEvent(string _audioEvent, int _p1) unsafe { if (fn__prepareSynchronizedAudioEvent == null) fn__prepareSynchronizedAudioEvent = (delegate* unmanaged[Cdecl]) funcTable[0xC7ABCACA4985A766UL]; var success = false; - var ptr_audioEvent = _audioEvent == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioEvent); + var ptr_audioEvent = MemoryUtils.StringToHGlobalUtf8(_audioEvent); var result = fn__prepareSynchronizedAudioEvent(&success, ptr_audioEvent, _p1); - if (ptr_audioEvent != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioEvent); + Marshal.FreeHGlobal(ptr_audioEvent); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -41009,9 +40996,9 @@ public bool PrepareSynchronizedAudioEventForScene(int _sceneID, string _audioEve unsafe { if (fn__prepareSynchronizedAudioEventForScene == null) fn__prepareSynchronizedAudioEventForScene = (delegate* unmanaged[Cdecl]) funcTable[0x029FE7CD1B7E2E75UL]; var success = false; - var ptr_audioEvent = _audioEvent == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioEvent); + var ptr_audioEvent = MemoryUtils.StringToHGlobalUtf8(_audioEvent); var result = fn__prepareSynchronizedAudioEventForScene(&success, _sceneID, ptr_audioEvent); - if (ptr_audioEvent != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioEvent); + Marshal.FreeHGlobal(ptr_audioEvent); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -41044,22 +41031,22 @@ public void InitSynchSceneAudioWithPosition(string _audioEvent, float _x, float unsafe { if (fn__initSynchSceneAudioWithPosition == null) fn__initSynchSceneAudioWithPosition = (delegate* unmanaged[Cdecl]) funcTable[0xC8EDE9BDBCCBA6D4UL]; var success = false; - var ptr_audioEvent = _audioEvent == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioEvent); + var ptr_audioEvent = MemoryUtils.StringToHGlobalUtf8(_audioEvent); fn__initSynchSceneAudioWithPosition(&success, ptr_audioEvent, _x, _y, _z); - if (ptr_audioEvent != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioEvent); + Marshal.FreeHGlobal(ptr_audioEvent); if (!success) throw new Exception("Native execution failed"); } } public void InitSynchSceneAudioWithEntity(string audioEvent, IEntity entity) => InitSynchSceneAudioWithEntity(audioEvent, entity.ScriptId); - public void InitSynchSceneAudioWithEntity(string _audioEvent, int _entity) + public void InitSynchSceneAudioWithEntity(string _audioEvent, uint _entity) { unsafe { - if (fn__initSynchSceneAudioWithEntity == null) fn__initSynchSceneAudioWithEntity = (delegate* unmanaged[Cdecl]) funcTable[0x950A154B8DAB6185UL]; + if (fn__initSynchSceneAudioWithEntity == null) fn__initSynchSceneAudioWithEntity = (delegate* unmanaged[Cdecl]) funcTable[0x950A154B8DAB6185UL]; var success = false; - var ptr_audioEvent = _audioEvent == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_audioEvent); + var ptr_audioEvent = MemoryUtils.StringToHGlobalUtf8(_audioEvent); fn__initSynchSceneAudioWithEntity(&success, ptr_audioEvent, _entity); - if (ptr_audioEvent != IntPtr.Zero) Marshal.FreeHGlobal(ptr_audioEvent); + Marshal.FreeHGlobal(ptr_audioEvent); if (!success) throw new Exception("Native execution failed"); } } @@ -41079,11 +41066,11 @@ public void SetPortalSettingsOverride(string _p0, string _p1) unsafe { if (fn__setPortalSettingsOverride == null) fn__setPortalSettingsOverride = (delegate* unmanaged[Cdecl]) funcTable[0x044DBAD7A7FA2BE5UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); fn__setPortalSettingsOverride(&success, ptr_p0, ptr_p1); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); } } @@ -41093,9 +41080,9 @@ public void RemovePortalSettingsOverride(string _p0) unsafe { if (fn__removePortalSettingsOverride == null) fn__removePortalSettingsOverride = (delegate* unmanaged[Cdecl]) funcTable[0xB4BBFD9CD8B3922BUL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__removePortalSettingsOverride(&success, ptr_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -41122,10 +41109,10 @@ public int GetMusicVolSlider() } public void RequestTennisBanks(IPlayer ped) => RequestTennisBanks(ped.ScriptId); - public void RequestTennisBanks(int _ped) + public void RequestTennisBanks(uint _ped) { unsafe { - if (fn__requestTennisBanks == null) fn__requestTennisBanks = (delegate* unmanaged[Cdecl]) funcTable[0x4ADA3F19BE4A6047UL]; + if (fn__requestTennisBanks == null) fn__requestTennisBanks = (delegate* unmanaged[Cdecl]) funcTable[0x4ADA3F19BE4A6047UL]; var success = false; fn__requestTennisBanks(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -41185,10 +41172,10 @@ public bool HasLoadedSpDataSet() } public int GetVehicleHornSoundIndex(IVehicle vehicle) => GetVehicleHornSoundIndex(vehicle.ScriptId); - public int GetVehicleHornSoundIndex(int _vehicle) + public int GetVehicleHornSoundIndex(uint _vehicle) { unsafe { - if (fn__getVehicleHornSoundIndex == null) fn__getVehicleHornSoundIndex = (delegate* unmanaged[Cdecl]) funcTable[0xD53F3A29BCE2580EUL]; + if (fn__getVehicleHornSoundIndex == null) fn__getVehicleHornSoundIndex = (delegate* unmanaged[Cdecl]) funcTable[0xD53F3A29BCE2580EUL]; var success = false; var result = fn__getVehicleHornSoundIndex(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -41197,10 +41184,10 @@ public int GetVehicleHornSoundIndex(int _vehicle) } public void SetVehicleHornSoundIndex(IVehicle vehicle, int value) => SetVehicleHornSoundIndex(vehicle.ScriptId, value); - public void SetVehicleHornSoundIndex(int _vehicle, int _value) + public void SetVehicleHornSoundIndex(uint _vehicle, int _value) { unsafe { - if (fn__setVehicleHornSoundIndex == null) fn__setVehicleHornSoundIndex = (delegate* unmanaged[Cdecl]) funcTable[0x0350E7E17BA767D0UL]; + if (fn__setVehicleHornSoundIndex == null) fn__setVehicleHornSoundIndex = (delegate* unmanaged[Cdecl]) funcTable[0x0350E7E17BA767D0UL]; var success = false; fn__setVehicleHornSoundIndex(&success, _vehicle, _value); if (!success) throw new Exception("Native execution failed"); @@ -41212,9 +41199,9 @@ public void AddScriptToRandomPed(string _name, uint _model, float _p2, float _p3 unsafe { if (fn__addScriptToRandomPed == null) fn__addScriptToRandomPed = (delegate* unmanaged[Cdecl]) funcTable[0x4EE5367468A65CCCUL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__addScriptToRandomPed(&success, ptr_name, _model, _p2, _p3); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -41224,17 +41211,17 @@ public void RegisterObjectScriptBrain(string _scriptName, uint _modelHash, int _ unsafe { if (fn__registerObjectScriptBrain == null) fn__registerObjectScriptBrain = (delegate* unmanaged[Cdecl]) funcTable[0x0BE84C318BA6EC22UL]; var success = false; - var ptr_scriptName = _scriptName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scriptName); + var ptr_scriptName = MemoryUtils.StringToHGlobalUtf8(_scriptName); fn__registerObjectScriptBrain(&success, ptr_scriptName, _modelHash, _p2, _activationRange, _p4, _p5); - if (ptr_scriptName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scriptName); + Marshal.FreeHGlobal(ptr_scriptName); if (!success) throw new Exception("Native execution failed"); } } - public bool IsObjectWithinBrainActivationRange(int _object) + public bool IsObjectWithinBrainActivationRange(uint _object) { unsafe { - if (fn__isObjectWithinBrainActivationRange == null) fn__isObjectWithinBrainActivationRange = (delegate* unmanaged[Cdecl]) funcTable[0xCCBA154209823057UL]; + if (fn__isObjectWithinBrainActivationRange == null) fn__isObjectWithinBrainActivationRange = (delegate* unmanaged[Cdecl]) funcTable[0xCCBA154209823057UL]; var success = false; var result = fn__isObjectWithinBrainActivationRange(&success, _object); if (!success) throw new Exception("Native execution failed"); @@ -41247,9 +41234,9 @@ public void RegisterWorldPointScriptBrain(string _scriptName, float _activationR unsafe { if (fn__registerWorldPointScriptBrain == null) fn__registerWorldPointScriptBrain = (delegate* unmanaged[Cdecl]) funcTable[0x3CDC7136613284BDUL]; var success = false; - var ptr_scriptName = _scriptName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scriptName); + var ptr_scriptName = MemoryUtils.StringToHGlobalUtf8(_scriptName); fn__registerWorldPointScriptBrain(&success, ptr_scriptName, _activationRange, _p2); - if (ptr_scriptName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scriptName); + Marshal.FreeHGlobal(ptr_scriptName); if (!success) throw new Exception("Native execution failed"); } } @@ -41310,9 +41297,9 @@ public void ReactivateNamedWorldBrainsWaitingTillOutOfRange(string _scriptName) unsafe { if (fn__reactivateNamedWorldBrainsWaitingTillOutOfRange == null) fn__reactivateNamedWorldBrainsWaitingTillOutOfRange = (delegate* unmanaged[Cdecl]) funcTable[0x6D6840CEE8845831UL]; var success = false; - var ptr_scriptName = _scriptName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scriptName); + var ptr_scriptName = MemoryUtils.StringToHGlobalUtf8(_scriptName); fn__reactivateNamedWorldBrainsWaitingTillOutOfRange(&success, ptr_scriptName); - if (ptr_scriptName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scriptName); + Marshal.FreeHGlobal(ptr_scriptName); if (!success) throw new Exception("Native execution failed"); } } @@ -41322,9 +41309,9 @@ public void ReactivateNamedObjectBrainsWaitingTillOutOfRange(string _scriptName) unsafe { if (fn__reactivateNamedObjectBrainsWaitingTillOutOfRange == null) fn__reactivateNamedObjectBrainsWaitingTillOutOfRange = (delegate* unmanaged[Cdecl]) funcTable[0x6E91B04E08773030UL]; var success = false; - var ptr_scriptName = _scriptName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scriptName); + var ptr_scriptName = MemoryUtils.StringToHGlobalUtf8(_scriptName); fn__reactivateNamedObjectBrainsWaitingTillOutOfRange(&success, ptr_scriptName); - if (ptr_scriptName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scriptName); + Marshal.FreeHGlobal(ptr_scriptName); if (!success) throw new Exception("Native execution failed"); } } @@ -41354,9 +41341,9 @@ public int CreateCam(string _camName, bool _p1) unsafe { if (fn__createCam == null) fn__createCam = (delegate* unmanaged[Cdecl]) funcTable[0xC3981DCE61D9E13FUL]; var success = false; - var ptr_camName = _camName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_camName); + var ptr_camName = MemoryUtils.StringToHGlobalUtf8(_camName); var result = fn__createCam(&success, ptr_camName, (byte) (_p1 ? 1 : 0)); - if (ptr_camName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_camName); + Marshal.FreeHGlobal(ptr_camName); if (!success) throw new Exception("Native execution failed"); return result; } @@ -41367,9 +41354,9 @@ public int CreateCamWithParams(string _camName, float _posX, float _posY, float unsafe { if (fn__createCamWithParams == null) fn__createCamWithParams = (delegate* unmanaged[Cdecl]) funcTable[0xB51194800B257161UL]; var success = false; - var ptr_camName = _camName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_camName); + var ptr_camName = MemoryUtils.StringToHGlobalUtf8(_camName); var result = fn__createCamWithParams(&success, ptr_camName, _posX, _posY, _posZ, _rotX, _rotY, _rotZ, _fov, (byte) (_p8 ? 1 : 0), _p9); - if (ptr_camName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_camName); + Marshal.FreeHGlobal(ptr_camName); if (!success) throw new Exception("Native execution failed"); return result; } @@ -41780,10 +41767,10 @@ public void SetCamDofMaxNearInFocusDistanceBlendLevel(int _camera, float _p1) } public void AttachCamToEntity(int cam, IEntity entity, float xOffset, float yOffset, float zOffset, bool isRelative) => AttachCamToEntity(cam, entity.ScriptId, xOffset, yOffset, zOffset, isRelative); - public void AttachCamToEntity(int _cam, int _entity, float _xOffset, float _yOffset, float _zOffset, bool _isRelative) + public void AttachCamToEntity(int _cam, uint _entity, float _xOffset, float _yOffset, float _zOffset, bool _isRelative) { unsafe { - if (fn__attachCamToEntity == null) fn__attachCamToEntity = (delegate* unmanaged[Cdecl]) funcTable[0xFEDB7D269E8C60E3UL]; + if (fn__attachCamToEntity == null) fn__attachCamToEntity = (delegate* unmanaged[Cdecl]) funcTable[0xFEDB7D269E8C60E3UL]; var success = false; fn__attachCamToEntity(&success, _cam, _entity, _xOffset, _yOffset, _zOffset, (byte) (_isRelative ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -41791,10 +41778,10 @@ public void AttachCamToEntity(int _cam, int _entity, float _xOffset, float _yOff } public void AttachCamToPedBone(int cam, IPlayer ped, int boneIndex, float x, float y, float z, bool heading) => AttachCamToPedBone(cam, ped.ScriptId, boneIndex, x, y, z, heading); - public void AttachCamToPedBone(int _cam, int _ped, int _boneIndex, float _x, float _y, float _z, bool _heading) + public void AttachCamToPedBone(int _cam, uint _ped, int _boneIndex, float _x, float _y, float _z, bool _heading) { unsafe { - if (fn__attachCamToPedBone == null) fn__attachCamToPedBone = (delegate* unmanaged[Cdecl]) funcTable[0x61A3DBA14AB7F411UL]; + if (fn__attachCamToPedBone == null) fn__attachCamToPedBone = (delegate* unmanaged[Cdecl]) funcTable[0x61A3DBA14AB7F411UL]; var success = false; fn__attachCamToPedBone(&success, _cam, _ped, _boneIndex, _x, _y, _z, (byte) (_heading ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -41802,10 +41789,10 @@ public void AttachCamToPedBone(int _cam, int _ped, int _boneIndex, float _x, flo } public void HardAttachCamToPedBone(int cam, IPlayer ped, int boneIndex, float p3, float p4, float p5, float p6, float p7, float p8, bool p9) => HardAttachCamToPedBone(cam, ped.ScriptId, boneIndex, p3, p4, p5, p6, p7, p8, p9); - public void HardAttachCamToPedBone(int _cam, int _ped, int _boneIndex, float _p3, float _p4, float _p5, float _p6, float _p7, float _p8, bool _p9) + public void HardAttachCamToPedBone(int _cam, uint _ped, int _boneIndex, float _p3, float _p4, float _p5, float _p6, float _p7, float _p8, bool _p9) { unsafe { - if (fn__hardAttachCamToPedBone == null) fn__hardAttachCamToPedBone = (delegate* unmanaged[Cdecl]) funcTable[0x149916F50C34A40DUL]; + if (fn__hardAttachCamToPedBone == null) fn__hardAttachCamToPedBone = (delegate* unmanaged[Cdecl]) funcTable[0x149916F50C34A40DUL]; var success = false; fn__hardAttachCamToPedBone(&success, _cam, _ped, _boneIndex, _p3, _p4, _p5, _p6, _p7, _p8, (byte) (_p9 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -41813,10 +41800,10 @@ public void HardAttachCamToPedBone(int _cam, int _ped, int _boneIndex, float _p3 } public void HardAttachCamToEntity(int cam, IEntity entity, float xRot, float yRot, float zRot, float xOffset, float yOffset, float zOffset, bool isRelative) => HardAttachCamToEntity(cam, entity.ScriptId, xRot, yRot, zRot, xOffset, yOffset, zOffset, isRelative); - public void HardAttachCamToEntity(int _cam, int _entity, float _xRot, float _yRot, float _zRot, float _xOffset, float _yOffset, float _zOffset, bool _isRelative) + public void HardAttachCamToEntity(int _cam, uint _entity, float _xRot, float _yRot, float _zRot, float _xOffset, float _yOffset, float _zOffset, bool _isRelative) { unsafe { - if (fn__hardAttachCamToEntity == null) fn__hardAttachCamToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x202A5ED9CE01D6E7UL]; + if (fn__hardAttachCamToEntity == null) fn__hardAttachCamToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x202A5ED9CE01D6E7UL]; var success = false; fn__hardAttachCamToEntity(&success, _cam, _entity, _xRot, _yRot, _zRot, _xOffset, _yOffset, _zOffset, (byte) (_isRelative ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -41824,10 +41811,10 @@ public void HardAttachCamToEntity(int _cam, int _entity, float _xRot, float _yRo } public void AttachCamToVehicleBone(int cam, IVehicle vehicle, int boneIndex, bool relativeRotation, float rotX, float rotY, float rotZ, float offsetX, float offsetY, float offsetZ, bool fixedDirection) => AttachCamToVehicleBone(cam, vehicle.ScriptId, boneIndex, relativeRotation, rotX, rotY, rotZ, offsetX, offsetY, offsetZ, fixedDirection); - public void AttachCamToVehicleBone(int _cam, int _vehicle, int _boneIndex, bool _relativeRotation, float _rotX, float _rotY, float _rotZ, float _offsetX, float _offsetY, float _offsetZ, bool _fixedDirection) + public void AttachCamToVehicleBone(int _cam, uint _vehicle, int _boneIndex, bool _relativeRotation, float _rotX, float _rotY, float _rotZ, float _offsetX, float _offsetY, float _offsetZ, bool _fixedDirection) { unsafe { - if (fn__attachCamToVehicleBone == null) fn__attachCamToVehicleBone = (delegate* unmanaged[Cdecl]) funcTable[0x8DB3F12A02CAEF72UL]; + if (fn__attachCamToVehicleBone == null) fn__attachCamToVehicleBone = (delegate* unmanaged[Cdecl]) funcTable[0x8DB3F12A02CAEF72UL]; var success = false; fn__attachCamToVehicleBone(&success, _cam, _vehicle, _boneIndex, (byte) (_relativeRotation ? 1 : 0), _rotX, _rotY, _rotZ, _offsetX, _offsetY, _offsetZ, (byte) (_fixedDirection ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -41865,10 +41852,10 @@ public void PointCamAtCoord(int _cam, float _x, float _y, float _z) } public void PointCamAtEntity(int cam, IEntity entity, float p2, float p3, float p4, bool p5) => PointCamAtEntity(cam, entity.ScriptId, p2, p3, p4, p5); - public void PointCamAtEntity(int _cam, int _entity, float _p2, float _p3, float _p4, bool _p5) + public void PointCamAtEntity(int _cam, uint _entity, float _p2, float _p3, float _p4, bool _p5) { unsafe { - if (fn__pointCamAtEntity == null) fn__pointCamAtEntity = (delegate* unmanaged[Cdecl]) funcTable[0x5640BFF86B16E8DCUL]; + if (fn__pointCamAtEntity == null) fn__pointCamAtEntity = (delegate* unmanaged[Cdecl]) funcTable[0x5640BFF86B16E8DCUL]; var success = false; fn__pointCamAtEntity(&success, _cam, _entity, _p2, _p3, _p4, (byte) (_p5 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -41876,10 +41863,10 @@ public void PointCamAtEntity(int _cam, int _entity, float _p2, float _p3, float } public void PointCamAtPedBone(int cam, IPlayer ped, int boneIndex, float x, float y, float z, bool p6) => PointCamAtPedBone(cam, ped.ScriptId, boneIndex, x, y, z, p6); - public void PointCamAtPedBone(int _cam, int _ped, int _boneIndex, float _x, float _y, float _z, bool _p6) + public void PointCamAtPedBone(int _cam, uint _ped, int _boneIndex, float _x, float _y, float _z, bool _p6) { unsafe { - if (fn__pointCamAtPedBone == null) fn__pointCamAtPedBone = (delegate* unmanaged[Cdecl]) funcTable[0x68B2B5F33BA63C41UL]; + if (fn__pointCamAtPedBone == null) fn__pointCamAtPedBone = (delegate* unmanaged[Cdecl]) funcTable[0x68B2B5F33BA63C41UL]; var success = false; fn__pointCamAtPedBone(&success, _cam, _ped, _boneIndex, _x, _y, _z, (byte) (_p6 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -41941,9 +41928,9 @@ public void SetCamDebugName(int _camera, string _name) unsafe { if (fn__setCamDebugName == null) fn__setCamDebugName = (delegate* unmanaged[Cdecl]) funcTable[0x1B93E0107865DD40UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__setCamDebugName(&success, _camera, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -42149,9 +42136,9 @@ public void ShakeCam(int _cam, string _type, float _amplitude) unsafe { if (fn__shakeCam == null) fn__shakeCam = (delegate* unmanaged[Cdecl]) funcTable[0x6A25241C340D3822UL]; var success = false; - var ptr_type = _type == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_type); + var ptr_type = MemoryUtils.StringToHGlobalUtf8(_type); fn__shakeCam(&success, _cam, ptr_type, _amplitude); - if (ptr_type != IntPtr.Zero) Marshal.FreeHGlobal(ptr_type); + Marshal.FreeHGlobal(ptr_type); if (!success) throw new Exception("Native execution failed"); } } @@ -42161,13 +42148,13 @@ public void AnimatedShakeCam(int _cam, string _p1, string _p2, string _p3, float unsafe { if (fn__animatedShakeCam == null) fn__animatedShakeCam = (delegate* unmanaged[Cdecl]) funcTable[0xA2746EEAE3E577CDUL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); - var ptr_p3 = _p3 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p3); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p3 = MemoryUtils.StringToHGlobalUtf8(_p3); fn__animatedShakeCam(&success, _cam, ptr_p1, ptr_p2, ptr_p3, _amplitude); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); - if (ptr_p3 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p3); + Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p3); if (!success) throw new Exception("Native execution failed"); } } @@ -42208,9 +42195,9 @@ public void ShakeScriptGlobal(string _p0, float _p1) unsafe { if (fn__shakeScriptGlobal == null) fn__shakeScriptGlobal = (delegate* unmanaged[Cdecl]) funcTable[0xF4C8CF9E353AFECAUL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__shakeScriptGlobal(&success, ptr_p0, _p1); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -42220,13 +42207,13 @@ public void AnimatedShakeScriptGlobal(string _p0, string _p1, string _p2, float unsafe { if (fn__animatedShakeScriptGlobal == null) fn__animatedShakeScriptGlobal = (delegate* unmanaged[Cdecl]) funcTable[0xC2EAE3FB8CDBED31UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); fn__animatedShakeScriptGlobal(&success, ptr_p0, ptr_p1, ptr_p2, _p3); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p2); if (!success) throw new Exception("Native execution failed"); } } @@ -42253,10 +42240,10 @@ public void StopScriptGlobalShaking(bool _p0) } public void TriggerVehiclePartBrokenCameraShake(IVehicle vehicle, int p1, float p2) => TriggerVehiclePartBrokenCameraShake(vehicle.ScriptId, p1, p2); - public void TriggerVehiclePartBrokenCameraShake(int _vehicle, int _p1, float _p2) + public void TriggerVehiclePartBrokenCameraShake(uint _vehicle, int _p1, float _p2) { unsafe { - if (fn__triggerVehiclePartBrokenCameraShake == null) fn__triggerVehiclePartBrokenCameraShake = (delegate* unmanaged[Cdecl]) funcTable[0x5D96CFB59DA076A0UL]; + if (fn__triggerVehiclePartBrokenCameraShake == null) fn__triggerVehiclePartBrokenCameraShake = (delegate* unmanaged[Cdecl]) funcTable[0x5D96CFB59DA076A0UL]; var success = false; fn__triggerVehiclePartBrokenCameraShake(&success, _vehicle, _p1, _p2); if (!success) throw new Exception("Native execution failed"); @@ -42268,11 +42255,11 @@ public bool PlayCamAnim(int _cam, string _animName, string _animDictionary, floa unsafe { if (fn__playCamAnim == null) fn__playCamAnim = (delegate* unmanaged[Cdecl]) funcTable[0x9A2D0FB2E7852392UL]; var success = false; - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); - var ptr_animDictionary = _animDictionary == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDictionary); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDictionary = MemoryUtils.StringToHGlobalUtf8(_animDictionary); var result = fn__playCamAnim(&success, _cam, ptr_animName, ptr_animDictionary, _x, _y, _z, _xRot, _yRot, _zRot, (byte) (_p9 ? 1 : 0), _p10); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); - if (ptr_animDictionary != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDictionary); + Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDictionary); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -42283,11 +42270,11 @@ public bool IsCamPlayingAnim(int _cam, string _animName, string _animDictionary) unsafe { if (fn__isCamPlayingAnim == null) fn__isCamPlayingAnim = (delegate* unmanaged[Cdecl]) funcTable[0xC90621D8A0CEECF2UL]; var success = false; - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); - var ptr_animDictionary = _animDictionary == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDictionary); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDictionary = MemoryUtils.StringToHGlobalUtf8(_animDictionary); var result = fn__isCamPlayingAnim(&success, _cam, ptr_animName, ptr_animDictionary); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); - if (ptr_animDictionary != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDictionary); + Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDictionary); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -42319,11 +42306,11 @@ public bool PlaySynchronizedCamAnim(int _p0, int _p1, string _animName, string _ unsafe { if (fn__playSynchronizedCamAnim == null) fn__playSynchronizedCamAnim = (delegate* unmanaged[Cdecl]) funcTable[0xE32EFE9AB4A9AA0CUL]; var success = false; - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); - var ptr_animDictionary = _animDictionary == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDictionary); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDictionary = MemoryUtils.StringToHGlobalUtf8(_animDictionary); var result = fn__playSynchronizedCamAnim(&success, _p0, _p1, ptr_animName, ptr_animDictionary); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); - if (ptr_animDictionary != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDictionary); + Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDictionary); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -42635,9 +42622,9 @@ public void ShakeGameplayCam(string _shakeName, float _intensity) unsafe { if (fn__shakeGameplayCam == null) fn__shakeGameplayCam = (delegate* unmanaged[Cdecl]) funcTable[0xFD55E49555E017CFUL]; var success = false; - var ptr_shakeName = _shakeName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_shakeName); + var ptr_shakeName = MemoryUtils.StringToHGlobalUtf8(_shakeName); fn__shakeGameplayCam(&success, ptr_shakeName, _intensity); - if (ptr_shakeName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_shakeName); + Marshal.FreeHGlobal(ptr_shakeName); if (!success) throw new Exception("Native execution failed"); } } @@ -42674,10 +42661,10 @@ public void StopGameplayCamShaking(bool _p0) } public void SetGameplayCamFollowPedThisUpdate(IPlayer ped) => SetGameplayCamFollowPedThisUpdate(ped.ScriptId); - public void SetGameplayCamFollowPedThisUpdate(int _ped) + public void SetGameplayCamFollowPedThisUpdate(uint _ped) { unsafe { - if (fn__setGameplayCamFollowPedThisUpdate == null) fn__setGameplayCamFollowPedThisUpdate = (delegate* unmanaged[Cdecl]) funcTable[0x8BBACBF51DA047A8UL]; + if (fn__setGameplayCamFollowPedThisUpdate == null) fn__setGameplayCamFollowPedThisUpdate = (delegate* unmanaged[Cdecl]) funcTable[0x8BBACBF51DA047A8UL]; var success = false; fn__setGameplayCamFollowPedThisUpdate(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -42749,10 +42736,10 @@ public bool IsGameplayCamLookingBehind() } public void SetGameplayCamIgnoreEntityCollisionThisUpdate(IEntity entity) => SetGameplayCamIgnoreEntityCollisionThisUpdate(entity.ScriptId); - public void SetGameplayCamIgnoreEntityCollisionThisUpdate(int _entity) + public void SetGameplayCamIgnoreEntityCollisionThisUpdate(uint _entity) { unsafe { - if (fn__setGameplayCamIgnoreEntityCollisionThisUpdate == null) fn__setGameplayCamIgnoreEntityCollisionThisUpdate = (delegate* unmanaged[Cdecl]) funcTable[0x2AED6301F67007D5UL]; + if (fn__setGameplayCamIgnoreEntityCollisionThisUpdate == null) fn__setGameplayCamIgnoreEntityCollisionThisUpdate = (delegate* unmanaged[Cdecl]) funcTable[0x2AED6301F67007D5UL]; var success = false; fn__setGameplayCamIgnoreEntityCollisionThisUpdate(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -42760,10 +42747,10 @@ public void SetGameplayCamIgnoreEntityCollisionThisUpdate(int _entity) } public void DisableCamCollisionForObject(IEntity entity) => DisableCamCollisionForObject(entity.ScriptId); - public void DisableCamCollisionForObject(int _entity) + public void DisableCamCollisionForObject(uint _entity) { unsafe { - if (fn__disableCamCollisionForObject == null) fn__disableCamCollisionForObject = (delegate* unmanaged[Cdecl]) funcTable[0x49482F9FCD825AAAUL]; + if (fn__disableCamCollisionForObject == null) fn__disableCamCollisionForObject = (delegate* unmanaged[Cdecl]) funcTable[0x49482F9FCD825AAAUL]; var success = false; fn__disableCamCollisionForObject(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -42781,10 +42768,10 @@ public void BypassCameraCollisionBuoyancyTestThisUpdate() } public void SetGameplayCamEntityToLimitFocusOverBoundingSphereThisUpdate(IEntity entity) => SetGameplayCamEntityToLimitFocusOverBoundingSphereThisUpdate(entity.ScriptId); - public void SetGameplayCamEntityToLimitFocusOverBoundingSphereThisUpdate(int _entity) + public void SetGameplayCamEntityToLimitFocusOverBoundingSphereThisUpdate(uint _entity) { unsafe { - if (fn__setGameplayCamEntityToLimitFocusOverBoundingSphereThisUpdate == null) fn__setGameplayCamEntityToLimitFocusOverBoundingSphereThisUpdate = (delegate* unmanaged[Cdecl]) funcTable[0xFD3151CD37EA2245UL]; + if (fn__setGameplayCamEntityToLimitFocusOverBoundingSphereThisUpdate == null) fn__setGameplayCamEntityToLimitFocusOverBoundingSphereThisUpdate = (delegate* unmanaged[Cdecl]) funcTable[0xFD3151CD37EA2245UL]; var success = false; fn__setGameplayCamEntityToLimitFocusOverBoundingSphereThisUpdate(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -42838,9 +42825,9 @@ public bool SetFollowPedCamThisUpdate(string _camName, int _p1) unsafe { if (fn__setFollowPedCamThisUpdate == null) fn__setFollowPedCamThisUpdate = (delegate* unmanaged[Cdecl]) funcTable[0x44A113DD6FFC48D1UL]; var success = false; - var ptr_camName = _camName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_camName); + var ptr_camName = MemoryUtils.StringToHGlobalUtf8(_camName); var result = fn__setFollowPedCamThisUpdate(&success, ptr_camName, _p1); - if (ptr_camName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_camName); + Marshal.FreeHGlobal(ptr_camName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -42897,10 +42884,10 @@ public void SetThirdPersonCamOrbitDistanceLimitsThisUpdate(float _p0, float _dis } public void SetInVehicleCamStateThisUpdate(IVehicle p0, int p1) => SetInVehicleCamStateThisUpdate(p0.ScriptId, p1); - public void SetInVehicleCamStateThisUpdate(int _p0, int _p1) + public void SetInVehicleCamStateThisUpdate(uint _p0, int _p1) { unsafe { - if (fn__setInVehicleCamStateThisUpdate == null) fn__setInVehicleCamStateThisUpdate = (delegate* unmanaged[Cdecl]) funcTable[0xE9EA16D6E54CDCA4UL]; + if (fn__setInVehicleCamStateThisUpdate == null) fn__setInVehicleCamStateThisUpdate = (delegate* unmanaged[Cdecl]) funcTable[0xE9EA16D6E54CDCA4UL]; var success = false; fn__setInVehicleCamStateThisUpdate(&success, _p0, _p1); if (!success) throw new Exception("Native execution failed"); @@ -43100,9 +43087,9 @@ public void UseDedicatedStuntCameraThisUpdate(string _camName) unsafe { if (fn__useDedicatedStuntCameraThisUpdate == null) fn__useDedicatedStuntCameraThisUpdate = (delegate* unmanaged[Cdecl]) funcTable[0x425A920FDB9A0DDAUL]; var success = false; - var ptr_camName = _camName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_camName); + var ptr_camName = MemoryUtils.StringToHGlobalUtf8(_camName); fn__useDedicatedStuntCameraThisUpdate(&success, ptr_camName); - if (ptr_camName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_camName); + Marshal.FreeHGlobal(ptr_camName); if (!success) throw new Exception("Native execution failed"); } } @@ -43284,10 +43271,10 @@ public Vector3 GetFinalRenderedCamRot(int _rotationOrder) } public Vector3 GetFinalRenderedRemotePlayerCamRot(IPlayer player, int rotationOrder) => GetFinalRenderedRemotePlayerCamRot(player.ScriptId, rotationOrder); - public Vector3 GetFinalRenderedRemotePlayerCamRot(int _player, int _rotationOrder) + public Vector3 GetFinalRenderedRemotePlayerCamRot(uint _player, int _rotationOrder) { unsafe { - if (fn__getFinalRenderedRemotePlayerCamRot == null) fn__getFinalRenderedRemotePlayerCamRot = (delegate* unmanaged[Cdecl]) funcTable[0x26903D9CD1175F2CUL]; + if (fn__getFinalRenderedRemotePlayerCamRot == null) fn__getFinalRenderedRemotePlayerCamRot = (delegate* unmanaged[Cdecl]) funcTable[0x26903D9CD1175F2CUL]; var success = false; var result = fn__getFinalRenderedRemotePlayerCamRot(&success, _player, _rotationOrder); if (!success) throw new Exception("Native execution failed"); @@ -43307,10 +43294,10 @@ public float GetFinalRenderedCamFov() } public float GetFinalRenderedRemotePlayerCamFov(IPlayer player) => GetFinalRenderedRemotePlayerCamFov(player.ScriptId); - public float GetFinalRenderedRemotePlayerCamFov(int _player) + public float GetFinalRenderedRemotePlayerCamFov(uint _player) { unsafe { - if (fn__getFinalRenderedRemotePlayerCamFov == null) fn__getFinalRenderedRemotePlayerCamFov = (delegate* unmanaged[Cdecl]) funcTable[0x5F35F6732C3FBBA0UL]; + if (fn__getFinalRenderedRemotePlayerCamFov == null) fn__getFinalRenderedRemotePlayerCamFov = (delegate* unmanaged[Cdecl]) funcTable[0x5F35F6732C3FBBA0UL]; var success = false; var result = fn__getFinalRenderedRemotePlayerCamFov(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -43384,10 +43371,10 @@ public void SetGameplayCoordHint(float _x, float _y, float _z, int _duration, in } public void SetGameplayPedHint(IPlayer ped, float x1, float y1, float z1, bool p4, int duration, int blendOutDuration, int blendInDuration) => SetGameplayPedHint(ped.ScriptId, x1, y1, z1, p4, duration, blendOutDuration, blendInDuration); - public void SetGameplayPedHint(int _ped, float _x1, float _y1, float _z1, bool _p4, int _duration, int _blendOutDuration, int _blendInDuration) + public void SetGameplayPedHint(uint _ped, float _x1, float _y1, float _z1, bool _p4, int _duration, int _blendOutDuration, int _blendInDuration) { unsafe { - if (fn__setGameplayPedHint == null) fn__setGameplayPedHint = (delegate* unmanaged[Cdecl]) funcTable[0x2B486269ACD548D3UL]; + if (fn__setGameplayPedHint == null) fn__setGameplayPedHint = (delegate* unmanaged[Cdecl]) funcTable[0x2B486269ACD548D3UL]; var success = false; fn__setGameplayPedHint(&success, _ped, _x1, _y1, _z1, (byte) (_p4 ? 1 : 0), _duration, _blendOutDuration, _blendInDuration); if (!success) throw new Exception("Native execution failed"); @@ -43395,20 +43382,20 @@ public void SetGameplayPedHint(int _ped, float _x1, float _y1, float _z1, bool _ } public void SetGameplayVehicleHint(IVehicle vehicle, float offsetX, float offsetY, float offsetZ, bool p4, int time, int easeInTime, int easeOutTime) => SetGameplayVehicleHint(vehicle.ScriptId, offsetX, offsetY, offsetZ, p4, time, easeInTime, easeOutTime); - public void SetGameplayVehicleHint(int _vehicle, float _offsetX, float _offsetY, float _offsetZ, bool _p4, int _time, int _easeInTime, int _easeOutTime) + public void SetGameplayVehicleHint(uint _vehicle, float _offsetX, float _offsetY, float _offsetZ, bool _p4, int _time, int _easeInTime, int _easeOutTime) { unsafe { - if (fn__setGameplayVehicleHint == null) fn__setGameplayVehicleHint = (delegate* unmanaged[Cdecl]) funcTable[0xA2297E18F3E71C2EUL]; + if (fn__setGameplayVehicleHint == null) fn__setGameplayVehicleHint = (delegate* unmanaged[Cdecl]) funcTable[0xA2297E18F3E71C2EUL]; var success = false; fn__setGameplayVehicleHint(&success, _vehicle, _offsetX, _offsetY, _offsetZ, (byte) (_p4 ? 1 : 0), _time, _easeInTime, _easeOutTime); if (!success) throw new Exception("Native execution failed"); } } - public void SetGameplayObjectHint(int _object, float _xOffset, float _yOffset, float _zOffset, bool _p4, int _time, int _easeInTime, int _easeOutTime) + public void SetGameplayObjectHint(uint _object, float _xOffset, float _yOffset, float _zOffset, bool _p4, int _time, int _easeInTime, int _easeOutTime) { unsafe { - if (fn__setGameplayObjectHint == null) fn__setGameplayObjectHint = (delegate* unmanaged[Cdecl]) funcTable[0x83E87508A2CA2AC6UL]; + if (fn__setGameplayObjectHint == null) fn__setGameplayObjectHint = (delegate* unmanaged[Cdecl]) funcTable[0x83E87508A2CA2AC6UL]; var success = false; fn__setGameplayObjectHint(&success, _object, _xOffset, _yOffset, _zOffset, (byte) (_p4 ? 1 : 0), _time, _easeInTime, _easeOutTime); if (!success) throw new Exception("Native execution failed"); @@ -43416,10 +43403,10 @@ public void SetGameplayObjectHint(int _object, float _xOffset, float _yOffset, f } public void SetGameplayEntityHint(IEntity entity, float xOffset, float yOffset, float zOffset, bool p4, int time, int easeInTime, int easeOutTime, int p8) => SetGameplayEntityHint(entity.ScriptId, xOffset, yOffset, zOffset, p4, time, easeInTime, easeOutTime, p8); - public void SetGameplayEntityHint(int _entity, float _xOffset, float _yOffset, float _zOffset, bool _p4, int _time, int _easeInTime, int _easeOutTime, int _p8) + public void SetGameplayEntityHint(uint _entity, float _xOffset, float _yOffset, float _zOffset, bool _p4, int _time, int _easeInTime, int _easeOutTime, int _p8) { unsafe { - if (fn__setGameplayEntityHint == null) fn__setGameplayEntityHint = (delegate* unmanaged[Cdecl]) funcTable[0x189E955A8313E298UL]; + if (fn__setGameplayEntityHint == null) fn__setGameplayEntityHint = (delegate* unmanaged[Cdecl]) funcTable[0x189E955A8313E298UL]; var success = false; fn__setGameplayEntityHint(&success, _entity, _xOffset, _yOffset, _zOffset, (byte) (_p4 ? 1 : 0), _time, _easeInTime, _easeOutTime, _p8); if (!success) throw new Exception("Native execution failed"); @@ -43564,9 +43551,9 @@ public void ShakeCinematicCam(string _shakeType, float _amount) unsafe { if (fn__shakeCinematicCam == null) fn__shakeCinematicCam = (delegate* unmanaged[Cdecl]) funcTable[0xDCE214D9ED58F3CFUL]; var success = false; - var ptr_shakeType = _shakeType == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_shakeType); + var ptr_shakeType = MemoryUtils.StringToHGlobalUtf8(_shakeType); fn__shakeCinematicCam(&success, ptr_shakeType, _amount); - if (ptr_shakeType != IntPtr.Zero) Marshal.FreeHGlobal(ptr_shakeType); + Marshal.FreeHGlobal(ptr_shakeType); if (!success) throw new Exception("Native execution failed"); } } @@ -43665,10 +43652,10 @@ public bool IsCinematicFirstPersonVehicleInteriorCamRendering() } public void CreateCinematicShot(uint p0, int time, bool p2, IEntity entity) => CreateCinematicShot(p0, time, p2, entity.ScriptId); - public void CreateCinematicShot(uint _p0, int _time, bool _p2, int _entity) + public void CreateCinematicShot(uint _p0, int _time, bool _p2, uint _entity) { unsafe { - if (fn__createCinematicShot == null) fn__createCinematicShot = (delegate* unmanaged[Cdecl]) funcTable[0x741B0129D4560F31UL]; + if (fn__createCinematicShot == null) fn__createCinematicShot = (delegate* unmanaged[Cdecl]) funcTable[0x741B0129D4560F31UL]; var success = false; fn__createCinematicShot(&success, _p0, _time, (byte) (_p2 ? 1 : 0), _entity); if (!success) throw new Exception("Native execution failed"); @@ -43810,10 +43797,10 @@ public void SetCutsceneCamFarClipThisUpdate(float _p0) } } - public int GetFocusPedOnScreen(float _p0, int _p1, float _p2, float _p3, float _p4, float _p5, float _p6, int _p7, int _p8) + public uint GetFocusPedOnScreen(float _p0, int _p1, float _p2, float _p3, float _p4, float _p5, float _p6, int _p7, int _p8) { unsafe { - if (fn__getFocusPedOnScreen == null) fn__getFocusPedOnScreen = (delegate* unmanaged[Cdecl]) funcTable[0x89215EC747DF244AUL]; + if (fn__getFocusPedOnScreen == null) fn__getFocusPedOnScreen = (delegate* unmanaged[Cdecl]) funcTable[0x89215EC747DF244AUL]; var success = false; var result = fn__getFocusPedOnScreen(&success, _p0, _p1, _p2, _p3, _p4, _p5, _p6, _p7, _p8); if (!success) throw new Exception("Native execution failed"); @@ -43856,9 +43843,9 @@ public void SetFirstPersonFlashEffectVehicleModelName(string _vehicleName) unsafe { if (fn__setFirstPersonFlashEffectVehicleModelName == null) fn__setFirstPersonFlashEffectVehicleModelName = (delegate* unmanaged[Cdecl]) funcTable[0x21E253A7F8DA5DFBUL]; var success = false; - var ptr_vehicleName = _vehicleName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_vehicleName); + var ptr_vehicleName = MemoryUtils.StringToHGlobalUtf8(_vehicleName); fn__setFirstPersonFlashEffectVehicleModelName(&success, ptr_vehicleName); - if (ptr_vehicleName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_vehicleName); + Marshal.FreeHGlobal(ptr_vehicleName); if (!success) throw new Exception("Native execution failed"); } } @@ -44114,9 +44101,9 @@ public void RequestCutscene(string _cutsceneName, int _flags) unsafe { if (fn__requestCutscene == null) fn__requestCutscene = (delegate* unmanaged[Cdecl]) funcTable[0x7A86743F475D9E09UL]; var success = false; - var ptr_cutsceneName = _cutsceneName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_cutsceneName); + var ptr_cutsceneName = MemoryUtils.StringToHGlobalUtf8(_cutsceneName); fn__requestCutscene(&success, ptr_cutsceneName, _flags); - if (ptr_cutsceneName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_cutsceneName); + Marshal.FreeHGlobal(ptr_cutsceneName); if (!success) throw new Exception("Native execution failed"); } } @@ -44126,9 +44113,9 @@ public void RequestCutsceneWithPlaybackList(string _cutsceneName, int _playbackF unsafe { if (fn__requestCutsceneWithPlaybackList == null) fn__requestCutsceneWithPlaybackList = (delegate* unmanaged[Cdecl]) funcTable[0xC23DE0E91C30B58CUL]; var success = false; - var ptr_cutsceneName = _cutsceneName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_cutsceneName); + var ptr_cutsceneName = MemoryUtils.StringToHGlobalUtf8(_cutsceneName); fn__requestCutsceneWithPlaybackList(&success, ptr_cutsceneName, _playbackFlags, _flags); - if (ptr_cutsceneName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_cutsceneName); + Marshal.FreeHGlobal(ptr_cutsceneName); if (!success) throw new Exception("Native execution failed"); } } @@ -44159,9 +44146,9 @@ public bool HasThisCutsceneLoaded(string _cutsceneName) unsafe { if (fn__hasThisCutsceneLoaded == null) fn__hasThisCutsceneLoaded = (delegate* unmanaged[Cdecl]) funcTable[0x228D3D94F8A11C3CUL]; var success = false; - var ptr_cutsceneName = _cutsceneName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_cutsceneName); + var ptr_cutsceneName = MemoryUtils.StringToHGlobalUtf8(_cutsceneName); var result = fn__hasThisCutsceneLoaded(&success, ptr_cutsceneName); - if (ptr_cutsceneName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_cutsceneName); + Marshal.FreeHGlobal(ptr_cutsceneName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -44204,9 +44191,9 @@ public void SetCutsceneEntityStreamingFlags(string _cutsceneEntName, int _p1, in unsafe { if (fn__setCutsceneEntityStreamingFlags == null) fn__setCutsceneEntityStreamingFlags = (delegate* unmanaged[Cdecl]) funcTable[0x4C61C75BEE8184C2UL]; var success = false; - var ptr_cutsceneEntName = _cutsceneEntName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_cutsceneEntName); + var ptr_cutsceneEntName = MemoryUtils.StringToHGlobalUtf8(_cutsceneEntName); fn__setCutsceneEntityStreamingFlags(&success, ptr_cutsceneEntName, _p1, _p2); - if (ptr_cutsceneEntName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_cutsceneEntName); + Marshal.FreeHGlobal(ptr_cutsceneEntName); if (!success) throw new Exception("Native execution failed"); } } @@ -44216,9 +44203,9 @@ public void RequestCutFile(string _cutsceneName) unsafe { if (fn__requestCutFile == null) fn__requestCutFile = (delegate* unmanaged[Cdecl]) funcTable[0x06A3524161C502BAUL]; var success = false; - var ptr_cutsceneName = _cutsceneName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_cutsceneName); + var ptr_cutsceneName = MemoryUtils.StringToHGlobalUtf8(_cutsceneName); fn__requestCutFile(&success, ptr_cutsceneName); - if (ptr_cutsceneName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_cutsceneName); + Marshal.FreeHGlobal(ptr_cutsceneName); if (!success) throw new Exception("Native execution failed"); } } @@ -44228,9 +44215,9 @@ public bool HasCutFileLoaded(string _cutsceneName) unsafe { if (fn__hasCutFileLoaded == null) fn__hasCutFileLoaded = (delegate* unmanaged[Cdecl]) funcTable[0xA1C996C2A744262EUL]; var success = false; - var ptr_cutsceneName = _cutsceneName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_cutsceneName); + var ptr_cutsceneName = MemoryUtils.StringToHGlobalUtf8(_cutsceneName); var result = fn__hasCutFileLoaded(&success, ptr_cutsceneName); - if (ptr_cutsceneName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_cutsceneName); + Marshal.FreeHGlobal(ptr_cutsceneName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -44241,9 +44228,9 @@ public void RemoveCutFile(string _cutsceneName) unsafe { if (fn__removeCutFile == null) fn__removeCutFile = (delegate* unmanaged[Cdecl]) funcTable[0xD00D76A7DFC9D852UL]; var success = false; - var ptr_cutsceneName = _cutsceneName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_cutsceneName); + var ptr_cutsceneName = MemoryUtils.StringToHGlobalUtf8(_cutsceneName); fn__removeCutFile(&success, ptr_cutsceneName); - if (ptr_cutsceneName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_cutsceneName); + Marshal.FreeHGlobal(ptr_cutsceneName); if (!success) throw new Exception("Native execution failed"); } } @@ -44253,9 +44240,9 @@ public int GetCutFileConcatCount(string _cutsceneName) unsafe { if (fn__getCutFileConcatCount == null) fn__getCutFileConcatCount = (delegate* unmanaged[Cdecl]) funcTable[0x0ABC54DE641DC0FCUL]; var success = false; - var ptr_cutsceneName = _cutsceneName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_cutsceneName); + var ptr_cutsceneName = MemoryUtils.StringToHGlobalUtf8(_cutsceneName); var result = fn__getCutFileConcatCount(&success, ptr_cutsceneName); - if (ptr_cutsceneName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_cutsceneName); + Marshal.FreeHGlobal(ptr_cutsceneName); if (!success) throw new Exception("Native execution failed"); return result; } @@ -44409,14 +44396,14 @@ public int GetCutsceneSectionPlaying() } } - public int GetEntityIndexOfCutsceneEntity(string _cutsceneEntName, uint _modelHash) + public uint GetEntityIndexOfCutsceneEntity(string _cutsceneEntName, uint _modelHash) { unsafe { - if (fn__getEntityIndexOfCutsceneEntity == null) fn__getEntityIndexOfCutsceneEntity = (delegate* unmanaged[Cdecl]) funcTable[0x0A2E9FDB9A8C62F6UL]; + if (fn__getEntityIndexOfCutsceneEntity == null) fn__getEntityIndexOfCutsceneEntity = (delegate* unmanaged[Cdecl]) funcTable[0x0A2E9FDB9A8C62F6UL]; var success = false; - var ptr_cutsceneEntName = _cutsceneEntName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_cutsceneEntName); + var ptr_cutsceneEntName = MemoryUtils.StringToHGlobalUtf8(_cutsceneEntName); var result = fn__getEntityIndexOfCutsceneEntity(&success, ptr_cutsceneEntName, _modelHash); - if (ptr_cutsceneEntName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_cutsceneEntName); + Marshal.FreeHGlobal(ptr_cutsceneEntName); if (!success) throw new Exception("Native execution failed"); return result; } @@ -44438,9 +44425,9 @@ public bool IsCutsceneAuthorized(string _cutsceneName) unsafe { if (fn__isCutsceneAuthorized == null) fn__isCutsceneAuthorized = (delegate* unmanaged[Cdecl]) funcTable[0x4CEBC1ED31E8925EUL]; var success = false; - var ptr_cutsceneName = _cutsceneName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_cutsceneName); + var ptr_cutsceneName = MemoryUtils.StringToHGlobalUtf8(_cutsceneName); var result = fn__isCutsceneAuthorized(&success, ptr_cutsceneName); - if (ptr_cutsceneName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_cutsceneName); + Marshal.FreeHGlobal(ptr_cutsceneName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -44458,26 +44445,26 @@ public int DoesCutsceneHandleExist(int _cutsceneHandle) } public void RegisterEntityForCutscene(IPlayer cutscenePed, string cutsceneEntName, int p2, uint modelHash, int p4) => RegisterEntityForCutscene(cutscenePed.ScriptId, cutsceneEntName, p2, modelHash, p4); - public void RegisterEntityForCutscene(int _cutscenePed, string _cutsceneEntName, int _p2, uint _modelHash, int _p4) + public void RegisterEntityForCutscene(uint _cutscenePed, string _cutsceneEntName, int _p2, uint _modelHash, int _p4) { unsafe { - if (fn__registerEntityForCutscene == null) fn__registerEntityForCutscene = (delegate* unmanaged[Cdecl]) funcTable[0xE40C1C56DF95C2E8UL]; + if (fn__registerEntityForCutscene == null) fn__registerEntityForCutscene = (delegate* unmanaged[Cdecl]) funcTable[0xE40C1C56DF95C2E8UL]; var success = false; - var ptr_cutsceneEntName = _cutsceneEntName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_cutsceneEntName); + var ptr_cutsceneEntName = MemoryUtils.StringToHGlobalUtf8(_cutsceneEntName); fn__registerEntityForCutscene(&success, _cutscenePed, ptr_cutsceneEntName, _p2, _modelHash, _p4); - if (ptr_cutsceneEntName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_cutsceneEntName); + Marshal.FreeHGlobal(ptr_cutsceneEntName); if (!success) throw new Exception("Native execution failed"); } } - public int GetEntityIndexOfRegisteredEntity(string _cutsceneEntName, uint _modelHash) + public uint GetEntityIndexOfRegisteredEntity(string _cutsceneEntName, uint _modelHash) { unsafe { - if (fn__getEntityIndexOfRegisteredEntity == null) fn__getEntityIndexOfRegisteredEntity = (delegate* unmanaged[Cdecl]) funcTable[0xC0741A26499654CDUL]; + if (fn__getEntityIndexOfRegisteredEntity == null) fn__getEntityIndexOfRegisteredEntity = (delegate* unmanaged[Cdecl]) funcTable[0xC0741A26499654CDUL]; var success = false; - var ptr_cutsceneEntName = _cutsceneEntName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_cutsceneEntName); + var ptr_cutsceneEntName = MemoryUtils.StringToHGlobalUtf8(_cutsceneEntName); var result = fn__getEntityIndexOfRegisteredEntity(&success, ptr_cutsceneEntName, _modelHash); - if (ptr_cutsceneEntName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_cutsceneEntName); + Marshal.FreeHGlobal(ptr_cutsceneEntName); if (!success) throw new Exception("Native execution failed"); return result; } @@ -44508,9 +44495,9 @@ public bool CanSetEnterStateForRegisteredEntity(string _cutsceneEntName, uint _m unsafe { if (fn__canSetEnterStateForRegisteredEntity == null) fn__canSetEnterStateForRegisteredEntity = (delegate* unmanaged[Cdecl]) funcTable[0x645D0B458D8E17B5UL]; var success = false; - var ptr_cutsceneEntName = _cutsceneEntName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_cutsceneEntName); + var ptr_cutsceneEntName = MemoryUtils.StringToHGlobalUtf8(_cutsceneEntName); var result = fn__canSetEnterStateForRegisteredEntity(&success, ptr_cutsceneEntName, _modelHash); - if (ptr_cutsceneEntName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_cutsceneEntName); + Marshal.FreeHGlobal(ptr_cutsceneEntName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -44521,9 +44508,9 @@ public bool CanSetExitStateForRegisteredEntity(string _cutsceneEntName, uint _mo unsafe { if (fn__canSetExitStateForRegisteredEntity == null) fn__canSetExitStateForRegisteredEntity = (delegate* unmanaged[Cdecl]) funcTable[0x4C6A6451C79E4662UL]; var success = false; - var ptr_cutsceneEntName = _cutsceneEntName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_cutsceneEntName); + var ptr_cutsceneEntName = MemoryUtils.StringToHGlobalUtf8(_cutsceneEntName); var result = fn__canSetExitStateForRegisteredEntity(&success, ptr_cutsceneEntName, _modelHash); - if (ptr_cutsceneEntName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_cutsceneEntName); + Marshal.FreeHGlobal(ptr_cutsceneEntName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -44647,22 +44634,22 @@ public void SetCutscenePedComponentVariation(string _cutsceneEntName, int _compo unsafe { if (fn__setCutscenePedComponentVariation == null) fn__setCutscenePedComponentVariation = (delegate* unmanaged[Cdecl]) funcTable[0xBA01E7B6DEEFBBC9UL]; var success = false; - var ptr_cutsceneEntName = _cutsceneEntName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_cutsceneEntName); + var ptr_cutsceneEntName = MemoryUtils.StringToHGlobalUtf8(_cutsceneEntName); fn__setCutscenePedComponentVariation(&success, ptr_cutsceneEntName, _componentId, _drawableId, _textureId, _modelHash); - if (ptr_cutsceneEntName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_cutsceneEntName); + Marshal.FreeHGlobal(ptr_cutsceneEntName); if (!success) throw new Exception("Native execution failed"); } } public void SetCutscenePedComponentVariationFromPed(string cutsceneEntName, IPlayer ped, uint modelHash) => SetCutscenePedComponentVariationFromPed(cutsceneEntName, ped.ScriptId, modelHash); - public void SetCutscenePedComponentVariationFromPed(string _cutsceneEntName, int _ped, uint _modelHash) + public void SetCutscenePedComponentVariationFromPed(string _cutsceneEntName, uint _ped, uint _modelHash) { unsafe { - if (fn__setCutscenePedComponentVariationFromPed == null) fn__setCutscenePedComponentVariationFromPed = (delegate* unmanaged[Cdecl]) funcTable[0x2A56C06EBEF2B0D9UL]; + if (fn__setCutscenePedComponentVariationFromPed == null) fn__setCutscenePedComponentVariationFromPed = (delegate* unmanaged[Cdecl]) funcTable[0x2A56C06EBEF2B0D9UL]; var success = false; - var ptr_cutsceneEntName = _cutsceneEntName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_cutsceneEntName); + var ptr_cutsceneEntName = MemoryUtils.StringToHGlobalUtf8(_cutsceneEntName); fn__setCutscenePedComponentVariationFromPed(&success, ptr_cutsceneEntName, _ped, _modelHash); - if (ptr_cutsceneEntName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_cutsceneEntName); + Marshal.FreeHGlobal(ptr_cutsceneEntName); if (!success) throw new Exception("Native execution failed"); } } @@ -44672,9 +44659,9 @@ public bool DoesCutsceneEntityExist(string _cutsceneEntName, uint _modelHash) unsafe { if (fn__doesCutsceneEntityExist == null) fn__doesCutsceneEntityExist = (delegate* unmanaged[Cdecl]) funcTable[0x499EF20C5DB25C59UL]; var success = false; - var ptr_cutsceneEntName = _cutsceneEntName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_cutsceneEntName); + var ptr_cutsceneEntName = MemoryUtils.StringToHGlobalUtf8(_cutsceneEntName); var result = fn__doesCutsceneEntityExist(&success, ptr_cutsceneEntName, _modelHash); - if (ptr_cutsceneEntName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_cutsceneEntName); + Marshal.FreeHGlobal(ptr_cutsceneEntName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -44685,9 +44672,9 @@ public void SetCutscenePedPropVariation(string _cutsceneEntName, int _componentI unsafe { if (fn__setCutscenePedPropVariation == null) fn__setCutscenePedPropVariation = (delegate* unmanaged[Cdecl]) funcTable[0x0546524ADE2E9723UL]; var success = false; - var ptr_cutsceneEntName = _cutsceneEntName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_cutsceneEntName); + var ptr_cutsceneEntName = MemoryUtils.StringToHGlobalUtf8(_cutsceneEntName); fn__setCutscenePedPropVariation(&success, ptr_cutsceneEntName, _componentId, _drawableId, _textureId, _modelHash); - if (ptr_cutsceneEntName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_cutsceneEntName); + Marshal.FreeHGlobal(ptr_cutsceneEntName); if (!success) throw new Exception("Native execution failed"); } } @@ -44784,16 +44771,16 @@ public bool UgcCreateContent(ref int _data, int _dataCount, string _contentName, if (fn__ugcCreateContent == null) fn__ugcCreateContent = (delegate* unmanaged[Cdecl]) funcTable[0xC84527E235FCA219UL]; var success = false; var ref_data = _data; - var ptr_contentName = _contentName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentName); - var ptr_description = _description == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_description); - var ptr_tagsCsv = _tagsCsv == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_tagsCsv); - var ptr_contentTypeName = _contentTypeName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentTypeName); + var ptr_contentName = MemoryUtils.StringToHGlobalUtf8(_contentName); + var ptr_description = MemoryUtils.StringToHGlobalUtf8(_description); + var ptr_tagsCsv = MemoryUtils.StringToHGlobalUtf8(_tagsCsv); + var ptr_contentTypeName = MemoryUtils.StringToHGlobalUtf8(_contentTypeName); var result = fn__ugcCreateContent(&success, &ref_data, _dataCount, ptr_contentName, ptr_description, ptr_tagsCsv, ptr_contentTypeName, (byte) (_publish ? 1 : 0), _p7); _data = ref_data; - if (ptr_contentName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentName); - if (ptr_description != IntPtr.Zero) Marshal.FreeHGlobal(ptr_description); - if (ptr_tagsCsv != IntPtr.Zero) Marshal.FreeHGlobal(ptr_tagsCsv); - if (ptr_contentTypeName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentTypeName); + Marshal.FreeHGlobal(ptr_contentName); + Marshal.FreeHGlobal(ptr_description); + Marshal.FreeHGlobal(ptr_tagsCsv); + Marshal.FreeHGlobal(ptr_contentTypeName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -44804,15 +44791,15 @@ public bool UgcCreateMission(string _contentName, string _description, string _t unsafe { if (fn__ugcCreateMission == null) fn__ugcCreateMission = (delegate* unmanaged[Cdecl]) funcTable[0xA5EFC3E847D60507UL]; var success = false; - var ptr_contentName = _contentName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentName); - var ptr_description = _description == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_description); - var ptr_tagsCsv = _tagsCsv == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_tagsCsv); - var ptr_contentTypeName = _contentTypeName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentTypeName); + var ptr_contentName = MemoryUtils.StringToHGlobalUtf8(_contentName); + var ptr_description = MemoryUtils.StringToHGlobalUtf8(_description); + var ptr_tagsCsv = MemoryUtils.StringToHGlobalUtf8(_tagsCsv); + var ptr_contentTypeName = MemoryUtils.StringToHGlobalUtf8(_contentTypeName); var result = fn__ugcCreateMission(&success, ptr_contentName, ptr_description, ptr_tagsCsv, ptr_contentTypeName, (byte) (_publish ? 1 : 0), _p5); - if (ptr_contentName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentName); - if (ptr_description != IntPtr.Zero) Marshal.FreeHGlobal(ptr_description); - if (ptr_tagsCsv != IntPtr.Zero) Marshal.FreeHGlobal(ptr_tagsCsv); - if (ptr_contentTypeName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentTypeName); + Marshal.FreeHGlobal(ptr_contentName); + Marshal.FreeHGlobal(ptr_description); + Marshal.FreeHGlobal(ptr_tagsCsv); + Marshal.FreeHGlobal(ptr_contentTypeName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -44823,19 +44810,19 @@ public bool UgcUpdateContent(string _contentId, ref int _data, int _dataCount, s unsafe { if (fn__ugcUpdateContent == null) fn__ugcUpdateContent = (delegate* unmanaged[Cdecl]) funcTable[0x648E7A5434AF7969UL]; var success = false; - var ptr_contentId = _contentId == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentId); + var ptr_contentId = MemoryUtils.StringToHGlobalUtf8(_contentId); var ref_data = _data; - var ptr_contentName = _contentName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentName); - var ptr_description = _description == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_description); - var ptr_tagsCsv = _tagsCsv == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_tagsCsv); - var ptr_contentTypeName = _contentTypeName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentTypeName); + var ptr_contentName = MemoryUtils.StringToHGlobalUtf8(_contentName); + var ptr_description = MemoryUtils.StringToHGlobalUtf8(_description); + var ptr_tagsCsv = MemoryUtils.StringToHGlobalUtf8(_tagsCsv); + var ptr_contentTypeName = MemoryUtils.StringToHGlobalUtf8(_contentTypeName); var result = fn__ugcUpdateContent(&success, ptr_contentId, &ref_data, _dataCount, ptr_contentName, ptr_description, ptr_tagsCsv, ptr_contentTypeName, _p7); - if (ptr_contentId != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentId); + Marshal.FreeHGlobal(ptr_contentId); _data = ref_data; - if (ptr_contentName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentName); - if (ptr_description != IntPtr.Zero) Marshal.FreeHGlobal(ptr_description); - if (ptr_tagsCsv != IntPtr.Zero) Marshal.FreeHGlobal(ptr_tagsCsv); - if (ptr_contentTypeName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentTypeName); + Marshal.FreeHGlobal(ptr_contentName); + Marshal.FreeHGlobal(ptr_description); + Marshal.FreeHGlobal(ptr_tagsCsv); + Marshal.FreeHGlobal(ptr_contentTypeName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -44846,17 +44833,17 @@ public bool UgcUpdateMission(string _contentId, string _contentName, string _des unsafe { if (fn__ugcUpdateMission == null) fn__ugcUpdateMission = (delegate* unmanaged[Cdecl]) funcTable[0x4645DE9980999E93UL]; var success = false; - var ptr_contentId = _contentId == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentId); - var ptr_contentName = _contentName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentName); - var ptr_description = _description == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_description); - var ptr_tagsCsv = _tagsCsv == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_tagsCsv); - var ptr_contentTypeName = _contentTypeName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentTypeName); + var ptr_contentId = MemoryUtils.StringToHGlobalUtf8(_contentId); + var ptr_contentName = MemoryUtils.StringToHGlobalUtf8(_contentName); + var ptr_description = MemoryUtils.StringToHGlobalUtf8(_description); + var ptr_tagsCsv = MemoryUtils.StringToHGlobalUtf8(_tagsCsv); + var ptr_contentTypeName = MemoryUtils.StringToHGlobalUtf8(_contentTypeName); var result = fn__ugcUpdateMission(&success, ptr_contentId, ptr_contentName, ptr_description, ptr_tagsCsv, ptr_contentTypeName, _p5); - if (ptr_contentId != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentId); - if (ptr_contentName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentName); - if (ptr_description != IntPtr.Zero) Marshal.FreeHGlobal(ptr_description); - if (ptr_tagsCsv != IntPtr.Zero) Marshal.FreeHGlobal(ptr_tagsCsv); - if (ptr_contentTypeName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentTypeName); + Marshal.FreeHGlobal(ptr_contentId); + Marshal.FreeHGlobal(ptr_contentName); + Marshal.FreeHGlobal(ptr_description); + Marshal.FreeHGlobal(ptr_tagsCsv); + Marshal.FreeHGlobal(ptr_contentTypeName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -44867,11 +44854,11 @@ public bool UgcSetPlayerData(string _contentId, float _rating, string _contentTy unsafe { if (fn__ugcSetPlayerData == null) fn__ugcSetPlayerData = (delegate* unmanaged[Cdecl]) funcTable[0x692D808C34A82143UL]; var success = false; - var ptr_contentId = _contentId == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentId); - var ptr_contentTypeName = _contentTypeName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentTypeName); + var ptr_contentId = MemoryUtils.StringToHGlobalUtf8(_contentId); + var ptr_contentTypeName = MemoryUtils.StringToHGlobalUtf8(_contentTypeName); var result = fn__ugcSetPlayerData(&success, ptr_contentId, _rating, ptr_contentTypeName, _p3); - if (ptr_contentId != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentId); - if (ptr_contentTypeName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentTypeName); + Marshal.FreeHGlobal(ptr_contentId); + Marshal.FreeHGlobal(ptr_contentTypeName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -44926,9 +44913,9 @@ public bool DatafileLoadOfflineUgc(string _filename, int _p1) unsafe { if (fn__datafileLoadOfflineUgc == null) fn__datafileLoadOfflineUgc = (delegate* unmanaged[Cdecl]) funcTable[0xC5238C011AF405E4UL]; var success = false; - var ptr_filename = _filename == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_filename); + var ptr_filename = MemoryUtils.StringToHGlobalUtf8(_filename); var result = fn__datafileLoadOfflineUgc(&success, ptr_filename, _p1); - if (ptr_filename != IntPtr.Zero) Marshal.FreeHGlobal(ptr_filename); + Marshal.FreeHGlobal(ptr_filename); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -44990,9 +44977,9 @@ public bool DatafileStartSaveToCloud(string _filename, int _p1) unsafe { if (fn__datafileStartSaveToCloud == null) fn__datafileStartSaveToCloud = (delegate* unmanaged[Cdecl]) funcTable[0x83BCCE3224735F05UL]; var success = false; - var ptr_filename = _filename == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_filename); + var ptr_filename = MemoryUtils.StringToHGlobalUtf8(_filename); var result = fn__datafileStartSaveToCloud(&success, ptr_filename, _p1); - if (ptr_filename != IntPtr.Zero) Marshal.FreeHGlobal(ptr_filename); + Marshal.FreeHGlobal(ptr_filename); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -45060,10 +45047,10 @@ public void DatadictSetBool(ref int _objectData, string _key, bool _value) if (fn__datadictSetBool == null) fn__datadictSetBool = (delegate* unmanaged[Cdecl]) funcTable[0x35124302A556A325UL]; var success = false; var ref_objectData = _objectData; - var ptr_key = _key == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_key); + var ptr_key = MemoryUtils.StringToHGlobalUtf8(_key); fn__datadictSetBool(&success, &ref_objectData, ptr_key, (byte) (_value ? 1 : 0)); _objectData = ref_objectData; - if (ptr_key != IntPtr.Zero) Marshal.FreeHGlobal(ptr_key); + Marshal.FreeHGlobal(ptr_key); if (!success) throw new Exception("Native execution failed"); } } @@ -45074,10 +45061,10 @@ public void DatadictSetInt(ref int _objectData, string _key, int _value) if (fn__datadictSetInt == null) fn__datadictSetInt = (delegate* unmanaged[Cdecl]) funcTable[0xE7E035450A7948D5UL]; var success = false; var ref_objectData = _objectData; - var ptr_key = _key == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_key); + var ptr_key = MemoryUtils.StringToHGlobalUtf8(_key); fn__datadictSetInt(&success, &ref_objectData, ptr_key, _value); _objectData = ref_objectData; - if (ptr_key != IntPtr.Zero) Marshal.FreeHGlobal(ptr_key); + Marshal.FreeHGlobal(ptr_key); if (!success) throw new Exception("Native execution failed"); } } @@ -45088,10 +45075,10 @@ public void DatadictSetFloat(ref int _objectData, string _key, float _value) if (fn__datadictSetFloat == null) fn__datadictSetFloat = (delegate* unmanaged[Cdecl]) funcTable[0xC27E1CC2D795105EUL]; var success = false; var ref_objectData = _objectData; - var ptr_key = _key == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_key); + var ptr_key = MemoryUtils.StringToHGlobalUtf8(_key); fn__datadictSetFloat(&success, &ref_objectData, ptr_key, _value); _objectData = ref_objectData; - if (ptr_key != IntPtr.Zero) Marshal.FreeHGlobal(ptr_key); + Marshal.FreeHGlobal(ptr_key); if (!success) throw new Exception("Native execution failed"); } } @@ -45102,12 +45089,12 @@ public void DatadictSetString(ref int _objectData, string _key, string _value) if (fn__datadictSetString == null) fn__datadictSetString = (delegate* unmanaged[Cdecl]) funcTable[0x8FF3847DADD8E30CUL]; var success = false; var ref_objectData = _objectData; - var ptr_key = _key == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_key); - var ptr_value = _value == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_value); + var ptr_key = MemoryUtils.StringToHGlobalUtf8(_key); + var ptr_value = MemoryUtils.StringToHGlobalUtf8(_value); fn__datadictSetString(&success, &ref_objectData, ptr_key, ptr_value); _objectData = ref_objectData; - if (ptr_key != IntPtr.Zero) Marshal.FreeHGlobal(ptr_key); - if (ptr_value != IntPtr.Zero) Marshal.FreeHGlobal(ptr_value); + Marshal.FreeHGlobal(ptr_key); + Marshal.FreeHGlobal(ptr_value); if (!success) throw new Exception("Native execution failed"); } } @@ -45118,10 +45105,10 @@ public void DatadictSetVector(ref int _objectData, string _key, float _valueX, f if (fn__datadictSetVector == null) fn__datadictSetVector = (delegate* unmanaged[Cdecl]) funcTable[0x4CD49B76338C7DEEUL]; var success = false; var ref_objectData = _objectData; - var ptr_key = _key == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_key); + var ptr_key = MemoryUtils.StringToHGlobalUtf8(_key); fn__datadictSetVector(&success, &ref_objectData, ptr_key, _valueX, _valueY, _valueZ); _objectData = ref_objectData; - if (ptr_key != IntPtr.Zero) Marshal.FreeHGlobal(ptr_key); + Marshal.FreeHGlobal(ptr_key); if (!success) throw new Exception("Native execution failed"); } } @@ -45132,10 +45119,10 @@ public int DatadictCreateDict(ref int _objectData, string _key) if (fn__datadictCreateDict == null) fn__datadictCreateDict = (delegate* unmanaged[Cdecl]) funcTable[0xA358F56F10732EE1UL]; var success = false; var ref_objectData = _objectData; - var ptr_key = _key == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_key); + var ptr_key = MemoryUtils.StringToHGlobalUtf8(_key); var result = fn__datadictCreateDict(&success, &ref_objectData, ptr_key); _objectData = ref_objectData; - if (ptr_key != IntPtr.Zero) Marshal.FreeHGlobal(ptr_key); + Marshal.FreeHGlobal(ptr_key); if (!success) throw new Exception("Native execution failed"); return result; } @@ -45147,10 +45134,10 @@ public int DatadictCreateArray(ref int _objectData, string _key) if (fn__datadictCreateArray == null) fn__datadictCreateArray = (delegate* unmanaged[Cdecl]) funcTable[0x5B11728527CA6E5FUL]; var success = false; var ref_objectData = _objectData; - var ptr_key = _key == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_key); + var ptr_key = MemoryUtils.StringToHGlobalUtf8(_key); var result = fn__datadictCreateArray(&success, &ref_objectData, ptr_key); _objectData = ref_objectData; - if (ptr_key != IntPtr.Zero) Marshal.FreeHGlobal(ptr_key); + Marshal.FreeHGlobal(ptr_key); if (!success) throw new Exception("Native execution failed"); return result; } @@ -45162,10 +45149,10 @@ public bool DatadictGetBool(ref int _objectData, string _key) if (fn__datadictGetBool == null) fn__datadictGetBool = (delegate* unmanaged[Cdecl]) funcTable[0x1186940ED72FFEECUL]; var success = false; var ref_objectData = _objectData; - var ptr_key = _key == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_key); + var ptr_key = MemoryUtils.StringToHGlobalUtf8(_key); var result = fn__datadictGetBool(&success, &ref_objectData, ptr_key); _objectData = ref_objectData; - if (ptr_key != IntPtr.Zero) Marshal.FreeHGlobal(ptr_key); + Marshal.FreeHGlobal(ptr_key); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -45177,10 +45164,10 @@ public int DatadictGetInt(ref int _objectData, string _key) if (fn__datadictGetInt == null) fn__datadictGetInt = (delegate* unmanaged[Cdecl]) funcTable[0x78F06F6B1FB5A80CUL]; var success = false; var ref_objectData = _objectData; - var ptr_key = _key == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_key); + var ptr_key = MemoryUtils.StringToHGlobalUtf8(_key); var result = fn__datadictGetInt(&success, &ref_objectData, ptr_key); _objectData = ref_objectData; - if (ptr_key != IntPtr.Zero) Marshal.FreeHGlobal(ptr_key); + Marshal.FreeHGlobal(ptr_key); if (!success) throw new Exception("Native execution failed"); return result; } @@ -45192,10 +45179,10 @@ public float DatadictGetFloat(ref int _objectData, string _key) if (fn__datadictGetFloat == null) fn__datadictGetFloat = (delegate* unmanaged[Cdecl]) funcTable[0x06610343E73B9727UL]; var success = false; var ref_objectData = _objectData; - var ptr_key = _key == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_key); + var ptr_key = MemoryUtils.StringToHGlobalUtf8(_key); var result = fn__datadictGetFloat(&success, &ref_objectData, ptr_key); _objectData = ref_objectData; - if (ptr_key != IntPtr.Zero) Marshal.FreeHGlobal(ptr_key); + Marshal.FreeHGlobal(ptr_key); if (!success) throw new Exception("Native execution failed"); return result; } @@ -45207,13 +45194,13 @@ public string DatadictGetString(ref int _objectData, string _key) if (fn__datadictGetString == null) fn__datadictGetString = (delegate* unmanaged[Cdecl]) funcTable[0x3D2FD9E763B24472UL]; var success = false; var ref_objectData = _objectData; - var ptr_key = _key == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_key); + var ptr_key = MemoryUtils.StringToHGlobalUtf8(_key); var result = fn__datadictGetString(&success, &ref_objectData, ptr_key); _objectData = ref_objectData; - if (ptr_key != IntPtr.Zero) Marshal.FreeHGlobal(ptr_key); + Marshal.FreeHGlobal(ptr_key); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -45224,10 +45211,10 @@ public Vector3 DatadictGetVector(ref int _objectData, string _key) if (fn__datadictGetVector == null) fn__datadictGetVector = (delegate* unmanaged[Cdecl]) funcTable[0x46CD3CB66E0825CCUL]; var success = false; var ref_objectData = _objectData; - var ptr_key = _key == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_key); + var ptr_key = MemoryUtils.StringToHGlobalUtf8(_key); var result = fn__datadictGetVector(&success, &ref_objectData, ptr_key); _objectData = ref_objectData; - if (ptr_key != IntPtr.Zero) Marshal.FreeHGlobal(ptr_key); + Marshal.FreeHGlobal(ptr_key); if (!success) throw new Exception("Native execution failed"); return result; } @@ -45239,10 +45226,10 @@ public int DatadictGetDict(ref int _objectData, string _key) if (fn__datadictGetDict == null) fn__datadictGetDict = (delegate* unmanaged[Cdecl]) funcTable[0xB6B9DDC412FCEEE2UL]; var success = false; var ref_objectData = _objectData; - var ptr_key = _key == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_key); + var ptr_key = MemoryUtils.StringToHGlobalUtf8(_key); var result = fn__datadictGetDict(&success, &ref_objectData, ptr_key); _objectData = ref_objectData; - if (ptr_key != IntPtr.Zero) Marshal.FreeHGlobal(ptr_key); + Marshal.FreeHGlobal(ptr_key); if (!success) throw new Exception("Native execution failed"); return result; } @@ -45254,10 +45241,10 @@ public int DatadictGetArray(ref int _objectData, string _key) if (fn__datadictGetArray == null) fn__datadictGetArray = (delegate* unmanaged[Cdecl]) funcTable[0x7A983AA9DA2659EDUL]; var success = false; var ref_objectData = _objectData; - var ptr_key = _key == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_key); + var ptr_key = MemoryUtils.StringToHGlobalUtf8(_key); var result = fn__datadictGetArray(&success, &ref_objectData, ptr_key); _objectData = ref_objectData; - if (ptr_key != IntPtr.Zero) Marshal.FreeHGlobal(ptr_key); + Marshal.FreeHGlobal(ptr_key); if (!success) throw new Exception("Native execution failed"); return result; } @@ -45269,10 +45256,10 @@ public int DatadictGetType(ref int _objectData, string _key) if (fn__datadictGetType == null) fn__datadictGetType = (delegate* unmanaged[Cdecl]) funcTable[0x031C55ED33227371UL]; var success = false; var ref_objectData = _objectData; - var ptr_key = _key == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_key); + var ptr_key = MemoryUtils.StringToHGlobalUtf8(_key); var result = fn__datadictGetType(&success, &ref_objectData, ptr_key); _objectData = ref_objectData; - if (ptr_key != IntPtr.Zero) Marshal.FreeHGlobal(ptr_key); + Marshal.FreeHGlobal(ptr_key); if (!success) throw new Exception("Native execution failed"); return result; } @@ -45320,10 +45307,10 @@ public void DataarrayAddString(ref int _arrayData, string _value) if (fn__dataarrayAddString == null) fn__dataarrayAddString = (delegate* unmanaged[Cdecl]) funcTable[0x2F0661C155AEEEAAUL]; var success = false; var ref_arrayData = _arrayData; - var ptr_value = _value == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_value); + var ptr_value = MemoryUtils.StringToHGlobalUtf8(_value); fn__dataarrayAddString(&success, &ref_arrayData, ptr_value); _arrayData = ref_arrayData; - if (ptr_value != IntPtr.Zero) Marshal.FreeHGlobal(ptr_value); + Marshal.FreeHGlobal(ptr_value); if (!success) throw new Exception("Native execution failed"); } } @@ -45401,8 +45388,8 @@ public string DataarrayGetString(ref int _arrayData, int _arrayIndex) var result = fn__dataarrayGetString(&success, &ref_arrayData, _arrayIndex); _arrayData = ref_arrayData; if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -45460,126 +45447,126 @@ public int DataarrayGetType(ref int _arrayData, int _arrayIndex) } public bool DecorSetTime(IEntity entity, string propertyName, int timestamp) => DecorSetTime(entity.ScriptId, propertyName, timestamp); - public bool DecorSetTime(int _entity, string _propertyName, int _timestamp) + public bool DecorSetTime(uint _entity, string _propertyName, int _timestamp) { unsafe { - if (fn__decorSetTime == null) fn__decorSetTime = (delegate* unmanaged[Cdecl]) funcTable[0x95AED7B8E39ECAA4UL]; + if (fn__decorSetTime == null) fn__decorSetTime = (delegate* unmanaged[Cdecl]) funcTable[0x95AED7B8E39ECAA4UL]; var success = false; - var ptr_propertyName = _propertyName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_propertyName); + var ptr_propertyName = MemoryUtils.StringToHGlobalUtf8(_propertyName); var result = fn__decorSetTime(&success, _entity, ptr_propertyName, _timestamp); - if (ptr_propertyName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_propertyName); + Marshal.FreeHGlobal(ptr_propertyName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool DecorSetBool(IEntity entity, string propertyName, bool value) => DecorSetBool(entity.ScriptId, propertyName, value); - public bool DecorSetBool(int _entity, string _propertyName, bool _value) + public bool DecorSetBool(uint _entity, string _propertyName, bool _value) { unsafe { - if (fn__decorSetBool == null) fn__decorSetBool = (delegate* unmanaged[Cdecl]) funcTable[0x6B1E8E2ED1335B71UL]; + if (fn__decorSetBool == null) fn__decorSetBool = (delegate* unmanaged[Cdecl]) funcTable[0x6B1E8E2ED1335B71UL]; var success = false; - var ptr_propertyName = _propertyName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_propertyName); + var ptr_propertyName = MemoryUtils.StringToHGlobalUtf8(_propertyName); var result = fn__decorSetBool(&success, _entity, ptr_propertyName, (byte) (_value ? 1 : 0)); - if (ptr_propertyName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_propertyName); + Marshal.FreeHGlobal(ptr_propertyName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool DecorSetFloat(IEntity entity, string propertyName, float value) => DecorSetFloat(entity.ScriptId, propertyName, value); - public bool DecorSetFloat(int _entity, string _propertyName, float _value) + public bool DecorSetFloat(uint _entity, string _propertyName, float _value) { unsafe { - if (fn__decorSetFloat == null) fn__decorSetFloat = (delegate* unmanaged[Cdecl]) funcTable[0x211AB1DD8D0F363AUL]; + if (fn__decorSetFloat == null) fn__decorSetFloat = (delegate* unmanaged[Cdecl]) funcTable[0x211AB1DD8D0F363AUL]; var success = false; - var ptr_propertyName = _propertyName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_propertyName); + var ptr_propertyName = MemoryUtils.StringToHGlobalUtf8(_propertyName); var result = fn__decorSetFloat(&success, _entity, ptr_propertyName, _value); - if (ptr_propertyName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_propertyName); + Marshal.FreeHGlobal(ptr_propertyName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool DecorSetInt(IEntity entity, string propertyName, int value) => DecorSetInt(entity.ScriptId, propertyName, value); - public bool DecorSetInt(int _entity, string _propertyName, int _value) + public bool DecorSetInt(uint _entity, string _propertyName, int _value) { unsafe { - if (fn__decorSetInt == null) fn__decorSetInt = (delegate* unmanaged[Cdecl]) funcTable[0x0CE3AA5E1CA19E10UL]; + if (fn__decorSetInt == null) fn__decorSetInt = (delegate* unmanaged[Cdecl]) funcTable[0x0CE3AA5E1CA19E10UL]; var success = false; - var ptr_propertyName = _propertyName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_propertyName); + var ptr_propertyName = MemoryUtils.StringToHGlobalUtf8(_propertyName); var result = fn__decorSetInt(&success, _entity, ptr_propertyName, _value); - if (ptr_propertyName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_propertyName); + Marshal.FreeHGlobal(ptr_propertyName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool DecorGetBool(IEntity entity, string propertyName) => DecorGetBool(entity.ScriptId, propertyName); - public bool DecorGetBool(int _entity, string _propertyName) + public bool DecorGetBool(uint _entity, string _propertyName) { unsafe { - if (fn__decorGetBool == null) fn__decorGetBool = (delegate* unmanaged[Cdecl]) funcTable[0xDACE671663F2F5DBUL]; + if (fn__decorGetBool == null) fn__decorGetBool = (delegate* unmanaged[Cdecl]) funcTable[0xDACE671663F2F5DBUL]; var success = false; - var ptr_propertyName = _propertyName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_propertyName); + var ptr_propertyName = MemoryUtils.StringToHGlobalUtf8(_propertyName); var result = fn__decorGetBool(&success, _entity, ptr_propertyName); - if (ptr_propertyName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_propertyName); + Marshal.FreeHGlobal(ptr_propertyName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public float DecorGetFloat(IEntity entity, string propertyName) => DecorGetFloat(entity.ScriptId, propertyName); - public float DecorGetFloat(int _entity, string _propertyName) + public float DecorGetFloat(uint _entity, string _propertyName) { unsafe { - if (fn__decorGetFloat == null) fn__decorGetFloat = (delegate* unmanaged[Cdecl]) funcTable[0x6524A2F114706F43UL]; + if (fn__decorGetFloat == null) fn__decorGetFloat = (delegate* unmanaged[Cdecl]) funcTable[0x6524A2F114706F43UL]; var success = false; - var ptr_propertyName = _propertyName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_propertyName); + var ptr_propertyName = MemoryUtils.StringToHGlobalUtf8(_propertyName); var result = fn__decorGetFloat(&success, _entity, ptr_propertyName); - if (ptr_propertyName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_propertyName); + Marshal.FreeHGlobal(ptr_propertyName); if (!success) throw new Exception("Native execution failed"); return result; } } public int DecorGetInt(IEntity entity, string propertyName) => DecorGetInt(entity.ScriptId, propertyName); - public int DecorGetInt(int _entity, string _propertyName) + public int DecorGetInt(uint _entity, string _propertyName) { unsafe { - if (fn__decorGetInt == null) fn__decorGetInt = (delegate* unmanaged[Cdecl]) funcTable[0xA06C969B02A97298UL]; + if (fn__decorGetInt == null) fn__decorGetInt = (delegate* unmanaged[Cdecl]) funcTable[0xA06C969B02A97298UL]; var success = false; - var ptr_propertyName = _propertyName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_propertyName); + var ptr_propertyName = MemoryUtils.StringToHGlobalUtf8(_propertyName); var result = fn__decorGetInt(&success, _entity, ptr_propertyName); - if (ptr_propertyName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_propertyName); + Marshal.FreeHGlobal(ptr_propertyName); if (!success) throw new Exception("Native execution failed"); return result; } } public bool DecorExistOn(IEntity entity, string propertyName) => DecorExistOn(entity.ScriptId, propertyName); - public bool DecorExistOn(int _entity, string _propertyName) + public bool DecorExistOn(uint _entity, string _propertyName) { unsafe { - if (fn__decorExistOn == null) fn__decorExistOn = (delegate* unmanaged[Cdecl]) funcTable[0x05661B80A8C9165FUL]; + if (fn__decorExistOn == null) fn__decorExistOn = (delegate* unmanaged[Cdecl]) funcTable[0x05661B80A8C9165FUL]; var success = false; - var ptr_propertyName = _propertyName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_propertyName); + var ptr_propertyName = MemoryUtils.StringToHGlobalUtf8(_propertyName); var result = fn__decorExistOn(&success, _entity, ptr_propertyName); - if (ptr_propertyName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_propertyName); + Marshal.FreeHGlobal(ptr_propertyName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool DecorRemove(IEntity entity, string propertyName) => DecorRemove(entity.ScriptId, propertyName); - public bool DecorRemove(int _entity, string _propertyName) + public bool DecorRemove(uint _entity, string _propertyName) { unsafe { - if (fn__decorRemove == null) fn__decorRemove = (delegate* unmanaged[Cdecl]) funcTable[0x00EE9F297C738720UL]; + if (fn__decorRemove == null) fn__decorRemove = (delegate* unmanaged[Cdecl]) funcTable[0x00EE9F297C738720UL]; var success = false; - var ptr_propertyName = _propertyName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_propertyName); + var ptr_propertyName = MemoryUtils.StringToHGlobalUtf8(_propertyName); var result = fn__decorRemove(&success, _entity, ptr_propertyName); - if (ptr_propertyName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_propertyName); + Marshal.FreeHGlobal(ptr_propertyName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -45590,9 +45577,9 @@ public void DecorRegister(string _propertyName, int _type) unsafe { if (fn__decorRegister == null) fn__decorRegister = (delegate* unmanaged[Cdecl]) funcTable[0x9FD90732F56403CEUL]; var success = false; - var ptr_propertyName = _propertyName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_propertyName); + var ptr_propertyName = MemoryUtils.StringToHGlobalUtf8(_propertyName); fn__decorRegister(&success, ptr_propertyName, _type); - if (ptr_propertyName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_propertyName); + Marshal.FreeHGlobal(ptr_propertyName); if (!success) throw new Exception("Native execution failed"); } } @@ -45602,9 +45589,9 @@ public bool DecorIsRegisteredAsType(string _propertyName, int _type) unsafe { if (fn__decorIsRegisteredAsType == null) fn__decorIsRegisteredAsType = (delegate* unmanaged[Cdecl]) funcTable[0x4F14F9F870D6FBC8UL]; var success = false; - var ptr_propertyName = _propertyName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_propertyName); + var ptr_propertyName = MemoryUtils.StringToHGlobalUtf8(_propertyName); var result = fn__decorIsRegisteredAsType(&success, ptr_propertyName, _type); - if (ptr_propertyName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_propertyName); + Marshal.FreeHGlobal(ptr_propertyName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -45742,10 +45729,10 @@ public void OnEnterMp() } public bool DoesEntityExist(IEntity entity) => DoesEntityExist(entity.ScriptId); - public bool DoesEntityExist(int _entity) + public bool DoesEntityExist(uint _entity) { unsafe { - if (fn__doesEntityExist == null) fn__doesEntityExist = (delegate* unmanaged[Cdecl]) funcTable[0x7239B21A38F536BAUL]; + if (fn__doesEntityExist == null) fn__doesEntityExist = (delegate* unmanaged[Cdecl]) funcTable[0x7239B21A38F536BAUL]; var success = false; var result = fn__doesEntityExist(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -45754,10 +45741,10 @@ public bool DoesEntityExist(int _entity) } public bool DoesEntityBelongToThisScript(IEntity entity, bool p1) => DoesEntityBelongToThisScript(entity.ScriptId, p1); - public bool DoesEntityBelongToThisScript(int _entity, bool _p1) + public bool DoesEntityBelongToThisScript(uint _entity, bool _p1) { unsafe { - if (fn__doesEntityBelongToThisScript == null) fn__doesEntityBelongToThisScript = (delegate* unmanaged[Cdecl]) funcTable[0xDDE6DF5AE89981D2UL]; + if (fn__doesEntityBelongToThisScript == null) fn__doesEntityBelongToThisScript = (delegate* unmanaged[Cdecl]) funcTable[0xDDE6DF5AE89981D2UL]; var success = false; var result = fn__doesEntityBelongToThisScript(&success, _entity, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -45766,10 +45753,10 @@ public bool DoesEntityBelongToThisScript(int _entity, bool _p1) } public bool DoesEntityHaveDrawable(IEntity entity) => DoesEntityHaveDrawable(entity.ScriptId); - public bool DoesEntityHaveDrawable(int _entity) + public bool DoesEntityHaveDrawable(uint _entity) { unsafe { - if (fn__doesEntityHaveDrawable == null) fn__doesEntityHaveDrawable = (delegate* unmanaged[Cdecl]) funcTable[0x060D6E96F8B8E48DUL]; + if (fn__doesEntityHaveDrawable == null) fn__doesEntityHaveDrawable = (delegate* unmanaged[Cdecl]) funcTable[0x060D6E96F8B8E48DUL]; var success = false; var result = fn__doesEntityHaveDrawable(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -45778,10 +45765,10 @@ public bool DoesEntityHaveDrawable(int _entity) } public bool DoesEntityHavePhysics(IEntity entity) => DoesEntityHavePhysics(entity.ScriptId); - public bool DoesEntityHavePhysics(int _entity) + public bool DoesEntityHavePhysics(uint _entity) { unsafe { - if (fn__doesEntityHavePhysics == null) fn__doesEntityHavePhysics = (delegate* unmanaged[Cdecl]) funcTable[0xDA95EA3317CC5064UL]; + if (fn__doesEntityHavePhysics == null) fn__doesEntityHavePhysics = (delegate* unmanaged[Cdecl]) funcTable[0xDA95EA3317CC5064UL]; var success = false; var result = fn__doesEntityHavePhysics(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -45790,10 +45777,10 @@ public bool DoesEntityHavePhysics(int _entity) } public bool DoesEntityHaveSkeleton(IEntity entity) => DoesEntityHaveSkeleton(entity.ScriptId); - public bool DoesEntityHaveSkeleton(int _entity) + public bool DoesEntityHaveSkeleton(uint _entity) { unsafe { - if (fn__doesEntityHaveSkeleton == null) fn__doesEntityHaveSkeleton = (delegate* unmanaged[Cdecl]) funcTable[0x764EB96874EFFDC1UL]; + if (fn__doesEntityHaveSkeleton == null) fn__doesEntityHaveSkeleton = (delegate* unmanaged[Cdecl]) funcTable[0x764EB96874EFFDC1UL]; var success = false; var result = fn__doesEntityHaveSkeleton(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -45802,10 +45789,10 @@ public bool DoesEntityHaveSkeleton(int _entity) } public bool DoesEntityHaveAnimDirector(IEntity entity) => DoesEntityHaveAnimDirector(entity.ScriptId); - public bool DoesEntityHaveAnimDirector(int _entity) + public bool DoesEntityHaveAnimDirector(uint _entity) { unsafe { - if (fn__doesEntityHaveAnimDirector == null) fn__doesEntityHaveAnimDirector = (delegate* unmanaged[Cdecl]) funcTable[0x2158E81A6AF65EA9UL]; + if (fn__doesEntityHaveAnimDirector == null) fn__doesEntityHaveAnimDirector = (delegate* unmanaged[Cdecl]) funcTable[0x2158E81A6AF65EA9UL]; var success = false; var result = fn__doesEntityHaveAnimDirector(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -45814,26 +45801,26 @@ public bool DoesEntityHaveAnimDirector(int _entity) } public bool HasEntityAnimFinished(IEntity entity, string animDict, string animName, int p3) => HasEntityAnimFinished(entity.ScriptId, animDict, animName, p3); - public bool HasEntityAnimFinished(int _entity, string _animDict, string _animName, int _p3) + public bool HasEntityAnimFinished(uint _entity, string _animDict, string _animName, int _p3) { unsafe { - if (fn__hasEntityAnimFinished == null) fn__hasEntityAnimFinished = (delegate* unmanaged[Cdecl]) funcTable[0x20B711662962B472UL]; + if (fn__hasEntityAnimFinished == null) fn__hasEntityAnimFinished = (delegate* unmanaged[Cdecl]) funcTable[0x20B711662962B472UL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); var result = fn__hasEntityAnimFinished(&success, _entity, ptr_animDict, ptr_animName, _p3); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool HasEntityBeenDamagedByAnyObject(IEntity entity) => HasEntityBeenDamagedByAnyObject(entity.ScriptId); - public bool HasEntityBeenDamagedByAnyObject(int _entity) + public bool HasEntityBeenDamagedByAnyObject(uint _entity) { unsafe { - if (fn__hasEntityBeenDamagedByAnyObject == null) fn__hasEntityBeenDamagedByAnyObject = (delegate* unmanaged[Cdecl]) funcTable[0x95EB9964FF5C5C65UL]; + if (fn__hasEntityBeenDamagedByAnyObject == null) fn__hasEntityBeenDamagedByAnyObject = (delegate* unmanaged[Cdecl]) funcTable[0x95EB9964FF5C5C65UL]; var success = false; var result = fn__hasEntityBeenDamagedByAnyObject(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -45842,10 +45829,10 @@ public bool HasEntityBeenDamagedByAnyObject(int _entity) } public bool HasEntityBeenDamagedByAnyPed(IEntity entity) => HasEntityBeenDamagedByAnyPed(entity.ScriptId); - public bool HasEntityBeenDamagedByAnyPed(int _entity) + public bool HasEntityBeenDamagedByAnyPed(uint _entity) { unsafe { - if (fn__hasEntityBeenDamagedByAnyPed == null) fn__hasEntityBeenDamagedByAnyPed = (delegate* unmanaged[Cdecl]) funcTable[0x605F5A140F202491UL]; + if (fn__hasEntityBeenDamagedByAnyPed == null) fn__hasEntityBeenDamagedByAnyPed = (delegate* unmanaged[Cdecl]) funcTable[0x605F5A140F202491UL]; var success = false; var result = fn__hasEntityBeenDamagedByAnyPed(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -45854,10 +45841,10 @@ public bool HasEntityBeenDamagedByAnyPed(int _entity) } public bool HasEntityBeenDamagedByAnyVehicle(IEntity entity) => HasEntityBeenDamagedByAnyVehicle(entity.ScriptId); - public bool HasEntityBeenDamagedByAnyVehicle(int _entity) + public bool HasEntityBeenDamagedByAnyVehicle(uint _entity) { unsafe { - if (fn__hasEntityBeenDamagedByAnyVehicle == null) fn__hasEntityBeenDamagedByAnyVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xDFD5033FDBA0A9C8UL]; + if (fn__hasEntityBeenDamagedByAnyVehicle == null) fn__hasEntityBeenDamagedByAnyVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xDFD5033FDBA0A9C8UL]; var success = false; var result = fn__hasEntityBeenDamagedByAnyVehicle(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -45865,13 +45852,13 @@ public bool HasEntityBeenDamagedByAnyVehicle(int _entity) } } - public bool HasEntityBeenDamagedByEntity(IEntity entity1, int entity2, bool p2) => HasEntityBeenDamagedByEntity(entity1.ScriptId, entity2, p2); - public bool HasEntityBeenDamagedByEntity(int entity1, IEntity entity2, bool p2) => HasEntityBeenDamagedByEntity(entity1, entity2.ScriptId, p2); + public bool HasEntityBeenDamagedByEntity(IEntity entity1, uint entity2, bool p2) => HasEntityBeenDamagedByEntity(entity1.ScriptId, entity2, p2); + public bool HasEntityBeenDamagedByEntity(uint entity1, IEntity entity2, bool p2) => HasEntityBeenDamagedByEntity(entity1, entity2.ScriptId, p2); public bool HasEntityBeenDamagedByEntity(IEntity entity1, IEntity entity2, bool p2) => HasEntityBeenDamagedByEntity(entity1.ScriptId, entity2.ScriptId, p2); - public bool HasEntityBeenDamagedByEntity(int _entity1, int _entity2, bool _p2) + public bool HasEntityBeenDamagedByEntity(uint _entity1, uint _entity2, bool _p2) { unsafe { - if (fn__hasEntityBeenDamagedByEntity == null) fn__hasEntityBeenDamagedByEntity = (delegate* unmanaged[Cdecl]) funcTable[0xC86D67D52A707CF8UL]; + if (fn__hasEntityBeenDamagedByEntity == null) fn__hasEntityBeenDamagedByEntity = (delegate* unmanaged[Cdecl]) funcTable[0xC86D67D52A707CF8UL]; var success = false; var result = fn__hasEntityBeenDamagedByEntity(&success, _entity1, _entity2, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -45879,13 +45866,13 @@ public bool HasEntityBeenDamagedByEntity(int _entity1, int _entity2, bool _p2) } } - public bool HasEntityClearLosToEntity(IEntity entity1, int entity2, int traceType) => HasEntityClearLosToEntity(entity1.ScriptId, entity2, traceType); - public bool HasEntityClearLosToEntity(int entity1, IEntity entity2, int traceType) => HasEntityClearLosToEntity(entity1, entity2.ScriptId, traceType); + public bool HasEntityClearLosToEntity(IEntity entity1, uint entity2, int traceType) => HasEntityClearLosToEntity(entity1.ScriptId, entity2, traceType); + public bool HasEntityClearLosToEntity(uint entity1, IEntity entity2, int traceType) => HasEntityClearLosToEntity(entity1, entity2.ScriptId, traceType); public bool HasEntityClearLosToEntity(IEntity entity1, IEntity entity2, int traceType) => HasEntityClearLosToEntity(entity1.ScriptId, entity2.ScriptId, traceType); - public bool HasEntityClearLosToEntity(int _entity1, int _entity2, int _traceType) + public bool HasEntityClearLosToEntity(uint _entity1, uint _entity2, int _traceType) { unsafe { - if (fn__hasEntityClearLosToEntity == null) fn__hasEntityClearLosToEntity = (delegate* unmanaged[Cdecl]) funcTable[0xFCDFF7B72D23A1ACUL]; + if (fn__hasEntityClearLosToEntity == null) fn__hasEntityClearLosToEntity = (delegate* unmanaged[Cdecl]) funcTable[0xFCDFF7B72D23A1ACUL]; var success = false; var result = fn__hasEntityClearLosToEntity(&success, _entity1, _entity2, _traceType); if (!success) throw new Exception("Native execution failed"); @@ -45893,13 +45880,13 @@ public bool HasEntityClearLosToEntity(int _entity1, int _entity2, int _traceType } } - public bool HasEntityClearLosToEntityAdjustForCover(IEntity entity1, int entity2, int traceType) => HasEntityClearLosToEntityAdjustForCover(entity1.ScriptId, entity2, traceType); - public bool HasEntityClearLosToEntityAdjustForCover(int entity1, IEntity entity2, int traceType) => HasEntityClearLosToEntityAdjustForCover(entity1, entity2.ScriptId, traceType); + public bool HasEntityClearLosToEntityAdjustForCover(IEntity entity1, uint entity2, int traceType) => HasEntityClearLosToEntityAdjustForCover(entity1.ScriptId, entity2, traceType); + public bool HasEntityClearLosToEntityAdjustForCover(uint entity1, IEntity entity2, int traceType) => HasEntityClearLosToEntityAdjustForCover(entity1, entity2.ScriptId, traceType); public bool HasEntityClearLosToEntityAdjustForCover(IEntity entity1, IEntity entity2, int traceType) => HasEntityClearLosToEntityAdjustForCover(entity1.ScriptId, entity2.ScriptId, traceType); - public bool HasEntityClearLosToEntityAdjustForCover(int _entity1, int _entity2, int _traceType) + public bool HasEntityClearLosToEntityAdjustForCover(uint _entity1, uint _entity2, int _traceType) { unsafe { - if (fn__hasEntityClearLosToEntityAdjustForCover == null) fn__hasEntityClearLosToEntityAdjustForCover = (delegate* unmanaged[Cdecl]) funcTable[0x394BDE2A7BBA031EUL]; + if (fn__hasEntityClearLosToEntityAdjustForCover == null) fn__hasEntityClearLosToEntityAdjustForCover = (delegate* unmanaged[Cdecl]) funcTable[0x394BDE2A7BBA031EUL]; var success = false; var result = fn__hasEntityClearLosToEntityAdjustForCover(&success, _entity1, _entity2, _traceType); if (!success) throw new Exception("Native execution failed"); @@ -45907,13 +45894,13 @@ public bool HasEntityClearLosToEntityAdjustForCover(int _entity1, int _entity2, } } - public bool HasEntityClearLosToEntityInFront(IEntity entity1, int entity2) => HasEntityClearLosToEntityInFront(entity1.ScriptId, entity2); - public bool HasEntityClearLosToEntityInFront(int entity1, IEntity entity2) => HasEntityClearLosToEntityInFront(entity1, entity2.ScriptId); + public bool HasEntityClearLosToEntityInFront(IEntity entity1, uint entity2) => HasEntityClearLosToEntityInFront(entity1.ScriptId, entity2); + public bool HasEntityClearLosToEntityInFront(uint entity1, IEntity entity2) => HasEntityClearLosToEntityInFront(entity1, entity2.ScriptId); public bool HasEntityClearLosToEntityInFront(IEntity entity1, IEntity entity2) => HasEntityClearLosToEntityInFront(entity1.ScriptId, entity2.ScriptId); - public bool HasEntityClearLosToEntityInFront(int _entity1, int _entity2) + public bool HasEntityClearLosToEntityInFront(uint _entity1, uint _entity2) { unsafe { - if (fn__hasEntityClearLosToEntityInFront == null) fn__hasEntityClearLosToEntityInFront = (delegate* unmanaged[Cdecl]) funcTable[0x0267D00AF114F17AUL]; + if (fn__hasEntityClearLosToEntityInFront == null) fn__hasEntityClearLosToEntityInFront = (delegate* unmanaged[Cdecl]) funcTable[0x0267D00AF114F17AUL]; var success = false; var result = fn__hasEntityClearLosToEntityInFront(&success, _entity1, _entity2); if (!success) throw new Exception("Native execution failed"); @@ -45922,10 +45909,10 @@ public bool HasEntityClearLosToEntityInFront(int _entity1, int _entity2) } public bool HasEntityCollidedWithAnything(IEntity entity) => HasEntityCollidedWithAnything(entity.ScriptId); - public bool HasEntityCollidedWithAnything(int _entity) + public bool HasEntityCollidedWithAnything(uint _entity) { unsafe { - if (fn__hasEntityCollidedWithAnything == null) fn__hasEntityCollidedWithAnything = (delegate* unmanaged[Cdecl]) funcTable[0x8BAD02F0368D9E14UL]; + if (fn__hasEntityCollidedWithAnything == null) fn__hasEntityCollidedWithAnything = (delegate* unmanaged[Cdecl]) funcTable[0x8BAD02F0368D9E14UL]; var success = false; var result = fn__hasEntityCollidedWithAnything(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -45934,10 +45921,10 @@ public bool HasEntityCollidedWithAnything(int _entity) } public uint GetLastMaterialHitByEntity(IEntity entity) => GetLastMaterialHitByEntity(entity.ScriptId); - public uint GetLastMaterialHitByEntity(int _entity) + public uint GetLastMaterialHitByEntity(uint _entity) { unsafe { - if (fn__getLastMaterialHitByEntity == null) fn__getLastMaterialHitByEntity = (delegate* unmanaged[Cdecl]) funcTable[0x5C3D0A935F535C4CUL]; + if (fn__getLastMaterialHitByEntity == null) fn__getLastMaterialHitByEntity = (delegate* unmanaged[Cdecl]) funcTable[0x5C3D0A935F535C4CUL]; var success = false; var result = fn__getLastMaterialHitByEntity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -45946,10 +45933,10 @@ public uint GetLastMaterialHitByEntity(int _entity) } public Vector3 GetCollisionNormalOfLastHitForEntity(IEntity entity) => GetCollisionNormalOfLastHitForEntity(entity.ScriptId); - public Vector3 GetCollisionNormalOfLastHitForEntity(int _entity) + public Vector3 GetCollisionNormalOfLastHitForEntity(uint _entity) { unsafe { - if (fn__getCollisionNormalOfLastHitForEntity == null) fn__getCollisionNormalOfLastHitForEntity = (delegate* unmanaged[Cdecl]) funcTable[0xE465D4AB7CA6AE72UL]; + if (fn__getCollisionNormalOfLastHitForEntity == null) fn__getCollisionNormalOfLastHitForEntity = (delegate* unmanaged[Cdecl]) funcTable[0xE465D4AB7CA6AE72UL]; var success = false; var result = fn__getCollisionNormalOfLastHitForEntity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -45958,10 +45945,10 @@ public Vector3 GetCollisionNormalOfLastHitForEntity(int _entity) } public void ForceEntityAiAndAnimationUpdate(IEntity entity) => ForceEntityAiAndAnimationUpdate(entity.ScriptId); - public void ForceEntityAiAndAnimationUpdate(int _entity) + public void ForceEntityAiAndAnimationUpdate(uint _entity) { unsafe { - if (fn__forceEntityAiAndAnimationUpdate == null) fn__forceEntityAiAndAnimationUpdate = (delegate* unmanaged[Cdecl]) funcTable[0x40FDEDB72F8293B2UL]; + if (fn__forceEntityAiAndAnimationUpdate == null) fn__forceEntityAiAndAnimationUpdate = (delegate* unmanaged[Cdecl]) funcTable[0x40FDEDB72F8293B2UL]; var success = false; fn__forceEntityAiAndAnimationUpdate(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -45969,32 +45956,32 @@ public void ForceEntityAiAndAnimationUpdate(int _entity) } public float GetEntityAnimCurrentTime(IEntity entity, string animDict, string animName) => GetEntityAnimCurrentTime(entity.ScriptId, animDict, animName); - public float GetEntityAnimCurrentTime(int _entity, string _animDict, string _animName) + public float GetEntityAnimCurrentTime(uint _entity, string _animDict, string _animName) { unsafe { - if (fn__getEntityAnimCurrentTime == null) fn__getEntityAnimCurrentTime = (delegate* unmanaged[Cdecl]) funcTable[0x346D81500D088F42UL]; + if (fn__getEntityAnimCurrentTime == null) fn__getEntityAnimCurrentTime = (delegate* unmanaged[Cdecl]) funcTable[0x346D81500D088F42UL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); var result = fn__getEntityAnimCurrentTime(&success, _entity, ptr_animDict, ptr_animName); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animName); if (!success) throw new Exception("Native execution failed"); return result; } } public float GetEntityAnimTotalTime(IEntity entity, string animDict, string animName) => GetEntityAnimTotalTime(entity.ScriptId, animDict, animName); - public float GetEntityAnimTotalTime(int _entity, string _animDict, string _animName) + public float GetEntityAnimTotalTime(uint _entity, string _animDict, string _animName) { unsafe { - if (fn__getEntityAnimTotalTime == null) fn__getEntityAnimTotalTime = (delegate* unmanaged[Cdecl]) funcTable[0x50BD2730B191E360UL]; + if (fn__getEntityAnimTotalTime == null) fn__getEntityAnimTotalTime = (delegate* unmanaged[Cdecl]) funcTable[0x50BD2730B191E360UL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); var result = fn__getEntityAnimTotalTime(&success, _entity, ptr_animDict, ptr_animName); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animName); if (!success) throw new Exception("Native execution failed"); return result; } @@ -46005,21 +45992,21 @@ public float GetAnimDuration(string _animDict, string _animName) unsafe { if (fn__getAnimDuration == null) fn__getAnimDuration = (delegate* unmanaged[Cdecl]) funcTable[0xFEDDF04D62B8D790UL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); var result = fn__getAnimDuration(&success, ptr_animDict, ptr_animName); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animName); if (!success) throw new Exception("Native execution failed"); return result; } } - public int GetEntityAttachedTo(IEntity entity) => GetEntityAttachedTo(entity.ScriptId); - public int GetEntityAttachedTo(int _entity) + public uint GetEntityAttachedTo(IEntity entity) => GetEntityAttachedTo(entity.ScriptId); + public uint GetEntityAttachedTo(uint _entity) { unsafe { - if (fn__getEntityAttachedTo == null) fn__getEntityAttachedTo = (delegate* unmanaged[Cdecl]) funcTable[0x48C2BED9180FE123UL]; + if (fn__getEntityAttachedTo == null) fn__getEntityAttachedTo = (delegate* unmanaged[Cdecl]) funcTable[0x48C2BED9180FE123UL]; var success = false; var result = fn__getEntityAttachedTo(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46028,10 +46015,10 @@ public int GetEntityAttachedTo(int _entity) } public Vector3 GetEntityCoords(IEntity entity, bool alive) => GetEntityCoords(entity.ScriptId, alive); - public Vector3 GetEntityCoords(int _entity, bool _alive) + public Vector3 GetEntityCoords(uint _entity, bool _alive) { unsafe { - if (fn__getEntityCoords == null) fn__getEntityCoords = (delegate* unmanaged[Cdecl]) funcTable[0x3FEF770D40960D5AUL]; + if (fn__getEntityCoords == null) fn__getEntityCoords = (delegate* unmanaged[Cdecl]) funcTable[0x3FEF770D40960D5AUL]; var success = false; var result = fn__getEntityCoords(&success, _entity, (byte) (_alive ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -46040,10 +46027,10 @@ public Vector3 GetEntityCoords(int _entity, bool _alive) } public Vector3 GetEntityForwardVector(IEntity entity) => GetEntityForwardVector(entity.ScriptId); - public Vector3 GetEntityForwardVector(int _entity) + public Vector3 GetEntityForwardVector(uint _entity) { unsafe { - if (fn__getEntityForwardVector == null) fn__getEntityForwardVector = (delegate* unmanaged[Cdecl]) funcTable[0x0A794A5A57F8DF91UL]; + if (fn__getEntityForwardVector == null) fn__getEntityForwardVector = (delegate* unmanaged[Cdecl]) funcTable[0x0A794A5A57F8DF91UL]; var success = false; var result = fn__getEntityForwardVector(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46052,10 +46039,10 @@ public Vector3 GetEntityForwardVector(int _entity) } public float GetEntityForwardX(IEntity entity) => GetEntityForwardX(entity.ScriptId); - public float GetEntityForwardX(int _entity) + public float GetEntityForwardX(uint _entity) { unsafe { - if (fn__getEntityForwardX == null) fn__getEntityForwardX = (delegate* unmanaged[Cdecl]) funcTable[0x8BB4EF4214E0E6D5UL]; + if (fn__getEntityForwardX == null) fn__getEntityForwardX = (delegate* unmanaged[Cdecl]) funcTable[0x8BB4EF4214E0E6D5UL]; var success = false; var result = fn__getEntityForwardX(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46064,10 +46051,10 @@ public float GetEntityForwardX(int _entity) } public float GetEntityForwardY(IEntity entity) => GetEntityForwardY(entity.ScriptId); - public float GetEntityForwardY(int _entity) + public float GetEntityForwardY(uint _entity) { unsafe { - if (fn__getEntityForwardY == null) fn__getEntityForwardY = (delegate* unmanaged[Cdecl]) funcTable[0x866A4A5FAE349510UL]; + if (fn__getEntityForwardY == null) fn__getEntityForwardY = (delegate* unmanaged[Cdecl]) funcTable[0x866A4A5FAE349510UL]; var success = false; var result = fn__getEntityForwardY(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46076,10 +46063,10 @@ public float GetEntityForwardY(int _entity) } public float GetEntityHeading(IEntity entity) => GetEntityHeading(entity.ScriptId); - public float GetEntityHeading(int _entity) + public float GetEntityHeading(uint _entity) { unsafe { - if (fn__getEntityHeading == null) fn__getEntityHeading = (delegate* unmanaged[Cdecl]) funcTable[0xE83D4F9BA2A38914UL]; + if (fn__getEntityHeading == null) fn__getEntityHeading = (delegate* unmanaged[Cdecl]) funcTable[0xE83D4F9BA2A38914UL]; var success = false; var result = fn__getEntityHeading(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46088,10 +46075,10 @@ public float GetEntityHeading(int _entity) } public float GetEntityHeadingFromEulers(IEntity entity) => GetEntityHeadingFromEulers(entity.ScriptId); - public float GetEntityHeadingFromEulers(int _entity) + public float GetEntityHeadingFromEulers(uint _entity) { unsafe { - if (fn__getEntityHeadingFromEulers == null) fn__getEntityHeadingFromEulers = (delegate* unmanaged[Cdecl]) funcTable[0x846BF6291198A71EUL]; + if (fn__getEntityHeadingFromEulers == null) fn__getEntityHeadingFromEulers = (delegate* unmanaged[Cdecl]) funcTable[0x846BF6291198A71EUL]; var success = false; var result = fn__getEntityHeadingFromEulers(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46100,10 +46087,10 @@ public float GetEntityHeadingFromEulers(int _entity) } public int GetEntityHealth(IEntity entity) => GetEntityHealth(entity.ScriptId); - public int GetEntityHealth(int _entity) + public int GetEntityHealth(uint _entity) { unsafe { - if (fn__getEntityHealth == null) fn__getEntityHealth = (delegate* unmanaged[Cdecl]) funcTable[0xEEF059FAD016D209UL]; + if (fn__getEntityHealth == null) fn__getEntityHealth = (delegate* unmanaged[Cdecl]) funcTable[0xEEF059FAD016D209UL]; var success = false; var result = fn__getEntityHealth(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46112,10 +46099,10 @@ public int GetEntityHealth(int _entity) } public int GetEntityMaxHealth(IEntity entity) => GetEntityMaxHealth(entity.ScriptId); - public int GetEntityMaxHealth(int _entity) + public int GetEntityMaxHealth(uint _entity) { unsafe { - if (fn__getEntityMaxHealth == null) fn__getEntityMaxHealth = (delegate* unmanaged[Cdecl]) funcTable[0x15D757606D170C3CUL]; + if (fn__getEntityMaxHealth == null) fn__getEntityMaxHealth = (delegate* unmanaged[Cdecl]) funcTable[0x15D757606D170C3CUL]; var success = false; var result = fn__getEntityMaxHealth(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46124,10 +46111,10 @@ public int GetEntityMaxHealth(int _entity) } public void SetEntityMaxHealth(IEntity entity, int value) => SetEntityMaxHealth(entity.ScriptId, value); - public void SetEntityMaxHealth(int _entity, int _value) + public void SetEntityMaxHealth(uint _entity, int _value) { unsafe { - if (fn__setEntityMaxHealth == null) fn__setEntityMaxHealth = (delegate* unmanaged[Cdecl]) funcTable[0x166E7CF68597D8B5UL]; + if (fn__setEntityMaxHealth == null) fn__setEntityMaxHealth = (delegate* unmanaged[Cdecl]) funcTable[0x166E7CF68597D8B5UL]; var success = false; fn__setEntityMaxHealth(&success, _entity, _value); if (!success) throw new Exception("Native execution failed"); @@ -46135,10 +46122,10 @@ public void SetEntityMaxHealth(int _entity, int _value) } public float GetEntityHeight(IEntity entity, float X, float Y, float Z, bool atTop, bool inWorldCoords) => GetEntityHeight(entity.ScriptId, X, Y, Z, atTop, inWorldCoords); - public float GetEntityHeight(int _entity, float _X, float _Y, float _Z, bool _atTop, bool _inWorldCoords) + public float GetEntityHeight(uint _entity, float _X, float _Y, float _Z, bool _atTop, bool _inWorldCoords) { unsafe { - if (fn__getEntityHeight == null) fn__getEntityHeight = (delegate* unmanaged[Cdecl]) funcTable[0x5A504562485944DDUL]; + if (fn__getEntityHeight == null) fn__getEntityHeight = (delegate* unmanaged[Cdecl]) funcTable[0x5A504562485944DDUL]; var success = false; var result = fn__getEntityHeight(&success, _entity, _X, _Y, _Z, (byte) (_atTop ? 1 : 0), (byte) (_inWorldCoords ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -46147,10 +46134,10 @@ public float GetEntityHeight(int _entity, float _X, float _Y, float _Z, bool _at } public float GetEntityHeightAboveGround(IEntity entity) => GetEntityHeightAboveGround(entity.ScriptId); - public float GetEntityHeightAboveGround(int _entity) + public float GetEntityHeightAboveGround(uint _entity) { unsafe { - if (fn__getEntityHeightAboveGround == null) fn__getEntityHeightAboveGround = (delegate* unmanaged[Cdecl]) funcTable[0x1DD55701034110E5UL]; + if (fn__getEntityHeightAboveGround == null) fn__getEntityHeightAboveGround = (delegate* unmanaged[Cdecl]) funcTable[0x1DD55701034110E5UL]; var success = false; var result = fn__getEntityHeightAboveGround(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46159,10 +46146,10 @@ public float GetEntityHeightAboveGround(int _entity) } public void GetEntityMatrix(IEntity entity, ref Vector3 forwardVector, ref Vector3 rightVector, ref Vector3 upVector, ref Vector3 position) => GetEntityMatrix(entity.ScriptId, ref forwardVector, ref rightVector, ref upVector, ref position); - public void GetEntityMatrix(int _entity, ref Vector3 _forwardVector, ref Vector3 _rightVector, ref Vector3 _upVector, ref Vector3 _position) + public void GetEntityMatrix(uint _entity, ref Vector3 _forwardVector, ref Vector3 _rightVector, ref Vector3 _upVector, ref Vector3 _position) { unsafe { - if (fn__getEntityMatrix == null) fn__getEntityMatrix = (delegate* unmanaged[Cdecl]) funcTable[0xECB2FC7235A7D137UL]; + if (fn__getEntityMatrix == null) fn__getEntityMatrix = (delegate* unmanaged[Cdecl]) funcTable[0xECB2FC7235A7D137UL]; var success = false; var ref_forwardVector = _forwardVector; var ref_rightVector = _rightVector; @@ -46178,10 +46165,10 @@ public void GetEntityMatrix(int _entity, ref Vector3 _forwardVector, ref Vector3 } public uint GetEntityModel(IEntity entity) => GetEntityModel(entity.ScriptId); - public uint GetEntityModel(int _entity) + public uint GetEntityModel(uint _entity) { unsafe { - if (fn__getEntityModel == null) fn__getEntityModel = (delegate* unmanaged[Cdecl]) funcTable[0x9F47B058362C84B5UL]; + if (fn__getEntityModel == null) fn__getEntityModel = (delegate* unmanaged[Cdecl]) funcTable[0x9F47B058362C84B5UL]; var success = false; var result = fn__getEntityModel(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46190,10 +46177,10 @@ public uint GetEntityModel(int _entity) } public Vector3 GetOffsetFromEntityGivenWorldCoords(IEntity entity, float posX, float posY, float posZ) => GetOffsetFromEntityGivenWorldCoords(entity.ScriptId, posX, posY, posZ); - public Vector3 GetOffsetFromEntityGivenWorldCoords(int _entity, float _posX, float _posY, float _posZ) + public Vector3 GetOffsetFromEntityGivenWorldCoords(uint _entity, float _posX, float _posY, float _posZ) { unsafe { - if (fn__getOffsetFromEntityGivenWorldCoords == null) fn__getOffsetFromEntityGivenWorldCoords = (delegate* unmanaged[Cdecl]) funcTable[0x2274BC1C4885E333UL]; + if (fn__getOffsetFromEntityGivenWorldCoords == null) fn__getOffsetFromEntityGivenWorldCoords = (delegate* unmanaged[Cdecl]) funcTable[0x2274BC1C4885E333UL]; var success = false; var result = fn__getOffsetFromEntityGivenWorldCoords(&success, _entity, _posX, _posY, _posZ); if (!success) throw new Exception("Native execution failed"); @@ -46202,10 +46189,10 @@ public Vector3 GetOffsetFromEntityGivenWorldCoords(int _entity, float _posX, flo } public Vector3 GetOffsetFromEntityInWorldCoords(IEntity entity, float offsetX, float offsetY, float offsetZ) => GetOffsetFromEntityInWorldCoords(entity.ScriptId, offsetX, offsetY, offsetZ); - public Vector3 GetOffsetFromEntityInWorldCoords(int _entity, float _offsetX, float _offsetY, float _offsetZ) + public Vector3 GetOffsetFromEntityInWorldCoords(uint _entity, float _offsetX, float _offsetY, float _offsetZ) { unsafe { - if (fn__getOffsetFromEntityInWorldCoords == null) fn__getOffsetFromEntityInWorldCoords = (delegate* unmanaged[Cdecl]) funcTable[0x1899F328B0E12848UL]; + if (fn__getOffsetFromEntityInWorldCoords == null) fn__getOffsetFromEntityInWorldCoords = (delegate* unmanaged[Cdecl]) funcTable[0x1899F328B0E12848UL]; var success = false; var result = fn__getOffsetFromEntityInWorldCoords(&success, _entity, _offsetX, _offsetY, _offsetZ); if (!success) throw new Exception("Native execution failed"); @@ -46214,10 +46201,10 @@ public Vector3 GetOffsetFromEntityInWorldCoords(int _entity, float _offsetX, flo } public float GetEntityPitch(IEntity entity) => GetEntityPitch(entity.ScriptId); - public float GetEntityPitch(int _entity) + public float GetEntityPitch(uint _entity) { unsafe { - if (fn__getEntityPitch == null) fn__getEntityPitch = (delegate* unmanaged[Cdecl]) funcTable[0xD45DC2893621E1FEUL]; + if (fn__getEntityPitch == null) fn__getEntityPitch = (delegate* unmanaged[Cdecl]) funcTable[0xD45DC2893621E1FEUL]; var success = false; var result = fn__getEntityPitch(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46226,10 +46213,10 @@ public float GetEntityPitch(int _entity) } public void GetEntityQuaternion(IEntity entity, ref float x, ref float y, ref float z, ref float w) => GetEntityQuaternion(entity.ScriptId, ref x, ref y, ref z, ref w); - public void GetEntityQuaternion(int _entity, ref float _x, ref float _y, ref float _z, ref float _w) + public void GetEntityQuaternion(uint _entity, ref float _x, ref float _y, ref float _z, ref float _w) { unsafe { - if (fn__getEntityQuaternion == null) fn__getEntityQuaternion = (delegate* unmanaged[Cdecl]) funcTable[0x7B3703D2D32DFA18UL]; + if (fn__getEntityQuaternion == null) fn__getEntityQuaternion = (delegate* unmanaged[Cdecl]) funcTable[0x7B3703D2D32DFA18UL]; var success = false; var ref_x = _x; var ref_y = _y; @@ -46245,10 +46232,10 @@ public void GetEntityQuaternion(int _entity, ref float _x, ref float _y, ref flo } public float GetEntityRoll(IEntity entity) => GetEntityRoll(entity.ScriptId); - public float GetEntityRoll(int _entity) + public float GetEntityRoll(uint _entity) { unsafe { - if (fn__getEntityRoll == null) fn__getEntityRoll = (delegate* unmanaged[Cdecl]) funcTable[0x831E0242595560DFUL]; + if (fn__getEntityRoll == null) fn__getEntityRoll = (delegate* unmanaged[Cdecl]) funcTable[0x831E0242595560DFUL]; var success = false; var result = fn__getEntityRoll(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46257,10 +46244,10 @@ public float GetEntityRoll(int _entity) } public Vector3 GetEntityRotation(IEntity entity, int rotationOrder) => GetEntityRotation(entity.ScriptId, rotationOrder); - public Vector3 GetEntityRotation(int _entity, int _rotationOrder) + public Vector3 GetEntityRotation(uint _entity, int _rotationOrder) { unsafe { - if (fn__getEntityRotation == null) fn__getEntityRotation = (delegate* unmanaged[Cdecl]) funcTable[0xAFBD61CC738D9EB9UL]; + if (fn__getEntityRotation == null) fn__getEntityRotation = (delegate* unmanaged[Cdecl]) funcTable[0xAFBD61CC738D9EB9UL]; var success = false; var result = fn__getEntityRotation(&success, _entity, _rotationOrder); if (!success) throw new Exception("Native execution failed"); @@ -46269,10 +46256,10 @@ public Vector3 GetEntityRotation(int _entity, int _rotationOrder) } public Vector3 GetEntityRotationVelocity(IEntity entity) => GetEntityRotationVelocity(entity.ScriptId); - public Vector3 GetEntityRotationVelocity(int _entity) + public Vector3 GetEntityRotationVelocity(uint _entity) { unsafe { - if (fn__getEntityRotationVelocity == null) fn__getEntityRotationVelocity = (delegate* unmanaged[Cdecl]) funcTable[0x213B91045D09B983UL]; + if (fn__getEntityRotationVelocity == null) fn__getEntityRotationVelocity = (delegate* unmanaged[Cdecl]) funcTable[0x213B91045D09B983UL]; var success = false; var result = fn__getEntityRotationVelocity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46280,27 +46267,27 @@ public Vector3 GetEntityRotationVelocity(int _entity) } } - public string GetEntityScript(IEntity entity, ref int script) => GetEntityScript(entity.ScriptId, ref script); - public string GetEntityScript(int _entity, ref int _script) + public string GetEntityScript(IEntity entity, ref uint script) => GetEntityScript(entity.ScriptId, ref script); + public string GetEntityScript(uint _entity, ref uint _script) { unsafe { - if (fn__getEntityScript == null) fn__getEntityScript = (delegate* unmanaged[Cdecl]) funcTable[0xA6E9C38DB51D7748UL]; + if (fn__getEntityScript == null) fn__getEntityScript = (delegate* unmanaged[Cdecl]) funcTable[0xA6E9C38DB51D7748UL]; var success = false; var ref_script = _script; var result = fn__getEntityScript(&success, _entity, &ref_script); _script = ref_script; if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } public float GetEntitySpeed(IEntity entity) => GetEntitySpeed(entity.ScriptId); - public float GetEntitySpeed(int _entity) + public float GetEntitySpeed(uint _entity) { unsafe { - if (fn__getEntitySpeed == null) fn__getEntitySpeed = (delegate* unmanaged[Cdecl]) funcTable[0xD5037BA82E12416FUL]; + if (fn__getEntitySpeed == null) fn__getEntitySpeed = (delegate* unmanaged[Cdecl]) funcTable[0xD5037BA82E12416FUL]; var success = false; var result = fn__getEntitySpeed(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46309,10 +46296,10 @@ public float GetEntitySpeed(int _entity) } public Vector3 GetEntitySpeedVector(IEntity entity, bool relative) => GetEntitySpeedVector(entity.ScriptId, relative); - public Vector3 GetEntitySpeedVector(int _entity, bool _relative) + public Vector3 GetEntitySpeedVector(uint _entity, bool _relative) { unsafe { - if (fn__getEntitySpeedVector == null) fn__getEntitySpeedVector = (delegate* unmanaged[Cdecl]) funcTable[0x9A8D700A51CB7B0DUL]; + if (fn__getEntitySpeedVector == null) fn__getEntitySpeedVector = (delegate* unmanaged[Cdecl]) funcTable[0x9A8D700A51CB7B0DUL]; var success = false; var result = fn__getEntitySpeedVector(&success, _entity, (byte) (_relative ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -46321,10 +46308,10 @@ public Vector3 GetEntitySpeedVector(int _entity, bool _relative) } public float GetEntityUprightValue(IEntity entity) => GetEntityUprightValue(entity.ScriptId); - public float GetEntityUprightValue(int _entity) + public float GetEntityUprightValue(uint _entity) { unsafe { - if (fn__getEntityUprightValue == null) fn__getEntityUprightValue = (delegate* unmanaged[Cdecl]) funcTable[0x95EED5A694951F9FUL]; + if (fn__getEntityUprightValue == null) fn__getEntityUprightValue = (delegate* unmanaged[Cdecl]) funcTable[0x95EED5A694951F9FUL]; var success = false; var result = fn__getEntityUprightValue(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46333,10 +46320,10 @@ public float GetEntityUprightValue(int _entity) } public Vector3 GetEntityVelocity(IEntity entity) => GetEntityVelocity(entity.ScriptId); - public Vector3 GetEntityVelocity(int _entity) + public Vector3 GetEntityVelocity(uint _entity) { unsafe { - if (fn__getEntityVelocity == null) fn__getEntityVelocity = (delegate* unmanaged[Cdecl]) funcTable[0x4805D2B1D8CF94A9UL]; + if (fn__getEntityVelocity == null) fn__getEntityVelocity = (delegate* unmanaged[Cdecl]) funcTable[0x4805D2B1D8CF94A9UL]; var success = false; var result = fn__getEntityVelocity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46344,11 +46331,11 @@ public Vector3 GetEntityVelocity(int _entity) } } - public int GetObjectIndexFromEntityIndex(IEntity entity) => GetObjectIndexFromEntityIndex(entity.ScriptId); - public int GetObjectIndexFromEntityIndex(int _entity) + public uint GetObjectIndexFromEntityIndex(IEntity entity) => GetObjectIndexFromEntityIndex(entity.ScriptId); + public uint GetObjectIndexFromEntityIndex(uint _entity) { unsafe { - if (fn__getObjectIndexFromEntityIndex == null) fn__getObjectIndexFromEntityIndex = (delegate* unmanaged[Cdecl]) funcTable[0xD7E3B9735C0F89D6UL]; + if (fn__getObjectIndexFromEntityIndex == null) fn__getObjectIndexFromEntityIndex = (delegate* unmanaged[Cdecl]) funcTable[0xD7E3B9735C0F89D6UL]; var success = false; var result = fn__getObjectIndexFromEntityIndex(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46356,11 +46343,11 @@ public int GetObjectIndexFromEntityIndex(int _entity) } } - public int GetPedIndexFromEntityIndex(IEntity entity) => GetPedIndexFromEntityIndex(entity.ScriptId); - public int GetPedIndexFromEntityIndex(int _entity) + public uint GetPedIndexFromEntityIndex(IEntity entity) => GetPedIndexFromEntityIndex(entity.ScriptId); + public uint GetPedIndexFromEntityIndex(uint _entity) { unsafe { - if (fn__getPedIndexFromEntityIndex == null) fn__getPedIndexFromEntityIndex = (delegate* unmanaged[Cdecl]) funcTable[0x04A2A40C73395041UL]; + if (fn__getPedIndexFromEntityIndex == null) fn__getPedIndexFromEntityIndex = (delegate* unmanaged[Cdecl]) funcTable[0x04A2A40C73395041UL]; var success = false; var result = fn__getPedIndexFromEntityIndex(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46368,11 +46355,11 @@ public int GetPedIndexFromEntityIndex(int _entity) } } - public int GetVehicleIndexFromEntityIndex(IEntity entity) => GetVehicleIndexFromEntityIndex(entity.ScriptId); - public int GetVehicleIndexFromEntityIndex(int _entity) + public uint GetVehicleIndexFromEntityIndex(IEntity entity) => GetVehicleIndexFromEntityIndex(entity.ScriptId); + public uint GetVehicleIndexFromEntityIndex(uint _entity) { unsafe { - if (fn__getVehicleIndexFromEntityIndex == null) fn__getVehicleIndexFromEntityIndex = (delegate* unmanaged[Cdecl]) funcTable[0x4B53F92932ADFAC0UL]; + if (fn__getVehicleIndexFromEntityIndex == null) fn__getVehicleIndexFromEntityIndex = (delegate* unmanaged[Cdecl]) funcTable[0x4B53F92932ADFAC0UL]; var success = false; var result = fn__getVehicleIndexFromEntityIndex(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46381,10 +46368,10 @@ public int GetVehicleIndexFromEntityIndex(int _entity) } public Vector3 GetWorldPositionOfEntityBone(IEntity entity, int boneIndex) => GetWorldPositionOfEntityBone(entity.ScriptId, boneIndex); - public Vector3 GetWorldPositionOfEntityBone(int _entity, int _boneIndex) + public Vector3 GetWorldPositionOfEntityBone(uint _entity, int _boneIndex) { unsafe { - if (fn__getWorldPositionOfEntityBone == null) fn__getWorldPositionOfEntityBone = (delegate* unmanaged[Cdecl]) funcTable[0x44A8FCB8ED227738UL]; + if (fn__getWorldPositionOfEntityBone == null) fn__getWorldPositionOfEntityBone = (delegate* unmanaged[Cdecl]) funcTable[0x44A8FCB8ED227738UL]; var success = false; var result = fn__getWorldPositionOfEntityBone(&success, _entity, _boneIndex); if (!success) throw new Exception("Native execution failed"); @@ -46392,11 +46379,11 @@ public Vector3 GetWorldPositionOfEntityBone(int _entity, int _boneIndex) } } - public int GetNearestPlayerToEntity(IEntity entity) => GetNearestPlayerToEntity(entity.ScriptId); - public int GetNearestPlayerToEntity(int _entity) + public uint GetNearestPlayerToEntity(IEntity entity) => GetNearestPlayerToEntity(entity.ScriptId); + public uint GetNearestPlayerToEntity(uint _entity) { unsafe { - if (fn__getNearestPlayerToEntity == null) fn__getNearestPlayerToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x7196842CB375CDB3UL]; + if (fn__getNearestPlayerToEntity == null) fn__getNearestPlayerToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x7196842CB375CDB3UL]; var success = false; var result = fn__getNearestPlayerToEntity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46404,11 +46391,11 @@ public int GetNearestPlayerToEntity(int _entity) } } - public int GetNearestPlayerToEntityOnTeam(IEntity entity, int team) => GetNearestPlayerToEntityOnTeam(entity.ScriptId, team); - public int GetNearestPlayerToEntityOnTeam(int _entity, int _team) + public uint GetNearestPlayerToEntityOnTeam(IEntity entity, int team) => GetNearestPlayerToEntityOnTeam(entity.ScriptId, team); + public uint GetNearestPlayerToEntityOnTeam(uint _entity, int _team) { unsafe { - if (fn__getNearestPlayerToEntityOnTeam == null) fn__getNearestPlayerToEntityOnTeam = (delegate* unmanaged[Cdecl]) funcTable[0x4DC9A62F844D9337UL]; + if (fn__getNearestPlayerToEntityOnTeam == null) fn__getNearestPlayerToEntityOnTeam = (delegate* unmanaged[Cdecl]) funcTable[0x4DC9A62F844D9337UL]; var success = false; var result = fn__getNearestPlayerToEntityOnTeam(&success, _entity, _team); if (!success) throw new Exception("Native execution failed"); @@ -46417,10 +46404,10 @@ public int GetNearestPlayerToEntityOnTeam(int _entity, int _team) } public int GetEntityType(IEntity entity) => GetEntityType(entity.ScriptId); - public int GetEntityType(int _entity) + public int GetEntityType(uint _entity) { unsafe { - if (fn__getEntityType == null) fn__getEntityType = (delegate* unmanaged[Cdecl]) funcTable[0x8ACD366038D14505UL]; + if (fn__getEntityType == null) fn__getEntityType = (delegate* unmanaged[Cdecl]) funcTable[0x8ACD366038D14505UL]; var success = false; var result = fn__getEntityType(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46429,10 +46416,10 @@ public int GetEntityType(int _entity) } public int GetEntityPopulationType(IEntity entity) => GetEntityPopulationType(entity.ScriptId); - public int GetEntityPopulationType(int _entity) + public int GetEntityPopulationType(uint _entity) { unsafe { - if (fn__getEntityPopulationType == null) fn__getEntityPopulationType = (delegate* unmanaged[Cdecl]) funcTable[0xF6F5161F4534EDFFUL]; + if (fn__getEntityPopulationType == null) fn__getEntityPopulationType = (delegate* unmanaged[Cdecl]) funcTable[0xF6F5161F4534EDFFUL]; var success = false; var result = fn__getEntityPopulationType(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46440,10 +46427,10 @@ public int GetEntityPopulationType(int _entity) } } - public bool IsAnEntity(int _handle) + public bool IsAnEntity(uint _handle) { unsafe { - if (fn__isAnEntity == null) fn__isAnEntity = (delegate* unmanaged[Cdecl]) funcTable[0x731EC8A916BD11A1UL]; + if (fn__isAnEntity == null) fn__isAnEntity = (delegate* unmanaged[Cdecl]) funcTable[0x731EC8A916BD11A1UL]; var success = false; var result = fn__isAnEntity(&success, _handle); if (!success) throw new Exception("Native execution failed"); @@ -46452,10 +46439,10 @@ public bool IsAnEntity(int _handle) } public bool IsEntityAPed(IEntity entity) => IsEntityAPed(entity.ScriptId); - public bool IsEntityAPed(int _entity) + public bool IsEntityAPed(uint _entity) { unsafe { - if (fn__isEntityAPed == null) fn__isEntityAPed = (delegate* unmanaged[Cdecl]) funcTable[0x524AC5ECEA15343EUL]; + if (fn__isEntityAPed == null) fn__isEntityAPed = (delegate* unmanaged[Cdecl]) funcTable[0x524AC5ECEA15343EUL]; var success = false; var result = fn__isEntityAPed(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46464,10 +46451,10 @@ public bool IsEntityAPed(int _entity) } public bool IsEntityAMissionEntity(IEntity entity) => IsEntityAMissionEntity(entity.ScriptId); - public bool IsEntityAMissionEntity(int _entity) + public bool IsEntityAMissionEntity(uint _entity) { unsafe { - if (fn__isEntityAMissionEntity == null) fn__isEntityAMissionEntity = (delegate* unmanaged[Cdecl]) funcTable[0x0A7B270912999B3CUL]; + if (fn__isEntityAMissionEntity == null) fn__isEntityAMissionEntity = (delegate* unmanaged[Cdecl]) funcTable[0x0A7B270912999B3CUL]; var success = false; var result = fn__isEntityAMissionEntity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46476,10 +46463,10 @@ public bool IsEntityAMissionEntity(int _entity) } public bool IsEntityAVehicle(IEntity entity) => IsEntityAVehicle(entity.ScriptId); - public bool IsEntityAVehicle(int _entity) + public bool IsEntityAVehicle(uint _entity) { unsafe { - if (fn__isEntityAVehicle == null) fn__isEntityAVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x6AC7003FA6E5575EUL]; + if (fn__isEntityAVehicle == null) fn__isEntityAVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x6AC7003FA6E5575EUL]; var success = false; var result = fn__isEntityAVehicle(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46488,10 +46475,10 @@ public bool IsEntityAVehicle(int _entity) } public bool IsEntityAnObject(IEntity entity) => IsEntityAnObject(entity.ScriptId); - public bool IsEntityAnObject(int _entity) + public bool IsEntityAnObject(uint _entity) { unsafe { - if (fn__isEntityAnObject == null) fn__isEntityAnObject = (delegate* unmanaged[Cdecl]) funcTable[0x8D68C8FD0FACA94EUL]; + if (fn__isEntityAnObject == null) fn__isEntityAnObject = (delegate* unmanaged[Cdecl]) funcTable[0x8D68C8FD0FACA94EUL]; var success = false; var result = fn__isEntityAnObject(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46500,10 +46487,10 @@ public bool IsEntityAnObject(int _entity) } public bool IsEntityAtCoord(IEntity entity, float xPos, float yPos, float zPos, float xSize, float ySize, float zSize, bool p7, bool p8, int p9) => IsEntityAtCoord(entity.ScriptId, xPos, yPos, zPos, xSize, ySize, zSize, p7, p8, p9); - public bool IsEntityAtCoord(int _entity, float _xPos, float _yPos, float _zPos, float _xSize, float _ySize, float _zSize, bool _p7, bool _p8, int _p9) + public bool IsEntityAtCoord(uint _entity, float _xPos, float _yPos, float _zPos, float _xSize, float _ySize, float _zSize, bool _p7, bool _p8, int _p9) { unsafe { - if (fn__isEntityAtCoord == null) fn__isEntityAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x20B60995556D004FUL]; + if (fn__isEntityAtCoord == null) fn__isEntityAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x20B60995556D004FUL]; var success = false; var result = fn__isEntityAtCoord(&success, _entity, _xPos, _yPos, _zPos, _xSize, _ySize, _zSize, (byte) (_p7 ? 1 : 0), (byte) (_p8 ? 1 : 0), _p9); if (!success) throw new Exception("Native execution failed"); @@ -46511,13 +46498,13 @@ public bool IsEntityAtCoord(int _entity, float _xPos, float _yPos, float _zPos, } } - public bool IsEntityAtEntity(IEntity entity1, int entity2, float xSize, float ySize, float zSize, bool p5, bool p6, int p7) => IsEntityAtEntity(entity1.ScriptId, entity2, xSize, ySize, zSize, p5, p6, p7); - public bool IsEntityAtEntity(int entity1, IEntity entity2, float xSize, float ySize, float zSize, bool p5, bool p6, int p7) => IsEntityAtEntity(entity1, entity2.ScriptId, xSize, ySize, zSize, p5, p6, p7); + public bool IsEntityAtEntity(IEntity entity1, uint entity2, float xSize, float ySize, float zSize, bool p5, bool p6, int p7) => IsEntityAtEntity(entity1.ScriptId, entity2, xSize, ySize, zSize, p5, p6, p7); + public bool IsEntityAtEntity(uint entity1, IEntity entity2, float xSize, float ySize, float zSize, bool p5, bool p6, int p7) => IsEntityAtEntity(entity1, entity2.ScriptId, xSize, ySize, zSize, p5, p6, p7); public bool IsEntityAtEntity(IEntity entity1, IEntity entity2, float xSize, float ySize, float zSize, bool p5, bool p6, int p7) => IsEntityAtEntity(entity1.ScriptId, entity2.ScriptId, xSize, ySize, zSize, p5, p6, p7); - public bool IsEntityAtEntity(int _entity1, int _entity2, float _xSize, float _ySize, float _zSize, bool _p5, bool _p6, int _p7) + public bool IsEntityAtEntity(uint _entity1, uint _entity2, float _xSize, float _ySize, float _zSize, bool _p5, bool _p6, int _p7) { unsafe { - if (fn__isEntityAtEntity == null) fn__isEntityAtEntity = (delegate* unmanaged[Cdecl]) funcTable[0x751B70C3D034E187UL]; + if (fn__isEntityAtEntity == null) fn__isEntityAtEntity = (delegate* unmanaged[Cdecl]) funcTable[0x751B70C3D034E187UL]; var success = false; var result = fn__isEntityAtEntity(&success, _entity1, _entity2, _xSize, _ySize, _zSize, (byte) (_p5 ? 1 : 0), (byte) (_p6 ? 1 : 0), _p7); if (!success) throw new Exception("Native execution failed"); @@ -46526,10 +46513,10 @@ public bool IsEntityAtEntity(int _entity1, int _entity2, float _xSize, float _yS } public bool IsEntityAttached(IEntity entity) => IsEntityAttached(entity.ScriptId); - public bool IsEntityAttached(int _entity) + public bool IsEntityAttached(uint _entity) { unsafe { - if (fn__isEntityAttached == null) fn__isEntityAttached = (delegate* unmanaged[Cdecl]) funcTable[0xB346476EF1A64897UL]; + if (fn__isEntityAttached == null) fn__isEntityAttached = (delegate* unmanaged[Cdecl]) funcTable[0xB346476EF1A64897UL]; var success = false; var result = fn__isEntityAttached(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46538,10 +46525,10 @@ public bool IsEntityAttached(int _entity) } public bool IsEntityAttachedToAnyObject(IEntity entity) => IsEntityAttachedToAnyObject(entity.ScriptId); - public bool IsEntityAttachedToAnyObject(int _entity) + public bool IsEntityAttachedToAnyObject(uint _entity) { unsafe { - if (fn__isEntityAttachedToAnyObject == null) fn__isEntityAttachedToAnyObject = (delegate* unmanaged[Cdecl]) funcTable[0xCF511840CEEDE0CCUL]; + if (fn__isEntityAttachedToAnyObject == null) fn__isEntityAttachedToAnyObject = (delegate* unmanaged[Cdecl]) funcTable[0xCF511840CEEDE0CCUL]; var success = false; var result = fn__isEntityAttachedToAnyObject(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46550,10 +46537,10 @@ public bool IsEntityAttachedToAnyObject(int _entity) } public bool IsEntityAttachedToAnyPed(IEntity entity) => IsEntityAttachedToAnyPed(entity.ScriptId); - public bool IsEntityAttachedToAnyPed(int _entity) + public bool IsEntityAttachedToAnyPed(uint _entity) { unsafe { - if (fn__isEntityAttachedToAnyPed == null) fn__isEntityAttachedToAnyPed = (delegate* unmanaged[Cdecl]) funcTable[0xB1632E9A5F988D11UL]; + if (fn__isEntityAttachedToAnyPed == null) fn__isEntityAttachedToAnyPed = (delegate* unmanaged[Cdecl]) funcTable[0xB1632E9A5F988D11UL]; var success = false; var result = fn__isEntityAttachedToAnyPed(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46562,10 +46549,10 @@ public bool IsEntityAttachedToAnyPed(int _entity) } public bool IsEntityAttachedToAnyVehicle(IEntity entity) => IsEntityAttachedToAnyVehicle(entity.ScriptId); - public bool IsEntityAttachedToAnyVehicle(int _entity) + public bool IsEntityAttachedToAnyVehicle(uint _entity) { unsafe { - if (fn__isEntityAttachedToAnyVehicle == null) fn__isEntityAttachedToAnyVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x26AA915AD89BFB4BUL]; + if (fn__isEntityAttachedToAnyVehicle == null) fn__isEntityAttachedToAnyVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x26AA915AD89BFB4BUL]; var success = false; var result = fn__isEntityAttachedToAnyVehicle(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46573,13 +46560,13 @@ public bool IsEntityAttachedToAnyVehicle(int _entity) } } - public bool IsEntityAttachedToEntity(IEntity from, int to) => IsEntityAttachedToEntity(from.ScriptId, to); - public bool IsEntityAttachedToEntity(int from, IEntity to) => IsEntityAttachedToEntity(from, to.ScriptId); + public bool IsEntityAttachedToEntity(IEntity from, uint to) => IsEntityAttachedToEntity(from.ScriptId, to); + public bool IsEntityAttachedToEntity(uint from, IEntity to) => IsEntityAttachedToEntity(from, to.ScriptId); public bool IsEntityAttachedToEntity(IEntity from, IEntity to) => IsEntityAttachedToEntity(from.ScriptId, to.ScriptId); - public bool IsEntityAttachedToEntity(int _from, int _to) + public bool IsEntityAttachedToEntity(uint _from, uint _to) { unsafe { - if (fn__isEntityAttachedToEntity == null) fn__isEntityAttachedToEntity = (delegate* unmanaged[Cdecl]) funcTable[0xEFBE71898A993728UL]; + if (fn__isEntityAttachedToEntity == null) fn__isEntityAttachedToEntity = (delegate* unmanaged[Cdecl]) funcTable[0xEFBE71898A993728UL]; var success = false; var result = fn__isEntityAttachedToEntity(&success, _from, _to); if (!success) throw new Exception("Native execution failed"); @@ -46588,10 +46575,10 @@ public bool IsEntityAttachedToEntity(int _from, int _to) } public bool IsEntityDead(IEntity entity, bool p1) => IsEntityDead(entity.ScriptId, p1); - public bool IsEntityDead(int _entity, bool _p1) + public bool IsEntityDead(uint _entity, bool _p1) { unsafe { - if (fn__isEntityDead == null) fn__isEntityDead = (delegate* unmanaged[Cdecl]) funcTable[0x5F9532F3B5CC2551UL]; + if (fn__isEntityDead == null) fn__isEntityDead = (delegate* unmanaged[Cdecl]) funcTable[0x5F9532F3B5CC2551UL]; var success = false; var result = fn__isEntityDead(&success, _entity, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -46600,10 +46587,10 @@ public bool IsEntityDead(int _entity, bool _p1) } public bool IsEntityInAir(IEntity entity) => IsEntityInAir(entity.ScriptId); - public bool IsEntityInAir(int _entity) + public bool IsEntityInAir(uint _entity) { unsafe { - if (fn__isEntityInAir == null) fn__isEntityInAir = (delegate* unmanaged[Cdecl]) funcTable[0x886E37EC497200B6UL]; + if (fn__isEntityInAir == null) fn__isEntityInAir = (delegate* unmanaged[Cdecl]) funcTable[0x886E37EC497200B6UL]; var success = false; var result = fn__isEntityInAir(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46612,10 +46599,10 @@ public bool IsEntityInAir(int _entity) } public bool IsEntityInAngledArea(IEntity entity, float x1, float y1, float z1, float x2, float y2, float z2, float width, bool debug, bool includeZ, int p10) => IsEntityInAngledArea(entity.ScriptId, x1, y1, z1, x2, y2, z2, width, debug, includeZ, p10); - public bool IsEntityInAngledArea(int _entity, float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, float _width, bool _debug, bool _includeZ, int _p10) + public bool IsEntityInAngledArea(uint _entity, float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, float _width, bool _debug, bool _includeZ, int _p10) { unsafe { - if (fn__isEntityInAngledArea == null) fn__isEntityInAngledArea = (delegate* unmanaged[Cdecl]) funcTable[0x51210CED3DA1C78AUL]; + if (fn__isEntityInAngledArea == null) fn__isEntityInAngledArea = (delegate* unmanaged[Cdecl]) funcTable[0x51210CED3DA1C78AUL]; var success = false; var result = fn__isEntityInAngledArea(&success, _entity, _x1, _y1, _z1, _x2, _y2, _z2, _width, (byte) (_debug ? 1 : 0), (byte) (_includeZ ? 1 : 0), _p10); if (!success) throw new Exception("Native execution failed"); @@ -46624,10 +46611,10 @@ public bool IsEntityInAngledArea(int _entity, float _x1, float _y1, float _z1, f } public bool IsEntityInArea(IEntity entity, float x1, float y1, float z1, float x2, float y2, float z2, bool p7, bool p8, int p9) => IsEntityInArea(entity.ScriptId, x1, y1, z1, x2, y2, z2, p7, p8, p9); - public bool IsEntityInArea(int _entity, float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, bool _p7, bool _p8, int _p9) + public bool IsEntityInArea(uint _entity, float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, bool _p7, bool _p8, int _p9) { unsafe { - if (fn__isEntityInArea == null) fn__isEntityInArea = (delegate* unmanaged[Cdecl]) funcTable[0x54736AA40E271165UL]; + if (fn__isEntityInArea == null) fn__isEntityInArea = (delegate* unmanaged[Cdecl]) funcTable[0x54736AA40E271165UL]; var success = false; var result = fn__isEntityInArea(&success, _entity, _x1, _y1, _z1, _x2, _y2, _z2, (byte) (_p7 ? 1 : 0), (byte) (_p8 ? 1 : 0), _p9); if (!success) throw new Exception("Native execution failed"); @@ -46636,24 +46623,24 @@ public bool IsEntityInArea(int _entity, float _x1, float _y1, float _z1, float _ } public bool IsEntityInZone(IEntity entity, string zone) => IsEntityInZone(entity.ScriptId, zone); - public bool IsEntityInZone(int _entity, string _zone) + public bool IsEntityInZone(uint _entity, string _zone) { unsafe { - if (fn__isEntityInZone == null) fn__isEntityInZone = (delegate* unmanaged[Cdecl]) funcTable[0xB6463CF6AF527071UL]; + if (fn__isEntityInZone == null) fn__isEntityInZone = (delegate* unmanaged[Cdecl]) funcTable[0xB6463CF6AF527071UL]; var success = false; - var ptr_zone = _zone == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_zone); + var ptr_zone = MemoryUtils.StringToHGlobalUtf8(_zone); var result = fn__isEntityInZone(&success, _entity, ptr_zone); - if (ptr_zone != IntPtr.Zero) Marshal.FreeHGlobal(ptr_zone); + Marshal.FreeHGlobal(ptr_zone); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool IsEntityInWater(IEntity entity) => IsEntityInWater(entity.ScriptId); - public bool IsEntityInWater(int _entity) + public bool IsEntityInWater(uint _entity) { unsafe { - if (fn__isEntityInWater == null) fn__isEntityInWater = (delegate* unmanaged[Cdecl]) funcTable[0xCFB0A0D8EDD145A3UL]; + if (fn__isEntityInWater == null) fn__isEntityInWater = (delegate* unmanaged[Cdecl]) funcTable[0xCFB0A0D8EDD145A3UL]; var success = false; var result = fn__isEntityInWater(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46662,10 +46649,10 @@ public bool IsEntityInWater(int _entity) } public float GetEntitySubmergedLevel(IEntity entity) => GetEntitySubmergedLevel(entity.ScriptId); - public float GetEntitySubmergedLevel(int _entity) + public float GetEntitySubmergedLevel(uint _entity) { unsafe { - if (fn__getEntitySubmergedLevel == null) fn__getEntitySubmergedLevel = (delegate* unmanaged[Cdecl]) funcTable[0xE81AFC1BC4CC41CEUL]; + if (fn__getEntitySubmergedLevel == null) fn__getEntitySubmergedLevel = (delegate* unmanaged[Cdecl]) funcTable[0xE81AFC1BC4CC41CEUL]; var success = false; var result = fn__getEntitySubmergedLevel(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46674,10 +46661,10 @@ public float GetEntitySubmergedLevel(int _entity) } public void SetEntityRequiresMoreExpensiveRiverCheck(IEntity entity, bool toggle) => SetEntityRequiresMoreExpensiveRiverCheck(entity.ScriptId, toggle); - public void SetEntityRequiresMoreExpensiveRiverCheck(int _entity, bool _toggle) + public void SetEntityRequiresMoreExpensiveRiverCheck(uint _entity, bool _toggle) { unsafe { - if (fn__setEntityRequiresMoreExpensiveRiverCheck == null) fn__setEntityRequiresMoreExpensiveRiverCheck = (delegate* unmanaged[Cdecl]) funcTable[0x694E00132F2823EDUL]; + if (fn__setEntityRequiresMoreExpensiveRiverCheck == null) fn__setEntityRequiresMoreExpensiveRiverCheck = (delegate* unmanaged[Cdecl]) funcTable[0x694E00132F2823EDUL]; var success = false; fn__setEntityRequiresMoreExpensiveRiverCheck(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -46685,10 +46672,10 @@ public void SetEntityRequiresMoreExpensiveRiverCheck(int _entity, bool _toggle) } public bool IsEntityOnScreen(IEntity entity) => IsEntityOnScreen(entity.ScriptId); - public bool IsEntityOnScreen(int _entity) + public bool IsEntityOnScreen(uint _entity) { unsafe { - if (fn__isEntityOnScreen == null) fn__isEntityOnScreen = (delegate* unmanaged[Cdecl]) funcTable[0xE659E47AF827484BUL]; + if (fn__isEntityOnScreen == null) fn__isEntityOnScreen = (delegate* unmanaged[Cdecl]) funcTable[0xE659E47AF827484BUL]; var success = false; var result = fn__isEntityOnScreen(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46697,26 +46684,26 @@ public bool IsEntityOnScreen(int _entity) } public bool IsEntityPlayingAnim(IEntity entity, string animDict, string animName, int taskFlag) => IsEntityPlayingAnim(entity.ScriptId, animDict, animName, taskFlag); - public bool IsEntityPlayingAnim(int _entity, string _animDict, string _animName, int _taskFlag) + public bool IsEntityPlayingAnim(uint _entity, string _animDict, string _animName, int _taskFlag) { unsafe { - if (fn__isEntityPlayingAnim == null) fn__isEntityPlayingAnim = (delegate* unmanaged[Cdecl]) funcTable[0x1F0B79228E461EC9UL]; + if (fn__isEntityPlayingAnim == null) fn__isEntityPlayingAnim = (delegate* unmanaged[Cdecl]) funcTable[0x1F0B79228E461EC9UL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); var result = fn__isEntityPlayingAnim(&success, _entity, ptr_animDict, ptr_animName, _taskFlag); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool IsEntityStatic(IEntity entity) => IsEntityStatic(entity.ScriptId); - public bool IsEntityStatic(int _entity) + public bool IsEntityStatic(uint _entity) { unsafe { - if (fn__isEntityStatic == null) fn__isEntityStatic = (delegate* unmanaged[Cdecl]) funcTable[0x1218E6886D3D8327UL]; + if (fn__isEntityStatic == null) fn__isEntityStatic = (delegate* unmanaged[Cdecl]) funcTable[0x1218E6886D3D8327UL]; var success = false; var result = fn__isEntityStatic(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46724,13 +46711,13 @@ public bool IsEntityStatic(int _entity) } } - public bool IsEntityTouchingEntity(IEntity entity, int targetEntity) => IsEntityTouchingEntity(entity.ScriptId, targetEntity); - public bool IsEntityTouchingEntity(int entity, IEntity targetEntity) => IsEntityTouchingEntity(entity, targetEntity.ScriptId); + public bool IsEntityTouchingEntity(IEntity entity, uint targetEntity) => IsEntityTouchingEntity(entity.ScriptId, targetEntity); + public bool IsEntityTouchingEntity(uint entity, IEntity targetEntity) => IsEntityTouchingEntity(entity, targetEntity.ScriptId); public bool IsEntityTouchingEntity(IEntity entity, IEntity targetEntity) => IsEntityTouchingEntity(entity.ScriptId, targetEntity.ScriptId); - public bool IsEntityTouchingEntity(int _entity, int _targetEntity) + public bool IsEntityTouchingEntity(uint _entity, uint _targetEntity) { unsafe { - if (fn__isEntityTouchingEntity == null) fn__isEntityTouchingEntity = (delegate* unmanaged[Cdecl]) funcTable[0x17FFC1B2BA35A494UL]; + if (fn__isEntityTouchingEntity == null) fn__isEntityTouchingEntity = (delegate* unmanaged[Cdecl]) funcTable[0x17FFC1B2BA35A494UL]; var success = false; var result = fn__isEntityTouchingEntity(&success, _entity, _targetEntity); if (!success) throw new Exception("Native execution failed"); @@ -46739,10 +46726,10 @@ public bool IsEntityTouchingEntity(int _entity, int _targetEntity) } public bool IsEntityTouchingModel(IEntity entity, uint modelHash) => IsEntityTouchingModel(entity.ScriptId, modelHash); - public bool IsEntityTouchingModel(int _entity, uint _modelHash) + public bool IsEntityTouchingModel(uint _entity, uint _modelHash) { unsafe { - if (fn__isEntityTouchingModel == null) fn__isEntityTouchingModel = (delegate* unmanaged[Cdecl]) funcTable[0x0F42323798A58C8CUL]; + if (fn__isEntityTouchingModel == null) fn__isEntityTouchingModel = (delegate* unmanaged[Cdecl]) funcTable[0x0F42323798A58C8CUL]; var success = false; var result = fn__isEntityTouchingModel(&success, _entity, _modelHash); if (!success) throw new Exception("Native execution failed"); @@ -46751,10 +46738,10 @@ public bool IsEntityTouchingModel(int _entity, uint _modelHash) } public bool IsEntityUpright(IEntity entity, float angle) => IsEntityUpright(entity.ScriptId, angle); - public bool IsEntityUpright(int _entity, float _angle) + public bool IsEntityUpright(uint _entity, float _angle) { unsafe { - if (fn__isEntityUpright == null) fn__isEntityUpright = (delegate* unmanaged[Cdecl]) funcTable[0x5333F526F6AB19AAUL]; + if (fn__isEntityUpright == null) fn__isEntityUpright = (delegate* unmanaged[Cdecl]) funcTable[0x5333F526F6AB19AAUL]; var success = false; var result = fn__isEntityUpright(&success, _entity, _angle); if (!success) throw new Exception("Native execution failed"); @@ -46763,10 +46750,10 @@ public bool IsEntityUpright(int _entity, float _angle) } public bool IsEntityUpsidedown(IEntity entity) => IsEntityUpsidedown(entity.ScriptId); - public bool IsEntityUpsidedown(int _entity) + public bool IsEntityUpsidedown(uint _entity) { unsafe { - if (fn__isEntityUpsidedown == null) fn__isEntityUpsidedown = (delegate* unmanaged[Cdecl]) funcTable[0x1DBD58820FA61D71UL]; + if (fn__isEntityUpsidedown == null) fn__isEntityUpsidedown = (delegate* unmanaged[Cdecl]) funcTable[0x1DBD58820FA61D71UL]; var success = false; var result = fn__isEntityUpsidedown(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46775,10 +46762,10 @@ public bool IsEntityUpsidedown(int _entity) } public bool IsEntityVisible(IEntity entity) => IsEntityVisible(entity.ScriptId); - public bool IsEntityVisible(int _entity) + public bool IsEntityVisible(uint _entity) { unsafe { - if (fn__isEntityVisible == null) fn__isEntityVisible = (delegate* unmanaged[Cdecl]) funcTable[0x47D6F43D77935C75UL]; + if (fn__isEntityVisible == null) fn__isEntityVisible = (delegate* unmanaged[Cdecl]) funcTable[0x47D6F43D77935C75UL]; var success = false; var result = fn__isEntityVisible(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46787,10 +46774,10 @@ public bool IsEntityVisible(int _entity) } public bool IsEntityVisibleToScript(IEntity entity) => IsEntityVisibleToScript(entity.ScriptId); - public bool IsEntityVisibleToScript(int _entity) + public bool IsEntityVisibleToScript(uint _entity) { unsafe { - if (fn__isEntityVisibleToScript == null) fn__isEntityVisibleToScript = (delegate* unmanaged[Cdecl]) funcTable[0xD796CB5BA8F20E32UL]; + if (fn__isEntityVisibleToScript == null) fn__isEntityVisibleToScript = (delegate* unmanaged[Cdecl]) funcTable[0xD796CB5BA8F20E32UL]; var success = false; var result = fn__isEntityVisibleToScript(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46799,10 +46786,10 @@ public bool IsEntityVisibleToScript(int _entity) } public bool IsEntityOccluded(IEntity entity) => IsEntityOccluded(entity.ScriptId); - public bool IsEntityOccluded(int _entity) + public bool IsEntityOccluded(uint _entity) { unsafe { - if (fn__isEntityOccluded == null) fn__isEntityOccluded = (delegate* unmanaged[Cdecl]) funcTable[0xE31C2C72B8692B64UL]; + if (fn__isEntityOccluded == null) fn__isEntityOccluded = (delegate* unmanaged[Cdecl]) funcTable[0xE31C2C72B8692B64UL]; var success = false; var result = fn__isEntityOccluded(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46822,10 +46809,10 @@ public bool WouldEntityBeOccluded(uint _entityModelHash, float _x, float _y, flo } public bool IsEntityWaitingForWorldCollision(IEntity entity) => IsEntityWaitingForWorldCollision(entity.ScriptId); - public bool IsEntityWaitingForWorldCollision(int _entity) + public bool IsEntityWaitingForWorldCollision(uint _entity) { unsafe { - if (fn__isEntityWaitingForWorldCollision == null) fn__isEntityWaitingForWorldCollision = (delegate* unmanaged[Cdecl]) funcTable[0xD05BFF0C0A12C68FUL]; + if (fn__isEntityWaitingForWorldCollision == null) fn__isEntityWaitingForWorldCollision = (delegate* unmanaged[Cdecl]) funcTable[0xD05BFF0C0A12C68FUL]; var success = false; var result = fn__isEntityWaitingForWorldCollision(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46834,10 +46821,10 @@ public bool IsEntityWaitingForWorldCollision(int _entity) } public void ApplyForceToEntityCenterOfMass(IEntity entity, int forceType, float x, float y, float z, bool p5, bool isDirectionRel, bool isForceRel, bool p8) => ApplyForceToEntityCenterOfMass(entity.ScriptId, forceType, x, y, z, p5, isDirectionRel, isForceRel, p8); - public void ApplyForceToEntityCenterOfMass(int _entity, int _forceType, float _x, float _y, float _z, bool _p5, bool _isDirectionRel, bool _isForceRel, bool _p8) + public void ApplyForceToEntityCenterOfMass(uint _entity, int _forceType, float _x, float _y, float _z, bool _p5, bool _isDirectionRel, bool _isForceRel, bool _p8) { unsafe { - if (fn__applyForceToEntityCenterOfMass == null) fn__applyForceToEntityCenterOfMass = (delegate* unmanaged[Cdecl]) funcTable[0x18FF00FC7EFF559EUL]; + if (fn__applyForceToEntityCenterOfMass == null) fn__applyForceToEntityCenterOfMass = (delegate* unmanaged[Cdecl]) funcTable[0x18FF00FC7EFF559EUL]; var success = false; fn__applyForceToEntityCenterOfMass(&success, _entity, _forceType, _x, _y, _z, (byte) (_p5 ? 1 : 0), (byte) (_isDirectionRel ? 1 : 0), (byte) (_isForceRel ? 1 : 0), (byte) (_p8 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -46845,62 +46832,62 @@ public void ApplyForceToEntityCenterOfMass(int _entity, int _forceType, float _x } public void ApplyForceToEntity(IEntity entity, int forceFlags, float x, float y, float z, float offX, float offY, float offZ, int boneIndex, bool isDirectionRel, bool ignoreUpVec, bool isForceRel, bool p12, bool p13) => ApplyForceToEntity(entity.ScriptId, forceFlags, x, y, z, offX, offY, offZ, boneIndex, isDirectionRel, ignoreUpVec, isForceRel, p12, p13); - public void ApplyForceToEntity(int _entity, int _forceFlags, float _x, float _y, float _z, float _offX, float _offY, float _offZ, int _boneIndex, bool _isDirectionRel, bool _ignoreUpVec, bool _isForceRel, bool _p12, bool _p13) + public void ApplyForceToEntity(uint _entity, int _forceFlags, float _x, float _y, float _z, float _offX, float _offY, float _offZ, int _boneIndex, bool _isDirectionRel, bool _ignoreUpVec, bool _isForceRel, bool _p12, bool _p13) { unsafe { - if (fn__applyForceToEntity == null) fn__applyForceToEntity = (delegate* unmanaged[Cdecl]) funcTable[0xC5F68BE9613E2D18UL]; + if (fn__applyForceToEntity == null) fn__applyForceToEntity = (delegate* unmanaged[Cdecl]) funcTable[0xC5F68BE9613E2D18UL]; var success = false; fn__applyForceToEntity(&success, _entity, _forceFlags, _x, _y, _z, _offX, _offY, _offZ, _boneIndex, (byte) (_isDirectionRel ? 1 : 0), (byte) (_ignoreUpVec ? 1 : 0), (byte) (_isForceRel ? 1 : 0), (byte) (_p12 ? 1 : 0), (byte) (_p13 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void AttachEntityToEntity(IEntity entity1, int entity2, int boneIndex, float xPos, float yPos, float zPos, float xRot, float yRot, float zRot, bool p9, bool useSoftPinning, bool collision, bool isPed, int vertexIndex, bool fixedRot, int p15) => AttachEntityToEntity(entity1.ScriptId, entity2, boneIndex, xPos, yPos, zPos, xRot, yRot, zRot, p9, useSoftPinning, collision, isPed, vertexIndex, fixedRot, p15); - public void AttachEntityToEntity(int entity1, IEntity entity2, int boneIndex, float xPos, float yPos, float zPos, float xRot, float yRot, float zRot, bool p9, bool useSoftPinning, bool collision, bool isPed, int vertexIndex, bool fixedRot, int p15) => AttachEntityToEntity(entity1, entity2.ScriptId, boneIndex, xPos, yPos, zPos, xRot, yRot, zRot, p9, useSoftPinning, collision, isPed, vertexIndex, fixedRot, p15); + public void AttachEntityToEntity(IEntity entity1, uint entity2, int boneIndex, float xPos, float yPos, float zPos, float xRot, float yRot, float zRot, bool p9, bool useSoftPinning, bool collision, bool isPed, int vertexIndex, bool fixedRot, int p15) => AttachEntityToEntity(entity1.ScriptId, entity2, boneIndex, xPos, yPos, zPos, xRot, yRot, zRot, p9, useSoftPinning, collision, isPed, vertexIndex, fixedRot, p15); + public void AttachEntityToEntity(uint entity1, IEntity entity2, int boneIndex, float xPos, float yPos, float zPos, float xRot, float yRot, float zRot, bool p9, bool useSoftPinning, bool collision, bool isPed, int vertexIndex, bool fixedRot, int p15) => AttachEntityToEntity(entity1, entity2.ScriptId, boneIndex, xPos, yPos, zPos, xRot, yRot, zRot, p9, useSoftPinning, collision, isPed, vertexIndex, fixedRot, p15); public void AttachEntityToEntity(IEntity entity1, IEntity entity2, int boneIndex, float xPos, float yPos, float zPos, float xRot, float yRot, float zRot, bool p9, bool useSoftPinning, bool collision, bool isPed, int vertexIndex, bool fixedRot, int p15) => AttachEntityToEntity(entity1.ScriptId, entity2.ScriptId, boneIndex, xPos, yPos, zPos, xRot, yRot, zRot, p9, useSoftPinning, collision, isPed, vertexIndex, fixedRot, p15); - public void AttachEntityToEntity(int _entity1, int _entity2, int _boneIndex, float _xPos, float _yPos, float _zPos, float _xRot, float _yRot, float _zRot, bool _p9, bool _useSoftPinning, bool _collision, bool _isPed, int _vertexIndex, bool _fixedRot, int _p15) + public void AttachEntityToEntity(uint _entity1, uint _entity2, int _boneIndex, float _xPos, float _yPos, float _zPos, float _xRot, float _yRot, float _zRot, bool _p9, bool _useSoftPinning, bool _collision, bool _isPed, int _vertexIndex, bool _fixedRot, int _p15) { unsafe { - if (fn__attachEntityToEntity == null) fn__attachEntityToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x6B9BBD38AB0796DFUL]; + if (fn__attachEntityToEntity == null) fn__attachEntityToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x6B9BBD38AB0796DFUL]; var success = false; fn__attachEntityToEntity(&success, _entity1, _entity2, _boneIndex, _xPos, _yPos, _zPos, _xRot, _yRot, _zRot, (byte) (_p9 ? 1 : 0), (byte) (_useSoftPinning ? 1 : 0), (byte) (_collision ? 1 : 0), (byte) (_isPed ? 1 : 0), _vertexIndex, (byte) (_fixedRot ? 1 : 0), _p15); if (!success) throw new Exception("Native execution failed"); } } - public void AttachEntityBoneToEntityBone(IEntity entity1, int entity2, int boneIndex1, int boneIndex2, bool p4, bool p5) => AttachEntityBoneToEntityBone(entity1.ScriptId, entity2, boneIndex1, boneIndex2, p4, p5); - public void AttachEntityBoneToEntityBone(int entity1, IEntity entity2, int boneIndex1, int boneIndex2, bool p4, bool p5) => AttachEntityBoneToEntityBone(entity1, entity2.ScriptId, boneIndex1, boneIndex2, p4, p5); + public void AttachEntityBoneToEntityBone(IEntity entity1, uint entity2, int boneIndex1, int boneIndex2, bool p4, bool p5) => AttachEntityBoneToEntityBone(entity1.ScriptId, entity2, boneIndex1, boneIndex2, p4, p5); + public void AttachEntityBoneToEntityBone(uint entity1, IEntity entity2, int boneIndex1, int boneIndex2, bool p4, bool p5) => AttachEntityBoneToEntityBone(entity1, entity2.ScriptId, boneIndex1, boneIndex2, p4, p5); public void AttachEntityBoneToEntityBone(IEntity entity1, IEntity entity2, int boneIndex1, int boneIndex2, bool p4, bool p5) => AttachEntityBoneToEntityBone(entity1.ScriptId, entity2.ScriptId, boneIndex1, boneIndex2, p4, p5); - public void AttachEntityBoneToEntityBone(int _entity1, int _entity2, int _boneIndex1, int _boneIndex2, bool _p4, bool _p5) + public void AttachEntityBoneToEntityBone(uint _entity1, uint _entity2, int _boneIndex1, int _boneIndex2, bool _p4, bool _p5) { unsafe { - if (fn__attachEntityBoneToEntityBone == null) fn__attachEntityBoneToEntityBone = (delegate* unmanaged[Cdecl]) funcTable[0x5C48B75732C8456CUL]; + if (fn__attachEntityBoneToEntityBone == null) fn__attachEntityBoneToEntityBone = (delegate* unmanaged[Cdecl]) funcTable[0x5C48B75732C8456CUL]; var success = false; fn__attachEntityBoneToEntityBone(&success, _entity1, _entity2, _boneIndex1, _boneIndex2, (byte) (_p4 ? 1 : 0), (byte) (_p5 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void AttachEntityBoneToEntityBoneYForward(IEntity entity1, int entity2, int boneIndex1, int boneIndex2, bool p4, bool p5) => AttachEntityBoneToEntityBoneYForward(entity1.ScriptId, entity2, boneIndex1, boneIndex2, p4, p5); - public void AttachEntityBoneToEntityBoneYForward(int entity1, IEntity entity2, int boneIndex1, int boneIndex2, bool p4, bool p5) => AttachEntityBoneToEntityBoneYForward(entity1, entity2.ScriptId, boneIndex1, boneIndex2, p4, p5); + public void AttachEntityBoneToEntityBoneYForward(IEntity entity1, uint entity2, int boneIndex1, int boneIndex2, bool p4, bool p5) => AttachEntityBoneToEntityBoneYForward(entity1.ScriptId, entity2, boneIndex1, boneIndex2, p4, p5); + public void AttachEntityBoneToEntityBoneYForward(uint entity1, IEntity entity2, int boneIndex1, int boneIndex2, bool p4, bool p5) => AttachEntityBoneToEntityBoneYForward(entity1, entity2.ScriptId, boneIndex1, boneIndex2, p4, p5); public void AttachEntityBoneToEntityBoneYForward(IEntity entity1, IEntity entity2, int boneIndex1, int boneIndex2, bool p4, bool p5) => AttachEntityBoneToEntityBoneYForward(entity1.ScriptId, entity2.ScriptId, boneIndex1, boneIndex2, p4, p5); - public void AttachEntityBoneToEntityBoneYForward(int _entity1, int _entity2, int _boneIndex1, int _boneIndex2, bool _p4, bool _p5) + public void AttachEntityBoneToEntityBoneYForward(uint _entity1, uint _entity2, int _boneIndex1, int _boneIndex2, bool _p4, bool _p5) { unsafe { - if (fn__attachEntityBoneToEntityBoneYForward == null) fn__attachEntityBoneToEntityBoneYForward = (delegate* unmanaged[Cdecl]) funcTable[0xFD1695C5D3B05439UL]; + if (fn__attachEntityBoneToEntityBoneYForward == null) fn__attachEntityBoneToEntityBoneYForward = (delegate* unmanaged[Cdecl]) funcTable[0xFD1695C5D3B05439UL]; var success = false; fn__attachEntityBoneToEntityBoneYForward(&success, _entity1, _entity2, _boneIndex1, _boneIndex2, (byte) (_p4 ? 1 : 0), (byte) (_p5 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void AttachEntityToEntityPhysically(IEntity entity1, int entity2, int boneIndex1, int boneIndex2, float xPos1, float yPos1, float zPos1, float xPos2, float yPos2, float zPos2, float xRot, float yRot, float zRot, float breakForce, bool fixedRot, bool p15, bool collision, bool p17, int p18) => AttachEntityToEntityPhysically(entity1.ScriptId, entity2, boneIndex1, boneIndex2, xPos1, yPos1, zPos1, xPos2, yPos2, zPos2, xRot, yRot, zRot, breakForce, fixedRot, p15, collision, p17, p18); - public void AttachEntityToEntityPhysically(int entity1, IEntity entity2, int boneIndex1, int boneIndex2, float xPos1, float yPos1, float zPos1, float xPos2, float yPos2, float zPos2, float xRot, float yRot, float zRot, float breakForce, bool fixedRot, bool p15, bool collision, bool p17, int p18) => AttachEntityToEntityPhysically(entity1, entity2.ScriptId, boneIndex1, boneIndex2, xPos1, yPos1, zPos1, xPos2, yPos2, zPos2, xRot, yRot, zRot, breakForce, fixedRot, p15, collision, p17, p18); + public void AttachEntityToEntityPhysically(IEntity entity1, uint entity2, int boneIndex1, int boneIndex2, float xPos1, float yPos1, float zPos1, float xPos2, float yPos2, float zPos2, float xRot, float yRot, float zRot, float breakForce, bool fixedRot, bool p15, bool collision, bool p17, int p18) => AttachEntityToEntityPhysically(entity1.ScriptId, entity2, boneIndex1, boneIndex2, xPos1, yPos1, zPos1, xPos2, yPos2, zPos2, xRot, yRot, zRot, breakForce, fixedRot, p15, collision, p17, p18); + public void AttachEntityToEntityPhysically(uint entity1, IEntity entity2, int boneIndex1, int boneIndex2, float xPos1, float yPos1, float zPos1, float xPos2, float yPos2, float zPos2, float xRot, float yRot, float zRot, float breakForce, bool fixedRot, bool p15, bool collision, bool p17, int p18) => AttachEntityToEntityPhysically(entity1, entity2.ScriptId, boneIndex1, boneIndex2, xPos1, yPos1, zPos1, xPos2, yPos2, zPos2, xRot, yRot, zRot, breakForce, fixedRot, p15, collision, p17, p18); public void AttachEntityToEntityPhysically(IEntity entity1, IEntity entity2, int boneIndex1, int boneIndex2, float xPos1, float yPos1, float zPos1, float xPos2, float yPos2, float zPos2, float xRot, float yRot, float zRot, float breakForce, bool fixedRot, bool p15, bool collision, bool p17, int p18) => AttachEntityToEntityPhysically(entity1.ScriptId, entity2.ScriptId, boneIndex1, boneIndex2, xPos1, yPos1, zPos1, xPos2, yPos2, zPos2, xRot, yRot, zRot, breakForce, fixedRot, p15, collision, p17, p18); - public void AttachEntityToEntityPhysically(int _entity1, int _entity2, int _boneIndex1, int _boneIndex2, float _xPos1, float _yPos1, float _zPos1, float _xPos2, float _yPos2, float _zPos2, float _xRot, float _yRot, float _zRot, float _breakForce, bool _fixedRot, bool _p15, bool _collision, bool _p17, int _p18) + public void AttachEntityToEntityPhysically(uint _entity1, uint _entity2, int _boneIndex1, int _boneIndex2, float _xPos1, float _yPos1, float _zPos1, float _xPos2, float _yPos2, float _zPos2, float _xRot, float _yRot, float _zRot, float _breakForce, bool _fixedRot, bool _p15, bool _collision, bool _p17, int _p18) { unsafe { - if (fn__attachEntityToEntityPhysically == null) fn__attachEntityToEntityPhysically = (delegate* unmanaged[Cdecl]) funcTable[0xC3675780C92F90F9UL]; + if (fn__attachEntityToEntityPhysically == null) fn__attachEntityToEntityPhysically = (delegate* unmanaged[Cdecl]) funcTable[0xC3675780C92F90F9UL]; var success = false; fn__attachEntityToEntityPhysically(&success, _entity1, _entity2, _boneIndex1, _boneIndex2, _xPos1, _yPos1, _zPos1, _xPos2, _yPos2, _zPos2, _xRot, _yRot, _zRot, _breakForce, (byte) (_fixedRot ? 1 : 0), (byte) (_p15 ? 1 : 0), (byte) (_collision ? 1 : 0), (byte) (_p17 ? 1 : 0), _p18); if (!success) throw new Exception("Native execution failed"); @@ -46908,10 +46895,10 @@ public void AttachEntityToEntityPhysically(int _entity1, int _entity2, int _bone } public void ProcessEntityAttachments(IEntity entity) => ProcessEntityAttachments(entity.ScriptId); - public void ProcessEntityAttachments(int _entity) + public void ProcessEntityAttachments(uint _entity) { unsafe { - if (fn__processEntityAttachments == null) fn__processEntityAttachments = (delegate* unmanaged[Cdecl]) funcTable[0xF4080490ADC51C6FUL]; + if (fn__processEntityAttachments == null) fn__processEntityAttachments = (delegate* unmanaged[Cdecl]) funcTable[0xF4080490ADC51C6FUL]; var success = false; fn__processEntityAttachments(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -46919,34 +46906,34 @@ public void ProcessEntityAttachments(int _entity) } public int GetEntityBoneIndexByName(IEntity entity, string boneName) => GetEntityBoneIndexByName(entity.ScriptId, boneName); - public int GetEntityBoneIndexByName(int _entity, string _boneName) + public int GetEntityBoneIndexByName(uint _entity, string _boneName) { unsafe { - if (fn__getEntityBoneIndexByName == null) fn__getEntityBoneIndexByName = (delegate* unmanaged[Cdecl]) funcTable[0xFB71170B7E76ACBAUL]; + if (fn__getEntityBoneIndexByName == null) fn__getEntityBoneIndexByName = (delegate* unmanaged[Cdecl]) funcTable[0xFB71170B7E76ACBAUL]; var success = false; - var ptr_boneName = _boneName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_boneName); + var ptr_boneName = MemoryUtils.StringToHGlobalUtf8(_boneName); var result = fn__getEntityBoneIndexByName(&success, _entity, ptr_boneName); - if (ptr_boneName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_boneName); + Marshal.FreeHGlobal(ptr_boneName); if (!success) throw new Exception("Native execution failed"); return result; } } public void ClearEntityLastDamageEntity(IEntity entity) => ClearEntityLastDamageEntity(entity.ScriptId); - public void ClearEntityLastDamageEntity(int _entity) + public void ClearEntityLastDamageEntity(uint _entity) { unsafe { - if (fn__clearEntityLastDamageEntity == null) fn__clearEntityLastDamageEntity = (delegate* unmanaged[Cdecl]) funcTable[0xA72CD9CA74A5ECBAUL]; + if (fn__clearEntityLastDamageEntity == null) fn__clearEntityLastDamageEntity = (delegate* unmanaged[Cdecl]) funcTable[0xA72CD9CA74A5ECBAUL]; var success = false; fn__clearEntityLastDamageEntity(&success, _entity); if (!success) throw new Exception("Native execution failed"); } } - public void DeleteEntity(ref int _entity) + public void DeleteEntity(ref uint _entity) { unsafe { - if (fn__deleteEntity == null) fn__deleteEntity = (delegate* unmanaged[Cdecl]) funcTable[0xAE3CBE5BF394C9C9UL]; + if (fn__deleteEntity == null) fn__deleteEntity = (delegate* unmanaged[Cdecl]) funcTable[0xAE3CBE5BF394C9C9UL]; var success = false; var ref_entity = _entity; fn__deleteEntity(&success, &ref_entity); @@ -46956,10 +46943,10 @@ public void DeleteEntity(ref int _entity) } public void DetachEntity(IEntity entity, bool dynamic, bool collision) => DetachEntity(entity.ScriptId, dynamic, collision); - public void DetachEntity(int _entity, bool _dynamic, bool _collision) + public void DetachEntity(uint _entity, bool _dynamic, bool _collision) { unsafe { - if (fn__detachEntity == null) fn__detachEntity = (delegate* unmanaged[Cdecl]) funcTable[0x961AC54BF0613F5DUL]; + if (fn__detachEntity == null) fn__detachEntity = (delegate* unmanaged[Cdecl]) funcTable[0x961AC54BF0613F5DUL]; var success = false; fn__detachEntity(&success, _entity, (byte) (_dynamic ? 1 : 0), (byte) (_collision ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -46967,10 +46954,10 @@ public void DetachEntity(int _entity, bool _dynamic, bool _collision) } public void FreezeEntityPosition(IEntity entity, bool toggle) => FreezeEntityPosition(entity.ScriptId, toggle); - public void FreezeEntityPosition(int _entity, bool _toggle) + public void FreezeEntityPosition(uint _entity, bool _toggle) { unsafe { - if (fn__freezeEntityPosition == null) fn__freezeEntityPosition = (delegate* unmanaged[Cdecl]) funcTable[0x428CA6DBD1094446UL]; + if (fn__freezeEntityPosition == null) fn__freezeEntityPosition = (delegate* unmanaged[Cdecl]) funcTable[0x428CA6DBD1094446UL]; var success = false; fn__freezeEntityPosition(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -46978,10 +46965,10 @@ public void FreezeEntityPosition(int _entity, bool _toggle) } public void SetEntityShouldFreezeWaitingOnCollision(IEntity entity, bool toggle) => SetEntityShouldFreezeWaitingOnCollision(entity.ScriptId, toggle); - public void SetEntityShouldFreezeWaitingOnCollision(int _entity, bool _toggle) + public void SetEntityShouldFreezeWaitingOnCollision(uint _entity, bool _toggle) { unsafe { - if (fn__setEntityShouldFreezeWaitingOnCollision == null) fn__setEntityShouldFreezeWaitingOnCollision = (delegate* unmanaged[Cdecl]) funcTable[0x3910051CCECDB00CUL]; + if (fn__setEntityShouldFreezeWaitingOnCollision == null) fn__setEntityShouldFreezeWaitingOnCollision = (delegate* unmanaged[Cdecl]) funcTable[0x3910051CCECDB00CUL]; var success = false; fn__setEntityShouldFreezeWaitingOnCollision(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -46989,32 +46976,32 @@ public void SetEntityShouldFreezeWaitingOnCollision(int _entity, bool _toggle) } public bool PlayEntityAnim(IEntity entity, string animName, string animDict, float p3, bool loop, bool stayInAnim, bool p6, float delta, int bitset) => PlayEntityAnim(entity.ScriptId, animName, animDict, p3, loop, stayInAnim, p6, delta, bitset); - public bool PlayEntityAnim(int _entity, string _animName, string _animDict, float _p3, bool _loop, bool _stayInAnim, bool _p6, float _delta, int _bitset) + public bool PlayEntityAnim(uint _entity, string _animName, string _animDict, float _p3, bool _loop, bool _stayInAnim, bool _p6, float _delta, int _bitset) { unsafe { - if (fn__playEntityAnim == null) fn__playEntityAnim = (delegate* unmanaged[Cdecl]) funcTable[0x7FB218262B810701UL]; + if (fn__playEntityAnim == null) fn__playEntityAnim = (delegate* unmanaged[Cdecl]) funcTable[0x7FB218262B810701UL]; var success = false; - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); var result = fn__playEntityAnim(&success, _entity, ptr_animName, ptr_animDict, _p3, (byte) (_loop ? 1 : 0), (byte) (_stayInAnim ? 1 : 0), (byte) (_p6 ? 1 : 0), _delta, _bitset); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDict); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool PlaySynchronizedEntityAnim(IEntity entity, int syncedScene, string animation, string propName, float p4, float p5, int p6, float p7) => PlaySynchronizedEntityAnim(entity.ScriptId, syncedScene, animation, propName, p4, p5, p6, p7); - public bool PlaySynchronizedEntityAnim(int _entity, int _syncedScene, string _animation, string _propName, float _p4, float _p5, int _p6, float _p7) + public bool PlaySynchronizedEntityAnim(uint _entity, int _syncedScene, string _animation, string _propName, float _p4, float _p5, int _p6, float _p7) { unsafe { - if (fn__playSynchronizedEntityAnim == null) fn__playSynchronizedEntityAnim = (delegate* unmanaged[Cdecl]) funcTable[0xC77720A12FE14A86UL]; + if (fn__playSynchronizedEntityAnim == null) fn__playSynchronizedEntityAnim = (delegate* unmanaged[Cdecl]) funcTable[0xC77720A12FE14A86UL]; var success = false; - var ptr_animation = _animation == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animation); - var ptr_propName = _propName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_propName); + var ptr_animation = MemoryUtils.StringToHGlobalUtf8(_animation); + var ptr_propName = MemoryUtils.StringToHGlobalUtf8(_propName); var result = fn__playSynchronizedEntityAnim(&success, _entity, _syncedScene, ptr_animation, ptr_propName, _p4, _p5, _p6, _p7); - if (ptr_animation != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animation); - if (ptr_propName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_propName); + Marshal.FreeHGlobal(ptr_animation); + Marshal.FreeHGlobal(ptr_propName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -47025,11 +47012,11 @@ public bool PlaySynchronizedMapEntityAnim(float _x1, float _y1, float _z1, float unsafe { if (fn__playSynchronizedMapEntityAnim == null) fn__playSynchronizedMapEntityAnim = (delegate* unmanaged[Cdecl]) funcTable[0xB9C54555ED30FBC4UL]; var success = false; - var ptr_p6 = _p6 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p6); - var ptr_p7 = _p7 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p7); + var ptr_p6 = MemoryUtils.StringToHGlobalUtf8(_p6); + var ptr_p7 = MemoryUtils.StringToHGlobalUtf8(_p7); var result = fn__playSynchronizedMapEntityAnim(&success, _x1, _y1, _z1, _x2, _y2, _z2, ptr_p6, ptr_p7, _p8, _p9, _p10, _p11); - if (ptr_p6 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p6); - if (ptr_p7 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p7); + Marshal.FreeHGlobal(ptr_p6); + Marshal.FreeHGlobal(ptr_p7); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -47047,26 +47034,26 @@ public bool StopSynchronizedMapEntityAnim(float _x1, float _y1, float _z1, float } public bool StopEntityAnim(IEntity entity, string animation, string animGroup, float p3) => StopEntityAnim(entity.ScriptId, animation, animGroup, p3); - public bool StopEntityAnim(int _entity, string _animation, string _animGroup, float _p3) + public bool StopEntityAnim(uint _entity, string _animation, string _animGroup, float _p3) { unsafe { - if (fn__stopEntityAnim == null) fn__stopEntityAnim = (delegate* unmanaged[Cdecl]) funcTable[0x28004F88151E03E0UL]; + if (fn__stopEntityAnim == null) fn__stopEntityAnim = (delegate* unmanaged[Cdecl]) funcTable[0x28004F88151E03E0UL]; var success = false; - var ptr_animation = _animation == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animation); - var ptr_animGroup = _animGroup == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animGroup); + var ptr_animation = MemoryUtils.StringToHGlobalUtf8(_animation); + var ptr_animGroup = MemoryUtils.StringToHGlobalUtf8(_animGroup); var result = fn__stopEntityAnim(&success, _entity, ptr_animation, ptr_animGroup, _p3); - if (ptr_animation != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animation); - if (ptr_animGroup != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animGroup); + Marshal.FreeHGlobal(ptr_animation); + Marshal.FreeHGlobal(ptr_animGroup); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool StopSynchronizedEntityAnim(IEntity entity, float p1, bool p2) => StopSynchronizedEntityAnim(entity.ScriptId, p1, p2); - public bool StopSynchronizedEntityAnim(int _entity, float _p1, bool _p2) + public bool StopSynchronizedEntityAnim(uint _entity, float _p1, bool _p2) { unsafe { - if (fn__stopSynchronizedEntityAnim == null) fn__stopSynchronizedEntityAnim = (delegate* unmanaged[Cdecl]) funcTable[0x43D3807C077261E3UL]; + if (fn__stopSynchronizedEntityAnim == null) fn__stopSynchronizedEntityAnim = (delegate* unmanaged[Cdecl]) funcTable[0x43D3807C077261E3UL]; var success = false; var result = fn__stopSynchronizedEntityAnim(&success, _entity, _p1, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47075,10 +47062,10 @@ public bool StopSynchronizedEntityAnim(int _entity, float _p1, bool _p2) } public bool HasAnimEventFired(IEntity entity, uint actionHash) => HasAnimEventFired(entity.ScriptId, actionHash); - public bool HasAnimEventFired(int _entity, uint _actionHash) + public bool HasAnimEventFired(uint _entity, uint _actionHash) { unsafe { - if (fn__hasAnimEventFired == null) fn__hasAnimEventFired = (delegate* unmanaged[Cdecl]) funcTable[0xEAF4CD9EA3E7E922UL]; + if (fn__hasAnimEventFired == null) fn__hasAnimEventFired = (delegate* unmanaged[Cdecl]) funcTable[0xEAF4CD9EA3E7E922UL]; var success = false; var result = fn__hasAnimEventFired(&success, _entity, _actionHash); if (!success) throw new Exception("Native execution failed"); @@ -47091,15 +47078,15 @@ public bool FindAnimEventPhase(string _animDictionary, string _animName, string unsafe { if (fn__findAnimEventPhase == null) fn__findAnimEventPhase = (delegate* unmanaged[Cdecl]) funcTable[0x07F1BE2BCCAA27A7UL]; var success = false; - var ptr_animDictionary = _animDictionary == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDictionary); - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_animDictionary = MemoryUtils.StringToHGlobalUtf8(_animDictionary); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); var ref_p3 = _p3; var ref_p4 = _p4; var result = fn__findAnimEventPhase(&success, ptr_animDictionary, ptr_animName, ptr_p2, &ref_p3, &ref_p4); - if (ptr_animDictionary != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDictionary); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_animDictionary); + Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_p2); _p3 = ref_p3; _p4 = ref_p4; if (!success) throw new Exception("Native execution failed"); @@ -47108,50 +47095,50 @@ public bool FindAnimEventPhase(string _animDictionary, string _animName, string } public void SetEntityAnimCurrentTime(IEntity entity, string animDictionary, string animName, float time) => SetEntityAnimCurrentTime(entity.ScriptId, animDictionary, animName, time); - public void SetEntityAnimCurrentTime(int _entity, string _animDictionary, string _animName, float _time) + public void SetEntityAnimCurrentTime(uint _entity, string _animDictionary, string _animName, float _time) { unsafe { - if (fn__setEntityAnimCurrentTime == null) fn__setEntityAnimCurrentTime = (delegate* unmanaged[Cdecl]) funcTable[0x4487C259F0F70977UL]; + if (fn__setEntityAnimCurrentTime == null) fn__setEntityAnimCurrentTime = (delegate* unmanaged[Cdecl]) funcTable[0x4487C259F0F70977UL]; var success = false; - var ptr_animDictionary = _animDictionary == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDictionary); - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDictionary = MemoryUtils.StringToHGlobalUtf8(_animDictionary); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); fn__setEntityAnimCurrentTime(&success, _entity, ptr_animDictionary, ptr_animName, _time); - if (ptr_animDictionary != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDictionary); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDictionary); + Marshal.FreeHGlobal(ptr_animName); if (!success) throw new Exception("Native execution failed"); } } public void SetEntityAnimSpeed(IEntity entity, string animDictionary, string animName, float speedMultiplier) => SetEntityAnimSpeed(entity.ScriptId, animDictionary, animName, speedMultiplier); - public void SetEntityAnimSpeed(int _entity, string _animDictionary, string _animName, float _speedMultiplier) + public void SetEntityAnimSpeed(uint _entity, string _animDictionary, string _animName, float _speedMultiplier) { unsafe { - if (fn__setEntityAnimSpeed == null) fn__setEntityAnimSpeed = (delegate* unmanaged[Cdecl]) funcTable[0x28D1A16553C51776UL]; + if (fn__setEntityAnimSpeed == null) fn__setEntityAnimSpeed = (delegate* unmanaged[Cdecl]) funcTable[0x28D1A16553C51776UL]; var success = false; - var ptr_animDictionary = _animDictionary == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDictionary); - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDictionary = MemoryUtils.StringToHGlobalUtf8(_animDictionary); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); fn__setEntityAnimSpeed(&success, _entity, ptr_animDictionary, ptr_animName, _speedMultiplier); - if (ptr_animDictionary != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDictionary); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDictionary); + Marshal.FreeHGlobal(ptr_animName); if (!success) throw new Exception("Native execution failed"); } } public void SetEntityAsMissionEntity(IEntity entity, bool p1, bool p2) => SetEntityAsMissionEntity(entity.ScriptId, p1, p2); - public void SetEntityAsMissionEntity(int _entity, bool _p1, bool _p2) + public void SetEntityAsMissionEntity(uint _entity, bool _p1, bool _p2) { unsafe { - if (fn__setEntityAsMissionEntity == null) fn__setEntityAsMissionEntity = (delegate* unmanaged[Cdecl]) funcTable[0xAD738C3085FE7E11UL]; + if (fn__setEntityAsMissionEntity == null) fn__setEntityAsMissionEntity = (delegate* unmanaged[Cdecl]) funcTable[0xAD738C3085FE7E11UL]; var success = false; fn__setEntityAsMissionEntity(&success, _entity, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void SetEntityAsNoLongerNeeded(ref int _entity) + public void SetEntityAsNoLongerNeeded(ref uint _entity) { unsafe { - if (fn__setEntityAsNoLongerNeeded == null) fn__setEntityAsNoLongerNeeded = (delegate* unmanaged[Cdecl]) funcTable[0xB736A491E64A32CFUL]; + if (fn__setEntityAsNoLongerNeeded == null) fn__setEntityAsNoLongerNeeded = (delegate* unmanaged[Cdecl]) funcTable[0xB736A491E64A32CFUL]; var success = false; var ref_entity = _entity; fn__setEntityAsNoLongerNeeded(&success, &ref_entity); @@ -47160,10 +47147,10 @@ public void SetEntityAsNoLongerNeeded(ref int _entity) } } - public void SetPedAsNoLongerNeeded(ref int _ped) + public void SetPedAsNoLongerNeeded(ref uint _ped) { unsafe { - if (fn__setPedAsNoLongerNeeded == null) fn__setPedAsNoLongerNeeded = (delegate* unmanaged[Cdecl]) funcTable[0x2595DD4236549CE3UL]; + if (fn__setPedAsNoLongerNeeded == null) fn__setPedAsNoLongerNeeded = (delegate* unmanaged[Cdecl]) funcTable[0x2595DD4236549CE3UL]; var success = false; var ref_ped = _ped; fn__setPedAsNoLongerNeeded(&success, &ref_ped); @@ -47172,10 +47159,10 @@ public void SetPedAsNoLongerNeeded(ref int _ped) } } - public void SetVehicleAsNoLongerNeeded(ref int _vehicle) + public void SetVehicleAsNoLongerNeeded(ref uint _vehicle) { unsafe { - if (fn__setVehicleAsNoLongerNeeded == null) fn__setVehicleAsNoLongerNeeded = (delegate* unmanaged[Cdecl]) funcTable[0x629BFA74418D6239UL]; + if (fn__setVehicleAsNoLongerNeeded == null) fn__setVehicleAsNoLongerNeeded = (delegate* unmanaged[Cdecl]) funcTable[0x629BFA74418D6239UL]; var success = false; var ref_vehicle = _vehicle; fn__setVehicleAsNoLongerNeeded(&success, &ref_vehicle); @@ -47184,10 +47171,10 @@ public void SetVehicleAsNoLongerNeeded(ref int _vehicle) } } - public void SetObjectAsNoLongerNeeded(ref int _object) + public void SetObjectAsNoLongerNeeded(ref uint _object) { unsafe { - if (fn__setObjectAsNoLongerNeeded == null) fn__setObjectAsNoLongerNeeded = (delegate* unmanaged[Cdecl]) funcTable[0x3AE22DEB5BA5A3E6UL]; + if (fn__setObjectAsNoLongerNeeded == null) fn__setObjectAsNoLongerNeeded = (delegate* unmanaged[Cdecl]) funcTable[0x3AE22DEB5BA5A3E6UL]; var success = false; var ref_object = _object; fn__setObjectAsNoLongerNeeded(&success, &ref_object); @@ -47197,10 +47184,10 @@ public void SetObjectAsNoLongerNeeded(ref int _object) } public void SetEntityCanBeDamaged(IEntity entity, bool toggle) => SetEntityCanBeDamaged(entity.ScriptId, toggle); - public void SetEntityCanBeDamaged(int _entity, bool _toggle) + public void SetEntityCanBeDamaged(uint _entity, bool _toggle) { unsafe { - if (fn__setEntityCanBeDamaged == null) fn__setEntityCanBeDamaged = (delegate* unmanaged[Cdecl]) funcTable[0x1760FFA8AB074D66UL]; + if (fn__setEntityCanBeDamaged == null) fn__setEntityCanBeDamaged = (delegate* unmanaged[Cdecl]) funcTable[0x1760FFA8AB074D66UL]; var success = false; fn__setEntityCanBeDamaged(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47208,10 +47195,10 @@ public void SetEntityCanBeDamaged(int _entity, bool _toggle) } public bool GetEntityCanBeDamaged(IEntity entity) => GetEntityCanBeDamaged(entity.ScriptId); - public bool GetEntityCanBeDamaged(int _entity) + public bool GetEntityCanBeDamaged(uint _entity) { unsafe { - if (fn__getEntityCanBeDamaged == null) fn__getEntityCanBeDamaged = (delegate* unmanaged[Cdecl]) funcTable[0xD95CC5D2AB15A09FUL]; + if (fn__getEntityCanBeDamaged == null) fn__getEntityCanBeDamaged = (delegate* unmanaged[Cdecl]) funcTable[0xD95CC5D2AB15A09FUL]; var success = false; var result = fn__getEntityCanBeDamaged(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -47220,10 +47207,10 @@ public bool GetEntityCanBeDamaged(int _entity) } public void SetEntityCanBeDamagedByRelationshipGroup(IEntity entity, bool bCanBeDamaged, int relGroup) => SetEntityCanBeDamagedByRelationshipGroup(entity.ScriptId, bCanBeDamaged, relGroup); - public void SetEntityCanBeDamagedByRelationshipGroup(int _entity, bool _bCanBeDamaged, int _relGroup) + public void SetEntityCanBeDamagedByRelationshipGroup(uint _entity, bool _bCanBeDamaged, int _relGroup) { unsafe { - if (fn__setEntityCanBeDamagedByRelationshipGroup == null) fn__setEntityCanBeDamagedByRelationshipGroup = (delegate* unmanaged[Cdecl]) funcTable[0xE22D8FDE858B8119UL]; + if (fn__setEntityCanBeDamagedByRelationshipGroup == null) fn__setEntityCanBeDamagedByRelationshipGroup = (delegate* unmanaged[Cdecl]) funcTable[0xE22D8FDE858B8119UL]; var success = false; fn__setEntityCanBeDamagedByRelationshipGroup(&success, _entity, (byte) (_bCanBeDamaged ? 1 : 0), _relGroup); if (!success) throw new Exception("Native execution failed"); @@ -47231,10 +47218,10 @@ public void SetEntityCanBeDamagedByRelationshipGroup(int _entity, bool _bCanBeDa } public void SetEntityCanOnlyBeDamagedByScriptParticipants(IEntity entity, bool toggle) => SetEntityCanOnlyBeDamagedByScriptParticipants(entity.ScriptId, toggle); - public void SetEntityCanOnlyBeDamagedByScriptParticipants(int _entity, bool _toggle) + public void SetEntityCanOnlyBeDamagedByScriptParticipants(uint _entity, bool _toggle) { unsafe { - if (fn__setEntityCanOnlyBeDamagedByScriptParticipants == null) fn__setEntityCanOnlyBeDamagedByScriptParticipants = (delegate* unmanaged[Cdecl]) funcTable[0x352E2B5CF420BF3BUL]; + if (fn__setEntityCanOnlyBeDamagedByScriptParticipants == null) fn__setEntityCanOnlyBeDamagedByScriptParticipants = (delegate* unmanaged[Cdecl]) funcTable[0x352E2B5CF420BF3BUL]; var success = false; fn__setEntityCanOnlyBeDamagedByScriptParticipants(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47242,10 +47229,10 @@ public void SetEntityCanOnlyBeDamagedByScriptParticipants(int _entity, bool _tog } public void SetEntityCanBeTargetedWithoutLos(IEntity entity, bool toggle) => SetEntityCanBeTargetedWithoutLos(entity.ScriptId, toggle); - public void SetEntityCanBeTargetedWithoutLos(int _entity, bool _toggle) + public void SetEntityCanBeTargetedWithoutLos(uint _entity, bool _toggle) { unsafe { - if (fn__setEntityCanBeTargetedWithoutLos == null) fn__setEntityCanBeTargetedWithoutLos = (delegate* unmanaged[Cdecl]) funcTable[0xD3997889736FD899UL]; + if (fn__setEntityCanBeTargetedWithoutLos == null) fn__setEntityCanBeTargetedWithoutLos = (delegate* unmanaged[Cdecl]) funcTable[0xD3997889736FD899UL]; var success = false; fn__setEntityCanBeTargetedWithoutLos(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47253,10 +47240,10 @@ public void SetEntityCanBeTargetedWithoutLos(int _entity, bool _toggle) } public void SetEntityCollision(IEntity entity, bool toggle, bool keepPhysics) => SetEntityCollision(entity.ScriptId, toggle, keepPhysics); - public void SetEntityCollision(int _entity, bool _toggle, bool _keepPhysics) + public void SetEntityCollision(uint _entity, bool _toggle, bool _keepPhysics) { unsafe { - if (fn__setEntityCollision == null) fn__setEntityCollision = (delegate* unmanaged[Cdecl]) funcTable[0x1A9205C1B9EE827FUL]; + if (fn__setEntityCollision == null) fn__setEntityCollision = (delegate* unmanaged[Cdecl]) funcTable[0x1A9205C1B9EE827FUL]; var success = false; fn__setEntityCollision(&success, _entity, (byte) (_toggle ? 1 : 0), (byte) (_keepPhysics ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47264,10 +47251,10 @@ public void SetEntityCollision(int _entity, bool _toggle, bool _keepPhysics) } public bool GetEntityCollisionDisabled(IEntity entity) => GetEntityCollisionDisabled(entity.ScriptId); - public bool GetEntityCollisionDisabled(int _entity) + public bool GetEntityCollisionDisabled(uint _entity) { unsafe { - if (fn__getEntityCollisionDisabled == null) fn__getEntityCollisionDisabled = (delegate* unmanaged[Cdecl]) funcTable[0xCCF1E97BEFDAE480UL]; + if (fn__getEntityCollisionDisabled == null) fn__getEntityCollisionDisabled = (delegate* unmanaged[Cdecl]) funcTable[0xCCF1E97BEFDAE480UL]; var success = false; var result = fn__getEntityCollisionDisabled(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -47276,10 +47263,10 @@ public bool GetEntityCollisionDisabled(int _entity) } public void SetEntityCompletelyDisableCollision(IEntity entity, bool toggle, bool keepPhysics) => SetEntityCompletelyDisableCollision(entity.ScriptId, toggle, keepPhysics); - public void SetEntityCompletelyDisableCollision(int _entity, bool _toggle, bool _keepPhysics) + public void SetEntityCompletelyDisableCollision(uint _entity, bool _toggle, bool _keepPhysics) { unsafe { - if (fn__setEntityCompletelyDisableCollision == null) fn__setEntityCompletelyDisableCollision = (delegate* unmanaged[Cdecl]) funcTable[0x9EBC85ED0FFFE51CUL]; + if (fn__setEntityCompletelyDisableCollision == null) fn__setEntityCompletelyDisableCollision = (delegate* unmanaged[Cdecl]) funcTable[0x9EBC85ED0FFFE51CUL]; var success = false; fn__setEntityCompletelyDisableCollision(&success, _entity, (byte) (_toggle ? 1 : 0), (byte) (_keepPhysics ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47287,10 +47274,10 @@ public void SetEntityCompletelyDisableCollision(int _entity, bool _toggle, bool } public void SetEntityCoords(IEntity entity, float xPos, float yPos, float zPos, bool xAxis, bool yAxis, bool zAxis, bool clearArea) => SetEntityCoords(entity.ScriptId, xPos, yPos, zPos, xAxis, yAxis, zAxis, clearArea); - public void SetEntityCoords(int _entity, float _xPos, float _yPos, float _zPos, bool _xAxis, bool _yAxis, bool _zAxis, bool _clearArea) + public void SetEntityCoords(uint _entity, float _xPos, float _yPos, float _zPos, bool _xAxis, bool _yAxis, bool _zAxis, bool _clearArea) { unsafe { - if (fn__setEntityCoords == null) fn__setEntityCoords = (delegate* unmanaged[Cdecl]) funcTable[0x06843DA7060A026BUL]; + if (fn__setEntityCoords == null) fn__setEntityCoords = (delegate* unmanaged[Cdecl]) funcTable[0x06843DA7060A026BUL]; var success = false; fn__setEntityCoords(&success, _entity, _xPos, _yPos, _zPos, (byte) (_xAxis ? 1 : 0), (byte) (_yAxis ? 1 : 0), (byte) (_zAxis ? 1 : 0), (byte) (_clearArea ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47298,10 +47285,10 @@ public void SetEntityCoords(int _entity, float _xPos, float _yPos, float _zPos, } public void SetEntityCoordsWithoutPlantsReset(IEntity entity, float xPos, float yPos, float zPos, bool alive, bool deadFlag, bool ragdollFlag, bool clearArea) => SetEntityCoordsWithoutPlantsReset(entity.ScriptId, xPos, yPos, zPos, alive, deadFlag, ragdollFlag, clearArea); - public void SetEntityCoordsWithoutPlantsReset(int _entity, float _xPos, float _yPos, float _zPos, bool _alive, bool _deadFlag, bool _ragdollFlag, bool _clearArea) + public void SetEntityCoordsWithoutPlantsReset(uint _entity, float _xPos, float _yPos, float _zPos, bool _alive, bool _deadFlag, bool _ragdollFlag, bool _clearArea) { unsafe { - if (fn__setEntityCoordsWithoutPlantsReset == null) fn__setEntityCoordsWithoutPlantsReset = (delegate* unmanaged[Cdecl]) funcTable[0x621873ECE1178967UL]; + if (fn__setEntityCoordsWithoutPlantsReset == null) fn__setEntityCoordsWithoutPlantsReset = (delegate* unmanaged[Cdecl]) funcTable[0x621873ECE1178967UL]; var success = false; fn__setEntityCoordsWithoutPlantsReset(&success, _entity, _xPos, _yPos, _zPos, (byte) (_alive ? 1 : 0), (byte) (_deadFlag ? 1 : 0), (byte) (_ragdollFlag ? 1 : 0), (byte) (_clearArea ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47309,10 +47296,10 @@ public void SetEntityCoordsWithoutPlantsReset(int _entity, float _xPos, float _y } public void SetEntityCoordsNoOffset(IEntity entity, float xPos, float yPos, float zPos, bool xAxis, bool yAxis, bool zAxis) => SetEntityCoordsNoOffset(entity.ScriptId, xPos, yPos, zPos, xAxis, yAxis, zAxis); - public void SetEntityCoordsNoOffset(int _entity, float _xPos, float _yPos, float _zPos, bool _xAxis, bool _yAxis, bool _zAxis) + public void SetEntityCoordsNoOffset(uint _entity, float _xPos, float _yPos, float _zPos, bool _xAxis, bool _yAxis, bool _zAxis) { unsafe { - if (fn__setEntityCoordsNoOffset == null) fn__setEntityCoordsNoOffset = (delegate* unmanaged[Cdecl]) funcTable[0x239A3351AC1DA385UL]; + if (fn__setEntityCoordsNoOffset == null) fn__setEntityCoordsNoOffset = (delegate* unmanaged[Cdecl]) funcTable[0x239A3351AC1DA385UL]; var success = false; fn__setEntityCoordsNoOffset(&success, _entity, _xPos, _yPos, _zPos, (byte) (_xAxis ? 1 : 0), (byte) (_yAxis ? 1 : 0), (byte) (_zAxis ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47320,10 +47307,10 @@ public void SetEntityCoordsNoOffset(int _entity, float _xPos, float _yPos, float } public void SetEntityDynamic(IEntity entity, bool toggle) => SetEntityDynamic(entity.ScriptId, toggle); - public void SetEntityDynamic(int _entity, bool _toggle) + public void SetEntityDynamic(uint _entity, bool _toggle) { unsafe { - if (fn__setEntityDynamic == null) fn__setEntityDynamic = (delegate* unmanaged[Cdecl]) funcTable[0x1718DE8E3F2823CAUL]; + if (fn__setEntityDynamic == null) fn__setEntityDynamic = (delegate* unmanaged[Cdecl]) funcTable[0x1718DE8E3F2823CAUL]; var success = false; fn__setEntityDynamic(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47331,10 +47318,10 @@ public void SetEntityDynamic(int _entity, bool _toggle) } public void SetEntityHeading(IEntity entity, float heading) => SetEntityHeading(entity.ScriptId, heading); - public void SetEntityHeading(int _entity, float _heading) + public void SetEntityHeading(uint _entity, float _heading) { unsafe { - if (fn__setEntityHeading == null) fn__setEntityHeading = (delegate* unmanaged[Cdecl]) funcTable[0x8E2530AA8ADA980EUL]; + if (fn__setEntityHeading == null) fn__setEntityHeading = (delegate* unmanaged[Cdecl]) funcTable[0x8E2530AA8ADA980EUL]; var success = false; fn__setEntityHeading(&success, _entity, _heading); if (!success) throw new Exception("Native execution failed"); @@ -47342,10 +47329,10 @@ public void SetEntityHeading(int _entity, float _heading) } public void SetEntityHealth(IEntity entity, int health, int p2) => SetEntityHealth(entity.ScriptId, health, p2); - public void SetEntityHealth(int _entity, int _health, int _p2) + public void SetEntityHealth(uint _entity, int _health, int _p2) { unsafe { - if (fn__setEntityHealth == null) fn__setEntityHealth = (delegate* unmanaged[Cdecl]) funcTable[0x6B76DC1F3AE6E6A3UL]; + if (fn__setEntityHealth == null) fn__setEntityHealth = (delegate* unmanaged[Cdecl]) funcTable[0x6B76DC1F3AE6E6A3UL]; var success = false; fn__setEntityHealth(&success, _entity, _health, _p2); if (!success) throw new Exception("Native execution failed"); @@ -47353,10 +47340,10 @@ public void SetEntityHealth(int _entity, int _health, int _p2) } public void SetEntityInvincible(IEntity entity, bool toggle) => SetEntityInvincible(entity.ScriptId, toggle); - public void SetEntityInvincible(int _entity, bool _toggle) + public void SetEntityInvincible(uint _entity, bool _toggle) { unsafe { - if (fn__setEntityInvincible == null) fn__setEntityInvincible = (delegate* unmanaged[Cdecl]) funcTable[0x3882114BDE571AD4UL]; + if (fn__setEntityInvincible == null) fn__setEntityInvincible = (delegate* unmanaged[Cdecl]) funcTable[0x3882114BDE571AD4UL]; var success = false; fn__setEntityInvincible(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47364,10 +47351,10 @@ public void SetEntityInvincible(int _entity, bool _toggle) } public void SetEntityIsTargetPriority(IEntity entity, bool p1, float p2) => SetEntityIsTargetPriority(entity.ScriptId, p1, p2); - public void SetEntityIsTargetPriority(int _entity, bool _p1, float _p2) + public void SetEntityIsTargetPriority(uint _entity, bool _p1, float _p2) { unsafe { - if (fn__setEntityIsTargetPriority == null) fn__setEntityIsTargetPriority = (delegate* unmanaged[Cdecl]) funcTable[0xEA02E132F5C68722UL]; + if (fn__setEntityIsTargetPriority == null) fn__setEntityIsTargetPriority = (delegate* unmanaged[Cdecl]) funcTable[0xEA02E132F5C68722UL]; var success = false; fn__setEntityIsTargetPriority(&success, _entity, (byte) (_p1 ? 1 : 0), _p2); if (!success) throw new Exception("Native execution failed"); @@ -47375,10 +47362,10 @@ public void SetEntityIsTargetPriority(int _entity, bool _p1, float _p2) } public void SetEntityLights(IEntity entity, bool toggle) => SetEntityLights(entity.ScriptId, toggle); - public void SetEntityLights(int _entity, bool _toggle) + public void SetEntityLights(uint _entity, bool _toggle) { unsafe { - if (fn__setEntityLights == null) fn__setEntityLights = (delegate* unmanaged[Cdecl]) funcTable[0x7CFBA6A80BDF3874UL]; + if (fn__setEntityLights == null) fn__setEntityLights = (delegate* unmanaged[Cdecl]) funcTable[0x7CFBA6A80BDF3874UL]; var success = false; fn__setEntityLights(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47386,10 +47373,10 @@ public void SetEntityLights(int _entity, bool _toggle) } public void SetEntityLoadCollisionFlag(IEntity entity, bool toggle, int p2) => SetEntityLoadCollisionFlag(entity.ScriptId, toggle, p2); - public void SetEntityLoadCollisionFlag(int _entity, bool _toggle, int _p2) + public void SetEntityLoadCollisionFlag(uint _entity, bool _toggle, int _p2) { unsafe { - if (fn__setEntityLoadCollisionFlag == null) fn__setEntityLoadCollisionFlag = (delegate* unmanaged[Cdecl]) funcTable[0x0DC7CABAB1E9B67EUL]; + if (fn__setEntityLoadCollisionFlag == null) fn__setEntityLoadCollisionFlag = (delegate* unmanaged[Cdecl]) funcTable[0x0DC7CABAB1E9B67EUL]; var success = false; fn__setEntityLoadCollisionFlag(&success, _entity, (byte) (_toggle ? 1 : 0), _p2); if (!success) throw new Exception("Native execution failed"); @@ -47397,10 +47384,10 @@ public void SetEntityLoadCollisionFlag(int _entity, bool _toggle, int _p2) } public bool HasCollisionLoadedAroundEntity(IEntity entity) => HasCollisionLoadedAroundEntity(entity.ScriptId); - public bool HasCollisionLoadedAroundEntity(int _entity) + public bool HasCollisionLoadedAroundEntity(uint _entity) { unsafe { - if (fn__hasCollisionLoadedAroundEntity == null) fn__hasCollisionLoadedAroundEntity = (delegate* unmanaged[Cdecl]) funcTable[0xE9676F61BC0B3321UL]; + if (fn__hasCollisionLoadedAroundEntity == null) fn__hasCollisionLoadedAroundEntity = (delegate* unmanaged[Cdecl]) funcTable[0xE9676F61BC0B3321UL]; var success = false; var result = fn__hasCollisionLoadedAroundEntity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -47409,10 +47396,10 @@ public bool HasCollisionLoadedAroundEntity(int _entity) } public void SetEntityMaxSpeed(IEntity entity, float speed) => SetEntityMaxSpeed(entity.ScriptId, speed); - public void SetEntityMaxSpeed(int _entity, float _speed) + public void SetEntityMaxSpeed(uint _entity, float _speed) { unsafe { - if (fn__setEntityMaxSpeed == null) fn__setEntityMaxSpeed = (delegate* unmanaged[Cdecl]) funcTable[0x0E46A3FCBDE2A1B1UL]; + if (fn__setEntityMaxSpeed == null) fn__setEntityMaxSpeed = (delegate* unmanaged[Cdecl]) funcTable[0x0E46A3FCBDE2A1B1UL]; var success = false; fn__setEntityMaxSpeed(&success, _entity, _speed); if (!success) throw new Exception("Native execution failed"); @@ -47420,10 +47407,10 @@ public void SetEntityMaxSpeed(int _entity, float _speed) } public void SetEntityOnlyDamagedByPlayer(IEntity entity, bool toggle) => SetEntityOnlyDamagedByPlayer(entity.ScriptId, toggle); - public void SetEntityOnlyDamagedByPlayer(int _entity, bool _toggle) + public void SetEntityOnlyDamagedByPlayer(uint _entity, bool _toggle) { unsafe { - if (fn__setEntityOnlyDamagedByPlayer == null) fn__setEntityOnlyDamagedByPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x79F020FF9EDC0748UL]; + if (fn__setEntityOnlyDamagedByPlayer == null) fn__setEntityOnlyDamagedByPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x79F020FF9EDC0748UL]; var success = false; fn__setEntityOnlyDamagedByPlayer(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47431,10 +47418,10 @@ public void SetEntityOnlyDamagedByPlayer(int _entity, bool _toggle) } public void SetEntityOnlyDamagedByRelationshipGroup(IEntity entity, bool p1, int p2) => SetEntityOnlyDamagedByRelationshipGroup(entity.ScriptId, p1, p2); - public void SetEntityOnlyDamagedByRelationshipGroup(int _entity, bool _p1, int _p2) + public void SetEntityOnlyDamagedByRelationshipGroup(uint _entity, bool _p1, int _p2) { unsafe { - if (fn__setEntityOnlyDamagedByRelationshipGroup == null) fn__setEntityOnlyDamagedByRelationshipGroup = (delegate* unmanaged[Cdecl]) funcTable[0x7022BD828FA0B082UL]; + if (fn__setEntityOnlyDamagedByRelationshipGroup == null) fn__setEntityOnlyDamagedByRelationshipGroup = (delegate* unmanaged[Cdecl]) funcTable[0x7022BD828FA0B082UL]; var success = false; fn__setEntityOnlyDamagedByRelationshipGroup(&success, _entity, (byte) (_p1 ? 1 : 0), _p2); if (!success) throw new Exception("Native execution failed"); @@ -47442,10 +47429,10 @@ public void SetEntityOnlyDamagedByRelationshipGroup(int _entity, bool _p1, int _ } public void SetEntityProofs(IEntity entity, bool bulletProof, bool fireProof, bool explosionProof, bool collisionProof, bool meleeProof, bool steamProof, bool p7, bool waterProof) => SetEntityProofs(entity.ScriptId, bulletProof, fireProof, explosionProof, collisionProof, meleeProof, steamProof, p7, waterProof); - public void SetEntityProofs(int _entity, bool _bulletProof, bool _fireProof, bool _explosionProof, bool _collisionProof, bool _meleeProof, bool _steamProof, bool _p7, bool _waterProof) + public void SetEntityProofs(uint _entity, bool _bulletProof, bool _fireProof, bool _explosionProof, bool _collisionProof, bool _meleeProof, bool _steamProof, bool _p7, bool _waterProof) { unsafe { - if (fn__setEntityProofs == null) fn__setEntityProofs = (delegate* unmanaged[Cdecl]) funcTable[0xFAEE099C6F890BB8UL]; + if (fn__setEntityProofs == null) fn__setEntityProofs = (delegate* unmanaged[Cdecl]) funcTable[0xFAEE099C6F890BB8UL]; var success = false; fn__setEntityProofs(&success, _entity, (byte) (_bulletProof ? 1 : 0), (byte) (_fireProof ? 1 : 0), (byte) (_explosionProof ? 1 : 0), (byte) (_collisionProof ? 1 : 0), (byte) (_meleeProof ? 1 : 0), (byte) (_steamProof ? 1 : 0), (byte) (_p7 ? 1 : 0), (byte) (_waterProof ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47453,10 +47440,10 @@ public void SetEntityProofs(int _entity, bool _bulletProof, bool _fireProof, boo } public bool GetEntityProofs(IEntity entity, ref bool bulletProof, ref bool fireProof, ref bool explosionProof, ref bool collisionProof, ref bool meleeProof, ref bool steamProof, ref bool p7, ref bool drownProof) => GetEntityProofs(entity.ScriptId, ref bulletProof, ref fireProof, ref explosionProof, ref collisionProof, ref meleeProof, ref steamProof, ref p7, ref drownProof); - public bool GetEntityProofs(int _entity, ref bool _bulletProof, ref bool _fireProof, ref bool _explosionProof, ref bool _collisionProof, ref bool _meleeProof, ref bool _steamProof, ref bool _p7, ref bool _drownProof) + public bool GetEntityProofs(uint _entity, ref bool _bulletProof, ref bool _fireProof, ref bool _explosionProof, ref bool _collisionProof, ref bool _meleeProof, ref bool _steamProof, ref bool _p7, ref bool _drownProof) { unsafe { - if (fn__getEntityProofs == null) fn__getEntityProofs = (delegate* unmanaged[Cdecl]) funcTable[0xBE8CD9BE829BBEBFUL]; + if (fn__getEntityProofs == null) fn__getEntityProofs = (delegate* unmanaged[Cdecl]) funcTable[0xBE8CD9BE829BBEBFUL]; var success = false; var ref_bulletProof = (byte) (_bulletProof ? 1 : 0); var ref_fireProof = (byte) (_fireProof ? 1 : 0); @@ -47481,10 +47468,10 @@ public bool GetEntityProofs(int _entity, ref bool _bulletProof, ref bool _firePr } public void SetEntityQuaternion(IEntity entity, float x, float y, float z, float w) => SetEntityQuaternion(entity.ScriptId, x, y, z, w); - public void SetEntityQuaternion(int _entity, float _x, float _y, float _z, float _w) + public void SetEntityQuaternion(uint _entity, float _x, float _y, float _z, float _w) { unsafe { - if (fn__setEntityQuaternion == null) fn__setEntityQuaternion = (delegate* unmanaged[Cdecl]) funcTable[0x77B21BE7AC540F07UL]; + if (fn__setEntityQuaternion == null) fn__setEntityQuaternion = (delegate* unmanaged[Cdecl]) funcTable[0x77B21BE7AC540F07UL]; var success = false; fn__setEntityQuaternion(&success, _entity, _x, _y, _z, _w); if (!success) throw new Exception("Native execution failed"); @@ -47492,10 +47479,10 @@ public void SetEntityQuaternion(int _entity, float _x, float _y, float _z, float } public void SetEntityRecordsCollisions(IEntity entity, bool toggle) => SetEntityRecordsCollisions(entity.ScriptId, toggle); - public void SetEntityRecordsCollisions(int _entity, bool _toggle) + public void SetEntityRecordsCollisions(uint _entity, bool _toggle) { unsafe { - if (fn__setEntityRecordsCollisions == null) fn__setEntityRecordsCollisions = (delegate* unmanaged[Cdecl]) funcTable[0x0A50A1EEDAD01E65UL]; + if (fn__setEntityRecordsCollisions == null) fn__setEntityRecordsCollisions = (delegate* unmanaged[Cdecl]) funcTable[0x0A50A1EEDAD01E65UL]; var success = false; fn__setEntityRecordsCollisions(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47503,10 +47490,10 @@ public void SetEntityRecordsCollisions(int _entity, bool _toggle) } public void SetEntityRotation(IEntity entity, float pitch, float roll, float yaw, int rotationOrder, bool p5) => SetEntityRotation(entity.ScriptId, pitch, roll, yaw, rotationOrder, p5); - public void SetEntityRotation(int _entity, float _pitch, float _roll, float _yaw, int _rotationOrder, bool _p5) + public void SetEntityRotation(uint _entity, float _pitch, float _roll, float _yaw, int _rotationOrder, bool _p5) { unsafe { - if (fn__setEntityRotation == null) fn__setEntityRotation = (delegate* unmanaged[Cdecl]) funcTable[0x8524A8B0171D5E07UL]; + if (fn__setEntityRotation == null) fn__setEntityRotation = (delegate* unmanaged[Cdecl]) funcTable[0x8524A8B0171D5E07UL]; var success = false; fn__setEntityRotation(&success, _entity, _pitch, _roll, _yaw, _rotationOrder, (byte) (_p5 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47514,10 +47501,10 @@ public void SetEntityRotation(int _entity, float _pitch, float _roll, float _yaw } public void SetEntityVisible(IEntity entity, bool toggle, bool p2) => SetEntityVisible(entity.ScriptId, toggle, p2); - public void SetEntityVisible(int _entity, bool _toggle, bool _p2) + public void SetEntityVisible(uint _entity, bool _toggle, bool _p2) { unsafe { - if (fn__setEntityVisible == null) fn__setEntityVisible = (delegate* unmanaged[Cdecl]) funcTable[0xEA1C610A04DB6BBBUL]; + if (fn__setEntityVisible == null) fn__setEntityVisible = (delegate* unmanaged[Cdecl]) funcTable[0xEA1C610A04DB6BBBUL]; var success = false; fn__setEntityVisible(&success, _entity, (byte) (_toggle ? 1 : 0), (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47525,10 +47512,10 @@ public void SetEntityVisible(int _entity, bool _toggle, bool _p2) } public void SetEntityWaterReflectionFlag(IEntity entity, bool toggle) => SetEntityWaterReflectionFlag(entity.ScriptId, toggle); - public void SetEntityWaterReflectionFlag(int _entity, bool _toggle) + public void SetEntityWaterReflectionFlag(uint _entity, bool _toggle) { unsafe { - if (fn__setEntityWaterReflectionFlag == null) fn__setEntityWaterReflectionFlag = (delegate* unmanaged[Cdecl]) funcTable[0xC34BC448DA29F5E9UL]; + if (fn__setEntityWaterReflectionFlag == null) fn__setEntityWaterReflectionFlag = (delegate* unmanaged[Cdecl]) funcTable[0xC34BC448DA29F5E9UL]; var success = false; fn__setEntityWaterReflectionFlag(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47536,10 +47523,10 @@ public void SetEntityWaterReflectionFlag(int _entity, bool _toggle) } public void SetEntityMirrorReflectionFlag(IEntity entity, bool p1) => SetEntityMirrorReflectionFlag(entity.ScriptId, p1); - public void SetEntityMirrorReflectionFlag(int _entity, bool _p1) + public void SetEntityMirrorReflectionFlag(uint _entity, bool _p1) { unsafe { - if (fn__setEntityMirrorReflectionFlag == null) fn__setEntityMirrorReflectionFlag = (delegate* unmanaged[Cdecl]) funcTable[0xE66377CDDADA4810UL]; + if (fn__setEntityMirrorReflectionFlag == null) fn__setEntityMirrorReflectionFlag = (delegate* unmanaged[Cdecl]) funcTable[0xE66377CDDADA4810UL]; var success = false; fn__setEntityMirrorReflectionFlag(&success, _entity, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47547,10 +47534,10 @@ public void SetEntityMirrorReflectionFlag(int _entity, bool _p1) } public void SetEntityVelocity(IEntity entity, float x, float y, float z) => SetEntityVelocity(entity.ScriptId, x, y, z); - public void SetEntityVelocity(int _entity, float _x, float _y, float _z) + public void SetEntityVelocity(uint _entity, float _x, float _y, float _z) { unsafe { - if (fn__setEntityVelocity == null) fn__setEntityVelocity = (delegate* unmanaged[Cdecl]) funcTable[0x1C99BB7B6E96D16FUL]; + if (fn__setEntityVelocity == null) fn__setEntityVelocity = (delegate* unmanaged[Cdecl]) funcTable[0x1C99BB7B6E96D16FUL]; var success = false; fn__setEntityVelocity(&success, _entity, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); @@ -47558,10 +47545,10 @@ public void SetEntityVelocity(int _entity, float _x, float _y, float _z) } public void SetEntityAngularVelocity(IEntity entity, float x, float y, float z) => SetEntityAngularVelocity(entity.ScriptId, x, y, z); - public void SetEntityAngularVelocity(int _entity, float _x, float _y, float _z) + public void SetEntityAngularVelocity(uint _entity, float _x, float _y, float _z) { unsafe { - if (fn__setEntityAngularVelocity == null) fn__setEntityAngularVelocity = (delegate* unmanaged[Cdecl]) funcTable[0x8339643499D1222EUL]; + if (fn__setEntityAngularVelocity == null) fn__setEntityAngularVelocity = (delegate* unmanaged[Cdecl]) funcTable[0x8339643499D1222EUL]; var success = false; fn__setEntityAngularVelocity(&success, _entity, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); @@ -47569,10 +47556,10 @@ public void SetEntityAngularVelocity(int _entity, float _x, float _y, float _z) } public void SetEntityHasGravity(IEntity entity, bool toggle) => SetEntityHasGravity(entity.ScriptId, toggle); - public void SetEntityHasGravity(int _entity, bool _toggle) + public void SetEntityHasGravity(uint _entity, bool _toggle) { unsafe { - if (fn__setEntityHasGravity == null) fn__setEntityHasGravity = (delegate* unmanaged[Cdecl]) funcTable[0x4A4722448F18EEF5UL]; + if (fn__setEntityHasGravity == null) fn__setEntityHasGravity = (delegate* unmanaged[Cdecl]) funcTable[0x4A4722448F18EEF5UL]; var success = false; fn__setEntityHasGravity(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47580,10 +47567,10 @@ public void SetEntityHasGravity(int _entity, bool _toggle) } public void SetEntityLodDist(IEntity entity, int value) => SetEntityLodDist(entity.ScriptId, value); - public void SetEntityLodDist(int _entity, int _value) + public void SetEntityLodDist(uint _entity, int _value) { unsafe { - if (fn__setEntityLodDist == null) fn__setEntityLodDist = (delegate* unmanaged[Cdecl]) funcTable[0x5927F96A78577363UL]; + if (fn__setEntityLodDist == null) fn__setEntityLodDist = (delegate* unmanaged[Cdecl]) funcTable[0x5927F96A78577363UL]; var success = false; fn__setEntityLodDist(&success, _entity, _value); if (!success) throw new Exception("Native execution failed"); @@ -47591,10 +47578,10 @@ public void SetEntityLodDist(int _entity, int _value) } public int GetEntityLodDist(IEntity entity) => GetEntityLodDist(entity.ScriptId); - public int GetEntityLodDist(int _entity) + public int GetEntityLodDist(uint _entity) { unsafe { - if (fn__getEntityLodDist == null) fn__getEntityLodDist = (delegate* unmanaged[Cdecl]) funcTable[0x4159C2762B5791D6UL]; + if (fn__getEntityLodDist == null) fn__getEntityLodDist = (delegate* unmanaged[Cdecl]) funcTable[0x4159C2762B5791D6UL]; var success = false; var result = fn__getEntityLodDist(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -47603,10 +47590,10 @@ public int GetEntityLodDist(int _entity) } public void SetEntityAlpha(IEntity entity, int alphaLevel, bool skin) => SetEntityAlpha(entity.ScriptId, alphaLevel, skin); - public void SetEntityAlpha(int _entity, int _alphaLevel, bool _skin) + public void SetEntityAlpha(uint _entity, int _alphaLevel, bool _skin) { unsafe { - if (fn__setEntityAlpha == null) fn__setEntityAlpha = (delegate* unmanaged[Cdecl]) funcTable[0x44A0870B7E92D7C0UL]; + if (fn__setEntityAlpha == null) fn__setEntityAlpha = (delegate* unmanaged[Cdecl]) funcTable[0x44A0870B7E92D7C0UL]; var success = false; fn__setEntityAlpha(&success, _entity, _alphaLevel, (byte) (_skin ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47614,10 +47601,10 @@ public void SetEntityAlpha(int _entity, int _alphaLevel, bool _skin) } public int GetEntityAlpha(IEntity entity) => GetEntityAlpha(entity.ScriptId); - public int GetEntityAlpha(int _entity) + public int GetEntityAlpha(uint _entity) { unsafe { - if (fn__getEntityAlpha == null) fn__getEntityAlpha = (delegate* unmanaged[Cdecl]) funcTable[0x5A47B3B5E63E94C6UL]; + if (fn__getEntityAlpha == null) fn__getEntityAlpha = (delegate* unmanaged[Cdecl]) funcTable[0x5A47B3B5E63E94C6UL]; var success = false; var result = fn__getEntityAlpha(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -47626,10 +47613,10 @@ public int GetEntityAlpha(int _entity) } public void ResetEntityAlpha(IEntity entity) => ResetEntityAlpha(entity.ScriptId); - public void ResetEntityAlpha(int _entity) + public void ResetEntityAlpha(uint _entity) { unsafe { - if (fn__resetEntityAlpha == null) fn__resetEntityAlpha = (delegate* unmanaged[Cdecl]) funcTable[0x9B1E824FFBB7027AUL]; + if (fn__resetEntityAlpha == null) fn__resetEntityAlpha = (delegate* unmanaged[Cdecl]) funcTable[0x9B1E824FFBB7027AUL]; var success = false; fn__resetEntityAlpha(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -47637,10 +47624,10 @@ public void ResetEntityAlpha(int _entity) } public void ResetPickupEntityGlow(IEntity entity) => ResetPickupEntityGlow(entity.ScriptId); - public void ResetPickupEntityGlow(int _entity) + public void ResetPickupEntityGlow(uint _entity) { unsafe { - if (fn__resetPickupEntityGlow == null) fn__resetPickupEntityGlow = (delegate* unmanaged[Cdecl]) funcTable[0x490861B88F4FD846UL]; + if (fn__resetPickupEntityGlow == null) fn__resetPickupEntityGlow = (delegate* unmanaged[Cdecl]) funcTable[0x490861B88F4FD846UL]; var success = false; fn__resetPickupEntityGlow(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -47658,10 +47645,10 @@ public void SetPickupCollidesWithProjectiles(int _p0, int _p1) } public void SetEntitySortBias(IEntity entity, float p1) => SetEntitySortBias(entity.ScriptId, p1); - public void SetEntitySortBias(int _entity, float _p1) + public void SetEntitySortBias(uint _entity, float _p1) { unsafe { - if (fn__setEntitySortBias == null) fn__setEntitySortBias = (delegate* unmanaged[Cdecl]) funcTable[0x5C3B791D580E0BC2UL]; + if (fn__setEntitySortBias == null) fn__setEntitySortBias = (delegate* unmanaged[Cdecl]) funcTable[0x5C3B791D580E0BC2UL]; var success = false; fn__setEntitySortBias(&success, _entity, _p1); if (!success) throw new Exception("Native execution failed"); @@ -47669,10 +47656,10 @@ public void SetEntitySortBias(int _entity, float _p1) } public void SetEntityAlwaysPrerender(IEntity entity, bool toggle) => SetEntityAlwaysPrerender(entity.ScriptId, toggle); - public void SetEntityAlwaysPrerender(int _entity, bool _toggle) + public void SetEntityAlwaysPrerender(uint _entity, bool _toggle) { unsafe { - if (fn__setEntityAlwaysPrerender == null) fn__setEntityAlwaysPrerender = (delegate* unmanaged[Cdecl]) funcTable[0xACAD101E1FB66689UL]; + if (fn__setEntityAlwaysPrerender == null) fn__setEntityAlwaysPrerender = (delegate* unmanaged[Cdecl]) funcTable[0xACAD101E1FB66689UL]; var success = false; fn__setEntityAlwaysPrerender(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47680,10 +47667,10 @@ public void SetEntityAlwaysPrerender(int _entity, bool _toggle) } public void SetEntityRenderScorched(IEntity entity, bool toggle) => SetEntityRenderScorched(entity.ScriptId, toggle); - public void SetEntityRenderScorched(int _entity, bool _toggle) + public void SetEntityRenderScorched(uint _entity, bool _toggle) { unsafe { - if (fn__setEntityRenderScorched == null) fn__setEntityRenderScorched = (delegate* unmanaged[Cdecl]) funcTable[0x730F5F8D3F0F2050UL]; + if (fn__setEntityRenderScorched == null) fn__setEntityRenderScorched = (delegate* unmanaged[Cdecl]) funcTable[0x730F5F8D3F0F2050UL]; var success = false; fn__setEntityRenderScorched(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47691,10 +47678,10 @@ public void SetEntityRenderScorched(int _entity, bool _toggle) } public void SetEntityTrafficlightOverride(IEntity entity, int state) => SetEntityTrafficlightOverride(entity.ScriptId, state); - public void SetEntityTrafficlightOverride(int _entity, int _state) + public void SetEntityTrafficlightOverride(uint _entity, int _state) { unsafe { - if (fn__setEntityTrafficlightOverride == null) fn__setEntityTrafficlightOverride = (delegate* unmanaged[Cdecl]) funcTable[0x57C5DB656185EAC4UL]; + if (fn__setEntityTrafficlightOverride == null) fn__setEntityTrafficlightOverride = (delegate* unmanaged[Cdecl]) funcTable[0x57C5DB656185EAC4UL]; var success = false; fn__setEntityTrafficlightOverride(&success, _entity, _state); if (!success) throw new Exception("Native execution failed"); @@ -47702,10 +47689,10 @@ public void SetEntityTrafficlightOverride(int _entity, int _state) } public void SetEntityIsInVehicle(IEntity entity) => SetEntityIsInVehicle(entity.ScriptId); - public void SetEntityIsInVehicle(int _entity) + public void SetEntityIsInVehicle(uint _entity) { unsafe { - if (fn__setEntityIsInVehicle == null) fn__setEntityIsInVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x78E8E3A640178255UL]; + if (fn__setEntityIsInVehicle == null) fn__setEntityIsInVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x78E8E3A640178255UL]; var success = false; fn__setEntityIsInVehicle(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -47782,13 +47769,13 @@ public void RemoveForcedObject(float _x, float _y, float _z, float _p3, uint _mo } } - public void SetEntityNoCollisionEntity(IEntity entity1, int entity2, bool thisFrameOnly) => SetEntityNoCollisionEntity(entity1.ScriptId, entity2, thisFrameOnly); - public void SetEntityNoCollisionEntity(int entity1, IEntity entity2, bool thisFrameOnly) => SetEntityNoCollisionEntity(entity1, entity2.ScriptId, thisFrameOnly); + public void SetEntityNoCollisionEntity(IEntity entity1, uint entity2, bool thisFrameOnly) => SetEntityNoCollisionEntity(entity1.ScriptId, entity2, thisFrameOnly); + public void SetEntityNoCollisionEntity(uint entity1, IEntity entity2, bool thisFrameOnly) => SetEntityNoCollisionEntity(entity1, entity2.ScriptId, thisFrameOnly); public void SetEntityNoCollisionEntity(IEntity entity1, IEntity entity2, bool thisFrameOnly) => SetEntityNoCollisionEntity(entity1.ScriptId, entity2.ScriptId, thisFrameOnly); - public void SetEntityNoCollisionEntity(int _entity1, int _entity2, bool _thisFrameOnly) + public void SetEntityNoCollisionEntity(uint _entity1, uint _entity2, bool _thisFrameOnly) { unsafe { - if (fn__setEntityNoCollisionEntity == null) fn__setEntityNoCollisionEntity = (delegate* unmanaged[Cdecl]) funcTable[0xA53ED5520C07654AUL]; + if (fn__setEntityNoCollisionEntity == null) fn__setEntityNoCollisionEntity = (delegate* unmanaged[Cdecl]) funcTable[0xA53ED5520C07654AUL]; var success = false; fn__setEntityNoCollisionEntity(&success, _entity1, _entity2, (byte) (_thisFrameOnly ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47796,10 +47783,10 @@ public void SetEntityNoCollisionEntity(int _entity1, int _entity2, bool _thisFra } public void SetEntityMotionBlur(IEntity entity, bool toggle) => SetEntityMotionBlur(entity.ScriptId, toggle); - public void SetEntityMotionBlur(int _entity, bool _toggle) + public void SetEntityMotionBlur(uint _entity, bool _toggle) { unsafe { - if (fn__setEntityMotionBlur == null) fn__setEntityMotionBlur = (delegate* unmanaged[Cdecl]) funcTable[0x295D82A8559F9150UL]; + if (fn__setEntityMotionBlur == null) fn__setEntityMotionBlur = (delegate* unmanaged[Cdecl]) funcTable[0x295D82A8559F9150UL]; var success = false; fn__setEntityMotionBlur(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47807,10 +47794,10 @@ public void SetEntityMotionBlur(int _entity, bool _toggle) } public void SetCanAutoVaultOnEntity(IEntity entity, bool toggle) => SetCanAutoVaultOnEntity(entity.ScriptId, toggle); - public void SetCanAutoVaultOnEntity(int _entity, bool _toggle) + public void SetCanAutoVaultOnEntity(uint _entity, bool _toggle) { unsafe { - if (fn__setCanAutoVaultOnEntity == null) fn__setCanAutoVaultOnEntity = (delegate* unmanaged[Cdecl]) funcTable[0xE12ABE5E3A389A6CUL]; + if (fn__setCanAutoVaultOnEntity == null) fn__setCanAutoVaultOnEntity = (delegate* unmanaged[Cdecl]) funcTable[0xE12ABE5E3A389A6CUL]; var success = false; fn__setCanAutoVaultOnEntity(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47818,10 +47805,10 @@ public void SetCanAutoVaultOnEntity(int _entity, bool _toggle) } public void SetCanClimbOnEntity(IEntity entity, bool toggle) => SetCanClimbOnEntity(entity.ScriptId, toggle); - public void SetCanClimbOnEntity(int _entity, bool _toggle) + public void SetCanClimbOnEntity(uint _entity, bool _toggle) { unsafe { - if (fn__setCanClimbOnEntity == null) fn__setCanClimbOnEntity = (delegate* unmanaged[Cdecl]) funcTable[0xA80AE305E0A3044FUL]; + if (fn__setCanClimbOnEntity == null) fn__setCanClimbOnEntity = (delegate* unmanaged[Cdecl]) funcTable[0xA80AE305E0A3044FUL]; var success = false; fn__setCanClimbOnEntity(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47829,10 +47816,10 @@ public void SetCanClimbOnEntity(int _entity, bool _toggle) } public void SetWaitForCollisionsBeforeProbe(IEntity entity, bool toggle) => SetWaitForCollisionsBeforeProbe(entity.ScriptId, toggle); - public void SetWaitForCollisionsBeforeProbe(int _entity, bool _toggle) + public void SetWaitForCollisionsBeforeProbe(uint _entity, bool _toggle) { unsafe { - if (fn__setWaitForCollisionsBeforeProbe == null) fn__setWaitForCollisionsBeforeProbe = (delegate* unmanaged[Cdecl]) funcTable[0xDC6F8601FAF2E893UL]; + if (fn__setWaitForCollisionsBeforeProbe == null) fn__setWaitForCollisionsBeforeProbe = (delegate* unmanaged[Cdecl]) funcTable[0xDC6F8601FAF2E893UL]; var success = false; fn__setWaitForCollisionsBeforeProbe(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47840,10 +47827,10 @@ public void SetWaitForCollisionsBeforeProbe(int _entity, bool _toggle) } public void SetEntityNoweapondecals(IEntity entity, bool p1) => SetEntityNoweapondecals(entity.ScriptId, p1); - public void SetEntityNoweapondecals(int _entity, bool _p1) + public void SetEntityNoweapondecals(uint _entity, bool _p1) { unsafe { - if (fn__setEntityNoweapondecals == null) fn__setEntityNoweapondecals = (delegate* unmanaged[Cdecl]) funcTable[0x2C2E3DC128F44309UL]; + if (fn__setEntityNoweapondecals == null) fn__setEntityNoweapondecals = (delegate* unmanaged[Cdecl]) funcTable[0x2C2E3DC128F44309UL]; var success = false; fn__setEntityNoweapondecals(&success, _entity, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47851,10 +47838,10 @@ public void SetEntityNoweapondecals(int _entity, bool _p1) } public void SetEntityUseMaxDistanceForWaterReflection(IEntity entity, bool p1) => SetEntityUseMaxDistanceForWaterReflection(entity.ScriptId, p1); - public void SetEntityUseMaxDistanceForWaterReflection(int _entity, bool _p1) + public void SetEntityUseMaxDistanceForWaterReflection(uint _entity, bool _p1) { unsafe { - if (fn__setEntityUseMaxDistanceForWaterReflection == null) fn__setEntityUseMaxDistanceForWaterReflection = (delegate* unmanaged[Cdecl]) funcTable[0x1A092BB0C3808B96UL]; + if (fn__setEntityUseMaxDistanceForWaterReflection == null) fn__setEntityUseMaxDistanceForWaterReflection = (delegate* unmanaged[Cdecl]) funcTable[0x1A092BB0C3808B96UL]; var success = false; fn__setEntityUseMaxDistanceForWaterReflection(&success, _entity, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47862,10 +47849,10 @@ public void SetEntityUseMaxDistanceForWaterReflection(int _entity, bool _p1) } public Vector3 GetEntityBoneRotation(IEntity entity, int boneIndex) => GetEntityBoneRotation(entity.ScriptId, boneIndex); - public Vector3 GetEntityBoneRotation(int _entity, int _boneIndex) + public Vector3 GetEntityBoneRotation(uint _entity, int _boneIndex) { unsafe { - if (fn__getEntityBoneRotation == null) fn__getEntityBoneRotation = (delegate* unmanaged[Cdecl]) funcTable[0xCE6294A232D03786UL]; + if (fn__getEntityBoneRotation == null) fn__getEntityBoneRotation = (delegate* unmanaged[Cdecl]) funcTable[0xCE6294A232D03786UL]; var success = false; var result = fn__getEntityBoneRotation(&success, _entity, _boneIndex); if (!success) throw new Exception("Native execution failed"); @@ -47874,10 +47861,10 @@ public Vector3 GetEntityBoneRotation(int _entity, int _boneIndex) } public Vector3 GetEntityBonePostion(IEntity entity, int boneIndex) => GetEntityBonePostion(entity.ScriptId, boneIndex); - public Vector3 GetEntityBonePostion(int _entity, int _boneIndex) + public Vector3 GetEntityBonePostion(uint _entity, int _boneIndex) { unsafe { - if (fn__getEntityBonePostion == null) fn__getEntityBonePostion = (delegate* unmanaged[Cdecl]) funcTable[0x46F8696933A63C9BUL]; + if (fn__getEntityBonePostion == null) fn__getEntityBonePostion = (delegate* unmanaged[Cdecl]) funcTable[0x46F8696933A63C9BUL]; var success = false; var result = fn__getEntityBonePostion(&success, _entity, _boneIndex); if (!success) throw new Exception("Native execution failed"); @@ -47886,10 +47873,10 @@ public Vector3 GetEntityBonePostion(int _entity, int _boneIndex) } public Vector3 GetEntityBoneObjectRotation(IEntity entity, int boneIndex) => GetEntityBoneObjectRotation(entity.ScriptId, boneIndex); - public Vector3 GetEntityBoneObjectRotation(int _entity, int _boneIndex) + public Vector3 GetEntityBoneObjectRotation(uint _entity, int _boneIndex) { unsafe { - if (fn__getEntityBoneObjectRotation == null) fn__getEntityBoneObjectRotation = (delegate* unmanaged[Cdecl]) funcTable[0xBD8D32550E5CEBFEUL]; + if (fn__getEntityBoneObjectRotation == null) fn__getEntityBoneObjectRotation = (delegate* unmanaged[Cdecl]) funcTable[0xBD8D32550E5CEBFEUL]; var success = false; var result = fn__getEntityBoneObjectRotation(&success, _entity, _boneIndex); if (!success) throw new Exception("Native execution failed"); @@ -47898,10 +47885,10 @@ public Vector3 GetEntityBoneObjectRotation(int _entity, int _boneIndex) } public int GetEntityBoneCount(IEntity entity) => GetEntityBoneCount(entity.ScriptId); - public int GetEntityBoneCount(int _entity) + public int GetEntityBoneCount(uint _entity) { unsafe { - if (fn__getEntityBoneCount == null) fn__getEntityBoneCount = (delegate* unmanaged[Cdecl]) funcTable[0xB328DCC3A3AA401BUL]; + if (fn__getEntityBoneCount == null) fn__getEntityBoneCount = (delegate* unmanaged[Cdecl]) funcTable[0xB328DCC3A3AA401BUL]; var success = false; var result = fn__getEntityBoneCount(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -47910,36 +47897,36 @@ public int GetEntityBoneCount(int _entity) } public void EnableEntityBulletCollision(IEntity entity) => EnableEntityBulletCollision(entity.ScriptId); - public void EnableEntityBulletCollision(int _entity) + public void EnableEntityBulletCollision(uint _entity) { unsafe { - if (fn__enableEntityBulletCollision == null) fn__enableEntityBulletCollision = (delegate* unmanaged[Cdecl]) funcTable[0x6CE177D014502E8AUL]; + if (fn__enableEntityBulletCollision == null) fn__enableEntityBulletCollision = (delegate* unmanaged[Cdecl]) funcTable[0x6CE177D014502E8AUL]; var success = false; fn__enableEntityBulletCollision(&success, _entity); if (!success) throw new Exception("Native execution failed"); } } - public void SetEntityCanOnlyBeDamagedByEntity(IEntity entity1, int entity2) => SetEntityCanOnlyBeDamagedByEntity(entity1.ScriptId, entity2); - public void SetEntityCanOnlyBeDamagedByEntity(int entity1, IEntity entity2) => SetEntityCanOnlyBeDamagedByEntity(entity1, entity2.ScriptId); + public void SetEntityCanOnlyBeDamagedByEntity(IEntity entity1, uint entity2) => SetEntityCanOnlyBeDamagedByEntity(entity1.ScriptId, entity2); + public void SetEntityCanOnlyBeDamagedByEntity(uint entity1, IEntity entity2) => SetEntityCanOnlyBeDamagedByEntity(entity1, entity2.ScriptId); public void SetEntityCanOnlyBeDamagedByEntity(IEntity entity1, IEntity entity2) => SetEntityCanOnlyBeDamagedByEntity(entity1.ScriptId, entity2.ScriptId); - public void SetEntityCanOnlyBeDamagedByEntity(int _entity1, int _entity2) + public void SetEntityCanOnlyBeDamagedByEntity(uint _entity1, uint _entity2) { unsafe { - if (fn__setEntityCanOnlyBeDamagedByEntity == null) fn__setEntityCanOnlyBeDamagedByEntity = (delegate* unmanaged[Cdecl]) funcTable[0xB17BC6453F6CF5ACUL]; + if (fn__setEntityCanOnlyBeDamagedByEntity == null) fn__setEntityCanOnlyBeDamagedByEntity = (delegate* unmanaged[Cdecl]) funcTable[0xB17BC6453F6CF5ACUL]; var success = false; fn__setEntityCanOnlyBeDamagedByEntity(&success, _entity1, _entity2); if (!success) throw new Exception("Native execution failed"); } } - public void SetEntityCantCauseCollisionDamagedEntity(IEntity entity1, int entity2) => SetEntityCantCauseCollisionDamagedEntity(entity1.ScriptId, entity2); - public void SetEntityCantCauseCollisionDamagedEntity(int entity1, IEntity entity2) => SetEntityCantCauseCollisionDamagedEntity(entity1, entity2.ScriptId); + public void SetEntityCantCauseCollisionDamagedEntity(IEntity entity1, uint entity2) => SetEntityCantCauseCollisionDamagedEntity(entity1.ScriptId, entity2); + public void SetEntityCantCauseCollisionDamagedEntity(uint entity1, IEntity entity2) => SetEntityCantCauseCollisionDamagedEntity(entity1, entity2.ScriptId); public void SetEntityCantCauseCollisionDamagedEntity(IEntity entity1, IEntity entity2) => SetEntityCantCauseCollisionDamagedEntity(entity1.ScriptId, entity2.ScriptId); - public void SetEntityCantCauseCollisionDamagedEntity(int _entity1, int _entity2) + public void SetEntityCantCauseCollisionDamagedEntity(uint _entity1, uint _entity2) { unsafe { - if (fn__setEntityCantCauseCollisionDamagedEntity == null) fn__setEntityCantCauseCollisionDamagedEntity = (delegate* unmanaged[Cdecl]) funcTable[0x68B562E124CC0AEFUL]; + if (fn__setEntityCantCauseCollisionDamagedEntity == null) fn__setEntityCantCauseCollisionDamagedEntity = (delegate* unmanaged[Cdecl]) funcTable[0x68B562E124CC0AEFUL]; var success = false; fn__setEntityCantCauseCollisionDamagedEntity(&success, _entity1, _entity2); if (!success) throw new Exception("Native execution failed"); @@ -47947,21 +47934,21 @@ public void SetEntityCantCauseCollisionDamagedEntity(int _entity1, int _entity2) } public void SetAllowMigrateToSpectator(IEntity entity, int p1) => SetAllowMigrateToSpectator(entity.ScriptId, p1); - public void SetAllowMigrateToSpectator(int _entity, int _p1) + public void SetAllowMigrateToSpectator(uint _entity, int _p1) { unsafe { - if (fn__setAllowMigrateToSpectator == null) fn__setAllowMigrateToSpectator = (delegate* unmanaged[Cdecl]) funcTable[0x36F32DE87082343EUL]; + if (fn__setAllowMigrateToSpectator == null) fn__setAllowMigrateToSpectator = (delegate* unmanaged[Cdecl]) funcTable[0x36F32DE87082343EUL]; var success = false; fn__setAllowMigrateToSpectator(&success, _entity, _p1); if (!success) throw new Exception("Native execution failed"); } } - public int GetEntityOfTypeAttachedToEntity(IEntity entity, uint modelHash) => GetEntityOfTypeAttachedToEntity(entity.ScriptId, modelHash); - public int GetEntityOfTypeAttachedToEntity(int _entity, uint _modelHash) + public uint GetEntityOfTypeAttachedToEntity(IEntity entity, uint modelHash) => GetEntityOfTypeAttachedToEntity(entity.ScriptId, modelHash); + public uint GetEntityOfTypeAttachedToEntity(uint _entity, uint _modelHash) { unsafe { - if (fn__getEntityOfTypeAttachedToEntity == null) fn__getEntityOfTypeAttachedToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x1F922734E259BD26UL]; + if (fn__getEntityOfTypeAttachedToEntity == null) fn__getEntityOfTypeAttachedToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x1F922734E259BD26UL]; var success = false; var result = fn__getEntityOfTypeAttachedToEntity(&success, _entity, _modelHash); if (!success) throw new Exception("Native execution failed"); @@ -47970,10 +47957,10 @@ public int GetEntityOfTypeAttachedToEntity(int _entity, uint _modelHash) } public void SetPickUpByCargobobDisabled(IEntity entity, bool toggle) => SetPickUpByCargobobDisabled(entity.ScriptId, toggle); - public void SetPickUpByCargobobDisabled(int _entity, bool _toggle) + public void SetPickUpByCargobobDisabled(uint _entity, bool _toggle) { unsafe { - if (fn__setPickUpByCargobobDisabled == null) fn__setPickUpByCargobobDisabled = (delegate* unmanaged[Cdecl]) funcTable[0xD7B80E7C3BEFC396UL]; + if (fn__setPickUpByCargobobDisabled == null) fn__setPickUpByCargobobDisabled = (delegate* unmanaged[Cdecl]) funcTable[0xD7B80E7C3BEFC396UL]; var success = false; fn__setPickUpByCargobobDisabled(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -47981,10 +47968,10 @@ public void SetPickUpByCargobobDisabled(int _entity, bool _toggle) } public void SetDecisionMaker(IPlayer ped, uint name) => SetDecisionMaker(ped.ScriptId, name); - public void SetDecisionMaker(int _ped, uint _name) + public void SetDecisionMaker(uint _ped, uint _name) { unsafe { - if (fn__setDecisionMaker == null) fn__setDecisionMaker = (delegate* unmanaged[Cdecl]) funcTable[0xB604A2942ADED0EEUL]; + if (fn__setDecisionMaker == null) fn__setDecisionMaker = (delegate* unmanaged[Cdecl]) funcTable[0xB604A2942ADED0EEUL]; var success = false; fn__setDecisionMaker(&success, _ped, _name); if (!success) throw new Exception("Native execution failed"); @@ -48033,10 +48020,10 @@ public int AddShockingEventAtPosition(int _eventType, float _x, float _y, float } public int AddShockingEventForEntity(int eventType, IEntity entity, float duration) => AddShockingEventForEntity(eventType, entity.ScriptId, duration); - public int AddShockingEventForEntity(int _eventType, int _entity, float _duration) + public int AddShockingEventForEntity(int _eventType, uint _entity, float _duration) { unsafe { - if (fn__addShockingEventForEntity == null) fn__addShockingEventForEntity = (delegate* unmanaged[Cdecl]) funcTable[0x7FD8F3BE76F89422UL]; + if (fn__addShockingEventForEntity == null) fn__addShockingEventForEntity = (delegate* unmanaged[Cdecl]) funcTable[0x7FD8F3BE76F89422UL]; var success = false; var result = fn__addShockingEventForEntity(&success, _eventType, _entity, _duration); if (!success) throw new Exception("Native execution failed"); @@ -48055,10 +48042,10 @@ public bool IsShockingEventInSphere(int _eventType, float _x, float _y, float _z } } - public bool RemoveShockingEvent(int _event) + public bool RemoveShockingEvent(uint _event) { unsafe { - if (fn__removeShockingEvent == null) fn__removeShockingEvent = (delegate* unmanaged[Cdecl]) funcTable[0x2CDA538C44C6CCE5UL]; + if (fn__removeShockingEvent == null) fn__removeShockingEvent = (delegate* unmanaged[Cdecl]) funcTable[0x2CDA538C44C6CCE5UL]; var success = false; var result = fn__removeShockingEvent(&success, _event); if (!success) throw new Exception("Native execution failed"); @@ -48268,10 +48255,10 @@ public void GetShopPedProp(uint _componentHash, ref int _outProp) } public uint GetHashNameForComponent(IEntity entity, int componentId, int drawableVariant, int textureVariant) => GetHashNameForComponent(entity.ScriptId, componentId, drawableVariant, textureVariant); - public uint GetHashNameForComponent(int _entity, int _componentId, int _drawableVariant, int _textureVariant) + public uint GetHashNameForComponent(uint _entity, int _componentId, int _drawableVariant, int _textureVariant) { unsafe { - if (fn__getHashNameForComponent == null) fn__getHashNameForComponent = (delegate* unmanaged[Cdecl]) funcTable[0x0368B3A838070348UL]; + if (fn__getHashNameForComponent == null) fn__getHashNameForComponent = (delegate* unmanaged[Cdecl]) funcTable[0x0368B3A838070348UL]; var success = false; var result = fn__getHashNameForComponent(&success, _entity, _componentId, _drawableVariant, _textureVariant); if (!success) throw new Exception("Native execution failed"); @@ -48280,10 +48267,10 @@ public uint GetHashNameForComponent(int _entity, int _componentId, int _drawable } public uint GetHashNameForProp(IEntity entity, int componentId, int propIndex, int propTextureIndex) => GetHashNameForProp(entity.ScriptId, componentId, propIndex, propTextureIndex); - public uint GetHashNameForProp(int _entity, int _componentId, int _propIndex, int _propTextureIndex) + public uint GetHashNameForProp(uint _entity, int _componentId, int _propIndex, int _propTextureIndex) { unsafe { - if (fn__getHashNameForProp == null) fn__getHashNameForProp = (delegate* unmanaged[Cdecl]) funcTable[0x5D6160275CAEC8DDUL]; + if (fn__getHashNameForProp == null) fn__getHashNameForProp = (delegate* unmanaged[Cdecl]) funcTable[0x5D6160275CAEC8DDUL]; var success = false; var result = fn__getHashNameForProp(&success, _entity, _componentId, _propIndex, _propTextureIndex); if (!success) throw new Exception("Native execution failed"); @@ -48411,10 +48398,10 @@ public bool IsTagRestricted(uint _componentHash, uint _restrictionTagHash, int _ } public bool DoesCurrentPedComponentHaveRestrictionTag(IPlayer ped, int componentId, uint restrictionTagHash) => DoesCurrentPedComponentHaveRestrictionTag(ped.ScriptId, componentId, restrictionTagHash); - public bool DoesCurrentPedComponentHaveRestrictionTag(int _ped, int _componentId, uint _restrictionTagHash) + public bool DoesCurrentPedComponentHaveRestrictionTag(uint _ped, int _componentId, uint _restrictionTagHash) { unsafe { - if (fn__doesCurrentPedComponentHaveRestrictionTag == null) fn__doesCurrentPedComponentHaveRestrictionTag = (delegate* unmanaged[Cdecl]) funcTable[0x7796B21B76221BC5UL]; + if (fn__doesCurrentPedComponentHaveRestrictionTag == null) fn__doesCurrentPedComponentHaveRestrictionTag = (delegate* unmanaged[Cdecl]) funcTable[0x7796B21B76221BC5UL]; var success = false; var result = fn__doesCurrentPedComponentHaveRestrictionTag(&success, _ped, _componentId, _restrictionTagHash); if (!success) throw new Exception("Native execution failed"); @@ -48423,10 +48410,10 @@ public bool DoesCurrentPedComponentHaveRestrictionTag(int _ped, int _componentId } public bool DoesCurrentPedPropHaveRestrictionTag(IPlayer ped, int componentId, uint restrictionTagHash) => DoesCurrentPedPropHaveRestrictionTag(ped.ScriptId, componentId, restrictionTagHash); - public bool DoesCurrentPedPropHaveRestrictionTag(int _ped, int _componentId, uint _restrictionTagHash) + public bool DoesCurrentPedPropHaveRestrictionTag(uint _ped, int _componentId, uint _restrictionTagHash) { unsafe { - if (fn__doesCurrentPedPropHaveRestrictionTag == null) fn__doesCurrentPedPropHaveRestrictionTag = (delegate* unmanaged[Cdecl]) funcTable[0xD726BAB4554DA580UL]; + if (fn__doesCurrentPedPropHaveRestrictionTag == null) fn__doesCurrentPedPropHaveRestrictionTag = (delegate* unmanaged[Cdecl]) funcTable[0xD726BAB4554DA580UL]; var success = false; var result = fn__doesCurrentPedPropHaveRestrictionTag(&success, _ped, _componentId, _restrictionTagHash); if (!success) throw new Exception("Native execution failed"); @@ -48723,10 +48710,10 @@ public void RemoveScriptFire(int _fireHandle) } public int StartEntityFire(IEntity entity) => StartEntityFire(entity.ScriptId); - public int StartEntityFire(int _entity) + public int StartEntityFire(uint _entity) { unsafe { - if (fn__startEntityFire == null) fn__startEntityFire = (delegate* unmanaged[Cdecl]) funcTable[0xF6A9D9708F6F23DFUL]; + if (fn__startEntityFire == null) fn__startEntityFire = (delegate* unmanaged[Cdecl]) funcTable[0xF6A9D9708F6F23DFUL]; var success = false; var result = fn__startEntityFire(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -48735,10 +48722,10 @@ public int StartEntityFire(int _entity) } public void StopEntityFire(IEntity entity) => StopEntityFire(entity.ScriptId); - public void StopEntityFire(int _entity) + public void StopEntityFire(uint _entity) { unsafe { - if (fn__stopEntityFire == null) fn__stopEntityFire = (delegate* unmanaged[Cdecl]) funcTable[0x7F0DD2EBBB651AFFUL]; + if (fn__stopEntityFire == null) fn__stopEntityFire = (delegate* unmanaged[Cdecl]) funcTable[0x7F0DD2EBBB651AFFUL]; var success = false; fn__stopEntityFire(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -48746,10 +48733,10 @@ public void StopEntityFire(int _entity) } public bool IsEntityOnFire(IEntity entity) => IsEntityOnFire(entity.ScriptId); - public bool IsEntityOnFire(int _entity) + public bool IsEntityOnFire(uint _entity) { unsafe { - if (fn__isEntityOnFire == null) fn__isEntityOnFire = (delegate* unmanaged[Cdecl]) funcTable[0x28D3FED7190D3A0BUL]; + if (fn__isEntityOnFire == null) fn__isEntityOnFire = (delegate* unmanaged[Cdecl]) funcTable[0x28D3FED7190D3A0BUL]; var success = false; var result = fn__isEntityOnFire(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -48812,10 +48799,10 @@ public void AddExplosion(float _x, float _y, float _z, int _explosionType, float } public void AddOwnedExplosion(IPlayer ped, float x, float y, float z, int explosionType, float damageScale, bool isAudible, bool isInvisible, float cameraShake) => AddOwnedExplosion(ped.ScriptId, x, y, z, explosionType, damageScale, isAudible, isInvisible, cameraShake); - public void AddOwnedExplosion(int _ped, float _x, float _y, float _z, int _explosionType, float _damageScale, bool _isAudible, bool _isInvisible, float _cameraShake) + public void AddOwnedExplosion(uint _ped, float _x, float _y, float _z, int _explosionType, float _damageScale, bool _isAudible, bool _isInvisible, float _cameraShake) { unsafe { - if (fn__addOwnedExplosion == null) fn__addOwnedExplosion = (delegate* unmanaged[Cdecl]) funcTable[0x172AA1B624FA1013UL]; + if (fn__addOwnedExplosion == null) fn__addOwnedExplosion = (delegate* unmanaged[Cdecl]) funcTable[0x172AA1B624FA1013UL]; var success = false; fn__addOwnedExplosion(&success, _ped, _x, _y, _z, _explosionType, _damageScale, (byte) (_isAudible ? 1 : 0), (byte) (_isInvisible ? 1 : 0), _cameraShake); if (!success) throw new Exception("Native execution failed"); @@ -48865,10 +48852,10 @@ public bool IsExplosionInSphere(int _explosionType, float _x, float _y, float _z } } - public int GetOwnerOfExplosionInSphere(int _explosionType, float _x, float _y, float _z, float _radius) + public uint GetOwnerOfExplosionInSphere(int _explosionType, float _x, float _y, float _z, float _radius) { unsafe { - if (fn__getOwnerOfExplosionInSphere == null) fn__getOwnerOfExplosionInSphere = (delegate* unmanaged[Cdecl]) funcTable[0xB3CD51E3DB86F176UL]; + if (fn__getOwnerOfExplosionInSphere == null) fn__getOwnerOfExplosionInSphere = (delegate* unmanaged[Cdecl]) funcTable[0xB3CD51E3DB86F176UL]; var success = false; var result = fn__getOwnerOfExplosionInSphere(&success, _explosionType, _x, _y, _z, _radius); if (!success) throw new Exception("Native execution failed"); @@ -48887,10 +48874,10 @@ public bool IsExplosionInAngledArea(int _explosionType, float _x1, float _y1, fl } } - public int GetOwnerOfExplosionInAngledArea(int _explosionType, float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, float _radius) + public uint GetOwnerOfExplosionInAngledArea(int _explosionType, float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, float _radius) { unsafe { - if (fn__getOwnerOfExplosionInAngledArea == null) fn__getOwnerOfExplosionInAngledArea = (delegate* unmanaged[Cdecl]) funcTable[0x14BA4BA137AF6CECUL]; + if (fn__getOwnerOfExplosionInAngledArea == null) fn__getOwnerOfExplosionInAngledArea = (delegate* unmanaged[Cdecl]) funcTable[0x14BA4BA137AF6CECUL]; var success = false; var result = fn__getOwnerOfExplosionInAngledArea(&success, _explosionType, _x1, _y1, _z1, _x2, _y2, _z2, _radius); if (!success) throw new Exception("Native execution failed"); @@ -48903,9 +48890,9 @@ public void BeginTextCommandBusyspinnerOn(string _string) unsafe { if (fn__beginTextCommandBusyspinnerOn == null) fn__beginTextCommandBusyspinnerOn = (delegate* unmanaged[Cdecl]) funcTable[0xABA17D7CE615ADBFUL]; var success = false; - var ptr_string = _string == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_string); + var ptr_string = MemoryUtils.StringToHGlobalUtf8(_string); fn__beginTextCommandBusyspinnerOn(&success, ptr_string); - if (ptr_string != IntPtr.Zero) Marshal.FreeHGlobal(ptr_string); + Marshal.FreeHGlobal(ptr_string); if (!success) throw new Exception("Native execution failed"); } } @@ -49287,15 +49274,15 @@ public void ThefeedUpdateItemTexture(string _txdString1, string _txnString1, str unsafe { if (fn__thefeedUpdateItemTexture == null) fn__thefeedUpdateItemTexture = (delegate* unmanaged[Cdecl]) funcTable[0x317EBA71D7543F52UL]; var success = false; - var ptr_txdString1 = _txdString1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_txdString1); - var ptr_txnString1 = _txnString1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_txnString1); - var ptr_txdString2 = _txdString2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_txdString2); - var ptr_txnString2 = _txnString2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_txnString2); + var ptr_txdString1 = MemoryUtils.StringToHGlobalUtf8(_txdString1); + var ptr_txnString1 = MemoryUtils.StringToHGlobalUtf8(_txnString1); + var ptr_txdString2 = MemoryUtils.StringToHGlobalUtf8(_txdString2); + var ptr_txnString2 = MemoryUtils.StringToHGlobalUtf8(_txnString2); fn__thefeedUpdateItemTexture(&success, ptr_txdString1, ptr_txnString1, ptr_txdString2, ptr_txnString2); - if (ptr_txdString1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_txdString1); - if (ptr_txnString1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_txnString1); - if (ptr_txdString2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_txdString2); - if (ptr_txnString2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_txnString2); + Marshal.FreeHGlobal(ptr_txdString1); + Marshal.FreeHGlobal(ptr_txnString1); + Marshal.FreeHGlobal(ptr_txdString2); + Marshal.FreeHGlobal(ptr_txnString2); if (!success) throw new Exception("Native execution failed"); } } @@ -49305,9 +49292,9 @@ public void BeginTextCommandThefeedPost(string _text) unsafe { if (fn__beginTextCommandThefeedPost == null) fn__beginTextCommandThefeedPost = (delegate* unmanaged[Cdecl]) funcTable[0x202709F4C58A0424UL]; var success = false; - var ptr_text = _text == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_text); + var ptr_text = MemoryUtils.StringToHGlobalUtf8(_text); fn__beginTextCommandThefeedPost(&success, ptr_text); - if (ptr_text != IntPtr.Zero) Marshal.FreeHGlobal(ptr_text); + Marshal.FreeHGlobal(ptr_text); if (!success) throw new Exception("Native execution failed"); } } @@ -49317,13 +49304,13 @@ public int EndTextCommandThefeedPostStats(string _statTitle, int _iconEnum, bool unsafe { if (fn__endTextCommandThefeedPostStats == null) fn__endTextCommandThefeedPostStats = (delegate* unmanaged[Cdecl]) funcTable[0x2B7E9A4EAAA93C89UL]; var success = false; - var ptr_statTitle = _statTitle == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_statTitle); - var ptr_pictureTextureDict = _pictureTextureDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_pictureTextureDict); - var ptr_pictureTextureName = _pictureTextureName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_pictureTextureName); + var ptr_statTitle = MemoryUtils.StringToHGlobalUtf8(_statTitle); + var ptr_pictureTextureDict = MemoryUtils.StringToHGlobalUtf8(_pictureTextureDict); + var ptr_pictureTextureName = MemoryUtils.StringToHGlobalUtf8(_pictureTextureName); var result = fn__endTextCommandThefeedPostStats(&success, ptr_statTitle, _iconEnum, (byte) (_stepVal ? 1 : 0), _barValue, (byte) (_isImportant ? 1 : 0), ptr_pictureTextureDict, ptr_pictureTextureName); - if (ptr_statTitle != IntPtr.Zero) Marshal.FreeHGlobal(ptr_statTitle); - if (ptr_pictureTextureDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_pictureTextureDict); - if (ptr_pictureTextureName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_pictureTextureName); + Marshal.FreeHGlobal(ptr_statTitle); + Marshal.FreeHGlobal(ptr_pictureTextureDict); + Marshal.FreeHGlobal(ptr_pictureTextureName); if (!success) throw new Exception("Native execution failed"); return result; } @@ -49334,15 +49321,15 @@ public int EndTextCommandThefeedPostMessagetext(string _txdName, string _texture unsafe { if (fn__endTextCommandThefeedPostMessagetext == null) fn__endTextCommandThefeedPostMessagetext = (delegate* unmanaged[Cdecl]) funcTable[0x1CCD9A37359072CFUL]; var success = false; - var ptr_txdName = _txdName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_txdName); - var ptr_textureName = _textureName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureName); - var ptr_sender = _sender == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_sender); - var ptr_subject = _subject == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_subject); + var ptr_txdName = MemoryUtils.StringToHGlobalUtf8(_txdName); + var ptr_textureName = MemoryUtils.StringToHGlobalUtf8(_textureName); + var ptr_sender = MemoryUtils.StringToHGlobalUtf8(_sender); + var ptr_subject = MemoryUtils.StringToHGlobalUtf8(_subject); var result = fn__endTextCommandThefeedPostMessagetext(&success, ptr_txdName, ptr_textureName, (byte) (_flash ? 1 : 0), _iconType, ptr_sender, ptr_subject); - if (ptr_txdName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_txdName); - if (ptr_textureName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureName); - if (ptr_sender != IntPtr.Zero) Marshal.FreeHGlobal(ptr_sender); - if (ptr_subject != IntPtr.Zero) Marshal.FreeHGlobal(ptr_subject); + Marshal.FreeHGlobal(ptr_txdName); + Marshal.FreeHGlobal(ptr_textureName); + Marshal.FreeHGlobal(ptr_sender); + Marshal.FreeHGlobal(ptr_subject); if (!success) throw new Exception("Native execution failed"); return result; } @@ -49353,15 +49340,15 @@ public int EndTextCommandThefeedPostMessagetextSubtitleLabel(string _txdName, st unsafe { if (fn__endTextCommandThefeedPostMessagetextSubtitleLabel == null) fn__endTextCommandThefeedPostMessagetextSubtitleLabel = (delegate* unmanaged[Cdecl]) funcTable[0xC6F580E4C94926ACUL]; var success = false; - var ptr_txdName = _txdName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_txdName); - var ptr_textureName = _textureName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureName); - var ptr_sender = _sender == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_sender); - var ptr_subject = _subject == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_subject); + var ptr_txdName = MemoryUtils.StringToHGlobalUtf8(_txdName); + var ptr_textureName = MemoryUtils.StringToHGlobalUtf8(_textureName); + var ptr_sender = MemoryUtils.StringToHGlobalUtf8(_sender); + var ptr_subject = MemoryUtils.StringToHGlobalUtf8(_subject); var result = fn__endTextCommandThefeedPostMessagetextSubtitleLabel(&success, ptr_txdName, ptr_textureName, (byte) (_flash ? 1 : 0), _iconType, ptr_sender, ptr_subject); - if (ptr_txdName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_txdName); - if (ptr_textureName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureName); - if (ptr_sender != IntPtr.Zero) Marshal.FreeHGlobal(ptr_sender); - if (ptr_subject != IntPtr.Zero) Marshal.FreeHGlobal(ptr_subject); + Marshal.FreeHGlobal(ptr_txdName); + Marshal.FreeHGlobal(ptr_textureName); + Marshal.FreeHGlobal(ptr_sender); + Marshal.FreeHGlobal(ptr_subject); if (!success) throw new Exception("Native execution failed"); return result; } @@ -49372,15 +49359,15 @@ public int EndTextCommandThefeedPostMessagetextTu(string _txdName, string _textu unsafe { if (fn__endTextCommandThefeedPostMessagetextTu == null) fn__endTextCommandThefeedPostMessagetextTu = (delegate* unmanaged[Cdecl]) funcTable[0x1E6611149DB3DB6BUL]; var success = false; - var ptr_txdName = _txdName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_txdName); - var ptr_textureName = _textureName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureName); - var ptr_sender = _sender == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_sender); - var ptr_subject = _subject == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_subject); + var ptr_txdName = MemoryUtils.StringToHGlobalUtf8(_txdName); + var ptr_textureName = MemoryUtils.StringToHGlobalUtf8(_textureName); + var ptr_sender = MemoryUtils.StringToHGlobalUtf8(_sender); + var ptr_subject = MemoryUtils.StringToHGlobalUtf8(_subject); var result = fn__endTextCommandThefeedPostMessagetextTu(&success, ptr_txdName, ptr_textureName, (byte) (_flash ? 1 : 0), _iconType, ptr_sender, ptr_subject, _duration); - if (ptr_txdName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_txdName); - if (ptr_textureName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureName); - if (ptr_sender != IntPtr.Zero) Marshal.FreeHGlobal(ptr_sender); - if (ptr_subject != IntPtr.Zero) Marshal.FreeHGlobal(ptr_subject); + Marshal.FreeHGlobal(ptr_txdName); + Marshal.FreeHGlobal(ptr_textureName); + Marshal.FreeHGlobal(ptr_sender); + Marshal.FreeHGlobal(ptr_subject); if (!success) throw new Exception("Native execution failed"); return result; } @@ -49391,17 +49378,17 @@ public int EndTextCommandThefeedPostMessagetextWithCrewTag(string _txdName, stri unsafe { if (fn__endTextCommandThefeedPostMessagetextWithCrewTag == null) fn__endTextCommandThefeedPostMessagetextWithCrewTag = (delegate* unmanaged[Cdecl]) funcTable[0x5CBF7BADE20DB93EUL]; var success = false; - var ptr_txdName = _txdName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_txdName); - var ptr_textureName = _textureName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureName); - var ptr_sender = _sender == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_sender); - var ptr_subject = _subject == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_subject); - var ptr_clanTag = _clanTag == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_clanTag); + var ptr_txdName = MemoryUtils.StringToHGlobalUtf8(_txdName); + var ptr_textureName = MemoryUtils.StringToHGlobalUtf8(_textureName); + var ptr_sender = MemoryUtils.StringToHGlobalUtf8(_sender); + var ptr_subject = MemoryUtils.StringToHGlobalUtf8(_subject); + var ptr_clanTag = MemoryUtils.StringToHGlobalUtf8(_clanTag); var result = fn__endTextCommandThefeedPostMessagetextWithCrewTag(&success, ptr_txdName, ptr_textureName, (byte) (_flash ? 1 : 0), _iconType, ptr_sender, ptr_subject, _duration, ptr_clanTag); - if (ptr_txdName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_txdName); - if (ptr_textureName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureName); - if (ptr_sender != IntPtr.Zero) Marshal.FreeHGlobal(ptr_sender); - if (ptr_subject != IntPtr.Zero) Marshal.FreeHGlobal(ptr_subject); - if (ptr_clanTag != IntPtr.Zero) Marshal.FreeHGlobal(ptr_clanTag); + Marshal.FreeHGlobal(ptr_txdName); + Marshal.FreeHGlobal(ptr_textureName); + Marshal.FreeHGlobal(ptr_sender); + Marshal.FreeHGlobal(ptr_subject); + Marshal.FreeHGlobal(ptr_clanTag); if (!success) throw new Exception("Native execution failed"); return result; } @@ -49412,17 +49399,17 @@ public int EndTextCommandThefeedPostMessagetextWithCrewTagAndAdditionalIcon(stri unsafe { if (fn__endTextCommandThefeedPostMessagetextWithCrewTagAndAdditionalIcon == null) fn__endTextCommandThefeedPostMessagetextWithCrewTagAndAdditionalIcon = (delegate* unmanaged[Cdecl]) funcTable[0x531B84E7DA981FB6UL]; var success = false; - var ptr_txdName = _txdName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_txdName); - var ptr_textureName = _textureName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureName); - var ptr_sender = _sender == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_sender); - var ptr_subject = _subject == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_subject); - var ptr_clanTag = _clanTag == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_clanTag); + var ptr_txdName = MemoryUtils.StringToHGlobalUtf8(_txdName); + var ptr_textureName = MemoryUtils.StringToHGlobalUtf8(_textureName); + var ptr_sender = MemoryUtils.StringToHGlobalUtf8(_sender); + var ptr_subject = MemoryUtils.StringToHGlobalUtf8(_subject); + var ptr_clanTag = MemoryUtils.StringToHGlobalUtf8(_clanTag); var result = fn__endTextCommandThefeedPostMessagetextWithCrewTagAndAdditionalIcon(&success, ptr_txdName, ptr_textureName, (byte) (_flash ? 1 : 0), _iconType1, ptr_sender, ptr_subject, _duration, ptr_clanTag, _iconType2, _p9); - if (ptr_txdName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_txdName); - if (ptr_textureName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureName); - if (ptr_sender != IntPtr.Zero) Marshal.FreeHGlobal(ptr_sender); - if (ptr_subject != IntPtr.Zero) Marshal.FreeHGlobal(ptr_subject); - if (ptr_clanTag != IntPtr.Zero) Marshal.FreeHGlobal(ptr_clanTag); + Marshal.FreeHGlobal(ptr_txdName); + Marshal.FreeHGlobal(ptr_textureName); + Marshal.FreeHGlobal(ptr_sender); + Marshal.FreeHGlobal(ptr_subject); + Marshal.FreeHGlobal(ptr_clanTag); if (!success) throw new Exception("Native execution failed"); return result; } @@ -49466,13 +49453,13 @@ public int EndTextCommandThefeedPostAward(string _textureDict, string _textureNa unsafe { if (fn__endTextCommandThefeedPostAward == null) fn__endTextCommandThefeedPostAward = (delegate* unmanaged[Cdecl]) funcTable[0xAA295B6F28BD587DUL]; var success = false; - var ptr_textureDict = _textureDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureDict); - var ptr_textureName = _textureName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureName); - var ptr_titleLabel = _titleLabel == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_titleLabel); + var ptr_textureDict = MemoryUtils.StringToHGlobalUtf8(_textureDict); + var ptr_textureName = MemoryUtils.StringToHGlobalUtf8(_textureName); + var ptr_titleLabel = MemoryUtils.StringToHGlobalUtf8(_titleLabel); var result = fn__endTextCommandThefeedPostAward(&success, ptr_textureDict, ptr_textureName, _rpBonus, _colorOverlay, ptr_titleLabel); - if (ptr_textureDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureDict); - if (ptr_textureName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureName); - if (ptr_titleLabel != IntPtr.Zero) Marshal.FreeHGlobal(ptr_titleLabel); + Marshal.FreeHGlobal(ptr_textureDict); + Marshal.FreeHGlobal(ptr_textureName); + Marshal.FreeHGlobal(ptr_titleLabel); if (!success) throw new Exception("Native execution failed"); return result; } @@ -49497,10 +49484,10 @@ public int EndTextCommandThefeedPostCrewtagWithGameName(bool _p0, bool _p1, ref if (fn__endTextCommandThefeedPostCrewtagWithGameName == null) fn__endTextCommandThefeedPostCrewtagWithGameName = (delegate* unmanaged[Cdecl]) funcTable[0x137BC35589E34E1EUL]; var success = false; var ref_p2 = _p2; - var ptr_playerName = _playerName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_playerName); + var ptr_playerName = MemoryUtils.StringToHGlobalUtf8(_playerName); var result = fn__endTextCommandThefeedPostCrewtagWithGameName(&success, (byte) (_p0 ? 1 : 0), (byte) (_p1 ? 1 : 0), &ref_p2, _p3, (byte) (_isLeader ? 1 : 0), (byte) (_unk0 ? 1 : 0), _clanDesc, ptr_playerName, _R, _G, _B); _p2 = ref_p2; - if (ptr_playerName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_playerName); + Marshal.FreeHGlobal(ptr_playerName); if (!success) throw new Exception("Native execution failed"); return result; } @@ -49511,11 +49498,11 @@ public int EndTextCommandThefeedPostUnlock(string _gxtLabel1, int _p1, string _g unsafe { if (fn__endTextCommandThefeedPostUnlock == null) fn__endTextCommandThefeedPostUnlock = (delegate* unmanaged[Cdecl]) funcTable[0x33EE12743CCD6343UL]; var success = false; - var ptr_gxtLabel1 = _gxtLabel1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_gxtLabel1); - var ptr_gxtLabel2 = _gxtLabel2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_gxtLabel2); + var ptr_gxtLabel1 = MemoryUtils.StringToHGlobalUtf8(_gxtLabel1); + var ptr_gxtLabel2 = MemoryUtils.StringToHGlobalUtf8(_gxtLabel2); var result = fn__endTextCommandThefeedPostUnlock(&success, ptr_gxtLabel1, _p1, ptr_gxtLabel2); - if (ptr_gxtLabel1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_gxtLabel1); - if (ptr_gxtLabel2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_gxtLabel2); + Marshal.FreeHGlobal(ptr_gxtLabel1); + Marshal.FreeHGlobal(ptr_gxtLabel2); if (!success) throw new Exception("Native execution failed"); return result; } @@ -49526,11 +49513,11 @@ public int EndTextCommandThefeedPostUnlockTu(string _gxtLabel1, int _p1, string unsafe { if (fn__endTextCommandThefeedPostUnlockTu == null) fn__endTextCommandThefeedPostUnlockTu = (delegate* unmanaged[Cdecl]) funcTable[0xC8F3AAF93D0600BFUL]; var success = false; - var ptr_gxtLabel1 = _gxtLabel1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_gxtLabel1); - var ptr_gxtLabel2 = _gxtLabel2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_gxtLabel2); + var ptr_gxtLabel1 = MemoryUtils.StringToHGlobalUtf8(_gxtLabel1); + var ptr_gxtLabel2 = MemoryUtils.StringToHGlobalUtf8(_gxtLabel2); var result = fn__endTextCommandThefeedPostUnlockTu(&success, ptr_gxtLabel1, _p1, ptr_gxtLabel2, _p3); - if (ptr_gxtLabel1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_gxtLabel1); - if (ptr_gxtLabel2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_gxtLabel2); + Marshal.FreeHGlobal(ptr_gxtLabel1); + Marshal.FreeHGlobal(ptr_gxtLabel2); if (!success) throw new Exception("Native execution failed"); return result; } @@ -49563,13 +49550,13 @@ public int EndTextCommandThefeedPostCrewRankupWithLiteralFlag(string _p0, string unsafe { if (fn__endTextCommandThefeedPostCrewRankupWithLiteralFlag == null) fn__endTextCommandThefeedPostCrewRankupWithLiteralFlag = (delegate* unmanaged[Cdecl]) funcTable[0x8EFCCF6EC66D85E4UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); var result = fn__endTextCommandThefeedPostCrewRankupWithLiteralFlag(&success, ptr_p0, ptr_p1, ptr_p2, (byte) (_p3 ? 1 : 0), (byte) (_p4 ? 1 : 0)); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p2); if (!success) throw new Exception("Native execution failed"); return result; } @@ -49580,15 +49567,15 @@ public int EndTextCommandThefeedPostVersusTu(string _txdName1, string _textureNa unsafe { if (fn__endTextCommandThefeedPostVersusTu == null) fn__endTextCommandThefeedPostVersusTu = (delegate* unmanaged[Cdecl]) funcTable[0xB6871B0555B02996UL]; var success = false; - var ptr_txdName1 = _txdName1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_txdName1); - var ptr_textureName1 = _textureName1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureName1); - var ptr_txdName2 = _txdName2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_txdName2); - var ptr_textureName2 = _textureName2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textureName2); + var ptr_txdName1 = MemoryUtils.StringToHGlobalUtf8(_txdName1); + var ptr_textureName1 = MemoryUtils.StringToHGlobalUtf8(_textureName1); + var ptr_txdName2 = MemoryUtils.StringToHGlobalUtf8(_txdName2); + var ptr_textureName2 = MemoryUtils.StringToHGlobalUtf8(_textureName2); var result = fn__endTextCommandThefeedPostVersusTu(&success, ptr_txdName1, ptr_textureName1, _count1, ptr_txdName2, ptr_textureName2, _count2, _hudColor1, _hudColor2); - if (ptr_txdName1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_txdName1); - if (ptr_textureName1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureName1); - if (ptr_txdName2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_txdName2); - if (ptr_textureName2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textureName2); + Marshal.FreeHGlobal(ptr_txdName1); + Marshal.FreeHGlobal(ptr_textureName1); + Marshal.FreeHGlobal(ptr_txdName2); + Marshal.FreeHGlobal(ptr_textureName2); if (!success) throw new Exception("Native execution failed"); return result; } @@ -49599,9 +49586,9 @@ public int EndTextCommandThefeedPostReplay(int _type, int _image, string _text) unsafe { if (fn__endTextCommandThefeedPostReplay == null) fn__endTextCommandThefeedPostReplay = (delegate* unmanaged[Cdecl]) funcTable[0xD202B92CBF1D816FUL]; var success = false; - var ptr_text = _text == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_text); + var ptr_text = MemoryUtils.StringToHGlobalUtf8(_text); var result = fn__endTextCommandThefeedPostReplay(&success, _type, _image, ptr_text); - if (ptr_text != IntPtr.Zero) Marshal.FreeHGlobal(ptr_text); + Marshal.FreeHGlobal(ptr_text); if (!success) throw new Exception("Native execution failed"); return result; } @@ -49612,11 +49599,11 @@ public int EndTextCommandThefeedPostReplayInput(int _type, string _button, strin unsafe { if (fn__endTextCommandThefeedPostReplayInput == null) fn__endTextCommandThefeedPostReplayInput = (delegate* unmanaged[Cdecl]) funcTable[0xDD6CB2CCE7C2735CUL]; var success = false; - var ptr_button = _button == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_button); - var ptr_text = _text == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_text); + var ptr_button = MemoryUtils.StringToHGlobalUtf8(_button); + var ptr_text = MemoryUtils.StringToHGlobalUtf8(_text); var result = fn__endTextCommandThefeedPostReplayInput(&success, _type, ptr_button, ptr_text); - if (ptr_button != IntPtr.Zero) Marshal.FreeHGlobal(ptr_button); - if (ptr_text != IntPtr.Zero) Marshal.FreeHGlobal(ptr_text); + Marshal.FreeHGlobal(ptr_button); + Marshal.FreeHGlobal(ptr_text); if (!success) throw new Exception("Native execution failed"); return result; } @@ -49627,9 +49614,9 @@ public void BeginTextCommandPrint(string _GxtEntry) unsafe { if (fn__beginTextCommandPrint == null) fn__beginTextCommandPrint = (delegate* unmanaged[Cdecl]) funcTable[0xB87A37EEB7FAA67DUL]; var success = false; - var ptr_GxtEntry = _GxtEntry == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_GxtEntry); + var ptr_GxtEntry = MemoryUtils.StringToHGlobalUtf8(_GxtEntry); fn__beginTextCommandPrint(&success, ptr_GxtEntry); - if (ptr_GxtEntry != IntPtr.Zero) Marshal.FreeHGlobal(ptr_GxtEntry); + Marshal.FreeHGlobal(ptr_GxtEntry); if (!success) throw new Exception("Native execution failed"); } } @@ -49649,9 +49636,9 @@ public void BeginTextCommandIsMessageDisplayed(string _text) unsafe { if (fn__beginTextCommandIsMessageDisplayed == null) fn__beginTextCommandIsMessageDisplayed = (delegate* unmanaged[Cdecl]) funcTable[0x853648FD1063A213UL]; var success = false; - var ptr_text = _text == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_text); + var ptr_text = MemoryUtils.StringToHGlobalUtf8(_text); fn__beginTextCommandIsMessageDisplayed(&success, ptr_text); - if (ptr_text != IntPtr.Zero) Marshal.FreeHGlobal(ptr_text); + Marshal.FreeHGlobal(ptr_text); if (!success) throw new Exception("Native execution failed"); } } @@ -49672,9 +49659,9 @@ public void BeginTextCommandDisplayText(string _text) unsafe { if (fn__beginTextCommandDisplayText == null) fn__beginTextCommandDisplayText = (delegate* unmanaged[Cdecl]) funcTable[0x25FBB336DF1804CBUL]; var success = false; - var ptr_text = _text == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_text); + var ptr_text = MemoryUtils.StringToHGlobalUtf8(_text); fn__beginTextCommandDisplayText(&success, ptr_text); - if (ptr_text != IntPtr.Zero) Marshal.FreeHGlobal(ptr_text); + Marshal.FreeHGlobal(ptr_text); if (!success) throw new Exception("Native execution failed"); } } @@ -49694,9 +49681,9 @@ public void BeginTextCommandGetScreenWidthOfDisplayText(string _text) unsafe { if (fn__beginTextCommandGetScreenWidthOfDisplayText == null) fn__beginTextCommandGetScreenWidthOfDisplayText = (delegate* unmanaged[Cdecl]) funcTable[0x54CE8AC98E120CABUL]; var success = false; - var ptr_text = _text == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_text); + var ptr_text = MemoryUtils.StringToHGlobalUtf8(_text); fn__beginTextCommandGetScreenWidthOfDisplayText(&success, ptr_text); - if (ptr_text != IntPtr.Zero) Marshal.FreeHGlobal(ptr_text); + Marshal.FreeHGlobal(ptr_text); if (!success) throw new Exception("Native execution failed"); } } @@ -49717,9 +49704,9 @@ public void BeginTextCommandGetNumberOfLinesForString(string _entry) unsafe { if (fn__beginTextCommandGetNumberOfLinesForString == null) fn__beginTextCommandGetNumberOfLinesForString = (delegate* unmanaged[Cdecl]) funcTable[0x521FB041D93DD0E4UL]; var success = false; - var ptr_entry = _entry == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_entry); + var ptr_entry = MemoryUtils.StringToHGlobalUtf8(_entry); fn__beginTextCommandGetNumberOfLinesForString(&success, ptr_entry); - if (ptr_entry != IntPtr.Zero) Marshal.FreeHGlobal(ptr_entry); + Marshal.FreeHGlobal(ptr_entry); if (!success) throw new Exception("Native execution failed"); } } @@ -49740,9 +49727,9 @@ public void BeginTextCommandDisplayHelp(string _inputType) unsafe { if (fn__beginTextCommandDisplayHelp == null) fn__beginTextCommandDisplayHelp = (delegate* unmanaged[Cdecl]) funcTable[0x8509B634FBE7DA11UL]; var success = false; - var ptr_inputType = _inputType == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_inputType); + var ptr_inputType = MemoryUtils.StringToHGlobalUtf8(_inputType); fn__beginTextCommandDisplayHelp(&success, ptr_inputType); - if (ptr_inputType != IntPtr.Zero) Marshal.FreeHGlobal(ptr_inputType); + Marshal.FreeHGlobal(ptr_inputType); if (!success) throw new Exception("Native execution failed"); } } @@ -49762,9 +49749,9 @@ public void BeginTextCommandIsThisHelpMessageBeingDisplayed(string _labelName) unsafe { if (fn__beginTextCommandIsThisHelpMessageBeingDisplayed == null) fn__beginTextCommandIsThisHelpMessageBeingDisplayed = (delegate* unmanaged[Cdecl]) funcTable[0x0A24DA3A41B718F5UL]; var success = false; - var ptr_labelName = _labelName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_labelName); + var ptr_labelName = MemoryUtils.StringToHGlobalUtf8(_labelName); fn__beginTextCommandIsThisHelpMessageBeingDisplayed(&success, ptr_labelName); - if (ptr_labelName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_labelName); + Marshal.FreeHGlobal(ptr_labelName); if (!success) throw new Exception("Native execution failed"); } } @@ -49785,9 +49772,9 @@ public void BeginTextCommandSetBlipName(string _textLabel) unsafe { if (fn__beginTextCommandSetBlipName == null) fn__beginTextCommandSetBlipName = (delegate* unmanaged[Cdecl]) funcTable[0xF9113A30DE5C6670UL]; var success = false; - var ptr_textLabel = _textLabel == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textLabel); + var ptr_textLabel = MemoryUtils.StringToHGlobalUtf8(_textLabel); fn__beginTextCommandSetBlipName(&success, ptr_textLabel); - if (ptr_textLabel != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textLabel); + Marshal.FreeHGlobal(ptr_textLabel); if (!success) throw new Exception("Native execution failed"); } } @@ -49807,9 +49794,9 @@ public void BeginTextCommandAddDirectlyToPreviousBriefs(string _p0) unsafe { if (fn__beginTextCommandAddDirectlyToPreviousBriefs == null) fn__beginTextCommandAddDirectlyToPreviousBriefs = (delegate* unmanaged[Cdecl]) funcTable[0x23D69E0465570028UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__beginTextCommandAddDirectlyToPreviousBriefs(&success, ptr_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -49829,9 +49816,9 @@ public void BeginTextCommandClearPrint(string _text) unsafe { if (fn__beginTextCommandClearPrint == null) fn__beginTextCommandClearPrint = (delegate* unmanaged[Cdecl]) funcTable[0xE124FA80A759019CUL]; var success = false; - var ptr_text = _text == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_text); + var ptr_text = MemoryUtils.StringToHGlobalUtf8(_text); fn__beginTextCommandClearPrint(&success, ptr_text); - if (ptr_text != IntPtr.Zero) Marshal.FreeHGlobal(ptr_text); + Marshal.FreeHGlobal(ptr_text); if (!success) throw new Exception("Native execution failed"); } } @@ -49851,9 +49838,9 @@ public void BeginTextCommandOverrideButtonText(string _gxtEntry) unsafe { if (fn__beginTextCommandOverrideButtonText == null) fn__beginTextCommandOverrideButtonText = (delegate* unmanaged[Cdecl]) funcTable[0x8F9EE5687F8EECCDUL]; var success = false; - var ptr_gxtEntry = _gxtEntry == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_gxtEntry); + var ptr_gxtEntry = MemoryUtils.StringToHGlobalUtf8(_gxtEntry); fn__beginTextCommandOverrideButtonText(&success, ptr_gxtEntry); - if (ptr_gxtEntry != IntPtr.Zero) Marshal.FreeHGlobal(ptr_gxtEntry); + Marshal.FreeHGlobal(ptr_gxtEntry); if (!success) throw new Exception("Native execution failed"); } } @@ -49893,9 +49880,9 @@ public void AddTextComponentSubstringTextLabel(string _labelName) unsafe { if (fn__addTextComponentSubstringTextLabel == null) fn__addTextComponentSubstringTextLabel = (delegate* unmanaged[Cdecl]) funcTable[0xC63CD5D2920ACBE7UL]; var success = false; - var ptr_labelName = _labelName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_labelName); + var ptr_labelName = MemoryUtils.StringToHGlobalUtf8(_labelName); fn__addTextComponentSubstringTextLabel(&success, ptr_labelName); - if (ptr_labelName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_labelName); + Marshal.FreeHGlobal(ptr_labelName); if (!success) throw new Exception("Native execution failed"); } } @@ -49925,9 +49912,9 @@ public void AddTextComponentSubstringPlayerName(string _text) unsafe { if (fn__addTextComponentSubstringPlayerName == null) fn__addTextComponentSubstringPlayerName = (delegate* unmanaged[Cdecl]) funcTable[0x6C188BE134E074AAUL]; var success = false; - var ptr_text = _text == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_text); + var ptr_text = MemoryUtils.StringToHGlobalUtf8(_text); fn__addTextComponentSubstringPlayerName(&success, ptr_text); - if (ptr_text != IntPtr.Zero) Marshal.FreeHGlobal(ptr_text); + Marshal.FreeHGlobal(ptr_text); if (!success) throw new Exception("Native execution failed"); } } @@ -49957,9 +49944,9 @@ public void AddTextComponentSubstringPhoneNumber(string _p0, int _p1) unsafe { if (fn__addTextComponentSubstringPhoneNumber == null) fn__addTextComponentSubstringPhoneNumber = (delegate* unmanaged[Cdecl]) funcTable[0x761B77454205A61DUL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__addTextComponentSubstringPhoneNumber(&success, ptr_p0, _p1); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -49969,9 +49956,9 @@ public void AddTextComponentSubstringWebsite(string _website) unsafe { if (fn__addTextComponentSubstringWebsite == null) fn__addTextComponentSubstringWebsite = (delegate* unmanaged[Cdecl]) funcTable[0x94CF4AC034C9C986UL]; var success = false; - var ptr_website = _website == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_website); + var ptr_website = MemoryUtils.StringToHGlobalUtf8(_website); fn__addTextComponentSubstringWebsite(&success, ptr_website); - if (ptr_website != IntPtr.Zero) Marshal.FreeHGlobal(ptr_website); + Marshal.FreeHGlobal(ptr_website); if (!success) throw new Exception("Native execution failed"); } } @@ -49981,9 +49968,9 @@ public void AddTextComponentSubstringKeyboardDisplay(string _string) unsafe { if (fn__addTextComponentSubstringKeyboardDisplay == null) fn__addTextComponentSubstringKeyboardDisplay = (delegate* unmanaged[Cdecl]) funcTable[0x5F68520888E69014UL]; var success = false; - var ptr_string = _string == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_string); + var ptr_string = MemoryUtils.StringToHGlobalUtf8(_string); fn__addTextComponentSubstringKeyboardDisplay(&success, ptr_string); - if (ptr_string != IntPtr.Zero) Marshal.FreeHGlobal(ptr_string); + Marshal.FreeHGlobal(ptr_string); if (!success) throw new Exception("Native execution failed"); } } @@ -50003,12 +49990,12 @@ public string GetCharacterFromAudioConversationFilename(string _text, int _posit unsafe { if (fn__getCharacterFromAudioConversationFilename == null) fn__getCharacterFromAudioConversationFilename = (delegate* unmanaged[Cdecl]) funcTable[0x169BD9382084C8C0UL]; var success = false; - var ptr_text = _text == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_text); + var ptr_text = MemoryUtils.StringToHGlobalUtf8(_text); var result = fn__getCharacterFromAudioConversationFilename(&success, ptr_text, _position, _length); - if (ptr_text != IntPtr.Zero) Marshal.FreeHGlobal(ptr_text); + Marshal.FreeHGlobal(ptr_text); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -50018,12 +50005,12 @@ public string GetCharacterFromAudioConversationFilenameWithByteLimit(string _tex unsafe { if (fn__getCharacterFromAudioConversationFilenameWithByteLimit == null) fn__getCharacterFromAudioConversationFilenameWithByteLimit = (delegate* unmanaged[Cdecl]) funcTable[0xB2798643312205C5UL]; var success = false; - var ptr_text = _text == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_text); + var ptr_text = MemoryUtils.StringToHGlobalUtf8(_text); var result = fn__getCharacterFromAudioConversationFilenameWithByteLimit(&success, ptr_text, _position, _length, _maxLength); - if (ptr_text != IntPtr.Zero) Marshal.FreeHGlobal(ptr_text); + Marshal.FreeHGlobal(ptr_text); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -50033,12 +50020,12 @@ public string GetCharacterFromAudioConversationFilenameBytes(string _text, int _ unsafe { if (fn__getCharacterFromAudioConversationFilenameBytes == null) fn__getCharacterFromAudioConversationFilenameBytes = (delegate* unmanaged[Cdecl]) funcTable[0xCE94AEBA5D82908AUL]; var success = false; - var ptr_text = _text == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_text); + var ptr_text = MemoryUtils.StringToHGlobalUtf8(_text); var result = fn__getCharacterFromAudioConversationFilenameBytes(&success, ptr_text, _startPosition, _endPosition); - if (ptr_text != IntPtr.Zero) Marshal.FreeHGlobal(ptr_text); + Marshal.FreeHGlobal(ptr_text); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -50048,12 +50035,12 @@ public string GetFilenameForAudioConversation(string _labelName) unsafe { if (fn__getFilenameForAudioConversation == null) fn__getFilenameForAudioConversation = (delegate* unmanaged[Cdecl]) funcTable[0x7B5280EBA9840C72UL]; var success = false; - var ptr_labelName = _labelName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_labelName); + var ptr_labelName = MemoryUtils.StringToHGlobalUtf8(_labelName); var result = fn__getFilenameForAudioConversation(&success, ptr_labelName); - if (ptr_labelName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_labelName); + Marshal.FreeHGlobal(ptr_labelName); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -50093,9 +50080,9 @@ public void ClearThisPrint(string _p0) unsafe { if (fn__clearThisPrint == null) fn__clearThisPrint = (delegate* unmanaged[Cdecl]) funcTable[0xCF708001E1E536DDUL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__clearThisPrint(&success, ptr_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -50115,9 +50102,9 @@ public bool DoesTextBlockExist(string _gxt) unsafe { if (fn__doesTextBlockExist == null) fn__doesTextBlockExist = (delegate* unmanaged[Cdecl]) funcTable[0x1C7302E725259789UL]; var success = false; - var ptr_gxt = _gxt == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_gxt); + var ptr_gxt = MemoryUtils.StringToHGlobalUtf8(_gxt); var result = fn__doesTextBlockExist(&success, ptr_gxt); - if (ptr_gxt != IntPtr.Zero) Marshal.FreeHGlobal(ptr_gxt); + Marshal.FreeHGlobal(ptr_gxt); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -50128,9 +50115,9 @@ public void RequestAdditionalText(string _gxt, int _slot) unsafe { if (fn__requestAdditionalText == null) fn__requestAdditionalText = (delegate* unmanaged[Cdecl]) funcTable[0x71A78003C8E71424UL]; var success = false; - var ptr_gxt = _gxt == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_gxt); + var ptr_gxt = MemoryUtils.StringToHGlobalUtf8(_gxt); fn__requestAdditionalText(&success, ptr_gxt, _slot); - if (ptr_gxt != IntPtr.Zero) Marshal.FreeHGlobal(ptr_gxt); + Marshal.FreeHGlobal(ptr_gxt); if (!success) throw new Exception("Native execution failed"); } } @@ -50140,9 +50127,9 @@ public void RequestAdditionalTextForDlc(string _gxt, int _slot) unsafe { if (fn__requestAdditionalTextForDlc == null) fn__requestAdditionalTextForDlc = (delegate* unmanaged[Cdecl]) funcTable[0x6009F9F1AE90D8A6UL]; var success = false; - var ptr_gxt = _gxt == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_gxt); + var ptr_gxt = MemoryUtils.StringToHGlobalUtf8(_gxt); fn__requestAdditionalTextForDlc(&success, ptr_gxt, _slot); - if (ptr_gxt != IntPtr.Zero) Marshal.FreeHGlobal(ptr_gxt); + Marshal.FreeHGlobal(ptr_gxt); if (!success) throw new Exception("Native execution failed"); } } @@ -50184,9 +50171,9 @@ public bool HasThisAdditionalTextLoaded(string _gxt, int _slot) unsafe { if (fn__hasThisAdditionalTextLoaded == null) fn__hasThisAdditionalTextLoaded = (delegate* unmanaged[Cdecl]) funcTable[0xADBF060E2B30C5BCUL]; var success = false; - var ptr_gxt = _gxt == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_gxt); + var ptr_gxt = MemoryUtils.StringToHGlobalUtf8(_gxt); var result = fn__hasThisAdditionalTextLoaded(&success, ptr_gxt, _slot); - if (ptr_gxt != IntPtr.Zero) Marshal.FreeHGlobal(ptr_gxt); + Marshal.FreeHGlobal(ptr_gxt); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -50208,9 +50195,9 @@ public bool DoesTextLabelExist(string _gxt) unsafe { if (fn__doesTextLabelExist == null) fn__doesTextLabelExist = (delegate* unmanaged[Cdecl]) funcTable[0xAC09CA973C564252UL]; var success = false; - var ptr_gxt = _gxt == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_gxt); + var ptr_gxt = MemoryUtils.StringToHGlobalUtf8(_gxt); var result = fn__doesTextLabelExist(&success, ptr_gxt); - if (ptr_gxt != IntPtr.Zero) Marshal.FreeHGlobal(ptr_gxt); + Marshal.FreeHGlobal(ptr_gxt); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -50221,12 +50208,12 @@ public string GetFirstNCharactersOfLiteralString(string _string, int _length) unsafe { if (fn__getFirstNCharactersOfLiteralString == null) fn__getFirstNCharactersOfLiteralString = (delegate* unmanaged[Cdecl]) funcTable[0x98C3CF913D895111UL]; var success = false; - var ptr_string = _string == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_string); + var ptr_string = MemoryUtils.StringToHGlobalUtf8(_string); var result = fn__getFirstNCharactersOfLiteralString(&success, ptr_string, _length); - if (ptr_string != IntPtr.Zero) Marshal.FreeHGlobal(ptr_string); + Marshal.FreeHGlobal(ptr_string); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -50236,9 +50223,9 @@ public int GetLengthOfStringWithThisTextLabel(string _gxt) unsafe { if (fn__getLengthOfStringWithThisTextLabel == null) fn__getLengthOfStringWithThisTextLabel = (delegate* unmanaged[Cdecl]) funcTable[0x801BD273D3A23F74UL]; var success = false; - var ptr_gxt = _gxt == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_gxt); + var ptr_gxt = MemoryUtils.StringToHGlobalUtf8(_gxt); var result = fn__getLengthOfStringWithThisTextLabel(&success, ptr_gxt); - if (ptr_gxt != IntPtr.Zero) Marshal.FreeHGlobal(ptr_gxt); + Marshal.FreeHGlobal(ptr_gxt); if (!success) throw new Exception("Native execution failed"); return result; } @@ -50249,9 +50236,9 @@ public int GetLengthOfLiteralString(string _string) unsafe { if (fn__getLengthOfLiteralString == null) fn__getLengthOfLiteralString = (delegate* unmanaged[Cdecl]) funcTable[0xF030907CCBB8A9FDUL]; var success = false; - var ptr_string = _string == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_string); + var ptr_string = MemoryUtils.StringToHGlobalUtf8(_string); var result = fn__getLengthOfLiteralString(&success, ptr_string); - if (ptr_string != IntPtr.Zero) Marshal.FreeHGlobal(ptr_string); + Marshal.FreeHGlobal(ptr_string); if (!success) throw new Exception("Native execution failed"); return result; } @@ -50262,9 +50249,9 @@ public int GetLengthOfLiteralStringInBytes(string _string) unsafe { if (fn__getLengthOfLiteralStringInBytes == null) fn__getLengthOfLiteralStringInBytes = (delegate* unmanaged[Cdecl]) funcTable[0x43E4111189E54F0EUL]; var success = false; - var ptr_string = _string == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_string); + var ptr_string = MemoryUtils.StringToHGlobalUtf8(_string); var result = fn__getLengthOfLiteralStringInBytes(&success, ptr_string); - if (ptr_string != IntPtr.Zero) Marshal.FreeHGlobal(ptr_string); + Marshal.FreeHGlobal(ptr_string); if (!success) throw new Exception("Native execution failed"); return result; } @@ -50277,8 +50264,8 @@ public string GetStreetNameFromHashKey(uint _hash) var success = false; var result = fn__getStreetNameFromHashKey(&success, _hash); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -50865,9 +50852,9 @@ public bool RegisterNamedRendertarget(string _name, bool _p1) unsafe { if (fn__registerNamedRendertarget == null) fn__registerNamedRendertarget = (delegate* unmanaged[Cdecl]) funcTable[0x57D9C12635E25CE3UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var result = fn__registerNamedRendertarget(&success, ptr_name, (byte) (_p1 ? 1 : 0)); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -50878,9 +50865,9 @@ public bool IsNamedRendertargetRegistered(string _name) unsafe { if (fn__isNamedRendertargetRegistered == null) fn__isNamedRendertargetRegistered = (delegate* unmanaged[Cdecl]) funcTable[0x78DCDC15C9F116B4UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var result = fn__isNamedRendertargetRegistered(&success, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -50891,9 +50878,9 @@ public bool ReleaseNamedRendertarget(string _name) unsafe { if (fn__releaseNamedRendertarget == null) fn__releaseNamedRendertarget = (delegate* unmanaged[Cdecl]) funcTable[0xE9F6FFE837354DD4UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var result = fn__releaseNamedRendertarget(&success, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -50914,9 +50901,9 @@ public int GetNamedRendertargetRenderId(string _name) unsafe { if (fn__getNamedRendertargetRenderId == null) fn__getNamedRendertargetRenderId = (delegate* unmanaged[Cdecl]) funcTable[0x1A6478B61C6BDC3BUL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var result = fn__getNamedRendertargetRenderId(&success, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); return result; } @@ -51096,10 +51083,10 @@ public int GetBlipInfoIdType(int _blip) } } - public int GetBlipInfoIdEntityIndex(int _blip) + public uint GetBlipInfoIdEntityIndex(int _blip) { unsafe { - if (fn__getBlipInfoIdEntityIndex == null) fn__getBlipInfoIdEntityIndex = (delegate* unmanaged[Cdecl]) funcTable[0x4BA4E2553AFEDC2CUL]; + if (fn__getBlipInfoIdEntityIndex == null) fn__getBlipInfoIdEntityIndex = (delegate* unmanaged[Cdecl]) funcTable[0x4BA4E2553AFEDC2CUL]; var success = false; var result = fn__getBlipInfoIdEntityIndex(&success, _blip); if (!success) throw new Exception("Native execution failed"); @@ -51119,10 +51106,10 @@ public int GetBlipInfoIdPickupIndex(int _blip) } public int GetBlipFromEntity(IEntity entity) => GetBlipFromEntity(entity.ScriptId); - public int GetBlipFromEntity(int _entity) + public int GetBlipFromEntity(uint _entity) { unsafe { - if (fn__getBlipFromEntity == null) fn__getBlipFromEntity = (delegate* unmanaged[Cdecl]) funcTable[0xBC8DBDCA2436F7E8UL]; + if (fn__getBlipFromEntity == null) fn__getBlipFromEntity = (delegate* unmanaged[Cdecl]) funcTable[0xBC8DBDCA2436F7E8UL]; var success = false; var result = fn__getBlipFromEntity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -51153,10 +51140,10 @@ public int AddBlipForArea(float _x, float _y, float _z, float _width, float _hei } public int AddBlipForEntity(IEntity entity) => AddBlipForEntity(entity.ScriptId); - public int AddBlipForEntity(int _entity) + public int AddBlipForEntity(uint _entity) { unsafe { - if (fn__addBlipForEntity == null) fn__addBlipForEntity = (delegate* unmanaged[Cdecl]) funcTable[0x5CDE92C702A8FCE7UL]; + if (fn__addBlipForEntity == null) fn__addBlipForEntity = (delegate* unmanaged[Cdecl]) funcTable[0x5CDE92C702A8FCE7UL]; var success = false; var result = fn__addBlipForEntity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -51273,18 +51260,18 @@ public void SetBlipNameFromTextFile(int _blip, string _gxtEntry) unsafe { if (fn__setBlipNameFromTextFile == null) fn__setBlipNameFromTextFile = (delegate* unmanaged[Cdecl]) funcTable[0xEAA0FFE120D92784UL]; var success = false; - var ptr_gxtEntry = _gxtEntry == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_gxtEntry); + var ptr_gxtEntry = MemoryUtils.StringToHGlobalUtf8(_gxtEntry); fn__setBlipNameFromTextFile(&success, _blip, ptr_gxtEntry); - if (ptr_gxtEntry != IntPtr.Zero) Marshal.FreeHGlobal(ptr_gxtEntry); + Marshal.FreeHGlobal(ptr_gxtEntry); if (!success) throw new Exception("Native execution failed"); } } public void SetBlipNameToPlayerName(int blip, IPlayer player) => SetBlipNameToPlayerName(blip, player.ScriptId); - public void SetBlipNameToPlayerName(int _blip, int _player) + public void SetBlipNameToPlayerName(int _blip, uint _player) { unsafe { - if (fn__setBlipNameToPlayerName == null) fn__setBlipNameToPlayerName = (delegate* unmanaged[Cdecl]) funcTable[0x127DE7B20C60A6A3UL]; + if (fn__setBlipNameToPlayerName == null) fn__setBlipNameToPlayerName = (delegate* unmanaged[Cdecl]) funcTable[0x127DE7B20C60A6A3UL]; var success = false; fn__setBlipNameToPlayerName(&success, _blip, _player); if (!success) throw new Exception("Native execution failed"); @@ -51908,10 +51895,10 @@ public void SetBlipShowCone(int _blip, bool _toggle, int _hudColorIndex) } public void RemoveCopBlipFromPed(IPlayer ped) => RemoveCopBlipFromPed(ped.ScriptId); - public void RemoveCopBlipFromPed(int _ped) + public void RemoveCopBlipFromPed(uint _ped) { unsafe { - if (fn__removeCopBlipFromPed == null) fn__removeCopBlipFromPed = (delegate* unmanaged[Cdecl]) funcTable[0xC594B315EDF2D4AFUL]; + if (fn__removeCopBlipFromPed == null) fn__removeCopBlipFromPed = (delegate* unmanaged[Cdecl]) funcTable[0xC594B315EDF2D4AFUL]; var success = false; fn__removeCopBlipFromPed(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -52307,9 +52294,9 @@ public void DisplayHelpTextThisFrame(string _message, bool _p1) unsafe { if (fn__displayHelpTextThisFrame == null) fn__displayHelpTextThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x960C9FF8F616E41CUL]; var success = false; - var ptr_message = _message == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_message); + var ptr_message = MemoryUtils.StringToHGlobalUtf8(_message); fn__displayHelpTextThisFrame(&success, ptr_message, (byte) (_p1 ? 1 : 0)); - if (ptr_message != IntPtr.Zero) Marshal.FreeHGlobal(ptr_message); + Marshal.FreeHGlobal(ptr_message); if (!success) throw new Exception("Native execution failed"); } } @@ -52567,10 +52554,10 @@ public void ToggleStealthRadar(bool _toggle) } public void SetMinimapInSpectatorMode(bool toggle, IPlayer ped) => SetMinimapInSpectatorMode(toggle, ped.ScriptId); - public void SetMinimapInSpectatorMode(bool _toggle, int _ped) + public void SetMinimapInSpectatorMode(bool _toggle, uint _ped) { unsafe { - if (fn__setMinimapInSpectatorMode == null) fn__setMinimapInSpectatorMode = (delegate* unmanaged[Cdecl]) funcTable[0x1A5CD7752DD28CD3UL]; + if (fn__setMinimapInSpectatorMode == null) fn__setMinimapInSpectatorMode = (delegate* unmanaged[Cdecl]) funcTable[0x1A5CD7752DD28CD3UL]; var success = false; fn__setMinimapInSpectatorMode(&success, (byte) (_toggle ? 1 : 0), _ped); if (!success) throw new Exception("Native execution failed"); @@ -52582,9 +52569,9 @@ public void SetMissionName(bool _p0, string _name) unsafe { if (fn__setMissionName == null) fn__setMissionName = (delegate* unmanaged[Cdecl]) funcTable[0x5F28ECF5FC84772FUL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__setMissionName(&success, (byte) (_p0 ? 1 : 0), ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -52594,9 +52581,9 @@ public void SetMissionNameForUgcMission(bool _p0, string _name) unsafe { if (fn__setMissionNameForUgcMission == null) fn__setMissionNameForUgcMission = (delegate* unmanaged[Cdecl]) funcTable[0xE45087D85F468BC2UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__setMissionNameForUgcMission(&success, (byte) (_p0 ? 1 : 0), ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -52606,23 +52593,23 @@ public void SetDescriptionForUgcMissionEightStrings(bool _p0, string _p1, string unsafe { if (fn__setDescriptionForUgcMissionEightStrings == null) fn__setDescriptionForUgcMissionEightStrings = (delegate* unmanaged[Cdecl]) funcTable[0x817B86108EB94E51UL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); - var ptr_p3 = _p3 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p3); - var ptr_p4 = _p4 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p4); - var ptr_p5 = _p5 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p5); - var ptr_p6 = _p6 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p6); - var ptr_p7 = _p7 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p7); - var ptr_p8 = _p8 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p8); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p3 = MemoryUtils.StringToHGlobalUtf8(_p3); + var ptr_p4 = MemoryUtils.StringToHGlobalUtf8(_p4); + var ptr_p5 = MemoryUtils.StringToHGlobalUtf8(_p5); + var ptr_p6 = MemoryUtils.StringToHGlobalUtf8(_p6); + var ptr_p7 = MemoryUtils.StringToHGlobalUtf8(_p7); + var ptr_p8 = MemoryUtils.StringToHGlobalUtf8(_p8); fn__setDescriptionForUgcMissionEightStrings(&success, (byte) (_p0 ? 1 : 0), ptr_p1, ptr_p2, ptr_p3, ptr_p4, ptr_p5, ptr_p6, ptr_p7, ptr_p8); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); - if (ptr_p3 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p3); - if (ptr_p4 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p4); - if (ptr_p5 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p5); - if (ptr_p6 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p6); - if (ptr_p7 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p7); - if (ptr_p8 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p8); + Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p3); + Marshal.FreeHGlobal(ptr_p4); + Marshal.FreeHGlobal(ptr_p5); + Marshal.FreeHGlobal(ptr_p6); + Marshal.FreeHGlobal(ptr_p7); + Marshal.FreeHGlobal(ptr_p8); if (!success) throw new Exception("Native execution failed"); } } @@ -53021,10 +53008,10 @@ public void SetFloatingHelpTextWorldPosition(int _hudIndex, float _x, float _y, } public void SetFloatingHelpTextToEntity(int hudIndex, IEntity entity, float offsetX, float offsetY) => SetFloatingHelpTextToEntity(hudIndex, entity.ScriptId, offsetX, offsetY); - public void SetFloatingHelpTextToEntity(int _hudIndex, int _entity, float _offsetX, float _offsetY) + public void SetFloatingHelpTextToEntity(int _hudIndex, uint _entity, float _offsetX, float _offsetY) { unsafe { - if (fn__setFloatingHelpTextToEntity == null) fn__setFloatingHelpTextToEntity = (delegate* unmanaged[Cdecl]) funcTable[0xB094BC1DB4018240UL]; + if (fn__setFloatingHelpTextToEntity == null) fn__setFloatingHelpTextToEntity = (delegate* unmanaged[Cdecl]) funcTable[0xB094BC1DB4018240UL]; var success = false; fn__setFloatingHelpTextToEntity(&success, _hudIndex, _entity, _offsetX, _offsetY); if (!success) throw new Exception("Native execution failed"); @@ -53052,16 +53039,16 @@ public void ClearFloatingHelp(int _hudIndex, bool _p1) } public void CreateMpGamerTagWithCrewColor(IPlayer player, string username, bool pointedClanTag, bool isRockstarClan, string clanTag, int clanFlag, int r, int g, int b) => CreateMpGamerTagWithCrewColor(player.ScriptId, username, pointedClanTag, isRockstarClan, clanTag, clanFlag, r, g, b); - public void CreateMpGamerTagWithCrewColor(int _player, string _username, bool _pointedClanTag, bool _isRockstarClan, string _clanTag, int _clanFlag, int _r, int _g, int _b) + public void CreateMpGamerTagWithCrewColor(uint _player, string _username, bool _pointedClanTag, bool _isRockstarClan, string _clanTag, int _clanFlag, int _r, int _g, int _b) { unsafe { - if (fn__createMpGamerTagWithCrewColor == null) fn__createMpGamerTagWithCrewColor = (delegate* unmanaged[Cdecl]) funcTable[0x6DD05E9D83EFA4C9UL]; + if (fn__createMpGamerTagWithCrewColor == null) fn__createMpGamerTagWithCrewColor = (delegate* unmanaged[Cdecl]) funcTable[0x6DD05E9D83EFA4C9UL]; var success = false; - var ptr_username = _username == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_username); - var ptr_clanTag = _clanTag == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_clanTag); + var ptr_username = MemoryUtils.StringToHGlobalUtf8(_username); + var ptr_clanTag = MemoryUtils.StringToHGlobalUtf8(_clanTag); fn__createMpGamerTagWithCrewColor(&success, _player, ptr_username, (byte) (_pointedClanTag ? 1 : 0), (byte) (_isRockstarClan ? 1 : 0), ptr_clanTag, _clanFlag, _r, _g, _b); - if (ptr_username != IntPtr.Zero) Marshal.FreeHGlobal(ptr_username); - if (ptr_clanTag != IntPtr.Zero) Marshal.FreeHGlobal(ptr_clanTag); + Marshal.FreeHGlobal(ptr_username); + Marshal.FreeHGlobal(ptr_clanTag); if (!success) throw new Exception("Native execution failed"); } } @@ -53078,16 +53065,16 @@ public bool IsMpGamerTagMovieActive() } public int CreateFakeMpGamerTag(IPlayer ped, string username, bool pointedClanTag, bool isRockstarClan, string clanTag, int clanFlag) => CreateFakeMpGamerTag(ped.ScriptId, username, pointedClanTag, isRockstarClan, clanTag, clanFlag); - public int CreateFakeMpGamerTag(int _ped, string _username, bool _pointedClanTag, bool _isRockstarClan, string _clanTag, int _clanFlag) + public int CreateFakeMpGamerTag(uint _ped, string _username, bool _pointedClanTag, bool _isRockstarClan, string _clanTag, int _clanFlag) { unsafe { - if (fn__createFakeMpGamerTag == null) fn__createFakeMpGamerTag = (delegate* unmanaged[Cdecl]) funcTable[0xBFEFE3321A3F5015UL]; + if (fn__createFakeMpGamerTag == null) fn__createFakeMpGamerTag = (delegate* unmanaged[Cdecl]) funcTable[0xBFEFE3321A3F5015UL]; var success = false; - var ptr_username = _username == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_username); - var ptr_clanTag = _clanTag == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_clanTag); + var ptr_username = MemoryUtils.StringToHGlobalUtf8(_username); + var ptr_clanTag = MemoryUtils.StringToHGlobalUtf8(_clanTag); var result = fn__createFakeMpGamerTag(&success, _ped, ptr_username, (byte) (_pointedClanTag ? 1 : 0), (byte) (_isRockstarClan ? 1 : 0), ptr_clanTag, _clanFlag); - if (ptr_username != IntPtr.Zero) Marshal.FreeHGlobal(ptr_username); - if (ptr_clanTag != IntPtr.Zero) Marshal.FreeHGlobal(ptr_clanTag); + Marshal.FreeHGlobal(ptr_username); + Marshal.FreeHGlobal(ptr_clanTag); if (!success) throw new Exception("Native execution failed"); return result; } @@ -53230,9 +53217,9 @@ public void SetMpGamerTagName(int _gamerTagId, string _string) unsafe { if (fn__setMpGamerTagName == null) fn__setMpGamerTagName = (delegate* unmanaged[Cdecl]) funcTable[0xDEA2B8283BAA3944UL]; var success = false; - var ptr_string = _string == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_string); + var ptr_string = MemoryUtils.StringToHGlobalUtf8(_string); fn__setMpGamerTagName(&success, _gamerTagId, ptr_string); - if (ptr_string != IntPtr.Zero) Marshal.FreeHGlobal(ptr_string); + Marshal.FreeHGlobal(ptr_string); if (!success) throw new Exception("Native execution failed"); } } @@ -53253,9 +53240,9 @@ public void SetMpGamerTagBigText(int _gamerTagId, string _string) unsafe { if (fn__setMpGamerTagBigText == null) fn__setMpGamerTagBigText = (delegate* unmanaged[Cdecl]) funcTable[0x7B7723747CCB55B6UL]; var success = false; - var ptr_string = _string == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_string); + var ptr_string = MemoryUtils.StringToHGlobalUtf8(_string); fn__setMpGamerTagBigText(&success, _gamerTagId, ptr_string); - if (ptr_string != IntPtr.Zero) Marshal.FreeHGlobal(ptr_string); + Marshal.FreeHGlobal(ptr_string); if (!success) throw new Exception("Native execution failed"); } } @@ -53319,15 +53306,15 @@ public void SetWarningMessage(string _titleMsg, int _flags, string _promptMsg, b unsafe { if (fn__setWarningMessage == null) fn__setWarningMessage = (delegate* unmanaged[Cdecl]) funcTable[0x7B1776B3B53F8D74UL]; var success = false; - var ptr_titleMsg = _titleMsg == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_titleMsg); - var ptr_promptMsg = _promptMsg == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_promptMsg); - var ptr_p5 = _p5 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p5); - var ptr_p6 = _p6 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p6); + var ptr_titleMsg = MemoryUtils.StringToHGlobalUtf8(_titleMsg); + var ptr_promptMsg = MemoryUtils.StringToHGlobalUtf8(_promptMsg); + var ptr_p5 = MemoryUtils.StringToHGlobalUtf8(_p5); + var ptr_p6 = MemoryUtils.StringToHGlobalUtf8(_p6); fn__setWarningMessage(&success, ptr_titleMsg, _flags, ptr_promptMsg, (byte) (_p3 ? 1 : 0), _p4, ptr_p5, ptr_p6, (byte) (_showBackground ? 1 : 0), _errorCode); - if (ptr_titleMsg != IntPtr.Zero) Marshal.FreeHGlobal(ptr_titleMsg); - if (ptr_promptMsg != IntPtr.Zero) Marshal.FreeHGlobal(ptr_promptMsg); - if (ptr_p5 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p5); - if (ptr_p6 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p6); + Marshal.FreeHGlobal(ptr_titleMsg); + Marshal.FreeHGlobal(ptr_promptMsg); + Marshal.FreeHGlobal(ptr_p5); + Marshal.FreeHGlobal(ptr_p6); if (!success) throw new Exception("Native execution failed"); } } @@ -53337,15 +53324,15 @@ public void SetWarningMessageWithHeader(string _entryHeader, string _entryLine1, unsafe { if (fn__setWarningMessageWithHeader == null) fn__setWarningMessageWithHeader = (delegate* unmanaged[Cdecl]) funcTable[0xDC38CC1E35B6A5D7UL]; var success = false; - var ptr_entryHeader = _entryHeader == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_entryHeader); - var ptr_entryLine1 = _entryLine1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_entryLine1); - var ptr_entryLine2 = _entryLine2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_entryLine2); + var ptr_entryHeader = MemoryUtils.StringToHGlobalUtf8(_entryHeader); + var ptr_entryLine1 = MemoryUtils.StringToHGlobalUtf8(_entryLine1); + var ptr_entryLine2 = MemoryUtils.StringToHGlobalUtf8(_entryLine2); var ref_showBackground = _showBackground; var ref_p7 = _p7; fn__setWarningMessageWithHeader(&success, ptr_entryHeader, ptr_entryLine1, _instructionalKey, ptr_entryLine2, (byte) (_p4 ? 1 : 0), _p5, &ref_showBackground, &ref_p7, (byte) (_p8 ? 1 : 0), _p9); - if (ptr_entryHeader != IntPtr.Zero) Marshal.FreeHGlobal(ptr_entryHeader); - if (ptr_entryLine1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_entryLine1); - if (ptr_entryLine2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_entryLine2); + Marshal.FreeHGlobal(ptr_entryHeader); + Marshal.FreeHGlobal(ptr_entryLine1); + Marshal.FreeHGlobal(ptr_entryLine2); _showBackground = ref_showBackground; _p7 = ref_p7; if (!success) throw new Exception("Native execution failed"); @@ -53357,17 +53344,17 @@ public void SetWarningMessageWithHeaderAndSubstringFlags(string _entryHeader, st unsafe { if (fn__setWarningMessageWithHeaderAndSubstringFlags == null) fn__setWarningMessageWithHeaderAndSubstringFlags = (delegate* unmanaged[Cdecl]) funcTable[0x701919482C74B5ABUL]; var success = false; - var ptr_entryHeader = _entryHeader == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_entryHeader); - var ptr_entryLine1 = _entryLine1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_entryLine1); - var ptr_entryLine2 = _entryLine2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_entryLine2); - var ptr_additionalTextInfoLine1 = _additionalTextInfoLine1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_additionalTextInfoLine1); - var ptr_additionalTextInfoLine2 = _additionalTextInfoLine2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_additionalTextInfoLine2); + var ptr_entryHeader = MemoryUtils.StringToHGlobalUtf8(_entryHeader); + var ptr_entryLine1 = MemoryUtils.StringToHGlobalUtf8(_entryLine1); + var ptr_entryLine2 = MemoryUtils.StringToHGlobalUtf8(_entryLine2); + var ptr_additionalTextInfoLine1 = MemoryUtils.StringToHGlobalUtf8(_additionalTextInfoLine1); + var ptr_additionalTextInfoLine2 = MemoryUtils.StringToHGlobalUtf8(_additionalTextInfoLine2); fn__setWarningMessageWithHeaderAndSubstringFlags(&success, ptr_entryHeader, ptr_entryLine1, _instructionalKey, ptr_entryLine2, (byte) (_p4 ? 1 : 0), _p5, _additionalIntInfo, ptr_additionalTextInfoLine1, ptr_additionalTextInfoLine2, (byte) (_showBackground ? 1 : 0), _errorCode); - if (ptr_entryHeader != IntPtr.Zero) Marshal.FreeHGlobal(ptr_entryHeader); - if (ptr_entryLine1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_entryLine1); - if (ptr_entryLine2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_entryLine2); - if (ptr_additionalTextInfoLine1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_additionalTextInfoLine1); - if (ptr_additionalTextInfoLine2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_additionalTextInfoLine2); + Marshal.FreeHGlobal(ptr_entryHeader); + Marshal.FreeHGlobal(ptr_entryLine1); + Marshal.FreeHGlobal(ptr_entryLine2); + Marshal.FreeHGlobal(ptr_additionalTextInfoLine1); + Marshal.FreeHGlobal(ptr_additionalTextInfoLine2); if (!success) throw new Exception("Native execution failed"); } } @@ -53377,15 +53364,15 @@ public void SetWarningMessageWithHeaderExtended(string _entryHeader, string _ent unsafe { if (fn__setWarningMessageWithHeaderExtended == null) fn__setWarningMessageWithHeaderExtended = (delegate* unmanaged[Cdecl]) funcTable[0x38B55259C2E078EDUL]; var success = false; - var ptr_entryHeader = _entryHeader == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_entryHeader); - var ptr_entryLine1 = _entryLine1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_entryLine1); - var ptr_entryLine2 = _entryLine2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_entryLine2); + var ptr_entryHeader = MemoryUtils.StringToHGlobalUtf8(_entryHeader); + var ptr_entryLine1 = MemoryUtils.StringToHGlobalUtf8(_entryLine1); + var ptr_entryLine2 = MemoryUtils.StringToHGlobalUtf8(_entryLine2); var ref_p6 = _p6; var ref_p7 = _p7; fn__setWarningMessageWithHeaderExtended(&success, ptr_entryHeader, ptr_entryLine1, _flags, ptr_entryLine2, (byte) (_p4 ? 1 : 0), _p5, &ref_p6, &ref_p7, (byte) (_showBg ? 1 : 0), _p9, _p10); - if (ptr_entryHeader != IntPtr.Zero) Marshal.FreeHGlobal(ptr_entryHeader); - if (ptr_entryLine1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_entryLine1); - if (ptr_entryLine2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_entryLine2); + Marshal.FreeHGlobal(ptr_entryHeader); + Marshal.FreeHGlobal(ptr_entryLine1); + Marshal.FreeHGlobal(ptr_entryLine2); _p6 = ref_p6; _p7 = ref_p7; if (!success) throw new Exception("Native execution failed"); @@ -53397,17 +53384,17 @@ public void SetWarningMessageWithHeaderAndSubstringFlagsExtended(string _labelTi unsafe { if (fn__setWarningMessageWithHeaderAndSubstringFlagsExtended == null) fn__setWarningMessageWithHeaderAndSubstringFlagsExtended = (delegate* unmanaged[Cdecl]) funcTable[0x15803FEC3B9A872BUL]; var success = false; - var ptr_labelTitle = _labelTitle == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_labelTitle); - var ptr_labelMessage = _labelMessage == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_labelMessage); - var ptr_labelMessage2 = _labelMessage2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_labelMessage2); - var ptr_p8 = _p8 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p8); - var ptr_p9 = _p9 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p9); + var ptr_labelTitle = MemoryUtils.StringToHGlobalUtf8(_labelTitle); + var ptr_labelMessage = MemoryUtils.StringToHGlobalUtf8(_labelMessage); + var ptr_labelMessage2 = MemoryUtils.StringToHGlobalUtf8(_labelMessage2); + var ptr_p8 = MemoryUtils.StringToHGlobalUtf8(_p8); + var ptr_p9 = MemoryUtils.StringToHGlobalUtf8(_p9); fn__setWarningMessageWithHeaderAndSubstringFlagsExtended(&success, ptr_labelTitle, ptr_labelMessage, _p2, _p3, ptr_labelMessage2, (byte) (_p5 ? 1 : 0), _p6, _p7, ptr_p8, ptr_p9, (byte) (_background ? 1 : 0), _errorCode); - if (ptr_labelTitle != IntPtr.Zero) Marshal.FreeHGlobal(ptr_labelTitle); - if (ptr_labelMessage != IntPtr.Zero) Marshal.FreeHGlobal(ptr_labelMessage); - if (ptr_labelMessage2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_labelMessage2); - if (ptr_p8 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p8); - if (ptr_p9 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p9); + Marshal.FreeHGlobal(ptr_labelTitle); + Marshal.FreeHGlobal(ptr_labelMessage); + Marshal.FreeHGlobal(ptr_labelMessage2); + Marshal.FreeHGlobal(ptr_p8); + Marshal.FreeHGlobal(ptr_p9); if (!success) throw new Exception("Native execution failed"); } } @@ -53428,9 +53415,9 @@ public bool SetWarningMessageOptionItems(int _index, string _name, int _cash, in unsafe { if (fn__setWarningMessageOptionItems == null) fn__setWarningMessageOptionItems = (delegate* unmanaged[Cdecl]) funcTable[0x0C5A80A9E096D529UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var result = fn__setWarningMessageOptionItems(&success, _index, ptr_name, _cash, _rp, _lvl, _colour); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -53712,9 +53699,9 @@ public void ForceScriptedGfxWhenFrontendActive(string _p0) unsafe { if (fn__forceScriptedGfxWhenFrontendActive == null) fn__forceScriptedGfxWhenFrontendActive = (delegate* unmanaged[Cdecl]) funcTable[0x2162C446DFDF38FDUL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__forceScriptedGfxWhenFrontendActive(&success, ptr_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -54116,10 +54103,10 @@ public void ClearPedInPauseMenu() } public void GivePedToPauseMenu(IPlayer ped, int p1) => GivePedToPauseMenu(ped.ScriptId, p1); - public void GivePedToPauseMenu(int _ped, int _p1) + public void GivePedToPauseMenu(uint _ped, int _p1) { unsafe { - if (fn__givePedToPauseMenu == null) fn__givePedToPauseMenu = (delegate* unmanaged[Cdecl]) funcTable[0xAC0BFBDC3BE00E14UL]; + if (fn__givePedToPauseMenu == null) fn__givePedToPauseMenu = (delegate* unmanaged[Cdecl]) funcTable[0xAC0BFBDC3BE00E14UL]; var success = false; fn__givePedToPauseMenu(&success, _ped, _p1); if (!success) throw new Exception("Native execution failed"); @@ -54203,9 +54190,9 @@ public void SetSocialClubTour(string _name) unsafe { if (fn__setSocialClubTour == null) fn__setSocialClubTour = (delegate* unmanaged[Cdecl]) funcTable[0x9E778248D6685FE0UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__setSocialClubTour(&success, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -54323,10 +54310,10 @@ public void FlagPlayerContextInTournament(bool _toggle) } public void SetPedHasAiBlip(IPlayer ped, bool hasCone) => SetPedHasAiBlip(ped.ScriptId, hasCone); - public void SetPedHasAiBlip(int _ped, bool _hasCone) + public void SetPedHasAiBlip(uint _ped, bool _hasCone) { unsafe { - if (fn__setPedHasAiBlip == null) fn__setPedHasAiBlip = (delegate* unmanaged[Cdecl]) funcTable[0xD30C50DF888D58B5UL]; + if (fn__setPedHasAiBlip == null) fn__setPedHasAiBlip = (delegate* unmanaged[Cdecl]) funcTable[0xD30C50DF888D58B5UL]; var success = false; fn__setPedHasAiBlip(&success, _ped, (byte) (_hasCone ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -54334,10 +54321,10 @@ public void SetPedHasAiBlip(int _ped, bool _hasCone) } public void SetPedHasAiBlipWithColour(IPlayer ped, bool hasCone, int color) => SetPedHasAiBlipWithColour(ped.ScriptId, hasCone, color); - public void SetPedHasAiBlipWithColour(int _ped, bool _hasCone, int _color) + public void SetPedHasAiBlipWithColour(uint _ped, bool _hasCone, int _color) { unsafe { - if (fn__setPedHasAiBlipWithColour == null) fn__setPedHasAiBlipWithColour = (delegate* unmanaged[Cdecl]) funcTable[0xB13DCB4C6FAAD238UL]; + if (fn__setPedHasAiBlipWithColour == null) fn__setPedHasAiBlipWithColour = (delegate* unmanaged[Cdecl]) funcTable[0xB13DCB4C6FAAD238UL]; var success = false; fn__setPedHasAiBlipWithColour(&success, _ped, (byte) (_hasCone ? 1 : 0), _color); if (!success) throw new Exception("Native execution failed"); @@ -54345,10 +54332,10 @@ public void SetPedHasAiBlipWithColour(int _ped, bool _hasCone, int _color) } public bool DoesPedHaveAiBlip(IPlayer ped) => DoesPedHaveAiBlip(ped.ScriptId); - public bool DoesPedHaveAiBlip(int _ped) + public bool DoesPedHaveAiBlip(uint _ped) { unsafe { - if (fn__doesPedHaveAiBlip == null) fn__doesPedHaveAiBlip = (delegate* unmanaged[Cdecl]) funcTable[0x15B8ECF844EE67EDUL]; + if (fn__doesPedHaveAiBlip == null) fn__doesPedHaveAiBlip = (delegate* unmanaged[Cdecl]) funcTable[0x15B8ECF844EE67EDUL]; var success = false; var result = fn__doesPedHaveAiBlip(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -54357,10 +54344,10 @@ public bool DoesPedHaveAiBlip(int _ped) } public void SetPedAiBlipGangId(IPlayer ped, int gangId) => SetPedAiBlipGangId(ped.ScriptId, gangId); - public void SetPedAiBlipGangId(int _ped, int _gangId) + public void SetPedAiBlipGangId(uint _ped, int _gangId) { unsafe { - if (fn__setPedAiBlipGangId == null) fn__setPedAiBlipGangId = (delegate* unmanaged[Cdecl]) funcTable[0xE52B8E7F85D39A08UL]; + if (fn__setPedAiBlipGangId == null) fn__setPedAiBlipGangId = (delegate* unmanaged[Cdecl]) funcTable[0xE52B8E7F85D39A08UL]; var success = false; fn__setPedAiBlipGangId(&success, _ped, _gangId); if (!success) throw new Exception("Native execution failed"); @@ -54368,10 +54355,10 @@ public void SetPedAiBlipGangId(int _ped, int _gangId) } public void SetPedAiBlipHasCone(IPlayer ped, bool toggle) => SetPedAiBlipHasCone(ped.ScriptId, toggle); - public void SetPedAiBlipHasCone(int _ped, bool _toggle) + public void SetPedAiBlipHasCone(uint _ped, bool _toggle) { unsafe { - if (fn__setPedAiBlipHasCone == null) fn__setPedAiBlipHasCone = (delegate* unmanaged[Cdecl]) funcTable[0x3EED80DFF7325CAAUL]; + if (fn__setPedAiBlipHasCone == null) fn__setPedAiBlipHasCone = (delegate* unmanaged[Cdecl]) funcTable[0x3EED80DFF7325CAAUL]; var success = false; fn__setPedAiBlipHasCone(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -54379,10 +54366,10 @@ public void SetPedAiBlipHasCone(int _ped, bool _toggle) } public void SetPedAiBlipForcedOn(IPlayer ped, bool toggle) => SetPedAiBlipForcedOn(ped.ScriptId, toggle); - public void SetPedAiBlipForcedOn(int _ped, bool _toggle) + public void SetPedAiBlipForcedOn(uint _ped, bool _toggle) { unsafe { - if (fn__setPedAiBlipForcedOn == null) fn__setPedAiBlipForcedOn = (delegate* unmanaged[Cdecl]) funcTable[0x0C4BBF625CA98C4EUL]; + if (fn__setPedAiBlipForcedOn == null) fn__setPedAiBlipForcedOn = (delegate* unmanaged[Cdecl]) funcTable[0x0C4BBF625CA98C4EUL]; var success = false; fn__setPedAiBlipForcedOn(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -54390,10 +54377,10 @@ public void SetPedAiBlipForcedOn(int _ped, bool _toggle) } public void SetPedAiBlipNoticeRange(IPlayer ped, float range) => SetPedAiBlipNoticeRange(ped.ScriptId, range); - public void SetPedAiBlipNoticeRange(int _ped, float _range) + public void SetPedAiBlipNoticeRange(uint _ped, float _range) { unsafe { - if (fn__setPedAiBlipNoticeRange == null) fn__setPedAiBlipNoticeRange = (delegate* unmanaged[Cdecl]) funcTable[0x97C65887D4B37FA9UL]; + if (fn__setPedAiBlipNoticeRange == null) fn__setPedAiBlipNoticeRange = (delegate* unmanaged[Cdecl]) funcTable[0x97C65887D4B37FA9UL]; var success = false; fn__setPedAiBlipNoticeRange(&success, _ped, _range); if (!success) throw new Exception("Native execution failed"); @@ -54401,10 +54388,10 @@ public void SetPedAiBlipNoticeRange(int _ped, float _range) } public void SetPedAiBlipSprite(IPlayer ped, int spriteId) => SetPedAiBlipSprite(ped.ScriptId, spriteId); - public void SetPedAiBlipSprite(int _ped, int _spriteId) + public void SetPedAiBlipSprite(uint _ped, int _spriteId) { unsafe { - if (fn__setPedAiBlipSprite == null) fn__setPedAiBlipSprite = (delegate* unmanaged[Cdecl]) funcTable[0xFCFACD0DB9D7A57DUL]; + if (fn__setPedAiBlipSprite == null) fn__setPedAiBlipSprite = (delegate* unmanaged[Cdecl]) funcTable[0xFCFACD0DB9D7A57DUL]; var success = false; fn__setPedAiBlipSprite(&success, _ped, _spriteId); if (!success) throw new Exception("Native execution failed"); @@ -54412,10 +54399,10 @@ public void SetPedAiBlipSprite(int _ped, int _spriteId) } public int GetAiPedPedBlipIndex(IPlayer ped) => GetAiPedPedBlipIndex(ped.ScriptId); - public int GetAiPedPedBlipIndex(int _ped) + public int GetAiPedPedBlipIndex(uint _ped) { unsafe { - if (fn__getAiPedPedBlipIndex == null) fn__getAiPedPedBlipIndex = (delegate* unmanaged[Cdecl]) funcTable[0x7CD934010E115C2CUL]; + if (fn__getAiPedPedBlipIndex == null) fn__getAiPedPedBlipIndex = (delegate* unmanaged[Cdecl]) funcTable[0x7CD934010E115C2CUL]; var success = false; var result = fn__getAiPedPedBlipIndex(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -54424,10 +54411,10 @@ public int GetAiPedPedBlipIndex(int _ped) } public int GetAiPedVehicleBlipIndex(IPlayer ped) => GetAiPedVehicleBlipIndex(ped.ScriptId); - public int GetAiPedVehicleBlipIndex(int _ped) + public int GetAiPedVehicleBlipIndex(uint _ped) { unsafe { - if (fn__getAiPedVehicleBlipIndex == null) fn__getAiPedVehicleBlipIndex = (delegate* unmanaged[Cdecl]) funcTable[0x56176892826A4FE8UL]; + if (fn__getAiPedVehicleBlipIndex == null) fn__getAiPedVehicleBlipIndex = (delegate* unmanaged[Cdecl]) funcTable[0x56176892826A4FE8UL]; var success = false; var result = fn__getAiPedVehicleBlipIndex(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -54556,10 +54543,10 @@ public bool IsValidInterior(int _interior) } public void ClearRoomForEntity(IEntity entity) => ClearRoomForEntity(entity.ScriptId); - public void ClearRoomForEntity(int _entity) + public void ClearRoomForEntity(uint _entity) { unsafe { - if (fn__clearRoomForEntity == null) fn__clearRoomForEntity = (delegate* unmanaged[Cdecl]) funcTable[0xB365FC0C4E27FFA7UL]; + if (fn__clearRoomForEntity == null) fn__clearRoomForEntity = (delegate* unmanaged[Cdecl]) funcTable[0xB365FC0C4E27FFA7UL]; var success = false; fn__clearRoomForEntity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -54567,10 +54554,10 @@ public void ClearRoomForEntity(int _entity) } public void ForceRoomForEntity(IEntity entity, int interior, uint roomHashKey) => ForceRoomForEntity(entity.ScriptId, interior, roomHashKey); - public void ForceRoomForEntity(int _entity, int _interior, uint _roomHashKey) + public void ForceRoomForEntity(uint _entity, int _interior, uint _roomHashKey) { unsafe { - if (fn__forceRoomForEntity == null) fn__forceRoomForEntity = (delegate* unmanaged[Cdecl]) funcTable[0x52923C4710DD9907UL]; + if (fn__forceRoomForEntity == null) fn__forceRoomForEntity = (delegate* unmanaged[Cdecl]) funcTable[0x52923C4710DD9907UL]; var success = false; fn__forceRoomForEntity(&success, _entity, _interior, _roomHashKey); if (!success) throw new Exception("Native execution failed"); @@ -54578,10 +54565,10 @@ public void ForceRoomForEntity(int _entity, int _interior, uint _roomHashKey) } public uint GetRoomKeyFromEntity(IEntity entity) => GetRoomKeyFromEntity(entity.ScriptId); - public uint GetRoomKeyFromEntity(int _entity) + public uint GetRoomKeyFromEntity(uint _entity) { unsafe { - if (fn__getRoomKeyFromEntity == null) fn__getRoomKeyFromEntity = (delegate* unmanaged[Cdecl]) funcTable[0x47C2A06D4F5F424BUL]; + if (fn__getRoomKeyFromEntity == null) fn__getRoomKeyFromEntity = (delegate* unmanaged[Cdecl]) funcTable[0x47C2A06D4F5F424BUL]; var success = false; var result = fn__getRoomKeyFromEntity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -54590,10 +54577,10 @@ public uint GetRoomKeyFromEntity(int _entity) } public uint GetKeyForEntityInRoom(IEntity entity) => GetKeyForEntityInRoom(entity.ScriptId); - public uint GetKeyForEntityInRoom(int _entity) + public uint GetKeyForEntityInRoom(uint _entity) { unsafe { - if (fn__getKeyForEntityInRoom == null) fn__getKeyForEntityInRoom = (delegate* unmanaged[Cdecl]) funcTable[0x399685DB942336BCUL]; + if (fn__getKeyForEntityInRoom == null) fn__getKeyForEntityInRoom = (delegate* unmanaged[Cdecl]) funcTable[0x399685DB942336BCUL]; var success = false; var result = fn__getKeyForEntityInRoom(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -54602,10 +54589,10 @@ public uint GetKeyForEntityInRoom(int _entity) } public int GetInteriorFromEntity(IEntity entity) => GetInteriorFromEntity(entity.ScriptId); - public int GetInteriorFromEntity(int _entity) + public int GetInteriorFromEntity(uint _entity) { unsafe { - if (fn__getInteriorFromEntity == null) fn__getInteriorFromEntity = (delegate* unmanaged[Cdecl]) funcTable[0x2107BA504071A6BBUL]; + if (fn__getInteriorFromEntity == null) fn__getInteriorFromEntity = (delegate* unmanaged[Cdecl]) funcTable[0x2107BA504071A6BBUL]; var success = false; var result = fn__getInteriorFromEntity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -54614,10 +54601,10 @@ public int GetInteriorFromEntity(int _entity) } public void RetainEntityInInterior(IEntity entity, int interior) => RetainEntityInInterior(entity.ScriptId, interior); - public void RetainEntityInInterior(int _entity, int _interior) + public void RetainEntityInInterior(uint _entity, int _interior) { unsafe { - if (fn__retainEntityInInterior == null) fn__retainEntityInInterior = (delegate* unmanaged[Cdecl]) funcTable[0x82EBB79E258FA2B7UL]; + if (fn__retainEntityInInterior == null) fn__retainEntityInInterior = (delegate* unmanaged[Cdecl]) funcTable[0x82EBB79E258FA2B7UL]; var success = false; fn__retainEntityInInterior(&success, _entity, _interior); if (!success) throw new Exception("Native execution failed"); @@ -54625,10 +54612,10 @@ public void RetainEntityInInterior(int _entity, int _interior) } public void ClearInteriorStateOfEntity(IEntity entity) => ClearInteriorStateOfEntity(entity.ScriptId); - public void ClearInteriorStateOfEntity(int _entity) + public void ClearInteriorStateOfEntity(uint _entity) { unsafe { - if (fn__clearInteriorStateOfEntity == null) fn__clearInteriorStateOfEntity = (delegate* unmanaged[Cdecl]) funcTable[0x85D5422B2039A70DUL]; + if (fn__clearInteriorStateOfEntity == null) fn__clearInteriorStateOfEntity = (delegate* unmanaged[Cdecl]) funcTable[0x85D5422B2039A70DUL]; var success = false; fn__clearInteriorStateOfEntity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -54660,9 +54647,9 @@ public void SetRoomForGameViewportByName(string _roomName) unsafe { if (fn__setRoomForGameViewportByName == null) fn__setRoomForGameViewportByName = (delegate* unmanaged[Cdecl]) funcTable[0xAF348AFCB575A441UL]; var success = false; - var ptr_roomName = _roomName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_roomName); + var ptr_roomName = MemoryUtils.StringToHGlobalUtf8(_roomName); fn__setRoomForGameViewportByName(&success, ptr_roomName); - if (ptr_roomName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_roomName); + Marshal.FreeHGlobal(ptr_roomName); if (!success) throw new Exception("Native execution failed"); } } @@ -54725,9 +54712,9 @@ public void AddPickupToInteriorRoomByName(int _pickup, string _roomName) unsafe { if (fn__addPickupToInteriorRoomByName == null) fn__addPickupToInteriorRoomByName = (delegate* unmanaged[Cdecl]) funcTable[0x3F6167F351168730UL]; var success = false; - var ptr_roomName = _roomName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_roomName); + var ptr_roomName = MemoryUtils.StringToHGlobalUtf8(_roomName); fn__addPickupToInteriorRoomByName(&success, _pickup, ptr_roomName); - if (ptr_roomName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_roomName); + Marshal.FreeHGlobal(ptr_roomName); if (!success) throw new Exception("Native execution failed"); } } @@ -54779,9 +54766,9 @@ public int GetInteriorAtCoordsWithType(float _x, float _y, float _z, string _int unsafe { if (fn__getInteriorAtCoordsWithType == null) fn__getInteriorAtCoordsWithType = (delegate* unmanaged[Cdecl]) funcTable[0x05B7A89BD78797FCUL]; var success = false; - var ptr_interiorType = _interiorType == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_interiorType); + var ptr_interiorType = MemoryUtils.StringToHGlobalUtf8(_interiorType); var result = fn__getInteriorAtCoordsWithType(&success, _x, _y, _z, ptr_interiorType); - if (ptr_interiorType != IntPtr.Zero) Marshal.FreeHGlobal(ptr_interiorType); + Marshal.FreeHGlobal(ptr_interiorType); if (!success) throw new Exception("Native execution failed"); return result; } @@ -54845,9 +54832,9 @@ public void ActivateInteriorEntitySet(int _interior, string _entitySetName) unsafe { if (fn__activateInteriorEntitySet == null) fn__activateInteriorEntitySet = (delegate* unmanaged[Cdecl]) funcTable[0x55E86AF2712B36A1UL]; var success = false; - var ptr_entitySetName = _entitySetName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_entitySetName); + var ptr_entitySetName = MemoryUtils.StringToHGlobalUtf8(_entitySetName); fn__activateInteriorEntitySet(&success, _interior, ptr_entitySetName); - if (ptr_entitySetName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_entitySetName); + Marshal.FreeHGlobal(ptr_entitySetName); if (!success) throw new Exception("Native execution failed"); } } @@ -54857,9 +54844,9 @@ public void DeactivateInteriorEntitySet(int _interior, string _entitySetName) unsafe { if (fn__deactivateInteriorEntitySet == null) fn__deactivateInteriorEntitySet = (delegate* unmanaged[Cdecl]) funcTable[0x420BD37289EEE162UL]; var success = false; - var ptr_entitySetName = _entitySetName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_entitySetName); + var ptr_entitySetName = MemoryUtils.StringToHGlobalUtf8(_entitySetName); fn__deactivateInteriorEntitySet(&success, _interior, ptr_entitySetName); - if (ptr_entitySetName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_entitySetName); + Marshal.FreeHGlobal(ptr_entitySetName); if (!success) throw new Exception("Native execution failed"); } } @@ -54869,9 +54856,9 @@ public bool IsInteriorEntitySetActive(int _interior, string _entitySetName) unsafe { if (fn__isInteriorEntitySetActive == null) fn__isInteriorEntitySetActive = (delegate* unmanaged[Cdecl]) funcTable[0x35F7DD45E8C0A16DUL]; var success = false; - var ptr_entitySetName = _entitySetName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_entitySetName); + var ptr_entitySetName = MemoryUtils.StringToHGlobalUtf8(_entitySetName); var result = fn__isInteriorEntitySetActive(&success, _interior, ptr_entitySetName); - if (ptr_entitySetName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_entitySetName); + Marshal.FreeHGlobal(ptr_entitySetName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -54882,9 +54869,9 @@ public void SetInteriorEntitySetTintIndex(int _interior, string _entitySetName, unsafe { if (fn__setInteriorEntitySetTintIndex == null) fn__setInteriorEntitySetTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xC1F1920BAF281317UL]; var success = false; - var ptr_entitySetName = _entitySetName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_entitySetName); + var ptr_entitySetName = MemoryUtils.StringToHGlobalUtf8(_entitySetName); fn__setInteriorEntitySetTintIndex(&success, _interior, ptr_entitySetName, _color); - if (ptr_entitySetName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_entitySetName); + Marshal.FreeHGlobal(ptr_entitySetName); if (!success) throw new Exception("Native execution failed"); } } @@ -54972,20 +54959,20 @@ public void DisableMetroSystem(bool _toggle) } public void SetIsExteriorOnly(IEntity entity, bool toggle) => SetIsExteriorOnly(entity.ScriptId, toggle); - public void SetIsExteriorOnly(int _entity, bool _toggle) + public void SetIsExteriorOnly(uint _entity, bool _toggle) { unsafe { - if (fn__setIsExteriorOnly == null) fn__setIsExteriorOnly = (delegate* unmanaged[Cdecl]) funcTable[0x7241CCB7D020DB69UL]; + if (fn__setIsExteriorOnly == null) fn__setIsExteriorOnly = (delegate* unmanaged[Cdecl]) funcTable[0x7241CCB7D020DB69UL]; var success = false; fn__setIsExteriorOnly(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public int CreateItemset(bool _p0) + public uint CreateItemset(bool _p0) { unsafe { - if (fn__createItemset == null) fn__createItemset = (delegate* unmanaged[Cdecl]) funcTable[0x35AD299F50D91B24UL]; + if (fn__createItemset == null) fn__createItemset = (delegate* unmanaged[Cdecl]) funcTable[0x35AD299F50D91B24UL]; var success = false; var result = fn__createItemset(&success, (byte) (_p0 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -54993,20 +54980,20 @@ public int CreateItemset(bool _p0) } } - public void DestroyItemset(int _itemset) + public void DestroyItemset(uint _itemset) { unsafe { - if (fn__destroyItemset == null) fn__destroyItemset = (delegate* unmanaged[Cdecl]) funcTable[0xDE18220B1C183EDAUL]; + if (fn__destroyItemset == null) fn__destroyItemset = (delegate* unmanaged[Cdecl]) funcTable[0xDE18220B1C183EDAUL]; var success = false; fn__destroyItemset(&success, _itemset); if (!success) throw new Exception("Native execution failed"); } } - public bool IsItemsetValid(int _itemset) + public bool IsItemsetValid(uint _itemset) { unsafe { - if (fn__isItemsetValid == null) fn__isItemsetValid = (delegate* unmanaged[Cdecl]) funcTable[0xB1B1EA596344DFABUL]; + if (fn__isItemsetValid == null) fn__isItemsetValid = (delegate* unmanaged[Cdecl]) funcTable[0xB1B1EA596344DFABUL]; var success = false; var result = fn__isItemsetValid(&success, _itemset); if (!success) throw new Exception("Native execution failed"); @@ -55014,10 +55001,10 @@ public bool IsItemsetValid(int _itemset) } } - public bool AddToItemset(int _item, int _itemset) + public bool AddToItemset(uint _item, uint _itemset) { unsafe { - if (fn__addToItemset == null) fn__addToItemset = (delegate* unmanaged[Cdecl]) funcTable[0xE3945201F14637DDUL]; + if (fn__addToItemset == null) fn__addToItemset = (delegate* unmanaged[Cdecl]) funcTable[0xE3945201F14637DDUL]; var success = false; var result = fn__addToItemset(&success, _item, _itemset); if (!success) throw new Exception("Native execution failed"); @@ -55025,20 +55012,20 @@ public bool AddToItemset(int _item, int _itemset) } } - public void RemoveFromItemset(int _item, int _itemset) + public void RemoveFromItemset(uint _item, uint _itemset) { unsafe { - if (fn__removeFromItemset == null) fn__removeFromItemset = (delegate* unmanaged[Cdecl]) funcTable[0x25E68244B0177686UL]; + if (fn__removeFromItemset == null) fn__removeFromItemset = (delegate* unmanaged[Cdecl]) funcTable[0x25E68244B0177686UL]; var success = false; fn__removeFromItemset(&success, _item, _itemset); if (!success) throw new Exception("Native execution failed"); } } - public int GetItemsetSize(int _itemset) + public int GetItemsetSize(uint _itemset) { unsafe { - if (fn__getItemsetSize == null) fn__getItemsetSize = (delegate* unmanaged[Cdecl]) funcTable[0xD9127E83ABF7C631UL]; + if (fn__getItemsetSize == null) fn__getItemsetSize = (delegate* unmanaged[Cdecl]) funcTable[0xD9127E83ABF7C631UL]; var success = false; var result = fn__getItemsetSize(&success, _itemset); if (!success) throw new Exception("Native execution failed"); @@ -55046,10 +55033,10 @@ public int GetItemsetSize(int _itemset) } } - public int GetIndexedItemInItemset(int _index, int _itemset) + public uint GetIndexedItemInItemset(int _index, uint _itemset) { unsafe { - if (fn__getIndexedItemInItemset == null) fn__getIndexedItemInItemset = (delegate* unmanaged[Cdecl]) funcTable[0x7A197E2521EE2BABUL]; + if (fn__getIndexedItemInItemset == null) fn__getIndexedItemInItemset = (delegate* unmanaged[Cdecl]) funcTable[0x7A197E2521EE2BABUL]; var success = false; var result = fn__getIndexedItemInItemset(&success, _index, _itemset); if (!success) throw new Exception("Native execution failed"); @@ -55057,10 +55044,10 @@ public int GetIndexedItemInItemset(int _index, int _itemset) } } - public bool IsInItemset(int _item, int _itemset) + public bool IsInItemset(uint _item, uint _itemset) { unsafe { - if (fn__isInItemset == null) fn__isInItemset = (delegate* unmanaged[Cdecl]) funcTable[0x2D0FC594D1E9C107UL]; + if (fn__isInItemset == null) fn__isInItemset = (delegate* unmanaged[Cdecl]) funcTable[0x2D0FC594D1E9C107UL]; var success = false; var result = fn__isInItemset(&success, _item, _itemset); if (!success) throw new Exception("Native execution failed"); @@ -55068,10 +55055,10 @@ public bool IsInItemset(int _item, int _itemset) } } - public void CleanItemset(int _itemset) + public void CleanItemset(uint _itemset) { unsafe { - if (fn__cleanItemset == null) fn__cleanItemset = (delegate* unmanaged[Cdecl]) funcTable[0x41BC0D722FC04221UL]; + if (fn__cleanItemset == null) fn__cleanItemset = (delegate* unmanaged[Cdecl]) funcTable[0x41BC0D722FC04221UL]; var success = false; fn__cleanItemset(&success, _itemset); if (!success) throw new Exception("Native execution failed"); @@ -55286,8 +55273,8 @@ public string GetContentToLoad() var success = false; var result = fn__getContentToLoad(&success); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -55297,11 +55284,11 @@ public void ActivityFeedCreate(string _p0, string _p1) unsafe { if (fn__activityFeedCreate == null) fn__activityFeedCreate = (delegate* unmanaged[Cdecl]) funcTable[0x4DCDF92BF64236CDUL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); fn__activityFeedCreate(&success, ptr_p0, ptr_p1); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); } } @@ -55311,9 +55298,9 @@ public void ActivityFeedAddSubstringToCaption(string _p0) unsafe { if (fn__activityFeedAddSubstringToCaption == null) fn__activityFeedAddSubstringToCaption = (delegate* unmanaged[Cdecl]) funcTable[0x31125FD509D9043FUL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__activityFeedAddSubstringToCaption(&success, ptr_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -55323,9 +55310,9 @@ public void ActivityFeedAddLiteralSubstringToCaption(string _p0) unsafe { if (fn__activityFeedAddLiteralSubstringToCaption == null) fn__activityFeedAddLiteralSubstringToCaption = (delegate* unmanaged[Cdecl]) funcTable[0xEBD3205A207939EDUL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__activityFeedAddLiteralSubstringToCaption(&success, ptr_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -55345,9 +55332,9 @@ public void ActivityFeedLargeImageUrl(string _p0) unsafe { if (fn__activityFeedLargeImageUrl == null) fn__activityFeedLargeImageUrl = (delegate* unmanaged[Cdecl]) funcTable[0x916CA67D26FD1E37UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__activityFeedLargeImageUrl(&success, ptr_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -55357,11 +55344,11 @@ public void ActivityFeedActionStartWithCommandLine(string _p0, string _p1) unsafe { if (fn__activityFeedActionStartWithCommandLine == null) fn__activityFeedActionStartWithCommandLine = (delegate* unmanaged[Cdecl]) funcTable[0xEB078CA2B5E82ADDUL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); fn__activityFeedActionStartWithCommandLine(&success, ptr_p0, ptr_p1); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); } } @@ -55371,9 +55358,9 @@ public void ActivityFeedActionStartWithCommandLineAdd(string _p0) unsafe { if (fn__activityFeedActionStartWithCommandLineAdd == null) fn__activityFeedActionStartWithCommandLineAdd = (delegate* unmanaged[Cdecl]) funcTable[0x703CC7F60CBB2B57UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__activityFeedActionStartWithCommandLineAdd(&success, ptr_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -55393,9 +55380,9 @@ public void ActivityFeedOnlinePlayedWithPost(string _p0) unsafe { if (fn__activityFeedOnlinePlayedWithPost == null) fn__activityFeedOnlinePlayedWithPost = (delegate* unmanaged[Cdecl]) funcTable[0xBA4B8D83BDC75551UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__activityFeedOnlinePlayedWithPost(&success, ptr_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -55436,9 +55423,9 @@ public void InformCodeOfContentIdOfCurrentUgcMission(string _p0) unsafe { if (fn__informCodeOfContentIdOfCurrentUgcMission == null) fn__informCodeOfContentIdOfCurrentUgcMission = (delegate* unmanaged[Cdecl]) funcTable[0x8D74E26F54B4E5C3UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__informCodeOfContentIdOfCurrentUgcMission(&success, ptr_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -55485,9 +55472,9 @@ public bool IsPrevWeatherType(string _weatherType) unsafe { if (fn__isPrevWeatherType == null) fn__isPrevWeatherType = (delegate* unmanaged[Cdecl]) funcTable[0x44F28F86433B10A9UL]; var success = false; - var ptr_weatherType = _weatherType == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_weatherType); + var ptr_weatherType = MemoryUtils.StringToHGlobalUtf8(_weatherType); var result = fn__isPrevWeatherType(&success, ptr_weatherType); - if (ptr_weatherType != IntPtr.Zero) Marshal.FreeHGlobal(ptr_weatherType); + Marshal.FreeHGlobal(ptr_weatherType); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -55498,9 +55485,9 @@ public bool IsNextWeatherType(string _weatherType) unsafe { if (fn__isNextWeatherType == null) fn__isNextWeatherType = (delegate* unmanaged[Cdecl]) funcTable[0x2FAA3A30BEC0F25DUL]; var success = false; - var ptr_weatherType = _weatherType == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_weatherType); + var ptr_weatherType = MemoryUtils.StringToHGlobalUtf8(_weatherType); var result = fn__isNextWeatherType(&success, ptr_weatherType); - if (ptr_weatherType != IntPtr.Zero) Marshal.FreeHGlobal(ptr_weatherType); + Marshal.FreeHGlobal(ptr_weatherType); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -55511,9 +55498,9 @@ public void SetWeatherTypePersist(string _weatherType) unsafe { if (fn__setWeatherTypePersist == null) fn__setWeatherTypePersist = (delegate* unmanaged[Cdecl]) funcTable[0x704983DF373B198FUL]; var success = false; - var ptr_weatherType = _weatherType == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_weatherType); + var ptr_weatherType = MemoryUtils.StringToHGlobalUtf8(_weatherType); fn__setWeatherTypePersist(&success, ptr_weatherType); - if (ptr_weatherType != IntPtr.Zero) Marshal.FreeHGlobal(ptr_weatherType); + Marshal.FreeHGlobal(ptr_weatherType); if (!success) throw new Exception("Native execution failed"); } } @@ -55523,9 +55510,9 @@ public void SetWeatherTypeNowPersist(string _weatherType) unsafe { if (fn__setWeatherTypeNowPersist == null) fn__setWeatherTypeNowPersist = (delegate* unmanaged[Cdecl]) funcTable[0xED712CA327900C8AUL]; var success = false; - var ptr_weatherType = _weatherType == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_weatherType); + var ptr_weatherType = MemoryUtils.StringToHGlobalUtf8(_weatherType); fn__setWeatherTypeNowPersist(&success, ptr_weatherType); - if (ptr_weatherType != IntPtr.Zero) Marshal.FreeHGlobal(ptr_weatherType); + Marshal.FreeHGlobal(ptr_weatherType); if (!success) throw new Exception("Native execution failed"); } } @@ -55535,9 +55522,9 @@ public void SetWeatherTypeNow(string _weatherType) unsafe { if (fn__setWeatherTypeNow == null) fn__setWeatherTypeNow = (delegate* unmanaged[Cdecl]) funcTable[0x29B487C359E19889UL]; var success = false; - var ptr_weatherType = _weatherType == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_weatherType); + var ptr_weatherType = MemoryUtils.StringToHGlobalUtf8(_weatherType); fn__setWeatherTypeNow(&success, ptr_weatherType); - if (ptr_weatherType != IntPtr.Zero) Marshal.FreeHGlobal(ptr_weatherType); + Marshal.FreeHGlobal(ptr_weatherType); if (!success) throw new Exception("Native execution failed"); } } @@ -55547,9 +55534,9 @@ public void SetWeatherTypeOvertimePersist(string _weatherType, float _time) unsafe { if (fn__setWeatherTypeOvertimePersist == null) fn__setWeatherTypeOvertimePersist = (delegate* unmanaged[Cdecl]) funcTable[0xFB5045B7C42B75BFUL]; var success = false; - var ptr_weatherType = _weatherType == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_weatherType); + var ptr_weatherType = MemoryUtils.StringToHGlobalUtf8(_weatherType); fn__setWeatherTypeOvertimePersist(&success, ptr_weatherType, _time); - if (ptr_weatherType != IntPtr.Zero) Marshal.FreeHGlobal(ptr_weatherType); + Marshal.FreeHGlobal(ptr_weatherType); if (!success) throw new Exception("Native execution failed"); } } @@ -55615,9 +55602,9 @@ public void SetOverrideWeather(string _weatherType) unsafe { if (fn__setOverrideWeather == null) fn__setOverrideWeather = (delegate* unmanaged[Cdecl]) funcTable[0xA43D5C6FE51ADBEFUL]; var success = false; - var ptr_weatherType = _weatherType == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_weatherType); + var ptr_weatherType = MemoryUtils.StringToHGlobalUtf8(_weatherType); fn__setOverrideWeather(&success, ptr_weatherType); - if (ptr_weatherType != IntPtr.Zero) Marshal.FreeHGlobal(ptr_weatherType); + Marshal.FreeHGlobal(ptr_weatherType); if (!success) throw new Exception("Native execution failed"); } } @@ -55627,9 +55614,9 @@ public void SetOverrideWeatherex(string _weatherType, bool _p1) unsafe { if (fn__setOverrideWeatherex == null) fn__setOverrideWeatherex = (delegate* unmanaged[Cdecl]) funcTable[0x1178E104409FE58CUL]; var success = false; - var ptr_weatherType = _weatherType == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_weatherType); + var ptr_weatherType = MemoryUtils.StringToHGlobalUtf8(_weatherType); fn__setOverrideWeatherex(&success, ptr_weatherType, (byte) (_p1 ? 1 : 0)); - if (ptr_weatherType != IntPtr.Zero) Marshal.FreeHGlobal(ptr_weatherType); + Marshal.FreeHGlobal(ptr_weatherType); if (!success) throw new Exception("Native execution failed"); } } @@ -55893,9 +55880,9 @@ public void SetCloudSettingsOverride(string _p0) unsafe { if (fn__setCloudSettingsOverride == null) fn__setCloudSettingsOverride = (delegate* unmanaged[Cdecl]) funcTable[0x02DEAAC8F8EA7FE7UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__setCloudSettingsOverride(&success, ptr_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -55905,9 +55892,9 @@ public void PreloadCloudHat(string _name) unsafe { if (fn__preloadCloudHat == null) fn__preloadCloudHat = (delegate* unmanaged[Cdecl]) funcTable[0x11B56FBBF7224868UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__preloadCloudHat(&success, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -55917,9 +55904,9 @@ public void LoadCloudHat(string _name, float _transitionTime) unsafe { if (fn__loadCloudHat == null) fn__loadCloudHat = (delegate* unmanaged[Cdecl]) funcTable[0xFC4842A34657BFCBUL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__loadCloudHat(&success, ptr_name, _transitionTime); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -55929,9 +55916,9 @@ public void UnloadCloudHat(string _name, float _p1) unsafe { if (fn__unloadCloudHat == null) fn__unloadCloudHat = (delegate* unmanaged[Cdecl]) funcTable[0xA74802FB8D0B7814UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__unloadCloudHat(&success, ptr_name, _p1); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -56248,9 +56235,9 @@ public uint GetHashKey(string _string) unsafe { if (fn__getHashKey == null) fn__getHashKey = (delegate* unmanaged[Cdecl]) funcTable[0xD24D37CC275948CCUL]; var success = false; - var ptr_string = _string == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_string); + var ptr_string = MemoryUtils.StringToHGlobalUtf8(_string); var result = fn__getHashKey(&success, ptr_string); - if (ptr_string != IntPtr.Zero) Marshal.FreeHGlobal(ptr_string); + Marshal.FreeHGlobal(ptr_string); if (!success) throw new Exception("Native execution failed"); return result; } @@ -56297,10 +56284,10 @@ public bool IsAreaOccupiedSlow(int _p0, int _p1, int _p2, int _p3, int _p4, int } public bool IsPositionOccupied(float x, float y, float z, float range, bool p4, bool checkVehicles, bool checkPeds, bool p7, bool p8, IEntity ignoreEntity, bool p10) => IsPositionOccupied(x, y, z, range, p4, checkVehicles, checkPeds, p7, p8, ignoreEntity.ScriptId, p10); - public bool IsPositionOccupied(float _x, float _y, float _z, float _range, bool _p4, bool _checkVehicles, bool _checkPeds, bool _p7, bool _p8, int _ignoreEntity, bool _p10) + public bool IsPositionOccupied(float _x, float _y, float _z, float _range, bool _p4, bool _checkVehicles, bool _checkPeds, bool _p7, bool _p8, uint _ignoreEntity, bool _p10) { unsafe { - if (fn__isPositionOccupied == null) fn__isPositionOccupied = (delegate* unmanaged[Cdecl]) funcTable[0xADCDE75E1C60F32DUL]; + if (fn__isPositionOccupied == null) fn__isPositionOccupied = (delegate* unmanaged[Cdecl]) funcTable[0xADCDE75E1C60F32DUL]; var success = false; var result = fn__isPositionOccupied(&success, _x, _y, _z, _range, (byte) (_p4 ? 1 : 0), (byte) (_checkVehicles ? 1 : 0), (byte) (_checkPeds ? 1 : 0), (byte) (_p7 ? 1 : 0), (byte) (_p8 ? 1 : 0), _ignoreEntity, (byte) (_p10 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -56466,9 +56453,9 @@ public void TerminateAllScriptsWithThisName(string _scriptName) unsafe { if (fn__terminateAllScriptsWithThisName == null) fn__terminateAllScriptsWithThisName = (delegate* unmanaged[Cdecl]) funcTable[0x9DC711BC69C548DFUL]; var success = false; - var ptr_scriptName = _scriptName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scriptName); + var ptr_scriptName = MemoryUtils.StringToHGlobalUtf8(_scriptName); fn__terminateAllScriptsWithThisName(&success, ptr_scriptName); - if (ptr_scriptName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scriptName); + Marshal.FreeHGlobal(ptr_scriptName); if (!success) throw new Exception("Native execution failed"); } } @@ -56610,9 +56597,9 @@ public int RegisterSaveHouse(float _x, float _y, float _z, float _p3, string _p4 unsafe { if (fn__registerSaveHouse == null) fn__registerSaveHouse = (delegate* unmanaged[Cdecl]) funcTable[0xC0714D0A7EEECA54UL]; var success = false; - var ptr_p4 = _p4 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p4); + var ptr_p4 = MemoryUtils.StringToHGlobalUtf8(_p4); var result = fn__registerSaveHouse(&success, _x, _y, _z, _p3, ptr_p4, _p5, _p6); - if (ptr_p4 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p4); + Marshal.FreeHGlobal(ptr_p4); if (!success) throw new Exception("Native execution failed"); return result; } @@ -56862,40 +56849,40 @@ public bool IsMemoryCardInUse() } public void ShootSingleBulletBetweenCoords(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, IPlayer ownerPed, bool isAudible, bool isInvisible, float speed) => ShootSingleBulletBetweenCoords(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed.ScriptId, isAudible, isInvisible, speed); - public void ShootSingleBulletBetweenCoords(float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, int _damage, bool _p7, uint _weaponHash, int _ownerPed, bool _isAudible, bool _isInvisible, float _speed) + public void ShootSingleBulletBetweenCoords(float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, int _damage, bool _p7, uint _weaponHash, uint _ownerPed, bool _isAudible, bool _isInvisible, float _speed) { unsafe { - if (fn__shootSingleBulletBetweenCoords == null) fn__shootSingleBulletBetweenCoords = (delegate* unmanaged[Cdecl]) funcTable[0x867654CBC7606F2CUL]; + if (fn__shootSingleBulletBetweenCoords == null) fn__shootSingleBulletBetweenCoords = (delegate* unmanaged[Cdecl]) funcTable[0x867654CBC7606F2CUL]; var success = false; fn__shootSingleBulletBetweenCoords(&success, _x1, _y1, _z1, _x2, _y2, _z2, _damage, (byte) (_p7 ? 1 : 0), _weaponHash, _ownerPed, (byte) (_isAudible ? 1 : 0), (byte) (_isInvisible ? 1 : 0), _speed); if (!success) throw new Exception("Native execution failed"); } } - public void ShootSingleBulletBetweenCoordsIgnoreEntity(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, IPlayer ownerPed, bool isAudible, bool isInvisible, float speed, int entity, int p14) => ShootSingleBulletBetweenCoordsIgnoreEntity(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed.ScriptId, isAudible, isInvisible, speed, entity, p14); - public void ShootSingleBulletBetweenCoordsIgnoreEntity(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, int ownerPed, bool isAudible, bool isInvisible, float speed, IEntity entity, int p14) => ShootSingleBulletBetweenCoordsIgnoreEntity(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed, entity.ScriptId, p14); + public void ShootSingleBulletBetweenCoordsIgnoreEntity(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, IPlayer ownerPed, bool isAudible, bool isInvisible, float speed, uint entity, int p14) => ShootSingleBulletBetweenCoordsIgnoreEntity(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed.ScriptId, isAudible, isInvisible, speed, entity, p14); + public void ShootSingleBulletBetweenCoordsIgnoreEntity(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, uint ownerPed, bool isAudible, bool isInvisible, float speed, IEntity entity, int p14) => ShootSingleBulletBetweenCoordsIgnoreEntity(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed, entity.ScriptId, p14); public void ShootSingleBulletBetweenCoordsIgnoreEntity(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, IPlayer ownerPed, bool isAudible, bool isInvisible, float speed, IEntity entity, int p14) => ShootSingleBulletBetweenCoordsIgnoreEntity(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed.ScriptId, isAudible, isInvisible, speed, entity.ScriptId, p14); - public void ShootSingleBulletBetweenCoordsIgnoreEntity(float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, int _damage, bool _p7, uint _weaponHash, int _ownerPed, bool _isAudible, bool _isInvisible, float _speed, int _entity, int _p14) + public void ShootSingleBulletBetweenCoordsIgnoreEntity(float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, int _damage, bool _p7, uint _weaponHash, uint _ownerPed, bool _isAudible, bool _isInvisible, float _speed, uint _entity, int _p14) { unsafe { - if (fn__shootSingleBulletBetweenCoordsIgnoreEntity == null) fn__shootSingleBulletBetweenCoordsIgnoreEntity = (delegate* unmanaged[Cdecl]) funcTable[0xE3A7742E0B7A2F8BUL]; + if (fn__shootSingleBulletBetweenCoordsIgnoreEntity == null) fn__shootSingleBulletBetweenCoordsIgnoreEntity = (delegate* unmanaged[Cdecl]) funcTable[0xE3A7742E0B7A2F8BUL]; var success = false; fn__shootSingleBulletBetweenCoordsIgnoreEntity(&success, _x1, _y1, _z1, _x2, _y2, _z2, _damage, (byte) (_p7 ? 1 : 0), _weaponHash, _ownerPed, (byte) (_isAudible ? 1 : 0), (byte) (_isInvisible ? 1 : 0), _speed, _entity, _p14); if (!success) throw new Exception("Native execution failed"); } } - public void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, IPlayer ownerPed, bool isAudible, bool isInvisible, float speed, int entity, bool p14, bool p15, int targetEntity, bool p17, int p18, int p19, int p20) => ShootSingleBulletBetweenCoordsIgnoreEntityNew(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed.ScriptId, isAudible, isInvisible, speed, entity, p14, p15, targetEntity, p17, p18, p19, p20); - public void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, int ownerPed, bool isAudible, bool isInvisible, float speed, IEntity entity, bool p14, bool p15, int targetEntity, bool p17, int p18, int p19, int p20) => ShootSingleBulletBetweenCoordsIgnoreEntityNew(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed, entity.ScriptId, p14, p15, targetEntity, p17, p18, p19, p20); - public void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, IPlayer ownerPed, bool isAudible, bool isInvisible, float speed, IEntity entity, bool p14, bool p15, int targetEntity, bool p17, int p18, int p19, int p20) => ShootSingleBulletBetweenCoordsIgnoreEntityNew(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed.ScriptId, isAudible, isInvisible, speed, entity.ScriptId, p14, p15, targetEntity, p17, p18, p19, p20); - public void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, int ownerPed, bool isAudible, bool isInvisible, float speed, int entity, bool p14, bool p15, IEntity targetEntity, bool p17, int p18, int p19, int p20) => ShootSingleBulletBetweenCoordsIgnoreEntityNew(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed, entity, p14, p15, targetEntity.ScriptId, p17, p18, p19, p20); - public void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, IPlayer ownerPed, bool isAudible, bool isInvisible, float speed, int entity, bool p14, bool p15, IEntity targetEntity, bool p17, int p18, int p19, int p20) => ShootSingleBulletBetweenCoordsIgnoreEntityNew(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed.ScriptId, isAudible, isInvisible, speed, entity, p14, p15, targetEntity.ScriptId, p17, p18, p19, p20); - public void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, int ownerPed, bool isAudible, bool isInvisible, float speed, IEntity entity, bool p14, bool p15, IEntity targetEntity, bool p17, int p18, int p19, int p20) => ShootSingleBulletBetweenCoordsIgnoreEntityNew(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed, entity.ScriptId, p14, p15, targetEntity.ScriptId, p17, p18, p19, p20); + public void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, IPlayer ownerPed, bool isAudible, bool isInvisible, float speed, uint entity, bool p14, bool p15, uint targetEntity, bool p17, int p18, int p19, int p20) => ShootSingleBulletBetweenCoordsIgnoreEntityNew(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed.ScriptId, isAudible, isInvisible, speed, entity, p14, p15, targetEntity, p17, p18, p19, p20); + public void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, uint ownerPed, bool isAudible, bool isInvisible, float speed, IEntity entity, bool p14, bool p15, uint targetEntity, bool p17, int p18, int p19, int p20) => ShootSingleBulletBetweenCoordsIgnoreEntityNew(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed, entity.ScriptId, p14, p15, targetEntity, p17, p18, p19, p20); + public void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, IPlayer ownerPed, bool isAudible, bool isInvisible, float speed, IEntity entity, bool p14, bool p15, uint targetEntity, bool p17, int p18, int p19, int p20) => ShootSingleBulletBetweenCoordsIgnoreEntityNew(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed.ScriptId, isAudible, isInvisible, speed, entity.ScriptId, p14, p15, targetEntity, p17, p18, p19, p20); + public void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, uint ownerPed, bool isAudible, bool isInvisible, float speed, uint entity, bool p14, bool p15, IEntity targetEntity, bool p17, int p18, int p19, int p20) => ShootSingleBulletBetweenCoordsIgnoreEntityNew(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed, entity, p14, p15, targetEntity.ScriptId, p17, p18, p19, p20); + public void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, IPlayer ownerPed, bool isAudible, bool isInvisible, float speed, uint entity, bool p14, bool p15, IEntity targetEntity, bool p17, int p18, int p19, int p20) => ShootSingleBulletBetweenCoordsIgnoreEntityNew(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed.ScriptId, isAudible, isInvisible, speed, entity, p14, p15, targetEntity.ScriptId, p17, p18, p19, p20); + public void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, uint ownerPed, bool isAudible, bool isInvisible, float speed, IEntity entity, bool p14, bool p15, IEntity targetEntity, bool p17, int p18, int p19, int p20) => ShootSingleBulletBetweenCoordsIgnoreEntityNew(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed, entity.ScriptId, p14, p15, targetEntity.ScriptId, p17, p18, p19, p20); public void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float x1, float y1, float z1, float x2, float y2, float z2, int damage, bool p7, uint weaponHash, IPlayer ownerPed, bool isAudible, bool isInvisible, float speed, IEntity entity, bool p14, bool p15, IEntity targetEntity, bool p17, int p18, int p19, int p20) => ShootSingleBulletBetweenCoordsIgnoreEntityNew(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed.ScriptId, isAudible, isInvisible, speed, entity.ScriptId, p14, p15, targetEntity.ScriptId, p17, p18, p19, p20); - public void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, int _damage, bool _p7, uint _weaponHash, int _ownerPed, bool _isAudible, bool _isInvisible, float _speed, int _entity, bool _p14, bool _p15, int _targetEntity, bool _p17, int _p18, int _p19, int _p20) + public void ShootSingleBulletBetweenCoordsIgnoreEntityNew(float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, int _damage, bool _p7, uint _weaponHash, uint _ownerPed, bool _isAudible, bool _isInvisible, float _speed, uint _entity, bool _p14, bool _p15, uint _targetEntity, bool _p17, int _p18, int _p19, int _p20) { unsafe { - if (fn__shootSingleBulletBetweenCoordsIgnoreEntityNew == null) fn__shootSingleBulletBetweenCoordsIgnoreEntityNew = (delegate* unmanaged[Cdecl]) funcTable[0xBFE5756E7407064AUL]; + if (fn__shootSingleBulletBetweenCoordsIgnoreEntityNew == null) fn__shootSingleBulletBetweenCoordsIgnoreEntityNew = (delegate* unmanaged[Cdecl]) funcTable[0xBFE5756E7407064AUL]; var success = false; fn__shootSingleBulletBetweenCoordsIgnoreEntityNew(&success, _x1, _y1, _z1, _x2, _y2, _z2, _damage, (byte) (_p7 ? 1 : 0), _weaponHash, _ownerPed, (byte) (_isAudible ? 1 : 0), (byte) (_isInvisible ? 1 : 0), _speed, _entity, (byte) (_p14 ? 1 : 0), (byte) (_p15 ? 1 : 0), _targetEntity, (byte) (_p17 ? 1 : 0), _p18, _p19, _p20); if (!success) throw new Exception("Native execution failed"); @@ -57027,11 +57014,11 @@ public bool AreStringsEqual(string _string1, string _string2) unsafe { if (fn__areStringsEqual == null) fn__areStringsEqual = (delegate* unmanaged[Cdecl]) funcTable[0x0C515FAB3FF9EA92UL]; var success = false; - var ptr_string1 = _string1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_string1); - var ptr_string2 = _string2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_string2); + var ptr_string1 = MemoryUtils.StringToHGlobalUtf8(_string1); + var ptr_string2 = MemoryUtils.StringToHGlobalUtf8(_string2); var result = fn__areStringsEqual(&success, ptr_string1, ptr_string2); - if (ptr_string1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_string1); - if (ptr_string2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_string2); + Marshal.FreeHGlobal(ptr_string1); + Marshal.FreeHGlobal(ptr_string2); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -57042,11 +57029,11 @@ public int CompareStrings(string _str1, string _str2, bool _matchCase, int _maxL unsafe { if (fn__compareStrings == null) fn__compareStrings = (delegate* unmanaged[Cdecl]) funcTable[0x1E34710ECD4AB0EBUL]; var success = false; - var ptr_str1 = _str1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_str1); - var ptr_str2 = _str2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_str2); + var ptr_str1 = MemoryUtils.StringToHGlobalUtf8(_str1); + var ptr_str2 = MemoryUtils.StringToHGlobalUtf8(_str2); var result = fn__compareStrings(&success, ptr_str1, ptr_str2, (byte) (_matchCase ? 1 : 0), _maxLength); - if (ptr_str1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_str1); - if (ptr_str2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_str2); + Marshal.FreeHGlobal(ptr_str1); + Marshal.FreeHGlobal(ptr_str2); if (!success) throw new Exception("Native execution failed"); return result; } @@ -57143,10 +57130,10 @@ public bool GetCoordsOfProjectileTypeInArea(float _x1, float _y1, float _z1, flo } public bool GetCoordsOfProjectileTypeWithinDistance(IPlayer ped, uint weaponHash, float distance, ref Vector3 outCoords, bool p4) => GetCoordsOfProjectileTypeWithinDistance(ped.ScriptId, weaponHash, distance, ref outCoords, p4); - public bool GetCoordsOfProjectileTypeWithinDistance(int _ped, uint _weaponHash, float _distance, ref Vector3 _outCoords, bool _p4) + public bool GetCoordsOfProjectileTypeWithinDistance(uint _ped, uint _weaponHash, float _distance, ref Vector3 _outCoords, bool _p4) { unsafe { - if (fn__getCoordsOfProjectileTypeWithinDistance == null) fn__getCoordsOfProjectileTypeWithinDistance = (delegate* unmanaged[Cdecl]) funcTable[0xDFB4138EEFED7B81UL]; + if (fn__getCoordsOfProjectileTypeWithinDistance == null) fn__getCoordsOfProjectileTypeWithinDistance = (delegate* unmanaged[Cdecl]) funcTable[0xDFB4138EEFED7B81UL]; var success = false; var ref_outCoords = _outCoords; var result = fn__getCoordsOfProjectileTypeWithinDistance(&success, _ped, _weaponHash, _distance, &ref_outCoords, (byte) (_p4 ? 1 : 0)); @@ -57156,11 +57143,11 @@ public bool GetCoordsOfProjectileTypeWithinDistance(int _ped, uint _weaponHash, } } - public bool GetProjectileOfProjectileTypeWithinDistance(IPlayer ped, uint weaponHash, float distance, ref Vector3 outCoords, ref int outProjectile, bool p5) => GetProjectileOfProjectileTypeWithinDistance(ped.ScriptId, weaponHash, distance, ref outCoords, ref outProjectile, p5); - public bool GetProjectileOfProjectileTypeWithinDistance(int _ped, uint _weaponHash, float _distance, ref Vector3 _outCoords, ref int _outProjectile, bool _p5) + public bool GetProjectileOfProjectileTypeWithinDistance(IPlayer ped, uint weaponHash, float distance, ref Vector3 outCoords, ref uint outProjectile, bool p5) => GetProjectileOfProjectileTypeWithinDistance(ped.ScriptId, weaponHash, distance, ref outCoords, ref outProjectile, p5); + public bool GetProjectileOfProjectileTypeWithinDistance(uint _ped, uint _weaponHash, float _distance, ref Vector3 _outCoords, ref uint _outProjectile, bool _p5) { unsafe { - if (fn__getProjectileOfProjectileTypeWithinDistance == null) fn__getProjectileOfProjectileTypeWithinDistance = (delegate* unmanaged[Cdecl]) funcTable[0x82FDE6A57EE4EE44UL]; + if (fn__getProjectileOfProjectileTypeWithinDistance == null) fn__getProjectileOfProjectileTypeWithinDistance = (delegate* unmanaged[Cdecl]) funcTable[0x82FDE6A57EE4EE44UL]; var success = false; var ref_outCoords = _outCoords; var ref_outProjectile = _outProjectile; @@ -57364,9 +57351,9 @@ public bool IsStringNull(string _string) unsafe { if (fn__isStringNull == null) fn__isStringNull = (delegate* unmanaged[Cdecl]) funcTable[0xF22B6C47C6EAB066UL]; var success = false; - var ptr_string = _string == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_string); + var ptr_string = MemoryUtils.StringToHGlobalUtf8(_string); var result = fn__isStringNull(&success, ptr_string); - if (ptr_string != IntPtr.Zero) Marshal.FreeHGlobal(ptr_string); + Marshal.FreeHGlobal(ptr_string); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -57377,9 +57364,9 @@ public bool IsStringNullOrEmpty(string _string) unsafe { if (fn__isStringNullOrEmpty == null) fn__isStringNullOrEmpty = (delegate* unmanaged[Cdecl]) funcTable[0xCA042B6957743895UL]; var success = false; - var ptr_string = _string == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_string); + var ptr_string = MemoryUtils.StringToHGlobalUtf8(_string); var result = fn__isStringNullOrEmpty(&success, ptr_string); - if (ptr_string != IntPtr.Zero) Marshal.FreeHGlobal(ptr_string); + Marshal.FreeHGlobal(ptr_string); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -57390,10 +57377,10 @@ public bool StringToInt(string _string, ref int _outInteger) unsafe { if (fn__stringToInt == null) fn__stringToInt = (delegate* unmanaged[Cdecl]) funcTable[0x5A5F40FE637EB584UL]; var success = false; - var ptr_string = _string == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_string); + var ptr_string = MemoryUtils.StringToHGlobalUtf8(_string); var ref_outInteger = _outInteger; var result = fn__stringToInt(&success, ptr_string, &ref_outInteger); - if (ptr_string != IntPtr.Zero) Marshal.FreeHGlobal(ptr_string); + Marshal.FreeHGlobal(ptr_string); _outInteger = ref_outInteger; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -57712,10 +57699,10 @@ public void RegisterIntToSave(ref int _p0, string _name) if (fn__registerIntToSave == null) fn__registerIntToSave = (delegate* unmanaged[Cdecl]) funcTable[0x34C9EE5986258415UL]; var success = false; var ref_p0 = _p0; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__registerIntToSave(&success, &ref_p0, ptr_name); _p0 = ref_p0; - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -57726,10 +57713,10 @@ public void RegisterInt64ToSave(ref int _p0, string _name) if (fn__registerInt64ToSave == null) fn__registerInt64ToSave = (delegate* unmanaged[Cdecl]) funcTable[0xA735353C77334EA0UL]; var success = false; var ref_p0 = _p0; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__registerInt64ToSave(&success, &ref_p0, ptr_name); _p0 = ref_p0; - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -57740,10 +57727,10 @@ public void RegisterEnumToSave(ref int _p0, string _name) if (fn__registerEnumToSave == null) fn__registerEnumToSave = (delegate* unmanaged[Cdecl]) funcTable[0x10C2FA78D0E128A1UL]; var success = false; var ref_p0 = _p0; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__registerEnumToSave(&success, &ref_p0, ptr_name); _p0 = ref_p0; - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -57754,10 +57741,10 @@ public void RegisterFloatToSave(ref int _p0, string _name) if (fn__registerFloatToSave == null) fn__registerFloatToSave = (delegate* unmanaged[Cdecl]) funcTable[0x7CAEC29ECB5DFEBBUL]; var success = false; var ref_p0 = _p0; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__registerFloatToSave(&success, &ref_p0, ptr_name); _p0 = ref_p0; - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -57768,10 +57755,10 @@ public void RegisterBoolToSave(ref int _p0, string _name) if (fn__registerBoolToSave == null) fn__registerBoolToSave = (delegate* unmanaged[Cdecl]) funcTable[0xC8F4131414C835A1UL]; var success = false; var ref_p0 = _p0; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__registerBoolToSave(&success, &ref_p0, ptr_name); _p0 = ref_p0; - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -57782,10 +57769,10 @@ public void RegisterTextLabelToSave(ref int _p0, string _name) if (fn__registerTextLabelToSave == null) fn__registerTextLabelToSave = (delegate* unmanaged[Cdecl]) funcTable[0xEDB1232C5BEAE62FUL]; var success = false; var ref_p0 = _p0; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__registerTextLabelToSave(&success, &ref_p0, ptr_name); _p0 = ref_p0; - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -57796,10 +57783,10 @@ public void RegisterTextLabel15ToSave(ref int _p0, string _name) if (fn__registerTextLabel15ToSave == null) fn__registerTextLabel15ToSave = (delegate* unmanaged[Cdecl]) funcTable[0x6F7794F28C6B2535UL]; var success = false; var ref_p0 = _p0; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__registerTextLabel15ToSave(&success, &ref_p0, ptr_name); _p0 = ref_p0; - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -57810,10 +57797,10 @@ public void RegisterTextLabel23ToSave(ref int _p0, string _name) if (fn__registerTextLabel23ToSave == null) fn__registerTextLabel23ToSave = (delegate* unmanaged[Cdecl]) funcTable[0x48F069265A0E4BECUL]; var success = false; var ref_p0 = _p0; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__registerTextLabel23ToSave(&success, &ref_p0, ptr_name); _p0 = ref_p0; - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -57824,10 +57811,10 @@ public void RegisterTextLabel31ToSave(ref int _p0, string _name) if (fn__registerTextLabel31ToSave == null) fn__registerTextLabel31ToSave = (delegate* unmanaged[Cdecl]) funcTable[0x8269816F6CFD40F8UL]; var success = false; var ref_p0 = _p0; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__registerTextLabel31ToSave(&success, &ref_p0, ptr_name); _p0 = ref_p0; - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -57838,10 +57825,10 @@ public void RegisterTextLabel63ToSave(ref int _p0, string _name) if (fn__registerTextLabel63ToSave == null) fn__registerTextLabel63ToSave = (delegate* unmanaged[Cdecl]) funcTable[0xFAA457EF263E8763UL]; var success = false; var ref_p0 = _p0; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__registerTextLabel63ToSave(&success, &ref_p0, ptr_name); _p0 = ref_p0; - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -57852,10 +57839,10 @@ public void StartSaveStructWithSize(ref int _p0, int _size, string _structName) if (fn__startSaveStructWithSize == null) fn__startSaveStructWithSize = (delegate* unmanaged[Cdecl]) funcTable[0xBF737600CDDBEADDUL]; var success = false; var ref_p0 = _p0; - var ptr_structName = _structName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_structName); + var ptr_structName = MemoryUtils.StringToHGlobalUtf8(_structName); fn__startSaveStructWithSize(&success, &ref_p0, _size, ptr_structName); _p0 = ref_p0; - if (ptr_structName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_structName); + Marshal.FreeHGlobal(ptr_structName); if (!success) throw new Exception("Native execution failed"); } } @@ -57876,10 +57863,10 @@ public void StartSaveArrayWithSize(ref int _p0, int _size, string _arrayName) if (fn__startSaveArrayWithSize == null) fn__startSaveArrayWithSize = (delegate* unmanaged[Cdecl]) funcTable[0x60FE567DF1B1AF9DUL]; var success = false; var ref_p0 = _p0; - var ptr_arrayName = _arrayName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_arrayName); + var ptr_arrayName = MemoryUtils.StringToHGlobalUtf8(_arrayName); fn__startSaveArrayWithSize(&success, &ref_p0, _size, ptr_arrayName); _p0 = ref_p0; - if (ptr_arrayName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_arrayName); + Marshal.FreeHGlobal(ptr_arrayName); if (!success) throw new Exception("Native execution failed"); } } @@ -57953,10 +57940,10 @@ public bool CreateIncident(int _dispatchService, float _x, float _y, float _z, i } public bool CreateIncidentWithEntity(int dispatchService, IPlayer ped, int numUnits, float radius, ref int outIncidentID, int p5, int p6) => CreateIncidentWithEntity(dispatchService, ped.ScriptId, numUnits, radius, ref outIncidentID, p5, p6); - public bool CreateIncidentWithEntity(int _dispatchService, int _ped, int _numUnits, float _radius, ref int _outIncidentID, int _p5, int _p6) + public bool CreateIncidentWithEntity(int _dispatchService, uint _ped, int _numUnits, float _radius, ref int _outIncidentID, int _p5, int _p6) { unsafe { - if (fn__createIncidentWithEntity == null) fn__createIncidentWithEntity = (delegate* unmanaged[Cdecl]) funcTable[0x05983472F0494E60UL]; + if (fn__createIncidentWithEntity == null) fn__createIncidentWithEntity = (delegate* unmanaged[Cdecl]) funcTable[0x05983472F0494E60UL]; var success = false; var ref_outIncidentID = _outIncidentID; var result = fn__createIncidentWithEntity(&success, _dispatchService, _ped, _numUnits, _radius, &ref_outIncidentID, _p5, _p6); @@ -58096,10 +58083,10 @@ public void RemovePopMultiplierSphere(int _id, bool _p1) } public void EnableTennisMode(IPlayer ped, bool toggle, bool p2) => EnableTennisMode(ped.ScriptId, toggle, p2); - public void EnableTennisMode(int _ped, bool _toggle, bool _p2) + public void EnableTennisMode(uint _ped, bool _toggle, bool _p2) { unsafe { - if (fn__enableTennisMode == null) fn__enableTennisMode = (delegate* unmanaged[Cdecl]) funcTable[0x28A04B411933F8A6UL]; + if (fn__enableTennisMode == null) fn__enableTennisMode = (delegate* unmanaged[Cdecl]) funcTable[0x28A04B411933F8A6UL]; var success = false; fn__enableTennisMode(&success, _ped, (byte) (_toggle ? 1 : 0), (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -58107,10 +58094,10 @@ public void EnableTennisMode(int _ped, bool _toggle, bool _p2) } public bool IsTennisMode(IPlayer ped) => IsTennisMode(ped.ScriptId); - public bool IsTennisMode(int _ped) + public bool IsTennisMode(uint _ped) { unsafe { - if (fn__isTennisMode == null) fn__isTennisMode = (delegate* unmanaged[Cdecl]) funcTable[0x5D5479D115290C3FUL]; + if (fn__isTennisMode == null) fn__isTennisMode = (delegate* unmanaged[Cdecl]) funcTable[0x5D5479D115290C3FUL]; var success = false; var result = fn__isTennisMode(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -58119,25 +58106,25 @@ public bool IsTennisMode(int _ped) } public void PlayTennisSwingAnim(IPlayer ped, string animDict, string animName, float p3, float p4, bool p5) => PlayTennisSwingAnim(ped.ScriptId, animDict, animName, p3, p4, p5); - public void PlayTennisSwingAnim(int _ped, string _animDict, string _animName, float _p3, float _p4, bool _p5) + public void PlayTennisSwingAnim(uint _ped, string _animDict, string _animName, float _p3, float _p4, bool _p5) { unsafe { - if (fn__playTennisSwingAnim == null) fn__playTennisSwingAnim = (delegate* unmanaged[Cdecl]) funcTable[0xE266ED23311F24D4UL]; + if (fn__playTennisSwingAnim == null) fn__playTennisSwingAnim = (delegate* unmanaged[Cdecl]) funcTable[0xE266ED23311F24D4UL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); fn__playTennisSwingAnim(&success, _ped, ptr_animDict, ptr_animName, _p3, _p4, (byte) (_p5 ? 1 : 0)); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animName); if (!success) throw new Exception("Native execution failed"); } } public bool GetTennisSwingAnimComplete(IPlayer ped) => GetTennisSwingAnimComplete(ped.ScriptId); - public bool GetTennisSwingAnimComplete(int _ped) + public bool GetTennisSwingAnimComplete(uint _ped) { unsafe { - if (fn__getTennisSwingAnimComplete == null) fn__getTennisSwingAnimComplete = (delegate* unmanaged[Cdecl]) funcTable[0x17DF68D720AA77F8UL]; + if (fn__getTennisSwingAnimComplete == null) fn__getTennisSwingAnimComplete = (delegate* unmanaged[Cdecl]) funcTable[0x17DF68D720AA77F8UL]; var success = false; var result = fn__getTennisSwingAnimComplete(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -58146,10 +58133,10 @@ public bool GetTennisSwingAnimComplete(int _ped) } public bool GetTennisSwingAnimCanBeInterrupted(IPlayer ped) => GetTennisSwingAnimCanBeInterrupted(ped.ScriptId); - public bool GetTennisSwingAnimCanBeInterrupted(int _ped) + public bool GetTennisSwingAnimCanBeInterrupted(uint _ped) { unsafe { - if (fn__getTennisSwingAnimCanBeInterrupted == null) fn__getTennisSwingAnimCanBeInterrupted = (delegate* unmanaged[Cdecl]) funcTable[0x19BFED045C647C49UL]; + if (fn__getTennisSwingAnimCanBeInterrupted == null) fn__getTennisSwingAnimCanBeInterrupted = (delegate* unmanaged[Cdecl]) funcTable[0x19BFED045C647C49UL]; var success = false; var result = fn__getTennisSwingAnimCanBeInterrupted(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -58158,10 +58145,10 @@ public bool GetTennisSwingAnimCanBeInterrupted(int _ped) } public bool GetTennisSwingAnimSwung(IPlayer ped) => GetTennisSwingAnimSwung(ped.ScriptId); - public bool GetTennisSwingAnimSwung(int _ped) + public bool GetTennisSwingAnimSwung(uint _ped) { unsafe { - if (fn__getTennisSwingAnimSwung == null) fn__getTennisSwingAnimSwung = (delegate* unmanaged[Cdecl]) funcTable[0xE95B0C7D5BA3B96BUL]; + if (fn__getTennisSwingAnimSwung == null) fn__getTennisSwingAnimSwung = (delegate* unmanaged[Cdecl]) funcTable[0xE95B0C7D5BA3B96BUL]; var success = false; var result = fn__getTennisSwingAnimSwung(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -58170,10 +58157,10 @@ public bool GetTennisSwingAnimSwung(int _ped) } public void PlayTennisDiveAnim(IPlayer ped, int p1, float p2, float p3, float p4, bool p5) => PlayTennisDiveAnim(ped.ScriptId, p1, p2, p3, p4, p5); - public void PlayTennisDiveAnim(int _ped, int _p1, float _p2, float _p3, float _p4, bool _p5) + public void PlayTennisDiveAnim(uint _ped, int _p1, float _p2, float _p3, float _p4, bool _p5) { unsafe { - if (fn__playTennisDiveAnim == null) fn__playTennisDiveAnim = (delegate* unmanaged[Cdecl]) funcTable[0x8FA9C42FC5D7C64BUL]; + if (fn__playTennisDiveAnim == null) fn__playTennisDiveAnim = (delegate* unmanaged[Cdecl]) funcTable[0x8FA9C42FC5D7C64BUL]; var success = false; fn__playTennisDiveAnim(&success, _ped, _p1, _p2, _p3, _p4, (byte) (_p5 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -58181,14 +58168,14 @@ public void PlayTennisDiveAnim(int _ped, int _p1, float _p2, float _p3, float _p } public void SetTennisMoveNetworkSignalFloat(IPlayer ped, string p1, float p2) => SetTennisMoveNetworkSignalFloat(ped.ScriptId, p1, p2); - public void SetTennisMoveNetworkSignalFloat(int _ped, string _p1, float _p2) + public void SetTennisMoveNetworkSignalFloat(uint _ped, string _p1, float _p2) { unsafe { - if (fn__setTennisMoveNetworkSignalFloat == null) fn__setTennisMoveNetworkSignalFloat = (delegate* unmanaged[Cdecl]) funcTable[0x54F157E0336A3822UL]; + if (fn__setTennisMoveNetworkSignalFloat == null) fn__setTennisMoveNetworkSignalFloat = (delegate* unmanaged[Cdecl]) funcTable[0x54F157E0336A3822UL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); fn__setTennisMoveNetworkSignalFloat(&success, _ped, ptr_p1, _p2); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); } } @@ -58360,27 +58347,27 @@ public void DisplayOnscreenKeyboardWithLongerInitialString(int _p0, string _wind unsafe { if (fn__displayOnscreenKeyboardWithLongerInitialString == null) fn__displayOnscreenKeyboardWithLongerInitialString = (delegate* unmanaged[Cdecl]) funcTable[0xCA78CFA0366592FEUL]; var success = false; - var ptr_windowTitle = _windowTitle == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_windowTitle); + var ptr_windowTitle = MemoryUtils.StringToHGlobalUtf8(_windowTitle); var ref_p2 = _p2; - var ptr_defaultText = _defaultText == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_defaultText); - var ptr_defaultConcat1 = _defaultConcat1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_defaultConcat1); - var ptr_defaultConcat2 = _defaultConcat2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_defaultConcat2); - var ptr_defaultConcat3 = _defaultConcat3 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_defaultConcat3); - var ptr_defaultConcat4 = _defaultConcat4 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_defaultConcat4); - var ptr_defaultConcat5 = _defaultConcat5 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_defaultConcat5); - var ptr_defaultConcat6 = _defaultConcat6 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_defaultConcat6); - var ptr_defaultConcat7 = _defaultConcat7 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_defaultConcat7); + var ptr_defaultText = MemoryUtils.StringToHGlobalUtf8(_defaultText); + var ptr_defaultConcat1 = MemoryUtils.StringToHGlobalUtf8(_defaultConcat1); + var ptr_defaultConcat2 = MemoryUtils.StringToHGlobalUtf8(_defaultConcat2); + var ptr_defaultConcat3 = MemoryUtils.StringToHGlobalUtf8(_defaultConcat3); + var ptr_defaultConcat4 = MemoryUtils.StringToHGlobalUtf8(_defaultConcat4); + var ptr_defaultConcat5 = MemoryUtils.StringToHGlobalUtf8(_defaultConcat5); + var ptr_defaultConcat6 = MemoryUtils.StringToHGlobalUtf8(_defaultConcat6); + var ptr_defaultConcat7 = MemoryUtils.StringToHGlobalUtf8(_defaultConcat7); fn__displayOnscreenKeyboardWithLongerInitialString(&success, _p0, ptr_windowTitle, &ref_p2, ptr_defaultText, ptr_defaultConcat1, ptr_defaultConcat2, ptr_defaultConcat3, ptr_defaultConcat4, ptr_defaultConcat5, ptr_defaultConcat6, ptr_defaultConcat7, _maxInputLength); - if (ptr_windowTitle != IntPtr.Zero) Marshal.FreeHGlobal(ptr_windowTitle); + Marshal.FreeHGlobal(ptr_windowTitle); _p2 = ref_p2; - if (ptr_defaultText != IntPtr.Zero) Marshal.FreeHGlobal(ptr_defaultText); - if (ptr_defaultConcat1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_defaultConcat1); - if (ptr_defaultConcat2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_defaultConcat2); - if (ptr_defaultConcat3 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_defaultConcat3); - if (ptr_defaultConcat4 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_defaultConcat4); - if (ptr_defaultConcat5 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_defaultConcat5); - if (ptr_defaultConcat6 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_defaultConcat6); - if (ptr_defaultConcat7 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_defaultConcat7); + Marshal.FreeHGlobal(ptr_defaultText); + Marshal.FreeHGlobal(ptr_defaultConcat1); + Marshal.FreeHGlobal(ptr_defaultConcat2); + Marshal.FreeHGlobal(ptr_defaultConcat3); + Marshal.FreeHGlobal(ptr_defaultConcat4); + Marshal.FreeHGlobal(ptr_defaultConcat5); + Marshal.FreeHGlobal(ptr_defaultConcat6); + Marshal.FreeHGlobal(ptr_defaultConcat7); if (!success) throw new Exception("Native execution failed"); } } @@ -58390,19 +58377,19 @@ public void DisplayOnscreenKeyboard(int _p0, string _windowTitle, string _p2, st unsafe { if (fn__displayOnscreenKeyboard == null) fn__displayOnscreenKeyboard = (delegate* unmanaged[Cdecl]) funcTable[0x00DC833F2568DBF6UL]; var success = false; - var ptr_windowTitle = _windowTitle == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_windowTitle); - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); - var ptr_defaultText = _defaultText == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_defaultText); - var ptr_defaultConcat1 = _defaultConcat1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_defaultConcat1); - var ptr_defaultConcat2 = _defaultConcat2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_defaultConcat2); - var ptr_defaultConcat3 = _defaultConcat3 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_defaultConcat3); + var ptr_windowTitle = MemoryUtils.StringToHGlobalUtf8(_windowTitle); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_defaultText = MemoryUtils.StringToHGlobalUtf8(_defaultText); + var ptr_defaultConcat1 = MemoryUtils.StringToHGlobalUtf8(_defaultConcat1); + var ptr_defaultConcat2 = MemoryUtils.StringToHGlobalUtf8(_defaultConcat2); + var ptr_defaultConcat3 = MemoryUtils.StringToHGlobalUtf8(_defaultConcat3); fn__displayOnscreenKeyboard(&success, _p0, ptr_windowTitle, ptr_p2, ptr_defaultText, ptr_defaultConcat1, ptr_defaultConcat2, ptr_defaultConcat3, _maxInputLength); - if (ptr_windowTitle != IntPtr.Zero) Marshal.FreeHGlobal(ptr_windowTitle); - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); - if (ptr_defaultText != IntPtr.Zero) Marshal.FreeHGlobal(ptr_defaultText); - if (ptr_defaultConcat1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_defaultConcat1); - if (ptr_defaultConcat2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_defaultConcat2); - if (ptr_defaultConcat3 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_defaultConcat3); + Marshal.FreeHGlobal(ptr_windowTitle); + Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_defaultText); + Marshal.FreeHGlobal(ptr_defaultConcat1); + Marshal.FreeHGlobal(ptr_defaultConcat2); + Marshal.FreeHGlobal(ptr_defaultConcat3); if (!success) throw new Exception("Native execution failed"); } } @@ -58425,8 +58412,8 @@ public string GetOnscreenKeyboardResult() var success = false; var result = fn__getOnscreenKeyboardResult(&success); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -58483,10 +58470,10 @@ public void SupressRandomEventThisFrame(int _eventType, bool _suppress) } public void SetExplosiveAmmoThisFrame(IPlayer player) => SetExplosiveAmmoThisFrame(player.ScriptId); - public void SetExplosiveAmmoThisFrame(int _player) + public void SetExplosiveAmmoThisFrame(uint _player) { unsafe { - if (fn__setExplosiveAmmoThisFrame == null) fn__setExplosiveAmmoThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0xA66C71C98D5F2CFBUL]; + if (fn__setExplosiveAmmoThisFrame == null) fn__setExplosiveAmmoThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0xA66C71C98D5F2CFBUL]; var success = false; fn__setExplosiveAmmoThisFrame(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -58494,10 +58481,10 @@ public void SetExplosiveAmmoThisFrame(int _player) } public void SetFireAmmoThisFrame(IPlayer player) => SetFireAmmoThisFrame(player.ScriptId); - public void SetFireAmmoThisFrame(int _player) + public void SetFireAmmoThisFrame(uint _player) { unsafe { - if (fn__setFireAmmoThisFrame == null) fn__setFireAmmoThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x11879CDD803D30F4UL]; + if (fn__setFireAmmoThisFrame == null) fn__setFireAmmoThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x11879CDD803D30F4UL]; var success = false; fn__setFireAmmoThisFrame(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -58505,10 +58492,10 @@ public void SetFireAmmoThisFrame(int _player) } public void SetExplosiveMeleeThisFrame(IPlayer player) => SetExplosiveMeleeThisFrame(player.ScriptId); - public void SetExplosiveMeleeThisFrame(int _player) + public void SetExplosiveMeleeThisFrame(uint _player) { unsafe { - if (fn__setExplosiveMeleeThisFrame == null) fn__setExplosiveMeleeThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0xFF1BED81BFDC0FE0UL]; + if (fn__setExplosiveMeleeThisFrame == null) fn__setExplosiveMeleeThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0xFF1BED81BFDC0FE0UL]; var success = false; fn__setExplosiveMeleeThisFrame(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -58516,10 +58503,10 @@ public void SetExplosiveMeleeThisFrame(int _player) } public void SetSuperJumpThisFrame(IPlayer player) => SetSuperJumpThisFrame(player.ScriptId); - public void SetSuperJumpThisFrame(int _player) + public void SetSuperJumpThisFrame(uint _player) { unsafe { - if (fn__setSuperJumpThisFrame == null) fn__setSuperJumpThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x57FFF03E423A4C0BUL]; + if (fn__setSuperJumpThisFrame == null) fn__setSuperJumpThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x57FFF03E423A4C0BUL]; var success = false; fn__setSuperJumpThisFrame(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -58527,10 +58514,10 @@ public void SetSuperJumpThisFrame(int _player) } public void SetBeastJumpThisFrame(IPlayer player) => SetBeastJumpThisFrame(player.ScriptId); - public void SetBeastJumpThisFrame(int _player) + public void SetBeastJumpThisFrame(uint _player) { unsafe { - if (fn__setBeastJumpThisFrame == null) fn__setBeastJumpThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x438822C279B73B93UL]; + if (fn__setBeastJumpThisFrame == null) fn__setBeastJumpThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x438822C279B73B93UL]; var success = false; fn__setBeastJumpThisFrame(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -58538,10 +58525,10 @@ public void SetBeastJumpThisFrame(int _player) } public void SetForcedJumpThisFrame(IPlayer player) => SetForcedJumpThisFrame(player.ScriptId); - public void SetForcedJumpThisFrame(int _player) + public void SetForcedJumpThisFrame(uint _player) { unsafe { - if (fn__setForcedJumpThisFrame == null) fn__setForcedJumpThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0xA1183BCFEE0F93D1UL]; + if (fn__setForcedJumpThisFrame == null) fn__setForcedJumpThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0xA1183BCFEE0F93D1UL]; var success = false; fn__setForcedJumpThisFrame(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -58621,10 +58608,10 @@ public void ScriptRaceShutdown() } public void ScriptRacePlayerHitCheckpoint(IPlayer player, int p1, int p2, int p3) => ScriptRacePlayerHitCheckpoint(player.ScriptId, p1, p2, p3); - public void ScriptRacePlayerHitCheckpoint(int _player, int _p1, int _p2, int _p3) + public void ScriptRacePlayerHitCheckpoint(uint _player, int _p1, int _p2, int _p3) { unsafe { - if (fn__scriptRacePlayerHitCheckpoint == null) fn__scriptRacePlayerHitCheckpoint = (delegate* unmanaged[Cdecl]) funcTable[0x1BB299305C3E8C13UL]; + if (fn__scriptRacePlayerHitCheckpoint == null) fn__scriptRacePlayerHitCheckpoint = (delegate* unmanaged[Cdecl]) funcTable[0x1BB299305C3E8C13UL]; var success = false; fn__scriptRacePlayerHitCheckpoint(&success, _player, _p1, _p2, _p3); if (!success) throw new Exception("Native execution failed"); @@ -58632,10 +58619,10 @@ public void ScriptRacePlayerHitCheckpoint(int _player, int _p1, int _p2, int _p3 } public bool ScriptRaceGetPlayerSplitTime(IPlayer player, ref int p1, ref int p2) => ScriptRaceGetPlayerSplitTime(player.ScriptId, ref p1, ref p2); - public bool ScriptRaceGetPlayerSplitTime(int _player, ref int _p1, ref int _p2) + public bool ScriptRaceGetPlayerSplitTime(uint _player, ref int _p1, ref int _p2) { unsafe { - if (fn__scriptRaceGetPlayerSplitTime == null) fn__scriptRaceGetPlayerSplitTime = (delegate* unmanaged[Cdecl]) funcTable[0x8EF5573A1F801A5CUL]; + if (fn__scriptRaceGetPlayerSplitTime == null) fn__scriptRaceGetPlayerSplitTime = (delegate* unmanaged[Cdecl]) funcTable[0x8EF5573A1F801A5CUL]; var success = false; var ref_p1 = _p1; var ref_p2 = _p2; @@ -58929,10 +58916,10 @@ public void SetMobilePhoneRotation(float _rotX, float _rotY, float _rotZ, int _p } public void GetMobilePhoneRotation(ref Vector3 rotation, IVehicle p1) => GetMobilePhoneRotation(ref rotation, p1.ScriptId); - public void GetMobilePhoneRotation(ref Vector3 _rotation, int _p1) + public void GetMobilePhoneRotation(ref Vector3 _rotation, uint _p1) { unsafe { - if (fn__getMobilePhoneRotation == null) fn__getMobilePhoneRotation = (delegate* unmanaged[Cdecl]) funcTable[0x1CEFB61F193070AEUL]; + if (fn__getMobilePhoneRotation == null) fn__getMobilePhoneRotation = (delegate* unmanaged[Cdecl]) funcTable[0x1CEFB61F193070AEUL]; var success = false; var ref_rotation = _rotation; fn__getMobilePhoneRotation(&success, &ref_rotation, _p1); @@ -59125,10 +59112,10 @@ public void CellCamSetSelfieModeHeadPitchOffset(float _pitch) } public bool CellCamIsCharVisibleNoFaceCheck(IEntity entity) => CellCamIsCharVisibleNoFaceCheck(entity.ScriptId); - public bool CellCamIsCharVisibleNoFaceCheck(int _entity) + public bool CellCamIsCharVisibleNoFaceCheck(uint _entity) { unsafe { - if (fn__cellCamIsCharVisibleNoFaceCheck == null) fn__cellCamIsCharVisibleNoFaceCheck = (delegate* unmanaged[Cdecl]) funcTable[0x439E9BC95B7E7FBEUL]; + if (fn__cellCamIsCharVisibleNoFaceCheck == null) fn__cellCamIsCharVisibleNoFaceCheck = (delegate* unmanaged[Cdecl]) funcTable[0x439E9BC95B7E7FBEUL]; var success = false; var result = fn__cellCamIsCharVisibleNoFaceCheck(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -59239,11 +59226,11 @@ public void NetworkRefundCash(int _index, string _context, string _reason, bool unsafe { if (fn__networkRefundCash == null) fn__networkRefundCash = (delegate* unmanaged[Cdecl]) funcTable[0xF9C812CD7C46E817UL]; var success = false; - var ptr_context = _context == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_context); - var ptr_reason = _reason == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_reason); + var ptr_context = MemoryUtils.StringToHGlobalUtf8(_context); + var ptr_reason = MemoryUtils.StringToHGlobalUtf8(_reason); fn__networkRefundCash(&success, _index, ptr_context, ptr_reason, (byte) (_p3 ? 1 : 0)); - if (ptr_context != IntPtr.Zero) Marshal.FreeHGlobal(ptr_context); - if (ptr_reason != IntPtr.Zero) Marshal.FreeHGlobal(ptr_reason); + Marshal.FreeHGlobal(ptr_context); + Marshal.FreeHGlobal(ptr_reason); if (!success) throw new Exception("Native execution failed"); } } @@ -59253,11 +59240,11 @@ public void NetworkDeductCash(int _amount, string _p1, string _p2, bool _p3, boo unsafe { if (fn__networkDeductCash == null) fn__networkDeductCash = (delegate* unmanaged[Cdecl]) funcTable[0x18B7AE224B087E26UL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); fn__networkDeductCash(&success, _amount, ptr_p1, ptr_p2, (byte) (_p3 ? 1 : 0), (byte) (_p4 ? 1 : 0), (byte) (_p5 ? 1 : 0)); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p2); if (!success) throw new Exception("Native execution failed"); } } @@ -59428,9 +59415,9 @@ public void NetworkEarnFromBetting(int _amount, string _p1) unsafe { if (fn__networkEarnFromBetting == null) fn__networkEarnFromBetting = (delegate* unmanaged[Cdecl]) funcTable[0x827A5BA1A44ACA6DUL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); fn__networkEarnFromBetting(&success, _amount, ptr_p1); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); } } @@ -59440,9 +59427,9 @@ public void NetworkEarnFromJob(int _amount, string _p1) unsafe { if (fn__networkEarnFromJob == null) fn__networkEarnFromJob = (delegate* unmanaged[Cdecl]) funcTable[0xB2CC4836834E8A98UL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); fn__networkEarnFromJob(&success, _amount, ptr_p1); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); } } @@ -59452,9 +59439,9 @@ public void NetworkEarnFromJobx2(int _amount, string _p1) unsafe { if (fn__networkEarnFromJobx2 == null) fn__networkEarnFromJobx2 = (delegate* unmanaged[Cdecl]) funcTable[0xDEBBF584665411D0UL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); fn__networkEarnFromJobx2(&success, _amount, ptr_p1); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); } } @@ -59464,9 +59451,9 @@ public void NetworkEarnFromPremiumJob(int _amount, string _p1) unsafe { if (fn__networkEarnFromPremiumJob == null) fn__networkEarnFromPremiumJob = (delegate* unmanaged[Cdecl]) funcTable[0xC8407624CEF2354BUL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); fn__networkEarnFromPremiumJob(&success, _amount, ptr_p1); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); } } @@ -59476,9 +59463,9 @@ public void NetworkEarnFromBendJob(int _amount, string _heistHash) unsafe { if (fn__networkEarnFromBendJob == null) fn__networkEarnFromBendJob = (delegate* unmanaged[Cdecl]) funcTable[0x61326EE6DF15B0CAUL]; var success = false; - var ptr_heistHash = _heistHash == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_heistHash); + var ptr_heistHash = MemoryUtils.StringToHGlobalUtf8(_heistHash); fn__networkEarnFromBendJob(&success, _amount, ptr_heistHash); - if (ptr_heistHash != IntPtr.Zero) Marshal.FreeHGlobal(ptr_heistHash); + Marshal.FreeHGlobal(ptr_heistHash); if (!success) throw new Exception("Native execution failed"); } } @@ -59594,9 +59581,9 @@ public void NetworkEarnFromDailyObjectives(int _amount, string _type, int _chara unsafe { if (fn__networkEarnFromDailyObjectives == null) fn__networkEarnFromDailyObjectives = (delegate* unmanaged[Cdecl]) funcTable[0x6EA318C91C1A8786UL]; var success = false; - var ptr_type = _type == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_type); + var ptr_type = MemoryUtils.StringToHGlobalUtf8(_type); fn__networkEarnFromDailyObjectives(&success, _amount, ptr_type, _characterSlot); - if (ptr_type != IntPtr.Zero) Marshal.FreeHGlobal(ptr_type); + Marshal.FreeHGlobal(ptr_type); if (!success) throw new Exception("Native execution failed"); } } @@ -59606,10 +59593,10 @@ public void NetworkEarnFromAmbientJob(int _p0, string _p1, ref int _p2) unsafe { if (fn__networkEarnFromAmbientJob == null) fn__networkEarnFromAmbientJob = (delegate* unmanaged[Cdecl]) funcTable[0xFB6DB092FBAE29E6UL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); var ref_p2 = _p2; fn__networkEarnFromAmbientJob(&success, _p0, ptr_p1, &ref_p2); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); _p2 = ref_p2; if (!success) throw new Exception("Native execution failed"); } @@ -59868,19 +59855,19 @@ public void NetworkBuyItem(int _amount, uint _item, int _p2, int _p3, bool _p4, unsafe { if (fn__networkBuyItem == null) fn__networkBuyItem = (delegate* unmanaged[Cdecl]) funcTable[0xF0077C797F66A355UL]; var success = false; - var ptr_item_name = _item_name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_item_name); + var ptr_item_name = MemoryUtils.StringToHGlobalUtf8(_item_name); fn__networkBuyItem(&success, _amount, _item, _p2, _p3, (byte) (_p4 ? 1 : 0), ptr_item_name, _p6, _p7, _p8, (byte) (_p9 ? 1 : 0)); - if (ptr_item_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_item_name); + Marshal.FreeHGlobal(ptr_item_name); if (!success) throw new Exception("Native execution failed"); } } - public void NetworkSpentTaxi(int _amount, bool _p1, bool _p2, int _p3) + public void NetworkSpentTaxi(int _amount, bool _p1, bool _p2, int _p3, int _p4) { unsafe { - if (fn__networkSpentTaxi == null) fn__networkSpentTaxi = (delegate* unmanaged[Cdecl]) funcTable[0x17C3A7D31EAE39F9UL]; + if (fn__networkSpentTaxi == null) fn__networkSpentTaxi = (delegate* unmanaged[Cdecl]) funcTable[0x17C3A7D31EAE39F9UL]; var success = false; - fn__networkSpentTaxi(&success, _amount, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0), _p3); + fn__networkSpentTaxi(&success, _amount, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0), _p3, _p4); if (!success) throw new Exception("Native execution failed"); } } @@ -59900,9 +59887,9 @@ public void NetworkPayMatchEntryFee(int _amount, string _matchId, bool _p2, bool unsafe { if (fn__networkPayMatchEntryFee == null) fn__networkPayMatchEntryFee = (delegate* unmanaged[Cdecl]) funcTable[0x9346E14F2AF74D46UL]; var success = false; - var ptr_matchId = _matchId == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_matchId); + var ptr_matchId = MemoryUtils.StringToHGlobalUtf8(_matchId); fn__networkPayMatchEntryFee(&success, _amount, ptr_matchId, (byte) (_p2 ? 1 : 0), (byte) (_p3 ? 1 : 0)); - if (ptr_matchId != IntPtr.Zero) Marshal.FreeHGlobal(ptr_matchId); + Marshal.FreeHGlobal(ptr_matchId); if (!success) throw new Exception("Native execution failed"); } } @@ -59912,9 +59899,9 @@ public void NetworkSpentBetting(int _amount, int _p1, string _matchId, bool _p3, unsafe { if (fn__networkSpentBetting == null) fn__networkSpentBetting = (delegate* unmanaged[Cdecl]) funcTable[0x1C436FD11FFA692FUL]; var success = false; - var ptr_matchId = _matchId == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_matchId); + var ptr_matchId = MemoryUtils.StringToHGlobalUtf8(_matchId); fn__networkSpentBetting(&success, _amount, _p1, ptr_matchId, (byte) (_p3 ? 1 : 0), (byte) (_p4 ? 1 : 0)); - if (ptr_matchId != IntPtr.Zero) Marshal.FreeHGlobal(ptr_matchId); + Marshal.FreeHGlobal(ptr_matchId); if (!success) throw new Exception("Native execution failed"); } } @@ -59990,10 +59977,10 @@ public void NetworkSpentAmmoDrop(int _p0, bool _p1, bool _p2, int _p3) } public void NetworkBuyBounty(int amount, IPlayer victim, bool p2, bool p3, int p4) => NetworkBuyBounty(amount, victim.ScriptId, p2, p3, p4); - public void NetworkBuyBounty(int _amount, int _victim, bool _p2, bool _p3, int _p4) + public void NetworkBuyBounty(int _amount, uint _victim, bool _p2, bool _p3, int _p4) { unsafe { - if (fn__networkBuyBounty == null) fn__networkBuyBounty = (delegate* unmanaged[Cdecl]) funcTable[0x7B718E197453F2D9UL]; + if (fn__networkBuyBounty == null) fn__networkBuyBounty = (delegate* unmanaged[Cdecl]) funcTable[0x7B718E197453F2D9UL]; var success = false; fn__networkBuyBounty(&success, _amount, _victim, (byte) (_p2 ? 1 : 0), (byte) (_p3 ? 1 : 0), _p4); if (!success) throw new Exception("Native execution failed"); @@ -60264,14 +60251,14 @@ public string ProcessCashGift(ref int _p0, ref int _p1, string _p2) var success = false; var ref_p0 = _p0; var ref_p1 = _p1; - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); var result = fn__processCashGift(&success, &ref_p0, &ref_p1, ptr_p2); _p0 = ref_p0; _p1 = ref_p1; - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p2); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -60352,9 +60339,9 @@ public void NetworkSpentJobSkip(int _amount, string _matchId, bool _p2, bool _p3 unsafe { if (fn__networkSpentJobSkip == null) fn__networkSpentJobSkip = (delegate* unmanaged[Cdecl]) funcTable[0x28F174A67B8D0C2FUL]; var success = false; - var ptr_matchId = _matchId == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_matchId); + var ptr_matchId = MemoryUtils.StringToHGlobalUtf8(_matchId); fn__networkSpentJobSkip(&success, _amount, ptr_matchId, (byte) (_p2 ? 1 : 0), (byte) (_p3 ? 1 : 0)); - if (ptr_matchId != IntPtr.Zero) Marshal.FreeHGlobal(ptr_matchId); + Marshal.FreeHGlobal(ptr_matchId); if (!success) throw new Exception("Native execution failed"); } } @@ -60977,9 +60964,9 @@ public void NetworkEarnGangopsAward(int _amount, string _p1, int _p2) unsafe { if (fn__networkEarnGangopsAward == null) fn__networkEarnGangopsAward = (delegate* unmanaged[Cdecl]) funcTable[0xA9A31475F530DFDAUL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); fn__networkEarnGangopsAward(&success, _amount, ptr_p1, _p2); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); } } @@ -60989,9 +60976,9 @@ public void NetworkEarnGangopsElite(int _amount, string _p1, int _actIndex) unsafe { if (fn__networkEarnGangopsElite == null) fn__networkEarnGangopsElite = (delegate* unmanaged[Cdecl]) funcTable[0x2597A0D4A4FC2C77UL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); fn__networkEarnGangopsElite(&success, _amount, ptr_p1, _actIndex); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); } } @@ -61041,9 +61028,9 @@ public void NetworkEarnGangopsSetup(int _amount, string _p1) unsafe { if (fn__networkEarnGangopsSetup == null) fn__networkEarnGangopsSetup = (delegate* unmanaged[Cdecl]) funcTable[0xA9160796D47A2CF8UL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); fn__networkEarnGangopsSetup(&success, _amount, ptr_p1); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); } } @@ -61053,9 +61040,9 @@ public void NetworkEarnGangopsFinale(int _amount, string _p1) unsafe { if (fn__networkEarnGangopsFinale == null) fn__networkEarnGangopsFinale = (delegate* unmanaged[Cdecl]) funcTable[0x1C121FC9545E0D52UL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); fn__networkEarnGangopsFinale(&success, _amount, ptr_p1); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); } } @@ -61160,12 +61147,12 @@ public void NetworkEarnNightclubAndWarehouse(int _p0, int _p1, int _p2, int _p3, } } - public void NetworkSpendNightclubAndWarehouse(int _p0, int _p1, int _p2, int _p3, int _p4, int _p5) + public void NetworkSpendNightclubAndWarehouse(int _p0, int _p1, int _p2, int _p3) { unsafe { - if (fn__networkSpendNightclubAndWarehouse == null) fn__networkSpendNightclubAndWarehouse = (delegate* unmanaged[Cdecl]) funcTable[0x65482BFD0923C8A1UL]; + if (fn__networkSpendNightclubAndWarehouse == null) fn__networkSpendNightclubAndWarehouse = (delegate* unmanaged[Cdecl]) funcTable[0x65482BFD0923C8A1UL]; var success = false; - fn__networkSpendNightclubAndWarehouse(&success, _p0, _p1, _p2, _p3, _p4, _p5); + fn__networkSpendNightclubAndWarehouse(&success, _p0, _p1, _p2, _p3); if (!success) throw new Exception("Native execution failed"); } } @@ -61181,10 +61168,10 @@ public void NetworkSpentRdrHatchetBonus(int _amount, bool _p1, bool _p2) } public void NetworkSpentNightclubEntryFee(IPlayer player, int amount, int p1, bool p2, bool p3) => NetworkSpentNightclubEntryFee(player.ScriptId, amount, p1, p2, p3); - public void NetworkSpentNightclubEntryFee(int _player, int _amount, int _p1, bool _p2, bool _p3) + public void NetworkSpentNightclubEntryFee(uint _player, int _amount, int _p1, bool _p2, bool _p3) { unsafe { - if (fn__networkSpentNightclubEntryFee == null) fn__networkSpentNightclubEntryFee = (delegate* unmanaged[Cdecl]) funcTable[0x876056684281655DUL]; + if (fn__networkSpentNightclubEntryFee == null) fn__networkSpentNightclubEntryFee = (delegate* unmanaged[Cdecl]) funcTable[0x876056684281655DUL]; var success = false; fn__networkSpentNightclubEntryFee(&success, _player, _amount, _p1, (byte) (_p2 ? 1 : 0), (byte) (_p3 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -61266,9 +61253,9 @@ public void NetworkSpendBuyArena(int _amount, bool _p1, bool _p2, string _p3) unsafe { if (fn__networkSpendBuyArena == null) fn__networkSpendBuyArena = (delegate* unmanaged[Cdecl]) funcTable[0x40D5DA9550B7CB46UL]; var success = false; - var ptr_p3 = _p3 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p3); + var ptr_p3 = MemoryUtils.StringToHGlobalUtf8(_p3); fn__networkSpendBuyArena(&success, _amount, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0), ptr_p3); - if (ptr_p3 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p3); + Marshal.FreeHGlobal(ptr_p3); if (!success) throw new Exception("Native execution failed"); } } @@ -61278,9 +61265,9 @@ public void NetworkSpendUpgradeArena(int _amount, bool _p1, bool _p2, string _p3 unsafe { if (fn__networkSpendUpgradeArena == null) fn__networkSpendUpgradeArena = (delegate* unmanaged[Cdecl]) funcTable[0x037ABB06825D7AB1UL]; var success = false; - var ptr_p3 = _p3 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p3); + var ptr_p3 = MemoryUtils.StringToHGlobalUtf8(_p3); fn__networkSpendUpgradeArena(&success, _amount, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0), ptr_p3); - if (ptr_p3 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p3); + Marshal.FreeHGlobal(ptr_p3); if (!success) throw new Exception("Native execution failed"); } } @@ -61809,12 +61796,12 @@ public void NetworkSpendUpgradeAutoshop(int _p0, int _p1, int _p2, int _p3) } } - public void NetworkEarnAutoshopBusiness(int _p0, int _p1) + public void NetworkEarnAutoshopBusiness(int _p0, int _p1, int _p2) { unsafe { - if (fn__networkEarnAutoshopBusiness == null) fn__networkEarnAutoshopBusiness = (delegate* unmanaged[Cdecl]) funcTable[0x36A7FD5A7194B03EUL]; + if (fn__networkEarnAutoshopBusiness == null) fn__networkEarnAutoshopBusiness = (delegate* unmanaged[Cdecl]) funcTable[0x36A7FD5A7194B03EUL]; var success = false; - fn__networkEarnAutoshopBusiness(&success, _p0, _p1); + fn__networkEarnAutoshopBusiness(&success, _p0, _p1, _p2); if (!success) throw new Exception("Native execution failed"); } } @@ -62273,8 +62260,8 @@ public string NetworkGetStringWalletBalance(int _characterSlot) var success = false; var result = fn__networkGetStringWalletBalance(&success, _characterSlot); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -62286,8 +62273,8 @@ public string NetworkGetStringBankBalance() var success = false; var result = fn__networkGetStringBankBalance(&success); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -62299,8 +62286,8 @@ public string NetworkGetStringBankWalletBalance() var success = false; var result = fn__networkGetStringBankWalletBalance(&success); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -62442,9 +62429,9 @@ public bool NetGameserverCatalogItemIsValid(string _name) unsafe { if (fn__netGameserverCatalogItemIsValid == null) fn__netGameserverCatalogItemIsValid = (delegate* unmanaged[Cdecl]) funcTable[0xBD4D7EAF8A30F637UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var result = fn__netGameserverCatalogItemIsValid(&success, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -62895,8 +62882,8 @@ public string GetOnlineVersion() var success = false; var result = fn__getOnlineVersion(&success); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -63044,10 +63031,10 @@ public bool NetworkIsHost() } } - public int NetworkGetHostPlayerIndex() + public uint NetworkGetHostPlayerIndex() { unsafe { - if (fn__networkGetHostPlayerIndex == null) fn__networkGetHostPlayerIndex = (delegate* unmanaged[Cdecl]) funcTable[0x8251FB94DC4FDFC8UL]; + if (fn__networkGetHostPlayerIndex == null) fn__networkGetHostPlayerIndex = (delegate* unmanaged[Cdecl]) funcTable[0x8251FB94DC4FDFC8UL]; var success = false; var result = fn__networkGetHostPlayerIndex(&success); if (!success) throw new Exception("Native execution failed"); @@ -63100,10 +63087,10 @@ public bool NetworkHaveUserContentPrivileges(int _p0) } public bool NetworkHaveCommunicationPrivileges(int p0, IPlayer player) => NetworkHaveCommunicationPrivileges(p0, player.ScriptId); - public bool NetworkHaveCommunicationPrivileges(int _p0, int _player) + public bool NetworkHaveCommunicationPrivileges(int _p0, uint _player) { unsafe { - if (fn__networkHaveCommunicationPrivileges == null) fn__networkHaveCommunicationPrivileges = (delegate* unmanaged[Cdecl]) funcTable[0xAEEF48CDF5B6CE7CUL]; + if (fn__networkHaveCommunicationPrivileges == null) fn__networkHaveCommunicationPrivileges = (delegate* unmanaged[Cdecl]) funcTable[0xAEEF48CDF5B6CE7CUL]; var success = false; var result = fn__networkHaveCommunicationPrivileges(&success, _p0, _player); if (!success) throw new Exception("Native execution failed"); @@ -63395,34 +63382,34 @@ public bool NetworkCanEnterMultiplayer() } } - public bool NetworkSessionDoFreeroamQuickmatch(int _p0, int _p1, int _p2, int _maxPlayers, int _p4, int _p5) + public bool NetworkSessionDoFreeroamQuickmatch(int _p0, int _p1, int _p2, int _maxPlayers) { unsafe { - if (fn__networkSessionDoFreeroamQuickmatch == null) fn__networkSessionDoFreeroamQuickmatch = (delegate* unmanaged[Cdecl]) funcTable[0x330ED4D05491934FUL]; + if (fn__networkSessionDoFreeroamQuickmatch == null) fn__networkSessionDoFreeroamQuickmatch = (delegate* unmanaged[Cdecl]) funcTable[0x330ED4D05491934FUL]; var success = false; - var result = fn__networkSessionDoFreeroamQuickmatch(&success, _p0, _p1, _p2, _maxPlayers, _p4, _p5); + var result = fn__networkSessionDoFreeroamQuickmatch(&success, _p0, _p1, _p2, _maxPlayers); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } - public bool NetworkSessionDoFriendMatchmaking(int _p0, int _p1, int _maxPlayers, bool _p3) + public bool NetworkSessionDoFriendMatchmaking(int _p0, int _p1, int _maxPlayers) { unsafe { - if (fn__networkSessionDoFriendMatchmaking == null) fn__networkSessionDoFriendMatchmaking = (delegate* unmanaged[Cdecl]) funcTable[0x2CFC76E0D087C994UL]; + if (fn__networkSessionDoFriendMatchmaking == null) fn__networkSessionDoFriendMatchmaking = (delegate* unmanaged[Cdecl]) funcTable[0x2CFC76E0D087C994UL]; var success = false; - var result = fn__networkSessionDoFriendMatchmaking(&success, _p0, _p1, _maxPlayers, (byte) (_p3 ? 1 : 0)); + var result = fn__networkSessionDoFriendMatchmaking(&success, _p0, _p1, _maxPlayers); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } - public bool NetworkSessionDoCrewMatchmaking(int _crewId, int _p1, int _p2, int _maxPlayers, bool _p4) + public bool NetworkSessionDoCrewMatchmaking(int _crewId, int _p1, int _p2, int _maxPlayers) { unsafe { - if (fn__networkSessionDoCrewMatchmaking == null) fn__networkSessionDoCrewMatchmaking = (delegate* unmanaged[Cdecl]) funcTable[0x94BC51E9449D917FUL]; + if (fn__networkSessionDoCrewMatchmaking == null) fn__networkSessionDoCrewMatchmaking = (delegate* unmanaged[Cdecl]) funcTable[0x94BC51E9449D917FUL]; var success = false; - var result = fn__networkSessionDoCrewMatchmaking(&success, _crewId, _p1, _p2, _maxPlayers, (byte) (_p4 ? 1 : 0)); + var result = fn__networkSessionDoCrewMatchmaking(&success, _crewId, _p1, _p2, _maxPlayers); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -63539,10 +63526,10 @@ public bool NetworkSessionLeave(int _p0) } public void NetworkSessionKickPlayer(IPlayer player) => NetworkSessionKickPlayer(player.ScriptId); - public void NetworkSessionKickPlayer(int _player) + public void NetworkSessionKickPlayer(uint _player) { unsafe { - if (fn__networkSessionKickPlayer == null) fn__networkSessionKickPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xFA8904DC5F304220UL]; + if (fn__networkSessionKickPlayer == null) fn__networkSessionKickPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xFA8904DC5F304220UL]; var success = false; fn__networkSessionKickPlayer(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -63550,10 +63537,10 @@ public void NetworkSessionKickPlayer(int _player) } public bool NetworkSessionGetKickVote(IPlayer player) => NetworkSessionGetKickVote(player.ScriptId); - public bool NetworkSessionGetKickVote(int _player) + public bool NetworkSessionGetKickVote(uint _player) { unsafe { - if (fn__networkSessionGetKickVote == null) fn__networkSessionGetKickVote = (delegate* unmanaged[Cdecl]) funcTable[0xD6D09A6F32F49EF1UL]; + if (fn__networkSessionGetKickVote == null) fn__networkSessionGetKickVote = (delegate* unmanaged[Cdecl]) funcTable[0xD6D09A6F32F49EF1UL]; var success = false; var result = fn__networkSessionGetKickVote(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -64371,10 +64358,10 @@ public bool NetworkSendTextMessage(string _message, ref int _gamerHandle) unsafe { if (fn__networkSendTextMessage == null) fn__networkSendTextMessage = (delegate* unmanaged[Cdecl]) funcTable[0x3A214F2EC889B100UL]; var success = false; - var ptr_message = _message == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_message); + var ptr_message = MemoryUtils.StringToHGlobalUtf8(_message); var ref_gamerHandle = _gamerHandle; var result = fn__networkSendTextMessage(&success, ptr_message, &ref_gamerHandle); - if (ptr_message != IntPtr.Zero) Marshal.FreeHGlobal(ptr_message); + Marshal.FreeHGlobal(ptr_message); _gamerHandle = ref_gamerHandle; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -64794,9 +64781,9 @@ public void NetworkApplyTransitionParameterString(int _p0, string _string, bool unsafe { if (fn__networkApplyTransitionParameterString == null) fn__networkApplyTransitionParameterString = (delegate* unmanaged[Cdecl]) funcTable[0xEBEFC2E77084F599UL]; var success = false; - var ptr_string = _string == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_string); + var ptr_string = MemoryUtils.StringToHGlobalUtf8(_string); fn__networkApplyTransitionParameterString(&success, _p0, ptr_string, (byte) (_p2 ? 1 : 0)); - if (ptr_string != IntPtr.Zero) Marshal.FreeHGlobal(ptr_string); + Marshal.FreeHGlobal(ptr_string); if (!success) throw new Exception("Native execution failed"); } } @@ -64807,10 +64794,10 @@ public bool NetworkSendTransitionGamerInstruction(ref int _gamerHandle, string _ if (fn__networkSendTransitionGamerInstruction == null) fn__networkSendTransitionGamerInstruction = (delegate* unmanaged[Cdecl]) funcTable[0x31D1D2B858D25E6BUL]; var success = false; var ref_gamerHandle = _gamerHandle; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); var result = fn__networkSendTransitionGamerInstruction(&success, &ref_gamerHandle, ptr_p1, _p2, _p3, (byte) (_p4 ? 1 : 0)); _gamerHandle = ref_gamerHandle; - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -65034,10 +65021,10 @@ public void NetworkTransitionBlockJoinRequests(bool _p0) } public bool NetworkHasPlayerStartedTransition(IPlayer player) => NetworkHasPlayerStartedTransition(player.ScriptId); - public bool NetworkHasPlayerStartedTransition(int _player) + public bool NetworkHasPlayerStartedTransition(uint _player) { unsafe { - if (fn__networkHasPlayerStartedTransition == null) fn__networkHasPlayerStartedTransition = (delegate* unmanaged[Cdecl]) funcTable[0x9AC9CCBFA8C29795UL]; + if (fn__networkHasPlayerStartedTransition == null) fn__networkHasPlayerStartedTransition = (delegate* unmanaged[Cdecl]) funcTable[0x9AC9CCBFA8C29795UL]; var success = false; var result = fn__networkHasPlayerStartedTransition(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -65057,10 +65044,10 @@ public bool NetworkAreTransitionDetailsValid(int _p0) } public bool NetworkJoinTransition(IPlayer player) => NetworkJoinTransition(player.ScriptId); - public bool NetworkJoinTransition(int _player) + public bool NetworkJoinTransition(uint _player) { unsafe { - if (fn__networkJoinTransition == null) fn__networkJoinTransition = (delegate* unmanaged[Cdecl]) funcTable[0x9D060B08CD63321AUL]; + if (fn__networkJoinTransition == null) fn__networkJoinTransition = (delegate* unmanaged[Cdecl]) funcTable[0x9D060B08CD63321AUL]; var success = false; var result = fn__networkJoinTransition(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -65131,10 +65118,10 @@ public bool NetworkSendInviteViaPresence(ref int _gamerHandle, string _p1, int _ if (fn__networkSendInviteViaPresence == null) fn__networkSendInviteViaPresence = (delegate* unmanaged[Cdecl]) funcTable[0xC3C7A6AFDB244624UL]; var success = false; var ref_gamerHandle = _gamerHandle; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); var result = fn__networkSendInviteViaPresence(&success, &ref_gamerHandle, ptr_p1, _dataCount, _p3); _gamerHandle = ref_gamerHandle; - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -65146,10 +65133,10 @@ public bool NetworkSendTransitionInviteViaPresence(ref int _gamerHandle, string if (fn__networkSendTransitionInviteViaPresence == null) fn__networkSendTransitionInviteViaPresence = (delegate* unmanaged[Cdecl]) funcTable[0xC116FF9B4D488291UL]; var success = false; var ref_gamerHandle = _gamerHandle; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); var result = fn__networkSendTransitionInviteViaPresence(&success, &ref_gamerHandle, ptr_p1, _dataCount, _p3); _gamerHandle = ref_gamerHandle; - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -65161,10 +65148,10 @@ public bool NetworkSendImportantTransitionInviteViaPresence(ref int _gamerHandle if (fn__networkSendImportantTransitionInviteViaPresence == null) fn__networkSendImportantTransitionInviteViaPresence = (delegate* unmanaged[Cdecl]) funcTable[0x1171A97A3D3981B6UL]; var success = false; var ref_gamerHandle = _gamerHandle; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); var result = fn__networkSendImportantTransitionInviteViaPresence(&success, &ref_gamerHandle, ptr_p1, _dataCount, _p3); _gamerHandle = ref_gamerHandle; - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -65232,8 +65219,8 @@ public string NetworkGetPresenceInviteInviter(int _p0) var success = false; var result = fn__networkGetPresenceInviteInviter(&success, _p0); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -65269,8 +65256,8 @@ public string NetworkGetPresenceInviteContentId(int _p0) var success = false; var result = fn__networkGetPresenceInviteContentId(&success, _p0); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -65753,10 +65740,10 @@ public bool NetworkPlayerIsBadsport() } public bool TriggerPlayerCrcHackerCheck(IPlayer player, int p1, uint scriptHash) => TriggerPlayerCrcHackerCheck(player.ScriptId, p1, scriptHash); - public bool TriggerPlayerCrcHackerCheck(int _player, int _p1, uint _scriptHash) + public bool TriggerPlayerCrcHackerCheck(uint _player, int _p1, uint _scriptHash) { unsafe { - if (fn__triggerPlayerCrcHackerCheck == null) fn__triggerPlayerCrcHackerCheck = (delegate* unmanaged[Cdecl]) funcTable[0x46FB3ED415C7641CUL]; + if (fn__triggerPlayerCrcHackerCheck == null) fn__triggerPlayerCrcHackerCheck = (delegate* unmanaged[Cdecl]) funcTable[0x46FB3ED415C7641CUL]; var success = false; var result = fn__triggerPlayerCrcHackerCheck(&success, _player, _p1, _scriptHash); if (!success) throw new Exception("Native execution failed"); @@ -65765,40 +65752,40 @@ public bool TriggerPlayerCrcHackerCheck(int _player, int _p1, uint _scriptHash) } public bool TriggerTuningCrcHackerCheck(IPlayer player, string p1, string p2) => TriggerTuningCrcHackerCheck(player.ScriptId, p1, p2); - public bool TriggerTuningCrcHackerCheck(int _player, string _p1, string _p2) + public bool TriggerTuningCrcHackerCheck(uint _player, string _p1, string _p2) { unsafe { - if (fn__triggerTuningCrcHackerCheck == null) fn__triggerTuningCrcHackerCheck = (delegate* unmanaged[Cdecl]) funcTable[0xA12D3A5A3753CC23UL]; + if (fn__triggerTuningCrcHackerCheck == null) fn__triggerTuningCrcHackerCheck = (delegate* unmanaged[Cdecl]) funcTable[0xA12D3A5A3753CC23UL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); var result = fn__triggerTuningCrcHackerCheck(&success, _player, ptr_p1, ptr_p2); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p2); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool TriggerFileCrcHackerCheck(IPlayer player, string p1) => TriggerFileCrcHackerCheck(player.ScriptId, p1); - public bool TriggerFileCrcHackerCheck(int _player, string _p1) + public bool TriggerFileCrcHackerCheck(uint _player, string _p1) { unsafe { - if (fn__triggerFileCrcHackerCheck == null) fn__triggerFileCrcHackerCheck = (delegate* unmanaged[Cdecl]) funcTable[0xF287F506767CC8A9UL]; + if (fn__triggerFileCrcHackerCheck == null) fn__triggerFileCrcHackerCheck = (delegate* unmanaged[Cdecl]) funcTable[0xF287F506767CC8A9UL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); var result = fn__triggerFileCrcHackerCheck(&success, _player, ptr_p1); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool RemoteCheaterPlayerDetected(IPlayer player, int a, int b) => RemoteCheaterPlayerDetected(player.ScriptId, a, b); - public bool RemoteCheaterPlayerDetected(int _player, int _a, int _b) + public bool RemoteCheaterPlayerDetected(uint _player, int _a, int _b) { unsafe { - if (fn__remoteCheaterPlayerDetected == null) fn__remoteCheaterPlayerDetected = (delegate* unmanaged[Cdecl]) funcTable[0x472841A026D26D8BUL]; + if (fn__remoteCheaterPlayerDetected == null) fn__remoteCheaterPlayerDetected = (delegate* unmanaged[Cdecl]) funcTable[0x472841A026D26D8BUL]; var success = false; var result = fn__remoteCheaterPlayerDetected(&success, _player, _a, _b); if (!success) throw new Exception("Native execution failed"); @@ -65850,10 +65837,10 @@ public void NetworkClearInvalidObjectModels() } public void NetworkApplyPedScarData(IPlayer ped, int p1) => NetworkApplyPedScarData(ped.ScriptId, p1); - public void NetworkApplyPedScarData(int _ped, int _p1) + public void NetworkApplyPedScarData(uint _ped, int _p1) { unsafe { - if (fn__networkApplyPedScarData == null) fn__networkApplyPedScarData = (delegate* unmanaged[Cdecl]) funcTable[0xE66C690248F11150UL]; + if (fn__networkApplyPedScarData == null) fn__networkApplyPedScarData = (delegate* unmanaged[Cdecl]) funcTable[0xE66C690248F11150UL]; var success = false; fn__networkApplyPedScarData(&success, _ped, _p1); if (!success) throw new Exception("Native execution failed"); @@ -65931,10 +65918,10 @@ public void NetworkRegisterHostBroadcastVariables(ref int _unkVars, int _numVars if (fn__networkRegisterHostBroadcastVariables == null) fn__networkRegisterHostBroadcastVariables = (delegate* unmanaged[Cdecl]) funcTable[0x3E9B2F01C50DF595UL]; var success = false; var ref_unkVars = _unkVars; - var ptr_debugName = _debugName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_debugName); + var ptr_debugName = MemoryUtils.StringToHGlobalUtf8(_debugName); fn__networkRegisterHostBroadcastVariables(&success, &ref_unkVars, _numVars, ptr_debugName); _unkVars = ref_unkVars; - if (ptr_debugName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_debugName); + Marshal.FreeHGlobal(ptr_debugName); if (!success) throw new Exception("Native execution failed"); } } @@ -65945,10 +65932,10 @@ public void NetworkRegisterPlayerBroadcastVariables(ref int _unkVars, int _numVa if (fn__networkRegisterPlayerBroadcastVariables == null) fn__networkRegisterPlayerBroadcastVariables = (delegate* unmanaged[Cdecl]) funcTable[0x3364AA97340CA215UL]; var success = false; var ref_unkVars = _unkVars; - var ptr_debugName = _debugName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_debugName); + var ptr_debugName = MemoryUtils.StringToHGlobalUtf8(_debugName); fn__networkRegisterPlayerBroadcastVariables(&success, &ref_unkVars, _numVars, ptr_debugName); _unkVars = ref_unkVars; - if (ptr_debugName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_debugName); + Marshal.FreeHGlobal(ptr_debugName); if (!success) throw new Exception("Native execution failed"); } } @@ -65994,11 +65981,11 @@ public bool NetworkHasReceivedHostBroadcastData() } } - public int NetworkGetPlayerIndex(IPlayer player) => NetworkGetPlayerIndex(player.ScriptId); - public int NetworkGetPlayerIndex(int _player) + public uint NetworkGetPlayerIndex(IPlayer player) => NetworkGetPlayerIndex(player.ScriptId); + public uint NetworkGetPlayerIndex(uint _player) { unsafe { - if (fn__networkGetPlayerIndex == null) fn__networkGetPlayerIndex = (delegate* unmanaged[Cdecl]) funcTable[0x24FB80D107371267UL]; + if (fn__networkGetPlayerIndex == null) fn__networkGetPlayerIndex = (delegate* unmanaged[Cdecl]) funcTable[0x24FB80D107371267UL]; var success = false; var result = fn__networkGetPlayerIndex(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -66017,11 +66004,11 @@ public int NetworkGetParticipantIndex(int _index) } } - public int NetworkGetPlayerIndexFromPed(IPlayer ped) => NetworkGetPlayerIndexFromPed(ped.ScriptId); - public int NetworkGetPlayerIndexFromPed(int _ped) + public uint NetworkGetPlayerIndexFromPed(IPlayer ped) => NetworkGetPlayerIndexFromPed(ped.ScriptId); + public uint NetworkGetPlayerIndexFromPed(uint _ped) { unsafe { - if (fn__networkGetPlayerIndexFromPed == null) fn__networkGetPlayerIndexFromPed = (delegate* unmanaged[Cdecl]) funcTable[0x6C0E2E0125610278UL]; + if (fn__networkGetPlayerIndexFromPed == null) fn__networkGetPlayerIndexFromPed = (delegate* unmanaged[Cdecl]) funcTable[0x6C0E2E0125610278UL]; var success = false; var result = fn__networkGetPlayerIndexFromPed(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -66041,10 +66028,10 @@ public int NetworkGetNumConnectedPlayers() } public bool NetworkIsPlayerConnected(IPlayer player) => NetworkIsPlayerConnected(player.ScriptId); - public bool NetworkIsPlayerConnected(int _player) + public bool NetworkIsPlayerConnected(uint _player) { unsafe { - if (fn__networkIsPlayerConnected == null) fn__networkIsPlayerConnected = (delegate* unmanaged[Cdecl]) funcTable[0x93DC1BE4E1ABE9D1UL]; + if (fn__networkIsPlayerConnected == null) fn__networkIsPlayerConnected = (delegate* unmanaged[Cdecl]) funcTable[0x93DC1BE4E1ABE9D1UL]; var success = false; var result = fn__networkIsPlayerConnected(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -66075,10 +66062,10 @@ public bool NetworkIsParticipantActive(int _p0) } public bool NetworkIsPlayerActive(IPlayer player) => NetworkIsPlayerActive(player.ScriptId); - public bool NetworkIsPlayerActive(int _player) + public bool NetworkIsPlayerActive(uint _player) { unsafe { - if (fn__networkIsPlayerActive == null) fn__networkIsPlayerActive = (delegate* unmanaged[Cdecl]) funcTable[0xB8DFD30D6973E135UL]; + if (fn__networkIsPlayerActive == null) fn__networkIsPlayerActive = (delegate* unmanaged[Cdecl]) funcTable[0xB8DFD30D6973E135UL]; var success = false; var result = fn__networkIsPlayerActive(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -66087,10 +66074,10 @@ public bool NetworkIsPlayerActive(int _player) } public bool NetworkIsPlayerAParticipant(IPlayer player) => NetworkIsPlayerAParticipant(player.ScriptId); - public bool NetworkIsPlayerAParticipant(int _player) + public bool NetworkIsPlayerAParticipant(uint _player) { unsafe { - if (fn__networkIsPlayerAParticipant == null) fn__networkIsPlayerAParticipant = (delegate* unmanaged[Cdecl]) funcTable[0x3CA58F6CB7CBD784UL]; + if (fn__networkIsPlayerAParticipant == null) fn__networkIsPlayerAParticipant = (delegate* unmanaged[Cdecl]) funcTable[0x3CA58F6CB7CBD784UL]; var success = false; var result = fn__networkIsPlayerAParticipant(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -66109,10 +66096,10 @@ public bool NetworkIsHostOfThisScript() } } - public int NetworkGetHostOfThisScript() + public uint NetworkGetHostOfThisScript() { unsafe { - if (fn__networkGetHostOfThisScript == null) fn__networkGetHostOfThisScript = (delegate* unmanaged[Cdecl]) funcTable[0xC7B4D79B01FA7A5CUL]; + if (fn__networkGetHostOfThisScript == null) fn__networkGetHostOfThisScript = (delegate* unmanaged[Cdecl]) funcTable[0xC7B4D79B01FA7A5CUL]; var success = false; var result = fn__networkGetHostOfThisScript(&success); if (!success) throw new Exception("Native execution failed"); @@ -66120,14 +66107,14 @@ public int NetworkGetHostOfThisScript() } } - public int NetworkGetHostOfScript(string _scriptName, int _instance_id, int _position_hash) + public uint NetworkGetHostOfScript(string _scriptName, int _instance_id, int _position_hash) { unsafe { - if (fn__networkGetHostOfScript == null) fn__networkGetHostOfScript = (delegate* unmanaged[Cdecl]) funcTable[0x1D6A14F1F9A736FCUL]; + if (fn__networkGetHostOfScript == null) fn__networkGetHostOfScript = (delegate* unmanaged[Cdecl]) funcTable[0x1D6A14F1F9A736FCUL]; var success = false; - var ptr_scriptName = _scriptName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scriptName); + var ptr_scriptName = MemoryUtils.StringToHGlobalUtf8(_scriptName); var result = fn__networkGetHostOfScript(&success, ptr_scriptName, _instance_id, _position_hash); - if (ptr_scriptName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scriptName); + Marshal.FreeHGlobal(ptr_scriptName); if (!success) throw new Exception("Native execution failed"); return result; } @@ -66148,9 +66135,9 @@ public bool NetworkIsScriptActive(string _scriptName, int _instance_id, bool _p2 unsafe { if (fn__networkIsScriptActive == null) fn__networkIsScriptActive = (delegate* unmanaged[Cdecl]) funcTable[0x9D40DF90FAD26098UL]; var success = false; - var ptr_scriptName = _scriptName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scriptName); + var ptr_scriptName = MemoryUtils.StringToHGlobalUtf8(_scriptName); var result = fn__networkIsScriptActive(&success, ptr_scriptName, _instance_id, (byte) (_p2 ? 1 : 0), _position_hash); - if (ptr_scriptName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scriptName); + Marshal.FreeHGlobal(ptr_scriptName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -66183,9 +66170,9 @@ public int NetworkGetNumScriptParticipants(string _scriptName, int _instance_id, unsafe { if (fn__networkGetNumScriptParticipants == null) fn__networkGetNumScriptParticipants = (delegate* unmanaged[Cdecl]) funcTable[0x3658E8CD94FC121AUL]; var success = false; - var ptr_scriptName = _scriptName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scriptName); + var ptr_scriptName = MemoryUtils.StringToHGlobalUtf8(_scriptName); var result = fn__networkGetNumScriptParticipants(&success, ptr_scriptName, _instance_id, _position_hash); - if (ptr_scriptName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scriptName); + Marshal.FreeHGlobal(ptr_scriptName); if (!success) throw new Exception("Native execution failed"); return result; } @@ -66214,14 +66201,14 @@ public uint NetworkGetPositionHashOfThisScript() } public bool NetworkIsPlayerAParticipantOnScript(IPlayer player, string script, int instance_id) => NetworkIsPlayerAParticipantOnScript(player.ScriptId, script, instance_id); - public bool NetworkIsPlayerAParticipantOnScript(int _player, string _script, int _instance_id) + public bool NetworkIsPlayerAParticipantOnScript(uint _player, string _script, int _instance_id) { unsafe { - if (fn__networkIsPlayerAParticipantOnScript == null) fn__networkIsPlayerAParticipantOnScript = (delegate* unmanaged[Cdecl]) funcTable[0x1AD5B71586B94820UL]; + if (fn__networkIsPlayerAParticipantOnScript == null) fn__networkIsPlayerAParticipantOnScript = (delegate* unmanaged[Cdecl]) funcTable[0x1AD5B71586B94820UL]; var success = false; - var ptr_script = _script == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_script); + var ptr_script = MemoryUtils.StringToHGlobalUtf8(_script); var result = fn__networkIsPlayerAParticipantOnScript(&success, _player, ptr_script, _instance_id); - if (ptr_script != IntPtr.Zero) Marshal.FreeHGlobal(ptr_script); + Marshal.FreeHGlobal(ptr_script); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -66247,10 +66234,10 @@ public void NetworkRequestToBeHostOfThisScript() } } - public int ParticipantId() + public uint ParticipantId() { unsafe { - if (fn__participantId == null) fn__participantId = (delegate* unmanaged[Cdecl]) funcTable[0x90986E8876CE0A83UL]; + if (fn__participantId == null) fn__participantId = (delegate* unmanaged[Cdecl]) funcTable[0x90986E8876CE0A83UL]; var success = false; var result = fn__participantId(&success); if (!success) throw new Exception("Native execution failed"); @@ -66269,11 +66256,11 @@ public int ParticipantIdToInt() } } - public int NetworkGetKillerOfPlayer(IPlayer player, ref uint weaponHash) => NetworkGetKillerOfPlayer(player.ScriptId, ref weaponHash); - public int NetworkGetKillerOfPlayer(int _player, ref uint _weaponHash) + public uint NetworkGetKillerOfPlayer(IPlayer player, ref uint weaponHash) => NetworkGetKillerOfPlayer(player.ScriptId, ref weaponHash); + public uint NetworkGetKillerOfPlayer(uint _player, ref uint _weaponHash) { unsafe { - if (fn__networkGetKillerOfPlayer == null) fn__networkGetKillerOfPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x2DA41ED6E1FCD7A5UL]; + if (fn__networkGetKillerOfPlayer == null) fn__networkGetKillerOfPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x2DA41ED6E1FCD7A5UL]; var success = false; var ref_weaponHash = _weaponHash; var result = fn__networkGetKillerOfPlayer(&success, _player, &ref_weaponHash); @@ -66283,10 +66270,10 @@ public int NetworkGetKillerOfPlayer(int _player, ref uint _weaponHash) } } - public int NetworkGetDestroyerOfNetworkId(int _netId, ref uint _weaponHash) + public uint NetworkGetDestroyerOfNetworkId(int _netId, ref uint _weaponHash) { unsafe { - if (fn__networkGetDestroyerOfNetworkId == null) fn__networkGetDestroyerOfNetworkId = (delegate* unmanaged[Cdecl]) funcTable[0x7A1ADEEF01740A24UL]; + if (fn__networkGetDestroyerOfNetworkId == null) fn__networkGetDestroyerOfNetworkId = (delegate* unmanaged[Cdecl]) funcTable[0x7A1ADEEF01740A24UL]; var success = false; var ref_weaponHash = _weaponHash; var result = fn__networkGetDestroyerOfNetworkId(&success, _netId, &ref_weaponHash); @@ -66296,11 +66283,11 @@ public int NetworkGetDestroyerOfNetworkId(int _netId, ref uint _weaponHash) } } - public int NetworkGetDestroyerOfEntity(IEntity entity, ref uint weaponHash) => NetworkGetDestroyerOfEntity(entity.ScriptId, ref weaponHash); - public int NetworkGetDestroyerOfEntity(int _entity, ref uint _weaponHash) + public uint NetworkGetDestroyerOfEntity(IEntity entity, ref uint weaponHash) => NetworkGetDestroyerOfEntity(entity.ScriptId, ref weaponHash); + public uint NetworkGetDestroyerOfEntity(uint _entity, ref uint _weaponHash) { unsafe { - if (fn__networkGetDestroyerOfEntity == null) fn__networkGetDestroyerOfEntity = (delegate* unmanaged[Cdecl]) funcTable[0xC434133D9BA52777UL]; + if (fn__networkGetDestroyerOfEntity == null) fn__networkGetDestroyerOfEntity = (delegate* unmanaged[Cdecl]) funcTable[0xC434133D9BA52777UL]; var success = false; var ref_weaponHash = _weaponHash; var result = fn__networkGetDestroyerOfEntity(&success, _entity, &ref_weaponHash); @@ -66310,13 +66297,13 @@ public int NetworkGetDestroyerOfEntity(int _entity, ref uint _weaponHash) } } - public bool NetworkGetAssistedKillOfEntity(IPlayer player, int entity, ref int p2) => NetworkGetAssistedKillOfEntity(player.ScriptId, entity, ref p2); - public bool NetworkGetAssistedKillOfEntity(int player, IEntity entity, ref int p2) => NetworkGetAssistedKillOfEntity(player, entity.ScriptId, ref p2); + public bool NetworkGetAssistedKillOfEntity(IPlayer player, uint entity, ref int p2) => NetworkGetAssistedKillOfEntity(player.ScriptId, entity, ref p2); + public bool NetworkGetAssistedKillOfEntity(uint player, IEntity entity, ref int p2) => NetworkGetAssistedKillOfEntity(player, entity.ScriptId, ref p2); public bool NetworkGetAssistedKillOfEntity(IPlayer player, IEntity entity, ref int p2) => NetworkGetAssistedKillOfEntity(player.ScriptId, entity.ScriptId, ref p2); - public bool NetworkGetAssistedKillOfEntity(int _player, int _entity, ref int _p2) + public bool NetworkGetAssistedKillOfEntity(uint _player, uint _entity, ref int _p2) { unsafe { - if (fn__networkGetAssistedKillOfEntity == null) fn__networkGetAssistedKillOfEntity = (delegate* unmanaged[Cdecl]) funcTable[0x83660B734994124DUL]; + if (fn__networkGetAssistedKillOfEntity == null) fn__networkGetAssistedKillOfEntity = (delegate* unmanaged[Cdecl]) funcTable[0x83660B734994124DUL]; var success = false; var ref_p2 = _p2; var result = fn__networkGetAssistedKillOfEntity(&success, _player, _entity, &ref_p2); @@ -66326,13 +66313,13 @@ public bool NetworkGetAssistedKillOfEntity(int _player, int _entity, ref int _p2 } } - public bool NetworkGetAssistedDamageOfEntity(IPlayer player, int entity, ref int p2) => NetworkGetAssistedDamageOfEntity(player.ScriptId, entity, ref p2); - public bool NetworkGetAssistedDamageOfEntity(int player, IEntity entity, ref int p2) => NetworkGetAssistedDamageOfEntity(player, entity.ScriptId, ref p2); + public bool NetworkGetAssistedDamageOfEntity(IPlayer player, uint entity, ref int p2) => NetworkGetAssistedDamageOfEntity(player.ScriptId, entity, ref p2); + public bool NetworkGetAssistedDamageOfEntity(uint player, IEntity entity, ref int p2) => NetworkGetAssistedDamageOfEntity(player, entity.ScriptId, ref p2); public bool NetworkGetAssistedDamageOfEntity(IPlayer player, IEntity entity, ref int p2) => NetworkGetAssistedDamageOfEntity(player.ScriptId, entity.ScriptId, ref p2); - public bool NetworkGetAssistedDamageOfEntity(int _player, int _entity, ref int _p2) + public bool NetworkGetAssistedDamageOfEntity(uint _player, uint _entity, ref int _p2) { unsafe { - if (fn__networkGetAssistedDamageOfEntity == null) fn__networkGetAssistedDamageOfEntity = (delegate* unmanaged[Cdecl]) funcTable[0x4CACA84440FA26F6UL]; + if (fn__networkGetAssistedDamageOfEntity == null) fn__networkGetAssistedDamageOfEntity = (delegate* unmanaged[Cdecl]) funcTable[0x4CACA84440FA26F6UL]; var success = false; var ref_p2 = _p2; var result = fn__networkGetAssistedDamageOfEntity(&success, _player, _entity, &ref_p2); @@ -66342,11 +66329,11 @@ public bool NetworkGetAssistedDamageOfEntity(int _player, int _entity, ref int _ } } - public int NetworkGetEntityKillerOfPlayer(IPlayer player, ref uint weaponHash) => NetworkGetEntityKillerOfPlayer(player.ScriptId, ref weaponHash); - public int NetworkGetEntityKillerOfPlayer(int _player, ref uint _weaponHash) + public uint NetworkGetEntityKillerOfPlayer(IPlayer player, ref uint weaponHash) => NetworkGetEntityKillerOfPlayer(player.ScriptId, ref weaponHash); + public uint NetworkGetEntityKillerOfPlayer(uint _player, ref uint _weaponHash) { unsafe { - if (fn__networkGetEntityKillerOfPlayer == null) fn__networkGetEntityKillerOfPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x42B2DAA6B596F5F8UL]; + if (fn__networkGetEntityKillerOfPlayer == null) fn__networkGetEntityKillerOfPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x42B2DAA6B596F5F8UL]; var success = false; var ref_weaponHash = _weaponHash; var result = fn__networkGetEntityKillerOfPlayer(&success, _player, &ref_weaponHash); @@ -66361,9 +66348,9 @@ public void NetworkSetCurrentPublicContentId(string _missionId) unsafe { if (fn__networkSetCurrentPublicContentId == null) fn__networkSetCurrentPublicContentId = (delegate* unmanaged[Cdecl]) funcTable[0x2C863ACDCD12B3DBUL]; var success = false; - var ptr_missionId = _missionId == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_missionId); + var ptr_missionId = MemoryUtils.StringToHGlobalUtf8(_missionId); fn__networkSetCurrentPublicContentId(&success, ptr_missionId); - if (ptr_missionId != IntPtr.Zero) Marshal.FreeHGlobal(ptr_missionId); + Marshal.FreeHGlobal(ptr_missionId); if (!success) throw new Exception("Native execution failed"); } } @@ -66420,10 +66407,10 @@ public bool NetworkIsLocalPlayerInvincible() } public void NetworkDisableInvincibleFlashing(IPlayer player, bool toggle) => NetworkDisableInvincibleFlashing(player.ScriptId, toggle); - public void NetworkDisableInvincibleFlashing(int _player, bool _toggle) + public void NetworkDisableInvincibleFlashing(uint _player, bool _toggle) { unsafe { - if (fn__networkDisableInvincibleFlashing == null) fn__networkDisableInvincibleFlashing = (delegate* unmanaged[Cdecl]) funcTable[0x9DD368BF06983221UL]; + if (fn__networkDisableInvincibleFlashing == null) fn__networkDisableInvincibleFlashing = (delegate* unmanaged[Cdecl]) funcTable[0x9DD368BF06983221UL]; var success = false; fn__networkDisableInvincibleFlashing(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -66431,10 +66418,10 @@ public void NetworkDisableInvincibleFlashing(int _player, bool _toggle) } public void NetworkPatchPostCutsceneHs4fTunEnt(IPlayer ped) => NetworkPatchPostCutsceneHs4fTunEnt(ped.ScriptId); - public void NetworkPatchPostCutsceneHs4fTunEnt(int _ped) + public void NetworkPatchPostCutsceneHs4fTunEnt(uint _ped) { unsafe { - if (fn__networkPatchPostCutsceneHs4fTunEnt == null) fn__networkPatchPostCutsceneHs4fTunEnt = (delegate* unmanaged[Cdecl]) funcTable[0xF0BC9BCD24A511D5UL]; + if (fn__networkPatchPostCutsceneHs4fTunEnt == null) fn__networkPatchPostCutsceneHs4fTunEnt = (delegate* unmanaged[Cdecl]) funcTable[0xF0BC9BCD24A511D5UL]; var success = false; fn__networkPatchPostCutsceneHs4fTunEnt(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -66452,10 +66439,10 @@ public void NetworkSetLocalPlayerSyncLookAt(bool _toggle) } public bool NetworkHasEntityBeenRegisteredWithThisThread(IEntity entity) => NetworkHasEntityBeenRegisteredWithThisThread(entity.ScriptId); - public bool NetworkHasEntityBeenRegisteredWithThisThread(int _entity) + public bool NetworkHasEntityBeenRegisteredWithThisThread(uint _entity) { unsafe { - if (fn__networkHasEntityBeenRegisteredWithThisThread == null) fn__networkHasEntityBeenRegisteredWithThisThread = (delegate* unmanaged[Cdecl]) funcTable[0xB07D3185E11657A5UL]; + if (fn__networkHasEntityBeenRegisteredWithThisThread == null) fn__networkHasEntityBeenRegisteredWithThisThread = (delegate* unmanaged[Cdecl]) funcTable[0xB07D3185E11657A5UL]; var success = false; var result = fn__networkHasEntityBeenRegisteredWithThisThread(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -66464,10 +66451,10 @@ public bool NetworkHasEntityBeenRegisteredWithThisThread(int _entity) } public int NetworkGetNetworkIdFromEntity(IEntity entity) => NetworkGetNetworkIdFromEntity(entity.ScriptId); - public int NetworkGetNetworkIdFromEntity(int _entity) + public int NetworkGetNetworkIdFromEntity(uint _entity) { unsafe { - if (fn__networkGetNetworkIdFromEntity == null) fn__networkGetNetworkIdFromEntity = (delegate* unmanaged[Cdecl]) funcTable[0xA11700682F3AD45CUL]; + if (fn__networkGetNetworkIdFromEntity == null) fn__networkGetNetworkIdFromEntity = (delegate* unmanaged[Cdecl]) funcTable[0xA11700682F3AD45CUL]; var success = false; var result = fn__networkGetNetworkIdFromEntity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -66475,10 +66462,10 @@ public int NetworkGetNetworkIdFromEntity(int _entity) } } - public int NetworkGetEntityFromNetworkId(int _netId) + public uint NetworkGetEntityFromNetworkId(int _netId) { unsafe { - if (fn__networkGetEntityFromNetworkId == null) fn__networkGetEntityFromNetworkId = (delegate* unmanaged[Cdecl]) funcTable[0xCE4E5D9B0A4FF560UL]; + if (fn__networkGetEntityFromNetworkId == null) fn__networkGetEntityFromNetworkId = (delegate* unmanaged[Cdecl]) funcTable[0xCE4E5D9B0A4FF560UL]; var success = false; var result = fn__networkGetEntityFromNetworkId(&success, _netId); if (!success) throw new Exception("Native execution failed"); @@ -66487,10 +66474,10 @@ public int NetworkGetEntityFromNetworkId(int _netId) } public bool NetworkGetEntityIsNetworked(IEntity entity) => NetworkGetEntityIsNetworked(entity.ScriptId); - public bool NetworkGetEntityIsNetworked(int _entity) + public bool NetworkGetEntityIsNetworked(uint _entity) { unsafe { - if (fn__networkGetEntityIsNetworked == null) fn__networkGetEntityIsNetworked = (delegate* unmanaged[Cdecl]) funcTable[0xC7827959479DCC78UL]; + if (fn__networkGetEntityIsNetworked == null) fn__networkGetEntityIsNetworked = (delegate* unmanaged[Cdecl]) funcTable[0xC7827959479DCC78UL]; var success = false; var result = fn__networkGetEntityIsNetworked(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -66499,10 +66486,10 @@ public bool NetworkGetEntityIsNetworked(int _entity) } public bool NetworkGetEntityIsLocal(IEntity entity) => NetworkGetEntityIsLocal(entity.ScriptId); - public bool NetworkGetEntityIsLocal(int _entity) + public bool NetworkGetEntityIsLocal(uint _entity) { unsafe { - if (fn__networkGetEntityIsLocal == null) fn__networkGetEntityIsLocal = (delegate* unmanaged[Cdecl]) funcTable[0x0991549DE4D64762UL]; + if (fn__networkGetEntityIsLocal == null) fn__networkGetEntityIsLocal = (delegate* unmanaged[Cdecl]) funcTable[0x0991549DE4D64762UL]; var success = false; var result = fn__networkGetEntityIsLocal(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -66511,10 +66498,10 @@ public bool NetworkGetEntityIsLocal(int _entity) } public void NetworkRegisterEntityAsNetworked(IEntity entity) => NetworkRegisterEntityAsNetworked(entity.ScriptId); - public void NetworkRegisterEntityAsNetworked(int _entity) + public void NetworkRegisterEntityAsNetworked(uint _entity) { unsafe { - if (fn__networkRegisterEntityAsNetworked == null) fn__networkRegisterEntityAsNetworked = (delegate* unmanaged[Cdecl]) funcTable[0x06FAACD625D80CAAUL]; + if (fn__networkRegisterEntityAsNetworked == null) fn__networkRegisterEntityAsNetworked = (delegate* unmanaged[Cdecl]) funcTable[0x06FAACD625D80CAAUL]; var success = false; fn__networkRegisterEntityAsNetworked(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -66522,10 +66509,10 @@ public void NetworkRegisterEntityAsNetworked(int _entity) } public void NetworkUnregisterNetworkedEntity(IEntity entity) => NetworkUnregisterNetworkedEntity(entity.ScriptId); - public void NetworkUnregisterNetworkedEntity(int _entity) + public void NetworkUnregisterNetworkedEntity(uint _entity) { unsafe { - if (fn__networkUnregisterNetworkedEntity == null) fn__networkUnregisterNetworkedEntity = (delegate* unmanaged[Cdecl]) funcTable[0x7368E683BB9038D6UL]; + if (fn__networkUnregisterNetworkedEntity == null) fn__networkUnregisterNetworkedEntity = (delegate* unmanaged[Cdecl]) funcTable[0x7368E683BB9038D6UL]; var success = false; fn__networkUnregisterNetworkedEntity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -66588,10 +66575,10 @@ public bool NetworkIsNetworkIdRemotelyControlled(int _netId) } public bool NetworkRequestControlOfEntity(IEntity entity) => NetworkRequestControlOfEntity(entity.ScriptId); - public bool NetworkRequestControlOfEntity(int _entity) + public bool NetworkRequestControlOfEntity(uint _entity) { unsafe { - if (fn__networkRequestControlOfEntity == null) fn__networkRequestControlOfEntity = (delegate* unmanaged[Cdecl]) funcTable[0xB69317BF5E782347UL]; + if (fn__networkRequestControlOfEntity == null) fn__networkRequestControlOfEntity = (delegate* unmanaged[Cdecl]) funcTable[0xB69317BF5E782347UL]; var success = false; var result = fn__networkRequestControlOfEntity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -66611,10 +66598,10 @@ public bool NetworkRequestControlOfDoor(int _doorID) } public bool NetworkHasControlOfEntity(IEntity entity) => NetworkHasControlOfEntity(entity.ScriptId); - public bool NetworkHasControlOfEntity(int _entity) + public bool NetworkHasControlOfEntity(uint _entity) { unsafe { - if (fn__networkHasControlOfEntity == null) fn__networkHasControlOfEntity = (delegate* unmanaged[Cdecl]) funcTable[0x01BF60A500E28887UL]; + if (fn__networkHasControlOfEntity == null) fn__networkHasControlOfEntity = (delegate* unmanaged[Cdecl]) funcTable[0x01BF60A500E28887UL]; var success = false; var result = fn__networkHasControlOfEntity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -66656,10 +66643,10 @@ public bool NetworkIsDoorNetworked(uint _doorHash) } public int VehToNet(IVehicle vehicle) => VehToNet(vehicle.ScriptId); - public int VehToNet(int _vehicle) + public int VehToNet(uint _vehicle) { unsafe { - if (fn__vehToNet == null) fn__vehToNet = (delegate* unmanaged[Cdecl]) funcTable[0xB4C94523F023419CUL]; + if (fn__vehToNet == null) fn__vehToNet = (delegate* unmanaged[Cdecl]) funcTable[0xB4C94523F023419CUL]; var success = false; var result = fn__vehToNet(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -66668,10 +66655,10 @@ public int VehToNet(int _vehicle) } public int PedToNet(IPlayer ped) => PedToNet(ped.ScriptId); - public int PedToNet(int _ped) + public int PedToNet(uint _ped) { unsafe { - if (fn__pedToNet == null) fn__pedToNet = (delegate* unmanaged[Cdecl]) funcTable[0x0EDEC3C276198689UL]; + if (fn__pedToNet == null) fn__pedToNet = (delegate* unmanaged[Cdecl]) funcTable[0x0EDEC3C276198689UL]; var success = false; var result = fn__pedToNet(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -66679,10 +66666,10 @@ public int PedToNet(int _ped) } } - public int ObjToNet(int _object) + public int ObjToNet(uint _object) { unsafe { - if (fn__objToNet == null) fn__objToNet = (delegate* unmanaged[Cdecl]) funcTable[0x99BFDC94A603E541UL]; + if (fn__objToNet == null) fn__objToNet = (delegate* unmanaged[Cdecl]) funcTable[0x99BFDC94A603E541UL]; var success = false; var result = fn__objToNet(&success, _object); if (!success) throw new Exception("Native execution failed"); @@ -66690,10 +66677,10 @@ public int ObjToNet(int _object) } } - public int NetToVeh(int _netHandle) + public uint NetToVeh(int _netHandle) { unsafe { - if (fn__netToVeh == null) fn__netToVeh = (delegate* unmanaged[Cdecl]) funcTable[0x367B936610BA360CUL]; + if (fn__netToVeh == null) fn__netToVeh = (delegate* unmanaged[Cdecl]) funcTable[0x367B936610BA360CUL]; var success = false; var result = fn__netToVeh(&success, _netHandle); if (!success) throw new Exception("Native execution failed"); @@ -66701,10 +66688,10 @@ public int NetToVeh(int _netHandle) } } - public int NetToPed(int _netHandle) + public uint NetToPed(int _netHandle) { unsafe { - if (fn__netToPed == null) fn__netToPed = (delegate* unmanaged[Cdecl]) funcTable[0xBDCD95FC216A8B3EUL]; + if (fn__netToPed == null) fn__netToPed = (delegate* unmanaged[Cdecl]) funcTable[0xBDCD95FC216A8B3EUL]; var success = false; var result = fn__netToPed(&success, _netHandle); if (!success) throw new Exception("Native execution failed"); @@ -66712,10 +66699,10 @@ public int NetToPed(int _netHandle) } } - public int NetToObj(int _netHandle) + public uint NetToObj(int _netHandle) { unsafe { - if (fn__netToObj == null) fn__netToObj = (delegate* unmanaged[Cdecl]) funcTable[0xD8515F5FEA14CB3FUL]; + if (fn__netToObj == null) fn__netToObj = (delegate* unmanaged[Cdecl]) funcTable[0xD8515F5FEA14CB3FUL]; var success = false; var result = fn__netToObj(&success, _netHandle); if (!success) throw new Exception("Native execution failed"); @@ -66723,10 +66710,10 @@ public int NetToObj(int _netHandle) } } - public int NetToEnt(int _netHandle) + public uint NetToEnt(int _netHandle) { unsafe { - if (fn__netToEnt == null) fn__netToEnt = (delegate* unmanaged[Cdecl]) funcTable[0xBFFEAB45A9A9094AUL]; + if (fn__netToEnt == null) fn__netToEnt = (delegate* unmanaged[Cdecl]) funcTable[0xBFFEAB45A9A9094AUL]; var success = false; var result = fn__netToEnt(&success, _netHandle); if (!success) throw new Exception("Native execution failed"); @@ -66751,10 +66738,10 @@ public void NetworkHandleFromUserId(string _userId, ref int _gamerHandle, int _g unsafe { if (fn__networkHandleFromUserId == null) fn__networkHandleFromUserId = (delegate* unmanaged[Cdecl]) funcTable[0xDCD51DD8F87AEC5CUL]; var success = false; - var ptr_userId = _userId == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_userId); + var ptr_userId = MemoryUtils.StringToHGlobalUtf8(_userId); var ref_gamerHandle = _gamerHandle; fn__networkHandleFromUserId(&success, ptr_userId, &ref_gamerHandle, _gamerHandleSize); - if (ptr_userId != IntPtr.Zero) Marshal.FreeHGlobal(ptr_userId); + Marshal.FreeHGlobal(ptr_userId); _gamerHandle = ref_gamerHandle; if (!success) throw new Exception("Native execution failed"); } @@ -66765,20 +66752,20 @@ public void NetworkHandleFromMemberId(string _memberId, ref int _gamerHandle, in unsafe { if (fn__networkHandleFromMemberId == null) fn__networkHandleFromMemberId = (delegate* unmanaged[Cdecl]) funcTable[0xA0FD21BED61E5C4CUL]; var success = false; - var ptr_memberId = _memberId == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_memberId); + var ptr_memberId = MemoryUtils.StringToHGlobalUtf8(_memberId); var ref_gamerHandle = _gamerHandle; fn__networkHandleFromMemberId(&success, ptr_memberId, &ref_gamerHandle, _gamerHandleSize); - if (ptr_memberId != IntPtr.Zero) Marshal.FreeHGlobal(ptr_memberId); + Marshal.FreeHGlobal(ptr_memberId); _gamerHandle = ref_gamerHandle; if (!success) throw new Exception("Native execution failed"); } } public void NetworkHandleFromPlayer(IPlayer player, ref int gamerHandle, int gamerHandleSize) => NetworkHandleFromPlayer(player.ScriptId, ref gamerHandle, gamerHandleSize); - public void NetworkHandleFromPlayer(int _player, ref int _gamerHandle, int _gamerHandleSize) + public void NetworkHandleFromPlayer(uint _player, ref int _gamerHandle, int _gamerHandleSize) { unsafe { - if (fn__networkHandleFromPlayer == null) fn__networkHandleFromPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x388EB2B86C73B6B3UL]; + if (fn__networkHandleFromPlayer == null) fn__networkHandleFromPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x388EB2B86C73B6B3UL]; var success = false; var ref_gamerHandle = _gamerHandle; fn__networkHandleFromPlayer(&success, _player, &ref_gamerHandle, _gamerHandleSize); @@ -66788,10 +66775,10 @@ public void NetworkHandleFromPlayer(int _player, ref int _gamerHandle, int _game } public uint NetworkHashFromPlayerHandle(IPlayer player) => NetworkHashFromPlayerHandle(player.ScriptId); - public uint NetworkHashFromPlayerHandle(int _player) + public uint NetworkHashFromPlayerHandle(uint _player) { unsafe { - if (fn__networkHashFromPlayerHandle == null) fn__networkHashFromPlayerHandle = (delegate* unmanaged[Cdecl]) funcTable[0xBC1D768F2F5D6C05UL]; + if (fn__networkHashFromPlayerHandle == null) fn__networkHashFromPlayerHandle = (delegate* unmanaged[Cdecl]) funcTable[0xBC1D768F2F5D6C05UL]; var success = false; var result = fn__networkHashFromPlayerHandle(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -66868,8 +66855,8 @@ public string NetworkGetGamertagFromHandle(ref int _gamerHandle) var result = fn__networkGetGamertagFromHandle(&success, &ref_gamerHandle); _gamerHandle = ref_gamerHandle; if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -66926,10 +66913,10 @@ public bool NetworkIsHandleValid(ref int _gamerHandle, int _gamerHandleSize) } } - public int NetworkGetPlayerFromGamerHandle(ref int _gamerHandle) + public uint NetworkGetPlayerFromGamerHandle(ref int _gamerHandle) { unsafe { - if (fn__networkGetPlayerFromGamerHandle == null) fn__networkGetPlayerFromGamerHandle = (delegate* unmanaged[Cdecl]) funcTable[0xCE5F689CF5A0A49DUL]; + if (fn__networkGetPlayerFromGamerHandle == null) fn__networkGetPlayerFromGamerHandle = (delegate* unmanaged[Cdecl]) funcTable[0xCE5F689CF5A0A49DUL]; var success = false; var ref_gamerHandle = _gamerHandle; var result = fn__networkGetPlayerFromGamerHandle(&success, &ref_gamerHandle); @@ -66948,8 +66935,8 @@ public string NetworkMemberIdFromGamerHandle(ref int _gamerHandle) var result = fn__networkMemberIdFromGamerHandle(&success, &ref_gamerHandle); _gamerHandle = ref_gamerHandle; if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -66980,40 +66967,40 @@ public void NetworkShowProfileUi(ref int _gamerHandle) } public string NetworkPlayerGetName(IPlayer player) => NetworkPlayerGetName(player.ScriptId); - public string NetworkPlayerGetName(int _player) + public string NetworkPlayerGetName(uint _player) { unsafe { - if (fn__networkPlayerGetName == null) fn__networkPlayerGetName = (delegate* unmanaged[Cdecl]) funcTable[0x7718D2E2060837D2UL]; + if (fn__networkPlayerGetName == null) fn__networkPlayerGetName = (delegate* unmanaged[Cdecl]) funcTable[0x7718D2E2060837D2UL]; var success = false; var result = fn__networkPlayerGetName(&success, _player); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } public string NetworkPlayerGetUserid(IPlayer player, ref int userID) => NetworkPlayerGetUserid(player.ScriptId, ref userID); - public string NetworkPlayerGetUserid(int _player, ref int _userID) + public string NetworkPlayerGetUserid(uint _player, ref int _userID) { unsafe { - if (fn__networkPlayerGetUserid == null) fn__networkPlayerGetUserid = (delegate* unmanaged[Cdecl]) funcTable[0x4927FC39CD0869A0UL]; + if (fn__networkPlayerGetUserid == null) fn__networkPlayerGetUserid = (delegate* unmanaged[Cdecl]) funcTable[0x4927FC39CD0869A0UL]; var success = false; var ref_userID = _userID; var result = fn__networkPlayerGetUserid(&success, _player, &ref_userID); _userID = ref_userID; if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } public bool NetworkPlayerIsRockstarDev(IPlayer player) => NetworkPlayerIsRockstarDev(player.ScriptId); - public bool NetworkPlayerIsRockstarDev(int _player) + public bool NetworkPlayerIsRockstarDev(uint _player) { unsafe { - if (fn__networkPlayerIsRockstarDev == null) fn__networkPlayerIsRockstarDev = (delegate* unmanaged[Cdecl]) funcTable[0x544ABDDA3B409B6DUL]; + if (fn__networkPlayerIsRockstarDev == null) fn__networkPlayerIsRockstarDev = (delegate* unmanaged[Cdecl]) funcTable[0x544ABDDA3B409B6DUL]; var success = false; var result = fn__networkPlayerIsRockstarDev(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -67022,10 +67009,10 @@ public bool NetworkPlayerIsRockstarDev(int _player) } public bool NetworkPlayerIndexIsCheater(IPlayer player) => NetworkPlayerIndexIsCheater(player.ScriptId); - public bool NetworkPlayerIndexIsCheater(int _player) + public bool NetworkPlayerIndexIsCheater(uint _player) { unsafe { - if (fn__networkPlayerIndexIsCheater == null) fn__networkPlayerIndexIsCheater = (delegate* unmanaged[Cdecl]) funcTable[0x565E430DB3B05BECUL]; + if (fn__networkPlayerIndexIsCheater == null) fn__networkPlayerIndexIsCheater = (delegate* unmanaged[Cdecl]) funcTable[0x565E430DB3B05BECUL]; var success = false; var result = fn__networkPlayerIndexIsCheater(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -67034,10 +67021,10 @@ public bool NetworkPlayerIndexIsCheater(int _player) } public int NetworkEntityGetObjectId(IEntity entity) => NetworkEntityGetObjectId(entity.ScriptId); - public int NetworkEntityGetObjectId(int _entity) + public int NetworkEntityGetObjectId(uint _entity) { unsafe { - if (fn__networkEntityGetObjectId == null) fn__networkEntityGetObjectId = (delegate* unmanaged[Cdecl]) funcTable[0x815F18AD865F057FUL]; + if (fn__networkEntityGetObjectId == null) fn__networkEntityGetObjectId = (delegate* unmanaged[Cdecl]) funcTable[0x815F18AD865F057FUL]; var success = false; var result = fn__networkEntityGetObjectId(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -67045,10 +67032,10 @@ public int NetworkEntityGetObjectId(int _entity) } } - public int NetworkGetEntityFromObjectId(int _p0) + public uint NetworkGetEntityFromObjectId(int _p0) { unsafe { - if (fn__networkGetEntityFromObjectId == null) fn__networkGetEntityFromObjectId = (delegate* unmanaged[Cdecl]) funcTable[0x37D5F739FD494675UL]; + if (fn__networkGetEntityFromObjectId == null) fn__networkGetEntityFromObjectId = (delegate* unmanaged[Cdecl]) funcTable[0x37D5F739FD494675UL]; var success = false; var result = fn__networkGetEntityFromObjectId(&success, _p0); if (!success) throw new Exception("Native execution failed"); @@ -67098,8 +67085,8 @@ public string NetworkGetFriendName(int _friendIndex) var success = false; var result = fn__networkGetFriendName(&success, _friendIndex); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -67111,8 +67098,8 @@ public string NetworkGetFriendDisplayName(int _friendIndex) var success = false; var result = fn__networkGetFriendDisplayName(&success, _friendIndex); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -67122,9 +67109,9 @@ public bool NetworkIsFriendOnline(string _name) unsafe { if (fn__networkIsFriendOnline == null) fn__networkIsFriendOnline = (delegate* unmanaged[Cdecl]) funcTable[0x425A44533437B64DUL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var result = fn__networkIsFriendOnline(&success, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -67148,9 +67135,9 @@ public bool NetworkIsFriendInSameTitle(string _friendName) unsafe { if (fn__networkIsFriendInSameTitle == null) fn__networkIsFriendInSameTitle = (delegate* unmanaged[Cdecl]) funcTable[0x2EA9A3BEDF3F17B8UL]; var success = false; - var ptr_friendName = _friendName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_friendName); + var ptr_friendName = MemoryUtils.StringToHGlobalUtf8(_friendName); var result = fn__networkIsFriendInSameTitle(&success, ptr_friendName); - if (ptr_friendName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_friendName); + Marshal.FreeHGlobal(ptr_friendName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -67161,9 +67148,9 @@ public bool NetworkIsFriendInMultiplayer(string _friendName) unsafe { if (fn__networkIsFriendInMultiplayer == null) fn__networkIsFriendInMultiplayer = (delegate* unmanaged[Cdecl]) funcTable[0x57005C18827F3A28UL]; var success = false; - var ptr_friendName = _friendName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_friendName); + var ptr_friendName = MemoryUtils.StringToHGlobalUtf8(_friendName); var result = fn__networkIsFriendInMultiplayer(&success, ptr_friendName); - if (ptr_friendName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_friendName); + Marshal.FreeHGlobal(ptr_friendName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -67210,10 +67197,10 @@ public bool NetworkAddFriend(ref int _gamerHandle, string _message) if (fn__networkAddFriend == null) fn__networkAddFriend = (delegate* unmanaged[Cdecl]) funcTable[0x8E02D73914064223UL]; var success = false; var ref_gamerHandle = _gamerHandle; - var ptr_message = _message == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_message); + var ptr_message = MemoryUtils.StringToHGlobalUtf8(_message); var result = fn__networkAddFriend(&success, &ref_gamerHandle, ptr_message); _gamerHandle = ref_gamerHandle; - if (ptr_message != IntPtr.Zero) Marshal.FreeHGlobal(ptr_message); + Marshal.FreeHGlobal(ptr_message); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -67241,10 +67228,10 @@ public void NetworkSetPlayerIsPassive(bool _toggle) } public bool NetworkGetPlayerOwnsWaypoint(IPlayer player) => NetworkGetPlayerOwnsWaypoint(player.ScriptId); - public bool NetworkGetPlayerOwnsWaypoint(int _player) + public bool NetworkGetPlayerOwnsWaypoint(uint _player) { unsafe { - if (fn__networkGetPlayerOwnsWaypoint == null) fn__networkGetPlayerOwnsWaypoint = (delegate* unmanaged[Cdecl]) funcTable[0x82377B65E943F72DUL]; + if (fn__networkGetPlayerOwnsWaypoint == null) fn__networkGetPlayerOwnsWaypoint = (delegate* unmanaged[Cdecl]) funcTable[0x82377B65E943F72DUL]; var success = false; var result = fn__networkGetPlayerOwnsWaypoint(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -67523,10 +67510,10 @@ public bool NetworkCanReceiveLocalInvite(ref int _gamerHandle) } public bool NetworkIsPlayerTalking(IPlayer player) => NetworkIsPlayerTalking(player.ScriptId); - public bool NetworkIsPlayerTalking(int _player) + public bool NetworkIsPlayerTalking(uint _player) { unsafe { - if (fn__networkIsPlayerTalking == null) fn__networkIsPlayerTalking = (delegate* unmanaged[Cdecl]) funcTable[0x031E11F3D447647EUL]; + if (fn__networkIsPlayerTalking == null) fn__networkIsPlayerTalking = (delegate* unmanaged[Cdecl]) funcTable[0x031E11F3D447647EUL]; var success = false; var result = fn__networkIsPlayerTalking(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -67535,10 +67522,10 @@ public bool NetworkIsPlayerTalking(int _player) } public bool NetworkPlayerHasHeadset(IPlayer player) => NetworkPlayerHasHeadset(player.ScriptId); - public bool NetworkPlayerHasHeadset(int _player) + public bool NetworkPlayerHasHeadset(uint _player) { unsafe { - if (fn__networkPlayerHasHeadset == null) fn__networkPlayerHasHeadset = (delegate* unmanaged[Cdecl]) funcTable[0x3FB99A8B08D18FD6UL]; + if (fn__networkPlayerHasHeadset == null) fn__networkPlayerHasHeadset = (delegate* unmanaged[Cdecl]) funcTable[0x3FB99A8B08D18FD6UL]; var success = false; var result = fn__networkPlayerHasHeadset(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -67547,10 +67534,10 @@ public bool NetworkPlayerHasHeadset(int _player) } public bool NetworkIsPlayerMutedByMe(IPlayer player) => NetworkIsPlayerMutedByMe(player.ScriptId); - public bool NetworkIsPlayerMutedByMe(int _player) + public bool NetworkIsPlayerMutedByMe(uint _player) { unsafe { - if (fn__networkIsPlayerMutedByMe == null) fn__networkIsPlayerMutedByMe = (delegate* unmanaged[Cdecl]) funcTable[0x8C71288AE68EDE39UL]; + if (fn__networkIsPlayerMutedByMe == null) fn__networkIsPlayerMutedByMe = (delegate* unmanaged[Cdecl]) funcTable[0x8C71288AE68EDE39UL]; var success = false; var result = fn__networkIsPlayerMutedByMe(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -67559,10 +67546,10 @@ public bool NetworkIsPlayerMutedByMe(int _player) } public bool NetworkAmIMutedByPlayer(IPlayer player) => NetworkAmIMutedByPlayer(player.ScriptId); - public bool NetworkAmIMutedByPlayer(int _player) + public bool NetworkAmIMutedByPlayer(uint _player) { unsafe { - if (fn__networkAmIMutedByPlayer == null) fn__networkAmIMutedByPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x9D6981DFC91A8604UL]; + if (fn__networkAmIMutedByPlayer == null) fn__networkAmIMutedByPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x9D6981DFC91A8604UL]; var success = false; var result = fn__networkAmIMutedByPlayer(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -67571,10 +67558,10 @@ public bool NetworkAmIMutedByPlayer(int _player) } public bool NetworkIsPlayerBlockedByMe(IPlayer player) => NetworkIsPlayerBlockedByMe(player.ScriptId); - public bool NetworkIsPlayerBlockedByMe(int _player) + public bool NetworkIsPlayerBlockedByMe(uint _player) { unsafe { - if (fn__networkIsPlayerBlockedByMe == null) fn__networkIsPlayerBlockedByMe = (delegate* unmanaged[Cdecl]) funcTable[0x57AF1F8E27483721UL]; + if (fn__networkIsPlayerBlockedByMe == null) fn__networkIsPlayerBlockedByMe = (delegate* unmanaged[Cdecl]) funcTable[0x57AF1F8E27483721UL]; var success = false; var result = fn__networkIsPlayerBlockedByMe(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -67583,10 +67570,10 @@ public bool NetworkIsPlayerBlockedByMe(int _player) } public bool NetworkAmIBlockedByPlayer(IPlayer player) => NetworkAmIBlockedByPlayer(player.ScriptId); - public bool NetworkAmIBlockedByPlayer(int _player) + public bool NetworkAmIBlockedByPlayer(uint _player) { unsafe { - if (fn__networkAmIBlockedByPlayer == null) fn__networkAmIBlockedByPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x87F395D957D4353DUL]; + if (fn__networkAmIBlockedByPlayer == null) fn__networkAmIBlockedByPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x87F395D957D4353DUL]; var success = false; var result = fn__networkAmIBlockedByPlayer(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -67595,10 +67582,10 @@ public bool NetworkAmIBlockedByPlayer(int _player) } public float NetworkGetPlayerLoudness(IPlayer player) => NetworkGetPlayerLoudness(player.ScriptId); - public float NetworkGetPlayerLoudness(int _player) + public float NetworkGetPlayerLoudness(uint _player) { unsafe { - if (fn__networkGetPlayerLoudness == null) fn__networkGetPlayerLoudness = (delegate* unmanaged[Cdecl]) funcTable[0x21A1684A25C2867FUL]; + if (fn__networkGetPlayerLoudness == null) fn__networkGetPlayerLoudness = (delegate* unmanaged[Cdecl]) funcTable[0x21A1684A25C2867FUL]; var success = false; var result = fn__networkGetPlayerLoudness(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -67749,10 +67736,10 @@ public void NetworkSetIgnoreSpectatorChatLimitsSameTeam(bool _toggle) } public void NetworkOverrideChatRestrictions(IPlayer player, bool toggle) => NetworkOverrideChatRestrictions(player.ScriptId, toggle); - public void NetworkOverrideChatRestrictions(int _player, bool _toggle) + public void NetworkOverrideChatRestrictions(uint _player, bool _toggle) { unsafe { - if (fn__networkOverrideChatRestrictions == null) fn__networkOverrideChatRestrictions = (delegate* unmanaged[Cdecl]) funcTable[0x3039AE5AD2C9C0C4UL]; + if (fn__networkOverrideChatRestrictions == null) fn__networkOverrideChatRestrictions = (delegate* unmanaged[Cdecl]) funcTable[0x3039AE5AD2C9C0C4UL]; var success = false; fn__networkOverrideChatRestrictions(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -67760,10 +67747,10 @@ public void NetworkOverrideChatRestrictions(int _player, bool _toggle) } public void NetworkOverrideSendRestrictions(IPlayer player, bool toggle) => NetworkOverrideSendRestrictions(player.ScriptId, toggle); - public void NetworkOverrideSendRestrictions(int _player, bool _toggle) + public void NetworkOverrideSendRestrictions(uint _player, bool _toggle) { unsafe { - if (fn__networkOverrideSendRestrictions == null) fn__networkOverrideSendRestrictions = (delegate* unmanaged[Cdecl]) funcTable[0x97DD4C5944CC2E6AUL]; + if (fn__networkOverrideSendRestrictions == null) fn__networkOverrideSendRestrictions = (delegate* unmanaged[Cdecl]) funcTable[0x97DD4C5944CC2E6AUL]; var success = false; fn__networkOverrideSendRestrictions(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -67781,10 +67768,10 @@ public void NetworkOverrideSendRestrictionsAll(bool _toggle) } public void NetworkOverrideReceiveRestrictions(IPlayer player, bool toggle) => NetworkOverrideReceiveRestrictions(player.ScriptId, toggle); - public void NetworkOverrideReceiveRestrictions(int _player, bool _toggle) + public void NetworkOverrideReceiveRestrictions(uint _player, bool _toggle) { unsafe { - if (fn__networkOverrideReceiveRestrictions == null) fn__networkOverrideReceiveRestrictions = (delegate* unmanaged[Cdecl]) funcTable[0xDDF73E2B1FEC5AB4UL]; + if (fn__networkOverrideReceiveRestrictions == null) fn__networkOverrideReceiveRestrictions = (delegate* unmanaged[Cdecl]) funcTable[0xDDF73E2B1FEC5AB4UL]; var success = false; fn__networkOverrideReceiveRestrictions(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -67842,10 +67829,10 @@ public void NetworkClearVoiceProximityOverride() } public void NetworkEnableVoiceBandwidthRestriction(IPlayer player) => NetworkEnableVoiceBandwidthRestriction(player.ScriptId); - public void NetworkEnableVoiceBandwidthRestriction(int _player) + public void NetworkEnableVoiceBandwidthRestriction(uint _player) { unsafe { - if (fn__networkEnableVoiceBandwidthRestriction == null) fn__networkEnableVoiceBandwidthRestriction = (delegate* unmanaged[Cdecl]) funcTable[0x5E3AA4CA2B6FB0EEUL]; + if (fn__networkEnableVoiceBandwidthRestriction == null) fn__networkEnableVoiceBandwidthRestriction = (delegate* unmanaged[Cdecl]) funcTable[0x5E3AA4CA2B6FB0EEUL]; var success = false; fn__networkEnableVoiceBandwidthRestriction(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -67853,10 +67840,10 @@ public void NetworkEnableVoiceBandwidthRestriction(int _player) } public void NetworkDisableVoiceBandwidthRestriction(IPlayer player) => NetworkDisableVoiceBandwidthRestriction(player.ScriptId); - public void NetworkDisableVoiceBandwidthRestriction(int _player) + public void NetworkDisableVoiceBandwidthRestriction(uint _player) { unsafe { - if (fn__networkDisableVoiceBandwidthRestriction == null) fn__networkDisableVoiceBandwidthRestriction = (delegate* unmanaged[Cdecl]) funcTable[0xCA575C391FEA25CCUL]; + if (fn__networkDisableVoiceBandwidthRestriction == null) fn__networkDisableVoiceBandwidthRestriction = (delegate* unmanaged[Cdecl]) funcTable[0xCA575C391FEA25CCUL]; var success = false; fn__networkDisableVoiceBandwidthRestriction(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -67864,10 +67851,10 @@ public void NetworkDisableVoiceBandwidthRestriction(int _player) } public void NetworkGetMuteCountForPlayer(IPlayer p0, ref float p1, ref float p2) => NetworkGetMuteCountForPlayer(p0.ScriptId, ref p1, ref p2); - public void NetworkGetMuteCountForPlayer(int _p0, ref float _p1, ref float _p2) + public void NetworkGetMuteCountForPlayer(uint _p0, ref float _p1, ref float _p2) { unsafe { - if (fn__networkGetMuteCountForPlayer == null) fn__networkGetMuteCountForPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xADB57E5B663CCA8BUL]; + if (fn__networkGetMuteCountForPlayer == null) fn__networkGetMuteCountForPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xADB57E5B663CCA8BUL]; var success = false; var ref_p1 = _p1; var ref_p2 = _p2; @@ -67945,9 +67932,9 @@ public void NetworkSetRichPresenceString(int _p0, string _textLabel) unsafe { if (fn__networkSetRichPresenceString == null) fn__networkSetRichPresenceString = (delegate* unmanaged[Cdecl]) funcTable[0x3E200C2BCF4164EBUL]; var success = false; - var ptr_textLabel = _textLabel == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_textLabel); + var ptr_textLabel = MemoryUtils.StringToHGlobalUtf8(_textLabel); fn__networkSetRichPresenceString(&success, _p0, ptr_textLabel); - if (ptr_textLabel != IntPtr.Zero) Marshal.FreeHGlobal(ptr_textLabel); + Marshal.FreeHGlobal(ptr_textLabel); if (!success) throw new Exception("Native execution failed"); } } @@ -67964,10 +67951,10 @@ public int NetworkGetTimeoutTime() } public void NetworkLeavePedBehindBeforeWarp(IPlayer player, float x, float y, float z, bool p4, bool p5) => NetworkLeavePedBehindBeforeWarp(player.ScriptId, x, y, z, p4, p5); - public void NetworkLeavePedBehindBeforeWarp(int _player, float _x, float _y, float _z, bool _p4, bool _p5) + public void NetworkLeavePedBehindBeforeWarp(uint _player, float _x, float _y, float _z, bool _p4, bool _p5) { unsafe { - if (fn__networkLeavePedBehindBeforeWarp == null) fn__networkLeavePedBehindBeforeWarp = (delegate* unmanaged[Cdecl]) funcTable[0x9769F811D1785B03UL]; + if (fn__networkLeavePedBehindBeforeWarp == null) fn__networkLeavePedBehindBeforeWarp = (delegate* unmanaged[Cdecl]) funcTable[0x9769F811D1785B03UL]; var success = false; fn__networkLeavePedBehindBeforeWarp(&success, _player, _x, _y, _z, (byte) (_p4 ? 1 : 0), (byte) (_p5 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -67975,23 +67962,23 @@ public void NetworkLeavePedBehindBeforeWarp(int _player, float _x, float _y, flo } public void NetworkLeavePedBehindBeforeCutscene(IPlayer player, bool p1) => NetworkLeavePedBehindBeforeCutscene(player.ScriptId, p1); - public void NetworkLeavePedBehindBeforeCutscene(int _player, bool _p1) + public void NetworkLeavePedBehindBeforeCutscene(uint _player, bool _p1) { unsafe { - if (fn__networkLeavePedBehindBeforeCutscene == null) fn__networkLeavePedBehindBeforeCutscene = (delegate* unmanaged[Cdecl]) funcTable[0xBF22E0F32968E967UL]; + if (fn__networkLeavePedBehindBeforeCutscene == null) fn__networkLeavePedBehindBeforeCutscene = (delegate* unmanaged[Cdecl]) funcTable[0xBF22E0F32968E967UL]; var success = false; fn__networkLeavePedBehindBeforeCutscene(&success, _player, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void RemoveAllStickyBombsFromEntity(IEntity entity, int ped) => RemoveAllStickyBombsFromEntity(entity.ScriptId, ped); - public void RemoveAllStickyBombsFromEntity(int entity, IPlayer ped) => RemoveAllStickyBombsFromEntity(entity, ped.ScriptId); + public void RemoveAllStickyBombsFromEntity(IEntity entity, uint ped) => RemoveAllStickyBombsFromEntity(entity.ScriptId, ped); + public void RemoveAllStickyBombsFromEntity(uint entity, IPlayer ped) => RemoveAllStickyBombsFromEntity(entity, ped.ScriptId); public void RemoveAllStickyBombsFromEntity(IEntity entity, IPlayer ped) => RemoveAllStickyBombsFromEntity(entity.ScriptId, ped.ScriptId); - public void RemoveAllStickyBombsFromEntity(int _entity, int _ped) + public void RemoveAllStickyBombsFromEntity(uint _entity, uint _ped) { unsafe { - if (fn__removeAllStickyBombsFromEntity == null) fn__removeAllStickyBombsFromEntity = (delegate* unmanaged[Cdecl]) funcTable[0x715135F4B82AC90DUL]; + if (fn__removeAllStickyBombsFromEntity == null) fn__removeAllStickyBombsFromEntity = (delegate* unmanaged[Cdecl]) funcTable[0x715135F4B82AC90DUL]; var success = false; fn__removeAllStickyBombsFromEntity(&success, _entity, _ped); if (!success) throw new Exception("Native execution failed"); @@ -68077,13 +68064,13 @@ public void NetworkClanGetUiFormattedTag(ref int _clanDesc, int _bufferSize, ref if (fn__networkClanGetUiFormattedTag == null) fn__networkClanGetUiFormattedTag = (delegate* unmanaged[Cdecl]) funcTable[0xF45352426FF3A4F0UL]; var success = false; var ref_clanDesc = _clanDesc; - var ptr_formattedTag = _formattedTag == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_formattedTag); + var ptr_formattedTag = MemoryUtils.StringToHGlobalUtf8(_formattedTag); var ref_formattedTag = ptr_formattedTag; fn__networkClanGetUiFormattedTag(&success, &ref_clanDesc, _bufferSize, &ref_formattedTag); _clanDesc = ref_clanDesc; - _formattedTag = ref_formattedTag == IntPtr.Zero ? null : Marshal.PtrToStringUTF8(ref_formattedTag); - if (ref_formattedTag != ptr_formattedTag && ref_formattedTag != IntPtr.Zero) freeString(ref_formattedTag); - if (ptr_formattedTag != IntPtr.Zero) Marshal.FreeHGlobal(ptr_formattedTag); + _formattedTag = Marshal.PtrToStringUTF8(ref_formattedTag); + if (ref_formattedTag != ptr_formattedTag) freeString(ref_formattedTag); + Marshal.FreeHGlobal(ptr_formattedTag); if (!success) throw new Exception("Native execution failed"); } } @@ -68219,11 +68206,11 @@ public bool NetworkClanCrewinfoGetStringValue(string _animDict, string _animName unsafe { if (fn__networkClanCrewinfoGetStringValue == null) fn__networkClanCrewinfoGetStringValue = (delegate* unmanaged[Cdecl]) funcTable[0x729E3401F0430686UL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); var result = fn__networkClanCrewinfoGetStringValue(&success, ptr_animDict, ptr_animName); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -68234,9 +68221,9 @@ public bool NetworkClanCrewinfoGetCrewranktitle(int _p0, string _p1) unsafe { if (fn__networkClanCrewinfoGetCrewranktitle == null) fn__networkClanCrewinfoGetCrewranktitle = (delegate* unmanaged[Cdecl]) funcTable[0x2B51EDBEFC301339UL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); var result = fn__networkClanCrewinfoGetCrewranktitle(&success, _p0, ptr_p1); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -68259,13 +68246,13 @@ public bool NetworkClanGetEmblemTxdName(ref int _netHandle, ref string _txdName) if (fn__networkClanGetEmblemTxdName == null) fn__networkClanGetEmblemTxdName = (delegate* unmanaged[Cdecl]) funcTable[0x5835D9CD92E83184UL]; var success = false; var ref_netHandle = _netHandle; - var ptr_txdName = _txdName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_txdName); + var ptr_txdName = MemoryUtils.StringToHGlobalUtf8(_txdName); var ref_txdName = ptr_txdName; var result = fn__networkClanGetEmblemTxdName(&success, &ref_netHandle, &ref_txdName); _netHandle = ref_netHandle; - _txdName = ref_txdName == IntPtr.Zero ? null : Marshal.PtrToStringUTF8(ref_txdName); - if (ref_txdName != ptr_txdName && ref_txdName != IntPtr.Zero) freeString(ref_txdName); - if (ptr_txdName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_txdName); + _txdName = Marshal.PtrToStringUTF8(ref_txdName); + if (ref_txdName != ptr_txdName) freeString(ref_txdName); + Marshal.FreeHGlobal(ptr_txdName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -68397,10 +68384,10 @@ public void SetNetworkIdExistsOnAllMachines(int _netId, bool _toggle) } public void SetNetworkIdAlwaysExistsForPlayer(int netId, IPlayer player, bool toggle) => SetNetworkIdAlwaysExistsForPlayer(netId, player.ScriptId, toggle); - public void SetNetworkIdAlwaysExistsForPlayer(int _netId, int _player, bool _toggle) + public void SetNetworkIdAlwaysExistsForPlayer(int _netId, uint _player, bool _toggle) { unsafe { - if (fn__setNetworkIdAlwaysExistsForPlayer == null) fn__setNetworkIdAlwaysExistsForPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xA8A024587329F36AUL]; + if (fn__setNetworkIdAlwaysExistsForPlayer == null) fn__setNetworkIdAlwaysExistsForPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xA8A024587329F36AUL]; var success = false; fn__setNetworkIdAlwaysExistsForPlayer(&success, _netId, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -68418,20 +68405,20 @@ public void SetNetworkIdCanBeReassigned(int _netId, bool _toggle) } public void NetworkSetEntityCanBlend(IEntity entity, bool toggle) => NetworkSetEntityCanBlend(entity.ScriptId, toggle); - public void NetworkSetEntityCanBlend(int _entity, bool _toggle) + public void NetworkSetEntityCanBlend(uint _entity, bool _toggle) { unsafe { - if (fn__networkSetEntityCanBlend == null) fn__networkSetEntityCanBlend = (delegate* unmanaged[Cdecl]) funcTable[0xD830567D88A1E873UL]; + if (fn__networkSetEntityCanBlend == null) fn__networkSetEntityCanBlend = (delegate* unmanaged[Cdecl]) funcTable[0xD830567D88A1E873UL]; var success = false; fn__networkSetEntityCanBlend(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void NetworkSetObjectCanBlendWhenFixed(int _object, bool _toggle) + public void NetworkSetObjectCanBlendWhenFixed(uint _object, bool _toggle) { unsafe { - if (fn__networkSetObjectCanBlendWhenFixed == null) fn__networkSetObjectCanBlendWhenFixed = (delegate* unmanaged[Cdecl]) funcTable[0x0379DAF89BA09AA5UL]; + if (fn__networkSetObjectCanBlendWhenFixed == null) fn__networkSetObjectCanBlendWhenFixed = (delegate* unmanaged[Cdecl]) funcTable[0x0379DAF89BA09AA5UL]; var success = false; fn__networkSetObjectCanBlendWhenFixed(&success, _object, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -68439,10 +68426,10 @@ public void NetworkSetObjectCanBlendWhenFixed(int _object, bool _toggle) } public void NetworkSetEntityOnlyExistsForParticipants(IEntity entity, bool toggle) => NetworkSetEntityOnlyExistsForParticipants(entity.ScriptId, toggle); - public void NetworkSetEntityOnlyExistsForParticipants(int _entity, bool _toggle) + public void NetworkSetEntityOnlyExistsForParticipants(uint _entity, bool _toggle) { unsafe { - if (fn__networkSetEntityOnlyExistsForParticipants == null) fn__networkSetEntityOnlyExistsForParticipants = (delegate* unmanaged[Cdecl]) funcTable[0xF1CA12B18AEF5298UL]; + if (fn__networkSetEntityOnlyExistsForParticipants == null) fn__networkSetEntityOnlyExistsForParticipants = (delegate* unmanaged[Cdecl]) funcTable[0xF1CA12B18AEF5298UL]; var success = false; fn__networkSetEntityOnlyExistsForParticipants(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -68531,44 +68518,44 @@ public void SetLocalPlayerVisibleInCutscene(bool _p0, bool _p1) } } - public void SetLocalPlayerInvisibleLocally(bool _p0) + public void SetLocalPlayerInvisibleLocally(bool _bIncludePlayersVehicle) { unsafe { if (fn__setLocalPlayerInvisibleLocally == null) fn__setLocalPlayerInvisibleLocally = (delegate* unmanaged[Cdecl]) funcTable[0xE5F773C1A1D9D168UL]; var success = false; - fn__setLocalPlayerInvisibleLocally(&success, (byte) (_p0 ? 1 : 0)); + fn__setLocalPlayerInvisibleLocally(&success, (byte) (_bIncludePlayersVehicle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void SetLocalPlayerVisibleLocally(bool _p0) + public void SetLocalPlayerVisibleLocally(bool _bIncludePlayersVehicle) { unsafe { if (fn__setLocalPlayerVisibleLocally == null) fn__setLocalPlayerVisibleLocally = (delegate* unmanaged[Cdecl]) funcTable[0x7619364C82D3BF14UL]; var success = false; - fn__setLocalPlayerVisibleLocally(&success, (byte) (_p0 ? 1 : 0)); + fn__setLocalPlayerVisibleLocally(&success, (byte) (_bIncludePlayersVehicle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void SetPlayerInvisibleLocally(IPlayer player, bool toggle) => SetPlayerInvisibleLocally(player.ScriptId, toggle); - public void SetPlayerInvisibleLocally(int _player, bool _toggle) + public void SetPlayerInvisibleLocally(IPlayer player, bool bIncludePlayersVehicle) => SetPlayerInvisibleLocally(player.ScriptId, bIncludePlayersVehicle); + public void SetPlayerInvisibleLocally(uint _player, bool _bIncludePlayersVehicle) { unsafe { - if (fn__setPlayerInvisibleLocally == null) fn__setPlayerInvisibleLocally = (delegate* unmanaged[Cdecl]) funcTable[0x12B37D54667DB0B8UL]; + if (fn__setPlayerInvisibleLocally == null) fn__setPlayerInvisibleLocally = (delegate* unmanaged[Cdecl]) funcTable[0x12B37D54667DB0B8UL]; var success = false; - fn__setPlayerInvisibleLocally(&success, _player, (byte) (_toggle ? 1 : 0)); + fn__setPlayerInvisibleLocally(&success, _player, (byte) (_bIncludePlayersVehicle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void SetPlayerVisibleLocally(IPlayer player, bool toggle) => SetPlayerVisibleLocally(player.ScriptId, toggle); - public void SetPlayerVisibleLocally(int _player, bool _toggle) + public void SetPlayerVisibleLocally(IPlayer player, bool bIncludePlayersVehicle) => SetPlayerVisibleLocally(player.ScriptId, bIncludePlayersVehicle); + public void SetPlayerVisibleLocally(uint _player, bool _bIncludePlayersVehicle) { unsafe { - if (fn__setPlayerVisibleLocally == null) fn__setPlayerVisibleLocally = (delegate* unmanaged[Cdecl]) funcTable[0xFAA10F1FAFB11AF2UL]; + if (fn__setPlayerVisibleLocally == null) fn__setPlayerVisibleLocally = (delegate* unmanaged[Cdecl]) funcTable[0xFAA10F1FAFB11AF2UL]; var success = false; - fn__setPlayerVisibleLocally(&success, _player, (byte) (_toggle ? 1 : 0)); + fn__setPlayerVisibleLocally(&success, _player, (byte) (_bIncludePlayersVehicle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } @@ -68584,10 +68571,10 @@ public void FadeOutLocalPlayer(bool _p0) } public void NetworkFadeOutEntity(IEntity entity, bool normal, bool slow) => NetworkFadeOutEntity(entity.ScriptId, normal, slow); - public void NetworkFadeOutEntity(int _entity, bool _normal, bool _slow) + public void NetworkFadeOutEntity(uint _entity, bool _normal, bool _slow) { unsafe { - if (fn__networkFadeOutEntity == null) fn__networkFadeOutEntity = (delegate* unmanaged[Cdecl]) funcTable[0xDE564951F95E09EDUL]; + if (fn__networkFadeOutEntity == null) fn__networkFadeOutEntity = (delegate* unmanaged[Cdecl]) funcTable[0xDE564951F95E09EDUL]; var success = false; fn__networkFadeOutEntity(&success, _entity, (byte) (_normal ? 1 : 0), (byte) (_slow ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -68595,10 +68582,10 @@ public void NetworkFadeOutEntity(int _entity, bool _normal, bool _slow) } public void NetworkFadeInEntity(IEntity entity, bool state, int p2) => NetworkFadeInEntity(entity.ScriptId, state, p2); - public void NetworkFadeInEntity(int _entity, bool _state, int _p2) + public void NetworkFadeInEntity(uint _entity, bool _state, int _p2) { unsafe { - if (fn__networkFadeInEntity == null) fn__networkFadeInEntity = (delegate* unmanaged[Cdecl]) funcTable[0x1F4ED342ACEFE62DUL]; + if (fn__networkFadeInEntity == null) fn__networkFadeInEntity = (delegate* unmanaged[Cdecl]) funcTable[0x1F4ED342ACEFE62DUL]; var success = false; fn__networkFadeInEntity(&success, _entity, (byte) (_state ? 1 : 0), _p2); if (!success) throw new Exception("Native execution failed"); @@ -68606,10 +68593,10 @@ public void NetworkFadeInEntity(int _entity, bool _state, int _p2) } public bool NetworkIsPlayerFading(IPlayer player) => NetworkIsPlayerFading(player.ScriptId); - public bool NetworkIsPlayerFading(int _player) + public bool NetworkIsPlayerFading(uint _player) { unsafe { - if (fn__networkIsPlayerFading == null) fn__networkIsPlayerFading = (delegate* unmanaged[Cdecl]) funcTable[0x631DC5DFF4B110E3UL]; + if (fn__networkIsPlayerFading == null) fn__networkIsPlayerFading = (delegate* unmanaged[Cdecl]) funcTable[0x631DC5DFF4B110E3UL]; var success = false; var result = fn__networkIsPlayerFading(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -68618,10 +68605,10 @@ public bool NetworkIsPlayerFading(int _player) } public bool NetworkIsEntityFading(IEntity entity) => NetworkIsEntityFading(entity.ScriptId); - public bool NetworkIsEntityFading(int _entity) + public bool NetworkIsEntityFading(uint _entity) { unsafe { - if (fn__networkIsEntityFading == null) fn__networkIsEntityFading = (delegate* unmanaged[Cdecl]) funcTable[0x422F32CC7E56ABADUL]; + if (fn__networkIsEntityFading == null) fn__networkIsEntityFading = (delegate* unmanaged[Cdecl]) funcTable[0x422F32CC7E56ABADUL]; var success = false; var result = fn__networkIsEntityFading(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -68630,10 +68617,10 @@ public bool NetworkIsEntityFading(int _entity) } public bool IsPlayerInCutscene(IPlayer player) => IsPlayerInCutscene(player.ScriptId); - public bool IsPlayerInCutscene(int _player) + public bool IsPlayerInCutscene(uint _player) { unsafe { - if (fn__isPlayerInCutscene == null) fn__isPlayerInCutscene = (delegate* unmanaged[Cdecl]) funcTable[0xE73092F4157CD126UL]; + if (fn__isPlayerInCutscene == null) fn__isPlayerInCutscene = (delegate* unmanaged[Cdecl]) funcTable[0xE73092F4157CD126UL]; var success = false; var result = fn__isPlayerInCutscene(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -68652,10 +68639,10 @@ public void SetEntityVisibleInCutscene(int _p0, bool _p1, bool _p2) } public void SetEntityLocallyInvisible(IEntity entity) => SetEntityLocallyInvisible(entity.ScriptId); - public void SetEntityLocallyInvisible(int _entity) + public void SetEntityLocallyInvisible(uint _entity) { unsafe { - if (fn__setEntityLocallyInvisible == null) fn__setEntityLocallyInvisible = (delegate* unmanaged[Cdecl]) funcTable[0xE135A9FF3F5D05D8UL]; + if (fn__setEntityLocallyInvisible == null) fn__setEntityLocallyInvisible = (delegate* unmanaged[Cdecl]) funcTable[0xE135A9FF3F5D05D8UL]; var success = false; fn__setEntityLocallyInvisible(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -68663,10 +68650,10 @@ public void SetEntityLocallyInvisible(int _entity) } public void SetEntityLocallyVisible(IEntity entity) => SetEntityLocallyVisible(entity.ScriptId); - public void SetEntityLocallyVisible(int _entity) + public void SetEntityLocallyVisible(uint _entity) { unsafe { - if (fn__setEntityLocallyVisible == null) fn__setEntityLocallyVisible = (delegate* unmanaged[Cdecl]) funcTable[0x241E289B5C059EDCUL]; + if (fn__setEntityLocallyVisible == null) fn__setEntityLocallyVisible = (delegate* unmanaged[Cdecl]) funcTable[0x241E289B5C059EDCUL]; var success = false; fn__setEntityLocallyVisible(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -68695,10 +68682,10 @@ public void ActivateDamageTrackerOnNetworkId(int _netID, bool _toggle) } public bool IsDamageTrackerActiveOnPlayer(IPlayer player) => IsDamageTrackerActiveOnPlayer(player.ScriptId); - public bool IsDamageTrackerActiveOnPlayer(int _player) + public bool IsDamageTrackerActiveOnPlayer(uint _player) { unsafe { - if (fn__isDamageTrackerActiveOnPlayer == null) fn__isDamageTrackerActiveOnPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xB2092A1EAA7FD45FUL]; + if (fn__isDamageTrackerActiveOnPlayer == null) fn__isDamageTrackerActiveOnPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xB2092A1EAA7FD45FUL]; var success = false; var result = fn__isDamageTrackerActiveOnPlayer(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -68707,10 +68694,10 @@ public bool IsDamageTrackerActiveOnPlayer(int _player) } public void ActivateDamageTrackerOnPlayer(IPlayer player, bool toggle) => ActivateDamageTrackerOnPlayer(player.ScriptId, toggle); - public void ActivateDamageTrackerOnPlayer(int _player, bool _toggle) + public void ActivateDamageTrackerOnPlayer(uint _player, bool _toggle) { unsafe { - if (fn__activateDamageTrackerOnPlayer == null) fn__activateDamageTrackerOnPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xBEC0816FF5ACBCDAUL]; + if (fn__activateDamageTrackerOnPlayer == null) fn__activateDamageTrackerOnPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xBEC0816FF5ACBCDAUL]; var success = false; fn__activateDamageTrackerOnPlayer(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -68991,10 +68978,10 @@ public int GetMaxNumNetworkPickups() } } - public void NetworkSetObjectScopeDistance(int _object, float _range) + public void NetworkSetObjectScopeDistance(uint _object, float _range) { unsafe { - if (fn__networkSetObjectScopeDistance == null) fn__networkSetObjectScopeDistance = (delegate* unmanaged[Cdecl]) funcTable[0xBA7F0B77D80A4EB7UL]; + if (fn__networkSetObjectScopeDistance == null) fn__networkSetObjectScopeDistance = (delegate* unmanaged[Cdecl]) funcTable[0xBA7F0B77D80A4EB7UL]; var success = false; fn__networkSetObjectScopeDistance(&success, _object, _range); if (!success) throw new Exception("Native execution failed"); @@ -69116,8 +69103,8 @@ public string GetTimeAsString(int _time) var success = false; var result = fn__getTimeAsString(&success, _time); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -69129,8 +69116,8 @@ public string GetCloudTimeAsString() var success = false; var result = fn__getCloudTimeAsString(&success); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -69159,10 +69146,10 @@ public void ConvertPosixTime(int _posixTime, ref int _timeStructure) } public void NetworkSetInSpectatorMode(bool toggle, IPlayer playerPed) => NetworkSetInSpectatorMode(toggle, playerPed.ScriptId); - public void NetworkSetInSpectatorMode(bool _toggle, int _playerPed) + public void NetworkSetInSpectatorMode(bool _toggle, uint _playerPed) { unsafe { - if (fn__networkSetInSpectatorMode == null) fn__networkSetInSpectatorMode = (delegate* unmanaged[Cdecl]) funcTable[0x423DE3854BB50894UL]; + if (fn__networkSetInSpectatorMode == null) fn__networkSetInSpectatorMode = (delegate* unmanaged[Cdecl]) funcTable[0x423DE3854BB50894UL]; var success = false; fn__networkSetInSpectatorMode(&success, (byte) (_toggle ? 1 : 0), _playerPed); if (!success) throw new Exception("Native execution failed"); @@ -69170,10 +69157,10 @@ public void NetworkSetInSpectatorMode(bool _toggle, int _playerPed) } public void NetworkSetInSpectatorModeExtended(bool toggle, IPlayer playerPed, bool p2) => NetworkSetInSpectatorModeExtended(toggle, playerPed.ScriptId, p2); - public void NetworkSetInSpectatorModeExtended(bool _toggle, int _playerPed, bool _p2) + public void NetworkSetInSpectatorModeExtended(bool _toggle, uint _playerPed, bool _p2) { unsafe { - if (fn__networkSetInSpectatorModeExtended == null) fn__networkSetInSpectatorModeExtended = (delegate* unmanaged[Cdecl]) funcTable[0x419594E137637120UL]; + if (fn__networkSetInSpectatorModeExtended == null) fn__networkSetInSpectatorModeExtended = (delegate* unmanaged[Cdecl]) funcTable[0x419594E137637120UL]; var success = false; fn__networkSetInSpectatorModeExtended(&success, (byte) (_toggle ? 1 : 0), _playerPed, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -69191,10 +69178,10 @@ public void NetworkSetInFreeCamMode(bool _toggle) } public void NetworkSetAntagonisticToPlayer(bool toggle, IPlayer player) => NetworkSetAntagonisticToPlayer(toggle, player.ScriptId); - public void NetworkSetAntagonisticToPlayer(bool _toggle, int _player) + public void NetworkSetAntagonisticToPlayer(bool _toggle, uint _player) { unsafe { - if (fn__networkSetAntagonisticToPlayer == null) fn__networkSetAntagonisticToPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x5C707A667DF8B9FAUL]; + if (fn__networkSetAntagonisticToPlayer == null) fn__networkSetAntagonisticToPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x5C707A667DF8B9FAUL]; var success = false; fn__networkSetAntagonisticToPlayer(&success, (byte) (_toggle ? 1 : 0), _player); if (!success) throw new Exception("Native execution failed"); @@ -69234,10 +69221,10 @@ public bool NetworkIsInMpCutscene() } public bool NetworkIsPlayerInMpCutscene(IPlayer player) => NetworkIsPlayerInMpCutscene(player.ScriptId); - public bool NetworkIsPlayerInMpCutscene(int _player) + public bool NetworkIsPlayerInMpCutscene(uint _player) { unsafe { - if (fn__networkIsPlayerInMpCutscene == null) fn__networkIsPlayerInMpCutscene = (delegate* unmanaged[Cdecl]) funcTable[0x63F9EE203C3619F2UL]; + if (fn__networkIsPlayerInMpCutscene == null) fn__networkIsPlayerInMpCutscene = (delegate* unmanaged[Cdecl]) funcTable[0x63F9EE203C3619F2UL]; var success = false; var result = fn__networkIsPlayerInMpCutscene(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -69266,10 +69253,10 @@ public void SetNetworkVehicleRespotTimer(int _netId, int _time, int _p2, int _p3 } public void SetNetworkVehicleAsGhost(IVehicle vehicle, bool toggle) => SetNetworkVehicleAsGhost(vehicle.ScriptId, toggle); - public void SetNetworkVehicleAsGhost(int _vehicle, bool _toggle) + public void SetNetworkVehicleAsGhost(uint _vehicle, bool _toggle) { unsafe { - if (fn__setNetworkVehicleAsGhost == null) fn__setNetworkVehicleAsGhost = (delegate* unmanaged[Cdecl]) funcTable[0x6274C4712850841EUL]; + if (fn__setNetworkVehicleAsGhost == null) fn__setNetworkVehicleAsGhost = (delegate* unmanaged[Cdecl]) funcTable[0x6274C4712850841EUL]; var success = false; fn__setNetworkVehicleAsGhost(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -69277,10 +69264,10 @@ public void SetNetworkVehicleAsGhost(int _vehicle, bool _toggle) } public void SetNetworkVehicleMaxPositionDeltaMultiplier(IVehicle vehicle, float multiplier) => SetNetworkVehicleMaxPositionDeltaMultiplier(vehicle.ScriptId, multiplier); - public void SetNetworkVehicleMaxPositionDeltaMultiplier(int _vehicle, float _multiplier) + public void SetNetworkVehicleMaxPositionDeltaMultiplier(uint _vehicle, float _multiplier) { unsafe { - if (fn__setNetworkVehicleMaxPositionDeltaMultiplier == null) fn__setNetworkVehicleMaxPositionDeltaMultiplier = (delegate* unmanaged[Cdecl]) funcTable[0xA2A707979FE754DCUL]; + if (fn__setNetworkVehicleMaxPositionDeltaMultiplier == null) fn__setNetworkVehicleMaxPositionDeltaMultiplier = (delegate* unmanaged[Cdecl]) funcTable[0xA2A707979FE754DCUL]; var success = false; fn__setNetworkVehicleMaxPositionDeltaMultiplier(&success, _vehicle, _multiplier); if (!success) throw new Exception("Native execution failed"); @@ -69288,10 +69275,10 @@ public void SetNetworkVehicleMaxPositionDeltaMultiplier(int _vehicle, float _mul } public void SetNetworkEnableHighSpeedEdgeFallDetection(IVehicle vehicle, bool toggle) => SetNetworkEnableHighSpeedEdgeFallDetection(vehicle.ScriptId, toggle); - public void SetNetworkEnableHighSpeedEdgeFallDetection(int _vehicle, bool _toggle) + public void SetNetworkEnableHighSpeedEdgeFallDetection(uint _vehicle, bool _toggle) { unsafe { - if (fn__setNetworkEnableHighSpeedEdgeFallDetection == null) fn__setNetworkEnableHighSpeedEdgeFallDetection = (delegate* unmanaged[Cdecl]) funcTable[0x838DA0936A24ED4DUL]; + if (fn__setNetworkEnableHighSpeedEdgeFallDetection == null) fn__setNetworkEnableHighSpeedEdgeFallDetection = (delegate* unmanaged[Cdecl]) funcTable[0x838DA0936A24ED4DUL]; var success = false; fn__setNetworkEnableHighSpeedEdgeFallDetection(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -69309,10 +69296,10 @@ public void SetLocalPlayerAsGhost(bool _toggle, bool _p1) } public bool IsEntityAGhost(IEntity entity) => IsEntityAGhost(entity.ScriptId); - public bool IsEntityAGhost(int _entity) + public bool IsEntityAGhost(uint _entity) { unsafe { - if (fn__isEntityAGhost == null) fn__isEntityAGhost = (delegate* unmanaged[Cdecl]) funcTable[0x21D04D7BC538C146UL]; + if (fn__isEntityAGhost == null) fn__isEntityAGhost = (delegate* unmanaged[Cdecl]) funcTable[0x21D04D7BC538C146UL]; var success = false; var result = fn__isEntityAGhost(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -69331,10 +69318,10 @@ public void SetNonParticipantsOfThisScriptAsGhosts(bool _p0) } public void SetRemotePlayerAsGhost(IPlayer player, bool p1) => SetRemotePlayerAsGhost(player.ScriptId, p1); - public void SetRemotePlayerAsGhost(int _player, bool _p1) + public void SetRemotePlayerAsGhost(uint _player, bool _p1) { unsafe { - if (fn__setRemotePlayerAsGhost == null) fn__setRemotePlayerAsGhost = (delegate* unmanaged[Cdecl]) funcTable[0xA7C511FA1C5BDA38UL]; + if (fn__setRemotePlayerAsGhost == null) fn__setRemotePlayerAsGhost = (delegate* unmanaged[Cdecl]) funcTable[0xA7C511FA1C5BDA38UL]; var success = false; fn__setRemotePlayerAsGhost(&success, _player, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -69362,10 +69349,10 @@ public void ResetGhostAlpha() } public void SetEntityGhostedForGhostPlayers(IEntity entity, bool toggle) => SetEntityGhostedForGhostPlayers(entity.ScriptId, toggle); - public void SetEntityGhostedForGhostPlayers(int _entity, bool _toggle) + public void SetEntityGhostedForGhostPlayers(uint _entity, bool _toggle) { unsafe { - if (fn__setEntityGhostedForGhostPlayers == null) fn__setEntityGhostedForGhostPlayers = (delegate* unmanaged[Cdecl]) funcTable[0x4BA166079D658ED4UL]; + if (fn__setEntityGhostedForGhostPlayers == null) fn__setEntityGhostedForGhostPlayers = (delegate* unmanaged[Cdecl]) funcTable[0x4BA166079D658ED4UL]; var success = false; fn__setEntityGhostedForGhostPlayers(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -69383,10 +69370,10 @@ public void SetInvertGhosting(bool _p0) } public bool IsEntityInGhostCollision(IEntity entity) => IsEntityInGhostCollision(entity.ScriptId); - public bool IsEntityInGhostCollision(int _entity) + public bool IsEntityInGhostCollision(uint _entity) { unsafe { - if (fn__isEntityInGhostCollision == null) fn__isEntityInGhostCollision = (delegate* unmanaged[Cdecl]) funcTable[0x7EF7649B64D7FF10UL]; + if (fn__isEntityInGhostCollision == null) fn__isEntityInGhostCollision = (delegate* unmanaged[Cdecl]) funcTable[0x7EF7649B64D7FF10UL]; var success = false; var result = fn__isEntityInGhostCollision(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -69416,16 +69403,16 @@ public int NetworkCreateSynchronisedScene(float _x, float _y, float _z, float _x } public void NetworkAddPedToSynchronisedScene(IPlayer ped, int netScene, string animDict, string animnName, float speed, float speedMultiplier, int duration, int flag, float playbackRate, int p9) => NetworkAddPedToSynchronisedScene(ped.ScriptId, netScene, animDict, animnName, speed, speedMultiplier, duration, flag, playbackRate, p9); - public void NetworkAddPedToSynchronisedScene(int _ped, int _netScene, string _animDict, string _animnName, float _speed, float _speedMultiplier, int _duration, int _flag, float _playbackRate, int _p9) + public void NetworkAddPedToSynchronisedScene(uint _ped, int _netScene, string _animDict, string _animnName, float _speed, float _speedMultiplier, int _duration, int _flag, float _playbackRate, int _p9) { unsafe { - if (fn__networkAddPedToSynchronisedScene == null) fn__networkAddPedToSynchronisedScene = (delegate* unmanaged[Cdecl]) funcTable[0x742A637471BCECD9UL]; + if (fn__networkAddPedToSynchronisedScene == null) fn__networkAddPedToSynchronisedScene = (delegate* unmanaged[Cdecl]) funcTable[0x742A637471BCECD9UL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); - var ptr_animnName = _animnName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animnName); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animnName = MemoryUtils.StringToHGlobalUtf8(_animnName); fn__networkAddPedToSynchronisedScene(&success, _ped, _netScene, ptr_animDict, ptr_animnName, _speed, _speedMultiplier, _duration, _flag, _playbackRate, _p9); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); - if (ptr_animnName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animnName); + Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animnName); if (!success) throw new Exception("Native execution failed"); } } @@ -69441,16 +69428,16 @@ public void NetworkAddPedToSynchronisedSceneWithIk(int _p0, int _p1, int _p2, in } public void NetworkAddEntityToSynchronisedScene(IEntity entity, int netScene, string animDict, string animName, float speed, float speedMulitiplier, int flag) => NetworkAddEntityToSynchronisedScene(entity.ScriptId, netScene, animDict, animName, speed, speedMulitiplier, flag); - public void NetworkAddEntityToSynchronisedScene(int _entity, int _netScene, string _animDict, string _animName, float _speed, float _speedMulitiplier, int _flag) + public void NetworkAddEntityToSynchronisedScene(uint _entity, int _netScene, string _animDict, string _animName, float _speed, float _speedMulitiplier, int _flag) { unsafe { - if (fn__networkAddEntityToSynchronisedScene == null) fn__networkAddEntityToSynchronisedScene = (delegate* unmanaged[Cdecl]) funcTable[0xF2404D68CBC855FAUL]; + if (fn__networkAddEntityToSynchronisedScene == null) fn__networkAddEntityToSynchronisedScene = (delegate* unmanaged[Cdecl]) funcTable[0xF2404D68CBC855FAUL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); fn__networkAddEntityToSynchronisedScene(&success, _entity, _netScene, ptr_animDict, ptr_animName, _speed, _speedMulitiplier, _flag); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animName); if (!success) throw new Exception("Native execution failed"); } } @@ -69460,9 +69447,9 @@ public void NetworkAddMapEntityToSynchronisedScene(int _netScene, uint _modelHas unsafe { if (fn__networkAddMapEntityToSynchronisedScene == null) fn__networkAddMapEntityToSynchronisedScene = (delegate* unmanaged[Cdecl]) funcTable[0x45F35C0EDC33B03BUL]; var success = false; - var ptr_p6 = _p6 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p6); + var ptr_p6 = MemoryUtils.StringToHGlobalUtf8(_p6); fn__networkAddMapEntityToSynchronisedScene(&success, _netScene, _modelHash, _x, _y, _z, _p5, ptr_p6, _p7, _p8, _flags); - if (ptr_p6 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p6); + Marshal.FreeHGlobal(ptr_p6); if (!success) throw new Exception("Native execution failed"); } } @@ -69472,20 +69459,20 @@ public void NetworkAddSynchronisedSceneCamera(int _netScene, string _animDict, s unsafe { if (fn__networkAddSynchronisedSceneCamera == null) fn__networkAddSynchronisedSceneCamera = (delegate* unmanaged[Cdecl]) funcTable[0xCF8BD3B0BD6D42D7UL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); fn__networkAddSynchronisedSceneCamera(&success, _netScene, ptr_animDict, ptr_animName); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animName); if (!success) throw new Exception("Native execution failed"); } } public void NetworkAttachSynchronisedSceneToEntity(int netScene, IEntity entity, int bone) => NetworkAttachSynchronisedSceneToEntity(netScene, entity.ScriptId, bone); - public void NetworkAttachSynchronisedSceneToEntity(int _netScene, int _entity, int _bone) + public void NetworkAttachSynchronisedSceneToEntity(int _netScene, uint _entity, int _bone) { unsafe { - if (fn__networkAttachSynchronisedSceneToEntity == null) fn__networkAttachSynchronisedSceneToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x478DCBD2A98B705AUL]; + if (fn__networkAttachSynchronisedSceneToEntity == null) fn__networkAttachSynchronisedSceneToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x478DCBD2A98B705AUL]; var success = false; fn__networkAttachSynchronisedSceneToEntity(&success, _netScene, _entity, _bone); if (!success) throw new Exception("Native execution failed"); @@ -69555,10 +69542,10 @@ public bool NetworkFindLargestBunchOfPlayers(int _p0, int _p1) } public bool NetworkStartRespawnSearchForPlayer(IPlayer player, float x, float y, float z, float radius, float p5, float p6, float p7, int flags) => NetworkStartRespawnSearchForPlayer(player.ScriptId, x, y, z, radius, p5, p6, p7, flags); - public bool NetworkStartRespawnSearchForPlayer(int _player, float _x, float _y, float _z, float _radius, float _p5, float _p6, float _p7, int _flags) + public bool NetworkStartRespawnSearchForPlayer(uint _player, float _x, float _y, float _z, float _radius, float _p5, float _p6, float _p7, int _flags) { unsafe { - if (fn__networkStartRespawnSearchForPlayer == null) fn__networkStartRespawnSearchForPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x5A6FFA2433E2F14CUL]; + if (fn__networkStartRespawnSearchForPlayer == null) fn__networkStartRespawnSearchForPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x5A6FFA2433E2F14CUL]; var success = false; var result = fn__networkStartRespawnSearchForPlayer(&success, _player, _x, _y, _z, _radius, _p5, _p6, _p7, _flags); if (!success) throw new Exception("Native execution failed"); @@ -69567,10 +69554,10 @@ public bool NetworkStartRespawnSearchForPlayer(int _player, float _x, float _y, } public bool NetworkStartRespawnSearchInAngledAreaForPlayer(IPlayer player, float x1, float y1, float z1, float x2, float y2, float z2, float width, float p8, float p9, float p10, int flags) => NetworkStartRespawnSearchInAngledAreaForPlayer(player.ScriptId, x1, y1, z1, x2, y2, z2, width, p8, p9, p10, flags); - public bool NetworkStartRespawnSearchInAngledAreaForPlayer(int _player, float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, float _width, float _p8, float _p9, float _p10, int _flags) + public bool NetworkStartRespawnSearchInAngledAreaForPlayer(uint _player, float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, float _width, float _p8, float _p9, float _p10, int _flags) { unsafe { - if (fn__networkStartRespawnSearchInAngledAreaForPlayer == null) fn__networkStartRespawnSearchInAngledAreaForPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x4BA92A18502BCA61UL]; + if (fn__networkStartRespawnSearchInAngledAreaForPlayer == null) fn__networkStartRespawnSearchInAngledAreaForPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x4BA92A18502BCA61UL]; var success = false; var result = fn__networkStartRespawnSearchInAngledAreaForPlayer(&success, _player, _x1, _y1, _z1, _x2, _y2, _z2, _width, _p8, _p9, _p10, _flags); if (!success) throw new Exception("Native execution failed"); @@ -69690,10 +69677,10 @@ public bool NetworkIsTutorialSessionChangePending() } public int NetworkGetPlayerTutorialSessionInstance(IPlayer player) => NetworkGetPlayerTutorialSessionInstance(player.ScriptId); - public int NetworkGetPlayerTutorialSessionInstance(int _player) + public int NetworkGetPlayerTutorialSessionInstance(uint _player) { unsafe { - if (fn__networkGetPlayerTutorialSessionInstance == null) fn__networkGetPlayerTutorialSessionInstance = (delegate* unmanaged[Cdecl]) funcTable[0x3B39236746714134UL]; + if (fn__networkGetPlayerTutorialSessionInstance == null) fn__networkGetPlayerTutorialSessionInstance = (delegate* unmanaged[Cdecl]) funcTable[0x3B39236746714134UL]; var success = false; var result = fn__networkGetPlayerTutorialSessionInstance(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -69702,10 +69689,10 @@ public int NetworkGetPlayerTutorialSessionInstance(int _player) } public bool NetworkArePlayersInSameTutorialSession(IPlayer player, int index) => NetworkArePlayersInSameTutorialSession(player.ScriptId, index); - public bool NetworkArePlayersInSameTutorialSession(int _player, int _index) + public bool NetworkArePlayersInSameTutorialSession(uint _player, int _index) { unsafe { - if (fn__networkArePlayersInSameTutorialSession == null) fn__networkArePlayersInSameTutorialSession = (delegate* unmanaged[Cdecl]) funcTable[0x9DE986FC9A87C474UL]; + if (fn__networkArePlayersInSameTutorialSession == null) fn__networkArePlayersInSameTutorialSession = (delegate* unmanaged[Cdecl]) funcTable[0x9DE986FC9A87C474UL]; var success = false; var result = fn__networkArePlayersInSameTutorialSession(&success, _player, _index); if (!success) throw new Exception("Native execution failed"); @@ -69724,10 +69711,10 @@ public void NetworkBlockProxyMigrationBetweenTutorialSessions(int _p0) } public void NetworkConcealPlayer(IPlayer player, bool toggle, bool p2) => NetworkConcealPlayer(player.ScriptId, toggle, p2); - public void NetworkConcealPlayer(int _player, bool _toggle, bool _p2) + public void NetworkConcealPlayer(uint _player, bool _toggle, bool _p2) { unsafe { - if (fn__networkConcealPlayer == null) fn__networkConcealPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xBBDF066252829606UL]; + if (fn__networkConcealPlayer == null) fn__networkConcealPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xBBDF066252829606UL]; var success = false; fn__networkConcealPlayer(&success, _player, (byte) (_toggle ? 1 : 0), (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -69735,10 +69722,10 @@ public void NetworkConcealPlayer(int _player, bool _toggle, bool _p2) } public bool NetworkIsPlayerConcealed(IPlayer player) => NetworkIsPlayerConcealed(player.ScriptId); - public bool NetworkIsPlayerConcealed(int _player) + public bool NetworkIsPlayerConcealed(uint _player) { unsafe { - if (fn__networkIsPlayerConcealed == null) fn__networkIsPlayerConcealed = (delegate* unmanaged[Cdecl]) funcTable[0x919B3C98ED8292F9UL]; + if (fn__networkIsPlayerConcealed == null) fn__networkIsPlayerConcealed = (delegate* unmanaged[Cdecl]) funcTable[0x919B3C98ED8292F9UL]; var success = false; var result = fn__networkIsPlayerConcealed(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -69747,10 +69734,10 @@ public bool NetworkIsPlayerConcealed(int _player) } public void NetworkConcealEntity(IEntity entity, bool toggle) => NetworkConcealEntity(entity.ScriptId, toggle); - public void NetworkConcealEntity(int _entity, bool _toggle) + public void NetworkConcealEntity(uint _entity, bool _toggle) { unsafe { - if (fn__networkConcealEntity == null) fn__networkConcealEntity = (delegate* unmanaged[Cdecl]) funcTable[0x1632BE0AC1E62876UL]; + if (fn__networkConcealEntity == null) fn__networkConcealEntity = (delegate* unmanaged[Cdecl]) funcTable[0x1632BE0AC1E62876UL]; var success = false; fn__networkConcealEntity(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -69758,10 +69745,10 @@ public void NetworkConcealEntity(int _entity, bool _toggle) } public bool NetworkIsEntityConcealed(IEntity entity) => NetworkIsEntityConcealed(entity.ScriptId); - public bool NetworkIsEntityConcealed(int _entity) + public bool NetworkIsEntityConcealed(uint _entity) { unsafe { - if (fn__networkIsEntityConcealed == null) fn__networkIsEntityConcealed = (delegate* unmanaged[Cdecl]) funcTable[0x71302EC70689052AUL]; + if (fn__networkIsEntityConcealed == null) fn__networkIsEntityConcealed = (delegate* unmanaged[Cdecl]) funcTable[0x71302EC70689052AUL]; var success = false; var result = fn__networkIsEntityConcealed(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -69987,11 +69974,11 @@ public bool NetworkDoesTunableExist(string _tunableContext, string _tunableName) unsafe { if (fn__networkDoesTunableExist == null) fn__networkDoesTunableExist = (delegate* unmanaged[Cdecl]) funcTable[0x85E5F8B9B898B20AUL]; var success = false; - var ptr_tunableContext = _tunableContext == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_tunableContext); - var ptr_tunableName = _tunableName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_tunableName); + var ptr_tunableContext = MemoryUtils.StringToHGlobalUtf8(_tunableContext); + var ptr_tunableName = MemoryUtils.StringToHGlobalUtf8(_tunableName); var result = fn__networkDoesTunableExist(&success, ptr_tunableContext, ptr_tunableName); - if (ptr_tunableContext != IntPtr.Zero) Marshal.FreeHGlobal(ptr_tunableContext); - if (ptr_tunableName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_tunableName); + Marshal.FreeHGlobal(ptr_tunableContext); + Marshal.FreeHGlobal(ptr_tunableName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -70002,12 +69989,12 @@ public bool NetworkAccessTunableInt(string _tunableContext, string _tunableName, unsafe { if (fn__networkAccessTunableInt == null) fn__networkAccessTunableInt = (delegate* unmanaged[Cdecl]) funcTable[0x8BE1146DFD5D4468UL]; var success = false; - var ptr_tunableContext = _tunableContext == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_tunableContext); - var ptr_tunableName = _tunableName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_tunableName); + var ptr_tunableContext = MemoryUtils.StringToHGlobalUtf8(_tunableContext); + var ptr_tunableName = MemoryUtils.StringToHGlobalUtf8(_tunableName); var ref_value = _value; var result = fn__networkAccessTunableInt(&success, ptr_tunableContext, ptr_tunableName, &ref_value); - if (ptr_tunableContext != IntPtr.Zero) Marshal.FreeHGlobal(ptr_tunableContext); - if (ptr_tunableName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_tunableName); + Marshal.FreeHGlobal(ptr_tunableContext); + Marshal.FreeHGlobal(ptr_tunableName); _value = ref_value; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -70019,12 +70006,12 @@ public bool NetworkAccessTunableFloat(string _tunableContext, string _tunableNam unsafe { if (fn__networkAccessTunableFloat == null) fn__networkAccessTunableFloat = (delegate* unmanaged[Cdecl]) funcTable[0xE5608CA7BC163A5FUL]; var success = false; - var ptr_tunableContext = _tunableContext == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_tunableContext); - var ptr_tunableName = _tunableName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_tunableName); + var ptr_tunableContext = MemoryUtils.StringToHGlobalUtf8(_tunableContext); + var ptr_tunableName = MemoryUtils.StringToHGlobalUtf8(_tunableName); var ref_value = _value; var result = fn__networkAccessTunableFloat(&success, ptr_tunableContext, ptr_tunableName, &ref_value); - if (ptr_tunableContext != IntPtr.Zero) Marshal.FreeHGlobal(ptr_tunableContext); - if (ptr_tunableName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_tunableName); + Marshal.FreeHGlobal(ptr_tunableContext); + Marshal.FreeHGlobal(ptr_tunableName); _value = ref_value; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -70036,11 +70023,11 @@ public bool NetworkAccessTunableBool(string _tunableContext, string _tunableName unsafe { if (fn__networkAccessTunableBool == null) fn__networkAccessTunableBool = (delegate* unmanaged[Cdecl]) funcTable[0xAA6A47A573ABB75AUL]; var success = false; - var ptr_tunableContext = _tunableContext == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_tunableContext); - var ptr_tunableName = _tunableName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_tunableName); + var ptr_tunableContext = MemoryUtils.StringToHGlobalUtf8(_tunableContext); + var ptr_tunableName = MemoryUtils.StringToHGlobalUtf8(_tunableName); var result = fn__networkAccessTunableBool(&success, ptr_tunableContext, ptr_tunableName); - if (ptr_tunableContext != IntPtr.Zero) Marshal.FreeHGlobal(ptr_tunableContext); - if (ptr_tunableName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_tunableName); + Marshal.FreeHGlobal(ptr_tunableContext); + Marshal.FreeHGlobal(ptr_tunableName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -70209,13 +70196,13 @@ public bool NetworkHasBoneBeenHitByKiller(int _boneIndex) } } - public bool NetworkSetAttributeDamageToPlayer(IPlayer ped, int player) => NetworkSetAttributeDamageToPlayer(ped.ScriptId, player); - public bool NetworkSetAttributeDamageToPlayer(int ped, IPlayer player) => NetworkSetAttributeDamageToPlayer(ped, player.ScriptId); + public bool NetworkSetAttributeDamageToPlayer(IPlayer ped, uint player) => NetworkSetAttributeDamageToPlayer(ped.ScriptId, player); + public bool NetworkSetAttributeDamageToPlayer(uint ped, IPlayer player) => NetworkSetAttributeDamageToPlayer(ped, player.ScriptId); public bool NetworkSetAttributeDamageToPlayer(IPlayer ped, IPlayer player) => NetworkSetAttributeDamageToPlayer(ped.ScriptId, player.ScriptId); - public bool NetworkSetAttributeDamageToPlayer(int _ped, int _player) + public bool NetworkSetAttributeDamageToPlayer(uint _ped, uint _player) { unsafe { - if (fn__networkSetAttributeDamageToPlayer == null) fn__networkSetAttributeDamageToPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x0EDE326D47CD0F3EUL]; + if (fn__networkSetAttributeDamageToPlayer == null) fn__networkSetAttributeDamageToPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x0EDE326D47CD0F3EUL]; var success = false; var result = fn__networkSetAttributeDamageToPlayer(&success, _ped, _player); if (!success) throw new Exception("Native execution failed"); @@ -70224,10 +70211,10 @@ public bool NetworkSetAttributeDamageToPlayer(int _ped, int _player) } public void NetworkTriggerDamageEventForZeroDamage(IEntity entity, bool toggle) => NetworkTriggerDamageEventForZeroDamage(entity.ScriptId, toggle); - public void NetworkTriggerDamageEventForZeroDamage(int _entity, bool _toggle) + public void NetworkTriggerDamageEventForZeroDamage(uint _entity, bool _toggle) { unsafe { - if (fn__networkTriggerDamageEventForZeroDamage == null) fn__networkTriggerDamageEventForZeroDamage = (delegate* unmanaged[Cdecl]) funcTable[0x890E2C5ABED7236DUL]; + if (fn__networkTriggerDamageEventForZeroDamage == null) fn__networkTriggerDamageEventForZeroDamage = (delegate* unmanaged[Cdecl]) funcTable[0x890E2C5ABED7236DUL]; var success = false; fn__networkTriggerDamageEventForZeroDamage(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -70235,10 +70222,10 @@ public void NetworkTriggerDamageEventForZeroDamage(int _entity, bool _toggle) } public void NetworkTriggerDamageEventForZeroWeaponHash(IEntity entity, bool toggle) => NetworkTriggerDamageEventForZeroWeaponHash(entity.ScriptId, toggle); - public void NetworkTriggerDamageEventForZeroWeaponHash(int _entity, bool _toggle) + public void NetworkTriggerDamageEventForZeroWeaponHash(uint _entity, bool _toggle) { unsafe { - if (fn__networkTriggerDamageEventForZeroWeaponHash == null) fn__networkTriggerDamageEventForZeroWeaponHash = (delegate* unmanaged[Cdecl]) funcTable[0x38B7C51AB1EDC7D8UL]; + if (fn__networkTriggerDamageEventForZeroWeaponHash == null) fn__networkTriggerDamageEventForZeroWeaponHash = (delegate* unmanaged[Cdecl]) funcTable[0x38B7C51AB1EDC7D8UL]; var success = false; fn__networkTriggerDamageEventForZeroWeaponHash(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -70246,10 +70233,10 @@ public void NetworkTriggerDamageEventForZeroWeaponHash(int _entity, bool _toggle } public void NetworkSetNoLongerNeeded(IEntity entity, bool toggle) => NetworkSetNoLongerNeeded(entity.ScriptId, toggle); - public void NetworkSetNoLongerNeeded(int _entity, bool _toggle) + public void NetworkSetNoLongerNeeded(uint _entity, bool _toggle) { unsafe { - if (fn__networkSetNoLongerNeeded == null) fn__networkSetNoLongerNeeded = (delegate* unmanaged[Cdecl]) funcTable[0x3FC795691834481DUL]; + if (fn__networkSetNoLongerNeeded == null) fn__networkSetNoLongerNeeded = (delegate* unmanaged[Cdecl]) funcTable[0x3FC795691834481DUL]; var success = false; fn__networkSetNoLongerNeeded(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -70257,10 +70244,10 @@ public void NetworkSetNoLongerNeeded(int _entity, bool _toggle) } public bool NetworkExplodeVehicle(IVehicle vehicle, bool isAudible, bool isInvisible, int netId) => NetworkExplodeVehicle(vehicle.ScriptId, isAudible, isInvisible, netId); - public bool NetworkExplodeVehicle(int _vehicle, bool _isAudible, bool _isInvisible, int _netId) + public bool NetworkExplodeVehicle(uint _vehicle, bool _isAudible, bool _isInvisible, int _netId) { unsafe { - if (fn__networkExplodeVehicle == null) fn__networkExplodeVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x301A42153C9AD707UL]; + if (fn__networkExplodeVehicle == null) fn__networkExplodeVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x301A42153C9AD707UL]; var success = false; var result = fn__networkExplodeVehicle(&success, _vehicle, (byte) (_isAudible ? 1 : 0), (byte) (_isInvisible ? 1 : 0), _netId); if (!success) throw new Exception("Native execution failed"); @@ -70269,10 +70256,10 @@ public bool NetworkExplodeVehicle(int _vehicle, bool _isAudible, bool _isInvisib } public void NetworkExplodeHeli(IVehicle vehicle, bool isAudible, bool isInvisible, int netId) => NetworkExplodeHeli(vehicle.ScriptId, isAudible, isInvisible, netId); - public void NetworkExplodeHeli(int _vehicle, bool _isAudible, bool _isInvisible, int _netId) + public void NetworkExplodeHeli(uint _vehicle, bool _isAudible, bool _isInvisible, int _netId) { unsafe { - if (fn__networkExplodeHeli == null) fn__networkExplodeHeli = (delegate* unmanaged[Cdecl]) funcTable[0x2A5E0621DD815A9AUL]; + if (fn__networkExplodeHeli == null) fn__networkExplodeHeli = (delegate* unmanaged[Cdecl]) funcTable[0x2A5E0621DD815A9AUL]; var success = false; fn__networkExplodeHeli(&success, _vehicle, (byte) (_isAudible ? 1 : 0), (byte) (_isInvisible ? 1 : 0), _netId); if (!success) throw new Exception("Native execution failed"); @@ -70280,10 +70267,10 @@ public void NetworkExplodeHeli(int _vehicle, bool _isAudible, bool _isInvisible, } public void NetworkUseLogarithmicBlendingThisFrame(IEntity entity) => NetworkUseLogarithmicBlendingThisFrame(entity.ScriptId); - public void NetworkUseLogarithmicBlendingThisFrame(int _entity) + public void NetworkUseLogarithmicBlendingThisFrame(uint _entity) { unsafe { - if (fn__networkUseLogarithmicBlendingThisFrame == null) fn__networkUseLogarithmicBlendingThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0xCD71A4ECAB22709EUL]; + if (fn__networkUseLogarithmicBlendingThisFrame == null) fn__networkUseLogarithmicBlendingThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0xCD71A4ECAB22709EUL]; var success = false; fn__networkUseLogarithmicBlendingThisFrame(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -70291,10 +70278,10 @@ public void NetworkUseLogarithmicBlendingThisFrame(int _entity) } public void NetworkOverrideCoordsAndHeading(IEntity entity, float x, float y, float z, float heading) => NetworkOverrideCoordsAndHeading(entity.ScriptId, x, y, z, heading); - public void NetworkOverrideCoordsAndHeading(int _entity, float _x, float _y, float _z, float _heading) + public void NetworkOverrideCoordsAndHeading(uint _entity, float _x, float _y, float _z, float _heading) { unsafe { - if (fn__networkOverrideCoordsAndHeading == null) fn__networkOverrideCoordsAndHeading = (delegate* unmanaged[Cdecl]) funcTable[0xA7E30DE9272B6D49UL]; + if (fn__networkOverrideCoordsAndHeading == null) fn__networkOverrideCoordsAndHeading = (delegate* unmanaged[Cdecl]) funcTable[0xA7E30DE9272B6D49UL]; var success = false; fn__networkOverrideCoordsAndHeading(&success, _entity, _x, _y, _z, _heading); if (!success) throw new Exception("Native execution failed"); @@ -70372,10 +70359,10 @@ public void NetworkCacheLocalPlayerHeadBlendData() } public bool NetworkHasCachedPlayerHeadBlendData(IPlayer player) => NetworkHasCachedPlayerHeadBlendData(player.ScriptId); - public bool NetworkHasCachedPlayerHeadBlendData(int _player) + public bool NetworkHasCachedPlayerHeadBlendData(uint _player) { unsafe { - if (fn__networkHasCachedPlayerHeadBlendData == null) fn__networkHasCachedPlayerHeadBlendData = (delegate* unmanaged[Cdecl]) funcTable[0x237D5336A9A54108UL]; + if (fn__networkHasCachedPlayerHeadBlendData == null) fn__networkHasCachedPlayerHeadBlendData = (delegate* unmanaged[Cdecl]) funcTable[0x237D5336A9A54108UL]; var success = false; var result = fn__networkHasCachedPlayerHeadBlendData(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -70383,13 +70370,13 @@ public bool NetworkHasCachedPlayerHeadBlendData(int _player) } } - public bool NetworkApplyCachedPlayerHeadBlendData(IPlayer ped, int player) => NetworkApplyCachedPlayerHeadBlendData(ped.ScriptId, player); - public bool NetworkApplyCachedPlayerHeadBlendData(int ped, IPlayer player) => NetworkApplyCachedPlayerHeadBlendData(ped, player.ScriptId); + public bool NetworkApplyCachedPlayerHeadBlendData(IPlayer ped, uint player) => NetworkApplyCachedPlayerHeadBlendData(ped.ScriptId, player); + public bool NetworkApplyCachedPlayerHeadBlendData(uint ped, IPlayer player) => NetworkApplyCachedPlayerHeadBlendData(ped, player.ScriptId); public bool NetworkApplyCachedPlayerHeadBlendData(IPlayer ped, IPlayer player) => NetworkApplyCachedPlayerHeadBlendData(ped.ScriptId, player.ScriptId); - public bool NetworkApplyCachedPlayerHeadBlendData(int _ped, int _player) + public bool NetworkApplyCachedPlayerHeadBlendData(uint _ped, uint _player) { unsafe { - if (fn__networkApplyCachedPlayerHeadBlendData == null) fn__networkApplyCachedPlayerHeadBlendData = (delegate* unmanaged[Cdecl]) funcTable[0x99B72C7ABDE5C910UL]; + if (fn__networkApplyCachedPlayerHeadBlendData == null) fn__networkApplyCachedPlayerHeadBlendData = (delegate* unmanaged[Cdecl]) funcTable[0x99B72C7ABDE5C910UL]; var success = false; var result = fn__networkApplyCachedPlayerHeadBlendData(&success, _ped, _player); if (!success) throw new Exception("Native execution failed"); @@ -70447,8 +70434,8 @@ public string GetCommerceItemId(int _index) var success = false; var result = fn__getCommerceItemId(&success, _index); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -70460,8 +70447,8 @@ public string GetCommerceItemName(int _index) var success = false; var result = fn__getCommerceItemName(&success, _index); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -70473,8 +70460,8 @@ public string GetCommerceProductPrice(int _index) var success = false; var result = fn__getCommerceProductPrice(&success, _index); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -70497,8 +70484,8 @@ public string GetCommerceItemCat(int _index, int _index2) var success = false; var result = fn__getCommerceItemCat(&success, _index, _index2); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -70508,11 +70495,11 @@ public void OpenCommerceStore(string _p0, string _p1, int _p2) unsafe { if (fn__openCommerceStore == null) fn__openCommerceStore = (delegate* unmanaged[Cdecl]) funcTable[0x58C21165F6545892UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); fn__openCommerceStore(&success, ptr_p0, ptr_p1, _p2); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); } } @@ -70566,8 +70553,8 @@ public string GetCommerceItemTexturename(int _index) var success = false; var result = fn__getCommerceItemTexturename(&success, _index); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -70651,9 +70638,9 @@ public int CloudDeleteMemberFile(string _p0) unsafe { if (fn__cloudDeleteMemberFile == null) fn__cloudDeleteMemberFile = (delegate* unmanaged[Cdecl]) funcTable[0xC64DED7EF0D2FE37UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); var result = fn__cloudDeleteMemberFile(&success, ptr_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); return result; } @@ -70822,8 +70809,8 @@ public string UgcGetCreateContentId() var success = false; var result = fn__ugcGetCreateContentId(&success); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -70856,9 +70843,9 @@ public bool UgcQueryByCategory(int _p0, int _p1, int _p2, string _p3, int _p4, b unsafe { if (fn__ugcQueryByCategory == null) fn__ugcQueryByCategory = (delegate* unmanaged[Cdecl]) funcTable[0x692D58DF40657E8CUL]; var success = false; - var ptr_p3 = _p3 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p3); + var ptr_p3 = MemoryUtils.StringToHGlobalUtf8(_p3); var result = fn__ugcQueryByCategory(&success, _p0, _p1, _p2, ptr_p3, _p4, (byte) (_p5 ? 1 : 0)); - if (ptr_p3 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p3); + Marshal.FreeHGlobal(ptr_p3); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -70869,11 +70856,11 @@ public bool UgcQueryByContentId(string _contentId, bool _latestVersion, string _ unsafe { if (fn__ugcQueryByContentId == null) fn__ugcQueryByContentId = (delegate* unmanaged[Cdecl]) funcTable[0x158EC424F35EC469UL]; var success = false; - var ptr_contentId = _contentId == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentId); - var ptr_contentTypeName = _contentTypeName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentTypeName); + var ptr_contentId = MemoryUtils.StringToHGlobalUtf8(_contentId); + var ptr_contentTypeName = MemoryUtils.StringToHGlobalUtf8(_contentTypeName); var result = fn__ugcQueryByContentId(&success, ptr_contentId, (byte) (_latestVersion ? 1 : 0), ptr_contentTypeName); - if (ptr_contentId != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentId); - if (ptr_contentTypeName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentTypeName); + Marshal.FreeHGlobal(ptr_contentId); + Marshal.FreeHGlobal(ptr_contentTypeName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -70885,10 +70872,10 @@ public bool UgcQueryByContentIds(ref int _data, int _count, bool _latestVersion, if (fn__ugcQueryByContentIds == null) fn__ugcQueryByContentIds = (delegate* unmanaged[Cdecl]) funcTable[0xC7397A83F7A2A462UL]; var success = false; var ref_data = _data; - var ptr_contentTypeName = _contentTypeName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentTypeName); + var ptr_contentTypeName = MemoryUtils.StringToHGlobalUtf8(_contentTypeName); var result = fn__ugcQueryByContentIds(&success, &ref_data, _count, (byte) (_latestVersion ? 1 : 0), ptr_contentTypeName); _data = ref_data; - if (ptr_contentTypeName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentTypeName); + Marshal.FreeHGlobal(ptr_contentTypeName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -70899,9 +70886,9 @@ public bool UgcQueryMostRecentlyCreatedContent(int _offset, int _count, string _ unsafe { if (fn__ugcQueryMostRecentlyCreatedContent == null) fn__ugcQueryMostRecentlyCreatedContent = (delegate* unmanaged[Cdecl]) funcTable[0x6D4CB481FAC835E8UL]; var success = false; - var ptr_contentTypeName = _contentTypeName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentTypeName); + var ptr_contentTypeName = MemoryUtils.StringToHGlobalUtf8(_contentTypeName); var result = fn__ugcQueryMostRecentlyCreatedContent(&success, _offset, _count, ptr_contentTypeName, _p3); - if (ptr_contentTypeName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentTypeName); + Marshal.FreeHGlobal(ptr_contentTypeName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -70912,10 +70899,10 @@ public bool UgcGetBookmarkedContent(int _p0, int _p1, string _p2, ref int _p3) unsafe { if (fn__ugcGetBookmarkedContent == null) fn__ugcGetBookmarkedContent = (delegate* unmanaged[Cdecl]) funcTable[0xD5A4B59980401588UL]; var success = false; - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); var ref_p3 = _p3; var result = fn__ugcGetBookmarkedContent(&success, _p0, _p1, ptr_p2, &ref_p3); - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p2); _p3 = ref_p3; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -70927,10 +70914,10 @@ public bool UgcGetMyContent(int _p0, int _p1, string _p2, ref int _p3) unsafe { if (fn__ugcGetMyContent == null) fn__ugcGetMyContent = (delegate* unmanaged[Cdecl]) funcTable[0x3195F8DD0D531052UL]; var success = false; - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); var ref_p3 = _p3; var result = fn__ugcGetMyContent(&success, _p0, _p1, ptr_p2, &ref_p3); - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p2); _p3 = ref_p3; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -70942,10 +70929,10 @@ public bool UgcGetFriendContent(int _p0, int _p1, string _p2, ref int _p3) unsafe { if (fn__ugcGetFriendContent == null) fn__ugcGetFriendContent = (delegate* unmanaged[Cdecl]) funcTable[0xF9E1CCAE8BA4C281UL]; var success = false; - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); var ref_p3 = _p3; var result = fn__ugcGetFriendContent(&success, _p0, _p1, ptr_p2, &ref_p3); - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p2); _p3 = ref_p3; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -70957,10 +70944,10 @@ public bool UgcGetCrewContent(int _p0, int _p1, int _p2, string _p3, ref int _p4 unsafe { if (fn__ugcGetCrewContent == null) fn__ugcGetCrewContent = (delegate* unmanaged[Cdecl]) funcTable[0x9F6E2821885CAEE2UL]; var success = false; - var ptr_p3 = _p3 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p3); + var ptr_p3 = MemoryUtils.StringToHGlobalUtf8(_p3); var ref_p4 = _p4; var result = fn__ugcGetCrewContent(&success, _p0, _p1, _p2, ptr_p3, &ref_p4); - if (ptr_p3 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p3); + Marshal.FreeHGlobal(ptr_p3); _p4 = ref_p4; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -70972,10 +70959,10 @@ public bool UgcGetGetByCategory(int _p0, int _p1, int _p2, string _p3, ref int _ unsafe { if (fn__ugcGetGetByCategory == null) fn__ugcGetGetByCategory = (delegate* unmanaged[Cdecl]) funcTable[0x678BB03C1A3BD51EUL]; var success = false; - var ptr_p3 = _p3 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p3); + var ptr_p3 = MemoryUtils.StringToHGlobalUtf8(_p3); var ref_p4 = _p4; var result = fn__ugcGetGetByCategory(&success, _p0, _p1, _p2, ptr_p3, &ref_p4); - if (ptr_p3 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p3); + Marshal.FreeHGlobal(ptr_p3); _p4 = ref_p4; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -70987,11 +70974,11 @@ public bool UgcGetGetByContentId(string _contentId, string _contentTypeName) unsafe { if (fn__ugcGetGetByContentId == null) fn__ugcGetGetByContentId = (delegate* unmanaged[Cdecl]) funcTable[0x815E5E3073DA1D67UL]; var success = false; - var ptr_contentId = _contentId == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentId); - var ptr_contentTypeName = _contentTypeName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentTypeName); + var ptr_contentId = MemoryUtils.StringToHGlobalUtf8(_contentId); + var ptr_contentTypeName = MemoryUtils.StringToHGlobalUtf8(_contentTypeName); var result = fn__ugcGetGetByContentId(&success, ptr_contentId, ptr_contentTypeName); - if (ptr_contentId != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentId); - if (ptr_contentTypeName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentTypeName); + Marshal.FreeHGlobal(ptr_contentId); + Marshal.FreeHGlobal(ptr_contentTypeName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -71003,10 +70990,10 @@ public bool UgcGetGetByContentIds(ref int _data, int _dataCount, string _content if (fn__ugcGetGetByContentIds == null) fn__ugcGetGetByContentIds = (delegate* unmanaged[Cdecl]) funcTable[0xB8322EEB38BE7C26UL]; var success = false; var ref_data = _data; - var ptr_contentTypeName = _contentTypeName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentTypeName); + var ptr_contentTypeName = MemoryUtils.StringToHGlobalUtf8(_contentTypeName); var result = fn__ugcGetGetByContentIds(&success, &ref_data, _dataCount, ptr_contentTypeName); _data = ref_data; - if (ptr_contentTypeName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentTypeName); + Marshal.FreeHGlobal(ptr_contentTypeName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -71172,8 +71159,8 @@ public string UgcGetContentUserId(int _p0) var success = false; var result = fn__ugcGetContentUserId(&success, _p0); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -71209,8 +71196,8 @@ public string UgcGetContentUserName(int _p0) var success = false; var result = fn__ugcGetContentUserName(&success, _p0); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -71244,8 +71231,8 @@ public string UgcGetContentId(int _p0) var success = false; var result = fn__ugcGetContentId(&success, _p0); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -71257,8 +71244,8 @@ public string UgcGetRootContentId(int _p0) var success = false; var result = fn__ugcGetRootContentId(&success, _p0); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -71270,8 +71257,8 @@ public string UgcGetContentName(int _p0) var success = false; var result = fn__ugcGetContentName(&success, _p0); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -71294,8 +71281,8 @@ public string UgcGetContentPath(int _p0, int _p1) var success = false; var result = fn__ugcGetContentPath(&success, _p0, _p1); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -71460,11 +71447,11 @@ public int UgcRequestContentDataFromParams(string _contentTypeName, string _cont unsafe { if (fn__ugcRequestContentDataFromParams == null) fn__ugcRequestContentDataFromParams = (delegate* unmanaged[Cdecl]) funcTable[0x7FD2990AF016795EUL]; var success = false; - var ptr_contentTypeName = _contentTypeName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentTypeName); - var ptr_contentId = _contentId == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentId); + var ptr_contentTypeName = MemoryUtils.StringToHGlobalUtf8(_contentTypeName); + var ptr_contentId = MemoryUtils.StringToHGlobalUtf8(_contentId); var result = fn__ugcRequestContentDataFromParams(&success, ptr_contentTypeName, ptr_contentId, _p2, _p3, _p4); - if (ptr_contentTypeName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentTypeName); - if (ptr_contentId != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentId); + Marshal.FreeHGlobal(ptr_contentTypeName); + Marshal.FreeHGlobal(ptr_contentId); if (!success) throw new Exception("Native execution failed"); return result; } @@ -71521,8 +71508,8 @@ public string UgcGetCachedDescription(int _p0, int _p1) var success = false; var result = fn__ugcGetCachedDescription(&success, _p0, _p1); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -71553,13 +71540,13 @@ public bool UgcPublish(string _contentId, string _baseContentId, string _content unsafe { if (fn__ugcPublish == null) fn__ugcPublish = (delegate* unmanaged[Cdecl]) funcTable[0x1DE0F5F50D723CAAUL]; var success = false; - var ptr_contentId = _contentId == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentId); - var ptr_baseContentId = _baseContentId == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_baseContentId); - var ptr_contentTypeName = _contentTypeName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentTypeName); + var ptr_contentId = MemoryUtils.StringToHGlobalUtf8(_contentId); + var ptr_baseContentId = MemoryUtils.StringToHGlobalUtf8(_baseContentId); + var ptr_contentTypeName = MemoryUtils.StringToHGlobalUtf8(_contentTypeName); var result = fn__ugcPublish(&success, ptr_contentId, ptr_baseContentId, ptr_contentTypeName); - if (ptr_contentId != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentId); - if (ptr_baseContentId != IntPtr.Zero) Marshal.FreeHGlobal(ptr_baseContentId); - if (ptr_contentTypeName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentTypeName); + Marshal.FreeHGlobal(ptr_contentId); + Marshal.FreeHGlobal(ptr_baseContentId); + Marshal.FreeHGlobal(ptr_contentTypeName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -71570,11 +71557,11 @@ public bool UgcSetBookmarked(string _contentId, bool _bookmarked, string _conten unsafe { if (fn__ugcSetBookmarked == null) fn__ugcSetBookmarked = (delegate* unmanaged[Cdecl]) funcTable[0x274A1519DFC1094FUL]; var success = false; - var ptr_contentId = _contentId == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentId); - var ptr_contentTypeName = _contentTypeName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contentTypeName); + var ptr_contentId = MemoryUtils.StringToHGlobalUtf8(_contentId); + var ptr_contentTypeName = MemoryUtils.StringToHGlobalUtf8(_contentTypeName); var result = fn__ugcSetBookmarked(&success, ptr_contentId, (byte) (_bookmarked ? 1 : 0), ptr_contentTypeName); - if (ptr_contentId != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentId); - if (ptr_contentTypeName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contentTypeName); + Marshal.FreeHGlobal(ptr_contentId); + Marshal.FreeHGlobal(ptr_contentTypeName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -71586,10 +71573,10 @@ public bool UgcSetDeleted(ref int _p0, bool _p1, string _p2) if (fn__ugcSetDeleted == null) fn__ugcSetDeleted = (delegate* unmanaged[Cdecl]) funcTable[0xD05D1A6C74DA3498UL]; var success = false; var ref_p0 = _p0; - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); var result = fn__ugcSetDeleted(&success, &ref_p0, (byte) (_p1 ? 1 : 0), ptr_p2); _p0 = ref_p0; - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p2); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -71754,9 +71741,9 @@ public bool FacebookPostCompletedHeist(string _heistName, int _cashEarned, int _ unsafe { if (fn__facebookPostCompletedHeist == null) fn__facebookPostCompletedHeist = (delegate* unmanaged[Cdecl]) funcTable[0x098AB65B9ED9A9ECUL]; var success = false; - var ptr_heistName = _heistName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_heistName); + var ptr_heistName = MemoryUtils.StringToHGlobalUtf8(_heistName); var result = fn__facebookPostCompletedHeist(&success, ptr_heistName, _cashEarned, _xpEarned); - if (ptr_heistName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_heistName); + Marshal.FreeHGlobal(ptr_heistName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -71823,12 +71810,12 @@ public int TextureDownloadRequest(ref int _gamerHandle, string _filePath, string if (fn__textureDownloadRequest == null) fn__textureDownloadRequest = (delegate* unmanaged[Cdecl]) funcTable[0x16160DA74A8E74A2UL]; var success = false; var ref_gamerHandle = _gamerHandle; - var ptr_filePath = _filePath == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_filePath); - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_filePath = MemoryUtils.StringToHGlobalUtf8(_filePath); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var result = fn__textureDownloadRequest(&success, &ref_gamerHandle, ptr_filePath, ptr_name, (byte) (_p3 ? 1 : 0)); _gamerHandle = ref_gamerHandle; - if (ptr_filePath != IntPtr.Zero) Marshal.FreeHGlobal(ptr_filePath); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_filePath); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); return result; } @@ -71839,11 +71826,11 @@ public int TitleTextureDownloadRequest(string _filePath, string _name, bool _p2) unsafe { if (fn__titleTextureDownloadRequest == null) fn__titleTextureDownloadRequest = (delegate* unmanaged[Cdecl]) funcTable[0x0B203B4AFDE53A4FUL]; var success = false; - var ptr_filePath = _filePath == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_filePath); - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_filePath = MemoryUtils.StringToHGlobalUtf8(_filePath); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var result = fn__titleTextureDownloadRequest(&success, ptr_filePath, ptr_name, (byte) (_p2 ? 1 : 0)); - if (ptr_filePath != IntPtr.Zero) Marshal.FreeHGlobal(ptr_filePath); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_filePath); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); return result; } @@ -71854,11 +71841,11 @@ public int UgcTextureDownloadRequest(string _p0, int _p1, int _p2, int _p3, stri unsafe { if (fn__ugcTextureDownloadRequest == null) fn__ugcTextureDownloadRequest = (delegate* unmanaged[Cdecl]) funcTable[0x308F96458B7087CCUL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); - var ptr_p4 = _p4 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p4); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p4 = MemoryUtils.StringToHGlobalUtf8(_p4); var result = fn__ugcTextureDownloadRequest(&success, ptr_p0, _p1, _p2, _p3, ptr_p4, (byte) (_p5 ? 1 : 0)); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); - if (ptr_p4 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p4); + Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p4); if (!success) throw new Exception("Native execution failed"); return result; } @@ -71892,8 +71879,8 @@ public string TextureDownloadGetName(int _p0) var success = false; var result = fn__textureDownloadGetName(&success, _p0); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -72132,10 +72119,10 @@ public void NetworkDisableLeaveRemotePedBehind(bool _toggle) } public void NetworkAllowRemoteAttachmentModification(IEntity entity, bool toggle) => NetworkAllowRemoteAttachmentModification(entity.ScriptId, toggle); - public void NetworkAllowRemoteAttachmentModification(int _entity, bool _toggle) + public void NetworkAllowRemoteAttachmentModification(uint _entity, bool _toggle) { unsafe { - if (fn__networkAllowRemoteAttachmentModification == null) fn__networkAllowRemoteAttachmentModification = (delegate* unmanaged[Cdecl]) funcTable[0x267C78C60E806B9AUL]; + if (fn__networkAllowRemoteAttachmentModification == null) fn__networkAllowRemoteAttachmentModification = (delegate* unmanaged[Cdecl]) funcTable[0x267C78C60E806B9AUL]; var success = false; fn__networkAllowRemoteAttachmentModification(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -72143,10 +72130,10 @@ public void NetworkAllowRemoteAttachmentModification(int _entity, bool _toggle) } public void NetworkShowChatRestrictionMsc(IPlayer player) => NetworkShowChatRestrictionMsc(player.ScriptId); - public void NetworkShowChatRestrictionMsc(int _player) + public void NetworkShowChatRestrictionMsc(uint _player) { unsafe { - if (fn__networkShowChatRestrictionMsc == null) fn__networkShowChatRestrictionMsc = (delegate* unmanaged[Cdecl]) funcTable[0x6BFF5F84102DF80AUL]; + if (fn__networkShowChatRestrictionMsc == null) fn__networkShowChatRestrictionMsc = (delegate* unmanaged[Cdecl]) funcTable[0x6BFF5F84102DF80AUL]; var success = false; fn__networkShowChatRestrictionMsc(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -72185,10 +72172,10 @@ public void NetworkQuitMpToDesktop() } public bool NetworkIsConnectedViaRelay(IPlayer player) => NetworkIsConnectedViaRelay(player.ScriptId); - public bool NetworkIsConnectedViaRelay(int _player) + public bool NetworkIsConnectedViaRelay(uint _player) { unsafe { - if (fn__networkIsConnectedViaRelay == null) fn__networkIsConnectedViaRelay = (delegate* unmanaged[Cdecl]) funcTable[0x16D3D49902F697BBUL]; + if (fn__networkIsConnectedViaRelay == null) fn__networkIsConnectedViaRelay = (delegate* unmanaged[Cdecl]) funcTable[0x16D3D49902F697BBUL]; var success = false; var result = fn__networkIsConnectedViaRelay(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -72197,10 +72184,10 @@ public bool NetworkIsConnectedViaRelay(int _player) } public float NetworkGetAverageLatency(IPlayer player) => NetworkGetAverageLatency(player.ScriptId); - public float NetworkGetAverageLatency(int _player) + public float NetworkGetAverageLatency(uint _player) { unsafe { - if (fn__networkGetAverageLatency == null) fn__networkGetAverageLatency = (delegate* unmanaged[Cdecl]) funcTable[0xD414BE129BB81B32UL]; + if (fn__networkGetAverageLatency == null) fn__networkGetAverageLatency = (delegate* unmanaged[Cdecl]) funcTable[0xD414BE129BB81B32UL]; var success = false; var result = fn__networkGetAverageLatency(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -72209,10 +72196,10 @@ public float NetworkGetAverageLatency(int _player) } public float NetworkGetAveragePing(IPlayer player) => NetworkGetAveragePing(player.ScriptId); - public float NetworkGetAveragePing(int _player) + public float NetworkGetAveragePing(uint _player) { unsafe { - if (fn__networkGetAveragePing == null) fn__networkGetAveragePing = (delegate* unmanaged[Cdecl]) funcTable[0x0E3A041ED6AC2B45UL]; + if (fn__networkGetAveragePing == null) fn__networkGetAveragePing = (delegate* unmanaged[Cdecl]) funcTable[0x0E3A041ED6AC2B45UL]; var success = false; var result = fn__networkGetAveragePing(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -72221,10 +72208,10 @@ public float NetworkGetAveragePing(int _player) } public float NetworkGetAveragePacketLoss(IPlayer player) => NetworkGetAveragePacketLoss(player.ScriptId); - public float NetworkGetAveragePacketLoss(int _player) + public float NetworkGetAveragePacketLoss(uint _player) { unsafe { - if (fn__networkGetAveragePacketLoss == null) fn__networkGetAveragePacketLoss = (delegate* unmanaged[Cdecl]) funcTable[0x350C23949E43686CUL]; + if (fn__networkGetAveragePacketLoss == null) fn__networkGetAveragePacketLoss = (delegate* unmanaged[Cdecl]) funcTable[0x350C23949E43686CUL]; var success = false; var result = fn__networkGetAveragePacketLoss(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -72233,10 +72220,10 @@ public float NetworkGetAveragePacketLoss(int _player) } public int NetworkGetNumUnackedReliables(IPlayer player) => NetworkGetNumUnackedReliables(player.ScriptId); - public int NetworkGetNumUnackedReliables(int _player) + public int NetworkGetNumUnackedReliables(uint _player) { unsafe { - if (fn__networkGetNumUnackedReliables == null) fn__networkGetNumUnackedReliables = (delegate* unmanaged[Cdecl]) funcTable[0xFF8FCF9FFC458A1CUL]; + if (fn__networkGetNumUnackedReliables == null) fn__networkGetNumUnackedReliables = (delegate* unmanaged[Cdecl]) funcTable[0xFF8FCF9FFC458A1CUL]; var success = false; var result = fn__networkGetNumUnackedReliables(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -72245,10 +72232,10 @@ public int NetworkGetNumUnackedReliables(int _player) } public int NetworkGetUnreliableResendCount(IPlayer player) => NetworkGetUnreliableResendCount(player.ScriptId); - public int NetworkGetUnreliableResendCount(int _player) + public int NetworkGetUnreliableResendCount(uint _player) { unsafe { - if (fn__networkGetUnreliableResendCount == null) fn__networkGetUnreliableResendCount = (delegate* unmanaged[Cdecl]) funcTable[0x3765C3A3E8192E10UL]; + if (fn__networkGetUnreliableResendCount == null) fn__networkGetUnreliableResendCount = (delegate* unmanaged[Cdecl]) funcTable[0x3765C3A3E8192E10UL]; var success = false; var result = fn__networkGetUnreliableResendCount(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -72257,10 +72244,10 @@ public int NetworkGetUnreliableResendCount(int _player) } public int NetworkGetHighestReliableResendCount(IPlayer player) => NetworkGetHighestReliableResendCount(player.ScriptId); - public int NetworkGetHighestReliableResendCount(int _player) + public int NetworkGetHighestReliableResendCount(uint _player) { unsafe { - if (fn__networkGetHighestReliableResendCount == null) fn__networkGetHighestReliableResendCount = (delegate* unmanaged[Cdecl]) funcTable[0x52C1EADAF7B10302UL]; + if (fn__networkGetHighestReliableResendCount == null) fn__networkGetHighestReliableResendCount = (delegate* unmanaged[Cdecl]) funcTable[0x52C1EADAF7B10302UL]; var success = false; var result = fn__networkGetHighestReliableResendCount(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -72279,10 +72266,10 @@ public void NetworkReportCodeTamper() } public Vector3 NetworkGetLastEntityPosReceivedOverNetwork(IEntity entity) => NetworkGetLastEntityPosReceivedOverNetwork(entity.ScriptId); - public Vector3 NetworkGetLastEntityPosReceivedOverNetwork(int _entity) + public Vector3 NetworkGetLastEntityPosReceivedOverNetwork(uint _entity) { unsafe { - if (fn__networkGetLastEntityPosReceivedOverNetwork == null) fn__networkGetLastEntityPosReceivedOverNetwork = (delegate* unmanaged[Cdecl]) funcTable[0x64D779659BC37B19UL]; + if (fn__networkGetLastEntityPosReceivedOverNetwork == null) fn__networkGetLastEntityPosReceivedOverNetwork = (delegate* unmanaged[Cdecl]) funcTable[0x64D779659BC37B19UL]; var success = false; var result = fn__networkGetLastEntityPosReceivedOverNetwork(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -72291,10 +72278,10 @@ public Vector3 NetworkGetLastEntityPosReceivedOverNetwork(int _entity) } public Vector3 NetworkGetLastPlayerPosReceivedOverNetwork(IPlayer player) => NetworkGetLastPlayerPosReceivedOverNetwork(player.ScriptId); - public Vector3 NetworkGetLastPlayerPosReceivedOverNetwork(int _player) + public Vector3 NetworkGetLastPlayerPosReceivedOverNetwork(uint _player) { unsafe { - if (fn__networkGetLastPlayerPosReceivedOverNetwork == null) fn__networkGetLastPlayerPosReceivedOverNetwork = (delegate* unmanaged[Cdecl]) funcTable[0x125E6D638B8605D4UL]; + if (fn__networkGetLastPlayerPosReceivedOverNetwork == null) fn__networkGetLastPlayerPosReceivedOverNetwork = (delegate* unmanaged[Cdecl]) funcTable[0x125E6D638B8605D4UL]; var success = false; var result = fn__networkGetLastPlayerPosReceivedOverNetwork(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -72303,10 +72290,10 @@ public Vector3 NetworkGetLastPlayerPosReceivedOverNetwork(int _player) } public Vector3 NetworkGetLastVelReceivedOverNetwork(IEntity entity) => NetworkGetLastVelReceivedOverNetwork(entity.ScriptId); - public Vector3 NetworkGetLastVelReceivedOverNetwork(int _entity) + public Vector3 NetworkGetLastVelReceivedOverNetwork(uint _entity) { unsafe { - if (fn__networkGetLastVelReceivedOverNetwork == null) fn__networkGetLastVelReceivedOverNetwork = (delegate* unmanaged[Cdecl]) funcTable[0x33DE49EDF4DDE77AUL]; + if (fn__networkGetLastVelReceivedOverNetwork == null) fn__networkGetLastVelReceivedOverNetwork = (delegate* unmanaged[Cdecl]) funcTable[0x33DE49EDF4DDE77AUL]; var success = false; var result = fn__networkGetLastVelReceivedOverNetwork(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -72315,10 +72302,10 @@ public Vector3 NetworkGetLastVelReceivedOverNetwork(int _entity) } public Vector3 NetworkGetPredictedVelocity(IEntity entity) => NetworkGetPredictedVelocity(entity.ScriptId); - public Vector3 NetworkGetPredictedVelocity(int _entity) + public Vector3 NetworkGetPredictedVelocity(uint _entity) { unsafe { - if (fn__networkGetPredictedVelocity == null) fn__networkGetPredictedVelocity = (delegate* unmanaged[Cdecl]) funcTable[0xAA5FAFCD2C5F5E47UL]; + if (fn__networkGetPredictedVelocity == null) fn__networkGetPredictedVelocity = (delegate* unmanaged[Cdecl]) funcTable[0xAA5FAFCD2C5F5E47UL]; var success = false; var result = fn__networkGetPredictedVelocity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -72361,10 +72348,10 @@ public void NetworkGetNetStatisticsInfo(ref int _p0) } public int NetworkGetPlayerAccountId(IPlayer player) => NetworkGetPlayerAccountId(player.ScriptId); - public int NetworkGetPlayerAccountId(int _player) + public int NetworkGetPlayerAccountId(uint _player) { unsafe { - if (fn__networkGetPlayerAccountId == null) fn__networkGetPlayerAccountId = (delegate* unmanaged[Cdecl]) funcTable[0xDB663CC9FF3407A9UL]; + if (fn__networkGetPlayerAccountId == null) fn__networkGetPlayerAccountId = (delegate* unmanaged[Cdecl]) funcTable[0xDB663CC9FF3407A9UL]; var success = false; var result = fn__networkGetPlayerAccountId(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -72382,10 +72369,10 @@ public void NetworkUgcNav(int _p0, int _p1) } } - public int CreateObject(uint _modelHash, float _x, float _y, float _z, bool _isNetwork, bool _bScriptHostObj, bool _dynamic) + public uint CreateObject(uint _modelHash, float _x, float _y, float _z, bool _isNetwork, bool _bScriptHostObj, bool _dynamic) { unsafe { - if (fn__createObject == null) fn__createObject = (delegate* unmanaged[Cdecl]) funcTable[0x509D5878EB39E842UL]; + if (fn__createObject == null) fn__createObject = (delegate* unmanaged[Cdecl]) funcTable[0x509D5878EB39E842UL]; var success = false; var result = fn__createObject(&success, _modelHash, _x, _y, _z, (byte) (_isNetwork ? 1 : 0), (byte) (_bScriptHostObj ? 1 : 0), (byte) (_dynamic ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -72393,10 +72380,10 @@ public int CreateObject(uint _modelHash, float _x, float _y, float _z, bool _isN } } - public int CreateObjectNoOffset(uint _modelHash, float _x, float _y, float _z, bool _isNetwork, bool _bScriptHostObj, bool _dynamic) + public uint CreateObjectNoOffset(uint _modelHash, float _x, float _y, float _z, bool _isNetwork, bool _bScriptHostObj, bool _dynamic) { unsafe { - if (fn__createObjectNoOffset == null) fn__createObjectNoOffset = (delegate* unmanaged[Cdecl]) funcTable[0x9A294B2138ABB884UL]; + if (fn__createObjectNoOffset == null) fn__createObjectNoOffset = (delegate* unmanaged[Cdecl]) funcTable[0x9A294B2138ABB884UL]; var success = false; var result = fn__createObjectNoOffset(&success, _modelHash, _x, _y, _z, (byte) (_isNetwork ? 1 : 0), (byte) (_bScriptHostObj ? 1 : 0), (byte) (_dynamic ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -72404,10 +72391,10 @@ public int CreateObjectNoOffset(uint _modelHash, float _x, float _y, float _z, b } } - public void DeleteObject(ref int _object) + public void DeleteObject(ref uint _object) { unsafe { - if (fn__deleteObject == null) fn__deleteObject = (delegate* unmanaged[Cdecl]) funcTable[0x539E0AE3E6634B9FUL]; + if (fn__deleteObject == null) fn__deleteObject = (delegate* unmanaged[Cdecl]) funcTable[0x539E0AE3E6634B9FUL]; var success = false; var ref_object = _object; fn__deleteObject(&success, &ref_object); @@ -72416,10 +72403,10 @@ public void DeleteObject(ref int _object) } } - public bool PlaceObjectOnGroundProperly(int _object) + public bool PlaceObjectOnGroundProperly(uint _object) { unsafe { - if (fn__placeObjectOnGroundProperly == null) fn__placeObjectOnGroundProperly = (delegate* unmanaged[Cdecl]) funcTable[0x58A850EAEE20FAA3UL]; + if (fn__placeObjectOnGroundProperly == null) fn__placeObjectOnGroundProperly = (delegate* unmanaged[Cdecl]) funcTable[0x58A850EAEE20FAA3UL]; var success = false; var result = fn__placeObjectOnGroundProperly(&success, _object); if (!success) throw new Exception("Native execution failed"); @@ -72427,10 +72414,10 @@ public bool PlaceObjectOnGroundProperly(int _object) } } - public bool PlaceObjectOnGroundOrObjectProperly(int _object) + public bool PlaceObjectOnGroundOrObjectProperly(uint _object) { unsafe { - if (fn__placeObjectOnGroundOrObjectProperly == null) fn__placeObjectOnGroundOrObjectProperly = (delegate* unmanaged[Cdecl]) funcTable[0xD76EEEF746057FD6UL]; + if (fn__placeObjectOnGroundOrObjectProperly == null) fn__placeObjectOnGroundOrObjectProperly = (delegate* unmanaged[Cdecl]) funcTable[0xD76EEEF746057FD6UL]; var success = false; var result = fn__placeObjectOnGroundOrObjectProperly(&success, _object); if (!success) throw new Exception("Native execution failed"); @@ -72438,10 +72425,10 @@ public bool PlaceObjectOnGroundOrObjectProperly(int _object) } } - public bool RotateObject(int _object, float _p1, float _p2, bool _p3) + public bool RotateObject(uint _object, float _p1, float _p2, bool _p3) { unsafe { - if (fn__rotateObject == null) fn__rotateObject = (delegate* unmanaged[Cdecl]) funcTable[0xAFE24E4D29249E4AUL]; + if (fn__rotateObject == null) fn__rotateObject = (delegate* unmanaged[Cdecl]) funcTable[0xAFE24E4D29249E4AUL]; var success = false; var result = fn__rotateObject(&success, _object, _p1, _p2, (byte) (_p3 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -72449,10 +72436,10 @@ public bool RotateObject(int _object, float _p1, float _p2, bool _p3) } } - public bool SlideObject(int _object, float _toX, float _toY, float _toZ, float _speedX, float _speedY, float _speedZ, bool _collision) + public bool SlideObject(uint _object, float _toX, float _toY, float _toZ, float _speedX, float _speedY, float _speedZ, bool _collision) { unsafe { - if (fn__slideObject == null) fn__slideObject = (delegate* unmanaged[Cdecl]) funcTable[0x2FDFF4107B8C1147UL]; + if (fn__slideObject == null) fn__slideObject = (delegate* unmanaged[Cdecl]) funcTable[0x2FDFF4107B8C1147UL]; var success = false; var result = fn__slideObject(&success, _object, _toX, _toY, _toZ, _speedX, _speedY, _speedZ, (byte) (_collision ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -72460,30 +72447,30 @@ public bool SlideObject(int _object, float _toX, float _toY, float _toZ, float _ } } - public void SetObjectTargettable(int _object, bool _targettable) + public void SetObjectTargettable(uint _object, bool _targettable) { unsafe { - if (fn__setObjectTargettable == null) fn__setObjectTargettable = (delegate* unmanaged[Cdecl]) funcTable[0x8A7391690F5AFD81UL]; + if (fn__setObjectTargettable == null) fn__setObjectTargettable = (delegate* unmanaged[Cdecl]) funcTable[0x8A7391690F5AFD81UL]; var success = false; fn__setObjectTargettable(&success, _object, (byte) (_targettable ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void SetObjectForceVehiclesToAvoid(int _object, bool _toggle) + public void SetObjectForceVehiclesToAvoid(uint _object, bool _toggle) { unsafe { - if (fn__setObjectForceVehiclesToAvoid == null) fn__setObjectForceVehiclesToAvoid = (delegate* unmanaged[Cdecl]) funcTable[0x77F33F2CCF64B3AAUL]; + if (fn__setObjectForceVehiclesToAvoid == null) fn__setObjectForceVehiclesToAvoid = (delegate* unmanaged[Cdecl]) funcTable[0x77F33F2CCF64B3AAUL]; var success = false; fn__setObjectForceVehiclesToAvoid(&success, _object, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public int GetClosestObjectOfType(float _x, float _y, float _z, float _radius, uint _modelHash, bool _isMission, bool _p6, bool _p7) + public uint GetClosestObjectOfType(float _x, float _y, float _z, float _radius, uint _modelHash, bool _isMission, bool _p6, bool _p7) { unsafe { - if (fn__getClosestObjectOfType == null) fn__getClosestObjectOfType = (delegate* unmanaged[Cdecl]) funcTable[0xE143FA2249364369UL]; + if (fn__getClosestObjectOfType == null) fn__getClosestObjectOfType = (delegate* unmanaged[Cdecl]) funcTable[0xE143FA2249364369UL]; var success = false; var result = fn__getClosestObjectOfType(&success, _x, _y, _z, _radius, _modelHash, (byte) (_isMission ? 1 : 0), (byte) (_p6 ? 1 : 0), (byte) (_p7 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -72491,10 +72478,10 @@ public int GetClosestObjectOfType(float _x, float _y, float _z, float _radius, u } } - public bool HasObjectBeenBroken(int _object, int _p1) + public bool HasObjectBeenBroken(uint _object, int _p1) { unsafe { - if (fn__hasObjectBeenBroken == null) fn__hasObjectBeenBroken = (delegate* unmanaged[Cdecl]) funcTable[0x8ABFB70C49CC43E2UL]; + if (fn__hasObjectBeenBroken == null) fn__hasObjectBeenBroken = (delegate* unmanaged[Cdecl]) funcTable[0x8ABFB70C49CC43E2UL]; var success = false; var result = fn__hasObjectBeenBroken(&success, _object, _p1); if (!success) throw new Exception("Native execution failed"); @@ -72817,10 +72804,10 @@ public bool IsGarageEmpty(uint _garageHash, bool _p1, int _p2) } public bool IsPlayerEntirelyInsideGarage(uint garageHash, IPlayer player, float p2, int p3) => IsPlayerEntirelyInsideGarage(garageHash, player.ScriptId, p2, p3); - public bool IsPlayerEntirelyInsideGarage(uint _garageHash, int _player, float _p2, int _p3) + public bool IsPlayerEntirelyInsideGarage(uint _garageHash, uint _player, float _p2, int _p3) { unsafe { - if (fn__isPlayerEntirelyInsideGarage == null) fn__isPlayerEntirelyInsideGarage = (delegate* unmanaged[Cdecl]) funcTable[0x024A60DEB0EA69F0UL]; + if (fn__isPlayerEntirelyInsideGarage == null) fn__isPlayerEntirelyInsideGarage = (delegate* unmanaged[Cdecl]) funcTable[0x024A60DEB0EA69F0UL]; var success = false; var result = fn__isPlayerEntirelyInsideGarage(&success, _garageHash, _player, _p2, _p3); if (!success) throw new Exception("Native execution failed"); @@ -72829,10 +72816,10 @@ public bool IsPlayerEntirelyInsideGarage(uint _garageHash, int _player, float _p } public bool IsPlayerPartiallyInsideGarage(uint garageHash, IPlayer player, int p2) => IsPlayerPartiallyInsideGarage(garageHash, player.ScriptId, p2); - public bool IsPlayerPartiallyInsideGarage(uint _garageHash, int _player, int _p2) + public bool IsPlayerPartiallyInsideGarage(uint _garageHash, uint _player, int _p2) { unsafe { - if (fn__isPlayerPartiallyInsideGarage == null) fn__isPlayerPartiallyInsideGarage = (delegate* unmanaged[Cdecl]) funcTable[0x1761DC5D8471CBAAUL]; + if (fn__isPlayerPartiallyInsideGarage == null) fn__isPlayerPartiallyInsideGarage = (delegate* unmanaged[Cdecl]) funcTable[0x1761DC5D8471CBAAUL]; var success = false; var result = fn__isPlayerPartiallyInsideGarage(&success, _garageHash, _player, _p2); if (!success) throw new Exception("Native execution failed"); @@ -72863,10 +72850,10 @@ public bool IsAnyEntityEntirelyInsideGarage(uint _garageHash, bool _p1, bool _p2 } public bool IsObjectEntirelyInsideGarage(uint garageHash, IEntity entity, float p2, int p3) => IsObjectEntirelyInsideGarage(garageHash, entity.ScriptId, p2, p3); - public bool IsObjectEntirelyInsideGarage(uint _garageHash, int _entity, float _p2, int _p3) + public bool IsObjectEntirelyInsideGarage(uint _garageHash, uint _entity, float _p2, int _p3) { unsafe { - if (fn__isObjectEntirelyInsideGarage == null) fn__isObjectEntirelyInsideGarage = (delegate* unmanaged[Cdecl]) funcTable[0x372EF6699146A1E4UL]; + if (fn__isObjectEntirelyInsideGarage == null) fn__isObjectEntirelyInsideGarage = (delegate* unmanaged[Cdecl]) funcTable[0x372EF6699146A1E4UL]; var success = false; var result = fn__isObjectEntirelyInsideGarage(&success, _garageHash, _entity, _p2, _p3); if (!success) throw new Exception("Native execution failed"); @@ -72875,10 +72862,10 @@ public bool IsObjectEntirelyInsideGarage(uint _garageHash, int _entity, float _p } public bool IsObjectPartiallyInsideGarage(uint garageHash, IEntity entity, int p2) => IsObjectPartiallyInsideGarage(garageHash, entity.ScriptId, p2); - public bool IsObjectPartiallyInsideGarage(uint _garageHash, int _entity, int _p2) + public bool IsObjectPartiallyInsideGarage(uint _garageHash, uint _entity, int _p2) { unsafe { - if (fn__isObjectPartiallyInsideGarage == null) fn__isObjectPartiallyInsideGarage = (delegate* unmanaged[Cdecl]) funcTable[0xF0EED5A6BC7B237AUL]; + if (fn__isObjectPartiallyInsideGarage == null) fn__isObjectPartiallyInsideGarage = (delegate* unmanaged[Cdecl]) funcTable[0xF0EED5A6BC7B237AUL]; var success = false; var result = fn__isObjectPartiallyInsideGarage(&success, _garageHash, _entity, _p2); if (!success) throw new Exception("Native execution failed"); @@ -72958,20 +72945,20 @@ public bool IsPointInAngledArea(float _xPos, float _yPos, float _zPos, float _x1 } } - public void SetObjectAllowLowLodBuoyancy(int _object, bool _toggle) + public void SetObjectAllowLowLodBuoyancy(uint _object, bool _toggle) { unsafe { - if (fn__setObjectAllowLowLodBuoyancy == null) fn__setObjectAllowLowLodBuoyancy = (delegate* unmanaged[Cdecl]) funcTable[0x4D89D607CB3DD1D2UL]; + if (fn__setObjectAllowLowLodBuoyancy == null) fn__setObjectAllowLowLodBuoyancy = (delegate* unmanaged[Cdecl]) funcTable[0x4D89D607CB3DD1D2UL]; var success = false; fn__setObjectAllowLowLodBuoyancy(&success, _object, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void SetObjectPhysicsParams(int _object, float _weight, float _p2, float _p3, float _p4, float _p5, float _gravity, float _p7, float _p8, float _p9, float _p10, float _buoyancy) + public void SetObjectPhysicsParams(uint _object, float _weight, float _p2, float _p3, float _p4, float _p5, float _gravity, float _p7, float _p8, float _p9, float _p10, float _buoyancy) { unsafe { - if (fn__setObjectPhysicsParams == null) fn__setObjectPhysicsParams = (delegate* unmanaged[Cdecl]) funcTable[0xF6DF6E90DE7DF90FUL]; + if (fn__setObjectPhysicsParams == null) fn__setObjectPhysicsParams = (delegate* unmanaged[Cdecl]) funcTable[0xF6DF6E90DE7DF90FUL]; var success = false; fn__setObjectPhysicsParams(&success, _object, _weight, _p2, _p3, _p4, _p5, _gravity, _p7, _p8, _p9, _p10, _buoyancy); if (!success) throw new Exception("Native execution failed"); @@ -72989,10 +72976,10 @@ public float GetObjectFragmentDamageHealth(int _p0, bool _p1) } } - public void SetActivateObjectPhysicsAsSoonAsItIsUnfrozen(int _object, bool _toggle) + public void SetActivateObjectPhysicsAsSoonAsItIsUnfrozen(uint _object, bool _toggle) { unsafe { - if (fn__setActivateObjectPhysicsAsSoonAsItIsUnfrozen == null) fn__setActivateObjectPhysicsAsSoonAsItIsUnfrozen = (delegate* unmanaged[Cdecl]) funcTable[0x406137F8EF90EAF5UL]; + if (fn__setActivateObjectPhysicsAsSoonAsItIsUnfrozen == null) fn__setActivateObjectPhysicsAsSoonAsItIsUnfrozen = (delegate* unmanaged[Cdecl]) funcTable[0x406137F8EF90EAF5UL]; var success = false; fn__setActivateObjectPhysicsAsSoonAsItIsUnfrozen(&success, _object, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -73021,20 +73008,20 @@ public bool IsObjectNearPoint(uint _objectHash, float _x, float _y, float _z, fl } } - public void RemoveObjectHighDetailModel(int _object) + public void RemoveObjectHighDetailModel(uint _object) { unsafe { - if (fn__removeObjectHighDetailModel == null) fn__removeObjectHighDetailModel = (delegate* unmanaged[Cdecl]) funcTable[0x4A39DB43E47CF3AAUL]; + if (fn__removeObjectHighDetailModel == null) fn__removeObjectHighDetailModel = (delegate* unmanaged[Cdecl]) funcTable[0x4A39DB43E47CF3AAUL]; var success = false; fn__removeObjectHighDetailModel(&success, _object); if (!success) throw new Exception("Native execution failed"); } } - public void BreakObjectFragmentChild(int _p0, int _p1, bool _p2) + public void BreakObjectFragmentChild(uint _p0, int _p1, bool _p2) { unsafe { - if (fn__breakObjectFragmentChild == null) fn__breakObjectFragmentChild = (delegate* unmanaged[Cdecl]) funcTable[0xE7E4C198B0185900UL]; + if (fn__breakObjectFragmentChild == null) fn__breakObjectFragmentChild = (delegate* unmanaged[Cdecl]) funcTable[0xE7E4C198B0185900UL]; var success = false; fn__breakObjectFragmentChild(&success, _p0, _p1, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -73051,30 +73038,30 @@ public void DamageObjectFragmentChild(int _p0, int _p1, int _p2) } } - public void FixObjectFragment(int _object) + public void FixObjectFragment(uint _object) { unsafe { - if (fn__fixObjectFragment == null) fn__fixObjectFragment = (delegate* unmanaged[Cdecl]) funcTable[0xF9C1681347C8BD15UL]; + if (fn__fixObjectFragment == null) fn__fixObjectFragment = (delegate* unmanaged[Cdecl]) funcTable[0xF9C1681347C8BD15UL]; var success = false; fn__fixObjectFragment(&success, _object); if (!success) throw new Exception("Native execution failed"); } } - public void TrackObjectVisibility(int _object) + public void TrackObjectVisibility(uint _object) { unsafe { - if (fn__trackObjectVisibility == null) fn__trackObjectVisibility = (delegate* unmanaged[Cdecl]) funcTable[0xB252BC036B525623UL]; + if (fn__trackObjectVisibility == null) fn__trackObjectVisibility = (delegate* unmanaged[Cdecl]) funcTable[0xB252BC036B525623UL]; var success = false; fn__trackObjectVisibility(&success, _object); if (!success) throw new Exception("Native execution failed"); } } - public bool IsObjectVisible(int _object) + public bool IsObjectVisible(uint _object) { unsafe { - if (fn__isObjectVisible == null) fn__isObjectVisible = (delegate* unmanaged[Cdecl]) funcTable[0x8B32ACE6326A7546UL]; + if (fn__isObjectVisible == null) fn__isObjectVisible = (delegate* unmanaged[Cdecl]) funcTable[0x8B32ACE6326A7546UL]; var success = false; var result = fn__isObjectVisible(&success, _object); if (!success) throw new Exception("Native execution failed"); @@ -73082,10 +73069,10 @@ public bool IsObjectVisible(int _object) } } - public void SetObjectIsSpecialGolfball(int _object, bool _toggle) + public void SetObjectIsSpecialGolfball(uint _object, bool _toggle) { unsafe { - if (fn__setObjectIsSpecialGolfball == null) fn__setObjectIsSpecialGolfball = (delegate* unmanaged[Cdecl]) funcTable[0xC6033D32241F6FB5UL]; + if (fn__setObjectIsSpecialGolfball == null) fn__setObjectIsSpecialGolfball = (delegate* unmanaged[Cdecl]) funcTable[0xC6033D32241F6FB5UL]; var success = false; fn__setObjectIsSpecialGolfball(&success, _object, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -73112,43 +73099,43 @@ public void AllowDamageEventsForNonNetworkedObjects(bool _value) } } - public void SetCutscenesWeaponFlashlightOnThisFrame(int _object, bool _toggle) + public void SetCutscenesWeaponFlashlightOnThisFrame(uint _object, bool _toggle) { unsafe { - if (fn__setCutscenesWeaponFlashlightOnThisFrame == null) fn__setCutscenesWeaponFlashlightOnThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0xBCE595371A5FBAAFUL]; + if (fn__setCutscenesWeaponFlashlightOnThisFrame == null) fn__setCutscenesWeaponFlashlightOnThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0xBCE595371A5FBAAFUL]; var success = false; fn__setCutscenesWeaponFlashlightOnThisFrame(&success, _object, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public int GetRayfireMapObject(float _x, float _y, float _z, float _radius, string _name) + public uint GetRayfireMapObject(float _x, float _y, float _z, float _radius, string _name) { unsafe { - if (fn__getRayfireMapObject == null) fn__getRayfireMapObject = (delegate* unmanaged[Cdecl]) funcTable[0xB48FCED898292E52UL]; + if (fn__getRayfireMapObject == null) fn__getRayfireMapObject = (delegate* unmanaged[Cdecl]) funcTable[0xB48FCED898292E52UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var result = fn__getRayfireMapObject(&success, _x, _y, _z, _radius, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); return result; } } - public void SetStateOfRayfireMapObject(int _object, int _state) + public void SetStateOfRayfireMapObject(uint _object, int _state) { unsafe { - if (fn__setStateOfRayfireMapObject == null) fn__setStateOfRayfireMapObject = (delegate* unmanaged[Cdecl]) funcTable[0x5C29F698D404C5E1UL]; + if (fn__setStateOfRayfireMapObject == null) fn__setStateOfRayfireMapObject = (delegate* unmanaged[Cdecl]) funcTable[0x5C29F698D404C5E1UL]; var success = false; fn__setStateOfRayfireMapObject(&success, _object, _state); if (!success) throw new Exception("Native execution failed"); } } - public int GetStateOfRayfireMapObject(int _object) + public int GetStateOfRayfireMapObject(uint _object) { unsafe { - if (fn__getStateOfRayfireMapObject == null) fn__getStateOfRayfireMapObject = (delegate* unmanaged[Cdecl]) funcTable[0x899BA936634A322EUL]; + if (fn__getStateOfRayfireMapObject == null) fn__getStateOfRayfireMapObject = (delegate* unmanaged[Cdecl]) funcTable[0x899BA936634A322EUL]; var success = false; var result = fn__getStateOfRayfireMapObject(&success, _object); if (!success) throw new Exception("Native execution failed"); @@ -73156,10 +73143,10 @@ public int GetStateOfRayfireMapObject(int _object) } } - public bool DoesRayfireMapObjectExist(int _object) + public bool DoesRayfireMapObjectExist(uint _object) { unsafe { - if (fn__doesRayfireMapObjectExist == null) fn__doesRayfireMapObjectExist = (delegate* unmanaged[Cdecl]) funcTable[0x52AF537A0C5B8AADUL]; + if (fn__doesRayfireMapObjectExist == null) fn__doesRayfireMapObjectExist = (delegate* unmanaged[Cdecl]) funcTable[0x52AF537A0C5B8AADUL]; var success = false; var result = fn__doesRayfireMapObjectExist(&success, _object); if (!success) throw new Exception("Native execution failed"); @@ -73167,10 +73154,10 @@ public bool DoesRayfireMapObjectExist(int _object) } } - public float GetRayfireMapObjectAnimPhase(int _object) + public float GetRayfireMapObjectAnimPhase(uint _object) { unsafe { - if (fn__getRayfireMapObjectAnimPhase == null) fn__getRayfireMapObjectAnimPhase = (delegate* unmanaged[Cdecl]) funcTable[0x260EE4FDBDF4DB01UL]; + if (fn__getRayfireMapObjectAnimPhase == null) fn__getRayfireMapObjectAnimPhase = (delegate* unmanaged[Cdecl]) funcTable[0x260EE4FDBDF4DB01UL]; var success = false; var result = fn__getRayfireMapObjectAnimPhase(&success, _object); if (!success) throw new Exception("Native execution failed"); @@ -73220,10 +73207,10 @@ public void SetCustomPickupWeaponHash(uint _pickupHash, int _pickup) } } - public int CreateAmbientPickup(uint _pickupHash, float _posX, float _posY, float _posZ, int _flags, int _value, uint _modelHash, bool _p7, bool _p8) + public uint CreateAmbientPickup(uint _pickupHash, float _posX, float _posY, float _posZ, int _flags, int _value, uint _modelHash, bool _p7, bool _p8) { unsafe { - if (fn__createAmbientPickup == null) fn__createAmbientPickup = (delegate* unmanaged[Cdecl]) funcTable[0x673966A0C0FD7171UL]; + if (fn__createAmbientPickup == null) fn__createAmbientPickup = (delegate* unmanaged[Cdecl]) funcTable[0x673966A0C0FD7171UL]; var success = false; var result = fn__createAmbientPickup(&success, _pickupHash, _posX, _posY, _posZ, _flags, _value, _modelHash, (byte) (_p7 ? 1 : 0), (byte) (_p8 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -73231,10 +73218,10 @@ public int CreateAmbientPickup(uint _pickupHash, float _posX, float _posY, float } } - public int CreateNonNetworkedAmbientPickup(uint _pickupHash, float _posX, float _posY, float _posZ, int _flags, int _value, uint _modelHash, bool _p7, bool _p8) + public uint CreateNonNetworkedAmbientPickup(uint _pickupHash, float _posX, float _posY, float _posZ, int _flags, int _value, uint _modelHash, bool _p7, bool _p8) { unsafe { - if (fn__createNonNetworkedAmbientPickup == null) fn__createNonNetworkedAmbientPickup = (delegate* unmanaged[Cdecl]) funcTable[0x9C93764223E29C50UL]; + if (fn__createNonNetworkedAmbientPickup == null) fn__createNonNetworkedAmbientPickup = (delegate* unmanaged[Cdecl]) funcTable[0x9C93764223E29C50UL]; var success = false; var result = fn__createNonNetworkedAmbientPickup(&success, _pickupHash, _posX, _posY, _posZ, _flags, _value, _modelHash, (byte) (_p7 ? 1 : 0), (byte) (_p8 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -73252,10 +73239,10 @@ public void BlockPlayersForAmbientPickup(int _p0, int _p1) } } - public int CreatePortablePickup(uint _pickupHash, float _x, float _y, float _z, bool _placeOnGround, uint _modelHash) + public uint CreatePortablePickup(uint _pickupHash, float _x, float _y, float _z, bool _placeOnGround, uint _modelHash) { unsafe { - if (fn__createPortablePickup == null) fn__createPortablePickup = (delegate* unmanaged[Cdecl]) funcTable[0x2EAF1FDB2FB55698UL]; + if (fn__createPortablePickup == null) fn__createPortablePickup = (delegate* unmanaged[Cdecl]) funcTable[0x2EAF1FDB2FB55698UL]; var success = false; var result = fn__createPortablePickup(&success, _pickupHash, _x, _y, _z, (byte) (_placeOnGround ? 1 : 0), _modelHash); if (!success) throw new Exception("Native execution failed"); @@ -73263,10 +73250,10 @@ public int CreatePortablePickup(uint _pickupHash, float _x, float _y, float _z, } } - public int CreateNonNetworkedPortablePickup(uint _pickupHash, float _x, float _y, float _z, bool _placeOnGround, uint _modelHash) + public uint CreateNonNetworkedPortablePickup(uint _pickupHash, float _x, float _y, float _z, bool _placeOnGround, uint _modelHash) { unsafe { - if (fn__createNonNetworkedPortablePickup == null) fn__createNonNetworkedPortablePickup = (delegate* unmanaged[Cdecl]) funcTable[0x125494B98A21AAF7UL]; + if (fn__createNonNetworkedPortablePickup == null) fn__createNonNetworkedPortablePickup = (delegate* unmanaged[Cdecl]) funcTable[0x125494B98A21AAF7UL]; var success = false; var result = fn__createNonNetworkedPortablePickup(&success, _pickupHash, _x, _y, _z, (byte) (_placeOnGround ? 1 : 0), _modelHash); if (!success) throw new Exception("Native execution failed"); @@ -73274,41 +73261,41 @@ public int CreateNonNetworkedPortablePickup(uint _pickupHash, float _x, float _y } } - public void AttachPortablePickupToPed(int pickupObject, IPlayer ped) => AttachPortablePickupToPed(pickupObject, ped.ScriptId); - public void AttachPortablePickupToPed(int _pickupObject, int _ped) + public void AttachPortablePickupToPed(uint pickupObject, IPlayer ped) => AttachPortablePickupToPed(pickupObject, ped.ScriptId); + public void AttachPortablePickupToPed(uint _pickupObject, uint _ped) { unsafe { - if (fn__attachPortablePickupToPed == null) fn__attachPortablePickupToPed = (delegate* unmanaged[Cdecl]) funcTable[0x8DC39368BDD57755UL]; + if (fn__attachPortablePickupToPed == null) fn__attachPortablePickupToPed = (delegate* unmanaged[Cdecl]) funcTable[0x8DC39368BDD57755UL]; var success = false; fn__attachPortablePickupToPed(&success, _pickupObject, _ped); if (!success) throw new Exception("Native execution failed"); } } - public void DetachPortablePickupFromPed(int _pickupObject) + public void DetachPortablePickupFromPed(uint _pickupObject) { unsafe { - if (fn__detachPortablePickupFromPed == null) fn__detachPortablePickupFromPed = (delegate* unmanaged[Cdecl]) funcTable[0xCF463D1E9A0AECB1UL]; + if (fn__detachPortablePickupFromPed == null) fn__detachPortablePickupFromPed = (delegate* unmanaged[Cdecl]) funcTable[0xCF463D1E9A0AECB1UL]; var success = false; fn__detachPortablePickupFromPed(&success, _pickupObject); if (!success) throw new Exception("Native execution failed"); } } - public void ForcePortablePickupLastAccessiblePositionSetting(int _object) + public void ForcePortablePickupLastAccessiblePositionSetting(uint _object) { unsafe { - if (fn__forcePortablePickupLastAccessiblePositionSetting == null) fn__forcePortablePickupLastAccessiblePositionSetting = (delegate* unmanaged[Cdecl]) funcTable[0x5CE2E45A5CE2E45AUL]; + if (fn__forcePortablePickupLastAccessiblePositionSetting == null) fn__forcePortablePickupLastAccessiblePositionSetting = (delegate* unmanaged[Cdecl]) funcTable[0x5CE2E45A5CE2E45AUL]; var success = false; fn__forcePortablePickupLastAccessiblePositionSetting(&success, _object); if (!success) throw new Exception("Native execution failed"); } } - public void HidePortablePickupWhenDetached(int _pickupObject, bool _toggle) + public void HidePortablePickupWhenDetached(uint _pickupObject, bool _toggle) { unsafe { - if (fn__hidePortablePickupWhenDetached == null) fn__hidePortablePickupWhenDetached = (delegate* unmanaged[Cdecl]) funcTable[0x867458251D47CCB2UL]; + if (fn__hidePortablePickupWhenDetached == null) fn__hidePortablePickupWhenDetached = (delegate* unmanaged[Cdecl]) funcTable[0x867458251D47CCB2UL]; var success = false; fn__hidePortablePickupWhenDetached(&success, _pickupObject, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -73439,10 +73426,10 @@ public bool DoesPickupExist(int _pickup) } } - public bool DoesPickupObjectExist(int _pickupObject) + public bool DoesPickupObjectExist(uint _pickupObject) { unsafe { - if (fn__doesPickupObjectExist == null) fn__doesPickupObjectExist = (delegate* unmanaged[Cdecl]) funcTable[0xD9EFB6DBF7DAAEA3UL]; + if (fn__doesPickupObjectExist == null) fn__doesPickupObjectExist = (delegate* unmanaged[Cdecl]) funcTable[0xD9EFB6DBF7DAAEA3UL]; var success = false; var result = fn__doesPickupObjectExist(&success, _pickupObject); if (!success) throw new Exception("Native execution failed"); @@ -73450,10 +73437,10 @@ public bool DoesPickupObjectExist(int _pickupObject) } } - public int GetPickupObject(int _pickup) + public uint GetPickupObject(int _pickup) { unsafe { - if (fn__getPickupObject == null) fn__getPickupObject = (delegate* unmanaged[Cdecl]) funcTable[0x5099BC55630B25AEUL]; + if (fn__getPickupObject == null) fn__getPickupObject = (delegate* unmanaged[Cdecl]) funcTable[0x5099BC55630B25AEUL]; var success = false; var result = fn__getPickupObject(&success, _pickup); if (!success) throw new Exception("Native execution failed"); @@ -73461,10 +73448,10 @@ public int GetPickupObject(int _pickup) } } - public bool IsObjectAPickup(int _object) + public bool IsObjectAPickup(uint _object) { unsafe { - if (fn__isObjectAPickup == null) fn__isObjectAPickup = (delegate* unmanaged[Cdecl]) funcTable[0xFC481C641EBBD27DUL]; + if (fn__isObjectAPickup == null) fn__isObjectAPickup = (delegate* unmanaged[Cdecl]) funcTable[0xFC481C641EBBD27DUL]; var success = false; var result = fn__isObjectAPickup(&success, _object); if (!success) throw new Exception("Native execution failed"); @@ -73472,10 +73459,10 @@ public bool IsObjectAPickup(int _object) } } - public bool IsObjectAPortablePickup(int _object) + public bool IsObjectAPortablePickup(uint _object) { unsafe { - if (fn__isObjectAPortablePickup == null) fn__isObjectAPortablePickup = (delegate* unmanaged[Cdecl]) funcTable[0x0378C08504160D0DUL]; + if (fn__isObjectAPortablePickup == null) fn__isObjectAPortablePickup = (delegate* unmanaged[Cdecl]) funcTable[0x0378C08504160D0DUL]; var success = false; var result = fn__isObjectAPortablePickup(&success, _object); if (!success) throw new Exception("Native execution failed"); @@ -73515,10 +73502,10 @@ public void ForcePickupRegenerate(int _p0) } public void SetPlayerPermittedToCollectPickupsOfType(IPlayer player, uint pickupHash, bool toggle) => SetPlayerPermittedToCollectPickupsOfType(player.ScriptId, pickupHash, toggle); - public void SetPlayerPermittedToCollectPickupsOfType(int _player, uint _pickupHash, bool _toggle) + public void SetPlayerPermittedToCollectPickupsOfType(uint _player, uint _pickupHash, bool _toggle) { unsafe { - if (fn__setPlayerPermittedToCollectPickupsOfType == null) fn__setPlayerPermittedToCollectPickupsOfType = (delegate* unmanaged[Cdecl]) funcTable[0x616093EC6B139DD9UL]; + if (fn__setPlayerPermittedToCollectPickupsOfType == null) fn__setPlayerPermittedToCollectPickupsOfType = (delegate* unmanaged[Cdecl]) funcTable[0x616093EC6B139DD9UL]; var success = false; fn__setPlayerPermittedToCollectPickupsOfType(&success, _player, _pickupHash, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -73545,20 +73532,20 @@ public void AllowAllPlayersToCollectPickupsOfType(uint _pickupHash) } } - public void SetTeamPickupObject(int _object, int _p1, bool _p2) + public void SetTeamPickupObject(uint _object, int _p1, bool _p2) { unsafe { - if (fn__setTeamPickupObject == null) fn__setTeamPickupObject = (delegate* unmanaged[Cdecl]) funcTable[0x53E0DF1A2A3CF0CAUL]; + if (fn__setTeamPickupObject == null) fn__setTeamPickupObject = (delegate* unmanaged[Cdecl]) funcTable[0x53E0DF1A2A3CF0CAUL]; var success = false; fn__setTeamPickupObject(&success, _object, _p1, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void PreventCollectionOfPortablePickup(int _object, bool _p1, bool _p2) + public void PreventCollectionOfPortablePickup(uint _object, bool _p1, bool _p2) { unsafe { - if (fn__preventCollectionOfPortablePickup == null) fn__preventCollectionOfPortablePickup = (delegate* unmanaged[Cdecl]) funcTable[0x92AEFB5F6E294023UL]; + if (fn__preventCollectionOfPortablePickup == null) fn__preventCollectionOfPortablePickup = (delegate* unmanaged[Cdecl]) funcTable[0x92AEFB5F6E294023UL]; var success = false; fn__preventCollectionOfPortablePickup(&success, _object, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -73818,20 +73805,20 @@ public void SetPickupTrackDamageEvents(int _pickup, bool _toggle) } public void SetEntityFlagSuppressShadow(IEntity entity, bool toggle) => SetEntityFlagSuppressShadow(entity.ScriptId, toggle); - public void SetEntityFlagSuppressShadow(int _entity, bool _toggle) + public void SetEntityFlagSuppressShadow(uint _entity, bool _toggle) { unsafe { - if (fn__setEntityFlagSuppressShadow == null) fn__setEntityFlagSuppressShadow = (delegate* unmanaged[Cdecl]) funcTable[0xD05A3241B9A86F19UL]; + if (fn__setEntityFlagSuppressShadow == null) fn__setEntityFlagSuppressShadow = (delegate* unmanaged[Cdecl]) funcTable[0xD05A3241B9A86F19UL]; var success = false; fn__setEntityFlagSuppressShadow(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void SetEntityFlagRenderSmallShadow(int _object, bool _toggle) + public void SetEntityFlagRenderSmallShadow(uint _object, bool _toggle) { unsafe { - if (fn__setEntityFlagRenderSmallShadow == null) fn__setEntityFlagRenderSmallShadow = (delegate* unmanaged[Cdecl]) funcTable[0xB2D0BDE54F0E8E5AUL]; + if (fn__setEntityFlagRenderSmallShadow == null) fn__setEntityFlagRenderSmallShadow = (delegate* unmanaged[Cdecl]) funcTable[0xB2D0BDE54F0E8E5AUL]; var success = false; fn__setEntityFlagRenderSmallShadow(&success, _object, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -73860,10 +73847,10 @@ public uint GetPickupTypeFromWeaponHash(uint _weaponHash) } } - public bool IsPickupWeaponObjectValid(int _object) + public bool IsPickupWeaponObjectValid(uint _object) { unsafe { - if (fn__isPickupWeaponObjectValid == null) fn__isPickupWeaponObjectValid = (delegate* unmanaged[Cdecl]) funcTable[0x11D1E53A726891FEUL]; + if (fn__isPickupWeaponObjectValid == null) fn__isPickupWeaponObjectValid = (delegate* unmanaged[Cdecl]) funcTable[0x11D1E53A726891FEUL]; var success = false; var result = fn__isPickupWeaponObjectValid(&success, _object); if (!success) throw new Exception("Native execution failed"); @@ -73871,10 +73858,10 @@ public bool IsPickupWeaponObjectValid(int _object) } } - public int GetObjectTintIndex(int _object) + public int GetObjectTintIndex(uint _object) { unsafe { - if (fn__getObjectTintIndex == null) fn__getObjectTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xE84EB93729C5F36AUL]; + if (fn__getObjectTintIndex == null) fn__getObjectTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xE84EB93729C5F36AUL]; var success = false; var result = fn__getObjectTintIndex(&success, _object); if (!success) throw new Exception("Native execution failed"); @@ -73882,10 +73869,10 @@ public int GetObjectTintIndex(int _object) } } - public void SetObjectTintIndex(int _object, int _textureVariation) + public void SetObjectTintIndex(uint _object, int _textureVariation) { unsafe { - if (fn__setObjectTintIndex == null) fn__setObjectTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0x971DA0055324D033UL]; + if (fn__setObjectTintIndex == null) fn__setObjectTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0x971DA0055324D033UL]; var success = false; fn__setObjectTintIndex(&success, _object, _textureVariation); if (!success) throw new Exception("Native execution failed"); @@ -73903,10 +73890,10 @@ public bool SetTintIndexClosestBuildingOfType(float _x, float _y, float _z, floa } } - public bool SetPropLightColor(int _object, bool _p1, int _r, int _g, int _b) + public bool SetPropLightColor(uint _object, bool _p1, int _r, int _g, int _b) { unsafe { - if (fn__setPropLightColor == null) fn__setPropLightColor = (delegate* unmanaged[Cdecl]) funcTable[0x5F048334B4A4E774UL]; + if (fn__setPropLightColor == null) fn__setPropLightColor = (delegate* unmanaged[Cdecl]) funcTable[0x5F048334B4A4E774UL]; var success = false; var result = fn__setPropLightColor(&success, _object, (byte) (_p1 ? 1 : 0), _r, _g, _b); if (!success) throw new Exception("Native execution failed"); @@ -73914,10 +73901,10 @@ public bool SetPropLightColor(int _object, bool _p1, int _r, int _g, int _b) } } - public bool IsPropLightOverriden(int _object) + public bool IsPropLightOverriden(uint _object) { unsafe { - if (fn__isPropLightOverriden == null) fn__isPropLightOverriden = (delegate* unmanaged[Cdecl]) funcTable[0xADF084FB8F075D06UL]; + if (fn__isPropLightOverriden == null) fn__isPropLightOverriden = (delegate* unmanaged[Cdecl]) funcTable[0xADF084FB8F075D06UL]; var success = false; var result = fn__isPropLightOverriden(&success, _object); if (!success) throw new Exception("Native execution failed"); @@ -73925,30 +73912,30 @@ public bool IsPropLightOverriden(int _object) } } - public void SetObjectIsVisibleInMirrors(int _object, bool _toggle) + public void SetObjectIsVisibleInMirrors(uint _object, bool _toggle) { unsafe { - if (fn__setObjectIsVisibleInMirrors == null) fn__setObjectIsVisibleInMirrors = (delegate* unmanaged[Cdecl]) funcTable[0x3B2FD68DB5F8331CUL]; + if (fn__setObjectIsVisibleInMirrors == null) fn__setObjectIsVisibleInMirrors = (delegate* unmanaged[Cdecl]) funcTable[0x3B2FD68DB5F8331CUL]; var success = false; fn__setObjectIsVisibleInMirrors(&success, _object, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void SetObjectSpeedBoostAmount(int _object, int _p1) + public void SetObjectSpeedBoostAmount(uint _object, int _p1) { unsafe { - if (fn__setObjectSpeedBoostAmount == null) fn__setObjectSpeedBoostAmount = (delegate* unmanaged[Cdecl]) funcTable[0x96EE0EBA0163DF80UL]; + if (fn__setObjectSpeedBoostAmount == null) fn__setObjectSpeedBoostAmount = (delegate* unmanaged[Cdecl]) funcTable[0x96EE0EBA0163DF80UL]; var success = false; fn__setObjectSpeedBoostAmount(&success, _object, _p1); if (!success) throw new Exception("Native execution failed"); } } - public void SetObjectSpeedBoostDuration(int _object, float _duration) + public void SetObjectSpeedBoostDuration(uint _object, float _duration) { unsafe { - if (fn__setObjectSpeedBoostDuration == null) fn__setObjectSpeedBoostDuration = (delegate* unmanaged[Cdecl]) funcTable[0xDF6CA0330F2E737BUL]; + if (fn__setObjectSpeedBoostDuration == null) fn__setObjectSpeedBoostDuration = (delegate* unmanaged[Cdecl]) funcTable[0xDF6CA0330F2E737BUL]; var success = false; fn__setObjectSpeedBoostDuration(&success, _object, _duration); if (!success) throw new Exception("Native execution failed"); @@ -73976,10 +73963,10 @@ public void SetForceObjectThisFrame(float _x, float _y, float _z, float _p3) } } - public void OnlyCleanUpObjectWhenOutOfRange(int _object) + public void OnlyCleanUpObjectWhenOutOfRange(uint _object) { unsafe { - if (fn__onlyCleanUpObjectWhenOutOfRange == null) fn__onlyCleanUpObjectWhenOutOfRange = (delegate* unmanaged[Cdecl]) funcTable[0xADBE4809F19F927AUL]; + if (fn__onlyCleanUpObjectWhenOutOfRange == null) fn__onlyCleanUpObjectWhenOutOfRange = (delegate* unmanaged[Cdecl]) funcTable[0xADBE4809F19F927AUL]; var success = false; fn__onlyCleanUpObjectWhenOutOfRange(&success, _object); if (!success) throw new Exception("Native execution failed"); @@ -73997,61 +73984,61 @@ public void SetDisableCollisionsBetweenCarsAndCarParachute(int _p0) } public void SetProjectilesShouldExplodeOnContact(IEntity entity, int p1) => SetProjectilesShouldExplodeOnContact(entity.ScriptId, p1); - public void SetProjectilesShouldExplodeOnContact(int _entity, int _p1) + public void SetProjectilesShouldExplodeOnContact(uint _entity, int _p1) { unsafe { - if (fn__setProjectilesShouldExplodeOnContact == null) fn__setProjectilesShouldExplodeOnContact = (delegate* unmanaged[Cdecl]) funcTable[0x63ECF581BC70E363UL]; + if (fn__setProjectilesShouldExplodeOnContact == null) fn__setProjectilesShouldExplodeOnContact = (delegate* unmanaged[Cdecl]) funcTable[0x63ECF581BC70E363UL]; var success = false; fn__setProjectilesShouldExplodeOnContact(&success, _entity, _p1); if (!success) throw new Exception("Native execution failed"); } } - public void SetDriveArticulatedJoint(int _object, bool _toggle, int _p2) + public void SetDriveArticulatedJoint(uint _object, bool _toggle, int _p2) { unsafe { - if (fn__setDriveArticulatedJoint == null) fn__setDriveArticulatedJoint = (delegate* unmanaged[Cdecl]) funcTable[0x911024442F4898F0UL]; + if (fn__setDriveArticulatedJoint == null) fn__setDriveArticulatedJoint = (delegate* unmanaged[Cdecl]) funcTable[0x911024442F4898F0UL]; var success = false; fn__setDriveArticulatedJoint(&success, _object, (byte) (_toggle ? 1 : 0), _p2); if (!success) throw new Exception("Native execution failed"); } } - public void SetDriveArticulatedJointWithInflictor(int @object, bool toggle, int p2, IPlayer ped) => SetDriveArticulatedJointWithInflictor(@object, toggle, p2, ped.ScriptId); - public void SetDriveArticulatedJointWithInflictor(int _object, bool _toggle, int _p2, int _ped) + public void SetDriveArticulatedJointWithInflictor(uint @object, bool toggle, int p2, IPlayer ped) => SetDriveArticulatedJointWithInflictor(@object, toggle, p2, ped.ScriptId); + public void SetDriveArticulatedJointWithInflictor(uint _object, bool _toggle, int _p2, uint _ped) { unsafe { - if (fn__setDriveArticulatedJointWithInflictor == null) fn__setDriveArticulatedJointWithInflictor = (delegate* unmanaged[Cdecl]) funcTable[0xB20834A7DD3D8896UL]; + if (fn__setDriveArticulatedJointWithInflictor == null) fn__setDriveArticulatedJointWithInflictor = (delegate* unmanaged[Cdecl]) funcTable[0xB20834A7DD3D8896UL]; var success = false; fn__setDriveArticulatedJointWithInflictor(&success, _object, (byte) (_toggle ? 1 : 0), _p2, _ped); if (!success) throw new Exception("Native execution failed"); } } - public void SetObjectIsAPressurePlate(int _object, bool _toggle) + public void SetObjectIsAPressurePlate(uint _object, bool _toggle) { unsafe { - if (fn__setObjectIsAPressurePlate == null) fn__setObjectIsAPressurePlate = (delegate* unmanaged[Cdecl]) funcTable[0x734E1714D077DA9AUL]; + if (fn__setObjectIsAPressurePlate == null) fn__setObjectIsAPressurePlate = (delegate* unmanaged[Cdecl]) funcTable[0x734E1714D077DA9AUL]; var success = false; fn__setObjectIsAPressurePlate(&success, _object, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void SetWeaponImpactsApplyGreaterForce(int _object, bool _p1) + public void SetWeaponImpactsApplyGreaterForce(uint _object, bool _p1) { unsafe { - if (fn__setWeaponImpactsApplyGreaterForce == null) fn__setWeaponImpactsApplyGreaterForce = (delegate* unmanaged[Cdecl]) funcTable[0x1A6CBB06E2D0D79DUL]; + if (fn__setWeaponImpactsApplyGreaterForce == null) fn__setWeaponImpactsApplyGreaterForce = (delegate* unmanaged[Cdecl]) funcTable[0x1A6CBB06E2D0D79DUL]; var success = false; fn__setWeaponImpactsApplyGreaterForce(&success, _object, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public bool GetIsArticulatedJointAtMinAngle(int _object, int _p1) + public bool GetIsArticulatedJointAtMinAngle(uint _object, int _p1) { unsafe { - if (fn__getIsArticulatedJointAtMinAngle == null) fn__getIsArticulatedJointAtMinAngle = (delegate* unmanaged[Cdecl]) funcTable[0x43C677F1E1158005UL]; + if (fn__getIsArticulatedJointAtMinAngle == null) fn__getIsArticulatedJointAtMinAngle = (delegate* unmanaged[Cdecl]) funcTable[0x43C677F1E1158005UL]; var success = false; var result = fn__getIsArticulatedJointAtMinAngle(&success, _object, _p1); if (!success) throw new Exception("Native execution failed"); @@ -74070,20 +74057,20 @@ public bool GetIsArticulatedJointAtMaxAngle(int _p0, int _p1) } } - public void SetIsObjectArticulated(int _object, bool _toggle) + public void SetIsObjectArticulated(uint _object, bool _toggle) { unsafe { - if (fn__setIsObjectArticulated == null) fn__setIsObjectArticulated = (delegate* unmanaged[Cdecl]) funcTable[0x1C57C94A6446492AUL]; + if (fn__setIsObjectArticulated == null) fn__setIsObjectArticulated = (delegate* unmanaged[Cdecl]) funcTable[0x1C57C94A6446492AUL]; var success = false; fn__setIsObjectArticulated(&success, _object, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void SetIsObjectBall(int _object, bool _toggle) + public void SetIsObjectBall(uint _object, bool _toggle) { unsafe { - if (fn__setIsObjectBall == null) fn__setIsObjectBall = (delegate* unmanaged[Cdecl]) funcTable[0xB5B7742424BD4445UL]; + if (fn__setIsObjectBall == null) fn__setIsObjectBall = (delegate* unmanaged[Cdecl]) funcTable[0xB5B7742424BD4445UL]; var success = false; fn__setIsObjectBall(&success, _object, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -74338,8 +74325,8 @@ public string GetControlInstructionalButtonsString(int _control, int _action, bo var success = false; var result = fn__getControlInstructionalButtonsString(&success, _control, _action, (byte) (_allowXOSwap ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -74351,8 +74338,8 @@ public string GetControlGroupInstructionalButtonsString(int _control, int _contr var success = false; var result = fn__getControlGroupInstructionalButtonsString(&success, _control, _controlGroup, (byte) (_allowXOSwap ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -74569,9 +74556,9 @@ public bool InitPcScriptedControls(string _schemeName) unsafe { if (fn__initPcScriptedControls == null) fn__initPcScriptedControls = (delegate* unmanaged[Cdecl]) funcTable[0x3D42B92563939375UL]; var success = false; - var ptr_schemeName = _schemeName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_schemeName); + var ptr_schemeName = MemoryUtils.StringToHGlobalUtf8(_schemeName); var result = fn__initPcScriptedControls(&success, ptr_schemeName); - if (ptr_schemeName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_schemeName); + Marshal.FreeHGlobal(ptr_schemeName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -74582,9 +74569,9 @@ public bool SwitchPcScriptedControls(string _schemeName) unsafe { if (fn__switchPcScriptedControls == null) fn__switchPcScriptedControls = (delegate* unmanaged[Cdecl]) funcTable[0x4683149ED1DDE7A1UL]; var success = false; - var ptr_schemeName = _schemeName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_schemeName); + var ptr_schemeName = MemoryUtils.StringToHGlobalUtf8(_schemeName); var result = fn__switchPcScriptedControls(&success, ptr_schemeName); - if (ptr_schemeName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_schemeName); + Marshal.FreeHGlobal(ptr_schemeName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -75076,10 +75063,10 @@ public bool GetPositionBySideOfRoad(float _x, float _y, float _z, int _p3, ref V } public bool IsPointOnRoad(float x, float y, float z, IVehicle vehicle) => IsPointOnRoad(x, y, z, vehicle.ScriptId); - public bool IsPointOnRoad(float _x, float _y, float _z, int _vehicle) + public bool IsPointOnRoad(float _x, float _y, float _z, uint _vehicle) { unsafe { - if (fn__isPointOnRoad == null) fn__isPointOnRoad = (delegate* unmanaged[Cdecl]) funcTable[0x125BF4ABFC536B09UL]; + if (fn__isPointOnRoad == null) fn__isPointOnRoad = (delegate* unmanaged[Cdecl]) funcTable[0x125BF4ABFC536B09UL]; var success = false; var result = fn__isPointOnRoad(&success, _x, _y, _z, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -75289,10 +75276,10 @@ public float CalculateTravelDistanceBetweenPoints(float _x1, float _y1, float _z } } - public int CreatePed(int _pedType, uint _modelHash, float _x, float _y, float _z, float _heading, bool _isNetwork, bool _bScriptHostPed) + public uint CreatePed(int _pedType, uint _modelHash, float _x, float _y, float _z, float _heading, bool _isNetwork, bool _bScriptHostPed) { unsafe { - if (fn__createPed == null) fn__createPed = (delegate* unmanaged[Cdecl]) funcTable[0xD49F9B0955C367DEUL]; + if (fn__createPed == null) fn__createPed = (delegate* unmanaged[Cdecl]) funcTable[0xD49F9B0955C367DEUL]; var success = false; var result = fn__createPed(&success, _pedType, _modelHash, _x, _y, _z, _heading, (byte) (_isNetwork ? 1 : 0), (byte) (_bScriptHostPed ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -75300,10 +75287,10 @@ public int CreatePed(int _pedType, uint _modelHash, float _x, float _y, float _z } } - public void DeletePed(ref int _ped) + public void DeletePed(ref uint _ped) { unsafe { - if (fn__deletePed == null) fn__deletePed = (delegate* unmanaged[Cdecl]) funcTable[0x9614299DCB53E54BUL]; + if (fn__deletePed == null) fn__deletePed = (delegate* unmanaged[Cdecl]) funcTable[0x9614299DCB53E54BUL]; var success = false; var ref_ped = _ped; fn__deletePed(&success, &ref_ped); @@ -75312,11 +75299,11 @@ public void DeletePed(ref int _ped) } } - public int ClonePed(IPlayer ped, bool isNetwork, bool bScriptHostPed, bool copyHeadBlendFlag) => ClonePed(ped.ScriptId, isNetwork, bScriptHostPed, copyHeadBlendFlag); - public int ClonePed(int _ped, bool _isNetwork, bool _bScriptHostPed, bool _copyHeadBlendFlag) + public uint ClonePed(IPlayer ped, bool isNetwork, bool bScriptHostPed, bool copyHeadBlendFlag) => ClonePed(ped.ScriptId, isNetwork, bScriptHostPed, copyHeadBlendFlag); + public uint ClonePed(uint _ped, bool _isNetwork, bool _bScriptHostPed, bool _copyHeadBlendFlag) { unsafe { - if (fn__clonePed == null) fn__clonePed = (delegate* unmanaged[Cdecl]) funcTable[0xEF29A16337FACADBUL]; + if (fn__clonePed == null) fn__clonePed = (delegate* unmanaged[Cdecl]) funcTable[0xEF29A16337FACADBUL]; var success = false; var result = fn__clonePed(&success, _ped, (byte) (_isNetwork ? 1 : 0), (byte) (_bScriptHostPed ? 1 : 0), (byte) (_copyHeadBlendFlag ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -75324,11 +75311,11 @@ public int ClonePed(int _ped, bool _isNetwork, bool _bScriptHostPed, bool _copyH } } - public int ClonePedAlt(IPlayer ped, bool isNetwork, bool bScriptHostPed, bool copyHeadBlendFlag, bool p4) => ClonePedAlt(ped.ScriptId, isNetwork, bScriptHostPed, copyHeadBlendFlag, p4); - public int ClonePedAlt(int _ped, bool _isNetwork, bool _bScriptHostPed, bool _copyHeadBlendFlag, bool _p4) + public uint ClonePedAlt(IPlayer ped, bool isNetwork, bool bScriptHostPed, bool copyHeadBlendFlag, bool p4) => ClonePedAlt(ped.ScriptId, isNetwork, bScriptHostPed, copyHeadBlendFlag, p4); + public uint ClonePedAlt(uint _ped, bool _isNetwork, bool _bScriptHostPed, bool _copyHeadBlendFlag, bool _p4) { unsafe { - if (fn__clonePedAlt == null) fn__clonePedAlt = (delegate* unmanaged[Cdecl]) funcTable[0x668FD40BCBA5DE48UL]; + if (fn__clonePedAlt == null) fn__clonePedAlt = (delegate* unmanaged[Cdecl]) funcTable[0x668FD40BCBA5DE48UL]; var success = false; var result = fn__clonePedAlt(&success, _ped, (byte) (_isNetwork ? 1 : 0), (byte) (_bScriptHostPed ? 1 : 0), (byte) (_copyHeadBlendFlag ? 1 : 0), (byte) (_p4 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -75336,39 +75323,39 @@ public int ClonePedAlt(int _ped, bool _isNetwork, bool _bScriptHostPed, bool _co } } - public void ClonePedToTarget(IPlayer ped, int targetPed) => ClonePedToTarget(ped.ScriptId, targetPed); - public void ClonePedToTarget(int ped, IPlayer targetPed) => ClonePedToTarget(ped, targetPed.ScriptId); + public void ClonePedToTarget(IPlayer ped, uint targetPed) => ClonePedToTarget(ped.ScriptId, targetPed); + public void ClonePedToTarget(uint ped, IPlayer targetPed) => ClonePedToTarget(ped, targetPed.ScriptId); public void ClonePedToTarget(IPlayer ped, IPlayer targetPed) => ClonePedToTarget(ped.ScriptId, targetPed.ScriptId); - public void ClonePedToTarget(int _ped, int _targetPed) + public void ClonePedToTarget(uint _ped, uint _targetPed) { unsafe { - if (fn__clonePedToTarget == null) fn__clonePedToTarget = (delegate* unmanaged[Cdecl]) funcTable[0xE952D6431689AD9AUL]; + if (fn__clonePedToTarget == null) fn__clonePedToTarget = (delegate* unmanaged[Cdecl]) funcTable[0xE952D6431689AD9AUL]; var success = false; fn__clonePedToTarget(&success, _ped, _targetPed); if (!success) throw new Exception("Native execution failed"); } } - public void ClonePedToTargetAlt(IPlayer ped, int targetPed, bool p2) => ClonePedToTargetAlt(ped.ScriptId, targetPed, p2); - public void ClonePedToTargetAlt(int ped, IPlayer targetPed, bool p2) => ClonePedToTargetAlt(ped, targetPed.ScriptId, p2); + public void ClonePedToTargetAlt(IPlayer ped, uint targetPed, bool p2) => ClonePedToTargetAlt(ped.ScriptId, targetPed, p2); + public void ClonePedToTargetAlt(uint ped, IPlayer targetPed, bool p2) => ClonePedToTargetAlt(ped, targetPed.ScriptId, p2); public void ClonePedToTargetAlt(IPlayer ped, IPlayer targetPed, bool p2) => ClonePedToTargetAlt(ped.ScriptId, targetPed.ScriptId, p2); - public void ClonePedToTargetAlt(int _ped, int _targetPed, bool _p2) + public void ClonePedToTargetAlt(uint _ped, uint _targetPed, bool _p2) { unsafe { - if (fn__clonePedToTargetAlt == null) fn__clonePedToTargetAlt = (delegate* unmanaged[Cdecl]) funcTable[0x148B08C2D2ACB884UL]; + if (fn__clonePedToTargetAlt == null) fn__clonePedToTargetAlt = (delegate* unmanaged[Cdecl]) funcTable[0x148B08C2D2ACB884UL]; var success = false; fn__clonePedToTargetAlt(&success, _ped, _targetPed, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public bool IsPedInVehicle(IPlayer ped, int vehicle, bool atGetIn) => IsPedInVehicle(ped.ScriptId, vehicle, atGetIn); - public bool IsPedInVehicle(int ped, IVehicle vehicle, bool atGetIn) => IsPedInVehicle(ped, vehicle.ScriptId, atGetIn); + public bool IsPedInVehicle(IPlayer ped, uint vehicle, bool atGetIn) => IsPedInVehicle(ped.ScriptId, vehicle, atGetIn); + public bool IsPedInVehicle(uint ped, IVehicle vehicle, bool atGetIn) => IsPedInVehicle(ped, vehicle.ScriptId, atGetIn); public bool IsPedInVehicle(IPlayer ped, IVehicle vehicle, bool atGetIn) => IsPedInVehicle(ped.ScriptId, vehicle.ScriptId, atGetIn); - public bool IsPedInVehicle(int _ped, int _vehicle, bool _atGetIn) + public bool IsPedInVehicle(uint _ped, uint _vehicle, bool _atGetIn) { unsafe { - if (fn__isPedInVehicle == null) fn__isPedInVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xA3EE4A07279BB9DBUL]; + if (fn__isPedInVehicle == null) fn__isPedInVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xA3EE4A07279BB9DBUL]; var success = false; var result = fn__isPedInVehicle(&success, _ped, _vehicle, (byte) (_atGetIn ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -75377,10 +75364,10 @@ public bool IsPedInVehicle(int _ped, int _vehicle, bool _atGetIn) } public bool IsPedInModel(IPlayer ped, uint modelHash) => IsPedInModel(ped.ScriptId, modelHash); - public bool IsPedInModel(int _ped, uint _modelHash) + public bool IsPedInModel(uint _ped, uint _modelHash) { unsafe { - if (fn__isPedInModel == null) fn__isPedInModel = (delegate* unmanaged[Cdecl]) funcTable[0x796D90EFB19AA332UL]; + if (fn__isPedInModel == null) fn__isPedInModel = (delegate* unmanaged[Cdecl]) funcTable[0x796D90EFB19AA332UL]; var success = false; var result = fn__isPedInModel(&success, _ped, _modelHash); if (!success) throw new Exception("Native execution failed"); @@ -75389,10 +75376,10 @@ public bool IsPedInModel(int _ped, uint _modelHash) } public bool IsPedInAnyVehicle(IPlayer ped, bool atGetIn) => IsPedInAnyVehicle(ped.ScriptId, atGetIn); - public bool IsPedInAnyVehicle(int _ped, bool _atGetIn) + public bool IsPedInAnyVehicle(uint _ped, bool _atGetIn) { unsafe { - if (fn__isPedInAnyVehicle == null) fn__isPedInAnyVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x997ABD671D25CA0BUL]; + if (fn__isPedInAnyVehicle == null) fn__isPedInAnyVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x997ABD671D25CA0BUL]; var success = false; var result = fn__isPedInAnyVehicle(&success, _ped, (byte) (_atGetIn ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -75412,10 +75399,10 @@ public bool IsCopPedInArea3d(float _x1, float _y1, float _z1, float _x2, float _ } public bool IsPedInjured(IPlayer ped) => IsPedInjured(ped.ScriptId); - public bool IsPedInjured(int _ped) + public bool IsPedInjured(uint _ped) { unsafe { - if (fn__isPedInjured == null) fn__isPedInjured = (delegate* unmanaged[Cdecl]) funcTable[0x84A2DD9AC37C35C1UL]; + if (fn__isPedInjured == null) fn__isPedInjured = (delegate* unmanaged[Cdecl]) funcTable[0x84A2DD9AC37C35C1UL]; var success = false; var result = fn__isPedInjured(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -75424,10 +75411,10 @@ public bool IsPedInjured(int _ped) } public bool IsPedHurt(IPlayer ped) => IsPedHurt(ped.ScriptId); - public bool IsPedHurt(int _ped) + public bool IsPedHurt(uint _ped) { unsafe { - if (fn__isPedHurt == null) fn__isPedHurt = (delegate* unmanaged[Cdecl]) funcTable[0x5983BB449D7FDB12UL]; + if (fn__isPedHurt == null) fn__isPedHurt = (delegate* unmanaged[Cdecl]) funcTable[0x5983BB449D7FDB12UL]; var success = false; var result = fn__isPedHurt(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -75436,10 +75423,10 @@ public bool IsPedHurt(int _ped) } public bool IsPedFatallyInjured(IPlayer ped) => IsPedFatallyInjured(ped.ScriptId); - public bool IsPedFatallyInjured(int _ped) + public bool IsPedFatallyInjured(uint _ped) { unsafe { - if (fn__isPedFatallyInjured == null) fn__isPedFatallyInjured = (delegate* unmanaged[Cdecl]) funcTable[0xD839450756ED5A80UL]; + if (fn__isPedFatallyInjured == null) fn__isPedFatallyInjured = (delegate* unmanaged[Cdecl]) funcTable[0xD839450756ED5A80UL]; var success = false; var result = fn__isPedFatallyInjured(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -75448,10 +75435,10 @@ public bool IsPedFatallyInjured(int _ped) } public bool IsPedDeadOrDying(IPlayer ped, bool p1) => IsPedDeadOrDying(ped.ScriptId, p1); - public bool IsPedDeadOrDying(int _ped, bool _p1) + public bool IsPedDeadOrDying(uint _ped, bool _p1) { unsafe { - if (fn__isPedDeadOrDying == null) fn__isPedDeadOrDying = (delegate* unmanaged[Cdecl]) funcTable[0x3317DEDB88C95038UL]; + if (fn__isPedDeadOrDying == null) fn__isPedDeadOrDying = (delegate* unmanaged[Cdecl]) funcTable[0x3317DEDB88C95038UL]; var success = false; var result = fn__isPedDeadOrDying(&success, _ped, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -75460,10 +75447,10 @@ public bool IsPedDeadOrDying(int _ped, bool _p1) } public bool IsConversationPedDead(IPlayer ped) => IsConversationPedDead(ped.ScriptId); - public bool IsConversationPedDead(int _ped) + public bool IsConversationPedDead(uint _ped) { unsafe { - if (fn__isConversationPedDead == null) fn__isConversationPedDead = (delegate* unmanaged[Cdecl]) funcTable[0xE0A0AEC214B1FABAUL]; + if (fn__isConversationPedDead == null) fn__isConversationPedDead = (delegate* unmanaged[Cdecl]) funcTable[0xE0A0AEC214B1FABAUL]; var success = false; var result = fn__isConversationPedDead(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -75472,10 +75459,10 @@ public bool IsConversationPedDead(int _ped) } public bool IsPedAimingFromCover(IPlayer ped) => IsPedAimingFromCover(ped.ScriptId); - public bool IsPedAimingFromCover(int _ped) + public bool IsPedAimingFromCover(uint _ped) { unsafe { - if (fn__isPedAimingFromCover == null) fn__isPedAimingFromCover = (delegate* unmanaged[Cdecl]) funcTable[0x3998B1276A3300E5UL]; + if (fn__isPedAimingFromCover == null) fn__isPedAimingFromCover = (delegate* unmanaged[Cdecl]) funcTable[0x3998B1276A3300E5UL]; var success = false; var result = fn__isPedAimingFromCover(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -75484,10 +75471,10 @@ public bool IsPedAimingFromCover(int _ped) } public bool IsPedReloading(IPlayer ped) => IsPedReloading(ped.ScriptId); - public bool IsPedReloading(int _ped) + public bool IsPedReloading(uint _ped) { unsafe { - if (fn__isPedReloading == null) fn__isPedReloading = (delegate* unmanaged[Cdecl]) funcTable[0x24B100C68C645951UL]; + if (fn__isPedReloading == null) fn__isPedReloading = (delegate* unmanaged[Cdecl]) funcTable[0x24B100C68C645951UL]; var success = false; var result = fn__isPedReloading(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -75496,10 +75483,10 @@ public bool IsPedReloading(int _ped) } public bool IsPedAPlayer(IPlayer ped) => IsPedAPlayer(ped.ScriptId); - public bool IsPedAPlayer(int _ped) + public bool IsPedAPlayer(uint _ped) { unsafe { - if (fn__isPedAPlayer == null) fn__isPedAPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x12534C348C6CB68BUL]; + if (fn__isPedAPlayer == null) fn__isPedAPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x12534C348C6CB68BUL]; var success = false; var result = fn__isPedAPlayer(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -75507,11 +75494,11 @@ public bool IsPedAPlayer(int _ped) } } - public int CreatePedInsideVehicle(IVehicle vehicle, int pedType, uint modelHash, int seat, bool isNetwork, bool bScriptHostPed) => CreatePedInsideVehicle(vehicle.ScriptId, pedType, modelHash, seat, isNetwork, bScriptHostPed); - public int CreatePedInsideVehicle(int _vehicle, int _pedType, uint _modelHash, int _seat, bool _isNetwork, bool _bScriptHostPed) + public uint CreatePedInsideVehicle(IVehicle vehicle, int pedType, uint modelHash, int seat, bool isNetwork, bool bScriptHostPed) => CreatePedInsideVehicle(vehicle.ScriptId, pedType, modelHash, seat, isNetwork, bScriptHostPed); + public uint CreatePedInsideVehicle(uint _vehicle, int _pedType, uint _modelHash, int _seat, bool _isNetwork, bool _bScriptHostPed) { unsafe { - if (fn__createPedInsideVehicle == null) fn__createPedInsideVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x7DD959874C1FD534UL]; + if (fn__createPedInsideVehicle == null) fn__createPedInsideVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x7DD959874C1FD534UL]; var success = false; var result = fn__createPedInsideVehicle(&success, _vehicle, _pedType, _modelHash, _seat, (byte) (_isNetwork ? 1 : 0), (byte) (_bScriptHostPed ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -75520,10 +75507,10 @@ public int CreatePedInsideVehicle(int _vehicle, int _pedType, uint _modelHash, i } public void SetPedDesiredHeading(IPlayer ped, float heading) => SetPedDesiredHeading(ped.ScriptId, heading); - public void SetPedDesiredHeading(int _ped, float _heading) + public void SetPedDesiredHeading(uint _ped, float _heading) { unsafe { - if (fn__setPedDesiredHeading == null) fn__setPedDesiredHeading = (delegate* unmanaged[Cdecl]) funcTable[0xAA5A7ECE2AA8FE70UL]; + if (fn__setPedDesiredHeading == null) fn__setPedDesiredHeading = (delegate* unmanaged[Cdecl]) funcTable[0xAA5A7ECE2AA8FE70UL]; var success = false; fn__setPedDesiredHeading(&success, _ped, _heading); if (!success) throw new Exception("Native execution failed"); @@ -75531,23 +75518,23 @@ public void SetPedDesiredHeading(int _ped, float _heading) } public void ForceAllHeadingValuesToAlign(IPlayer ped) => ForceAllHeadingValuesToAlign(ped.ScriptId); - public void ForceAllHeadingValuesToAlign(int _ped) + public void ForceAllHeadingValuesToAlign(uint _ped) { unsafe { - if (fn__forceAllHeadingValuesToAlign == null) fn__forceAllHeadingValuesToAlign = (delegate* unmanaged[Cdecl]) funcTable[0xFF287323B0E2C69AUL]; + if (fn__forceAllHeadingValuesToAlign == null) fn__forceAllHeadingValuesToAlign = (delegate* unmanaged[Cdecl]) funcTable[0xFF287323B0E2C69AUL]; var success = false; fn__forceAllHeadingValuesToAlign(&success, _ped); if (!success) throw new Exception("Native execution failed"); } } - public bool IsPedFacingPed(IPlayer ped, int otherPed, float angle) => IsPedFacingPed(ped.ScriptId, otherPed, angle); - public bool IsPedFacingPed(int ped, IPlayer otherPed, float angle) => IsPedFacingPed(ped, otherPed.ScriptId, angle); + public bool IsPedFacingPed(IPlayer ped, uint otherPed, float angle) => IsPedFacingPed(ped.ScriptId, otherPed, angle); + public bool IsPedFacingPed(uint ped, IPlayer otherPed, float angle) => IsPedFacingPed(ped, otherPed.ScriptId, angle); public bool IsPedFacingPed(IPlayer ped, IPlayer otherPed, float angle) => IsPedFacingPed(ped.ScriptId, otherPed.ScriptId, angle); - public bool IsPedFacingPed(int _ped, int _otherPed, float _angle) + public bool IsPedFacingPed(uint _ped, uint _otherPed, float _angle) { unsafe { - if (fn__isPedFacingPed == null) fn__isPedFacingPed = (delegate* unmanaged[Cdecl]) funcTable[0xD71649DB0A545AA3UL]; + if (fn__isPedFacingPed == null) fn__isPedFacingPed = (delegate* unmanaged[Cdecl]) funcTable[0xD71649DB0A545AA3UL]; var success = false; var result = fn__isPedFacingPed(&success, _ped, _otherPed, _angle); if (!success) throw new Exception("Native execution failed"); @@ -75556,10 +75543,10 @@ public bool IsPedFacingPed(int _ped, int _otherPed, float _angle) } public bool IsPedInMeleeCombat(IPlayer ped) => IsPedInMeleeCombat(ped.ScriptId); - public bool IsPedInMeleeCombat(int _ped) + public bool IsPedInMeleeCombat(uint _ped) { unsafe { - if (fn__isPedInMeleeCombat == null) fn__isPedInMeleeCombat = (delegate* unmanaged[Cdecl]) funcTable[0x4E209B2C1EAD5159UL]; + if (fn__isPedInMeleeCombat == null) fn__isPedInMeleeCombat = (delegate* unmanaged[Cdecl]) funcTable[0x4E209B2C1EAD5159UL]; var success = false; var result = fn__isPedInMeleeCombat(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -75568,10 +75555,10 @@ public bool IsPedInMeleeCombat(int _ped) } public bool IsPedStopped(IPlayer ped) => IsPedStopped(ped.ScriptId); - public bool IsPedStopped(int _ped) + public bool IsPedStopped(uint _ped) { unsafe { - if (fn__isPedStopped == null) fn__isPedStopped = (delegate* unmanaged[Cdecl]) funcTable[0x530944F6F4B8A214UL]; + if (fn__isPedStopped == null) fn__isPedStopped = (delegate* unmanaged[Cdecl]) funcTable[0x530944F6F4B8A214UL]; var success = false; var result = fn__isPedStopped(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -75580,10 +75567,10 @@ public bool IsPedStopped(int _ped) } public bool IsPedShootingInArea(IPlayer ped, float x1, float y1, float z1, float x2, float y2, float z2, bool p7, bool p8) => IsPedShootingInArea(ped.ScriptId, x1, y1, z1, x2, y2, z2, p7, p8); - public bool IsPedShootingInArea(int _ped, float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, bool _p7, bool _p8) + public bool IsPedShootingInArea(uint _ped, float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, bool _p7, bool _p8) { unsafe { - if (fn__isPedShootingInArea == null) fn__isPedShootingInArea = (delegate* unmanaged[Cdecl]) funcTable[0x7E9DFE24AC1E58EFUL]; + if (fn__isPedShootingInArea == null) fn__isPedShootingInArea = (delegate* unmanaged[Cdecl]) funcTable[0x7E9DFE24AC1E58EFUL]; var success = false; var result = fn__isPedShootingInArea(&success, _ped, _x1, _y1, _z1, _x2, _y2, _z2, (byte) (_p7 ? 1 : 0), (byte) (_p8 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -75603,10 +75590,10 @@ public bool IsAnyPedShootingInArea(float _x1, float _y1, float _z1, float _x2, f } public bool IsPedShooting(IPlayer ped) => IsPedShooting(ped.ScriptId); - public bool IsPedShooting(int _ped) + public bool IsPedShooting(uint _ped) { unsafe { - if (fn__isPedShooting == null) fn__isPedShooting = (delegate* unmanaged[Cdecl]) funcTable[0x34616828CD07F1A1UL]; + if (fn__isPedShooting == null) fn__isPedShooting = (delegate* unmanaged[Cdecl]) funcTable[0x34616828CD07F1A1UL]; var success = false; var result = fn__isPedShooting(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -75615,10 +75602,10 @@ public bool IsPedShooting(int _ped) } public void SetPedAccuracy(IPlayer ped, int accuracy) => SetPedAccuracy(ped.ScriptId, accuracy); - public void SetPedAccuracy(int _ped, int _accuracy) + public void SetPedAccuracy(uint _ped, int _accuracy) { unsafe { - if (fn__setPedAccuracy == null) fn__setPedAccuracy = (delegate* unmanaged[Cdecl]) funcTable[0x7AEFB85C1D49DEB6UL]; + if (fn__setPedAccuracy == null) fn__setPedAccuracy = (delegate* unmanaged[Cdecl]) funcTable[0x7AEFB85C1D49DEB6UL]; var success = false; fn__setPedAccuracy(&success, _ped, _accuracy); if (!success) throw new Exception("Native execution failed"); @@ -75626,10 +75613,10 @@ public void SetPedAccuracy(int _ped, int _accuracy) } public int GetPedAccuracy(IPlayer ped) => GetPedAccuracy(ped.ScriptId); - public int GetPedAccuracy(int _ped) + public int GetPedAccuracy(uint _ped) { unsafe { - if (fn__getPedAccuracy == null) fn__getPedAccuracy = (delegate* unmanaged[Cdecl]) funcTable[0x37F4AD56ECBC0CD6UL]; + if (fn__getPedAccuracy == null) fn__getPedAccuracy = (delegate* unmanaged[Cdecl]) funcTable[0x37F4AD56ECBC0CD6UL]; var success = false; var result = fn__getPedAccuracy(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -75648,10 +75635,10 @@ public void SetAmbientLawPedAccuracyModifier(float _multiplier) } public bool IsPedModel(IPlayer ped, uint modelHash) => IsPedModel(ped.ScriptId, modelHash); - public bool IsPedModel(int _ped, uint _modelHash) + public bool IsPedModel(uint _ped, uint _modelHash) { unsafe { - if (fn__isPedModel == null) fn__isPedModel = (delegate* unmanaged[Cdecl]) funcTable[0xC9D55B1A358A5BF7UL]; + if (fn__isPedModel == null) fn__isPedModel = (delegate* unmanaged[Cdecl]) funcTable[0xC9D55B1A358A5BF7UL]; var success = false; var result = fn__isPedModel(&success, _ped, _modelHash); if (!success) throw new Exception("Native execution failed"); @@ -75660,20 +75647,20 @@ public bool IsPedModel(int _ped, uint _modelHash) } public void ExplodePedHead(IPlayer ped, uint weaponHash) => ExplodePedHead(ped.ScriptId, weaponHash); - public void ExplodePedHead(int _ped, uint _weaponHash) + public void ExplodePedHead(uint _ped, uint _weaponHash) { unsafe { - if (fn__explodePedHead == null) fn__explodePedHead = (delegate* unmanaged[Cdecl]) funcTable[0x2D05CED3A38D0F3AUL]; + if (fn__explodePedHead == null) fn__explodePedHead = (delegate* unmanaged[Cdecl]) funcTable[0x2D05CED3A38D0F3AUL]; var success = false; fn__explodePedHead(&success, _ped, _weaponHash); if (!success) throw new Exception("Native execution failed"); } } - public void RemovePedElegantly(ref int _ped) + public void RemovePedElegantly(ref uint _ped) { unsafe { - if (fn__removePedElegantly == null) fn__removePedElegantly = (delegate* unmanaged[Cdecl]) funcTable[0xAC6D445B994DF95EUL]; + if (fn__removePedElegantly == null) fn__removePedElegantly = (delegate* unmanaged[Cdecl]) funcTable[0xAC6D445B994DF95EUL]; var success = false; var ref_ped = _ped; fn__removePedElegantly(&success, &ref_ped); @@ -75683,10 +75670,10 @@ public void RemovePedElegantly(ref int _ped) } public void AddArmourToPed(IPlayer ped, int amount) => AddArmourToPed(ped.ScriptId, amount); - public void AddArmourToPed(int _ped, int _amount) + public void AddArmourToPed(uint _ped, int _amount) { unsafe { - if (fn__addArmourToPed == null) fn__addArmourToPed = (delegate* unmanaged[Cdecl]) funcTable[0x5BA652A0CD14DF2FUL]; + if (fn__addArmourToPed == null) fn__addArmourToPed = (delegate* unmanaged[Cdecl]) funcTable[0x5BA652A0CD14DF2FUL]; var success = false; fn__addArmourToPed(&success, _ped, _amount); if (!success) throw new Exception("Native execution failed"); @@ -75694,23 +75681,23 @@ public void AddArmourToPed(int _ped, int _amount) } public void SetPedArmour(IPlayer ped, int amount) => SetPedArmour(ped.ScriptId, amount); - public void SetPedArmour(int _ped, int _amount) + public void SetPedArmour(uint _ped, int _amount) { unsafe { - if (fn__setPedArmour == null) fn__setPedArmour = (delegate* unmanaged[Cdecl]) funcTable[0xCEA04D83135264CCUL]; + if (fn__setPedArmour == null) fn__setPedArmour = (delegate* unmanaged[Cdecl]) funcTable[0xCEA04D83135264CCUL]; var success = false; fn__setPedArmour(&success, _ped, _amount); if (!success) throw new Exception("Native execution failed"); } } - public void SetPedIntoVehicle(IPlayer ped, int vehicle, int seatIndex) => SetPedIntoVehicle(ped.ScriptId, vehicle, seatIndex); - public void SetPedIntoVehicle(int ped, IVehicle vehicle, int seatIndex) => SetPedIntoVehicle(ped, vehicle.ScriptId, seatIndex); + public void SetPedIntoVehicle(IPlayer ped, uint vehicle, int seatIndex) => SetPedIntoVehicle(ped.ScriptId, vehicle, seatIndex); + public void SetPedIntoVehicle(uint ped, IVehicle vehicle, int seatIndex) => SetPedIntoVehicle(ped, vehicle.ScriptId, seatIndex); public void SetPedIntoVehicle(IPlayer ped, IVehicle vehicle, int seatIndex) => SetPedIntoVehicle(ped.ScriptId, vehicle.ScriptId, seatIndex); - public void SetPedIntoVehicle(int _ped, int _vehicle, int _seatIndex) + public void SetPedIntoVehicle(uint _ped, uint _vehicle, int _seatIndex) { unsafe { - if (fn__setPedIntoVehicle == null) fn__setPedIntoVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xF75B0D629E1C063DUL]; + if (fn__setPedIntoVehicle == null) fn__setPedIntoVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xF75B0D629E1C063DUL]; var success = false; fn__setPedIntoVehicle(&success, _ped, _vehicle, _seatIndex); if (!success) throw new Exception("Native execution failed"); @@ -75718,10 +75705,10 @@ public void SetPedIntoVehicle(int _ped, int _vehicle, int _seatIndex) } public void SetPedAllowVehiclesOverride(IPlayer ped, bool toggle) => SetPedAllowVehiclesOverride(ped.ScriptId, toggle); - public void SetPedAllowVehiclesOverride(int _ped, bool _toggle) + public void SetPedAllowVehiclesOverride(uint _ped, bool _toggle) { unsafe { - if (fn__setPedAllowVehiclesOverride == null) fn__setPedAllowVehiclesOverride = (delegate* unmanaged[Cdecl]) funcTable[0x3C028C636A414ED9UL]; + if (fn__setPedAllowVehiclesOverride == null) fn__setPedAllowVehiclesOverride = (delegate* unmanaged[Cdecl]) funcTable[0x3C028C636A414ED9UL]; var success = false; fn__setPedAllowVehiclesOverride(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -75739,10 +75726,10 @@ public bool CanCreateRandomPed(bool _p0) } } - public int CreateRandomPed(float _posX, float _posY, float _posZ) + public uint CreateRandomPed(float _posX, float _posY, float _posZ) { unsafe { - if (fn__createRandomPed == null) fn__createRandomPed = (delegate* unmanaged[Cdecl]) funcTable[0xB4AC7D0CF06BFE8FUL]; + if (fn__createRandomPed == null) fn__createRandomPed = (delegate* unmanaged[Cdecl]) funcTable[0xB4AC7D0CF06BFE8FUL]; var success = false; var result = fn__createRandomPed(&success, _posX, _posY, _posZ); if (!success) throw new Exception("Native execution failed"); @@ -75750,11 +75737,11 @@ public int CreateRandomPed(float _posX, float _posY, float _posZ) } } - public int CreateRandomPedAsDriver(IVehicle vehicle, bool returnHandle) => CreateRandomPedAsDriver(vehicle.ScriptId, returnHandle); - public int CreateRandomPedAsDriver(int _vehicle, bool _returnHandle) + public uint CreateRandomPedAsDriver(IVehicle vehicle, bool returnHandle) => CreateRandomPedAsDriver(vehicle.ScriptId, returnHandle); + public uint CreateRandomPedAsDriver(uint _vehicle, bool _returnHandle) { unsafe { - if (fn__createRandomPedAsDriver == null) fn__createRandomPedAsDriver = (delegate* unmanaged[Cdecl]) funcTable[0x9B62392B474F44A0UL]; + if (fn__createRandomPedAsDriver == null) fn__createRandomPedAsDriver = (delegate* unmanaged[Cdecl]) funcTable[0x9B62392B474F44A0UL]; var success = false; var result = fn__createRandomPedAsDriver(&success, _vehicle, (byte) (_returnHandle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -75785,10 +75772,10 @@ public bool CanCreateRandomBikeRider() } public void SetPedMoveAnimsBlendOut(IPlayer ped) => SetPedMoveAnimsBlendOut(ped.ScriptId); - public void SetPedMoveAnimsBlendOut(int _ped) + public void SetPedMoveAnimsBlendOut(uint _ped) { unsafe { - if (fn__setPedMoveAnimsBlendOut == null) fn__setPedMoveAnimsBlendOut = (delegate* unmanaged[Cdecl]) funcTable[0x9E8C908F41584ECDUL]; + if (fn__setPedMoveAnimsBlendOut == null) fn__setPedMoveAnimsBlendOut = (delegate* unmanaged[Cdecl]) funcTable[0x9E8C908F41584ECDUL]; var success = false; fn__setPedMoveAnimsBlendOut(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -75796,10 +75783,10 @@ public void SetPedMoveAnimsBlendOut(int _ped) } public void SetPedCanBeDraggedOut(IPlayer ped, bool toggle) => SetPedCanBeDraggedOut(ped.ScriptId, toggle); - public void SetPedCanBeDraggedOut(int _ped, bool _toggle) + public void SetPedCanBeDraggedOut(uint _ped, bool _toggle) { unsafe { - if (fn__setPedCanBeDraggedOut == null) fn__setPedCanBeDraggedOut = (delegate* unmanaged[Cdecl]) funcTable[0xC1670E958EEE24E5UL]; + if (fn__setPedCanBeDraggedOut == null) fn__setPedCanBeDraggedOut = (delegate* unmanaged[Cdecl]) funcTable[0xC1670E958EEE24E5UL]; var success = false; fn__setPedCanBeDraggedOut(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -75817,10 +75804,10 @@ public void SetPedAllowHurtCombatForAllMissionPeds(bool _toggle) } public bool IsPedMale(IPlayer ped) => IsPedMale(ped.ScriptId); - public bool IsPedMale(int _ped) + public bool IsPedMale(uint _ped) { unsafe { - if (fn__isPedMale == null) fn__isPedMale = (delegate* unmanaged[Cdecl]) funcTable[0x6D9F5FAA7488BA46UL]; + if (fn__isPedMale == null) fn__isPedMale = (delegate* unmanaged[Cdecl]) funcTable[0x6D9F5FAA7488BA46UL]; var success = false; var result = fn__isPedMale(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -75829,10 +75816,10 @@ public bool IsPedMale(int _ped) } public bool IsPedHuman(IPlayer ped) => IsPedHuman(ped.ScriptId); - public bool IsPedHuman(int _ped) + public bool IsPedHuman(uint _ped) { unsafe { - if (fn__isPedHuman == null) fn__isPedHuman = (delegate* unmanaged[Cdecl]) funcTable[0xB980061DA992779DUL]; + if (fn__isPedHuman == null) fn__isPedHuman = (delegate* unmanaged[Cdecl]) funcTable[0xB980061DA992779DUL]; var success = false; var result = fn__isPedHuman(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -75840,23 +75827,23 @@ public bool IsPedHuman(int _ped) } } - public int GetVehiclePedIsIn(IPlayer ped, bool includeLastVehicle) => GetVehiclePedIsIn(ped.ScriptId, includeLastVehicle); - public int GetVehiclePedIsIn(int _ped, bool _includeLastVehicle) + public uint GetVehiclePedIsIn(IPlayer ped, bool includeEntering) => GetVehiclePedIsIn(ped.ScriptId, includeEntering); + public uint GetVehiclePedIsIn(uint _ped, bool _includeEntering) { unsafe { - if (fn__getVehiclePedIsIn == null) fn__getVehiclePedIsIn = (delegate* unmanaged[Cdecl]) funcTable[0x9A9112A0FE9A4713UL]; + if (fn__getVehiclePedIsIn == null) fn__getVehiclePedIsIn = (delegate* unmanaged[Cdecl]) funcTable[0x9A9112A0FE9A4713UL]; var success = false; - var result = fn__getVehiclePedIsIn(&success, _ped, (byte) (_includeLastVehicle ? 1 : 0)); + var result = fn__getVehiclePedIsIn(&success, _ped, (byte) (_includeEntering ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); return result; } } public void ResetPedLastVehicle(IPlayer ped) => ResetPedLastVehicle(ped.ScriptId); - public void ResetPedLastVehicle(int _ped) + public void ResetPedLastVehicle(uint _ped) { unsafe { - if (fn__resetPedLastVehicle == null) fn__resetPedLastVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xBB8DE8CF6A8DD8BBUL]; + if (fn__resetPedLastVehicle == null) fn__resetPedLastVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xBB8DE8CF6A8DD8BBUL]; var success = false; fn__resetPedLastVehicle(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -75934,10 +75921,10 @@ public void InstantlyFillPedPopulation() } public bool IsPedOnMount(IPlayer ped) => IsPedOnMount(ped.ScriptId); - public bool IsPedOnMount(int _ped) + public bool IsPedOnMount(uint _ped) { unsafe { - if (fn__isPedOnMount == null) fn__isPedOnMount = (delegate* unmanaged[Cdecl]) funcTable[0x460BC76A0E10655EUL]; + if (fn__isPedOnMount == null) fn__isPedOnMount = (delegate* unmanaged[Cdecl]) funcTable[0x460BC76A0E10655EUL]; var success = false; var result = fn__isPedOnMount(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -75945,11 +75932,11 @@ public bool IsPedOnMount(int _ped) } } - public int GetMount(IPlayer ped) => GetMount(ped.ScriptId); - public int GetMount(int _ped) + public uint GetMount(IPlayer ped) => GetMount(ped.ScriptId); + public uint GetMount(uint _ped) { unsafe { - if (fn__getMount == null) fn__getMount = (delegate* unmanaged[Cdecl]) funcTable[0xE7E11B8DCBED1058UL]; + if (fn__getMount == null) fn__getMount = (delegate* unmanaged[Cdecl]) funcTable[0xE7E11B8DCBED1058UL]; var success = false; var result = fn__getMount(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -75958,10 +75945,10 @@ public int GetMount(int _ped) } public bool IsPedOnVehicle(IPlayer ped) => IsPedOnVehicle(ped.ScriptId); - public bool IsPedOnVehicle(int _ped) + public bool IsPedOnVehicle(uint _ped) { unsafe { - if (fn__isPedOnVehicle == null) fn__isPedOnVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x67722AEB798E5FABUL]; + if (fn__isPedOnVehicle == null) fn__isPedOnVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x67722AEB798E5FABUL]; var success = false; var result = fn__isPedOnVehicle(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -75969,13 +75956,13 @@ public bool IsPedOnVehicle(int _ped) } } - public bool IsPedOnSpecificVehicle(IPlayer ped, int vehicle) => IsPedOnSpecificVehicle(ped.ScriptId, vehicle); - public bool IsPedOnSpecificVehicle(int ped, IVehicle vehicle) => IsPedOnSpecificVehicle(ped, vehicle.ScriptId); + public bool IsPedOnSpecificVehicle(IPlayer ped, uint vehicle) => IsPedOnSpecificVehicle(ped.ScriptId, vehicle); + public bool IsPedOnSpecificVehicle(uint ped, IVehicle vehicle) => IsPedOnSpecificVehicle(ped, vehicle.ScriptId); public bool IsPedOnSpecificVehicle(IPlayer ped, IVehicle vehicle) => IsPedOnSpecificVehicle(ped.ScriptId, vehicle.ScriptId); - public bool IsPedOnSpecificVehicle(int _ped, int _vehicle) + public bool IsPedOnSpecificVehicle(uint _ped, uint _vehicle) { unsafe { - if (fn__isPedOnSpecificVehicle == null) fn__isPedOnSpecificVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xEC5F66E459AF3BB2UL]; + if (fn__isPedOnSpecificVehicle == null) fn__isPedOnSpecificVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xEC5F66E459AF3BB2UL]; var success = false; var result = fn__isPedOnSpecificVehicle(&success, _ped, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -75984,10 +75971,10 @@ public bool IsPedOnSpecificVehicle(int _ped, int _vehicle) } public void SetPedMoney(IPlayer ped, int amount) => SetPedMoney(ped.ScriptId, amount); - public void SetPedMoney(int _ped, int _amount) + public void SetPedMoney(uint _ped, int _amount) { unsafe { - if (fn__setPedMoney == null) fn__setPedMoney = (delegate* unmanaged[Cdecl]) funcTable[0xA9C8960E8684C1B5UL]; + if (fn__setPedMoney == null) fn__setPedMoney = (delegate* unmanaged[Cdecl]) funcTable[0xA9C8960E8684C1B5UL]; var success = false; fn__setPedMoney(&success, _ped, _amount); if (!success) throw new Exception("Native execution failed"); @@ -75995,10 +75982,10 @@ public void SetPedMoney(int _ped, int _amount) } public int GetPedMoney(IPlayer ped) => GetPedMoney(ped.ScriptId); - public int GetPedMoney(int _ped) + public int GetPedMoney(uint _ped) { unsafe { - if (fn__getPedMoney == null) fn__getPedMoney = (delegate* unmanaged[Cdecl]) funcTable[0x3F69145BBA87BAE7UL]; + if (fn__getPedMoney == null) fn__getPedMoney = (delegate* unmanaged[Cdecl]) funcTable[0x3F69145BBA87BAE7UL]; var success = false; var result = fn__getPedMoney(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76037,10 +76024,10 @@ public void SetBlockingOfNonTemporaryEventsForAmbientPedsThisFrame(bool _p0) } public void SetPedSuffersCriticalHits(IPlayer ped, bool toggle) => SetPedSuffersCriticalHits(ped.ScriptId, toggle); - public void SetPedSuffersCriticalHits(int _ped, bool _toggle) + public void SetPedSuffersCriticalHits(uint _ped, bool _toggle) { unsafe { - if (fn__setPedSuffersCriticalHits == null) fn__setPedSuffersCriticalHits = (delegate* unmanaged[Cdecl]) funcTable[0xEBD76F2359F190ACUL]; + if (fn__setPedSuffersCriticalHits == null) fn__setPedSuffersCriticalHits = (delegate* unmanaged[Cdecl]) funcTable[0xEBD76F2359F190ACUL]; var success = false; fn__setPedSuffersCriticalHits(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -76048,23 +76035,23 @@ public void SetPedSuffersCriticalHits(int _ped, bool _toggle) } public void SetPedUpperBodyDamageOnly(IPlayer ped, bool toggle) => SetPedUpperBodyDamageOnly(ped.ScriptId, toggle); - public void SetPedUpperBodyDamageOnly(int _ped, bool _toggle) + public void SetPedUpperBodyDamageOnly(uint _ped, bool _toggle) { unsafe { - if (fn__setPedUpperBodyDamageOnly == null) fn__setPedUpperBodyDamageOnly = (delegate* unmanaged[Cdecl]) funcTable[0xAFC976FD0580C7B3UL]; + if (fn__setPedUpperBodyDamageOnly == null) fn__setPedUpperBodyDamageOnly = (delegate* unmanaged[Cdecl]) funcTable[0xAFC976FD0580C7B3UL]; var success = false; fn__setPedUpperBodyDamageOnly(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public bool IsPedSittingInVehicle(IPlayer ped, int vehicle) => IsPedSittingInVehicle(ped.ScriptId, vehicle); - public bool IsPedSittingInVehicle(int ped, IVehicle vehicle) => IsPedSittingInVehicle(ped, vehicle.ScriptId); + public bool IsPedSittingInVehicle(IPlayer ped, uint vehicle) => IsPedSittingInVehicle(ped.ScriptId, vehicle); + public bool IsPedSittingInVehicle(uint ped, IVehicle vehicle) => IsPedSittingInVehicle(ped, vehicle.ScriptId); public bool IsPedSittingInVehicle(IPlayer ped, IVehicle vehicle) => IsPedSittingInVehicle(ped.ScriptId, vehicle.ScriptId); - public bool IsPedSittingInVehicle(int _ped, int _vehicle) + public bool IsPedSittingInVehicle(uint _ped, uint _vehicle) { unsafe { - if (fn__isPedSittingInVehicle == null) fn__isPedSittingInVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xA808AA1D79230FC2UL]; + if (fn__isPedSittingInVehicle == null) fn__isPedSittingInVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xA808AA1D79230FC2UL]; var success = false; var result = fn__isPedSittingInVehicle(&success, _ped, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -76073,10 +76060,10 @@ public bool IsPedSittingInVehicle(int _ped, int _vehicle) } public bool IsPedSittingInAnyVehicle(IPlayer ped) => IsPedSittingInAnyVehicle(ped.ScriptId); - public bool IsPedSittingInAnyVehicle(int _ped) + public bool IsPedSittingInAnyVehicle(uint _ped) { unsafe { - if (fn__isPedSittingInAnyVehicle == null) fn__isPedSittingInAnyVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x826AA586EDB9FEF8UL]; + if (fn__isPedSittingInAnyVehicle == null) fn__isPedSittingInAnyVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x826AA586EDB9FEF8UL]; var success = false; var result = fn__isPedSittingInAnyVehicle(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76085,10 +76072,10 @@ public bool IsPedSittingInAnyVehicle(int _ped) } public bool IsPedOnFoot(IPlayer ped) => IsPedOnFoot(ped.ScriptId); - public bool IsPedOnFoot(int _ped) + public bool IsPedOnFoot(uint _ped) { unsafe { - if (fn__isPedOnFoot == null) fn__isPedOnFoot = (delegate* unmanaged[Cdecl]) funcTable[0x01FEE67DB37F59B2UL]; + if (fn__isPedOnFoot == null) fn__isPedOnFoot = (delegate* unmanaged[Cdecl]) funcTable[0x01FEE67DB37F59B2UL]; var success = false; var result = fn__isPedOnFoot(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76097,10 +76084,10 @@ public bool IsPedOnFoot(int _ped) } public bool IsPedOnAnyBike(IPlayer ped) => IsPedOnAnyBike(ped.ScriptId); - public bool IsPedOnAnyBike(int _ped) + public bool IsPedOnAnyBike(uint _ped) { unsafe { - if (fn__isPedOnAnyBike == null) fn__isPedOnAnyBike = (delegate* unmanaged[Cdecl]) funcTable[0x94495889E22C6479UL]; + if (fn__isPedOnAnyBike == null) fn__isPedOnAnyBike = (delegate* unmanaged[Cdecl]) funcTable[0x94495889E22C6479UL]; var success = false; var result = fn__isPedOnAnyBike(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76109,10 +76096,10 @@ public bool IsPedOnAnyBike(int _ped) } public bool IsPedPlantingBomb(IPlayer ped) => IsPedPlantingBomb(ped.ScriptId); - public bool IsPedPlantingBomb(int _ped) + public bool IsPedPlantingBomb(uint _ped) { unsafe { - if (fn__isPedPlantingBomb == null) fn__isPedPlantingBomb = (delegate* unmanaged[Cdecl]) funcTable[0xC70B5FAE151982D8UL]; + if (fn__isPedPlantingBomb == null) fn__isPedPlantingBomb = (delegate* unmanaged[Cdecl]) funcTable[0xC70B5FAE151982D8UL]; var success = false; var result = fn__isPedPlantingBomb(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76121,10 +76108,10 @@ public bool IsPedPlantingBomb(int _ped) } public Vector3 GetDeadPedPickupCoords(IPlayer ped, float p1, float p2) => GetDeadPedPickupCoords(ped.ScriptId, p1, p2); - public Vector3 GetDeadPedPickupCoords(int _ped, float _p1, float _p2) + public Vector3 GetDeadPedPickupCoords(uint _ped, float _p1, float _p2) { unsafe { - if (fn__getDeadPedPickupCoords == null) fn__getDeadPedPickupCoords = (delegate* unmanaged[Cdecl]) funcTable[0xCD5003B097200F36UL]; + if (fn__getDeadPedPickupCoords == null) fn__getDeadPedPickupCoords = (delegate* unmanaged[Cdecl]) funcTable[0xCD5003B097200F36UL]; var success = false; var result = fn__getDeadPedPickupCoords(&success, _ped, _p1, _p2); if (!success) throw new Exception("Native execution failed"); @@ -76133,10 +76120,10 @@ public Vector3 GetDeadPedPickupCoords(int _ped, float _p1, float _p2) } public bool IsPedInAnyBoat(IPlayer ped) => IsPedInAnyBoat(ped.ScriptId); - public bool IsPedInAnyBoat(int _ped) + public bool IsPedInAnyBoat(uint _ped) { unsafe { - if (fn__isPedInAnyBoat == null) fn__isPedInAnyBoat = (delegate* unmanaged[Cdecl]) funcTable[0x2E0E1C2B4F6CB339UL]; + if (fn__isPedInAnyBoat == null) fn__isPedInAnyBoat = (delegate* unmanaged[Cdecl]) funcTable[0x2E0E1C2B4F6CB339UL]; var success = false; var result = fn__isPedInAnyBoat(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76145,10 +76132,10 @@ public bool IsPedInAnyBoat(int _ped) } public bool IsPedInAnySub(IPlayer ped) => IsPedInAnySub(ped.ScriptId); - public bool IsPedInAnySub(int _ped) + public bool IsPedInAnySub(uint _ped) { unsafe { - if (fn__isPedInAnySub == null) fn__isPedInAnySub = (delegate* unmanaged[Cdecl]) funcTable[0xFBFC01CCFB35D99EUL]; + if (fn__isPedInAnySub == null) fn__isPedInAnySub = (delegate* unmanaged[Cdecl]) funcTable[0xFBFC01CCFB35D99EUL]; var success = false; var result = fn__isPedInAnySub(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76157,10 +76144,10 @@ public bool IsPedInAnySub(int _ped) } public bool IsPedInAnyHeli(IPlayer ped) => IsPedInAnyHeli(ped.ScriptId); - public bool IsPedInAnyHeli(int _ped) + public bool IsPedInAnyHeli(uint _ped) { unsafe { - if (fn__isPedInAnyHeli == null) fn__isPedInAnyHeli = (delegate* unmanaged[Cdecl]) funcTable[0x298B91AE825E5705UL]; + if (fn__isPedInAnyHeli == null) fn__isPedInAnyHeli = (delegate* unmanaged[Cdecl]) funcTable[0x298B91AE825E5705UL]; var success = false; var result = fn__isPedInAnyHeli(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76169,10 +76156,10 @@ public bool IsPedInAnyHeli(int _ped) } public bool IsPedInAnyPlane(IPlayer ped) => IsPedInAnyPlane(ped.ScriptId); - public bool IsPedInAnyPlane(int _ped) + public bool IsPedInAnyPlane(uint _ped) { unsafe { - if (fn__isPedInAnyPlane == null) fn__isPedInAnyPlane = (delegate* unmanaged[Cdecl]) funcTable[0x5FFF4CFC74D8FB80UL]; + if (fn__isPedInAnyPlane == null) fn__isPedInAnyPlane = (delegate* unmanaged[Cdecl]) funcTable[0x5FFF4CFC74D8FB80UL]; var success = false; var result = fn__isPedInAnyPlane(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76181,10 +76168,10 @@ public bool IsPedInAnyPlane(int _ped) } public bool IsPedInFlyingVehicle(IPlayer ped) => IsPedInFlyingVehicle(ped.ScriptId); - public bool IsPedInFlyingVehicle(int _ped) + public bool IsPedInFlyingVehicle(uint _ped) { unsafe { - if (fn__isPedInFlyingVehicle == null) fn__isPedInFlyingVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x9134873537FA419CUL]; + if (fn__isPedInFlyingVehicle == null) fn__isPedInFlyingVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x9134873537FA419CUL]; var success = false; var result = fn__isPedInFlyingVehicle(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76193,10 +76180,10 @@ public bool IsPedInFlyingVehicle(int _ped) } public void SetPedDiesInWater(IPlayer ped, bool toggle) => SetPedDiesInWater(ped.ScriptId, toggle); - public void SetPedDiesInWater(int _ped, bool _toggle) + public void SetPedDiesInWater(uint _ped, bool _toggle) { unsafe { - if (fn__setPedDiesInWater == null) fn__setPedDiesInWater = (delegate* unmanaged[Cdecl]) funcTable[0x56CEF0AC79073BDEUL]; + if (fn__setPedDiesInWater == null) fn__setPedDiesInWater = (delegate* unmanaged[Cdecl]) funcTable[0x56CEF0AC79073BDEUL]; var success = false; fn__setPedDiesInWater(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -76204,10 +76191,10 @@ public void SetPedDiesInWater(int _ped, bool _toggle) } public bool GetPedDiesInWater(IPlayer ped) => GetPedDiesInWater(ped.ScriptId); - public bool GetPedDiesInWater(int _ped) + public bool GetPedDiesInWater(uint _ped) { unsafe { - if (fn__getPedDiesInWater == null) fn__getPedDiesInWater = (delegate* unmanaged[Cdecl]) funcTable[0x65671A4FB8218930UL]; + if (fn__getPedDiesInWater == null) fn__getPedDiesInWater = (delegate* unmanaged[Cdecl]) funcTable[0x65671A4FB8218930UL]; var success = false; var result = fn__getPedDiesInWater(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76216,10 +76203,10 @@ public bool GetPedDiesInWater(int _ped) } public void SetPedDiesInSinkingVehicle(IPlayer ped, bool toggle) => SetPedDiesInSinkingVehicle(ped.ScriptId, toggle); - public void SetPedDiesInSinkingVehicle(int _ped, bool _toggle) + public void SetPedDiesInSinkingVehicle(uint _ped, bool _toggle) { unsafe { - if (fn__setPedDiesInSinkingVehicle == null) fn__setPedDiesInSinkingVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xD718A22995E2B4BCUL]; + if (fn__setPedDiesInSinkingVehicle == null) fn__setPedDiesInSinkingVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xD718A22995E2B4BCUL]; var success = false; fn__setPedDiesInSinkingVehicle(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -76227,10 +76214,10 @@ public void SetPedDiesInSinkingVehicle(int _ped, bool _toggle) } public int GetPedArmour(IPlayer ped) => GetPedArmour(ped.ScriptId); - public int GetPedArmour(int _ped) + public int GetPedArmour(uint _ped) { unsafe { - if (fn__getPedArmour == null) fn__getPedArmour = (delegate* unmanaged[Cdecl]) funcTable[0x9483AF821605B1D8UL]; + if (fn__getPedArmour == null) fn__getPedArmour = (delegate* unmanaged[Cdecl]) funcTable[0x9483AF821605B1D8UL]; var success = false; var result = fn__getPedArmour(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76239,10 +76226,10 @@ public int GetPedArmour(int _ped) } public void SetPedStayInVehicleWhenJacked(IPlayer ped, bool toggle) => SetPedStayInVehicleWhenJacked(ped.ScriptId, toggle); - public void SetPedStayInVehicleWhenJacked(int _ped, bool _toggle) + public void SetPedStayInVehicleWhenJacked(uint _ped, bool _toggle) { unsafe { - if (fn__setPedStayInVehicleWhenJacked == null) fn__setPedStayInVehicleWhenJacked = (delegate* unmanaged[Cdecl]) funcTable[0xEDF4079F9D54C9A1UL]; + if (fn__setPedStayInVehicleWhenJacked == null) fn__setPedStayInVehicleWhenJacked = (delegate* unmanaged[Cdecl]) funcTable[0xEDF4079F9D54C9A1UL]; var success = false; fn__setPedStayInVehicleWhenJacked(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -76250,10 +76237,10 @@ public void SetPedStayInVehicleWhenJacked(int _ped, bool _toggle) } public void SetPedCanBeShotInVehicle(IPlayer ped, bool toggle) => SetPedCanBeShotInVehicle(ped.ScriptId, toggle); - public void SetPedCanBeShotInVehicle(int _ped, bool _toggle) + public void SetPedCanBeShotInVehicle(uint _ped, bool _toggle) { unsafe { - if (fn__setPedCanBeShotInVehicle == null) fn__setPedCanBeShotInVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xC7EF1BA83230BA07UL]; + if (fn__setPedCanBeShotInVehicle == null) fn__setPedCanBeShotInVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xC7EF1BA83230BA07UL]; var success = false; fn__setPedCanBeShotInVehicle(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -76261,10 +76248,10 @@ public void SetPedCanBeShotInVehicle(int _ped, bool _toggle) } public bool GetPedLastDamageBone(IPlayer ped, ref int outBone) => GetPedLastDamageBone(ped.ScriptId, ref outBone); - public bool GetPedLastDamageBone(int _ped, ref int _outBone) + public bool GetPedLastDamageBone(uint _ped, ref int _outBone) { unsafe { - if (fn__getPedLastDamageBone == null) fn__getPedLastDamageBone = (delegate* unmanaged[Cdecl]) funcTable[0xD75960F6BD9EA49CUL]; + if (fn__getPedLastDamageBone == null) fn__getPedLastDamageBone = (delegate* unmanaged[Cdecl]) funcTable[0xD75960F6BD9EA49CUL]; var success = false; var ref_outBone = _outBone; var result = fn__getPedLastDamageBone(&success, _ped, &ref_outBone); @@ -76275,10 +76262,10 @@ public bool GetPedLastDamageBone(int _ped, ref int _outBone) } public void ClearPedLastDamageBone(IPlayer ped) => ClearPedLastDamageBone(ped.ScriptId); - public void ClearPedLastDamageBone(int _ped) + public void ClearPedLastDamageBone(uint _ped) { unsafe { - if (fn__clearPedLastDamageBone == null) fn__clearPedLastDamageBone = (delegate* unmanaged[Cdecl]) funcTable[0x8EF6B7AC68E2F01BUL]; + if (fn__clearPedLastDamageBone == null) fn__clearPedLastDamageBone = (delegate* unmanaged[Cdecl]) funcTable[0x8EF6B7AC68E2F01BUL]; var success = false; fn__clearPedLastDamageBone(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76326,10 +76313,10 @@ public void ResetAiMeleeWeaponDamageModifier() } public void SetTreatAsAmbientPedForDriverLockon(IPlayer ped, bool p1) => SetTreatAsAmbientPedForDriverLockon(ped.ScriptId, p1); - public void SetTreatAsAmbientPedForDriverLockon(int _ped, bool _p1) + public void SetTreatAsAmbientPedForDriverLockon(uint _ped, bool _p1) { unsafe { - if (fn__setTreatAsAmbientPedForDriverLockon == null) fn__setTreatAsAmbientPedForDriverLockon = (delegate* unmanaged[Cdecl]) funcTable[0x2F3C3D9F50681DE4UL]; + if (fn__setTreatAsAmbientPedForDriverLockon == null) fn__setTreatAsAmbientPedForDriverLockon = (delegate* unmanaged[Cdecl]) funcTable[0x2F3C3D9F50681DE4UL]; var success = false; fn__setTreatAsAmbientPedForDriverLockon(&success, _ped, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -76337,10 +76324,10 @@ public void SetTreatAsAmbientPedForDriverLockon(int _ped, bool _p1) } public void SetPedCanBeTargetted(IPlayer ped, bool toggle) => SetPedCanBeTargetted(ped.ScriptId, toggle); - public void SetPedCanBeTargetted(int _ped, bool _toggle) + public void SetPedCanBeTargetted(uint _ped, bool _toggle) { unsafe { - if (fn__setPedCanBeTargetted == null) fn__setPedCanBeTargetted = (delegate* unmanaged[Cdecl]) funcTable[0x63F58F7C80513AADUL]; + if (fn__setPedCanBeTargetted == null) fn__setPedCanBeTargetted = (delegate* unmanaged[Cdecl]) funcTable[0x63F58F7C80513AADUL]; var success = false; fn__setPedCanBeTargetted(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -76348,23 +76335,23 @@ public void SetPedCanBeTargetted(int _ped, bool _toggle) } public void SetPedCanBeTargettedByTeam(IPlayer ped, int team, bool toggle) => SetPedCanBeTargettedByTeam(ped.ScriptId, team, toggle); - public void SetPedCanBeTargettedByTeam(int _ped, int _team, bool _toggle) + public void SetPedCanBeTargettedByTeam(uint _ped, int _team, bool _toggle) { unsafe { - if (fn__setPedCanBeTargettedByTeam == null) fn__setPedCanBeTargettedByTeam = (delegate* unmanaged[Cdecl]) funcTable[0xBF1CA77833E58F2CUL]; + if (fn__setPedCanBeTargettedByTeam == null) fn__setPedCanBeTargettedByTeam = (delegate* unmanaged[Cdecl]) funcTable[0xBF1CA77833E58F2CUL]; var success = false; fn__setPedCanBeTargettedByTeam(&success, _ped, _team, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void SetPedCanBeTargettedByPlayer(IPlayer ped, int player, bool toggle) => SetPedCanBeTargettedByPlayer(ped.ScriptId, player, toggle); - public void SetPedCanBeTargettedByPlayer(int ped, IPlayer player, bool toggle) => SetPedCanBeTargettedByPlayer(ped, player.ScriptId, toggle); + public void SetPedCanBeTargettedByPlayer(IPlayer ped, uint player, bool toggle) => SetPedCanBeTargettedByPlayer(ped.ScriptId, player, toggle); + public void SetPedCanBeTargettedByPlayer(uint ped, IPlayer player, bool toggle) => SetPedCanBeTargettedByPlayer(ped, player.ScriptId, toggle); public void SetPedCanBeTargettedByPlayer(IPlayer ped, IPlayer player, bool toggle) => SetPedCanBeTargettedByPlayer(ped.ScriptId, player.ScriptId, toggle); - public void SetPedCanBeTargettedByPlayer(int _ped, int _player, bool _toggle) + public void SetPedCanBeTargettedByPlayer(uint _ped, uint _player, bool _toggle) { unsafe { - if (fn__setPedCanBeTargettedByPlayer == null) fn__setPedCanBeTargettedByPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x66B57B72E0836A76UL]; + if (fn__setPedCanBeTargettedByPlayer == null) fn__setPedCanBeTargettedByPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x66B57B72E0836A76UL]; var success = false; fn__setPedCanBeTargettedByPlayer(&success, _ped, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -76372,10 +76359,10 @@ public void SetPedCanBeTargettedByPlayer(int _ped, int _player, bool _toggle) } public void SetAllowLockonToPedIfFriendly(IPlayer ped, bool toggle) => SetAllowLockonToPedIfFriendly(ped.ScriptId, toggle); - public void SetAllowLockonToPedIfFriendly(int _ped, bool _toggle) + public void SetAllowLockonToPedIfFriendly(uint _ped, bool _toggle) { unsafe { - if (fn__setAllowLockonToPedIfFriendly == null) fn__setAllowLockonToPedIfFriendly = (delegate* unmanaged[Cdecl]) funcTable[0x061CB768363D6424UL]; + if (fn__setAllowLockonToPedIfFriendly == null) fn__setAllowLockonToPedIfFriendly = (delegate* unmanaged[Cdecl]) funcTable[0x061CB768363D6424UL]; var success = false; fn__setAllowLockonToPedIfFriendly(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -76383,10 +76370,10 @@ public void SetAllowLockonToPedIfFriendly(int _ped, bool _toggle) } public void SetUseCameraHeadingForDesiredDirectionLockOnTest(IPlayer ped, bool toggle) => SetUseCameraHeadingForDesiredDirectionLockOnTest(ped.ScriptId, toggle); - public void SetUseCameraHeadingForDesiredDirectionLockOnTest(int _ped, bool _toggle) + public void SetUseCameraHeadingForDesiredDirectionLockOnTest(uint _ped, bool _toggle) { unsafe { - if (fn__setUseCameraHeadingForDesiredDirectionLockOnTest == null) fn__setUseCameraHeadingForDesiredDirectionLockOnTest = (delegate* unmanaged[Cdecl]) funcTable[0xFD325494792302D7UL]; + if (fn__setUseCameraHeadingForDesiredDirectionLockOnTest == null) fn__setUseCameraHeadingForDesiredDirectionLockOnTest = (delegate* unmanaged[Cdecl]) funcTable[0xFD325494792302D7UL]; var success = false; fn__setUseCameraHeadingForDesiredDirectionLockOnTest(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -76394,10 +76381,10 @@ public void SetUseCameraHeadingForDesiredDirectionLockOnTest(int _ped, bool _tog } public bool IsPedInAnyPoliceVehicle(IPlayer ped) => IsPedInAnyPoliceVehicle(ped.ScriptId); - public bool IsPedInAnyPoliceVehicle(int _ped) + public bool IsPedInAnyPoliceVehicle(uint _ped) { unsafe { - if (fn__isPedInAnyPoliceVehicle == null) fn__isPedInAnyPoliceVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x0BD04E29640C9C12UL]; + if (fn__isPedInAnyPoliceVehicle == null) fn__isPedInAnyPoliceVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x0BD04E29640C9C12UL]; var success = false; var result = fn__isPedInAnyPoliceVehicle(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76406,10 +76393,10 @@ public bool IsPedInAnyPoliceVehicle(int _ped) } public void ForcePedToOpenParachute(IPlayer ped) => ForcePedToOpenParachute(ped.ScriptId); - public void ForcePedToOpenParachute(int _ped) + public void ForcePedToOpenParachute(uint _ped) { unsafe { - if (fn__forcePedToOpenParachute == null) fn__forcePedToOpenParachute = (delegate* unmanaged[Cdecl]) funcTable[0x16E42E800B472221UL]; + if (fn__forcePedToOpenParachute == null) fn__forcePedToOpenParachute = (delegate* unmanaged[Cdecl]) funcTable[0x16E42E800B472221UL]; var success = false; fn__forcePedToOpenParachute(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76417,10 +76404,10 @@ public void ForcePedToOpenParachute(int _ped) } public bool IsPedInParachuteFreeFall(IPlayer ped) => IsPedInParachuteFreeFall(ped.ScriptId); - public bool IsPedInParachuteFreeFall(int _ped) + public bool IsPedInParachuteFreeFall(uint _ped) { unsafe { - if (fn__isPedInParachuteFreeFall == null) fn__isPedInParachuteFreeFall = (delegate* unmanaged[Cdecl]) funcTable[0x7DCE8BDA0F1C1200UL]; + if (fn__isPedInParachuteFreeFall == null) fn__isPedInParachuteFreeFall = (delegate* unmanaged[Cdecl]) funcTable[0x7DCE8BDA0F1C1200UL]; var success = false; var result = fn__isPedInParachuteFreeFall(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76429,10 +76416,10 @@ public bool IsPedInParachuteFreeFall(int _ped) } public bool IsPedFalling(IPlayer ped) => IsPedFalling(ped.ScriptId); - public bool IsPedFalling(int _ped) + public bool IsPedFalling(uint _ped) { unsafe { - if (fn__isPedFalling == null) fn__isPedFalling = (delegate* unmanaged[Cdecl]) funcTable[0xFB92A102F1C4DFA3UL]; + if (fn__isPedFalling == null) fn__isPedFalling = (delegate* unmanaged[Cdecl]) funcTable[0xFB92A102F1C4DFA3UL]; var success = false; var result = fn__isPedFalling(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76441,10 +76428,10 @@ public bool IsPedFalling(int _ped) } public bool IsPedJumping(IPlayer ped) => IsPedJumping(ped.ScriptId); - public bool IsPedJumping(int _ped) + public bool IsPedJumping(uint _ped) { unsafe { - if (fn__isPedJumping == null) fn__isPedJumping = (delegate* unmanaged[Cdecl]) funcTable[0xCEDABC5900A0BF97UL]; + if (fn__isPedJumping == null) fn__isPedJumping = (delegate* unmanaged[Cdecl]) funcTable[0xCEDABC5900A0BF97UL]; var success = false; var result = fn__isPedJumping(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76475,10 +76462,10 @@ public bool IsPedDoingABeastJump(int _p0) } public bool IsPedClimbing(IPlayer ped) => IsPedClimbing(ped.ScriptId); - public bool IsPedClimbing(int _ped) + public bool IsPedClimbing(uint _ped) { unsafe { - if (fn__isPedClimbing == null) fn__isPedClimbing = (delegate* unmanaged[Cdecl]) funcTable[0x53E8CB4F48BFE623UL]; + if (fn__isPedClimbing == null) fn__isPedClimbing = (delegate* unmanaged[Cdecl]) funcTable[0x53E8CB4F48BFE623UL]; var success = false; var result = fn__isPedClimbing(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76487,10 +76474,10 @@ public bool IsPedClimbing(int _ped) } public bool IsPedVaulting(IPlayer ped) => IsPedVaulting(ped.ScriptId); - public bool IsPedVaulting(int _ped) + public bool IsPedVaulting(uint _ped) { unsafe { - if (fn__isPedVaulting == null) fn__isPedVaulting = (delegate* unmanaged[Cdecl]) funcTable[0x117C70D1F5730B5EUL]; + if (fn__isPedVaulting == null) fn__isPedVaulting = (delegate* unmanaged[Cdecl]) funcTable[0x117C70D1F5730B5EUL]; var success = false; var result = fn__isPedVaulting(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76499,10 +76486,10 @@ public bool IsPedVaulting(int _ped) } public bool IsPedDiving(IPlayer ped) => IsPedDiving(ped.ScriptId); - public bool IsPedDiving(int _ped) + public bool IsPedDiving(uint _ped) { unsafe { - if (fn__isPedDiving == null) fn__isPedDiving = (delegate* unmanaged[Cdecl]) funcTable[0x5527B8246FEF9B11UL]; + if (fn__isPedDiving == null) fn__isPedDiving = (delegate* unmanaged[Cdecl]) funcTable[0x5527B8246FEF9B11UL]; var success = false; var result = fn__isPedDiving(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76511,10 +76498,10 @@ public bool IsPedDiving(int _ped) } public bool IsPedJumpingOutOfVehicle(IPlayer ped) => IsPedJumpingOutOfVehicle(ped.ScriptId); - public bool IsPedJumpingOutOfVehicle(int _ped) + public bool IsPedJumpingOutOfVehicle(uint _ped) { unsafe { - if (fn__isPedJumpingOutOfVehicle == null) fn__isPedJumpingOutOfVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x433DDFFE2044B636UL]; + if (fn__isPedJumpingOutOfVehicle == null) fn__isPedJumpingOutOfVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x433DDFFE2044B636UL]; var success = false; var result = fn__isPedJumpingOutOfVehicle(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76523,10 +76510,10 @@ public bool IsPedJumpingOutOfVehicle(int _ped) } public bool IsPedOpeningDoor(IPlayer ped) => IsPedOpeningDoor(ped.ScriptId); - public bool IsPedOpeningDoor(int _ped) + public bool IsPedOpeningDoor(uint _ped) { unsafe { - if (fn__isPedOpeningDoor == null) fn__isPedOpeningDoor = (delegate* unmanaged[Cdecl]) funcTable[0x26AF0E8E30BD2A2CUL]; + if (fn__isPedOpeningDoor == null) fn__isPedOpeningDoor = (delegate* unmanaged[Cdecl]) funcTable[0x26AF0E8E30BD2A2CUL]; var success = false; var result = fn__isPedOpeningDoor(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76535,10 +76522,10 @@ public bool IsPedOpeningDoor(int _ped) } public int GetPedParachuteState(IPlayer ped) => GetPedParachuteState(ped.ScriptId); - public int GetPedParachuteState(int _ped) + public int GetPedParachuteState(uint _ped) { unsafe { - if (fn__getPedParachuteState == null) fn__getPedParachuteState = (delegate* unmanaged[Cdecl]) funcTable[0x79CFD9827CC979B6UL]; + if (fn__getPedParachuteState == null) fn__getPedParachuteState = (delegate* unmanaged[Cdecl]) funcTable[0x79CFD9827CC979B6UL]; var success = false; var result = fn__getPedParachuteState(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76547,10 +76534,10 @@ public int GetPedParachuteState(int _ped) } public int GetPedParachuteLandingType(IPlayer ped) => GetPedParachuteLandingType(ped.ScriptId); - public int GetPedParachuteLandingType(int _ped) + public int GetPedParachuteLandingType(uint _ped) { unsafe { - if (fn__getPedParachuteLandingType == null) fn__getPedParachuteLandingType = (delegate* unmanaged[Cdecl]) funcTable[0x8B9F1FC6AE8166C0UL]; + if (fn__getPedParachuteLandingType == null) fn__getPedParachuteLandingType = (delegate* unmanaged[Cdecl]) funcTable[0x8B9F1FC6AE8166C0UL]; var success = false; var result = fn__getPedParachuteLandingType(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76559,10 +76546,10 @@ public int GetPedParachuteLandingType(int _ped) } public void SetPedParachuteTintIndex(IPlayer ped, int tintIndex) => SetPedParachuteTintIndex(ped.ScriptId, tintIndex); - public void SetPedParachuteTintIndex(int _ped, int _tintIndex) + public void SetPedParachuteTintIndex(uint _ped, int _tintIndex) { unsafe { - if (fn__setPedParachuteTintIndex == null) fn__setPedParachuteTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0x333FC8DB079B7186UL]; + if (fn__setPedParachuteTintIndex == null) fn__setPedParachuteTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0x333FC8DB079B7186UL]; var success = false; fn__setPedParachuteTintIndex(&success, _ped, _tintIndex); if (!success) throw new Exception("Native execution failed"); @@ -76570,10 +76557,10 @@ public void SetPedParachuteTintIndex(int _ped, int _tintIndex) } public void GetPedParachuteTintIndex(IPlayer ped, ref int outTintIndex) => GetPedParachuteTintIndex(ped.ScriptId, ref outTintIndex); - public void GetPedParachuteTintIndex(int _ped, ref int _outTintIndex) + public void GetPedParachuteTintIndex(uint _ped, ref int _outTintIndex) { unsafe { - if (fn__getPedParachuteTintIndex == null) fn__getPedParachuteTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xEAF5F7E5AE7C6C9DUL]; + if (fn__getPedParachuteTintIndex == null) fn__getPedParachuteTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xEAF5F7E5AE7C6C9DUL]; var success = false; var ref_outTintIndex = _outTintIndex; fn__getPedParachuteTintIndex(&success, _ped, &ref_outTintIndex); @@ -76583,21 +76570,21 @@ public void GetPedParachuteTintIndex(int _ped, ref int _outTintIndex) } public void SetPedReserveParachuteTintIndex(IPlayer ped, int p1) => SetPedReserveParachuteTintIndex(ped.ScriptId, p1); - public void SetPedReserveParachuteTintIndex(int _ped, int _p1) + public void SetPedReserveParachuteTintIndex(uint _ped, int _p1) { unsafe { - if (fn__setPedReserveParachuteTintIndex == null) fn__setPedReserveParachuteTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xE88DA0751C22A2ADUL]; + if (fn__setPedReserveParachuteTintIndex == null) fn__setPedReserveParachuteTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xE88DA0751C22A2ADUL]; var success = false; fn__setPedReserveParachuteTintIndex(&success, _ped, _p1); if (!success) throw new Exception("Native execution failed"); } } - public int CreateParachuteBagObject(IPlayer ped, bool p1, bool p2) => CreateParachuteBagObject(ped.ScriptId, p1, p2); - public int CreateParachuteBagObject(int _ped, bool _p1, bool _p2) + public uint CreateParachuteBagObject(IPlayer ped, bool p1, bool p2) => CreateParachuteBagObject(ped.ScriptId, p1, p2); + public uint CreateParachuteBagObject(uint _ped, bool _p1, bool _p2) { unsafe { - if (fn__createParachuteBagObject == null) fn__createParachuteBagObject = (delegate* unmanaged[Cdecl]) funcTable[0x8C4F3BF23B6237DBUL]; + if (fn__createParachuteBagObject == null) fn__createParachuteBagObject = (delegate* unmanaged[Cdecl]) funcTable[0x8C4F3BF23B6237DBUL]; var success = false; var result = fn__createParachuteBagObject(&success, _ped, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -76606,10 +76593,10 @@ public int CreateParachuteBagObject(int _ped, bool _p1, bool _p2) } public void SetPedDucking(IPlayer ped, bool toggle) => SetPedDucking(ped.ScriptId, toggle); - public void SetPedDucking(int _ped, bool _toggle) + public void SetPedDucking(uint _ped, bool _toggle) { unsafe { - if (fn__setPedDucking == null) fn__setPedDucking = (delegate* unmanaged[Cdecl]) funcTable[0x030983CA930B692DUL]; + if (fn__setPedDucking == null) fn__setPedDucking = (delegate* unmanaged[Cdecl]) funcTable[0x030983CA930B692DUL]; var success = false; fn__setPedDucking(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -76617,10 +76604,10 @@ public void SetPedDucking(int _ped, bool _toggle) } public bool IsPedDucking(IPlayer ped) => IsPedDucking(ped.ScriptId); - public bool IsPedDucking(int _ped) + public bool IsPedDucking(uint _ped) { unsafe { - if (fn__isPedDucking == null) fn__isPedDucking = (delegate* unmanaged[Cdecl]) funcTable[0xD125AE748725C6BCUL]; + if (fn__isPedDucking == null) fn__isPedDucking = (delegate* unmanaged[Cdecl]) funcTable[0xD125AE748725C6BCUL]; var success = false; var result = fn__isPedDucking(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76629,10 +76616,10 @@ public bool IsPedDucking(int _ped) } public bool IsPedInAnyTaxi(IPlayer ped) => IsPedInAnyTaxi(ped.ScriptId); - public bool IsPedInAnyTaxi(int _ped) + public bool IsPedInAnyTaxi(uint _ped) { unsafe { - if (fn__isPedInAnyTaxi == null) fn__isPedInAnyTaxi = (delegate* unmanaged[Cdecl]) funcTable[0x6E575D6A898AB852UL]; + if (fn__isPedInAnyTaxi == null) fn__isPedInAnyTaxi = (delegate* unmanaged[Cdecl]) funcTable[0x6E575D6A898AB852UL]; var success = false; var result = fn__isPedInAnyTaxi(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76641,10 +76628,10 @@ public bool IsPedInAnyTaxi(int _ped) } public void SetPedIdRange(IPlayer ped, float value) => SetPedIdRange(ped.ScriptId, value); - public void SetPedIdRange(int _ped, float _value) + public void SetPedIdRange(uint _ped, float _value) { unsafe { - if (fn__setPedIdRange == null) fn__setPedIdRange = (delegate* unmanaged[Cdecl]) funcTable[0xF107E836A70DCE05UL]; + if (fn__setPedIdRange == null) fn__setPedIdRange = (delegate* unmanaged[Cdecl]) funcTable[0xF107E836A70DCE05UL]; var success = false; fn__setPedIdRange(&success, _ped, _value); if (!success) throw new Exception("Native execution failed"); @@ -76652,10 +76639,10 @@ public void SetPedIdRange(int _ped, float _value) } public void SetPedHighlyPerceptive(IPlayer ped, bool toggle) => SetPedHighlyPerceptive(ped.ScriptId, toggle); - public void SetPedHighlyPerceptive(int _ped, bool _toggle) + public void SetPedHighlyPerceptive(uint _ped, bool _toggle) { unsafe { - if (fn__setPedHighlyPerceptive == null) fn__setPedHighlyPerceptive = (delegate* unmanaged[Cdecl]) funcTable[0x52D59AB61DDC05DDUL]; + if (fn__setPedHighlyPerceptive == null) fn__setPedHighlyPerceptive = (delegate* unmanaged[Cdecl]) funcTable[0x52D59AB61DDC05DDUL]; var success = false; fn__setPedHighlyPerceptive(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -76673,10 +76660,10 @@ public void SetCopPerceptionOverrides(float _seeingRange, float _seeingRangePeri } public void SetPedInjuredOnGroundBehaviour(IPlayer ped, float p1) => SetPedInjuredOnGroundBehaviour(ped.ScriptId, p1); - public void SetPedInjuredOnGroundBehaviour(int _ped, float _p1) + public void SetPedInjuredOnGroundBehaviour(uint _ped, float _p1) { unsafe { - if (fn__setPedInjuredOnGroundBehaviour == null) fn__setPedInjuredOnGroundBehaviour = (delegate* unmanaged[Cdecl]) funcTable[0xEC4B4B3B9908052AUL]; + if (fn__setPedInjuredOnGroundBehaviour == null) fn__setPedInjuredOnGroundBehaviour = (delegate* unmanaged[Cdecl]) funcTable[0xEC4B4B3B9908052AUL]; var success = false; fn__setPedInjuredOnGroundBehaviour(&success, _ped, _p1); if (!success) throw new Exception("Native execution failed"); @@ -76684,10 +76671,10 @@ public void SetPedInjuredOnGroundBehaviour(int _ped, float _p1) } public void DisablePedInjuredOnGroundBehaviour(IPlayer ped) => DisablePedInjuredOnGroundBehaviour(ped.ScriptId); - public void DisablePedInjuredOnGroundBehaviour(int _ped) + public void DisablePedInjuredOnGroundBehaviour(uint _ped) { unsafe { - if (fn__disablePedInjuredOnGroundBehaviour == null) fn__disablePedInjuredOnGroundBehaviour = (delegate* unmanaged[Cdecl]) funcTable[0x733C87D4CE22BEA2UL]; + if (fn__disablePedInjuredOnGroundBehaviour == null) fn__disablePedInjuredOnGroundBehaviour = (delegate* unmanaged[Cdecl]) funcTable[0x733C87D4CE22BEA2UL]; var success = false; fn__disablePedInjuredOnGroundBehaviour(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76695,10 +76682,10 @@ public void DisablePedInjuredOnGroundBehaviour(int _ped) } public void SetPedSeeingRange(IPlayer ped, float value) => SetPedSeeingRange(ped.ScriptId, value); - public void SetPedSeeingRange(int _ped, float _value) + public void SetPedSeeingRange(uint _ped, float _value) { unsafe { - if (fn__setPedSeeingRange == null) fn__setPedSeeingRange = (delegate* unmanaged[Cdecl]) funcTable[0xF29CF591C4BF6CEEUL]; + if (fn__setPedSeeingRange == null) fn__setPedSeeingRange = (delegate* unmanaged[Cdecl]) funcTable[0xF29CF591C4BF6CEEUL]; var success = false; fn__setPedSeeingRange(&success, _ped, _value); if (!success) throw new Exception("Native execution failed"); @@ -76706,10 +76693,10 @@ public void SetPedSeeingRange(int _ped, float _value) } public void SetPedHearingRange(IPlayer ped, float value) => SetPedHearingRange(ped.ScriptId, value); - public void SetPedHearingRange(int _ped, float _value) + public void SetPedHearingRange(uint _ped, float _value) { unsafe { - if (fn__setPedHearingRange == null) fn__setPedHearingRange = (delegate* unmanaged[Cdecl]) funcTable[0x33A8F7F7D5F7F33CUL]; + if (fn__setPedHearingRange == null) fn__setPedHearingRange = (delegate* unmanaged[Cdecl]) funcTable[0x33A8F7F7D5F7F33CUL]; var success = false; fn__setPedHearingRange(&success, _ped, _value); if (!success) throw new Exception("Native execution failed"); @@ -76717,10 +76704,10 @@ public void SetPedHearingRange(int _ped, float _value) } public void SetPedVisualFieldMinAngle(IPlayer ped, float value) => SetPedVisualFieldMinAngle(ped.ScriptId, value); - public void SetPedVisualFieldMinAngle(int _ped, float _value) + public void SetPedVisualFieldMinAngle(uint _ped, float _value) { unsafe { - if (fn__setPedVisualFieldMinAngle == null) fn__setPedVisualFieldMinAngle = (delegate* unmanaged[Cdecl]) funcTable[0x2DB492222FB21E26UL]; + if (fn__setPedVisualFieldMinAngle == null) fn__setPedVisualFieldMinAngle = (delegate* unmanaged[Cdecl]) funcTable[0x2DB492222FB21E26UL]; var success = false; fn__setPedVisualFieldMinAngle(&success, _ped, _value); if (!success) throw new Exception("Native execution failed"); @@ -76728,10 +76715,10 @@ public void SetPedVisualFieldMinAngle(int _ped, float _value) } public void SetPedVisualFieldMaxAngle(IPlayer ped, float value) => SetPedVisualFieldMaxAngle(ped.ScriptId, value); - public void SetPedVisualFieldMaxAngle(int _ped, float _value) + public void SetPedVisualFieldMaxAngle(uint _ped, float _value) { unsafe { - if (fn__setPedVisualFieldMaxAngle == null) fn__setPedVisualFieldMaxAngle = (delegate* unmanaged[Cdecl]) funcTable[0x70793BDCA1E854D4UL]; + if (fn__setPedVisualFieldMaxAngle == null) fn__setPedVisualFieldMaxAngle = (delegate* unmanaged[Cdecl]) funcTable[0x70793BDCA1E854D4UL]; var success = false; fn__setPedVisualFieldMaxAngle(&success, _ped, _value); if (!success) throw new Exception("Native execution failed"); @@ -76739,10 +76726,10 @@ public void SetPedVisualFieldMaxAngle(int _ped, float _value) } public void SetPedVisualFieldMinElevationAngle(IPlayer ped, float angle) => SetPedVisualFieldMinElevationAngle(ped.ScriptId, angle); - public void SetPedVisualFieldMinElevationAngle(int _ped, float _angle) + public void SetPedVisualFieldMinElevationAngle(uint _ped, float _angle) { unsafe { - if (fn__setPedVisualFieldMinElevationAngle == null) fn__setPedVisualFieldMinElevationAngle = (delegate* unmanaged[Cdecl]) funcTable[0x7A276EB2C224D70FUL]; + if (fn__setPedVisualFieldMinElevationAngle == null) fn__setPedVisualFieldMinElevationAngle = (delegate* unmanaged[Cdecl]) funcTable[0x7A276EB2C224D70FUL]; var success = false; fn__setPedVisualFieldMinElevationAngle(&success, _ped, _angle); if (!success) throw new Exception("Native execution failed"); @@ -76750,10 +76737,10 @@ public void SetPedVisualFieldMinElevationAngle(int _ped, float _angle) } public void SetPedVisualFieldMaxElevationAngle(IPlayer ped, float angle) => SetPedVisualFieldMaxElevationAngle(ped.ScriptId, angle); - public void SetPedVisualFieldMaxElevationAngle(int _ped, float _angle) + public void SetPedVisualFieldMaxElevationAngle(uint _ped, float _angle) { unsafe { - if (fn__setPedVisualFieldMaxElevationAngle == null) fn__setPedVisualFieldMaxElevationAngle = (delegate* unmanaged[Cdecl]) funcTable[0x78D0B67629D75856UL]; + if (fn__setPedVisualFieldMaxElevationAngle == null) fn__setPedVisualFieldMaxElevationAngle = (delegate* unmanaged[Cdecl]) funcTable[0x78D0B67629D75856UL]; var success = false; fn__setPedVisualFieldMaxElevationAngle(&success, _ped, _angle); if (!success) throw new Exception("Native execution failed"); @@ -76761,10 +76748,10 @@ public void SetPedVisualFieldMaxElevationAngle(int _ped, float _angle) } public void SetPedVisualFieldPeripheralRange(IPlayer ped, float range) => SetPedVisualFieldPeripheralRange(ped.ScriptId, range); - public void SetPedVisualFieldPeripheralRange(int _ped, float _range) + public void SetPedVisualFieldPeripheralRange(uint _ped, float _range) { unsafe { - if (fn__setPedVisualFieldPeripheralRange == null) fn__setPedVisualFieldPeripheralRange = (delegate* unmanaged[Cdecl]) funcTable[0x9C74B0BC831B753AUL]; + if (fn__setPedVisualFieldPeripheralRange == null) fn__setPedVisualFieldPeripheralRange = (delegate* unmanaged[Cdecl]) funcTable[0x9C74B0BC831B753AUL]; var success = false; fn__setPedVisualFieldPeripheralRange(&success, _ped, _range); if (!success) throw new Exception("Native execution failed"); @@ -76772,10 +76759,10 @@ public void SetPedVisualFieldPeripheralRange(int _ped, float _range) } public void SetPedVisualFieldCenterAngle(IPlayer ped, float angle) => SetPedVisualFieldCenterAngle(ped.ScriptId, angle); - public void SetPedVisualFieldCenterAngle(int _ped, float _angle) + public void SetPedVisualFieldCenterAngle(uint _ped, float _angle) { unsafe { - if (fn__setPedVisualFieldCenterAngle == null) fn__setPedVisualFieldCenterAngle = (delegate* unmanaged[Cdecl]) funcTable[0x3B6405E8AB34A907UL]; + if (fn__setPedVisualFieldCenterAngle == null) fn__setPedVisualFieldCenterAngle = (delegate* unmanaged[Cdecl]) funcTable[0x3B6405E8AB34A907UL]; var success = false; fn__setPedVisualFieldCenterAngle(&success, _ped, _angle); if (!success) throw new Exception("Native execution failed"); @@ -76783,10 +76770,10 @@ public void SetPedVisualFieldCenterAngle(int _ped, float _angle) } public float GetPedVisualFieldCenterAngle(IPlayer ped) => GetPedVisualFieldCenterAngle(ped.ScriptId); - public float GetPedVisualFieldCenterAngle(int _ped) + public float GetPedVisualFieldCenterAngle(uint _ped) { unsafe { - if (fn__getPedVisualFieldCenterAngle == null) fn__getPedVisualFieldCenterAngle = (delegate* unmanaged[Cdecl]) funcTable[0xEF2C71A32CAD5FBDUL]; + if (fn__getPedVisualFieldCenterAngle == null) fn__getPedVisualFieldCenterAngle = (delegate* unmanaged[Cdecl]) funcTable[0xEF2C71A32CAD5FBDUL]; var success = false; var result = fn__getPedVisualFieldCenterAngle(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76795,23 +76782,23 @@ public float GetPedVisualFieldCenterAngle(int _ped) } public void SetPedStealthMovement(IPlayer ped, bool p1, string action) => SetPedStealthMovement(ped.ScriptId, p1, action); - public void SetPedStealthMovement(int _ped, bool _p1, string _action) + public void SetPedStealthMovement(uint _ped, bool _p1, string _action) { unsafe { - if (fn__setPedStealthMovement == null) fn__setPedStealthMovement = (delegate* unmanaged[Cdecl]) funcTable[0x88CBB5CEB96B7BD2UL]; + if (fn__setPedStealthMovement == null) fn__setPedStealthMovement = (delegate* unmanaged[Cdecl]) funcTable[0x88CBB5CEB96B7BD2UL]; var success = false; - var ptr_action = _action == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_action); + var ptr_action = MemoryUtils.StringToHGlobalUtf8(_action); fn__setPedStealthMovement(&success, _ped, (byte) (_p1 ? 1 : 0), ptr_action); - if (ptr_action != IntPtr.Zero) Marshal.FreeHGlobal(ptr_action); + Marshal.FreeHGlobal(ptr_action); if (!success) throw new Exception("Native execution failed"); } } public bool GetPedStealthMovement(IPlayer ped) => GetPedStealthMovement(ped.ScriptId); - public bool GetPedStealthMovement(int _ped) + public bool GetPedStealthMovement(uint _ped) { unsafe { - if (fn__getPedStealthMovement == null) fn__getPedStealthMovement = (delegate* unmanaged[Cdecl]) funcTable[0x7C2AC9CA66575FBFUL]; + if (fn__getPedStealthMovement == null) fn__getPedStealthMovement = (delegate* unmanaged[Cdecl]) funcTable[0x7C2AC9CA66575FBFUL]; var success = false; var result = fn__getPedStealthMovement(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76831,10 +76818,10 @@ public int CreateGroup(int _unused) } public void SetPedAsGroupLeader(IPlayer ped, int groupId) => SetPedAsGroupLeader(ped.ScriptId, groupId); - public void SetPedAsGroupLeader(int _ped, int _groupId) + public void SetPedAsGroupLeader(uint _ped, int _groupId) { unsafe { - if (fn__setPedAsGroupLeader == null) fn__setPedAsGroupLeader = (delegate* unmanaged[Cdecl]) funcTable[0x2A7819605465FBCEUL]; + if (fn__setPedAsGroupLeader == null) fn__setPedAsGroupLeader = (delegate* unmanaged[Cdecl]) funcTable[0x2A7819605465FBCEUL]; var success = false; fn__setPedAsGroupLeader(&success, _ped, _groupId); if (!success) throw new Exception("Native execution failed"); @@ -76842,10 +76829,10 @@ public void SetPedAsGroupLeader(int _ped, int _groupId) } public void SetPedAsGroupMember(IPlayer ped, int groupId) => SetPedAsGroupMember(ped.ScriptId, groupId); - public void SetPedAsGroupMember(int _ped, int _groupId) + public void SetPedAsGroupMember(uint _ped, int _groupId) { unsafe { - if (fn__setPedAsGroupMember == null) fn__setPedAsGroupMember = (delegate* unmanaged[Cdecl]) funcTable[0x9F3480FE65DB31B5UL]; + if (fn__setPedAsGroupMember == null) fn__setPedAsGroupMember = (delegate* unmanaged[Cdecl]) funcTable[0x9F3480FE65DB31B5UL]; var success = false; fn__setPedAsGroupMember(&success, _ped, _groupId); if (!success) throw new Exception("Native execution failed"); @@ -76853,10 +76840,10 @@ public void SetPedAsGroupMember(int _ped, int _groupId) } public void SetPedCanTeleportToGroupLeader(IPlayer pedHandle, int groupHandle, bool toggle) => SetPedCanTeleportToGroupLeader(pedHandle.ScriptId, groupHandle, toggle); - public void SetPedCanTeleportToGroupLeader(int _pedHandle, int _groupHandle, bool _toggle) + public void SetPedCanTeleportToGroupLeader(uint _pedHandle, int _groupHandle, bool _toggle) { unsafe { - if (fn__setPedCanTeleportToGroupLeader == null) fn__setPedCanTeleportToGroupLeader = (delegate* unmanaged[Cdecl]) funcTable[0x2E2F4240B3F24647UL]; + if (fn__setPedCanTeleportToGroupLeader == null) fn__setPedCanTeleportToGroupLeader = (delegate* unmanaged[Cdecl]) funcTable[0x2E2F4240B3F24647UL]; var success = false; fn__setPedCanTeleportToGroupLeader(&success, _pedHandle, _groupHandle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -76874,10 +76861,10 @@ public void RemoveGroup(int _groupId) } public void RemovePedFromGroup(IPlayer ped) => RemovePedFromGroup(ped.ScriptId); - public void RemovePedFromGroup(int _ped) + public void RemovePedFromGroup(uint _ped) { unsafe { - if (fn__removePedFromGroup == null) fn__removePedFromGroup = (delegate* unmanaged[Cdecl]) funcTable[0xED74007FFB146BC2UL]; + if (fn__removePedFromGroup == null) fn__removePedFromGroup = (delegate* unmanaged[Cdecl]) funcTable[0xED74007FFB146BC2UL]; var success = false; fn__removePedFromGroup(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76885,10 +76872,10 @@ public void RemovePedFromGroup(int _ped) } public bool IsPedGroupMember(IPlayer ped, int groupId) => IsPedGroupMember(ped.ScriptId, groupId); - public bool IsPedGroupMember(int _ped, int _groupId) + public bool IsPedGroupMember(uint _ped, int _groupId) { unsafe { - if (fn__isPedGroupMember == null) fn__isPedGroupMember = (delegate* unmanaged[Cdecl]) funcTable[0x9BB01E3834671191UL]; + if (fn__isPedGroupMember == null) fn__isPedGroupMember = (delegate* unmanaged[Cdecl]) funcTable[0x9BB01E3834671191UL]; var success = false; var result = fn__isPedGroupMember(&success, _ped, _groupId); if (!success) throw new Exception("Native execution failed"); @@ -76897,10 +76884,10 @@ public bool IsPedGroupMember(int _ped, int _groupId) } public bool IsPedHangingOnToVehicle(IPlayer ped) => IsPedHangingOnToVehicle(ped.ScriptId); - public bool IsPedHangingOnToVehicle(int _ped) + public bool IsPedHangingOnToVehicle(uint _ped) { unsafe { - if (fn__isPedHangingOnToVehicle == null) fn__isPedHangingOnToVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x1C86D8AEF8254B78UL]; + if (fn__isPedHangingOnToVehicle == null) fn__isPedHangingOnToVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x1C86D8AEF8254B78UL]; var success = false; var result = fn__isPedHangingOnToVehicle(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76919,10 +76906,10 @@ public void SetGroupSeparationRange(int _groupHandle, float _separationRange) } public void SetPedMinGroundTimeForStungun(IPlayer ped, int ms) => SetPedMinGroundTimeForStungun(ped.ScriptId, ms); - public void SetPedMinGroundTimeForStungun(int _ped, int _ms) + public void SetPedMinGroundTimeForStungun(uint _ped, int _ms) { unsafe { - if (fn__setPedMinGroundTimeForStungun == null) fn__setPedMinGroundTimeForStungun = (delegate* unmanaged[Cdecl]) funcTable[0xFA0675AB151073FAUL]; + if (fn__setPedMinGroundTimeForStungun == null) fn__setPedMinGroundTimeForStungun = (delegate* unmanaged[Cdecl]) funcTable[0xFA0675AB151073FAUL]; var success = false; fn__setPedMinGroundTimeForStungun(&success, _ped, _ms); if (!success) throw new Exception("Native execution failed"); @@ -76930,10 +76917,10 @@ public void SetPedMinGroundTimeForStungun(int _ped, int _ms) } public bool IsPedProne(IPlayer ped) => IsPedProne(ped.ScriptId); - public bool IsPedProne(int _ped) + public bool IsPedProne(uint _ped) { unsafe { - if (fn__isPedProne == null) fn__isPedProne = (delegate* unmanaged[Cdecl]) funcTable[0xD6A86331A537A7B9UL]; + if (fn__isPedProne == null) fn__isPedProne = (delegate* unmanaged[Cdecl]) funcTable[0xD6A86331A537A7B9UL]; var success = false; var result = fn__isPedProne(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76941,13 +76928,13 @@ public bool IsPedProne(int _ped) } } - public bool IsPedInCombat(IPlayer ped, int target) => IsPedInCombat(ped.ScriptId, target); - public bool IsPedInCombat(int ped, IPlayer target) => IsPedInCombat(ped, target.ScriptId); + public bool IsPedInCombat(IPlayer ped, uint target) => IsPedInCombat(ped.ScriptId, target); + public bool IsPedInCombat(uint ped, IPlayer target) => IsPedInCombat(ped, target.ScriptId); public bool IsPedInCombat(IPlayer ped, IPlayer target) => IsPedInCombat(ped.ScriptId, target.ScriptId); - public bool IsPedInCombat(int _ped, int _target) + public bool IsPedInCombat(uint _ped, uint _target) { unsafe { - if (fn__isPedInCombat == null) fn__isPedInCombat = (delegate* unmanaged[Cdecl]) funcTable[0x4859F1FC66A6278EUL]; + if (fn__isPedInCombat == null) fn__isPedInCombat = (delegate* unmanaged[Cdecl]) funcTable[0x4859F1FC66A6278EUL]; var success = false; var result = fn__isPedInCombat(&success, _ped, _target); if (!success) throw new Exception("Native execution failed"); @@ -76955,11 +76942,11 @@ public bool IsPedInCombat(int _ped, int _target) } } - public int GetPedTargetFromCombatPed(IPlayer ped, int p1) => GetPedTargetFromCombatPed(ped.ScriptId, p1); - public int GetPedTargetFromCombatPed(int _ped, int _p1) + public uint GetPedTargetFromCombatPed(IPlayer ped, int p1) => GetPedTargetFromCombatPed(ped.ScriptId, p1); + public uint GetPedTargetFromCombatPed(uint _ped, int _p1) { unsafe { - if (fn__getPedTargetFromCombatPed == null) fn__getPedTargetFromCombatPed = (delegate* unmanaged[Cdecl]) funcTable[0x32C27A11307B01CCUL]; + if (fn__getPedTargetFromCombatPed == null) fn__getPedTargetFromCombatPed = (delegate* unmanaged[Cdecl]) funcTable[0x32C27A11307B01CCUL]; var success = false; var result = fn__getPedTargetFromCombatPed(&success, _ped, _p1); if (!success) throw new Exception("Native execution failed"); @@ -76967,13 +76954,13 @@ public int GetPedTargetFromCombatPed(int _ped, int _p1) } } - public bool CanPedInCombatSeeTarget(IPlayer ped, int target) => CanPedInCombatSeeTarget(ped.ScriptId, target); - public bool CanPedInCombatSeeTarget(int ped, IPlayer target) => CanPedInCombatSeeTarget(ped, target.ScriptId); + public bool CanPedInCombatSeeTarget(IPlayer ped, uint target) => CanPedInCombatSeeTarget(ped.ScriptId, target); + public bool CanPedInCombatSeeTarget(uint ped, IPlayer target) => CanPedInCombatSeeTarget(ped, target.ScriptId); public bool CanPedInCombatSeeTarget(IPlayer ped, IPlayer target) => CanPedInCombatSeeTarget(ped.ScriptId, target.ScriptId); - public bool CanPedInCombatSeeTarget(int _ped, int _target) + public bool CanPedInCombatSeeTarget(uint _ped, uint _target) { unsafe { - if (fn__canPedInCombatSeeTarget == null) fn__canPedInCombatSeeTarget = (delegate* unmanaged[Cdecl]) funcTable[0xEAD42DE3610D0721UL]; + if (fn__canPedInCombatSeeTarget == null) fn__canPedInCombatSeeTarget = (delegate* unmanaged[Cdecl]) funcTable[0xEAD42DE3610D0721UL]; var success = false; var result = fn__canPedInCombatSeeTarget(&success, _ped, _target); if (!success) throw new Exception("Native execution failed"); @@ -76982,10 +76969,10 @@ public bool CanPedInCombatSeeTarget(int _ped, int _target) } public bool IsPedDoingDriveby(IPlayer ped) => IsPedDoingDriveby(ped.ScriptId); - public bool IsPedDoingDriveby(int _ped) + public bool IsPedDoingDriveby(uint _ped) { unsafe { - if (fn__isPedDoingDriveby == null) fn__isPedDoingDriveby = (delegate* unmanaged[Cdecl]) funcTable[0xB2C086CC1BF8F2BFUL]; + if (fn__isPedDoingDriveby == null) fn__isPedDoingDriveby = (delegate* unmanaged[Cdecl]) funcTable[0xB2C086CC1BF8F2BFUL]; var success = false; var result = fn__isPedDoingDriveby(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -76994,10 +76981,10 @@ public bool IsPedDoingDriveby(int _ped) } public bool IsPedJacking(IPlayer ped) => IsPedJacking(ped.ScriptId); - public bool IsPedJacking(int _ped) + public bool IsPedJacking(uint _ped) { unsafe { - if (fn__isPedJacking == null) fn__isPedJacking = (delegate* unmanaged[Cdecl]) funcTable[0x4AE4FF911DFB61DAUL]; + if (fn__isPedJacking == null) fn__isPedJacking = (delegate* unmanaged[Cdecl]) funcTable[0x4AE4FF911DFB61DAUL]; var success = false; var result = fn__isPedJacking(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77006,10 +76993,10 @@ public bool IsPedJacking(int _ped) } public bool IsPedBeingJacked(IPlayer ped) => IsPedBeingJacked(ped.ScriptId); - public bool IsPedBeingJacked(int _ped) + public bool IsPedBeingJacked(uint _ped) { unsafe { - if (fn__isPedBeingJacked == null) fn__isPedBeingJacked = (delegate* unmanaged[Cdecl]) funcTable[0x9A497FE2DF198913UL]; + if (fn__isPedBeingJacked == null) fn__isPedBeingJacked = (delegate* unmanaged[Cdecl]) funcTable[0x9A497FE2DF198913UL]; var success = false; var result = fn__isPedBeingJacked(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77018,10 +77005,10 @@ public bool IsPedBeingJacked(int _ped) } public bool IsPedBeingStunned(IPlayer ped, int p1) => IsPedBeingStunned(ped.ScriptId, p1); - public bool IsPedBeingStunned(int _ped, int _p1) + public bool IsPedBeingStunned(uint _ped, int _p1) { unsafe { - if (fn__isPedBeingStunned == null) fn__isPedBeingStunned = (delegate* unmanaged[Cdecl]) funcTable[0x4FBACCE3B4138EE8UL]; + if (fn__isPedBeingStunned == null) fn__isPedBeingStunned = (delegate* unmanaged[Cdecl]) funcTable[0x4FBACCE3B4138EE8UL]; var success = false; var result = fn__isPedBeingStunned(&success, _ped, _p1); if (!success) throw new Exception("Native execution failed"); @@ -77029,11 +77016,11 @@ public bool IsPedBeingStunned(int _ped, int _p1) } } - public int GetPedsJacker(IPlayer ped) => GetPedsJacker(ped.ScriptId); - public int GetPedsJacker(int _ped) + public uint GetPedsJacker(IPlayer ped) => GetPedsJacker(ped.ScriptId); + public uint GetPedsJacker(uint _ped) { unsafe { - if (fn__getPedsJacker == null) fn__getPedsJacker = (delegate* unmanaged[Cdecl]) funcTable[0x9B128DC36C1E04CFUL]; + if (fn__getPedsJacker == null) fn__getPedsJacker = (delegate* unmanaged[Cdecl]) funcTable[0x9B128DC36C1E04CFUL]; var success = false; var result = fn__getPedsJacker(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77041,11 +77028,11 @@ public int GetPedsJacker(int _ped) } } - public int GetJackTarget(IPlayer ped) => GetJackTarget(ped.ScriptId); - public int GetJackTarget(int _ped) + public uint GetJackTarget(IPlayer ped) => GetJackTarget(ped.ScriptId); + public uint GetJackTarget(uint _ped) { unsafe { - if (fn__getJackTarget == null) fn__getJackTarget = (delegate* unmanaged[Cdecl]) funcTable[0x5486A79D9FBD342DUL]; + if (fn__getJackTarget == null) fn__getJackTarget = (delegate* unmanaged[Cdecl]) funcTable[0x5486A79D9FBD342DUL]; var success = false; var result = fn__getJackTarget(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77054,10 +77041,10 @@ public int GetJackTarget(int _ped) } public bool IsPedFleeing(IPlayer ped) => IsPedFleeing(ped.ScriptId); - public bool IsPedFleeing(int _ped) + public bool IsPedFleeing(uint _ped) { unsafe { - if (fn__isPedFleeing == null) fn__isPedFleeing = (delegate* unmanaged[Cdecl]) funcTable[0xBBCCE00B381F8482UL]; + if (fn__isPedFleeing == null) fn__isPedFleeing = (delegate* unmanaged[Cdecl]) funcTable[0xBBCCE00B381F8482UL]; var success = false; var result = fn__isPedFleeing(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77066,10 +77053,10 @@ public bool IsPedFleeing(int _ped) } public bool IsPedInCover(IPlayer ped, bool exceptUseWeapon) => IsPedInCover(ped.ScriptId, exceptUseWeapon); - public bool IsPedInCover(int _ped, bool _exceptUseWeapon) + public bool IsPedInCover(uint _ped, bool _exceptUseWeapon) { unsafe { - if (fn__isPedInCover == null) fn__isPedInCover = (delegate* unmanaged[Cdecl]) funcTable[0x60DFD0691A170B88UL]; + if (fn__isPedInCover == null) fn__isPedInCover = (delegate* unmanaged[Cdecl]) funcTable[0x60DFD0691A170B88UL]; var success = false; var result = fn__isPedInCover(&success, _ped, (byte) (_exceptUseWeapon ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -77078,10 +77065,10 @@ public bool IsPedInCover(int _ped, bool _exceptUseWeapon) } public bool IsPedInCoverFacingLeft(IPlayer ped) => IsPedInCoverFacingLeft(ped.ScriptId); - public bool IsPedInCoverFacingLeft(int _ped) + public bool IsPedInCoverFacingLeft(uint _ped) { unsafe { - if (fn__isPedInCoverFacingLeft == null) fn__isPedInCoverFacingLeft = (delegate* unmanaged[Cdecl]) funcTable[0x845333B3150583ABUL]; + if (fn__isPedInCoverFacingLeft == null) fn__isPedInCoverFacingLeft = (delegate* unmanaged[Cdecl]) funcTable[0x845333B3150583ABUL]; var success = false; var result = fn__isPedInCoverFacingLeft(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77090,10 +77077,10 @@ public bool IsPedInCoverFacingLeft(int _ped) } public bool IsPedInHighCover(IPlayer ped) => IsPedInHighCover(ped.ScriptId); - public bool IsPedInHighCover(int _ped) + public bool IsPedInHighCover(uint _ped) { unsafe { - if (fn__isPedInHighCover == null) fn__isPedInHighCover = (delegate* unmanaged[Cdecl]) funcTable[0x6A03BF943D767C93UL]; + if (fn__isPedInHighCover == null) fn__isPedInHighCover = (delegate* unmanaged[Cdecl]) funcTable[0x6A03BF943D767C93UL]; var success = false; var result = fn__isPedInHighCover(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77102,10 +77089,10 @@ public bool IsPedInHighCover(int _ped) } public bool IsPedGoingIntoCover(IPlayer ped) => IsPedGoingIntoCover(ped.ScriptId); - public bool IsPedGoingIntoCover(int _ped) + public bool IsPedGoingIntoCover(uint _ped) { unsafe { - if (fn__isPedGoingIntoCover == null) fn__isPedGoingIntoCover = (delegate* unmanaged[Cdecl]) funcTable[0x9F65DBC537E59AD5UL]; + if (fn__isPedGoingIntoCover == null) fn__isPedGoingIntoCover = (delegate* unmanaged[Cdecl]) funcTable[0x9F65DBC537E59AD5UL]; var success = false; var result = fn__isPedGoingIntoCover(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77114,10 +77101,10 @@ public bool IsPedGoingIntoCover(int _ped) } public bool SetPedPinnedDown(IPlayer ped, bool pinned, int i) => SetPedPinnedDown(ped.ScriptId, pinned, i); - public bool SetPedPinnedDown(int _ped, bool _pinned, int _i) + public bool SetPedPinnedDown(uint _ped, bool _pinned, int _i) { unsafe { - if (fn__setPedPinnedDown == null) fn__setPedPinnedDown = (delegate* unmanaged[Cdecl]) funcTable[0xAAD6D1ACF08F4612UL]; + if (fn__setPedPinnedDown == null) fn__setPedPinnedDown = (delegate* unmanaged[Cdecl]) funcTable[0xAAD6D1ACF08F4612UL]; var success = false; var result = fn__setPedPinnedDown(&success, _ped, (byte) (_pinned ? 1 : 0), _i); if (!success) throw new Exception("Native execution failed"); @@ -77126,10 +77113,10 @@ public bool SetPedPinnedDown(int _ped, bool _pinned, int _i) } public int GetSeatPedIsTryingToEnter(IPlayer ped) => GetSeatPedIsTryingToEnter(ped.ScriptId); - public int GetSeatPedIsTryingToEnter(int _ped) + public int GetSeatPedIsTryingToEnter(uint _ped) { unsafe { - if (fn__getSeatPedIsTryingToEnter == null) fn__getSeatPedIsTryingToEnter = (delegate* unmanaged[Cdecl]) funcTable[0x6F4C85ACD641BCD2UL]; + if (fn__getSeatPedIsTryingToEnter == null) fn__getSeatPedIsTryingToEnter = (delegate* unmanaged[Cdecl]) funcTable[0x6F4C85ACD641BCD2UL]; var success = false; var result = fn__getSeatPedIsTryingToEnter(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77137,11 +77124,11 @@ public int GetSeatPedIsTryingToEnter(int _ped) } } - public int GetVehiclePedIsTryingToEnter(IPlayer ped) => GetVehiclePedIsTryingToEnter(ped.ScriptId); - public int GetVehiclePedIsTryingToEnter(int _ped) + public uint GetVehiclePedIsTryingToEnter(IPlayer ped) => GetVehiclePedIsTryingToEnter(ped.ScriptId); + public uint GetVehiclePedIsTryingToEnter(uint _ped) { unsafe { - if (fn__getVehiclePedIsTryingToEnter == null) fn__getVehiclePedIsTryingToEnter = (delegate* unmanaged[Cdecl]) funcTable[0x814FA8BE5449445DUL]; + if (fn__getVehiclePedIsTryingToEnter == null) fn__getVehiclePedIsTryingToEnter = (delegate* unmanaged[Cdecl]) funcTable[0x814FA8BE5449445DUL]; var success = false; var result = fn__getVehiclePedIsTryingToEnter(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77149,11 +77136,11 @@ public int GetVehiclePedIsTryingToEnter(int _ped) } } - public int GetPedSourceOfDeath(IPlayer ped) => GetPedSourceOfDeath(ped.ScriptId); - public int GetPedSourceOfDeath(int _ped) + public uint GetPedSourceOfDeath(IPlayer ped) => GetPedSourceOfDeath(ped.ScriptId); + public uint GetPedSourceOfDeath(uint _ped) { unsafe { - if (fn__getPedSourceOfDeath == null) fn__getPedSourceOfDeath = (delegate* unmanaged[Cdecl]) funcTable[0x93C8B64DEB84728CUL]; + if (fn__getPedSourceOfDeath == null) fn__getPedSourceOfDeath = (delegate* unmanaged[Cdecl]) funcTable[0x93C8B64DEB84728CUL]; var success = false; var result = fn__getPedSourceOfDeath(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77162,10 +77149,10 @@ public int GetPedSourceOfDeath(int _ped) } public uint GetPedCauseOfDeath(IPlayer ped) => GetPedCauseOfDeath(ped.ScriptId); - public uint GetPedCauseOfDeath(int _ped) + public uint GetPedCauseOfDeath(uint _ped) { unsafe { - if (fn__getPedCauseOfDeath == null) fn__getPedCauseOfDeath = (delegate* unmanaged[Cdecl]) funcTable[0x16FFE42AB2D2DC59UL]; + if (fn__getPedCauseOfDeath == null) fn__getPedCauseOfDeath = (delegate* unmanaged[Cdecl]) funcTable[0x16FFE42AB2D2DC59UL]; var success = false; var result = fn__getPedCauseOfDeath(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77174,10 +77161,10 @@ public uint GetPedCauseOfDeath(int _ped) } public int GetPedTimeOfDeath(IPlayer ped) => GetPedTimeOfDeath(ped.ScriptId); - public int GetPedTimeOfDeath(int _ped) + public int GetPedTimeOfDeath(uint _ped) { unsafe { - if (fn__getPedTimeOfDeath == null) fn__getPedTimeOfDeath = (delegate* unmanaged[Cdecl]) funcTable[0x1E98817B311AE98AUL]; + if (fn__getPedTimeOfDeath == null) fn__getPedTimeOfDeath = (delegate* unmanaged[Cdecl]) funcTable[0x1E98817B311AE98AUL]; var success = false; var result = fn__getPedTimeOfDeath(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77186,10 +77173,10 @@ public int GetPedTimeOfDeath(int _ped) } public int CountPedsInCombatWithTarget(IPlayer ped) => CountPedsInCombatWithTarget(ped.ScriptId); - public int CountPedsInCombatWithTarget(int _ped) + public int CountPedsInCombatWithTarget(uint _ped) { unsafe { - if (fn__countPedsInCombatWithTarget == null) fn__countPedsInCombatWithTarget = (delegate* unmanaged[Cdecl]) funcTable[0x5407B7288D0478B7UL]; + if (fn__countPedsInCombatWithTarget == null) fn__countPedsInCombatWithTarget = (delegate* unmanaged[Cdecl]) funcTable[0x5407B7288D0478B7UL]; var success = false; var result = fn__countPedsInCombatWithTarget(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77198,10 +77185,10 @@ public int CountPedsInCombatWithTarget(int _ped) } public int CountPedsInCombatWithTargetWithinRadius(IPlayer ped, float x, float y, float z, float radius) => CountPedsInCombatWithTargetWithinRadius(ped.ScriptId, x, y, z, radius); - public int CountPedsInCombatWithTargetWithinRadius(int _ped, float _x, float _y, float _z, float _radius) + public int CountPedsInCombatWithTargetWithinRadius(uint _ped, float _x, float _y, float _z, float _radius) { unsafe { - if (fn__countPedsInCombatWithTargetWithinRadius == null) fn__countPedsInCombatWithTargetWithinRadius = (delegate* unmanaged[Cdecl]) funcTable[0x336B3D200AB007CBUL]; + if (fn__countPedsInCombatWithTargetWithinRadius == null) fn__countPedsInCombatWithTargetWithinRadius = (delegate* unmanaged[Cdecl]) funcTable[0x336B3D200AB007CBUL]; var success = false; var result = fn__countPedsInCombatWithTargetWithinRadius(&success, _ped, _x, _y, _z, _radius); if (!success) throw new Exception("Native execution failed"); @@ -77210,10 +77197,10 @@ public int CountPedsInCombatWithTargetWithinRadius(int _ped, float _x, float _y, } public void SetPedRelationshipGroupDefaultHash(IPlayer ped, uint hash) => SetPedRelationshipGroupDefaultHash(ped.ScriptId, hash); - public void SetPedRelationshipGroupDefaultHash(int _ped, uint _hash) + public void SetPedRelationshipGroupDefaultHash(uint _ped, uint _hash) { unsafe { - if (fn__setPedRelationshipGroupDefaultHash == null) fn__setPedRelationshipGroupDefaultHash = (delegate* unmanaged[Cdecl]) funcTable[0xADB3F206518799E8UL]; + if (fn__setPedRelationshipGroupDefaultHash == null) fn__setPedRelationshipGroupDefaultHash = (delegate* unmanaged[Cdecl]) funcTable[0xADB3F206518799E8UL]; var success = false; fn__setPedRelationshipGroupDefaultHash(&success, _ped, _hash); if (!success) throw new Exception("Native execution failed"); @@ -77221,10 +77208,10 @@ public void SetPedRelationshipGroupDefaultHash(int _ped, uint _hash) } public void SetPedRelationshipGroupHash(IPlayer ped, uint hash) => SetPedRelationshipGroupHash(ped.ScriptId, hash); - public void SetPedRelationshipGroupHash(int _ped, uint _hash) + public void SetPedRelationshipGroupHash(uint _ped, uint _hash) { unsafe { - if (fn__setPedRelationshipGroupHash == null) fn__setPedRelationshipGroupHash = (delegate* unmanaged[Cdecl]) funcTable[0xC80A74AC829DDD92UL]; + if (fn__setPedRelationshipGroupHash == null) fn__setPedRelationshipGroupHash = (delegate* unmanaged[Cdecl]) funcTable[0xC80A74AC829DDD92UL]; var success = false; fn__setPedRelationshipGroupHash(&success, _ped, _hash); if (!success) throw new Exception("Native execution failed"); @@ -77256,10 +77243,10 @@ public bool AddRelationshipGroup(string _name, ref uint _groupHash) unsafe { if (fn__addRelationshipGroup == null) fn__addRelationshipGroup = (delegate* unmanaged[Cdecl]) funcTable[0xF372BC22FCB88606UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var ref_groupHash = _groupHash; var result = fn__addRelationshipGroup(&success, ptr_name, &ref_groupHash); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); _groupHash = ref_groupHash; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -77287,13 +77274,13 @@ public bool DoesRelationshipGroupExist(uint _groupHash) } } - public int GetRelationshipBetweenPeds(IPlayer ped1, int ped2) => GetRelationshipBetweenPeds(ped1.ScriptId, ped2); - public int GetRelationshipBetweenPeds(int ped1, IPlayer ped2) => GetRelationshipBetweenPeds(ped1, ped2.ScriptId); + public int GetRelationshipBetweenPeds(IPlayer ped1, uint ped2) => GetRelationshipBetweenPeds(ped1.ScriptId, ped2); + public int GetRelationshipBetweenPeds(uint ped1, IPlayer ped2) => GetRelationshipBetweenPeds(ped1, ped2.ScriptId); public int GetRelationshipBetweenPeds(IPlayer ped1, IPlayer ped2) => GetRelationshipBetweenPeds(ped1.ScriptId, ped2.ScriptId); - public int GetRelationshipBetweenPeds(int _ped1, int _ped2) + public int GetRelationshipBetweenPeds(uint _ped1, uint _ped2) { unsafe { - if (fn__getRelationshipBetweenPeds == null) fn__getRelationshipBetweenPeds = (delegate* unmanaged[Cdecl]) funcTable[0xEBA5AD3A0EAF7121UL]; + if (fn__getRelationshipBetweenPeds == null) fn__getRelationshipBetweenPeds = (delegate* unmanaged[Cdecl]) funcTable[0xEBA5AD3A0EAF7121UL]; var success = false; var result = fn__getRelationshipBetweenPeds(&success, _ped1, _ped2); if (!success) throw new Exception("Native execution failed"); @@ -77302,10 +77289,10 @@ public int GetRelationshipBetweenPeds(int _ped1, int _ped2) } public uint GetPedRelationshipGroupDefaultHash(IPlayer ped) => GetPedRelationshipGroupDefaultHash(ped.ScriptId); - public uint GetPedRelationshipGroupDefaultHash(int _ped) + public uint GetPedRelationshipGroupDefaultHash(uint _ped) { unsafe { - if (fn__getPedRelationshipGroupDefaultHash == null) fn__getPedRelationshipGroupDefaultHash = (delegate* unmanaged[Cdecl]) funcTable[0x42FDD0F017B1E38EUL]; + if (fn__getPedRelationshipGroupDefaultHash == null) fn__getPedRelationshipGroupDefaultHash = (delegate* unmanaged[Cdecl]) funcTable[0x42FDD0F017B1E38EUL]; var success = false; var result = fn__getPedRelationshipGroupDefaultHash(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77314,10 +77301,10 @@ public uint GetPedRelationshipGroupDefaultHash(int _ped) } public uint GetPedRelationshipGroupHash(IPlayer ped) => GetPedRelationshipGroupHash(ped.ScriptId); - public uint GetPedRelationshipGroupHash(int _ped) + public uint GetPedRelationshipGroupHash(uint _ped) { unsafe { - if (fn__getPedRelationshipGroupHash == null) fn__getPedRelationshipGroupHash = (delegate* unmanaged[Cdecl]) funcTable[0x7DBDD04862D95F04UL]; + if (fn__getPedRelationshipGroupHash == null) fn__getPedRelationshipGroupHash = (delegate* unmanaged[Cdecl]) funcTable[0x7DBDD04862D95F04UL]; var success = false; var result = fn__getPedRelationshipGroupHash(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77347,10 +77334,10 @@ public void SetRelationshipGroupAffectsWantedLevel(uint _group, bool _p1) } public void TellGroupPedsInAreaToAttack(IPlayer ped, int p1, float p2, uint hash, int p4, int p5) => TellGroupPedsInAreaToAttack(ped.ScriptId, p1, p2, hash, p4, p5); - public void TellGroupPedsInAreaToAttack(int _ped, int _p1, float _p2, uint _hash, int _p4, int _p5) + public void TellGroupPedsInAreaToAttack(uint _ped, int _p1, float _p2, uint _hash, int _p4, int _p5) { unsafe { - if (fn__tellGroupPedsInAreaToAttack == null) fn__tellGroupPedsInAreaToAttack = (delegate* unmanaged[Cdecl]) funcTable[0xAD27D957598E49E9UL]; + if (fn__tellGroupPedsInAreaToAttack == null) fn__tellGroupPedsInAreaToAttack = (delegate* unmanaged[Cdecl]) funcTable[0xAD27D957598E49E9UL]; var success = false; fn__tellGroupPedsInAreaToAttack(&success, _ped, _p1, _p2, _hash, _p4, _p5); if (!success) throw new Exception("Native execution failed"); @@ -77358,10 +77345,10 @@ public void TellGroupPedsInAreaToAttack(int _ped, int _p1, float _p2, uint _hash } public void SetPedCanBeTargetedWithoutLos(IPlayer ped, bool toggle) => SetPedCanBeTargetedWithoutLos(ped.ScriptId, toggle); - public void SetPedCanBeTargetedWithoutLos(int _ped, bool _toggle) + public void SetPedCanBeTargetedWithoutLos(uint _ped, bool _toggle) { unsafe { - if (fn__setPedCanBeTargetedWithoutLos == null) fn__setPedCanBeTargetedWithoutLos = (delegate* unmanaged[Cdecl]) funcTable[0x4328652AE5769C71UL]; + if (fn__setPedCanBeTargetedWithoutLos == null) fn__setPedCanBeTargetedWithoutLos = (delegate* unmanaged[Cdecl]) funcTable[0x4328652AE5769C71UL]; var success = false; fn__setPedCanBeTargetedWithoutLos(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -77369,10 +77356,10 @@ public void SetPedCanBeTargetedWithoutLos(int _ped, bool _toggle) } public void SetPedToInformRespectedFriends(IPlayer ped, float radius, int maxFriends) => SetPedToInformRespectedFriends(ped.ScriptId, radius, maxFriends); - public void SetPedToInformRespectedFriends(int _ped, float _radius, int _maxFriends) + public void SetPedToInformRespectedFriends(uint _ped, float _radius, int _maxFriends) { unsafe { - if (fn__setPedToInformRespectedFriends == null) fn__setPedToInformRespectedFriends = (delegate* unmanaged[Cdecl]) funcTable[0x112942C6E708F70BUL]; + if (fn__setPedToInformRespectedFriends == null) fn__setPedToInformRespectedFriends = (delegate* unmanaged[Cdecl]) funcTable[0x112942C6E708F70BUL]; var success = false; fn__setPedToInformRespectedFriends(&success, _ped, _radius, _maxFriends); if (!success) throw new Exception("Native execution failed"); @@ -77380,10 +77367,10 @@ public void SetPedToInformRespectedFriends(int _ped, float _radius, int _maxFrie } public bool IsPedRespondingToEvent(IPlayer ped, int @event) => IsPedRespondingToEvent(ped.ScriptId, @event); - public bool IsPedRespondingToEvent(int _ped, int _event) + public bool IsPedRespondingToEvent(uint _ped, int _event) { unsafe { - if (fn__isPedRespondingToEvent == null) fn__isPedRespondingToEvent = (delegate* unmanaged[Cdecl]) funcTable[0x625B774D75C87068UL]; + if (fn__isPedRespondingToEvent == null) fn__isPedRespondingToEvent = (delegate* unmanaged[Cdecl]) funcTable[0x625B774D75C87068UL]; var success = false; var result = fn__isPedRespondingToEvent(&success, _ped, _event); if (!success) throw new Exception("Native execution failed"); @@ -77392,10 +77379,10 @@ public bool IsPedRespondingToEvent(int _ped, int _event) } public bool GetPosFromFiredEvent(IPlayer ped, int eventType, ref int outData) => GetPosFromFiredEvent(ped.ScriptId, eventType, ref outData); - public bool GetPosFromFiredEvent(int _ped, int _eventType, ref int _outData) + public bool GetPosFromFiredEvent(uint _ped, int _eventType, ref int _outData) { unsafe { - if (fn__getPosFromFiredEvent == null) fn__getPosFromFiredEvent = (delegate* unmanaged[Cdecl]) funcTable[0xBA656A3BB01BDEA3UL]; + if (fn__getPosFromFiredEvent == null) fn__getPosFromFiredEvent = (delegate* unmanaged[Cdecl]) funcTable[0xBA656A3BB01BDEA3UL]; var success = false; var ref_outData = _outData; var result = fn__getPosFromFiredEvent(&success, _ped, _eventType, &ref_outData); @@ -77406,10 +77393,10 @@ public bool GetPosFromFiredEvent(int _ped, int _eventType, ref int _outData) } public void SetPedFiringPattern(IPlayer ped, uint patternHash) => SetPedFiringPattern(ped.ScriptId, patternHash); - public void SetPedFiringPattern(int _ped, uint _patternHash) + public void SetPedFiringPattern(uint _ped, uint _patternHash) { unsafe { - if (fn__setPedFiringPattern == null) fn__setPedFiringPattern = (delegate* unmanaged[Cdecl]) funcTable[0x9AC577F5A12AD8A9UL]; + if (fn__setPedFiringPattern == null) fn__setPedFiringPattern = (delegate* unmanaged[Cdecl]) funcTable[0x9AC577F5A12AD8A9UL]; var success = false; fn__setPedFiringPattern(&success, _ped, _patternHash); if (!success) throw new Exception("Native execution failed"); @@ -77417,10 +77404,10 @@ public void SetPedFiringPattern(int _ped, uint _patternHash) } public void SetPedShootRate(IPlayer ped, int shootRate) => SetPedShootRate(ped.ScriptId, shootRate); - public void SetPedShootRate(int _ped, int _shootRate) + public void SetPedShootRate(uint _ped, int _shootRate) { unsafe { - if (fn__setPedShootRate == null) fn__setPedShootRate = (delegate* unmanaged[Cdecl]) funcTable[0x614DA022990752DCUL]; + if (fn__setPedShootRate == null) fn__setPedShootRate = (delegate* unmanaged[Cdecl]) funcTable[0x614DA022990752DCUL]; var success = false; fn__setPedShootRate(&success, _ped, _shootRate); if (!success) throw new Exception("Native execution failed"); @@ -77428,10 +77415,10 @@ public void SetPedShootRate(int _ped, int _shootRate) } public void SetCombatFloat(IPlayer ped, int combatType, float p2) => SetCombatFloat(ped.ScriptId, combatType, p2); - public void SetCombatFloat(int _ped, int _combatType, float _p2) + public void SetCombatFloat(uint _ped, int _combatType, float _p2) { unsafe { - if (fn__setCombatFloat == null) fn__setCombatFloat = (delegate* unmanaged[Cdecl]) funcTable[0xFF41B4B141ED981CUL]; + if (fn__setCombatFloat == null) fn__setCombatFloat = (delegate* unmanaged[Cdecl]) funcTable[0xFF41B4B141ED981CUL]; var success = false; fn__setCombatFloat(&success, _ped, _combatType, _p2); if (!success) throw new Exception("Native execution failed"); @@ -77439,10 +77426,10 @@ public void SetCombatFloat(int _ped, int _combatType, float _p2) } public float GetCombatFloat(IPlayer ped, int p1) => GetCombatFloat(ped.ScriptId, p1); - public float GetCombatFloat(int _ped, int _p1) + public float GetCombatFloat(uint _ped, int _p1) { unsafe { - if (fn__getCombatFloat == null) fn__getCombatFloat = (delegate* unmanaged[Cdecl]) funcTable[0x52DFF8A10508090AUL]; + if (fn__getCombatFloat == null) fn__getCombatFloat = (delegate* unmanaged[Cdecl]) funcTable[0x52DFF8A10508090AUL]; var success = false; var result = fn__getCombatFloat(&success, _ped, _p1); if (!success) throw new Exception("Native execution failed"); @@ -77476,10 +77463,10 @@ public bool DoesGroupExist(int _groupId) } public int GetPedGroupIndex(IPlayer ped) => GetPedGroupIndex(ped.ScriptId); - public int GetPedGroupIndex(int _ped) + public int GetPedGroupIndex(uint _ped) { unsafe { - if (fn__getPedGroupIndex == null) fn__getPedGroupIndex = (delegate* unmanaged[Cdecl]) funcTable[0xF162E133B4E7A675UL]; + if (fn__getPedGroupIndex == null) fn__getPedGroupIndex = (delegate* unmanaged[Cdecl]) funcTable[0xF162E133B4E7A675UL]; var success = false; var result = fn__getPedGroupIndex(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77488,10 +77475,10 @@ public int GetPedGroupIndex(int _ped) } public bool IsPedInGroup(IPlayer ped) => IsPedInGroup(ped.ScriptId); - public bool IsPedInGroup(int _ped) + public bool IsPedInGroup(uint _ped) { unsafe { - if (fn__isPedInGroup == null) fn__isPedInGroup = (delegate* unmanaged[Cdecl]) funcTable[0x5891CAC5D4ACFF74UL]; + if (fn__isPedInGroup == null) fn__isPedInGroup = (delegate* unmanaged[Cdecl]) funcTable[0x5891CAC5D4ACFF74UL]; var success = false; var result = fn__isPedInGroup(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77499,11 +77486,11 @@ public bool IsPedInGroup(int _ped) } } - public int GetPlayerPedIsFollowing(IPlayer ped) => GetPlayerPedIsFollowing(ped.ScriptId); - public int GetPlayerPedIsFollowing(int _ped) + public uint GetPlayerPedIsFollowing(IPlayer ped) => GetPlayerPedIsFollowing(ped.ScriptId); + public uint GetPlayerPedIsFollowing(uint _ped) { unsafe { - if (fn__getPlayerPedIsFollowing == null) fn__getPlayerPedIsFollowing = (delegate* unmanaged[Cdecl]) funcTable[0x6A3975DEA89F9A17UL]; + if (fn__getPlayerPedIsFollowing == null) fn__getPlayerPedIsFollowing = (delegate* unmanaged[Cdecl]) funcTable[0x6A3975DEA89F9A17UL]; var success = false; var result = fn__getPlayerPedIsFollowing(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77541,11 +77528,11 @@ public void ResetGroupFormationDefaultSpacing(int _groupHandle) } } - public int GetVehiclePedIsUsing(IPlayer ped) => GetVehiclePedIsUsing(ped.ScriptId); - public int GetVehiclePedIsUsing(int _ped) + public uint GetVehiclePedIsUsing(IPlayer ped) => GetVehiclePedIsUsing(ped.ScriptId); + public uint GetVehiclePedIsUsing(uint _ped) { unsafe { - if (fn__getVehiclePedIsUsing == null) fn__getVehiclePedIsUsing = (delegate* unmanaged[Cdecl]) funcTable[0x6094AD011A2EA87DUL]; + if (fn__getVehiclePedIsUsing == null) fn__getVehiclePedIsUsing = (delegate* unmanaged[Cdecl]) funcTable[0x6094AD011A2EA87DUL]; var success = false; var result = fn__getVehiclePedIsUsing(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77553,11 +77540,11 @@ public int GetVehiclePedIsUsing(int _ped) } } - public int GetVehiclePedIsEntering(IPlayer ped) => GetVehiclePedIsEntering(ped.ScriptId); - public int GetVehiclePedIsEntering(int _ped) + public uint GetVehiclePedIsEntering(IPlayer ped) => GetVehiclePedIsEntering(ped.ScriptId); + public uint GetVehiclePedIsEntering(uint _ped) { unsafe { - if (fn__getVehiclePedIsEntering == null) fn__getVehiclePedIsEntering = (delegate* unmanaged[Cdecl]) funcTable[0xF92691AED837A5FCUL]; + if (fn__getVehiclePedIsEntering == null) fn__getVehiclePedIsEntering = (delegate* unmanaged[Cdecl]) funcTable[0xF92691AED837A5FCUL]; var success = false; var result = fn__getVehiclePedIsEntering(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77566,10 +77553,10 @@ public int GetVehiclePedIsEntering(int _ped) } public void SetPedGravity(IPlayer ped, bool toggle) => SetPedGravity(ped.ScriptId, toggle); - public void SetPedGravity(int _ped, bool _toggle) + public void SetPedGravity(uint _ped, bool _toggle) { unsafe { - if (fn__setPedGravity == null) fn__setPedGravity = (delegate* unmanaged[Cdecl]) funcTable[0x9FF447B6B6AD960AUL]; + if (fn__setPedGravity == null) fn__setPedGravity = (delegate* unmanaged[Cdecl]) funcTable[0x9FF447B6B6AD960AUL]; var success = false; fn__setPedGravity(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -77577,10 +77564,10 @@ public void SetPedGravity(int _ped, bool _toggle) } public void ApplyDamageToPed(IPlayer ped, int damageAmount, bool p2, int p3) => ApplyDamageToPed(ped.ScriptId, damageAmount, p2, p3); - public void ApplyDamageToPed(int _ped, int _damageAmount, bool _p2, int _p3) + public void ApplyDamageToPed(uint _ped, int _damageAmount, bool _p2, int _p3) { unsafe { - if (fn__applyDamageToPed == null) fn__applyDamageToPed = (delegate* unmanaged[Cdecl]) funcTable[0x697157CED63F18D4UL]; + if (fn__applyDamageToPed == null) fn__applyDamageToPed = (delegate* unmanaged[Cdecl]) funcTable[0x697157CED63F18D4UL]; var success = false; fn__applyDamageToPed(&success, _ped, _damageAmount, (byte) (_p2 ? 1 : 0), _p3); if (!success) throw new Exception("Native execution failed"); @@ -77588,10 +77575,10 @@ public void ApplyDamageToPed(int _ped, int _damageAmount, bool _p2, int _p3) } public int GetTimePedDamagedByWeapon(IPlayer ped, uint weaponHash) => GetTimePedDamagedByWeapon(ped.ScriptId, weaponHash); - public int GetTimePedDamagedByWeapon(int _ped, uint _weaponHash) + public int GetTimePedDamagedByWeapon(uint _ped, uint _weaponHash) { unsafe { - if (fn__getTimePedDamagedByWeapon == null) fn__getTimePedDamagedByWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x36B77BB84687C318UL]; + if (fn__getTimePedDamagedByWeapon == null) fn__getTimePedDamagedByWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x36B77BB84687C318UL]; var success = false; var result = fn__getTimePedDamagedByWeapon(&success, _ped, _weaponHash); if (!success) throw new Exception("Native execution failed"); @@ -77600,10 +77587,10 @@ public int GetTimePedDamagedByWeapon(int _ped, uint _weaponHash) } public void SetPedAllowedToDuck(IPlayer ped, bool toggle) => SetPedAllowedToDuck(ped.ScriptId, toggle); - public void SetPedAllowedToDuck(int _ped, bool _toggle) + public void SetPedAllowedToDuck(uint _ped, bool _toggle) { unsafe { - if (fn__setPedAllowedToDuck == null) fn__setPedAllowedToDuck = (delegate* unmanaged[Cdecl]) funcTable[0xDA1F1B7BE1A8766FUL]; + if (fn__setPedAllowedToDuck == null) fn__setPedAllowedToDuck = (delegate* unmanaged[Cdecl]) funcTable[0xDA1F1B7BE1A8766FUL]; var success = false; fn__setPedAllowedToDuck(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -77611,10 +77598,10 @@ public void SetPedAllowedToDuck(int _ped, bool _toggle) } public void SetPedNeverLeavesGroup(IPlayer ped, bool toggle) => SetPedNeverLeavesGroup(ped.ScriptId, toggle); - public void SetPedNeverLeavesGroup(int _ped, bool _toggle) + public void SetPedNeverLeavesGroup(uint _ped, bool _toggle) { unsafe { - if (fn__setPedNeverLeavesGroup == null) fn__setPedNeverLeavesGroup = (delegate* unmanaged[Cdecl]) funcTable[0x3DBFC55D5C9BB447UL]; + if (fn__setPedNeverLeavesGroup == null) fn__setPedNeverLeavesGroup = (delegate* unmanaged[Cdecl]) funcTable[0x3DBFC55D5C9BB447UL]; var success = false; fn__setPedNeverLeavesGroup(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -77622,10 +77609,10 @@ public void SetPedNeverLeavesGroup(int _ped, bool _toggle) } public int GetPedType(IPlayer ped) => GetPedType(ped.ScriptId); - public int GetPedType(int _ped) + public int GetPedType(uint _ped) { unsafe { - if (fn__getPedType == null) fn__getPedType = (delegate* unmanaged[Cdecl]) funcTable[0xFF059E1E4C01E63CUL]; + if (fn__getPedType == null) fn__getPedType = (delegate* unmanaged[Cdecl]) funcTable[0xFF059E1E4C01E63CUL]; var success = false; var result = fn__getPedType(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77634,10 +77621,10 @@ public int GetPedType(int _ped) } public void SetPedAsCop(IPlayer ped, bool toggle) => SetPedAsCop(ped.ScriptId, toggle); - public void SetPedAsCop(int _ped, bool _toggle) + public void SetPedAsCop(uint _ped, bool _toggle) { unsafe { - if (fn__setPedAsCop == null) fn__setPedAsCop = (delegate* unmanaged[Cdecl]) funcTable[0xBB03C38DD3FB7FFDUL]; + if (fn__setPedAsCop == null) fn__setPedAsCop = (delegate* unmanaged[Cdecl]) funcTable[0xBB03C38DD3FB7FFDUL]; var success = false; fn__setPedAsCop(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -77655,10 +77642,10 @@ public void SetPedHealthPendingLastDamageEventOverrideFlag(bool _toggle) } public void SetPedMaxHealth(IPlayer ped, int value) => SetPedMaxHealth(ped.ScriptId, value); - public void SetPedMaxHealth(int _ped, int _value) + public void SetPedMaxHealth(uint _ped, int _value) { unsafe { - if (fn__setPedMaxHealth == null) fn__setPedMaxHealth = (delegate* unmanaged[Cdecl]) funcTable[0xF5F6378C4F3419D3UL]; + if (fn__setPedMaxHealth == null) fn__setPedMaxHealth = (delegate* unmanaged[Cdecl]) funcTable[0xF5F6378C4F3419D3UL]; var success = false; fn__setPedMaxHealth(&success, _ped, _value); if (!success) throw new Exception("Native execution failed"); @@ -77666,10 +77653,10 @@ public void SetPedMaxHealth(int _ped, int _value) } public int GetPedMaxHealth(IPlayer ped) => GetPedMaxHealth(ped.ScriptId); - public int GetPedMaxHealth(int _ped) + public int GetPedMaxHealth(uint _ped) { unsafe { - if (fn__getPedMaxHealth == null) fn__getPedMaxHealth = (delegate* unmanaged[Cdecl]) funcTable[0x4700A416E8324EF3UL]; + if (fn__getPedMaxHealth == null) fn__getPedMaxHealth = (delegate* unmanaged[Cdecl]) funcTable[0x4700A416E8324EF3UL]; var success = false; var result = fn__getPedMaxHealth(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77678,10 +77665,10 @@ public int GetPedMaxHealth(int _ped) } public void SetPedMaxTimeInWater(IPlayer ped, float value) => SetPedMaxTimeInWater(ped.ScriptId, value); - public void SetPedMaxTimeInWater(int _ped, float _value) + public void SetPedMaxTimeInWater(uint _ped, float _value) { unsafe { - if (fn__setPedMaxTimeInWater == null) fn__setPedMaxTimeInWater = (delegate* unmanaged[Cdecl]) funcTable[0x43C851690662113DUL]; + if (fn__setPedMaxTimeInWater == null) fn__setPedMaxTimeInWater = (delegate* unmanaged[Cdecl]) funcTable[0x43C851690662113DUL]; var success = false; fn__setPedMaxTimeInWater(&success, _ped, _value); if (!success) throw new Exception("Native execution failed"); @@ -77689,10 +77676,10 @@ public void SetPedMaxTimeInWater(int _ped, float _value) } public void SetPedMaxTimeUnderwater(IPlayer ped, float value) => SetPedMaxTimeUnderwater(ped.ScriptId, value); - public void SetPedMaxTimeUnderwater(int _ped, float _value) + public void SetPedMaxTimeUnderwater(uint _ped, float _value) { unsafe { - if (fn__setPedMaxTimeUnderwater == null) fn__setPedMaxTimeUnderwater = (delegate* unmanaged[Cdecl]) funcTable[0x6BA428C528D9E522UL]; + if (fn__setPedMaxTimeUnderwater == null) fn__setPedMaxTimeUnderwater = (delegate* unmanaged[Cdecl]) funcTable[0x6BA428C528D9E522UL]; var success = false; fn__setPedMaxTimeUnderwater(&success, _ped, _value); if (!success) throw new Exception("Native execution failed"); @@ -77700,23 +77687,23 @@ public void SetPedMaxTimeUnderwater(int _ped, float _value) } public void SetCorpseRagdollFriction(IPlayer ped, float p1) => SetCorpseRagdollFriction(ped.ScriptId, p1); - public void SetCorpseRagdollFriction(int _ped, float _p1) + public void SetCorpseRagdollFriction(uint _ped, float _p1) { unsafe { - if (fn__setCorpseRagdollFriction == null) fn__setCorpseRagdollFriction = (delegate* unmanaged[Cdecl]) funcTable[0x2735233A786B1BEFUL]; + if (fn__setCorpseRagdollFriction == null) fn__setCorpseRagdollFriction = (delegate* unmanaged[Cdecl]) funcTable[0x2735233A786B1BEFUL]; var success = false; fn__setCorpseRagdollFriction(&success, _ped, _p1); if (!success) throw new Exception("Native execution failed"); } } - public void SetPedVehicleForcedSeatUsage(IPlayer ped, int vehicle, int seatIndex, int flags, int p4) => SetPedVehicleForcedSeatUsage(ped.ScriptId, vehicle, seatIndex, flags, p4); - public void SetPedVehicleForcedSeatUsage(int ped, IVehicle vehicle, int seatIndex, int flags, int p4) => SetPedVehicleForcedSeatUsage(ped, vehicle.ScriptId, seatIndex, flags, p4); + public void SetPedVehicleForcedSeatUsage(IPlayer ped, uint vehicle, int seatIndex, int flags, int p4) => SetPedVehicleForcedSeatUsage(ped.ScriptId, vehicle, seatIndex, flags, p4); + public void SetPedVehicleForcedSeatUsage(uint ped, IVehicle vehicle, int seatIndex, int flags, int p4) => SetPedVehicleForcedSeatUsage(ped, vehicle.ScriptId, seatIndex, flags, p4); public void SetPedVehicleForcedSeatUsage(IPlayer ped, IVehicle vehicle, int seatIndex, int flags, int p4) => SetPedVehicleForcedSeatUsage(ped.ScriptId, vehicle.ScriptId, seatIndex, flags, p4); - public void SetPedVehicleForcedSeatUsage(int _ped, int _vehicle, int _seatIndex, int _flags, int _p4) + public void SetPedVehicleForcedSeatUsage(uint _ped, uint _vehicle, int _seatIndex, int _flags, int _p4) { unsafe { - if (fn__setPedVehicleForcedSeatUsage == null) fn__setPedVehicleForcedSeatUsage = (delegate* unmanaged[Cdecl]) funcTable[0x952F06BEECD775CCUL]; + if (fn__setPedVehicleForcedSeatUsage == null) fn__setPedVehicleForcedSeatUsage = (delegate* unmanaged[Cdecl]) funcTable[0x952F06BEECD775CCUL]; var success = false; fn__setPedVehicleForcedSeatUsage(&success, _ped, _vehicle, _seatIndex, _flags, _p4); if (!success) throw new Exception("Native execution failed"); @@ -77724,10 +77711,10 @@ public void SetPedVehicleForcedSeatUsage(int _ped, int _vehicle, int _seatIndex, } public void ClearAllPedVehicleForcedSeatUsage(IPlayer ped) => ClearAllPedVehicleForcedSeatUsage(ped.ScriptId); - public void ClearAllPedVehicleForcedSeatUsage(int _ped) + public void ClearAllPedVehicleForcedSeatUsage(uint _ped) { unsafe { - if (fn__clearAllPedVehicleForcedSeatUsage == null) fn__clearAllPedVehicleForcedSeatUsage = (delegate* unmanaged[Cdecl]) funcTable[0xE6CA85E7259CE16BUL]; + if (fn__clearAllPedVehicleForcedSeatUsage == null) fn__clearAllPedVehicleForcedSeatUsage = (delegate* unmanaged[Cdecl]) funcTable[0xE6CA85E7259CE16BUL]; var success = false; fn__clearAllPedVehicleForcedSeatUsage(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77745,10 +77732,10 @@ public void SetPedCanBeKnockedOffBike(int _p0, int _p1) } public void SetPedCanBeKnockedOffVehicle(IPlayer ped, int state) => SetPedCanBeKnockedOffVehicle(ped.ScriptId, state); - public void SetPedCanBeKnockedOffVehicle(int _ped, int _state) + public void SetPedCanBeKnockedOffVehicle(uint _ped, int _state) { unsafe { - if (fn__setPedCanBeKnockedOffVehicle == null) fn__setPedCanBeKnockedOffVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x7A6535691B477C48UL]; + if (fn__setPedCanBeKnockedOffVehicle == null) fn__setPedCanBeKnockedOffVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x7A6535691B477C48UL]; var success = false; fn__setPedCanBeKnockedOffVehicle(&success, _ped, _state); if (!success) throw new Exception("Native execution failed"); @@ -77756,10 +77743,10 @@ public void SetPedCanBeKnockedOffVehicle(int _ped, int _state) } public bool CanKnockPedOffVehicle(IPlayer ped) => CanKnockPedOffVehicle(ped.ScriptId); - public bool CanKnockPedOffVehicle(int _ped) + public bool CanKnockPedOffVehicle(uint _ped) { unsafe { - if (fn__canKnockPedOffVehicle == null) fn__canKnockPedOffVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x51AC07A44D4F5B8AUL]; + if (fn__canKnockPedOffVehicle == null) fn__canKnockPedOffVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x51AC07A44D4F5B8AUL]; var success = false; var result = fn__canKnockPedOffVehicle(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77768,10 +77755,10 @@ public bool CanKnockPedOffVehicle(int _ped) } public void KnockPedOffVehicle(IPlayer ped) => KnockPedOffVehicle(ped.ScriptId); - public void KnockPedOffVehicle(int _ped) + public void KnockPedOffVehicle(uint _ped) { unsafe { - if (fn__knockPedOffVehicle == null) fn__knockPedOffVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x45BBCBA77C29A841UL]; + if (fn__knockPedOffVehicle == null) fn__knockPedOffVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x45BBCBA77C29A841UL]; var success = false; fn__knockPedOffVehicle(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77779,20 +77766,20 @@ public void KnockPedOffVehicle(int _ped) } public void SetPedCoordsNoGang(IPlayer ped, float posX, float posY, float posZ) => SetPedCoordsNoGang(ped.ScriptId, posX, posY, posZ); - public void SetPedCoordsNoGang(int _ped, float _posX, float _posY, float _posZ) + public void SetPedCoordsNoGang(uint _ped, float _posX, float _posY, float _posZ) { unsafe { - if (fn__setPedCoordsNoGang == null) fn__setPedCoordsNoGang = (delegate* unmanaged[Cdecl]) funcTable[0x87052FE446E07247UL]; + if (fn__setPedCoordsNoGang == null) fn__setPedCoordsNoGang = (delegate* unmanaged[Cdecl]) funcTable[0x87052FE446E07247UL]; var success = false; fn__setPedCoordsNoGang(&success, _ped, _posX, _posY, _posZ); if (!success) throw new Exception("Native execution failed"); } } - public int GetPedAsGroupMember(int _groupID, int _memberNumber) + public uint GetPedAsGroupMember(int _groupID, int _memberNumber) { unsafe { - if (fn__getPedAsGroupMember == null) fn__getPedAsGroupMember = (delegate* unmanaged[Cdecl]) funcTable[0x51455483CF23ED97UL]; + if (fn__getPedAsGroupMember == null) fn__getPedAsGroupMember = (delegate* unmanaged[Cdecl]) funcTable[0x51455483CF23ED97UL]; var success = false; var result = fn__getPedAsGroupMember(&success, _groupID, _memberNumber); if (!success) throw new Exception("Native execution failed"); @@ -77800,10 +77787,10 @@ public int GetPedAsGroupMember(int _groupID, int _memberNumber) } } - public int GetPedAsGroupLeader(int _groupID) + public uint GetPedAsGroupLeader(int _groupID) { unsafe { - if (fn__getPedAsGroupLeader == null) fn__getPedAsGroupLeader = (delegate* unmanaged[Cdecl]) funcTable[0x5CCE68DBD5FE93ECUL]; + if (fn__getPedAsGroupLeader == null) fn__getPedAsGroupLeader = (delegate* unmanaged[Cdecl]) funcTable[0x5CCE68DBD5FE93ECUL]; var success = false; var result = fn__getPedAsGroupLeader(&success, _groupID); if (!success) throw new Exception("Native execution failed"); @@ -77812,10 +77799,10 @@ public int GetPedAsGroupLeader(int _groupID) } public void SetPedKeepTask(IPlayer ped, bool toggle) => SetPedKeepTask(ped.ScriptId, toggle); - public void SetPedKeepTask(int _ped, bool _toggle) + public void SetPedKeepTask(uint _ped, bool _toggle) { unsafe { - if (fn__setPedKeepTask == null) fn__setPedKeepTask = (delegate* unmanaged[Cdecl]) funcTable[0x971D38760FBC02EFUL]; + if (fn__setPedKeepTask == null) fn__setPedKeepTask = (delegate* unmanaged[Cdecl]) funcTable[0x971D38760FBC02EFUL]; var success = false; fn__setPedKeepTask(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -77823,10 +77810,10 @@ public void SetPedKeepTask(int _ped, bool _toggle) } public void SetPedAllowMinorReactionsAsMissionPed(IPlayer ped, bool toggle) => SetPedAllowMinorReactionsAsMissionPed(ped.ScriptId, toggle); - public void SetPedAllowMinorReactionsAsMissionPed(int _ped, bool _toggle) + public void SetPedAllowMinorReactionsAsMissionPed(uint _ped, bool _toggle) { unsafe { - if (fn__setPedAllowMinorReactionsAsMissionPed == null) fn__setPedAllowMinorReactionsAsMissionPed = (delegate* unmanaged[Cdecl]) funcTable[0x49E50BDB8BA4DAB2UL]; + if (fn__setPedAllowMinorReactionsAsMissionPed == null) fn__setPedAllowMinorReactionsAsMissionPed = (delegate* unmanaged[Cdecl]) funcTable[0x49E50BDB8BA4DAB2UL]; var success = false; fn__setPedAllowMinorReactionsAsMissionPed(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -77834,10 +77821,10 @@ public void SetPedAllowMinorReactionsAsMissionPed(int _ped, bool _toggle) } public bool IsPedSwimming(IPlayer ped) => IsPedSwimming(ped.ScriptId); - public bool IsPedSwimming(int _ped) + public bool IsPedSwimming(uint _ped) { unsafe { - if (fn__isPedSwimming == null) fn__isPedSwimming = (delegate* unmanaged[Cdecl]) funcTable[0x9DE327631295B4C2UL]; + if (fn__isPedSwimming == null) fn__isPedSwimming = (delegate* unmanaged[Cdecl]) funcTable[0x9DE327631295B4C2UL]; var success = false; var result = fn__isPedSwimming(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77846,10 +77833,10 @@ public bool IsPedSwimming(int _ped) } public bool IsPedSwimmingUnderWater(IPlayer ped) => IsPedSwimmingUnderWater(ped.ScriptId); - public bool IsPedSwimmingUnderWater(int _ped) + public bool IsPedSwimmingUnderWater(uint _ped) { unsafe { - if (fn__isPedSwimmingUnderWater == null) fn__isPedSwimmingUnderWater = (delegate* unmanaged[Cdecl]) funcTable[0xC024869A53992F34UL]; + if (fn__isPedSwimmingUnderWater == null) fn__isPedSwimmingUnderWater = (delegate* unmanaged[Cdecl]) funcTable[0xC024869A53992F34UL]; var success = false; var result = fn__isPedSwimmingUnderWater(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77858,10 +77845,10 @@ public bool IsPedSwimmingUnderWater(int _ped) } public void SetPedCoordsKeepVehicle(IPlayer ped, float posX, float posY, float posZ) => SetPedCoordsKeepVehicle(ped.ScriptId, posX, posY, posZ); - public void SetPedCoordsKeepVehicle(int _ped, float _posX, float _posY, float _posZ) + public void SetPedCoordsKeepVehicle(uint _ped, float _posX, float _posY, float _posZ) { unsafe { - if (fn__setPedCoordsKeepVehicle == null) fn__setPedCoordsKeepVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x9AFEFF481A85AB2EUL]; + if (fn__setPedCoordsKeepVehicle == null) fn__setPedCoordsKeepVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x9AFEFF481A85AB2EUL]; var success = false; fn__setPedCoordsKeepVehicle(&success, _ped, _posX, _posY, _posZ); if (!success) throw new Exception("Native execution failed"); @@ -77869,10 +77856,10 @@ public void SetPedCoordsKeepVehicle(int _ped, float _posX, float _posY, float _p } public void SetPedDiesInVehicle(IPlayer ped, bool toggle) => SetPedDiesInVehicle(ped.ScriptId, toggle); - public void SetPedDiesInVehicle(int _ped, bool _toggle) + public void SetPedDiesInVehicle(uint _ped, bool _toggle) { unsafe { - if (fn__setPedDiesInVehicle == null) fn__setPedDiesInVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x2A30922C90C9B42CUL]; + if (fn__setPedDiesInVehicle == null) fn__setPedDiesInVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x2A30922C90C9B42CUL]; var success = false; fn__setPedDiesInVehicle(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -77921,10 +77908,10 @@ public bool CanCreateRandomCops() } public void SetPedAsEnemy(IPlayer ped, bool toggle) => SetPedAsEnemy(ped.ScriptId, toggle); - public void SetPedAsEnemy(int _ped, bool _toggle) + public void SetPedAsEnemy(uint _ped, bool _toggle) { unsafe { - if (fn__setPedAsEnemy == null) fn__setPedAsEnemy = (delegate* unmanaged[Cdecl]) funcTable[0x02A0C9720B854BFAUL]; + if (fn__setPedAsEnemy == null) fn__setPedAsEnemy = (delegate* unmanaged[Cdecl]) funcTable[0x02A0C9720B854BFAUL]; var success = false; fn__setPedAsEnemy(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -77932,10 +77919,10 @@ public void SetPedAsEnemy(int _ped, bool _toggle) } public void SetPedCanSmashGlass(IPlayer ped, bool p1, bool p2) => SetPedCanSmashGlass(ped.ScriptId, p1, p2); - public void SetPedCanSmashGlass(int _ped, bool _p1, bool _p2) + public void SetPedCanSmashGlass(uint _ped, bool _p1, bool _p2) { unsafe { - if (fn__setPedCanSmashGlass == null) fn__setPedCanSmashGlass = (delegate* unmanaged[Cdecl]) funcTable[0x1CCE141467FF42A2UL]; + if (fn__setPedCanSmashGlass == null) fn__setPedCanSmashGlass = (delegate* unmanaged[Cdecl]) funcTable[0x1CCE141467FF42A2UL]; var success = false; fn__setPedCanSmashGlass(&success, _ped, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -77943,10 +77930,10 @@ public void SetPedCanSmashGlass(int _ped, bool _p1, bool _p2) } public bool IsPedInAnyTrain(IPlayer ped) => IsPedInAnyTrain(ped.ScriptId); - public bool IsPedInAnyTrain(int _ped) + public bool IsPedInAnyTrain(uint _ped) { unsafe { - if (fn__isPedInAnyTrain == null) fn__isPedInAnyTrain = (delegate* unmanaged[Cdecl]) funcTable[0x6F972C1AB75A1ED0UL]; + if (fn__isPedInAnyTrain == null) fn__isPedInAnyTrain = (delegate* unmanaged[Cdecl]) funcTable[0x6F972C1AB75A1ED0UL]; var success = false; var result = fn__isPedInAnyTrain(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77955,10 +77942,10 @@ public bool IsPedInAnyTrain(int _ped) } public bool IsPedGettingIntoAVehicle(IPlayer ped) => IsPedGettingIntoAVehicle(ped.ScriptId); - public bool IsPedGettingIntoAVehicle(int _ped) + public bool IsPedGettingIntoAVehicle(uint _ped) { unsafe { - if (fn__isPedGettingIntoAVehicle == null) fn__isPedGettingIntoAVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xBB062B2B5722478EUL]; + if (fn__isPedGettingIntoAVehicle == null) fn__isPedGettingIntoAVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xBB062B2B5722478EUL]; var success = false; var result = fn__isPedGettingIntoAVehicle(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77967,10 +77954,10 @@ public bool IsPedGettingIntoAVehicle(int _ped) } public bool IsPedTryingToEnterALockedVehicle(IPlayer ped) => IsPedTryingToEnterALockedVehicle(ped.ScriptId); - public bool IsPedTryingToEnterALockedVehicle(int _ped) + public bool IsPedTryingToEnterALockedVehicle(uint _ped) { unsafe { - if (fn__isPedTryingToEnterALockedVehicle == null) fn__isPedTryingToEnterALockedVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x44D28D5DDFE5F68CUL]; + if (fn__isPedTryingToEnterALockedVehicle == null) fn__isPedTryingToEnterALockedVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x44D28D5DDFE5F68CUL]; var success = false; var result = fn__isPedTryingToEnterALockedVehicle(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -77979,10 +77966,10 @@ public bool IsPedTryingToEnterALockedVehicle(int _ped) } public void SetEnableHandcuffs(IPlayer ped, bool toggle) => SetEnableHandcuffs(ped.ScriptId, toggle); - public void SetEnableHandcuffs(int _ped, bool _toggle) + public void SetEnableHandcuffs(uint _ped, bool _toggle) { unsafe { - if (fn__setEnableHandcuffs == null) fn__setEnableHandcuffs = (delegate* unmanaged[Cdecl]) funcTable[0xDF1AF8B5D56542FAUL]; + if (fn__setEnableHandcuffs == null) fn__setEnableHandcuffs = (delegate* unmanaged[Cdecl]) funcTable[0xDF1AF8B5D56542FAUL]; var success = false; fn__setEnableHandcuffs(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -77990,10 +77977,10 @@ public void SetEnableHandcuffs(int _ped, bool _toggle) } public void SetEnableBoundAnkles(IPlayer ped, bool toggle) => SetEnableBoundAnkles(ped.ScriptId, toggle); - public void SetEnableBoundAnkles(int _ped, bool _toggle) + public void SetEnableBoundAnkles(uint _ped, bool _toggle) { unsafe { - if (fn__setEnableBoundAnkles == null) fn__setEnableBoundAnkles = (delegate* unmanaged[Cdecl]) funcTable[0xC52E0F855C58FC2EUL]; + if (fn__setEnableBoundAnkles == null) fn__setEnableBoundAnkles = (delegate* unmanaged[Cdecl]) funcTable[0xC52E0F855C58FC2EUL]; var success = false; fn__setEnableBoundAnkles(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -78001,10 +77988,10 @@ public void SetEnableBoundAnkles(int _ped, bool _toggle) } public void SetEnableScuba(IPlayer ped, bool toggle) => SetEnableScuba(ped.ScriptId, toggle); - public void SetEnableScuba(int _ped, bool _toggle) + public void SetEnableScuba(uint _ped, bool _toggle) { unsafe { - if (fn__setEnableScuba == null) fn__setEnableScuba = (delegate* unmanaged[Cdecl]) funcTable[0xF99F62004024D506UL]; + if (fn__setEnableScuba == null) fn__setEnableScuba = (delegate* unmanaged[Cdecl]) funcTable[0xF99F62004024D506UL]; var success = false; fn__setEnableScuba(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -78012,10 +77999,10 @@ public void SetEnableScuba(int _ped, bool _toggle) } public void SetCanAttackFriendly(IPlayer ped, bool toggle, bool p2) => SetCanAttackFriendly(ped.ScriptId, toggle, p2); - public void SetCanAttackFriendly(int _ped, bool _toggle, bool _p2) + public void SetCanAttackFriendly(uint _ped, bool _toggle, bool _p2) { unsafe { - if (fn__setCanAttackFriendly == null) fn__setCanAttackFriendly = (delegate* unmanaged[Cdecl]) funcTable[0xB3B1CB349FF9C75DUL]; + if (fn__setCanAttackFriendly == null) fn__setCanAttackFriendly = (delegate* unmanaged[Cdecl]) funcTable[0xB3B1CB349FF9C75DUL]; var success = false; fn__setCanAttackFriendly(&success, _ped, (byte) (_toggle ? 1 : 0), (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -78023,10 +78010,10 @@ public void SetCanAttackFriendly(int _ped, bool _toggle, bool _p2) } public int GetPedAlertness(IPlayer ped) => GetPedAlertness(ped.ScriptId); - public int GetPedAlertness(int _ped) + public int GetPedAlertness(uint _ped) { unsafe { - if (fn__getPedAlertness == null) fn__getPedAlertness = (delegate* unmanaged[Cdecl]) funcTable[0xF6AA118530443FD2UL]; + if (fn__getPedAlertness == null) fn__getPedAlertness = (delegate* unmanaged[Cdecl]) funcTable[0xF6AA118530443FD2UL]; var success = false; var result = fn__getPedAlertness(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -78035,10 +78022,10 @@ public int GetPedAlertness(int _ped) } public void SetPedAlertness(IPlayer ped, int value) => SetPedAlertness(ped.ScriptId, value); - public void SetPedAlertness(int _ped, int _value) + public void SetPedAlertness(uint _ped, int _value) { unsafe { - if (fn__setPedAlertness == null) fn__setPedAlertness = (delegate* unmanaged[Cdecl]) funcTable[0xDBA71115ED9941A6UL]; + if (fn__setPedAlertness == null) fn__setPedAlertness = (delegate* unmanaged[Cdecl]) funcTable[0xDBA71115ED9941A6UL]; var success = false; fn__setPedAlertness(&success, _ped, _value); if (!success) throw new Exception("Native execution failed"); @@ -78046,10 +78033,10 @@ public void SetPedAlertness(int _ped, int _value) } public void SetPedGetOutUpsideDownVehicle(IPlayer ped, bool toggle) => SetPedGetOutUpsideDownVehicle(ped.ScriptId, toggle); - public void SetPedGetOutUpsideDownVehicle(int _ped, bool _toggle) + public void SetPedGetOutUpsideDownVehicle(uint _ped, bool _toggle) { unsafe { - if (fn__setPedGetOutUpsideDownVehicle == null) fn__setPedGetOutUpsideDownVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xBC0ED94165A48BC2UL]; + if (fn__setPedGetOutUpsideDownVehicle == null) fn__setPedGetOutUpsideDownVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xBC0ED94165A48BC2UL]; var success = false; fn__setPedGetOutUpsideDownVehicle(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -78057,23 +78044,23 @@ public void SetPedGetOutUpsideDownVehicle(int _ped, bool _toggle) } public void SetPedMovementClipset(IPlayer ped, string clipSet, float transitionSpeed) => SetPedMovementClipset(ped.ScriptId, clipSet, transitionSpeed); - public void SetPedMovementClipset(int _ped, string _clipSet, float _transitionSpeed) + public void SetPedMovementClipset(uint _ped, string _clipSet, float _transitionSpeed) { unsafe { - if (fn__setPedMovementClipset == null) fn__setPedMovementClipset = (delegate* unmanaged[Cdecl]) funcTable[0xAF8A94EDE7712BEFUL]; + if (fn__setPedMovementClipset == null) fn__setPedMovementClipset = (delegate* unmanaged[Cdecl]) funcTable[0xAF8A94EDE7712BEFUL]; var success = false; - var ptr_clipSet = _clipSet == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_clipSet); + var ptr_clipSet = MemoryUtils.StringToHGlobalUtf8(_clipSet); fn__setPedMovementClipset(&success, _ped, ptr_clipSet, _transitionSpeed); - if (ptr_clipSet != IntPtr.Zero) Marshal.FreeHGlobal(ptr_clipSet); + Marshal.FreeHGlobal(ptr_clipSet); if (!success) throw new Exception("Native execution failed"); } } public void ResetPedMovementClipset(IPlayer ped, float p1) => ResetPedMovementClipset(ped.ScriptId, p1); - public void ResetPedMovementClipset(int _ped, float _p1) + public void ResetPedMovementClipset(uint _ped, float _p1) { unsafe { - if (fn__resetPedMovementClipset == null) fn__resetPedMovementClipset = (delegate* unmanaged[Cdecl]) funcTable[0xAA74EC0CB0AAEA2CUL]; + if (fn__resetPedMovementClipset == null) fn__resetPedMovementClipset = (delegate* unmanaged[Cdecl]) funcTable[0xAA74EC0CB0AAEA2CUL]; var success = false; fn__resetPedMovementClipset(&success, _ped, _p1); if (!success) throw new Exception("Native execution failed"); @@ -78081,23 +78068,23 @@ public void ResetPedMovementClipset(int _ped, float _p1) } public void SetPedStrafeClipset(IPlayer ped, string clipSet) => SetPedStrafeClipset(ped.ScriptId, clipSet); - public void SetPedStrafeClipset(int _ped, string _clipSet) + public void SetPedStrafeClipset(uint _ped, string _clipSet) { unsafe { - if (fn__setPedStrafeClipset == null) fn__setPedStrafeClipset = (delegate* unmanaged[Cdecl]) funcTable[0x29A28F3F8CF6D854UL]; + if (fn__setPedStrafeClipset == null) fn__setPedStrafeClipset = (delegate* unmanaged[Cdecl]) funcTable[0x29A28F3F8CF6D854UL]; var success = false; - var ptr_clipSet = _clipSet == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_clipSet); + var ptr_clipSet = MemoryUtils.StringToHGlobalUtf8(_clipSet); fn__setPedStrafeClipset(&success, _ped, ptr_clipSet); - if (ptr_clipSet != IntPtr.Zero) Marshal.FreeHGlobal(ptr_clipSet); + Marshal.FreeHGlobal(ptr_clipSet); if (!success) throw new Exception("Native execution failed"); } } public void ResetPedStrafeClipset(IPlayer ped) => ResetPedStrafeClipset(ped.ScriptId); - public void ResetPedStrafeClipset(int _ped) + public void ResetPedStrafeClipset(uint _ped) { unsafe { - if (fn__resetPedStrafeClipset == null) fn__resetPedStrafeClipset = (delegate* unmanaged[Cdecl]) funcTable[0x20510814175EA477UL]; + if (fn__resetPedStrafeClipset == null) fn__resetPedStrafeClipset = (delegate* unmanaged[Cdecl]) funcTable[0x20510814175EA477UL]; var success = false; fn__resetPedStrafeClipset(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -78105,23 +78092,23 @@ public void ResetPedStrafeClipset(int _ped) } public void SetPedWeaponMovementClipset(IPlayer ped, string clipSet) => SetPedWeaponMovementClipset(ped.ScriptId, clipSet); - public void SetPedWeaponMovementClipset(int _ped, string _clipSet) + public void SetPedWeaponMovementClipset(uint _ped, string _clipSet) { unsafe { - if (fn__setPedWeaponMovementClipset == null) fn__setPedWeaponMovementClipset = (delegate* unmanaged[Cdecl]) funcTable[0x2622E35B77D3ACA2UL]; + if (fn__setPedWeaponMovementClipset == null) fn__setPedWeaponMovementClipset = (delegate* unmanaged[Cdecl]) funcTable[0x2622E35B77D3ACA2UL]; var success = false; - var ptr_clipSet = _clipSet == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_clipSet); + var ptr_clipSet = MemoryUtils.StringToHGlobalUtf8(_clipSet); fn__setPedWeaponMovementClipset(&success, _ped, ptr_clipSet); - if (ptr_clipSet != IntPtr.Zero) Marshal.FreeHGlobal(ptr_clipSet); + Marshal.FreeHGlobal(ptr_clipSet); if (!success) throw new Exception("Native execution failed"); } } public void ResetPedWeaponMovementClipset(IPlayer ped) => ResetPedWeaponMovementClipset(ped.ScriptId); - public void ResetPedWeaponMovementClipset(int _ped) + public void ResetPedWeaponMovementClipset(uint _ped) { unsafe { - if (fn__resetPedWeaponMovementClipset == null) fn__resetPedWeaponMovementClipset = (delegate* unmanaged[Cdecl]) funcTable[0x97B0DB5B4AA74E77UL]; + if (fn__resetPedWeaponMovementClipset == null) fn__resetPedWeaponMovementClipset = (delegate* unmanaged[Cdecl]) funcTable[0x97B0DB5B4AA74E77UL]; var success = false; fn__resetPedWeaponMovementClipset(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -78129,23 +78116,23 @@ public void ResetPedWeaponMovementClipset(int _ped) } public void SetPedDriveByClipsetOverride(IPlayer ped, string clipset) => SetPedDriveByClipsetOverride(ped.ScriptId, clipset); - public void SetPedDriveByClipsetOverride(int _ped, string _clipset) + public void SetPedDriveByClipsetOverride(uint _ped, string _clipset) { unsafe { - if (fn__setPedDriveByClipsetOverride == null) fn__setPedDriveByClipsetOverride = (delegate* unmanaged[Cdecl]) funcTable[0xED34AB6C5CB36520UL]; + if (fn__setPedDriveByClipsetOverride == null) fn__setPedDriveByClipsetOverride = (delegate* unmanaged[Cdecl]) funcTable[0xED34AB6C5CB36520UL]; var success = false; - var ptr_clipset = _clipset == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_clipset); + var ptr_clipset = MemoryUtils.StringToHGlobalUtf8(_clipset); fn__setPedDriveByClipsetOverride(&success, _ped, ptr_clipset); - if (ptr_clipset != IntPtr.Zero) Marshal.FreeHGlobal(ptr_clipset); + Marshal.FreeHGlobal(ptr_clipset); if (!success) throw new Exception("Native execution failed"); } } public void ClearPedDriveByClipsetOverride(IPlayer ped) => ClearPedDriveByClipsetOverride(ped.ScriptId); - public void ClearPedDriveByClipsetOverride(int _ped) + public void ClearPedDriveByClipsetOverride(uint _ped) { unsafe { - if (fn__clearPedDriveByClipsetOverride == null) fn__clearPedDriveByClipsetOverride = (delegate* unmanaged[Cdecl]) funcTable[0x4AFE3690D7E0B5ACUL]; + if (fn__clearPedDriveByClipsetOverride == null) fn__clearPedDriveByClipsetOverride = (delegate* unmanaged[Cdecl]) funcTable[0x4AFE3690D7E0B5ACUL]; var success = false; fn__clearPedDriveByClipsetOverride(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -78153,23 +78140,23 @@ public void ClearPedDriveByClipsetOverride(int _ped) } public void SetPedMotionInCoverClipsetOverride(IPlayer ped, string p1) => SetPedMotionInCoverClipsetOverride(ped.ScriptId, p1); - public void SetPedMotionInCoverClipsetOverride(int _ped, string _p1) + public void SetPedMotionInCoverClipsetOverride(uint _ped, string _p1) { unsafe { - if (fn__setPedMotionInCoverClipsetOverride == null) fn__setPedMotionInCoverClipsetOverride = (delegate* unmanaged[Cdecl]) funcTable[0x9DBA107B4937F809UL]; + if (fn__setPedMotionInCoverClipsetOverride == null) fn__setPedMotionInCoverClipsetOverride = (delegate* unmanaged[Cdecl]) funcTable[0x9DBA107B4937F809UL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); fn__setPedMotionInCoverClipsetOverride(&success, _ped, ptr_p1); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); } } public void ClearPedMotionInCoverClipsetOverride(IPlayer ped) => ClearPedMotionInCoverClipsetOverride(ped.ScriptId); - public void ClearPedMotionInCoverClipsetOverride(int _ped) + public void ClearPedMotionInCoverClipsetOverride(uint _ped) { unsafe { - if (fn__clearPedMotionInCoverClipsetOverride == null) fn__clearPedMotionInCoverClipsetOverride = (delegate* unmanaged[Cdecl]) funcTable[0xC79196DCB36F6121UL]; + if (fn__clearPedMotionInCoverClipsetOverride == null) fn__clearPedMotionInCoverClipsetOverride = (delegate* unmanaged[Cdecl]) funcTable[0xC79196DCB36F6121UL]; var success = false; fn__clearPedMotionInCoverClipsetOverride(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -78177,10 +78164,10 @@ public void ClearPedMotionInCoverClipsetOverride(int _ped) } public void ClearPedFallUpperBodyClipsetOverride(IPlayer ped) => ClearPedFallUpperBodyClipsetOverride(ped.ScriptId); - public void ClearPedFallUpperBodyClipsetOverride(int _ped) + public void ClearPedFallUpperBodyClipsetOverride(uint _ped) { unsafe { - if (fn__clearPedFallUpperBodyClipsetOverride == null) fn__clearPedFallUpperBodyClipsetOverride = (delegate* unmanaged[Cdecl]) funcTable[0x80054D7FCC70EEC6UL]; + if (fn__clearPedFallUpperBodyClipsetOverride == null) fn__clearPedFallUpperBodyClipsetOverride = (delegate* unmanaged[Cdecl]) funcTable[0x80054D7FCC70EEC6UL]; var success = false; fn__clearPedFallUpperBodyClipsetOverride(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -78188,10 +78175,10 @@ public void ClearPedFallUpperBodyClipsetOverride(int _ped) } public void SetPedInVehicleContext(IPlayer ped, uint context) => SetPedInVehicleContext(ped.ScriptId, context); - public void SetPedInVehicleContext(int _ped, uint _context) + public void SetPedInVehicleContext(uint _ped, uint _context) { unsafe { - if (fn__setPedInVehicleContext == null) fn__setPedInVehicleContext = (delegate* unmanaged[Cdecl]) funcTable[0x530071295899A8C6UL]; + if (fn__setPedInVehicleContext == null) fn__setPedInVehicleContext = (delegate* unmanaged[Cdecl]) funcTable[0x530071295899A8C6UL]; var success = false; fn__setPedInVehicleContext(&success, _ped, _context); if (!success) throw new Exception("Native execution failed"); @@ -78199,10 +78186,10 @@ public void SetPedInVehicleContext(int _ped, uint _context) } public void ResetPedInVehicleContext(IPlayer ped) => ResetPedInVehicleContext(ped.ScriptId); - public void ResetPedInVehicleContext(int _ped) + public void ResetPedInVehicleContext(uint _ped) { unsafe { - if (fn__resetPedInVehicleContext == null) fn__resetPedInVehicleContext = (delegate* unmanaged[Cdecl]) funcTable[0x22EF8FF8778030EBUL]; + if (fn__resetPedInVehicleContext == null) fn__resetPedInVehicleContext = (delegate* unmanaged[Cdecl]) funcTable[0x22EF8FF8778030EBUL]; var success = false; fn__resetPedInVehicleContext(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -78210,41 +78197,41 @@ public void ResetPedInVehicleContext(int _ped) } public bool IsScriptedScenarioPedUsingConditionalAnim(IPlayer ped, string animDict, string anim) => IsScriptedScenarioPedUsingConditionalAnim(ped.ScriptId, animDict, anim); - public bool IsScriptedScenarioPedUsingConditionalAnim(int _ped, string _animDict, string _anim) + public bool IsScriptedScenarioPedUsingConditionalAnim(uint _ped, string _animDict, string _anim) { unsafe { - if (fn__isScriptedScenarioPedUsingConditionalAnim == null) fn__isScriptedScenarioPedUsingConditionalAnim = (delegate* unmanaged[Cdecl]) funcTable[0x6EC47A344923E1EDUL]; + if (fn__isScriptedScenarioPedUsingConditionalAnim == null) fn__isScriptedScenarioPedUsingConditionalAnim = (delegate* unmanaged[Cdecl]) funcTable[0x6EC47A344923E1EDUL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); - var ptr_anim = _anim == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_anim); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_anim = MemoryUtils.StringToHGlobalUtf8(_anim); var result = fn__isScriptedScenarioPedUsingConditionalAnim(&success, _ped, ptr_animDict, ptr_anim); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); - if (ptr_anim != IntPtr.Zero) Marshal.FreeHGlobal(ptr_anim); + Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_anim); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public void SetPedAlternateWalkAnim(IPlayer ped, string animDict, string animName, float p3, bool p4) => SetPedAlternateWalkAnim(ped.ScriptId, animDict, animName, p3, p4); - public void SetPedAlternateWalkAnim(int _ped, string _animDict, string _animName, float _p3, bool _p4) + public void SetPedAlternateWalkAnim(uint _ped, string _animDict, string _animName, float _p3, bool _p4) { unsafe { - if (fn__setPedAlternateWalkAnim == null) fn__setPedAlternateWalkAnim = (delegate* unmanaged[Cdecl]) funcTable[0x6C60394CB4F75E9AUL]; + if (fn__setPedAlternateWalkAnim == null) fn__setPedAlternateWalkAnim = (delegate* unmanaged[Cdecl]) funcTable[0x6C60394CB4F75E9AUL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); fn__setPedAlternateWalkAnim(&success, _ped, ptr_animDict, ptr_animName, _p3, (byte) (_p4 ? 1 : 0)); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animName); if (!success) throw new Exception("Native execution failed"); } } public void ClearPedAlternateWalkAnim(IPlayer ped, float p1) => ClearPedAlternateWalkAnim(ped.ScriptId, p1); - public void ClearPedAlternateWalkAnim(int _ped, float _p1) + public void ClearPedAlternateWalkAnim(uint _ped, float _p1) { unsafe { - if (fn__clearPedAlternateWalkAnim == null) fn__clearPedAlternateWalkAnim = (delegate* unmanaged[Cdecl]) funcTable[0x8844BBFCE30AA9E9UL]; + if (fn__clearPedAlternateWalkAnim == null) fn__clearPedAlternateWalkAnim = (delegate* unmanaged[Cdecl]) funcTable[0x8844BBFCE30AA9E9UL]; var success = false; fn__clearPedAlternateWalkAnim(&success, _ped, _p1); if (!success) throw new Exception("Native execution failed"); @@ -78252,25 +78239,25 @@ public void ClearPedAlternateWalkAnim(int _ped, float _p1) } public void SetPedAlternateMovementAnim(IPlayer ped, int stance, string animDictionary, string animationName, float p4, bool p5) => SetPedAlternateMovementAnim(ped.ScriptId, stance, animDictionary, animationName, p4, p5); - public void SetPedAlternateMovementAnim(int _ped, int _stance, string _animDictionary, string _animationName, float _p4, bool _p5) + public void SetPedAlternateMovementAnim(uint _ped, int _stance, string _animDictionary, string _animationName, float _p4, bool _p5) { unsafe { - if (fn__setPedAlternateMovementAnim == null) fn__setPedAlternateMovementAnim = (delegate* unmanaged[Cdecl]) funcTable[0x90A43CC281FFAB46UL]; + if (fn__setPedAlternateMovementAnim == null) fn__setPedAlternateMovementAnim = (delegate* unmanaged[Cdecl]) funcTable[0x90A43CC281FFAB46UL]; var success = false; - var ptr_animDictionary = _animDictionary == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDictionary); - var ptr_animationName = _animationName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animationName); + var ptr_animDictionary = MemoryUtils.StringToHGlobalUtf8(_animDictionary); + var ptr_animationName = MemoryUtils.StringToHGlobalUtf8(_animationName); fn__setPedAlternateMovementAnim(&success, _ped, _stance, ptr_animDictionary, ptr_animationName, _p4, (byte) (_p5 ? 1 : 0)); - if (ptr_animDictionary != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDictionary); - if (ptr_animationName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animationName); + Marshal.FreeHGlobal(ptr_animDictionary); + Marshal.FreeHGlobal(ptr_animationName); if (!success) throw new Exception("Native execution failed"); } } public void ClearPedAlternateMovementAnim(IPlayer ped, int stance, float p2) => ClearPedAlternateMovementAnim(ped.ScriptId, stance, p2); - public void ClearPedAlternateMovementAnim(int _ped, int _stance, float _p2) + public void ClearPedAlternateMovementAnim(uint _ped, int _stance, float _p2) { unsafe { - if (fn__clearPedAlternateMovementAnim == null) fn__clearPedAlternateMovementAnim = (delegate* unmanaged[Cdecl]) funcTable[0xD8D19675ED5FBDCEUL]; + if (fn__clearPedAlternateMovementAnim == null) fn__clearPedAlternateMovementAnim = (delegate* unmanaged[Cdecl]) funcTable[0xD8D19675ED5FBDCEUL]; var success = false; fn__clearPedAlternateMovementAnim(&success, _ped, _stance, _p2); if (!success) throw new Exception("Native execution failed"); @@ -78278,14 +78265,14 @@ public void ClearPedAlternateMovementAnim(int _ped, int _stance, float _p2) } public void SetPedGestureGroup(IPlayer ped, string animGroupGesture) => SetPedGestureGroup(ped.ScriptId, animGroupGesture); - public void SetPedGestureGroup(int _ped, string _animGroupGesture) + public void SetPedGestureGroup(uint _ped, string _animGroupGesture) { unsafe { - if (fn__setPedGestureGroup == null) fn__setPedGestureGroup = (delegate* unmanaged[Cdecl]) funcTable[0xDDF803377F94AAA8UL]; + if (fn__setPedGestureGroup == null) fn__setPedGestureGroup = (delegate* unmanaged[Cdecl]) funcTable[0xDDF803377F94AAA8UL]; var success = false; - var ptr_animGroupGesture = _animGroupGesture == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animGroupGesture); + var ptr_animGroupGesture = MemoryUtils.StringToHGlobalUtf8(_animGroupGesture); fn__setPedGestureGroup(&success, _ped, ptr_animGroupGesture); - if (ptr_animGroupGesture != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animGroupGesture); + Marshal.FreeHGlobal(ptr_animGroupGesture); if (!success) throw new Exception("Native execution failed"); } } @@ -78295,11 +78282,11 @@ public Vector3 GetAnimInitialOffsetPosition(string _animDict, string _animName, unsafe { if (fn__getAnimInitialOffsetPosition == null) fn__getAnimInitialOffsetPosition = (delegate* unmanaged[Cdecl]) funcTable[0xBE22B26DD764C040UL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); var result = fn__getAnimInitialOffsetPosition(&success, ptr_animDict, ptr_animName, _x, _y, _z, _xRot, _yRot, _zRot, _p8, _p9); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animName); if (!success) throw new Exception("Native execution failed"); return result; } @@ -78310,21 +78297,21 @@ public Vector3 GetAnimInitialOffsetRotation(string _animDict, string _animName, unsafe { if (fn__getAnimInitialOffsetRotation == null) fn__getAnimInitialOffsetRotation = (delegate* unmanaged[Cdecl]) funcTable[0x4B805E6046EE9E47UL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); var result = fn__getAnimInitialOffsetRotation(&success, ptr_animDict, ptr_animName, _x, _y, _z, _xRot, _yRot, _zRot, _p8, _p9); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animName); if (!success) throw new Exception("Native execution failed"); return result; } } public int GetPedDrawableVariation(IPlayer ped, int componentId) => GetPedDrawableVariation(ped.ScriptId, componentId); - public int GetPedDrawableVariation(int _ped, int _componentId) + public int GetPedDrawableVariation(uint _ped, int _componentId) { unsafe { - if (fn__getPedDrawableVariation == null) fn__getPedDrawableVariation = (delegate* unmanaged[Cdecl]) funcTable[0x67F3780DD425D4FCUL]; + if (fn__getPedDrawableVariation == null) fn__getPedDrawableVariation = (delegate* unmanaged[Cdecl]) funcTable[0x67F3780DD425D4FCUL]; var success = false; var result = fn__getPedDrawableVariation(&success, _ped, _componentId); if (!success) throw new Exception("Native execution failed"); @@ -78333,10 +78320,10 @@ public int GetPedDrawableVariation(int _ped, int _componentId) } public int GetNumberOfPedDrawableVariations(IPlayer ped, int componentId) => GetNumberOfPedDrawableVariations(ped.ScriptId, componentId); - public int GetNumberOfPedDrawableVariations(int _ped, int _componentId) + public int GetNumberOfPedDrawableVariations(uint _ped, int _componentId) { unsafe { - if (fn__getNumberOfPedDrawableVariations == null) fn__getNumberOfPedDrawableVariations = (delegate* unmanaged[Cdecl]) funcTable[0x27561561732A7842UL]; + if (fn__getNumberOfPedDrawableVariations == null) fn__getNumberOfPedDrawableVariations = (delegate* unmanaged[Cdecl]) funcTable[0x27561561732A7842UL]; var success = false; var result = fn__getNumberOfPedDrawableVariations(&success, _ped, _componentId); if (!success) throw new Exception("Native execution failed"); @@ -78345,10 +78332,10 @@ public int GetNumberOfPedDrawableVariations(int _ped, int _componentId) } public int GetPedTextureVariation(IPlayer ped, int componentId) => GetPedTextureVariation(ped.ScriptId, componentId); - public int GetPedTextureVariation(int _ped, int _componentId) + public int GetPedTextureVariation(uint _ped, int _componentId) { unsafe { - if (fn__getPedTextureVariation == null) fn__getPedTextureVariation = (delegate* unmanaged[Cdecl]) funcTable[0x04A355E041E004E6UL]; + if (fn__getPedTextureVariation == null) fn__getPedTextureVariation = (delegate* unmanaged[Cdecl]) funcTable[0x04A355E041E004E6UL]; var success = false; var result = fn__getPedTextureVariation(&success, _ped, _componentId); if (!success) throw new Exception("Native execution failed"); @@ -78357,10 +78344,10 @@ public int GetPedTextureVariation(int _ped, int _componentId) } public int GetNumberOfPedTextureVariations(IPlayer ped, int componentId, int drawableId) => GetNumberOfPedTextureVariations(ped.ScriptId, componentId, drawableId); - public int GetNumberOfPedTextureVariations(int _ped, int _componentId, int _drawableId) + public int GetNumberOfPedTextureVariations(uint _ped, int _componentId, int _drawableId) { unsafe { - if (fn__getNumberOfPedTextureVariations == null) fn__getNumberOfPedTextureVariations = (delegate* unmanaged[Cdecl]) funcTable[0x8F7156A3142A6BADUL]; + if (fn__getNumberOfPedTextureVariations == null) fn__getNumberOfPedTextureVariations = (delegate* unmanaged[Cdecl]) funcTable[0x8F7156A3142A6BADUL]; var success = false; var result = fn__getNumberOfPedTextureVariations(&success, _ped, _componentId, _drawableId); if (!success) throw new Exception("Native execution failed"); @@ -78369,10 +78356,10 @@ public int GetNumberOfPedTextureVariations(int _ped, int _componentId, int _draw } public int GetNumberOfPedPropDrawableVariations(IPlayer ped, int propId) => GetNumberOfPedPropDrawableVariations(ped.ScriptId, propId); - public int GetNumberOfPedPropDrawableVariations(int _ped, int _propId) + public int GetNumberOfPedPropDrawableVariations(uint _ped, int _propId) { unsafe { - if (fn__getNumberOfPedPropDrawableVariations == null) fn__getNumberOfPedPropDrawableVariations = (delegate* unmanaged[Cdecl]) funcTable[0x5FAF9754E789FB47UL]; + if (fn__getNumberOfPedPropDrawableVariations == null) fn__getNumberOfPedPropDrawableVariations = (delegate* unmanaged[Cdecl]) funcTable[0x5FAF9754E789FB47UL]; var success = false; var result = fn__getNumberOfPedPropDrawableVariations(&success, _ped, _propId); if (!success) throw new Exception("Native execution failed"); @@ -78381,10 +78368,10 @@ public int GetNumberOfPedPropDrawableVariations(int _ped, int _propId) } public int GetNumberOfPedPropTextureVariations(IPlayer ped, int propId, int drawableId) => GetNumberOfPedPropTextureVariations(ped.ScriptId, propId, drawableId); - public int GetNumberOfPedPropTextureVariations(int _ped, int _propId, int _drawableId) + public int GetNumberOfPedPropTextureVariations(uint _ped, int _propId, int _drawableId) { unsafe { - if (fn__getNumberOfPedPropTextureVariations == null) fn__getNumberOfPedPropTextureVariations = (delegate* unmanaged[Cdecl]) funcTable[0xA6E7F1CEB523E171UL]; + if (fn__getNumberOfPedPropTextureVariations == null) fn__getNumberOfPedPropTextureVariations = (delegate* unmanaged[Cdecl]) funcTable[0xA6E7F1CEB523E171UL]; var success = false; var result = fn__getNumberOfPedPropTextureVariations(&success, _ped, _propId, _drawableId); if (!success) throw new Exception("Native execution failed"); @@ -78393,10 +78380,10 @@ public int GetNumberOfPedPropTextureVariations(int _ped, int _propId, int _drawa } public int GetPedPaletteVariation(IPlayer ped, int componentId) => GetPedPaletteVariation(ped.ScriptId, componentId); - public int GetPedPaletteVariation(int _ped, int _componentId) + public int GetPedPaletteVariation(uint _ped, int _componentId) { unsafe { - if (fn__getPedPaletteVariation == null) fn__getPedPaletteVariation = (delegate* unmanaged[Cdecl]) funcTable[0xE3DD5F2A84B42281UL]; + if (fn__getPedPaletteVariation == null) fn__getPedPaletteVariation = (delegate* unmanaged[Cdecl]) funcTable[0xE3DD5F2A84B42281UL]; var success = false; var result = fn__getPedPaletteVariation(&success, _ped, _componentId); if (!success) throw new Exception("Native execution failed"); @@ -78442,10 +78429,10 @@ public int GetFmFemaleShopPedApparelItemIndex(int _p0) } public bool IsPedComponentVariationValid(IPlayer ped, int componentId, int drawableId, int textureId) => IsPedComponentVariationValid(ped.ScriptId, componentId, drawableId, textureId); - public bool IsPedComponentVariationValid(int _ped, int _componentId, int _drawableId, int _textureId) + public bool IsPedComponentVariationValid(uint _ped, int _componentId, int _drawableId, int _textureId) { unsafe { - if (fn__isPedComponentVariationValid == null) fn__isPedComponentVariationValid = (delegate* unmanaged[Cdecl]) funcTable[0xE825F6B6CEA7671DUL]; + if (fn__isPedComponentVariationValid == null) fn__isPedComponentVariationValid = (delegate* unmanaged[Cdecl]) funcTable[0xE825F6B6CEA7671DUL]; var success = false; var result = fn__isPedComponentVariationValid(&success, _ped, _componentId, _drawableId, _textureId); if (!success) throw new Exception("Native execution failed"); @@ -78454,10 +78441,10 @@ public bool IsPedComponentVariationValid(int _ped, int _componentId, int _drawab } public void SetPedComponentVariation(IPlayer ped, int componentId, int drawableId, int textureId, int paletteId) => SetPedComponentVariation(ped.ScriptId, componentId, drawableId, textureId, paletteId); - public void SetPedComponentVariation(int _ped, int _componentId, int _drawableId, int _textureId, int _paletteId) + public void SetPedComponentVariation(uint _ped, int _componentId, int _drawableId, int _textureId, int _paletteId) { unsafe { - if (fn__setPedComponentVariation == null) fn__setPedComponentVariation = (delegate* unmanaged[Cdecl]) funcTable[0x262B14F48D29DE80UL]; + if (fn__setPedComponentVariation == null) fn__setPedComponentVariation = (delegate* unmanaged[Cdecl]) funcTable[0x262B14F48D29DE80UL]; var success = false; fn__setPedComponentVariation(&success, _ped, _componentId, _drawableId, _textureId, _paletteId); if (!success) throw new Exception("Native execution failed"); @@ -78465,10 +78452,10 @@ public void SetPedComponentVariation(int _ped, int _componentId, int _drawableId } public void SetPedRandomComponentVariation(IPlayer ped, int p1) => SetPedRandomComponentVariation(ped.ScriptId, p1); - public void SetPedRandomComponentVariation(int _ped, int _p1) + public void SetPedRandomComponentVariation(uint _ped, int _p1) { unsafe { - if (fn__setPedRandomComponentVariation == null) fn__setPedRandomComponentVariation = (delegate* unmanaged[Cdecl]) funcTable[0xC8A9481A01E63C28UL]; + if (fn__setPedRandomComponentVariation == null) fn__setPedRandomComponentVariation = (delegate* unmanaged[Cdecl]) funcTable[0xC8A9481A01E63C28UL]; var success = false; fn__setPedRandomComponentVariation(&success, _ped, _p1); if (!success) throw new Exception("Native execution failed"); @@ -78476,10 +78463,10 @@ public void SetPedRandomComponentVariation(int _ped, int _p1) } public void SetPedRandomProps(IPlayer ped) => SetPedRandomProps(ped.ScriptId); - public void SetPedRandomProps(int _ped) + public void SetPedRandomProps(uint _ped) { unsafe { - if (fn__setPedRandomProps == null) fn__setPedRandomProps = (delegate* unmanaged[Cdecl]) funcTable[0xC44AA05345C992C6UL]; + if (fn__setPedRandomProps == null) fn__setPedRandomProps = (delegate* unmanaged[Cdecl]) funcTable[0xC44AA05345C992C6UL]; var success = false; fn__setPedRandomProps(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -78487,10 +78474,10 @@ public void SetPedRandomProps(int _ped) } public void SetPedDefaultComponentVariation(IPlayer ped) => SetPedDefaultComponentVariation(ped.ScriptId); - public void SetPedDefaultComponentVariation(int _ped) + public void SetPedDefaultComponentVariation(uint _ped) { unsafe { - if (fn__setPedDefaultComponentVariation == null) fn__setPedDefaultComponentVariation = (delegate* unmanaged[Cdecl]) funcTable[0x45EEE61580806D63UL]; + if (fn__setPedDefaultComponentVariation == null) fn__setPedDefaultComponentVariation = (delegate* unmanaged[Cdecl]) funcTable[0x45EEE61580806D63UL]; var success = false; fn__setPedDefaultComponentVariation(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -78498,10 +78485,10 @@ public void SetPedDefaultComponentVariation(int _ped) } public void SetPedBlendFromParents(IPlayer ped, int p1, int p2, float p3, float p4) => SetPedBlendFromParents(ped.ScriptId, p1, p2, p3, p4); - public void SetPedBlendFromParents(int _ped, int _p1, int _p2, float _p3, float _p4) + public void SetPedBlendFromParents(uint _ped, int _p1, int _p2, float _p3, float _p4) { unsafe { - if (fn__setPedBlendFromParents == null) fn__setPedBlendFromParents = (delegate* unmanaged[Cdecl]) funcTable[0x137BBD05230DB22DUL]; + if (fn__setPedBlendFromParents == null) fn__setPedBlendFromParents = (delegate* unmanaged[Cdecl]) funcTable[0x137BBD05230DB22DUL]; var success = false; fn__setPedBlendFromParents(&success, _ped, _p1, _p2, _p3, _p4); if (!success) throw new Exception("Native execution failed"); @@ -78509,10 +78496,10 @@ public void SetPedBlendFromParents(int _ped, int _p1, int _p2, float _p3, float } public void SetPedHeadBlendData(IPlayer ped, int shapeFirstID, int shapeSecondID, int shapeThirdID, int skinFirstID, int skinSecondID, int skinThirdID, float shapeMix, float skinMix, float thirdMix, bool isParent) => SetPedHeadBlendData(ped.ScriptId, shapeFirstID, shapeSecondID, shapeThirdID, skinFirstID, skinSecondID, skinThirdID, shapeMix, skinMix, thirdMix, isParent); - public void SetPedHeadBlendData(int _ped, int _shapeFirstID, int _shapeSecondID, int _shapeThirdID, int _skinFirstID, int _skinSecondID, int _skinThirdID, float _shapeMix, float _skinMix, float _thirdMix, bool _isParent) + public void SetPedHeadBlendData(uint _ped, int _shapeFirstID, int _shapeSecondID, int _shapeThirdID, int _skinFirstID, int _skinSecondID, int _skinThirdID, float _shapeMix, float _skinMix, float _thirdMix, bool _isParent) { unsafe { - if (fn__setPedHeadBlendData == null) fn__setPedHeadBlendData = (delegate* unmanaged[Cdecl]) funcTable[0x9414E18B9434C2FEUL]; + if (fn__setPedHeadBlendData == null) fn__setPedHeadBlendData = (delegate* unmanaged[Cdecl]) funcTable[0x9414E18B9434C2FEUL]; var success = false; fn__setPedHeadBlendData(&success, _ped, _shapeFirstID, _shapeSecondID, _shapeThirdID, _skinFirstID, _skinSecondID, _skinThirdID, _shapeMix, _skinMix, _thirdMix, (byte) (_isParent ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -78520,10 +78507,10 @@ public void SetPedHeadBlendData(int _ped, int _shapeFirstID, int _shapeSecondID, } public bool GetPedHeadBlendData(IPlayer ped, ref int headBlendData) => GetPedHeadBlendData(ped.ScriptId, ref headBlendData); - public bool GetPedHeadBlendData(int _ped, ref int _headBlendData) + public bool GetPedHeadBlendData(uint _ped, ref int _headBlendData) { unsafe { - if (fn__getPedHeadBlendData == null) fn__getPedHeadBlendData = (delegate* unmanaged[Cdecl]) funcTable[0x2746BD9D88C5C5D0UL]; + if (fn__getPedHeadBlendData == null) fn__getPedHeadBlendData = (delegate* unmanaged[Cdecl]) funcTable[0x2746BD9D88C5C5D0UL]; var success = false; var ref_headBlendData = _headBlendData; var result = fn__getPedHeadBlendData(&success, _ped, &ref_headBlendData); @@ -78534,10 +78521,10 @@ public bool GetPedHeadBlendData(int _ped, ref int _headBlendData) } public void UpdatePedHeadBlendData(IPlayer ped, float shapeMix, float skinMix, float thirdMix) => UpdatePedHeadBlendData(ped.ScriptId, shapeMix, skinMix, thirdMix); - public void UpdatePedHeadBlendData(int _ped, float _shapeMix, float _skinMix, float _thirdMix) + public void UpdatePedHeadBlendData(uint _ped, float _shapeMix, float _skinMix, float _thirdMix) { unsafe { - if (fn__updatePedHeadBlendData == null) fn__updatePedHeadBlendData = (delegate* unmanaged[Cdecl]) funcTable[0x723538F61C647C5AUL]; + if (fn__updatePedHeadBlendData == null) fn__updatePedHeadBlendData = (delegate* unmanaged[Cdecl]) funcTable[0x723538F61C647C5AUL]; var success = false; fn__updatePedHeadBlendData(&success, _ped, _shapeMix, _skinMix, _thirdMix); if (!success) throw new Exception("Native execution failed"); @@ -78545,10 +78532,10 @@ public void UpdatePedHeadBlendData(int _ped, float _shapeMix, float _skinMix, fl } public void SetHeadBlendEyeColor(IPlayer ped, int index) => SetHeadBlendEyeColor(ped.ScriptId, index); - public void SetHeadBlendEyeColor(int _ped, int _index) + public void SetHeadBlendEyeColor(uint _ped, int _index) { unsafe { - if (fn__setHeadBlendEyeColor == null) fn__setHeadBlendEyeColor = (delegate* unmanaged[Cdecl]) funcTable[0x50B56988B170AFDFUL]; + if (fn__setHeadBlendEyeColor == null) fn__setHeadBlendEyeColor = (delegate* unmanaged[Cdecl]) funcTable[0x50B56988B170AFDFUL]; var success = false; fn__setHeadBlendEyeColor(&success, _ped, _index); if (!success) throw new Exception("Native execution failed"); @@ -78556,10 +78543,10 @@ public void SetHeadBlendEyeColor(int _ped, int _index) } public int GetHeadBlendEyeColor(IPlayer ped) => GetHeadBlendEyeColor(ped.ScriptId); - public int GetHeadBlendEyeColor(int _ped) + public int GetHeadBlendEyeColor(uint _ped) { unsafe { - if (fn__getHeadBlendEyeColor == null) fn__getHeadBlendEyeColor = (delegate* unmanaged[Cdecl]) funcTable[0x76BBA2CEE66D47E9UL]; + if (fn__getHeadBlendEyeColor == null) fn__getHeadBlendEyeColor = (delegate* unmanaged[Cdecl]) funcTable[0x76BBA2CEE66D47E9UL]; var success = false; var result = fn__getHeadBlendEyeColor(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -78568,10 +78555,10 @@ public int GetHeadBlendEyeColor(int _ped) } public void SetPedHeadOverlay(IPlayer ped, int overlayID, int index, float opacity) => SetPedHeadOverlay(ped.ScriptId, overlayID, index, opacity); - public void SetPedHeadOverlay(int _ped, int _overlayID, int _index, float _opacity) + public void SetPedHeadOverlay(uint _ped, int _overlayID, int _index, float _opacity) { unsafe { - if (fn__setPedHeadOverlay == null) fn__setPedHeadOverlay = (delegate* unmanaged[Cdecl]) funcTable[0x48F44967FA05CC1EUL]; + if (fn__setPedHeadOverlay == null) fn__setPedHeadOverlay = (delegate* unmanaged[Cdecl]) funcTable[0x48F44967FA05CC1EUL]; var success = false; fn__setPedHeadOverlay(&success, _ped, _overlayID, _index, _opacity); if (!success) throw new Exception("Native execution failed"); @@ -78579,10 +78566,10 @@ public void SetPedHeadOverlay(int _ped, int _overlayID, int _index, float _opaci } public int GetPedHeadOverlay(IPlayer ped, int overlayID) => GetPedHeadOverlay(ped.ScriptId, overlayID); - public int GetPedHeadOverlay(int _ped, int _overlayID) + public int GetPedHeadOverlay(uint _ped, int _overlayID) { unsafe { - if (fn__getPedHeadOverlay == null) fn__getPedHeadOverlay = (delegate* unmanaged[Cdecl]) funcTable[0xA60EF3B6461A4D43UL]; + if (fn__getPedHeadOverlay == null) fn__getPedHeadOverlay = (delegate* unmanaged[Cdecl]) funcTable[0xA60EF3B6461A4D43UL]; var success = false; var result = fn__getPedHeadOverlay(&success, _ped, _overlayID); if (!success) throw new Exception("Native execution failed"); @@ -78602,10 +78589,10 @@ public int GetPedHeadOverlayNum(int _overlayID) } public void SetPedHeadOverlayTint(IPlayer ped, int overlayID, int colorType, int colorID, int secondColorID) => SetPedHeadOverlayTint(ped.ScriptId, overlayID, colorType, colorID, secondColorID); - public void SetPedHeadOverlayTint(int _ped, int _overlayID, int _colorType, int _colorID, int _secondColorID) + public void SetPedHeadOverlayTint(uint _ped, int _overlayID, int _colorType, int _colorID, int _secondColorID) { unsafe { - if (fn__setPedHeadOverlayTint == null) fn__setPedHeadOverlayTint = (delegate* unmanaged[Cdecl]) funcTable[0x497BF74A7B9CB952UL]; + if (fn__setPedHeadOverlayTint == null) fn__setPedHeadOverlayTint = (delegate* unmanaged[Cdecl]) funcTable[0x497BF74A7B9CB952UL]; var success = false; fn__setPedHeadOverlayTint(&success, _ped, _overlayID, _colorType, _colorID, _secondColorID); if (!success) throw new Exception("Native execution failed"); @@ -78613,10 +78600,10 @@ public void SetPedHeadOverlayTint(int _ped, int _overlayID, int _colorType, int } public void SetPedHairTint(IPlayer ped, int colorID, int highlightColorID) => SetPedHairTint(ped.ScriptId, colorID, highlightColorID); - public void SetPedHairTint(int _ped, int _colorID, int _highlightColorID) + public void SetPedHairTint(uint _ped, int _colorID, int _highlightColorID) { unsafe { - if (fn__setPedHairTint == null) fn__setPedHairTint = (delegate* unmanaged[Cdecl]) funcTable[0x4CFFC65454C93A49UL]; + if (fn__setPedHairTint == null) fn__setPedHairTint = (delegate* unmanaged[Cdecl]) funcTable[0x4CFFC65454C93A49UL]; var success = false; fn__setPedHairTint(&success, _ped, _colorID, _highlightColorID); if (!success) throw new Exception("Native execution failed"); @@ -78788,10 +78775,10 @@ public int GetTintIndexForLastGenHairTexture(uint _modelHash, int _drawableId, i } public void SetPedMicroMorph(IPlayer ped, int index, float scale) => SetPedMicroMorph(ped.ScriptId, index, scale); - public void SetPedMicroMorph(int _ped, int _index, float _scale) + public void SetPedMicroMorph(uint _ped, int _index, float _scale) { unsafe { - if (fn__setPedMicroMorph == null) fn__setPedMicroMorph = (delegate* unmanaged[Cdecl]) funcTable[0x71A5C1DBA060049EUL]; + if (fn__setPedMicroMorph == null) fn__setPedMicroMorph = (delegate* unmanaged[Cdecl]) funcTable[0x71A5C1DBA060049EUL]; var success = false; fn__setPedMicroMorph(&success, _ped, _index, _scale); if (!success) throw new Exception("Native execution failed"); @@ -78799,10 +78786,10 @@ public void SetPedMicroMorph(int _ped, int _index, float _scale) } public bool HasPedHeadBlendFinished(IPlayer ped) => HasPedHeadBlendFinished(ped.ScriptId); - public bool HasPedHeadBlendFinished(int _ped) + public bool HasPedHeadBlendFinished(uint _ped) { unsafe { - if (fn__hasPedHeadBlendFinished == null) fn__hasPedHeadBlendFinished = (delegate* unmanaged[Cdecl]) funcTable[0x654CD0A825161131UL]; + if (fn__hasPedHeadBlendFinished == null) fn__hasPedHeadBlendFinished = (delegate* unmanaged[Cdecl]) funcTable[0x654CD0A825161131UL]; var success = false; var result = fn__hasPedHeadBlendFinished(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -78811,10 +78798,10 @@ public bool HasPedHeadBlendFinished(int _ped) } public void FinalizeHeadBlend(IPlayer ped) => FinalizeHeadBlend(ped.ScriptId); - public void FinalizeHeadBlend(int _ped) + public void FinalizeHeadBlend(uint _ped) { unsafe { - if (fn__finalizeHeadBlend == null) fn__finalizeHeadBlend = (delegate* unmanaged[Cdecl]) funcTable[0x4668D80430D6C299UL]; + if (fn__finalizeHeadBlend == null) fn__finalizeHeadBlend = (delegate* unmanaged[Cdecl]) funcTable[0x4668D80430D6C299UL]; var success = false; fn__finalizeHeadBlend(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -78822,10 +78809,10 @@ public void FinalizeHeadBlend(int _ped) } public void SetHeadBlendPaletteColor(IPlayer ped, int r, int g, int b, int id) => SetHeadBlendPaletteColor(ped.ScriptId, r, g, b, id); - public void SetHeadBlendPaletteColor(int _ped, int _r, int _g, int _b, int _id) + public void SetHeadBlendPaletteColor(uint _ped, int _r, int _g, int _b, int _id) { unsafe { - if (fn__setHeadBlendPaletteColor == null) fn__setHeadBlendPaletteColor = (delegate* unmanaged[Cdecl]) funcTable[0xCC9682B8951C5229UL]; + if (fn__setHeadBlendPaletteColor == null) fn__setHeadBlendPaletteColor = (delegate* unmanaged[Cdecl]) funcTable[0xCC9682B8951C5229UL]; var success = false; fn__setHeadBlendPaletteColor(&success, _ped, _r, _g, _b, _id); if (!success) throw new Exception("Native execution failed"); @@ -78833,10 +78820,10 @@ public void SetHeadBlendPaletteColor(int _ped, int _r, int _g, int _b, int _id) } public void DisableHeadBlendPaletteColor(IPlayer ped) => DisableHeadBlendPaletteColor(ped.ScriptId); - public void DisableHeadBlendPaletteColor(int _ped) + public void DisableHeadBlendPaletteColor(uint _ped) { unsafe { - if (fn__disableHeadBlendPaletteColor == null) fn__disableHeadBlendPaletteColor = (delegate* unmanaged[Cdecl]) funcTable[0xA21C118553BBDF02UL]; + if (fn__disableHeadBlendPaletteColor == null) fn__disableHeadBlendPaletteColor = (delegate* unmanaged[Cdecl]) funcTable[0xA21C118553BBDF02UL]; var success = false; fn__disableHeadBlendPaletteColor(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -78866,10 +78853,10 @@ public int GetPedHeadBlendNumHeads(int _type) } public int SetPedPreloadVariationData(IPlayer ped, int slot, int drawableId, int textureId) => SetPedPreloadVariationData(ped.ScriptId, slot, drawableId, textureId); - public int SetPedPreloadVariationData(int _ped, int _slot, int _drawableId, int _textureId) + public int SetPedPreloadVariationData(uint _ped, int _slot, int _drawableId, int _textureId) { unsafe { - if (fn__setPedPreloadVariationData == null) fn__setPedPreloadVariationData = (delegate* unmanaged[Cdecl]) funcTable[0x39D55A620FCB6A3AUL]; + if (fn__setPedPreloadVariationData == null) fn__setPedPreloadVariationData = (delegate* unmanaged[Cdecl]) funcTable[0x39D55A620FCB6A3AUL]; var success = false; var result = fn__setPedPreloadVariationData(&success, _ped, _slot, _drawableId, _textureId); if (!success) throw new Exception("Native execution failed"); @@ -78878,10 +78865,10 @@ public int SetPedPreloadVariationData(int _ped, int _slot, int _drawableId, int } public bool HasPedPreloadVariationDataFinished(IPlayer ped) => HasPedPreloadVariationDataFinished(ped.ScriptId); - public bool HasPedPreloadVariationDataFinished(int _ped) + public bool HasPedPreloadVariationDataFinished(uint _ped) { unsafe { - if (fn__hasPedPreloadVariationDataFinished == null) fn__hasPedPreloadVariationDataFinished = (delegate* unmanaged[Cdecl]) funcTable[0x66680A92700F43DFUL]; + if (fn__hasPedPreloadVariationDataFinished == null) fn__hasPedPreloadVariationDataFinished = (delegate* unmanaged[Cdecl]) funcTable[0x66680A92700F43DFUL]; var success = false; var result = fn__hasPedPreloadVariationDataFinished(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -78890,10 +78877,10 @@ public bool HasPedPreloadVariationDataFinished(int _ped) } public void ReleasePedPreloadVariationData(IPlayer ped) => ReleasePedPreloadVariationData(ped.ScriptId); - public void ReleasePedPreloadVariationData(int _ped) + public void ReleasePedPreloadVariationData(uint _ped) { unsafe { - if (fn__releasePedPreloadVariationData == null) fn__releasePedPreloadVariationData = (delegate* unmanaged[Cdecl]) funcTable[0x5AAB586FFEC0FD96UL]; + if (fn__releasePedPreloadVariationData == null) fn__releasePedPreloadVariationData = (delegate* unmanaged[Cdecl]) funcTable[0x5AAB586FFEC0FD96UL]; var success = false; fn__releasePedPreloadVariationData(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -78901,10 +78888,10 @@ public void ReleasePedPreloadVariationData(int _ped) } public int SetPedPreloadPropData(IPlayer ped, int componentId, int drawableId, int TextureId) => SetPedPreloadPropData(ped.ScriptId, componentId, drawableId, TextureId); - public int SetPedPreloadPropData(int _ped, int _componentId, int _drawableId, int _TextureId) + public int SetPedPreloadPropData(uint _ped, int _componentId, int _drawableId, int _TextureId) { unsafe { - if (fn__setPedPreloadPropData == null) fn__setPedPreloadPropData = (delegate* unmanaged[Cdecl]) funcTable[0x2B16A3BFF1FBCE49UL]; + if (fn__setPedPreloadPropData == null) fn__setPedPreloadPropData = (delegate* unmanaged[Cdecl]) funcTable[0x2B16A3BFF1FBCE49UL]; var success = false; var result = fn__setPedPreloadPropData(&success, _ped, _componentId, _drawableId, _TextureId); if (!success) throw new Exception("Native execution failed"); @@ -78913,10 +78900,10 @@ public int SetPedPreloadPropData(int _ped, int _componentId, int _drawableId, in } public bool HasPedPreloadPropDataFinished(IPlayer ped) => HasPedPreloadPropDataFinished(ped.ScriptId); - public bool HasPedPreloadPropDataFinished(int _ped) + public bool HasPedPreloadPropDataFinished(uint _ped) { unsafe { - if (fn__hasPedPreloadPropDataFinished == null) fn__hasPedPreloadPropDataFinished = (delegate* unmanaged[Cdecl]) funcTable[0x784002A632822099UL]; + if (fn__hasPedPreloadPropDataFinished == null) fn__hasPedPreloadPropDataFinished = (delegate* unmanaged[Cdecl]) funcTable[0x784002A632822099UL]; var success = false; var result = fn__hasPedPreloadPropDataFinished(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -78925,77 +78912,77 @@ public bool HasPedPreloadPropDataFinished(int _ped) } public void ReleasePedPreloadPropData(IPlayer ped) => ReleasePedPreloadPropData(ped.ScriptId); - public void ReleasePedPreloadPropData(int _ped) + public void ReleasePedPreloadPropData(uint _ped) { unsafe { - if (fn__releasePedPreloadPropData == null) fn__releasePedPreloadPropData = (delegate* unmanaged[Cdecl]) funcTable[0xF79F9DEF0AADE61AUL]; + if (fn__releasePedPreloadPropData == null) fn__releasePedPreloadPropData = (delegate* unmanaged[Cdecl]) funcTable[0xF79F9DEF0AADE61AUL]; var success = false; fn__releasePedPreloadPropData(&success, _ped); if (!success) throw new Exception("Native execution failed"); } } - public int GetPedPropIndex(IPlayer ped, int componentId) => GetPedPropIndex(ped.ScriptId, componentId); - public int GetPedPropIndex(int _ped, int _componentId) + public int GetPedPropIndex(IPlayer ped, int componentId, int p2) => GetPedPropIndex(ped.ScriptId, componentId, p2); + public int GetPedPropIndex(uint _ped, int _componentId, int _p2) { unsafe { - if (fn__getPedPropIndex == null) fn__getPedPropIndex = (delegate* unmanaged[Cdecl]) funcTable[0x898CC20EA75BACD8UL]; + if (fn__getPedPropIndex == null) fn__getPedPropIndex = (delegate* unmanaged[Cdecl]) funcTable[0x898CC20EA75BACD8UL]; var success = false; - var result = fn__getPedPropIndex(&success, _ped, _componentId); + var result = fn__getPedPropIndex(&success, _ped, _componentId, _p2); if (!success) throw new Exception("Native execution failed"); return result; } } - public void SetPedPropIndex(IPlayer ped, int componentId, int drawableId, int TextureId, bool attach) => SetPedPropIndex(ped.ScriptId, componentId, drawableId, TextureId, attach); - public void SetPedPropIndex(int _ped, int _componentId, int _drawableId, int _TextureId, bool _attach) + public void SetPedPropIndex(IPlayer ped, int componentId, int drawableId, int TextureId, bool attach, int p5) => SetPedPropIndex(ped.ScriptId, componentId, drawableId, TextureId, attach, p5); + public void SetPedPropIndex(uint _ped, int _componentId, int _drawableId, int _TextureId, bool _attach, int _p5) { unsafe { - if (fn__setPedPropIndex == null) fn__setPedPropIndex = (delegate* unmanaged[Cdecl]) funcTable[0x93376B65A266EB5FUL]; + if (fn__setPedPropIndex == null) fn__setPedPropIndex = (delegate* unmanaged[Cdecl]) funcTable[0x93376B65A266EB5FUL]; var success = false; - fn__setPedPropIndex(&success, _ped, _componentId, _drawableId, _TextureId, (byte) (_attach ? 1 : 0)); + fn__setPedPropIndex(&success, _ped, _componentId, _drawableId, _TextureId, (byte) (_attach ? 1 : 0), _p5); if (!success) throw new Exception("Native execution failed"); } } public void KnockOffPedProp(IPlayer ped, bool p1, bool p2, bool p3, bool p4) => KnockOffPedProp(ped.ScriptId, p1, p2, p3, p4); - public void KnockOffPedProp(int _ped, bool _p1, bool _p2, bool _p3, bool _p4) + public void KnockOffPedProp(uint _ped, bool _p1, bool _p2, bool _p3, bool _p4) { unsafe { - if (fn__knockOffPedProp == null) fn__knockOffPedProp = (delegate* unmanaged[Cdecl]) funcTable[0x6FD7816A36615F48UL]; + if (fn__knockOffPedProp == null) fn__knockOffPedProp = (delegate* unmanaged[Cdecl]) funcTable[0x6FD7816A36615F48UL]; var success = false; fn__knockOffPedProp(&success, _ped, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0), (byte) (_p3 ? 1 : 0), (byte) (_p4 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void ClearPedProp(IPlayer ped, int propId) => ClearPedProp(ped.ScriptId, propId); - public void ClearPedProp(int _ped, int _propId) + public void ClearPedProp(IPlayer ped, int propId, int p2) => ClearPedProp(ped.ScriptId, propId, p2); + public void ClearPedProp(uint _ped, int _propId, int _p2) { unsafe { - if (fn__clearPedProp == null) fn__clearPedProp = (delegate* unmanaged[Cdecl]) funcTable[0x0943E5B8E078E76EUL]; + if (fn__clearPedProp == null) fn__clearPedProp = (delegate* unmanaged[Cdecl]) funcTable[0x0943E5B8E078E76EUL]; var success = false; - fn__clearPedProp(&success, _ped, _propId); + fn__clearPedProp(&success, _ped, _propId, _p2); if (!success) throw new Exception("Native execution failed"); } } - public void ClearAllPedProps(IPlayer ped) => ClearAllPedProps(ped.ScriptId); - public void ClearAllPedProps(int _ped) + public void ClearAllPedProps(IPlayer ped, int p1) => ClearAllPedProps(ped.ScriptId, p1); + public void ClearAllPedProps(uint _ped, int _p1) { unsafe { - if (fn__clearAllPedProps == null) fn__clearAllPedProps = (delegate* unmanaged[Cdecl]) funcTable[0xCD8A7537A9B52F06UL]; + if (fn__clearAllPedProps == null) fn__clearAllPedProps = (delegate* unmanaged[Cdecl]) funcTable[0xCD8A7537A9B52F06UL]; var success = false; - fn__clearAllPedProps(&success, _ped); + fn__clearAllPedProps(&success, _ped, _p1); if (!success) throw new Exception("Native execution failed"); } } public void DropAmbientProp(IPlayer ped) => DropAmbientProp(ped.ScriptId); - public void DropAmbientProp(int _ped) + public void DropAmbientProp(uint _ped) { unsafe { - if (fn__dropAmbientProp == null) fn__dropAmbientProp = (delegate* unmanaged[Cdecl]) funcTable[0xAFF4710E2A0A6C12UL]; + if (fn__dropAmbientProp == null) fn__dropAmbientProp = (delegate* unmanaged[Cdecl]) funcTable[0xAFF4710E2A0A6C12UL]; var success = false; fn__dropAmbientProp(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79003,10 +78990,10 @@ public void DropAmbientProp(int _ped) } public int GetPedPropTextureIndex(IPlayer ped, int componentId) => GetPedPropTextureIndex(ped.ScriptId, componentId); - public int GetPedPropTextureIndex(int _ped, int _componentId) + public int GetPedPropTextureIndex(uint _ped, int _componentId) { unsafe { - if (fn__getPedPropTextureIndex == null) fn__getPedPropTextureIndex = (delegate* unmanaged[Cdecl]) funcTable[0xE131A28626F81AB2UL]; + if (fn__getPedPropTextureIndex == null) fn__getPedPropTextureIndex = (delegate* unmanaged[Cdecl]) funcTable[0xE131A28626F81AB2UL]; var success = false; var result = fn__getPedPropTextureIndex(&success, _ped, _componentId); if (!success) throw new Exception("Native execution failed"); @@ -79015,10 +79002,10 @@ public int GetPedPropTextureIndex(int _ped, int _componentId) } public void ClearPedParachutePackVariation(IPlayer ped) => ClearPedParachutePackVariation(ped.ScriptId); - public void ClearPedParachutePackVariation(int _ped) + public void ClearPedParachutePackVariation(uint _ped) { unsafe { - if (fn__clearPedParachutePackVariation == null) fn__clearPedParachutePackVariation = (delegate* unmanaged[Cdecl]) funcTable[0x1280804F7CFD2D6CUL]; + if (fn__clearPedParachutePackVariation == null) fn__clearPedParachutePackVariation = (delegate* unmanaged[Cdecl]) funcTable[0x1280804F7CFD2D6CUL]; var success = false; fn__clearPedParachutePackVariation(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79026,10 +79013,10 @@ public void ClearPedParachutePackVariation(int _ped) } public void SetPedScubaGearVariation(IPlayer ped) => SetPedScubaGearVariation(ped.ScriptId); - public void SetPedScubaGearVariation(int _ped) + public void SetPedScubaGearVariation(uint _ped) { unsafe { - if (fn__setPedScubaGearVariation == null) fn__setPedScubaGearVariation = (delegate* unmanaged[Cdecl]) funcTable[0x36C6984C3ED0C911UL]; + if (fn__setPedScubaGearVariation == null) fn__setPedScubaGearVariation = (delegate* unmanaged[Cdecl]) funcTable[0x36C6984C3ED0C911UL]; var success = false; fn__setPedScubaGearVariation(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79037,10 +79024,10 @@ public void SetPedScubaGearVariation(int _ped) } public void ClearPedScubaGearVariation(IPlayer ped) => ClearPedScubaGearVariation(ped.ScriptId); - public void ClearPedScubaGearVariation(int _ped) + public void ClearPedScubaGearVariation(uint _ped) { unsafe { - if (fn__clearPedScubaGearVariation == null) fn__clearPedScubaGearVariation = (delegate* unmanaged[Cdecl]) funcTable[0xB50EB4CCB29704ACUL]; + if (fn__clearPedScubaGearVariation == null) fn__clearPedScubaGearVariation = (delegate* unmanaged[Cdecl]) funcTable[0xB50EB4CCB29704ACUL]; var success = false; fn__clearPedScubaGearVariation(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79059,10 +79046,10 @@ public bool IsUsingPedScubaGearVariation(int _p0) } public void SetBlockingOfNonTemporaryEvents(IPlayer ped, bool toggle) => SetBlockingOfNonTemporaryEvents(ped.ScriptId, toggle); - public void SetBlockingOfNonTemporaryEvents(int _ped, bool _toggle) + public void SetBlockingOfNonTemporaryEvents(uint _ped, bool _toggle) { unsafe { - if (fn__setBlockingOfNonTemporaryEvents == null) fn__setBlockingOfNonTemporaryEvents = (delegate* unmanaged[Cdecl]) funcTable[0x9F8AA94D6D97DBF4UL]; + if (fn__setBlockingOfNonTemporaryEvents == null) fn__setBlockingOfNonTemporaryEvents = (delegate* unmanaged[Cdecl]) funcTable[0x9F8AA94D6D97DBF4UL]; var success = false; fn__setBlockingOfNonTemporaryEvents(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -79070,23 +79057,23 @@ public void SetBlockingOfNonTemporaryEvents(int _ped, bool _toggle) } public void SetPedBoundsOrientation(IPlayer ped, float p1, float p2, float x, float y, float z) => SetPedBoundsOrientation(ped.ScriptId, p1, p2, x, y, z); - public void SetPedBoundsOrientation(int _ped, float _p1, float _p2, float _x, float _y, float _z) + public void SetPedBoundsOrientation(uint _ped, float _p1, float _p2, float _x, float _y, float _z) { unsafe { - if (fn__setPedBoundsOrientation == null) fn__setPedBoundsOrientation = (delegate* unmanaged[Cdecl]) funcTable[0x4F5F651ACCC9C4CFUL]; + if (fn__setPedBoundsOrientation == null) fn__setPedBoundsOrientation = (delegate* unmanaged[Cdecl]) funcTable[0x4F5F651ACCC9C4CFUL]; var success = false; fn__setPedBoundsOrientation(&success, _ped, _p1, _p2, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); } } - public void RegisterTarget(IPlayer ped, int target) => RegisterTarget(ped.ScriptId, target); - public void RegisterTarget(int ped, IPlayer target) => RegisterTarget(ped, target.ScriptId); + public void RegisterTarget(IPlayer ped, uint target) => RegisterTarget(ped.ScriptId, target); + public void RegisterTarget(uint ped, IPlayer target) => RegisterTarget(ped, target.ScriptId); public void RegisterTarget(IPlayer ped, IPlayer target) => RegisterTarget(ped.ScriptId, target.ScriptId); - public void RegisterTarget(int _ped, int _target) + public void RegisterTarget(uint _ped, uint _target) { unsafe { - if (fn__registerTarget == null) fn__registerTarget = (delegate* unmanaged[Cdecl]) funcTable[0x2F25D9AEFA34FBA2UL]; + if (fn__registerTarget == null) fn__registerTarget = (delegate* unmanaged[Cdecl]) funcTable[0x2F25D9AEFA34FBA2UL]; var success = false; fn__registerTarget(&success, _ped, _target); if (!success) throw new Exception("Native execution failed"); @@ -79094,20 +79081,20 @@ public void RegisterTarget(int _ped, int _target) } public void RegisterHatedTargetsAroundPed(IPlayer ped, float radius) => RegisterHatedTargetsAroundPed(ped.ScriptId, radius); - public void RegisterHatedTargetsAroundPed(int _ped, float _radius) + public void RegisterHatedTargetsAroundPed(uint _ped, float _radius) { unsafe { - if (fn__registerHatedTargetsAroundPed == null) fn__registerHatedTargetsAroundPed = (delegate* unmanaged[Cdecl]) funcTable[0x9222F300BF8354FEUL]; + if (fn__registerHatedTargetsAroundPed == null) fn__registerHatedTargetsAroundPed = (delegate* unmanaged[Cdecl]) funcTable[0x9222F300BF8354FEUL]; var success = false; fn__registerHatedTargetsAroundPed(&success, _ped, _radius); if (!success) throw new Exception("Native execution failed"); } } - public int GetRandomPedAtCoord(float _x, float _y, float _z, float _xRadius, float _yRadius, float _zRadius, int _pedType) + public uint GetRandomPedAtCoord(float _x, float _y, float _z, float _xRadius, float _yRadius, float _zRadius, int _pedType) { unsafe { - if (fn__getRandomPedAtCoord == null) fn__getRandomPedAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x876046A8E3A4B71CUL]; + if (fn__getRandomPedAtCoord == null) fn__getRandomPedAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x876046A8E3A4B71CUL]; var success = false; var result = fn__getRandomPedAtCoord(&success, _x, _y, _z, _xRadius, _yRadius, _zRadius, _pedType); if (!success) throw new Exception("Native execution failed"); @@ -79115,10 +79102,10 @@ public int GetRandomPedAtCoord(float _x, float _y, float _z, float _xRadius, flo } } - public bool GetClosestPed(float _x, float _y, float _z, float _radius, bool _p4, bool _p5, ref int _outPed, bool _p7, bool _p8, int _pedType) + public bool GetClosestPed(float _x, float _y, float _z, float _radius, bool _p4, bool _p5, ref uint _outPed, bool _p7, bool _p8, int _pedType) { unsafe { - if (fn__getClosestPed == null) fn__getClosestPed = (delegate* unmanaged[Cdecl]) funcTable[0xC33AB876A77F8164UL]; + if (fn__getClosestPed == null) fn__getClosestPed = (delegate* unmanaged[Cdecl]) funcTable[0xC33AB876A77F8164UL]; var success = false; var ref_outPed = _outPed; var result = fn__getClosestPed(&success, _x, _y, _z, _radius, (byte) (_p4 ? 1 : 0), (byte) (_p5 ? 1 : 0), &ref_outPed, (byte) (_p7 ? 1 : 0), (byte) (_p8 ? 1 : 0), _pedType); @@ -79139,10 +79126,10 @@ public void SetScenarioPedsToBeReturnedByNextCommand(bool _value) } public bool GetCanPedBeGrabbedByScript(IPlayer ped, bool p1, bool p2, bool p3, bool p4, bool p5, bool p6, bool p7, int p8) => GetCanPedBeGrabbedByScript(ped.ScriptId, p1, p2, p3, p4, p5, p6, p7, p8); - public bool GetCanPedBeGrabbedByScript(int _ped, bool _p1, bool _p2, bool _p3, bool _p4, bool _p5, bool _p6, bool _p7, int _p8) + public bool GetCanPedBeGrabbedByScript(uint _ped, bool _p1, bool _p2, bool _p3, bool _p4, bool _p5, bool _p6, bool _p7, int _p8) { unsafe { - if (fn__getCanPedBeGrabbedByScript == null) fn__getCanPedBeGrabbedByScript = (delegate* unmanaged[Cdecl]) funcTable[0x03EA03AF85A85CB7UL]; + if (fn__getCanPedBeGrabbedByScript == null) fn__getCanPedBeGrabbedByScript = (delegate* unmanaged[Cdecl]) funcTable[0x03EA03AF85A85CB7UL]; var success = false; var result = fn__getCanPedBeGrabbedByScript(&success, _ped, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0), (byte) (_p3 ? 1 : 0), (byte) (_p4 ? 1 : 0), (byte) (_p5 ? 1 : 0), (byte) (_p6 ? 1 : 0), (byte) (_p7 ? 1 : 0), _p8); if (!success) throw new Exception("Native execution failed"); @@ -79151,10 +79138,10 @@ public bool GetCanPedBeGrabbedByScript(int _ped, bool _p1, bool _p2, bool _p3, b } public void SetDriverRacingModifier(IPlayer driver, float modifier) => SetDriverRacingModifier(driver.ScriptId, modifier); - public void SetDriverRacingModifier(int _driver, float _modifier) + public void SetDriverRacingModifier(uint _driver, float _modifier) { unsafe { - if (fn__setDriverRacingModifier == null) fn__setDriverRacingModifier = (delegate* unmanaged[Cdecl]) funcTable[0xDED5AF5A0EA4B297UL]; + if (fn__setDriverRacingModifier == null) fn__setDriverRacingModifier = (delegate* unmanaged[Cdecl]) funcTable[0xDED5AF5A0EA4B297UL]; var success = false; fn__setDriverRacingModifier(&success, _driver, _modifier); if (!success) throw new Exception("Native execution failed"); @@ -79162,10 +79149,10 @@ public void SetDriverRacingModifier(int _driver, float _modifier) } public void SetDriverAbility(IPlayer driver, float ability) => SetDriverAbility(driver.ScriptId, ability); - public void SetDriverAbility(int _driver, float _ability) + public void SetDriverAbility(uint _driver, float _ability) { unsafe { - if (fn__setDriverAbility == null) fn__setDriverAbility = (delegate* unmanaged[Cdecl]) funcTable[0xB195FFA8042FC5C3UL]; + if (fn__setDriverAbility == null) fn__setDriverAbility = (delegate* unmanaged[Cdecl]) funcTable[0xB195FFA8042FC5C3UL]; var success = false; fn__setDriverAbility(&success, _driver, _ability); if (!success) throw new Exception("Native execution failed"); @@ -79173,10 +79160,10 @@ public void SetDriverAbility(int _driver, float _ability) } public void SetDriverAggressiveness(IPlayer driver, float aggressiveness) => SetDriverAggressiveness(driver.ScriptId, aggressiveness); - public void SetDriverAggressiveness(int _driver, float _aggressiveness) + public void SetDriverAggressiveness(uint _driver, float _aggressiveness) { unsafe { - if (fn__setDriverAggressiveness == null) fn__setDriverAggressiveness = (delegate* unmanaged[Cdecl]) funcTable[0xA731F608CA104E3CUL]; + if (fn__setDriverAggressiveness == null) fn__setDriverAggressiveness = (delegate* unmanaged[Cdecl]) funcTable[0xA731F608CA104E3CUL]; var success = false; fn__setDriverAggressiveness(&success, _driver, _aggressiveness); if (!success) throw new Exception("Native execution failed"); @@ -79184,10 +79171,10 @@ public void SetDriverAggressiveness(int _driver, float _aggressiveness) } public bool CanPedRagdoll(IPlayer ped) => CanPedRagdoll(ped.ScriptId); - public bool CanPedRagdoll(int _ped) + public bool CanPedRagdoll(uint _ped) { unsafe { - if (fn__canPedRagdoll == null) fn__canPedRagdoll = (delegate* unmanaged[Cdecl]) funcTable[0x128F79EDCECE4FD5UL]; + if (fn__canPedRagdoll == null) fn__canPedRagdoll = (delegate* unmanaged[Cdecl]) funcTable[0x128F79EDCECE4FD5UL]; var success = false; var result = fn__canPedRagdoll(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79196,10 +79183,10 @@ public bool CanPedRagdoll(int _ped) } public bool SetPedToRagdoll(IPlayer ped, int time1, int time2, int ragdollType, bool p4, bool p5, bool p6) => SetPedToRagdoll(ped.ScriptId, time1, time2, ragdollType, p4, p5, p6); - public bool SetPedToRagdoll(int _ped, int _time1, int _time2, int _ragdollType, bool _p4, bool _p5, bool _p6) + public bool SetPedToRagdoll(uint _ped, int _time1, int _time2, int _ragdollType, bool _p4, bool _p5, bool _p6) { unsafe { - if (fn__setPedToRagdoll == null) fn__setPedToRagdoll = (delegate* unmanaged[Cdecl]) funcTable[0xAE99FB955581844AUL]; + if (fn__setPedToRagdoll == null) fn__setPedToRagdoll = (delegate* unmanaged[Cdecl]) funcTable[0xAE99FB955581844AUL]; var success = false; var result = fn__setPedToRagdoll(&success, _ped, _time1, _time2, _ragdollType, (byte) (_p4 ? 1 : 0), (byte) (_p5 ? 1 : 0), (byte) (_p6 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -79208,10 +79195,10 @@ public bool SetPedToRagdoll(int _ped, int _time1, int _time2, int _ragdollType, } public bool SetPedToRagdollWithFall(IPlayer ped, int time, int p2, int ragdollType, float x, float y, float z, float velocity, float p8, float p9, float p10, float p11, float p12, float p13) => SetPedToRagdollWithFall(ped.ScriptId, time, p2, ragdollType, x, y, z, velocity, p8, p9, p10, p11, p12, p13); - public bool SetPedToRagdollWithFall(int _ped, int _time, int _p2, int _ragdollType, float _x, float _y, float _z, float _velocity, float _p8, float _p9, float _p10, float _p11, float _p12, float _p13) + public bool SetPedToRagdollWithFall(uint _ped, int _time, int _p2, int _ragdollType, float _x, float _y, float _z, float _velocity, float _p8, float _p9, float _p10, float _p11, float _p12, float _p13) { unsafe { - if (fn__setPedToRagdollWithFall == null) fn__setPedToRagdollWithFall = (delegate* unmanaged[Cdecl]) funcTable[0xD76632D99E4966C8UL]; + if (fn__setPedToRagdollWithFall == null) fn__setPedToRagdollWithFall = (delegate* unmanaged[Cdecl]) funcTable[0xD76632D99E4966C8UL]; var success = false; var result = fn__setPedToRagdollWithFall(&success, _ped, _time, _p2, _ragdollType, _x, _y, _z, _velocity, _p8, _p9, _p10, _p11, _p12, _p13); if (!success) throw new Exception("Native execution failed"); @@ -79220,10 +79207,10 @@ public bool SetPedToRagdollWithFall(int _ped, int _time, int _p2, int _ragdollTy } public void SetPedRagdollOnCollision(IPlayer ped, bool toggle) => SetPedRagdollOnCollision(ped.ScriptId, toggle); - public void SetPedRagdollOnCollision(int _ped, bool _toggle) + public void SetPedRagdollOnCollision(uint _ped, bool _toggle) { unsafe { - if (fn__setPedRagdollOnCollision == null) fn__setPedRagdollOnCollision = (delegate* unmanaged[Cdecl]) funcTable[0xF0A4F1BBF4FA7497UL]; + if (fn__setPedRagdollOnCollision == null) fn__setPedRagdollOnCollision = (delegate* unmanaged[Cdecl]) funcTable[0xF0A4F1BBF4FA7497UL]; var success = false; fn__setPedRagdollOnCollision(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -79231,10 +79218,10 @@ public void SetPedRagdollOnCollision(int _ped, bool _toggle) } public bool IsPedRagdoll(IPlayer ped) => IsPedRagdoll(ped.ScriptId); - public bool IsPedRagdoll(int _ped) + public bool IsPedRagdoll(uint _ped) { unsafe { - if (fn__isPedRagdoll == null) fn__isPedRagdoll = (delegate* unmanaged[Cdecl]) funcTable[0x47E4E977581C5B55UL]; + if (fn__isPedRagdoll == null) fn__isPedRagdoll = (delegate* unmanaged[Cdecl]) funcTable[0x47E4E977581C5B55UL]; var success = false; var result = fn__isPedRagdoll(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79243,10 +79230,10 @@ public bool IsPedRagdoll(int _ped) } public bool IsPedRunningRagdollTask(IPlayer ped) => IsPedRunningRagdollTask(ped.ScriptId); - public bool IsPedRunningRagdollTask(int _ped) + public bool IsPedRunningRagdollTask(uint _ped) { unsafe { - if (fn__isPedRunningRagdollTask == null) fn__isPedRunningRagdollTask = (delegate* unmanaged[Cdecl]) funcTable[0xE3B6097CC25AA69EUL]; + if (fn__isPedRunningRagdollTask == null) fn__isPedRunningRagdollTask = (delegate* unmanaged[Cdecl]) funcTable[0xE3B6097CC25AA69EUL]; var success = false; var result = fn__isPedRunningRagdollTask(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79255,10 +79242,10 @@ public bool IsPedRunningRagdollTask(int _ped) } public void SetPedRagdollForceFall(IPlayer ped) => SetPedRagdollForceFall(ped.ScriptId); - public void SetPedRagdollForceFall(int _ped) + public void SetPedRagdollForceFall(uint _ped) { unsafe { - if (fn__setPedRagdollForceFall == null) fn__setPedRagdollForceFall = (delegate* unmanaged[Cdecl]) funcTable[0x01F6594B923B9251UL]; + if (fn__setPedRagdollForceFall == null) fn__setPedRagdollForceFall = (delegate* unmanaged[Cdecl]) funcTable[0x01F6594B923B9251UL]; var success = false; fn__setPedRagdollForceFall(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79266,10 +79253,10 @@ public void SetPedRagdollForceFall(int _ped) } public void ResetPedRagdollTimer(IPlayer ped) => ResetPedRagdollTimer(ped.ScriptId); - public void ResetPedRagdollTimer(int _ped) + public void ResetPedRagdollTimer(uint _ped) { unsafe { - if (fn__resetPedRagdollTimer == null) fn__resetPedRagdollTimer = (delegate* unmanaged[Cdecl]) funcTable[0x9FA4664CF62E47E8UL]; + if (fn__resetPedRagdollTimer == null) fn__resetPedRagdollTimer = (delegate* unmanaged[Cdecl]) funcTable[0x9FA4664CF62E47E8UL]; var success = false; fn__resetPedRagdollTimer(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79277,10 +79264,10 @@ public void ResetPedRagdollTimer(int _ped) } public void SetPedCanRagdoll(IPlayer ped, bool toggle) => SetPedCanRagdoll(ped.ScriptId, toggle); - public void SetPedCanRagdoll(int _ped, bool _toggle) + public void SetPedCanRagdoll(uint _ped, bool _toggle) { unsafe { - if (fn__setPedCanRagdoll == null) fn__setPedCanRagdoll = (delegate* unmanaged[Cdecl]) funcTable[0xB128377056A54E2AUL]; + if (fn__setPedCanRagdoll == null) fn__setPedCanRagdoll = (delegate* unmanaged[Cdecl]) funcTable[0xB128377056A54E2AUL]; var success = false; fn__setPedCanRagdoll(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -79288,10 +79275,10 @@ public void SetPedCanRagdoll(int _ped, bool _toggle) } public bool IsPedRunningMeleeTask(IPlayer ped) => IsPedRunningMeleeTask(ped.ScriptId); - public bool IsPedRunningMeleeTask(int _ped) + public bool IsPedRunningMeleeTask(uint _ped) { unsafe { - if (fn__isPedRunningMeleeTask == null) fn__isPedRunningMeleeTask = (delegate* unmanaged[Cdecl]) funcTable[0xD1871251F3B5ACD7UL]; + if (fn__isPedRunningMeleeTask == null) fn__isPedRunningMeleeTask = (delegate* unmanaged[Cdecl]) funcTable[0xD1871251F3B5ACD7UL]; var success = false; var result = fn__isPedRunningMeleeTask(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79300,10 +79287,10 @@ public bool IsPedRunningMeleeTask(int _ped) } public bool IsPedRunningMobilePhoneTask(IPlayer ped) => IsPedRunningMobilePhoneTask(ped.ScriptId); - public bool IsPedRunningMobilePhoneTask(int _ped) + public bool IsPedRunningMobilePhoneTask(uint _ped) { unsafe { - if (fn__isPedRunningMobilePhoneTask == null) fn__isPedRunningMobilePhoneTask = (delegate* unmanaged[Cdecl]) funcTable[0x2AFE52F782F25775UL]; + if (fn__isPedRunningMobilePhoneTask == null) fn__isPedRunningMobilePhoneTask = (delegate* unmanaged[Cdecl]) funcTable[0x2AFE52F782F25775UL]; var success = false; var result = fn__isPedRunningMobilePhoneTask(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79312,10 +79299,10 @@ public bool IsPedRunningMobilePhoneTask(int _ped) } public bool IsMobilePhoneToPedEar(IPlayer ped) => IsMobilePhoneToPedEar(ped.ScriptId); - public bool IsMobilePhoneToPedEar(int _ped) + public bool IsMobilePhoneToPedEar(uint _ped) { unsafe { - if (fn__isMobilePhoneToPedEar == null) fn__isMobilePhoneToPedEar = (delegate* unmanaged[Cdecl]) funcTable[0xA3F3564A5B3646C0UL]; + if (fn__isMobilePhoneToPedEar == null) fn__isMobilePhoneToPedEar = (delegate* unmanaged[Cdecl]) funcTable[0xA3F3564A5B3646C0UL]; var success = false; var result = fn__isMobilePhoneToPedEar(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79324,10 +79311,10 @@ public bool IsMobilePhoneToPedEar(int _ped) } public void SetRagdollBlockingFlags(IPlayer ped, int blockingFlag) => SetRagdollBlockingFlags(ped.ScriptId, blockingFlag); - public void SetRagdollBlockingFlags(int _ped, int _blockingFlag) + public void SetRagdollBlockingFlags(uint _ped, int _blockingFlag) { unsafe { - if (fn__setRagdollBlockingFlags == null) fn__setRagdollBlockingFlags = (delegate* unmanaged[Cdecl]) funcTable[0x26695EC767728D84UL]; + if (fn__setRagdollBlockingFlags == null) fn__setRagdollBlockingFlags = (delegate* unmanaged[Cdecl]) funcTable[0x26695EC767728D84UL]; var success = false; fn__setRagdollBlockingFlags(&success, _ped, _blockingFlag); if (!success) throw new Exception("Native execution failed"); @@ -79335,10 +79322,10 @@ public void SetRagdollBlockingFlags(int _ped, int _blockingFlag) } public void ClearRagdollBlockingFlags(IPlayer ped, int blockingFlag) => ClearRagdollBlockingFlags(ped.ScriptId, blockingFlag); - public void ClearRagdollBlockingFlags(int _ped, int _blockingFlag) + public void ClearRagdollBlockingFlags(uint _ped, int _blockingFlag) { unsafe { - if (fn__clearRagdollBlockingFlags == null) fn__clearRagdollBlockingFlags = (delegate* unmanaged[Cdecl]) funcTable[0xD86D101FCFD00A4BUL]; + if (fn__clearRagdollBlockingFlags == null) fn__clearRagdollBlockingFlags = (delegate* unmanaged[Cdecl]) funcTable[0xD86D101FCFD00A4BUL]; var success = false; fn__clearRagdollBlockingFlags(&success, _ped, _blockingFlag); if (!success) throw new Exception("Native execution failed"); @@ -79346,10 +79333,10 @@ public void ClearRagdollBlockingFlags(int _ped, int _blockingFlag) } public void SetPedAngledDefensiveArea(IPlayer ped, float p1, float p2, float p3, float p4, float p5, float p6, float p7, bool p8, bool p9) => SetPedAngledDefensiveArea(ped.ScriptId, p1, p2, p3, p4, p5, p6, p7, p8, p9); - public void SetPedAngledDefensiveArea(int _ped, float _p1, float _p2, float _p3, float _p4, float _p5, float _p6, float _p7, bool _p8, bool _p9) + public void SetPedAngledDefensiveArea(uint _ped, float _p1, float _p2, float _p3, float _p4, float _p5, float _p6, float _p7, bool _p8, bool _p9) { unsafe { - if (fn__setPedAngledDefensiveArea == null) fn__setPedAngledDefensiveArea = (delegate* unmanaged[Cdecl]) funcTable[0xC7F76DF27A5045A1UL]; + if (fn__setPedAngledDefensiveArea == null) fn__setPedAngledDefensiveArea = (delegate* unmanaged[Cdecl]) funcTable[0xC7F76DF27A5045A1UL]; var success = false; fn__setPedAngledDefensiveArea(&success, _ped, _p1, _p2, _p3, _p4, _p5, _p6, _p7, (byte) (_p8 ? 1 : 0), (byte) (_p9 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -79357,49 +79344,49 @@ public void SetPedAngledDefensiveArea(int _ped, float _p1, float _p2, float _p3, } public void SetPedSphereDefensiveArea(IPlayer ped, float x, float y, float z, float radius, bool p5, bool p6) => SetPedSphereDefensiveArea(ped.ScriptId, x, y, z, radius, p5, p6); - public void SetPedSphereDefensiveArea(int _ped, float _x, float _y, float _z, float _radius, bool _p5, bool _p6) + public void SetPedSphereDefensiveArea(uint _ped, float _x, float _y, float _z, float _radius, bool _p5, bool _p6) { unsafe { - if (fn__setPedSphereDefensiveArea == null) fn__setPedSphereDefensiveArea = (delegate* unmanaged[Cdecl]) funcTable[0x9D3151A373974804UL]; + if (fn__setPedSphereDefensiveArea == null) fn__setPedSphereDefensiveArea = (delegate* unmanaged[Cdecl]) funcTable[0x9D3151A373974804UL]; var success = false; fn__setPedSphereDefensiveArea(&success, _ped, _x, _y, _z, _radius, (byte) (_p5 ? 1 : 0), (byte) (_p6 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void SetPedDefensiveSphereAttachedToPed(IPlayer ped, int target, float xOffset, float yOffset, float zOffset, float radius, bool p6) => SetPedDefensiveSphereAttachedToPed(ped.ScriptId, target, xOffset, yOffset, zOffset, radius, p6); - public void SetPedDefensiveSphereAttachedToPed(int ped, IPlayer target, float xOffset, float yOffset, float zOffset, float radius, bool p6) => SetPedDefensiveSphereAttachedToPed(ped, target.ScriptId, xOffset, yOffset, zOffset, radius, p6); + public void SetPedDefensiveSphereAttachedToPed(IPlayer ped, uint target, float xOffset, float yOffset, float zOffset, float radius, bool p6) => SetPedDefensiveSphereAttachedToPed(ped.ScriptId, target, xOffset, yOffset, zOffset, radius, p6); + public void SetPedDefensiveSphereAttachedToPed(uint ped, IPlayer target, float xOffset, float yOffset, float zOffset, float radius, bool p6) => SetPedDefensiveSphereAttachedToPed(ped, target.ScriptId, xOffset, yOffset, zOffset, radius, p6); public void SetPedDefensiveSphereAttachedToPed(IPlayer ped, IPlayer target, float xOffset, float yOffset, float zOffset, float radius, bool p6) => SetPedDefensiveSphereAttachedToPed(ped.ScriptId, target.ScriptId, xOffset, yOffset, zOffset, radius, p6); - public void SetPedDefensiveSphereAttachedToPed(int _ped, int _target, float _xOffset, float _yOffset, float _zOffset, float _radius, bool _p6) + public void SetPedDefensiveSphereAttachedToPed(uint _ped, uint _target, float _xOffset, float _yOffset, float _zOffset, float _radius, bool _p6) { unsafe { - if (fn__setPedDefensiveSphereAttachedToPed == null) fn__setPedDefensiveSphereAttachedToPed = (delegate* unmanaged[Cdecl]) funcTable[0xF9B8F91AAD3B953EUL]; + if (fn__setPedDefensiveSphereAttachedToPed == null) fn__setPedDefensiveSphereAttachedToPed = (delegate* unmanaged[Cdecl]) funcTable[0xF9B8F91AAD3B953EUL]; var success = false; fn__setPedDefensiveSphereAttachedToPed(&success, _ped, _target, _xOffset, _yOffset, _zOffset, _radius, (byte) (_p6 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void SetPedDefensiveSphereAttachedToVehicle(IPlayer ped, int target, float xOffset, float yOffset, float zOffset, float radius, bool p6) => SetPedDefensiveSphereAttachedToVehicle(ped.ScriptId, target, xOffset, yOffset, zOffset, radius, p6); - public void SetPedDefensiveSphereAttachedToVehicle(int ped, IVehicle target, float xOffset, float yOffset, float zOffset, float radius, bool p6) => SetPedDefensiveSphereAttachedToVehicle(ped, target.ScriptId, xOffset, yOffset, zOffset, radius, p6); + public void SetPedDefensiveSphereAttachedToVehicle(IPlayer ped, uint target, float xOffset, float yOffset, float zOffset, float radius, bool p6) => SetPedDefensiveSphereAttachedToVehicle(ped.ScriptId, target, xOffset, yOffset, zOffset, radius, p6); + public void SetPedDefensiveSphereAttachedToVehicle(uint ped, IVehicle target, float xOffset, float yOffset, float zOffset, float radius, bool p6) => SetPedDefensiveSphereAttachedToVehicle(ped, target.ScriptId, xOffset, yOffset, zOffset, radius, p6); public void SetPedDefensiveSphereAttachedToVehicle(IPlayer ped, IVehicle target, float xOffset, float yOffset, float zOffset, float radius, bool p6) => SetPedDefensiveSphereAttachedToVehicle(ped.ScriptId, target.ScriptId, xOffset, yOffset, zOffset, radius, p6); - public void SetPedDefensiveSphereAttachedToVehicle(int _ped, int _target, float _xOffset, float _yOffset, float _zOffset, float _radius, bool _p6) + public void SetPedDefensiveSphereAttachedToVehicle(uint _ped, uint _target, float _xOffset, float _yOffset, float _zOffset, float _radius, bool _p6) { unsafe { - if (fn__setPedDefensiveSphereAttachedToVehicle == null) fn__setPedDefensiveSphereAttachedToVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xE4723DB6E736CCFFUL]; + if (fn__setPedDefensiveSphereAttachedToVehicle == null) fn__setPedDefensiveSphereAttachedToVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xE4723DB6E736CCFFUL]; var success = false; fn__setPedDefensiveSphereAttachedToVehicle(&success, _ped, _target, _xOffset, _yOffset, _zOffset, _radius, (byte) (_p6 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void SetPedDefensiveAreaAttachedToPed(IPlayer ped, int attachPed, float p2, float p3, float p4, float p5, float p6, float p7, float p8, bool p9, bool p10) => SetPedDefensiveAreaAttachedToPed(ped.ScriptId, attachPed, p2, p3, p4, p5, p6, p7, p8, p9, p10); - public void SetPedDefensiveAreaAttachedToPed(int ped, IPlayer attachPed, float p2, float p3, float p4, float p5, float p6, float p7, float p8, bool p9, bool p10) => SetPedDefensiveAreaAttachedToPed(ped, attachPed.ScriptId, p2, p3, p4, p5, p6, p7, p8, p9, p10); + public void SetPedDefensiveAreaAttachedToPed(IPlayer ped, uint attachPed, float p2, float p3, float p4, float p5, float p6, float p7, float p8, bool p9, bool p10) => SetPedDefensiveAreaAttachedToPed(ped.ScriptId, attachPed, p2, p3, p4, p5, p6, p7, p8, p9, p10); + public void SetPedDefensiveAreaAttachedToPed(uint ped, IPlayer attachPed, float p2, float p3, float p4, float p5, float p6, float p7, float p8, bool p9, bool p10) => SetPedDefensiveAreaAttachedToPed(ped, attachPed.ScriptId, p2, p3, p4, p5, p6, p7, p8, p9, p10); public void SetPedDefensiveAreaAttachedToPed(IPlayer ped, IPlayer attachPed, float p2, float p3, float p4, float p5, float p6, float p7, float p8, bool p9, bool p10) => SetPedDefensiveAreaAttachedToPed(ped.ScriptId, attachPed.ScriptId, p2, p3, p4, p5, p6, p7, p8, p9, p10); - public void SetPedDefensiveAreaAttachedToPed(int _ped, int _attachPed, float _p2, float _p3, float _p4, float _p5, float _p6, float _p7, float _p8, bool _p9, bool _p10) + public void SetPedDefensiveAreaAttachedToPed(uint _ped, uint _attachPed, float _p2, float _p3, float _p4, float _p5, float _p6, float _p7, float _p8, bool _p9, bool _p10) { unsafe { - if (fn__setPedDefensiveAreaAttachedToPed == null) fn__setPedDefensiveAreaAttachedToPed = (delegate* unmanaged[Cdecl]) funcTable[0x4EF47FE21698A8B6UL]; + if (fn__setPedDefensiveAreaAttachedToPed == null) fn__setPedDefensiveAreaAttachedToPed = (delegate* unmanaged[Cdecl]) funcTable[0x4EF47FE21698A8B6UL]; var success = false; fn__setPedDefensiveAreaAttachedToPed(&success, _ped, _attachPed, _p2, _p3, _p4, _p5, _p6, _p7, _p8, (byte) (_p9 ? 1 : 0), (byte) (_p10 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -79407,10 +79394,10 @@ public void SetPedDefensiveAreaAttachedToPed(int _ped, int _attachPed, float _p2 } public void SetPedDefensiveAreaDirection(IPlayer ped, float p1, float p2, float p3, bool p4) => SetPedDefensiveAreaDirection(ped.ScriptId, p1, p2, p3, p4); - public void SetPedDefensiveAreaDirection(int _ped, float _p1, float _p2, float _p3, bool _p4) + public void SetPedDefensiveAreaDirection(uint _ped, float _p1, float _p2, float _p3, bool _p4) { unsafe { - if (fn__setPedDefensiveAreaDirection == null) fn__setPedDefensiveAreaDirection = (delegate* unmanaged[Cdecl]) funcTable[0x413C6C763A4AFFADUL]; + if (fn__setPedDefensiveAreaDirection == null) fn__setPedDefensiveAreaDirection = (delegate* unmanaged[Cdecl]) funcTable[0x413C6C763A4AFFADUL]; var success = false; fn__setPedDefensiveAreaDirection(&success, _ped, _p1, _p2, _p3, (byte) (_p4 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -79418,10 +79405,10 @@ public void SetPedDefensiveAreaDirection(int _ped, float _p1, float _p2, float _ } public void RemovePedDefensiveArea(IPlayer ped, bool toggle) => RemovePedDefensiveArea(ped.ScriptId, toggle); - public void RemovePedDefensiveArea(int _ped, bool _toggle) + public void RemovePedDefensiveArea(uint _ped, bool _toggle) { unsafe { - if (fn__removePedDefensiveArea == null) fn__removePedDefensiveArea = (delegate* unmanaged[Cdecl]) funcTable[0x74D4E028107450A9UL]; + if (fn__removePedDefensiveArea == null) fn__removePedDefensiveArea = (delegate* unmanaged[Cdecl]) funcTable[0x74D4E028107450A9UL]; var success = false; fn__removePedDefensiveArea(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -79429,10 +79416,10 @@ public void RemovePedDefensiveArea(int _ped, bool _toggle) } public Vector3 GetPedDefensiveAreaPosition(IPlayer ped, bool p1) => GetPedDefensiveAreaPosition(ped.ScriptId, p1); - public Vector3 GetPedDefensiveAreaPosition(int _ped, bool _p1) + public Vector3 GetPedDefensiveAreaPosition(uint _ped, bool _p1) { unsafe { - if (fn__getPedDefensiveAreaPosition == null) fn__getPedDefensiveAreaPosition = (delegate* unmanaged[Cdecl]) funcTable[0x3C06B8786DD94CD1UL]; + if (fn__getPedDefensiveAreaPosition == null) fn__getPedDefensiveAreaPosition = (delegate* unmanaged[Cdecl]) funcTable[0x3C06B8786DD94CD1UL]; var success = false; var result = fn__getPedDefensiveAreaPosition(&success, _ped, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -79441,10 +79428,10 @@ public Vector3 GetPedDefensiveAreaPosition(int _ped, bool _p1) } public bool IsPedDefensiveAreaActive(IPlayer ped, bool p1) => IsPedDefensiveAreaActive(ped.ScriptId, p1); - public bool IsPedDefensiveAreaActive(int _ped, bool _p1) + public bool IsPedDefensiveAreaActive(uint _ped, bool _p1) { unsafe { - if (fn__isPedDefensiveAreaActive == null) fn__isPedDefensiveAreaActive = (delegate* unmanaged[Cdecl]) funcTable[0xBA63D9FE45412247UL]; + if (fn__isPedDefensiveAreaActive == null) fn__isPedDefensiveAreaActive = (delegate* unmanaged[Cdecl]) funcTable[0xBA63D9FE45412247UL]; var success = false; var result = fn__isPedDefensiveAreaActive(&success, _ped, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -79453,10 +79440,10 @@ public bool IsPedDefensiveAreaActive(int _ped, bool _p1) } public void SetPedPreferredCoverSet(IPlayer ped, int itemSet) => SetPedPreferredCoverSet(ped.ScriptId, itemSet); - public void SetPedPreferredCoverSet(int _ped, int _itemSet) + public void SetPedPreferredCoverSet(uint _ped, int _itemSet) { unsafe { - if (fn__setPedPreferredCoverSet == null) fn__setPedPreferredCoverSet = (delegate* unmanaged[Cdecl]) funcTable[0x8421EB4DA7E391B9UL]; + if (fn__setPedPreferredCoverSet == null) fn__setPedPreferredCoverSet = (delegate* unmanaged[Cdecl]) funcTable[0x8421EB4DA7E391B9UL]; var success = false; fn__setPedPreferredCoverSet(&success, _ped, _itemSet); if (!success) throw new Exception("Native execution failed"); @@ -79464,10 +79451,10 @@ public void SetPedPreferredCoverSet(int _ped, int _itemSet) } public void RemovePedPreferredCoverSet(IPlayer ped) => RemovePedPreferredCoverSet(ped.ScriptId); - public void RemovePedPreferredCoverSet(int _ped) + public void RemovePedPreferredCoverSet(uint _ped) { unsafe { - if (fn__removePedPreferredCoverSet == null) fn__removePedPreferredCoverSet = (delegate* unmanaged[Cdecl]) funcTable[0xFDDB234CF74073D9UL]; + if (fn__removePedPreferredCoverSet == null) fn__removePedPreferredCoverSet = (delegate* unmanaged[Cdecl]) funcTable[0xFDDB234CF74073D9UL]; var success = false; fn__removePedPreferredCoverSet(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79475,10 +79462,10 @@ public void RemovePedPreferredCoverSet(int _ped) } public void ReviveInjuredPed(IPlayer ped) => ReviveInjuredPed(ped.ScriptId); - public void ReviveInjuredPed(int _ped) + public void ReviveInjuredPed(uint _ped) { unsafe { - if (fn__reviveInjuredPed == null) fn__reviveInjuredPed = (delegate* unmanaged[Cdecl]) funcTable[0x8D8ACD8388CD99CEUL]; + if (fn__reviveInjuredPed == null) fn__reviveInjuredPed = (delegate* unmanaged[Cdecl]) funcTable[0x8D8ACD8388CD99CEUL]; var success = false; fn__reviveInjuredPed(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79486,10 +79473,10 @@ public void ReviveInjuredPed(int _ped) } public void ResurrectPed(IPlayer ped) => ResurrectPed(ped.ScriptId); - public void ResurrectPed(int _ped) + public void ResurrectPed(uint _ped) { unsafe { - if (fn__resurrectPed == null) fn__resurrectPed = (delegate* unmanaged[Cdecl]) funcTable[0x71BC8E838B9C6035UL]; + if (fn__resurrectPed == null) fn__resurrectPed = (delegate* unmanaged[Cdecl]) funcTable[0x71BC8E838B9C6035UL]; var success = false; fn__resurrectPed(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79497,23 +79484,23 @@ public void ResurrectPed(int _ped) } public void SetPedNameDebug(IPlayer ped, string name) => SetPedNameDebug(ped.ScriptId, name); - public void SetPedNameDebug(int _ped, string _name) + public void SetPedNameDebug(uint _ped, string _name) { unsafe { - if (fn__setPedNameDebug == null) fn__setPedNameDebug = (delegate* unmanaged[Cdecl]) funcTable[0x98EFA132A4117BE1UL]; + if (fn__setPedNameDebug == null) fn__setPedNameDebug = (delegate* unmanaged[Cdecl]) funcTable[0x98EFA132A4117BE1UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__setPedNameDebug(&success, _ped, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } public Vector3 GetPedExtractedDisplacement(IPlayer ped, bool worldSpace) => GetPedExtractedDisplacement(ped.ScriptId, worldSpace); - public Vector3 GetPedExtractedDisplacement(int _ped, bool _worldSpace) + public Vector3 GetPedExtractedDisplacement(uint _ped, bool _worldSpace) { unsafe { - if (fn__getPedExtractedDisplacement == null) fn__getPedExtractedDisplacement = (delegate* unmanaged[Cdecl]) funcTable[0xE0AF41401ADF87E3UL]; + if (fn__getPedExtractedDisplacement == null) fn__getPedExtractedDisplacement = (delegate* unmanaged[Cdecl]) funcTable[0xE0AF41401ADF87E3UL]; var success = false; var result = fn__getPedExtractedDisplacement(&success, _ped, (byte) (_worldSpace ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -79522,10 +79509,10 @@ public Vector3 GetPedExtractedDisplacement(int _ped, bool _worldSpace) } public void SetPedDiesWhenInjured(IPlayer ped, bool toggle) => SetPedDiesWhenInjured(ped.ScriptId, toggle); - public void SetPedDiesWhenInjured(int _ped, bool _toggle) + public void SetPedDiesWhenInjured(uint _ped, bool _toggle) { unsafe { - if (fn__setPedDiesWhenInjured == null) fn__setPedDiesWhenInjured = (delegate* unmanaged[Cdecl]) funcTable[0x5BA7919BED300023UL]; + if (fn__setPedDiesWhenInjured == null) fn__setPedDiesWhenInjured = (delegate* unmanaged[Cdecl]) funcTable[0x5BA7919BED300023UL]; var success = false; fn__setPedDiesWhenInjured(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -79533,10 +79520,10 @@ public void SetPedDiesWhenInjured(int _ped, bool _toggle) } public void SetPedEnableWeaponBlocking(IPlayer ped, bool toggle) => SetPedEnableWeaponBlocking(ped.ScriptId, toggle); - public void SetPedEnableWeaponBlocking(int _ped, bool _toggle) + public void SetPedEnableWeaponBlocking(uint _ped, bool _toggle) { unsafe { - if (fn__setPedEnableWeaponBlocking == null) fn__setPedEnableWeaponBlocking = (delegate* unmanaged[Cdecl]) funcTable[0x97A790315D3831FDUL]; + if (fn__setPedEnableWeaponBlocking == null) fn__setPedEnableWeaponBlocking = (delegate* unmanaged[Cdecl]) funcTable[0x97A790315D3831FDUL]; var success = false; fn__setPedEnableWeaponBlocking(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -79544,10 +79531,10 @@ public void SetPedEnableWeaponBlocking(int _ped, bool _toggle) } public void SpecialFunctionDoNotUse(IPlayer ped, bool p1) => SpecialFunctionDoNotUse(ped.ScriptId, p1); - public void SpecialFunctionDoNotUse(int _ped, bool _p1) + public void SpecialFunctionDoNotUse(uint _ped, bool _p1) { unsafe { - if (fn__specialFunctionDoNotUse == null) fn__specialFunctionDoNotUse = (delegate* unmanaged[Cdecl]) funcTable[0xF9ACF4A08098EA25UL]; + if (fn__specialFunctionDoNotUse == null) fn__specialFunctionDoNotUse = (delegate* unmanaged[Cdecl]) funcTable[0xF9ACF4A08098EA25UL]; var success = false; fn__specialFunctionDoNotUse(&success, _ped, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -79555,10 +79542,10 @@ public void SpecialFunctionDoNotUse(int _ped, bool _p1) } public void ResetPedVisibleDamage(IPlayer ped) => ResetPedVisibleDamage(ped.ScriptId); - public void ResetPedVisibleDamage(int _ped) + public void ResetPedVisibleDamage(uint _ped) { unsafe { - if (fn__resetPedVisibleDamage == null) fn__resetPedVisibleDamage = (delegate* unmanaged[Cdecl]) funcTable[0x3AC1F7B898F30C05UL]; + if (fn__resetPedVisibleDamage == null) fn__resetPedVisibleDamage = (delegate* unmanaged[Cdecl]) funcTable[0x3AC1F7B898F30C05UL]; var success = false; fn__resetPedVisibleDamage(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79566,10 +79553,10 @@ public void ResetPedVisibleDamage(int _ped) } public void ApplyPedBloodDamageByZone(IPlayer ped, int p1, float p2, float p3, int p4) => ApplyPedBloodDamageByZone(ped.ScriptId, p1, p2, p3, p4); - public void ApplyPedBloodDamageByZone(int _ped, int _p1, float _p2, float _p3, int _p4) + public void ApplyPedBloodDamageByZone(uint _ped, int _p1, float _p2, float _p3, int _p4) { unsafe { - if (fn__applyPedBloodDamageByZone == null) fn__applyPedBloodDamageByZone = (delegate* unmanaged[Cdecl]) funcTable[0x816F6981C60BF53BUL]; + if (fn__applyPedBloodDamageByZone == null) fn__applyPedBloodDamageByZone = (delegate* unmanaged[Cdecl]) funcTable[0x816F6981C60BF53BUL]; var success = false; fn__applyPedBloodDamageByZone(&success, _ped, _p1, _p2, _p3, _p4); if (!success) throw new Exception("Native execution failed"); @@ -79577,75 +79564,75 @@ public void ApplyPedBloodDamageByZone(int _ped, int _p1, float _p2, float _p3, i } public void ApplyPedBlood(IPlayer ped, int boneIndex, float xRot, float yRot, float zRot, string woundType) => ApplyPedBlood(ped.ScriptId, boneIndex, xRot, yRot, zRot, woundType); - public void ApplyPedBlood(int _ped, int _boneIndex, float _xRot, float _yRot, float _zRot, string _woundType) + public void ApplyPedBlood(uint _ped, int _boneIndex, float _xRot, float _yRot, float _zRot, string _woundType) { unsafe { - if (fn__applyPedBlood == null) fn__applyPedBlood = (delegate* unmanaged[Cdecl]) funcTable[0x83F7E01C7B769A26UL]; + if (fn__applyPedBlood == null) fn__applyPedBlood = (delegate* unmanaged[Cdecl]) funcTable[0x83F7E01C7B769A26UL]; var success = false; - var ptr_woundType = _woundType == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_woundType); + var ptr_woundType = MemoryUtils.StringToHGlobalUtf8(_woundType); fn__applyPedBlood(&success, _ped, _boneIndex, _xRot, _yRot, _zRot, ptr_woundType); - if (ptr_woundType != IntPtr.Zero) Marshal.FreeHGlobal(ptr_woundType); + Marshal.FreeHGlobal(ptr_woundType); if (!success) throw new Exception("Native execution failed"); } } public void ApplyPedBloodByZone(IPlayer ped, int p1, float p2, float p3, string p4) => ApplyPedBloodByZone(ped.ScriptId, p1, p2, p3, p4); - public void ApplyPedBloodByZone(int _ped, int _p1, float _p2, float _p3, string _p4) + public void ApplyPedBloodByZone(uint _ped, int _p1, float _p2, float _p3, string _p4) { unsafe { - if (fn__applyPedBloodByZone == null) fn__applyPedBloodByZone = (delegate* unmanaged[Cdecl]) funcTable[0x3311E47B91EDCBBCUL]; + if (fn__applyPedBloodByZone == null) fn__applyPedBloodByZone = (delegate* unmanaged[Cdecl]) funcTable[0x3311E47B91EDCBBCUL]; var success = false; - var ptr_p4 = _p4 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p4); + var ptr_p4 = MemoryUtils.StringToHGlobalUtf8(_p4); fn__applyPedBloodByZone(&success, _ped, _p1, _p2, _p3, ptr_p4); - if (ptr_p4 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p4); + Marshal.FreeHGlobal(ptr_p4); if (!success) throw new Exception("Native execution failed"); } } public void ApplyPedBloodSpecific(IPlayer ped, int p1, float p2, float p3, float p4, float p5, int p6, float p7, string p8) => ApplyPedBloodSpecific(ped.ScriptId, p1, p2, p3, p4, p5, p6, p7, p8); - public void ApplyPedBloodSpecific(int _ped, int _p1, float _p2, float _p3, float _p4, float _p5, int _p6, float _p7, string _p8) + public void ApplyPedBloodSpecific(uint _ped, int _p1, float _p2, float _p3, float _p4, float _p5, int _p6, float _p7, string _p8) { unsafe { - if (fn__applyPedBloodSpecific == null) fn__applyPedBloodSpecific = (delegate* unmanaged[Cdecl]) funcTable[0xEF0D582CBF2D9B0FUL]; + if (fn__applyPedBloodSpecific == null) fn__applyPedBloodSpecific = (delegate* unmanaged[Cdecl]) funcTable[0xEF0D582CBF2D9B0FUL]; var success = false; - var ptr_p8 = _p8 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p8); + var ptr_p8 = MemoryUtils.StringToHGlobalUtf8(_p8); fn__applyPedBloodSpecific(&success, _ped, _p1, _p2, _p3, _p4, _p5, _p6, _p7, ptr_p8); - if (ptr_p8 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p8); + Marshal.FreeHGlobal(ptr_p8); if (!success) throw new Exception("Native execution failed"); } } public void ApplyPedDamageDecal(IPlayer ped, int damageZone, float xOffset, float yOffset, float heading, float scale, float alpha, int unkVariation, bool fadeIn, string decalName) => ApplyPedDamageDecal(ped.ScriptId, damageZone, xOffset, yOffset, heading, scale, alpha, unkVariation, fadeIn, decalName); - public void ApplyPedDamageDecal(int _ped, int _damageZone, float _xOffset, float _yOffset, float _heading, float _scale, float _alpha, int _unkVariation, bool _fadeIn, string _decalName) + public void ApplyPedDamageDecal(uint _ped, int _damageZone, float _xOffset, float _yOffset, float _heading, float _scale, float _alpha, int _unkVariation, bool _fadeIn, string _decalName) { unsafe { - if (fn__applyPedDamageDecal == null) fn__applyPedDamageDecal = (delegate* unmanaged[Cdecl]) funcTable[0x397C38AA7B4A5F83UL]; + if (fn__applyPedDamageDecal == null) fn__applyPedDamageDecal = (delegate* unmanaged[Cdecl]) funcTable[0x397C38AA7B4A5F83UL]; var success = false; - var ptr_decalName = _decalName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_decalName); + var ptr_decalName = MemoryUtils.StringToHGlobalUtf8(_decalName); fn__applyPedDamageDecal(&success, _ped, _damageZone, _xOffset, _yOffset, _heading, _scale, _alpha, _unkVariation, (byte) (_fadeIn ? 1 : 0), ptr_decalName); - if (ptr_decalName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_decalName); + Marshal.FreeHGlobal(ptr_decalName); if (!success) throw new Exception("Native execution failed"); } } public void ApplyPedDamagePack(IPlayer ped, string damagePack, float damage, float mult) => ApplyPedDamagePack(ped.ScriptId, damagePack, damage, mult); - public void ApplyPedDamagePack(int _ped, string _damagePack, float _damage, float _mult) + public void ApplyPedDamagePack(uint _ped, string _damagePack, float _damage, float _mult) { unsafe { - if (fn__applyPedDamagePack == null) fn__applyPedDamagePack = (delegate* unmanaged[Cdecl]) funcTable[0x46DF918788CB093FUL]; + if (fn__applyPedDamagePack == null) fn__applyPedDamagePack = (delegate* unmanaged[Cdecl]) funcTable[0x46DF918788CB093FUL]; var success = false; - var ptr_damagePack = _damagePack == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_damagePack); + var ptr_damagePack = MemoryUtils.StringToHGlobalUtf8(_damagePack); fn__applyPedDamagePack(&success, _ped, ptr_damagePack, _damage, _mult); - if (ptr_damagePack != IntPtr.Zero) Marshal.FreeHGlobal(ptr_damagePack); + Marshal.FreeHGlobal(ptr_damagePack); if (!success) throw new Exception("Native execution failed"); } } public void ClearPedBloodDamage(IPlayer ped) => ClearPedBloodDamage(ped.ScriptId); - public void ClearPedBloodDamage(int _ped) + public void ClearPedBloodDamage(uint _ped) { unsafe { - if (fn__clearPedBloodDamage == null) fn__clearPedBloodDamage = (delegate* unmanaged[Cdecl]) funcTable[0x8FE22675A5A45817UL]; + if (fn__clearPedBloodDamage == null) fn__clearPedBloodDamage = (delegate* unmanaged[Cdecl]) funcTable[0x8FE22675A5A45817UL]; var success = false; fn__clearPedBloodDamage(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79653,10 +79640,10 @@ public void ClearPedBloodDamage(int _ped) } public void ClearPedBloodDamageByZone(IPlayer ped, int p1) => ClearPedBloodDamageByZone(ped.ScriptId, p1); - public void ClearPedBloodDamageByZone(int _ped, int _p1) + public void ClearPedBloodDamageByZone(uint _ped, int _p1) { unsafe { - if (fn__clearPedBloodDamageByZone == null) fn__clearPedBloodDamageByZone = (delegate* unmanaged[Cdecl]) funcTable[0x56E3B78C5408D9F4UL]; + if (fn__clearPedBloodDamageByZone == null) fn__clearPedBloodDamageByZone = (delegate* unmanaged[Cdecl]) funcTable[0x56E3B78C5408D9F4UL]; var success = false; fn__clearPedBloodDamageByZone(&success, _ped, _p1); if (!success) throw new Exception("Native execution failed"); @@ -79664,10 +79651,10 @@ public void ClearPedBloodDamageByZone(int _ped, int _p1) } public void HidePedBloodDamageByZone(IPlayer ped, int p1, bool p2) => HidePedBloodDamageByZone(ped.ScriptId, p1, p2); - public void HidePedBloodDamageByZone(int _ped, int _p1, bool _p2) + public void HidePedBloodDamageByZone(uint _ped, int _p1, bool _p2) { unsafe { - if (fn__hidePedBloodDamageByZone == null) fn__hidePedBloodDamageByZone = (delegate* unmanaged[Cdecl]) funcTable[0x62AB793144DE75DCUL]; + if (fn__hidePedBloodDamageByZone == null) fn__hidePedBloodDamageByZone = (delegate* unmanaged[Cdecl]) funcTable[0x62AB793144DE75DCUL]; var success = false; fn__hidePedBloodDamageByZone(&success, _ped, _p1, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -79675,23 +79662,23 @@ public void HidePedBloodDamageByZone(int _ped, int _p1, bool _p2) } public void ClearPedDamageDecalByZone(IPlayer ped, int p1, string p2) => ClearPedDamageDecalByZone(ped.ScriptId, p1, p2); - public void ClearPedDamageDecalByZone(int _ped, int _p1, string _p2) + public void ClearPedDamageDecalByZone(uint _ped, int _p1, string _p2) { unsafe { - if (fn__clearPedDamageDecalByZone == null) fn__clearPedDamageDecalByZone = (delegate* unmanaged[Cdecl]) funcTable[0x523C79AEEFCC4A2AUL]; + if (fn__clearPedDamageDecalByZone == null) fn__clearPedDamageDecalByZone = (delegate* unmanaged[Cdecl]) funcTable[0x523C79AEEFCC4A2AUL]; var success = false; - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); fn__clearPedDamageDecalByZone(&success, _ped, _p1, ptr_p2); - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p2); if (!success) throw new Exception("Native execution failed"); } } public int GetPedDecorationsState(IPlayer ped) => GetPedDecorationsState(ped.ScriptId); - public int GetPedDecorationsState(int _ped) + public int GetPedDecorationsState(uint _ped) { unsafe { - if (fn__getPedDecorationsState == null) fn__getPedDecorationsState = (delegate* unmanaged[Cdecl]) funcTable[0x71EAB450D86954A1UL]; + if (fn__getPedDecorationsState == null) fn__getPedDecorationsState = (delegate* unmanaged[Cdecl]) funcTable[0x71EAB450D86954A1UL]; var success = false; var result = fn__getPedDecorationsState(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79700,10 +79687,10 @@ public int GetPedDecorationsState(int _ped) } public void MarkPedDecorationsAsClonedFromLocalPlayer(IPlayer ped, bool p1) => MarkPedDecorationsAsClonedFromLocalPlayer(ped.ScriptId, p1); - public void MarkPedDecorationsAsClonedFromLocalPlayer(int _ped, bool _p1) + public void MarkPedDecorationsAsClonedFromLocalPlayer(uint _ped, bool _p1) { unsafe { - if (fn__markPedDecorationsAsClonedFromLocalPlayer == null) fn__markPedDecorationsAsClonedFromLocalPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x2B694AFCF64E6994UL]; + if (fn__markPedDecorationsAsClonedFromLocalPlayer == null) fn__markPedDecorationsAsClonedFromLocalPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x2B694AFCF64E6994UL]; var success = false; fn__markPedDecorationsAsClonedFromLocalPlayer(&success, _ped, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -79711,10 +79698,10 @@ public void MarkPedDecorationsAsClonedFromLocalPlayer(int _ped, bool _p1) } public void ClearPedWetness(IPlayer ped) => ClearPedWetness(ped.ScriptId); - public void ClearPedWetness(int _ped) + public void ClearPedWetness(uint _ped) { unsafe { - if (fn__clearPedWetness == null) fn__clearPedWetness = (delegate* unmanaged[Cdecl]) funcTable[0x9C720776DAA43E7EUL]; + if (fn__clearPedWetness == null) fn__clearPedWetness = (delegate* unmanaged[Cdecl]) funcTable[0x9C720776DAA43E7EUL]; var success = false; fn__clearPedWetness(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79722,10 +79709,10 @@ public void ClearPedWetness(int _ped) } public void SetPedWetnessHeight(IPlayer ped, float height) => SetPedWetnessHeight(ped.ScriptId, height); - public void SetPedWetnessHeight(int _ped, float _height) + public void SetPedWetnessHeight(uint _ped, float _height) { unsafe { - if (fn__setPedWetnessHeight == null) fn__setPedWetnessHeight = (delegate* unmanaged[Cdecl]) funcTable[0x44CB6447D2571AA0UL]; + if (fn__setPedWetnessHeight == null) fn__setPedWetnessHeight = (delegate* unmanaged[Cdecl]) funcTable[0x44CB6447D2571AA0UL]; var success = false; fn__setPedWetnessHeight(&success, _ped, _height); if (!success) throw new Exception("Native execution failed"); @@ -79733,10 +79720,10 @@ public void SetPedWetnessHeight(int _ped, float _height) } public void SetPedWetnessEnabledThisFrame(IPlayer ped) => SetPedWetnessEnabledThisFrame(ped.ScriptId); - public void SetPedWetnessEnabledThisFrame(int _ped) + public void SetPedWetnessEnabledThisFrame(uint _ped) { unsafe { - if (fn__setPedWetnessEnabledThisFrame == null) fn__setPedWetnessEnabledThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0xB5485E4907B53019UL]; + if (fn__setPedWetnessEnabledThisFrame == null) fn__setPedWetnessEnabledThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0xB5485E4907B53019UL]; var success = false; fn__setPedWetnessEnabledThisFrame(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79744,10 +79731,10 @@ public void SetPedWetnessEnabledThisFrame(int _ped) } public void ClearPedEnvDirt(IPlayer ped) => ClearPedEnvDirt(ped.ScriptId); - public void ClearPedEnvDirt(int _ped) + public void ClearPedEnvDirt(uint _ped) { unsafe { - if (fn__clearPedEnvDirt == null) fn__clearPedEnvDirt = (delegate* unmanaged[Cdecl]) funcTable[0x6585D955A68452A5UL]; + if (fn__clearPedEnvDirt == null) fn__clearPedEnvDirt = (delegate* unmanaged[Cdecl]) funcTable[0x6585D955A68452A5UL]; var success = false; fn__clearPedEnvDirt(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79755,10 +79742,10 @@ public void ClearPedEnvDirt(int _ped) } public void SetPedSweat(IPlayer ped, float sweat) => SetPedSweat(ped.ScriptId, sweat); - public void SetPedSweat(int _ped, float _sweat) + public void SetPedSweat(uint _ped, float _sweat) { unsafe { - if (fn__setPedSweat == null) fn__setPedSweat = (delegate* unmanaged[Cdecl]) funcTable[0x27B0405F59637D1FUL]; + if (fn__setPedSweat == null) fn__setPedSweat = (delegate* unmanaged[Cdecl]) funcTable[0x27B0405F59637D1FUL]; var success = false; fn__setPedSweat(&success, _ped, _sweat); if (!success) throw new Exception("Native execution failed"); @@ -79766,10 +79753,10 @@ public void SetPedSweat(int _ped, float _sweat) } public void AddPedDecorationFromHashes(IPlayer ped, uint collection, uint overlay) => AddPedDecorationFromHashes(ped.ScriptId, collection, overlay); - public void AddPedDecorationFromHashes(int _ped, uint _collection, uint _overlay) + public void AddPedDecorationFromHashes(uint _ped, uint _collection, uint _overlay) { unsafe { - if (fn__addPedDecorationFromHashes == null) fn__addPedDecorationFromHashes = (delegate* unmanaged[Cdecl]) funcTable[0x5F5D1665E352A839UL]; + if (fn__addPedDecorationFromHashes == null) fn__addPedDecorationFromHashes = (delegate* unmanaged[Cdecl]) funcTable[0x5F5D1665E352A839UL]; var success = false; fn__addPedDecorationFromHashes(&success, _ped, _collection, _overlay); if (!success) throw new Exception("Native execution failed"); @@ -79777,10 +79764,10 @@ public void AddPedDecorationFromHashes(int _ped, uint _collection, uint _overlay } public void AddPedDecorationFromHashesInCorona(IPlayer ped, uint collection, uint overlay) => AddPedDecorationFromHashesInCorona(ped.ScriptId, collection, overlay); - public void AddPedDecorationFromHashesInCorona(int _ped, uint _collection, uint _overlay) + public void AddPedDecorationFromHashesInCorona(uint _ped, uint _collection, uint _overlay) { unsafe { - if (fn__addPedDecorationFromHashesInCorona == null) fn__addPedDecorationFromHashesInCorona = (delegate* unmanaged[Cdecl]) funcTable[0x5619BFA07CFD7833UL]; + if (fn__addPedDecorationFromHashesInCorona == null) fn__addPedDecorationFromHashesInCorona = (delegate* unmanaged[Cdecl]) funcTable[0x5619BFA07CFD7833UL]; var success = false; fn__addPedDecorationFromHashesInCorona(&success, _ped, _collection, _overlay); if (!success) throw new Exception("Native execution failed"); @@ -79799,10 +79786,10 @@ public int GetPedDecorationZoneFromHashes(uint _collection, uint _overlay) } public void ClearPedDecorations(IPlayer ped) => ClearPedDecorations(ped.ScriptId); - public void ClearPedDecorations(int _ped) + public void ClearPedDecorations(uint _ped) { unsafe { - if (fn__clearPedDecorations == null) fn__clearPedDecorations = (delegate* unmanaged[Cdecl]) funcTable[0x0E5173C163976E38UL]; + if (fn__clearPedDecorations == null) fn__clearPedDecorations = (delegate* unmanaged[Cdecl]) funcTable[0x0E5173C163976E38UL]; var success = false; fn__clearPedDecorations(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79810,10 +79797,10 @@ public void ClearPedDecorations(int _ped) } public void ClearPedDecorationsLeaveScars(IPlayer ped) => ClearPedDecorationsLeaveScars(ped.ScriptId); - public void ClearPedDecorationsLeaveScars(int _ped) + public void ClearPedDecorationsLeaveScars(uint _ped) { unsafe { - if (fn__clearPedDecorationsLeaveScars == null) fn__clearPedDecorationsLeaveScars = (delegate* unmanaged[Cdecl]) funcTable[0xE3B27E70CEAB9F0CUL]; + if (fn__clearPedDecorationsLeaveScars == null) fn__clearPedDecorationsLeaveScars = (delegate* unmanaged[Cdecl]) funcTable[0xE3B27E70CEAB9F0CUL]; var success = false; fn__clearPedDecorationsLeaveScars(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79821,10 +79808,10 @@ public void ClearPedDecorationsLeaveScars(int _ped) } public bool WasPedSkeletonUpdated(IPlayer ped) => WasPedSkeletonUpdated(ped.ScriptId); - public bool WasPedSkeletonUpdated(int _ped) + public bool WasPedSkeletonUpdated(uint _ped) { unsafe { - if (fn__wasPedSkeletonUpdated == null) fn__wasPedSkeletonUpdated = (delegate* unmanaged[Cdecl]) funcTable[0x11B499C1E0FF8559UL]; + if (fn__wasPedSkeletonUpdated == null) fn__wasPedSkeletonUpdated = (delegate* unmanaged[Cdecl]) funcTable[0x11B499C1E0FF8559UL]; var success = false; var result = fn__wasPedSkeletonUpdated(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79833,10 +79820,10 @@ public bool WasPedSkeletonUpdated(int _ped) } public Vector3 GetPedBoneCoords(IPlayer ped, int boneId, float offsetX, float offsetY, float offsetZ) => GetPedBoneCoords(ped.ScriptId, boneId, offsetX, offsetY, offsetZ); - public Vector3 GetPedBoneCoords(int _ped, int _boneId, float _offsetX, float _offsetY, float _offsetZ) + public Vector3 GetPedBoneCoords(uint _ped, int _boneId, float _offsetX, float _offsetY, float _offsetZ) { unsafe { - if (fn__getPedBoneCoords == null) fn__getPedBoneCoords = (delegate* unmanaged[Cdecl]) funcTable[0x17C07FC640E86B4EUL]; + if (fn__getPedBoneCoords == null) fn__getPedBoneCoords = (delegate* unmanaged[Cdecl]) funcTable[0x17C07FC640E86B4EUL]; var success = false; var result = fn__getPedBoneCoords(&success, _ped, _boneId, _offsetX, _offsetY, _offsetZ); if (!success) throw new Exception("Native execution failed"); @@ -79855,10 +79842,10 @@ public void CreateNmMessage(bool _startImmediately, int _messageId) } public void GivePedNmMessage(IPlayer ped) => GivePedNmMessage(ped.ScriptId); - public void GivePedNmMessage(int _ped) + public void GivePedNmMessage(uint _ped) { unsafe { - if (fn__givePedNmMessage == null) fn__givePedNmMessage = (delegate* unmanaged[Cdecl]) funcTable[0xB158DFCCC56E5C5BUL]; + if (fn__givePedNmMessage == null) fn__givePedNmMessage = (delegate* unmanaged[Cdecl]) funcTable[0xB158DFCCC56E5C5BUL]; var success = false; fn__givePedNmMessage(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79918,24 +79905,24 @@ public bool DoesScenarioBlockingAreaExists(float _x1, float _y1, float _z1, floa } public bool IsPedUsingScenario(IPlayer ped, string scenario) => IsPedUsingScenario(ped.ScriptId, scenario); - public bool IsPedUsingScenario(int _ped, string _scenario) + public bool IsPedUsingScenario(uint _ped, string _scenario) { unsafe { - if (fn__isPedUsingScenario == null) fn__isPedUsingScenario = (delegate* unmanaged[Cdecl]) funcTable[0x1BF094736DD62C2EUL]; + if (fn__isPedUsingScenario == null) fn__isPedUsingScenario = (delegate* unmanaged[Cdecl]) funcTable[0x1BF094736DD62C2EUL]; var success = false; - var ptr_scenario = _scenario == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scenario); + var ptr_scenario = MemoryUtils.StringToHGlobalUtf8(_scenario); var result = fn__isPedUsingScenario(&success, _ped, ptr_scenario); - if (ptr_scenario != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scenario); + Marshal.FreeHGlobal(ptr_scenario); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool IsPedUsingAnyScenario(IPlayer ped) => IsPedUsingAnyScenario(ped.ScriptId); - public bool IsPedUsingAnyScenario(int _ped) + public bool IsPedUsingAnyScenario(uint _ped) { unsafe { - if (fn__isPedUsingAnyScenario == null) fn__isPedUsingAnyScenario = (delegate* unmanaged[Cdecl]) funcTable[0x57AB4A3080F85143UL]; + if (fn__isPedUsingAnyScenario == null) fn__isPedUsingAnyScenario = (delegate* unmanaged[Cdecl]) funcTable[0x57AB4A3080F85143UL]; var success = false; var result = fn__isPedUsingAnyScenario(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79955,10 +79942,10 @@ public bool SetPedPanicExitScenario(int _p0, int _p1, int _p2, int _p3) } public void ToggleScenarioPedCowerInPlace(IPlayer ped, bool toggle) => ToggleScenarioPedCowerInPlace(ped.ScriptId, toggle); - public void ToggleScenarioPedCowerInPlace(int _ped, bool _toggle) + public void ToggleScenarioPedCowerInPlace(uint _ped, bool _toggle) { unsafe { - if (fn__toggleScenarioPedCowerInPlace == null) fn__toggleScenarioPedCowerInPlace = (delegate* unmanaged[Cdecl]) funcTable[0x9A77DFD295E29B09UL]; + if (fn__toggleScenarioPedCowerInPlace == null) fn__toggleScenarioPedCowerInPlace = (delegate* unmanaged[Cdecl]) funcTable[0x9A77DFD295E29B09UL]; var success = false; fn__toggleScenarioPedCowerInPlace(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -79988,10 +79975,10 @@ public bool SetPedShouldPlayDirectedNormalScenarioExit(int _p0, int _p1, int _p2 } public void SetPedShouldPlayNormalScenarioExit(IPlayer ped) => SetPedShouldPlayNormalScenarioExit(ped.ScriptId); - public void SetPedShouldPlayNormalScenarioExit(int _ped) + public void SetPedShouldPlayNormalScenarioExit(uint _ped) { unsafe { - if (fn__setPedShouldPlayNormalScenarioExit == null) fn__setPedShouldPlayNormalScenarioExit = (delegate* unmanaged[Cdecl]) funcTable[0xA3A9299C4F2ADB98UL]; + if (fn__setPedShouldPlayNormalScenarioExit == null) fn__setPedShouldPlayNormalScenarioExit = (delegate* unmanaged[Cdecl]) funcTable[0xA3A9299C4F2ADB98UL]; var success = false; fn__setPedShouldPlayNormalScenarioExit(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -79999,10 +79986,10 @@ public void SetPedShouldPlayNormalScenarioExit(int _ped) } public void SetPedShouldPlayImmediateScenarioExit(IPlayer ped) => SetPedShouldPlayImmediateScenarioExit(ped.ScriptId); - public void SetPedShouldPlayImmediateScenarioExit(int _ped) + public void SetPedShouldPlayImmediateScenarioExit(uint _ped) { unsafe { - if (fn__setPedShouldPlayImmediateScenarioExit == null) fn__setPedShouldPlayImmediateScenarioExit = (delegate* unmanaged[Cdecl]) funcTable[0xF1C03A5352243A30UL]; + if (fn__setPedShouldPlayImmediateScenarioExit == null) fn__setPedShouldPlayImmediateScenarioExit = (delegate* unmanaged[Cdecl]) funcTable[0xF1C03A5352243A30UL]; var success = false; fn__setPedShouldPlayImmediateScenarioExit(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -80010,10 +79997,10 @@ public void SetPedShouldPlayImmediateScenarioExit(int _ped) } public bool SetPedShouldPlayFleeScenarioExit(IPlayer ped, int p1, int p2, int p3) => SetPedShouldPlayFleeScenarioExit(ped.ScriptId, p1, p2, p3); - public bool SetPedShouldPlayFleeScenarioExit(int _ped, int _p1, int _p2, int _p3) + public bool SetPedShouldPlayFleeScenarioExit(uint _ped, int _p1, int _p2, int _p3) { unsafe { - if (fn__setPedShouldPlayFleeScenarioExit == null) fn__setPedShouldPlayFleeScenarioExit = (delegate* unmanaged[Cdecl]) funcTable[0xEEED8FAFEC331A70UL]; + if (fn__setPedShouldPlayFleeScenarioExit == null) fn__setPedShouldPlayFleeScenarioExit = (delegate* unmanaged[Cdecl]) funcTable[0xEEED8FAFEC331A70UL]; var success = false; var result = fn__setPedShouldPlayFleeScenarioExit(&success, _ped, _p1, _p2, _p3); if (!success) throw new Exception("Native execution failed"); @@ -80022,10 +80009,10 @@ public bool SetPedShouldPlayFleeScenarioExit(int _ped, int _p1, int _p2, int _p3 } public void SetPedShouldIgnoreScenarioExitCollisionChecks(IPlayer ped, bool p1) => SetPedShouldIgnoreScenarioExitCollisionChecks(ped.ScriptId, p1); - public void SetPedShouldIgnoreScenarioExitCollisionChecks(int _ped, bool _p1) + public void SetPedShouldIgnoreScenarioExitCollisionChecks(uint _ped, bool _p1) { unsafe { - if (fn__setPedShouldIgnoreScenarioExitCollisionChecks == null) fn__setPedShouldIgnoreScenarioExitCollisionChecks = (delegate* unmanaged[Cdecl]) funcTable[0x425AECF167663F48UL]; + if (fn__setPedShouldIgnoreScenarioExitCollisionChecks == null) fn__setPedShouldIgnoreScenarioExitCollisionChecks = (delegate* unmanaged[Cdecl]) funcTable[0x425AECF167663F48UL]; var success = false; fn__setPedShouldIgnoreScenarioExitCollisionChecks(&success, _ped, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80064,53 +80051,53 @@ public bool IsPedGesturing(int _p0) } public void PlayFacialAnim(IPlayer ped, string animName, string animDict) => PlayFacialAnim(ped.ScriptId, animName, animDict); - public void PlayFacialAnim(int _ped, string _animName, string _animDict) + public void PlayFacialAnim(uint _ped, string _animName, string _animDict) { unsafe { - if (fn__playFacialAnim == null) fn__playFacialAnim = (delegate* unmanaged[Cdecl]) funcTable[0xE1E65CA8AC9C00EDUL]; + if (fn__playFacialAnim == null) fn__playFacialAnim = (delegate* unmanaged[Cdecl]) funcTable[0xE1E65CA8AC9C00EDUL]; var success = false; - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); fn__playFacialAnim(&success, _ped, ptr_animName, ptr_animDict); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDict); if (!success) throw new Exception("Native execution failed"); } } public void SetFacialClipset(IPlayer ped, string animDict) => SetFacialClipset(ped.ScriptId, animDict); - public void SetFacialClipset(int _ped, string _animDict) + public void SetFacialClipset(uint _ped, string _animDict) { unsafe { - if (fn__setFacialClipset == null) fn__setFacialClipset = (delegate* unmanaged[Cdecl]) funcTable[0x5687C7F05B39E401UL]; + if (fn__setFacialClipset == null) fn__setFacialClipset = (delegate* unmanaged[Cdecl]) funcTable[0x5687C7F05B39E401UL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); fn__setFacialClipset(&success, _ped, ptr_animDict); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animDict); if (!success) throw new Exception("Native execution failed"); } } public void SetFacialIdleAnimOverride(IPlayer ped, string animName, string animDict) => SetFacialIdleAnimOverride(ped.ScriptId, animName, animDict); - public void SetFacialIdleAnimOverride(int _ped, string _animName, string _animDict) + public void SetFacialIdleAnimOverride(uint _ped, string _animName, string _animDict) { unsafe { - if (fn__setFacialIdleAnimOverride == null) fn__setFacialIdleAnimOverride = (delegate* unmanaged[Cdecl]) funcTable[0xFFC24B988B938B38UL]; + if (fn__setFacialIdleAnimOverride == null) fn__setFacialIdleAnimOverride = (delegate* unmanaged[Cdecl]) funcTable[0xFFC24B988B938B38UL]; var success = false; - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); fn__setFacialIdleAnimOverride(&success, _ped, ptr_animName, ptr_animDict); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDict); if (!success) throw new Exception("Native execution failed"); } } public void ClearFacialIdleAnimOverride(IPlayer ped) => ClearFacialIdleAnimOverride(ped.ScriptId); - public void ClearFacialIdleAnimOverride(int _ped) + public void ClearFacialIdleAnimOverride(uint _ped) { unsafe { - if (fn__clearFacialIdleAnimOverride == null) fn__clearFacialIdleAnimOverride = (delegate* unmanaged[Cdecl]) funcTable[0x726256CC1EEB182FUL]; + if (fn__clearFacialIdleAnimOverride == null) fn__clearFacialIdleAnimOverride = (delegate* unmanaged[Cdecl]) funcTable[0x726256CC1EEB182FUL]; var success = false; fn__clearFacialIdleAnimOverride(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -80118,10 +80105,10 @@ public void ClearFacialIdleAnimOverride(int _ped) } public void SetPedCanPlayGestureAnims(IPlayer ped, bool toggle) => SetPedCanPlayGestureAnims(ped.ScriptId, toggle); - public void SetPedCanPlayGestureAnims(int _ped, bool _toggle) + public void SetPedCanPlayGestureAnims(uint _ped, bool _toggle) { unsafe { - if (fn__setPedCanPlayGestureAnims == null) fn__setPedCanPlayGestureAnims = (delegate* unmanaged[Cdecl]) funcTable[0xBAF20C5432058024UL]; + if (fn__setPedCanPlayGestureAnims == null) fn__setPedCanPlayGestureAnims = (delegate* unmanaged[Cdecl]) funcTable[0xBAF20C5432058024UL]; var success = false; fn__setPedCanPlayGestureAnims(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80129,10 +80116,10 @@ public void SetPedCanPlayGestureAnims(int _ped, bool _toggle) } public void SetPedCanPlayVisemeAnims(IPlayer ped, bool toggle, bool p2) => SetPedCanPlayVisemeAnims(ped.ScriptId, toggle, p2); - public void SetPedCanPlayVisemeAnims(int _ped, bool _toggle, bool _p2) + public void SetPedCanPlayVisemeAnims(uint _ped, bool _toggle, bool _p2) { unsafe { - if (fn__setPedCanPlayVisemeAnims == null) fn__setPedCanPlayVisemeAnims = (delegate* unmanaged[Cdecl]) funcTable[0xF833DDBA3B104D43UL]; + if (fn__setPedCanPlayVisemeAnims == null) fn__setPedCanPlayVisemeAnims = (delegate* unmanaged[Cdecl]) funcTable[0xF833DDBA3B104D43UL]; var success = false; fn__setPedCanPlayVisemeAnims(&success, _ped, (byte) (_toggle ? 1 : 0), (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80140,10 +80127,10 @@ public void SetPedCanPlayVisemeAnims(int _ped, bool _toggle, bool _p2) } public void SetPedIsIgnoredByAutoOpenDoors(IPlayer ped, bool p1) => SetPedIsIgnoredByAutoOpenDoors(ped.ScriptId, p1); - public void SetPedIsIgnoredByAutoOpenDoors(int _ped, bool _p1) + public void SetPedIsIgnoredByAutoOpenDoors(uint _ped, bool _p1) { unsafe { - if (fn__setPedIsIgnoredByAutoOpenDoors == null) fn__setPedIsIgnoredByAutoOpenDoors = (delegate* unmanaged[Cdecl]) funcTable[0x33A60D8BDD6E508CUL]; + if (fn__setPedIsIgnoredByAutoOpenDoors == null) fn__setPedIsIgnoredByAutoOpenDoors = (delegate* unmanaged[Cdecl]) funcTable[0x33A60D8BDD6E508CUL]; var success = false; fn__setPedIsIgnoredByAutoOpenDoors(&success, _ped, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80151,10 +80138,10 @@ public void SetPedIsIgnoredByAutoOpenDoors(int _ped, bool _p1) } public void SetPedCanPlayAmbientAnims(IPlayer ped, bool toggle) => SetPedCanPlayAmbientAnims(ped.ScriptId, toggle); - public void SetPedCanPlayAmbientAnims(int _ped, bool _toggle) + public void SetPedCanPlayAmbientAnims(uint _ped, bool _toggle) { unsafe { - if (fn__setPedCanPlayAmbientAnims == null) fn__setPedCanPlayAmbientAnims = (delegate* unmanaged[Cdecl]) funcTable[0x6373D1349925A70EUL]; + if (fn__setPedCanPlayAmbientAnims == null) fn__setPedCanPlayAmbientAnims = (delegate* unmanaged[Cdecl]) funcTable[0x6373D1349925A70EUL]; var success = false; fn__setPedCanPlayAmbientAnims(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80162,10 +80149,10 @@ public void SetPedCanPlayAmbientAnims(int _ped, bool _toggle) } public void SetPedCanPlayAmbientBaseAnims(IPlayer ped, bool toggle) => SetPedCanPlayAmbientBaseAnims(ped.ScriptId, toggle); - public void SetPedCanPlayAmbientBaseAnims(int _ped, bool _toggle) + public void SetPedCanPlayAmbientBaseAnims(uint _ped, bool _toggle) { unsafe { - if (fn__setPedCanPlayAmbientBaseAnims == null) fn__setPedCanPlayAmbientBaseAnims = (delegate* unmanaged[Cdecl]) funcTable[0x0EB0585D15254740UL]; + if (fn__setPedCanPlayAmbientBaseAnims == null) fn__setPedCanPlayAmbientBaseAnims = (delegate* unmanaged[Cdecl]) funcTable[0x0EB0585D15254740UL]; var success = false; fn__setPedCanPlayAmbientBaseAnims(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80173,10 +80160,10 @@ public void SetPedCanPlayAmbientBaseAnims(int _ped, bool _toggle) } public void TriggerIdleAnimationOnPed(IPlayer ped) => TriggerIdleAnimationOnPed(ped.ScriptId); - public void TriggerIdleAnimationOnPed(int _ped) + public void TriggerIdleAnimationOnPed(uint _ped) { unsafe { - if (fn__triggerIdleAnimationOnPed == null) fn__triggerIdleAnimationOnPed = (delegate* unmanaged[Cdecl]) funcTable[0xC2EE020F5FB4DB53UL]; + if (fn__triggerIdleAnimationOnPed == null) fn__triggerIdleAnimationOnPed = (delegate* unmanaged[Cdecl]) funcTable[0xC2EE020F5FB4DB53UL]; var success = false; fn__triggerIdleAnimationOnPed(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -80184,10 +80171,10 @@ public void TriggerIdleAnimationOnPed(int _ped) } public void SetPedCanArmIk(IPlayer ped, bool toggle) => SetPedCanArmIk(ped.ScriptId, toggle); - public void SetPedCanArmIk(int _ped, bool _toggle) + public void SetPedCanArmIk(uint _ped, bool _toggle) { unsafe { - if (fn__setPedCanArmIk == null) fn__setPedCanArmIk = (delegate* unmanaged[Cdecl]) funcTable[0x6C3B4D6D13B4C841UL]; + if (fn__setPedCanArmIk == null) fn__setPedCanArmIk = (delegate* unmanaged[Cdecl]) funcTable[0x6C3B4D6D13B4C841UL]; var success = false; fn__setPedCanArmIk(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80195,10 +80182,10 @@ public void SetPedCanArmIk(int _ped, bool _toggle) } public void SetPedCanHeadIk(IPlayer ped, bool toggle) => SetPedCanHeadIk(ped.ScriptId, toggle); - public void SetPedCanHeadIk(int _ped, bool _toggle) + public void SetPedCanHeadIk(uint _ped, bool _toggle) { unsafe { - if (fn__setPedCanHeadIk == null) fn__setPedCanHeadIk = (delegate* unmanaged[Cdecl]) funcTable[0xC11C18092C5530DCUL]; + if (fn__setPedCanHeadIk == null) fn__setPedCanHeadIk = (delegate* unmanaged[Cdecl]) funcTable[0xC11C18092C5530DCUL]; var success = false; fn__setPedCanHeadIk(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80206,10 +80193,10 @@ public void SetPedCanHeadIk(int _ped, bool _toggle) } public void SetPedCanLegIk(IPlayer ped, bool toggle) => SetPedCanLegIk(ped.ScriptId, toggle); - public void SetPedCanLegIk(int _ped, bool _toggle) + public void SetPedCanLegIk(uint _ped, bool _toggle) { unsafe { - if (fn__setPedCanLegIk == null) fn__setPedCanLegIk = (delegate* unmanaged[Cdecl]) funcTable[0x73518ECE2485412BUL]; + if (fn__setPedCanLegIk == null) fn__setPedCanLegIk = (delegate* unmanaged[Cdecl]) funcTable[0x73518ECE2485412BUL]; var success = false; fn__setPedCanLegIk(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80217,10 +80204,10 @@ public void SetPedCanLegIk(int _ped, bool _toggle) } public void SetPedCanTorsoIk(IPlayer ped, bool toggle) => SetPedCanTorsoIk(ped.ScriptId, toggle); - public void SetPedCanTorsoIk(int _ped, bool _toggle) + public void SetPedCanTorsoIk(uint _ped, bool _toggle) { unsafe { - if (fn__setPedCanTorsoIk == null) fn__setPedCanTorsoIk = (delegate* unmanaged[Cdecl]) funcTable[0xF2B7106D37947CE0UL]; + if (fn__setPedCanTorsoIk == null) fn__setPedCanTorsoIk = (delegate* unmanaged[Cdecl]) funcTable[0xF2B7106D37947CE0UL]; var success = false; fn__setPedCanTorsoIk(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80228,10 +80215,10 @@ public void SetPedCanTorsoIk(int _ped, bool _toggle) } public void SetPedCanTorsoReactIk(IPlayer ped, bool p1) => SetPedCanTorsoReactIk(ped.ScriptId, p1); - public void SetPedCanTorsoReactIk(int _ped, bool _p1) + public void SetPedCanTorsoReactIk(uint _ped, bool _p1) { unsafe { - if (fn__setPedCanTorsoReactIk == null) fn__setPedCanTorsoReactIk = (delegate* unmanaged[Cdecl]) funcTable[0xF5846EDB26A98A24UL]; + if (fn__setPedCanTorsoReactIk == null) fn__setPedCanTorsoReactIk = (delegate* unmanaged[Cdecl]) funcTable[0xF5846EDB26A98A24UL]; var success = false; fn__setPedCanTorsoReactIk(&success, _ped, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80239,10 +80226,10 @@ public void SetPedCanTorsoReactIk(int _ped, bool _p1) } public void SetPedCanTorsoVehicleIk(IPlayer ped, bool p1) => SetPedCanTorsoVehicleIk(ped.ScriptId, p1); - public void SetPedCanTorsoVehicleIk(int _ped, bool _p1) + public void SetPedCanTorsoVehicleIk(uint _ped, bool _p1) { unsafe { - if (fn__setPedCanTorsoVehicleIk == null) fn__setPedCanTorsoVehicleIk = (delegate* unmanaged[Cdecl]) funcTable[0x6647C5F6F5792496UL]; + if (fn__setPedCanTorsoVehicleIk == null) fn__setPedCanTorsoVehicleIk = (delegate* unmanaged[Cdecl]) funcTable[0x6647C5F6F5792496UL]; var success = false; fn__setPedCanTorsoVehicleIk(&success, _ped, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80250,23 +80237,23 @@ public void SetPedCanTorsoVehicleIk(int _ped, bool _p1) } public void SetPedCanUseAutoConversationLookat(IPlayer ped, bool toggle) => SetPedCanUseAutoConversationLookat(ped.ScriptId, toggle); - public void SetPedCanUseAutoConversationLookat(int _ped, bool _toggle) + public void SetPedCanUseAutoConversationLookat(uint _ped, bool _toggle) { unsafe { - if (fn__setPedCanUseAutoConversationLookat == null) fn__setPedCanUseAutoConversationLookat = (delegate* unmanaged[Cdecl]) funcTable[0xEC4686EC06434678UL]; + if (fn__setPedCanUseAutoConversationLookat == null) fn__setPedCanUseAutoConversationLookat = (delegate* unmanaged[Cdecl]) funcTable[0xEC4686EC06434678UL]; var success = false; fn__setPedCanUseAutoConversationLookat(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public bool IsPedHeadtrackingPed(IPlayer ped1, int ped2) => IsPedHeadtrackingPed(ped1.ScriptId, ped2); - public bool IsPedHeadtrackingPed(int ped1, IPlayer ped2) => IsPedHeadtrackingPed(ped1, ped2.ScriptId); + public bool IsPedHeadtrackingPed(IPlayer ped1, uint ped2) => IsPedHeadtrackingPed(ped1.ScriptId, ped2); + public bool IsPedHeadtrackingPed(uint ped1, IPlayer ped2) => IsPedHeadtrackingPed(ped1, ped2.ScriptId); public bool IsPedHeadtrackingPed(IPlayer ped1, IPlayer ped2) => IsPedHeadtrackingPed(ped1.ScriptId, ped2.ScriptId); - public bool IsPedHeadtrackingPed(int _ped1, int _ped2) + public bool IsPedHeadtrackingPed(uint _ped1, uint _ped2) { unsafe { - if (fn__isPedHeadtrackingPed == null) fn__isPedHeadtrackingPed = (delegate* unmanaged[Cdecl]) funcTable[0x5CD3CB88A7F8850DUL]; + if (fn__isPedHeadtrackingPed == null) fn__isPedHeadtrackingPed = (delegate* unmanaged[Cdecl]) funcTable[0x5CD3CB88A7F8850DUL]; var success = false; var result = fn__isPedHeadtrackingPed(&success, _ped1, _ped2); if (!success) throw new Exception("Native execution failed"); @@ -80274,13 +80261,13 @@ public bool IsPedHeadtrackingPed(int _ped1, int _ped2) } } - public bool IsPedHeadtrackingEntity(IPlayer ped, int entity) => IsPedHeadtrackingEntity(ped.ScriptId, entity); - public bool IsPedHeadtrackingEntity(int ped, IEntity entity) => IsPedHeadtrackingEntity(ped, entity.ScriptId); + public bool IsPedHeadtrackingEntity(IPlayer ped, uint entity) => IsPedHeadtrackingEntity(ped.ScriptId, entity); + public bool IsPedHeadtrackingEntity(uint ped, IEntity entity) => IsPedHeadtrackingEntity(ped, entity.ScriptId); public bool IsPedHeadtrackingEntity(IPlayer ped, IEntity entity) => IsPedHeadtrackingEntity(ped.ScriptId, entity.ScriptId); - public bool IsPedHeadtrackingEntity(int _ped, int _entity) + public bool IsPedHeadtrackingEntity(uint _ped, uint _entity) { unsafe { - if (fn__isPedHeadtrackingEntity == null) fn__isPedHeadtrackingEntity = (delegate* unmanaged[Cdecl]) funcTable[0x813A0A7C9D2E831FUL]; + if (fn__isPedHeadtrackingEntity == null) fn__isPedHeadtrackingEntity = (delegate* unmanaged[Cdecl]) funcTable[0x813A0A7C9D2E831FUL]; var success = false; var result = fn__isPedHeadtrackingEntity(&success, _ped, _entity); if (!success) throw new Exception("Native execution failed"); @@ -80288,13 +80275,13 @@ public bool IsPedHeadtrackingEntity(int _ped, int _entity) } } - public void SetPedPrimaryLookat(IPlayer ped, int lookAt) => SetPedPrimaryLookat(ped.ScriptId, lookAt); - public void SetPedPrimaryLookat(int ped, IPlayer lookAt) => SetPedPrimaryLookat(ped, lookAt.ScriptId); + public void SetPedPrimaryLookat(IPlayer ped, uint lookAt) => SetPedPrimaryLookat(ped.ScriptId, lookAt); + public void SetPedPrimaryLookat(uint ped, IPlayer lookAt) => SetPedPrimaryLookat(ped, lookAt.ScriptId); public void SetPedPrimaryLookat(IPlayer ped, IPlayer lookAt) => SetPedPrimaryLookat(ped.ScriptId, lookAt.ScriptId); - public void SetPedPrimaryLookat(int _ped, int _lookAt) + public void SetPedPrimaryLookat(uint _ped, uint _lookAt) { unsafe { - if (fn__setPedPrimaryLookat == null) fn__setPedPrimaryLookat = (delegate* unmanaged[Cdecl]) funcTable[0xCD17B554996A8D9EUL]; + if (fn__setPedPrimaryLookat == null) fn__setPedPrimaryLookat = (delegate* unmanaged[Cdecl]) funcTable[0xCD17B554996A8D9EUL]; var success = false; fn__setPedPrimaryLookat(&success, _ped, _lookAt); if (!success) throw new Exception("Native execution failed"); @@ -80332,10 +80319,10 @@ public void SetPedClothProne(int _p0, bool _p1) } public void SetPedConfigFlag(IPlayer ped, int flagId, bool value) => SetPedConfigFlag(ped.ScriptId, flagId, value); - public void SetPedConfigFlag(int _ped, int _flagId, bool _value) + public void SetPedConfigFlag(uint _ped, int _flagId, bool _value) { unsafe { - if (fn__setPedConfigFlag == null) fn__setPedConfigFlag = (delegate* unmanaged[Cdecl]) funcTable[0x1913FE4CBF41C463UL]; + if (fn__setPedConfigFlag == null) fn__setPedConfigFlag = (delegate* unmanaged[Cdecl]) funcTable[0x1913FE4CBF41C463UL]; var success = false; fn__setPedConfigFlag(&success, _ped, _flagId, (byte) (_value ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80343,10 +80330,10 @@ public void SetPedConfigFlag(int _ped, int _flagId, bool _value) } public void SetPedResetFlag(IPlayer ped, int flagId, bool doReset) => SetPedResetFlag(ped.ScriptId, flagId, doReset); - public void SetPedResetFlag(int _ped, int _flagId, bool _doReset) + public void SetPedResetFlag(uint _ped, int _flagId, bool _doReset) { unsafe { - if (fn__setPedResetFlag == null) fn__setPedResetFlag = (delegate* unmanaged[Cdecl]) funcTable[0xC1E8A365BF3B29F2UL]; + if (fn__setPedResetFlag == null) fn__setPedResetFlag = (delegate* unmanaged[Cdecl]) funcTable[0xC1E8A365BF3B29F2UL]; var success = false; fn__setPedResetFlag(&success, _ped, _flagId, (byte) (_doReset ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80354,10 +80341,10 @@ public void SetPedResetFlag(int _ped, int _flagId, bool _doReset) } public bool GetPedConfigFlag(IPlayer ped, int flagId, bool p2) => GetPedConfigFlag(ped.ScriptId, flagId, p2); - public bool GetPedConfigFlag(int _ped, int _flagId, bool _p2) + public bool GetPedConfigFlag(uint _ped, int _flagId, bool _p2) { unsafe { - if (fn__getPedConfigFlag == null) fn__getPedConfigFlag = (delegate* unmanaged[Cdecl]) funcTable[0x7EE53118C892B513UL]; + if (fn__getPedConfigFlag == null) fn__getPedConfigFlag = (delegate* unmanaged[Cdecl]) funcTable[0x7EE53118C892B513UL]; var success = false; var result = fn__getPedConfigFlag(&success, _ped, _flagId, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80366,10 +80353,10 @@ public bool GetPedConfigFlag(int _ped, int _flagId, bool _p2) } public bool GetPedResetFlag(IPlayer ped, int flagId) => GetPedResetFlag(ped.ScriptId, flagId); - public bool GetPedResetFlag(int _ped, int _flagId) + public bool GetPedResetFlag(uint _ped, int _flagId) { unsafe { - if (fn__getPedResetFlag == null) fn__getPedResetFlag = (delegate* unmanaged[Cdecl]) funcTable[0xAF9E59B1B1FBF2A0UL]; + if (fn__getPedResetFlag == null) fn__getPedResetFlag = (delegate* unmanaged[Cdecl]) funcTable[0xAF9E59B1B1FBF2A0UL]; var success = false; var result = fn__getPedResetFlag(&success, _ped, _flagId); if (!success) throw new Exception("Native execution failed"); @@ -80378,10 +80365,10 @@ public bool GetPedResetFlag(int _ped, int _flagId) } public void SetPedGroupMemberPassengerIndex(IPlayer ped, int index) => SetPedGroupMemberPassengerIndex(ped.ScriptId, index); - public void SetPedGroupMemberPassengerIndex(int _ped, int _index) + public void SetPedGroupMemberPassengerIndex(uint _ped, int _index) { unsafe { - if (fn__setPedGroupMemberPassengerIndex == null) fn__setPedGroupMemberPassengerIndex = (delegate* unmanaged[Cdecl]) funcTable[0x0BDDB8D9EC6BCF3CUL]; + if (fn__setPedGroupMemberPassengerIndex == null) fn__setPedGroupMemberPassengerIndex = (delegate* unmanaged[Cdecl]) funcTable[0x0BDDB8D9EC6BCF3CUL]; var success = false; fn__setPedGroupMemberPassengerIndex(&success, _ped, _index); if (!success) throw new Exception("Native execution failed"); @@ -80389,21 +80376,21 @@ public void SetPedGroupMemberPassengerIndex(int _ped, int _index) } public void SetPedCanEvasiveDive(IPlayer ped, bool toggle) => SetPedCanEvasiveDive(ped.ScriptId, toggle); - public void SetPedCanEvasiveDive(int _ped, bool _toggle) + public void SetPedCanEvasiveDive(uint _ped, bool _toggle) { unsafe { - if (fn__setPedCanEvasiveDive == null) fn__setPedCanEvasiveDive = (delegate* unmanaged[Cdecl]) funcTable[0x6B7A646C242A7059UL]; + if (fn__setPedCanEvasiveDive == null) fn__setPedCanEvasiveDive = (delegate* unmanaged[Cdecl]) funcTable[0x6B7A646C242A7059UL]; var success = false; fn__setPedCanEvasiveDive(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public bool IsPedEvasiveDiving(IPlayer ped, ref int evadingEntity) => IsPedEvasiveDiving(ped.ScriptId, ref evadingEntity); - public bool IsPedEvasiveDiving(int _ped, ref int _evadingEntity) + public bool IsPedEvasiveDiving(IPlayer ped, ref uint evadingEntity) => IsPedEvasiveDiving(ped.ScriptId, ref evadingEntity); + public bool IsPedEvasiveDiving(uint _ped, ref uint _evadingEntity) { unsafe { - if (fn__isPedEvasiveDiving == null) fn__isPedEvasiveDiving = (delegate* unmanaged[Cdecl]) funcTable[0x414641C26E105898UL]; + if (fn__isPedEvasiveDiving == null) fn__isPedEvasiveDiving = (delegate* unmanaged[Cdecl]) funcTable[0x414641C26E105898UL]; var success = false; var ref_evadingEntity = _evadingEntity; var result = fn__isPedEvasiveDiving(&success, _ped, &ref_evadingEntity); @@ -80414,10 +80401,10 @@ public bool IsPedEvasiveDiving(int _ped, ref int _evadingEntity) } public void SetPedShootsAtCoord(IPlayer ped, float x, float y, float z, bool toggle) => SetPedShootsAtCoord(ped.ScriptId, x, y, z, toggle); - public void SetPedShootsAtCoord(int _ped, float _x, float _y, float _z, bool _toggle) + public void SetPedShootsAtCoord(uint _ped, float _x, float _y, float _z, bool _toggle) { unsafe { - if (fn__setPedShootsAtCoord == null) fn__setPedShootsAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x96A05E4FB321B1BAUL]; + if (fn__setPedShootsAtCoord == null) fn__setPedShootsAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x96A05E4FB321B1BAUL]; var success = false; fn__setPedShootsAtCoord(&success, _ped, _x, _y, _z, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80445,10 +80432,10 @@ public void StopAnyPedModelBeingSuppressed() } public void SetPedCanBeTargetedWhenInjured(IPlayer ped, bool toggle) => SetPedCanBeTargetedWhenInjured(ped.ScriptId, toggle); - public void SetPedCanBeTargetedWhenInjured(int _ped, bool _toggle) + public void SetPedCanBeTargetedWhenInjured(uint _ped, bool _toggle) { unsafe { - if (fn__setPedCanBeTargetedWhenInjured == null) fn__setPedCanBeTargetedWhenInjured = (delegate* unmanaged[Cdecl]) funcTable[0x638C03B0F9878F57UL]; + if (fn__setPedCanBeTargetedWhenInjured == null) fn__setPedCanBeTargetedWhenInjured = (delegate* unmanaged[Cdecl]) funcTable[0x638C03B0F9878F57UL]; var success = false; fn__setPedCanBeTargetedWhenInjured(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80456,10 +80443,10 @@ public void SetPedCanBeTargetedWhenInjured(int _ped, bool _toggle) } public void SetPedGeneratesDeadBodyEvents(IPlayer ped, bool toggle) => SetPedGeneratesDeadBodyEvents(ped.ScriptId, toggle); - public void SetPedGeneratesDeadBodyEvents(int _ped, bool _toggle) + public void SetPedGeneratesDeadBodyEvents(uint _ped, bool _toggle) { unsafe { - if (fn__setPedGeneratesDeadBodyEvents == null) fn__setPedGeneratesDeadBodyEvents = (delegate* unmanaged[Cdecl]) funcTable[0x7FB17BA2E7DECA5BUL]; + if (fn__setPedGeneratesDeadBodyEvents == null) fn__setPedGeneratesDeadBodyEvents = (delegate* unmanaged[Cdecl]) funcTable[0x7FB17BA2E7DECA5BUL]; var success = false; fn__setPedGeneratesDeadBodyEvents(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80467,10 +80454,10 @@ public void SetPedGeneratesDeadBodyEvents(int _ped, bool _toggle) } public void BlockPedFromGeneratingDeadBodyEventsWhenDead(IPlayer ped, bool toggle) => BlockPedFromGeneratingDeadBodyEventsWhenDead(ped.ScriptId, toggle); - public void BlockPedFromGeneratingDeadBodyEventsWhenDead(int _ped, bool _toggle) + public void BlockPedFromGeneratingDeadBodyEventsWhenDead(uint _ped, bool _toggle) { unsafe { - if (fn__blockPedFromGeneratingDeadBodyEventsWhenDead == null) fn__blockPedFromGeneratingDeadBodyEventsWhenDead = (delegate* unmanaged[Cdecl]) funcTable[0xE43A13C9E4CCCBCFUL]; + if (fn__blockPedFromGeneratingDeadBodyEventsWhenDead == null) fn__blockPedFromGeneratingDeadBodyEventsWhenDead = (delegate* unmanaged[Cdecl]) funcTable[0xE43A13C9E4CCCBCFUL]; var success = false; fn__blockPedFromGeneratingDeadBodyEventsWhenDead(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80488,10 +80475,10 @@ public void SetPedWillOnlyAttackWantedPlayer(int _p0, int _p1) } public void SetPedCanRagdollFromPlayerImpact(IPlayer ped, bool toggle) => SetPedCanRagdollFromPlayerImpact(ped.ScriptId, toggle); - public void SetPedCanRagdollFromPlayerImpact(int _ped, bool _toggle) + public void SetPedCanRagdollFromPlayerImpact(uint _ped, bool _toggle) { unsafe { - if (fn__setPedCanRagdollFromPlayerImpact == null) fn__setPedCanRagdollFromPlayerImpact = (delegate* unmanaged[Cdecl]) funcTable[0xDF993EE5E90ABA25UL]; + if (fn__setPedCanRagdollFromPlayerImpact == null) fn__setPedCanRagdollFromPlayerImpact = (delegate* unmanaged[Cdecl]) funcTable[0xDF993EE5E90ABA25UL]; var success = false; fn__setPedCanRagdollFromPlayerImpact(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80499,10 +80486,10 @@ public void SetPedCanRagdollFromPlayerImpact(int _ped, bool _toggle) } public void GivePedHelmet(IPlayer ped, bool cannotRemove, int helmetFlag, int textureIndex) => GivePedHelmet(ped.ScriptId, cannotRemove, helmetFlag, textureIndex); - public void GivePedHelmet(int _ped, bool _cannotRemove, int _helmetFlag, int _textureIndex) + public void GivePedHelmet(uint _ped, bool _cannotRemove, int _helmetFlag, int _textureIndex) { unsafe { - if (fn__givePedHelmet == null) fn__givePedHelmet = (delegate* unmanaged[Cdecl]) funcTable[0x54C7C4A94367717EUL]; + if (fn__givePedHelmet == null) fn__givePedHelmet = (delegate* unmanaged[Cdecl]) funcTable[0x54C7C4A94367717EUL]; var success = false; fn__givePedHelmet(&success, _ped, (byte) (_cannotRemove ? 1 : 0), _helmetFlag, _textureIndex); if (!success) throw new Exception("Native execution failed"); @@ -80510,10 +80497,10 @@ public void GivePedHelmet(int _ped, bool _cannotRemove, int _helmetFlag, int _te } public void RemovePedHelmet(IPlayer ped, bool instantly) => RemovePedHelmet(ped.ScriptId, instantly); - public void RemovePedHelmet(int _ped, bool _instantly) + public void RemovePedHelmet(uint _ped, bool _instantly) { unsafe { - if (fn__removePedHelmet == null) fn__removePedHelmet = (delegate* unmanaged[Cdecl]) funcTable[0xA7B2458D0AD6DED8UL]; + if (fn__removePedHelmet == null) fn__removePedHelmet = (delegate* unmanaged[Cdecl]) funcTable[0xA7B2458D0AD6DED8UL]; var success = false; fn__removePedHelmet(&success, _ped, (byte) (_instantly ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80521,10 +80508,10 @@ public void RemovePedHelmet(int _ped, bool _instantly) } public bool IsPedTakingOffHelmet(IPlayer ped) => IsPedTakingOffHelmet(ped.ScriptId); - public bool IsPedTakingOffHelmet(int _ped) + public bool IsPedTakingOffHelmet(uint _ped) { unsafe { - if (fn__isPedTakingOffHelmet == null) fn__isPedTakingOffHelmet = (delegate* unmanaged[Cdecl]) funcTable[0x14590DDBEDB1EC85UL]; + if (fn__isPedTakingOffHelmet == null) fn__isPedTakingOffHelmet = (delegate* unmanaged[Cdecl]) funcTable[0x14590DDBEDB1EC85UL]; var success = false; var result = fn__isPedTakingOffHelmet(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -80533,10 +80520,10 @@ public bool IsPedTakingOffHelmet(int _ped) } public void SetPedHelmet(IPlayer ped, bool canWearHelmet) => SetPedHelmet(ped.ScriptId, canWearHelmet); - public void SetPedHelmet(int _ped, bool _canWearHelmet) + public void SetPedHelmet(uint _ped, bool _canWearHelmet) { unsafe { - if (fn__setPedHelmet == null) fn__setPedHelmet = (delegate* unmanaged[Cdecl]) funcTable[0x560A43136EB58105UL]; + if (fn__setPedHelmet == null) fn__setPedHelmet = (delegate* unmanaged[Cdecl]) funcTable[0x560A43136EB58105UL]; var success = false; fn__setPedHelmet(&success, _ped, (byte) (_canWearHelmet ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80544,10 +80531,10 @@ public void SetPedHelmet(int _ped, bool _canWearHelmet) } public void SetPedHelmetFlag(IPlayer ped, int helmetFlag) => SetPedHelmetFlag(ped.ScriptId, helmetFlag); - public void SetPedHelmetFlag(int _ped, int _helmetFlag) + public void SetPedHelmetFlag(uint _ped, int _helmetFlag) { unsafe { - if (fn__setPedHelmetFlag == null) fn__setPedHelmetFlag = (delegate* unmanaged[Cdecl]) funcTable[0xC0E78D5C2CE3EB25UL]; + if (fn__setPedHelmetFlag == null) fn__setPedHelmetFlag = (delegate* unmanaged[Cdecl]) funcTable[0xC0E78D5C2CE3EB25UL]; var success = false; fn__setPedHelmetFlag(&success, _ped, _helmetFlag); if (!success) throw new Exception("Native execution failed"); @@ -80555,10 +80542,10 @@ public void SetPedHelmetFlag(int _ped, int _helmetFlag) } public void SetPedHelmetPropIndex(IPlayer ped, int propIndex, bool p2) => SetPedHelmetPropIndex(ped.ScriptId, propIndex, p2); - public void SetPedHelmetPropIndex(int _ped, int _propIndex, bool _p2) + public void SetPedHelmetPropIndex(uint _ped, int _propIndex, bool _p2) { unsafe { - if (fn__setPedHelmetPropIndex == null) fn__setPedHelmetPropIndex = (delegate* unmanaged[Cdecl]) funcTable[0x26D83693ED99291CUL]; + if (fn__setPedHelmetPropIndex == null) fn__setPedHelmetPropIndex = (delegate* unmanaged[Cdecl]) funcTable[0x26D83693ED99291CUL]; var success = false; fn__setPedHelmetPropIndex(&success, _ped, _propIndex, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80566,10 +80553,10 @@ public void SetPedHelmetPropIndex(int _ped, int _propIndex, bool _p2) } public void SetPedHelmetVisorPropIndices(IPlayer ped, bool p1, int p2, int p3) => SetPedHelmetVisorPropIndices(ped.ScriptId, p1, p2, p3); - public void SetPedHelmetVisorPropIndices(int _ped, bool _p1, int _p2, int _p3) + public void SetPedHelmetVisorPropIndices(uint _ped, bool _p1, int _p2, int _p3) { unsafe { - if (fn__setPedHelmetVisorPropIndices == null) fn__setPedHelmetVisorPropIndices = (delegate* unmanaged[Cdecl]) funcTable[0x3F7325574E41B44DUL]; + if (fn__setPedHelmetVisorPropIndices == null) fn__setPedHelmetVisorPropIndices = (delegate* unmanaged[Cdecl]) funcTable[0x3F7325574E41B44DUL]; var success = false; fn__setPedHelmetVisorPropIndices(&success, _ped, (byte) (_p1 ? 1 : 0), _p2, _p3); if (!success) throw new Exception("Native execution failed"); @@ -80577,10 +80564,10 @@ public void SetPedHelmetVisorPropIndices(int _ped, bool _p1, int _p2, int _p3) } public bool IsPedHelmetVisorUp(IPlayer ped) => IsPedHelmetVisorUp(ped.ScriptId); - public bool IsPedHelmetVisorUp(int _ped) + public bool IsPedHelmetVisorUp(uint _ped) { unsafe { - if (fn__isPedHelmetVisorUp == null) fn__isPedHelmetVisorUp = (delegate* unmanaged[Cdecl]) funcTable[0xB9496CE47546DB2CUL]; + if (fn__isPedHelmetVisorUp == null) fn__isPedHelmetVisorUp = (delegate* unmanaged[Cdecl]) funcTable[0xB9496CE47546DB2CUL]; var success = false; var result = fn__isPedHelmetVisorUp(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -80589,10 +80576,10 @@ public bool IsPedHelmetVisorUp(int _ped) } public void SetPedHelmetTextureIndex(IPlayer ped, int textureIndex) => SetPedHelmetTextureIndex(ped.ScriptId, textureIndex); - public void SetPedHelmetTextureIndex(int _ped, int _textureIndex) + public void SetPedHelmetTextureIndex(uint _ped, int _textureIndex) { unsafe { - if (fn__setPedHelmetTextureIndex == null) fn__setPedHelmetTextureIndex = (delegate* unmanaged[Cdecl]) funcTable[0xF1550C4BD22582E2UL]; + if (fn__setPedHelmetTextureIndex == null) fn__setPedHelmetTextureIndex = (delegate* unmanaged[Cdecl]) funcTable[0xF1550C4BD22582E2UL]; var success = false; fn__setPedHelmetTextureIndex(&success, _ped, _textureIndex); if (!success) throw new Exception("Native execution failed"); @@ -80600,10 +80587,10 @@ public void SetPedHelmetTextureIndex(int _ped, int _textureIndex) } public bool IsPedWearingHelmet(IPlayer ped) => IsPedWearingHelmet(ped.ScriptId); - public bool IsPedWearingHelmet(int _ped) + public bool IsPedWearingHelmet(uint _ped) { unsafe { - if (fn__isPedWearingHelmet == null) fn__isPedWearingHelmet = (delegate* unmanaged[Cdecl]) funcTable[0xF33BDFE19B309B19UL]; + if (fn__isPedWearingHelmet == null) fn__isPedWearingHelmet = (delegate* unmanaged[Cdecl]) funcTable[0xF33BDFE19B309B19UL]; var success = false; var result = fn__isPedWearingHelmet(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -80612,10 +80599,10 @@ public bool IsPedWearingHelmet(int _ped) } public void ClearPedStoredHatProp(IPlayer ped) => ClearPedStoredHatProp(ped.ScriptId); - public void ClearPedStoredHatProp(int _ped) + public void ClearPedStoredHatProp(uint _ped) { unsafe { - if (fn__clearPedStoredHatProp == null) fn__clearPedStoredHatProp = (delegate* unmanaged[Cdecl]) funcTable[0x687C0B594907D2E8UL]; + if (fn__clearPedStoredHatProp == null) fn__clearPedStoredHatProp = (delegate* unmanaged[Cdecl]) funcTable[0x687C0B594907D2E8UL]; var success = false; fn__clearPedStoredHatProp(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -80623,10 +80610,10 @@ public void ClearPedStoredHatProp(int _ped) } public int GetPedHelmetStoredHatPropIndex(IPlayer ped) => GetPedHelmetStoredHatPropIndex(ped.ScriptId); - public int GetPedHelmetStoredHatPropIndex(int _ped) + public int GetPedHelmetStoredHatPropIndex(uint _ped) { unsafe { - if (fn__getPedHelmetStoredHatPropIndex == null) fn__getPedHelmetStoredHatPropIndex = (delegate* unmanaged[Cdecl]) funcTable[0x451294E859ECC018UL]; + if (fn__getPedHelmetStoredHatPropIndex == null) fn__getPedHelmetStoredHatPropIndex = (delegate* unmanaged[Cdecl]) funcTable[0x451294E859ECC018UL]; var success = false; var result = fn__getPedHelmetStoredHatPropIndex(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -80635,10 +80622,10 @@ public int GetPedHelmetStoredHatPropIndex(int _ped) } public int GetPedHelmetStoredHatTexIndex(IPlayer ped) => GetPedHelmetStoredHatTexIndex(ped.ScriptId); - public int GetPedHelmetStoredHatTexIndex(int _ped) + public int GetPedHelmetStoredHatTexIndex(uint _ped) { unsafe { - if (fn__getPedHelmetStoredHatTexIndex == null) fn__getPedHelmetStoredHatTexIndex = (delegate* unmanaged[Cdecl]) funcTable[0x9D728C1E12BF5518UL]; + if (fn__getPedHelmetStoredHatTexIndex == null) fn__getPedHelmetStoredHatTexIndex = (delegate* unmanaged[Cdecl]) funcTable[0x9D728C1E12BF5518UL]; var success = false; var result = fn__getPedHelmetStoredHatTexIndex(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -80658,10 +80645,10 @@ public bool IsCurrentHeadPropAHelmet(int _p0) } public void SetPedToLoadCover(IPlayer ped, bool toggle) => SetPedToLoadCover(ped.ScriptId, toggle); - public void SetPedToLoadCover(int _ped, bool _toggle) + public void SetPedToLoadCover(uint _ped, bool _toggle) { unsafe { - if (fn__setPedToLoadCover == null) fn__setPedToLoadCover = (delegate* unmanaged[Cdecl]) funcTable[0x332B562EEDA62399UL]; + if (fn__setPedToLoadCover == null) fn__setPedToLoadCover = (delegate* unmanaged[Cdecl]) funcTable[0x332B562EEDA62399UL]; var success = false; fn__setPedToLoadCover(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80669,10 +80656,10 @@ public void SetPedToLoadCover(int _ped, bool _toggle) } public void SetPedCanCowerInCover(IPlayer ped, bool toggle) => SetPedCanCowerInCover(ped.ScriptId, toggle); - public void SetPedCanCowerInCover(int _ped, bool _toggle) + public void SetPedCanCowerInCover(uint _ped, bool _toggle) { unsafe { - if (fn__setPedCanCowerInCover == null) fn__setPedCanCowerInCover = (delegate* unmanaged[Cdecl]) funcTable[0xCB7553CDCEF4A735UL]; + if (fn__setPedCanCowerInCover == null) fn__setPedCanCowerInCover = (delegate* unmanaged[Cdecl]) funcTable[0xCB7553CDCEF4A735UL]; var success = false; fn__setPedCanCowerInCover(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80680,10 +80667,10 @@ public void SetPedCanCowerInCover(int _ped, bool _toggle) } public void SetPedCanPeekInCover(IPlayer ped, bool toggle) => SetPedCanPeekInCover(ped.ScriptId, toggle); - public void SetPedCanPeekInCover(int _ped, bool _toggle) + public void SetPedCanPeekInCover(uint _ped, bool _toggle) { unsafe { - if (fn__setPedCanPeekInCover == null) fn__setPedCanPeekInCover = (delegate* unmanaged[Cdecl]) funcTable[0xC514825C507E3736UL]; + if (fn__setPedCanPeekInCover == null) fn__setPedCanPeekInCover = (delegate* unmanaged[Cdecl]) funcTable[0xC514825C507E3736UL]; var success = false; fn__setPedCanPeekInCover(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80691,10 +80678,10 @@ public void SetPedCanPeekInCover(int _ped, bool _toggle) } public void SetPedPlaysHeadOnHornAnimWhenDiesInVehicle(IPlayer ped, bool toggle) => SetPedPlaysHeadOnHornAnimWhenDiesInVehicle(ped.ScriptId, toggle); - public void SetPedPlaysHeadOnHornAnimWhenDiesInVehicle(int _ped, bool _toggle) + public void SetPedPlaysHeadOnHornAnimWhenDiesInVehicle(uint _ped, bool _toggle) { unsafe { - if (fn__setPedPlaysHeadOnHornAnimWhenDiesInVehicle == null) fn__setPedPlaysHeadOnHornAnimWhenDiesInVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x94D94BF1A75AED3DUL]; + if (fn__setPedPlaysHeadOnHornAnimWhenDiesInVehicle == null) fn__setPedPlaysHeadOnHornAnimWhenDiesInVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x94D94BF1A75AED3DUL]; var success = false; fn__setPedPlaysHeadOnHornAnimWhenDiesInVehicle(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80702,10 +80689,10 @@ public void SetPedPlaysHeadOnHornAnimWhenDiesInVehicle(int _ped, bool _toggle) } public void SetPedLegIkMode(IPlayer ped, int mode) => SetPedLegIkMode(ped.ScriptId, mode); - public void SetPedLegIkMode(int _ped, int _mode) + public void SetPedLegIkMode(uint _ped, int _mode) { unsafe { - if (fn__setPedLegIkMode == null) fn__setPedLegIkMode = (delegate* unmanaged[Cdecl]) funcTable[0xC396F5B86FF9FEBDUL]; + if (fn__setPedLegIkMode == null) fn__setPedLegIkMode = (delegate* unmanaged[Cdecl]) funcTable[0xC396F5B86FF9FEBDUL]; var success = false; fn__setPedLegIkMode(&success, _ped, _mode); if (!success) throw new Exception("Native execution failed"); @@ -80713,10 +80700,10 @@ public void SetPedLegIkMode(int _ped, int _mode) } public void SetPedMotionBlur(IPlayer ped, bool toggle) => SetPedMotionBlur(ped.ScriptId, toggle); - public void SetPedMotionBlur(int _ped, bool _toggle) + public void SetPedMotionBlur(uint _ped, bool _toggle) { unsafe { - if (fn__setPedMotionBlur == null) fn__setPedMotionBlur = (delegate* unmanaged[Cdecl]) funcTable[0x0A986918B102B448UL]; + if (fn__setPedMotionBlur == null) fn__setPedMotionBlur = (delegate* unmanaged[Cdecl]) funcTable[0x0A986918B102B448UL]; var success = false; fn__setPedMotionBlur(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80724,10 +80711,10 @@ public void SetPedMotionBlur(int _ped, bool _toggle) } public void SetPedCanSwitchWeapon(IPlayer ped, bool toggle) => SetPedCanSwitchWeapon(ped.ScriptId, toggle); - public void SetPedCanSwitchWeapon(int _ped, bool _toggle) + public void SetPedCanSwitchWeapon(uint _ped, bool _toggle) { unsafe { - if (fn__setPedCanSwitchWeapon == null) fn__setPedCanSwitchWeapon = (delegate* unmanaged[Cdecl]) funcTable[0xED7F7EFE9FABF340UL]; + if (fn__setPedCanSwitchWeapon == null) fn__setPedCanSwitchWeapon = (delegate* unmanaged[Cdecl]) funcTable[0xED7F7EFE9FABF340UL]; var success = false; fn__setPedCanSwitchWeapon(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80735,10 +80722,10 @@ public void SetPedCanSwitchWeapon(int _ped, bool _toggle) } public void SetPedDiesInstantlyInWater(IPlayer ped, bool toggle) => SetPedDiesInstantlyInWater(ped.ScriptId, toggle); - public void SetPedDiesInstantlyInWater(int _ped, bool _toggle) + public void SetPedDiesInstantlyInWater(uint _ped, bool _toggle) { unsafe { - if (fn__setPedDiesInstantlyInWater == null) fn__setPedDiesInstantlyInWater = (delegate* unmanaged[Cdecl]) funcTable[0xEEB64139BA29A7CFUL]; + if (fn__setPedDiesInstantlyInWater == null) fn__setPedDiesInstantlyInWater = (delegate* unmanaged[Cdecl]) funcTable[0xEEB64139BA29A7CFUL]; var success = false; fn__setPedDiesInstantlyInWater(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80746,10 +80733,10 @@ public void SetPedDiesInstantlyInWater(int _ped, bool _toggle) } public void SetLadderClimbInputState(IPlayer ped, int p1) => SetLadderClimbInputState(ped.ScriptId, p1); - public void SetLadderClimbInputState(int _ped, int _p1) + public void SetLadderClimbInputState(uint _ped, int _p1) { unsafe { - if (fn__setLadderClimbInputState == null) fn__setLadderClimbInputState = (delegate* unmanaged[Cdecl]) funcTable[0x1A330D297AAC6BC1UL]; + if (fn__setLadderClimbInputState == null) fn__setLadderClimbInputState = (delegate* unmanaged[Cdecl]) funcTable[0x1A330D297AAC6BC1UL]; var success = false; fn__setLadderClimbInputState(&success, _ped, _p1); if (!success) throw new Exception("Native execution failed"); @@ -80757,10 +80744,10 @@ public void SetLadderClimbInputState(int _ped, int _p1) } public void StopPedWeaponFiringWhenDropped(IPlayer ped) => StopPedWeaponFiringWhenDropped(ped.ScriptId); - public void StopPedWeaponFiringWhenDropped(int _ped) + public void StopPedWeaponFiringWhenDropped(uint _ped) { unsafe { - if (fn__stopPedWeaponFiringWhenDropped == null) fn__stopPedWeaponFiringWhenDropped = (delegate* unmanaged[Cdecl]) funcTable[0xC158D28142A34608UL]; + if (fn__stopPedWeaponFiringWhenDropped == null) fn__stopPedWeaponFiringWhenDropped = (delegate* unmanaged[Cdecl]) funcTable[0xC158D28142A34608UL]; var success = false; fn__stopPedWeaponFiringWhenDropped(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -80768,10 +80755,10 @@ public void StopPedWeaponFiringWhenDropped(int _ped) } public void SetScriptedAnimSeatOffset(IPlayer ped, float p1) => SetScriptedAnimSeatOffset(ped.ScriptId, p1); - public void SetScriptedAnimSeatOffset(int _ped, float _p1) + public void SetScriptedAnimSeatOffset(uint _ped, float _p1) { unsafe { - if (fn__setScriptedAnimSeatOffset == null) fn__setScriptedAnimSeatOffset = (delegate* unmanaged[Cdecl]) funcTable[0x5917BBA32D06C230UL]; + if (fn__setScriptedAnimSeatOffset == null) fn__setScriptedAnimSeatOffset = (delegate* unmanaged[Cdecl]) funcTable[0x5917BBA32D06C230UL]; var success = false; fn__setScriptedAnimSeatOffset(&success, _ped, _p1); if (!success) throw new Exception("Native execution failed"); @@ -80779,10 +80766,10 @@ public void SetScriptedAnimSeatOffset(int _ped, float _p1) } public void SetPedCombatMovement(IPlayer ped, int combatMovement) => SetPedCombatMovement(ped.ScriptId, combatMovement); - public void SetPedCombatMovement(int _ped, int _combatMovement) + public void SetPedCombatMovement(uint _ped, int _combatMovement) { unsafe { - if (fn__setPedCombatMovement == null) fn__setPedCombatMovement = (delegate* unmanaged[Cdecl]) funcTable[0x4D9CA1009AFBD057UL]; + if (fn__setPedCombatMovement == null) fn__setPedCombatMovement = (delegate* unmanaged[Cdecl]) funcTable[0x4D9CA1009AFBD057UL]; var success = false; fn__setPedCombatMovement(&success, _ped, _combatMovement); if (!success) throw new Exception("Native execution failed"); @@ -80790,10 +80777,10 @@ public void SetPedCombatMovement(int _ped, int _combatMovement) } public int GetPedCombatMovement(IPlayer ped) => GetPedCombatMovement(ped.ScriptId); - public int GetPedCombatMovement(int _ped) + public int GetPedCombatMovement(uint _ped) { unsafe { - if (fn__getPedCombatMovement == null) fn__getPedCombatMovement = (delegate* unmanaged[Cdecl]) funcTable[0xDEA92412FCAEB3F5UL]; + if (fn__getPedCombatMovement == null) fn__getPedCombatMovement = (delegate* unmanaged[Cdecl]) funcTable[0xDEA92412FCAEB3F5UL]; var success = false; var result = fn__getPedCombatMovement(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -80802,10 +80789,10 @@ public int GetPedCombatMovement(int _ped) } public void SetPedCombatAbility(IPlayer ped, int abilityLevel) => SetPedCombatAbility(ped.ScriptId, abilityLevel); - public void SetPedCombatAbility(int _ped, int _abilityLevel) + public void SetPedCombatAbility(uint _ped, int _abilityLevel) { unsafe { - if (fn__setPedCombatAbility == null) fn__setPedCombatAbility = (delegate* unmanaged[Cdecl]) funcTable[0xC7622C0D36B2FDA8UL]; + if (fn__setPedCombatAbility == null) fn__setPedCombatAbility = (delegate* unmanaged[Cdecl]) funcTable[0xC7622C0D36B2FDA8UL]; var success = false; fn__setPedCombatAbility(&success, _ped, _abilityLevel); if (!success) throw new Exception("Native execution failed"); @@ -80813,10 +80800,10 @@ public void SetPedCombatAbility(int _ped, int _abilityLevel) } public void SetPedCombatRange(IPlayer ped, int combatRange) => SetPedCombatRange(ped.ScriptId, combatRange); - public void SetPedCombatRange(int _ped, int _combatRange) + public void SetPedCombatRange(uint _ped, int _combatRange) { unsafe { - if (fn__setPedCombatRange == null) fn__setPedCombatRange = (delegate* unmanaged[Cdecl]) funcTable[0x3C606747B23E497BUL]; + if (fn__setPedCombatRange == null) fn__setPedCombatRange = (delegate* unmanaged[Cdecl]) funcTable[0x3C606747B23E497BUL]; var success = false; fn__setPedCombatRange(&success, _ped, _combatRange); if (!success) throw new Exception("Native execution failed"); @@ -80824,10 +80811,10 @@ public void SetPedCombatRange(int _ped, int _combatRange) } public int GetPedCombatRange(IPlayer ped) => GetPedCombatRange(ped.ScriptId); - public int GetPedCombatRange(int _ped) + public int GetPedCombatRange(uint _ped) { unsafe { - if (fn__getPedCombatRange == null) fn__getPedCombatRange = (delegate* unmanaged[Cdecl]) funcTable[0xF9D9F7F2DB8E2FA0UL]; + if (fn__getPedCombatRange == null) fn__getPedCombatRange = (delegate* unmanaged[Cdecl]) funcTable[0xF9D9F7F2DB8E2FA0UL]; var success = false; var result = fn__getPedCombatRange(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -80836,10 +80823,10 @@ public int GetPedCombatRange(int _ped) } public void SetPedCombatAttributes(IPlayer ped, int attributeId, bool enabled) => SetPedCombatAttributes(ped.ScriptId, attributeId, enabled); - public void SetPedCombatAttributes(int _ped, int _attributeId, bool _enabled) + public void SetPedCombatAttributes(uint _ped, int _attributeId, bool _enabled) { unsafe { - if (fn__setPedCombatAttributes == null) fn__setPedCombatAttributes = (delegate* unmanaged[Cdecl]) funcTable[0x9F7794730795E019UL]; + if (fn__setPedCombatAttributes == null) fn__setPedCombatAttributes = (delegate* unmanaged[Cdecl]) funcTable[0x9F7794730795E019UL]; var success = false; fn__setPedCombatAttributes(&success, _ped, _attributeId, (byte) (_enabled ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80847,10 +80834,10 @@ public void SetPedCombatAttributes(int _ped, int _attributeId, bool _enabled) } public void SetPedTargetLossResponse(IPlayer ped, int responseType) => SetPedTargetLossResponse(ped.ScriptId, responseType); - public void SetPedTargetLossResponse(int _ped, int _responseType) + public void SetPedTargetLossResponse(uint _ped, int _responseType) { unsafe { - if (fn__setPedTargetLossResponse == null) fn__setPedTargetLossResponse = (delegate* unmanaged[Cdecl]) funcTable[0x0703B9079823DA4AUL]; + if (fn__setPedTargetLossResponse == null) fn__setPedTargetLossResponse = (delegate* unmanaged[Cdecl]) funcTable[0x0703B9079823DA4AUL]; var success = false; fn__setPedTargetLossResponse(&success, _ped, _responseType); if (!success) throw new Exception("Native execution failed"); @@ -80858,10 +80845,10 @@ public void SetPedTargetLossResponse(int _ped, int _responseType) } public bool IsPedPerformingMeleeAction(IPlayer ped) => IsPedPerformingMeleeAction(ped.ScriptId); - public bool IsPedPerformingMeleeAction(int _ped) + public bool IsPedPerformingMeleeAction(uint _ped) { unsafe { - if (fn__isPedPerformingMeleeAction == null) fn__isPedPerformingMeleeAction = (delegate* unmanaged[Cdecl]) funcTable[0xDCCA191DF9980FD7UL]; + if (fn__isPedPerformingMeleeAction == null) fn__isPedPerformingMeleeAction = (delegate* unmanaged[Cdecl]) funcTable[0xDCCA191DF9980FD7UL]; var success = false; var result = fn__isPedPerformingMeleeAction(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -80870,10 +80857,10 @@ public bool IsPedPerformingMeleeAction(int _ped) } public bool IsPedPerformingStealthKill(IPlayer ped) => IsPedPerformingStealthKill(ped.ScriptId); - public bool IsPedPerformingStealthKill(int _ped) + public bool IsPedPerformingStealthKill(uint _ped) { unsafe { - if (fn__isPedPerformingStealthKill == null) fn__isPedPerformingStealthKill = (delegate* unmanaged[Cdecl]) funcTable[0xFD4CCDBCC59941B7UL]; + if (fn__isPedPerformingStealthKill == null) fn__isPedPerformingStealthKill = (delegate* unmanaged[Cdecl]) funcTable[0xFD4CCDBCC59941B7UL]; var success = false; var result = fn__isPedPerformingStealthKill(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -80882,10 +80869,10 @@ public bool IsPedPerformingStealthKill(int _ped) } public bool IsPedPerformingACounterAttack(IPlayer ped) => IsPedPerformingACounterAttack(ped.ScriptId); - public bool IsPedPerformingACounterAttack(int _ped) + public bool IsPedPerformingACounterAttack(uint _ped) { unsafe { - if (fn__isPedPerformingACounterAttack == null) fn__isPedPerformingACounterAttack = (delegate* unmanaged[Cdecl]) funcTable[0xEBD0EDBA5BE957CFUL]; + if (fn__isPedPerformingACounterAttack == null) fn__isPedPerformingACounterAttack = (delegate* unmanaged[Cdecl]) funcTable[0xEBD0EDBA5BE957CFUL]; var success = false; var result = fn__isPedPerformingACounterAttack(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -80894,10 +80881,10 @@ public bool IsPedPerformingACounterAttack(int _ped) } public bool IsPedBeingStealthKilled(IPlayer ped) => IsPedBeingStealthKilled(ped.ScriptId); - public bool IsPedBeingStealthKilled(int _ped) + public bool IsPedBeingStealthKilled(uint _ped) { unsafe { - if (fn__isPedBeingStealthKilled == null) fn__isPedBeingStealthKilled = (delegate* unmanaged[Cdecl]) funcTable[0x863B23EFDE9C5DF2UL]; + if (fn__isPedBeingStealthKilled == null) fn__isPedBeingStealthKilled = (delegate* unmanaged[Cdecl]) funcTable[0x863B23EFDE9C5DF2UL]; var success = false; var result = fn__isPedBeingStealthKilled(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -80905,11 +80892,11 @@ public bool IsPedBeingStealthKilled(int _ped) } } - public int GetMeleeTargetForPed(IPlayer ped) => GetMeleeTargetForPed(ped.ScriptId); - public int GetMeleeTargetForPed(int _ped) + public uint GetMeleeTargetForPed(IPlayer ped) => GetMeleeTargetForPed(ped.ScriptId); + public uint GetMeleeTargetForPed(uint _ped) { unsafe { - if (fn__getMeleeTargetForPed == null) fn__getMeleeTargetForPed = (delegate* unmanaged[Cdecl]) funcTable[0x18A3E9EE1297FD39UL]; + if (fn__getMeleeTargetForPed == null) fn__getMeleeTargetForPed = (delegate* unmanaged[Cdecl]) funcTable[0x18A3E9EE1297FD39UL]; var success = false; var result = fn__getMeleeTargetForPed(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -80918,10 +80905,10 @@ public int GetMeleeTargetForPed(int _ped) } public bool WasPedKilledByStealth(IPlayer ped) => WasPedKilledByStealth(ped.ScriptId); - public bool WasPedKilledByStealth(int _ped) + public bool WasPedKilledByStealth(uint _ped) { unsafe { - if (fn__wasPedKilledByStealth == null) fn__wasPedKilledByStealth = (delegate* unmanaged[Cdecl]) funcTable[0xF9800AA1A771B000UL]; + if (fn__wasPedKilledByStealth == null) fn__wasPedKilledByStealth = (delegate* unmanaged[Cdecl]) funcTable[0xF9800AA1A771B000UL]; var success = false; var result = fn__wasPedKilledByStealth(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -80930,10 +80917,10 @@ public bool WasPedKilledByStealth(int _ped) } public bool WasPedKilledByTakedown(IPlayer ped) => WasPedKilledByTakedown(ped.ScriptId); - public bool WasPedKilledByTakedown(int _ped) + public bool WasPedKilledByTakedown(uint _ped) { unsafe { - if (fn__wasPedKilledByTakedown == null) fn__wasPedKilledByTakedown = (delegate* unmanaged[Cdecl]) funcTable[0x7F08E26039C7347CUL]; + if (fn__wasPedKilledByTakedown == null) fn__wasPedKilledByTakedown = (delegate* unmanaged[Cdecl]) funcTable[0x7F08E26039C7347CUL]; var success = false; var result = fn__wasPedKilledByTakedown(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -80942,10 +80929,10 @@ public bool WasPedKilledByTakedown(int _ped) } public bool WasPedKnockedOut(IPlayer ped) => WasPedKnockedOut(ped.ScriptId); - public bool WasPedKnockedOut(int _ped) + public bool WasPedKnockedOut(uint _ped) { unsafe { - if (fn__wasPedKnockedOut == null) fn__wasPedKnockedOut = (delegate* unmanaged[Cdecl]) funcTable[0x61767F73EACEED21UL]; + if (fn__wasPedKnockedOut == null) fn__wasPedKnockedOut = (delegate* unmanaged[Cdecl]) funcTable[0x61767F73EACEED21UL]; var success = false; var result = fn__wasPedKnockedOut(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -80954,10 +80941,10 @@ public bool WasPedKnockedOut(int _ped) } public void SetPedFleeAttributes(IPlayer ped, int attributeFlags, bool enable) => SetPedFleeAttributes(ped.ScriptId, attributeFlags, enable); - public void SetPedFleeAttributes(int _ped, int _attributeFlags, bool _enable) + public void SetPedFleeAttributes(uint _ped, int _attributeFlags, bool _enable) { unsafe { - if (fn__setPedFleeAttributes == null) fn__setPedFleeAttributes = (delegate* unmanaged[Cdecl]) funcTable[0x70A2D1137C8ED7C9UL]; + if (fn__setPedFleeAttributes == null) fn__setPedFleeAttributes = (delegate* unmanaged[Cdecl]) funcTable[0x70A2D1137C8ED7C9UL]; var success = false; fn__setPedFleeAttributes(&success, _ped, _attributeFlags, (byte) (_enable ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80965,23 +80952,23 @@ public void SetPedFleeAttributes(int _ped, int _attributeFlags, bool _enable) } public void SetPedCowerHash(IPlayer ped, string p1) => SetPedCowerHash(ped.ScriptId, p1); - public void SetPedCowerHash(int _ped, string _p1) + public void SetPedCowerHash(uint _ped, string _p1) { unsafe { - if (fn__setPedCowerHash == null) fn__setPedCowerHash = (delegate* unmanaged[Cdecl]) funcTable[0xA549131166868ED3UL]; + if (fn__setPedCowerHash == null) fn__setPedCowerHash = (delegate* unmanaged[Cdecl]) funcTable[0xA549131166868ED3UL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); fn__setPedCowerHash(&success, _ped, ptr_p1); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); } } public void SetPedSteersAroundDeadBodies(IPlayer ped, bool toggle) => SetPedSteersAroundDeadBodies(ped.ScriptId, toggle); - public void SetPedSteersAroundDeadBodies(int _ped, bool _toggle) + public void SetPedSteersAroundDeadBodies(uint _ped, bool _toggle) { unsafe { - if (fn__setPedSteersAroundDeadBodies == null) fn__setPedSteersAroundDeadBodies = (delegate* unmanaged[Cdecl]) funcTable[0x2016C603D6B8987CUL]; + if (fn__setPedSteersAroundDeadBodies == null) fn__setPedSteersAroundDeadBodies = (delegate* unmanaged[Cdecl]) funcTable[0x2016C603D6B8987CUL]; var success = false; fn__setPedSteersAroundDeadBodies(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -80989,10 +80976,10 @@ public void SetPedSteersAroundDeadBodies(int _ped, bool _toggle) } public void SetPedSteersAroundPeds(IPlayer ped, bool toggle) => SetPedSteersAroundPeds(ped.ScriptId, toggle); - public void SetPedSteersAroundPeds(int _ped, bool _toggle) + public void SetPedSteersAroundPeds(uint _ped, bool _toggle) { unsafe { - if (fn__setPedSteersAroundPeds == null) fn__setPedSteersAroundPeds = (delegate* unmanaged[Cdecl]) funcTable[0x46F2193B3AD1D891UL]; + if (fn__setPedSteersAroundPeds == null) fn__setPedSteersAroundPeds = (delegate* unmanaged[Cdecl]) funcTable[0x46F2193B3AD1D891UL]; var success = false; fn__setPedSteersAroundPeds(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -81000,10 +80987,10 @@ public void SetPedSteersAroundPeds(int _ped, bool _toggle) } public void SetPedSteersAroundObjects(IPlayer ped, bool toggle) => SetPedSteersAroundObjects(ped.ScriptId, toggle); - public void SetPedSteersAroundObjects(int _ped, bool _toggle) + public void SetPedSteersAroundObjects(uint _ped, bool _toggle) { unsafe { - if (fn__setPedSteersAroundObjects == null) fn__setPedSteersAroundObjects = (delegate* unmanaged[Cdecl]) funcTable[0x1509C089ADC208BFUL]; + if (fn__setPedSteersAroundObjects == null) fn__setPedSteersAroundObjects = (delegate* unmanaged[Cdecl]) funcTable[0x1509C089ADC208BFUL]; var success = false; fn__setPedSteersAroundObjects(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -81011,10 +80998,10 @@ public void SetPedSteersAroundObjects(int _ped, bool _toggle) } public void SetPedSteersAroundVehicles(IPlayer ped, bool toggle) => SetPedSteersAroundVehicles(ped.ScriptId, toggle); - public void SetPedSteersAroundVehicles(int _ped, bool _toggle) + public void SetPedSteersAroundVehicles(uint _ped, bool _toggle) { unsafe { - if (fn__setPedSteersAroundVehicles == null) fn__setPedSteersAroundVehicles = (delegate* unmanaged[Cdecl]) funcTable[0xEB6FB9D48DDE23ECUL]; + if (fn__setPedSteersAroundVehicles == null) fn__setPedSteersAroundVehicles = (delegate* unmanaged[Cdecl]) funcTable[0xEB6FB9D48DDE23ECUL]; var success = false; fn__setPedSteersAroundVehicles(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -81032,10 +81019,10 @@ public void SetPedIsAvoidedByOthers(int _p0, bool _p1) } public void SetPedIncreasedAvoidanceRadius(IPlayer ped) => SetPedIncreasedAvoidanceRadius(ped.ScriptId); - public void SetPedIncreasedAvoidanceRadius(int _ped) + public void SetPedIncreasedAvoidanceRadius(uint _ped) { unsafe { - if (fn__setPedIncreasedAvoidanceRadius == null) fn__setPedIncreasedAvoidanceRadius = (delegate* unmanaged[Cdecl]) funcTable[0x570389D1C3DE3C6BUL]; + if (fn__setPedIncreasedAvoidanceRadius == null) fn__setPedIncreasedAvoidanceRadius = (delegate* unmanaged[Cdecl]) funcTable[0x570389D1C3DE3C6BUL]; var success = false; fn__setPedIncreasedAvoidanceRadius(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -81043,10 +81030,10 @@ public void SetPedIncreasedAvoidanceRadius(int _ped) } public void SetPedBlocksPathingWhenDead(IPlayer ped, bool toggle) => SetPedBlocksPathingWhenDead(ped.ScriptId, toggle); - public void SetPedBlocksPathingWhenDead(int _ped, bool _toggle) + public void SetPedBlocksPathingWhenDead(uint _ped, bool _toggle) { unsafe { - if (fn__setPedBlocksPathingWhenDead == null) fn__setPedBlocksPathingWhenDead = (delegate* unmanaged[Cdecl]) funcTable[0x576594E8D64375E2UL]; + if (fn__setPedBlocksPathingWhenDead == null) fn__setPedBlocksPathingWhenDead = (delegate* unmanaged[Cdecl]) funcTable[0x576594E8D64375E2UL]; var success = false; fn__setPedBlocksPathingWhenDead(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -81075,10 +81062,10 @@ public bool IsAnyPedNearPoint(float _x, float _y, float _z, float _radius) } public void ForcePedAiAndAnimationUpdate(IPlayer ped, bool p1, bool p2) => ForcePedAiAndAnimationUpdate(ped.ScriptId, p1, p2); - public void ForcePedAiAndAnimationUpdate(int _ped, bool _p1, bool _p2) + public void ForcePedAiAndAnimationUpdate(uint _ped, bool _p1, bool _p2) { unsafe { - if (fn__forcePedAiAndAnimationUpdate == null) fn__forcePedAiAndAnimationUpdate = (delegate* unmanaged[Cdecl]) funcTable[0x2208438012482A1AUL]; + if (fn__forcePedAiAndAnimationUpdate == null) fn__forcePedAiAndAnimationUpdate = (delegate* unmanaged[Cdecl]) funcTable[0x2208438012482A1AUL]; var success = false; fn__forcePedAiAndAnimationUpdate(&success, _ped, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -81086,10 +81073,10 @@ public void ForcePedAiAndAnimationUpdate(int _ped, bool _p1, bool _p2) } public bool IsPedHeadingTowardsPosition(IPlayer ped, float x, float y, float z, float p4) => IsPedHeadingTowardsPosition(ped.ScriptId, x, y, z, p4); - public bool IsPedHeadingTowardsPosition(int _ped, float _x, float _y, float _z, float _p4) + public bool IsPedHeadingTowardsPosition(uint _ped, float _x, float _y, float _z, float _p4) { unsafe { - if (fn__isPedHeadingTowardsPosition == null) fn__isPedHeadingTowardsPosition = (delegate* unmanaged[Cdecl]) funcTable[0xFCF37A457CB96DC0UL]; + if (fn__isPedHeadingTowardsPosition == null) fn__isPedHeadingTowardsPosition = (delegate* unmanaged[Cdecl]) funcTable[0xFCF37A457CB96DC0UL]; var success = false; var result = fn__isPedHeadingTowardsPosition(&success, _ped, _x, _y, _z, _p4); if (!success) throw new Exception("Native execution failed"); @@ -81098,10 +81085,10 @@ public bool IsPedHeadingTowardsPosition(int _ped, float _x, float _y, float _z, } public void RequestPedVisibilityTracking(IPlayer ped) => RequestPedVisibilityTracking(ped.ScriptId); - public void RequestPedVisibilityTracking(int _ped) + public void RequestPedVisibilityTracking(uint _ped) { unsafe { - if (fn__requestPedVisibilityTracking == null) fn__requestPedVisibilityTracking = (delegate* unmanaged[Cdecl]) funcTable[0x7D7A2E43E74E2EB8UL]; + if (fn__requestPedVisibilityTracking == null) fn__requestPedVisibilityTracking = (delegate* unmanaged[Cdecl]) funcTable[0x7D7A2E43E74E2EB8UL]; var success = false; fn__requestPedVisibilityTracking(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -81109,10 +81096,10 @@ public void RequestPedVisibilityTracking(int _ped) } public void RequestPedVehicleVisibilityTracking(IPlayer ped, bool p1) => RequestPedVehicleVisibilityTracking(ped.ScriptId, p1); - public void RequestPedVehicleVisibilityTracking(int _ped, bool _p1) + public void RequestPedVehicleVisibilityTracking(uint _ped, bool _p1) { unsafe { - if (fn__requestPedVehicleVisibilityTracking == null) fn__requestPedVehicleVisibilityTracking = (delegate* unmanaged[Cdecl]) funcTable[0x2BC338A7B21F4608UL]; + if (fn__requestPedVehicleVisibilityTracking == null) fn__requestPedVehicleVisibilityTracking = (delegate* unmanaged[Cdecl]) funcTable[0x2BC338A7B21F4608UL]; var success = false; fn__requestPedVehicleVisibilityTracking(&success, _ped, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -81120,10 +81107,10 @@ public void RequestPedVehicleVisibilityTracking(int _ped, bool _p1) } public void RequestPedRestrictedVehicleVisibilityTracking(IPlayer ped, bool p1) => RequestPedRestrictedVehicleVisibilityTracking(ped.ScriptId, p1); - public void RequestPedRestrictedVehicleVisibilityTracking(int _ped, bool _p1) + public void RequestPedRestrictedVehicleVisibilityTracking(uint _ped, bool _p1) { unsafe { - if (fn__requestPedRestrictedVehicleVisibilityTracking == null) fn__requestPedRestrictedVehicleVisibilityTracking = (delegate* unmanaged[Cdecl]) funcTable[0xCD018C591F94CB43UL]; + if (fn__requestPedRestrictedVehicleVisibilityTracking == null) fn__requestPedRestrictedVehicleVisibilityTracking = (delegate* unmanaged[Cdecl]) funcTable[0xCD018C591F94CB43UL]; var success = false; fn__requestPedRestrictedVehicleVisibilityTracking(&success, _ped, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -81131,10 +81118,10 @@ public void RequestPedRestrictedVehicleVisibilityTracking(int _ped, bool _p1) } public void RequestPedUseSmallBboxVisibilityTracking(IPlayer ped, bool p1) => RequestPedUseSmallBboxVisibilityTracking(ped.ScriptId, p1); - public void RequestPedUseSmallBboxVisibilityTracking(int _ped, bool _p1) + public void RequestPedUseSmallBboxVisibilityTracking(uint _ped, bool _p1) { unsafe { - if (fn__requestPedUseSmallBboxVisibilityTracking == null) fn__requestPedUseSmallBboxVisibilityTracking = (delegate* unmanaged[Cdecl]) funcTable[0x75BA1CB3B7D40CAFUL]; + if (fn__requestPedUseSmallBboxVisibilityTracking == null) fn__requestPedUseSmallBboxVisibilityTracking = (delegate* unmanaged[Cdecl]) funcTable[0x75BA1CB3B7D40CAFUL]; var success = false; fn__requestPedUseSmallBboxVisibilityTracking(&success, _ped, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -81142,10 +81129,10 @@ public void RequestPedUseSmallBboxVisibilityTracking(int _ped, bool _p1) } public bool IsTrackedPedVisible(IPlayer ped) => IsTrackedPedVisible(ped.ScriptId); - public bool IsTrackedPedVisible(int _ped) + public bool IsTrackedPedVisible(uint _ped) { unsafe { - if (fn__isTrackedPedVisible == null) fn__isTrackedPedVisible = (delegate* unmanaged[Cdecl]) funcTable[0x91C8E617F64188ACUL]; + if (fn__isTrackedPedVisible == null) fn__isTrackedPedVisible = (delegate* unmanaged[Cdecl]) funcTable[0x91C8E617F64188ACUL]; var success = false; var result = fn__isTrackedPedVisible(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -81154,10 +81141,10 @@ public bool IsTrackedPedVisible(int _ped) } public int GetTrackedPedPixelcount(IPlayer ped) => GetTrackedPedPixelcount(ped.ScriptId); - public int GetTrackedPedPixelcount(int _ped) + public int GetTrackedPedPixelcount(uint _ped) { unsafe { - if (fn__getTrackedPedPixelcount == null) fn__getTrackedPedPixelcount = (delegate* unmanaged[Cdecl]) funcTable[0x511F1A683387C7E2UL]; + if (fn__getTrackedPedPixelcount == null) fn__getTrackedPedPixelcount = (delegate* unmanaged[Cdecl]) funcTable[0x511F1A683387C7E2UL]; var success = false; var result = fn__getTrackedPedPixelcount(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -81166,10 +81153,10 @@ public int GetTrackedPedPixelcount(int _ped) } public bool IsPedTracked(IPlayer ped) => IsPedTracked(ped.ScriptId); - public bool IsPedTracked(int _ped) + public bool IsPedTracked(uint _ped) { unsafe { - if (fn__isPedTracked == null) fn__isPedTracked = (delegate* unmanaged[Cdecl]) funcTable[0x4C5E1F087CD10BB7UL]; + if (fn__isPedTracked == null) fn__isPedTracked = (delegate* unmanaged[Cdecl]) funcTable[0x4C5E1F087CD10BB7UL]; var success = false; var result = fn__isPedTracked(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -81178,10 +81165,10 @@ public bool IsPedTracked(int _ped) } public bool HasPedReceivedEvent(IPlayer ped, int eventId) => HasPedReceivedEvent(ped.ScriptId, eventId); - public bool HasPedReceivedEvent(int _ped, int _eventId) + public bool HasPedReceivedEvent(uint _ped, int _eventId) { unsafe { - if (fn__hasPedReceivedEvent == null) fn__hasPedReceivedEvent = (delegate* unmanaged[Cdecl]) funcTable[0x8507BCB710FA6DC0UL]; + if (fn__hasPedReceivedEvent == null) fn__hasPedReceivedEvent = (delegate* unmanaged[Cdecl]) funcTable[0x8507BCB710FA6DC0UL]; var success = false; var result = fn__hasPedReceivedEvent(&success, _ped, _eventId); if (!success) throw new Exception("Native execution failed"); @@ -81189,13 +81176,13 @@ public bool HasPedReceivedEvent(int _ped, int _eventId) } } - public bool CanPedSeeHatedPed(IPlayer ped1, int ped2) => CanPedSeeHatedPed(ped1.ScriptId, ped2); - public bool CanPedSeeHatedPed(int ped1, IPlayer ped2) => CanPedSeeHatedPed(ped1, ped2.ScriptId); + public bool CanPedSeeHatedPed(IPlayer ped1, uint ped2) => CanPedSeeHatedPed(ped1.ScriptId, ped2); + public bool CanPedSeeHatedPed(uint ped1, IPlayer ped2) => CanPedSeeHatedPed(ped1, ped2.ScriptId); public bool CanPedSeeHatedPed(IPlayer ped1, IPlayer ped2) => CanPedSeeHatedPed(ped1.ScriptId, ped2.ScriptId); - public bool CanPedSeeHatedPed(int _ped1, int _ped2) + public bool CanPedSeeHatedPed(uint _ped1, uint _ped2) { unsafe { - if (fn__canPedSeeHatedPed == null) fn__canPedSeeHatedPed = (delegate* unmanaged[Cdecl]) funcTable[0x6CD5A433374D4CFBUL]; + if (fn__canPedSeeHatedPed == null) fn__canPedSeeHatedPed = (delegate* unmanaged[Cdecl]) funcTable[0x6CD5A433374D4CFBUL]; var success = false; var result = fn__canPedSeeHatedPed(&success, _ped1, _ped2); if (!success) throw new Exception("Native execution failed"); @@ -81204,10 +81191,10 @@ public bool CanPedSeeHatedPed(int _ped1, int _ped2) } public bool CanPedShuffleToOrFromTurretSeat(IPlayer ped, ref int p1) => CanPedShuffleToOrFromTurretSeat(ped.ScriptId, ref p1); - public bool CanPedShuffleToOrFromTurretSeat(int _ped, ref int _p1) + public bool CanPedShuffleToOrFromTurretSeat(uint _ped, ref int _p1) { unsafe { - if (fn__canPedShuffleToOrFromTurretSeat == null) fn__canPedShuffleToOrFromTurretSeat = (delegate* unmanaged[Cdecl]) funcTable[0x9C6A6C19B6C0C496UL]; + if (fn__canPedShuffleToOrFromTurretSeat == null) fn__canPedShuffleToOrFromTurretSeat = (delegate* unmanaged[Cdecl]) funcTable[0x9C6A6C19B6C0C496UL]; var success = false; var ref_p1 = _p1; var result = fn__canPedShuffleToOrFromTurretSeat(&success, _ped, &ref_p1); @@ -81218,10 +81205,10 @@ public bool CanPedShuffleToOrFromTurretSeat(int _ped, ref int _p1) } public bool CanPedShuffleToOrFromExtraSeat(IPlayer ped, ref int p1) => CanPedShuffleToOrFromExtraSeat(ped.ScriptId, ref p1); - public bool CanPedShuffleToOrFromExtraSeat(int _ped, ref int _p1) + public bool CanPedShuffleToOrFromExtraSeat(uint _ped, ref int _p1) { unsafe { - if (fn__canPedShuffleToOrFromExtraSeat == null) fn__canPedShuffleToOrFromExtraSeat = (delegate* unmanaged[Cdecl]) funcTable[0x2DFC81C9B9608549UL]; + if (fn__canPedShuffleToOrFromExtraSeat == null) fn__canPedShuffleToOrFromExtraSeat = (delegate* unmanaged[Cdecl]) funcTable[0x2DFC81C9B9608549UL]; var success = false; var ref_p1 = _p1; var result = fn__canPedShuffleToOrFromExtraSeat(&success, _ped, &ref_p1); @@ -81232,10 +81219,10 @@ public bool CanPedShuffleToOrFromExtraSeat(int _ped, ref int _p1) } public int GetPedBoneIndex(IPlayer ped, int boneId) => GetPedBoneIndex(ped.ScriptId, boneId); - public int GetPedBoneIndex(int _ped, int _boneId) + public int GetPedBoneIndex(uint _ped, int _boneId) { unsafe { - if (fn__getPedBoneIndex == null) fn__getPedBoneIndex = (delegate* unmanaged[Cdecl]) funcTable[0x3F428D08BE5AAE31UL]; + if (fn__getPedBoneIndex == null) fn__getPedBoneIndex = (delegate* unmanaged[Cdecl]) funcTable[0x3F428D08BE5AAE31UL]; var success = false; var result = fn__getPedBoneIndex(&success, _ped, _boneId); if (!success) throw new Exception("Native execution failed"); @@ -81244,10 +81231,10 @@ public int GetPedBoneIndex(int _ped, int _boneId) } public int GetPedRagdollBoneIndex(IPlayer ped, int bone) => GetPedRagdollBoneIndex(ped.ScriptId, bone); - public int GetPedRagdollBoneIndex(int _ped, int _bone) + public int GetPedRagdollBoneIndex(uint _ped, int _bone) { unsafe { - if (fn__getPedRagdollBoneIndex == null) fn__getPedRagdollBoneIndex = (delegate* unmanaged[Cdecl]) funcTable[0x2057EF813397A772UL]; + if (fn__getPedRagdollBoneIndex == null) fn__getPedRagdollBoneIndex = (delegate* unmanaged[Cdecl]) funcTable[0x2057EF813397A772UL]; var success = false; var result = fn__getPedRagdollBoneIndex(&success, _ped, _bone); if (!success) throw new Exception("Native execution failed"); @@ -81256,10 +81243,10 @@ public int GetPedRagdollBoneIndex(int _ped, int _bone) } public void SetPedEnveffScale(IPlayer ped, float value) => SetPedEnveffScale(ped.ScriptId, value); - public void SetPedEnveffScale(int _ped, float _value) + public void SetPedEnveffScale(uint _ped, float _value) { unsafe { - if (fn__setPedEnveffScale == null) fn__setPedEnveffScale = (delegate* unmanaged[Cdecl]) funcTable[0xBF29516833893561UL]; + if (fn__setPedEnveffScale == null) fn__setPedEnveffScale = (delegate* unmanaged[Cdecl]) funcTable[0xBF29516833893561UL]; var success = false; fn__setPedEnveffScale(&success, _ped, _value); if (!success) throw new Exception("Native execution failed"); @@ -81267,10 +81254,10 @@ public void SetPedEnveffScale(int _ped, float _value) } public float GetPedEnveffScale(IPlayer ped) => GetPedEnveffScale(ped.ScriptId); - public float GetPedEnveffScale(int _ped) + public float GetPedEnveffScale(uint _ped) { unsafe { - if (fn__getPedEnveffScale == null) fn__getPedEnveffScale = (delegate* unmanaged[Cdecl]) funcTable[0x9C14D30395A51A3CUL]; + if (fn__getPedEnveffScale == null) fn__getPedEnveffScale = (delegate* unmanaged[Cdecl]) funcTable[0x9C14D30395A51A3CUL]; var success = false; var result = fn__getPedEnveffScale(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -81279,10 +81266,10 @@ public float GetPedEnveffScale(int _ped) } public void SetEnablePedEnveffScale(IPlayer ped, bool toggle) => SetEnablePedEnveffScale(ped.ScriptId, toggle); - public void SetEnablePedEnveffScale(int _ped, bool _toggle) + public void SetEnablePedEnveffScale(uint _ped, bool _toggle) { unsafe { - if (fn__setEnablePedEnveffScale == null) fn__setEnablePedEnveffScale = (delegate* unmanaged[Cdecl]) funcTable[0xD2C5AA0C0E8D0F1EUL]; + if (fn__setEnablePedEnveffScale == null) fn__setEnablePedEnveffScale = (delegate* unmanaged[Cdecl]) funcTable[0xD2C5AA0C0E8D0F1EUL]; var success = false; fn__setEnablePedEnveffScale(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -81290,10 +81277,10 @@ public void SetEnablePedEnveffScale(int _ped, bool _toggle) } public void SetPedEnveffCpvAdd(IPlayer ped, float p1) => SetPedEnveffCpvAdd(ped.ScriptId, p1); - public void SetPedEnveffCpvAdd(int _ped, float _p1) + public void SetPedEnveffCpvAdd(uint _ped, float _p1) { unsafe { - if (fn__setPedEnveffCpvAdd == null) fn__setPedEnveffCpvAdd = (delegate* unmanaged[Cdecl]) funcTable[0x110F526AB784111FUL]; + if (fn__setPedEnveffCpvAdd == null) fn__setPedEnveffCpvAdd = (delegate* unmanaged[Cdecl]) funcTable[0x110F526AB784111FUL]; var success = false; fn__setPedEnveffCpvAdd(&success, _ped, _p1); if (!success) throw new Exception("Native execution failed"); @@ -81301,10 +81288,10 @@ public void SetPedEnveffCpvAdd(int _ped, float _p1) } public void SetPedEnveffColorModulator(IPlayer ped, int p1, int p2, int p3) => SetPedEnveffColorModulator(ped.ScriptId, p1, p2, p3); - public void SetPedEnveffColorModulator(int _ped, int _p1, int _p2, int _p3) + public void SetPedEnveffColorModulator(uint _ped, int _p1, int _p2, int _p3) { unsafe { - if (fn__setPedEnveffColorModulator == null) fn__setPedEnveffColorModulator = (delegate* unmanaged[Cdecl]) funcTable[0xD69411AA0CEBF9E9UL]; + if (fn__setPedEnveffColorModulator == null) fn__setPedEnveffColorModulator = (delegate* unmanaged[Cdecl]) funcTable[0xD69411AA0CEBF9E9UL]; var success = false; fn__setPedEnveffColorModulator(&success, _ped, _p1, _p2, _p3); if (!success) throw new Exception("Native execution failed"); @@ -81312,10 +81299,10 @@ public void SetPedEnveffColorModulator(int _ped, int _p1, int _p2, int _p3) } public void SetPedEmissiveScale(IPlayer ped, float intensity) => SetPedEmissiveScale(ped.ScriptId, intensity); - public void SetPedEmissiveScale(int _ped, float _intensity) + public void SetPedEmissiveScale(uint _ped, float _intensity) { unsafe { - if (fn__setPedEmissiveScale == null) fn__setPedEmissiveScale = (delegate* unmanaged[Cdecl]) funcTable[0x4E90D746056E273DUL]; + if (fn__setPedEmissiveScale == null) fn__setPedEmissiveScale = (delegate* unmanaged[Cdecl]) funcTable[0x4E90D746056E273DUL]; var success = false; fn__setPedEmissiveScale(&success, _ped, _intensity); if (!success) throw new Exception("Native execution failed"); @@ -81323,10 +81310,10 @@ public void SetPedEmissiveScale(int _ped, float _intensity) } public float GetPedEmissiveScale(IPlayer ped) => GetPedEmissiveScale(ped.ScriptId); - public float GetPedEmissiveScale(int _ped) + public float GetPedEmissiveScale(uint _ped) { unsafe { - if (fn__getPedEmissiveScale == null) fn__getPedEmissiveScale = (delegate* unmanaged[Cdecl]) funcTable[0x1461B28A06717D68UL]; + if (fn__getPedEmissiveScale == null) fn__getPedEmissiveScale = (delegate* unmanaged[Cdecl]) funcTable[0x1461B28A06717D68UL]; var success = false; var result = fn__getPedEmissiveScale(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -81335,10 +81322,10 @@ public float GetPedEmissiveScale(int _ped) } public bool IsPedShaderReady(IPlayer ped) => IsPedShaderReady(ped.ScriptId); - public bool IsPedShaderReady(int _ped) + public bool IsPedShaderReady(uint _ped) { unsafe { - if (fn__isPedShaderReady == null) fn__isPedShaderReady = (delegate* unmanaged[Cdecl]) funcTable[0x81AA517FBBA05D39UL]; + if (fn__isPedShaderReady == null) fn__isPedShaderReady = (delegate* unmanaged[Cdecl]) funcTable[0x81AA517FBBA05D39UL]; var success = false; var result = fn__isPedShaderReady(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -81347,10 +81334,10 @@ public bool IsPedShaderReady(int _ped) } public void SetPedEnableCrewEmblem(IPlayer ped, bool toggle) => SetPedEnableCrewEmblem(ped.ScriptId, toggle); - public void SetPedEnableCrewEmblem(int _ped, bool _toggle) + public void SetPedEnableCrewEmblem(uint _ped, bool _toggle) { unsafe { - if (fn__setPedEnableCrewEmblem == null) fn__setPedEnableCrewEmblem = (delegate* unmanaged[Cdecl]) funcTable[0xE906EC930F5FE7C8UL]; + if (fn__setPedEnableCrewEmblem == null) fn__setPedEnableCrewEmblem = (delegate* unmanaged[Cdecl]) funcTable[0xE906EC930F5FE7C8UL]; var success = false; fn__setPedEnableCrewEmblem(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -81368,10 +81355,10 @@ public void RequestRagdollBoundsUpdate(int _p0, int _p1) } public void SetPedAoBlobRendering(IPlayer ped, bool toggle) => SetPedAoBlobRendering(ped.ScriptId, toggle); - public void SetPedAoBlobRendering(int _ped, bool _toggle) + public void SetPedAoBlobRendering(uint _ped, bool _toggle) { unsafe { - if (fn__setPedAoBlobRendering == null) fn__setPedAoBlobRendering = (delegate* unmanaged[Cdecl]) funcTable[0x2B5AA717A181FB4CUL]; + if (fn__setPedAoBlobRendering == null) fn__setPedAoBlobRendering = (delegate* unmanaged[Cdecl]) funcTable[0x2B5AA717A181FB4CUL]; var success = false; fn__setPedAoBlobRendering(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -81379,10 +81366,10 @@ public void SetPedAoBlobRendering(int _ped, bool _toggle) } public bool IsPedSheltered(IPlayer ped) => IsPedSheltered(ped.ScriptId); - public bool IsPedSheltered(int _ped) + public bool IsPedSheltered(uint _ped) { unsafe { - if (fn__isPedSheltered == null) fn__isPedSheltered = (delegate* unmanaged[Cdecl]) funcTable[0xB8B52E498014F5B0UL]; + if (fn__isPedSheltered == null) fn__isPedSheltered = (delegate* unmanaged[Cdecl]) funcTable[0xB8B52E498014F5B0UL]; var success = false; var result = fn__isPedSheltered(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -81518,10 +81505,10 @@ public bool IsSynchronizedSceneHoldLastFrame(int _sceneID) } public void AttachSynchronizedSceneToEntity(int sceneID, IEntity entity, int boneIndex) => AttachSynchronizedSceneToEntity(sceneID, entity.ScriptId, boneIndex); - public void AttachSynchronizedSceneToEntity(int _sceneID, int _entity, int _boneIndex) + public void AttachSynchronizedSceneToEntity(int _sceneID, uint _entity, int _boneIndex) { unsafe { - if (fn__attachSynchronizedSceneToEntity == null) fn__attachSynchronizedSceneToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x272E4723B56A3B96UL]; + if (fn__attachSynchronizedSceneToEntity == null) fn__attachSynchronizedSceneToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x272E4723B56A3B96UL]; var success = false; fn__attachSynchronizedSceneToEntity(&success, _sceneID, _entity, _boneIndex); if (!success) throw new Exception("Native execution failed"); @@ -81549,10 +81536,10 @@ public void TakeOwnershipOfSynchronizedScene(int _scene) } public bool ForcePedMotionState(IPlayer ped, uint motionStateHash, bool p2, int p3, bool p4) => ForcePedMotionState(ped.ScriptId, motionStateHash, p2, p3, p4); - public bool ForcePedMotionState(int _ped, uint _motionStateHash, bool _p2, int _p3, bool _p4) + public bool ForcePedMotionState(uint _ped, uint _motionStateHash, bool _p2, int _p3, bool _p4) { unsafe { - if (fn__forcePedMotionState == null) fn__forcePedMotionState = (delegate* unmanaged[Cdecl]) funcTable[0xF28965D04F570DCAUL]; + if (fn__forcePedMotionState == null) fn__forcePedMotionState = (delegate* unmanaged[Cdecl]) funcTable[0xF28965D04F570DCAUL]; var success = false; var result = fn__forcePedMotionState(&success, _ped, _motionStateHash, (byte) (_p2 ? 1 : 0), _p3, (byte) (_p4 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -81561,10 +81548,10 @@ public bool ForcePedMotionState(int _ped, uint _motionStateHash, bool _p2, int _ } public bool GetPedCurrentMoveBlendRatio(IPlayer ped, ref float speedX, ref float speedY) => GetPedCurrentMoveBlendRatio(ped.ScriptId, ref speedX, ref speedY); - public bool GetPedCurrentMoveBlendRatio(int _ped, ref float _speedX, ref float _speedY) + public bool GetPedCurrentMoveBlendRatio(uint _ped, ref float _speedX, ref float _speedY) { unsafe { - if (fn__getPedCurrentMoveBlendRatio == null) fn__getPedCurrentMoveBlendRatio = (delegate* unmanaged[Cdecl]) funcTable[0xF60165E1D2C5370BUL]; + if (fn__getPedCurrentMoveBlendRatio == null) fn__getPedCurrentMoveBlendRatio = (delegate* unmanaged[Cdecl]) funcTable[0xF60165E1D2C5370BUL]; var success = false; var ref_speedX = _speedX; var ref_speedY = _speedY; @@ -81577,10 +81564,10 @@ public bool GetPedCurrentMoveBlendRatio(int _ped, ref float _speedX, ref float _ } public void SetPedMaxMoveBlendRatio(IPlayer ped, float value) => SetPedMaxMoveBlendRatio(ped.ScriptId, value); - public void SetPedMaxMoveBlendRatio(int _ped, float _value) + public void SetPedMaxMoveBlendRatio(uint _ped, float _value) { unsafe { - if (fn__setPedMaxMoveBlendRatio == null) fn__setPedMaxMoveBlendRatio = (delegate* unmanaged[Cdecl]) funcTable[0x433083750C5E064AUL]; + if (fn__setPedMaxMoveBlendRatio == null) fn__setPedMaxMoveBlendRatio = (delegate* unmanaged[Cdecl]) funcTable[0x433083750C5E064AUL]; var success = false; fn__setPedMaxMoveBlendRatio(&success, _ped, _value); if (!success) throw new Exception("Native execution failed"); @@ -81588,10 +81575,10 @@ public void SetPedMaxMoveBlendRatio(int _ped, float _value) } public void SetPedMinMoveBlendRatio(IPlayer ped, float value) => SetPedMinMoveBlendRatio(ped.ScriptId, value); - public void SetPedMinMoveBlendRatio(int _ped, float _value) + public void SetPedMinMoveBlendRatio(uint _ped, float _value) { unsafe { - if (fn__setPedMinMoveBlendRatio == null) fn__setPedMinMoveBlendRatio = (delegate* unmanaged[Cdecl]) funcTable[0x01A898D26E2333DDUL]; + if (fn__setPedMinMoveBlendRatio == null) fn__setPedMinMoveBlendRatio = (delegate* unmanaged[Cdecl]) funcTable[0x01A898D26E2333DDUL]; var success = false; fn__setPedMinMoveBlendRatio(&success, _ped, _value); if (!success) throw new Exception("Native execution failed"); @@ -81599,10 +81586,10 @@ public void SetPedMinMoveBlendRatio(int _ped, float _value) } public void SetPedMoveRateOverride(IPlayer ped, float value) => SetPedMoveRateOverride(ped.ScriptId, value); - public void SetPedMoveRateOverride(int _ped, float _value) + public void SetPedMoveRateOverride(uint _ped, float _value) { unsafe { - if (fn__setPedMoveRateOverride == null) fn__setPedMoveRateOverride = (delegate* unmanaged[Cdecl]) funcTable[0x085BF80FA50A39D1UL]; + if (fn__setPedMoveRateOverride == null) fn__setPedMoveRateOverride = (delegate* unmanaged[Cdecl]) funcTable[0x085BF80FA50A39D1UL]; var success = false; fn__setPedMoveRateOverride(&success, _ped, _value); if (!success) throw new Exception("Native execution failed"); @@ -81610,10 +81597,10 @@ public void SetPedMoveRateOverride(int _ped, float _value) } public void SetPedMoveRateInWaterOverride(IPlayer ped, float p1) => SetPedMoveRateInWaterOverride(ped.ScriptId, p1); - public void SetPedMoveRateInWaterOverride(int _ped, float _p1) + public void SetPedMoveRateInWaterOverride(uint _ped, float _p1) { unsafe { - if (fn__setPedMoveRateInWaterOverride == null) fn__setPedMoveRateInWaterOverride = (delegate* unmanaged[Cdecl]) funcTable[0x0B3E35AC043707D9UL]; + if (fn__setPedMoveRateInWaterOverride == null) fn__setPedMoveRateInWaterOverride = (delegate* unmanaged[Cdecl]) funcTable[0x0B3E35AC043707D9UL]; var success = false; fn__setPedMoveRateInWaterOverride(&success, _ped, _p1); if (!success) throw new Exception("Native execution failed"); @@ -81621,10 +81608,10 @@ public void SetPedMoveRateInWaterOverride(int _ped, float _p1) } public bool PedHasSexinessFlagSet(IPlayer ped, int sexinessFlag) => PedHasSexinessFlagSet(ped.ScriptId, sexinessFlag); - public bool PedHasSexinessFlagSet(int _ped, int _sexinessFlag) + public bool PedHasSexinessFlagSet(uint _ped, int _sexinessFlag) { unsafe { - if (fn__pedHasSexinessFlagSet == null) fn__pedHasSexinessFlagSet = (delegate* unmanaged[Cdecl]) funcTable[0x46B05BCAE43856B0UL]; + if (fn__pedHasSexinessFlagSet == null) fn__pedHasSexinessFlagSet = (delegate* unmanaged[Cdecl]) funcTable[0x46B05BCAE43856B0UL]; var success = false; var result = fn__pedHasSexinessFlagSet(&success, _ped, _sexinessFlag); if (!success) throw new Exception("Native execution failed"); @@ -81633,10 +81620,10 @@ public bool PedHasSexinessFlagSet(int _ped, int _sexinessFlag) } public int GetPedNearbyVehicles(IPlayer ped, ref int sizeAndVehs) => GetPedNearbyVehicles(ped.ScriptId, ref sizeAndVehs); - public int GetPedNearbyVehicles(int _ped, ref int _sizeAndVehs) + public int GetPedNearbyVehicles(uint _ped, ref int _sizeAndVehs) { unsafe { - if (fn__getPedNearbyVehicles == null) fn__getPedNearbyVehicles = (delegate* unmanaged[Cdecl]) funcTable[0xCFF869CBFA210D82UL]; + if (fn__getPedNearbyVehicles == null) fn__getPedNearbyVehicles = (delegate* unmanaged[Cdecl]) funcTable[0xCFF869CBFA210D82UL]; var success = false; var ref_sizeAndVehs = _sizeAndVehs; var result = fn__getPedNearbyVehicles(&success, _ped, &ref_sizeAndVehs); @@ -81647,10 +81634,10 @@ public int GetPedNearbyVehicles(int _ped, ref int _sizeAndVehs) } public int GetPedNearbyPeds(IPlayer ped, ref int sizeAndPeds, int ignore) => GetPedNearbyPeds(ped.ScriptId, ref sizeAndPeds, ignore); - public int GetPedNearbyPeds(int _ped, ref int _sizeAndPeds, int _ignore) + public int GetPedNearbyPeds(uint _ped, ref int _sizeAndPeds, int _ignore) { unsafe { - if (fn__getPedNearbyPeds == null) fn__getPedNearbyPeds = (delegate* unmanaged[Cdecl]) funcTable[0x23F8F5FC7E8C4A6BUL]; + if (fn__getPedNearbyPeds == null) fn__getPedNearbyPeds = (delegate* unmanaged[Cdecl]) funcTable[0x23F8F5FC7E8C4A6BUL]; var success = false; var ref_sizeAndPeds = _sizeAndPeds; var result = fn__getPedNearbyPeds(&success, _ped, &ref_sizeAndPeds, _ignore); @@ -81661,10 +81648,10 @@ public int GetPedNearbyPeds(int _ped, ref int _sizeAndPeds, int _ignore) } public bool HaveAllStreamingRequestsCompleted(IPlayer ped) => HaveAllStreamingRequestsCompleted(ped.ScriptId); - public bool HaveAllStreamingRequestsCompleted(int _ped) + public bool HaveAllStreamingRequestsCompleted(uint _ped) { unsafe { - if (fn__haveAllStreamingRequestsCompleted == null) fn__haveAllStreamingRequestsCompleted = (delegate* unmanaged[Cdecl]) funcTable[0x7350823473013C02UL]; + if (fn__haveAllStreamingRequestsCompleted == null) fn__haveAllStreamingRequestsCompleted = (delegate* unmanaged[Cdecl]) funcTable[0x7350823473013C02UL]; var success = false; var result = fn__haveAllStreamingRequestsCompleted(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -81673,10 +81660,10 @@ public bool HaveAllStreamingRequestsCompleted(int _ped) } public bool IsPedUsingActionMode(IPlayer ped) => IsPedUsingActionMode(ped.ScriptId); - public bool IsPedUsingActionMode(int _ped) + public bool IsPedUsingActionMode(uint _ped) { unsafe { - if (fn__isPedUsingActionMode == null) fn__isPedUsingActionMode = (delegate* unmanaged[Cdecl]) funcTable[0x00E73468D085F745UL]; + if (fn__isPedUsingActionMode == null) fn__isPedUsingActionMode = (delegate* unmanaged[Cdecl]) funcTable[0x00E73468D085F745UL]; var success = false; var result = fn__isPedUsingActionMode(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -81685,36 +81672,36 @@ public bool IsPedUsingActionMode(int _ped) } public void SetPedUsingActionMode(IPlayer ped, bool p1, int p2, string action) => SetPedUsingActionMode(ped.ScriptId, p1, p2, action); - public void SetPedUsingActionMode(int _ped, bool _p1, int _p2, string _action) + public void SetPedUsingActionMode(uint _ped, bool _p1, int _p2, string _action) { unsafe { - if (fn__setPedUsingActionMode == null) fn__setPedUsingActionMode = (delegate* unmanaged[Cdecl]) funcTable[0xD75ACCF5E0FB5367UL]; + if (fn__setPedUsingActionMode == null) fn__setPedUsingActionMode = (delegate* unmanaged[Cdecl]) funcTable[0xD75ACCF5E0FB5367UL]; var success = false; - var ptr_action = _action == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_action); + var ptr_action = MemoryUtils.StringToHGlobalUtf8(_action); fn__setPedUsingActionMode(&success, _ped, (byte) (_p1 ? 1 : 0), _p2, ptr_action); - if (ptr_action != IntPtr.Zero) Marshal.FreeHGlobal(ptr_action); + Marshal.FreeHGlobal(ptr_action); if (!success) throw new Exception("Native execution failed"); } } public void SetMovementModeOverride(IPlayer ped, string name) => SetMovementModeOverride(ped.ScriptId, name); - public void SetMovementModeOverride(int _ped, string _name) + public void SetMovementModeOverride(uint _ped, string _name) { unsafe { - if (fn__setMovementModeOverride == null) fn__setMovementModeOverride = (delegate* unmanaged[Cdecl]) funcTable[0x781DE8FA214E87D2UL]; + if (fn__setMovementModeOverride == null) fn__setMovementModeOverride = (delegate* unmanaged[Cdecl]) funcTable[0x781DE8FA214E87D2UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__setMovementModeOverride(&success, _ped, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } public void SetPedCapsule(IPlayer ped, float value) => SetPedCapsule(ped.ScriptId, value); - public void SetPedCapsule(int _ped, float _value) + public void SetPedCapsule(uint _ped, float _value) { unsafe { - if (fn__setPedCapsule == null) fn__setPedCapsule = (delegate* unmanaged[Cdecl]) funcTable[0x364DF566EC833DE2UL]; + if (fn__setPedCapsule == null) fn__setPedCapsule = (delegate* unmanaged[Cdecl]) funcTable[0x364DF566EC833DE2UL]; var success = false; fn__setPedCapsule(&success, _ped, _value); if (!success) throw new Exception("Native execution failed"); @@ -81722,10 +81709,10 @@ public void SetPedCapsule(int _ped, float _value) } public int RegisterPedheadshot(IPlayer ped) => RegisterPedheadshot(ped.ScriptId); - public int RegisterPedheadshot(int _ped) + public int RegisterPedheadshot(uint _ped) { unsafe { - if (fn__registerPedheadshot == null) fn__registerPedheadshot = (delegate* unmanaged[Cdecl]) funcTable[0x4462658788425076UL]; + if (fn__registerPedheadshot == null) fn__registerPedheadshot = (delegate* unmanaged[Cdecl]) funcTable[0x4462658788425076UL]; var success = false; var result = fn__registerPedheadshot(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -81734,10 +81721,10 @@ public int RegisterPedheadshot(int _ped) } public int RegisterPedheadshotHires(IPlayer ped) => RegisterPedheadshotHires(ped.ScriptId); - public int RegisterPedheadshotHires(int _ped) + public int RegisterPedheadshotHires(uint _ped) { unsafe { - if (fn__registerPedheadshotHires == null) fn__registerPedheadshotHires = (delegate* unmanaged[Cdecl]) funcTable[0xBA8805A1108A2515UL]; + if (fn__registerPedheadshotHires == null) fn__registerPedheadshotHires = (delegate* unmanaged[Cdecl]) funcTable[0xBA8805A1108A2515UL]; var success = false; var result = fn__registerPedheadshotHires(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -81746,10 +81733,10 @@ public int RegisterPedheadshotHires(int _ped) } public int RegisterPedheadshotTransparent(IPlayer ped) => RegisterPedheadshotTransparent(ped.ScriptId); - public int RegisterPedheadshotTransparent(int _ped) + public int RegisterPedheadshotTransparent(uint _ped) { unsafe { - if (fn__registerPedheadshotTransparent == null) fn__registerPedheadshotTransparent = (delegate* unmanaged[Cdecl]) funcTable[0x953563CE563143AFUL]; + if (fn__registerPedheadshotTransparent == null) fn__registerPedheadshotTransparent = (delegate* unmanaged[Cdecl]) funcTable[0x953563CE563143AFUL]; var success = false; var result = fn__registerPedheadshotTransparent(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -81796,8 +81783,8 @@ public string GetPedheadshotTxdString(int _id) var success = false; var result = fn__getPedheadshotTxdString(&success, _id); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -81857,10 +81844,10 @@ public bool HasPedheadshotImgUploadSucceeded() } public void SetPedHeatscaleOverride(IPlayer ped, float heatScale) => SetPedHeatscaleOverride(ped.ScriptId, heatScale); - public void SetPedHeatscaleOverride(int _ped, float _heatScale) + public void SetPedHeatscaleOverride(uint _ped, float _heatScale) { unsafe { - if (fn__setPedHeatscaleOverride == null) fn__setPedHeatscaleOverride = (delegate* unmanaged[Cdecl]) funcTable[0xC1F6EBF9A3D55538UL]; + if (fn__setPedHeatscaleOverride == null) fn__setPedHeatscaleOverride = (delegate* unmanaged[Cdecl]) funcTable[0xC1F6EBF9A3D55538UL]; var success = false; fn__setPedHeatscaleOverride(&success, _ped, _heatScale); if (!success) throw new Exception("Native execution failed"); @@ -81868,10 +81855,10 @@ public void SetPedHeatscaleOverride(int _ped, float _heatScale) } public void DisablePedHeatscaleOverride(IPlayer ped) => DisablePedHeatscaleOverride(ped.ScriptId); - public void DisablePedHeatscaleOverride(int _ped) + public void DisablePedHeatscaleOverride(uint _ped) { unsafe { - if (fn__disablePedHeatscaleOverride == null) fn__disablePedHeatscaleOverride = (delegate* unmanaged[Cdecl]) funcTable[0x600048C60D5C2C51UL]; + if (fn__disablePedHeatscaleOverride == null) fn__disablePedHeatscaleOverride = (delegate* unmanaged[Cdecl]) funcTable[0x600048C60D5C2C51UL]; var success = false; fn__disablePedHeatscaleOverride(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -81980,13 +81967,13 @@ public void SpawnpointsGetSearchResultFlags(int _p0, ref int _p1) } } - public void SetIkTarget(IPlayer ped, int ikIndex, int entityLookAt, int boneLookAt, float offsetX, float offsetY, float offsetZ, int p7, int blendInDuration, int blendOutDuration) => SetIkTarget(ped.ScriptId, ikIndex, entityLookAt, boneLookAt, offsetX, offsetY, offsetZ, p7, blendInDuration, blendOutDuration); - public void SetIkTarget(int ped, int ikIndex, IEntity entityLookAt, int boneLookAt, float offsetX, float offsetY, float offsetZ, int p7, int blendInDuration, int blendOutDuration) => SetIkTarget(ped, ikIndex, entityLookAt.ScriptId, boneLookAt, offsetX, offsetY, offsetZ, p7, blendInDuration, blendOutDuration); + public void SetIkTarget(IPlayer ped, int ikIndex, uint entityLookAt, int boneLookAt, float offsetX, float offsetY, float offsetZ, int p7, int blendInDuration, int blendOutDuration) => SetIkTarget(ped.ScriptId, ikIndex, entityLookAt, boneLookAt, offsetX, offsetY, offsetZ, p7, blendInDuration, blendOutDuration); + public void SetIkTarget(uint ped, int ikIndex, IEntity entityLookAt, int boneLookAt, float offsetX, float offsetY, float offsetZ, int p7, int blendInDuration, int blendOutDuration) => SetIkTarget(ped, ikIndex, entityLookAt.ScriptId, boneLookAt, offsetX, offsetY, offsetZ, p7, blendInDuration, blendOutDuration); public void SetIkTarget(IPlayer ped, int ikIndex, IEntity entityLookAt, int boneLookAt, float offsetX, float offsetY, float offsetZ, int p7, int blendInDuration, int blendOutDuration) => SetIkTarget(ped.ScriptId, ikIndex, entityLookAt.ScriptId, boneLookAt, offsetX, offsetY, offsetZ, p7, blendInDuration, blendOutDuration); - public void SetIkTarget(int _ped, int _ikIndex, int _entityLookAt, int _boneLookAt, float _offsetX, float _offsetY, float _offsetZ, int _p7, int _blendInDuration, int _blendOutDuration) + public void SetIkTarget(uint _ped, int _ikIndex, uint _entityLookAt, int _boneLookAt, float _offsetX, float _offsetY, float _offsetZ, int _p7, int _blendInDuration, int _blendOutDuration) { unsafe { - if (fn__setIkTarget == null) fn__setIkTarget = (delegate* unmanaged[Cdecl]) funcTable[0xC32779C16FCEECD9UL]; + if (fn__setIkTarget == null) fn__setIkTarget = (delegate* unmanaged[Cdecl]) funcTable[0xC32779C16FCEECD9UL]; var success = false; fn__setIkTarget(&success, _ped, _ikIndex, _entityLookAt, _boneLookAt, _offsetX, _offsetY, _offsetZ, _p7, _blendInDuration, _blendOutDuration); if (!success) throw new Exception("Native execution failed"); @@ -81994,10 +81981,10 @@ public void SetIkTarget(int _ped, int _ikIndex, int _entityLookAt, int _boneLook } public void ForceInstantLegIkSetup(IPlayer ped) => ForceInstantLegIkSetup(ped.ScriptId); - public void ForceInstantLegIkSetup(int _ped) + public void ForceInstantLegIkSetup(uint _ped) { unsafe { - if (fn__forceInstantLegIkSetup == null) fn__forceInstantLegIkSetup = (delegate* unmanaged[Cdecl]) funcTable[0xED3C76ADFA6D07C4UL]; + if (fn__forceInstantLegIkSetup == null) fn__forceInstantLegIkSetup = (delegate* unmanaged[Cdecl]) funcTable[0xED3C76ADFA6D07C4UL]; var success = false; fn__forceInstantLegIkSetup(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -82009,9 +81996,9 @@ public void RequestActionModeAsset(string _asset) unsafe { if (fn__requestActionModeAsset == null) fn__requestActionModeAsset = (delegate* unmanaged[Cdecl]) funcTable[0x290E2780BB7AA598UL]; var success = false; - var ptr_asset = _asset == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_asset); + var ptr_asset = MemoryUtils.StringToHGlobalUtf8(_asset); fn__requestActionModeAsset(&success, ptr_asset); - if (ptr_asset != IntPtr.Zero) Marshal.FreeHGlobal(ptr_asset); + Marshal.FreeHGlobal(ptr_asset); if (!success) throw new Exception("Native execution failed"); } } @@ -82021,9 +82008,9 @@ public bool HasActionModeAssetLoaded(string _asset) unsafe { if (fn__hasActionModeAssetLoaded == null) fn__hasActionModeAssetLoaded = (delegate* unmanaged[Cdecl]) funcTable[0xE4B5F4BF2CB24E65UL]; var success = false; - var ptr_asset = _asset == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_asset); + var ptr_asset = MemoryUtils.StringToHGlobalUtf8(_asset); var result = fn__hasActionModeAssetLoaded(&success, ptr_asset); - if (ptr_asset != IntPtr.Zero) Marshal.FreeHGlobal(ptr_asset); + Marshal.FreeHGlobal(ptr_asset); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -82034,9 +82021,9 @@ public void RemoveActionModeAsset(string _asset) unsafe { if (fn__removeActionModeAsset == null) fn__removeActionModeAsset = (delegate* unmanaged[Cdecl]) funcTable[0x13E940F88470FA51UL]; var success = false; - var ptr_asset = _asset == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_asset); + var ptr_asset = MemoryUtils.StringToHGlobalUtf8(_asset); fn__removeActionModeAsset(&success, ptr_asset); - if (ptr_asset != IntPtr.Zero) Marshal.FreeHGlobal(ptr_asset); + Marshal.FreeHGlobal(ptr_asset); if (!success) throw new Exception("Native execution failed"); } } @@ -82046,9 +82033,9 @@ public void RequestStealthModeAsset(string _asset) unsafe { if (fn__requestStealthModeAsset == null) fn__requestStealthModeAsset = (delegate* unmanaged[Cdecl]) funcTable[0x2A0A62FCDEE16D4FUL]; var success = false; - var ptr_asset = _asset == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_asset); + var ptr_asset = MemoryUtils.StringToHGlobalUtf8(_asset); fn__requestStealthModeAsset(&success, ptr_asset); - if (ptr_asset != IntPtr.Zero) Marshal.FreeHGlobal(ptr_asset); + Marshal.FreeHGlobal(ptr_asset); if (!success) throw new Exception("Native execution failed"); } } @@ -82058,9 +82045,9 @@ public bool HasStealthModeAssetLoaded(string _asset) unsafe { if (fn__hasStealthModeAssetLoaded == null) fn__hasStealthModeAssetLoaded = (delegate* unmanaged[Cdecl]) funcTable[0xE977FC5B08AF3441UL]; var success = false; - var ptr_asset = _asset == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_asset); + var ptr_asset = MemoryUtils.StringToHGlobalUtf8(_asset); var result = fn__hasStealthModeAssetLoaded(&success, ptr_asset); - if (ptr_asset != IntPtr.Zero) Marshal.FreeHGlobal(ptr_asset); + Marshal.FreeHGlobal(ptr_asset); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -82071,18 +82058,18 @@ public void RemoveStealthModeAsset(string _asset) unsafe { if (fn__removeStealthModeAsset == null) fn__removeStealthModeAsset = (delegate* unmanaged[Cdecl]) funcTable[0x9219857D21F0E842UL]; var success = false; - var ptr_asset = _asset == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_asset); + var ptr_asset = MemoryUtils.StringToHGlobalUtf8(_asset); fn__removeStealthModeAsset(&success, ptr_asset); - if (ptr_asset != IntPtr.Zero) Marshal.FreeHGlobal(ptr_asset); + Marshal.FreeHGlobal(ptr_asset); if (!success) throw new Exception("Native execution failed"); } } public void SetPedLodMultiplier(IPlayer ped, float multiplier) => SetPedLodMultiplier(ped.ScriptId, multiplier); - public void SetPedLodMultiplier(int _ped, float _multiplier) + public void SetPedLodMultiplier(uint _ped, float _multiplier) { unsafe { - if (fn__setPedLodMultiplier == null) fn__setPedLodMultiplier = (delegate* unmanaged[Cdecl]) funcTable[0xDC2C5C242AAC342BUL]; + if (fn__setPedLodMultiplier == null) fn__setPedLodMultiplier = (delegate* unmanaged[Cdecl]) funcTable[0xDC2C5C242AAC342BUL]; var success = false; fn__setPedLodMultiplier(&success, _ped, _multiplier); if (!success) throw new Exception("Native execution failed"); @@ -82090,10 +82077,10 @@ public void SetPedLodMultiplier(int _ped, float _multiplier) } public void SetPedCanLosePropsOnDamage(IPlayer ped, bool toggle, int p2) => SetPedCanLosePropsOnDamage(ped.ScriptId, toggle, p2); - public void SetPedCanLosePropsOnDamage(int _ped, bool _toggle, int _p2) + public void SetPedCanLosePropsOnDamage(uint _ped, bool _toggle, int _p2) { unsafe { - if (fn__setPedCanLosePropsOnDamage == null) fn__setPedCanLosePropsOnDamage = (delegate* unmanaged[Cdecl]) funcTable[0xE861D0B05C7662B8UL]; + if (fn__setPedCanLosePropsOnDamage == null) fn__setPedCanLosePropsOnDamage = (delegate* unmanaged[Cdecl]) funcTable[0xE861D0B05C7662B8UL]; var success = false; fn__setPedCanLosePropsOnDamage(&success, _ped, (byte) (_toggle ? 1 : 0), _p2); if (!success) throw new Exception("Native execution failed"); @@ -82101,10 +82088,10 @@ public void SetPedCanLosePropsOnDamage(int _ped, bool _toggle, int _p2) } public void SetForceFootstepUpdate(IPlayer ped, bool toggle) => SetForceFootstepUpdate(ped.ScriptId, toggle); - public void SetForceFootstepUpdate(int _ped, bool _toggle) + public void SetForceFootstepUpdate(uint _ped, bool _toggle) { unsafe { - if (fn__setForceFootstepUpdate == null) fn__setForceFootstepUpdate = (delegate* unmanaged[Cdecl]) funcTable[0x129466ED55140F8DUL]; + if (fn__setForceFootstepUpdate == null) fn__setForceFootstepUpdate = (delegate* unmanaged[Cdecl]) funcTable[0x129466ED55140F8DUL]; var success = false; fn__setForceFootstepUpdate(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -82112,10 +82099,10 @@ public void SetForceFootstepUpdate(int _ped, bool _toggle) } public void SetForceStepType(IPlayer ped, bool p1, int type, int p3) => SetForceStepType(ped.ScriptId, p1, type, p3); - public void SetForceStepType(int _ped, bool _p1, int _type, int _p3) + public void SetForceStepType(uint _ped, bool _p1, int _type, int _p3) { unsafe { - if (fn__setForceStepType == null) fn__setForceStepType = (delegate* unmanaged[Cdecl]) funcTable[0xCB968B53FC7F916DUL]; + if (fn__setForceStepType == null) fn__setForceStepType = (delegate* unmanaged[Cdecl]) funcTable[0xCB968B53FC7F916DUL]; var success = false; fn__setForceStepType(&success, _ped, (byte) (_p1 ? 1 : 0), _type, _p3); if (!success) throw new Exception("Native execution failed"); @@ -82123,10 +82110,10 @@ public void SetForceStepType(int _ped, bool _p1, int _type, int _p3) } public bool IsAnyHostilePedNearPoint(IPlayer ped, float x, float y, float z, float radius) => IsAnyHostilePedNearPoint(ped.ScriptId, x, y, z, radius); - public bool IsAnyHostilePedNearPoint(int _ped, float _x, float _y, float _z, float _radius) + public bool IsAnyHostilePedNearPoint(uint _ped, float _x, float _y, float _z, float _radius) { unsafe { - if (fn__isAnyHostilePedNearPoint == null) fn__isAnyHostilePedNearPoint = (delegate* unmanaged[Cdecl]) funcTable[0x68772DB2B2526F9FUL]; + if (fn__isAnyHostilePedNearPoint == null) fn__isAnyHostilePedNearPoint = (delegate* unmanaged[Cdecl]) funcTable[0x68772DB2B2526F9FUL]; var success = false; var result = fn__isAnyHostilePedNearPoint(&success, _ped, _x, _y, _z, _radius); if (!success) throw new Exception("Native execution failed"); @@ -82135,23 +82122,23 @@ public bool IsAnyHostilePedNearPoint(int _ped, float _x, float _y, float _z, flo } public void SetPedCanPlayInCarIdles(IPlayer ped, bool toggle) => SetPedCanPlayInCarIdles(ped.ScriptId, toggle); - public void SetPedCanPlayInCarIdles(int _ped, bool _toggle) + public void SetPedCanPlayInCarIdles(uint _ped, bool _toggle) { unsafe { - if (fn__setPedCanPlayInCarIdles == null) fn__setPedCanPlayInCarIdles = (delegate* unmanaged[Cdecl]) funcTable[0x820E9892A77E97CDUL]; + if (fn__setPedCanPlayInCarIdles == null) fn__setPedCanPlayInCarIdles = (delegate* unmanaged[Cdecl]) funcTable[0x820E9892A77E97CDUL]; var success = false; fn__setPedCanPlayInCarIdles(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public bool IsTargetPedInPerceptionArea(IPlayer ped, int targetPed, float p2, float p3, float p4, float p5) => IsTargetPedInPerceptionArea(ped.ScriptId, targetPed, p2, p3, p4, p5); - public bool IsTargetPedInPerceptionArea(int ped, IPlayer targetPed, float p2, float p3, float p4, float p5) => IsTargetPedInPerceptionArea(ped, targetPed.ScriptId, p2, p3, p4, p5); + public bool IsTargetPedInPerceptionArea(IPlayer ped, uint targetPed, float p2, float p3, float p4, float p5) => IsTargetPedInPerceptionArea(ped.ScriptId, targetPed, p2, p3, p4, p5); + public bool IsTargetPedInPerceptionArea(uint ped, IPlayer targetPed, float p2, float p3, float p4, float p5) => IsTargetPedInPerceptionArea(ped, targetPed.ScriptId, p2, p3, p4, p5); public bool IsTargetPedInPerceptionArea(IPlayer ped, IPlayer targetPed, float p2, float p3, float p4, float p5) => IsTargetPedInPerceptionArea(ped.ScriptId, targetPed.ScriptId, p2, p3, p4, p5); - public bool IsTargetPedInPerceptionArea(int _ped, int _targetPed, float _p2, float _p3, float _p4, float _p5) + public bool IsTargetPedInPerceptionArea(uint _ped, uint _targetPed, float _p2, float _p3, float _p4, float _p5) { unsafe { - if (fn__isTargetPedInPerceptionArea == null) fn__isTargetPedInPerceptionArea = (delegate* unmanaged[Cdecl]) funcTable[0x06087579E7AA85A9UL]; + if (fn__isTargetPedInPerceptionArea == null) fn__isTargetPedInPerceptionArea = (delegate* unmanaged[Cdecl]) funcTable[0x06087579E7AA85A9UL]; var success = false; var result = fn__isTargetPedInPerceptionArea(&success, _ped, _targetPed, _p2, _p3, _p4, _p5); if (!success) throw new Exception("Native execution failed"); @@ -82170,10 +82157,10 @@ public void SetPopControlSphereThisFrame(float _x, float _y, float _z, float _mi } public void ForceZeroMassInCollisions(IPlayer ped) => ForceZeroMassInCollisions(ped.ScriptId); - public void ForceZeroMassInCollisions(int _ped) + public void ForceZeroMassInCollisions(uint _ped) { unsafe { - if (fn__forceZeroMassInCollisions == null) fn__forceZeroMassInCollisions = (delegate* unmanaged[Cdecl]) funcTable[0xD33DAA36272177C4UL]; + if (fn__forceZeroMassInCollisions == null) fn__forceZeroMassInCollisions = (delegate* unmanaged[Cdecl]) funcTable[0xD33DAA36272177C4UL]; var success = false; fn__forceZeroMassInCollisions(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -82181,10 +82168,10 @@ public void ForceZeroMassInCollisions(int _ped) } public void SetDisableHighFallDeath(IPlayer ped, bool toggle) => SetDisableHighFallDeath(ped.ScriptId, toggle); - public void SetDisableHighFallDeath(int _ped, bool _toggle) + public void SetDisableHighFallDeath(uint _ped, bool _toggle) { unsafe { - if (fn__setDisableHighFallDeath == null) fn__setDisableHighFallDeath = (delegate* unmanaged[Cdecl]) funcTable[0x711794453CFD692BUL]; + if (fn__setDisableHighFallDeath == null) fn__setDisableHighFallDeath = (delegate* unmanaged[Cdecl]) funcTable[0x711794453CFD692BUL]; var success = false; fn__setDisableHighFallDeath(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -82202,10 +82189,10 @@ public void SetPedPhonePaletteIdx(int _p0, int _p1) } public void SetPedSteerBias(IPlayer ped, float value) => SetPedSteerBias(ped.ScriptId, value); - public void SetPedSteerBias(int _ped, float _value) + public void SetPedSteerBias(uint _ped, float _value) { unsafe { - if (fn__setPedSteerBias == null) fn__setPedSteerBias = (delegate* unmanaged[Cdecl]) funcTable[0x288DF530C92DAD6FUL]; + if (fn__setPedSteerBias == null) fn__setPedSteerBias = (delegate* unmanaged[Cdecl]) funcTable[0x288DF530C92DAD6FUL]; var success = false; fn__setPedSteerBias(&success, _ped, _value); if (!success) throw new Exception("Native execution failed"); @@ -82213,10 +82200,10 @@ public void SetPedSteerBias(int _ped, float _value) } public bool IsPedSwitchingWeapon(IPlayer Ped) => IsPedSwitchingWeapon(Ped.ScriptId); - public bool IsPedSwitchingWeapon(int _Ped) + public bool IsPedSwitchingWeapon(uint _Ped) { unsafe { - if (fn__isPedSwitchingWeapon == null) fn__isPedSwitchingWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x3795688A307E1EB6UL]; + if (fn__isPedSwitchingWeapon == null) fn__isPedSwitchingWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x3795688A307E1EB6UL]; var success = false; var result = fn__isPedSwitchingWeapon(&success, _Ped); if (!success) throw new Exception("Native execution failed"); @@ -82235,10 +82222,10 @@ public void SetPedTreatedAsFriendly(int _p0, int _p1, int _p2) } public void SetDisablePedMapCollision(IPlayer ped) => SetDisablePedMapCollision(ped.ScriptId); - public void SetDisablePedMapCollision(int _ped) + public void SetDisablePedMapCollision(uint _ped) { unsafe { - if (fn__setDisablePedMapCollision == null) fn__setDisablePedMapCollision = (delegate* unmanaged[Cdecl]) funcTable[0xDFE68C4B787E1BFBUL]; + if (fn__setDisablePedMapCollision == null) fn__setDisablePedMapCollision = (delegate* unmanaged[Cdecl]) funcTable[0xDFE68C4B787E1BFBUL]; var success = false; fn__setDisablePedMapCollision(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -82246,10 +82233,10 @@ public void SetDisablePedMapCollision(int _ped) } public void EnableMpLight(IPlayer ped, bool toggle) => EnableMpLight(ped.ScriptId, toggle); - public void EnableMpLight(int _ped, bool _toggle) + public void EnableMpLight(uint _ped, bool _toggle) { unsafe { - if (fn__enableMpLight == null) fn__enableMpLight = (delegate* unmanaged[Cdecl]) funcTable[0xEE2476B9EE4A094FUL]; + if (fn__enableMpLight == null) fn__enableMpLight = (delegate* unmanaged[Cdecl]) funcTable[0xEE2476B9EE4A094FUL]; var success = false; fn__enableMpLight(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -82257,10 +82244,10 @@ public void EnableMpLight(int _ped, bool _toggle) } public bool GetMpLightEnabled(IPlayer ped) => GetMpLightEnabled(ped.ScriptId); - public bool GetMpLightEnabled(int _ped) + public bool GetMpLightEnabled(uint _ped) { unsafe { - if (fn__getMpLightEnabled == null) fn__getMpLightEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x88274C11CF0D866DUL]; + if (fn__getMpLightEnabled == null) fn__getMpLightEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x88274C11CF0D866DUL]; var success = false; var result = fn__getMpLightEnabled(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -82269,10 +82256,10 @@ public bool GetMpLightEnabled(int _ped) } public void ClearCoverPointForPed(IPlayer ped) => ClearCoverPointForPed(ped.ScriptId); - public void ClearCoverPointForPed(int _ped) + public void ClearCoverPointForPed(uint _ped) { unsafe { - if (fn__clearCoverPointForPed == null) fn__clearCoverPointForPed = (delegate* unmanaged[Cdecl]) funcTable[0x637822DC2AFEEBF8UL]; + if (fn__clearCoverPointForPed == null) fn__clearCoverPointForPed = (delegate* unmanaged[Cdecl]) funcTable[0x637822DC2AFEEBF8UL]; var success = false; fn__clearCoverPointForPed(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -82280,10 +82267,10 @@ public void ClearCoverPointForPed(int _ped) } public void SetAllowStuntJumpCamera(IPlayer ped, bool toggle) => SetAllowStuntJumpCamera(ped.ScriptId, toggle); - public void SetAllowStuntJumpCamera(int _ped, bool _toggle) + public void SetAllowStuntJumpCamera(uint _ped, bool _toggle) { unsafe { - if (fn__setAllowStuntJumpCamera == null) fn__setAllowStuntJumpCamera = (delegate* unmanaged[Cdecl]) funcTable[0xFAB944D4D481ACCBUL]; + if (fn__setAllowStuntJumpCamera == null) fn__setAllowStuntJumpCamera = (delegate* unmanaged[Cdecl]) funcTable[0xFAB944D4D481ACCBUL]; var success = false; fn__setAllowStuntJumpCamera(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -82367,9 +82354,9 @@ public void LoadRopeData(int _ropeId, string _rope_preset) unsafe { if (fn__loadRopeData == null) fn__loadRopeData = (delegate* unmanaged[Cdecl]) funcTable[0xCBB203C04D1ABD27UL]; var success = false; - var ptr_rope_preset = _rope_preset == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_rope_preset); + var ptr_rope_preset = MemoryUtils.StringToHGlobalUtf8(_rope_preset); fn__loadRopeData(&success, _ropeId, ptr_rope_preset); - if (ptr_rope_preset != IntPtr.Zero) Marshal.FreeHGlobal(ptr_rope_preset); + Marshal.FreeHGlobal(ptr_rope_preset); if (!success) throw new Exception("Native execution failed"); } } @@ -82405,13 +82392,13 @@ public int GetRopeVertexCount(int _ropeId) } } - public void AttachEntitiesToRope(int ropeId, IEntity ent1, int ent2, float ent1_x, float ent1_y, float ent1_z, float ent2_x, float ent2_y, float ent2_z, float length, bool p10, bool p11, ref int p12, ref int p13) => AttachEntitiesToRope(ropeId, ent1.ScriptId, ent2, ent1_x, ent1_y, ent1_z, ent2_x, ent2_y, ent2_z, length, p10, p11, ref p12, ref p13); - public void AttachEntitiesToRope(int ropeId, int ent1, IEntity ent2, float ent1_x, float ent1_y, float ent1_z, float ent2_x, float ent2_y, float ent2_z, float length, bool p10, bool p11, ref int p12, ref int p13) => AttachEntitiesToRope(ropeId, ent1, ent2.ScriptId, ent1_x, ent1_y, ent1_z, ent2_x, ent2_y, ent2_z, length, p10, p11, ref p12, ref p13); + public void AttachEntitiesToRope(int ropeId, IEntity ent1, uint ent2, float ent1_x, float ent1_y, float ent1_z, float ent2_x, float ent2_y, float ent2_z, float length, bool p10, bool p11, ref int p12, ref int p13) => AttachEntitiesToRope(ropeId, ent1.ScriptId, ent2, ent1_x, ent1_y, ent1_z, ent2_x, ent2_y, ent2_z, length, p10, p11, ref p12, ref p13); + public void AttachEntitiesToRope(int ropeId, uint ent1, IEntity ent2, float ent1_x, float ent1_y, float ent1_z, float ent2_x, float ent2_y, float ent2_z, float length, bool p10, bool p11, ref int p12, ref int p13) => AttachEntitiesToRope(ropeId, ent1, ent2.ScriptId, ent1_x, ent1_y, ent1_z, ent2_x, ent2_y, ent2_z, length, p10, p11, ref p12, ref p13); public void AttachEntitiesToRope(int ropeId, IEntity ent1, IEntity ent2, float ent1_x, float ent1_y, float ent1_z, float ent2_x, float ent2_y, float ent2_z, float length, bool p10, bool p11, ref int p12, ref int p13) => AttachEntitiesToRope(ropeId, ent1.ScriptId, ent2.ScriptId, ent1_x, ent1_y, ent1_z, ent2_x, ent2_y, ent2_z, length, p10, p11, ref p12, ref p13); - public void AttachEntitiesToRope(int _ropeId, int _ent1, int _ent2, float _ent1_x, float _ent1_y, float _ent1_z, float _ent2_x, float _ent2_y, float _ent2_z, float _length, bool _p10, bool _p11, ref int _p12, ref int _p13) + public void AttachEntitiesToRope(int _ropeId, uint _ent1, uint _ent2, float _ent1_x, float _ent1_y, float _ent1_z, float _ent2_x, float _ent2_y, float _ent2_z, float _length, bool _p10, bool _p11, ref int _p12, ref int _p13) { unsafe { - if (fn__attachEntitiesToRope == null) fn__attachEntitiesToRope = (delegate* unmanaged[Cdecl]) funcTable[0x3D95EC8B6D940AC3UL]; + if (fn__attachEntitiesToRope == null) fn__attachEntitiesToRope = (delegate* unmanaged[Cdecl]) funcTable[0x3D95EC8B6D940AC3UL]; var success = false; var ref_p12 = _p12; var ref_p13 = _p13; @@ -82423,10 +82410,10 @@ public void AttachEntitiesToRope(int _ropeId, int _ent1, int _ent2, float _ent1_ } public void AttachRopeToEntity(int ropeId, IEntity entity, float x, float y, float z, bool p5) => AttachRopeToEntity(ropeId, entity.ScriptId, x, y, z, p5); - public void AttachRopeToEntity(int _ropeId, int _entity, float _x, float _y, float _z, bool _p5) + public void AttachRopeToEntity(int _ropeId, uint _entity, float _x, float _y, float _z, bool _p5) { unsafe { - if (fn__attachRopeToEntity == null) fn__attachRopeToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x4B490A6832559A65UL]; + if (fn__attachRopeToEntity == null) fn__attachRopeToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x4B490A6832559A65UL]; var success = false; fn__attachRopeToEntity(&success, _ropeId, _entity, _x, _y, _z, (byte) (_p5 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -82434,10 +82421,10 @@ public void AttachRopeToEntity(int _ropeId, int _entity, float _x, float _y, flo } public void DetachRopeFromEntity(int ropeId, IEntity entity) => DetachRopeFromEntity(ropeId, entity.ScriptId); - public void DetachRopeFromEntity(int _ropeId, int _entity) + public void DetachRopeFromEntity(int _ropeId, uint _entity) { unsafe { - if (fn__detachRopeFromEntity == null) fn__detachRopeFromEntity = (delegate* unmanaged[Cdecl]) funcTable[0xBCF3026912A8647DUL]; + if (fn__detachRopeFromEntity == null) fn__detachRopeFromEntity = (delegate* unmanaged[Cdecl]) funcTable[0xBCF3026912A8647DUL]; var success = false; fn__detachRopeFromEntity(&success, _ropeId, _entity); if (!success) throw new Exception("Native execution failed"); @@ -82673,10 +82660,10 @@ public void ApplyImpulseToCloth(float _posX, float _posY, float _posZ, float _ve } public void SetDamping(IEntity entity, int vertex, float value) => SetDamping(entity.ScriptId, vertex, value); - public void SetDamping(int _entity, int _vertex, float _value) + public void SetDamping(uint _entity, int _vertex, float _value) { unsafe { - if (fn__setDamping == null) fn__setDamping = (delegate* unmanaged[Cdecl]) funcTable[0xEEA3B200A6FEB65BUL]; + if (fn__setDamping == null) fn__setDamping = (delegate* unmanaged[Cdecl]) funcTable[0xEEA3B200A6FEB65BUL]; var success = false; fn__setDamping(&success, _entity, _vertex, _value); if (!success) throw new Exception("Native execution failed"); @@ -82684,10 +82671,10 @@ public void SetDamping(int _entity, int _vertex, float _value) } public void ActivatePhysics(IEntity entity) => ActivatePhysics(entity.ScriptId); - public void ActivatePhysics(int _entity) + public void ActivatePhysics(uint _entity) { unsafe { - if (fn__activatePhysics == null) fn__activatePhysics = (delegate* unmanaged[Cdecl]) funcTable[0x710311ADF0E20730UL]; + if (fn__activatePhysics == null) fn__activatePhysics = (delegate* unmanaged[Cdecl]) funcTable[0x710311ADF0E20730UL]; var success = false; fn__activatePhysics(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -82695,10 +82682,10 @@ public void ActivatePhysics(int _entity) } public void SetCgoffset(IEntity entity, float x, float y, float z) => SetCgoffset(entity.ScriptId, x, y, z); - public void SetCgoffset(int _entity, float _x, float _y, float _z) + public void SetCgoffset(uint _entity, float _x, float _y, float _z) { unsafe { - if (fn__setCgoffset == null) fn__setCgoffset = (delegate* unmanaged[Cdecl]) funcTable[0xD8FA3908D7B86904UL]; + if (fn__setCgoffset == null) fn__setCgoffset = (delegate* unmanaged[Cdecl]) funcTable[0xD8FA3908D7B86904UL]; var success = false; fn__setCgoffset(&success, _entity, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); @@ -82706,10 +82693,10 @@ public void SetCgoffset(int _entity, float _x, float _y, float _z) } public Vector3 GetCgoffset(IEntity entity) => GetCgoffset(entity.ScriptId); - public Vector3 GetCgoffset(int _entity) + public Vector3 GetCgoffset(uint _entity) { unsafe { - if (fn__getCgoffset == null) fn__getCgoffset = (delegate* unmanaged[Cdecl]) funcTable[0x8214A4B5A7A33612UL]; + if (fn__getCgoffset == null) fn__getCgoffset = (delegate* unmanaged[Cdecl]) funcTable[0x8214A4B5A7A33612UL]; var success = false; var result = fn__getCgoffset(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -82718,10 +82705,10 @@ public Vector3 GetCgoffset(int _entity) } public void SetCgAtBoundcenter(IEntity entity) => SetCgAtBoundcenter(entity.ScriptId); - public void SetCgAtBoundcenter(int _entity) + public void SetCgAtBoundcenter(uint _entity) { unsafe { - if (fn__setCgAtBoundcenter == null) fn__setCgAtBoundcenter = (delegate* unmanaged[Cdecl]) funcTable[0xBE520D9761FF811FUL]; + if (fn__setCgAtBoundcenter == null) fn__setCgAtBoundcenter = (delegate* unmanaged[Cdecl]) funcTable[0xBE520D9761FF811FUL]; var success = false; fn__setCgAtBoundcenter(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -82729,20 +82716,20 @@ public void SetCgAtBoundcenter(int _entity) } public void BreakEntityGlass(IEntity entity, float p1, float p2, float p3, float p4, float p5, float p6, float p7, float p8, int p9, bool p10) => BreakEntityGlass(entity.ScriptId, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); - public void BreakEntityGlass(int _entity, float _p1, float _p2, float _p3, float _p4, float _p5, float _p6, float _p7, float _p8, int _p9, bool _p10) + public void BreakEntityGlass(uint _entity, float _p1, float _p2, float _p3, float _p4, float _p5, float _p6, float _p7, float _p8, int _p9, bool _p10) { unsafe { - if (fn__breakEntityGlass == null) fn__breakEntityGlass = (delegate* unmanaged[Cdecl]) funcTable[0x2E648D16F6E308F3UL]; + if (fn__breakEntityGlass == null) fn__breakEntityGlass = (delegate* unmanaged[Cdecl]) funcTable[0x2E648D16F6E308F3UL]; var success = false; fn__breakEntityGlass(&success, _entity, _p1, _p2, _p3, _p4, _p5, _p6, _p7, _p8, _p9, (byte) (_p10 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public bool GetIsEntityAFrag(int _object) + public bool GetIsEntityAFrag(uint _object) { unsafe { - if (fn__getIsEntityAFrag == null) fn__getIsEntityAFrag = (delegate* unmanaged[Cdecl]) funcTable[0x0C112765300C7E1EUL]; + if (fn__getIsEntityAFrag == null) fn__getIsEntityAFrag = (delegate* unmanaged[Cdecl]) funcTable[0x0C112765300C7E1EUL]; var success = false; var result = fn__getIsEntityAFrag(&success, _object); if (!success) throw new Exception("Native execution failed"); @@ -82750,30 +82737,30 @@ public bool GetIsEntityAFrag(int _object) } } - public void SetDisableBreaking(int _object, bool _toggle) + public void SetDisableBreaking(uint _object, bool _toggle) { unsafe { - if (fn__setDisableBreaking == null) fn__setDisableBreaking = (delegate* unmanaged[Cdecl]) funcTable[0x5CEC1A84620E7D5BUL]; + if (fn__setDisableBreaking == null) fn__setDisableBreaking = (delegate* unmanaged[Cdecl]) funcTable[0x5CEC1A84620E7D5BUL]; var success = false; fn__setDisableBreaking(&success, _object, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void ResetDisableBreaking(int _object) + public void ResetDisableBreaking(uint _object) { unsafe { - if (fn__resetDisableBreaking == null) fn__resetDisableBreaking = (delegate* unmanaged[Cdecl]) funcTable[0xCC6E963682533882UL]; + if (fn__resetDisableBreaking == null) fn__resetDisableBreaking = (delegate* unmanaged[Cdecl]) funcTable[0xCC6E963682533882UL]; var success = false; fn__resetDisableBreaking(&success, _object); if (!success) throw new Exception("Native execution failed"); } } - public void SetDisableFragDamage(int _object, bool _toggle) + public void SetDisableFragDamage(uint _object, bool _toggle) { unsafe { - if (fn__setDisableFragDamage == null) fn__setDisableFragDamage = (delegate* unmanaged[Cdecl]) funcTable[0x01BA3AED21C16CFBUL]; + if (fn__setDisableFragDamage == null) fn__setDisableFragDamage = (delegate* unmanaged[Cdecl]) funcTable[0x01BA3AED21C16CFBUL]; var success = false; fn__setDisableFragDamage(&success, _object, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -82781,10 +82768,10 @@ public void SetDisableFragDamage(int _object, bool _toggle) } public void SetUseKinematicPhysics(IEntity entity, bool toggle) => SetUseKinematicPhysics(entity.ScriptId, toggle); - public void SetUseKinematicPhysics(int _entity, bool _toggle) + public void SetUseKinematicPhysics(uint _entity, bool _toggle) { unsafe { - if (fn__setUseKinematicPhysics == null) fn__setUseKinematicPhysics = (delegate* unmanaged[Cdecl]) funcTable[0x15F944730C832252UL]; + if (fn__setUseKinematicPhysics == null) fn__setUseKinematicPhysics = (delegate* unmanaged[Cdecl]) funcTable[0x15F944730C832252UL]; var success = false; fn__setUseKinematicPhysics(&success, _entity, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -82811,11 +82798,11 @@ public void SetInArenaMode(bool _toggle) } } - public int GetPlayerPed(IPlayer player) => GetPlayerPed(player.ScriptId); - public int GetPlayerPed(int _player) + public uint GetPlayerPed(IPlayer player) => GetPlayerPed(player.ScriptId); + public uint GetPlayerPed(uint _player) { unsafe { - if (fn__getPlayerPed == null) fn__getPlayerPed = (delegate* unmanaged[Cdecl]) funcTable[0x43A66C31C68491C0UL]; + if (fn__getPlayerPed == null) fn__getPlayerPed = (delegate* unmanaged[Cdecl]) funcTable[0x43A66C31C68491C0UL]; var success = false; var result = fn__getPlayerPed(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -82823,11 +82810,11 @@ public int GetPlayerPed(int _player) } } - public int GetPlayerPedScriptIndex(IPlayer player) => GetPlayerPedScriptIndex(player.ScriptId); - public int GetPlayerPedScriptIndex(int _player) + public uint GetPlayerPedScriptIndex(IPlayer player) => GetPlayerPedScriptIndex(player.ScriptId); + public uint GetPlayerPedScriptIndex(uint _player) { unsafe { - if (fn__getPlayerPedScriptIndex == null) fn__getPlayerPedScriptIndex = (delegate* unmanaged[Cdecl]) funcTable[0x50FAC3A3E030A6E1UL]; + if (fn__getPlayerPedScriptIndex == null) fn__getPlayerPedScriptIndex = (delegate* unmanaged[Cdecl]) funcTable[0x50FAC3A3E030A6E1UL]; var success = false; var result = fn__getPlayerPedScriptIndex(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -82836,23 +82823,23 @@ public int GetPlayerPedScriptIndex(int _player) } public void SetPlayerModel(IPlayer player, uint model) => SetPlayerModel(player.ScriptId, model); - public void SetPlayerModel(int _player, uint _model) + public void SetPlayerModel(uint _player, uint _model) { unsafe { - if (fn__setPlayerModel == null) fn__setPlayerModel = (delegate* unmanaged[Cdecl]) funcTable[0x00A1CADD00108836UL]; + if (fn__setPlayerModel == null) fn__setPlayerModel = (delegate* unmanaged[Cdecl]) funcTable[0x00A1CADD00108836UL]; var success = false; fn__setPlayerModel(&success, _player, _model); if (!success) throw new Exception("Native execution failed"); } } - public void ChangePlayerPed(IPlayer player, int ped, bool p2, bool resetDamage) => ChangePlayerPed(player.ScriptId, ped, p2, resetDamage); - public void ChangePlayerPed(int player, IPlayer ped, bool p2, bool resetDamage) => ChangePlayerPed(player, ped.ScriptId, p2, resetDamage); + public void ChangePlayerPed(IPlayer player, uint ped, bool p2, bool resetDamage) => ChangePlayerPed(player.ScriptId, ped, p2, resetDamage); + public void ChangePlayerPed(uint player, IPlayer ped, bool p2, bool resetDamage) => ChangePlayerPed(player, ped.ScriptId, p2, resetDamage); public void ChangePlayerPed(IPlayer player, IPlayer ped, bool p2, bool resetDamage) => ChangePlayerPed(player.ScriptId, ped.ScriptId, p2, resetDamage); - public void ChangePlayerPed(int _player, int _ped, bool _p2, bool _resetDamage) + public void ChangePlayerPed(uint _player, uint _ped, bool _p2, bool _resetDamage) { unsafe { - if (fn__changePlayerPed == null) fn__changePlayerPed = (delegate* unmanaged[Cdecl]) funcTable[0x048189FAC643DEEEUL]; + if (fn__changePlayerPed == null) fn__changePlayerPed = (delegate* unmanaged[Cdecl]) funcTable[0x048189FAC643DEEEUL]; var success = false; fn__changePlayerPed(&success, _player, _ped, (byte) (_p2 ? 1 : 0), (byte) (_resetDamage ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -82860,10 +82847,10 @@ public void ChangePlayerPed(int _player, int _ped, bool _p2, bool _resetDamage) } public void GetPlayerRgbColour(IPlayer player, ref int r, ref int g, ref int b) => GetPlayerRgbColour(player.ScriptId, ref r, ref g, ref b); - public void GetPlayerRgbColour(int _player, ref int _r, ref int _g, ref int _b) + public void GetPlayerRgbColour(uint _player, ref int _r, ref int _g, ref int _b) { unsafe { - if (fn__getPlayerRgbColour == null) fn__getPlayerRgbColour = (delegate* unmanaged[Cdecl]) funcTable[0xE902EF951DCE178FUL]; + if (fn__getPlayerRgbColour == null) fn__getPlayerRgbColour = (delegate* unmanaged[Cdecl]) funcTable[0xE902EF951DCE178FUL]; var success = false; var ref_r = _r; var ref_g = _g; @@ -82888,10 +82875,10 @@ public int GetNumberOfPlayers() } public int GetPlayerTeam(IPlayer player) => GetPlayerTeam(player.ScriptId); - public int GetPlayerTeam(int _player) + public int GetPlayerTeam(uint _player) { unsafe { - if (fn__getPlayerTeam == null) fn__getPlayerTeam = (delegate* unmanaged[Cdecl]) funcTable[0x37039302F4E0A008UL]; + if (fn__getPlayerTeam == null) fn__getPlayerTeam = (delegate* unmanaged[Cdecl]) funcTable[0x37039302F4E0A008UL]; var success = false; var result = fn__getPlayerTeam(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -82900,10 +82887,10 @@ public int GetPlayerTeam(int _player) } public void SetPlayerTeam(IPlayer player, int team) => SetPlayerTeam(player.ScriptId, team); - public void SetPlayerTeam(int _player, int _team) + public void SetPlayerTeam(uint _player, int _team) { unsafe { - if (fn__setPlayerTeam == null) fn__setPlayerTeam = (delegate* unmanaged[Cdecl]) funcTable[0x0299FA38396A4940UL]; + if (fn__setPlayerTeam == null) fn__setPlayerTeam = (delegate* unmanaged[Cdecl]) funcTable[0x0299FA38396A4940UL]; var success = false; fn__setPlayerTeam(&success, _player, _team); if (!success) throw new Exception("Native execution failed"); @@ -82922,24 +82909,24 @@ public int GetNumberOfPlayersInTeam(int _team) } public string GetPlayerName(IPlayer player) => GetPlayerName(player.ScriptId); - public string GetPlayerName(int _player) + public string GetPlayerName(uint _player) { unsafe { - if (fn__getPlayerName == null) fn__getPlayerName = (delegate* unmanaged[Cdecl]) funcTable[0x6D0DE6A7B5DA71F8UL]; + if (fn__getPlayerName == null) fn__getPlayerName = (delegate* unmanaged[Cdecl]) funcTable[0x6D0DE6A7B5DA71F8UL]; var success = false; var result = fn__getPlayerName(&success, _player); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } public float GetWantedLevelRadius(IPlayer player) => GetWantedLevelRadius(player.ScriptId); - public float GetWantedLevelRadius(int _player) + public float GetWantedLevelRadius(uint _player) { unsafe { - if (fn__getWantedLevelRadius == null) fn__getWantedLevelRadius = (delegate* unmanaged[Cdecl]) funcTable[0x085DEB493BE80812UL]; + if (fn__getWantedLevelRadius == null) fn__getWantedLevelRadius = (delegate* unmanaged[Cdecl]) funcTable[0x085DEB493BE80812UL]; var success = false; var result = fn__getWantedLevelRadius(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -82948,10 +82935,10 @@ public float GetWantedLevelRadius(int _player) } public Vector3 GetPlayerWantedCentrePosition(IPlayer player) => GetPlayerWantedCentrePosition(player.ScriptId); - public Vector3 GetPlayerWantedCentrePosition(int _player) + public Vector3 GetPlayerWantedCentrePosition(uint _player) { unsafe { - if (fn__getPlayerWantedCentrePosition == null) fn__getPlayerWantedCentrePosition = (delegate* unmanaged[Cdecl]) funcTable[0x0C92BA89F1AF26F8UL]; + if (fn__getPlayerWantedCentrePosition == null) fn__getPlayerWantedCentrePosition = (delegate* unmanaged[Cdecl]) funcTable[0x0C92BA89F1AF26F8UL]; var success = false; var result = fn__getPlayerWantedCentrePosition(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -82960,10 +82947,10 @@ public Vector3 GetPlayerWantedCentrePosition(int _player) } public void SetPlayerWantedCentrePosition(IPlayer player, ref Vector3 position, bool p2, bool p3) => SetPlayerWantedCentrePosition(player.ScriptId, ref position, p2, p3); - public void SetPlayerWantedCentrePosition(int _player, ref Vector3 _position, bool _p2, bool _p3) + public void SetPlayerWantedCentrePosition(uint _player, ref Vector3 _position, bool _p2, bool _p3) { unsafe { - if (fn__setPlayerWantedCentrePosition == null) fn__setPlayerWantedCentrePosition = (delegate* unmanaged[Cdecl]) funcTable[0x520E541A97A13354UL]; + if (fn__setPlayerWantedCentrePosition == null) fn__setPlayerWantedCentrePosition = (delegate* unmanaged[Cdecl]) funcTable[0x520E541A97A13354UL]; var success = false; var ref_position = _position; fn__setPlayerWantedCentrePosition(&success, _player, &ref_position, (byte) (_p2 ? 1 : 0), (byte) (_p3 ? 1 : 0)); @@ -82984,10 +82971,10 @@ public int GetWantedLevelThreshold(int _wantedLevel) } public void SetPlayerWantedLevel(IPlayer player, int wantedLevel, bool disableNoMission) => SetPlayerWantedLevel(player.ScriptId, wantedLevel, disableNoMission); - public void SetPlayerWantedLevel(int _player, int _wantedLevel, bool _disableNoMission) + public void SetPlayerWantedLevel(uint _player, int _wantedLevel, bool _disableNoMission) { unsafe { - if (fn__setPlayerWantedLevel == null) fn__setPlayerWantedLevel = (delegate* unmanaged[Cdecl]) funcTable[0x39FF19C64EF7DA5BUL]; + if (fn__setPlayerWantedLevel == null) fn__setPlayerWantedLevel = (delegate* unmanaged[Cdecl]) funcTable[0x39FF19C64EF7DA5BUL]; var success = false; fn__setPlayerWantedLevel(&success, _player, _wantedLevel, (byte) (_disableNoMission ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -82995,10 +82982,10 @@ public void SetPlayerWantedLevel(int _player, int _wantedLevel, bool _disableNoM } public void SetPlayerWantedLevelNoDrop(IPlayer player, int wantedLevel, bool p2) => SetPlayerWantedLevelNoDrop(player.ScriptId, wantedLevel, p2); - public void SetPlayerWantedLevelNoDrop(int _player, int _wantedLevel, bool _p2) + public void SetPlayerWantedLevelNoDrop(uint _player, int _wantedLevel, bool _p2) { unsafe { - if (fn__setPlayerWantedLevelNoDrop == null) fn__setPlayerWantedLevelNoDrop = (delegate* unmanaged[Cdecl]) funcTable[0x340E61DE7F471565UL]; + if (fn__setPlayerWantedLevelNoDrop == null) fn__setPlayerWantedLevelNoDrop = (delegate* unmanaged[Cdecl]) funcTable[0x340E61DE7F471565UL]; var success = false; fn__setPlayerWantedLevelNoDrop(&success, _player, _wantedLevel, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -83006,10 +82993,10 @@ public void SetPlayerWantedLevelNoDrop(int _player, int _wantedLevel, bool _p2) } public void SetPlayerWantedLevelNow(IPlayer player, bool p1) => SetPlayerWantedLevelNow(player.ScriptId, p1); - public void SetPlayerWantedLevelNow(int _player, bool _p1) + public void SetPlayerWantedLevelNow(uint _player, bool _p1) { unsafe { - if (fn__setPlayerWantedLevelNow == null) fn__setPlayerWantedLevelNow = (delegate* unmanaged[Cdecl]) funcTable[0xE0A7D1E497FFCD6FUL]; + if (fn__setPlayerWantedLevelNow == null) fn__setPlayerWantedLevelNow = (delegate* unmanaged[Cdecl]) funcTable[0xE0A7D1E497FFCD6FUL]; var success = false; fn__setPlayerWantedLevelNow(&success, _player, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -83017,10 +83004,10 @@ public void SetPlayerWantedLevelNow(int _player, bool _p1) } public bool ArePlayerFlashingStarsAboutToDrop(IPlayer player) => ArePlayerFlashingStarsAboutToDrop(player.ScriptId); - public bool ArePlayerFlashingStarsAboutToDrop(int _player) + public bool ArePlayerFlashingStarsAboutToDrop(uint _player) { unsafe { - if (fn__arePlayerFlashingStarsAboutToDrop == null) fn__arePlayerFlashingStarsAboutToDrop = (delegate* unmanaged[Cdecl]) funcTable[0xAFAF86043E5874E9UL]; + if (fn__arePlayerFlashingStarsAboutToDrop == null) fn__arePlayerFlashingStarsAboutToDrop = (delegate* unmanaged[Cdecl]) funcTable[0xAFAF86043E5874E9UL]; var success = false; var result = fn__arePlayerFlashingStarsAboutToDrop(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83029,10 +83016,10 @@ public bool ArePlayerFlashingStarsAboutToDrop(int _player) } public bool ArePlayerStarsGreyedOut(IPlayer player) => ArePlayerStarsGreyedOut(player.ScriptId); - public bool ArePlayerStarsGreyedOut(int _player) + public bool ArePlayerStarsGreyedOut(uint _player) { unsafe { - if (fn__arePlayerStarsGreyedOut == null) fn__arePlayerStarsGreyedOut = (delegate* unmanaged[Cdecl]) funcTable[0x0A6EB355EE14A2DBUL]; + if (fn__arePlayerStarsGreyedOut == null) fn__arePlayerStarsGreyedOut = (delegate* unmanaged[Cdecl]) funcTable[0x0A6EB355EE14A2DBUL]; var success = false; var result = fn__arePlayerStarsGreyedOut(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83041,10 +83028,10 @@ public bool ArePlayerStarsGreyedOut(int _player) } public bool IsWantedAndHasBeenSeenByCops(IPlayer player) => IsWantedAndHasBeenSeenByCops(player.ScriptId); - public bool IsWantedAndHasBeenSeenByCops(int _player) + public bool IsWantedAndHasBeenSeenByCops(uint _player) { unsafe { - if (fn__isWantedAndHasBeenSeenByCops == null) fn__isWantedAndHasBeenSeenByCops = (delegate* unmanaged[Cdecl]) funcTable[0x7E07C78925D5FD96UL]; + if (fn__isWantedAndHasBeenSeenByCops == null) fn__isWantedAndHasBeenSeenByCops = (delegate* unmanaged[Cdecl]) funcTable[0x7E07C78925D5FD96UL]; var success = false; var result = fn__isWantedAndHasBeenSeenByCops(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83053,10 +83040,10 @@ public bool IsWantedAndHasBeenSeenByCops(int _player) } public void SetDispatchCopsForPlayer(IPlayer player, bool toggle) => SetDispatchCopsForPlayer(player.ScriptId, toggle); - public void SetDispatchCopsForPlayer(int _player, bool _toggle) + public void SetDispatchCopsForPlayer(uint _player, bool _toggle) { unsafe { - if (fn__setDispatchCopsForPlayer == null) fn__setDispatchCopsForPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xDB172424876553F4UL]; + if (fn__setDispatchCopsForPlayer == null) fn__setDispatchCopsForPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xDB172424876553F4UL]; var success = false; fn__setDispatchCopsForPlayer(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -83064,10 +83051,10 @@ public void SetDispatchCopsForPlayer(int _player, bool _toggle) } public bool IsPlayerWantedLevelGreater(IPlayer player, int wantedLevel) => IsPlayerWantedLevelGreater(player.ScriptId, wantedLevel); - public bool IsPlayerWantedLevelGreater(int _player, int _wantedLevel) + public bool IsPlayerWantedLevelGreater(uint _player, int _wantedLevel) { unsafe { - if (fn__isPlayerWantedLevelGreater == null) fn__isPlayerWantedLevelGreater = (delegate* unmanaged[Cdecl]) funcTable[0x238DB2A2C23EE9EFUL]; + if (fn__isPlayerWantedLevelGreater == null) fn__isPlayerWantedLevelGreater = (delegate* unmanaged[Cdecl]) funcTable[0x238DB2A2C23EE9EFUL]; var success = false; var result = fn__isPlayerWantedLevelGreater(&success, _player, _wantedLevel); if (!success) throw new Exception("Native execution failed"); @@ -83076,10 +83063,10 @@ public bool IsPlayerWantedLevelGreater(int _player, int _wantedLevel) } public void ClearPlayerWantedLevel(IPlayer player) => ClearPlayerWantedLevel(player.ScriptId); - public void ClearPlayerWantedLevel(int _player) + public void ClearPlayerWantedLevel(uint _player) { unsafe { - if (fn__clearPlayerWantedLevel == null) fn__clearPlayerWantedLevel = (delegate* unmanaged[Cdecl]) funcTable[0xB302540597885499UL]; + if (fn__clearPlayerWantedLevel == null) fn__clearPlayerWantedLevel = (delegate* unmanaged[Cdecl]) funcTable[0xB302540597885499UL]; var success = false; fn__clearPlayerWantedLevel(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83087,10 +83074,10 @@ public void ClearPlayerWantedLevel(int _player) } public bool IsPlayerDead(IPlayer player) => IsPlayerDead(player.ScriptId); - public bool IsPlayerDead(int _player) + public bool IsPlayerDead(uint _player) { unsafe { - if (fn__isPlayerDead == null) fn__isPlayerDead = (delegate* unmanaged[Cdecl]) funcTable[0x424D4687FA1E5652UL]; + if (fn__isPlayerDead == null) fn__isPlayerDead = (delegate* unmanaged[Cdecl]) funcTable[0x424D4687FA1E5652UL]; var success = false; var result = fn__isPlayerDead(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83099,10 +83086,10 @@ public bool IsPlayerDead(int _player) } public bool IsPlayerPressingHorn(IPlayer player) => IsPlayerPressingHorn(player.ScriptId); - public bool IsPlayerPressingHorn(int _player) + public bool IsPlayerPressingHorn(uint _player) { unsafe { - if (fn__isPlayerPressingHorn == null) fn__isPlayerPressingHorn = (delegate* unmanaged[Cdecl]) funcTable[0xFA1E2BF8B10598F9UL]; + if (fn__isPlayerPressingHorn == null) fn__isPlayerPressingHorn = (delegate* unmanaged[Cdecl]) funcTable[0xFA1E2BF8B10598F9UL]; var success = false; var result = fn__isPlayerPressingHorn(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83111,10 +83098,10 @@ public bool IsPlayerPressingHorn(int _player) } public void SetPlayerControl(IPlayer player, bool bHasControl, int flags) => SetPlayerControl(player.ScriptId, bHasControl, flags); - public void SetPlayerControl(int _player, bool _bHasControl, int _flags) + public void SetPlayerControl(uint _player, bool _bHasControl, int _flags) { unsafe { - if (fn__setPlayerControl == null) fn__setPlayerControl = (delegate* unmanaged[Cdecl]) funcTable[0x8D32347D6D4C40A2UL]; + if (fn__setPlayerControl == null) fn__setPlayerControl = (delegate* unmanaged[Cdecl]) funcTable[0x8D32347D6D4C40A2UL]; var success = false; fn__setPlayerControl(&success, _player, (byte) (_bHasControl ? 1 : 0), _flags); if (!success) throw new Exception("Native execution failed"); @@ -83122,10 +83109,10 @@ public void SetPlayerControl(int _player, bool _bHasControl, int _flags) } public int GetPlayerWantedLevel(IPlayer player) => GetPlayerWantedLevel(player.ScriptId); - public int GetPlayerWantedLevel(int _player) + public int GetPlayerWantedLevel(uint _player) { unsafe { - if (fn__getPlayerWantedLevel == null) fn__getPlayerWantedLevel = (delegate* unmanaged[Cdecl]) funcTable[0xE28E54788CE8F12DUL]; + if (fn__getPlayerWantedLevel == null) fn__getPlayerWantedLevel = (delegate* unmanaged[Cdecl]) funcTable[0xE28E54788CE8F12DUL]; var success = false; var result = fn__getPlayerWantedLevel(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83154,10 +83141,10 @@ public void SetPoliceRadarBlips(bool _toggle) } public void SetPoliceIgnorePlayer(IPlayer player, bool toggle) => SetPoliceIgnorePlayer(player.ScriptId, toggle); - public void SetPoliceIgnorePlayer(int _player, bool _toggle) + public void SetPoliceIgnorePlayer(uint _player, bool _toggle) { unsafe { - if (fn__setPoliceIgnorePlayer == null) fn__setPoliceIgnorePlayer = (delegate* unmanaged[Cdecl]) funcTable[0x32C62AA929C2DA6AUL]; + if (fn__setPoliceIgnorePlayer == null) fn__setPoliceIgnorePlayer = (delegate* unmanaged[Cdecl]) funcTable[0x32C62AA929C2DA6AUL]; var success = false; fn__setPoliceIgnorePlayer(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -83165,10 +83152,10 @@ public void SetPoliceIgnorePlayer(int _player, bool _toggle) } public bool IsPlayerPlaying(IPlayer player) => IsPlayerPlaying(player.ScriptId); - public bool IsPlayerPlaying(int _player) + public bool IsPlayerPlaying(uint _player) { unsafe { - if (fn__isPlayerPlaying == null) fn__isPlayerPlaying = (delegate* unmanaged[Cdecl]) funcTable[0x5E9564D8246B909AUL]; + if (fn__isPlayerPlaying == null) fn__isPlayerPlaying = (delegate* unmanaged[Cdecl]) funcTable[0x5E9564D8246B909AUL]; var success = false; var result = fn__isPlayerPlaying(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83177,10 +83164,10 @@ public bool IsPlayerPlaying(int _player) } public void SetEveryoneIgnorePlayer(IPlayer player, bool toggle) => SetEveryoneIgnorePlayer(player.ScriptId, toggle); - public void SetEveryoneIgnorePlayer(int _player, bool _toggle) + public void SetEveryoneIgnorePlayer(uint _player, bool _toggle) { unsafe { - if (fn__setEveryoneIgnorePlayer == null) fn__setEveryoneIgnorePlayer = (delegate* unmanaged[Cdecl]) funcTable[0x8EEDA153AD141BA4UL]; + if (fn__setEveryoneIgnorePlayer == null) fn__setEveryoneIgnorePlayer = (delegate* unmanaged[Cdecl]) funcTable[0x8EEDA153AD141BA4UL]; var success = false; fn__setEveryoneIgnorePlayer(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -83188,10 +83175,10 @@ public void SetEveryoneIgnorePlayer(int _player, bool _toggle) } public void SetAllRandomPedsFlee(IPlayer player, bool toggle) => SetAllRandomPedsFlee(player.ScriptId, toggle); - public void SetAllRandomPedsFlee(int _player, bool _toggle) + public void SetAllRandomPedsFlee(uint _player, bool _toggle) { unsafe { - if (fn__setAllRandomPedsFlee == null) fn__setAllRandomPedsFlee = (delegate* unmanaged[Cdecl]) funcTable[0x056E0FE8534C2949UL]; + if (fn__setAllRandomPedsFlee == null) fn__setAllRandomPedsFlee = (delegate* unmanaged[Cdecl]) funcTable[0x056E0FE8534C2949UL]; var success = false; fn__setAllRandomPedsFlee(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -83199,10 +83186,10 @@ public void SetAllRandomPedsFlee(int _player, bool _toggle) } public void SetAllRandomPedsFleeThisFrame(IPlayer player) => SetAllRandomPedsFleeThisFrame(player.ScriptId); - public void SetAllRandomPedsFleeThisFrame(int _player) + public void SetAllRandomPedsFleeThisFrame(uint _player) { unsafe { - if (fn__setAllRandomPedsFleeThisFrame == null) fn__setAllRandomPedsFleeThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x471D2FF42A94B4F2UL]; + if (fn__setAllRandomPedsFleeThisFrame == null) fn__setAllRandomPedsFleeThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x471D2FF42A94B4F2UL]; var success = false; fn__setAllRandomPedsFleeThisFrame(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83210,10 +83197,10 @@ public void SetAllRandomPedsFleeThisFrame(int _player) } public void SetAllNeutralRandomPedsFlee(IPlayer player, bool toggle) => SetAllNeutralRandomPedsFlee(player.ScriptId, toggle); - public void SetAllNeutralRandomPedsFlee(int _player, bool _toggle) + public void SetAllNeutralRandomPedsFlee(uint _player, bool _toggle) { unsafe { - if (fn__setAllNeutralRandomPedsFlee == null) fn__setAllNeutralRandomPedsFlee = (delegate* unmanaged[Cdecl]) funcTable[0xDE45D1A1EF45EE61UL]; + if (fn__setAllNeutralRandomPedsFlee == null) fn__setAllNeutralRandomPedsFlee = (delegate* unmanaged[Cdecl]) funcTable[0xDE45D1A1EF45EE61UL]; var success = false; fn__setAllNeutralRandomPedsFlee(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -83221,10 +83208,10 @@ public void SetAllNeutralRandomPedsFlee(int _player, bool _toggle) } public void SetAllNeutralRandomPedsFleeThisFrame(IPlayer player) => SetAllNeutralRandomPedsFleeThisFrame(player.ScriptId); - public void SetAllNeutralRandomPedsFleeThisFrame(int _player) + public void SetAllNeutralRandomPedsFleeThisFrame(uint _player) { unsafe { - if (fn__setAllNeutralRandomPedsFleeThisFrame == null) fn__setAllNeutralRandomPedsFleeThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0xC3376F42B1FACCC6UL]; + if (fn__setAllNeutralRandomPedsFleeThisFrame == null) fn__setAllNeutralRandomPedsFleeThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0xC3376F42B1FACCC6UL]; var success = false; fn__setAllNeutralRandomPedsFleeThisFrame(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83232,10 +83219,10 @@ public void SetAllNeutralRandomPedsFleeThisFrame(int _player) } public void SetLawPedsCanAttackNonWantedPlayerThisFrame(IPlayer player) => SetLawPedsCanAttackNonWantedPlayerThisFrame(player.ScriptId); - public void SetLawPedsCanAttackNonWantedPlayerThisFrame(int _player) + public void SetLawPedsCanAttackNonWantedPlayerThisFrame(uint _player) { unsafe { - if (fn__setLawPedsCanAttackNonWantedPlayerThisFrame == null) fn__setLawPedsCanAttackNonWantedPlayerThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0xFAC75988A7D078D3UL]; + if (fn__setLawPedsCanAttackNonWantedPlayerThisFrame == null) fn__setLawPedsCanAttackNonWantedPlayerThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0xFAC75988A7D078D3UL]; var success = false; fn__setLawPedsCanAttackNonWantedPlayerThisFrame(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83243,10 +83230,10 @@ public void SetLawPedsCanAttackNonWantedPlayerThisFrame(int _player) } public void SetIgnoreLowPriorityShockingEvents(IPlayer player, bool toggle) => SetIgnoreLowPriorityShockingEvents(player.ScriptId, toggle); - public void SetIgnoreLowPriorityShockingEvents(int _player, bool _toggle) + public void SetIgnoreLowPriorityShockingEvents(uint _player, bool _toggle) { unsafe { - if (fn__setIgnoreLowPriorityShockingEvents == null) fn__setIgnoreLowPriorityShockingEvents = (delegate* unmanaged[Cdecl]) funcTable[0x596976B02B6B5700UL]; + if (fn__setIgnoreLowPriorityShockingEvents == null) fn__setIgnoreLowPriorityShockingEvents = (delegate* unmanaged[Cdecl]) funcTable[0x596976B02B6B5700UL]; var success = false; fn__setIgnoreLowPriorityShockingEvents(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -83264,10 +83251,10 @@ public void SetWantedLevelMultiplier(float _multiplier) } public void SetWantedLevelDifficulty(IPlayer player, float difficulty) => SetWantedLevelDifficulty(player.ScriptId, difficulty); - public void SetWantedLevelDifficulty(int _player, float _difficulty) + public void SetWantedLevelDifficulty(uint _player, float _difficulty) { unsafe { - if (fn__setWantedLevelDifficulty == null) fn__setWantedLevelDifficulty = (delegate* unmanaged[Cdecl]) funcTable[0x9B0BB33B04405E7AUL]; + if (fn__setWantedLevelDifficulty == null) fn__setWantedLevelDifficulty = (delegate* unmanaged[Cdecl]) funcTable[0x9B0BB33B04405E7AUL]; var success = false; fn__setWantedLevelDifficulty(&success, _player, _difficulty); if (!success) throw new Exception("Native execution failed"); @@ -83275,10 +83262,10 @@ public void SetWantedLevelDifficulty(int _player, float _difficulty) } public void ResetWantedLevelDifficulty(IPlayer player) => ResetWantedLevelDifficulty(player.ScriptId); - public void ResetWantedLevelDifficulty(int _player) + public void ResetWantedLevelDifficulty(uint _player) { unsafe { - if (fn__resetWantedLevelDifficulty == null) fn__resetWantedLevelDifficulty = (delegate* unmanaged[Cdecl]) funcTable[0xB9D0DD990DC141DDUL]; + if (fn__resetWantedLevelDifficulty == null) fn__resetWantedLevelDifficulty = (delegate* unmanaged[Cdecl]) funcTable[0xB9D0DD990DC141DDUL]; var success = false; fn__resetWantedLevelDifficulty(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83297,10 +83284,10 @@ public int GetWantedLevelTimeToEscape() } public void SetWantedLevelHiddenEscapeTime(IPlayer player, int wantedLevel, int lossTime) => SetWantedLevelHiddenEscapeTime(player.ScriptId, wantedLevel, lossTime); - public void SetWantedLevelHiddenEscapeTime(int _player, int _wantedLevel, int _lossTime) + public void SetWantedLevelHiddenEscapeTime(uint _player, int _wantedLevel, int _lossTime) { unsafe { - if (fn__setWantedLevelHiddenEscapeTime == null) fn__setWantedLevelHiddenEscapeTime = (delegate* unmanaged[Cdecl]) funcTable[0x49B856B1360C47C7UL]; + if (fn__setWantedLevelHiddenEscapeTime == null) fn__setWantedLevelHiddenEscapeTime = (delegate* unmanaged[Cdecl]) funcTable[0x49B856B1360C47C7UL]; var success = false; fn__setWantedLevelHiddenEscapeTime(&success, _player, _wantedLevel, _lossTime); if (!success) throw new Exception("Native execution failed"); @@ -83308,10 +83295,10 @@ public void SetWantedLevelHiddenEscapeTime(int _player, int _wantedLevel, int _l } public void ResetWantedLevelHiddenEscapeTime(IPlayer player) => ResetWantedLevelHiddenEscapeTime(player.ScriptId); - public void ResetWantedLevelHiddenEscapeTime(int _player) + public void ResetWantedLevelHiddenEscapeTime(uint _player) { unsafe { - if (fn__resetWantedLevelHiddenEscapeTime == null) fn__resetWantedLevelHiddenEscapeTime = (delegate* unmanaged[Cdecl]) funcTable[0x823EC8E82BA45986UL]; + if (fn__resetWantedLevelHiddenEscapeTime == null) fn__resetWantedLevelHiddenEscapeTime = (delegate* unmanaged[Cdecl]) funcTable[0x823EC8E82BA45986UL]; var success = false; fn__resetWantedLevelHiddenEscapeTime(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83329,10 +83316,10 @@ public void StartFiringAmnesty(int _duration) } public void ReportCrime(IPlayer player, int crimeType, int wantedLvlThresh) => ReportCrime(player.ScriptId, crimeType, wantedLvlThresh); - public void ReportCrime(int _player, int _crimeType, int _wantedLvlThresh) + public void ReportCrime(uint _player, int _crimeType, int _wantedLvlThresh) { unsafe { - if (fn__reportCrime == null) fn__reportCrime = (delegate* unmanaged[Cdecl]) funcTable[0xE9B09589827545E7UL]; + if (fn__reportCrime == null) fn__reportCrime = (delegate* unmanaged[Cdecl]) funcTable[0xE9B09589827545E7UL]; var success = false; fn__reportCrime(&success, _player, _crimeType, _wantedLvlThresh); if (!success) throw new Exception("Native execution failed"); @@ -83340,10 +83327,10 @@ public void ReportCrime(int _player, int _crimeType, int _wantedLvlThresh) } public void SuppressCrimeThisFrame(IPlayer player, int crimeType) => SuppressCrimeThisFrame(player.ScriptId, crimeType); - public void SuppressCrimeThisFrame(int _player, int _crimeType) + public void SuppressCrimeThisFrame(uint _player, int _crimeType) { unsafe { - if (fn__suppressCrimeThisFrame == null) fn__suppressCrimeThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x9A987297ED8BD838UL]; + if (fn__suppressCrimeThisFrame == null) fn__suppressCrimeThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x9A987297ED8BD838UL]; var success = false; fn__suppressCrimeThisFrame(&success, _player, _crimeType); if (!success) throw new Exception("Native execution failed"); @@ -83351,10 +83338,10 @@ public void SuppressCrimeThisFrame(int _player, int _crimeType) } public void UpdateWantedPositionThisFrame(IPlayer player) => UpdateWantedPositionThisFrame(player.ScriptId); - public void UpdateWantedPositionThisFrame(int _player) + public void UpdateWantedPositionThisFrame(uint _player) { unsafe { - if (fn__updateWantedPositionThisFrame == null) fn__updateWantedPositionThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0xBC9490CA15AEA8FBUL]; + if (fn__updateWantedPositionThisFrame == null) fn__updateWantedPositionThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0xBC9490CA15AEA8FBUL]; var success = false; fn__updateWantedPositionThisFrame(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83362,10 +83349,10 @@ public void UpdateWantedPositionThisFrame(int _player) } public void SuppressLosingWantedLevelIfHiddenThisFrame(IPlayer player) => SuppressLosingWantedLevelIfHiddenThisFrame(player.ScriptId); - public void SuppressLosingWantedLevelIfHiddenThisFrame(int _player) + public void SuppressLosingWantedLevelIfHiddenThisFrame(uint _player) { unsafe { - if (fn__suppressLosingWantedLevelIfHiddenThisFrame == null) fn__suppressLosingWantedLevelIfHiddenThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x4669B3ED80F24B4EUL]; + if (fn__suppressLosingWantedLevelIfHiddenThisFrame == null) fn__suppressLosingWantedLevelIfHiddenThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x4669B3ED80F24B4EUL]; var success = false; fn__suppressLosingWantedLevelIfHiddenThisFrame(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83373,10 +83360,10 @@ public void SuppressLosingWantedLevelIfHiddenThisFrame(int _player) } public void AllowEvasionHudIfDisablingHiddenEvasionThisFrame(IPlayer player, int p1) => AllowEvasionHudIfDisablingHiddenEvasionThisFrame(player.ScriptId, p1); - public void AllowEvasionHudIfDisablingHiddenEvasionThisFrame(int _player, int _p1) + public void AllowEvasionHudIfDisablingHiddenEvasionThisFrame(uint _player, int _p1) { unsafe { - if (fn__allowEvasionHudIfDisablingHiddenEvasionThisFrame == null) fn__allowEvasionHudIfDisablingHiddenEvasionThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x2F41A3BAE005E5FAUL]; + if (fn__allowEvasionHudIfDisablingHiddenEvasionThisFrame == null) fn__allowEvasionHudIfDisablingHiddenEvasionThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x2F41A3BAE005E5FAUL]; var success = false; fn__allowEvasionHudIfDisablingHiddenEvasionThisFrame(&success, _player, _p1); if (!success) throw new Exception("Native execution failed"); @@ -83384,10 +83371,10 @@ public void AllowEvasionHudIfDisablingHiddenEvasionThisFrame(int _player, int _p } public void ForceStartHiddenEvasion(IPlayer player) => ForceStartHiddenEvasion(player.ScriptId); - public void ForceStartHiddenEvasion(int _player) + public void ForceStartHiddenEvasion(uint _player) { unsafe { - if (fn__forceStartHiddenEvasion == null) fn__forceStartHiddenEvasion = (delegate* unmanaged[Cdecl]) funcTable[0xAD73CE5A09E42D12UL]; + if (fn__forceStartHiddenEvasion == null) fn__forceStartHiddenEvasion = (delegate* unmanaged[Cdecl]) funcTable[0xAD73CE5A09E42D12UL]; var success = false; fn__forceStartHiddenEvasion(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83395,10 +83382,10 @@ public void ForceStartHiddenEvasion(int _player) } public void SuppressWitnessesCallingPoliceThisFrame(IPlayer player) => SuppressWitnessesCallingPoliceThisFrame(player.ScriptId); - public void SuppressWitnessesCallingPoliceThisFrame(int _player) + public void SuppressWitnessesCallingPoliceThisFrame(uint _player) { unsafe { - if (fn__suppressWitnessesCallingPoliceThisFrame == null) fn__suppressWitnessesCallingPoliceThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x36F1B38855F2A8DFUL]; + if (fn__suppressWitnessesCallingPoliceThisFrame == null) fn__suppressWitnessesCallingPoliceThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x36F1B38855F2A8DFUL]; var success = false; fn__suppressWitnessesCallingPoliceThisFrame(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83406,10 +83393,10 @@ public void SuppressWitnessesCallingPoliceThisFrame(int _player) } public void ReportPoliceSpottedPlayer(IPlayer player) => ReportPoliceSpottedPlayer(player.ScriptId); - public void ReportPoliceSpottedPlayer(int _player) + public void ReportPoliceSpottedPlayer(uint _player) { unsafe { - if (fn__reportPoliceSpottedPlayer == null) fn__reportPoliceSpottedPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xDC64D2C53493ED12UL]; + if (fn__reportPoliceSpottedPlayer == null) fn__reportPoliceSpottedPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xDC64D2C53493ED12UL]; var success = false; fn__reportPoliceSpottedPlayer(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83437,10 +83424,10 @@ public void ResetLawResponseDelayOverride() } public bool CanPlayerStartMission(IPlayer player) => CanPlayerStartMission(player.ScriptId); - public bool CanPlayerStartMission(int _player) + public bool CanPlayerStartMission(uint _player) { unsafe { - if (fn__canPlayerStartMission == null) fn__canPlayerStartMission = (delegate* unmanaged[Cdecl]) funcTable[0xDE7465A27D403C06UL]; + if (fn__canPlayerStartMission == null) fn__canPlayerStartMission = (delegate* unmanaged[Cdecl]) funcTable[0xDE7465A27D403C06UL]; var success = false; var result = fn__canPlayerStartMission(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83449,10 +83436,10 @@ public bool CanPlayerStartMission(int _player) } public bool IsPlayerReadyForCutscene(IPlayer player) => IsPlayerReadyForCutscene(player.ScriptId); - public bool IsPlayerReadyForCutscene(int _player) + public bool IsPlayerReadyForCutscene(uint _player) { unsafe { - if (fn__isPlayerReadyForCutscene == null) fn__isPlayerReadyForCutscene = (delegate* unmanaged[Cdecl]) funcTable[0x908CBECC2CAA3690UL]; + if (fn__isPlayerReadyForCutscene == null) fn__isPlayerReadyForCutscene = (delegate* unmanaged[Cdecl]) funcTable[0x908CBECC2CAA3690UL]; var success = false; var result = fn__isPlayerReadyForCutscene(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83460,13 +83447,13 @@ public bool IsPlayerReadyForCutscene(int _player) } } - public bool IsPlayerTargettingEntity(IPlayer player, int entity) => IsPlayerTargettingEntity(player.ScriptId, entity); - public bool IsPlayerTargettingEntity(int player, IEntity entity) => IsPlayerTargettingEntity(player, entity.ScriptId); + public bool IsPlayerTargettingEntity(IPlayer player, uint entity) => IsPlayerTargettingEntity(player.ScriptId, entity); + public bool IsPlayerTargettingEntity(uint player, IEntity entity) => IsPlayerTargettingEntity(player, entity.ScriptId); public bool IsPlayerTargettingEntity(IPlayer player, IEntity entity) => IsPlayerTargettingEntity(player.ScriptId, entity.ScriptId); - public bool IsPlayerTargettingEntity(int _player, int _entity) + public bool IsPlayerTargettingEntity(uint _player, uint _entity) { unsafe { - if (fn__isPlayerTargettingEntity == null) fn__isPlayerTargettingEntity = (delegate* unmanaged[Cdecl]) funcTable[0x7912F7FC4F6264B6UL]; + if (fn__isPlayerTargettingEntity == null) fn__isPlayerTargettingEntity = (delegate* unmanaged[Cdecl]) funcTable[0x7912F7FC4F6264B6UL]; var success = false; var result = fn__isPlayerTargettingEntity(&success, _player, _entity); if (!success) throw new Exception("Native execution failed"); @@ -83474,11 +83461,11 @@ public bool IsPlayerTargettingEntity(int _player, int _entity) } } - public bool GetPlayerTargetEntity(IPlayer player, ref int entity) => GetPlayerTargetEntity(player.ScriptId, ref entity); - public bool GetPlayerTargetEntity(int _player, ref int _entity) + public bool GetPlayerTargetEntity(IPlayer player, ref uint entity) => GetPlayerTargetEntity(player.ScriptId, ref entity); + public bool GetPlayerTargetEntity(uint _player, ref uint _entity) { unsafe { - if (fn__getPlayerTargetEntity == null) fn__getPlayerTargetEntity = (delegate* unmanaged[Cdecl]) funcTable[0x13EDE1A5DBF797C9UL]; + if (fn__getPlayerTargetEntity == null) fn__getPlayerTargetEntity = (delegate* unmanaged[Cdecl]) funcTable[0x13EDE1A5DBF797C9UL]; var success = false; var ref_entity = _entity; var result = fn__getPlayerTargetEntity(&success, _player, &ref_entity); @@ -83489,10 +83476,10 @@ public bool GetPlayerTargetEntity(int _player, ref int _entity) } public bool IsPlayerFreeAiming(IPlayer player) => IsPlayerFreeAiming(player.ScriptId); - public bool IsPlayerFreeAiming(int _player) + public bool IsPlayerFreeAiming(uint _player) { unsafe { - if (fn__isPlayerFreeAiming == null) fn__isPlayerFreeAiming = (delegate* unmanaged[Cdecl]) funcTable[0x2E397FD2ECD37C87UL]; + if (fn__isPlayerFreeAiming == null) fn__isPlayerFreeAiming = (delegate* unmanaged[Cdecl]) funcTable[0x2E397FD2ECD37C87UL]; var success = false; var result = fn__isPlayerFreeAiming(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83500,13 +83487,13 @@ public bool IsPlayerFreeAiming(int _player) } } - public bool IsPlayerFreeAimingAtEntity(IPlayer player, int entity) => IsPlayerFreeAimingAtEntity(player.ScriptId, entity); - public bool IsPlayerFreeAimingAtEntity(int player, IEntity entity) => IsPlayerFreeAimingAtEntity(player, entity.ScriptId); + public bool IsPlayerFreeAimingAtEntity(IPlayer player, uint entity) => IsPlayerFreeAimingAtEntity(player.ScriptId, entity); + public bool IsPlayerFreeAimingAtEntity(uint player, IEntity entity) => IsPlayerFreeAimingAtEntity(player, entity.ScriptId); public bool IsPlayerFreeAimingAtEntity(IPlayer player, IEntity entity) => IsPlayerFreeAimingAtEntity(player.ScriptId, entity.ScriptId); - public bool IsPlayerFreeAimingAtEntity(int _player, int _entity) + public bool IsPlayerFreeAimingAtEntity(uint _player, uint _entity) { unsafe { - if (fn__isPlayerFreeAimingAtEntity == null) fn__isPlayerFreeAimingAtEntity = (delegate* unmanaged[Cdecl]) funcTable[0x3C06B5C839B38F7BUL]; + if (fn__isPlayerFreeAimingAtEntity == null) fn__isPlayerFreeAimingAtEntity = (delegate* unmanaged[Cdecl]) funcTable[0x3C06B5C839B38F7BUL]; var success = false; var result = fn__isPlayerFreeAimingAtEntity(&success, _player, _entity); if (!success) throw new Exception("Native execution failed"); @@ -83514,11 +83501,11 @@ public bool IsPlayerFreeAimingAtEntity(int _player, int _entity) } } - public bool GetEntityPlayerIsFreeAimingAt(IPlayer player, ref int entity) => GetEntityPlayerIsFreeAimingAt(player.ScriptId, ref entity); - public bool GetEntityPlayerIsFreeAimingAt(int _player, ref int _entity) + public bool GetEntityPlayerIsFreeAimingAt(IPlayer player, ref uint entity) => GetEntityPlayerIsFreeAimingAt(player.ScriptId, ref entity); + public bool GetEntityPlayerIsFreeAimingAt(uint _player, ref uint _entity) { unsafe { - if (fn__getEntityPlayerIsFreeAimingAt == null) fn__getEntityPlayerIsFreeAimingAt = (delegate* unmanaged[Cdecl]) funcTable[0x2975C866E6713290UL]; + if (fn__getEntityPlayerIsFreeAimingAt == null) fn__getEntityPlayerIsFreeAimingAt = (delegate* unmanaged[Cdecl]) funcTable[0x2975C866E6713290UL]; var success = false; var ref_entity = _entity; var result = fn__getEntityPlayerIsFreeAimingAt(&success, _player, &ref_entity); @@ -83529,10 +83516,10 @@ public bool GetEntityPlayerIsFreeAimingAt(int _player, ref int _entity) } public void SetPlayerLockonRangeOverride(IPlayer player, float range) => SetPlayerLockonRangeOverride(player.ScriptId, range); - public void SetPlayerLockonRangeOverride(int _player, float _range) + public void SetPlayerLockonRangeOverride(uint _player, float _range) { unsafe { - if (fn__setPlayerLockonRangeOverride == null) fn__setPlayerLockonRangeOverride = (delegate* unmanaged[Cdecl]) funcTable[0x29961D490E5814FDUL]; + if (fn__setPlayerLockonRangeOverride == null) fn__setPlayerLockonRangeOverride = (delegate* unmanaged[Cdecl]) funcTable[0x29961D490E5814FDUL]; var success = false; fn__setPlayerLockonRangeOverride(&success, _player, _range); if (!success) throw new Exception("Native execution failed"); @@ -83540,10 +83527,10 @@ public void SetPlayerLockonRangeOverride(int _player, float _range) } public void SetPlayerCanDoDriveBy(IPlayer player, bool toggle) => SetPlayerCanDoDriveBy(player.ScriptId, toggle); - public void SetPlayerCanDoDriveBy(int _player, bool _toggle) + public void SetPlayerCanDoDriveBy(uint _player, bool _toggle) { unsafe { - if (fn__setPlayerCanDoDriveBy == null) fn__setPlayerCanDoDriveBy = (delegate* unmanaged[Cdecl]) funcTable[0x6E8834B52EC20C77UL]; + if (fn__setPlayerCanDoDriveBy == null) fn__setPlayerCanDoDriveBy = (delegate* unmanaged[Cdecl]) funcTable[0x6E8834B52EC20C77UL]; var success = false; fn__setPlayerCanDoDriveBy(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -83551,10 +83538,10 @@ public void SetPlayerCanDoDriveBy(int _player, bool _toggle) } public void SetPlayerCanBeHassledByGangs(IPlayer player, bool toggle) => SetPlayerCanBeHassledByGangs(player.ScriptId, toggle); - public void SetPlayerCanBeHassledByGangs(int _player, bool _toggle) + public void SetPlayerCanBeHassledByGangs(uint _player, bool _toggle) { unsafe { - if (fn__setPlayerCanBeHassledByGangs == null) fn__setPlayerCanBeHassledByGangs = (delegate* unmanaged[Cdecl]) funcTable[0xD5E460AD7020A246UL]; + if (fn__setPlayerCanBeHassledByGangs == null) fn__setPlayerCanBeHassledByGangs = (delegate* unmanaged[Cdecl]) funcTable[0xD5E460AD7020A246UL]; var success = false; fn__setPlayerCanBeHassledByGangs(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -83562,10 +83549,10 @@ public void SetPlayerCanBeHassledByGangs(int _player, bool _toggle) } public void SetPlayerCanUseCover(IPlayer player, bool toggle) => SetPlayerCanUseCover(player.ScriptId, toggle); - public void SetPlayerCanUseCover(int _player, bool _toggle) + public void SetPlayerCanUseCover(uint _player, bool _toggle) { unsafe { - if (fn__setPlayerCanUseCover == null) fn__setPlayerCanUseCover = (delegate* unmanaged[Cdecl]) funcTable[0xD465A8599DFF6814UL]; + if (fn__setPlayerCanUseCover == null) fn__setPlayerCanUseCover = (delegate* unmanaged[Cdecl]) funcTable[0xD465A8599DFF6814UL]; var success = false; fn__setPlayerCanUseCover(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -83584,10 +83571,10 @@ public int GetMaxWantedLevel() } public bool IsPlayerTargettingAnything(IPlayer player) => IsPlayerTargettingAnything(player.ScriptId); - public bool IsPlayerTargettingAnything(int _player) + public bool IsPlayerTargettingAnything(uint _player) { unsafe { - if (fn__isPlayerTargettingAnything == null) fn__isPlayerTargettingAnything = (delegate* unmanaged[Cdecl]) funcTable[0x78CFE51896B6B8A4UL]; + if (fn__isPlayerTargettingAnything == null) fn__isPlayerTargettingAnything = (delegate* unmanaged[Cdecl]) funcTable[0x78CFE51896B6B8A4UL]; var success = false; var result = fn__isPlayerTargettingAnything(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83596,10 +83583,10 @@ public bool IsPlayerTargettingAnything(int _player) } public void SetPlayerSprint(IPlayer player, bool toggle) => SetPlayerSprint(player.ScriptId, toggle); - public void SetPlayerSprint(int _player, bool _toggle) + public void SetPlayerSprint(uint _player, bool _toggle) { unsafe { - if (fn__setPlayerSprint == null) fn__setPlayerSprint = (delegate* unmanaged[Cdecl]) funcTable[0xA01B8075D8B92DF4UL]; + if (fn__setPlayerSprint == null) fn__setPlayerSprint = (delegate* unmanaged[Cdecl]) funcTable[0xA01B8075D8B92DF4UL]; var success = false; fn__setPlayerSprint(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -83607,10 +83594,10 @@ public void SetPlayerSprint(int _player, bool _toggle) } public void ResetPlayerStamina(IPlayer player) => ResetPlayerStamina(player.ScriptId); - public void ResetPlayerStamina(int _player) + public void ResetPlayerStamina(uint _player) { unsafe { - if (fn__resetPlayerStamina == null) fn__resetPlayerStamina = (delegate* unmanaged[Cdecl]) funcTable[0xA6F312FCCE9C1DFEUL]; + if (fn__resetPlayerStamina == null) fn__resetPlayerStamina = (delegate* unmanaged[Cdecl]) funcTable[0xA6F312FCCE9C1DFEUL]; var success = false; fn__resetPlayerStamina(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83618,10 +83605,10 @@ public void ResetPlayerStamina(int _player) } public void RestorePlayerStamina(IPlayer player, float p1) => RestorePlayerStamina(player.ScriptId, p1); - public void RestorePlayerStamina(int _player, float _p1) + public void RestorePlayerStamina(uint _player, float _p1) { unsafe { - if (fn__restorePlayerStamina == null) fn__restorePlayerStamina = (delegate* unmanaged[Cdecl]) funcTable[0xA352C1B864CAFD33UL]; + if (fn__restorePlayerStamina == null) fn__restorePlayerStamina = (delegate* unmanaged[Cdecl]) funcTable[0xA352C1B864CAFD33UL]; var success = false; fn__restorePlayerStamina(&success, _player, _p1); if (!success) throw new Exception("Native execution failed"); @@ -83629,10 +83616,10 @@ public void RestorePlayerStamina(int _player, float _p1) } public float GetPlayerSprintStaminaRemaining(IPlayer player) => GetPlayerSprintStaminaRemaining(player.ScriptId); - public float GetPlayerSprintStaminaRemaining(int _player) + public float GetPlayerSprintStaminaRemaining(uint _player) { unsafe { - if (fn__getPlayerSprintStaminaRemaining == null) fn__getPlayerSprintStaminaRemaining = (delegate* unmanaged[Cdecl]) funcTable[0x3F9F16F8E65A7ED7UL]; + if (fn__getPlayerSprintStaminaRemaining == null) fn__getPlayerSprintStaminaRemaining = (delegate* unmanaged[Cdecl]) funcTable[0x3F9F16F8E65A7ED7UL]; var success = false; var result = fn__getPlayerSprintStaminaRemaining(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83641,10 +83628,10 @@ public float GetPlayerSprintStaminaRemaining(int _player) } public float GetPlayerSprintTimeRemaining(IPlayer player) => GetPlayerSprintTimeRemaining(player.ScriptId); - public float GetPlayerSprintTimeRemaining(int _player) + public float GetPlayerSprintTimeRemaining(uint _player) { unsafe { - if (fn__getPlayerSprintTimeRemaining == null) fn__getPlayerSprintTimeRemaining = (delegate* unmanaged[Cdecl]) funcTable[0x1885BC9B108B4C99UL]; + if (fn__getPlayerSprintTimeRemaining == null) fn__getPlayerSprintTimeRemaining = (delegate* unmanaged[Cdecl]) funcTable[0x1885BC9B108B4C99UL]; var success = false; var result = fn__getPlayerSprintTimeRemaining(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83653,10 +83640,10 @@ public float GetPlayerSprintTimeRemaining(int _player) } public float GetPlayerUnderwaterTimeRemaining(IPlayer player) => GetPlayerUnderwaterTimeRemaining(player.ScriptId); - public float GetPlayerUnderwaterTimeRemaining(int _player) + public float GetPlayerUnderwaterTimeRemaining(uint _player) { unsafe { - if (fn__getPlayerUnderwaterTimeRemaining == null) fn__getPlayerUnderwaterTimeRemaining = (delegate* unmanaged[Cdecl]) funcTable[0xA1FCF8E6AF40B731UL]; + if (fn__getPlayerUnderwaterTimeRemaining == null) fn__getPlayerUnderwaterTimeRemaining = (delegate* unmanaged[Cdecl]) funcTable[0xA1FCF8E6AF40B731UL]; var success = false; var result = fn__getPlayerUnderwaterTimeRemaining(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83665,10 +83652,10 @@ public float GetPlayerUnderwaterTimeRemaining(int _player) } public float SetPlayerUnderwaterBreathPercentRemaining(IPlayer player, float time) => SetPlayerUnderwaterBreathPercentRemaining(player.ScriptId, time); - public float SetPlayerUnderwaterBreathPercentRemaining(int _player, float _time) + public float SetPlayerUnderwaterBreathPercentRemaining(uint _player, float _time) { unsafe { - if (fn__setPlayerUnderwaterBreathPercentRemaining == null) fn__setPlayerUnderwaterBreathPercentRemaining = (delegate* unmanaged[Cdecl]) funcTable[0xA0D3E4F7AAFB7E78UL]; + if (fn__setPlayerUnderwaterBreathPercentRemaining == null) fn__setPlayerUnderwaterBreathPercentRemaining = (delegate* unmanaged[Cdecl]) funcTable[0xA0D3E4F7AAFB7E78UL]; var success = false; var result = fn__setPlayerUnderwaterBreathPercentRemaining(&success, _player, _time); if (!success) throw new Exception("Native execution failed"); @@ -83677,10 +83664,10 @@ public float SetPlayerUnderwaterBreathPercentRemaining(int _player, float _time) } public int GetPlayerGroup(IPlayer player) => GetPlayerGroup(player.ScriptId); - public int GetPlayerGroup(int _player) + public int GetPlayerGroup(uint _player) { unsafe { - if (fn__getPlayerGroup == null) fn__getPlayerGroup = (delegate* unmanaged[Cdecl]) funcTable[0x0D127585F77030AFUL]; + if (fn__getPlayerGroup == null) fn__getPlayerGroup = (delegate* unmanaged[Cdecl]) funcTable[0x0D127585F77030AFUL]; var success = false; var result = fn__getPlayerGroup(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83689,10 +83676,10 @@ public int GetPlayerGroup(int _player) } public int GetPlayerMaxArmour(IPlayer player) => GetPlayerMaxArmour(player.ScriptId); - public int GetPlayerMaxArmour(int _player) + public int GetPlayerMaxArmour(uint _player) { unsafe { - if (fn__getPlayerMaxArmour == null) fn__getPlayerMaxArmour = (delegate* unmanaged[Cdecl]) funcTable[0x92659B4CE1863CB3UL]; + if (fn__getPlayerMaxArmour == null) fn__getPlayerMaxArmour = (delegate* unmanaged[Cdecl]) funcTable[0x92659B4CE1863CB3UL]; var success = false; var result = fn__getPlayerMaxArmour(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83701,10 +83688,10 @@ public int GetPlayerMaxArmour(int _player) } public bool IsPlayerControlOn(IPlayer player) => IsPlayerControlOn(player.ScriptId); - public bool IsPlayerControlOn(int _player) + public bool IsPlayerControlOn(uint _player) { unsafe { - if (fn__isPlayerControlOn == null) fn__isPlayerControlOn = (delegate* unmanaged[Cdecl]) funcTable[0x49C32D60007AFA47UL]; + if (fn__isPlayerControlOn == null) fn__isPlayerControlOn = (delegate* unmanaged[Cdecl]) funcTable[0x49C32D60007AFA47UL]; var success = false; var result = fn__isPlayerControlOn(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83724,10 +83711,10 @@ public bool GetAreCameraControlsDisabled() } public bool IsPlayerScriptControlOn(IPlayer player) => IsPlayerScriptControlOn(player.ScriptId); - public bool IsPlayerScriptControlOn(int _player) + public bool IsPlayerScriptControlOn(uint _player) { unsafe { - if (fn__isPlayerScriptControlOn == null) fn__isPlayerScriptControlOn = (delegate* unmanaged[Cdecl]) funcTable[0x8A876A65283DD7D7UL]; + if (fn__isPlayerScriptControlOn == null) fn__isPlayerScriptControlOn = (delegate* unmanaged[Cdecl]) funcTable[0x8A876A65283DD7D7UL]; var success = false; var result = fn__isPlayerScriptControlOn(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83736,10 +83723,10 @@ public bool IsPlayerScriptControlOn(int _player) } public bool IsPlayerClimbing(IPlayer player) => IsPlayerClimbing(player.ScriptId); - public bool IsPlayerClimbing(int _player) + public bool IsPlayerClimbing(uint _player) { unsafe { - if (fn__isPlayerClimbing == null) fn__isPlayerClimbing = (delegate* unmanaged[Cdecl]) funcTable[0x95E8F73DC65EFB9CUL]; + if (fn__isPlayerClimbing == null) fn__isPlayerClimbing = (delegate* unmanaged[Cdecl]) funcTable[0x95E8F73DC65EFB9CUL]; var success = false; var result = fn__isPlayerClimbing(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83748,10 +83735,10 @@ public bool IsPlayerClimbing(int _player) } public bool IsPlayerBeingArrested(IPlayer player, bool atArresting) => IsPlayerBeingArrested(player.ScriptId, atArresting); - public bool IsPlayerBeingArrested(int _player, bool _atArresting) + public bool IsPlayerBeingArrested(uint _player, bool _atArresting) { unsafe { - if (fn__isPlayerBeingArrested == null) fn__isPlayerBeingArrested = (delegate* unmanaged[Cdecl]) funcTable[0x388A47C51ABDAC8EUL]; + if (fn__isPlayerBeingArrested == null) fn__isPlayerBeingArrested = (delegate* unmanaged[Cdecl]) funcTable[0x388A47C51ABDAC8EUL]; var success = false; var result = fn__isPlayerBeingArrested(&success, _player, (byte) (_atArresting ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -83760,20 +83747,20 @@ public bool IsPlayerBeingArrested(int _player, bool _atArresting) } public void ResetPlayerArrestState(IPlayer player) => ResetPlayerArrestState(player.ScriptId); - public void ResetPlayerArrestState(int _player) + public void ResetPlayerArrestState(uint _player) { unsafe { - if (fn__resetPlayerArrestState == null) fn__resetPlayerArrestState = (delegate* unmanaged[Cdecl]) funcTable[0x2D03E13C460760D6UL]; + if (fn__resetPlayerArrestState == null) fn__resetPlayerArrestState = (delegate* unmanaged[Cdecl]) funcTable[0x2D03E13C460760D6UL]; var success = false; fn__resetPlayerArrestState(&success, _player); if (!success) throw new Exception("Native execution failed"); } } - public int GetPlayersLastVehicle() + public uint GetPlayersLastVehicle() { unsafe { - if (fn__getPlayersLastVehicle == null) fn__getPlayersLastVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xB6997A7EB3F5C8C0UL]; + if (fn__getPlayersLastVehicle == null) fn__getPlayersLastVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xB6997A7EB3F5C8C0UL]; var success = false; var result = fn__getPlayersLastVehicle(&success); if (!success) throw new Exception("Native execution failed"); @@ -83781,10 +83768,10 @@ public int GetPlayersLastVehicle() } } - public int GetPlayerIndex() + public uint GetPlayerIndex() { unsafe { - if (fn__getPlayerIndex == null) fn__getPlayerIndex = (delegate* unmanaged[Cdecl]) funcTable[0xA5EDC40EF369B48DUL]; + if (fn__getPlayerIndex == null) fn__getPlayerIndex = (delegate* unmanaged[Cdecl]) funcTable[0xA5EDC40EF369B48DUL]; var success = false; var result = fn__getPlayerIndex(&success); if (!success) throw new Exception("Native execution failed"); @@ -83792,10 +83779,10 @@ public int GetPlayerIndex() } } - public int IntToPlayerindex(int _value) + public uint IntToPlayerindex(int _value) { unsafe { - if (fn__intToPlayerindex == null) fn__intToPlayerindex = (delegate* unmanaged[Cdecl]) funcTable[0x41BD2A6B006AF756UL]; + if (fn__intToPlayerindex == null) fn__intToPlayerindex = (delegate* unmanaged[Cdecl]) funcTable[0x41BD2A6B006AF756UL]; var success = false; var result = fn__intToPlayerindex(&success, _value); if (!success) throw new Exception("Native execution failed"); @@ -83815,10 +83802,10 @@ public int IntToParticipantindex(int _value) } public int GetTimeSincePlayerHitVehicle(IPlayer player) => GetTimeSincePlayerHitVehicle(player.ScriptId); - public int GetTimeSincePlayerHitVehicle(int _player) + public int GetTimeSincePlayerHitVehicle(uint _player) { unsafe { - if (fn__getTimeSincePlayerHitVehicle == null) fn__getTimeSincePlayerHitVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x5D35ECF3A81A0EE0UL]; + if (fn__getTimeSincePlayerHitVehicle == null) fn__getTimeSincePlayerHitVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x5D35ECF3A81A0EE0UL]; var success = false; var result = fn__getTimeSincePlayerHitVehicle(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83827,10 +83814,10 @@ public int GetTimeSincePlayerHitVehicle(int _player) } public int GetTimeSincePlayerHitPed(IPlayer player) => GetTimeSincePlayerHitPed(player.ScriptId); - public int GetTimeSincePlayerHitPed(int _player) + public int GetTimeSincePlayerHitPed(uint _player) { unsafe { - if (fn__getTimeSincePlayerHitPed == null) fn__getTimeSincePlayerHitPed = (delegate* unmanaged[Cdecl]) funcTable[0xE36A25322DC35F42UL]; + if (fn__getTimeSincePlayerHitPed == null) fn__getTimeSincePlayerHitPed = (delegate* unmanaged[Cdecl]) funcTable[0xE36A25322DC35F42UL]; var success = false; var result = fn__getTimeSincePlayerHitPed(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83839,10 +83826,10 @@ public int GetTimeSincePlayerHitPed(int _player) } public int GetTimeSincePlayerDroveOnPavement(IPlayer player) => GetTimeSincePlayerDroveOnPavement(player.ScriptId); - public int GetTimeSincePlayerDroveOnPavement(int _player) + public int GetTimeSincePlayerDroveOnPavement(uint _player) { unsafe { - if (fn__getTimeSincePlayerDroveOnPavement == null) fn__getTimeSincePlayerDroveOnPavement = (delegate* unmanaged[Cdecl]) funcTable[0xD559D2BE9E37853BUL]; + if (fn__getTimeSincePlayerDroveOnPavement == null) fn__getTimeSincePlayerDroveOnPavement = (delegate* unmanaged[Cdecl]) funcTable[0xD559D2BE9E37853BUL]; var success = false; var result = fn__getTimeSincePlayerDroveOnPavement(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83851,10 +83838,10 @@ public int GetTimeSincePlayerDroveOnPavement(int _player) } public int GetTimeSincePlayerDroveAgainstTraffic(IPlayer player) => GetTimeSincePlayerDroveAgainstTraffic(player.ScriptId); - public int GetTimeSincePlayerDroveAgainstTraffic(int _player) + public int GetTimeSincePlayerDroveAgainstTraffic(uint _player) { unsafe { - if (fn__getTimeSincePlayerDroveAgainstTraffic == null) fn__getTimeSincePlayerDroveAgainstTraffic = (delegate* unmanaged[Cdecl]) funcTable[0xDB89591E290D9182UL]; + if (fn__getTimeSincePlayerDroveAgainstTraffic == null) fn__getTimeSincePlayerDroveAgainstTraffic = (delegate* unmanaged[Cdecl]) funcTable[0xDB89591E290D9182UL]; var success = false; var result = fn__getTimeSincePlayerDroveAgainstTraffic(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83863,10 +83850,10 @@ public int GetTimeSincePlayerDroveAgainstTraffic(int _player) } public bool IsPlayerFreeForAmbientTask(IPlayer player) => IsPlayerFreeForAmbientTask(player.ScriptId); - public bool IsPlayerFreeForAmbientTask(int _player) + public bool IsPlayerFreeForAmbientTask(uint _player) { unsafe { - if (fn__isPlayerFreeForAmbientTask == null) fn__isPlayerFreeForAmbientTask = (delegate* unmanaged[Cdecl]) funcTable[0xDCCFD3F106C36AB4UL]; + if (fn__isPlayerFreeForAmbientTask == null) fn__isPlayerFreeForAmbientTask = (delegate* unmanaged[Cdecl]) funcTable[0xDCCFD3F106C36AB4UL]; var success = false; var result = fn__isPlayerFreeForAmbientTask(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -83874,10 +83861,10 @@ public bool IsPlayerFreeForAmbientTask(int _player) } } - public int PlayerId() + public uint PlayerId() { unsafe { - if (fn__playerId == null) fn__playerId = (delegate* unmanaged[Cdecl]) funcTable[0x4F8644AF03D0E0D6UL]; + if (fn__playerId == null) fn__playerId = (delegate* unmanaged[Cdecl]) funcTable[0x4F8644AF03D0E0D6UL]; var success = false; var result = fn__playerId(&success); if (!success) throw new Exception("Native execution failed"); @@ -83885,10 +83872,10 @@ public int PlayerId() } } - public int PlayerPedId() + public uint PlayerPedId() { unsafe { - if (fn__playerPedId == null) fn__playerPedId = (delegate* unmanaged[Cdecl]) funcTable[0xD80958FC74E988A6UL]; + if (fn__playerPedId == null) fn__playerPedId = (delegate* unmanaged[Cdecl]) funcTable[0xD80958FC74E988A6UL]; var success = false; var result = fn__playerPedId(&success); if (!success) throw new Exception("Native execution failed"); @@ -83933,9 +83920,9 @@ public void ForceCleanupForAllThreadsWithThisName(string _name, int _cleanupFlag unsafe { if (fn__forceCleanupForAllThreadsWithThisName == null) fn__forceCleanupForAllThreadsWithThisName = (delegate* unmanaged[Cdecl]) funcTable[0x4C68DDDDF0097317UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__forceCleanupForAllThreadsWithThisName(&success, ptr_name, _cleanupFlags); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -83961,13 +83948,13 @@ public int GetCauseOfMostRecentForceCleanup() } } - public void SetPlayerMayOnlyEnterThisVehicle(IPlayer player, int vehicle) => SetPlayerMayOnlyEnterThisVehicle(player.ScriptId, vehicle); - public void SetPlayerMayOnlyEnterThisVehicle(int player, IVehicle vehicle) => SetPlayerMayOnlyEnterThisVehicle(player, vehicle.ScriptId); + public void SetPlayerMayOnlyEnterThisVehicle(IPlayer player, uint vehicle) => SetPlayerMayOnlyEnterThisVehicle(player.ScriptId, vehicle); + public void SetPlayerMayOnlyEnterThisVehicle(uint player, IVehicle vehicle) => SetPlayerMayOnlyEnterThisVehicle(player, vehicle.ScriptId); public void SetPlayerMayOnlyEnterThisVehicle(IPlayer player, IVehicle vehicle) => SetPlayerMayOnlyEnterThisVehicle(player.ScriptId, vehicle.ScriptId); - public void SetPlayerMayOnlyEnterThisVehicle(int _player, int _vehicle) + public void SetPlayerMayOnlyEnterThisVehicle(uint _player, uint _vehicle) { unsafe { - if (fn__setPlayerMayOnlyEnterThisVehicle == null) fn__setPlayerMayOnlyEnterThisVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x8026FF78F208978AUL]; + if (fn__setPlayerMayOnlyEnterThisVehicle == null) fn__setPlayerMayOnlyEnterThisVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x8026FF78F208978AUL]; var success = false; fn__setPlayerMayOnlyEnterThisVehicle(&success, _player, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -83975,10 +83962,10 @@ public void SetPlayerMayOnlyEnterThisVehicle(int _player, int _vehicle) } public void SetPlayerMayNotEnterAnyVehicle(IPlayer player) => SetPlayerMayNotEnterAnyVehicle(player.ScriptId); - public void SetPlayerMayNotEnterAnyVehicle(int _player) + public void SetPlayerMayNotEnterAnyVehicle(uint _player) { unsafe { - if (fn__setPlayerMayNotEnterAnyVehicle == null) fn__setPlayerMayNotEnterAnyVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x1DE37BBF9E9CC14AUL]; + if (fn__setPlayerMayNotEnterAnyVehicle == null) fn__setPlayerMayNotEnterAnyVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x1DE37BBF9E9CC14AUL]; var success = false; fn__setPlayerMayNotEnterAnyVehicle(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -84073,10 +84060,10 @@ public bool IsSystemUiBeingDisplayed() } public void SetPlayerInvincible(IPlayer player, bool toggle) => SetPlayerInvincible(player.ScriptId, toggle); - public void SetPlayerInvincible(int _player, bool _toggle) + public void SetPlayerInvincible(uint _player, bool _toggle) { unsafe { - if (fn__setPlayerInvincible == null) fn__setPlayerInvincible = (delegate* unmanaged[Cdecl]) funcTable[0x239528EACDC3E7DEUL]; + if (fn__setPlayerInvincible == null) fn__setPlayerInvincible = (delegate* unmanaged[Cdecl]) funcTable[0x239528EACDC3E7DEUL]; var success = false; fn__setPlayerInvincible(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -84084,10 +84071,10 @@ public void SetPlayerInvincible(int _player, bool _toggle) } public bool GetPlayerInvincible(IPlayer player) => GetPlayerInvincible(player.ScriptId); - public bool GetPlayerInvincible(int _player) + public bool GetPlayerInvincible(uint _player) { unsafe { - if (fn__getPlayerInvincible == null) fn__getPlayerInvincible = (delegate* unmanaged[Cdecl]) funcTable[0xB721981B2B939E07UL]; + if (fn__getPlayerInvincible == null) fn__getPlayerInvincible = (delegate* unmanaged[Cdecl]) funcTable[0xB721981B2B939E07UL]; var success = false; var result = fn__getPlayerInvincible(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -84096,10 +84083,10 @@ public bool GetPlayerInvincible(int _player) } public bool GetPlayerDebugInvincible(IPlayer player) => GetPlayerDebugInvincible(player.ScriptId); - public bool GetPlayerDebugInvincible(int _player) + public bool GetPlayerDebugInvincible(uint _player) { unsafe { - if (fn__getPlayerDebugInvincible == null) fn__getPlayerDebugInvincible = (delegate* unmanaged[Cdecl]) funcTable[0xDCC07526B8EC45AFUL]; + if (fn__getPlayerDebugInvincible == null) fn__getPlayerDebugInvincible = (delegate* unmanaged[Cdecl]) funcTable[0xDCC07526B8EC45AFUL]; var success = false; var result = fn__getPlayerDebugInvincible(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -84108,10 +84095,10 @@ public bool GetPlayerDebugInvincible(int _player) } public void SetPlayerInvincibleButHasReactions(IPlayer player, bool toggle) => SetPlayerInvincibleButHasReactions(player.ScriptId, toggle); - public void SetPlayerInvincibleButHasReactions(int _player, bool _toggle) + public void SetPlayerInvincibleButHasReactions(uint _player, bool _toggle) { unsafe { - if (fn__setPlayerInvincibleButHasReactions == null) fn__setPlayerInvincibleButHasReactions = (delegate* unmanaged[Cdecl]) funcTable[0x6BC97F4F4BB3C04BUL]; + if (fn__setPlayerInvincibleButHasReactions == null) fn__setPlayerInvincibleButHasReactions = (delegate* unmanaged[Cdecl]) funcTable[0x6BC97F4F4BB3C04BUL]; var success = false; fn__setPlayerInvincibleButHasReactions(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -84119,10 +84106,10 @@ public void SetPlayerInvincibleButHasReactions(int _player, bool _toggle) } public void SetPlayerCanCollectDroppedMoney(IPlayer player, bool p1) => SetPlayerCanCollectDroppedMoney(player.ScriptId, p1); - public void SetPlayerCanCollectDroppedMoney(int _player, bool _p1) + public void SetPlayerCanCollectDroppedMoney(uint _player, bool _p1) { unsafe { - if (fn__setPlayerCanCollectDroppedMoney == null) fn__setPlayerCanCollectDroppedMoney = (delegate* unmanaged[Cdecl]) funcTable[0xCAC57395B151135FUL]; + if (fn__setPlayerCanCollectDroppedMoney == null) fn__setPlayerCanCollectDroppedMoney = (delegate* unmanaged[Cdecl]) funcTable[0xCAC57395B151135FUL]; var success = false; fn__setPlayerCanCollectDroppedMoney(&success, _player, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -84130,10 +84117,10 @@ public void SetPlayerCanCollectDroppedMoney(int _player, bool _p1) } public void RemovePlayerHelmet(IPlayer player, bool p2) => RemovePlayerHelmet(player.ScriptId, p2); - public void RemovePlayerHelmet(int _player, bool _p2) + public void RemovePlayerHelmet(uint _player, bool _p2) { unsafe { - if (fn__removePlayerHelmet == null) fn__removePlayerHelmet = (delegate* unmanaged[Cdecl]) funcTable[0xF3AC26D3CC576528UL]; + if (fn__removePlayerHelmet == null) fn__removePlayerHelmet = (delegate* unmanaged[Cdecl]) funcTable[0xF3AC26D3CC576528UL]; var success = false; fn__removePlayerHelmet(&success, _player, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -84141,10 +84128,10 @@ public void RemovePlayerHelmet(int _player, bool _p2) } public void GivePlayerRagdollControl(IPlayer player, bool toggle) => GivePlayerRagdollControl(player.ScriptId, toggle); - public void GivePlayerRagdollControl(int _player, bool _toggle) + public void GivePlayerRagdollControl(uint _player, bool _toggle) { unsafe { - if (fn__givePlayerRagdollControl == null) fn__givePlayerRagdollControl = (delegate* unmanaged[Cdecl]) funcTable[0x3C49C870E66F0A28UL]; + if (fn__givePlayerRagdollControl == null) fn__givePlayerRagdollControl = (delegate* unmanaged[Cdecl]) funcTable[0x3C49C870E66F0A28UL]; var success = false; fn__givePlayerRagdollControl(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -84152,10 +84139,10 @@ public void GivePlayerRagdollControl(int _player, bool _toggle) } public void SetPlayerLockon(IPlayer player, bool toggle) => SetPlayerLockon(player.ScriptId, toggle); - public void SetPlayerLockon(int _player, bool _toggle) + public void SetPlayerLockon(uint _player, bool _toggle) { unsafe { - if (fn__setPlayerLockon == null) fn__setPlayerLockon = (delegate* unmanaged[Cdecl]) funcTable[0x5C8B2F450EE4328EUL]; + if (fn__setPlayerLockon == null) fn__setPlayerLockon = (delegate* unmanaged[Cdecl]) funcTable[0x5C8B2F450EE4328EUL]; var success = false; fn__setPlayerLockon(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -84205,10 +84192,10 @@ public bool GetIsUsingHoodCamera() } public void ClearPlayerHasDamagedAtLeastOnePed(IPlayer player) => ClearPlayerHasDamagedAtLeastOnePed(player.ScriptId); - public void ClearPlayerHasDamagedAtLeastOnePed(int _player) + public void ClearPlayerHasDamagedAtLeastOnePed(uint _player) { unsafe { - if (fn__clearPlayerHasDamagedAtLeastOnePed == null) fn__clearPlayerHasDamagedAtLeastOnePed = (delegate* unmanaged[Cdecl]) funcTable[0xF0B67A4DE6AB5F98UL]; + if (fn__clearPlayerHasDamagedAtLeastOnePed == null) fn__clearPlayerHasDamagedAtLeastOnePed = (delegate* unmanaged[Cdecl]) funcTable[0xF0B67A4DE6AB5F98UL]; var success = false; fn__clearPlayerHasDamagedAtLeastOnePed(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -84216,10 +84203,10 @@ public void ClearPlayerHasDamagedAtLeastOnePed(int _player) } public bool HasPlayerDamagedAtLeastOnePed(IPlayer player) => HasPlayerDamagedAtLeastOnePed(player.ScriptId); - public bool HasPlayerDamagedAtLeastOnePed(int _player) + public bool HasPlayerDamagedAtLeastOnePed(uint _player) { unsafe { - if (fn__hasPlayerDamagedAtLeastOnePed == null) fn__hasPlayerDamagedAtLeastOnePed = (delegate* unmanaged[Cdecl]) funcTable[0x20CE80B0C2BF4ACCUL]; + if (fn__hasPlayerDamagedAtLeastOnePed == null) fn__hasPlayerDamagedAtLeastOnePed = (delegate* unmanaged[Cdecl]) funcTable[0x20CE80B0C2BF4ACCUL]; var success = false; var result = fn__hasPlayerDamagedAtLeastOnePed(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -84228,10 +84215,10 @@ public bool HasPlayerDamagedAtLeastOnePed(int _player) } public void ClearPlayerHasDamagedAtLeastOneNonAnimalPed(IPlayer player) => ClearPlayerHasDamagedAtLeastOneNonAnimalPed(player.ScriptId); - public void ClearPlayerHasDamagedAtLeastOneNonAnimalPed(int _player) + public void ClearPlayerHasDamagedAtLeastOneNonAnimalPed(uint _player) { unsafe { - if (fn__clearPlayerHasDamagedAtLeastOneNonAnimalPed == null) fn__clearPlayerHasDamagedAtLeastOneNonAnimalPed = (delegate* unmanaged[Cdecl]) funcTable[0x4AACB96203D11A31UL]; + if (fn__clearPlayerHasDamagedAtLeastOneNonAnimalPed == null) fn__clearPlayerHasDamagedAtLeastOneNonAnimalPed = (delegate* unmanaged[Cdecl]) funcTable[0x4AACB96203D11A31UL]; var success = false; fn__clearPlayerHasDamagedAtLeastOneNonAnimalPed(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -84239,10 +84226,10 @@ public void ClearPlayerHasDamagedAtLeastOneNonAnimalPed(int _player) } public bool HasPlayerDamagedAtLeastOneNonAnimalPed(IPlayer player) => HasPlayerDamagedAtLeastOneNonAnimalPed(player.ScriptId); - public bool HasPlayerDamagedAtLeastOneNonAnimalPed(int _player) + public bool HasPlayerDamagedAtLeastOneNonAnimalPed(uint _player) { unsafe { - if (fn__hasPlayerDamagedAtLeastOneNonAnimalPed == null) fn__hasPlayerDamagedAtLeastOneNonAnimalPed = (delegate* unmanaged[Cdecl]) funcTable[0xE4B90F367BD81752UL]; + if (fn__hasPlayerDamagedAtLeastOneNonAnimalPed == null) fn__hasPlayerDamagedAtLeastOneNonAnimalPed = (delegate* unmanaged[Cdecl]) funcTable[0xE4B90F367BD81752UL]; var success = false; var result = fn__hasPlayerDamagedAtLeastOneNonAnimalPed(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -84251,10 +84238,10 @@ public bool HasPlayerDamagedAtLeastOneNonAnimalPed(int _player) } public void SetAirDragMultiplierForPlayersVehicle(IPlayer player, float multiplier) => SetAirDragMultiplierForPlayersVehicle(player.ScriptId, multiplier); - public void SetAirDragMultiplierForPlayersVehicle(int _player, float _multiplier) + public void SetAirDragMultiplierForPlayersVehicle(uint _player, float _multiplier) { unsafe { - if (fn__setAirDragMultiplierForPlayersVehicle == null) fn__setAirDragMultiplierForPlayersVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xCA7DC8329F0A1E9EUL]; + if (fn__setAirDragMultiplierForPlayersVehicle == null) fn__setAirDragMultiplierForPlayersVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xCA7DC8329F0A1E9EUL]; var success = false; fn__setAirDragMultiplierForPlayersVehicle(&success, _player, _multiplier); if (!success) throw new Exception("Native execution failed"); @@ -84262,10 +84249,10 @@ public void SetAirDragMultiplierForPlayersVehicle(int _player, float _multiplier } public void SetSwimMultiplierForPlayer(IPlayer player, float multiplier) => SetSwimMultiplierForPlayer(player.ScriptId, multiplier); - public void SetSwimMultiplierForPlayer(int _player, float _multiplier) + public void SetSwimMultiplierForPlayer(uint _player, float _multiplier) { unsafe { - if (fn__setSwimMultiplierForPlayer == null) fn__setSwimMultiplierForPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xA91C6F0FF7D16A13UL]; + if (fn__setSwimMultiplierForPlayer == null) fn__setSwimMultiplierForPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xA91C6F0FF7D16A13UL]; var success = false; fn__setSwimMultiplierForPlayer(&success, _player, _multiplier); if (!success) throw new Exception("Native execution failed"); @@ -84273,10 +84260,10 @@ public void SetSwimMultiplierForPlayer(int _player, float _multiplier) } public void SetRunSprintMultiplierForPlayer(IPlayer player, float multiplier) => SetRunSprintMultiplierForPlayer(player.ScriptId, multiplier); - public void SetRunSprintMultiplierForPlayer(int _player, float _multiplier) + public void SetRunSprintMultiplierForPlayer(uint _player, float _multiplier) { unsafe { - if (fn__setRunSprintMultiplierForPlayer == null) fn__setRunSprintMultiplierForPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x6DB47AA77FD94E09UL]; + if (fn__setRunSprintMultiplierForPlayer == null) fn__setRunSprintMultiplierForPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x6DB47AA77FD94E09UL]; var success = false; fn__setRunSprintMultiplierForPlayer(&success, _player, _multiplier); if (!success) throw new Exception("Native execution failed"); @@ -84326,10 +84313,10 @@ public void AssistedMovementFlushRoute() } public void SetPlayerForcedAim(IPlayer player, bool toggle) => SetPlayerForcedAim(player.ScriptId, toggle); - public void SetPlayerForcedAim(int _player, bool _toggle) + public void SetPlayerForcedAim(uint _player, bool _toggle) { unsafe { - if (fn__setPlayerForcedAim == null) fn__setPlayerForcedAim = (delegate* unmanaged[Cdecl]) funcTable[0x0FEE4F80AC44A726UL]; + if (fn__setPlayerForcedAim == null) fn__setPlayerForcedAim = (delegate* unmanaged[Cdecl]) funcTable[0x0FEE4F80AC44A726UL]; var success = false; fn__setPlayerForcedAim(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -84337,10 +84324,10 @@ public void SetPlayerForcedAim(int _player, bool _toggle) } public void SetPlayerForcedZoom(IPlayer player, bool toggle) => SetPlayerForcedZoom(player.ScriptId, toggle); - public void SetPlayerForcedZoom(int _player, bool _toggle) + public void SetPlayerForcedZoom(uint _player, bool _toggle) { unsafe { - if (fn__setPlayerForcedZoom == null) fn__setPlayerForcedZoom = (delegate* unmanaged[Cdecl]) funcTable[0x75E7D505F2B15902UL]; + if (fn__setPlayerForcedZoom == null) fn__setPlayerForcedZoom = (delegate* unmanaged[Cdecl]) funcTable[0x75E7D505F2B15902UL]; var success = false; fn__setPlayerForcedZoom(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -84348,10 +84335,10 @@ public void SetPlayerForcedZoom(int _player, bool _toggle) } public void SetPlayerForceSkipAimIntro(IPlayer player, bool toggle) => SetPlayerForceSkipAimIntro(player.ScriptId, toggle); - public void SetPlayerForceSkipAimIntro(int _player, bool _toggle) + public void SetPlayerForceSkipAimIntro(uint _player, bool _toggle) { unsafe { - if (fn__setPlayerForceSkipAimIntro == null) fn__setPlayerForceSkipAimIntro = (delegate* unmanaged[Cdecl]) funcTable[0x7651BC64AE59E128UL]; + if (fn__setPlayerForceSkipAimIntro == null) fn__setPlayerForceSkipAimIntro = (delegate* unmanaged[Cdecl]) funcTable[0x7651BC64AE59E128UL]; var success = false; fn__setPlayerForceSkipAimIntro(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -84359,10 +84346,10 @@ public void SetPlayerForceSkipAimIntro(int _player, bool _toggle) } public void DisablePlayerFiring(IPlayer player, bool toggle) => DisablePlayerFiring(player.ScriptId, toggle); - public void DisablePlayerFiring(int _player, bool _toggle) + public void DisablePlayerFiring(uint _player, bool _toggle) { unsafe { - if (fn__disablePlayerFiring == null) fn__disablePlayerFiring = (delegate* unmanaged[Cdecl]) funcTable[0x5E6CC07646BBEAB8UL]; + if (fn__disablePlayerFiring == null) fn__disablePlayerFiring = (delegate* unmanaged[Cdecl]) funcTable[0x5E6CC07646BBEAB8UL]; var success = false; fn__disablePlayerFiring(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -84380,10 +84367,10 @@ public void DisablePlayerThrowGrenadeWhileUsingGun() } public void SetDisableAmbientMeleeMove(IPlayer player, bool toggle) => SetDisableAmbientMeleeMove(player.ScriptId, toggle); - public void SetDisableAmbientMeleeMove(int _player, bool _toggle) + public void SetDisableAmbientMeleeMove(uint _player, bool _toggle) { unsafe { - if (fn__setDisableAmbientMeleeMove == null) fn__setDisableAmbientMeleeMove = (delegate* unmanaged[Cdecl]) funcTable[0x2E8AABFA40A84F8CUL]; + if (fn__setDisableAmbientMeleeMove == null) fn__setDisableAmbientMeleeMove = (delegate* unmanaged[Cdecl]) funcTable[0x2E8AABFA40A84F8CUL]; var success = false; fn__setDisableAmbientMeleeMove(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -84391,10 +84378,10 @@ public void SetDisableAmbientMeleeMove(int _player, bool _toggle) } public void SetPlayerMaxArmour(IPlayer player, int value) => SetPlayerMaxArmour(player.ScriptId, value); - public void SetPlayerMaxArmour(int _player, int _value) + public void SetPlayerMaxArmour(uint _player, int _value) { unsafe { - if (fn__setPlayerMaxArmour == null) fn__setPlayerMaxArmour = (delegate* unmanaged[Cdecl]) funcTable[0x77DFCCF5948B8C71UL]; + if (fn__setPlayerMaxArmour == null) fn__setPlayerMaxArmour = (delegate* unmanaged[Cdecl]) funcTable[0x77DFCCF5948B8C71UL]; var success = false; fn__setPlayerMaxArmour(&success, _player, _value); if (!success) throw new Exception("Native execution failed"); @@ -84402,10 +84389,10 @@ public void SetPlayerMaxArmour(int _player, int _value) } public void SpecialAbilityActivate(IPlayer player, int p1) => SpecialAbilityActivate(player.ScriptId, p1); - public void SpecialAbilityActivate(int _player, int _p1) + public void SpecialAbilityActivate(uint _player, int _p1) { unsafe { - if (fn__specialAbilityActivate == null) fn__specialAbilityActivate = (delegate* unmanaged[Cdecl]) funcTable[0x821FDC827D6F4090UL]; + if (fn__specialAbilityActivate == null) fn__specialAbilityActivate = (delegate* unmanaged[Cdecl]) funcTable[0x821FDC827D6F4090UL]; var success = false; fn__specialAbilityActivate(&success, _player, _p1); if (!success) throw new Exception("Native execution failed"); @@ -84413,10 +84400,10 @@ public void SpecialAbilityActivate(int _player, int _p1) } public void SetSpecialAbilityMp(IPlayer player, int p1, int p2) => SetSpecialAbilityMp(player.ScriptId, p1, p2); - public void SetSpecialAbilityMp(int _player, int _p1, int _p2) + public void SetSpecialAbilityMp(uint _player, int _p1, int _p2) { unsafe { - if (fn__setSpecialAbilityMp == null) fn__setSpecialAbilityMp = (delegate* unmanaged[Cdecl]) funcTable[0xB214D570EAD7F81AUL]; + if (fn__setSpecialAbilityMp == null) fn__setSpecialAbilityMp = (delegate* unmanaged[Cdecl]) funcTable[0xB214D570EAD7F81AUL]; var success = false; fn__setSpecialAbilityMp(&success, _player, _p1, _p2); if (!success) throw new Exception("Native execution failed"); @@ -84424,10 +84411,10 @@ public void SetSpecialAbilityMp(int _player, int _p1, int _p2) } public void SpecialAbilityDeactivateMp(IPlayer player, int p1) => SpecialAbilityDeactivateMp(player.ScriptId, p1); - public void SpecialAbilityDeactivateMp(int _player, int _p1) + public void SpecialAbilityDeactivateMp(uint _player, int _p1) { unsafe { - if (fn__specialAbilityDeactivateMp == null) fn__specialAbilityDeactivateMp = (delegate* unmanaged[Cdecl]) funcTable[0x17F7471EACA78290UL]; + if (fn__specialAbilityDeactivateMp == null) fn__specialAbilityDeactivateMp = (delegate* unmanaged[Cdecl]) funcTable[0x17F7471EACA78290UL]; var success = false; fn__specialAbilityDeactivateMp(&success, _player, _p1); if (!success) throw new Exception("Native execution failed"); @@ -84435,10 +84422,10 @@ public void SpecialAbilityDeactivateMp(int _player, int _p1) } public void SpecialAbilityDeactivate(IPlayer player, int p1) => SpecialAbilityDeactivate(player.ScriptId, p1); - public void SpecialAbilityDeactivate(int _player, int _p1) + public void SpecialAbilityDeactivate(uint _player, int _p1) { unsafe { - if (fn__specialAbilityDeactivate == null) fn__specialAbilityDeactivate = (delegate* unmanaged[Cdecl]) funcTable[0xD6A953C6D1492057UL]; + if (fn__specialAbilityDeactivate == null) fn__specialAbilityDeactivate = (delegate* unmanaged[Cdecl]) funcTable[0xD6A953C6D1492057UL]; var success = false; fn__specialAbilityDeactivate(&success, _player, _p1); if (!success) throw new Exception("Native execution failed"); @@ -84446,10 +84433,10 @@ public void SpecialAbilityDeactivate(int _player, int _p1) } public void SpecialAbilityDeactivateFast(IPlayer player, int p1) => SpecialAbilityDeactivateFast(player.ScriptId, p1); - public void SpecialAbilityDeactivateFast(int _player, int _p1) + public void SpecialAbilityDeactivateFast(uint _player, int _p1) { unsafe { - if (fn__specialAbilityDeactivateFast == null) fn__specialAbilityDeactivateFast = (delegate* unmanaged[Cdecl]) funcTable[0x9CB5CE07A3968D5AUL]; + if (fn__specialAbilityDeactivateFast == null) fn__specialAbilityDeactivateFast = (delegate* unmanaged[Cdecl]) funcTable[0x9CB5CE07A3968D5AUL]; var success = false; fn__specialAbilityDeactivateFast(&success, _player, _p1); if (!success) throw new Exception("Native execution failed"); @@ -84457,10 +84444,10 @@ public void SpecialAbilityDeactivateFast(int _player, int _p1) } public void SpecialAbilityReset(IPlayer player, int p1) => SpecialAbilityReset(player.ScriptId, p1); - public void SpecialAbilityReset(int _player, int _p1) + public void SpecialAbilityReset(uint _player, int _p1) { unsafe { - if (fn__specialAbilityReset == null) fn__specialAbilityReset = (delegate* unmanaged[Cdecl]) funcTable[0x375F0E738F861A94UL]; + if (fn__specialAbilityReset == null) fn__specialAbilityReset = (delegate* unmanaged[Cdecl]) funcTable[0x375F0E738F861A94UL]; var success = false; fn__specialAbilityReset(&success, _player, _p1); if (!success) throw new Exception("Native execution failed"); @@ -84468,10 +84455,10 @@ public void SpecialAbilityReset(int _player, int _p1) } public void SpecialAbilityChargeOnMissionFailed(IPlayer player, int p1) => SpecialAbilityChargeOnMissionFailed(player.ScriptId, p1); - public void SpecialAbilityChargeOnMissionFailed(int _player, int _p1) + public void SpecialAbilityChargeOnMissionFailed(uint _player, int _p1) { unsafe { - if (fn__specialAbilityChargeOnMissionFailed == null) fn__specialAbilityChargeOnMissionFailed = (delegate* unmanaged[Cdecl]) funcTable[0xC9A763D8FE87436AUL]; + if (fn__specialAbilityChargeOnMissionFailed == null) fn__specialAbilityChargeOnMissionFailed = (delegate* unmanaged[Cdecl]) funcTable[0xC9A763D8FE87436AUL]; var success = false; fn__specialAbilityChargeOnMissionFailed(&success, _player, _p1); if (!success) throw new Exception("Native execution failed"); @@ -84479,10 +84466,10 @@ public void SpecialAbilityChargeOnMissionFailed(int _player, int _p1) } public void SpecialAbilityChargeSmall(IPlayer player, bool p1, bool p2, int p3) => SpecialAbilityChargeSmall(player.ScriptId, p1, p2, p3); - public void SpecialAbilityChargeSmall(int _player, bool _p1, bool _p2, int _p3) + public void SpecialAbilityChargeSmall(uint _player, bool _p1, bool _p2, int _p3) { unsafe { - if (fn__specialAbilityChargeSmall == null) fn__specialAbilityChargeSmall = (delegate* unmanaged[Cdecl]) funcTable[0x2E7B9B683481687DUL]; + if (fn__specialAbilityChargeSmall == null) fn__specialAbilityChargeSmall = (delegate* unmanaged[Cdecl]) funcTable[0x2E7B9B683481687DUL]; var success = false; fn__specialAbilityChargeSmall(&success, _player, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0), _p3); if (!success) throw new Exception("Native execution failed"); @@ -84490,10 +84477,10 @@ public void SpecialAbilityChargeSmall(int _player, bool _p1, bool _p2, int _p3) } public void SpecialAbilityChargeMedium(IPlayer player, bool p1, bool p2, int p3) => SpecialAbilityChargeMedium(player.ScriptId, p1, p2, p3); - public void SpecialAbilityChargeMedium(int _player, bool _p1, bool _p2, int _p3) + public void SpecialAbilityChargeMedium(uint _player, bool _p1, bool _p2, int _p3) { unsafe { - if (fn__specialAbilityChargeMedium == null) fn__specialAbilityChargeMedium = (delegate* unmanaged[Cdecl]) funcTable[0xF113E3AA9BC54613UL]; + if (fn__specialAbilityChargeMedium == null) fn__specialAbilityChargeMedium = (delegate* unmanaged[Cdecl]) funcTable[0xF113E3AA9BC54613UL]; var success = false; fn__specialAbilityChargeMedium(&success, _player, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0), _p3); if (!success) throw new Exception("Native execution failed"); @@ -84501,23 +84488,23 @@ public void SpecialAbilityChargeMedium(int _player, bool _p1, bool _p2, int _p3) } public void SpecialAbilityChargeLarge(IPlayer player, bool p1, bool p2, int p3) => SpecialAbilityChargeLarge(player.ScriptId, p1, p2, p3); - public void SpecialAbilityChargeLarge(int _player, bool _p1, bool _p2, int _p3) + public void SpecialAbilityChargeLarge(uint _player, bool _p1, bool _p2, int _p3) { unsafe { - if (fn__specialAbilityChargeLarge == null) fn__specialAbilityChargeLarge = (delegate* unmanaged[Cdecl]) funcTable[0xF733F45FA4497D93UL]; + if (fn__specialAbilityChargeLarge == null) fn__specialAbilityChargeLarge = (delegate* unmanaged[Cdecl]) funcTable[0xF733F45FA4497D93UL]; var success = false; fn__specialAbilityChargeLarge(&success, _player, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0), _p3); if (!success) throw new Exception("Native execution failed"); } } - public void SpecialAbilityChargeContinuous(IPlayer player, int p1, int p2) => SpecialAbilityChargeContinuous(player.ScriptId, p1, p2); - public void SpecialAbilityChargeContinuous(int player, IPlayer p1, int p2) => SpecialAbilityChargeContinuous(player, p1.ScriptId, p2); + public void SpecialAbilityChargeContinuous(IPlayer player, uint p1, int p2) => SpecialAbilityChargeContinuous(player.ScriptId, p1, p2); + public void SpecialAbilityChargeContinuous(uint player, IPlayer p1, int p2) => SpecialAbilityChargeContinuous(player, p1.ScriptId, p2); public void SpecialAbilityChargeContinuous(IPlayer player, IPlayer p1, int p2) => SpecialAbilityChargeContinuous(player.ScriptId, p1.ScriptId, p2); - public void SpecialAbilityChargeContinuous(int _player, int _p1, int _p2) + public void SpecialAbilityChargeContinuous(uint _player, uint _p1, int _p2) { unsafe { - if (fn__specialAbilityChargeContinuous == null) fn__specialAbilityChargeContinuous = (delegate* unmanaged[Cdecl]) funcTable[0xED481732DFF7E997UL]; + if (fn__specialAbilityChargeContinuous == null) fn__specialAbilityChargeContinuous = (delegate* unmanaged[Cdecl]) funcTable[0xED481732DFF7E997UL]; var success = false; fn__specialAbilityChargeContinuous(&success, _player, _p1, _p2); if (!success) throw new Exception("Native execution failed"); @@ -84525,10 +84512,10 @@ public void SpecialAbilityChargeContinuous(int _player, int _p1, int _p2) } public void SpecialAbilityChargeAbsolute(IPlayer player, int p1, bool p2, int p3) => SpecialAbilityChargeAbsolute(player.ScriptId, p1, p2, p3); - public void SpecialAbilityChargeAbsolute(int _player, int _p1, bool _p2, int _p3) + public void SpecialAbilityChargeAbsolute(uint _player, int _p1, bool _p2, int _p3) { unsafe { - if (fn__specialAbilityChargeAbsolute == null) fn__specialAbilityChargeAbsolute = (delegate* unmanaged[Cdecl]) funcTable[0xB7B0870EB531D08DUL]; + if (fn__specialAbilityChargeAbsolute == null) fn__specialAbilityChargeAbsolute = (delegate* unmanaged[Cdecl]) funcTable[0xB7B0870EB531D08DUL]; var success = false; fn__specialAbilityChargeAbsolute(&success, _player, _p1, (byte) (_p2 ? 1 : 0), _p3); if (!success) throw new Exception("Native execution failed"); @@ -84536,10 +84523,10 @@ public void SpecialAbilityChargeAbsolute(int _player, int _p1, bool _p2, int _p3 } public void SpecialAbilityChargeNormalized(IPlayer player, float normalizedValue, bool p2, int p3) => SpecialAbilityChargeNormalized(player.ScriptId, normalizedValue, p2, p3); - public void SpecialAbilityChargeNormalized(int _player, float _normalizedValue, bool _p2, int _p3) + public void SpecialAbilityChargeNormalized(uint _player, float _normalizedValue, bool _p2, int _p3) { unsafe { - if (fn__specialAbilityChargeNormalized == null) fn__specialAbilityChargeNormalized = (delegate* unmanaged[Cdecl]) funcTable[0xA0696A65F009EE18UL]; + if (fn__specialAbilityChargeNormalized == null) fn__specialAbilityChargeNormalized = (delegate* unmanaged[Cdecl]) funcTable[0xA0696A65F009EE18UL]; var success = false; fn__specialAbilityChargeNormalized(&success, _player, _normalizedValue, (byte) (_p2 ? 1 : 0), _p3); if (!success) throw new Exception("Native execution failed"); @@ -84547,10 +84534,10 @@ public void SpecialAbilityChargeNormalized(int _player, float _normalizedValue, } public void SpecialAbilityFillMeter(IPlayer player, bool p1, int p2) => SpecialAbilityFillMeter(player.ScriptId, p1, p2); - public void SpecialAbilityFillMeter(int _player, bool _p1, int _p2) + public void SpecialAbilityFillMeter(uint _player, bool _p1, int _p2) { unsafe { - if (fn__specialAbilityFillMeter == null) fn__specialAbilityFillMeter = (delegate* unmanaged[Cdecl]) funcTable[0x3DACA8DDC6FD4980UL]; + if (fn__specialAbilityFillMeter == null) fn__specialAbilityFillMeter = (delegate* unmanaged[Cdecl]) funcTable[0x3DACA8DDC6FD4980UL]; var success = false; fn__specialAbilityFillMeter(&success, _player, (byte) (_p1 ? 1 : 0), _p2); if (!success) throw new Exception("Native execution failed"); @@ -84558,10 +84545,10 @@ public void SpecialAbilityFillMeter(int _player, bool _p1, int _p2) } public void SpecialAbilityDepleteMeter(IPlayer player, bool p1, int p2) => SpecialAbilityDepleteMeter(player.ScriptId, p1, p2); - public void SpecialAbilityDepleteMeter(int _player, bool _p1, int _p2) + public void SpecialAbilityDepleteMeter(uint _player, bool _p1, int _p2) { unsafe { - if (fn__specialAbilityDepleteMeter == null) fn__specialAbilityDepleteMeter = (delegate* unmanaged[Cdecl]) funcTable[0x1D506DBBBC51E64BUL]; + if (fn__specialAbilityDepleteMeter == null) fn__specialAbilityDepleteMeter = (delegate* unmanaged[Cdecl]) funcTable[0x1D506DBBBC51E64BUL]; var success = false; fn__specialAbilityDepleteMeter(&success, _player, (byte) (_p1 ? 1 : 0), _p2); if (!success) throw new Exception("Native execution failed"); @@ -84600,10 +84587,10 @@ public bool IsSpecialAbilityUnlocked(uint _playerModel) } public bool IsSpecialAbilityActive(IPlayer player, int p1) => IsSpecialAbilityActive(player.ScriptId, p1); - public bool IsSpecialAbilityActive(int _player, int _p1) + public bool IsSpecialAbilityActive(uint _player, int _p1) { unsafe { - if (fn__isSpecialAbilityActive == null) fn__isSpecialAbilityActive = (delegate* unmanaged[Cdecl]) funcTable[0x3E5F7FC85D854E15UL]; + if (fn__isSpecialAbilityActive == null) fn__isSpecialAbilityActive = (delegate* unmanaged[Cdecl]) funcTable[0x3E5F7FC85D854E15UL]; var success = false; var result = fn__isSpecialAbilityActive(&success, _player, _p1); if (!success) throw new Exception("Native execution failed"); @@ -84612,10 +84599,10 @@ public bool IsSpecialAbilityActive(int _player, int _p1) } public bool IsSpecialAbilityMeterFull(IPlayer player, int p1) => IsSpecialAbilityMeterFull(player.ScriptId, p1); - public bool IsSpecialAbilityMeterFull(int _player, int _p1) + public bool IsSpecialAbilityMeterFull(uint _player, int _p1) { unsafe { - if (fn__isSpecialAbilityMeterFull == null) fn__isSpecialAbilityMeterFull = (delegate* unmanaged[Cdecl]) funcTable[0x05A1FE504B7F2587UL]; + if (fn__isSpecialAbilityMeterFull == null) fn__isSpecialAbilityMeterFull = (delegate* unmanaged[Cdecl]) funcTable[0x05A1FE504B7F2587UL]; var success = false; var result = fn__isSpecialAbilityMeterFull(&success, _player, _p1); if (!success) throw new Exception("Native execution failed"); @@ -84624,10 +84611,10 @@ public bool IsSpecialAbilityMeterFull(int _player, int _p1) } public void EnableSpecialAbility(IPlayer player, bool toggle, int p2) => EnableSpecialAbility(player.ScriptId, toggle, p2); - public void EnableSpecialAbility(int _player, bool _toggle, int _p2) + public void EnableSpecialAbility(uint _player, bool _toggle, int _p2) { unsafe { - if (fn__enableSpecialAbility == null) fn__enableSpecialAbility = (delegate* unmanaged[Cdecl]) funcTable[0x181EC197DAEFE121UL]; + if (fn__enableSpecialAbility == null) fn__enableSpecialAbility = (delegate* unmanaged[Cdecl]) funcTable[0x181EC197DAEFE121UL]; var success = false; fn__enableSpecialAbility(&success, _player, (byte) (_toggle ? 1 : 0), _p2); if (!success) throw new Exception("Native execution failed"); @@ -84635,10 +84622,10 @@ public void EnableSpecialAbility(int _player, bool _toggle, int _p2) } public bool IsSpecialAbilityEnabled(IPlayer player, int p1) => IsSpecialAbilityEnabled(player.ScriptId, p1); - public bool IsSpecialAbilityEnabled(int _player, int _p1) + public bool IsSpecialAbilityEnabled(uint _player, int _p1) { unsafe { - if (fn__isSpecialAbilityEnabled == null) fn__isSpecialAbilityEnabled = (delegate* unmanaged[Cdecl]) funcTable[0xB1D200FE26AEF3CBUL]; + if (fn__isSpecialAbilityEnabled == null) fn__isSpecialAbilityEnabled = (delegate* unmanaged[Cdecl]) funcTable[0xB1D200FE26AEF3CBUL]; var success = false; var result = fn__isSpecialAbilityEnabled(&success, _player, _p1); if (!success) throw new Exception("Native execution failed"); @@ -84657,10 +84644,10 @@ public void SetSpecialAbilityMultiplier(float _multiplier) } public void UpdateSpecialAbilityFromStat(IPlayer player, int p1) => UpdateSpecialAbilityFromStat(player.ScriptId, p1); - public void UpdateSpecialAbilityFromStat(int _player, int _p1) + public void UpdateSpecialAbilityFromStat(uint _player, int _p1) { unsafe { - if (fn__updateSpecialAbilityFromStat == null) fn__updateSpecialAbilityFromStat = (delegate* unmanaged[Cdecl]) funcTable[0xFFEE8FA29AB9A18EUL]; + if (fn__updateSpecialAbilityFromStat == null) fn__updateSpecialAbilityFromStat = (delegate* unmanaged[Cdecl]) funcTable[0xFFEE8FA29AB9A18EUL]; var success = false; fn__updateSpecialAbilityFromStat(&success, _player, _p1); if (!success) throw new Exception("Native execution failed"); @@ -84668,10 +84655,10 @@ public void UpdateSpecialAbilityFromStat(int _player, int _p1) } public bool GetIsPlayerDrivingOnHighway(IPlayer player) => GetIsPlayerDrivingOnHighway(player.ScriptId); - public bool GetIsPlayerDrivingOnHighway(int _player) + public bool GetIsPlayerDrivingOnHighway(uint _player) { unsafe { - if (fn__getIsPlayerDrivingOnHighway == null) fn__getIsPlayerDrivingOnHighway = (delegate* unmanaged[Cdecl]) funcTable[0x5FC472C501CCADB3UL]; + if (fn__getIsPlayerDrivingOnHighway == null) fn__getIsPlayerDrivingOnHighway = (delegate* unmanaged[Cdecl]) funcTable[0x5FC472C501CCADB3UL]; var success = false; var result = fn__getIsPlayerDrivingOnHighway(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -84680,10 +84667,10 @@ public bool GetIsPlayerDrivingOnHighway(int _player) } public bool GetIsPlayerDrivingWreckless(IPlayer player, int p1) => GetIsPlayerDrivingWreckless(player.ScriptId, p1); - public bool GetIsPlayerDrivingWreckless(int _player, int _p1) + public bool GetIsPlayerDrivingWreckless(uint _player, int _p1) { unsafe { - if (fn__getIsPlayerDrivingWreckless == null) fn__getIsPlayerDrivingWreckless = (delegate* unmanaged[Cdecl]) funcTable[0xF10B44FD479D69F3UL]; + if (fn__getIsPlayerDrivingWreckless == null) fn__getIsPlayerDrivingWreckless = (delegate* unmanaged[Cdecl]) funcTable[0xF10B44FD479D69F3UL]; var success = false; var result = fn__getIsPlayerDrivingWreckless(&success, _player, _p1); if (!success) throw new Exception("Native execution failed"); @@ -84692,10 +84679,10 @@ public bool GetIsPlayerDrivingWreckless(int _player, int _p1) } public bool GetIsMoppingAreaFreeInFrontOfPlayer(IPlayer player, float p1) => GetIsMoppingAreaFreeInFrontOfPlayer(player.ScriptId, p1); - public bool GetIsMoppingAreaFreeInFrontOfPlayer(int _player, float _p1) + public bool GetIsMoppingAreaFreeInFrontOfPlayer(uint _player, float _p1) { unsafe { - if (fn__getIsMoppingAreaFreeInFrontOfPlayer == null) fn__getIsMoppingAreaFreeInFrontOfPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xDD2620B7B9D16FF1UL]; + if (fn__getIsMoppingAreaFreeInFrontOfPlayer == null) fn__getIsMoppingAreaFreeInFrontOfPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xDD2620B7B9D16FF1UL]; var success = false; var result = fn__getIsMoppingAreaFreeInFrontOfPlayer(&success, _player, _p1); if (!success) throw new Exception("Native execution failed"); @@ -84704,10 +84691,10 @@ public bool GetIsMoppingAreaFreeInFrontOfPlayer(int _player, float _p1) } public void StartPlayerTeleport(IPlayer player, float x, float y, float z, float heading, bool p5, bool findCollisionLand, bool p7) => StartPlayerTeleport(player.ScriptId, x, y, z, heading, p5, findCollisionLand, p7); - public void StartPlayerTeleport(int _player, float _x, float _y, float _z, float _heading, bool _p5, bool _findCollisionLand, bool _p7) + public void StartPlayerTeleport(uint _player, float _x, float _y, float _z, float _heading, bool _p5, bool _findCollisionLand, bool _p7) { unsafe { - if (fn__startPlayerTeleport == null) fn__startPlayerTeleport = (delegate* unmanaged[Cdecl]) funcTable[0xAD15F075A4DA0FDEUL]; + if (fn__startPlayerTeleport == null) fn__startPlayerTeleport = (delegate* unmanaged[Cdecl]) funcTable[0xAD15F075A4DA0FDEUL]; var success = false; fn__startPlayerTeleport(&success, _player, _x, _y, _z, _heading, (byte) (_p5 ? 1 : 0), (byte) (_findCollisionLand ? 1 : 0), (byte) (_p7 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -84715,10 +84702,10 @@ public void StartPlayerTeleport(int _player, float _x, float _y, float _z, float } public bool UpdatePlayerTeleport(IPlayer player) => UpdatePlayerTeleport(player.ScriptId); - public bool UpdatePlayerTeleport(int _player) + public bool UpdatePlayerTeleport(uint _player) { unsafe { - if (fn__updatePlayerTeleport == null) fn__updatePlayerTeleport = (delegate* unmanaged[Cdecl]) funcTable[0xE23D5873C2394C61UL]; + if (fn__updatePlayerTeleport == null) fn__updatePlayerTeleport = (delegate* unmanaged[Cdecl]) funcTable[0xE23D5873C2394C61UL]; var success = false; var result = fn__updatePlayerTeleport(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -84748,10 +84735,10 @@ public bool IsPlayerTeleportActive() } public float GetPlayerCurrentStealthNoise(IPlayer player) => GetPlayerCurrentStealthNoise(player.ScriptId); - public float GetPlayerCurrentStealthNoise(int _player) + public float GetPlayerCurrentStealthNoise(uint _player) { unsafe { - if (fn__getPlayerCurrentStealthNoise == null) fn__getPlayerCurrentStealthNoise = (delegate* unmanaged[Cdecl]) funcTable[0x2F395D61F3A1F877UL]; + if (fn__getPlayerCurrentStealthNoise == null) fn__getPlayerCurrentStealthNoise = (delegate* unmanaged[Cdecl]) funcTable[0x2F395D61F3A1F877UL]; var success = false; var result = fn__getPlayerCurrentStealthNoise(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -84760,10 +84747,10 @@ public float GetPlayerCurrentStealthNoise(int _player) } public void SetPlayerHealthRechargeMultiplier(IPlayer player, float regenRate) => SetPlayerHealthRechargeMultiplier(player.ScriptId, regenRate); - public void SetPlayerHealthRechargeMultiplier(int _player, float _regenRate) + public void SetPlayerHealthRechargeMultiplier(uint _player, float _regenRate) { unsafe { - if (fn__setPlayerHealthRechargeMultiplier == null) fn__setPlayerHealthRechargeMultiplier = (delegate* unmanaged[Cdecl]) funcTable[0x5DB660B38DD98A31UL]; + if (fn__setPlayerHealthRechargeMultiplier == null) fn__setPlayerHealthRechargeMultiplier = (delegate* unmanaged[Cdecl]) funcTable[0x5DB660B38DD98A31UL]; var success = false; fn__setPlayerHealthRechargeMultiplier(&success, _player, _regenRate); if (!success) throw new Exception("Native execution failed"); @@ -84771,10 +84758,10 @@ public void SetPlayerHealthRechargeMultiplier(int _player, float _regenRate) } public float GetPlayerHealthRechargeMaxPercent(IPlayer player) => GetPlayerHealthRechargeMaxPercent(player.ScriptId); - public float GetPlayerHealthRechargeMaxPercent(int _player) + public float GetPlayerHealthRechargeMaxPercent(uint _player) { unsafe { - if (fn__getPlayerHealthRechargeMaxPercent == null) fn__getPlayerHealthRechargeMaxPercent = (delegate* unmanaged[Cdecl]) funcTable[0x8BC515BAE4AAF8FFUL]; + if (fn__getPlayerHealthRechargeMaxPercent == null) fn__getPlayerHealthRechargeMaxPercent = (delegate* unmanaged[Cdecl]) funcTable[0x8BC515BAE4AAF8FFUL]; var success = false; var result = fn__getPlayerHealthRechargeMaxPercent(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -84783,10 +84770,10 @@ public float GetPlayerHealthRechargeMaxPercent(int _player) } public void SetPlayerHealthRechargeMaxPercent(IPlayer player, float limit) => SetPlayerHealthRechargeMaxPercent(player.ScriptId, limit); - public void SetPlayerHealthRechargeMaxPercent(int _player, float _limit) + public void SetPlayerHealthRechargeMaxPercent(uint _player, float _limit) { unsafe { - if (fn__setPlayerHealthRechargeMaxPercent == null) fn__setPlayerHealthRechargeMaxPercent = (delegate* unmanaged[Cdecl]) funcTable[0xC388A0F065F5BC34UL]; + if (fn__setPlayerHealthRechargeMaxPercent == null) fn__setPlayerHealthRechargeMaxPercent = (delegate* unmanaged[Cdecl]) funcTable[0xC388A0F065F5BC34UL]; var success = false; fn__setPlayerHealthRechargeMaxPercent(&success, _player, _limit); if (!success) throw new Exception("Native execution failed"); @@ -84794,10 +84781,10 @@ public void SetPlayerHealthRechargeMaxPercent(int _player, float _limit) } public void SetPlayerFallDistanceToTriggerRagdollOverride(IPlayer player, float p1) => SetPlayerFallDistanceToTriggerRagdollOverride(player.ScriptId, p1); - public void SetPlayerFallDistanceToTriggerRagdollOverride(int _player, float _p1) + public void SetPlayerFallDistanceToTriggerRagdollOverride(uint _player, float _p1) { unsafe { - if (fn__setPlayerFallDistanceToTriggerRagdollOverride == null) fn__setPlayerFallDistanceToTriggerRagdollOverride = (delegate* unmanaged[Cdecl]) funcTable[0xEFD79FA81DFBA9CBUL]; + if (fn__setPlayerFallDistanceToTriggerRagdollOverride == null) fn__setPlayerFallDistanceToTriggerRagdollOverride = (delegate* unmanaged[Cdecl]) funcTable[0xEFD79FA81DFBA9CBUL]; var success = false; fn__setPlayerFallDistanceToTriggerRagdollOverride(&success, _player, _p1); if (!success) throw new Exception("Native execution failed"); @@ -84805,10 +84792,10 @@ public void SetPlayerFallDistanceToTriggerRagdollOverride(int _player, float _p1 } public void SetPlayerWeaponDamageModifier(IPlayer player, float modifier) => SetPlayerWeaponDamageModifier(player.ScriptId, modifier); - public void SetPlayerWeaponDamageModifier(int _player, float _modifier) + public void SetPlayerWeaponDamageModifier(uint _player, float _modifier) { unsafe { - if (fn__setPlayerWeaponDamageModifier == null) fn__setPlayerWeaponDamageModifier = (delegate* unmanaged[Cdecl]) funcTable[0xCE07B9F7817AADA3UL]; + if (fn__setPlayerWeaponDamageModifier == null) fn__setPlayerWeaponDamageModifier = (delegate* unmanaged[Cdecl]) funcTable[0xCE07B9F7817AADA3UL]; var success = false; fn__setPlayerWeaponDamageModifier(&success, _player, _modifier); if (!success) throw new Exception("Native execution failed"); @@ -84816,10 +84803,10 @@ public void SetPlayerWeaponDamageModifier(int _player, float _modifier) } public void SetPlayerWeaponDefenseModifier(IPlayer player, float modifier) => SetPlayerWeaponDefenseModifier(player.ScriptId, modifier); - public void SetPlayerWeaponDefenseModifier(int _player, float _modifier) + public void SetPlayerWeaponDefenseModifier(uint _player, float _modifier) { unsafe { - if (fn__setPlayerWeaponDefenseModifier == null) fn__setPlayerWeaponDefenseModifier = (delegate* unmanaged[Cdecl]) funcTable[0x2D83BC011CA14A3CUL]; + if (fn__setPlayerWeaponDefenseModifier == null) fn__setPlayerWeaponDefenseModifier = (delegate* unmanaged[Cdecl]) funcTable[0x2D83BC011CA14A3CUL]; var success = false; fn__setPlayerWeaponDefenseModifier(&success, _player, _modifier); if (!success) throw new Exception("Native execution failed"); @@ -84827,10 +84814,10 @@ public void SetPlayerWeaponDefenseModifier(int _player, float _modifier) } public void SetPlayerWeaponMinigunDefenseModifier(IPlayer player, float modifier) => SetPlayerWeaponMinigunDefenseModifier(player.ScriptId, modifier); - public void SetPlayerWeaponMinigunDefenseModifier(int _player, float _modifier) + public void SetPlayerWeaponMinigunDefenseModifier(uint _player, float _modifier) { unsafe { - if (fn__setPlayerWeaponMinigunDefenseModifier == null) fn__setPlayerWeaponMinigunDefenseModifier = (delegate* unmanaged[Cdecl]) funcTable[0xBCFDE9EDE4CF27DCUL]; + if (fn__setPlayerWeaponMinigunDefenseModifier == null) fn__setPlayerWeaponMinigunDefenseModifier = (delegate* unmanaged[Cdecl]) funcTable[0xBCFDE9EDE4CF27DCUL]; var success = false; fn__setPlayerWeaponMinigunDefenseModifier(&success, _player, _modifier); if (!success) throw new Exception("Native execution failed"); @@ -84838,10 +84825,10 @@ public void SetPlayerWeaponMinigunDefenseModifier(int _player, float _modifier) } public void SetPlayerMeleeWeaponDamageModifier(IPlayer player, float modifier, bool p2) => SetPlayerMeleeWeaponDamageModifier(player.ScriptId, modifier, p2); - public void SetPlayerMeleeWeaponDamageModifier(int _player, float _modifier, bool _p2) + public void SetPlayerMeleeWeaponDamageModifier(uint _player, float _modifier, bool _p2) { unsafe { - if (fn__setPlayerMeleeWeaponDamageModifier == null) fn__setPlayerMeleeWeaponDamageModifier = (delegate* unmanaged[Cdecl]) funcTable[0x4A3DC7ECCC321032UL]; + if (fn__setPlayerMeleeWeaponDamageModifier == null) fn__setPlayerMeleeWeaponDamageModifier = (delegate* unmanaged[Cdecl]) funcTable[0x4A3DC7ECCC321032UL]; var success = false; fn__setPlayerMeleeWeaponDamageModifier(&success, _player, _modifier, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -84849,10 +84836,10 @@ public void SetPlayerMeleeWeaponDamageModifier(int _player, float _modifier, boo } public void SetPlayerMeleeWeaponDefenseModifier(IPlayer player, float modifier) => SetPlayerMeleeWeaponDefenseModifier(player.ScriptId, modifier); - public void SetPlayerMeleeWeaponDefenseModifier(int _player, float _modifier) + public void SetPlayerMeleeWeaponDefenseModifier(uint _player, float _modifier) { unsafe { - if (fn__setPlayerMeleeWeaponDefenseModifier == null) fn__setPlayerMeleeWeaponDefenseModifier = (delegate* unmanaged[Cdecl]) funcTable[0xAE540335B4ABC4E2UL]; + if (fn__setPlayerMeleeWeaponDefenseModifier == null) fn__setPlayerMeleeWeaponDefenseModifier = (delegate* unmanaged[Cdecl]) funcTable[0xAE540335B4ABC4E2UL]; var success = false; fn__setPlayerMeleeWeaponDefenseModifier(&success, _player, _modifier); if (!success) throw new Exception("Native execution failed"); @@ -84860,10 +84847,10 @@ public void SetPlayerMeleeWeaponDefenseModifier(int _player, float _modifier) } public void SetPlayerVehicleDamageModifier(IPlayer player, float modifier) => SetPlayerVehicleDamageModifier(player.ScriptId, modifier); - public void SetPlayerVehicleDamageModifier(int _player, float _modifier) + public void SetPlayerVehicleDamageModifier(uint _player, float _modifier) { unsafe { - if (fn__setPlayerVehicleDamageModifier == null) fn__setPlayerVehicleDamageModifier = (delegate* unmanaged[Cdecl]) funcTable[0xA50E117CDDF82F0CUL]; + if (fn__setPlayerVehicleDamageModifier == null) fn__setPlayerVehicleDamageModifier = (delegate* unmanaged[Cdecl]) funcTable[0xA50E117CDDF82F0CUL]; var success = false; fn__setPlayerVehicleDamageModifier(&success, _player, _modifier); if (!success) throw new Exception("Native execution failed"); @@ -84871,10 +84858,10 @@ public void SetPlayerVehicleDamageModifier(int _player, float _modifier) } public void SetPlayerVehicleDefenseModifier(IPlayer player, float modifier) => SetPlayerVehicleDefenseModifier(player.ScriptId, modifier); - public void SetPlayerVehicleDefenseModifier(int _player, float _modifier) + public void SetPlayerVehicleDefenseModifier(uint _player, float _modifier) { unsafe { - if (fn__setPlayerVehicleDefenseModifier == null) fn__setPlayerVehicleDefenseModifier = (delegate* unmanaged[Cdecl]) funcTable[0x4C60E6EFDAFF2462UL]; + if (fn__setPlayerVehicleDefenseModifier == null) fn__setPlayerVehicleDefenseModifier = (delegate* unmanaged[Cdecl]) funcTable[0x4C60E6EFDAFF2462UL]; var success = false; fn__setPlayerVehicleDefenseModifier(&success, _player, _modifier); if (!success) throw new Exception("Native execution failed"); @@ -84882,10 +84869,10 @@ public void SetPlayerVehicleDefenseModifier(int _player, float _modifier) } public void SetPlayerMaxExplosiveDamage(IPlayer player, float p1) => SetPlayerMaxExplosiveDamage(player.ScriptId, p1); - public void SetPlayerMaxExplosiveDamage(int _player, float _p1) + public void SetPlayerMaxExplosiveDamage(uint _player, float _p1) { unsafe { - if (fn__setPlayerMaxExplosiveDamage == null) fn__setPlayerMaxExplosiveDamage = (delegate* unmanaged[Cdecl]) funcTable[0x8D768602ADEF2245UL]; + if (fn__setPlayerMaxExplosiveDamage == null) fn__setPlayerMaxExplosiveDamage = (delegate* unmanaged[Cdecl]) funcTable[0x8D768602ADEF2245UL]; var success = false; fn__setPlayerMaxExplosiveDamage(&success, _player, _p1); if (!success) throw new Exception("Native execution failed"); @@ -84893,10 +84880,10 @@ public void SetPlayerMaxExplosiveDamage(int _player, float _p1) } public void SetPlayerExplosiveDamageModifier(IPlayer player, int p1) => SetPlayerExplosiveDamageModifier(player.ScriptId, p1); - public void SetPlayerExplosiveDamageModifier(int _player, int _p1) + public void SetPlayerExplosiveDamageModifier(uint _player, int _p1) { unsafe { - if (fn__setPlayerExplosiveDamageModifier == null) fn__setPlayerExplosiveDamageModifier = (delegate* unmanaged[Cdecl]) funcTable[0xD821056B9ACF8052UL]; + if (fn__setPlayerExplosiveDamageModifier == null) fn__setPlayerExplosiveDamageModifier = (delegate* unmanaged[Cdecl]) funcTable[0xD821056B9ACF8052UL]; var success = false; fn__setPlayerExplosiveDamageModifier(&success, _player, _p1); if (!success) throw new Exception("Native execution failed"); @@ -84904,10 +84891,10 @@ public void SetPlayerExplosiveDamageModifier(int _player, int _p1) } public void SetPlayerWeaponTakedownDefenseModifier(IPlayer player, float p1) => SetPlayerWeaponTakedownDefenseModifier(player.ScriptId, p1); - public void SetPlayerWeaponTakedownDefenseModifier(int _player, float _p1) + public void SetPlayerWeaponTakedownDefenseModifier(uint _player, float _p1) { unsafe { - if (fn__setPlayerWeaponTakedownDefenseModifier == null) fn__setPlayerWeaponTakedownDefenseModifier = (delegate* unmanaged[Cdecl]) funcTable[0x31E90B8873A4CD3BUL]; + if (fn__setPlayerWeaponTakedownDefenseModifier == null) fn__setPlayerWeaponTakedownDefenseModifier = (delegate* unmanaged[Cdecl]) funcTable[0x31E90B8873A4CD3BUL]; var success = false; fn__setPlayerWeaponTakedownDefenseModifier(&success, _player, _p1); if (!success) throw new Exception("Native execution failed"); @@ -84915,10 +84902,10 @@ public void SetPlayerWeaponTakedownDefenseModifier(int _player, float _p1) } public void SetPlayerParachuteTintIndex(IPlayer player, int tintIndex) => SetPlayerParachuteTintIndex(player.ScriptId, tintIndex); - public void SetPlayerParachuteTintIndex(int _player, int _tintIndex) + public void SetPlayerParachuteTintIndex(uint _player, int _tintIndex) { unsafe { - if (fn__setPlayerParachuteTintIndex == null) fn__setPlayerParachuteTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xA3D0E54541D9A5E5UL]; + if (fn__setPlayerParachuteTintIndex == null) fn__setPlayerParachuteTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xA3D0E54541D9A5E5UL]; var success = false; fn__setPlayerParachuteTintIndex(&success, _player, _tintIndex); if (!success) throw new Exception("Native execution failed"); @@ -84926,10 +84913,10 @@ public void SetPlayerParachuteTintIndex(int _player, int _tintIndex) } public void GetPlayerParachuteTintIndex(IPlayer player, ref int tintIndex) => GetPlayerParachuteTintIndex(player.ScriptId, ref tintIndex); - public void GetPlayerParachuteTintIndex(int _player, ref int _tintIndex) + public void GetPlayerParachuteTintIndex(uint _player, ref int _tintIndex) { unsafe { - if (fn__getPlayerParachuteTintIndex == null) fn__getPlayerParachuteTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0x75D3F7A1B0D9B145UL]; + if (fn__getPlayerParachuteTintIndex == null) fn__getPlayerParachuteTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0x75D3F7A1B0D9B145UL]; var success = false; var ref_tintIndex = _tintIndex; fn__getPlayerParachuteTintIndex(&success, _player, &ref_tintIndex); @@ -84939,10 +84926,10 @@ public void GetPlayerParachuteTintIndex(int _player, ref int _tintIndex) } public void SetPlayerReserveParachuteTintIndex(IPlayer player, int index) => SetPlayerReserveParachuteTintIndex(player.ScriptId, index); - public void SetPlayerReserveParachuteTintIndex(int _player, int _index) + public void SetPlayerReserveParachuteTintIndex(uint _player, int _index) { unsafe { - if (fn__setPlayerReserveParachuteTintIndex == null) fn__setPlayerReserveParachuteTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xAF04C87F5DC1DF38UL]; + if (fn__setPlayerReserveParachuteTintIndex == null) fn__setPlayerReserveParachuteTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xAF04C87F5DC1DF38UL]; var success = false; fn__setPlayerReserveParachuteTintIndex(&success, _player, _index); if (!success) throw new Exception("Native execution failed"); @@ -84950,10 +84937,10 @@ public void SetPlayerReserveParachuteTintIndex(int _player, int _index) } public void GetPlayerReserveParachuteTintIndex(IPlayer player, ref int index) => GetPlayerReserveParachuteTintIndex(player.ScriptId, ref index); - public void GetPlayerReserveParachuteTintIndex(int _player, ref int _index) + public void GetPlayerReserveParachuteTintIndex(uint _player, ref int _index) { unsafe { - if (fn__getPlayerReserveParachuteTintIndex == null) fn__getPlayerReserveParachuteTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xD5A016BC3C09CF40UL]; + if (fn__getPlayerReserveParachuteTintIndex == null) fn__getPlayerReserveParachuteTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xD5A016BC3C09CF40UL]; var success = false; var ref_index = _index; fn__getPlayerReserveParachuteTintIndex(&success, _player, &ref_index); @@ -84963,10 +84950,10 @@ public void GetPlayerReserveParachuteTintIndex(int _player, ref int _index) } public void SetPlayerParachutePackTintIndex(IPlayer player, int tintIndex) => SetPlayerParachutePackTintIndex(player.ScriptId, tintIndex); - public void SetPlayerParachutePackTintIndex(int _player, int _tintIndex) + public void SetPlayerParachutePackTintIndex(uint _player, int _tintIndex) { unsafe { - if (fn__setPlayerParachutePackTintIndex == null) fn__setPlayerParachutePackTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0x93B0FB27C9A04060UL]; + if (fn__setPlayerParachutePackTintIndex == null) fn__setPlayerParachutePackTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0x93B0FB27C9A04060UL]; var success = false; fn__setPlayerParachutePackTintIndex(&success, _player, _tintIndex); if (!success) throw new Exception("Native execution failed"); @@ -84974,10 +84961,10 @@ public void SetPlayerParachutePackTintIndex(int _player, int _tintIndex) } public void GetPlayerParachutePackTintIndex(IPlayer player, ref int tintIndex) => GetPlayerParachutePackTintIndex(player.ScriptId, ref tintIndex); - public void GetPlayerParachutePackTintIndex(int _player, ref int _tintIndex) + public void GetPlayerParachutePackTintIndex(uint _player, ref int _tintIndex) { unsafe { - if (fn__getPlayerParachutePackTintIndex == null) fn__getPlayerParachutePackTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0x6E9C742F340CE5A2UL]; + if (fn__getPlayerParachutePackTintIndex == null) fn__getPlayerParachutePackTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0x6E9C742F340CE5A2UL]; var success = false; var ref_tintIndex = _tintIndex; fn__getPlayerParachutePackTintIndex(&success, _player, &ref_tintIndex); @@ -84987,10 +84974,10 @@ public void GetPlayerParachutePackTintIndex(int _player, ref int _tintIndex) } public void SetPlayerHasReserveParachute(IPlayer player) => SetPlayerHasReserveParachute(player.ScriptId); - public void SetPlayerHasReserveParachute(int _player) + public void SetPlayerHasReserveParachute(uint _player) { unsafe { - if (fn__setPlayerHasReserveParachute == null) fn__setPlayerHasReserveParachute = (delegate* unmanaged[Cdecl]) funcTable[0x7DDAB28D31FAC363UL]; + if (fn__setPlayerHasReserveParachute == null) fn__setPlayerHasReserveParachute = (delegate* unmanaged[Cdecl]) funcTable[0x7DDAB28D31FAC363UL]; var success = false; fn__setPlayerHasReserveParachute(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -84998,10 +84985,10 @@ public void SetPlayerHasReserveParachute(int _player) } public bool GetPlayerHasReserveParachute(IPlayer player) => GetPlayerHasReserveParachute(player.ScriptId); - public bool GetPlayerHasReserveParachute(int _player) + public bool GetPlayerHasReserveParachute(uint _player) { unsafe { - if (fn__getPlayerHasReserveParachute == null) fn__getPlayerHasReserveParachute = (delegate* unmanaged[Cdecl]) funcTable[0x5DDFE2FF727F3CA3UL]; + if (fn__getPlayerHasReserveParachute == null) fn__getPlayerHasReserveParachute = (delegate* unmanaged[Cdecl]) funcTable[0x5DDFE2FF727F3CA3UL]; var success = false; var result = fn__getPlayerHasReserveParachute(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -85010,10 +84997,10 @@ public bool GetPlayerHasReserveParachute(int _player) } public void SetPlayerCanLeaveParachuteSmokeTrail(IPlayer player, bool enabled) => SetPlayerCanLeaveParachuteSmokeTrail(player.ScriptId, enabled); - public void SetPlayerCanLeaveParachuteSmokeTrail(int _player, bool _enabled) + public void SetPlayerCanLeaveParachuteSmokeTrail(uint _player, bool _enabled) { unsafe { - if (fn__setPlayerCanLeaveParachuteSmokeTrail == null) fn__setPlayerCanLeaveParachuteSmokeTrail = (delegate* unmanaged[Cdecl]) funcTable[0xF401B182DBA8AF53UL]; + if (fn__setPlayerCanLeaveParachuteSmokeTrail == null) fn__setPlayerCanLeaveParachuteSmokeTrail = (delegate* unmanaged[Cdecl]) funcTable[0xF401B182DBA8AF53UL]; var success = false; fn__setPlayerCanLeaveParachuteSmokeTrail(&success, _player, (byte) (_enabled ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -85021,10 +85008,10 @@ public void SetPlayerCanLeaveParachuteSmokeTrail(int _player, bool _enabled) } public void SetPlayerParachuteSmokeTrailColor(IPlayer player, int r, int g, int b) => SetPlayerParachuteSmokeTrailColor(player.ScriptId, r, g, b); - public void SetPlayerParachuteSmokeTrailColor(int _player, int _r, int _g, int _b) + public void SetPlayerParachuteSmokeTrailColor(uint _player, int _r, int _g, int _b) { unsafe { - if (fn__setPlayerParachuteSmokeTrailColor == null) fn__setPlayerParachuteSmokeTrailColor = (delegate* unmanaged[Cdecl]) funcTable[0x8217FD371A4625CFUL]; + if (fn__setPlayerParachuteSmokeTrailColor == null) fn__setPlayerParachuteSmokeTrailColor = (delegate* unmanaged[Cdecl]) funcTable[0x8217FD371A4625CFUL]; var success = false; fn__setPlayerParachuteSmokeTrailColor(&success, _player, _r, _g, _b); if (!success) throw new Exception("Native execution failed"); @@ -85032,10 +85019,10 @@ public void SetPlayerParachuteSmokeTrailColor(int _player, int _r, int _g, int _ } public void GetPlayerParachuteSmokeTrailColor(IPlayer player, ref int r, ref int g, ref int b) => GetPlayerParachuteSmokeTrailColor(player.ScriptId, ref r, ref g, ref b); - public void GetPlayerParachuteSmokeTrailColor(int _player, ref int _r, ref int _g, ref int _b) + public void GetPlayerParachuteSmokeTrailColor(uint _player, ref int _r, ref int _g, ref int _b) { unsafe { - if (fn__getPlayerParachuteSmokeTrailColor == null) fn__getPlayerParachuteSmokeTrailColor = (delegate* unmanaged[Cdecl]) funcTable[0xEF56DBABD3CD4887UL]; + if (fn__getPlayerParachuteSmokeTrailColor == null) fn__getPlayerParachuteSmokeTrailColor = (delegate* unmanaged[Cdecl]) funcTable[0xEF56DBABD3CD4887UL]; var success = false; var ref_r = _r; var ref_g = _g; @@ -85049,10 +85036,10 @@ public void GetPlayerParachuteSmokeTrailColor(int _player, ref int _r, ref int _ } public void SetPlayerPhonePaletteIdx(IPlayer player, int flags) => SetPlayerPhonePaletteIdx(player.ScriptId, flags); - public void SetPlayerPhonePaletteIdx(int _player, int _flags) + public void SetPlayerPhonePaletteIdx(uint _player, int _flags) { unsafe { - if (fn__setPlayerPhonePaletteIdx == null) fn__setPlayerPhonePaletteIdx = (delegate* unmanaged[Cdecl]) funcTable[0x11D5F725F0E780E0UL]; + if (fn__setPlayerPhonePaletteIdx == null) fn__setPlayerPhonePaletteIdx = (delegate* unmanaged[Cdecl]) funcTable[0x11D5F725F0E780E0UL]; var success = false; fn__setPlayerPhonePaletteIdx(&success, _player, _flags); if (!success) throw new Exception("Native execution failed"); @@ -85060,10 +85047,10 @@ public void SetPlayerPhonePaletteIdx(int _player, int _flags) } public void SetPlayerNoiseMultiplier(IPlayer player, float multiplier) => SetPlayerNoiseMultiplier(player.ScriptId, multiplier); - public void SetPlayerNoiseMultiplier(int _player, float _multiplier) + public void SetPlayerNoiseMultiplier(uint _player, float _multiplier) { unsafe { - if (fn__setPlayerNoiseMultiplier == null) fn__setPlayerNoiseMultiplier = (delegate* unmanaged[Cdecl]) funcTable[0xDB89EF50FF25FCE9UL]; + if (fn__setPlayerNoiseMultiplier == null) fn__setPlayerNoiseMultiplier = (delegate* unmanaged[Cdecl]) funcTable[0xDB89EF50FF25FCE9UL]; var success = false; fn__setPlayerNoiseMultiplier(&success, _player, _multiplier); if (!success) throw new Exception("Native execution failed"); @@ -85071,23 +85058,23 @@ public void SetPlayerNoiseMultiplier(int _player, float _multiplier) } public void SetPlayerSneakingNoiseMultiplier(IPlayer player, float multiplier) => SetPlayerSneakingNoiseMultiplier(player.ScriptId, multiplier); - public void SetPlayerSneakingNoiseMultiplier(int _player, float _multiplier) + public void SetPlayerSneakingNoiseMultiplier(uint _player, float _multiplier) { unsafe { - if (fn__setPlayerSneakingNoiseMultiplier == null) fn__setPlayerSneakingNoiseMultiplier = (delegate* unmanaged[Cdecl]) funcTable[0xB2C1A29588A9F47CUL]; + if (fn__setPlayerSneakingNoiseMultiplier == null) fn__setPlayerSneakingNoiseMultiplier = (delegate* unmanaged[Cdecl]) funcTable[0xB2C1A29588A9F47CUL]; var success = false; fn__setPlayerSneakingNoiseMultiplier(&success, _player, _multiplier); if (!success) throw new Exception("Native execution failed"); } } - public bool CanPedHearPlayer(IPlayer player, int ped) => CanPedHearPlayer(player.ScriptId, ped); - public bool CanPedHearPlayer(int player, IPlayer ped) => CanPedHearPlayer(player, ped.ScriptId); + public bool CanPedHearPlayer(IPlayer player, uint ped) => CanPedHearPlayer(player.ScriptId, ped); + public bool CanPedHearPlayer(uint player, IPlayer ped) => CanPedHearPlayer(player, ped.ScriptId); public bool CanPedHearPlayer(IPlayer player, IPlayer ped) => CanPedHearPlayer(player.ScriptId, ped.ScriptId); - public bool CanPedHearPlayer(int _player, int _ped) + public bool CanPedHearPlayer(uint _player, uint _ped) { unsafe { - if (fn__canPedHearPlayer == null) fn__canPedHearPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xF297383AA91DCA29UL]; + if (fn__canPedHearPlayer == null) fn__canPedHearPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xF297383AA91DCA29UL]; var success = false; var result = fn__canPedHearPlayer(&success, _player, _ped); if (!success) throw new Exception("Native execution failed"); @@ -85096,10 +85083,10 @@ public bool CanPedHearPlayer(int _player, int _ped) } public void SimulatePlayerInputGait(IPlayer player, float amount, int gaitType, float speed, bool p4, bool p5) => SimulatePlayerInputGait(player.ScriptId, amount, gaitType, speed, p4, p5); - public void SimulatePlayerInputGait(int _player, float _amount, int _gaitType, float _speed, bool _p4, bool _p5) + public void SimulatePlayerInputGait(uint _player, float _amount, int _gaitType, float _speed, bool _p4, bool _p5) { unsafe { - if (fn__simulatePlayerInputGait == null) fn__simulatePlayerInputGait = (delegate* unmanaged[Cdecl]) funcTable[0x477D5D63E63ECA5DUL]; + if (fn__simulatePlayerInputGait == null) fn__simulatePlayerInputGait = (delegate* unmanaged[Cdecl]) funcTable[0x477D5D63E63ECA5DUL]; var success = false; fn__simulatePlayerInputGait(&success, _player, _amount, _gaitType, _speed, (byte) (_p4 ? 1 : 0), (byte) (_p5 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -85107,10 +85094,10 @@ public void SimulatePlayerInputGait(int _player, float _amount, int _gaitType, f } public void ResetPlayerInputGait(IPlayer player) => ResetPlayerInputGait(player.ScriptId); - public void ResetPlayerInputGait(int _player) + public void ResetPlayerInputGait(uint _player) { unsafe { - if (fn__resetPlayerInputGait == null) fn__resetPlayerInputGait = (delegate* unmanaged[Cdecl]) funcTable[0x19531C47A2ABD691UL]; + if (fn__resetPlayerInputGait == null) fn__resetPlayerInputGait = (delegate* unmanaged[Cdecl]) funcTable[0x19531C47A2ABD691UL]; var success = false; fn__resetPlayerInputGait(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -85118,10 +85105,10 @@ public void ResetPlayerInputGait(int _player) } public void SetAutoGiveParachuteWhenEnterPlane(IPlayer player, bool toggle) => SetAutoGiveParachuteWhenEnterPlane(player.ScriptId, toggle); - public void SetAutoGiveParachuteWhenEnterPlane(int _player, bool _toggle) + public void SetAutoGiveParachuteWhenEnterPlane(uint _player, bool _toggle) { unsafe { - if (fn__setAutoGiveParachuteWhenEnterPlane == null) fn__setAutoGiveParachuteWhenEnterPlane = (delegate* unmanaged[Cdecl]) funcTable[0x9F343285A00B4BB6UL]; + if (fn__setAutoGiveParachuteWhenEnterPlane == null) fn__setAutoGiveParachuteWhenEnterPlane = (delegate* unmanaged[Cdecl]) funcTable[0x9F343285A00B4BB6UL]; var success = false; fn__setAutoGiveParachuteWhenEnterPlane(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -85129,10 +85116,10 @@ public void SetAutoGiveParachuteWhenEnterPlane(int _player, bool _toggle) } public void SetAutoGiveScubaGearWhenExitVehicle(IPlayer player, bool toggle) => SetAutoGiveScubaGearWhenExitVehicle(player.ScriptId, toggle); - public void SetAutoGiveScubaGearWhenExitVehicle(int _player, bool _toggle) + public void SetAutoGiveScubaGearWhenExitVehicle(uint _player, bool _toggle) { unsafe { - if (fn__setAutoGiveScubaGearWhenExitVehicle == null) fn__setAutoGiveScubaGearWhenExitVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xD2B315B6689D537DUL]; + if (fn__setAutoGiveScubaGearWhenExitVehicle == null) fn__setAutoGiveScubaGearWhenExitVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xD2B315B6689D537DUL]; var success = false; fn__setAutoGiveScubaGearWhenExitVehicle(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -85140,10 +85127,10 @@ public void SetAutoGiveScubaGearWhenExitVehicle(int _player, bool _toggle) } public void SetPlayerStealthPerceptionModifier(IPlayer player, float value) => SetPlayerStealthPerceptionModifier(player.ScriptId, value); - public void SetPlayerStealthPerceptionModifier(int _player, float _value) + public void SetPlayerStealthPerceptionModifier(uint _player, float _value) { unsafe { - if (fn__setPlayerStealthPerceptionModifier == null) fn__setPlayerStealthPerceptionModifier = (delegate* unmanaged[Cdecl]) funcTable[0x4E9021C1FCDD507AUL]; + if (fn__setPlayerStealthPerceptionModifier == null) fn__setPlayerStealthPerceptionModifier = (delegate* unmanaged[Cdecl]) funcTable[0x4E9021C1FCDD507AUL]; var success = false; fn__setPlayerStealthPerceptionModifier(&success, _player, _value); if (!success) throw new Exception("Native execution failed"); @@ -85151,10 +85138,10 @@ public void SetPlayerStealthPerceptionModifier(int _player, float _value) } public bool IsRemotePlayerInNonClonedVehicle(IPlayer player) => IsRemotePlayerInNonClonedVehicle(player.ScriptId); - public bool IsRemotePlayerInNonClonedVehicle(int _player) + public bool IsRemotePlayerInNonClonedVehicle(uint _player) { unsafe { - if (fn__isRemotePlayerInNonClonedVehicle == null) fn__isRemotePlayerInNonClonedVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x690A61A6D13583F6UL]; + if (fn__isRemotePlayerInNonClonedVehicle == null) fn__isRemotePlayerInNonClonedVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x690A61A6D13583F6UL]; var success = false; var result = fn__isRemotePlayerInNonClonedVehicle(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -85163,10 +85150,10 @@ public bool IsRemotePlayerInNonClonedVehicle(int _player) } public void IncreasePlayerJumpSuppressionRange(IPlayer player) => IncreasePlayerJumpSuppressionRange(player.ScriptId); - public void IncreasePlayerJumpSuppressionRange(int _player) + public void IncreasePlayerJumpSuppressionRange(uint _player) { unsafe { - if (fn__increasePlayerJumpSuppressionRange == null) fn__increasePlayerJumpSuppressionRange = (delegate* unmanaged[Cdecl]) funcTable[0x9EDD76E87D5D51BAUL]; + if (fn__increasePlayerJumpSuppressionRange == null) fn__increasePlayerJumpSuppressionRange = (delegate* unmanaged[Cdecl]) funcTable[0x9EDD76E87D5D51BAUL]; var success = false; fn__increasePlayerJumpSuppressionRange(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -85174,10 +85161,10 @@ public void IncreasePlayerJumpSuppressionRange(int _player) } public void SetPlayerSimulateAiming(IPlayer player, bool toggle) => SetPlayerSimulateAiming(player.ScriptId, toggle); - public void SetPlayerSimulateAiming(int _player, bool _toggle) + public void SetPlayerSimulateAiming(uint _player, bool _toggle) { unsafe { - if (fn__setPlayerSimulateAiming == null) fn__setPlayerSimulateAiming = (delegate* unmanaged[Cdecl]) funcTable[0xC54C95DA968EC5B5UL]; + if (fn__setPlayerSimulateAiming == null) fn__setPlayerSimulateAiming = (delegate* unmanaged[Cdecl]) funcTable[0xC54C95DA968EC5B5UL]; var success = false; fn__setPlayerSimulateAiming(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -85185,10 +85172,10 @@ public void SetPlayerSimulateAiming(int _player, bool _toggle) } public void SetPlayerClothPinFrames(IPlayer player, int p1) => SetPlayerClothPinFrames(player.ScriptId, p1); - public void SetPlayerClothPinFrames(int _player, int _p1) + public void SetPlayerClothPinFrames(uint _player, int _p1) { unsafe { - if (fn__setPlayerClothPinFrames == null) fn__setPlayerClothPinFrames = (delegate* unmanaged[Cdecl]) funcTable[0x749FADDF97DFE930UL]; + if (fn__setPlayerClothPinFrames == null) fn__setPlayerClothPinFrames = (delegate* unmanaged[Cdecl]) funcTable[0x749FADDF97DFE930UL]; var success = false; fn__setPlayerClothPinFrames(&success, _player, _p1); if (!success) throw new Exception("Native execution failed"); @@ -85236,10 +85223,10 @@ public void PlayerDetachVirtualBound() } public bool HasPlayerBeenSpottedInStolenVehicle(IPlayer player) => HasPlayerBeenSpottedInStolenVehicle(player.ScriptId); - public bool HasPlayerBeenSpottedInStolenVehicle(int _player) + public bool HasPlayerBeenSpottedInStolenVehicle(uint _player) { unsafe { - if (fn__hasPlayerBeenSpottedInStolenVehicle == null) fn__hasPlayerBeenSpottedInStolenVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xD705740BB0A1CF4CUL]; + if (fn__hasPlayerBeenSpottedInStolenVehicle == null) fn__hasPlayerBeenSpottedInStolenVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xD705740BB0A1CF4CUL]; var success = false; var result = fn__hasPlayerBeenSpottedInStolenVehicle(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -85248,10 +85235,10 @@ public bool HasPlayerBeenSpottedInStolenVehicle(int _player) } public bool IsPlayerBattleAware(IPlayer player) => IsPlayerBattleAware(player.ScriptId); - public bool IsPlayerBattleAware(int _player) + public bool IsPlayerBattleAware(uint _player) { unsafe { - if (fn__isPlayerBattleAware == null) fn__isPlayerBattleAware = (delegate* unmanaged[Cdecl]) funcTable[0x38D28DA81E4E9BF9UL]; + if (fn__isPlayerBattleAware == null) fn__isPlayerBattleAware = (delegate* unmanaged[Cdecl]) funcTable[0x38D28DA81E4E9BF9UL]; var success = false; var result = fn__isPlayerBattleAware(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -85260,10 +85247,10 @@ public bool IsPlayerBattleAware(int _player) } public bool GetPlayerReceivedBattleEventRecently(IPlayer player, int p1, bool p2) => GetPlayerReceivedBattleEventRecently(player.ScriptId, p1, p2); - public bool GetPlayerReceivedBattleEventRecently(int _player, int _p1, bool _p2) + public bool GetPlayerReceivedBattleEventRecently(uint _player, int _p1, bool _p2) { unsafe { - if (fn__getPlayerReceivedBattleEventRecently == null) fn__getPlayerReceivedBattleEventRecently = (delegate* unmanaged[Cdecl]) funcTable[0xBC0753C9CA14B506UL]; + if (fn__getPlayerReceivedBattleEventRecently == null) fn__getPlayerReceivedBattleEventRecently = (delegate* unmanaged[Cdecl]) funcTable[0xBC0753C9CA14B506UL]; var success = false; var result = fn__getPlayerReceivedBattleEventRecently(&success, _player, _p1, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -85292,10 +85279,10 @@ public void ResetWorldBoundaryForPlayer() } public bool IsPlayerRidingTrain(IPlayer player) => IsPlayerRidingTrain(player.ScriptId); - public bool IsPlayerRidingTrain(int _player) + public bool IsPlayerRidingTrain(uint _player) { unsafe { - if (fn__isPlayerRidingTrain == null) fn__isPlayerRidingTrain = (delegate* unmanaged[Cdecl]) funcTable[0x4EC12697209F2196UL]; + if (fn__isPlayerRidingTrain == null) fn__isPlayerRidingTrain = (delegate* unmanaged[Cdecl]) funcTable[0x4EC12697209F2196UL]; var success = false; var result = fn__isPlayerRidingTrain(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -85304,10 +85291,10 @@ public bool IsPlayerRidingTrain(int _player) } public bool HasPlayerLeftTheWorld(IPlayer player) => HasPlayerLeftTheWorld(player.ScriptId); - public bool HasPlayerLeftTheWorld(int _player) + public bool HasPlayerLeftTheWorld(uint _player) { unsafe { - if (fn__hasPlayerLeftTheWorld == null) fn__hasPlayerLeftTheWorld = (delegate* unmanaged[Cdecl]) funcTable[0xD55DDFB47991A294UL]; + if (fn__hasPlayerLeftTheWorld == null) fn__hasPlayerLeftTheWorld = (delegate* unmanaged[Cdecl]) funcTable[0xD55DDFB47991A294UL]; var success = false; var result = fn__hasPlayerLeftTheWorld(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -85316,10 +85303,10 @@ public bool HasPlayerLeftTheWorld(int _player) } public void SetPlayerLeavePedBehind(IPlayer player, bool toggle) => SetPlayerLeavePedBehind(player.ScriptId, toggle); - public void SetPlayerLeavePedBehind(int _player, bool _toggle) + public void SetPlayerLeavePedBehind(uint _player, bool _toggle) { unsafe { - if (fn__setPlayerLeavePedBehind == null) fn__setPlayerLeavePedBehind = (delegate* unmanaged[Cdecl]) funcTable[0xFF300C7649724A0BUL]; + if (fn__setPlayerLeavePedBehind == null) fn__setPlayerLeavePedBehind = (delegate* unmanaged[Cdecl]) funcTable[0xFF300C7649724A0BUL]; var success = false; fn__setPlayerLeavePedBehind(&success, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -85327,10 +85314,10 @@ public void SetPlayerLeavePedBehind(int _player, bool _toggle) } public void SetPlayerParachuteVariationOverride(IPlayer player, int p1, int p2, int p3, bool p4) => SetPlayerParachuteVariationOverride(player.ScriptId, p1, p2, p3, p4); - public void SetPlayerParachuteVariationOverride(int _player, int _p1, int _p2, int _p3, bool _p4) + public void SetPlayerParachuteVariationOverride(uint _player, int _p1, int _p2, int _p3, bool _p4) { unsafe { - if (fn__setPlayerParachuteVariationOverride == null) fn__setPlayerParachuteVariationOverride = (delegate* unmanaged[Cdecl]) funcTable[0xD9284A8C0D48352CUL]; + if (fn__setPlayerParachuteVariationOverride == null) fn__setPlayerParachuteVariationOverride = (delegate* unmanaged[Cdecl]) funcTable[0xD9284A8C0D48352CUL]; var success = false; fn__setPlayerParachuteVariationOverride(&success, _player, _p1, _p2, _p3, (byte) (_p4 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -85338,10 +85325,10 @@ public void SetPlayerParachuteVariationOverride(int _player, int _p1, int _p2, i } public void ClearPlayerParachuteVariationOverride(IPlayer player) => ClearPlayerParachuteVariationOverride(player.ScriptId); - public void ClearPlayerParachuteVariationOverride(int _player) + public void ClearPlayerParachuteVariationOverride(uint _player) { unsafe { - if (fn__clearPlayerParachuteVariationOverride == null) fn__clearPlayerParachuteVariationOverride = (delegate* unmanaged[Cdecl]) funcTable[0x0F4CC924CF8C7B21UL]; + if (fn__clearPlayerParachuteVariationOverride == null) fn__clearPlayerParachuteVariationOverride = (delegate* unmanaged[Cdecl]) funcTable[0x0F4CC924CF8C7B21UL]; var success = false; fn__clearPlayerParachuteVariationOverride(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -85349,10 +85336,10 @@ public void ClearPlayerParachuteVariationOverride(int _player) } public void SetPlayerParachuteModelOverride(IPlayer player, uint model) => SetPlayerParachuteModelOverride(player.ScriptId, model); - public void SetPlayerParachuteModelOverride(int _player, uint _model) + public void SetPlayerParachuteModelOverride(uint _player, uint _model) { unsafe { - if (fn__setPlayerParachuteModelOverride == null) fn__setPlayerParachuteModelOverride = (delegate* unmanaged[Cdecl]) funcTable[0x977DB4641F6FC3DBUL]; + if (fn__setPlayerParachuteModelOverride == null) fn__setPlayerParachuteModelOverride = (delegate* unmanaged[Cdecl]) funcTable[0x977DB4641F6FC3DBUL]; var success = false; fn__setPlayerParachuteModelOverride(&success, _player, _model); if (!success) throw new Exception("Native execution failed"); @@ -85360,10 +85347,10 @@ public void SetPlayerParachuteModelOverride(int _player, uint _model) } public void SetPlayerReserveParachuteModelOverride(IPlayer player, uint model) => SetPlayerReserveParachuteModelOverride(player.ScriptId, model); - public void SetPlayerReserveParachuteModelOverride(int _player, uint _model) + public void SetPlayerReserveParachuteModelOverride(uint _player, uint _model) { unsafe { - if (fn__setPlayerReserveParachuteModelOverride == null) fn__setPlayerReserveParachuteModelOverride = (delegate* unmanaged[Cdecl]) funcTable[0x0764486AEDE748DBUL]; + if (fn__setPlayerReserveParachuteModelOverride == null) fn__setPlayerReserveParachuteModelOverride = (delegate* unmanaged[Cdecl]) funcTable[0x0764486AEDE748DBUL]; var success = false; fn__setPlayerReserveParachuteModelOverride(&success, _player, _model); if (!success) throw new Exception("Native execution failed"); @@ -85371,10 +85358,10 @@ public void SetPlayerReserveParachuteModelOverride(int _player, uint _model) } public uint GetPlayerParachuteModelOverride(IPlayer player) => GetPlayerParachuteModelOverride(player.ScriptId); - public uint GetPlayerParachuteModelOverride(int _player) + public uint GetPlayerParachuteModelOverride(uint _player) { unsafe { - if (fn__getPlayerParachuteModelOverride == null) fn__getPlayerParachuteModelOverride = (delegate* unmanaged[Cdecl]) funcTable[0xC219887CA3E65C41UL]; + if (fn__getPlayerParachuteModelOverride == null) fn__getPlayerParachuteModelOverride = (delegate* unmanaged[Cdecl]) funcTable[0xC219887CA3E65C41UL]; var success = false; var result = fn__getPlayerParachuteModelOverride(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -85383,10 +85370,10 @@ public uint GetPlayerParachuteModelOverride(int _player) } public uint GetPlayerReserveParachuteModelOverride(IPlayer player) => GetPlayerReserveParachuteModelOverride(player.ScriptId); - public uint GetPlayerReserveParachuteModelOverride(int _player) + public uint GetPlayerReserveParachuteModelOverride(uint _player) { unsafe { - if (fn__getPlayerReserveParachuteModelOverride == null) fn__getPlayerReserveParachuteModelOverride = (delegate* unmanaged[Cdecl]) funcTable[0x37FAAA68DCA9D08DUL]; + if (fn__getPlayerReserveParachuteModelOverride == null) fn__getPlayerReserveParachuteModelOverride = (delegate* unmanaged[Cdecl]) funcTable[0x37FAAA68DCA9D08DUL]; var success = false; var result = fn__getPlayerReserveParachuteModelOverride(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -85395,10 +85382,10 @@ public uint GetPlayerReserveParachuteModelOverride(int _player) } public void ClearPlayerParachuteModelOverride(IPlayer player) => ClearPlayerParachuteModelOverride(player.ScriptId); - public void ClearPlayerParachuteModelOverride(int _player) + public void ClearPlayerParachuteModelOverride(uint _player) { unsafe { - if (fn__clearPlayerParachuteModelOverride == null) fn__clearPlayerParachuteModelOverride = (delegate* unmanaged[Cdecl]) funcTable[0x8753997EB5F6EE3FUL]; + if (fn__clearPlayerParachuteModelOverride == null) fn__clearPlayerParachuteModelOverride = (delegate* unmanaged[Cdecl]) funcTable[0x8753997EB5F6EE3FUL]; var success = false; fn__clearPlayerParachuteModelOverride(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -85406,10 +85393,10 @@ public void ClearPlayerParachuteModelOverride(int _player) } public void ClearPlayerReserveParachuteModelOverride(IPlayer player) => ClearPlayerReserveParachuteModelOverride(player.ScriptId); - public void ClearPlayerReserveParachuteModelOverride(int _player) + public void ClearPlayerReserveParachuteModelOverride(uint _player) { unsafe { - if (fn__clearPlayerReserveParachuteModelOverride == null) fn__clearPlayerReserveParachuteModelOverride = (delegate* unmanaged[Cdecl]) funcTable[0x290D248E25815AE8UL]; + if (fn__clearPlayerReserveParachuteModelOverride == null) fn__clearPlayerReserveParachuteModelOverride = (delegate* unmanaged[Cdecl]) funcTable[0x290D248E25815AE8UL]; var success = false; fn__clearPlayerReserveParachuteModelOverride(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -85417,10 +85404,10 @@ public void ClearPlayerReserveParachuteModelOverride(int _player) } public void SetPlayerParachutePackModelOverride(IPlayer player, uint model) => SetPlayerParachutePackModelOverride(player.ScriptId, model); - public void SetPlayerParachutePackModelOverride(int _player, uint _model) + public void SetPlayerParachutePackModelOverride(uint _player, uint _model) { unsafe { - if (fn__setPlayerParachutePackModelOverride == null) fn__setPlayerParachutePackModelOverride = (delegate* unmanaged[Cdecl]) funcTable[0xDC80A4C2F18A2B64UL]; + if (fn__setPlayerParachutePackModelOverride == null) fn__setPlayerParachutePackModelOverride = (delegate* unmanaged[Cdecl]) funcTable[0xDC80A4C2F18A2B64UL]; var success = false; fn__setPlayerParachutePackModelOverride(&success, _player, _model); if (!success) throw new Exception("Native execution failed"); @@ -85428,10 +85415,10 @@ public void SetPlayerParachutePackModelOverride(int _player, uint _model) } public void ClearPlayerParachutePackModelOverride(IPlayer player) => ClearPlayerParachutePackModelOverride(player.ScriptId); - public void ClearPlayerParachutePackModelOverride(int _player) + public void ClearPlayerParachutePackModelOverride(uint _player) { unsafe { - if (fn__clearPlayerParachutePackModelOverride == null) fn__clearPlayerParachutePackModelOverride = (delegate* unmanaged[Cdecl]) funcTable[0x10C54E4389C12B42UL]; + if (fn__clearPlayerParachutePackModelOverride == null) fn__clearPlayerParachutePackModelOverride = (delegate* unmanaged[Cdecl]) funcTable[0x10C54E4389C12B42UL]; var success = false; fn__clearPlayerParachutePackModelOverride(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -85439,10 +85426,10 @@ public void ClearPlayerParachutePackModelOverride(int _player) } public void DisablePlayerVehicleRewards(IPlayer player) => DisablePlayerVehicleRewards(player.ScriptId); - public void DisablePlayerVehicleRewards(int _player) + public void DisablePlayerVehicleRewards(uint _player) { unsafe { - if (fn__disablePlayerVehicleRewards == null) fn__disablePlayerVehicleRewards = (delegate* unmanaged[Cdecl]) funcTable[0xC142BE3BB9CE125FUL]; + if (fn__disablePlayerVehicleRewards == null) fn__disablePlayerVehicleRewards = (delegate* unmanaged[Cdecl]) funcTable[0xC142BE3BB9CE125FUL]; var success = false; fn__disablePlayerVehicleRewards(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -85460,10 +85447,10 @@ public void SetPlayerSpectatedVehicleRadioOverride(bool _p0) } public void SetPlayerBluetoothState(IPlayer player, bool state) => SetPlayerBluetoothState(player.ScriptId, state); - public void SetPlayerBluetoothState(int _player, bool _state) + public void SetPlayerBluetoothState(uint _player, bool _state) { unsafe { - if (fn__setPlayerBluetoothState == null) fn__setPlayerBluetoothState = (delegate* unmanaged[Cdecl]) funcTable[0x5DC40A8869C22141UL]; + if (fn__setPlayerBluetoothState == null) fn__setPlayerBluetoothState = (delegate* unmanaged[Cdecl]) funcTable[0x5DC40A8869C22141UL]; var success = false; fn__setPlayerBluetoothState(&success, _player, (byte) (_state ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -85471,10 +85458,10 @@ public void SetPlayerBluetoothState(int _player, bool _state) } public bool IsPlayerBluetoothEnable(IPlayer player) => IsPlayerBluetoothEnable(player.ScriptId); - public bool IsPlayerBluetoothEnable(int _player) + public bool IsPlayerBluetoothEnable(uint _player) { unsafe { - if (fn__isPlayerBluetoothEnable == null) fn__isPlayerBluetoothEnable = (delegate* unmanaged[Cdecl]) funcTable[0x65FAEE425DE637B0UL]; + if (fn__isPlayerBluetoothEnable == null) fn__isPlayerBluetoothEnable = (delegate* unmanaged[Cdecl]) funcTable[0x65FAEE425DE637B0UL]; var success = false; var result = fn__isPlayerBluetoothEnable(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -85483,10 +85470,10 @@ public bool IsPlayerBluetoothEnable(int _player) } public void DisableCameraViewModeCycle(IPlayer player) => DisableCameraViewModeCycle(player.ScriptId); - public void DisableCameraViewModeCycle(int _player) + public void DisableCameraViewModeCycle(uint _player) { unsafe { - if (fn__disableCameraViewModeCycle == null) fn__disableCameraViewModeCycle = (delegate* unmanaged[Cdecl]) funcTable[0x5501B7A5CDB79D37UL]; + if (fn__disableCameraViewModeCycle == null) fn__disableCameraViewModeCycle = (delegate* unmanaged[Cdecl]) funcTable[0x5501B7A5CDB79D37UL]; var success = false; fn__disableCameraViewModeCycle(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -85494,10 +85481,10 @@ public void DisableCameraViewModeCycle(int _player) } public int GetPlayerFakeWantedLevel(IPlayer player) => GetPlayerFakeWantedLevel(player.ScriptId); - public int GetPlayerFakeWantedLevel(int _player) + public int GetPlayerFakeWantedLevel(uint _player) { unsafe { - if (fn__getPlayerFakeWantedLevel == null) fn__getPlayerFakeWantedLevel = (delegate* unmanaged[Cdecl]) funcTable[0x56105E599CAB0EFAUL]; + if (fn__getPlayerFakeWantedLevel == null) fn__getPlayerFakeWantedLevel = (delegate* unmanaged[Cdecl]) funcTable[0x56105E599CAB0EFAUL]; var success = false; var result = fn__getPlayerFakeWantedLevel(&success, _player); if (!success) throw new Exception("Native execution failed"); @@ -85505,13 +85492,13 @@ public int GetPlayerFakeWantedLevel(int _player) } } - public void SetPlayerCanDamagePlayer(IPlayer player1, int player2, bool toggle) => SetPlayerCanDamagePlayer(player1.ScriptId, player2, toggle); - public void SetPlayerCanDamagePlayer(int player1, IPlayer player2, bool toggle) => SetPlayerCanDamagePlayer(player1, player2.ScriptId, toggle); + public void SetPlayerCanDamagePlayer(IPlayer player1, uint player2, bool toggle) => SetPlayerCanDamagePlayer(player1.ScriptId, player2, toggle); + public void SetPlayerCanDamagePlayer(uint player1, IPlayer player2, bool toggle) => SetPlayerCanDamagePlayer(player1, player2.ScriptId, toggle); public void SetPlayerCanDamagePlayer(IPlayer player1, IPlayer player2, bool toggle) => SetPlayerCanDamagePlayer(player1.ScriptId, player2.ScriptId, toggle); - public void SetPlayerCanDamagePlayer(int _player1, int _player2, bool _toggle) + public void SetPlayerCanDamagePlayer(uint _player1, uint _player2, bool _toggle) { unsafe { - if (fn__setPlayerCanDamagePlayer == null) fn__setPlayerCanDamagePlayer = (delegate* unmanaged[Cdecl]) funcTable[0x55FCC0C390620314UL]; + if (fn__setPlayerCanDamagePlayer == null) fn__setPlayerCanDamagePlayer = (delegate* unmanaged[Cdecl]) funcTable[0x55FCC0C390620314UL]; var success = false; fn__setPlayerCanDamagePlayer(&success, _player1, _player2, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -85519,10 +85506,10 @@ public void SetPlayerCanDamagePlayer(int _player1, int _player2, bool _toggle) } public void SetApplyWaypointOfPlayer(IPlayer player, int hudColor) => SetApplyWaypointOfPlayer(player.ScriptId, hudColor); - public void SetApplyWaypointOfPlayer(int _player, int _hudColor) + public void SetApplyWaypointOfPlayer(uint _player, int _hudColor) { unsafe { - if (fn__setApplyWaypointOfPlayer == null) fn__setApplyWaypointOfPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x2382AB11450AE7BAUL]; + if (fn__setApplyWaypointOfPlayer == null) fn__setApplyWaypointOfPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x2382AB11450AE7BAUL]; var success = false; fn__setApplyWaypointOfPlayer(&success, _player, _hudColor); if (!success) throw new Exception("Native execution failed"); @@ -85560,26 +85547,26 @@ public void SetPlayerHomingDisabledForAllVehicleWeapons(int _p0, int _p1) } } - public void AddPlayerTargetableEntity(IPlayer player, int entity) => AddPlayerTargetableEntity(player.ScriptId, entity); - public void AddPlayerTargetableEntity(int player, IEntity entity) => AddPlayerTargetableEntity(player, entity.ScriptId); + public void AddPlayerTargetableEntity(IPlayer player, uint entity) => AddPlayerTargetableEntity(player.ScriptId, entity); + public void AddPlayerTargetableEntity(uint player, IEntity entity) => AddPlayerTargetableEntity(player, entity.ScriptId); public void AddPlayerTargetableEntity(IPlayer player, IEntity entity) => AddPlayerTargetableEntity(player.ScriptId, entity.ScriptId); - public void AddPlayerTargetableEntity(int _player, int _entity) + public void AddPlayerTargetableEntity(uint _player, uint _entity) { unsafe { - if (fn__addPlayerTargetableEntity == null) fn__addPlayerTargetableEntity = (delegate* unmanaged[Cdecl]) funcTable[0x9097EB6D4BB9A12AUL]; + if (fn__addPlayerTargetableEntity == null) fn__addPlayerTargetableEntity = (delegate* unmanaged[Cdecl]) funcTable[0x9097EB6D4BB9A12AUL]; var success = false; fn__addPlayerTargetableEntity(&success, _player, _entity); if (!success) throw new Exception("Native execution failed"); } } - public void RemovePlayerTargetableEntity(IPlayer player, int entity) => RemovePlayerTargetableEntity(player.ScriptId, entity); - public void RemovePlayerTargetableEntity(int player, IEntity entity) => RemovePlayerTargetableEntity(player, entity.ScriptId); + public void RemovePlayerTargetableEntity(IPlayer player, uint entity) => RemovePlayerTargetableEntity(player.ScriptId, entity); + public void RemovePlayerTargetableEntity(uint player, IEntity entity) => RemovePlayerTargetableEntity(player, entity.ScriptId); public void RemovePlayerTargetableEntity(IPlayer player, IEntity entity) => RemovePlayerTargetableEntity(player.ScriptId, entity.ScriptId); - public void RemovePlayerTargetableEntity(int _player, int _entity) + public void RemovePlayerTargetableEntity(uint _player, uint _entity) { unsafe { - if (fn__removePlayerTargetableEntity == null) fn__removePlayerTargetableEntity = (delegate* unmanaged[Cdecl]) funcTable[0x9F260BFB59ADBCA3UL]; + if (fn__removePlayerTargetableEntity == null) fn__removePlayerTargetableEntity = (delegate* unmanaged[Cdecl]) funcTable[0x9F260BFB59ADBCA3UL]; var success = false; fn__removePlayerTargetableEntity(&success, _player, _entity); if (!success) throw new Exception("Native execution failed"); @@ -85587,10 +85574,10 @@ public void RemovePlayerTargetableEntity(int _player, int _entity) } public void SetPlayerPreviousVariationData(IPlayer player, int p1, int p2, int p3, int p4, int p5) => SetPlayerPreviousVariationData(player.ScriptId, p1, p2, p3, p4, p5); - public void SetPlayerPreviousVariationData(int _player, int _p1, int _p2, int _p3, int _p4, int _p5) + public void SetPlayerPreviousVariationData(uint _player, int _p1, int _p2, int _p3, int _p4, int _p5) { unsafe { - if (fn__setPlayerPreviousVariationData == null) fn__setPlayerPreviousVariationData = (delegate* unmanaged[Cdecl]) funcTable[0x7BAE68775557AE0BUL]; + if (fn__setPlayerPreviousVariationData == null) fn__setPlayerPreviousVariationData = (delegate* unmanaged[Cdecl]) funcTable[0x7BAE68775557AE0BUL]; var success = false; fn__setPlayerPreviousVariationData(&success, _player, _p1, _p2, _p3, _p4, _p5); if (!success) throw new Exception("Native execution failed"); @@ -85662,9 +85649,9 @@ public void ReplayCheckForEventThisFrame(string _missionNameLabel, int _p1) unsafe { if (fn__replayCheckForEventThisFrame == null) fn__replayCheckForEventThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x208784099002BC30UL]; var success = false; - var ptr_missionNameLabel = _missionNameLabel == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_missionNameLabel); + var ptr_missionNameLabel = MemoryUtils.StringToHGlobalUtf8(_missionNameLabel); fn__replayCheckForEventThisFrame(&success, ptr_missionNameLabel, _p1); - if (ptr_missionNameLabel != IntPtr.Zero) Marshal.FreeHGlobal(ptr_missionNameLabel); + Marshal.FreeHGlobal(ptr_missionNameLabel); if (!success) throw new Exception("Native execution failed"); } } @@ -85799,9 +85786,9 @@ public void RegisterEffectForReplayEditor(string _p0, bool _p1) unsafe { if (fn__registerEffectForReplayEditor == null) fn__registerEffectForReplayEditor = (delegate* unmanaged[Cdecl]) funcTable[0x7E2BD3EF6C205F09UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__registerEffectForReplayEditor(&success, ptr_p0, (byte) (_p1 ? 1 : 0)); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -85862,9 +85849,9 @@ public void RequestScript(string _scriptName) unsafe { if (fn__requestScript == null) fn__requestScript = (delegate* unmanaged[Cdecl]) funcTable[0x6EB5F71AA68F2E8EUL]; var success = false; - var ptr_scriptName = _scriptName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scriptName); + var ptr_scriptName = MemoryUtils.StringToHGlobalUtf8(_scriptName); fn__requestScript(&success, ptr_scriptName); - if (ptr_scriptName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scriptName); + Marshal.FreeHGlobal(ptr_scriptName); if (!success) throw new Exception("Native execution failed"); } } @@ -85874,9 +85861,9 @@ public void SetScriptAsNoLongerNeeded(string _scriptName) unsafe { if (fn__setScriptAsNoLongerNeeded == null) fn__setScriptAsNoLongerNeeded = (delegate* unmanaged[Cdecl]) funcTable[0xC90D2DCACD56184CUL]; var success = false; - var ptr_scriptName = _scriptName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scriptName); + var ptr_scriptName = MemoryUtils.StringToHGlobalUtf8(_scriptName); fn__setScriptAsNoLongerNeeded(&success, ptr_scriptName); - if (ptr_scriptName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scriptName); + Marshal.FreeHGlobal(ptr_scriptName); if (!success) throw new Exception("Native execution failed"); } } @@ -85886,9 +85873,9 @@ public bool HasScriptLoaded(string _scriptName) unsafe { if (fn__hasScriptLoaded == null) fn__hasScriptLoaded = (delegate* unmanaged[Cdecl]) funcTable[0xE6CC9F3BA0FB9EF1UL]; var success = false; - var ptr_scriptName = _scriptName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scriptName); + var ptr_scriptName = MemoryUtils.StringToHGlobalUtf8(_scriptName); var result = fn__hasScriptLoaded(&success, ptr_scriptName); - if (ptr_scriptName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scriptName); + Marshal.FreeHGlobal(ptr_scriptName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -85899,9 +85886,9 @@ public bool DoesScriptExist(string _scriptName) unsafe { if (fn__doesScriptExist == null) fn__doesScriptExist = (delegate* unmanaged[Cdecl]) funcTable[0xFC04745FBE67C19AUL]; var success = false; - var ptr_scriptName = _scriptName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scriptName); + var ptr_scriptName = MemoryUtils.StringToHGlobalUtf8(_scriptName); var result = fn__doesScriptExist(&success, ptr_scriptName); - if (ptr_scriptName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scriptName); + Marshal.FreeHGlobal(ptr_scriptName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -85977,8 +85964,8 @@ public string GetNameOfScriptWithThisId(int _threadId) var success = false; var result = fn__getNameOfScriptWithThisId(&success, _threadId); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -86043,8 +86030,8 @@ public string GetThisScriptName() var success = false; var result = fn__getThisScriptName(&success); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -86205,9 +86192,9 @@ public void BgStartContext(string _contextName) unsafe { if (fn__bgStartContext == null) fn__bgStartContext = (delegate* unmanaged[Cdecl]) funcTable[0x9D5A25BADB742ACDUL]; var success = false; - var ptr_contextName = _contextName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contextName); + var ptr_contextName = MemoryUtils.StringToHGlobalUtf8(_contextName); fn__bgStartContext(&success, ptr_contextName); - if (ptr_contextName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contextName); + Marshal.FreeHGlobal(ptr_contextName); if (!success) throw new Exception("Native execution failed"); } } @@ -86217,9 +86204,9 @@ public void BgEndContext(string _contextName) unsafe { if (fn__bgEndContext == null) fn__bgEndContext = (delegate* unmanaged[Cdecl]) funcTable[0xDC2BACD920D0A0DDUL]; var success = false; - var ptr_contextName = _contextName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_contextName); + var ptr_contextName = MemoryUtils.StringToHGlobalUtf8(_contextName); fn__bgEndContext(&success, ptr_contextName); - if (ptr_contextName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_contextName); + Marshal.FreeHGlobal(ptr_contextName); if (!success) throw new Exception("Native execution failed"); } } @@ -86229,9 +86216,9 @@ public bool BgDoesLaunchParamExist(int _scriptIndex, string _p1) unsafe { if (fn__bgDoesLaunchParamExist == null) fn__bgDoesLaunchParamExist = (delegate* unmanaged[Cdecl]) funcTable[0x0F6F1EBBC4E1D5E6UL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); var result = fn__bgDoesLaunchParamExist(&success, _scriptIndex, ptr_p1); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -86242,9 +86229,9 @@ public int BgGetLaunchParamValue(int _scriptIndex, string _p1) unsafe { if (fn__bgGetLaunchParamValue == null) fn__bgGetLaunchParamValue = (delegate* unmanaged[Cdecl]) funcTable[0x22E21FBCFC88C149UL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); var result = fn__bgGetLaunchParamValue(&success, _scriptIndex, ptr_p1); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); return result; } @@ -86262,10 +86249,10 @@ public int BgGetScriptIdFromNameHash(uint _p0) } public int StartShapeTestLosProbe(float x1, float y1, float z1, float x2, float y2, float z2, int flags, IEntity entity, int p8) => StartShapeTestLosProbe(x1, y1, z1, x2, y2, z2, flags, entity.ScriptId, p8); - public int StartShapeTestLosProbe(float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, int _flags, int _entity, int _p8) + public int StartShapeTestLosProbe(float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, int _flags, uint _entity, int _p8) { unsafe { - if (fn__startShapeTestLosProbe == null) fn__startShapeTestLosProbe = (delegate* unmanaged[Cdecl]) funcTable[0x7EE9F5D83DD4F90EUL]; + if (fn__startShapeTestLosProbe == null) fn__startShapeTestLosProbe = (delegate* unmanaged[Cdecl]) funcTable[0x7EE9F5D83DD4F90EUL]; var success = false; var result = fn__startShapeTestLosProbe(&success, _x1, _y1, _z1, _x2, _y2, _z2, _flags, _entity, _p8); if (!success) throw new Exception("Native execution failed"); @@ -86274,10 +86261,10 @@ public int StartShapeTestLosProbe(float _x1, float _y1, float _z1, float _x2, fl } public int StartExpensiveSynchronousShapeTestLosProbe(float x1, float y1, float z1, float x2, float y2, float z2, int flags, IEntity entity, int p8) => StartExpensiveSynchronousShapeTestLosProbe(x1, y1, z1, x2, y2, z2, flags, entity.ScriptId, p8); - public int StartExpensiveSynchronousShapeTestLosProbe(float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, int _flags, int _entity, int _p8) + public int StartExpensiveSynchronousShapeTestLosProbe(float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, int _flags, uint _entity, int _p8) { unsafe { - if (fn__startExpensiveSynchronousShapeTestLosProbe == null) fn__startExpensiveSynchronousShapeTestLosProbe = (delegate* unmanaged[Cdecl]) funcTable[0x377906D8A31E5586UL]; + if (fn__startExpensiveSynchronousShapeTestLosProbe == null) fn__startExpensiveSynchronousShapeTestLosProbe = (delegate* unmanaged[Cdecl]) funcTable[0x377906D8A31E5586UL]; var success = false; var result = fn__startExpensiveSynchronousShapeTestLosProbe(&success, _x1, _y1, _z1, _x2, _y2, _z2, _flags, _entity, _p8); if (!success) throw new Exception("Native execution failed"); @@ -86286,10 +86273,10 @@ public int StartExpensiveSynchronousShapeTestLosProbe(float _x1, float _y1, floa } public int StartShapeTestBoundingBox(IEntity entity, int flags1, int flags2) => StartShapeTestBoundingBox(entity.ScriptId, flags1, flags2); - public int StartShapeTestBoundingBox(int _entity, int _flags1, int _flags2) + public int StartShapeTestBoundingBox(uint _entity, int _flags1, int _flags2) { unsafe { - if (fn__startShapeTestBoundingBox == null) fn__startShapeTestBoundingBox = (delegate* unmanaged[Cdecl]) funcTable[0x052837721A854EC7UL]; + if (fn__startShapeTestBoundingBox == null) fn__startShapeTestBoundingBox = (delegate* unmanaged[Cdecl]) funcTable[0x052837721A854EC7UL]; var success = false; var result = fn__startShapeTestBoundingBox(&success, _entity, _flags1, _flags2); if (!success) throw new Exception("Native execution failed"); @@ -86298,10 +86285,10 @@ public int StartShapeTestBoundingBox(int _entity, int _flags1, int _flags2) } public int StartShapeTestBox(float x, float y, float z, float dimX, float dimY, float dimZ, float rotX, float rotY, float rotZ, int p9, int flags, IEntity entity, int p12) => StartShapeTestBox(x, y, z, dimX, dimY, dimZ, rotX, rotY, rotZ, p9, flags, entity.ScriptId, p12); - public int StartShapeTestBox(float _x, float _y, float _z, float _dimX, float _dimY, float _dimZ, float _rotX, float _rotY, float _rotZ, int _p9, int _flags, int _entity, int _p12) + public int StartShapeTestBox(float _x, float _y, float _z, float _dimX, float _dimY, float _dimZ, float _rotX, float _rotY, float _rotZ, int _p9, int _flags, uint _entity, int _p12) { unsafe { - if (fn__startShapeTestBox == null) fn__startShapeTestBox = (delegate* unmanaged[Cdecl]) funcTable[0xFE466162C4401D18UL]; + if (fn__startShapeTestBox == null) fn__startShapeTestBox = (delegate* unmanaged[Cdecl]) funcTable[0xFE466162C4401D18UL]; var success = false; var result = fn__startShapeTestBox(&success, _x, _y, _z, _dimX, _dimY, _dimZ, _rotX, _rotY, _rotZ, _p9, _flags, _entity, _p12); if (!success) throw new Exception("Native execution failed"); @@ -86310,10 +86297,10 @@ public int StartShapeTestBox(float _x, float _y, float _z, float _dimX, float _d } public int StartShapeTestBound(IEntity entity, int flags1, int flags2) => StartShapeTestBound(entity.ScriptId, flags1, flags2); - public int StartShapeTestBound(int _entity, int _flags1, int _flags2) + public int StartShapeTestBound(uint _entity, int _flags1, int _flags2) { unsafe { - if (fn__startShapeTestBound == null) fn__startShapeTestBound = (delegate* unmanaged[Cdecl]) funcTable[0x37181417CE7C8900UL]; + if (fn__startShapeTestBound == null) fn__startShapeTestBound = (delegate* unmanaged[Cdecl]) funcTable[0x37181417CE7C8900UL]; var success = false; var result = fn__startShapeTestBound(&success, _entity, _flags1, _flags2); if (!success) throw new Exception("Native execution failed"); @@ -86322,10 +86309,10 @@ public int StartShapeTestBound(int _entity, int _flags1, int _flags2) } public int StartShapeTestCapsule(float x1, float y1, float z1, float x2, float y2, float z2, float radius, int flags, IEntity entity, int p9) => StartShapeTestCapsule(x1, y1, z1, x2, y2, z2, radius, flags, entity.ScriptId, p9); - public int StartShapeTestCapsule(float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, float _radius, int _flags, int _entity, int _p9) + public int StartShapeTestCapsule(float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, float _radius, int _flags, uint _entity, int _p9) { unsafe { - if (fn__startShapeTestCapsule == null) fn__startShapeTestCapsule = (delegate* unmanaged[Cdecl]) funcTable[0x28579D1B8F8AAC80UL]; + if (fn__startShapeTestCapsule == null) fn__startShapeTestCapsule = (delegate* unmanaged[Cdecl]) funcTable[0x28579D1B8F8AAC80UL]; var success = false; var result = fn__startShapeTestCapsule(&success, _x1, _y1, _z1, _x2, _y2, _z2, _radius, _flags, _entity, _p9); if (!success) throw new Exception("Native execution failed"); @@ -86334,10 +86321,10 @@ public int StartShapeTestCapsule(float _x1, float _y1, float _z1, float _x2, flo } public int StartShapeTestSweptSphere(float x1, float y1, float z1, float x2, float y2, float z2, float radius, int flags, IEntity entity, int p9) => StartShapeTestSweptSphere(x1, y1, z1, x2, y2, z2, radius, flags, entity.ScriptId, p9); - public int StartShapeTestSweptSphere(float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, float _radius, int _flags, int _entity, int _p9) + public int StartShapeTestSweptSphere(float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, float _radius, int _flags, uint _entity, int _p9) { unsafe { - if (fn__startShapeTestSweptSphere == null) fn__startShapeTestSweptSphere = (delegate* unmanaged[Cdecl]) funcTable[0xE6AC6C45FBE83004UL]; + if (fn__startShapeTestSweptSphere == null) fn__startShapeTestSweptSphere = (delegate* unmanaged[Cdecl]) funcTable[0xE6AC6C45FBE83004UL]; var success = false; var result = fn__startShapeTestSweptSphere(&success, _x1, _y1, _z1, _x2, _y2, _z2, _radius, _flags, _entity, _p9); if (!success) throw new Exception("Native execution failed"); @@ -86346,10 +86333,10 @@ public int StartShapeTestSweptSphere(float _x1, float _y1, float _z1, float _x2, } public int StartShapeTestMouseCursorLosProbe(ref Vector3 pVec1, ref Vector3 pVec2, int flag, IEntity entity, int flag2) => StartShapeTestMouseCursorLosProbe(ref pVec1, ref pVec2, flag, entity.ScriptId, flag2); - public int StartShapeTestMouseCursorLosProbe(ref Vector3 _pVec1, ref Vector3 _pVec2, int _flag, int _entity, int _flag2) + public int StartShapeTestMouseCursorLosProbe(ref Vector3 _pVec1, ref Vector3 _pVec2, int _flag, uint _entity, int _flag2) { unsafe { - if (fn__startShapeTestMouseCursorLosProbe == null) fn__startShapeTestMouseCursorLosProbe = (delegate* unmanaged[Cdecl]) funcTable[0xFF6BE494C7987F34UL]; + if (fn__startShapeTestMouseCursorLosProbe == null) fn__startShapeTestMouseCursorLosProbe = (delegate* unmanaged[Cdecl]) funcTable[0xFF6BE494C7987F34UL]; var success = false; var ref_pVec1 = _pVec1; var ref_pVec2 = _pVec2; @@ -86361,10 +86348,10 @@ public int StartShapeTestMouseCursorLosProbe(ref Vector3 _pVec1, ref Vector3 _pV } } - public int GetShapeTestResult(int _shapeTestHandle, ref bool _hit, ref Vector3 _endCoords, ref Vector3 _surfaceNormal, ref int _entityHit) + public int GetShapeTestResult(int _shapeTestHandle, ref bool _hit, ref Vector3 _endCoords, ref Vector3 _surfaceNormal, ref uint _entityHit) { unsafe { - if (fn__getShapeTestResult == null) fn__getShapeTestResult = (delegate* unmanaged[Cdecl]) funcTable[0x3D87450E15D98694UL]; + if (fn__getShapeTestResult == null) fn__getShapeTestResult = (delegate* unmanaged[Cdecl]) funcTable[0x3D87450E15D98694UL]; var success = false; var ref_hit = (byte) (_hit ? 1 : 0); var ref_endCoords = _endCoords; @@ -86380,10 +86367,10 @@ public int GetShapeTestResult(int _shapeTestHandle, ref bool _hit, ref Vector3 _ } } - public int GetShapeTestResultIncludingMaterial(int _shapeTestHandle, ref bool _hit, ref Vector3 _endCoords, ref Vector3 _surfaceNormal, ref uint _materialHash, ref int _entityHit) + public int GetShapeTestResultIncludingMaterial(int _shapeTestHandle, ref bool _hit, ref Vector3 _endCoords, ref Vector3 _surfaceNormal, ref uint _materialHash, ref uint _entityHit) { unsafe { - if (fn__getShapeTestResultIncludingMaterial == null) fn__getShapeTestResultIncludingMaterial = (delegate* unmanaged[Cdecl]) funcTable[0x65287525D951F6BEUL]; + if (fn__getShapeTestResultIncludingMaterial == null) fn__getShapeTestResultIncludingMaterial = (delegate* unmanaged[Cdecl]) funcTable[0x65287525D951F6BEUL]; var success = false; var ref_hit = (byte) (_hit ? 1 : 0); var ref_endCoords = _endCoords; @@ -86402,10 +86389,10 @@ public int GetShapeTestResultIncludingMaterial(int _shapeTestHandle, ref bool _h } public void ReleaseScriptGuidFromEntity(IEntity entityHit) => ReleaseScriptGuidFromEntity(entityHit.ScriptId); - public void ReleaseScriptGuidFromEntity(int _entityHit) + public void ReleaseScriptGuidFromEntity(uint _entityHit) { unsafe { - if (fn__releaseScriptGuidFromEntity == null) fn__releaseScriptGuidFromEntity = (delegate* unmanaged[Cdecl]) funcTable[0x2B3334BCA57CD799UL]; + if (fn__releaseScriptGuidFromEntity == null) fn__releaseScriptGuidFromEntity = (delegate* unmanaged[Cdecl]) funcTable[0x2B3334BCA57CD799UL]; var success = false; fn__releaseScriptGuidFromEntity(&success, _entityHit); if (!success) throw new Exception("Native execution failed"); @@ -86461,10 +86448,10 @@ public bool ScInboxMessageGetDataInt(int _p0, string _context, ref int _out) unsafe { if (fn__scInboxMessageGetDataInt == null) fn__scInboxMessageGetDataInt = (delegate* unmanaged[Cdecl]) funcTable[0xA00EFE4082C4056EUL]; var success = false; - var ptr_context = _context == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_context); + var ptr_context = MemoryUtils.StringToHGlobalUtf8(_context); var ref_out = _out; var result = fn__scInboxMessageGetDataInt(&success, _p0, ptr_context, &ref_out); - if (ptr_context != IntPtr.Zero) Marshal.FreeHGlobal(ptr_context); + Marshal.FreeHGlobal(ptr_context); _out = ref_out; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -86476,9 +86463,9 @@ public bool ScInboxMessageGetDataBool(int _p0, string _p1) unsafe { if (fn__scInboxMessageGetDataBool == null) fn__scInboxMessageGetDataBool = (delegate* unmanaged[Cdecl]) funcTable[0xFFE5C16F402D851DUL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); var result = fn__scInboxMessageGetDataBool(&success, _p0, ptr_p1); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -86489,14 +86476,14 @@ public bool ScInboxMessageGetDataString(int _p0, string _context, ref string _ou unsafe { if (fn__scInboxMessageGetDataString == null) fn__scInboxMessageGetDataString = (delegate* unmanaged[Cdecl]) funcTable[0x7572EF42FC6A9B6DUL]; var success = false; - var ptr_context = _context == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_context); - var ptr_out = _out == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_out); + var ptr_context = MemoryUtils.StringToHGlobalUtf8(_context); + var ptr_out = MemoryUtils.StringToHGlobalUtf8(_out); var ref_out = ptr_out; var result = fn__scInboxMessageGetDataString(&success, _p0, ptr_context, &ref_out); - if (ptr_context != IntPtr.Zero) Marshal.FreeHGlobal(ptr_context); - _out = ref_out == IntPtr.Zero ? null : Marshal.PtrToStringUTF8(ref_out); - if (ref_out != ptr_out && ref_out != IntPtr.Zero) freeString(ref_out); - if (ptr_out != IntPtr.Zero) Marshal.FreeHGlobal(ptr_out); + Marshal.FreeHGlobal(ptr_context); + _out = Marshal.PtrToStringUTF8(ref_out); + if (ref_out != ptr_out) freeString(ref_out); + Marshal.FreeHGlobal(ptr_out); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -86520,8 +86507,8 @@ public string ScInboxMessageGetRawTypeAtIndex(int _p0) var success = false; var result = fn__scInboxMessageGetRawTypeAtIndex(&success, _p0); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -86673,9 +86660,9 @@ public void ScEmailSendEmail(string _p0) unsafe { if (fn__scEmailSendEmail == null) fn__scEmailSendEmail = (delegate* unmanaged[Cdecl]) funcTable[0x116FB94DC4B79F17UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__scEmailSendEmail(&success, ptr_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -86719,8 +86706,8 @@ public string ScGetNewRockstarMsg() var success = false; var result = fn__scGetNewRockstarMsg(&success); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -86752,9 +86739,9 @@ public bool ScPresenceAttrSetString(uint _attrHash, string _value) unsafe { if (fn__scPresenceAttrSetString == null) fn__scPresenceAttrSetString = (delegate* unmanaged[Cdecl]) funcTable[0x287F1F75D2803595UL]; var success = false; - var ptr_value = _value == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_value); + var ptr_value = MemoryUtils.StringToHGlobalUtf8(_value); var result = fn__scPresenceAttrSetString(&success, _attrHash, ptr_value); - if (ptr_value != IntPtr.Zero) Marshal.FreeHGlobal(ptr_value); + Marshal.FreeHGlobal(ptr_value); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -86776,10 +86763,10 @@ public bool ScGamerdataGetInt(string _name, ref int _value) unsafe { if (fn__scGamerdataGetInt == null) fn__scGamerdataGetInt = (delegate* unmanaged[Cdecl]) funcTable[0xC85A7127E7AD02AAUL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var ref_value = _value; var result = fn__scGamerdataGetInt(&success, ptr_name, &ref_value); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); _value = ref_value; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -86791,10 +86778,10 @@ public bool ScGamerdataGetFloat(string _name, ref float _value) unsafe { if (fn__scGamerdataGetFloat == null) fn__scGamerdataGetFloat = (delegate* unmanaged[Cdecl]) funcTable[0xA770C8EEC6FB2AC5UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var ref_value = _value; var result = fn__scGamerdataGetFloat(&success, ptr_name, &ref_value); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); _value = ref_value; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -86806,9 +86793,9 @@ public bool ScGamerdataGetBool(string _name) unsafe { if (fn__scGamerdataGetBool == null) fn__scGamerdataGetBool = (delegate* unmanaged[Cdecl]) funcTable[0x8416FE4E4629D7D7UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var result = fn__scGamerdataGetBool(&success, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -86819,14 +86806,14 @@ public bool ScGamerdataGetString(string _name, ref string _value) unsafe { if (fn__scGamerdataGetString == null) fn__scGamerdataGetString = (delegate* unmanaged[Cdecl]) funcTable[0x7FFCBFEE44ECFABFUL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); - var ptr_value = _value == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_value); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_value = MemoryUtils.StringToHGlobalUtf8(_value); var ref_value = ptr_value; var result = fn__scGamerdataGetString(&success, ptr_name, &ref_value); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); - _value = ref_value == IntPtr.Zero ? null : Marshal.PtrToStringUTF8(ref_value); - if (ref_value != ptr_value && ref_value != IntPtr.Zero) freeString(ref_value); - if (ptr_value != IntPtr.Zero) Marshal.FreeHGlobal(ptr_value); + Marshal.FreeHGlobal(ptr_name); + _value = Marshal.PtrToStringUTF8(ref_value); + if (ref_value != ptr_value) freeString(ref_value); + Marshal.FreeHGlobal(ptr_value); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -86850,10 +86837,10 @@ public bool ScProfanityCheckString(string _string, ref int _token) unsafe { if (fn__scProfanityCheckString == null) fn__scProfanityCheckString = (delegate* unmanaged[Cdecl]) funcTable[0x75632C5ECD7ED843UL]; var success = false; - var ptr_string = _string == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_string); + var ptr_string = MemoryUtils.StringToHGlobalUtf8(_string); var ref_token = _token; var result = fn__scProfanityCheckString(&success, ptr_string, &ref_token); - if (ptr_string != IntPtr.Zero) Marshal.FreeHGlobal(ptr_string); + Marshal.FreeHGlobal(ptr_string); _token = ref_token; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -86865,10 +86852,10 @@ public bool ScProfanityCheckStringUgc(string _string, ref int _token) unsafe { if (fn__scProfanityCheckStringUgc == null) fn__scProfanityCheckStringUgc = (delegate* unmanaged[Cdecl]) funcTable[0xEB2BF817463DFA28UL]; var success = false; - var ptr_string = _string == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_string); + var ptr_string = MemoryUtils.StringToHGlobalUtf8(_string); var ref_token = _token; var result = fn__scProfanityCheckStringUgc(&success, ptr_string, &ref_token); - if (ptr_string != IntPtr.Zero) Marshal.FreeHGlobal(ptr_string); + Marshal.FreeHGlobal(ptr_string); _token = ref_token; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -86924,10 +86911,10 @@ public bool ScLicenseplateCheckString(string _p0, ref int _p1) unsafe { if (fn__scLicenseplateCheckString == null) fn__scLicenseplateCheckString = (delegate* unmanaged[Cdecl]) funcTable[0xF6BAAAF762E1BF40UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); var ref_p1 = _p1; var result = fn__scLicenseplateCheckString(&success, ptr_p0, &ref_p1); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); _p1 = ref_p1; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -86974,8 +86961,8 @@ public string ScLicenseplateGetPlate(int _token, int _plateIndex) var success = false; var result = fn__scLicenseplateGetPlate(&success, _token, _plateIndex); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -86987,8 +86974,8 @@ public string ScLicenseplateGetPlateData(int _token, int _plateIndex) var success = false; var result = fn__scLicenseplateGetPlateData(&success, _token, _plateIndex); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -86998,12 +86985,12 @@ public bool ScLicenseplateSetPlateData(string _oldPlateText, string _newPlateTex unsafe { if (fn__scLicenseplateSetPlateData == null) fn__scLicenseplateSetPlateData = (delegate* unmanaged[Cdecl]) funcTable[0xD0EE05FE193646EAUL]; var success = false; - var ptr_oldPlateText = _oldPlateText == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_oldPlateText); - var ptr_newPlateText = _newPlateText == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_newPlateText); + var ptr_oldPlateText = MemoryUtils.StringToHGlobalUtf8(_oldPlateText); + var ptr_newPlateText = MemoryUtils.StringToHGlobalUtf8(_newPlateText); var ref_plateData = _plateData; var result = fn__scLicenseplateSetPlateData(&success, ptr_oldPlateText, ptr_newPlateText, &ref_plateData); - if (ptr_oldPlateText != IntPtr.Zero) Marshal.FreeHGlobal(ptr_oldPlateText); - if (ptr_newPlateText != IntPtr.Zero) Marshal.FreeHGlobal(ptr_newPlateText); + Marshal.FreeHGlobal(ptr_oldPlateText); + Marshal.FreeHGlobal(ptr_newPlateText); _plateData = ref_plateData; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -87015,11 +87002,11 @@ public bool ScLicenseplateAdd(string _plateText, ref int _plateData, ref int _to unsafe { if (fn__scLicenseplateAdd == null) fn__scLicenseplateAdd = (delegate* unmanaged[Cdecl]) funcTable[0x1989C6E6F67E76A8UL]; var success = false; - var ptr_plateText = _plateText == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_plateText); + var ptr_plateText = MemoryUtils.StringToHGlobalUtf8(_plateText); var ref_plateData = _plateData; var ref_token = _token; var result = fn__scLicenseplateAdd(&success, ptr_plateText, &ref_plateData, &ref_token); - if (ptr_plateText != IntPtr.Zero) Marshal.FreeHGlobal(ptr_plateText); + Marshal.FreeHGlobal(ptr_plateText); _plateData = ref_plateData; _token = ref_token; if (!success) throw new Exception("Native execution failed"); @@ -87054,10 +87041,10 @@ public bool ScLicenseplateIsvalid(string _plateText, ref int _token) unsafe { if (fn__scLicenseplateIsvalid == null) fn__scLicenseplateIsvalid = (delegate* unmanaged[Cdecl]) funcTable[0x0F73393BAC7E6730UL]; var success = false; - var ptr_plateText = _plateText == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_plateText); + var ptr_plateText = MemoryUtils.StringToHGlobalUtf8(_plateText); var ref_token = _token; var result = fn__scLicenseplateIsvalid(&success, ptr_plateText, &ref_token); - if (ptr_plateText != IntPtr.Zero) Marshal.FreeHGlobal(ptr_plateText); + Marshal.FreeHGlobal(ptr_plateText); _token = ref_token; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -87113,10 +87100,10 @@ public bool ScCommunityEventGetExtraDataInt(string _p0, ref int _p1) unsafe { if (fn__scCommunityEventGetExtraDataInt == null) fn__scCommunityEventGetExtraDataInt = (delegate* unmanaged[Cdecl]) funcTable[0x710BCDA8071EDED1UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); var ref_p1 = _p1; var result = fn__scCommunityEventGetExtraDataInt(&success, ptr_p0, &ref_p1); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); _p1 = ref_p1; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -87128,10 +87115,10 @@ public bool ScCommunityEventGetExtraDataFloat(string _p0, ref float _p1) unsafe { if (fn__scCommunityEventGetExtraDataFloat == null) fn__scCommunityEventGetExtraDataFloat = (delegate* unmanaged[Cdecl]) funcTable[0x50A8A36201DBF83EUL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); var ref_p1 = _p1; var result = fn__scCommunityEventGetExtraDataFloat(&success, ptr_p0, &ref_p1); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); _p1 = ref_p1; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -87143,14 +87130,14 @@ public bool ScCommunityEventGetExtraDataString(string _p0, ref string _p1) unsafe { if (fn__scCommunityEventGetExtraDataString == null) fn__scCommunityEventGetExtraDataString = (delegate* unmanaged[Cdecl]) funcTable[0x9DE5D2F723575ED0UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); var ref_p1 = ptr_p1; var result = fn__scCommunityEventGetExtraDataString(&success, ptr_p0, &ref_p1); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); - _p1 = ref_p1 == IntPtr.Zero ? null : Marshal.PtrToStringUTF8(ref_p1); - if (ref_p1 != ptr_p1 && ref_p1 != IntPtr.Zero) freeString(ref_p1); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p0); + _p1 = Marshal.PtrToStringUTF8(ref_p1); + if (ref_p1 != ptr_p1) freeString(ref_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -87161,12 +87148,12 @@ public bool ScCommunityEventGetDisplayName(ref string _p0) unsafe { if (fn__scCommunityEventGetDisplayName == null) fn__scCommunityEventGetDisplayName = (delegate* unmanaged[Cdecl]) funcTable[0xC2C97EA97711D1AEUL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); var ref_p0 = ptr_p0; var result = fn__scCommunityEventGetDisplayName(&success, &ref_p0); - _p0 = ref_p0 == IntPtr.Zero ? null : Marshal.PtrToStringUTF8(ref_p0); - if (ref_p0 != ptr_p0 && ref_p0 != IntPtr.Zero) freeString(ref_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + _p0 = Marshal.PtrToStringUTF8(ref_p0); + if (ref_p0 != ptr_p0) freeString(ref_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -87177,9 +87164,9 @@ public bool ScCommunityEventIsActiveForType(string _p0) unsafe { if (fn__scCommunityEventIsActiveForType == null) fn__scCommunityEventIsActiveForType = (delegate* unmanaged[Cdecl]) funcTable[0x450819D8CF90C416UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); var result = fn__scCommunityEventIsActiveForType(&success, ptr_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -87190,9 +87177,9 @@ public int ScCommunityEventGetEventIdForType(string _p0) unsafe { if (fn__scCommunityEventGetEventIdForType == null) fn__scCommunityEventGetEventIdForType = (delegate* unmanaged[Cdecl]) funcTable[0x4A7D6E727F941747UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); var result = fn__scCommunityEventGetEventIdForType(&success, ptr_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); return result; } @@ -87203,13 +87190,13 @@ public bool ScCommunityEventGetExtraDataIntForType(string _p0, ref int _p1, stri unsafe { if (fn__scCommunityEventGetExtraDataIntForType == null) fn__scCommunityEventGetExtraDataIntForType = (delegate* unmanaged[Cdecl]) funcTable[0xE75A4A2E5E316D86UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); var ref_p1 = _p1; - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); var result = fn__scCommunityEventGetExtraDataIntForType(&success, ptr_p0, &ref_p1, ptr_p2); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); _p1 = ref_p1; - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p2); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -87220,13 +87207,13 @@ public bool ScCommunityEventGetExtraDataFloatForType(string _p0, ref float _p1, unsafe { if (fn__scCommunityEventGetExtraDataFloatForType == null) fn__scCommunityEventGetExtraDataFloatForType = (delegate* unmanaged[Cdecl]) funcTable[0x2570E26BE63964E3UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); var ref_p1 = _p1; - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); var result = fn__scCommunityEventGetExtraDataFloatForType(&success, ptr_p0, &ref_p1, ptr_p2); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); _p1 = ref_p1; - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p2); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -87237,16 +87224,16 @@ public bool ScCommunityEventGetExtraDataStringForType(string _p0, ref string _p1 unsafe { if (fn__scCommunityEventGetExtraDataStringForType == null) fn__scCommunityEventGetExtraDataStringForType = (delegate* unmanaged[Cdecl]) funcTable[0x1D12A56FC95BE92EUL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); var ref_p1 = ptr_p1; - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); var result = fn__scCommunityEventGetExtraDataStringForType(&success, ptr_p0, &ref_p1, ptr_p2); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); - _p1 = ref_p1 == IntPtr.Zero ? null : Marshal.PtrToStringUTF8(ref_p1); - if (ref_p1 != ptr_p1 && ref_p1 != IntPtr.Zero) freeString(ref_p1); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p0); + _p1 = Marshal.PtrToStringUTF8(ref_p1); + if (ref_p1 != ptr_p1) freeString(ref_p1); + Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p2); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -87257,14 +87244,14 @@ public bool ScCommunityEventGetDisplayNameForType(ref string _p0, string _p1) unsafe { if (fn__scCommunityEventGetDisplayNameForType == null) fn__scCommunityEventGetDisplayNameForType = (delegate* unmanaged[Cdecl]) funcTable[0x33DF47CC0642061BUL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); var ref_p0 = ptr_p0; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); var result = fn__scCommunityEventGetDisplayNameForType(&success, &ref_p0, ptr_p1); - _p0 = ref_p0 == IntPtr.Zero ? null : Marshal.PtrToStringUTF8(ref_p0); - if (ref_p0 != ptr_p0 && ref_p0 != IntPtr.Zero) freeString(ref_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + _p0 = Marshal.PtrToStringUTF8(ref_p0); + if (ref_p0 != ptr_p0) freeString(ref_p0); + Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -87286,10 +87273,10 @@ public bool ScCommunityEventGetExtraDataIntById(int _p0, string _p1, ref int _p2 unsafe { if (fn__scCommunityEventGetExtraDataIntById == null) fn__scCommunityEventGetExtraDataIntById = (delegate* unmanaged[Cdecl]) funcTable[0x8CC469AB4D349B7CUL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); var ref_p2 = _p2; var result = fn__scCommunityEventGetExtraDataIntById(&success, _p0, ptr_p1, &ref_p2); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); _p2 = ref_p2; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -87301,10 +87288,10 @@ public bool ScCommunityEventGetExtraDataFloatById(int _p0, string _p1, ref float unsafe { if (fn__scCommunityEventGetExtraDataFloatById == null) fn__scCommunityEventGetExtraDataFloatById = (delegate* unmanaged[Cdecl]) funcTable[0xC5A35C73B68F3C49UL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); var ref_p2 = _p2; var result = fn__scCommunityEventGetExtraDataFloatById(&success, _p0, ptr_p1, &ref_p2); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + Marshal.FreeHGlobal(ptr_p1); _p2 = ref_p2; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -87316,14 +87303,14 @@ public bool ScCommunityEventGetExtraDataStringById(int _p0, string _p1, ref stri unsafe { if (fn__scCommunityEventGetExtraDataStringById == null) fn__scCommunityEventGetExtraDataStringById = (delegate* unmanaged[Cdecl]) funcTable[0x699E4A5C8C893A18UL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); - var ptr_p2 = _p2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p2); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p2 = MemoryUtils.StringToHGlobalUtf8(_p2); var ref_p2 = ptr_p2; var result = fn__scCommunityEventGetExtraDataStringById(&success, _p0, ptr_p1, &ref_p2); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); - _p2 = ref_p2 == IntPtr.Zero ? null : Marshal.PtrToStringUTF8(ref_p2); - if (ref_p2 != ptr_p2 && ref_p2 != IntPtr.Zero) freeString(ref_p2); - if (ptr_p2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p2); + Marshal.FreeHGlobal(ptr_p1); + _p2 = Marshal.PtrToStringUTF8(ref_p2); + if (ref_p2 != ptr_p2) freeString(ref_p2); + Marshal.FreeHGlobal(ptr_p2); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -87334,12 +87321,12 @@ public bool ScCommunityEventGetDisplayNameById(int _p0, ref string _p1) unsafe { if (fn__scCommunityEventGetDisplayNameById == null) fn__scCommunityEventGetDisplayNameById = (delegate* unmanaged[Cdecl]) funcTable[0x19853B5B17D77BCAUL]; var success = false; - var ptr_p1 = _p1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p1); + var ptr_p1 = MemoryUtils.StringToHGlobalUtf8(_p1); var ref_p1 = ptr_p1; var result = fn__scCommunityEventGetDisplayNameById(&success, _p0, &ref_p1); - _p1 = ref_p1 == IntPtr.Zero ? null : Marshal.PtrToStringUTF8(ref_p1); - if (ref_p1 != ptr_p1 && ref_p1 != IntPtr.Zero) freeString(ref_p1); - if (ptr_p1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p1); + _p1 = Marshal.PtrToStringUTF8(ref_p1); + if (ref_p1 != ptr_p1) freeString(ref_p1); + Marshal.FreeHGlobal(ptr_p1); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -87394,10 +87381,10 @@ public bool ScTransitionNewsGetExtraDataIntTu(string _p0, ref int _p1) unsafe { if (fn__scTransitionNewsGetExtraDataIntTu == null) fn__scTransitionNewsGetExtraDataIntTu = (delegate* unmanaged[Cdecl]) funcTable[0x92DA6E70EF249BD1UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); var ref_p1 = _p1; var result = fn__scTransitionNewsGetExtraDataIntTu(&success, ptr_p0, &ref_p1); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); _p1 = ref_p1; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -87453,8 +87440,8 @@ public string ScAccountInfoGetNickname() var success = false; var result = fn__scAccountInfoGetNickname(&success); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -87715,9 +87702,9 @@ public bool StatSetGxtLabel(uint _statName, string _value, bool _save) unsafe { if (fn__statSetGxtLabel == null) fn__statSetGxtLabel = (delegate* unmanaged[Cdecl]) funcTable[0x17695002FD8B2AE0UL]; var success = false; - var ptr_value = _value == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_value); + var ptr_value = MemoryUtils.StringToHGlobalUtf8(_value); var result = fn__statSetGxtLabel(&success, _statName, ptr_value, (byte) (_save ? 1 : 0)); - if (ptr_value != IntPtr.Zero) Marshal.FreeHGlobal(ptr_value); + Marshal.FreeHGlobal(ptr_value); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -87741,9 +87728,9 @@ public bool StatSetString(uint _statName, string _value, bool _save) unsafe { if (fn__statSetString == null) fn__statSetString = (delegate* unmanaged[Cdecl]) funcTable[0xA87B2335D12531D7UL]; var success = false; - var ptr_value = _value == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_value); + var ptr_value = MemoryUtils.StringToHGlobalUtf8(_value); var result = fn__statSetString(&success, _statName, ptr_value, (byte) (_save ? 1 : 0)); - if (ptr_value != IntPtr.Zero) Marshal.FreeHGlobal(ptr_value); + Marshal.FreeHGlobal(ptr_value); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -87776,9 +87763,9 @@ public bool StatSetUserId(uint _statName, string _value, bool _save) unsafe { if (fn__statSetUserId == null) fn__statSetUserId = (delegate* unmanaged[Cdecl]) funcTable[0x8CDDF1E452BABE11UL]; var success = false; - var ptr_value = _value == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_value); + var ptr_value = MemoryUtils.StringToHGlobalUtf8(_value); var result = fn__statSetUserId(&success, _statName, ptr_value, (byte) (_save ? 1 : 0)); - if (ptr_value != IntPtr.Zero) Marshal.FreeHGlobal(ptr_value); + Marshal.FreeHGlobal(ptr_value); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -87854,8 +87841,8 @@ public string StatGetString(uint _statHash, int _p1) var success = false; var result = fn__statGetString(&success, _statHash, _p1); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -87897,8 +87884,8 @@ public string StatGetUserId(uint _statHash) var success = false; var result = fn__statGetUserId(&success, _statHash); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -87910,8 +87897,8 @@ public string StatGetLicensePlate(uint _statName) var success = false; var result = fn__statGetLicensePlate(&success, _statName); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -87921,9 +87908,9 @@ public bool StatSetLicensePlate(uint _statName, string _str) unsafe { if (fn__statSetLicensePlate == null) fn__statSetLicensePlate = (delegate* unmanaged[Cdecl]) funcTable[0x69FF13266D7296DAUL]; var success = false; - var ptr_str = _str == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_str); + var ptr_str = MemoryUtils.StringToHGlobalUtf8(_str); var result = fn__statSetLicensePlate(&success, _statName, ptr_str); - if (ptr_str != IntPtr.Zero) Marshal.FreeHGlobal(ptr_str); + Marshal.FreeHGlobal(ptr_str); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -88096,9 +88083,9 @@ public uint GetPackedNgIntStatKey(int _index, bool _spStat, bool _charStat, int unsafe { if (fn__getPackedNgIntStatKey == null) fn__getPackedNgIntStatKey = (delegate* unmanaged[Cdecl]) funcTable[0x2B4CDCA6F07FF3DAUL]; var success = false; - var ptr_section = _section == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_section); + var ptr_section = MemoryUtils.StringToHGlobalUtf8(_section); var result = fn__getPackedNgIntStatKey(&success, _index, (byte) (_spStat ? 1 : 0), (byte) (_charStat ? 1 : 0), _character, ptr_section); - if (ptr_section != IntPtr.Zero) Marshal.FreeHGlobal(ptr_section); + Marshal.FreeHGlobal(ptr_section); if (!success) throw new Exception("Native execution failed"); return result; } @@ -88130,9 +88117,9 @@ public void PlaystatsBackgroundScriptAction(string _action, int _value) unsafe { if (fn__playstatsBackgroundScriptAction == null) fn__playstatsBackgroundScriptAction = (delegate* unmanaged[Cdecl]) funcTable[0x5009DFD741329729UL]; var success = false; - var ptr_action = _action == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_action); + var ptr_action = MemoryUtils.StringToHGlobalUtf8(_action); fn__playstatsBackgroundScriptAction(&success, ptr_action, _value); - if (ptr_action != IntPtr.Zero) Marshal.FreeHGlobal(ptr_action); + Marshal.FreeHGlobal(ptr_action); if (!success) throw new Exception("Native execution failed"); } } @@ -88142,9 +88129,9 @@ public void PlaystatsNpcInvite(string _p0) unsafe { if (fn__playstatsNpcInvite == null) fn__playstatsNpcInvite = (delegate* unmanaged[Cdecl]) funcTable[0x93054C88E6AA7C44UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__playstatsNpcInvite(&success, ptr_p0); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -88204,9 +88191,9 @@ public void PlaystatsMissionStarted(string _p0, int _p1, int _p2, bool _p3) unsafe { if (fn__playstatsMissionStarted == null) fn__playstatsMissionStarted = (delegate* unmanaged[Cdecl]) funcTable[0xC19A2925C34D2231UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__playstatsMissionStarted(&success, ptr_p0, _p1, _p2, (byte) (_p3 ? 1 : 0)); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -88216,9 +88203,9 @@ public void PlaystatsMissionOver(string _p0, int _p1, int _p2, bool _p3, bool _p unsafe { if (fn__playstatsMissionOver == null) fn__playstatsMissionOver = (delegate* unmanaged[Cdecl]) funcTable[0x7C4BB33A8CED7324UL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__playstatsMissionOver(&success, ptr_p0, _p1, _p2, (byte) (_p3 ? 1 : 0), (byte) (_p4 ? 1 : 0), (byte) (_p5 ? 1 : 0)); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -88228,9 +88215,9 @@ public void PlaystatsMissionCheckpoint(string _p0, int _p1, int _p2, int _p3) unsafe { if (fn__playstatsMissionCheckpoint == null) fn__playstatsMissionCheckpoint = (delegate* unmanaged[Cdecl]) funcTable[0xC900596A63978C1DUL]; var success = false; - var ptr_p0 = _p0 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_p0); + var ptr_p0 = MemoryUtils.StringToHGlobalUtf8(_p0); fn__playstatsMissionCheckpoint(&success, ptr_p0, _p1, _p2, _p3); - if (ptr_p0 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_p0); + Marshal.FreeHGlobal(ptr_p0); if (!success) throw new Exception("Native execution failed"); } } @@ -88240,18 +88227,18 @@ public void PlaystatsRandomMissionDone(string _name, int _p1, int _p2, int _p3) unsafe { if (fn__playstatsRandomMissionDone == null) fn__playstatsRandomMissionDone = (delegate* unmanaged[Cdecl]) funcTable[0x71862B1D855F32E1UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__playstatsRandomMissionDone(&success, ptr_name, _p1, _p2, _p3); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } public void PlaystatsRosBet(int amount, int act, IPlayer player, float cm) => PlaystatsRosBet(amount, act, player.ScriptId, cm); - public void PlaystatsRosBet(int _amount, int _act, int _player, float _cm) + public void PlaystatsRosBet(int _amount, int _act, uint _player, float _cm) { unsafe { - if (fn__playstatsRosBet == null) fn__playstatsRosBet = (delegate* unmanaged[Cdecl]) funcTable[0x121FB4DDDC2D5291UL]; + if (fn__playstatsRosBet == null) fn__playstatsRosBet = (delegate* unmanaged[Cdecl]) funcTable[0x121FB4DDDC2D5291UL]; var success = false; fn__playstatsRosBet(&success, _amount, _act, _player, _cm); if (!success) throw new Exception("Native execution failed"); @@ -88259,10 +88246,10 @@ public void PlaystatsRosBet(int _amount, int _act, int _player, float _cm) } public void PlaystatsRaceCheckpoint(IVehicle p0, int p1, int p2, int p3, int p4) => PlaystatsRaceCheckpoint(p0.ScriptId, p1, p2, p3, p4); - public void PlaystatsRaceCheckpoint(int _p0, int _p1, int _p2, int _p3, int _p4) + public void PlaystatsRaceCheckpoint(uint _p0, int _p1, int _p2, int _p3, int _p4) { unsafe { - if (fn__playstatsRaceCheckpoint == null) fn__playstatsRaceCheckpoint = (delegate* unmanaged[Cdecl]) funcTable[0x9C375C315099DDE4UL]; + if (fn__playstatsRaceCheckpoint == null) fn__playstatsRaceCheckpoint = (delegate* unmanaged[Cdecl]) funcTable[0x9C375C315099DDE4UL]; var success = false; fn__playstatsRaceCheckpoint(&success, _p0, _p1, _p2, _p3, _p4); if (!success) throw new Exception("Native execution failed"); @@ -88395,10 +88382,10 @@ public void PlaystatsOddjobDone(int _totalTimeMs, int _p1, bool _p2) } public void PlaystatsPropChange(IPlayer p0, int p1, int p2, int p3) => PlaystatsPropChange(p0.ScriptId, p1, p2, p3); - public void PlaystatsPropChange(int _p0, int _p1, int _p2, int _p3) + public void PlaystatsPropChange(uint _p0, int _p1, int _p2, int _p3) { unsafe { - if (fn__playstatsPropChange == null) fn__playstatsPropChange = (delegate* unmanaged[Cdecl]) funcTable[0xBA739D6D5A05D6E7UL]; + if (fn__playstatsPropChange == null) fn__playstatsPropChange = (delegate* unmanaged[Cdecl]) funcTable[0xBA739D6D5A05D6E7UL]; var success = false; fn__playstatsPropChange(&success, _p0, _p1, _p2, _p3); if (!success) throw new Exception("Native execution failed"); @@ -88406,10 +88393,10 @@ public void PlaystatsPropChange(int _p0, int _p1, int _p2, int _p3) } public void PlaystatsClothChange(IPlayer p0, int p1, int p2, int p3, int p4) => PlaystatsClothChange(p0.ScriptId, p1, p2, p3, p4); - public void PlaystatsClothChange(int _p0, int _p1, int _p2, int _p3, int _p4) + public void PlaystatsClothChange(uint _p0, int _p1, int _p2, int _p3, int _p4) { unsafe { - if (fn__playstatsClothChange == null) fn__playstatsClothChange = (delegate* unmanaged[Cdecl]) funcTable[0x34B973047A2268B9UL]; + if (fn__playstatsClothChange == null) fn__playstatsClothChange = (delegate* unmanaged[Cdecl]) funcTable[0x34B973047A2268B9UL]; var success = false; fn__playstatsClothChange(&success, _p0, _p1, _p2, _p3, _p4); if (!success) throw new Exception("Native execution failed"); @@ -88431,9 +88418,9 @@ public void PlaystatsCheatApplied(string _cheat) unsafe { if (fn__playstatsCheatApplied == null) fn__playstatsCheatApplied = (delegate* unmanaged[Cdecl]) funcTable[0x6058665D72302D3FUL]; var success = false; - var ptr_cheat = _cheat == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_cheat); + var ptr_cheat = MemoryUtils.StringToHGlobalUtf8(_cheat); fn__playstatsCheatApplied(&success, ptr_cheat); - if (ptr_cheat != IntPtr.Zero) Marshal.FreeHGlobal(ptr_cheat); + Marshal.FreeHGlobal(ptr_cheat); if (!success) throw new Exception("Native execution failed"); } } @@ -88515,9 +88502,9 @@ public void PlaystatsQuickfixTool(int _element, string _item) unsafe { if (fn__playstatsQuickfixTool == null) fn__playstatsQuickfixTool = (delegate* unmanaged[Cdecl]) funcTable[0x90D0622866E80445UL]; var success = false; - var ptr_item = _item == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_item); + var ptr_item = MemoryUtils.StringToHGlobalUtf8(_item); fn__playstatsQuickfixTool(&success, _element, ptr_item); - if (ptr_item != IntPtr.Zero) Marshal.FreeHGlobal(ptr_item); + Marshal.FreeHGlobal(ptr_item); if (!success) throw new Exception("Native execution failed"); } } @@ -88940,12 +88927,12 @@ public bool Leaderboards2ReadByPlaform(ref int _p0, string _gamerHandleCsv, stri if (fn__leaderboards2ReadByPlaform == null) fn__leaderboards2ReadByPlaform = (delegate* unmanaged[Cdecl]) funcTable[0xF1AE5DCDBFCA2721UL]; var success = false; var ref_p0 = _p0; - var ptr_gamerHandleCsv = _gamerHandleCsv == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_gamerHandleCsv); - var ptr_platformName = _platformName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_platformName); + var ptr_gamerHandleCsv = MemoryUtils.StringToHGlobalUtf8(_gamerHandleCsv); + var ptr_platformName = MemoryUtils.StringToHGlobalUtf8(_platformName); var result = fn__leaderboards2ReadByPlaform(&success, &ref_p0, ptr_gamerHandleCsv, ptr_platformName); _p0 = ref_p0; - if (ptr_gamerHandleCsv != IntPtr.Zero) Marshal.FreeHGlobal(ptr_gamerHandleCsv); - if (ptr_platformName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_platformName); + Marshal.FreeHGlobal(ptr_gamerHandleCsv); + Marshal.FreeHGlobal(ptr_platformName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -89146,9 +89133,9 @@ public void PresenceEventUpdatestatIntWithString(uint _statHash, int _value, int unsafe { if (fn__presenceEventUpdatestatIntWithString == null) fn__presenceEventUpdatestatIntWithString = (delegate* unmanaged[Cdecl]) funcTable[0x6483C25849031C4FUL]; var success = false; - var ptr_string = _string == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_string); + var ptr_string = MemoryUtils.StringToHGlobalUtf8(_string); fn__presenceEventUpdatestatIntWithString(&success, _statHash, _value, _p2, ptr_string); - if (ptr_string != IntPtr.Zero) Marshal.FreeHGlobal(ptr_string); + Marshal.FreeHGlobal(ptr_string); if (!success) throw new Exception("Native execution failed"); } } @@ -89314,9 +89301,9 @@ public bool StatMigrateSavegameStart(string _platformName) unsafe { if (fn__statMigrateSavegameStart == null) fn__statMigrateSavegameStart = (delegate* unmanaged[Cdecl]) funcTable[0xA5C80D8E768A9E66UL]; var success = false; - var ptr_platformName = _platformName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_platformName); + var ptr_platformName = MemoryUtils.StringToHGlobalUtf8(_platformName); var result = fn__statMigrateSavegameStart(&success, ptr_platformName); - if (ptr_platformName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_platformName); + Marshal.FreeHGlobal(ptr_platformName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -89419,11 +89406,11 @@ public bool StatSaveMigrationConsumeContent(uint _contentId, string _srcPlatform unsafe { if (fn__statSaveMigrationConsumeContent == null) fn__statSaveMigrationConsumeContent = (delegate* unmanaged[Cdecl]) funcTable[0x3270F67EED31FBC1UL]; var success = false; - var ptr_srcPlatform = _srcPlatform == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_srcPlatform); - var ptr_srcGamerHandle = _srcGamerHandle == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_srcGamerHandle); + var ptr_srcPlatform = MemoryUtils.StringToHGlobalUtf8(_srcPlatform); + var ptr_srcGamerHandle = MemoryUtils.StringToHGlobalUtf8(_srcGamerHandle); var result = fn__statSaveMigrationConsumeContent(&success, _contentId, ptr_srcPlatform, ptr_srcGamerHandle); - if (ptr_srcPlatform != IntPtr.Zero) Marshal.FreeHGlobal(ptr_srcPlatform); - if (ptr_srcGamerHandle != IntPtr.Zero) Marshal.FreeHGlobal(ptr_srcGamerHandle); + Marshal.FreeHGlobal(ptr_srcPlatform); + Marshal.FreeHGlobal(ptr_srcGamerHandle); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -90162,12 +90149,12 @@ public void PlaystatsMcFormationEnds(int _p0, int _p1, int _p2, int _p3, int _p4 } } - public void PlaystatsMcClubhouseActivity(int _p0, int _p1, int _p2, int _p3, int _p4, int _p5, int _p6) + public void PlaystatsMcClubhouseActivity(int _p0, int _p1, int _p2, int _p3, int _p4, int _p5, int _p6, int _p7) { unsafe { - if (fn__playstatsMcClubhouseActivity == null) fn__playstatsMcClubhouseActivity = (delegate* unmanaged[Cdecl]) funcTable[0x8989CBD7B4E82534UL]; + if (fn__playstatsMcClubhouseActivity == null) fn__playstatsMcClubhouseActivity = (delegate* unmanaged[Cdecl]) funcTable[0x8989CBD7B4E82534UL]; var success = false; - fn__playstatsMcClubhouseActivity(&success, _p0, _p1, _p2, _p3, _p4, _p5, _p6); + fn__playstatsMcClubhouseActivity(&success, _p0, _p1, _p2, _p3, _p4, _p5, _p6, _p7); if (!success) throw new Exception("Native execution failed"); } } @@ -90602,12 +90589,12 @@ public void PlaystatsHeist3Hack(int _p0, int _p1, int _p2, int _p3, int _p4, int } } - public void PlaystatsNpcPhone(int _p0, int _p1, int _p2, int _p3, int _p4, int _p5) + public void PlaystatsNpcPhone(int _p0, int _p1, int _p2, int _p3, int _p4, int _p5, int _p6, int _p7, int _p8, int _p9, int _p10, int _p11, int _p12) { unsafe { - if (fn__playstatsNpcPhone == null) fn__playstatsNpcPhone = (delegate* unmanaged[Cdecl]) funcTable[0x0077F15613D36993UL]; + if (fn__playstatsNpcPhone == null) fn__playstatsNpcPhone = (delegate* unmanaged[Cdecl]) funcTable[0x0077F15613D36993UL]; var success = false; - fn__playstatsNpcPhone(&success, _p0, _p1, _p2, _p3, _p4, _p5); + fn__playstatsNpcPhone(&success, _p0, _p1, _p2, _p3, _p4, _p5, _p6, _p7, _p8, _p9, _p10, _p11, _p12); if (!success) throw new Exception("Native execution failed"); } } @@ -90742,12 +90729,12 @@ public void PlaystatsSubWeap(int _p0, int _p1, int _p2, int _p3) } } - public void PlaystatsFastTrvl(int _p0, int _p1, int _p2, int _p3, int _p4, int _p5, int _p6, int _p7, int _p8) + public void PlaystatsFastTrvl(int _p0, int _p1, int _p2, int _p3, int _p4, int _p5, int _p6, int _p7, int _p8, int _p9, int _p10) { unsafe { - if (fn__playstatsFastTrvl == null) fn__playstatsFastTrvl = (delegate* unmanaged[Cdecl]) funcTable[0x4DC416F246A41FC8UL]; + if (fn__playstatsFastTrvl == null) fn__playstatsFastTrvl = (delegate* unmanaged[Cdecl]) funcTable[0x4DC416F246A41FC8UL]; var success = false; - fn__playstatsFastTrvl(&success, _p0, _p1, _p2, _p3, _p4, _p5, _p6, _p7, _p8); + fn__playstatsFastTrvl(&success, _p0, _p1, _p2, _p3, _p4, _p5, _p6, _p7, _p8, _p9, _p10); if (!success) throw new Exception("Native execution failed"); } } @@ -90832,12 +90819,12 @@ public void PlaystatsCarclubPrize(int _p0, uint _vehicleModel) } } - public void PlaystatsAwardNav(int _p0, int _p1) + public void PlaystatsAwardNav(int _p0, int _p1, int _p2, int _p3) { unsafe { - if (fn__playstatsAwardNav == null) fn__playstatsAwardNav = (delegate* unmanaged[Cdecl]) funcTable[0x70F52471E758EBAEUL]; + if (fn__playstatsAwardNav == null) fn__playstatsAwardNav = (delegate* unmanaged[Cdecl]) funcTable[0x70F52471E758EBAEUL]; var success = false; - fn__playstatsAwardNav(&success, _p0, _p1); + fn__playstatsAwardNav(&success, _p0, _p1, _p2, _p3); if (!success) throw new Exception("Native execution failed"); } } @@ -90960,9 +90947,9 @@ public void RequestModelsInRoom(int _interior, string _roomName) unsafe { if (fn__requestModelsInRoom == null) fn__requestModelsInRoom = (delegate* unmanaged[Cdecl]) funcTable[0x8A7A40100EDFEC58UL]; var success = false; - var ptr_roomName = _roomName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_roomName); + var ptr_roomName = MemoryUtils.StringToHGlobalUtf8(_roomName); fn__requestModelsInRoom(&success, _interior, ptr_roomName); - if (ptr_roomName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_roomName); + Marshal.FreeHGlobal(ptr_roomName); if (!success) throw new Exception("Native execution failed"); } } @@ -91067,9 +91054,9 @@ public bool DoesAnimDictExist(string _animDict) unsafe { if (fn__doesAnimDictExist == null) fn__doesAnimDictExist = (delegate* unmanaged[Cdecl]) funcTable[0x2DA49C3B79856961UL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); var result = fn__doesAnimDictExist(&success, ptr_animDict); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animDict); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -91080,9 +91067,9 @@ public void RequestAnimDict(string _animDict) unsafe { if (fn__requestAnimDict == null) fn__requestAnimDict = (delegate* unmanaged[Cdecl]) funcTable[0xD3BD40951412FEF6UL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); fn__requestAnimDict(&success, ptr_animDict); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animDict); if (!success) throw new Exception("Native execution failed"); } } @@ -91092,9 +91079,9 @@ public bool HasAnimDictLoaded(string _animDict) unsafe { if (fn__hasAnimDictLoaded == null) fn__hasAnimDictLoaded = (delegate* unmanaged[Cdecl]) funcTable[0xD031A9162D01088CUL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); var result = fn__hasAnimDictLoaded(&success, ptr_animDict); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animDict); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -91105,9 +91092,9 @@ public void RemoveAnimDict(string _animDict) unsafe { if (fn__removeAnimDict == null) fn__removeAnimDict = (delegate* unmanaged[Cdecl]) funcTable[0xF66A602F829E2A06UL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); fn__removeAnimDict(&success, ptr_animDict); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animDict); if (!success) throw new Exception("Native execution failed"); } } @@ -91117,9 +91104,9 @@ public void RequestAnimSet(string _animSet) unsafe { if (fn__requestAnimSet == null) fn__requestAnimSet = (delegate* unmanaged[Cdecl]) funcTable[0x6EA47DAE7FAD0EEDUL]; var success = false; - var ptr_animSet = _animSet == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animSet); + var ptr_animSet = MemoryUtils.StringToHGlobalUtf8(_animSet); fn__requestAnimSet(&success, ptr_animSet); - if (ptr_animSet != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animSet); + Marshal.FreeHGlobal(ptr_animSet); if (!success) throw new Exception("Native execution failed"); } } @@ -91129,9 +91116,9 @@ public bool HasAnimSetLoaded(string _animSet) unsafe { if (fn__hasAnimSetLoaded == null) fn__hasAnimSetLoaded = (delegate* unmanaged[Cdecl]) funcTable[0xC4EA073D86FB29B0UL]; var success = false; - var ptr_animSet = _animSet == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animSet); + var ptr_animSet = MemoryUtils.StringToHGlobalUtf8(_animSet); var result = fn__hasAnimSetLoaded(&success, ptr_animSet); - if (ptr_animSet != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animSet); + Marshal.FreeHGlobal(ptr_animSet); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -91142,9 +91129,9 @@ public void RemoveAnimSet(string _animSet) unsafe { if (fn__removeAnimSet == null) fn__removeAnimSet = (delegate* unmanaged[Cdecl]) funcTable[0x16350528F93024B3UL]; var success = false; - var ptr_animSet = _animSet == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animSet); + var ptr_animSet = MemoryUtils.StringToHGlobalUtf8(_animSet); fn__removeAnimSet(&success, ptr_animSet); - if (ptr_animSet != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animSet); + Marshal.FreeHGlobal(ptr_animSet); if (!success) throw new Exception("Native execution failed"); } } @@ -91154,9 +91141,9 @@ public void RequestClipSet(string _clipSet) unsafe { if (fn__requestClipSet == null) fn__requestClipSet = (delegate* unmanaged[Cdecl]) funcTable[0xD2A71E1A77418A49UL]; var success = false; - var ptr_clipSet = _clipSet == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_clipSet); + var ptr_clipSet = MemoryUtils.StringToHGlobalUtf8(_clipSet); fn__requestClipSet(&success, ptr_clipSet); - if (ptr_clipSet != IntPtr.Zero) Marshal.FreeHGlobal(ptr_clipSet); + Marshal.FreeHGlobal(ptr_clipSet); if (!success) throw new Exception("Native execution failed"); } } @@ -91166,9 +91153,9 @@ public bool HasClipSetLoaded(string _clipSet) unsafe { if (fn__hasClipSetLoaded == null) fn__hasClipSetLoaded = (delegate* unmanaged[Cdecl]) funcTable[0x318234F4F3738AF3UL]; var success = false; - var ptr_clipSet = _clipSet == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_clipSet); + var ptr_clipSet = MemoryUtils.StringToHGlobalUtf8(_clipSet); var result = fn__hasClipSetLoaded(&success, ptr_clipSet); - if (ptr_clipSet != IntPtr.Zero) Marshal.FreeHGlobal(ptr_clipSet); + Marshal.FreeHGlobal(ptr_clipSet); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -91179,9 +91166,9 @@ public void RemoveClipSet(string _clipSet) unsafe { if (fn__removeClipSet == null) fn__removeClipSet = (delegate* unmanaged[Cdecl]) funcTable[0x01F73A131C18CD94UL]; var success = false; - var ptr_clipSet = _clipSet == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_clipSet); + var ptr_clipSet = MemoryUtils.StringToHGlobalUtf8(_clipSet); fn__removeClipSet(&success, ptr_clipSet); - if (ptr_clipSet != IntPtr.Zero) Marshal.FreeHGlobal(ptr_clipSet); + Marshal.FreeHGlobal(ptr_clipSet); if (!success) throw new Exception("Native execution failed"); } } @@ -91191,9 +91178,9 @@ public void RequestIpl(string _iplName) unsafe { if (fn__requestIpl == null) fn__requestIpl = (delegate* unmanaged[Cdecl]) funcTable[0x41B4893843BBDB74UL]; var success = false; - var ptr_iplName = _iplName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_iplName); + var ptr_iplName = MemoryUtils.StringToHGlobalUtf8(_iplName); fn__requestIpl(&success, ptr_iplName); - if (ptr_iplName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_iplName); + Marshal.FreeHGlobal(ptr_iplName); if (!success) throw new Exception("Native execution failed"); } } @@ -91203,9 +91190,9 @@ public void RemoveIpl(string _iplName) unsafe { if (fn__removeIpl == null) fn__removeIpl = (delegate* unmanaged[Cdecl]) funcTable[0xEE6C5AD3ECE0A82DUL]; var success = false; - var ptr_iplName = _iplName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_iplName); + var ptr_iplName = MemoryUtils.StringToHGlobalUtf8(_iplName); fn__removeIpl(&success, ptr_iplName); - if (ptr_iplName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_iplName); + Marshal.FreeHGlobal(ptr_iplName); if (!success) throw new Exception("Native execution failed"); } } @@ -91215,9 +91202,9 @@ public bool IsIplActive(string _iplName) unsafe { if (fn__isIplActive == null) fn__isIplActive = (delegate* unmanaged[Cdecl]) funcTable[0x88A741E44A2B3495UL]; var success = false; - var ptr_iplName = _iplName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_iplName); + var ptr_iplName = MemoryUtils.StringToHGlobalUtf8(_iplName); var result = fn__isIplActive(&success, ptr_iplName); - if (ptr_iplName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_iplName); + Marshal.FreeHGlobal(ptr_iplName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -91341,9 +91328,9 @@ public void RequestNamedPtfxAsset(string _fxName) unsafe { if (fn__requestNamedPtfxAsset == null) fn__requestNamedPtfxAsset = (delegate* unmanaged[Cdecl]) funcTable[0xB80D8756B4668AB6UL]; var success = false; - var ptr_fxName = _fxName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_fxName); + var ptr_fxName = MemoryUtils.StringToHGlobalUtf8(_fxName); fn__requestNamedPtfxAsset(&success, ptr_fxName); - if (ptr_fxName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_fxName); + Marshal.FreeHGlobal(ptr_fxName); if (!success) throw new Exception("Native execution failed"); } } @@ -91353,9 +91340,9 @@ public bool HasNamedPtfxAssetLoaded(string _fxName) unsafe { if (fn__hasNamedPtfxAssetLoaded == null) fn__hasNamedPtfxAssetLoaded = (delegate* unmanaged[Cdecl]) funcTable[0x8702416E512EC454UL]; var success = false; - var ptr_fxName = _fxName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_fxName); + var ptr_fxName = MemoryUtils.StringToHGlobalUtf8(_fxName); var result = fn__hasNamedPtfxAssetLoaded(&success, ptr_fxName); - if (ptr_fxName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_fxName); + Marshal.FreeHGlobal(ptr_fxName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -91366,9 +91353,9 @@ public void RemoveNamedPtfxAsset(string _fxName) unsafe { if (fn__removeNamedPtfxAsset == null) fn__removeNamedPtfxAsset = (delegate* unmanaged[Cdecl]) funcTable[0x5F61EBBE1A00F96DUL]; var success = false; - var ptr_fxName = _fxName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_fxName); + var ptr_fxName = MemoryUtils.StringToHGlobalUtf8(_fxName); fn__removeNamedPtfxAsset(&success, ptr_fxName); - if (ptr_fxName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_fxName); + Marshal.FreeHGlobal(ptr_fxName); if (!success) throw new Exception("Native execution failed"); } } @@ -91414,10 +91401,10 @@ public void SetFocusPosAndVel(float _x, float _y, float _z, float _offsetX, floa } public void SetFocusEntity(IEntity entity) => SetFocusEntity(entity.ScriptId); - public void SetFocusEntity(int _entity) + public void SetFocusEntity(uint _entity) { unsafe { - if (fn__setFocusEntity == null) fn__setFocusEntity = (delegate* unmanaged[Cdecl]) funcTable[0x198F77705FA0931DUL]; + if (fn__setFocusEntity == null) fn__setFocusEntity = (delegate* unmanaged[Cdecl]) funcTable[0x198F77705FA0931DUL]; var success = false; fn__setFocusEntity(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -91425,10 +91412,10 @@ public void SetFocusEntity(int _entity) } public bool IsEntityFocus(IEntity entity) => IsEntityFocus(entity.ScriptId); - public bool IsEntityFocus(int _entity) + public bool IsEntityFocus(uint _entity) { unsafe { - if (fn__isEntityFocus == null) fn__isEntityFocus = (delegate* unmanaged[Cdecl]) funcTable[0x2DDFF3FB9075D747UL]; + if (fn__isEntityFocus == null) fn__isEntityFocus = (delegate* unmanaged[Cdecl]) funcTable[0x2DDFF3FB9075D747UL]; var success = false; var result = fn__isEntityFocus(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -91437,10 +91424,10 @@ public bool IsEntityFocus(int _entity) } public void SetRestoreFocusEntity(IEntity p0) => SetRestoreFocusEntity(p0.ScriptId); - public void SetRestoreFocusEntity(int _p0) + public void SetRestoreFocusEntity(uint _p0) { unsafe { - if (fn__setRestoreFocusEntity == null) fn__setRestoreFocusEntity = (delegate* unmanaged[Cdecl]) funcTable[0x0811381EF5062FECUL]; + if (fn__setRestoreFocusEntity == null) fn__setRestoreFocusEntity = (delegate* unmanaged[Cdecl]) funcTable[0x0811381EF5062FECUL]; var success = false; fn__setRestoreFocusEntity(&success, _p0); if (!success) throw new Exception("Native execution failed"); @@ -91452,9 +91439,9 @@ public void SetMapdatacullboxEnabled(string _name, bool _toggle) unsafe { if (fn__setMapdatacullboxEnabled == null) fn__setMapdatacullboxEnabled = (delegate* unmanaged[Cdecl]) funcTable[0xAF12610C644A35C9UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__setMapdatacullboxEnabled(&success, ptr_name, (byte) (_toggle ? 1 : 0)); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -91610,13 +91597,13 @@ public bool IsSafeToStartPlayerSwitch() } } - public void StartPlayerSwitch(IPlayer from, int to, int flags, int switchType) => StartPlayerSwitch(from.ScriptId, to, flags, switchType); - public void StartPlayerSwitch(int from, IPlayer to, int flags, int switchType) => StartPlayerSwitch(from, to.ScriptId, flags, switchType); + public void StartPlayerSwitch(IPlayer from, uint to, int flags, int switchType) => StartPlayerSwitch(from.ScriptId, to, flags, switchType); + public void StartPlayerSwitch(uint from, IPlayer to, int flags, int switchType) => StartPlayerSwitch(from, to.ScriptId, flags, switchType); public void StartPlayerSwitch(IPlayer from, IPlayer to, int flags, int switchType) => StartPlayerSwitch(from.ScriptId, to.ScriptId, flags, switchType); - public void StartPlayerSwitch(int _from, int _to, int _flags, int _switchType) + public void StartPlayerSwitch(uint _from, uint _to, int _flags, int _switchType) { unsafe { - if (fn__startPlayerSwitch == null) fn__startPlayerSwitch = (delegate* unmanaged[Cdecl]) funcTable[0xFAA23F2CBA159D67UL]; + if (fn__startPlayerSwitch == null) fn__startPlayerSwitch = (delegate* unmanaged[Cdecl]) funcTable[0xFAA23F2CBA159D67UL]; var success = false; fn__startPlayerSwitch(&success, _from, _to, _flags, _switchType); if (!success) throw new Exception("Native execution failed"); @@ -91724,9 +91711,9 @@ public void SetPlayerSwitchEstablishingShot(string _name) unsafe { if (fn__setPlayerSwitchEstablishingShot == null) fn__setPlayerSwitchEstablishingShot = (delegate* unmanaged[Cdecl]) funcTable[0x0FDE9DBFC0A6BC65UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__setPlayerSwitchEstablishingShot(&success, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -91803,10 +91790,10 @@ public void DisableSwitchOutroFx() } public void SwitchToMultiFirstpart(IPlayer ped, int flags, int switchType) => SwitchToMultiFirstpart(ped.ScriptId, flags, switchType); - public void SwitchToMultiFirstpart(int _ped, int _flags, int _switchType) + public void SwitchToMultiFirstpart(uint _ped, int _flags, int _switchType) { unsafe { - if (fn__switchToMultiFirstpart == null) fn__switchToMultiFirstpart = (delegate* unmanaged[Cdecl]) funcTable[0xAAB3200ED59016BCUL]; + if (fn__switchToMultiFirstpart == null) fn__switchToMultiFirstpart = (delegate* unmanaged[Cdecl]) funcTable[0xAAB3200ED59016BCUL]; var success = false; fn__switchToMultiFirstpart(&success, _ped, _flags, _switchType); if (!success) throw new Exception("Native execution failed"); @@ -91814,10 +91801,10 @@ public void SwitchToMultiFirstpart(int _ped, int _flags, int _switchType) } public void SwitchToMultiSecondpart(IPlayer ped) => SwitchToMultiSecondpart(ped.ScriptId); - public void SwitchToMultiSecondpart(int _ped) + public void SwitchToMultiSecondpart(uint _ped) { unsafe { - if (fn__switchToMultiSecondpart == null) fn__switchToMultiSecondpart = (delegate* unmanaged[Cdecl]) funcTable[0xD8295AF639FD9CB8UL]; + if (fn__switchToMultiSecondpart == null) fn__switchToMultiSecondpart = (delegate* unmanaged[Cdecl]) funcTable[0xD8295AF639FD9CB8UL]; var success = false; fn__switchToMultiSecondpart(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -91944,11 +91931,11 @@ public void IplGroupSwapStart(string _iplName1, string _iplName2) unsafe { if (fn__iplGroupSwapStart == null) fn__iplGroupSwapStart = (delegate* unmanaged[Cdecl]) funcTable[0x95A7DABDDBB78AE7UL]; var success = false; - var ptr_iplName1 = _iplName1 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_iplName1); - var ptr_iplName2 = _iplName2 == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_iplName2); + var ptr_iplName1 = MemoryUtils.StringToHGlobalUtf8(_iplName1); + var ptr_iplName2 = MemoryUtils.StringToHGlobalUtf8(_iplName2); fn__iplGroupSwapStart(&success, ptr_iplName1, ptr_iplName2); - if (ptr_iplName1 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_iplName1); - if (ptr_iplName2 != IntPtr.Zero) Marshal.FreeHGlobal(ptr_iplName2); + Marshal.FreeHGlobal(ptr_iplName1); + Marshal.FreeHGlobal(ptr_iplName2); if (!success) throw new Exception("Native execution failed"); } } @@ -92000,9 +91987,9 @@ public void PrefetchSrl(string _srl) unsafe { if (fn__prefetchSrl == null) fn__prefetchSrl = (delegate* unmanaged[Cdecl]) funcTable[0x3D245789CE12982CUL]; var success = false; - var ptr_srl = _srl == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_srl); + var ptr_srl = MemoryUtils.StringToHGlobalUtf8(_srl); fn__prefetchSrl(&success, ptr_srl); - if (ptr_srl != IntPtr.Zero) Marshal.FreeHGlobal(ptr_srl); + Marshal.FreeHGlobal(ptr_srl); if (!success) throw new Exception("Native execution failed"); } } @@ -92165,18 +92152,18 @@ public void SetIslandEnabled(string _name, bool _toggle) unsafe { if (fn__setIslandEnabled == null) fn__setIslandEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x9A9D1BA639675CF1UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__setIslandEnabled(&success, ptr_name, (byte) (_toggle ? 1 : 0)); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } public void TaskPause(IPlayer ped, int ms) => TaskPause(ped.ScriptId, ms); - public void TaskPause(int _ped, int _ms) + public void TaskPause(uint _ped, int _ms) { unsafe { - if (fn__taskPause == null) fn__taskPause = (delegate* unmanaged[Cdecl]) funcTable[0xE73A266DB0CA9042UL]; + if (fn__taskPause == null) fn__taskPause = (delegate* unmanaged[Cdecl]) funcTable[0xE73A266DB0CA9042UL]; var success = false; fn__taskPause(&success, _ped, _ms); if (!success) throw new Exception("Native execution failed"); @@ -92184,10 +92171,10 @@ public void TaskPause(int _ped, int _ms) } public void TaskStandStill(IPlayer ped, int time) => TaskStandStill(ped.ScriptId, time); - public void TaskStandStill(int _ped, int _time) + public void TaskStandStill(uint _ped, int _time) { unsafe { - if (fn__taskStandStill == null) fn__taskStandStill = (delegate* unmanaged[Cdecl]) funcTable[0x919BE13EED931959UL]; + if (fn__taskStandStill == null) fn__taskStandStill = (delegate* unmanaged[Cdecl]) funcTable[0x919BE13EED931959UL]; var success = false; fn__taskStandStill(&success, _ped, _time); if (!success) throw new Exception("Native execution failed"); @@ -92195,10 +92182,10 @@ public void TaskStandStill(int _ped, int _time) } public void TaskJump(IPlayer ped, bool usePlayerLaunchForce, bool doSuperJump, bool useFullSuperJumpForce) => TaskJump(ped.ScriptId, usePlayerLaunchForce, doSuperJump, useFullSuperJumpForce); - public void TaskJump(int _ped, bool _usePlayerLaunchForce, bool _doSuperJump, bool _useFullSuperJumpForce) + public void TaskJump(uint _ped, bool _usePlayerLaunchForce, bool _doSuperJump, bool _useFullSuperJumpForce) { unsafe { - if (fn__taskJump == null) fn__taskJump = (delegate* unmanaged[Cdecl]) funcTable[0x0AE4086104E067B1UL]; + if (fn__taskJump == null) fn__taskJump = (delegate* unmanaged[Cdecl]) funcTable[0x0AE4086104E067B1UL]; var success = false; fn__taskJump(&success, _ped, (byte) (_usePlayerLaunchForce ? 1 : 0), (byte) (_doSuperJump ? 1 : 0), (byte) (_useFullSuperJumpForce ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -92206,23 +92193,23 @@ public void TaskJump(int _ped, bool _usePlayerLaunchForce, bool _doSuperJump, bo } public void TaskCower(IPlayer ped, int duration) => TaskCower(ped.ScriptId, duration); - public void TaskCower(int _ped, int _duration) + public void TaskCower(uint _ped, int _duration) { unsafe { - if (fn__taskCower == null) fn__taskCower = (delegate* unmanaged[Cdecl]) funcTable[0x3EB1FE9E8E908E15UL]; + if (fn__taskCower == null) fn__taskCower = (delegate* unmanaged[Cdecl]) funcTable[0x3EB1FE9E8E908E15UL]; var success = false; fn__taskCower(&success, _ped, _duration); if (!success) throw new Exception("Native execution failed"); } } - public void TaskHandsUp(IPlayer ped, int duration, int facingPed, int timeToFacePed, int flags) => TaskHandsUp(ped.ScriptId, duration, facingPed, timeToFacePed, flags); - public void TaskHandsUp(int ped, int duration, IPlayer facingPed, int timeToFacePed, int flags) => TaskHandsUp(ped, duration, facingPed.ScriptId, timeToFacePed, flags); + public void TaskHandsUp(IPlayer ped, int duration, uint facingPed, int timeToFacePed, int flags) => TaskHandsUp(ped.ScriptId, duration, facingPed, timeToFacePed, flags); + public void TaskHandsUp(uint ped, int duration, IPlayer facingPed, int timeToFacePed, int flags) => TaskHandsUp(ped, duration, facingPed.ScriptId, timeToFacePed, flags); public void TaskHandsUp(IPlayer ped, int duration, IPlayer facingPed, int timeToFacePed, int flags) => TaskHandsUp(ped.ScriptId, duration, facingPed.ScriptId, timeToFacePed, flags); - public void TaskHandsUp(int _ped, int _duration, int _facingPed, int _timeToFacePed, int _flags) + public void TaskHandsUp(uint _ped, int _duration, uint _facingPed, int _timeToFacePed, int _flags) { unsafe { - if (fn__taskHandsUp == null) fn__taskHandsUp = (delegate* unmanaged[Cdecl]) funcTable[0xF2EAB31979A7F910UL]; + if (fn__taskHandsUp == null) fn__taskHandsUp = (delegate* unmanaged[Cdecl]) funcTable[0xF2EAB31979A7F910UL]; var success = false; fn__taskHandsUp(&success, _ped, _duration, _facingPed, _timeToFacePed, _flags); if (!success) throw new Exception("Native execution failed"); @@ -92230,64 +92217,64 @@ public void TaskHandsUp(int _ped, int _duration, int _facingPed, int _timeToFace } public void UpdateTaskHandsUpDuration(IPlayer ped, int duration) => UpdateTaskHandsUpDuration(ped.ScriptId, duration); - public void UpdateTaskHandsUpDuration(int _ped, int _duration) + public void UpdateTaskHandsUpDuration(uint _ped, int _duration) { unsafe { - if (fn__updateTaskHandsUpDuration == null) fn__updateTaskHandsUpDuration = (delegate* unmanaged[Cdecl]) funcTable[0xA98FCAFD7893C834UL]; + if (fn__updateTaskHandsUpDuration == null) fn__updateTaskHandsUpDuration = (delegate* unmanaged[Cdecl]) funcTable[0xA98FCAFD7893C834UL]; var success = false; fn__updateTaskHandsUpDuration(&success, _ped, _duration); if (!success) throw new Exception("Native execution failed"); } } - public void TaskOpenVehicleDoor(IPlayer ped, int vehicle, int timeOut, int seat, float speed) => TaskOpenVehicleDoor(ped.ScriptId, vehicle, timeOut, seat, speed); - public void TaskOpenVehicleDoor(int ped, IVehicle vehicle, int timeOut, int seat, float speed) => TaskOpenVehicleDoor(ped, vehicle.ScriptId, timeOut, seat, speed); + public void TaskOpenVehicleDoor(IPlayer ped, uint vehicle, int timeOut, int seat, float speed) => TaskOpenVehicleDoor(ped.ScriptId, vehicle, timeOut, seat, speed); + public void TaskOpenVehicleDoor(uint ped, IVehicle vehicle, int timeOut, int seat, float speed) => TaskOpenVehicleDoor(ped, vehicle.ScriptId, timeOut, seat, speed); public void TaskOpenVehicleDoor(IPlayer ped, IVehicle vehicle, int timeOut, int seat, float speed) => TaskOpenVehicleDoor(ped.ScriptId, vehicle.ScriptId, timeOut, seat, speed); - public void TaskOpenVehicleDoor(int _ped, int _vehicle, int _timeOut, int _seat, float _speed) + public void TaskOpenVehicleDoor(uint _ped, uint _vehicle, int _timeOut, int _seat, float _speed) { unsafe { - if (fn__taskOpenVehicleDoor == null) fn__taskOpenVehicleDoor = (delegate* unmanaged[Cdecl]) funcTable[0x965791A9A488A062UL]; + if (fn__taskOpenVehicleDoor == null) fn__taskOpenVehicleDoor = (delegate* unmanaged[Cdecl]) funcTable[0x965791A9A488A062UL]; var success = false; fn__taskOpenVehicleDoor(&success, _ped, _vehicle, _timeOut, _seat, _speed); if (!success) throw new Exception("Native execution failed"); } } - public void TaskEnterVehicle(IPlayer ped, int vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName) => TaskEnterVehicle(ped.ScriptId, vehicle, timeout, seat, speed, flag, overrideEntryClipsetName); - public void TaskEnterVehicle(int ped, IVehicle vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName) => TaskEnterVehicle(ped, vehicle.ScriptId, timeout, seat, speed, flag, overrideEntryClipsetName); + public void TaskEnterVehicle(IPlayer ped, uint vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName) => TaskEnterVehicle(ped.ScriptId, vehicle, timeout, seat, speed, flag, overrideEntryClipsetName); + public void TaskEnterVehicle(uint ped, IVehicle vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName) => TaskEnterVehicle(ped, vehicle.ScriptId, timeout, seat, speed, flag, overrideEntryClipsetName); public void TaskEnterVehicle(IPlayer ped, IVehicle vehicle, int timeout, int seat, float speed, int flag, string overrideEntryClipsetName) => TaskEnterVehicle(ped.ScriptId, vehicle.ScriptId, timeout, seat, speed, flag, overrideEntryClipsetName); - public void TaskEnterVehicle(int _ped, int _vehicle, int _timeout, int _seat, float _speed, int _flag, string _overrideEntryClipsetName) + public void TaskEnterVehicle(uint _ped, uint _vehicle, int _timeout, int _seat, float _speed, int _flag, string _overrideEntryClipsetName) { unsafe { - if (fn__taskEnterVehicle == null) fn__taskEnterVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xC20E50AA46D09CA8UL]; + if (fn__taskEnterVehicle == null) fn__taskEnterVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xC20E50AA46D09CA8UL]; var success = false; - var ptr_overrideEntryClipsetName = _overrideEntryClipsetName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_overrideEntryClipsetName); + var ptr_overrideEntryClipsetName = MemoryUtils.StringToHGlobalUtf8(_overrideEntryClipsetName); fn__taskEnterVehicle(&success, _ped, _vehicle, _timeout, _seat, _speed, _flag, ptr_overrideEntryClipsetName); - if (ptr_overrideEntryClipsetName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_overrideEntryClipsetName); + Marshal.FreeHGlobal(ptr_overrideEntryClipsetName); if (!success) throw new Exception("Native execution failed"); } } - public void TaskLeaveVehicle(IPlayer ped, int vehicle, int flags) => TaskLeaveVehicle(ped.ScriptId, vehicle, flags); - public void TaskLeaveVehicle(int ped, IVehicle vehicle, int flags) => TaskLeaveVehicle(ped, vehicle.ScriptId, flags); + public void TaskLeaveVehicle(IPlayer ped, uint vehicle, int flags) => TaskLeaveVehicle(ped.ScriptId, vehicle, flags); + public void TaskLeaveVehicle(uint ped, IVehicle vehicle, int flags) => TaskLeaveVehicle(ped, vehicle.ScriptId, flags); public void TaskLeaveVehicle(IPlayer ped, IVehicle vehicle, int flags) => TaskLeaveVehicle(ped.ScriptId, vehicle.ScriptId, flags); - public void TaskLeaveVehicle(int _ped, int _vehicle, int _flags) + public void TaskLeaveVehicle(uint _ped, uint _vehicle, int _flags) { unsafe { - if (fn__taskLeaveVehicle == null) fn__taskLeaveVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xD3DBCE61A490BE02UL]; + if (fn__taskLeaveVehicle == null) fn__taskLeaveVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xD3DBCE61A490BE02UL]; var success = false; fn__taskLeaveVehicle(&success, _ped, _vehicle, _flags); if (!success) throw new Exception("Native execution failed"); } } - public void TaskGetOffBoat(IPlayer ped, int boat) => TaskGetOffBoat(ped.ScriptId, boat); - public void TaskGetOffBoat(int ped, IVehicle boat) => TaskGetOffBoat(ped, boat.ScriptId); + public void TaskGetOffBoat(IPlayer ped, uint boat) => TaskGetOffBoat(ped.ScriptId, boat); + public void TaskGetOffBoat(uint ped, IVehicle boat) => TaskGetOffBoat(ped, boat.ScriptId); public void TaskGetOffBoat(IPlayer ped, IVehicle boat) => TaskGetOffBoat(ped.ScriptId, boat.ScriptId); - public void TaskGetOffBoat(int _ped, int _boat) + public void TaskGetOffBoat(uint _ped, uint _boat) { unsafe { - if (fn__taskGetOffBoat == null) fn__taskGetOffBoat = (delegate* unmanaged[Cdecl]) funcTable[0x9C00E77AF14B2DFFUL]; + if (fn__taskGetOffBoat == null) fn__taskGetOffBoat = (delegate* unmanaged[Cdecl]) funcTable[0x9C00E77AF14B2DFFUL]; var success = false; fn__taskGetOffBoat(&success, _ped, _boat); if (!success) throw new Exception("Native execution failed"); @@ -92295,10 +92282,10 @@ public void TaskGetOffBoat(int _ped, int _boat) } public void TaskSkyDive(IPlayer ped, bool instant) => TaskSkyDive(ped.ScriptId, instant); - public void TaskSkyDive(int _ped, bool _instant) + public void TaskSkyDive(uint _ped, bool _instant) { unsafe { - if (fn__taskSkyDive == null) fn__taskSkyDive = (delegate* unmanaged[Cdecl]) funcTable[0x601736CFE536B0A0UL]; + if (fn__taskSkyDive == null) fn__taskSkyDive = (delegate* unmanaged[Cdecl]) funcTable[0x601736CFE536B0A0UL]; var success = false; fn__taskSkyDive(&success, _ped, (byte) (_instant ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -92306,10 +92293,10 @@ public void TaskSkyDive(int _ped, bool _instant) } public void TaskParachute(IPlayer ped, bool giveParachuteItem, bool instant) => TaskParachute(ped.ScriptId, giveParachuteItem, instant); - public void TaskParachute(int _ped, bool _giveParachuteItem, bool _instant) + public void TaskParachute(uint _ped, bool _giveParachuteItem, bool _instant) { unsafe { - if (fn__taskParachute == null) fn__taskParachute = (delegate* unmanaged[Cdecl]) funcTable[0xD2F1C53C97EE81ABUL]; + if (fn__taskParachute == null) fn__taskParachute = (delegate* unmanaged[Cdecl]) funcTable[0xD2F1C53C97EE81ABUL]; var success = false; fn__taskParachute(&success, _ped, (byte) (_giveParachuteItem ? 1 : 0), (byte) (_instant ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -92317,10 +92304,10 @@ public void TaskParachute(int _ped, bool _giveParachuteItem, bool _instant) } public void TaskParachuteToTarget(IPlayer ped, float x, float y, float z) => TaskParachuteToTarget(ped.ScriptId, x, y, z); - public void TaskParachuteToTarget(int _ped, float _x, float _y, float _z) + public void TaskParachuteToTarget(uint _ped, float _x, float _y, float _z) { unsafe { - if (fn__taskParachuteToTarget == null) fn__taskParachuteToTarget = (delegate* unmanaged[Cdecl]) funcTable[0xB33E291AFA6BD03AUL]; + if (fn__taskParachuteToTarget == null) fn__taskParachuteToTarget = (delegate* unmanaged[Cdecl]) funcTable[0xB33E291AFA6BD03AUL]; var success = false; fn__taskParachuteToTarget(&success, _ped, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); @@ -92328,10 +92315,10 @@ public void TaskParachuteToTarget(int _ped, float _x, float _y, float _z) } public void SetParachuteTaskTarget(IPlayer ped, float x, float y, float z) => SetParachuteTaskTarget(ped.ScriptId, x, y, z); - public void SetParachuteTaskTarget(int _ped, float _x, float _y, float _z) + public void SetParachuteTaskTarget(uint _ped, float _x, float _y, float _z) { unsafe { - if (fn__setParachuteTaskTarget == null) fn__setParachuteTaskTarget = (delegate* unmanaged[Cdecl]) funcTable[0xC313379AF0FCEDA7UL]; + if (fn__setParachuteTaskTarget == null) fn__setParachuteTaskTarget = (delegate* unmanaged[Cdecl]) funcTable[0xC313379AF0FCEDA7UL]; var success = false; fn__setParachuteTaskTarget(&success, _ped, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); @@ -92339,10 +92326,10 @@ public void SetParachuteTaskTarget(int _ped, float _x, float _y, float _z) } public void SetParachuteTaskThrust(IPlayer ped, float thrust) => SetParachuteTaskThrust(ped.ScriptId, thrust); - public void SetParachuteTaskThrust(int _ped, float _thrust) + public void SetParachuteTaskThrust(uint _ped, float _thrust) { unsafe { - if (fn__setParachuteTaskThrust == null) fn__setParachuteTaskThrust = (delegate* unmanaged[Cdecl]) funcTable[0x0729BAC1B8C64317UL]; + if (fn__setParachuteTaskThrust == null) fn__setParachuteTaskThrust = (delegate* unmanaged[Cdecl]) funcTable[0x0729BAC1B8C64317UL]; var success = false; fn__setParachuteTaskThrust(&success, _ped, _thrust); if (!success) throw new Exception("Native execution failed"); @@ -92350,62 +92337,62 @@ public void SetParachuteTaskThrust(int _ped, float _thrust) } public void TaskRappelFromHeli(IPlayer ped, float minHeightAboveGround) => TaskRappelFromHeli(ped.ScriptId, minHeightAboveGround); - public void TaskRappelFromHeli(int _ped, float _minHeightAboveGround) + public void TaskRappelFromHeli(uint _ped, float _minHeightAboveGround) { unsafe { - if (fn__taskRappelFromHeli == null) fn__taskRappelFromHeli = (delegate* unmanaged[Cdecl]) funcTable[0x09693B0312F91649UL]; + if (fn__taskRappelFromHeli == null) fn__taskRappelFromHeli = (delegate* unmanaged[Cdecl]) funcTable[0x09693B0312F91649UL]; var success = false; fn__taskRappelFromHeli(&success, _ped, _minHeightAboveGround); if (!success) throw new Exception("Native execution failed"); } } - public void TaskVehicleDriveToCoord(IPlayer ped, int vehicle, float x, float y, float z, float speed, int p6, uint vehicleModel, int drivingMode, float stopRange, float straightLineDistance) => TaskVehicleDriveToCoord(ped.ScriptId, vehicle, x, y, z, speed, p6, vehicleModel, drivingMode, stopRange, straightLineDistance); - public void TaskVehicleDriveToCoord(int ped, IVehicle vehicle, float x, float y, float z, float speed, int p6, uint vehicleModel, int drivingMode, float stopRange, float straightLineDistance) => TaskVehicleDriveToCoord(ped, vehicle.ScriptId, x, y, z, speed, p6, vehicleModel, drivingMode, stopRange, straightLineDistance); + public void TaskVehicleDriveToCoord(IPlayer ped, uint vehicle, float x, float y, float z, float speed, int p6, uint vehicleModel, int drivingMode, float stopRange, float straightLineDistance) => TaskVehicleDriveToCoord(ped.ScriptId, vehicle, x, y, z, speed, p6, vehicleModel, drivingMode, stopRange, straightLineDistance); + public void TaskVehicleDriveToCoord(uint ped, IVehicle vehicle, float x, float y, float z, float speed, int p6, uint vehicleModel, int drivingMode, float stopRange, float straightLineDistance) => TaskVehicleDriveToCoord(ped, vehicle.ScriptId, x, y, z, speed, p6, vehicleModel, drivingMode, stopRange, straightLineDistance); public void TaskVehicleDriveToCoord(IPlayer ped, IVehicle vehicle, float x, float y, float z, float speed, int p6, uint vehicleModel, int drivingMode, float stopRange, float straightLineDistance) => TaskVehicleDriveToCoord(ped.ScriptId, vehicle.ScriptId, x, y, z, speed, p6, vehicleModel, drivingMode, stopRange, straightLineDistance); - public void TaskVehicleDriveToCoord(int _ped, int _vehicle, float _x, float _y, float _z, float _speed, int _p6, uint _vehicleModel, int _drivingMode, float _stopRange, float _straightLineDistance) + public void TaskVehicleDriveToCoord(uint _ped, uint _vehicle, float _x, float _y, float _z, float _speed, int _p6, uint _vehicleModel, int _drivingMode, float _stopRange, float _straightLineDistance) { unsafe { - if (fn__taskVehicleDriveToCoord == null) fn__taskVehicleDriveToCoord = (delegate* unmanaged[Cdecl]) funcTable[0xE2A2AA2F659D77A7UL]; + if (fn__taskVehicleDriveToCoord == null) fn__taskVehicleDriveToCoord = (delegate* unmanaged[Cdecl]) funcTable[0xE2A2AA2F659D77A7UL]; var success = false; fn__taskVehicleDriveToCoord(&success, _ped, _vehicle, _x, _y, _z, _speed, _p6, _vehicleModel, _drivingMode, _stopRange, _straightLineDistance); if (!success) throw new Exception("Native execution failed"); } } - public void TaskVehicleDriveToCoordLongrange(IPlayer ped, int vehicle, float x, float y, float z, float speed, int driveMode, float stopRange) => TaskVehicleDriveToCoordLongrange(ped.ScriptId, vehicle, x, y, z, speed, driveMode, stopRange); - public void TaskVehicleDriveToCoordLongrange(int ped, IVehicle vehicle, float x, float y, float z, float speed, int driveMode, float stopRange) => TaskVehicleDriveToCoordLongrange(ped, vehicle.ScriptId, x, y, z, speed, driveMode, stopRange); + public void TaskVehicleDriveToCoordLongrange(IPlayer ped, uint vehicle, float x, float y, float z, float speed, int driveMode, float stopRange) => TaskVehicleDriveToCoordLongrange(ped.ScriptId, vehicle, x, y, z, speed, driveMode, stopRange); + public void TaskVehicleDriveToCoordLongrange(uint ped, IVehicle vehicle, float x, float y, float z, float speed, int driveMode, float stopRange) => TaskVehicleDriveToCoordLongrange(ped, vehicle.ScriptId, x, y, z, speed, driveMode, stopRange); public void TaskVehicleDriveToCoordLongrange(IPlayer ped, IVehicle vehicle, float x, float y, float z, float speed, int driveMode, float stopRange) => TaskVehicleDriveToCoordLongrange(ped.ScriptId, vehicle.ScriptId, x, y, z, speed, driveMode, stopRange); - public void TaskVehicleDriveToCoordLongrange(int _ped, int _vehicle, float _x, float _y, float _z, float _speed, int _driveMode, float _stopRange) + public void TaskVehicleDriveToCoordLongrange(uint _ped, uint _vehicle, float _x, float _y, float _z, float _speed, int _driveMode, float _stopRange) { unsafe { - if (fn__taskVehicleDriveToCoordLongrange == null) fn__taskVehicleDriveToCoordLongrange = (delegate* unmanaged[Cdecl]) funcTable[0x158BB33F920D360CUL]; + if (fn__taskVehicleDriveToCoordLongrange == null) fn__taskVehicleDriveToCoordLongrange = (delegate* unmanaged[Cdecl]) funcTable[0x158BB33F920D360CUL]; var success = false; fn__taskVehicleDriveToCoordLongrange(&success, _ped, _vehicle, _x, _y, _z, _speed, _driveMode, _stopRange); if (!success) throw new Exception("Native execution failed"); } } - public void TaskVehicleDriveWander(IPlayer ped, int vehicle, float speed, int drivingStyle) => TaskVehicleDriveWander(ped.ScriptId, vehicle, speed, drivingStyle); - public void TaskVehicleDriveWander(int ped, IVehicle vehicle, float speed, int drivingStyle) => TaskVehicleDriveWander(ped, vehicle.ScriptId, speed, drivingStyle); + public void TaskVehicleDriveWander(IPlayer ped, uint vehicle, float speed, int drivingStyle) => TaskVehicleDriveWander(ped.ScriptId, vehicle, speed, drivingStyle); + public void TaskVehicleDriveWander(uint ped, IVehicle vehicle, float speed, int drivingStyle) => TaskVehicleDriveWander(ped, vehicle.ScriptId, speed, drivingStyle); public void TaskVehicleDriveWander(IPlayer ped, IVehicle vehicle, float speed, int drivingStyle) => TaskVehicleDriveWander(ped.ScriptId, vehicle.ScriptId, speed, drivingStyle); - public void TaskVehicleDriveWander(int _ped, int _vehicle, float _speed, int _drivingStyle) + public void TaskVehicleDriveWander(uint _ped, uint _vehicle, float _speed, int _drivingStyle) { unsafe { - if (fn__taskVehicleDriveWander == null) fn__taskVehicleDriveWander = (delegate* unmanaged[Cdecl]) funcTable[0x480142959D337D00UL]; + if (fn__taskVehicleDriveWander == null) fn__taskVehicleDriveWander = (delegate* unmanaged[Cdecl]) funcTable[0x480142959D337D00UL]; var success = false; fn__taskVehicleDriveWander(&success, _ped, _vehicle, _speed, _drivingStyle); if (!success) throw new Exception("Native execution failed"); } } - public void TaskFollowToOffsetOfEntity(IPlayer ped, int entity, float offsetX, float offsetY, float offsetZ, float movementSpeed, int timeout, float stoppingRange, bool persistFollowing) => TaskFollowToOffsetOfEntity(ped.ScriptId, entity, offsetX, offsetY, offsetZ, movementSpeed, timeout, stoppingRange, persistFollowing); - public void TaskFollowToOffsetOfEntity(int ped, IEntity entity, float offsetX, float offsetY, float offsetZ, float movementSpeed, int timeout, float stoppingRange, bool persistFollowing) => TaskFollowToOffsetOfEntity(ped, entity.ScriptId, offsetX, offsetY, offsetZ, movementSpeed, timeout, stoppingRange, persistFollowing); + public void TaskFollowToOffsetOfEntity(IPlayer ped, uint entity, float offsetX, float offsetY, float offsetZ, float movementSpeed, int timeout, float stoppingRange, bool persistFollowing) => TaskFollowToOffsetOfEntity(ped.ScriptId, entity, offsetX, offsetY, offsetZ, movementSpeed, timeout, stoppingRange, persistFollowing); + public void TaskFollowToOffsetOfEntity(uint ped, IEntity entity, float offsetX, float offsetY, float offsetZ, float movementSpeed, int timeout, float stoppingRange, bool persistFollowing) => TaskFollowToOffsetOfEntity(ped, entity.ScriptId, offsetX, offsetY, offsetZ, movementSpeed, timeout, stoppingRange, persistFollowing); public void TaskFollowToOffsetOfEntity(IPlayer ped, IEntity entity, float offsetX, float offsetY, float offsetZ, float movementSpeed, int timeout, float stoppingRange, bool persistFollowing) => TaskFollowToOffsetOfEntity(ped.ScriptId, entity.ScriptId, offsetX, offsetY, offsetZ, movementSpeed, timeout, stoppingRange, persistFollowing); - public void TaskFollowToOffsetOfEntity(int _ped, int _entity, float _offsetX, float _offsetY, float _offsetZ, float _movementSpeed, int _timeout, float _stoppingRange, bool _persistFollowing) + public void TaskFollowToOffsetOfEntity(uint _ped, uint _entity, float _offsetX, float _offsetY, float _offsetZ, float _movementSpeed, int _timeout, float _stoppingRange, bool _persistFollowing) { unsafe { - if (fn__taskFollowToOffsetOfEntity == null) fn__taskFollowToOffsetOfEntity = (delegate* unmanaged[Cdecl]) funcTable[0x304AE42E357B8C7EUL]; + if (fn__taskFollowToOffsetOfEntity == null) fn__taskFollowToOffsetOfEntity = (delegate* unmanaged[Cdecl]) funcTable[0x304AE42E357B8C7EUL]; var success = false; fn__taskFollowToOffsetOfEntity(&success, _ped, _entity, _offsetX, _offsetY, _offsetZ, _movementSpeed, _timeout, _stoppingRange, (byte) (_persistFollowing ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -92413,23 +92400,23 @@ public void TaskFollowToOffsetOfEntity(int _ped, int _entity, float _offsetX, fl } public void TaskGoStraightToCoord(IPlayer ped, float x, float y, float z, float speed, int timeout, float targetHeading, float distanceToSlide) => TaskGoStraightToCoord(ped.ScriptId, x, y, z, speed, timeout, targetHeading, distanceToSlide); - public void TaskGoStraightToCoord(int _ped, float _x, float _y, float _z, float _speed, int _timeout, float _targetHeading, float _distanceToSlide) + public void TaskGoStraightToCoord(uint _ped, float _x, float _y, float _z, float _speed, int _timeout, float _targetHeading, float _distanceToSlide) { unsafe { - if (fn__taskGoStraightToCoord == null) fn__taskGoStraightToCoord = (delegate* unmanaged[Cdecl]) funcTable[0xD76B57B44F1E6F8BUL]; + if (fn__taskGoStraightToCoord == null) fn__taskGoStraightToCoord = (delegate* unmanaged[Cdecl]) funcTable[0xD76B57B44F1E6F8BUL]; var success = false; fn__taskGoStraightToCoord(&success, _ped, _x, _y, _z, _speed, _timeout, _targetHeading, _distanceToSlide); if (!success) throw new Exception("Native execution failed"); } } - public void TaskGoStraightToCoordRelativeToEntity(IPlayer ped, int entity, float x, float y, float z, float moveBlendRatio, int time) => TaskGoStraightToCoordRelativeToEntity(ped.ScriptId, entity, x, y, z, moveBlendRatio, time); - public void TaskGoStraightToCoordRelativeToEntity(int ped, IEntity entity, float x, float y, float z, float moveBlendRatio, int time) => TaskGoStraightToCoordRelativeToEntity(ped, entity.ScriptId, x, y, z, moveBlendRatio, time); + public void TaskGoStraightToCoordRelativeToEntity(IPlayer ped, uint entity, float x, float y, float z, float moveBlendRatio, int time) => TaskGoStraightToCoordRelativeToEntity(ped.ScriptId, entity, x, y, z, moveBlendRatio, time); + public void TaskGoStraightToCoordRelativeToEntity(uint ped, IEntity entity, float x, float y, float z, float moveBlendRatio, int time) => TaskGoStraightToCoordRelativeToEntity(ped, entity.ScriptId, x, y, z, moveBlendRatio, time); public void TaskGoStraightToCoordRelativeToEntity(IPlayer ped, IEntity entity, float x, float y, float z, float moveBlendRatio, int time) => TaskGoStraightToCoordRelativeToEntity(ped.ScriptId, entity.ScriptId, x, y, z, moveBlendRatio, time); - public void TaskGoStraightToCoordRelativeToEntity(int _ped, int _entity, float _x, float _y, float _z, float _moveBlendRatio, int _time) + public void TaskGoStraightToCoordRelativeToEntity(uint _ped, uint _entity, float _x, float _y, float _z, float _moveBlendRatio, int _time) { unsafe { - if (fn__taskGoStraightToCoordRelativeToEntity == null) fn__taskGoStraightToCoordRelativeToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x61E360B7E040D12EUL]; + if (fn__taskGoStraightToCoordRelativeToEntity == null) fn__taskGoStraightToCoordRelativeToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x61E360B7E040D12EUL]; var success = false; fn__taskGoStraightToCoordRelativeToEntity(&success, _ped, _entity, _x, _y, _z, _moveBlendRatio, _time); if (!success) throw new Exception("Native execution failed"); @@ -92437,10 +92424,10 @@ public void TaskGoStraightToCoordRelativeToEntity(int _ped, int _entity, float _ } public void TaskAchieveHeading(IPlayer ped, float heading, int timeout) => TaskAchieveHeading(ped.ScriptId, heading, timeout); - public void TaskAchieveHeading(int _ped, float _heading, int _timeout) + public void TaskAchieveHeading(uint _ped, float _heading, int _timeout) { unsafe { - if (fn__taskAchieveHeading == null) fn__taskAchieveHeading = (delegate* unmanaged[Cdecl]) funcTable[0x93B93A37987F1F3DUL]; + if (fn__taskAchieveHeading == null) fn__taskAchieveHeading = (delegate* unmanaged[Cdecl]) funcTable[0x93B93A37987F1F3DUL]; var success = false; fn__taskAchieveHeading(&success, _ped, _heading, _timeout); if (!success) throw new Exception("Native execution failed"); @@ -92468,23 +92455,23 @@ public void TaskExtendRoute(float _x, float _y, float _z) } public void TaskFollowPointRoute(IPlayer ped, float speed, int mode) => TaskFollowPointRoute(ped.ScriptId, speed, mode); - public void TaskFollowPointRoute(int _ped, float _speed, int _mode) + public void TaskFollowPointRoute(uint _ped, float _speed, int _mode) { unsafe { - if (fn__taskFollowPointRoute == null) fn__taskFollowPointRoute = (delegate* unmanaged[Cdecl]) funcTable[0x595583281858626EUL]; + if (fn__taskFollowPointRoute == null) fn__taskFollowPointRoute = (delegate* unmanaged[Cdecl]) funcTable[0x595583281858626EUL]; var success = false; fn__taskFollowPointRoute(&success, _ped, _speed, _mode); if (!success) throw new Exception("Native execution failed"); } } - public void TaskGoToEntity(IEntity entity, int target, int duration, float distance, float moveBlendRatio, float slowDownDistance, int flags) => TaskGoToEntity(entity.ScriptId, target, duration, distance, moveBlendRatio, slowDownDistance, flags); - public void TaskGoToEntity(int entity, IEntity target, int duration, float distance, float moveBlendRatio, float slowDownDistance, int flags) => TaskGoToEntity(entity, target.ScriptId, duration, distance, moveBlendRatio, slowDownDistance, flags); + public void TaskGoToEntity(IEntity entity, uint target, int duration, float distance, float moveBlendRatio, float slowDownDistance, int flags) => TaskGoToEntity(entity.ScriptId, target, duration, distance, moveBlendRatio, slowDownDistance, flags); + public void TaskGoToEntity(uint entity, IEntity target, int duration, float distance, float moveBlendRatio, float slowDownDistance, int flags) => TaskGoToEntity(entity, target.ScriptId, duration, distance, moveBlendRatio, slowDownDistance, flags); public void TaskGoToEntity(IEntity entity, IEntity target, int duration, float distance, float moveBlendRatio, float slowDownDistance, int flags) => TaskGoToEntity(entity.ScriptId, target.ScriptId, duration, distance, moveBlendRatio, slowDownDistance, flags); - public void TaskGoToEntity(int _entity, int _target, int _duration, float _distance, float _moveBlendRatio, float _slowDownDistance, int _flags) + public void TaskGoToEntity(uint _entity, uint _target, int _duration, float _distance, float _moveBlendRatio, float _slowDownDistance, int _flags) { unsafe { - if (fn__taskGoToEntity == null) fn__taskGoToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x6A071245EB0D1882UL]; + if (fn__taskGoToEntity == null) fn__taskGoToEntity = (delegate* unmanaged[Cdecl]) funcTable[0x6A071245EB0D1882UL]; var success = false; fn__taskGoToEntity(&success, _entity, _target, _duration, _distance, _moveBlendRatio, _slowDownDistance, _flags); if (!success) throw new Exception("Native execution failed"); @@ -92492,36 +92479,36 @@ public void TaskGoToEntity(int _entity, int _target, int _duration, float _dista } public void TaskSmartFleeCoord(IPlayer ped, float x, float y, float z, float distance, int time, bool preferPavements, bool quitIfOutOfRange) => TaskSmartFleeCoord(ped.ScriptId, x, y, z, distance, time, preferPavements, quitIfOutOfRange); - public void TaskSmartFleeCoord(int _ped, float _x, float _y, float _z, float _distance, int _time, bool _preferPavements, bool _quitIfOutOfRange) + public void TaskSmartFleeCoord(uint _ped, float _x, float _y, float _z, float _distance, int _time, bool _preferPavements, bool _quitIfOutOfRange) { unsafe { - if (fn__taskSmartFleeCoord == null) fn__taskSmartFleeCoord = (delegate* unmanaged[Cdecl]) funcTable[0x94587F17E9C365D5UL]; + if (fn__taskSmartFleeCoord == null) fn__taskSmartFleeCoord = (delegate* unmanaged[Cdecl]) funcTable[0x94587F17E9C365D5UL]; var success = false; fn__taskSmartFleeCoord(&success, _ped, _x, _y, _z, _distance, _time, (byte) (_preferPavements ? 1 : 0), (byte) (_quitIfOutOfRange ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void TaskSmartFleePed(IPlayer ped, int fleeTarget, float safeDistance, int fleeTime, bool preferPavements, bool updateToNearestHatedPed) => TaskSmartFleePed(ped.ScriptId, fleeTarget, safeDistance, fleeTime, preferPavements, updateToNearestHatedPed); - public void TaskSmartFleePed(int ped, IPlayer fleeTarget, float safeDistance, int fleeTime, bool preferPavements, bool updateToNearestHatedPed) => TaskSmartFleePed(ped, fleeTarget.ScriptId, safeDistance, fleeTime, preferPavements, updateToNearestHatedPed); + public void TaskSmartFleePed(IPlayer ped, uint fleeTarget, float safeDistance, int fleeTime, bool preferPavements, bool updateToNearestHatedPed) => TaskSmartFleePed(ped.ScriptId, fleeTarget, safeDistance, fleeTime, preferPavements, updateToNearestHatedPed); + public void TaskSmartFleePed(uint ped, IPlayer fleeTarget, float safeDistance, int fleeTime, bool preferPavements, bool updateToNearestHatedPed) => TaskSmartFleePed(ped, fleeTarget.ScriptId, safeDistance, fleeTime, preferPavements, updateToNearestHatedPed); public void TaskSmartFleePed(IPlayer ped, IPlayer fleeTarget, float safeDistance, int fleeTime, bool preferPavements, bool updateToNearestHatedPed) => TaskSmartFleePed(ped.ScriptId, fleeTarget.ScriptId, safeDistance, fleeTime, preferPavements, updateToNearestHatedPed); - public void TaskSmartFleePed(int _ped, int _fleeTarget, float _safeDistance, int _fleeTime, bool _preferPavements, bool _updateToNearestHatedPed) + public void TaskSmartFleePed(uint _ped, uint _fleeTarget, float _safeDistance, int _fleeTime, bool _preferPavements, bool _updateToNearestHatedPed) { unsafe { - if (fn__taskSmartFleePed == null) fn__taskSmartFleePed = (delegate* unmanaged[Cdecl]) funcTable[0x22B0D0E37CCB840DUL]; + if (fn__taskSmartFleePed == null) fn__taskSmartFleePed = (delegate* unmanaged[Cdecl]) funcTable[0x22B0D0E37CCB840DUL]; var success = false; fn__taskSmartFleePed(&success, _ped, _fleeTarget, _safeDistance, _fleeTime, (byte) (_preferPavements ? 1 : 0), (byte) (_updateToNearestHatedPed ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void TaskReactAndFleePed(IPlayer ped, int fleeTarget) => TaskReactAndFleePed(ped.ScriptId, fleeTarget); - public void TaskReactAndFleePed(int ped, IPlayer fleeTarget) => TaskReactAndFleePed(ped, fleeTarget.ScriptId); + public void TaskReactAndFleePed(IPlayer ped, uint fleeTarget) => TaskReactAndFleePed(ped.ScriptId, fleeTarget); + public void TaskReactAndFleePed(uint ped, IPlayer fleeTarget) => TaskReactAndFleePed(ped, fleeTarget.ScriptId); public void TaskReactAndFleePed(IPlayer ped, IPlayer fleeTarget) => TaskReactAndFleePed(ped.ScriptId, fleeTarget.ScriptId); - public void TaskReactAndFleePed(int _ped, int _fleeTarget) + public void TaskReactAndFleePed(uint _ped, uint _fleeTarget) { unsafe { - if (fn__taskReactAndFleePed == null) fn__taskReactAndFleePed = (delegate* unmanaged[Cdecl]) funcTable[0x72C896464915D1B1UL]; + if (fn__taskReactAndFleePed == null) fn__taskReactAndFleePed = (delegate* unmanaged[Cdecl]) funcTable[0x72C896464915D1B1UL]; var success = false; fn__taskReactAndFleePed(&success, _ped, _fleeTarget); if (!success) throw new Exception("Native execution failed"); @@ -92529,10 +92516,10 @@ public void TaskReactAndFleePed(int _ped, int _fleeTarget) } public void TaskShockingEventReact(IPlayer ped, int eventHandle) => TaskShockingEventReact(ped.ScriptId, eventHandle); - public void TaskShockingEventReact(int _ped, int _eventHandle) + public void TaskShockingEventReact(uint _ped, int _eventHandle) { unsafe { - if (fn__taskShockingEventReact == null) fn__taskShockingEventReact = (delegate* unmanaged[Cdecl]) funcTable[0x452419CBD838065BUL]; + if (fn__taskShockingEventReact == null) fn__taskShockingEventReact = (delegate* unmanaged[Cdecl]) funcTable[0x452419CBD838065BUL]; var success = false; fn__taskShockingEventReact(&success, _ped, _eventHandle); if (!success) throw new Exception("Native execution failed"); @@ -92540,10 +92527,10 @@ public void TaskShockingEventReact(int _ped, int _eventHandle) } public void TaskWanderInArea(IPlayer ped, float x, float y, float z, float radius, float minimalLength, float timeBetweenWalks) => TaskWanderInArea(ped.ScriptId, x, y, z, radius, minimalLength, timeBetweenWalks); - public void TaskWanderInArea(int _ped, float _x, float _y, float _z, float _radius, float _minimalLength, float _timeBetweenWalks) + public void TaskWanderInArea(uint _ped, float _x, float _y, float _z, float _radius, float _minimalLength, float _timeBetweenWalks) { unsafe { - if (fn__taskWanderInArea == null) fn__taskWanderInArea = (delegate* unmanaged[Cdecl]) funcTable[0xE054346CA3A0F315UL]; + if (fn__taskWanderInArea == null) fn__taskWanderInArea = (delegate* unmanaged[Cdecl]) funcTable[0xE054346CA3A0F315UL]; var success = false; fn__taskWanderInArea(&success, _ped, _x, _y, _z, _radius, _minimalLength, _timeBetweenWalks); if (!success) throw new Exception("Native execution failed"); @@ -92551,10 +92538,10 @@ public void TaskWanderInArea(int _ped, float _x, float _y, float _z, float _radi } public void TaskWanderStandard(IPlayer ped, float heading, int flags) => TaskWanderStandard(ped.ScriptId, heading, flags); - public void TaskWanderStandard(int _ped, float _heading, int _flags) + public void TaskWanderStandard(uint _ped, float _heading, int _flags) { unsafe { - if (fn__taskWanderStandard == null) fn__taskWanderStandard = (delegate* unmanaged[Cdecl]) funcTable[0xBB9CE077274F6A1BUL]; + if (fn__taskWanderStandard == null) fn__taskWanderStandard = (delegate* unmanaged[Cdecl]) funcTable[0xBB9CE077274F6A1BUL]; var success = false; fn__taskWanderStandard(&success, _ped, _heading, _flags); if (!success) throw new Exception("Native execution failed"); @@ -92562,40 +92549,40 @@ public void TaskWanderStandard(int _ped, float _heading, int _flags) } public void TaskWanderSpecific(IPlayer ped, string conditionalAnimGroupStr, string conditionalAnimStr, float heading) => TaskWanderSpecific(ped.ScriptId, conditionalAnimGroupStr, conditionalAnimStr, heading); - public void TaskWanderSpecific(int _ped, string _conditionalAnimGroupStr, string _conditionalAnimStr, float _heading) + public void TaskWanderSpecific(uint _ped, string _conditionalAnimGroupStr, string _conditionalAnimStr, float _heading) { unsafe { - if (fn__taskWanderSpecific == null) fn__taskWanderSpecific = (delegate* unmanaged[Cdecl]) funcTable[0x6919A2F136426098UL]; + if (fn__taskWanderSpecific == null) fn__taskWanderSpecific = (delegate* unmanaged[Cdecl]) funcTable[0x6919A2F136426098UL]; var success = false; - var ptr_conditionalAnimGroupStr = _conditionalAnimGroupStr == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_conditionalAnimGroupStr); - var ptr_conditionalAnimStr = _conditionalAnimStr == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_conditionalAnimStr); + var ptr_conditionalAnimGroupStr = MemoryUtils.StringToHGlobalUtf8(_conditionalAnimGroupStr); + var ptr_conditionalAnimStr = MemoryUtils.StringToHGlobalUtf8(_conditionalAnimStr); fn__taskWanderSpecific(&success, _ped, ptr_conditionalAnimGroupStr, ptr_conditionalAnimStr, _heading); - if (ptr_conditionalAnimGroupStr != IntPtr.Zero) Marshal.FreeHGlobal(ptr_conditionalAnimGroupStr); - if (ptr_conditionalAnimStr != IntPtr.Zero) Marshal.FreeHGlobal(ptr_conditionalAnimStr); + Marshal.FreeHGlobal(ptr_conditionalAnimGroupStr); + Marshal.FreeHGlobal(ptr_conditionalAnimStr); if (!success) throw new Exception("Native execution failed"); } } - public void TaskVehiclePark(IPlayer ped, int vehicle, float x, float y, float z, float heading, int mode, float radius, bool keepEngineOn) => TaskVehiclePark(ped.ScriptId, vehicle, x, y, z, heading, mode, radius, keepEngineOn); - public void TaskVehiclePark(int ped, IVehicle vehicle, float x, float y, float z, float heading, int mode, float radius, bool keepEngineOn) => TaskVehiclePark(ped, vehicle.ScriptId, x, y, z, heading, mode, radius, keepEngineOn); + public void TaskVehiclePark(IPlayer ped, uint vehicle, float x, float y, float z, float heading, int mode, float radius, bool keepEngineOn) => TaskVehiclePark(ped.ScriptId, vehicle, x, y, z, heading, mode, radius, keepEngineOn); + public void TaskVehiclePark(uint ped, IVehicle vehicle, float x, float y, float z, float heading, int mode, float radius, bool keepEngineOn) => TaskVehiclePark(ped, vehicle.ScriptId, x, y, z, heading, mode, radius, keepEngineOn); public void TaskVehiclePark(IPlayer ped, IVehicle vehicle, float x, float y, float z, float heading, int mode, float radius, bool keepEngineOn) => TaskVehiclePark(ped.ScriptId, vehicle.ScriptId, x, y, z, heading, mode, radius, keepEngineOn); - public void TaskVehiclePark(int _ped, int _vehicle, float _x, float _y, float _z, float _heading, int _mode, float _radius, bool _keepEngineOn) + public void TaskVehiclePark(uint _ped, uint _vehicle, float _x, float _y, float _z, float _heading, int _mode, float _radius, bool _keepEngineOn) { unsafe { - if (fn__taskVehiclePark == null) fn__taskVehiclePark = (delegate* unmanaged[Cdecl]) funcTable[0x0F3E34E968EA374EUL]; + if (fn__taskVehiclePark == null) fn__taskVehiclePark = (delegate* unmanaged[Cdecl]) funcTable[0x0F3E34E968EA374EUL]; var success = false; fn__taskVehiclePark(&success, _ped, _vehicle, _x, _y, _z, _heading, _mode, _radius, (byte) (_keepEngineOn ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void TaskStealthKill(IPlayer killer, int target, uint stealthKillActionResultHash, float desiredMoveBlendRatio, int stealthFlags) => TaskStealthKill(killer.ScriptId, target, stealthKillActionResultHash, desiredMoveBlendRatio, stealthFlags); - public void TaskStealthKill(int killer, IPlayer target, uint stealthKillActionResultHash, float desiredMoveBlendRatio, int stealthFlags) => TaskStealthKill(killer, target.ScriptId, stealthKillActionResultHash, desiredMoveBlendRatio, stealthFlags); + public void TaskStealthKill(IPlayer killer, uint target, uint stealthKillActionResultHash, float desiredMoveBlendRatio, int stealthFlags) => TaskStealthKill(killer.ScriptId, target, stealthKillActionResultHash, desiredMoveBlendRatio, stealthFlags); + public void TaskStealthKill(uint killer, IPlayer target, uint stealthKillActionResultHash, float desiredMoveBlendRatio, int stealthFlags) => TaskStealthKill(killer, target.ScriptId, stealthKillActionResultHash, desiredMoveBlendRatio, stealthFlags); public void TaskStealthKill(IPlayer killer, IPlayer target, uint stealthKillActionResultHash, float desiredMoveBlendRatio, int stealthFlags) => TaskStealthKill(killer.ScriptId, target.ScriptId, stealthKillActionResultHash, desiredMoveBlendRatio, stealthFlags); - public void TaskStealthKill(int _killer, int _target, uint _stealthKillActionResultHash, float _desiredMoveBlendRatio, int _stealthFlags) + public void TaskStealthKill(uint _killer, uint _target, uint _stealthKillActionResultHash, float _desiredMoveBlendRatio, int _stealthFlags) { unsafe { - if (fn__taskStealthKill == null) fn__taskStealthKill = (delegate* unmanaged[Cdecl]) funcTable[0xAA5DC05579D60BD9UL]; + if (fn__taskStealthKill == null) fn__taskStealthKill = (delegate* unmanaged[Cdecl]) funcTable[0xAA5DC05579D60BD9UL]; var success = false; fn__taskStealthKill(&success, _killer, _target, _stealthKillActionResultHash, _desiredMoveBlendRatio, _stealthFlags); if (!success) throw new Exception("Native execution failed"); @@ -92603,10 +92590,10 @@ public void TaskStealthKill(int _killer, int _target, uint _stealthKillActionRes } public void TaskPlantBomb(IPlayer ped, float x, float y, float z, float heading) => TaskPlantBomb(ped.ScriptId, x, y, z, heading); - public void TaskPlantBomb(int _ped, float _x, float _y, float _z, float _heading) + public void TaskPlantBomb(uint _ped, float _x, float _y, float _z, float _heading) { unsafe { - if (fn__taskPlantBomb == null) fn__taskPlantBomb = (delegate* unmanaged[Cdecl]) funcTable[0x965FEC691D55E9BFUL]; + if (fn__taskPlantBomb == null) fn__taskPlantBomb = (delegate* unmanaged[Cdecl]) funcTable[0x965FEC691D55E9BFUL]; var success = false; fn__taskPlantBomb(&success, _ped, _x, _y, _z, _heading); if (!success) throw new Exception("Native execution failed"); @@ -92614,10 +92601,10 @@ public void TaskPlantBomb(int _ped, float _x, float _y, float _z, float _heading } public void TaskFollowNavMeshToCoord(IPlayer ped, float x, float y, float z, float moveBlendRatio, int time, float targetRadius, int flags, float targetHeading) => TaskFollowNavMeshToCoord(ped.ScriptId, x, y, z, moveBlendRatio, time, targetRadius, flags, targetHeading); - public void TaskFollowNavMeshToCoord(int _ped, float _x, float _y, float _z, float _moveBlendRatio, int _time, float _targetRadius, int _flags, float _targetHeading) + public void TaskFollowNavMeshToCoord(uint _ped, float _x, float _y, float _z, float _moveBlendRatio, int _time, float _targetRadius, int _flags, float _targetHeading) { unsafe { - if (fn__taskFollowNavMeshToCoord == null) fn__taskFollowNavMeshToCoord = (delegate* unmanaged[Cdecl]) funcTable[0x15D3A79D4E44B913UL]; + if (fn__taskFollowNavMeshToCoord == null) fn__taskFollowNavMeshToCoord = (delegate* unmanaged[Cdecl]) funcTable[0x15D3A79D4E44B913UL]; var success = false; fn__taskFollowNavMeshToCoord(&success, _ped, _x, _y, _z, _moveBlendRatio, _time, _targetRadius, _flags, _targetHeading); if (!success) throw new Exception("Native execution failed"); @@ -92625,10 +92612,10 @@ public void TaskFollowNavMeshToCoord(int _ped, float _x, float _y, float _z, flo } public void TaskFollowNavMeshToCoordAdvanced(IPlayer ped, float x, float y, float z, float moveBlendRatio, int time, float targetRadius, int flags, float slideToCoordHeading, float maxSlopeNavigable, float clampMaxSearchDistance, float targetHeading) => TaskFollowNavMeshToCoordAdvanced(ped.ScriptId, x, y, z, moveBlendRatio, time, targetRadius, flags, slideToCoordHeading, maxSlopeNavigable, clampMaxSearchDistance, targetHeading); - public void TaskFollowNavMeshToCoordAdvanced(int _ped, float _x, float _y, float _z, float _moveBlendRatio, int _time, float _targetRadius, int _flags, float _slideToCoordHeading, float _maxSlopeNavigable, float _clampMaxSearchDistance, float _targetHeading) + public void TaskFollowNavMeshToCoordAdvanced(uint _ped, float _x, float _y, float _z, float _moveBlendRatio, int _time, float _targetRadius, int _flags, float _slideToCoordHeading, float _maxSlopeNavigable, float _clampMaxSearchDistance, float _targetHeading) { unsafe { - if (fn__taskFollowNavMeshToCoordAdvanced == null) fn__taskFollowNavMeshToCoordAdvanced = (delegate* unmanaged[Cdecl]) funcTable[0x17F58B88D085DBACUL]; + if (fn__taskFollowNavMeshToCoordAdvanced == null) fn__taskFollowNavMeshToCoordAdvanced = (delegate* unmanaged[Cdecl]) funcTable[0x17F58B88D085DBACUL]; var success = false; fn__taskFollowNavMeshToCoordAdvanced(&success, _ped, _x, _y, _z, _moveBlendRatio, _time, _targetRadius, _flags, _slideToCoordHeading, _maxSlopeNavigable, _clampMaxSearchDistance, _targetHeading); if (!success) throw new Exception("Native execution failed"); @@ -92636,10 +92623,10 @@ public void TaskFollowNavMeshToCoordAdvanced(int _ped, float _x, float _y, float } public void SetPedPathCanUseClimbovers(IPlayer ped, bool Toggle) => SetPedPathCanUseClimbovers(ped.ScriptId, Toggle); - public void SetPedPathCanUseClimbovers(int _ped, bool _Toggle) + public void SetPedPathCanUseClimbovers(uint _ped, bool _Toggle) { unsafe { - if (fn__setPedPathCanUseClimbovers == null) fn__setPedPathCanUseClimbovers = (delegate* unmanaged[Cdecl]) funcTable[0x8E06A6FE76C9EFF4UL]; + if (fn__setPedPathCanUseClimbovers == null) fn__setPedPathCanUseClimbovers = (delegate* unmanaged[Cdecl]) funcTable[0x8E06A6FE76C9EFF4UL]; var success = false; fn__setPedPathCanUseClimbovers(&success, _ped, (byte) (_Toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -92647,10 +92634,10 @@ public void SetPedPathCanUseClimbovers(int _ped, bool _Toggle) } public void SetPedPathCanUseLadders(IPlayer ped, bool Toggle) => SetPedPathCanUseLadders(ped.ScriptId, Toggle); - public void SetPedPathCanUseLadders(int _ped, bool _Toggle) + public void SetPedPathCanUseLadders(uint _ped, bool _Toggle) { unsafe { - if (fn__setPedPathCanUseLadders == null) fn__setPedPathCanUseLadders = (delegate* unmanaged[Cdecl]) funcTable[0x77A5B103C87F476EUL]; + if (fn__setPedPathCanUseLadders == null) fn__setPedPathCanUseLadders = (delegate* unmanaged[Cdecl]) funcTable[0x77A5B103C87F476EUL]; var success = false; fn__setPedPathCanUseLadders(&success, _ped, (byte) (_Toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -92658,10 +92645,10 @@ public void SetPedPathCanUseLadders(int _ped, bool _Toggle) } public void SetPedPathCanDropFromHeight(IPlayer ped, bool Toggle) => SetPedPathCanDropFromHeight(ped.ScriptId, Toggle); - public void SetPedPathCanDropFromHeight(int _ped, bool _Toggle) + public void SetPedPathCanDropFromHeight(uint _ped, bool _Toggle) { unsafe { - if (fn__setPedPathCanDropFromHeight == null) fn__setPedPathCanDropFromHeight = (delegate* unmanaged[Cdecl]) funcTable[0xE361C5C71C431A4FUL]; + if (fn__setPedPathCanDropFromHeight == null) fn__setPedPathCanDropFromHeight = (delegate* unmanaged[Cdecl]) funcTable[0xE361C5C71C431A4FUL]; var success = false; fn__setPedPathCanDropFromHeight(&success, _ped, (byte) (_Toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -92669,10 +92656,10 @@ public void SetPedPathCanDropFromHeight(int _ped, bool _Toggle) } public void SetPedPathClimbCostModifier(IPlayer ped, float modifier) => SetPedPathClimbCostModifier(ped.ScriptId, modifier); - public void SetPedPathClimbCostModifier(int _ped, float _modifier) + public void SetPedPathClimbCostModifier(uint _ped, float _modifier) { unsafe { - if (fn__setPedPathClimbCostModifier == null) fn__setPedPathClimbCostModifier = (delegate* unmanaged[Cdecl]) funcTable[0x88E32DB8C1A4AA4BUL]; + if (fn__setPedPathClimbCostModifier == null) fn__setPedPathClimbCostModifier = (delegate* unmanaged[Cdecl]) funcTable[0x88E32DB8C1A4AA4BUL]; var success = false; fn__setPedPathClimbCostModifier(&success, _ped, _modifier); if (!success) throw new Exception("Native execution failed"); @@ -92680,10 +92667,10 @@ public void SetPedPathClimbCostModifier(int _ped, float _modifier) } public void SetPedPathMayEnterWater(IPlayer ped, bool mayEnterWater) => SetPedPathMayEnterWater(ped.ScriptId, mayEnterWater); - public void SetPedPathMayEnterWater(int _ped, bool _mayEnterWater) + public void SetPedPathMayEnterWater(uint _ped, bool _mayEnterWater) { unsafe { - if (fn__setPedPathMayEnterWater == null) fn__setPedPathMayEnterWater = (delegate* unmanaged[Cdecl]) funcTable[0xF35425A4204367ECUL]; + if (fn__setPedPathMayEnterWater == null) fn__setPedPathMayEnterWater = (delegate* unmanaged[Cdecl]) funcTable[0xF35425A4204367ECUL]; var success = false; fn__setPedPathMayEnterWater(&success, _ped, (byte) (_mayEnterWater ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -92691,10 +92678,10 @@ public void SetPedPathMayEnterWater(int _ped, bool _mayEnterWater) } public void SetPedPathPreferToAvoidWater(IPlayer ped, bool avoidWater) => SetPedPathPreferToAvoidWater(ped.ScriptId, avoidWater); - public void SetPedPathPreferToAvoidWater(int _ped, bool _avoidWater) + public void SetPedPathPreferToAvoidWater(uint _ped, bool _avoidWater) { unsafe { - if (fn__setPedPathPreferToAvoidWater == null) fn__setPedPathPreferToAvoidWater = (delegate* unmanaged[Cdecl]) funcTable[0x38FE1EC73743793CUL]; + if (fn__setPedPathPreferToAvoidWater == null) fn__setPedPathPreferToAvoidWater = (delegate* unmanaged[Cdecl]) funcTable[0x38FE1EC73743793CUL]; var success = false; fn__setPedPathPreferToAvoidWater(&success, _ped, (byte) (_avoidWater ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -92702,10 +92689,10 @@ public void SetPedPathPreferToAvoidWater(int _ped, bool _avoidWater) } public void SetPedPathAvoidFire(IPlayer ped, bool avoidFire) => SetPedPathAvoidFire(ped.ScriptId, avoidFire); - public void SetPedPathAvoidFire(int _ped, bool _avoidFire) + public void SetPedPathAvoidFire(uint _ped, bool _avoidFire) { unsafe { - if (fn__setPedPathAvoidFire == null) fn__setPedPathAvoidFire = (delegate* unmanaged[Cdecl]) funcTable[0x4455517B28441E60UL]; + if (fn__setPedPathAvoidFire == null) fn__setPedPathAvoidFire = (delegate* unmanaged[Cdecl]) funcTable[0x4455517B28441E60UL]; var success = false; fn__setPedPathAvoidFire(&success, _ped, (byte) (_avoidFire ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -92723,10 +92710,10 @@ public void SetGlobalMinBirdFlightHeight(float _height) } public int GetNavmeshRouteDistanceRemaining(IPlayer ped, ref float distanceRemaining, ref bool isPathReady) => GetNavmeshRouteDistanceRemaining(ped.ScriptId, ref distanceRemaining, ref isPathReady); - public int GetNavmeshRouteDistanceRemaining(int _ped, ref float _distanceRemaining, ref bool _isPathReady) + public int GetNavmeshRouteDistanceRemaining(uint _ped, ref float _distanceRemaining, ref bool _isPathReady) { unsafe { - if (fn__getNavmeshRouteDistanceRemaining == null) fn__getNavmeshRouteDistanceRemaining = (delegate* unmanaged[Cdecl]) funcTable[0xC6F5C0BCDC74D62DUL]; + if (fn__getNavmeshRouteDistanceRemaining == null) fn__getNavmeshRouteDistanceRemaining = (delegate* unmanaged[Cdecl]) funcTable[0xC6F5C0BCDC74D62DUL]; var success = false; var ref_distanceRemaining = _distanceRemaining; var ref_isPathReady = (byte) (_isPathReady ? 1 : 0); @@ -92739,10 +92726,10 @@ public int GetNavmeshRouteDistanceRemaining(int _ped, ref float _distanceRemaini } public int GetNavmeshRouteResult(IPlayer ped) => GetNavmeshRouteResult(ped.ScriptId); - public int GetNavmeshRouteResult(int _ped) + public int GetNavmeshRouteResult(uint _ped) { unsafe { - if (fn__getNavmeshRouteResult == null) fn__getNavmeshRouteResult = (delegate* unmanaged[Cdecl]) funcTable[0x632E831F382A0FA8UL]; + if (fn__getNavmeshRouteResult == null) fn__getNavmeshRouteResult = (delegate* unmanaged[Cdecl]) funcTable[0x632E831F382A0FA8UL]; var success = false; var result = fn__getNavmeshRouteResult(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -92751,10 +92738,10 @@ public int GetNavmeshRouteResult(int _ped) } public bool IsControlledVehicleUnableToGetToRoad(IPlayer ped) => IsControlledVehicleUnableToGetToRoad(ped.ScriptId); - public bool IsControlledVehicleUnableToGetToRoad(int _ped) + public bool IsControlledVehicleUnableToGetToRoad(uint _ped) { unsafe { - if (fn__isControlledVehicleUnableToGetToRoad == null) fn__isControlledVehicleUnableToGetToRoad = (delegate* unmanaged[Cdecl]) funcTable[0x3E38E28A1D80DDF6UL]; + if (fn__isControlledVehicleUnableToGetToRoad == null) fn__isControlledVehicleUnableToGetToRoad = (delegate* unmanaged[Cdecl]) funcTable[0x3E38E28A1D80DDF6UL]; var success = false; var result = fn__isControlledVehicleUnableToGetToRoad(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -92762,39 +92749,39 @@ public bool IsControlledVehicleUnableToGetToRoad(int _ped) } } - public void TaskGoToCoordAnyMeans(IPlayer ped, float x, float y, float z, float moveBlendRatio, int vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets) => TaskGoToCoordAnyMeans(ped.ScriptId, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets); - public void TaskGoToCoordAnyMeans(int ped, float x, float y, float z, float moveBlendRatio, IVehicle vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets) => TaskGoToCoordAnyMeans(ped, x, y, z, moveBlendRatio, vehicle.ScriptId, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets); + public void TaskGoToCoordAnyMeans(IPlayer ped, float x, float y, float z, float moveBlendRatio, uint vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets) => TaskGoToCoordAnyMeans(ped.ScriptId, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets); + public void TaskGoToCoordAnyMeans(uint ped, float x, float y, float z, float moveBlendRatio, IVehicle vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets) => TaskGoToCoordAnyMeans(ped, x, y, z, moveBlendRatio, vehicle.ScriptId, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets); public void TaskGoToCoordAnyMeans(IPlayer ped, float x, float y, float z, float moveBlendRatio, IVehicle vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets) => TaskGoToCoordAnyMeans(ped.ScriptId, x, y, z, moveBlendRatio, vehicle.ScriptId, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets); - public void TaskGoToCoordAnyMeans(int _ped, float _x, float _y, float _z, float _moveBlendRatio, int _vehicle, bool _useLongRangeVehiclePathing, int _drivingFlags, float _maxRangeToShootTargets) + public void TaskGoToCoordAnyMeans(uint _ped, float _x, float _y, float _z, float _moveBlendRatio, uint _vehicle, bool _useLongRangeVehiclePathing, int _drivingFlags, float _maxRangeToShootTargets) { unsafe { - if (fn__taskGoToCoordAnyMeans == null) fn__taskGoToCoordAnyMeans = (delegate* unmanaged[Cdecl]) funcTable[0x5BC448CB78FA3E88UL]; + if (fn__taskGoToCoordAnyMeans == null) fn__taskGoToCoordAnyMeans = (delegate* unmanaged[Cdecl]) funcTable[0x5BC448CB78FA3E88UL]; var success = false; fn__taskGoToCoordAnyMeans(&success, _ped, _x, _y, _z, _moveBlendRatio, _vehicle, (byte) (_useLongRangeVehiclePathing ? 1 : 0), _drivingFlags, _maxRangeToShootTargets); if (!success) throw new Exception("Native execution failed"); } } - public void TaskGoToCoordAnyMeansExtraParams(IPlayer ped, float x, float y, float z, float moveBlendRatio, int vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float warpTimerMS) => TaskGoToCoordAnyMeansExtraParams(ped.ScriptId, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, extraVehToTargetDistToPreferVehicle, driveStraightLineDistance, extraFlags, warpTimerMS); - public void TaskGoToCoordAnyMeansExtraParams(int ped, float x, float y, float z, float moveBlendRatio, IVehicle vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float warpTimerMS) => TaskGoToCoordAnyMeansExtraParams(ped, x, y, z, moveBlendRatio, vehicle.ScriptId, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, extraVehToTargetDistToPreferVehicle, driveStraightLineDistance, extraFlags, warpTimerMS); + public void TaskGoToCoordAnyMeansExtraParams(IPlayer ped, float x, float y, float z, float moveBlendRatio, uint vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float warpTimerMS) => TaskGoToCoordAnyMeansExtraParams(ped.ScriptId, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, extraVehToTargetDistToPreferVehicle, driveStraightLineDistance, extraFlags, warpTimerMS); + public void TaskGoToCoordAnyMeansExtraParams(uint ped, float x, float y, float z, float moveBlendRatio, IVehicle vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float warpTimerMS) => TaskGoToCoordAnyMeansExtraParams(ped, x, y, z, moveBlendRatio, vehicle.ScriptId, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, extraVehToTargetDistToPreferVehicle, driveStraightLineDistance, extraFlags, warpTimerMS); public void TaskGoToCoordAnyMeansExtraParams(IPlayer ped, float x, float y, float z, float moveBlendRatio, IVehicle vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float warpTimerMS) => TaskGoToCoordAnyMeansExtraParams(ped.ScriptId, x, y, z, moveBlendRatio, vehicle.ScriptId, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, extraVehToTargetDistToPreferVehicle, driveStraightLineDistance, extraFlags, warpTimerMS); - public void TaskGoToCoordAnyMeansExtraParams(int _ped, float _x, float _y, float _z, float _moveBlendRatio, int _vehicle, bool _useLongRangeVehiclePathing, int _drivingFlags, float _maxRangeToShootTargets, float _extraVehToTargetDistToPreferVehicle, float _driveStraightLineDistance, int _extraFlags, float _warpTimerMS) + public void TaskGoToCoordAnyMeansExtraParams(uint _ped, float _x, float _y, float _z, float _moveBlendRatio, uint _vehicle, bool _useLongRangeVehiclePathing, int _drivingFlags, float _maxRangeToShootTargets, float _extraVehToTargetDistToPreferVehicle, float _driveStraightLineDistance, int _extraFlags, float _warpTimerMS) { unsafe { - if (fn__taskGoToCoordAnyMeansExtraParams == null) fn__taskGoToCoordAnyMeansExtraParams = (delegate* unmanaged[Cdecl]) funcTable[0x1DD45F9ECFDB1BC9UL]; + if (fn__taskGoToCoordAnyMeansExtraParams == null) fn__taskGoToCoordAnyMeansExtraParams = (delegate* unmanaged[Cdecl]) funcTable[0x1DD45F9ECFDB1BC9UL]; var success = false; fn__taskGoToCoordAnyMeansExtraParams(&success, _ped, _x, _y, _z, _moveBlendRatio, _vehicle, (byte) (_useLongRangeVehiclePathing ? 1 : 0), _drivingFlags, _maxRangeToShootTargets, _extraVehToTargetDistToPreferVehicle, _driveStraightLineDistance, _extraFlags, _warpTimerMS); if (!success) throw new Exception("Native execution failed"); } } - public void TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(IPlayer ped, float x, float y, float z, float moveBlendRatio, int vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float cruiseSpeed, float targetArriveDist) => TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(ped.ScriptId, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, extraVehToTargetDistToPreferVehicle, driveStraightLineDistance, extraFlags, cruiseSpeed, targetArriveDist); - public void TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(int ped, float x, float y, float z, float moveBlendRatio, IVehicle vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float cruiseSpeed, float targetArriveDist) => TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(ped, x, y, z, moveBlendRatio, vehicle.ScriptId, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, extraVehToTargetDistToPreferVehicle, driveStraightLineDistance, extraFlags, cruiseSpeed, targetArriveDist); + public void TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(IPlayer ped, float x, float y, float z, float moveBlendRatio, uint vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float cruiseSpeed, float targetArriveDist) => TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(ped.ScriptId, x, y, z, moveBlendRatio, vehicle, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, extraVehToTargetDistToPreferVehicle, driveStraightLineDistance, extraFlags, cruiseSpeed, targetArriveDist); + public void TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(uint ped, float x, float y, float z, float moveBlendRatio, IVehicle vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float cruiseSpeed, float targetArriveDist) => TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(ped, x, y, z, moveBlendRatio, vehicle.ScriptId, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, extraVehToTargetDistToPreferVehicle, driveStraightLineDistance, extraFlags, cruiseSpeed, targetArriveDist); public void TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(IPlayer ped, float x, float y, float z, float moveBlendRatio, IVehicle vehicle, bool useLongRangeVehiclePathing, int drivingFlags, float maxRangeToShootTargets, float extraVehToTargetDistToPreferVehicle, float driveStraightLineDistance, int extraFlags, float cruiseSpeed, float targetArriveDist) => TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(ped.ScriptId, x, y, z, moveBlendRatio, vehicle.ScriptId, useLongRangeVehiclePathing, drivingFlags, maxRangeToShootTargets, extraVehToTargetDistToPreferVehicle, driveStraightLineDistance, extraFlags, cruiseSpeed, targetArriveDist); - public void TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(int _ped, float _x, float _y, float _z, float _moveBlendRatio, int _vehicle, bool _useLongRangeVehiclePathing, int _drivingFlags, float _maxRangeToShootTargets, float _extraVehToTargetDistToPreferVehicle, float _driveStraightLineDistance, int _extraFlags, float _cruiseSpeed, float _targetArriveDist) + public void TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(uint _ped, float _x, float _y, float _z, float _moveBlendRatio, uint _vehicle, bool _useLongRangeVehiclePathing, int _drivingFlags, float _maxRangeToShootTargets, float _extraVehToTargetDistToPreferVehicle, float _driveStraightLineDistance, int _extraFlags, float _cruiseSpeed, float _targetArriveDist) { unsafe { - if (fn__taskGoToCoordAnyMeansExtraParamsWithCruiseSpeed == null) fn__taskGoToCoordAnyMeansExtraParamsWithCruiseSpeed = (delegate* unmanaged[Cdecl]) funcTable[0xB8ECD61F531A7B02UL]; + if (fn__taskGoToCoordAnyMeansExtraParamsWithCruiseSpeed == null) fn__taskGoToCoordAnyMeansExtraParamsWithCruiseSpeed = (delegate* unmanaged[Cdecl]) funcTable[0xB8ECD61F531A7B02UL]; var success = false; fn__taskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(&success, _ped, _x, _y, _z, _moveBlendRatio, _vehicle, (byte) (_useLongRangeVehiclePathing ? 1 : 0), _drivingFlags, _maxRangeToShootTargets, _extraVehToTargetDistToPreferVehicle, _driveStraightLineDistance, _extraFlags, _cruiseSpeed, _targetArriveDist); if (!success) throw new Exception("Native execution failed"); @@ -92802,55 +92789,55 @@ public void TaskGoToCoordAnyMeansExtraParamsWithCruiseSpeed(int _ped, float _x, } public void TaskPlayAnim(IPlayer ped, string animDictionary, string animationName, float blendInSpeed, float blendOutSpeed, int duration, int flag, float playbackRate, bool lockX, bool lockY, bool lockZ) => TaskPlayAnim(ped.ScriptId, animDictionary, animationName, blendInSpeed, blendOutSpeed, duration, flag, playbackRate, lockX, lockY, lockZ); - public void TaskPlayAnim(int _ped, string _animDictionary, string _animationName, float _blendInSpeed, float _blendOutSpeed, int _duration, int _flag, float _playbackRate, bool _lockX, bool _lockY, bool _lockZ) + public void TaskPlayAnim(uint _ped, string _animDictionary, string _animationName, float _blendInSpeed, float _blendOutSpeed, int _duration, int _flag, float _playbackRate, bool _lockX, bool _lockY, bool _lockZ) { unsafe { - if (fn__taskPlayAnim == null) fn__taskPlayAnim = (delegate* unmanaged[Cdecl]) funcTable[0xEA47FE3719165B94UL]; + if (fn__taskPlayAnim == null) fn__taskPlayAnim = (delegate* unmanaged[Cdecl]) funcTable[0xEA47FE3719165B94UL]; var success = false; - var ptr_animDictionary = _animDictionary == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDictionary); - var ptr_animationName = _animationName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animationName); + var ptr_animDictionary = MemoryUtils.StringToHGlobalUtf8(_animDictionary); + var ptr_animationName = MemoryUtils.StringToHGlobalUtf8(_animationName); fn__taskPlayAnim(&success, _ped, ptr_animDictionary, ptr_animationName, _blendInSpeed, _blendOutSpeed, _duration, _flag, _playbackRate, (byte) (_lockX ? 1 : 0), (byte) (_lockY ? 1 : 0), (byte) (_lockZ ? 1 : 0)); - if (ptr_animDictionary != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDictionary); - if (ptr_animationName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animationName); + Marshal.FreeHGlobal(ptr_animDictionary); + Marshal.FreeHGlobal(ptr_animationName); if (!success) throw new Exception("Native execution failed"); } } public void TaskPlayAnimAdvanced(IPlayer ped, string animDict, string animName, float posX, float posY, float posZ, float rotX, float rotY, float rotZ, float animEnterSpeed, float animExitSpeed, int duration, int flag, float animTime, int rotOrder, int ikFlags) => TaskPlayAnimAdvanced(ped.ScriptId, animDict, animName, posX, posY, posZ, rotX, rotY, rotZ, animEnterSpeed, animExitSpeed, duration, flag, animTime, rotOrder, ikFlags); - public void TaskPlayAnimAdvanced(int _ped, string _animDict, string _animName, float _posX, float _posY, float _posZ, float _rotX, float _rotY, float _rotZ, float _animEnterSpeed, float _animExitSpeed, int _duration, int _flag, float _animTime, int _rotOrder, int _ikFlags) + public void TaskPlayAnimAdvanced(uint _ped, string _animDict, string _animName, float _posX, float _posY, float _posZ, float _rotX, float _rotY, float _rotZ, float _animEnterSpeed, float _animExitSpeed, int _duration, int _flag, float _animTime, int _rotOrder, int _ikFlags) { unsafe { - if (fn__taskPlayAnimAdvanced == null) fn__taskPlayAnimAdvanced = (delegate* unmanaged[Cdecl]) funcTable[0x83CDB10EA29B370BUL]; + if (fn__taskPlayAnimAdvanced == null) fn__taskPlayAnimAdvanced = (delegate* unmanaged[Cdecl]) funcTable[0x83CDB10EA29B370BUL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); fn__taskPlayAnimAdvanced(&success, _ped, ptr_animDict, ptr_animName, _posX, _posY, _posZ, _rotX, _rotY, _rotZ, _animEnterSpeed, _animExitSpeed, _duration, _flag, _animTime, _rotOrder, _ikFlags); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animName); if (!success) throw new Exception("Native execution failed"); } } public void StopAnimTask(IEntity entity, string animDictionary, string animationName, float blendDelta) => StopAnimTask(entity.ScriptId, animDictionary, animationName, blendDelta); - public void StopAnimTask(int _entity, string _animDictionary, string _animationName, float _blendDelta) + public void StopAnimTask(uint _entity, string _animDictionary, string _animationName, float _blendDelta) { unsafe { - if (fn__stopAnimTask == null) fn__stopAnimTask = (delegate* unmanaged[Cdecl]) funcTable[0x97FF36A1D40EA00AUL]; + if (fn__stopAnimTask == null) fn__stopAnimTask = (delegate* unmanaged[Cdecl]) funcTable[0x97FF36A1D40EA00AUL]; var success = false; - var ptr_animDictionary = _animDictionary == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDictionary); - var ptr_animationName = _animationName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animationName); + var ptr_animDictionary = MemoryUtils.StringToHGlobalUtf8(_animDictionary); + var ptr_animationName = MemoryUtils.StringToHGlobalUtf8(_animationName); fn__stopAnimTask(&success, _entity, ptr_animDictionary, ptr_animationName, _blendDelta); - if (ptr_animDictionary != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDictionary); - if (ptr_animationName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animationName); + Marshal.FreeHGlobal(ptr_animDictionary); + Marshal.FreeHGlobal(ptr_animationName); if (!success) throw new Exception("Native execution failed"); } } public void TaskScriptedAnimation(IPlayer ped, ref int priorityLowData, ref int priorityMidData, ref int priorityHighData, float blendInDelta, float blendOutDelta) => TaskScriptedAnimation(ped.ScriptId, ref priorityLowData, ref priorityMidData, ref priorityHighData, blendInDelta, blendOutDelta); - public void TaskScriptedAnimation(int _ped, ref int _priorityLowData, ref int _priorityMidData, ref int _priorityHighData, float _blendInDelta, float _blendOutDelta) + public void TaskScriptedAnimation(uint _ped, ref int _priorityLowData, ref int _priorityMidData, ref int _priorityHighData, float _blendInDelta, float _blendOutDelta) { unsafe { - if (fn__taskScriptedAnimation == null) fn__taskScriptedAnimation = (delegate* unmanaged[Cdecl]) funcTable[0x126EF75F1E17ABE5UL]; + if (fn__taskScriptedAnimation == null) fn__taskScriptedAnimation = (delegate* unmanaged[Cdecl]) funcTable[0x126EF75F1E17ABE5UL]; var success = false; var ref_priorityLowData = _priorityLowData; var ref_priorityMidData = _priorityMidData; @@ -92864,10 +92851,10 @@ public void TaskScriptedAnimation(int _ped, ref int _priorityLowData, ref int _p } public void PlayEntityScriptedAnim(IEntity entity, ref int priorityLowData, ref int priorityMidData, ref int priorityHighData, float blendInDelta, float blendOutDelta) => PlayEntityScriptedAnim(entity.ScriptId, ref priorityLowData, ref priorityMidData, ref priorityHighData, blendInDelta, blendOutDelta); - public void PlayEntityScriptedAnim(int _entity, ref int _priorityLowData, ref int _priorityMidData, ref int _priorityHighData, float _blendInDelta, float _blendOutDelta) + public void PlayEntityScriptedAnim(uint _entity, ref int _priorityLowData, ref int _priorityMidData, ref int _priorityHighData, float _blendInDelta, float _blendOutDelta) { unsafe { - if (fn__playEntityScriptedAnim == null) fn__playEntityScriptedAnim = (delegate* unmanaged[Cdecl]) funcTable[0x77A1EEC547E7FCF1UL]; + if (fn__playEntityScriptedAnim == null) fn__playEntityScriptedAnim = (delegate* unmanaged[Cdecl]) funcTable[0x77A1EEC547E7FCF1UL]; var success = false; var ref_priorityLowData = _priorityLowData; var ref_priorityMidData = _priorityMidData; @@ -92881,10 +92868,10 @@ public void PlayEntityScriptedAnim(int _entity, ref int _priorityLowData, ref in } public void StopAnimPlayback(IEntity entity, int priority, bool secondary) => StopAnimPlayback(entity.ScriptId, priority, secondary); - public void StopAnimPlayback(int _entity, int _priority, bool _secondary) + public void StopAnimPlayback(uint _entity, int _priority, bool _secondary) { unsafe { - if (fn__stopAnimPlayback == null) fn__stopAnimPlayback = (delegate* unmanaged[Cdecl]) funcTable[0xEE08C992D238C5D1UL]; + if (fn__stopAnimPlayback == null) fn__stopAnimPlayback = (delegate* unmanaged[Cdecl]) funcTable[0xEE08C992D238C5D1UL]; var success = false; fn__stopAnimPlayback(&success, _entity, _priority, (byte) (_secondary ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -92892,10 +92879,10 @@ public void StopAnimPlayback(int _entity, int _priority, bool _secondary) } public void SetAnimWeight(IEntity entity, float weight, int priority, int index, bool secondary) => SetAnimWeight(entity.ScriptId, weight, priority, index, secondary); - public void SetAnimWeight(int _entity, float _weight, int _priority, int _index, bool _secondary) + public void SetAnimWeight(uint _entity, float _weight, int _priority, int _index, bool _secondary) { unsafe { - if (fn__setAnimWeight == null) fn__setAnimWeight = (delegate* unmanaged[Cdecl]) funcTable[0x207F1A47C0342F48UL]; + if (fn__setAnimWeight == null) fn__setAnimWeight = (delegate* unmanaged[Cdecl]) funcTable[0x207F1A47C0342F48UL]; var success = false; fn__setAnimWeight(&success, _entity, _weight, _priority, _index, (byte) (_secondary ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -92903,10 +92890,10 @@ public void SetAnimWeight(int _entity, float _weight, int _priority, int _index, } public void SetAnimPhase(IEntity entity, float phase, int priority, bool secondary) => SetAnimPhase(entity.ScriptId, phase, priority, secondary); - public void SetAnimPhase(int _entity, float _phase, int _priority, bool _secondary) + public void SetAnimPhase(uint _entity, float _phase, int _priority, bool _secondary) { unsafe { - if (fn__setAnimPhase == null) fn__setAnimPhase = (delegate* unmanaged[Cdecl]) funcTable[0xDDF3CB5A0A4C0B49UL]; + if (fn__setAnimPhase == null) fn__setAnimPhase = (delegate* unmanaged[Cdecl]) funcTable[0xDDF3CB5A0A4C0B49UL]; var success = false; fn__setAnimPhase(&success, _entity, _phase, _priority, (byte) (_secondary ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -92914,10 +92901,10 @@ public void SetAnimPhase(int _entity, float _phase, int _priority, bool _seconda } public void SetAnimRate(IEntity entity, float rate, int priority, bool secondary) => SetAnimRate(entity.ScriptId, rate, priority, secondary); - public void SetAnimRate(int _entity, float _rate, int _priority, bool _secondary) + public void SetAnimRate(uint _entity, float _rate, int _priority, bool _secondary) { unsafe { - if (fn__setAnimRate == null) fn__setAnimRate = (delegate* unmanaged[Cdecl]) funcTable[0x032D49C5E359C847UL]; + if (fn__setAnimRate == null) fn__setAnimRate = (delegate* unmanaged[Cdecl]) funcTable[0x032D49C5E359C847UL]; var success = false; fn__setAnimRate(&success, _entity, _rate, _priority, (byte) (_secondary ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -92925,10 +92912,10 @@ public void SetAnimRate(int _entity, float _rate, int _priority, bool _secondary } public void SetAnimLooped(IEntity entity, bool looped, int priority, bool secondary) => SetAnimLooped(entity.ScriptId, looped, priority, secondary); - public void SetAnimLooped(int _entity, bool _looped, int _priority, bool _secondary) + public void SetAnimLooped(uint _entity, bool _looped, int _priority, bool _secondary) { unsafe { - if (fn__setAnimLooped == null) fn__setAnimLooped = (delegate* unmanaged[Cdecl]) funcTable[0x70033C3CC29A1FF4UL]; + if (fn__setAnimLooped == null) fn__setAnimLooped = (delegate* unmanaged[Cdecl]) funcTable[0x70033C3CC29A1FF4UL]; var success = false; fn__setAnimLooped(&success, _entity, (byte) (_looped ? 1 : 0), _priority, (byte) (_secondary ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -92936,27 +92923,27 @@ public void SetAnimLooped(int _entity, bool _looped, int _priority, bool _second } public void TaskPlayPhoneGestureAnimation(IPlayer ped, string animDict, string animation, string boneMaskType, float blendInDuration, float blendOutDuration, bool isLooping, bool holdLastFrame) => TaskPlayPhoneGestureAnimation(ped.ScriptId, animDict, animation, boneMaskType, blendInDuration, blendOutDuration, isLooping, holdLastFrame); - public void TaskPlayPhoneGestureAnimation(int _ped, string _animDict, string _animation, string _boneMaskType, float _blendInDuration, float _blendOutDuration, bool _isLooping, bool _holdLastFrame) + public void TaskPlayPhoneGestureAnimation(uint _ped, string _animDict, string _animation, string _boneMaskType, float _blendInDuration, float _blendOutDuration, bool _isLooping, bool _holdLastFrame) { unsafe { - if (fn__taskPlayPhoneGestureAnimation == null) fn__taskPlayPhoneGestureAnimation = (delegate* unmanaged[Cdecl]) funcTable[0x8FBB6758B3B3E9ECUL]; + if (fn__taskPlayPhoneGestureAnimation == null) fn__taskPlayPhoneGestureAnimation = (delegate* unmanaged[Cdecl]) funcTable[0x8FBB6758B3B3E9ECUL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); - var ptr_animation = _animation == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animation); - var ptr_boneMaskType = _boneMaskType == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_boneMaskType); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animation = MemoryUtils.StringToHGlobalUtf8(_animation); + var ptr_boneMaskType = MemoryUtils.StringToHGlobalUtf8(_boneMaskType); fn__taskPlayPhoneGestureAnimation(&success, _ped, ptr_animDict, ptr_animation, ptr_boneMaskType, _blendInDuration, _blendOutDuration, (byte) (_isLooping ? 1 : 0), (byte) (_holdLastFrame ? 1 : 0)); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); - if (ptr_animation != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animation); - if (ptr_boneMaskType != IntPtr.Zero) Marshal.FreeHGlobal(ptr_boneMaskType); + Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animation); + Marshal.FreeHGlobal(ptr_boneMaskType); if (!success) throw new Exception("Native execution failed"); } } public void TaskStopPhoneGestureAnimation(IPlayer ped, float blendOutOverride) => TaskStopPhoneGestureAnimation(ped.ScriptId, blendOutOverride); - public void TaskStopPhoneGestureAnimation(int _ped, float _blendOutOverride) + public void TaskStopPhoneGestureAnimation(uint _ped, float _blendOutOverride) { unsafe { - if (fn__taskStopPhoneGestureAnimation == null) fn__taskStopPhoneGestureAnimation = (delegate* unmanaged[Cdecl]) funcTable[0x3FA00D4F4641BFAEUL]; + if (fn__taskStopPhoneGestureAnimation == null) fn__taskStopPhoneGestureAnimation = (delegate* unmanaged[Cdecl]) funcTable[0x3FA00D4F4641BFAEUL]; var success = false; fn__taskStopPhoneGestureAnimation(&success, _ped, _blendOutOverride); if (!success) throw new Exception("Native execution failed"); @@ -92964,10 +92951,10 @@ public void TaskStopPhoneGestureAnimation(int _ped, float _blendOutOverride) } public bool IsPlayingPhoneGestureAnim(IPlayer ped) => IsPlayingPhoneGestureAnim(ped.ScriptId); - public bool IsPlayingPhoneGestureAnim(int _ped) + public bool IsPlayingPhoneGestureAnim(uint _ped) { unsafe { - if (fn__isPlayingPhoneGestureAnim == null) fn__isPlayingPhoneGestureAnim = (delegate* unmanaged[Cdecl]) funcTable[0xB8EBB1E9D3588C10UL]; + if (fn__isPlayingPhoneGestureAnim == null) fn__isPlayingPhoneGestureAnim = (delegate* unmanaged[Cdecl]) funcTable[0xB8EBB1E9D3588C10UL]; var success = false; var result = fn__isPlayingPhoneGestureAnim(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -92976,10 +92963,10 @@ public bool IsPlayingPhoneGestureAnim(int _ped) } public float GetPhoneGestureAnimCurrentTime(IPlayer ped) => GetPhoneGestureAnimCurrentTime(ped.ScriptId); - public float GetPhoneGestureAnimCurrentTime(int _ped) + public float GetPhoneGestureAnimCurrentTime(uint _ped) { unsafe { - if (fn__getPhoneGestureAnimCurrentTime == null) fn__getPhoneGestureAnimCurrentTime = (delegate* unmanaged[Cdecl]) funcTable[0x47619ABE8B268C60UL]; + if (fn__getPhoneGestureAnimCurrentTime == null) fn__getPhoneGestureAnimCurrentTime = (delegate* unmanaged[Cdecl]) funcTable[0x47619ABE8B268C60UL]; var success = false; var result = fn__getPhoneGestureAnimCurrentTime(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -92988,10 +92975,10 @@ public float GetPhoneGestureAnimCurrentTime(int _ped) } public float GetPhoneGestureAnimTotalTime(IPlayer ped) => GetPhoneGestureAnimTotalTime(ped.ScriptId); - public float GetPhoneGestureAnimTotalTime(int _ped) + public float GetPhoneGestureAnimTotalTime(uint _ped) { unsafe { - if (fn__getPhoneGestureAnimTotalTime == null) fn__getPhoneGestureAnimTotalTime = (delegate* unmanaged[Cdecl]) funcTable[0x1EE0F68A7C25DEC6UL]; + if (fn__getPhoneGestureAnimTotalTime == null) fn__getPhoneGestureAnimTotalTime = (delegate* unmanaged[Cdecl]) funcTable[0x1EE0F68A7C25DEC6UL]; var success = false; var result = fn__getPhoneGestureAnimTotalTime(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -93000,38 +92987,38 @@ public float GetPhoneGestureAnimTotalTime(int _ped) } public void TaskVehiclePlayAnim(IVehicle vehicle, string animationSet, string animationName) => TaskVehiclePlayAnim(vehicle.ScriptId, animationSet, animationName); - public void TaskVehiclePlayAnim(int _vehicle, string _animationSet, string _animationName) + public void TaskVehiclePlayAnim(uint _vehicle, string _animationSet, string _animationName) { unsafe { - if (fn__taskVehiclePlayAnim == null) fn__taskVehiclePlayAnim = (delegate* unmanaged[Cdecl]) funcTable[0x69F5C3BD0F3EBD89UL]; + if (fn__taskVehiclePlayAnim == null) fn__taskVehiclePlayAnim = (delegate* unmanaged[Cdecl]) funcTable[0x69F5C3BD0F3EBD89UL]; var success = false; - var ptr_animationSet = _animationSet == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animationSet); - var ptr_animationName = _animationName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animationName); + var ptr_animationSet = MemoryUtils.StringToHGlobalUtf8(_animationSet); + var ptr_animationName = MemoryUtils.StringToHGlobalUtf8(_animationName); fn__taskVehiclePlayAnim(&success, _vehicle, ptr_animationSet, ptr_animationName); - if (ptr_animationSet != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animationSet); - if (ptr_animationName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animationName); + Marshal.FreeHGlobal(ptr_animationSet); + Marshal.FreeHGlobal(ptr_animationName); if (!success) throw new Exception("Native execution failed"); } } public void TaskLookAtCoord(IEntity entity, float x, float y, float z, int duration, int flags, int priority) => TaskLookAtCoord(entity.ScriptId, x, y, z, duration, flags, priority); - public void TaskLookAtCoord(int _entity, float _x, float _y, float _z, int _duration, int _flags, int _priority) + public void TaskLookAtCoord(uint _entity, float _x, float _y, float _z, int _duration, int _flags, int _priority) { unsafe { - if (fn__taskLookAtCoord == null) fn__taskLookAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x6FA46612594F7973UL]; + if (fn__taskLookAtCoord == null) fn__taskLookAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x6FA46612594F7973UL]; var success = false; fn__taskLookAtCoord(&success, _entity, _x, _y, _z, _duration, _flags, _priority); if (!success) throw new Exception("Native execution failed"); } } - public void TaskLookAtEntity(IPlayer ped, int lookAt, int duration, int flags, int priority) => TaskLookAtEntity(ped.ScriptId, lookAt, duration, flags, priority); - public void TaskLookAtEntity(int ped, IEntity lookAt, int duration, int flags, int priority) => TaskLookAtEntity(ped, lookAt.ScriptId, duration, flags, priority); + public void TaskLookAtEntity(IPlayer ped, uint lookAt, int duration, int flags, int priority) => TaskLookAtEntity(ped.ScriptId, lookAt, duration, flags, priority); + public void TaskLookAtEntity(uint ped, IEntity lookAt, int duration, int flags, int priority) => TaskLookAtEntity(ped, lookAt.ScriptId, duration, flags, priority); public void TaskLookAtEntity(IPlayer ped, IEntity lookAt, int duration, int flags, int priority) => TaskLookAtEntity(ped.ScriptId, lookAt.ScriptId, duration, flags, priority); - public void TaskLookAtEntity(int _ped, int _lookAt, int _duration, int _flags, int _priority) + public void TaskLookAtEntity(uint _ped, uint _lookAt, int _duration, int _flags, int _priority) { unsafe { - if (fn__taskLookAtEntity == null) fn__taskLookAtEntity = (delegate* unmanaged[Cdecl]) funcTable[0x69F4BE8C8CC4796CUL]; + if (fn__taskLookAtEntity == null) fn__taskLookAtEntity = (delegate* unmanaged[Cdecl]) funcTable[0x69F4BE8C8CC4796CUL]; var success = false; fn__taskLookAtEntity(&success, _ped, _lookAt, _duration, _flags, _priority); if (!success) throw new Exception("Native execution failed"); @@ -93039,10 +93026,10 @@ public void TaskLookAtEntity(int _ped, int _lookAt, int _duration, int _flags, i } public void TaskClearLookAt(IPlayer ped) => TaskClearLookAt(ped.ScriptId); - public void TaskClearLookAt(int _ped) + public void TaskClearLookAt(uint _ped) { unsafe { - if (fn__taskClearLookAt == null) fn__taskClearLookAt = (delegate* unmanaged[Cdecl]) funcTable[0x0F804F1DB19B9689UL]; + if (fn__taskClearLookAt == null) fn__taskClearLookAt = (delegate* unmanaged[Cdecl]) funcTable[0x0F804F1DB19B9689UL]; var success = false; fn__taskClearLookAt(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -93072,10 +93059,10 @@ public void CloseSequenceTask(int _taskSequenceId) } public void TaskPerformSequence(IPlayer ped, int taskSequenceId) => TaskPerformSequence(ped.ScriptId, taskSequenceId); - public void TaskPerformSequence(int _ped, int _taskSequenceId) + public void TaskPerformSequence(uint _ped, int _taskSequenceId) { unsafe { - if (fn__taskPerformSequence == null) fn__taskPerformSequence = (delegate* unmanaged[Cdecl]) funcTable[0x5ABA3986D90D8A3BUL]; + if (fn__taskPerformSequence == null) fn__taskPerformSequence = (delegate* unmanaged[Cdecl]) funcTable[0x5ABA3986D90D8A3BUL]; var success = false; fn__taskPerformSequence(&success, _ped, _taskSequenceId); if (!success) throw new Exception("Native execution failed"); @@ -93083,10 +93070,10 @@ public void TaskPerformSequence(int _ped, int _taskSequenceId) } public void TaskPerformSequenceLocally(IPlayer ped, int taskSequenceId) => TaskPerformSequenceLocally(ped.ScriptId, taskSequenceId); - public void TaskPerformSequenceLocally(int _ped, int _taskSequenceId) + public void TaskPerformSequenceLocally(uint _ped, int _taskSequenceId) { unsafe { - if (fn__taskPerformSequenceLocally == null) fn__taskPerformSequenceLocally = (delegate* unmanaged[Cdecl]) funcTable[0x8C33220C8D78CA0DUL]; + if (fn__taskPerformSequenceLocally == null) fn__taskPerformSequenceLocally = (delegate* unmanaged[Cdecl]) funcTable[0x8C33220C8D78CA0DUL]; var success = false; fn__taskPerformSequenceLocally(&success, _ped, _taskSequenceId); if (!success) throw new Exception("Native execution failed"); @@ -93116,10 +93103,10 @@ public void SetSequenceToRepeat(int _taskSequenceId, bool _repeat) } public int GetSequenceProgress(IPlayer ped) => GetSequenceProgress(ped.ScriptId); - public int GetSequenceProgress(int _ped) + public int GetSequenceProgress(uint _ped) { unsafe { - if (fn__getSequenceProgress == null) fn__getSequenceProgress = (delegate* unmanaged[Cdecl]) funcTable[0x00A9010CFE1E3533UL]; + if (fn__getSequenceProgress == null) fn__getSequenceProgress = (delegate* unmanaged[Cdecl]) funcTable[0x00A9010CFE1E3533UL]; var success = false; var result = fn__getSequenceProgress(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -93128,10 +93115,10 @@ public int GetSequenceProgress(int _ped) } public bool GetIsTaskActive(IPlayer ped, int taskIndex) => GetIsTaskActive(ped.ScriptId, taskIndex); - public bool GetIsTaskActive(int _ped, int _taskIndex) + public bool GetIsTaskActive(uint _ped, int _taskIndex) { unsafe { - if (fn__getIsTaskActive == null) fn__getIsTaskActive = (delegate* unmanaged[Cdecl]) funcTable[0xB0760331C7AA4155UL]; + if (fn__getIsTaskActive == null) fn__getIsTaskActive = (delegate* unmanaged[Cdecl]) funcTable[0xB0760331C7AA4155UL]; var success = false; var result = fn__getIsTaskActive(&success, _ped, _taskIndex); if (!success) throw new Exception("Native execution failed"); @@ -93140,10 +93127,10 @@ public bool GetIsTaskActive(int _ped, int _taskIndex) } public int GetScriptTaskStatus(IPlayer ped, uint taskHash) => GetScriptTaskStatus(ped.ScriptId, taskHash); - public int GetScriptTaskStatus(int _ped, uint _taskHash) + public int GetScriptTaskStatus(uint _ped, uint _taskHash) { unsafe { - if (fn__getScriptTaskStatus == null) fn__getScriptTaskStatus = (delegate* unmanaged[Cdecl]) funcTable[0x77F1BEB8863288D5UL]; + if (fn__getScriptTaskStatus == null) fn__getScriptTaskStatus = (delegate* unmanaged[Cdecl]) funcTable[0x77F1BEB8863288D5UL]; var success = false; var result = fn__getScriptTaskStatus(&success, _ped, _taskHash); if (!success) throw new Exception("Native execution failed"); @@ -93152,10 +93139,10 @@ public int GetScriptTaskStatus(int _ped, uint _taskHash) } public int GetActiveVehicleMissionType(IVehicle vehicle) => GetActiveVehicleMissionType(vehicle.ScriptId); - public int GetActiveVehicleMissionType(int _vehicle) + public int GetActiveVehicleMissionType(uint _vehicle) { unsafe { - if (fn__getActiveVehicleMissionType == null) fn__getActiveVehicleMissionType = (delegate* unmanaged[Cdecl]) funcTable[0x534AEBA6E5ED4CABUL]; + if (fn__getActiveVehicleMissionType == null) fn__getActiveVehicleMissionType = (delegate* unmanaged[Cdecl]) funcTable[0x534AEBA6E5ED4CABUL]; var success = false; var result = fn__getActiveVehicleMissionType(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -93164,10 +93151,10 @@ public int GetActiveVehicleMissionType(int _vehicle) } public void TaskLeaveAnyVehicle(IPlayer ped, int delayTime, int flags) => TaskLeaveAnyVehicle(ped.ScriptId, delayTime, flags); - public void TaskLeaveAnyVehicle(int _ped, int _delayTime, int _flags) + public void TaskLeaveAnyVehicle(uint _ped, int _delayTime, int _flags) { unsafe { - if (fn__taskLeaveAnyVehicle == null) fn__taskLeaveAnyVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x504D54DF3F6F2247UL]; + if (fn__taskLeaveAnyVehicle == null) fn__taskLeaveAnyVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x504D54DF3F6F2247UL]; var success = false; fn__taskLeaveAnyVehicle(&success, _ped, _delayTime, _flags); if (!success) throw new Exception("Native execution failed"); @@ -93175,36 +93162,36 @@ public void TaskLeaveAnyVehicle(int _ped, int _delayTime, int _flags) } public void TaskAimGunScripted(IPlayer ped, uint scriptTask, bool disableBlockingClip, bool instantBlendToAim) => TaskAimGunScripted(ped.ScriptId, scriptTask, disableBlockingClip, instantBlendToAim); - public void TaskAimGunScripted(int _ped, uint _scriptTask, bool _disableBlockingClip, bool _instantBlendToAim) + public void TaskAimGunScripted(uint _ped, uint _scriptTask, bool _disableBlockingClip, bool _instantBlendToAim) { unsafe { - if (fn__taskAimGunScripted == null) fn__taskAimGunScripted = (delegate* unmanaged[Cdecl]) funcTable[0x7A192BE16D373D00UL]; + if (fn__taskAimGunScripted == null) fn__taskAimGunScripted = (delegate* unmanaged[Cdecl]) funcTable[0x7A192BE16D373D00UL]; var success = false; fn__taskAimGunScripted(&success, _ped, _scriptTask, (byte) (_disableBlockingClip ? 1 : 0), (byte) (_instantBlendToAim ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void TaskAimGunScriptedWithTarget(IPlayer ped, int target, float x, float y, float z, int gunTaskType, bool disableBlockingClip, bool forceAim) => TaskAimGunScriptedWithTarget(ped.ScriptId, target, x, y, z, gunTaskType, disableBlockingClip, forceAim); - public void TaskAimGunScriptedWithTarget(int ped, IPlayer target, float x, float y, float z, int gunTaskType, bool disableBlockingClip, bool forceAim) => TaskAimGunScriptedWithTarget(ped, target.ScriptId, x, y, z, gunTaskType, disableBlockingClip, forceAim); + public void TaskAimGunScriptedWithTarget(IPlayer ped, uint target, float x, float y, float z, int gunTaskType, bool disableBlockingClip, bool forceAim) => TaskAimGunScriptedWithTarget(ped.ScriptId, target, x, y, z, gunTaskType, disableBlockingClip, forceAim); + public void TaskAimGunScriptedWithTarget(uint ped, IPlayer target, float x, float y, float z, int gunTaskType, bool disableBlockingClip, bool forceAim) => TaskAimGunScriptedWithTarget(ped, target.ScriptId, x, y, z, gunTaskType, disableBlockingClip, forceAim); public void TaskAimGunScriptedWithTarget(IPlayer ped, IPlayer target, float x, float y, float z, int gunTaskType, bool disableBlockingClip, bool forceAim) => TaskAimGunScriptedWithTarget(ped.ScriptId, target.ScriptId, x, y, z, gunTaskType, disableBlockingClip, forceAim); - public void TaskAimGunScriptedWithTarget(int _ped, int _target, float _x, float _y, float _z, int _gunTaskType, bool _disableBlockingClip, bool _forceAim) + public void TaskAimGunScriptedWithTarget(uint _ped, uint _target, float _x, float _y, float _z, int _gunTaskType, bool _disableBlockingClip, bool _forceAim) { unsafe { - if (fn__taskAimGunScriptedWithTarget == null) fn__taskAimGunScriptedWithTarget = (delegate* unmanaged[Cdecl]) funcTable[0x8605AF0DE8B3A5ACUL]; + if (fn__taskAimGunScriptedWithTarget == null) fn__taskAimGunScriptedWithTarget = (delegate* unmanaged[Cdecl]) funcTable[0x8605AF0DE8B3A5ACUL]; var success = false; fn__taskAimGunScriptedWithTarget(&success, _ped, _target, _x, _y, _z, _gunTaskType, (byte) (_disableBlockingClip ? 1 : 0), (byte) (_forceAim ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void UpdateTaskAimGunScriptedTarget(IPlayer ped, int target, float x, float y, float z, bool disableBlockingClip) => UpdateTaskAimGunScriptedTarget(ped.ScriptId, target, x, y, z, disableBlockingClip); - public void UpdateTaskAimGunScriptedTarget(int ped, IPlayer target, float x, float y, float z, bool disableBlockingClip) => UpdateTaskAimGunScriptedTarget(ped, target.ScriptId, x, y, z, disableBlockingClip); + public void UpdateTaskAimGunScriptedTarget(IPlayer ped, uint target, float x, float y, float z, bool disableBlockingClip) => UpdateTaskAimGunScriptedTarget(ped.ScriptId, target, x, y, z, disableBlockingClip); + public void UpdateTaskAimGunScriptedTarget(uint ped, IPlayer target, float x, float y, float z, bool disableBlockingClip) => UpdateTaskAimGunScriptedTarget(ped, target.ScriptId, x, y, z, disableBlockingClip); public void UpdateTaskAimGunScriptedTarget(IPlayer ped, IPlayer target, float x, float y, float z, bool disableBlockingClip) => UpdateTaskAimGunScriptedTarget(ped.ScriptId, target.ScriptId, x, y, z, disableBlockingClip); - public void UpdateTaskAimGunScriptedTarget(int _ped, int _target, float _x, float _y, float _z, bool _disableBlockingClip) + public void UpdateTaskAimGunScriptedTarget(uint _ped, uint _target, float _x, float _y, float _z, bool _disableBlockingClip) { unsafe { - if (fn__updateTaskAimGunScriptedTarget == null) fn__updateTaskAimGunScriptedTarget = (delegate* unmanaged[Cdecl]) funcTable[0x9724FB59A3E72AD0UL]; + if (fn__updateTaskAimGunScriptedTarget == null) fn__updateTaskAimGunScriptedTarget = (delegate* unmanaged[Cdecl]) funcTable[0x9724FB59A3E72AD0UL]; var success = false; fn__updateTaskAimGunScriptedTarget(&success, _ped, _target, _x, _y, _z, (byte) (_disableBlockingClip ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -93218,32 +93205,32 @@ public string GetClipSetForScriptedGunTask(int _gunTaskType) var success = false; var result = fn__getClipSetForScriptedGunTask(&success, _gunTaskType); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } - public void TaskAimGunAtEntity(IPlayer ped, int entity, int duration, bool instantBlendToAim) => TaskAimGunAtEntity(ped.ScriptId, entity, duration, instantBlendToAim); - public void TaskAimGunAtEntity(int ped, IEntity entity, int duration, bool instantBlendToAim) => TaskAimGunAtEntity(ped, entity.ScriptId, duration, instantBlendToAim); + public void TaskAimGunAtEntity(IPlayer ped, uint entity, int duration, bool instantBlendToAim) => TaskAimGunAtEntity(ped.ScriptId, entity, duration, instantBlendToAim); + public void TaskAimGunAtEntity(uint ped, IEntity entity, int duration, bool instantBlendToAim) => TaskAimGunAtEntity(ped, entity.ScriptId, duration, instantBlendToAim); public void TaskAimGunAtEntity(IPlayer ped, IEntity entity, int duration, bool instantBlendToAim) => TaskAimGunAtEntity(ped.ScriptId, entity.ScriptId, duration, instantBlendToAim); - public void TaskAimGunAtEntity(int _ped, int _entity, int _duration, bool _instantBlendToAim) + public void TaskAimGunAtEntity(uint _ped, uint _entity, int _duration, bool _instantBlendToAim) { unsafe { - if (fn__taskAimGunAtEntity == null) fn__taskAimGunAtEntity = (delegate* unmanaged[Cdecl]) funcTable[0x9B53BB6E8943AF53UL]; + if (fn__taskAimGunAtEntity == null) fn__taskAimGunAtEntity = (delegate* unmanaged[Cdecl]) funcTable[0x9B53BB6E8943AF53UL]; var success = false; fn__taskAimGunAtEntity(&success, _ped, _entity, _duration, (byte) (_instantBlendToAim ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void TaskTurnPedToFaceEntity(IPlayer ped, int entity, int duration) => TaskTurnPedToFaceEntity(ped.ScriptId, entity, duration); - public void TaskTurnPedToFaceEntity(int ped, IEntity entity, int duration) => TaskTurnPedToFaceEntity(ped, entity.ScriptId, duration); + public void TaskTurnPedToFaceEntity(IPlayer ped, uint entity, int duration) => TaskTurnPedToFaceEntity(ped.ScriptId, entity, duration); + public void TaskTurnPedToFaceEntity(uint ped, IEntity entity, int duration) => TaskTurnPedToFaceEntity(ped, entity.ScriptId, duration); public void TaskTurnPedToFaceEntity(IPlayer ped, IEntity entity, int duration) => TaskTurnPedToFaceEntity(ped.ScriptId, entity.ScriptId, duration); - public void TaskTurnPedToFaceEntity(int _ped, int _entity, int _duration) + public void TaskTurnPedToFaceEntity(uint _ped, uint _entity, int _duration) { unsafe { - if (fn__taskTurnPedToFaceEntity == null) fn__taskTurnPedToFaceEntity = (delegate* unmanaged[Cdecl]) funcTable[0x5AD23D40115353ACUL]; + if (fn__taskTurnPedToFaceEntity == null) fn__taskTurnPedToFaceEntity = (delegate* unmanaged[Cdecl]) funcTable[0x5AD23D40115353ACUL]; var success = false; fn__taskTurnPedToFaceEntity(&success, _ped, _entity, _duration); if (!success) throw new Exception("Native execution failed"); @@ -93251,10 +93238,10 @@ public void TaskTurnPedToFaceEntity(int _ped, int _entity, int _duration) } public void TaskAimGunAtCoord(IPlayer ped, float x, float y, float z, int time, bool instantBlendToAim, bool playAnimIntro) => TaskAimGunAtCoord(ped.ScriptId, x, y, z, time, instantBlendToAim, playAnimIntro); - public void TaskAimGunAtCoord(int _ped, float _x, float _y, float _z, int _time, bool _instantBlendToAim, bool _playAnimIntro) + public void TaskAimGunAtCoord(uint _ped, float _x, float _y, float _z, int _time, bool _instantBlendToAim, bool _playAnimIntro) { unsafe { - if (fn__taskAimGunAtCoord == null) fn__taskAimGunAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x6671F3EEC681BDA1UL]; + if (fn__taskAimGunAtCoord == null) fn__taskAimGunAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x6671F3EEC681BDA1UL]; var success = false; fn__taskAimGunAtCoord(&success, _ped, _x, _y, _z, _time, (byte) (_instantBlendToAim ? 1 : 0), (byte) (_playAnimIntro ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -93262,23 +93249,23 @@ public void TaskAimGunAtCoord(int _ped, float _x, float _y, float _z, int _time, } public void TaskShootAtCoord(IPlayer ped, float x, float y, float z, int duration, uint firingPattern) => TaskShootAtCoord(ped.ScriptId, x, y, z, duration, firingPattern); - public void TaskShootAtCoord(int _ped, float _x, float _y, float _z, int _duration, uint _firingPattern) + public void TaskShootAtCoord(uint _ped, float _x, float _y, float _z, int _duration, uint _firingPattern) { unsafe { - if (fn__taskShootAtCoord == null) fn__taskShootAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x46A6CC01E0826106UL]; + if (fn__taskShootAtCoord == null) fn__taskShootAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x46A6CC01E0826106UL]; var success = false; fn__taskShootAtCoord(&success, _ped, _x, _y, _z, _duration, _firingPattern); if (!success) throw new Exception("Native execution failed"); } } - public void TaskShuffleToNextVehicleSeat(IPlayer ped, int vehicle, bool useAlternateShuffle) => TaskShuffleToNextVehicleSeat(ped.ScriptId, vehicle, useAlternateShuffle); - public void TaskShuffleToNextVehicleSeat(int ped, IVehicle vehicle, bool useAlternateShuffle) => TaskShuffleToNextVehicleSeat(ped, vehicle.ScriptId, useAlternateShuffle); + public void TaskShuffleToNextVehicleSeat(IPlayer ped, uint vehicle, bool useAlternateShuffle) => TaskShuffleToNextVehicleSeat(ped.ScriptId, vehicle, useAlternateShuffle); + public void TaskShuffleToNextVehicleSeat(uint ped, IVehicle vehicle, bool useAlternateShuffle) => TaskShuffleToNextVehicleSeat(ped, vehicle.ScriptId, useAlternateShuffle); public void TaskShuffleToNextVehicleSeat(IPlayer ped, IVehicle vehicle, bool useAlternateShuffle) => TaskShuffleToNextVehicleSeat(ped.ScriptId, vehicle.ScriptId, useAlternateShuffle); - public void TaskShuffleToNextVehicleSeat(int _ped, int _vehicle, bool _useAlternateShuffle) + public void TaskShuffleToNextVehicleSeat(uint _ped, uint _vehicle, bool _useAlternateShuffle) { unsafe { - if (fn__taskShuffleToNextVehicleSeat == null) fn__taskShuffleToNextVehicleSeat = (delegate* unmanaged[Cdecl]) funcTable[0x7AA80209BDA643EBUL]; + if (fn__taskShuffleToNextVehicleSeat == null) fn__taskShuffleToNextVehicleSeat = (delegate* unmanaged[Cdecl]) funcTable[0x7AA80209BDA643EBUL]; var success = false; fn__taskShuffleToNextVehicleSeat(&success, _ped, _vehicle, (byte) (_useAlternateShuffle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -93286,10 +93273,10 @@ public void TaskShuffleToNextVehicleSeat(int _ped, int _vehicle, bool _useAltern } public void ClearPedTasks(IPlayer ped) => ClearPedTasks(ped.ScriptId); - public void ClearPedTasks(int _ped) + public void ClearPedTasks(uint _ped) { unsafe { - if (fn__clearPedTasks == null) fn__clearPedTasks = (delegate* unmanaged[Cdecl]) funcTable[0xE1EF3C1216AFF2CDUL]; + if (fn__clearPedTasks == null) fn__clearPedTasks = (delegate* unmanaged[Cdecl]) funcTable[0xE1EF3C1216AFF2CDUL]; var success = false; fn__clearPedTasks(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -93297,10 +93284,10 @@ public void ClearPedTasks(int _ped) } public void ClearPedSecondaryTask(IPlayer ped) => ClearPedSecondaryTask(ped.ScriptId); - public void ClearPedSecondaryTask(int _ped) + public void ClearPedSecondaryTask(uint _ped) { unsafe { - if (fn__clearPedSecondaryTask == null) fn__clearPedSecondaryTask = (delegate* unmanaged[Cdecl]) funcTable[0x176CECF6F920D707UL]; + if (fn__clearPedSecondaryTask == null) fn__clearPedSecondaryTask = (delegate* unmanaged[Cdecl]) funcTable[0x176CECF6F920D707UL]; var success = false; fn__clearPedSecondaryTask(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -93308,36 +93295,36 @@ public void ClearPedSecondaryTask(int _ped) } public void TaskEveryoneLeaveVehicle(IVehicle vehicle) => TaskEveryoneLeaveVehicle(vehicle.ScriptId); - public void TaskEveryoneLeaveVehicle(int _vehicle) + public void TaskEveryoneLeaveVehicle(uint _vehicle) { unsafe { - if (fn__taskEveryoneLeaveVehicle == null) fn__taskEveryoneLeaveVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x7F93691AB4B92272UL]; + if (fn__taskEveryoneLeaveVehicle == null) fn__taskEveryoneLeaveVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x7F93691AB4B92272UL]; var success = false; fn__taskEveryoneLeaveVehicle(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); } } - public void TaskGotoEntityOffset(IPlayer ped, int entity, int time, float seekRadius, float seekAngleDeg, float moveBlendRatio, int gotoEntityOffsetFlags) => TaskGotoEntityOffset(ped.ScriptId, entity, time, seekRadius, seekAngleDeg, moveBlendRatio, gotoEntityOffsetFlags); - public void TaskGotoEntityOffset(int ped, IEntity entity, int time, float seekRadius, float seekAngleDeg, float moveBlendRatio, int gotoEntityOffsetFlags) => TaskGotoEntityOffset(ped, entity.ScriptId, time, seekRadius, seekAngleDeg, moveBlendRatio, gotoEntityOffsetFlags); + public void TaskGotoEntityOffset(IPlayer ped, uint entity, int time, float seekRadius, float seekAngleDeg, float moveBlendRatio, int gotoEntityOffsetFlags) => TaskGotoEntityOffset(ped.ScriptId, entity, time, seekRadius, seekAngleDeg, moveBlendRatio, gotoEntityOffsetFlags); + public void TaskGotoEntityOffset(uint ped, IEntity entity, int time, float seekRadius, float seekAngleDeg, float moveBlendRatio, int gotoEntityOffsetFlags) => TaskGotoEntityOffset(ped, entity.ScriptId, time, seekRadius, seekAngleDeg, moveBlendRatio, gotoEntityOffsetFlags); public void TaskGotoEntityOffset(IPlayer ped, IEntity entity, int time, float seekRadius, float seekAngleDeg, float moveBlendRatio, int gotoEntityOffsetFlags) => TaskGotoEntityOffset(ped.ScriptId, entity.ScriptId, time, seekRadius, seekAngleDeg, moveBlendRatio, gotoEntityOffsetFlags); - public void TaskGotoEntityOffset(int _ped, int _entity, int _time, float _seekRadius, float _seekAngleDeg, float _moveBlendRatio, int _gotoEntityOffsetFlags) + public void TaskGotoEntityOffset(uint _ped, uint _entity, int _time, float _seekRadius, float _seekAngleDeg, float _moveBlendRatio, int _gotoEntityOffsetFlags) { unsafe { - if (fn__taskGotoEntityOffset == null) fn__taskGotoEntityOffset = (delegate* unmanaged[Cdecl]) funcTable[0xE39B4FF4FDEBDE27UL]; + if (fn__taskGotoEntityOffset == null) fn__taskGotoEntityOffset = (delegate* unmanaged[Cdecl]) funcTable[0xE39B4FF4FDEBDE27UL]; var success = false; fn__taskGotoEntityOffset(&success, _ped, _entity, _time, _seekRadius, _seekAngleDeg, _moveBlendRatio, _gotoEntityOffsetFlags); if (!success) throw new Exception("Native execution failed"); } } - public void TaskGotoEntityOffsetXy(IPlayer ped, int entity, int duration, float targetRadius, float offsetX, float offsetY, float moveBlendRatio, int gotoEntityOffsetFlags) => TaskGotoEntityOffsetXy(ped.ScriptId, entity, duration, targetRadius, offsetX, offsetY, moveBlendRatio, gotoEntityOffsetFlags); - public void TaskGotoEntityOffsetXy(int ped, IEntity entity, int duration, float targetRadius, float offsetX, float offsetY, float moveBlendRatio, int gotoEntityOffsetFlags) => TaskGotoEntityOffsetXy(ped, entity.ScriptId, duration, targetRadius, offsetX, offsetY, moveBlendRatio, gotoEntityOffsetFlags); + public void TaskGotoEntityOffsetXy(IPlayer ped, uint entity, int duration, float targetRadius, float offsetX, float offsetY, float moveBlendRatio, int gotoEntityOffsetFlags) => TaskGotoEntityOffsetXy(ped.ScriptId, entity, duration, targetRadius, offsetX, offsetY, moveBlendRatio, gotoEntityOffsetFlags); + public void TaskGotoEntityOffsetXy(uint ped, IEntity entity, int duration, float targetRadius, float offsetX, float offsetY, float moveBlendRatio, int gotoEntityOffsetFlags) => TaskGotoEntityOffsetXy(ped, entity.ScriptId, duration, targetRadius, offsetX, offsetY, moveBlendRatio, gotoEntityOffsetFlags); public void TaskGotoEntityOffsetXy(IPlayer ped, IEntity entity, int duration, float targetRadius, float offsetX, float offsetY, float moveBlendRatio, int gotoEntityOffsetFlags) => TaskGotoEntityOffsetXy(ped.ScriptId, entity.ScriptId, duration, targetRadius, offsetX, offsetY, moveBlendRatio, gotoEntityOffsetFlags); - public void TaskGotoEntityOffsetXy(int _ped, int _entity, int _duration, float _targetRadius, float _offsetX, float _offsetY, float _moveBlendRatio, int _gotoEntityOffsetFlags) + public void TaskGotoEntityOffsetXy(uint _ped, uint _entity, int _duration, float _targetRadius, float _offsetX, float _offsetY, float _moveBlendRatio, int _gotoEntityOffsetFlags) { unsafe { - if (fn__taskGotoEntityOffsetXy == null) fn__taskGotoEntityOffsetXy = (delegate* unmanaged[Cdecl]) funcTable[0x338E7EF52B6095A9UL]; + if (fn__taskGotoEntityOffsetXy == null) fn__taskGotoEntityOffsetXy = (delegate* unmanaged[Cdecl]) funcTable[0x338E7EF52B6095A9UL]; var success = false; fn__taskGotoEntityOffsetXy(&success, _ped, _entity, _duration, _targetRadius, _offsetX, _offsetY, _moveBlendRatio, _gotoEntityOffsetFlags); if (!success) throw new Exception("Native execution failed"); @@ -93345,134 +93332,134 @@ public void TaskGotoEntityOffsetXy(int _ped, int _entity, int _duration, float _ } public void TaskTurnPedToFaceCoord(IPlayer ped, float x, float y, float z, int duration) => TaskTurnPedToFaceCoord(ped.ScriptId, x, y, z, duration); - public void TaskTurnPedToFaceCoord(int _ped, float _x, float _y, float _z, int _duration) + public void TaskTurnPedToFaceCoord(uint _ped, float _x, float _y, float _z, int _duration) { unsafe { - if (fn__taskTurnPedToFaceCoord == null) fn__taskTurnPedToFaceCoord = (delegate* unmanaged[Cdecl]) funcTable[0x1DDA930A0AC38571UL]; + if (fn__taskTurnPedToFaceCoord == null) fn__taskTurnPedToFaceCoord = (delegate* unmanaged[Cdecl]) funcTable[0x1DDA930A0AC38571UL]; var success = false; fn__taskTurnPedToFaceCoord(&success, _ped, _x, _y, _z, _duration); if (!success) throw new Exception("Native execution failed"); } } - public void TaskVehicleTempAction(IPlayer driver, int vehicle, int action, int time) => TaskVehicleTempAction(driver.ScriptId, vehicle, action, time); - public void TaskVehicleTempAction(int driver, IVehicle vehicle, int action, int time) => TaskVehicleTempAction(driver, vehicle.ScriptId, action, time); + public void TaskVehicleTempAction(IPlayer driver, uint vehicle, int action, int time) => TaskVehicleTempAction(driver.ScriptId, vehicle, action, time); + public void TaskVehicleTempAction(uint driver, IVehicle vehicle, int action, int time) => TaskVehicleTempAction(driver, vehicle.ScriptId, action, time); public void TaskVehicleTempAction(IPlayer driver, IVehicle vehicle, int action, int time) => TaskVehicleTempAction(driver.ScriptId, vehicle.ScriptId, action, time); - public void TaskVehicleTempAction(int _driver, int _vehicle, int _action, int _time) + public void TaskVehicleTempAction(uint _driver, uint _vehicle, int _action, int _time) { unsafe { - if (fn__taskVehicleTempAction == null) fn__taskVehicleTempAction = (delegate* unmanaged[Cdecl]) funcTable[0xC429DCEEB339E129UL]; + if (fn__taskVehicleTempAction == null) fn__taskVehicleTempAction = (delegate* unmanaged[Cdecl]) funcTable[0xC429DCEEB339E129UL]; var success = false; fn__taskVehicleTempAction(&success, _driver, _vehicle, _action, _time); if (!success) throw new Exception("Native execution failed"); } } - public void TaskVehicleMission(IPlayer driver, int vehicle, int vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMission(driver.ScriptId, vehicle, vehicleTarget, missionType, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); - public void TaskVehicleMission(int driver, IVehicle vehicle, int vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMission(driver, vehicle.ScriptId, vehicleTarget, missionType, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); - public void TaskVehicleMission(IPlayer driver, IVehicle vehicle, int vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMission(driver.ScriptId, vehicle.ScriptId, vehicleTarget, missionType, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); - public void TaskVehicleMission(int driver, int vehicle, IVehicle vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMission(driver, vehicle, vehicleTarget.ScriptId, missionType, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); - public void TaskVehicleMission(IPlayer driver, int vehicle, IVehicle vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMission(driver.ScriptId, vehicle, vehicleTarget.ScriptId, missionType, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); - public void TaskVehicleMission(int driver, IVehicle vehicle, IVehicle vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMission(driver, vehicle.ScriptId, vehicleTarget.ScriptId, missionType, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); + public void TaskVehicleMission(IPlayer driver, uint vehicle, uint vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMission(driver.ScriptId, vehicle, vehicleTarget, missionType, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); + public void TaskVehicleMission(uint driver, IVehicle vehicle, uint vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMission(driver, vehicle.ScriptId, vehicleTarget, missionType, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); + public void TaskVehicleMission(IPlayer driver, IVehicle vehicle, uint vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMission(driver.ScriptId, vehicle.ScriptId, vehicleTarget, missionType, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); + public void TaskVehicleMission(uint driver, uint vehicle, IVehicle vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMission(driver, vehicle, vehicleTarget.ScriptId, missionType, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); + public void TaskVehicleMission(IPlayer driver, uint vehicle, IVehicle vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMission(driver.ScriptId, vehicle, vehicleTarget.ScriptId, missionType, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); + public void TaskVehicleMission(uint driver, IVehicle vehicle, IVehicle vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMission(driver, vehicle.ScriptId, vehicleTarget.ScriptId, missionType, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); public void TaskVehicleMission(IPlayer driver, IVehicle vehicle, IVehicle vehicleTarget, int missionType, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMission(driver.ScriptId, vehicle.ScriptId, vehicleTarget.ScriptId, missionType, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); - public void TaskVehicleMission(int _driver, int _vehicle, int _vehicleTarget, int _missionType, float _cruiseSpeed, int _drivingStyle, float _targetReached, float _straightLineDistance, bool _DriveAgainstTraffic) + public void TaskVehicleMission(uint _driver, uint _vehicle, uint _vehicleTarget, int _missionType, float _cruiseSpeed, int _drivingStyle, float _targetReached, float _straightLineDistance, bool _DriveAgainstTraffic) { unsafe { - if (fn__taskVehicleMission == null) fn__taskVehicleMission = (delegate* unmanaged[Cdecl]) funcTable[0x659427E0EF36BCDEUL]; + if (fn__taskVehicleMission == null) fn__taskVehicleMission = (delegate* unmanaged[Cdecl]) funcTable[0x659427E0EF36BCDEUL]; var success = false; fn__taskVehicleMission(&success, _driver, _vehicle, _vehicleTarget, _missionType, _cruiseSpeed, _drivingStyle, _targetReached, _straightLineDistance, (byte) (_DriveAgainstTraffic ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void TaskVehicleMissionPedTarget(IPlayer ped, int vehicle, int pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMissionPedTarget(ped.ScriptId, vehicle, pedTarget, missionType, maxSpeed, drivingStyle, minDistance, straightLineDistance, DriveAgainstTraffic); - public void TaskVehicleMissionPedTarget(int ped, IVehicle vehicle, int pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMissionPedTarget(ped, vehicle.ScriptId, pedTarget, missionType, maxSpeed, drivingStyle, minDistance, straightLineDistance, DriveAgainstTraffic); - public void TaskVehicleMissionPedTarget(IPlayer ped, IVehicle vehicle, int pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMissionPedTarget(ped.ScriptId, vehicle.ScriptId, pedTarget, missionType, maxSpeed, drivingStyle, minDistance, straightLineDistance, DriveAgainstTraffic); - public void TaskVehicleMissionPedTarget(int ped, int vehicle, IPlayer pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMissionPedTarget(ped, vehicle, pedTarget.ScriptId, missionType, maxSpeed, drivingStyle, minDistance, straightLineDistance, DriveAgainstTraffic); - public void TaskVehicleMissionPedTarget(IPlayer ped, int vehicle, IPlayer pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMissionPedTarget(ped.ScriptId, vehicle, pedTarget.ScriptId, missionType, maxSpeed, drivingStyle, minDistance, straightLineDistance, DriveAgainstTraffic); - public void TaskVehicleMissionPedTarget(int ped, IVehicle vehicle, IPlayer pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMissionPedTarget(ped, vehicle.ScriptId, pedTarget.ScriptId, missionType, maxSpeed, drivingStyle, minDistance, straightLineDistance, DriveAgainstTraffic); + public void TaskVehicleMissionPedTarget(IPlayer ped, uint vehicle, uint pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMissionPedTarget(ped.ScriptId, vehicle, pedTarget, missionType, maxSpeed, drivingStyle, minDistance, straightLineDistance, DriveAgainstTraffic); + public void TaskVehicleMissionPedTarget(uint ped, IVehicle vehicle, uint pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMissionPedTarget(ped, vehicle.ScriptId, pedTarget, missionType, maxSpeed, drivingStyle, minDistance, straightLineDistance, DriveAgainstTraffic); + public void TaskVehicleMissionPedTarget(IPlayer ped, IVehicle vehicle, uint pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMissionPedTarget(ped.ScriptId, vehicle.ScriptId, pedTarget, missionType, maxSpeed, drivingStyle, minDistance, straightLineDistance, DriveAgainstTraffic); + public void TaskVehicleMissionPedTarget(uint ped, uint vehicle, IPlayer pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMissionPedTarget(ped, vehicle, pedTarget.ScriptId, missionType, maxSpeed, drivingStyle, minDistance, straightLineDistance, DriveAgainstTraffic); + public void TaskVehicleMissionPedTarget(IPlayer ped, uint vehicle, IPlayer pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMissionPedTarget(ped.ScriptId, vehicle, pedTarget.ScriptId, missionType, maxSpeed, drivingStyle, minDistance, straightLineDistance, DriveAgainstTraffic); + public void TaskVehicleMissionPedTarget(uint ped, IVehicle vehicle, IPlayer pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMissionPedTarget(ped, vehicle.ScriptId, pedTarget.ScriptId, missionType, maxSpeed, drivingStyle, minDistance, straightLineDistance, DriveAgainstTraffic); public void TaskVehicleMissionPedTarget(IPlayer ped, IVehicle vehicle, IPlayer pedTarget, int missionType, float maxSpeed, int drivingStyle, float minDistance, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMissionPedTarget(ped.ScriptId, vehicle.ScriptId, pedTarget.ScriptId, missionType, maxSpeed, drivingStyle, minDistance, straightLineDistance, DriveAgainstTraffic); - public void TaskVehicleMissionPedTarget(int _ped, int _vehicle, int _pedTarget, int _missionType, float _maxSpeed, int _drivingStyle, float _minDistance, float _straightLineDistance, bool _DriveAgainstTraffic) + public void TaskVehicleMissionPedTarget(uint _ped, uint _vehicle, uint _pedTarget, int _missionType, float _maxSpeed, int _drivingStyle, float _minDistance, float _straightLineDistance, bool _DriveAgainstTraffic) { unsafe { - if (fn__taskVehicleMissionPedTarget == null) fn__taskVehicleMissionPedTarget = (delegate* unmanaged[Cdecl]) funcTable[0x9454528DF15D657AUL]; + if (fn__taskVehicleMissionPedTarget == null) fn__taskVehicleMissionPedTarget = (delegate* unmanaged[Cdecl]) funcTable[0x9454528DF15D657AUL]; var success = false; fn__taskVehicleMissionPedTarget(&success, _ped, _vehicle, _pedTarget, _missionType, _maxSpeed, _drivingStyle, _minDistance, _straightLineDistance, (byte) (_DriveAgainstTraffic ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void TaskVehicleMissionCoorsTarget(IPlayer ped, int vehicle, float x, float y, float z, int mission, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMissionCoorsTarget(ped.ScriptId, vehicle, x, y, z, mission, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); - public void TaskVehicleMissionCoorsTarget(int ped, IVehicle vehicle, float x, float y, float z, int mission, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMissionCoorsTarget(ped, vehicle.ScriptId, x, y, z, mission, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); + public void TaskVehicleMissionCoorsTarget(IPlayer ped, uint vehicle, float x, float y, float z, int mission, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMissionCoorsTarget(ped.ScriptId, vehicle, x, y, z, mission, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); + public void TaskVehicleMissionCoorsTarget(uint ped, IVehicle vehicle, float x, float y, float z, int mission, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMissionCoorsTarget(ped, vehicle.ScriptId, x, y, z, mission, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); public void TaskVehicleMissionCoorsTarget(IPlayer ped, IVehicle vehicle, float x, float y, float z, int mission, float cruiseSpeed, int drivingStyle, float targetReached, float straightLineDistance, bool DriveAgainstTraffic) => TaskVehicleMissionCoorsTarget(ped.ScriptId, vehicle.ScriptId, x, y, z, mission, cruiseSpeed, drivingStyle, targetReached, straightLineDistance, DriveAgainstTraffic); - public void TaskVehicleMissionCoorsTarget(int _ped, int _vehicle, float _x, float _y, float _z, int _mission, float _cruiseSpeed, int _drivingStyle, float _targetReached, float _straightLineDistance, bool _DriveAgainstTraffic) + public void TaskVehicleMissionCoorsTarget(uint _ped, uint _vehicle, float _x, float _y, float _z, int _mission, float _cruiseSpeed, int _drivingStyle, float _targetReached, float _straightLineDistance, bool _DriveAgainstTraffic) { unsafe { - if (fn__taskVehicleMissionCoorsTarget == null) fn__taskVehicleMissionCoorsTarget = (delegate* unmanaged[Cdecl]) funcTable[0xF0AF20AA7731F8C3UL]; + if (fn__taskVehicleMissionCoorsTarget == null) fn__taskVehicleMissionCoorsTarget = (delegate* unmanaged[Cdecl]) funcTable[0xF0AF20AA7731F8C3UL]; var success = false; fn__taskVehicleMissionCoorsTarget(&success, _ped, _vehicle, _x, _y, _z, _mission, _cruiseSpeed, _drivingStyle, _targetReached, _straightLineDistance, (byte) (_DriveAgainstTraffic ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void TaskVehicleEscort(IPlayer ped, int vehicle, int targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance) => TaskVehicleEscort(ped.ScriptId, vehicle, targetVehicle, mode, speed, drivingStyle, minDistance, minHeightAboveTerrain, noRoadsDistance); - public void TaskVehicleEscort(int ped, IVehicle vehicle, int targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance) => TaskVehicleEscort(ped, vehicle.ScriptId, targetVehicle, mode, speed, drivingStyle, minDistance, minHeightAboveTerrain, noRoadsDistance); - public void TaskVehicleEscort(IPlayer ped, IVehicle vehicle, int targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance) => TaskVehicleEscort(ped.ScriptId, vehicle.ScriptId, targetVehicle, mode, speed, drivingStyle, minDistance, minHeightAboveTerrain, noRoadsDistance); - public void TaskVehicleEscort(int ped, int vehicle, IVehicle targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance) => TaskVehicleEscort(ped, vehicle, targetVehicle.ScriptId, mode, speed, drivingStyle, minDistance, minHeightAboveTerrain, noRoadsDistance); - public void TaskVehicleEscort(IPlayer ped, int vehicle, IVehicle targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance) => TaskVehicleEscort(ped.ScriptId, vehicle, targetVehicle.ScriptId, mode, speed, drivingStyle, minDistance, minHeightAboveTerrain, noRoadsDistance); - public void TaskVehicleEscort(int ped, IVehicle vehicle, IVehicle targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance) => TaskVehicleEscort(ped, vehicle.ScriptId, targetVehicle.ScriptId, mode, speed, drivingStyle, minDistance, minHeightAboveTerrain, noRoadsDistance); + public void TaskVehicleEscort(IPlayer ped, uint vehicle, uint targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance) => TaskVehicleEscort(ped.ScriptId, vehicle, targetVehicle, mode, speed, drivingStyle, minDistance, minHeightAboveTerrain, noRoadsDistance); + public void TaskVehicleEscort(uint ped, IVehicle vehicle, uint targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance) => TaskVehicleEscort(ped, vehicle.ScriptId, targetVehicle, mode, speed, drivingStyle, minDistance, minHeightAboveTerrain, noRoadsDistance); + public void TaskVehicleEscort(IPlayer ped, IVehicle vehicle, uint targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance) => TaskVehicleEscort(ped.ScriptId, vehicle.ScriptId, targetVehicle, mode, speed, drivingStyle, minDistance, minHeightAboveTerrain, noRoadsDistance); + public void TaskVehicleEscort(uint ped, uint vehicle, IVehicle targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance) => TaskVehicleEscort(ped, vehicle, targetVehicle.ScriptId, mode, speed, drivingStyle, minDistance, minHeightAboveTerrain, noRoadsDistance); + public void TaskVehicleEscort(IPlayer ped, uint vehicle, IVehicle targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance) => TaskVehicleEscort(ped.ScriptId, vehicle, targetVehicle.ScriptId, mode, speed, drivingStyle, minDistance, minHeightAboveTerrain, noRoadsDistance); + public void TaskVehicleEscort(uint ped, IVehicle vehicle, IVehicle targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance) => TaskVehicleEscort(ped, vehicle.ScriptId, targetVehicle.ScriptId, mode, speed, drivingStyle, minDistance, minHeightAboveTerrain, noRoadsDistance); public void TaskVehicleEscort(IPlayer ped, IVehicle vehicle, IVehicle targetVehicle, int mode, float speed, int drivingStyle, float minDistance, int minHeightAboveTerrain, float noRoadsDistance) => TaskVehicleEscort(ped.ScriptId, vehicle.ScriptId, targetVehicle.ScriptId, mode, speed, drivingStyle, minDistance, minHeightAboveTerrain, noRoadsDistance); - public void TaskVehicleEscort(int _ped, int _vehicle, int _targetVehicle, int _mode, float _speed, int _drivingStyle, float _minDistance, int _minHeightAboveTerrain, float _noRoadsDistance) + public void TaskVehicleEscort(uint _ped, uint _vehicle, uint _targetVehicle, int _mode, float _speed, int _drivingStyle, float _minDistance, int _minHeightAboveTerrain, float _noRoadsDistance) { unsafe { - if (fn__taskVehicleEscort == null) fn__taskVehicleEscort = (delegate* unmanaged[Cdecl]) funcTable[0x0FA6E4B75F302400UL]; + if (fn__taskVehicleEscort == null) fn__taskVehicleEscort = (delegate* unmanaged[Cdecl]) funcTable[0x0FA6E4B75F302400UL]; var success = false; fn__taskVehicleEscort(&success, _ped, _vehicle, _targetVehicle, _mode, _speed, _drivingStyle, _minDistance, _minHeightAboveTerrain, _noRoadsDistance); if (!success) throw new Exception("Native execution failed"); } } - public void TaskVehicleFollow(IPlayer driver, int vehicle, int targetEntity, float speed, int drivingStyle, int minDistance) => TaskVehicleFollow(driver.ScriptId, vehicle, targetEntity, speed, drivingStyle, minDistance); - public void TaskVehicleFollow(int driver, IVehicle vehicle, int targetEntity, float speed, int drivingStyle, int minDistance) => TaskVehicleFollow(driver, vehicle.ScriptId, targetEntity, speed, drivingStyle, minDistance); - public void TaskVehicleFollow(IPlayer driver, IVehicle vehicle, int targetEntity, float speed, int drivingStyle, int minDistance) => TaskVehicleFollow(driver.ScriptId, vehicle.ScriptId, targetEntity, speed, drivingStyle, minDistance); - public void TaskVehicleFollow(int driver, int vehicle, IEntity targetEntity, float speed, int drivingStyle, int minDistance) => TaskVehicleFollow(driver, vehicle, targetEntity.ScriptId, speed, drivingStyle, minDistance); - public void TaskVehicleFollow(IPlayer driver, int vehicle, IEntity targetEntity, float speed, int drivingStyle, int minDistance) => TaskVehicleFollow(driver.ScriptId, vehicle, targetEntity.ScriptId, speed, drivingStyle, minDistance); - public void TaskVehicleFollow(int driver, IVehicle vehicle, IEntity targetEntity, float speed, int drivingStyle, int minDistance) => TaskVehicleFollow(driver, vehicle.ScriptId, targetEntity.ScriptId, speed, drivingStyle, minDistance); + public void TaskVehicleFollow(IPlayer driver, uint vehicle, uint targetEntity, float speed, int drivingStyle, int minDistance) => TaskVehicleFollow(driver.ScriptId, vehicle, targetEntity, speed, drivingStyle, minDistance); + public void TaskVehicleFollow(uint driver, IVehicle vehicle, uint targetEntity, float speed, int drivingStyle, int minDistance) => TaskVehicleFollow(driver, vehicle.ScriptId, targetEntity, speed, drivingStyle, minDistance); + public void TaskVehicleFollow(IPlayer driver, IVehicle vehicle, uint targetEntity, float speed, int drivingStyle, int minDistance) => TaskVehicleFollow(driver.ScriptId, vehicle.ScriptId, targetEntity, speed, drivingStyle, minDistance); + public void TaskVehicleFollow(uint driver, uint vehicle, IEntity targetEntity, float speed, int drivingStyle, int minDistance) => TaskVehicleFollow(driver, vehicle, targetEntity.ScriptId, speed, drivingStyle, minDistance); + public void TaskVehicleFollow(IPlayer driver, uint vehicle, IEntity targetEntity, float speed, int drivingStyle, int minDistance) => TaskVehicleFollow(driver.ScriptId, vehicle, targetEntity.ScriptId, speed, drivingStyle, minDistance); + public void TaskVehicleFollow(uint driver, IVehicle vehicle, IEntity targetEntity, float speed, int drivingStyle, int minDistance) => TaskVehicleFollow(driver, vehicle.ScriptId, targetEntity.ScriptId, speed, drivingStyle, minDistance); public void TaskVehicleFollow(IPlayer driver, IVehicle vehicle, IEntity targetEntity, float speed, int drivingStyle, int minDistance) => TaskVehicleFollow(driver.ScriptId, vehicle.ScriptId, targetEntity.ScriptId, speed, drivingStyle, minDistance); - public void TaskVehicleFollow(int _driver, int _vehicle, int _targetEntity, float _speed, int _drivingStyle, int _minDistance) + public void TaskVehicleFollow(uint _driver, uint _vehicle, uint _targetEntity, float _speed, int _drivingStyle, int _minDistance) { unsafe { - if (fn__taskVehicleFollow == null) fn__taskVehicleFollow = (delegate* unmanaged[Cdecl]) funcTable[0xFC545A9F0626E3B6UL]; + if (fn__taskVehicleFollow == null) fn__taskVehicleFollow = (delegate* unmanaged[Cdecl]) funcTable[0xFC545A9F0626E3B6UL]; var success = false; fn__taskVehicleFollow(&success, _driver, _vehicle, _targetEntity, _speed, _drivingStyle, _minDistance); if (!success) throw new Exception("Native execution failed"); } } - public void TaskVehicleChase(IPlayer driver, int targetEnt) => TaskVehicleChase(driver.ScriptId, targetEnt); - public void TaskVehicleChase(int driver, IEntity targetEnt) => TaskVehicleChase(driver, targetEnt.ScriptId); + public void TaskVehicleChase(IPlayer driver, uint targetEnt) => TaskVehicleChase(driver.ScriptId, targetEnt); + public void TaskVehicleChase(uint driver, IEntity targetEnt) => TaskVehicleChase(driver, targetEnt.ScriptId); public void TaskVehicleChase(IPlayer driver, IEntity targetEnt) => TaskVehicleChase(driver.ScriptId, targetEnt.ScriptId); - public void TaskVehicleChase(int _driver, int _targetEnt) + public void TaskVehicleChase(uint _driver, uint _targetEnt) { unsafe { - if (fn__taskVehicleChase == null) fn__taskVehicleChase = (delegate* unmanaged[Cdecl]) funcTable[0x3C08A8E30363B353UL]; + if (fn__taskVehicleChase == null) fn__taskVehicleChase = (delegate* unmanaged[Cdecl]) funcTable[0x3C08A8E30363B353UL]; var success = false; fn__taskVehicleChase(&success, _driver, _targetEnt); if (!success) throw new Exception("Native execution failed"); } } - public void TaskVehicleHeliProtect(IPlayer pilot, int vehicle, int entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags) => TaskVehicleHeliProtect(pilot.ScriptId, vehicle, entityToFollow, targetSpeed, drivingFlags, radius, altitude, heliFlags); - public void TaskVehicleHeliProtect(int pilot, IVehicle vehicle, int entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags) => TaskVehicleHeliProtect(pilot, vehicle.ScriptId, entityToFollow, targetSpeed, drivingFlags, radius, altitude, heliFlags); - public void TaskVehicleHeliProtect(IPlayer pilot, IVehicle vehicle, int entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags) => TaskVehicleHeliProtect(pilot.ScriptId, vehicle.ScriptId, entityToFollow, targetSpeed, drivingFlags, radius, altitude, heliFlags); - public void TaskVehicleHeliProtect(int pilot, int vehicle, IEntity entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags) => TaskVehicleHeliProtect(pilot, vehicle, entityToFollow.ScriptId, targetSpeed, drivingFlags, radius, altitude, heliFlags); - public void TaskVehicleHeliProtect(IPlayer pilot, int vehicle, IEntity entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags) => TaskVehicleHeliProtect(pilot.ScriptId, vehicle, entityToFollow.ScriptId, targetSpeed, drivingFlags, radius, altitude, heliFlags); - public void TaskVehicleHeliProtect(int pilot, IVehicle vehicle, IEntity entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags) => TaskVehicleHeliProtect(pilot, vehicle.ScriptId, entityToFollow.ScriptId, targetSpeed, drivingFlags, radius, altitude, heliFlags); + public void TaskVehicleHeliProtect(IPlayer pilot, uint vehicle, uint entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags) => TaskVehicleHeliProtect(pilot.ScriptId, vehicle, entityToFollow, targetSpeed, drivingFlags, radius, altitude, heliFlags); + public void TaskVehicleHeliProtect(uint pilot, IVehicle vehicle, uint entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags) => TaskVehicleHeliProtect(pilot, vehicle.ScriptId, entityToFollow, targetSpeed, drivingFlags, radius, altitude, heliFlags); + public void TaskVehicleHeliProtect(IPlayer pilot, IVehicle vehicle, uint entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags) => TaskVehicleHeliProtect(pilot.ScriptId, vehicle.ScriptId, entityToFollow, targetSpeed, drivingFlags, radius, altitude, heliFlags); + public void TaskVehicleHeliProtect(uint pilot, uint vehicle, IEntity entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags) => TaskVehicleHeliProtect(pilot, vehicle, entityToFollow.ScriptId, targetSpeed, drivingFlags, radius, altitude, heliFlags); + public void TaskVehicleHeliProtect(IPlayer pilot, uint vehicle, IEntity entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags) => TaskVehicleHeliProtect(pilot.ScriptId, vehicle, entityToFollow.ScriptId, targetSpeed, drivingFlags, radius, altitude, heliFlags); + public void TaskVehicleHeliProtect(uint pilot, IVehicle vehicle, IEntity entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags) => TaskVehicleHeliProtect(pilot, vehicle.ScriptId, entityToFollow.ScriptId, targetSpeed, drivingFlags, radius, altitude, heliFlags); public void TaskVehicleHeliProtect(IPlayer pilot, IVehicle vehicle, IEntity entityToFollow, float targetSpeed, int drivingFlags, float radius, int altitude, int heliFlags) => TaskVehicleHeliProtect(pilot.ScriptId, vehicle.ScriptId, entityToFollow.ScriptId, targetSpeed, drivingFlags, radius, altitude, heliFlags); - public void TaskVehicleHeliProtect(int _pilot, int _vehicle, int _entityToFollow, float _targetSpeed, int _drivingFlags, float _radius, int _altitude, int _heliFlags) + public void TaskVehicleHeliProtect(uint _pilot, uint _vehicle, uint _entityToFollow, float _targetSpeed, int _drivingFlags, float _radius, int _altitude, int _heliFlags) { unsafe { - if (fn__taskVehicleHeliProtect == null) fn__taskVehicleHeliProtect = (delegate* unmanaged[Cdecl]) funcTable[0x1E09C32048FEFD1CUL]; + if (fn__taskVehicleHeliProtect == null) fn__taskVehicleHeliProtect = (delegate* unmanaged[Cdecl]) funcTable[0x1E09C32048FEFD1CUL]; var success = false; fn__taskVehicleHeliProtect(&success, _pilot, _vehicle, _entityToFollow, _targetSpeed, _drivingFlags, _radius, _altitude, _heliFlags); if (!success) throw new Exception("Native execution failed"); @@ -93480,10 +93467,10 @@ public void TaskVehicleHeliProtect(int _pilot, int _vehicle, int _entityToFollow } public void SetTaskVehicleChaseBehaviorFlag(IPlayer ped, int flag, bool set) => SetTaskVehicleChaseBehaviorFlag(ped.ScriptId, flag, set); - public void SetTaskVehicleChaseBehaviorFlag(int _ped, int _flag, bool _set) + public void SetTaskVehicleChaseBehaviorFlag(uint _ped, int _flag, bool _set) { unsafe { - if (fn__setTaskVehicleChaseBehaviorFlag == null) fn__setTaskVehicleChaseBehaviorFlag = (delegate* unmanaged[Cdecl]) funcTable[0xCC665AAC360D31E7UL]; + if (fn__setTaskVehicleChaseBehaviorFlag == null) fn__setTaskVehicleChaseBehaviorFlag = (delegate* unmanaged[Cdecl]) funcTable[0xCC665AAC360D31E7UL]; var success = false; fn__setTaskVehicleChaseBehaviorFlag(&success, _ped, _flag, (byte) (_set ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -93491,49 +93478,49 @@ public void SetTaskVehicleChaseBehaviorFlag(int _ped, int _flag, bool _set) } public void SetTaskVehicleChaseIdealPursuitDistance(IPlayer ped, float distance) => SetTaskVehicleChaseIdealPursuitDistance(ped.ScriptId, distance); - public void SetTaskVehicleChaseIdealPursuitDistance(int _ped, float _distance) + public void SetTaskVehicleChaseIdealPursuitDistance(uint _ped, float _distance) { unsafe { - if (fn__setTaskVehicleChaseIdealPursuitDistance == null) fn__setTaskVehicleChaseIdealPursuitDistance = (delegate* unmanaged[Cdecl]) funcTable[0x639B642FACBE4EDDUL]; + if (fn__setTaskVehicleChaseIdealPursuitDistance == null) fn__setTaskVehicleChaseIdealPursuitDistance = (delegate* unmanaged[Cdecl]) funcTable[0x639B642FACBE4EDDUL]; var success = false; fn__setTaskVehicleChaseIdealPursuitDistance(&success, _ped, _distance); if (!success) throw new Exception("Native execution failed"); } } - public void TaskHeliChase(IPlayer pilot, int entityToFollow, float x, float y, float z) => TaskHeliChase(pilot.ScriptId, entityToFollow, x, y, z); - public void TaskHeliChase(int pilot, IEntity entityToFollow, float x, float y, float z) => TaskHeliChase(pilot, entityToFollow.ScriptId, x, y, z); + public void TaskHeliChase(IPlayer pilot, uint entityToFollow, float x, float y, float z) => TaskHeliChase(pilot.ScriptId, entityToFollow, x, y, z); + public void TaskHeliChase(uint pilot, IEntity entityToFollow, float x, float y, float z) => TaskHeliChase(pilot, entityToFollow.ScriptId, x, y, z); public void TaskHeliChase(IPlayer pilot, IEntity entityToFollow, float x, float y, float z) => TaskHeliChase(pilot.ScriptId, entityToFollow.ScriptId, x, y, z); - public void TaskHeliChase(int _pilot, int _entityToFollow, float _x, float _y, float _z) + public void TaskHeliChase(uint _pilot, uint _entityToFollow, float _x, float _y, float _z) { unsafe { - if (fn__taskHeliChase == null) fn__taskHeliChase = (delegate* unmanaged[Cdecl]) funcTable[0xAC83B1DB38D0ADA0UL]; + if (fn__taskHeliChase == null) fn__taskHeliChase = (delegate* unmanaged[Cdecl]) funcTable[0xAC83B1DB38D0ADA0UL]; var success = false; fn__taskHeliChase(&success, _pilot, _entityToFollow, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); } } - public void TaskPlaneChase(IPlayer pilot, int entityToFollow, float x, float y, float z) => TaskPlaneChase(pilot.ScriptId, entityToFollow, x, y, z); - public void TaskPlaneChase(int pilot, IEntity entityToFollow, float x, float y, float z) => TaskPlaneChase(pilot, entityToFollow.ScriptId, x, y, z); + public void TaskPlaneChase(IPlayer pilot, uint entityToFollow, float x, float y, float z) => TaskPlaneChase(pilot.ScriptId, entityToFollow, x, y, z); + public void TaskPlaneChase(uint pilot, IEntity entityToFollow, float x, float y, float z) => TaskPlaneChase(pilot, entityToFollow.ScriptId, x, y, z); public void TaskPlaneChase(IPlayer pilot, IEntity entityToFollow, float x, float y, float z) => TaskPlaneChase(pilot.ScriptId, entityToFollow.ScriptId, x, y, z); - public void TaskPlaneChase(int _pilot, int _entityToFollow, float _x, float _y, float _z) + public void TaskPlaneChase(uint _pilot, uint _entityToFollow, float _x, float _y, float _z) { unsafe { - if (fn__taskPlaneChase == null) fn__taskPlaneChase = (delegate* unmanaged[Cdecl]) funcTable[0x2D2386F273FF7A25UL]; + if (fn__taskPlaneChase == null) fn__taskPlaneChase = (delegate* unmanaged[Cdecl]) funcTable[0x2D2386F273FF7A25UL]; var success = false; fn__taskPlaneChase(&success, _pilot, _entityToFollow, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); } } - public void TaskPlaneLand(IPlayer pilot, int plane, float runwayStartX, float runwayStartY, float runwayStartZ, float runwayEndX, float runwayEndY, float runwayEndZ) => TaskPlaneLand(pilot.ScriptId, plane, runwayStartX, runwayStartY, runwayStartZ, runwayEndX, runwayEndY, runwayEndZ); - public void TaskPlaneLand(int pilot, IVehicle plane, float runwayStartX, float runwayStartY, float runwayStartZ, float runwayEndX, float runwayEndY, float runwayEndZ) => TaskPlaneLand(pilot, plane.ScriptId, runwayStartX, runwayStartY, runwayStartZ, runwayEndX, runwayEndY, runwayEndZ); + public void TaskPlaneLand(IPlayer pilot, uint plane, float runwayStartX, float runwayStartY, float runwayStartZ, float runwayEndX, float runwayEndY, float runwayEndZ) => TaskPlaneLand(pilot.ScriptId, plane, runwayStartX, runwayStartY, runwayStartZ, runwayEndX, runwayEndY, runwayEndZ); + public void TaskPlaneLand(uint pilot, IVehicle plane, float runwayStartX, float runwayStartY, float runwayStartZ, float runwayEndX, float runwayEndY, float runwayEndZ) => TaskPlaneLand(pilot, plane.ScriptId, runwayStartX, runwayStartY, runwayStartZ, runwayEndX, runwayEndY, runwayEndZ); public void TaskPlaneLand(IPlayer pilot, IVehicle plane, float runwayStartX, float runwayStartY, float runwayStartZ, float runwayEndX, float runwayEndY, float runwayEndZ) => TaskPlaneLand(pilot.ScriptId, plane.ScriptId, runwayStartX, runwayStartY, runwayStartZ, runwayEndX, runwayEndY, runwayEndZ); - public void TaskPlaneLand(int _pilot, int _plane, float _runwayStartX, float _runwayStartY, float _runwayStartZ, float _runwayEndX, float _runwayEndY, float _runwayEndZ) + public void TaskPlaneLand(uint _pilot, uint _plane, float _runwayStartX, float _runwayStartY, float _runwayStartZ, float _runwayEndX, float _runwayEndY, float _runwayEndZ) { unsafe { - if (fn__taskPlaneLand == null) fn__taskPlaneLand = (delegate* unmanaged[Cdecl]) funcTable[0xBF19721FA34D32C0UL]; + if (fn__taskPlaneLand == null) fn__taskPlaneLand = (delegate* unmanaged[Cdecl]) funcTable[0xBF19721FA34D32C0UL]; var success = false; fn__taskPlaneLand(&success, _pilot, _plane, _runwayStartX, _runwayStartY, _runwayStartZ, _runwayEndX, _runwayEndY, _runwayEndZ); if (!success) throw new Exception("Native execution failed"); @@ -93541,10 +93528,10 @@ public void TaskPlaneLand(int _pilot, int _plane, float _runwayStartX, float _ru } public void ClearDefaultPrimaryTask(IPlayer ped) => ClearDefaultPrimaryTask(ped.ScriptId); - public void ClearDefaultPrimaryTask(int _ped) + public void ClearDefaultPrimaryTask(uint _ped) { unsafe { - if (fn__clearDefaultPrimaryTask == null) fn__clearDefaultPrimaryTask = (delegate* unmanaged[Cdecl]) funcTable[0x6100B3CEFD43452EUL]; + if (fn__clearDefaultPrimaryTask == null) fn__clearDefaultPrimaryTask = (delegate* unmanaged[Cdecl]) funcTable[0x6100B3CEFD43452EUL]; var success = false; fn__clearDefaultPrimaryTask(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -93552,10 +93539,10 @@ public void ClearDefaultPrimaryTask(int _ped) } public void ClearPrimaryVehicleTask(IVehicle vehicle) => ClearPrimaryVehicleTask(vehicle.ScriptId); - public void ClearPrimaryVehicleTask(int _vehicle) + public void ClearPrimaryVehicleTask(uint _vehicle) { unsafe { - if (fn__clearPrimaryVehicleTask == null) fn__clearPrimaryVehicleTask = (delegate* unmanaged[Cdecl]) funcTable[0xDBBC7A2432524127UL]; + if (fn__clearPrimaryVehicleTask == null) fn__clearPrimaryVehicleTask = (delegate* unmanaged[Cdecl]) funcTable[0xDBBC7A2432524127UL]; var success = false; fn__clearPrimaryVehicleTask(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -93563,175 +93550,175 @@ public void ClearPrimaryVehicleTask(int _vehicle) } public void ClearVehicleCrashTask(IVehicle vehicle) => ClearVehicleCrashTask(vehicle.ScriptId); - public void ClearVehicleCrashTask(int _vehicle) + public void ClearVehicleCrashTask(uint _vehicle) { unsafe { - if (fn__clearVehicleCrashTask == null) fn__clearVehicleCrashTask = (delegate* unmanaged[Cdecl]) funcTable[0x53DDC75BC3AC0A90UL]; + if (fn__clearVehicleCrashTask == null) fn__clearVehicleCrashTask = (delegate* unmanaged[Cdecl]) funcTable[0x53DDC75BC3AC0A90UL]; var success = false; fn__clearVehicleCrashTask(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); } } - public void TaskPlaneGotoPreciseVtol(IPlayer ped, int vehicle, float x, float y, float z, int flightHeight, int minHeightAboveTerrain, bool useDesiredOrientation, float desiredOrientation, bool autopilot) => TaskPlaneGotoPreciseVtol(ped.ScriptId, vehicle, x, y, z, flightHeight, minHeightAboveTerrain, useDesiredOrientation, desiredOrientation, autopilot); - public void TaskPlaneGotoPreciseVtol(int ped, IVehicle vehicle, float x, float y, float z, int flightHeight, int minHeightAboveTerrain, bool useDesiredOrientation, float desiredOrientation, bool autopilot) => TaskPlaneGotoPreciseVtol(ped, vehicle.ScriptId, x, y, z, flightHeight, minHeightAboveTerrain, useDesiredOrientation, desiredOrientation, autopilot); + public void TaskPlaneGotoPreciseVtol(IPlayer ped, uint vehicle, float x, float y, float z, int flightHeight, int minHeightAboveTerrain, bool useDesiredOrientation, float desiredOrientation, bool autopilot) => TaskPlaneGotoPreciseVtol(ped.ScriptId, vehicle, x, y, z, flightHeight, minHeightAboveTerrain, useDesiredOrientation, desiredOrientation, autopilot); + public void TaskPlaneGotoPreciseVtol(uint ped, IVehicle vehicle, float x, float y, float z, int flightHeight, int minHeightAboveTerrain, bool useDesiredOrientation, float desiredOrientation, bool autopilot) => TaskPlaneGotoPreciseVtol(ped, vehicle.ScriptId, x, y, z, flightHeight, minHeightAboveTerrain, useDesiredOrientation, desiredOrientation, autopilot); public void TaskPlaneGotoPreciseVtol(IPlayer ped, IVehicle vehicle, float x, float y, float z, int flightHeight, int minHeightAboveTerrain, bool useDesiredOrientation, float desiredOrientation, bool autopilot) => TaskPlaneGotoPreciseVtol(ped.ScriptId, vehicle.ScriptId, x, y, z, flightHeight, minHeightAboveTerrain, useDesiredOrientation, desiredOrientation, autopilot); - public void TaskPlaneGotoPreciseVtol(int _ped, int _vehicle, float _x, float _y, float _z, int _flightHeight, int _minHeightAboveTerrain, bool _useDesiredOrientation, float _desiredOrientation, bool _autopilot) + public void TaskPlaneGotoPreciseVtol(uint _ped, uint _vehicle, float _x, float _y, float _z, int _flightHeight, int _minHeightAboveTerrain, bool _useDesiredOrientation, float _desiredOrientation, bool _autopilot) { unsafe { - if (fn__taskPlaneGotoPreciseVtol == null) fn__taskPlaneGotoPreciseVtol = (delegate* unmanaged[Cdecl]) funcTable[0xF7F9DCCA89E7505BUL]; + if (fn__taskPlaneGotoPreciseVtol == null) fn__taskPlaneGotoPreciseVtol = (delegate* unmanaged[Cdecl]) funcTable[0xF7F9DCCA89E7505BUL]; var success = false; fn__taskPlaneGotoPreciseVtol(&success, _ped, _vehicle, _x, _y, _z, _flightHeight, _minHeightAboveTerrain, (byte) (_useDesiredOrientation ? 1 : 0), _desiredOrientation, (byte) (_autopilot ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void TaskSubmarineGotoAndStop(IPlayer ped, int submarine, float x, float y, float z, bool autopilot) => TaskSubmarineGotoAndStop(ped.ScriptId, submarine, x, y, z, autopilot); - public void TaskSubmarineGotoAndStop(int ped, IVehicle submarine, float x, float y, float z, bool autopilot) => TaskSubmarineGotoAndStop(ped, submarine.ScriptId, x, y, z, autopilot); + public void TaskSubmarineGotoAndStop(IPlayer ped, uint submarine, float x, float y, float z, bool autopilot) => TaskSubmarineGotoAndStop(ped.ScriptId, submarine, x, y, z, autopilot); + public void TaskSubmarineGotoAndStop(uint ped, IVehicle submarine, float x, float y, float z, bool autopilot) => TaskSubmarineGotoAndStop(ped, submarine.ScriptId, x, y, z, autopilot); public void TaskSubmarineGotoAndStop(IPlayer ped, IVehicle submarine, float x, float y, float z, bool autopilot) => TaskSubmarineGotoAndStop(ped.ScriptId, submarine.ScriptId, x, y, z, autopilot); - public void TaskSubmarineGotoAndStop(int _ped, int _submarine, float _x, float _y, float _z, bool _autopilot) + public void TaskSubmarineGotoAndStop(uint _ped, uint _submarine, float _x, float _y, float _z, bool _autopilot) { unsafe { - if (fn__taskSubmarineGotoAndStop == null) fn__taskSubmarineGotoAndStop = (delegate* unmanaged[Cdecl]) funcTable[0xC22B40579A498CA4UL]; + if (fn__taskSubmarineGotoAndStop == null) fn__taskSubmarineGotoAndStop = (delegate* unmanaged[Cdecl]) funcTable[0xC22B40579A498CA4UL]; var success = false; fn__taskSubmarineGotoAndStop(&success, _ped, _submarine, _x, _y, _z, (byte) (_autopilot ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void TaskHeliMission(IPlayer pilot, int aircraft, int targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot.ScriptId, aircraft, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); - public void TaskHeliMission(int pilot, IVehicle aircraft, int targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot, aircraft.ScriptId, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); - public void TaskHeliMission(IPlayer pilot, IVehicle aircraft, int targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot.ScriptId, aircraft.ScriptId, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); - public void TaskHeliMission(int pilot, int aircraft, IVehicle targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot, aircraft, targetVehicle.ScriptId, targetPed, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); - public void TaskHeliMission(IPlayer pilot, int aircraft, IVehicle targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot.ScriptId, aircraft, targetVehicle.ScriptId, targetPed, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); - public void TaskHeliMission(int pilot, IVehicle aircraft, IVehicle targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot, aircraft.ScriptId, targetVehicle.ScriptId, targetPed, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); - public void TaskHeliMission(IPlayer pilot, IVehicle aircraft, IVehicle targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot.ScriptId, aircraft.ScriptId, targetVehicle.ScriptId, targetPed, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); - public void TaskHeliMission(int pilot, int aircraft, int targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot, aircraft, targetVehicle, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); - public void TaskHeliMission(IPlayer pilot, int aircraft, int targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot.ScriptId, aircraft, targetVehicle, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); - public void TaskHeliMission(int pilot, IVehicle aircraft, int targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot, aircraft.ScriptId, targetVehicle, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); - public void TaskHeliMission(IPlayer pilot, IVehicle aircraft, int targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot.ScriptId, aircraft.ScriptId, targetVehicle, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); - public void TaskHeliMission(int pilot, int aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot, aircraft, targetVehicle.ScriptId, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); - public void TaskHeliMission(IPlayer pilot, int aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot.ScriptId, aircraft, targetVehicle.ScriptId, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); - public void TaskHeliMission(int pilot, IVehicle aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot, aircraft.ScriptId, targetVehicle.ScriptId, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); + public void TaskHeliMission(IPlayer pilot, uint aircraft, uint targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot.ScriptId, aircraft, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); + public void TaskHeliMission(uint pilot, IVehicle aircraft, uint targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot, aircraft.ScriptId, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); + public void TaskHeliMission(IPlayer pilot, IVehicle aircraft, uint targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot.ScriptId, aircraft.ScriptId, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); + public void TaskHeliMission(uint pilot, uint aircraft, IVehicle targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot, aircraft, targetVehicle.ScriptId, targetPed, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); + public void TaskHeliMission(IPlayer pilot, uint aircraft, IVehicle targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot.ScriptId, aircraft, targetVehicle.ScriptId, targetPed, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); + public void TaskHeliMission(uint pilot, IVehicle aircraft, IVehicle targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot, aircraft.ScriptId, targetVehicle.ScriptId, targetPed, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); + public void TaskHeliMission(IPlayer pilot, IVehicle aircraft, IVehicle targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot.ScriptId, aircraft.ScriptId, targetVehicle.ScriptId, targetPed, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); + public void TaskHeliMission(uint pilot, uint aircraft, uint targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot, aircraft, targetVehicle, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); + public void TaskHeliMission(IPlayer pilot, uint aircraft, uint targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot.ScriptId, aircraft, targetVehicle, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); + public void TaskHeliMission(uint pilot, IVehicle aircraft, uint targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot, aircraft.ScriptId, targetVehicle, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); + public void TaskHeliMission(IPlayer pilot, IVehicle aircraft, uint targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot.ScriptId, aircraft.ScriptId, targetVehicle, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); + public void TaskHeliMission(uint pilot, uint aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot, aircraft, targetVehicle.ScriptId, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); + public void TaskHeliMission(IPlayer pilot, uint aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot.ScriptId, aircraft, targetVehicle.ScriptId, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); + public void TaskHeliMission(uint pilot, IVehicle aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot, aircraft.ScriptId, targetVehicle.ScriptId, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); public void TaskHeliMission(IPlayer pilot, IVehicle aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float maxSpeed, float radius, float targetHeading, int maxHeight, int minHeight, float slowDownDistance, int behaviorFlags) => TaskHeliMission(pilot.ScriptId, aircraft.ScriptId, targetVehicle.ScriptId, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, maxSpeed, radius, targetHeading, maxHeight, minHeight, slowDownDistance, behaviorFlags); - public void TaskHeliMission(int _pilot, int _aircraft, int _targetVehicle, int _targetPed, float _destinationX, float _destinationY, float _destinationZ, int _missionFlag, float _maxSpeed, float _radius, float _targetHeading, int _maxHeight, int _minHeight, float _slowDownDistance, int _behaviorFlags) + public void TaskHeliMission(uint _pilot, uint _aircraft, uint _targetVehicle, uint _targetPed, float _destinationX, float _destinationY, float _destinationZ, int _missionFlag, float _maxSpeed, float _radius, float _targetHeading, int _maxHeight, int _minHeight, float _slowDownDistance, int _behaviorFlags) { unsafe { - if (fn__taskHeliMission == null) fn__taskHeliMission = (delegate* unmanaged[Cdecl]) funcTable[0xDAD029E187A2BEB4UL]; + if (fn__taskHeliMission == null) fn__taskHeliMission = (delegate* unmanaged[Cdecl]) funcTable[0xDAD029E187A2BEB4UL]; var success = false; fn__taskHeliMission(&success, _pilot, _aircraft, _targetVehicle, _targetPed, _destinationX, _destinationY, _destinationZ, _missionFlag, _maxSpeed, _radius, _targetHeading, _maxHeight, _minHeight, _slowDownDistance, _behaviorFlags); if (!success) throw new Exception("Native execution failed"); } } - public void TaskHeliEscortHeli(IPlayer pilot, int heli1, int heli2, float offsetX, float offsetY, float offsetZ) => TaskHeliEscortHeli(pilot.ScriptId, heli1, heli2, offsetX, offsetY, offsetZ); - public void TaskHeliEscortHeli(int pilot, IVehicle heli1, int heli2, float offsetX, float offsetY, float offsetZ) => TaskHeliEscortHeli(pilot, heli1.ScriptId, heli2, offsetX, offsetY, offsetZ); - public void TaskHeliEscortHeli(IPlayer pilot, IVehicle heli1, int heli2, float offsetX, float offsetY, float offsetZ) => TaskHeliEscortHeli(pilot.ScriptId, heli1.ScriptId, heli2, offsetX, offsetY, offsetZ); - public void TaskHeliEscortHeli(int pilot, int heli1, IVehicle heli2, float offsetX, float offsetY, float offsetZ) => TaskHeliEscortHeli(pilot, heli1, heli2.ScriptId, offsetX, offsetY, offsetZ); - public void TaskHeliEscortHeli(IPlayer pilot, int heli1, IVehicle heli2, float offsetX, float offsetY, float offsetZ) => TaskHeliEscortHeli(pilot.ScriptId, heli1, heli2.ScriptId, offsetX, offsetY, offsetZ); - public void TaskHeliEscortHeli(int pilot, IVehicle heli1, IVehicle heli2, float offsetX, float offsetY, float offsetZ) => TaskHeliEscortHeli(pilot, heli1.ScriptId, heli2.ScriptId, offsetX, offsetY, offsetZ); + public void TaskHeliEscortHeli(IPlayer pilot, uint heli1, uint heli2, float offsetX, float offsetY, float offsetZ) => TaskHeliEscortHeli(pilot.ScriptId, heli1, heli2, offsetX, offsetY, offsetZ); + public void TaskHeliEscortHeli(uint pilot, IVehicle heli1, uint heli2, float offsetX, float offsetY, float offsetZ) => TaskHeliEscortHeli(pilot, heli1.ScriptId, heli2, offsetX, offsetY, offsetZ); + public void TaskHeliEscortHeli(IPlayer pilot, IVehicle heli1, uint heli2, float offsetX, float offsetY, float offsetZ) => TaskHeliEscortHeli(pilot.ScriptId, heli1.ScriptId, heli2, offsetX, offsetY, offsetZ); + public void TaskHeliEscortHeli(uint pilot, uint heli1, IVehicle heli2, float offsetX, float offsetY, float offsetZ) => TaskHeliEscortHeli(pilot, heli1, heli2.ScriptId, offsetX, offsetY, offsetZ); + public void TaskHeliEscortHeli(IPlayer pilot, uint heli1, IVehicle heli2, float offsetX, float offsetY, float offsetZ) => TaskHeliEscortHeli(pilot.ScriptId, heli1, heli2.ScriptId, offsetX, offsetY, offsetZ); + public void TaskHeliEscortHeli(uint pilot, IVehicle heli1, IVehicle heli2, float offsetX, float offsetY, float offsetZ) => TaskHeliEscortHeli(pilot, heli1.ScriptId, heli2.ScriptId, offsetX, offsetY, offsetZ); public void TaskHeliEscortHeli(IPlayer pilot, IVehicle heli1, IVehicle heli2, float offsetX, float offsetY, float offsetZ) => TaskHeliEscortHeli(pilot.ScriptId, heli1.ScriptId, heli2.ScriptId, offsetX, offsetY, offsetZ); - public void TaskHeliEscortHeli(int _pilot, int _heli1, int _heli2, float _offsetX, float _offsetY, float _offsetZ) + public void TaskHeliEscortHeli(uint _pilot, uint _heli1, uint _heli2, float _offsetX, float _offsetY, float _offsetZ) { unsafe { - if (fn__taskHeliEscortHeli == null) fn__taskHeliEscortHeli = (delegate* unmanaged[Cdecl]) funcTable[0xB385523325077210UL]; + if (fn__taskHeliEscortHeli == null) fn__taskHeliEscortHeli = (delegate* unmanaged[Cdecl]) funcTable[0xB385523325077210UL]; var success = false; fn__taskHeliEscortHeli(&success, _pilot, _heli1, _heli2, _offsetX, _offsetY, _offsetZ); if (!success) throw new Exception("Native execution failed"); } } - public void TaskPlaneMission(IPlayer pilot, int aircraft, int targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot.ScriptId, aircraft, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); - public void TaskPlaneMission(int pilot, IVehicle aircraft, int targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot, aircraft.ScriptId, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); - public void TaskPlaneMission(IPlayer pilot, IVehicle aircraft, int targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot.ScriptId, aircraft.ScriptId, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); - public void TaskPlaneMission(int pilot, int aircraft, IVehicle targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot, aircraft, targetVehicle.ScriptId, targetPed, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); - public void TaskPlaneMission(IPlayer pilot, int aircraft, IVehicle targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot.ScriptId, aircraft, targetVehicle.ScriptId, targetPed, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); - public void TaskPlaneMission(int pilot, IVehicle aircraft, IVehicle targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot, aircraft.ScriptId, targetVehicle.ScriptId, targetPed, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); - public void TaskPlaneMission(IPlayer pilot, IVehicle aircraft, IVehicle targetVehicle, int targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot.ScriptId, aircraft.ScriptId, targetVehicle.ScriptId, targetPed, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); - public void TaskPlaneMission(int pilot, int aircraft, int targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot, aircraft, targetVehicle, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); - public void TaskPlaneMission(IPlayer pilot, int aircraft, int targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot.ScriptId, aircraft, targetVehicle, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); - public void TaskPlaneMission(int pilot, IVehicle aircraft, int targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot, aircraft.ScriptId, targetVehicle, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); - public void TaskPlaneMission(IPlayer pilot, IVehicle aircraft, int targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot.ScriptId, aircraft.ScriptId, targetVehicle, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); - public void TaskPlaneMission(int pilot, int aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot, aircraft, targetVehicle.ScriptId, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); - public void TaskPlaneMission(IPlayer pilot, int aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot.ScriptId, aircraft, targetVehicle.ScriptId, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); - public void TaskPlaneMission(int pilot, IVehicle aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot, aircraft.ScriptId, targetVehicle.ScriptId, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); + public void TaskPlaneMission(IPlayer pilot, uint aircraft, uint targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot.ScriptId, aircraft, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); + public void TaskPlaneMission(uint pilot, IVehicle aircraft, uint targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot, aircraft.ScriptId, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); + public void TaskPlaneMission(IPlayer pilot, IVehicle aircraft, uint targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot.ScriptId, aircraft.ScriptId, targetVehicle, targetPed, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); + public void TaskPlaneMission(uint pilot, uint aircraft, IVehicle targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot, aircraft, targetVehicle.ScriptId, targetPed, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); + public void TaskPlaneMission(IPlayer pilot, uint aircraft, IVehicle targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot.ScriptId, aircraft, targetVehicle.ScriptId, targetPed, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); + public void TaskPlaneMission(uint pilot, IVehicle aircraft, IVehicle targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot, aircraft.ScriptId, targetVehicle.ScriptId, targetPed, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); + public void TaskPlaneMission(IPlayer pilot, IVehicle aircraft, IVehicle targetVehicle, uint targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot.ScriptId, aircraft.ScriptId, targetVehicle.ScriptId, targetPed, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); + public void TaskPlaneMission(uint pilot, uint aircraft, uint targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot, aircraft, targetVehicle, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); + public void TaskPlaneMission(IPlayer pilot, uint aircraft, uint targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot.ScriptId, aircraft, targetVehicle, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); + public void TaskPlaneMission(uint pilot, IVehicle aircraft, uint targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot, aircraft.ScriptId, targetVehicle, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); + public void TaskPlaneMission(IPlayer pilot, IVehicle aircraft, uint targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot.ScriptId, aircraft.ScriptId, targetVehicle, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); + public void TaskPlaneMission(uint pilot, uint aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot, aircraft, targetVehicle.ScriptId, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); + public void TaskPlaneMission(IPlayer pilot, uint aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot.ScriptId, aircraft, targetVehicle.ScriptId, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); + public void TaskPlaneMission(uint pilot, IVehicle aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot, aircraft.ScriptId, targetVehicle.ScriptId, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); public void TaskPlaneMission(IPlayer pilot, IVehicle aircraft, IVehicle targetVehicle, IPlayer targetPed, float destinationX, float destinationY, float destinationZ, int missionFlag, float angularDrag, float targetReached, float targetHeading, float maxZ, float minZ, bool precise) => TaskPlaneMission(pilot.ScriptId, aircraft.ScriptId, targetVehicle.ScriptId, targetPed.ScriptId, destinationX, destinationY, destinationZ, missionFlag, angularDrag, targetReached, targetHeading, maxZ, minZ, precise); - public void TaskPlaneMission(int _pilot, int _aircraft, int _targetVehicle, int _targetPed, float _destinationX, float _destinationY, float _destinationZ, int _missionFlag, float _angularDrag, float _targetReached, float _targetHeading, float _maxZ, float _minZ, bool _precise) + public void TaskPlaneMission(uint _pilot, uint _aircraft, uint _targetVehicle, uint _targetPed, float _destinationX, float _destinationY, float _destinationZ, int _missionFlag, float _angularDrag, float _targetReached, float _targetHeading, float _maxZ, float _minZ, bool _precise) { unsafe { - if (fn__taskPlaneMission == null) fn__taskPlaneMission = (delegate* unmanaged[Cdecl]) funcTable[0x23703CD154E83B88UL]; + if (fn__taskPlaneMission == null) fn__taskPlaneMission = (delegate* unmanaged[Cdecl]) funcTable[0x23703CD154E83B88UL]; var success = false; fn__taskPlaneMission(&success, _pilot, _aircraft, _targetVehicle, _targetPed, _destinationX, _destinationY, _destinationZ, _missionFlag, _angularDrag, _targetReached, _targetHeading, _maxZ, _minZ, (byte) (_precise ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void TaskPlaneTaxi(IPlayer pilot, int aircraft, float x, float y, float z, float cruiseSpeed, float targetReached) => TaskPlaneTaxi(pilot.ScriptId, aircraft, x, y, z, cruiseSpeed, targetReached); - public void TaskPlaneTaxi(int pilot, IVehicle aircraft, float x, float y, float z, float cruiseSpeed, float targetReached) => TaskPlaneTaxi(pilot, aircraft.ScriptId, x, y, z, cruiseSpeed, targetReached); + public void TaskPlaneTaxi(IPlayer pilot, uint aircraft, float x, float y, float z, float cruiseSpeed, float targetReached) => TaskPlaneTaxi(pilot.ScriptId, aircraft, x, y, z, cruiseSpeed, targetReached); + public void TaskPlaneTaxi(uint pilot, IVehicle aircraft, float x, float y, float z, float cruiseSpeed, float targetReached) => TaskPlaneTaxi(pilot, aircraft.ScriptId, x, y, z, cruiseSpeed, targetReached); public void TaskPlaneTaxi(IPlayer pilot, IVehicle aircraft, float x, float y, float z, float cruiseSpeed, float targetReached) => TaskPlaneTaxi(pilot.ScriptId, aircraft.ScriptId, x, y, z, cruiseSpeed, targetReached); - public void TaskPlaneTaxi(int _pilot, int _aircraft, float _x, float _y, float _z, float _cruiseSpeed, float _targetReached) + public void TaskPlaneTaxi(uint _pilot, uint _aircraft, float _x, float _y, float _z, float _cruiseSpeed, float _targetReached) { unsafe { - if (fn__taskPlaneTaxi == null) fn__taskPlaneTaxi = (delegate* unmanaged[Cdecl]) funcTable[0x92C360B5F15D2302UL]; + if (fn__taskPlaneTaxi == null) fn__taskPlaneTaxi = (delegate* unmanaged[Cdecl]) funcTable[0x92C360B5F15D2302UL]; var success = false; fn__taskPlaneTaxi(&success, _pilot, _aircraft, _x, _y, _z, _cruiseSpeed, _targetReached); if (!success) throw new Exception("Native execution failed"); } } - public void TaskBoatMission(IPlayer pedDriver, int vehicle, int targetVehicle, int targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver.ScriptId, vehicle, targetVehicle, targetPed, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); - public void TaskBoatMission(int pedDriver, IVehicle vehicle, int targetVehicle, int targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver, vehicle.ScriptId, targetVehicle, targetPed, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); - public void TaskBoatMission(IPlayer pedDriver, IVehicle vehicle, int targetVehicle, int targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver.ScriptId, vehicle.ScriptId, targetVehicle, targetPed, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); - public void TaskBoatMission(int pedDriver, int vehicle, IVehicle targetVehicle, int targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver, vehicle, targetVehicle.ScriptId, targetPed, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); - public void TaskBoatMission(IPlayer pedDriver, int vehicle, IVehicle targetVehicle, int targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver.ScriptId, vehicle, targetVehicle.ScriptId, targetPed, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); - public void TaskBoatMission(int pedDriver, IVehicle vehicle, IVehicle targetVehicle, int targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver, vehicle.ScriptId, targetVehicle.ScriptId, targetPed, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); - public void TaskBoatMission(IPlayer pedDriver, IVehicle vehicle, IVehicle targetVehicle, int targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver.ScriptId, vehicle.ScriptId, targetVehicle.ScriptId, targetPed, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); - public void TaskBoatMission(int pedDriver, int vehicle, int targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver, vehicle, targetVehicle, targetPed.ScriptId, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); - public void TaskBoatMission(IPlayer pedDriver, int vehicle, int targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver.ScriptId, vehicle, targetVehicle, targetPed.ScriptId, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); - public void TaskBoatMission(int pedDriver, IVehicle vehicle, int targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver, vehicle.ScriptId, targetVehicle, targetPed.ScriptId, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); - public void TaskBoatMission(IPlayer pedDriver, IVehicle vehicle, int targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver.ScriptId, vehicle.ScriptId, targetVehicle, targetPed.ScriptId, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); - public void TaskBoatMission(int pedDriver, int vehicle, IVehicle targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver, vehicle, targetVehicle.ScriptId, targetPed.ScriptId, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); - public void TaskBoatMission(IPlayer pedDriver, int vehicle, IVehicle targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver.ScriptId, vehicle, targetVehicle.ScriptId, targetPed.ScriptId, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); - public void TaskBoatMission(int pedDriver, IVehicle vehicle, IVehicle targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver, vehicle.ScriptId, targetVehicle.ScriptId, targetPed.ScriptId, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); + public void TaskBoatMission(IPlayer pedDriver, uint vehicle, uint targetVehicle, uint targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver.ScriptId, vehicle, targetVehicle, targetPed, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); + public void TaskBoatMission(uint pedDriver, IVehicle vehicle, uint targetVehicle, uint targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver, vehicle.ScriptId, targetVehicle, targetPed, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); + public void TaskBoatMission(IPlayer pedDriver, IVehicle vehicle, uint targetVehicle, uint targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver.ScriptId, vehicle.ScriptId, targetVehicle, targetPed, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); + public void TaskBoatMission(uint pedDriver, uint vehicle, IVehicle targetVehicle, uint targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver, vehicle, targetVehicle.ScriptId, targetPed, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); + public void TaskBoatMission(IPlayer pedDriver, uint vehicle, IVehicle targetVehicle, uint targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver.ScriptId, vehicle, targetVehicle.ScriptId, targetPed, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); + public void TaskBoatMission(uint pedDriver, IVehicle vehicle, IVehicle targetVehicle, uint targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver, vehicle.ScriptId, targetVehicle.ScriptId, targetPed, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); + public void TaskBoatMission(IPlayer pedDriver, IVehicle vehicle, IVehicle targetVehicle, uint targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver.ScriptId, vehicle.ScriptId, targetVehicle.ScriptId, targetPed, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); + public void TaskBoatMission(uint pedDriver, uint vehicle, uint targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver, vehicle, targetVehicle, targetPed.ScriptId, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); + public void TaskBoatMission(IPlayer pedDriver, uint vehicle, uint targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver.ScriptId, vehicle, targetVehicle, targetPed.ScriptId, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); + public void TaskBoatMission(uint pedDriver, IVehicle vehicle, uint targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver, vehicle.ScriptId, targetVehicle, targetPed.ScriptId, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); + public void TaskBoatMission(IPlayer pedDriver, IVehicle vehicle, uint targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver.ScriptId, vehicle.ScriptId, targetVehicle, targetPed.ScriptId, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); + public void TaskBoatMission(uint pedDriver, uint vehicle, IVehicle targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver, vehicle, targetVehicle.ScriptId, targetPed.ScriptId, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); + public void TaskBoatMission(IPlayer pedDriver, uint vehicle, IVehicle targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver.ScriptId, vehicle, targetVehicle.ScriptId, targetPed.ScriptId, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); + public void TaskBoatMission(uint pedDriver, IVehicle vehicle, IVehicle targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver, vehicle.ScriptId, targetVehicle.ScriptId, targetPed.ScriptId, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); public void TaskBoatMission(IPlayer pedDriver, IVehicle vehicle, IVehicle targetVehicle, IPlayer targetPed, float x, float y, float z, int mission, float maxSpeed, int drivingStyle, float targetReached, int boatFlags) => TaskBoatMission(pedDriver.ScriptId, vehicle.ScriptId, targetVehicle.ScriptId, targetPed.ScriptId, x, y, z, mission, maxSpeed, drivingStyle, targetReached, boatFlags); - public void TaskBoatMission(int _pedDriver, int _vehicle, int _targetVehicle, int _targetPed, float _x, float _y, float _z, int _mission, float _maxSpeed, int _drivingStyle, float _targetReached, int _boatFlags) + public void TaskBoatMission(uint _pedDriver, uint _vehicle, uint _targetVehicle, uint _targetPed, float _x, float _y, float _z, int _mission, float _maxSpeed, int _drivingStyle, float _targetReached, int _boatFlags) { unsafe { - if (fn__taskBoatMission == null) fn__taskBoatMission = (delegate* unmanaged[Cdecl]) funcTable[0x15C86013127CE63FUL]; + if (fn__taskBoatMission == null) fn__taskBoatMission = (delegate* unmanaged[Cdecl]) funcTable[0x15C86013127CE63FUL]; var success = false; fn__taskBoatMission(&success, _pedDriver, _vehicle, _targetVehicle, _targetPed, _x, _y, _z, _mission, _maxSpeed, _drivingStyle, _targetReached, _boatFlags); if (!success) throw new Exception("Native execution failed"); } } - public void TaskDriveBy(IPlayer driverPed, int targetPed, int targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern) => TaskDriveBy(driverPed.ScriptId, targetPed, targetVehicle, targetX, targetY, targetZ, distanceToShoot, pedAccuracy, pushUnderneathDrivingTaskIfDriving, firingPattern); - public void TaskDriveBy(int driverPed, IPlayer targetPed, int targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern) => TaskDriveBy(driverPed, targetPed.ScriptId, targetVehicle, targetX, targetY, targetZ, distanceToShoot, pedAccuracy, pushUnderneathDrivingTaskIfDriving, firingPattern); - public void TaskDriveBy(IPlayer driverPed, IPlayer targetPed, int targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern) => TaskDriveBy(driverPed.ScriptId, targetPed.ScriptId, targetVehicle, targetX, targetY, targetZ, distanceToShoot, pedAccuracy, pushUnderneathDrivingTaskIfDriving, firingPattern); - public void TaskDriveBy(int driverPed, int targetPed, IVehicle targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern) => TaskDriveBy(driverPed, targetPed, targetVehicle.ScriptId, targetX, targetY, targetZ, distanceToShoot, pedAccuracy, pushUnderneathDrivingTaskIfDriving, firingPattern); - public void TaskDriveBy(IPlayer driverPed, int targetPed, IVehicle targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern) => TaskDriveBy(driverPed.ScriptId, targetPed, targetVehicle.ScriptId, targetX, targetY, targetZ, distanceToShoot, pedAccuracy, pushUnderneathDrivingTaskIfDriving, firingPattern); - public void TaskDriveBy(int driverPed, IPlayer targetPed, IVehicle targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern) => TaskDriveBy(driverPed, targetPed.ScriptId, targetVehicle.ScriptId, targetX, targetY, targetZ, distanceToShoot, pedAccuracy, pushUnderneathDrivingTaskIfDriving, firingPattern); + public void TaskDriveBy(IPlayer driverPed, uint targetPed, uint targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern) => TaskDriveBy(driverPed.ScriptId, targetPed, targetVehicle, targetX, targetY, targetZ, distanceToShoot, pedAccuracy, pushUnderneathDrivingTaskIfDriving, firingPattern); + public void TaskDriveBy(uint driverPed, IPlayer targetPed, uint targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern) => TaskDriveBy(driverPed, targetPed.ScriptId, targetVehicle, targetX, targetY, targetZ, distanceToShoot, pedAccuracy, pushUnderneathDrivingTaskIfDriving, firingPattern); + public void TaskDriveBy(IPlayer driverPed, IPlayer targetPed, uint targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern) => TaskDriveBy(driverPed.ScriptId, targetPed.ScriptId, targetVehicle, targetX, targetY, targetZ, distanceToShoot, pedAccuracy, pushUnderneathDrivingTaskIfDriving, firingPattern); + public void TaskDriveBy(uint driverPed, uint targetPed, IVehicle targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern) => TaskDriveBy(driverPed, targetPed, targetVehicle.ScriptId, targetX, targetY, targetZ, distanceToShoot, pedAccuracy, pushUnderneathDrivingTaskIfDriving, firingPattern); + public void TaskDriveBy(IPlayer driverPed, uint targetPed, IVehicle targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern) => TaskDriveBy(driverPed.ScriptId, targetPed, targetVehicle.ScriptId, targetX, targetY, targetZ, distanceToShoot, pedAccuracy, pushUnderneathDrivingTaskIfDriving, firingPattern); + public void TaskDriveBy(uint driverPed, IPlayer targetPed, IVehicle targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern) => TaskDriveBy(driverPed, targetPed.ScriptId, targetVehicle.ScriptId, targetX, targetY, targetZ, distanceToShoot, pedAccuracy, pushUnderneathDrivingTaskIfDriving, firingPattern); public void TaskDriveBy(IPlayer driverPed, IPlayer targetPed, IVehicle targetVehicle, float targetX, float targetY, float targetZ, float distanceToShoot, int pedAccuracy, bool pushUnderneathDrivingTaskIfDriving, uint firingPattern) => TaskDriveBy(driverPed.ScriptId, targetPed.ScriptId, targetVehicle.ScriptId, targetX, targetY, targetZ, distanceToShoot, pedAccuracy, pushUnderneathDrivingTaskIfDriving, firingPattern); - public void TaskDriveBy(int _driverPed, int _targetPed, int _targetVehicle, float _targetX, float _targetY, float _targetZ, float _distanceToShoot, int _pedAccuracy, bool _pushUnderneathDrivingTaskIfDriving, uint _firingPattern) + public void TaskDriveBy(uint _driverPed, uint _targetPed, uint _targetVehicle, float _targetX, float _targetY, float _targetZ, float _distanceToShoot, int _pedAccuracy, bool _pushUnderneathDrivingTaskIfDriving, uint _firingPattern) { unsafe { - if (fn__taskDriveBy == null) fn__taskDriveBy = (delegate* unmanaged[Cdecl]) funcTable[0x2F8AF0E82773A171UL]; + if (fn__taskDriveBy == null) fn__taskDriveBy = (delegate* unmanaged[Cdecl]) funcTable[0x2F8AF0E82773A171UL]; var success = false; fn__taskDriveBy(&success, _driverPed, _targetPed, _targetVehicle, _targetX, _targetY, _targetZ, _distanceToShoot, _pedAccuracy, (byte) (_pushUnderneathDrivingTaskIfDriving ? 1 : 0), _firingPattern); if (!success) throw new Exception("Native execution failed"); } } - public void SetDrivebyTaskTarget(IPlayer shootingPed, int targetPed, int targetVehicle, float x, float y, float z) => SetDrivebyTaskTarget(shootingPed.ScriptId, targetPed, targetVehicle, x, y, z); - public void SetDrivebyTaskTarget(int shootingPed, IPlayer targetPed, int targetVehicle, float x, float y, float z) => SetDrivebyTaskTarget(shootingPed, targetPed.ScriptId, targetVehicle, x, y, z); - public void SetDrivebyTaskTarget(IPlayer shootingPed, IPlayer targetPed, int targetVehicle, float x, float y, float z) => SetDrivebyTaskTarget(shootingPed.ScriptId, targetPed.ScriptId, targetVehicle, x, y, z); - public void SetDrivebyTaskTarget(int shootingPed, int targetPed, IVehicle targetVehicle, float x, float y, float z) => SetDrivebyTaskTarget(shootingPed, targetPed, targetVehicle.ScriptId, x, y, z); - public void SetDrivebyTaskTarget(IPlayer shootingPed, int targetPed, IVehicle targetVehicle, float x, float y, float z) => SetDrivebyTaskTarget(shootingPed.ScriptId, targetPed, targetVehicle.ScriptId, x, y, z); - public void SetDrivebyTaskTarget(int shootingPed, IPlayer targetPed, IVehicle targetVehicle, float x, float y, float z) => SetDrivebyTaskTarget(shootingPed, targetPed.ScriptId, targetVehicle.ScriptId, x, y, z); + public void SetDrivebyTaskTarget(IPlayer shootingPed, uint targetPed, uint targetVehicle, float x, float y, float z) => SetDrivebyTaskTarget(shootingPed.ScriptId, targetPed, targetVehicle, x, y, z); + public void SetDrivebyTaskTarget(uint shootingPed, IPlayer targetPed, uint targetVehicle, float x, float y, float z) => SetDrivebyTaskTarget(shootingPed, targetPed.ScriptId, targetVehicle, x, y, z); + public void SetDrivebyTaskTarget(IPlayer shootingPed, IPlayer targetPed, uint targetVehicle, float x, float y, float z) => SetDrivebyTaskTarget(shootingPed.ScriptId, targetPed.ScriptId, targetVehicle, x, y, z); + public void SetDrivebyTaskTarget(uint shootingPed, uint targetPed, IVehicle targetVehicle, float x, float y, float z) => SetDrivebyTaskTarget(shootingPed, targetPed, targetVehicle.ScriptId, x, y, z); + public void SetDrivebyTaskTarget(IPlayer shootingPed, uint targetPed, IVehicle targetVehicle, float x, float y, float z) => SetDrivebyTaskTarget(shootingPed.ScriptId, targetPed, targetVehicle.ScriptId, x, y, z); + public void SetDrivebyTaskTarget(uint shootingPed, IPlayer targetPed, IVehicle targetVehicle, float x, float y, float z) => SetDrivebyTaskTarget(shootingPed, targetPed.ScriptId, targetVehicle.ScriptId, x, y, z); public void SetDrivebyTaskTarget(IPlayer shootingPed, IPlayer targetPed, IVehicle targetVehicle, float x, float y, float z) => SetDrivebyTaskTarget(shootingPed.ScriptId, targetPed.ScriptId, targetVehicle.ScriptId, x, y, z); - public void SetDrivebyTaskTarget(int _shootingPed, int _targetPed, int _targetVehicle, float _x, float _y, float _z) + public void SetDrivebyTaskTarget(uint _shootingPed, uint _targetPed, uint _targetVehicle, float _x, float _y, float _z) { unsafe { - if (fn__setDrivebyTaskTarget == null) fn__setDrivebyTaskTarget = (delegate* unmanaged[Cdecl]) funcTable[0xE5B302114D8162EEUL]; + if (fn__setDrivebyTaskTarget == null) fn__setDrivebyTaskTarget = (delegate* unmanaged[Cdecl]) funcTable[0xE5B302114D8162EEUL]; var success = false; fn__setDrivebyTaskTarget(&success, _shootingPed, _targetPed, _targetVehicle, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); @@ -93739,10 +93726,10 @@ public void SetDrivebyTaskTarget(int _shootingPed, int _targetPed, int _targetVe } public void ClearDrivebyTaskUnderneathDrivingTask(IPlayer ped) => ClearDrivebyTaskUnderneathDrivingTask(ped.ScriptId); - public void ClearDrivebyTaskUnderneathDrivingTask(int _ped) + public void ClearDrivebyTaskUnderneathDrivingTask(uint _ped) { unsafe { - if (fn__clearDrivebyTaskUnderneathDrivingTask == null) fn__clearDrivebyTaskUnderneathDrivingTask = (delegate* unmanaged[Cdecl]) funcTable[0xC35B5CDB2824CF69UL]; + if (fn__clearDrivebyTaskUnderneathDrivingTask == null) fn__clearDrivebyTaskUnderneathDrivingTask = (delegate* unmanaged[Cdecl]) funcTable[0xC35B5CDB2824CF69UL]; var success = false; fn__clearDrivebyTaskUnderneathDrivingTask(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -93750,10 +93737,10 @@ public void ClearDrivebyTaskUnderneathDrivingTask(int _ped) } public bool IsDrivebyTaskUnderneathDrivingTask(IPlayer ped) => IsDrivebyTaskUnderneathDrivingTask(ped.ScriptId); - public bool IsDrivebyTaskUnderneathDrivingTask(int _ped) + public bool IsDrivebyTaskUnderneathDrivingTask(uint _ped) { unsafe { - if (fn__isDrivebyTaskUnderneathDrivingTask == null) fn__isDrivebyTaskUnderneathDrivingTask = (delegate* unmanaged[Cdecl]) funcTable[0x8785E6E40C7A8818UL]; + if (fn__isDrivebyTaskUnderneathDrivingTask == null) fn__isDrivebyTaskUnderneathDrivingTask = (delegate* unmanaged[Cdecl]) funcTable[0x8785E6E40C7A8818UL]; var success = false; var result = fn__isDrivebyTaskUnderneathDrivingTask(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -93762,10 +93749,10 @@ public bool IsDrivebyTaskUnderneathDrivingTask(int _ped) } public bool ControlMountedWeapon(IPlayer ped) => ControlMountedWeapon(ped.ScriptId); - public bool ControlMountedWeapon(int _ped) + public bool ControlMountedWeapon(uint _ped) { unsafe { - if (fn__controlMountedWeapon == null) fn__controlMountedWeapon = (delegate* unmanaged[Cdecl]) funcTable[0xDCFE42068FE0135AUL]; + if (fn__controlMountedWeapon == null) fn__controlMountedWeapon = (delegate* unmanaged[Cdecl]) funcTable[0xDCFE42068FE0135AUL]; var success = false; var result = fn__controlMountedWeapon(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -93773,17 +93760,17 @@ public bool ControlMountedWeapon(int _ped) } } - public void SetMountedWeaponTarget(IPlayer shootingPed, int targetPed, int targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck) => SetMountedWeaponTarget(shootingPed.ScriptId, targetPed, targetVehicle, x, y, z, taskMode, ignoreTargetVehDeadCheck); - public void SetMountedWeaponTarget(int shootingPed, IPlayer targetPed, int targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck) => SetMountedWeaponTarget(shootingPed, targetPed.ScriptId, targetVehicle, x, y, z, taskMode, ignoreTargetVehDeadCheck); - public void SetMountedWeaponTarget(IPlayer shootingPed, IPlayer targetPed, int targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck) => SetMountedWeaponTarget(shootingPed.ScriptId, targetPed.ScriptId, targetVehicle, x, y, z, taskMode, ignoreTargetVehDeadCheck); - public void SetMountedWeaponTarget(int shootingPed, int targetPed, IVehicle targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck) => SetMountedWeaponTarget(shootingPed, targetPed, targetVehicle.ScriptId, x, y, z, taskMode, ignoreTargetVehDeadCheck); - public void SetMountedWeaponTarget(IPlayer shootingPed, int targetPed, IVehicle targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck) => SetMountedWeaponTarget(shootingPed.ScriptId, targetPed, targetVehicle.ScriptId, x, y, z, taskMode, ignoreTargetVehDeadCheck); - public void SetMountedWeaponTarget(int shootingPed, IPlayer targetPed, IVehicle targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck) => SetMountedWeaponTarget(shootingPed, targetPed.ScriptId, targetVehicle.ScriptId, x, y, z, taskMode, ignoreTargetVehDeadCheck); + public void SetMountedWeaponTarget(IPlayer shootingPed, uint targetPed, uint targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck) => SetMountedWeaponTarget(shootingPed.ScriptId, targetPed, targetVehicle, x, y, z, taskMode, ignoreTargetVehDeadCheck); + public void SetMountedWeaponTarget(uint shootingPed, IPlayer targetPed, uint targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck) => SetMountedWeaponTarget(shootingPed, targetPed.ScriptId, targetVehicle, x, y, z, taskMode, ignoreTargetVehDeadCheck); + public void SetMountedWeaponTarget(IPlayer shootingPed, IPlayer targetPed, uint targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck) => SetMountedWeaponTarget(shootingPed.ScriptId, targetPed.ScriptId, targetVehicle, x, y, z, taskMode, ignoreTargetVehDeadCheck); + public void SetMountedWeaponTarget(uint shootingPed, uint targetPed, IVehicle targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck) => SetMountedWeaponTarget(shootingPed, targetPed, targetVehicle.ScriptId, x, y, z, taskMode, ignoreTargetVehDeadCheck); + public void SetMountedWeaponTarget(IPlayer shootingPed, uint targetPed, IVehicle targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck) => SetMountedWeaponTarget(shootingPed.ScriptId, targetPed, targetVehicle.ScriptId, x, y, z, taskMode, ignoreTargetVehDeadCheck); + public void SetMountedWeaponTarget(uint shootingPed, IPlayer targetPed, IVehicle targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck) => SetMountedWeaponTarget(shootingPed, targetPed.ScriptId, targetVehicle.ScriptId, x, y, z, taskMode, ignoreTargetVehDeadCheck); public void SetMountedWeaponTarget(IPlayer shootingPed, IPlayer targetPed, IVehicle targetVehicle, float x, float y, float z, int taskMode, bool ignoreTargetVehDeadCheck) => SetMountedWeaponTarget(shootingPed.ScriptId, targetPed.ScriptId, targetVehicle.ScriptId, x, y, z, taskMode, ignoreTargetVehDeadCheck); - public void SetMountedWeaponTarget(int _shootingPed, int _targetPed, int _targetVehicle, float _x, float _y, float _z, int _taskMode, bool _ignoreTargetVehDeadCheck) + public void SetMountedWeaponTarget(uint _shootingPed, uint _targetPed, uint _targetVehicle, float _x, float _y, float _z, int _taskMode, bool _ignoreTargetVehDeadCheck) { unsafe { - if (fn__setMountedWeaponTarget == null) fn__setMountedWeaponTarget = (delegate* unmanaged[Cdecl]) funcTable[0xCCD892192C6D2BB9UL]; + if (fn__setMountedWeaponTarget == null) fn__setMountedWeaponTarget = (delegate* unmanaged[Cdecl]) funcTable[0xCCD892192C6D2BB9UL]; var success = false; fn__setMountedWeaponTarget(&success, _shootingPed, _targetPed, _targetVehicle, _x, _y, _z, _taskMode, (byte) (_ignoreTargetVehDeadCheck ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -93791,10 +93778,10 @@ public void SetMountedWeaponTarget(int _shootingPed, int _targetPed, int _target } public bool IsMountedWeaponTaskUnderneathDrivingTask(IPlayer ped) => IsMountedWeaponTaskUnderneathDrivingTask(ped.ScriptId); - public bool IsMountedWeaponTaskUnderneathDrivingTask(int _ped) + public bool IsMountedWeaponTaskUnderneathDrivingTask(uint _ped) { unsafe { - if (fn__isMountedWeaponTaskUnderneathDrivingTask == null) fn__isMountedWeaponTaskUnderneathDrivingTask = (delegate* unmanaged[Cdecl]) funcTable[0xA320EF046186FA3BUL]; + if (fn__isMountedWeaponTaskUnderneathDrivingTask == null) fn__isMountedWeaponTaskUnderneathDrivingTask = (delegate* unmanaged[Cdecl]) funcTable[0xA320EF046186FA3BUL]; var success = false; var result = fn__isMountedWeaponTaskUnderneathDrivingTask(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -93803,10 +93790,10 @@ public bool IsMountedWeaponTaskUnderneathDrivingTask(int _ped) } public void TaskUseMobilePhone(IPlayer ped, bool usePhone, int desiredPhoneMode) => TaskUseMobilePhone(ped.ScriptId, usePhone, desiredPhoneMode); - public void TaskUseMobilePhone(int _ped, bool _usePhone, int _desiredPhoneMode) + public void TaskUseMobilePhone(uint _ped, bool _usePhone, int _desiredPhoneMode) { unsafe { - if (fn__taskUseMobilePhone == null) fn__taskUseMobilePhone = (delegate* unmanaged[Cdecl]) funcTable[0xBD2A8EC3AF4DE7DBUL]; + if (fn__taskUseMobilePhone == null) fn__taskUseMobilePhone = (delegate* unmanaged[Cdecl]) funcTable[0xBD2A8EC3AF4DE7DBUL]; var success = false; fn__taskUseMobilePhone(&success, _ped, (byte) (_usePhone ? 1 : 0), _desiredPhoneMode); if (!success) throw new Exception("Native execution failed"); @@ -93814,49 +93801,49 @@ public void TaskUseMobilePhone(int _ped, bool _usePhone, int _desiredPhoneMode) } public void TaskUseMobilePhoneTimed(IPlayer ped, int duration) => TaskUseMobilePhoneTimed(ped.ScriptId, duration); - public void TaskUseMobilePhoneTimed(int _ped, int _duration) + public void TaskUseMobilePhoneTimed(uint _ped, int _duration) { unsafe { - if (fn__taskUseMobilePhoneTimed == null) fn__taskUseMobilePhoneTimed = (delegate* unmanaged[Cdecl]) funcTable[0x5EE02954A14C69DBUL]; + if (fn__taskUseMobilePhoneTimed == null) fn__taskUseMobilePhoneTimed = (delegate* unmanaged[Cdecl]) funcTable[0x5EE02954A14C69DBUL]; var success = false; fn__taskUseMobilePhoneTimed(&success, _ped, _duration); if (!success) throw new Exception("Native execution failed"); } } - public void TaskChatToPed(IPlayer ped, int target, int flags, float goToLocationX, float goToLocationY, float goToLocationZ, float headingDegs, float idleTime) => TaskChatToPed(ped.ScriptId, target, flags, goToLocationX, goToLocationY, goToLocationZ, headingDegs, idleTime); - public void TaskChatToPed(int ped, IPlayer target, int flags, float goToLocationX, float goToLocationY, float goToLocationZ, float headingDegs, float idleTime) => TaskChatToPed(ped, target.ScriptId, flags, goToLocationX, goToLocationY, goToLocationZ, headingDegs, idleTime); + public void TaskChatToPed(IPlayer ped, uint target, int flags, float goToLocationX, float goToLocationY, float goToLocationZ, float headingDegs, float idleTime) => TaskChatToPed(ped.ScriptId, target, flags, goToLocationX, goToLocationY, goToLocationZ, headingDegs, idleTime); + public void TaskChatToPed(uint ped, IPlayer target, int flags, float goToLocationX, float goToLocationY, float goToLocationZ, float headingDegs, float idleTime) => TaskChatToPed(ped, target.ScriptId, flags, goToLocationX, goToLocationY, goToLocationZ, headingDegs, idleTime); public void TaskChatToPed(IPlayer ped, IPlayer target, int flags, float goToLocationX, float goToLocationY, float goToLocationZ, float headingDegs, float idleTime) => TaskChatToPed(ped.ScriptId, target.ScriptId, flags, goToLocationX, goToLocationY, goToLocationZ, headingDegs, idleTime); - public void TaskChatToPed(int _ped, int _target, int _flags, float _goToLocationX, float _goToLocationY, float _goToLocationZ, float _headingDegs, float _idleTime) + public void TaskChatToPed(uint _ped, uint _target, int _flags, float _goToLocationX, float _goToLocationY, float _goToLocationZ, float _headingDegs, float _idleTime) { unsafe { - if (fn__taskChatToPed == null) fn__taskChatToPed = (delegate* unmanaged[Cdecl]) funcTable[0x8C338E0263E4FD19UL]; + if (fn__taskChatToPed == null) fn__taskChatToPed = (delegate* unmanaged[Cdecl]) funcTable[0x8C338E0263E4FD19UL]; var success = false; fn__taskChatToPed(&success, _ped, _target, _flags, _goToLocationX, _goToLocationY, _goToLocationZ, _headingDegs, _idleTime); if (!success) throw new Exception("Native execution failed"); } } - public void TaskWarpPedIntoVehicle(IPlayer ped, int vehicle, int seat) => TaskWarpPedIntoVehicle(ped.ScriptId, vehicle, seat); - public void TaskWarpPedIntoVehicle(int ped, IVehicle vehicle, int seat) => TaskWarpPedIntoVehicle(ped, vehicle.ScriptId, seat); + public void TaskWarpPedIntoVehicle(IPlayer ped, uint vehicle, int seat) => TaskWarpPedIntoVehicle(ped.ScriptId, vehicle, seat); + public void TaskWarpPedIntoVehicle(uint ped, IVehicle vehicle, int seat) => TaskWarpPedIntoVehicle(ped, vehicle.ScriptId, seat); public void TaskWarpPedIntoVehicle(IPlayer ped, IVehicle vehicle, int seat) => TaskWarpPedIntoVehicle(ped.ScriptId, vehicle.ScriptId, seat); - public void TaskWarpPedIntoVehicle(int _ped, int _vehicle, int _seat) + public void TaskWarpPedIntoVehicle(uint _ped, uint _vehicle, int _seat) { unsafe { - if (fn__taskWarpPedIntoVehicle == null) fn__taskWarpPedIntoVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x9A7D091411C5F684UL]; + if (fn__taskWarpPedIntoVehicle == null) fn__taskWarpPedIntoVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x9A7D091411C5F684UL]; var success = false; fn__taskWarpPedIntoVehicle(&success, _ped, _vehicle, _seat); if (!success) throw new Exception("Native execution failed"); } } - public void TaskShootAtEntity(IEntity entity, int target, int duration, uint firingPattern) => TaskShootAtEntity(entity.ScriptId, target, duration, firingPattern); - public void TaskShootAtEntity(int entity, IEntity target, int duration, uint firingPattern) => TaskShootAtEntity(entity, target.ScriptId, duration, firingPattern); + public void TaskShootAtEntity(IEntity entity, uint target, int duration, uint firingPattern) => TaskShootAtEntity(entity.ScriptId, target, duration, firingPattern); + public void TaskShootAtEntity(uint entity, IEntity target, int duration, uint firingPattern) => TaskShootAtEntity(entity, target.ScriptId, duration, firingPattern); public void TaskShootAtEntity(IEntity entity, IEntity target, int duration, uint firingPattern) => TaskShootAtEntity(entity.ScriptId, target.ScriptId, duration, firingPattern); - public void TaskShootAtEntity(int _entity, int _target, int _duration, uint _firingPattern) + public void TaskShootAtEntity(uint _entity, uint _target, int _duration, uint _firingPattern) { unsafe { - if (fn__taskShootAtEntity == null) fn__taskShootAtEntity = (delegate* unmanaged[Cdecl]) funcTable[0x08DA95E8298AE772UL]; + if (fn__taskShootAtEntity == null) fn__taskShootAtEntity = (delegate* unmanaged[Cdecl]) funcTable[0x08DA95E8298AE772UL]; var success = false; fn__taskShootAtEntity(&success, _entity, _target, _duration, _firingPattern); if (!success) throw new Exception("Native execution failed"); @@ -93864,10 +93851,10 @@ public void TaskShootAtEntity(int _entity, int _target, int _duration, uint _fir } public void TaskClimb(IPlayer ped, bool usePlayerLaunchForce) => TaskClimb(ped.ScriptId, usePlayerLaunchForce); - public void TaskClimb(int _ped, bool _usePlayerLaunchForce) + public void TaskClimb(uint _ped, bool _usePlayerLaunchForce) { unsafe { - if (fn__taskClimb == null) fn__taskClimb = (delegate* unmanaged[Cdecl]) funcTable[0x89D9FCC2435112F1UL]; + if (fn__taskClimb == null) fn__taskClimb = (delegate* unmanaged[Cdecl]) funcTable[0x89D9FCC2435112F1UL]; var success = false; fn__taskClimb(&success, _ped, (byte) (_usePlayerLaunchForce ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -93875,10 +93862,10 @@ public void TaskClimb(int _ped, bool _usePlayerLaunchForce) } public void TaskClimbLadder(IPlayer ped, bool fast) => TaskClimbLadder(ped.ScriptId, fast); - public void TaskClimbLadder(int _ped, bool _fast) + public void TaskClimbLadder(uint _ped, bool _fast) { unsafe { - if (fn__taskClimbLadder == null) fn__taskClimbLadder = (delegate* unmanaged[Cdecl]) funcTable[0xB6C987F9285A3814UL]; + if (fn__taskClimbLadder == null) fn__taskClimbLadder = (delegate* unmanaged[Cdecl]) funcTable[0xB6C987F9285A3814UL]; var success = false; fn__taskClimbLadder(&success, _ped, (byte) (_fast ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -93886,23 +93873,23 @@ public void TaskClimbLadder(int _ped, bool _fast) } public void TaskRappelDownWallUsingClipsetOverride(IPlayer ped, float x1, float y1, float z1, float x2, float y2, float z2, float minZ, int ropeHandle, string clipSet, int p10) => TaskRappelDownWallUsingClipsetOverride(ped.ScriptId, x1, y1, z1, x2, y2, z2, minZ, ropeHandle, clipSet, p10); - public void TaskRappelDownWallUsingClipsetOverride(int _ped, float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, float _minZ, int _ropeHandle, string _clipSet, int _p10) + public void TaskRappelDownWallUsingClipsetOverride(uint _ped, float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, float _minZ, int _ropeHandle, string _clipSet, int _p10) { unsafe { - if (fn__taskRappelDownWallUsingClipsetOverride == null) fn__taskRappelDownWallUsingClipsetOverride = (delegate* unmanaged[Cdecl]) funcTable[0xEAF66ACDDC794793UL]; + if (fn__taskRappelDownWallUsingClipsetOverride == null) fn__taskRappelDownWallUsingClipsetOverride = (delegate* unmanaged[Cdecl]) funcTable[0xEAF66ACDDC794793UL]; var success = false; - var ptr_clipSet = _clipSet == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_clipSet); + var ptr_clipSet = MemoryUtils.StringToHGlobalUtf8(_clipSet); fn__taskRappelDownWallUsingClipsetOverride(&success, _ped, _x1, _y1, _z1, _x2, _y2, _z2, _minZ, _ropeHandle, ptr_clipSet, _p10); - if (ptr_clipSet != IntPtr.Zero) Marshal.FreeHGlobal(ptr_clipSet); + Marshal.FreeHGlobal(ptr_clipSet); if (!success) throw new Exception("Native execution failed"); } } public int GetTaskRappelDownWallState(IPlayer ped) => GetTaskRappelDownWallState(ped.ScriptId); - public int GetTaskRappelDownWallState(int _ped) + public int GetTaskRappelDownWallState(uint _ped) { unsafe { - if (fn__getTaskRappelDownWallState == null) fn__getTaskRappelDownWallState = (delegate* unmanaged[Cdecl]) funcTable[0x9D252648778160DFUL]; + if (fn__getTaskRappelDownWallState == null) fn__getTaskRappelDownWallState = (delegate* unmanaged[Cdecl]) funcTable[0x9D252648778160DFUL]; var success = false; var result = fn__getTaskRappelDownWallState(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -93911,10 +93898,10 @@ public int GetTaskRappelDownWallState(int _ped) } public void ClearPedTasksImmediately(IPlayer ped) => ClearPedTasksImmediately(ped.ScriptId); - public void ClearPedTasksImmediately(int _ped) + public void ClearPedTasksImmediately(uint _ped) { unsafe { - if (fn__clearPedTasksImmediately == null) fn__clearPedTasksImmediately = (delegate* unmanaged[Cdecl]) funcTable[0xAAA34F8A7CB32098UL]; + if (fn__clearPedTasksImmediately == null) fn__clearPedTasksImmediately = (delegate* unmanaged[Cdecl]) funcTable[0xAAA34F8A7CB32098UL]; var success = false; fn__clearPedTasksImmediately(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -93922,10 +93909,10 @@ public void ClearPedTasksImmediately(int _ped) } public void TaskPerformSequenceFromProgress(IPlayer ped, int taskIndex, int progress1, int progress2) => TaskPerformSequenceFromProgress(ped.ScriptId, taskIndex, progress1, progress2); - public void TaskPerformSequenceFromProgress(int _ped, int _taskIndex, int _progress1, int _progress2) + public void TaskPerformSequenceFromProgress(uint _ped, int _taskIndex, int _progress1, int _progress2) { unsafe { - if (fn__taskPerformSequenceFromProgress == null) fn__taskPerformSequenceFromProgress = (delegate* unmanaged[Cdecl]) funcTable[0x89221B16730234F0UL]; + if (fn__taskPerformSequenceFromProgress == null) fn__taskPerformSequenceFromProgress = (delegate* unmanaged[Cdecl]) funcTable[0x89221B16730234F0UL]; var success = false; fn__taskPerformSequenceFromProgress(&success, _ped, _taskIndex, _progress1, _progress2); if (!success) throw new Exception("Native execution failed"); @@ -93943,10 +93930,10 @@ public void SetNextDesiredMoveState(float _nextMoveState) } public void SetPedDesiredMoveBlendRatio(IPlayer ped, float newMoveBlendRatio) => SetPedDesiredMoveBlendRatio(ped.ScriptId, newMoveBlendRatio); - public void SetPedDesiredMoveBlendRatio(int _ped, float _newMoveBlendRatio) + public void SetPedDesiredMoveBlendRatio(uint _ped, float _newMoveBlendRatio) { unsafe { - if (fn__setPedDesiredMoveBlendRatio == null) fn__setPedDesiredMoveBlendRatio = (delegate* unmanaged[Cdecl]) funcTable[0x1E982AC8716912C5UL]; + if (fn__setPedDesiredMoveBlendRatio == null) fn__setPedDesiredMoveBlendRatio = (delegate* unmanaged[Cdecl]) funcTable[0x1E982AC8716912C5UL]; var success = false; fn__setPedDesiredMoveBlendRatio(&success, _ped, _newMoveBlendRatio); if (!success) throw new Exception("Native execution failed"); @@ -93954,10 +93941,10 @@ public void SetPedDesiredMoveBlendRatio(int _ped, float _newMoveBlendRatio) } public float GetPedDesiredMoveBlendRatio(IPlayer ped) => GetPedDesiredMoveBlendRatio(ped.ScriptId); - public float GetPedDesiredMoveBlendRatio(int _ped) + public float GetPedDesiredMoveBlendRatio(uint _ped) { unsafe { - if (fn__getPedDesiredMoveBlendRatio == null) fn__getPedDesiredMoveBlendRatio = (delegate* unmanaged[Cdecl]) funcTable[0x8517D4A6CA8513EDUL]; + if (fn__getPedDesiredMoveBlendRatio == null) fn__getPedDesiredMoveBlendRatio = (delegate* unmanaged[Cdecl]) funcTable[0x8517D4A6CA8513EDUL]; var success = false; var result = fn__getPedDesiredMoveBlendRatio(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -93965,13 +93952,13 @@ public float GetPedDesiredMoveBlendRatio(int _ped) } } - public void TaskGotoEntityAiming(IPlayer ped, int target, float distanceToStopAt, float StartAimingDist) => TaskGotoEntityAiming(ped.ScriptId, target, distanceToStopAt, StartAimingDist); - public void TaskGotoEntityAiming(int ped, IEntity target, float distanceToStopAt, float StartAimingDist) => TaskGotoEntityAiming(ped, target.ScriptId, distanceToStopAt, StartAimingDist); + public void TaskGotoEntityAiming(IPlayer ped, uint target, float distanceToStopAt, float StartAimingDist) => TaskGotoEntityAiming(ped.ScriptId, target, distanceToStopAt, StartAimingDist); + public void TaskGotoEntityAiming(uint ped, IEntity target, float distanceToStopAt, float StartAimingDist) => TaskGotoEntityAiming(ped, target.ScriptId, distanceToStopAt, StartAimingDist); public void TaskGotoEntityAiming(IPlayer ped, IEntity target, float distanceToStopAt, float StartAimingDist) => TaskGotoEntityAiming(ped.ScriptId, target.ScriptId, distanceToStopAt, StartAimingDist); - public void TaskGotoEntityAiming(int _ped, int _target, float _distanceToStopAt, float _StartAimingDist) + public void TaskGotoEntityAiming(uint _ped, uint _target, float _distanceToStopAt, float _StartAimingDist) { unsafe { - if (fn__taskGotoEntityAiming == null) fn__taskGotoEntityAiming = (delegate* unmanaged[Cdecl]) funcTable[0xA9DA48FAB8A76C12UL]; + if (fn__taskGotoEntityAiming == null) fn__taskGotoEntityAiming = (delegate* unmanaged[Cdecl]) funcTable[0xA9DA48FAB8A76C12UL]; var success = false; fn__taskGotoEntityAiming(&success, _ped, _target, _distanceToStopAt, _StartAimingDist); if (!success) throw new Exception("Native execution failed"); @@ -93979,10 +93966,10 @@ public void TaskGotoEntityAiming(int _ped, int _target, float _distanceToStopAt, } public void TaskSetDecisionMaker(IPlayer ped, uint decisionMakerId) => TaskSetDecisionMaker(ped.ScriptId, decisionMakerId); - public void TaskSetDecisionMaker(int _ped, uint _decisionMakerId) + public void TaskSetDecisionMaker(uint _ped, uint _decisionMakerId) { unsafe { - if (fn__taskSetDecisionMaker == null) fn__taskSetDecisionMaker = (delegate* unmanaged[Cdecl]) funcTable[0xEB8517DDA73720DAUL]; + if (fn__taskSetDecisionMaker == null) fn__taskSetDecisionMaker = (delegate* unmanaged[Cdecl]) funcTable[0xEB8517DDA73720DAUL]; var success = false; fn__taskSetDecisionMaker(&success, _ped, _decisionMakerId); if (!success) throw new Exception("Native execution failed"); @@ -93990,10 +93977,10 @@ public void TaskSetDecisionMaker(int _ped, uint _decisionMakerId) } public void TaskSetSphereDefensiveArea(IPlayer ped, float x, float y, float z, float radius) => TaskSetSphereDefensiveArea(ped.ScriptId, x, y, z, radius); - public void TaskSetSphereDefensiveArea(int _ped, float _x, float _y, float _z, float _radius) + public void TaskSetSphereDefensiveArea(uint _ped, float _x, float _y, float _z, float _radius) { unsafe { - if (fn__taskSetSphereDefensiveArea == null) fn__taskSetSphereDefensiveArea = (delegate* unmanaged[Cdecl]) funcTable[0x933C06518B52A9A4UL]; + if (fn__taskSetSphereDefensiveArea == null) fn__taskSetSphereDefensiveArea = (delegate* unmanaged[Cdecl]) funcTable[0x933C06518B52A9A4UL]; var success = false; fn__taskSetSphereDefensiveArea(&success, _ped, _x, _y, _z, _radius); if (!success) throw new Exception("Native execution failed"); @@ -94001,10 +93988,10 @@ public void TaskSetSphereDefensiveArea(int _ped, float _x, float _y, float _z, f } public void TaskClearDefensiveArea(IPlayer ped) => TaskClearDefensiveArea(ped.ScriptId); - public void TaskClearDefensiveArea(int _ped) + public void TaskClearDefensiveArea(uint _ped) { unsafe { - if (fn__taskClearDefensiveArea == null) fn__taskClearDefensiveArea = (delegate* unmanaged[Cdecl]) funcTable[0x95A6C46A31D1917DUL]; + if (fn__taskClearDefensiveArea == null) fn__taskClearDefensiveArea = (delegate* unmanaged[Cdecl]) funcTable[0x95A6C46A31D1917DUL]; var success = false; fn__taskClearDefensiveArea(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -94012,10 +93999,10 @@ public void TaskClearDefensiveArea(int _ped) } public void TaskPedSlideToCoord(IPlayer ped, float x, float y, float z, float heading, float speed) => TaskPedSlideToCoord(ped.ScriptId, x, y, z, heading, speed); - public void TaskPedSlideToCoord(int _ped, float _x, float _y, float _z, float _heading, float _speed) + public void TaskPedSlideToCoord(uint _ped, float _x, float _y, float _z, float _heading, float _speed) { unsafe { - if (fn__taskPedSlideToCoord == null) fn__taskPedSlideToCoord = (delegate* unmanaged[Cdecl]) funcTable[0xD04FE6765D990A06UL]; + if (fn__taskPedSlideToCoord == null) fn__taskPedSlideToCoord = (delegate* unmanaged[Cdecl]) funcTable[0xD04FE6765D990A06UL]; var success = false; fn__taskPedSlideToCoord(&success, _ped, _x, _y, _z, _heading, _speed); if (!success) throw new Exception("Native execution failed"); @@ -94023,20 +94010,20 @@ public void TaskPedSlideToCoord(int _ped, float _x, float _y, float _z, float _h } public void TaskPedSlideToCoordHdgRate(IPlayer ped, float x, float y, float z, float heading, float speed, float headingChangeRate) => TaskPedSlideToCoordHdgRate(ped.ScriptId, x, y, z, heading, speed, headingChangeRate); - public void TaskPedSlideToCoordHdgRate(int _ped, float _x, float _y, float _z, float _heading, float _speed, float _headingChangeRate) + public void TaskPedSlideToCoordHdgRate(uint _ped, float _x, float _y, float _z, float _heading, float _speed, float _headingChangeRate) { unsafe { - if (fn__taskPedSlideToCoordHdgRate == null) fn__taskPedSlideToCoordHdgRate = (delegate* unmanaged[Cdecl]) funcTable[0x5A4A6A6D3DC64F52UL]; + if (fn__taskPedSlideToCoordHdgRate == null) fn__taskPedSlideToCoordHdgRate = (delegate* unmanaged[Cdecl]) funcTable[0x5A4A6A6D3DC64F52UL]; var success = false; fn__taskPedSlideToCoordHdgRate(&success, _ped, _x, _y, _z, _heading, _speed, _headingChangeRate); if (!success) throw new Exception("Native execution failed"); } } - public int AddCoverPoint(float _x, float _y, float _z, float _direction, int _usage, int _height, int _arc, bool _isPriority) + public uint AddCoverPoint(float _x, float _y, float _z, float _direction, int _usage, int _height, int _arc, bool _isPriority) { unsafe { - if (fn__addCoverPoint == null) fn__addCoverPoint = (delegate* unmanaged[Cdecl]) funcTable[0xD5C12A75C7B9497FUL]; + if (fn__addCoverPoint == null) fn__addCoverPoint = (delegate* unmanaged[Cdecl]) funcTable[0xD5C12A75C7B9497FUL]; var success = false; var result = fn__addCoverPoint(&success, _x, _y, _z, _direction, _usage, _height, _arc, (byte) (_isPriority ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -94044,10 +94031,10 @@ public int AddCoverPoint(float _x, float _y, float _z, float _direction, int _us } } - public void RemoveCoverPoint(int _coverpoint) + public void RemoveCoverPoint(uint _coverpoint) { unsafe { - if (fn__removeCoverPoint == null) fn__removeCoverPoint = (delegate* unmanaged[Cdecl]) funcTable[0xAE287C923D891715UL]; + if (fn__removeCoverPoint == null) fn__removeCoverPoint = (delegate* unmanaged[Cdecl]) funcTable[0xAE287C923D891715UL]; var success = false; fn__removeCoverPoint(&success, _coverpoint); if (!success) throw new Exception("Native execution failed"); @@ -94065,10 +94052,10 @@ public bool DoesScriptedCoverPointExistAtCoords(float _x, float _y, float _z) } } - public Vector3 GetScriptedCoverPointCoords(int _coverpoint) + public Vector3 GetScriptedCoverPointCoords(uint _coverpoint) { unsafe { - if (fn__getScriptedCoverPointCoords == null) fn__getScriptedCoverPointCoords = (delegate* unmanaged[Cdecl]) funcTable[0x594A1028FC2A3E85UL]; + if (fn__getScriptedCoverPointCoords == null) fn__getScriptedCoverPointCoords = (delegate* unmanaged[Cdecl]) funcTable[0x594A1028FC2A3E85UL]; var success = false; var result = fn__getScriptedCoverPointCoords(&success, _coverpoint); if (!success) throw new Exception("Native execution failed"); @@ -94086,26 +94073,26 @@ public void AddScriptedCoverArea(float _x, float _y, float _z, float _radius) } } - public void TaskCombatPed(IPlayer ped, int targetPed, int combatFlags, int threatResponseFlags) => TaskCombatPed(ped.ScriptId, targetPed, combatFlags, threatResponseFlags); - public void TaskCombatPed(int ped, IPlayer targetPed, int combatFlags, int threatResponseFlags) => TaskCombatPed(ped, targetPed.ScriptId, combatFlags, threatResponseFlags); + public void TaskCombatPed(IPlayer ped, uint targetPed, int combatFlags, int threatResponseFlags) => TaskCombatPed(ped.ScriptId, targetPed, combatFlags, threatResponseFlags); + public void TaskCombatPed(uint ped, IPlayer targetPed, int combatFlags, int threatResponseFlags) => TaskCombatPed(ped, targetPed.ScriptId, combatFlags, threatResponseFlags); public void TaskCombatPed(IPlayer ped, IPlayer targetPed, int combatFlags, int threatResponseFlags) => TaskCombatPed(ped.ScriptId, targetPed.ScriptId, combatFlags, threatResponseFlags); - public void TaskCombatPed(int _ped, int _targetPed, int _combatFlags, int _threatResponseFlags) + public void TaskCombatPed(uint _ped, uint _targetPed, int _combatFlags, int _threatResponseFlags) { unsafe { - if (fn__taskCombatPed == null) fn__taskCombatPed = (delegate* unmanaged[Cdecl]) funcTable[0xF166E48407BAC484UL]; + if (fn__taskCombatPed == null) fn__taskCombatPed = (delegate* unmanaged[Cdecl]) funcTable[0xF166E48407BAC484UL]; var success = false; fn__taskCombatPed(&success, _ped, _targetPed, _combatFlags, _threatResponseFlags); if (!success) throw new Exception("Native execution failed"); } } - public void TaskCombatPedTimed(IPlayer ped, int target, int time, int flags) => TaskCombatPedTimed(ped.ScriptId, target, time, flags); - public void TaskCombatPedTimed(int ped, IPlayer target, int time, int flags) => TaskCombatPedTimed(ped, target.ScriptId, time, flags); + public void TaskCombatPedTimed(IPlayer ped, uint target, int time, int flags) => TaskCombatPedTimed(ped.ScriptId, target, time, flags); + public void TaskCombatPedTimed(uint ped, IPlayer target, int time, int flags) => TaskCombatPedTimed(ped, target.ScriptId, time, flags); public void TaskCombatPedTimed(IPlayer ped, IPlayer target, int time, int flags) => TaskCombatPedTimed(ped.ScriptId, target.ScriptId, time, flags); - public void TaskCombatPedTimed(int _ped, int _target, int _time, int _flags) + public void TaskCombatPedTimed(uint _ped, uint _target, int _time, int _flags) { unsafe { - if (fn__taskCombatPedTimed == null) fn__taskCombatPedTimed = (delegate* unmanaged[Cdecl]) funcTable[0x944F30DCB7096BDEUL]; + if (fn__taskCombatPedTimed == null) fn__taskCombatPedTimed = (delegate* unmanaged[Cdecl]) funcTable[0x944F30DCB7096BDEUL]; var success = false; fn__taskCombatPedTimed(&success, _ped, _target, _time, _flags); if (!success) throw new Exception("Native execution failed"); @@ -94113,34 +94100,34 @@ public void TaskCombatPedTimed(int _ped, int _target, int _time, int _flags) } public void TaskSeekCoverFromPos(IPlayer ped, float x, float y, float z, int duration, bool allowPeekingAndFiring) => TaskSeekCoverFromPos(ped.ScriptId, x, y, z, duration, allowPeekingAndFiring); - public void TaskSeekCoverFromPos(int _ped, float _x, float _y, float _z, int _duration, bool _allowPeekingAndFiring) + public void TaskSeekCoverFromPos(uint _ped, float _x, float _y, float _z, int _duration, bool _allowPeekingAndFiring) { unsafe { - if (fn__taskSeekCoverFromPos == null) fn__taskSeekCoverFromPos = (delegate* unmanaged[Cdecl]) funcTable[0x75AC2B60386D89F2UL]; + if (fn__taskSeekCoverFromPos == null) fn__taskSeekCoverFromPos = (delegate* unmanaged[Cdecl]) funcTable[0x75AC2B60386D89F2UL]; var success = false; fn__taskSeekCoverFromPos(&success, _ped, _x, _y, _z, _duration, (byte) (_allowPeekingAndFiring ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void TaskSeekCoverFromPed(IPlayer ped, int target, int duration, bool allowPeekingAndFiring) => TaskSeekCoverFromPed(ped.ScriptId, target, duration, allowPeekingAndFiring); - public void TaskSeekCoverFromPed(int ped, IPlayer target, int duration, bool allowPeekingAndFiring) => TaskSeekCoverFromPed(ped, target.ScriptId, duration, allowPeekingAndFiring); + public void TaskSeekCoverFromPed(IPlayer ped, uint target, int duration, bool allowPeekingAndFiring) => TaskSeekCoverFromPed(ped.ScriptId, target, duration, allowPeekingAndFiring); + public void TaskSeekCoverFromPed(uint ped, IPlayer target, int duration, bool allowPeekingAndFiring) => TaskSeekCoverFromPed(ped, target.ScriptId, duration, allowPeekingAndFiring); public void TaskSeekCoverFromPed(IPlayer ped, IPlayer target, int duration, bool allowPeekingAndFiring) => TaskSeekCoverFromPed(ped.ScriptId, target.ScriptId, duration, allowPeekingAndFiring); - public void TaskSeekCoverFromPed(int _ped, int _target, int _duration, bool _allowPeekingAndFiring) + public void TaskSeekCoverFromPed(uint _ped, uint _target, int _duration, bool _allowPeekingAndFiring) { unsafe { - if (fn__taskSeekCoverFromPed == null) fn__taskSeekCoverFromPed = (delegate* unmanaged[Cdecl]) funcTable[0x84D32B3BEC531324UL]; + if (fn__taskSeekCoverFromPed == null) fn__taskSeekCoverFromPed = (delegate* unmanaged[Cdecl]) funcTable[0x84D32B3BEC531324UL]; var success = false; fn__taskSeekCoverFromPed(&success, _ped, _target, _duration, (byte) (_allowPeekingAndFiring ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void TaskSeekCoverToCoverPoint(IPlayer ped, int coverpoint, float x, float y, float z, int time, bool allowPeekingAndFiring) => TaskSeekCoverToCoverPoint(ped.ScriptId, coverpoint, x, y, z, time, allowPeekingAndFiring); - public void TaskSeekCoverToCoverPoint(int _ped, int _coverpoint, float _x, float _y, float _z, int _time, bool _allowPeekingAndFiring) + public void TaskSeekCoverToCoverPoint(IPlayer ped, uint coverpoint, float x, float y, float z, int time, bool allowPeekingAndFiring) => TaskSeekCoverToCoverPoint(ped.ScriptId, coverpoint, x, y, z, time, allowPeekingAndFiring); + public void TaskSeekCoverToCoverPoint(uint _ped, uint _coverpoint, float _x, float _y, float _z, int _time, bool _allowPeekingAndFiring) { unsafe { - if (fn__taskSeekCoverToCoverPoint == null) fn__taskSeekCoverToCoverPoint = (delegate* unmanaged[Cdecl]) funcTable[0xD43D95C7A869447FUL]; + if (fn__taskSeekCoverToCoverPoint == null) fn__taskSeekCoverToCoverPoint = (delegate* unmanaged[Cdecl]) funcTable[0xD43D95C7A869447FUL]; var success = false; fn__taskSeekCoverToCoverPoint(&success, _ped, _coverpoint, _x, _y, _z, _time, (byte) (_allowPeekingAndFiring ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -94148,10 +94135,10 @@ public void TaskSeekCoverToCoverPoint(int _ped, int _coverpoint, float _x, float } public void TaskSeekCoverToCoords(IPlayer ped, float x1, float y1, float z1, float x2, float y2, float z2, int timeout, bool shortRoute) => TaskSeekCoverToCoords(ped.ScriptId, x1, y1, z1, x2, y2, z2, timeout, shortRoute); - public void TaskSeekCoverToCoords(int _ped, float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, int _timeout, bool _shortRoute) + public void TaskSeekCoverToCoords(uint _ped, float _x1, float _y1, float _z1, float _x2, float _y2, float _z2, int _timeout, bool _shortRoute) { unsafe { - if (fn__taskSeekCoverToCoords == null) fn__taskSeekCoverToCoords = (delegate* unmanaged[Cdecl]) funcTable[0x39246A6958EF072CUL]; + if (fn__taskSeekCoverToCoords == null) fn__taskSeekCoverToCoords = (delegate* unmanaged[Cdecl]) funcTable[0x39246A6958EF072CUL]; var success = false; fn__taskSeekCoverToCoords(&success, _ped, _x1, _y1, _z1, _x2, _y2, _z2, _timeout, (byte) (_shortRoute ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -94159,10 +94146,10 @@ public void TaskSeekCoverToCoords(int _ped, float _x1, float _y1, float _z1, flo } public void TaskPutPedDirectlyIntoCover(IPlayer ped, float x, float y, float z, int time, bool allowPeekingAndFiring, float blendInDuration, bool forceInitialFacingDirection, bool forceFaceLeft, int identifier, bool doEntry) => TaskPutPedDirectlyIntoCover(ped.ScriptId, x, y, z, time, allowPeekingAndFiring, blendInDuration, forceInitialFacingDirection, forceFaceLeft, identifier, doEntry); - public void TaskPutPedDirectlyIntoCover(int _ped, float _x, float _y, float _z, int _time, bool _allowPeekingAndFiring, float _blendInDuration, bool _forceInitialFacingDirection, bool _forceFaceLeft, int _identifier, bool _doEntry) + public void TaskPutPedDirectlyIntoCover(uint _ped, float _x, float _y, float _z, int _time, bool _allowPeekingAndFiring, float _blendInDuration, bool _forceInitialFacingDirection, bool _forceFaceLeft, int _identifier, bool _doEntry) { unsafe { - if (fn__taskPutPedDirectlyIntoCover == null) fn__taskPutPedDirectlyIntoCover = (delegate* unmanaged[Cdecl]) funcTable[0x4172393E6BE1FECEUL]; + if (fn__taskPutPedDirectlyIntoCover == null) fn__taskPutPedDirectlyIntoCover = (delegate* unmanaged[Cdecl]) funcTable[0x4172393E6BE1FECEUL]; var success = false; fn__taskPutPedDirectlyIntoCover(&success, _ped, _x, _y, _z, _time, (byte) (_allowPeekingAndFiring ? 1 : 0), _blendInDuration, (byte) (_forceInitialFacingDirection ? 1 : 0), (byte) (_forceFaceLeft ? 1 : 0), _identifier, (byte) (_doEntry ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -94170,10 +94157,10 @@ public void TaskPutPedDirectlyIntoCover(int _ped, float _x, float _y, float _z, } public void TaskWarpPedDirectlyIntoCover(IPlayer ped, int time, bool allowPeekingAndFiring, bool forceInitialFacingDirection, bool forceFaceLeft, int identifier) => TaskWarpPedDirectlyIntoCover(ped.ScriptId, time, allowPeekingAndFiring, forceInitialFacingDirection, forceFaceLeft, identifier); - public void TaskWarpPedDirectlyIntoCover(int _ped, int _time, bool _allowPeekingAndFiring, bool _forceInitialFacingDirection, bool _forceFaceLeft, int _identifier) + public void TaskWarpPedDirectlyIntoCover(uint _ped, int _time, bool _allowPeekingAndFiring, bool _forceInitialFacingDirection, bool _forceFaceLeft, int _identifier) { unsafe { - if (fn__taskWarpPedDirectlyIntoCover == null) fn__taskWarpPedDirectlyIntoCover = (delegate* unmanaged[Cdecl]) funcTable[0x6E01E9E8D89F8276UL]; + if (fn__taskWarpPedDirectlyIntoCover == null) fn__taskWarpPedDirectlyIntoCover = (delegate* unmanaged[Cdecl]) funcTable[0x6E01E9E8D89F8276UL]; var success = false; fn__taskWarpPedDirectlyIntoCover(&success, _ped, _time, (byte) (_allowPeekingAndFiring ? 1 : 0), (byte) (_forceInitialFacingDirection ? 1 : 0), (byte) (_forceFaceLeft ? 1 : 0), _identifier); if (!success) throw new Exception("Native execution failed"); @@ -94181,23 +94168,23 @@ public void TaskWarpPedDirectlyIntoCover(int _ped, int _time, bool _allowPeeking } public void TaskExitCover(IPlayer ped, int exitType, float x, float y, float z) => TaskExitCover(ped.ScriptId, exitType, x, y, z); - public void TaskExitCover(int _ped, int _exitType, float _x, float _y, float _z) + public void TaskExitCover(uint _ped, int _exitType, float _x, float _y, float _z) { unsafe { - if (fn__taskExitCover == null) fn__taskExitCover = (delegate* unmanaged[Cdecl]) funcTable[0x79B258E397854D29UL]; + if (fn__taskExitCover == null) fn__taskExitCover = (delegate* unmanaged[Cdecl]) funcTable[0x79B258E397854D29UL]; var success = false; fn__taskExitCover(&success, _ped, _exitType, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); } } - public void TaskPutPedDirectlyIntoMelee(IPlayer ped, int meleeTarget, float blendInDuration, float timeInMelee, float strafePhaseSync, int aiCombatFlags) => TaskPutPedDirectlyIntoMelee(ped.ScriptId, meleeTarget, blendInDuration, timeInMelee, strafePhaseSync, aiCombatFlags); - public void TaskPutPedDirectlyIntoMelee(int ped, IPlayer meleeTarget, float blendInDuration, float timeInMelee, float strafePhaseSync, int aiCombatFlags) => TaskPutPedDirectlyIntoMelee(ped, meleeTarget.ScriptId, blendInDuration, timeInMelee, strafePhaseSync, aiCombatFlags); + public void TaskPutPedDirectlyIntoMelee(IPlayer ped, uint meleeTarget, float blendInDuration, float timeInMelee, float strafePhaseSync, int aiCombatFlags) => TaskPutPedDirectlyIntoMelee(ped.ScriptId, meleeTarget, blendInDuration, timeInMelee, strafePhaseSync, aiCombatFlags); + public void TaskPutPedDirectlyIntoMelee(uint ped, IPlayer meleeTarget, float blendInDuration, float timeInMelee, float strafePhaseSync, int aiCombatFlags) => TaskPutPedDirectlyIntoMelee(ped, meleeTarget.ScriptId, blendInDuration, timeInMelee, strafePhaseSync, aiCombatFlags); public void TaskPutPedDirectlyIntoMelee(IPlayer ped, IPlayer meleeTarget, float blendInDuration, float timeInMelee, float strafePhaseSync, int aiCombatFlags) => TaskPutPedDirectlyIntoMelee(ped.ScriptId, meleeTarget.ScriptId, blendInDuration, timeInMelee, strafePhaseSync, aiCombatFlags); - public void TaskPutPedDirectlyIntoMelee(int _ped, int _meleeTarget, float _blendInDuration, float _timeInMelee, float _strafePhaseSync, int _aiCombatFlags) + public void TaskPutPedDirectlyIntoMelee(uint _ped, uint _meleeTarget, float _blendInDuration, float _timeInMelee, float _strafePhaseSync, int _aiCombatFlags) { unsafe { - if (fn__taskPutPedDirectlyIntoMelee == null) fn__taskPutPedDirectlyIntoMelee = (delegate* unmanaged[Cdecl]) funcTable[0x1C6CD14A876FFE39UL]; + if (fn__taskPutPedDirectlyIntoMelee == null) fn__taskPutPedDirectlyIntoMelee = (delegate* unmanaged[Cdecl]) funcTable[0x1C6CD14A876FFE39UL]; var success = false; fn__taskPutPedDirectlyIntoMelee(&success, _ped, _meleeTarget, _blendInDuration, _timeInMelee, _strafePhaseSync, _aiCombatFlags); if (!success) throw new Exception("Native execution failed"); @@ -94205,10 +94192,10 @@ public void TaskPutPedDirectlyIntoMelee(int _ped, int _meleeTarget, float _blend } public void TaskToggleDuck(IPlayer ped, int toggleType) => TaskToggleDuck(ped.ScriptId, toggleType); - public void TaskToggleDuck(int _ped, int _toggleType) + public void TaskToggleDuck(uint _ped, int _toggleType) { unsafe { - if (fn__taskToggleDuck == null) fn__taskToggleDuck = (delegate* unmanaged[Cdecl]) funcTable[0xAC96609B9995EDF8UL]; + if (fn__taskToggleDuck == null) fn__taskToggleDuck = (delegate* unmanaged[Cdecl]) funcTable[0xAC96609B9995EDF8UL]; var success = false; fn__taskToggleDuck(&success, _ped, _toggleType); if (!success) throw new Exception("Native execution failed"); @@ -94216,10 +94203,10 @@ public void TaskToggleDuck(int _ped, int _toggleType) } public void TaskGuardCurrentPosition(IPlayer ped, float maxPatrolProximity, float defensiveAreaRadius, bool setDefensiveArea) => TaskGuardCurrentPosition(ped.ScriptId, maxPatrolProximity, defensiveAreaRadius, setDefensiveArea); - public void TaskGuardCurrentPosition(int _ped, float _maxPatrolProximity, float _defensiveAreaRadius, bool _setDefensiveArea) + public void TaskGuardCurrentPosition(uint _ped, float _maxPatrolProximity, float _defensiveAreaRadius, bool _setDefensiveArea) { unsafe { - if (fn__taskGuardCurrentPosition == null) fn__taskGuardCurrentPosition = (delegate* unmanaged[Cdecl]) funcTable[0x4A58A47A72E3FCB4UL]; + if (fn__taskGuardCurrentPosition == null) fn__taskGuardCurrentPosition = (delegate* unmanaged[Cdecl]) funcTable[0x4A58A47A72E3FCB4UL]; var success = false; fn__taskGuardCurrentPosition(&success, _ped, _maxPatrolProximity, _defensiveAreaRadius, (byte) (_setDefensiveArea ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -94227,10 +94214,10 @@ public void TaskGuardCurrentPosition(int _ped, float _maxPatrolProximity, float } public void TaskGuardAssignedDefensiveArea(IPlayer ped, float x, float y, float z, float heading, float maxPatrolProximity, int timer) => TaskGuardAssignedDefensiveArea(ped.ScriptId, x, y, z, heading, maxPatrolProximity, timer); - public void TaskGuardAssignedDefensiveArea(int _ped, float _x, float _y, float _z, float _heading, float _maxPatrolProximity, int _timer) + public void TaskGuardAssignedDefensiveArea(uint _ped, float _x, float _y, float _z, float _heading, float _maxPatrolProximity, int _timer) { unsafe { - if (fn__taskGuardAssignedDefensiveArea == null) fn__taskGuardAssignedDefensiveArea = (delegate* unmanaged[Cdecl]) funcTable[0xD2A207EEBDF9889BUL]; + if (fn__taskGuardAssignedDefensiveArea == null) fn__taskGuardAssignedDefensiveArea = (delegate* unmanaged[Cdecl]) funcTable[0xD2A207EEBDF9889BUL]; var success = false; fn__taskGuardAssignedDefensiveArea(&success, _ped, _x, _y, _z, _heading, _maxPatrolProximity, _timer); if (!success) throw new Exception("Native execution failed"); @@ -94238,10 +94225,10 @@ public void TaskGuardAssignedDefensiveArea(int _ped, float _x, float _y, float _ } public void TaskGuardSphereDefensiveArea(IPlayer ped, float defendPositionX, float defendPositionY, float defendPositionZ, float heading, float maxPatrolProximity, int time, float x, float y, float z, float defensiveAreaRadius) => TaskGuardSphereDefensiveArea(ped.ScriptId, defendPositionX, defendPositionY, defendPositionZ, heading, maxPatrolProximity, time, x, y, z, defensiveAreaRadius); - public void TaskGuardSphereDefensiveArea(int _ped, float _defendPositionX, float _defendPositionY, float _defendPositionZ, float _heading, float _maxPatrolProximity, int _time, float _x, float _y, float _z, float _defensiveAreaRadius) + public void TaskGuardSphereDefensiveArea(uint _ped, float _defendPositionX, float _defendPositionY, float _defendPositionZ, float _heading, float _maxPatrolProximity, int _time, float _x, float _y, float _z, float _defensiveAreaRadius) { unsafe { - if (fn__taskGuardSphereDefensiveArea == null) fn__taskGuardSphereDefensiveArea = (delegate* unmanaged[Cdecl]) funcTable[0xC946FE14BE0EB5E2UL]; + if (fn__taskGuardSphereDefensiveArea == null) fn__taskGuardSphereDefensiveArea = (delegate* unmanaged[Cdecl]) funcTable[0xC946FE14BE0EB5E2UL]; var success = false; fn__taskGuardSphereDefensiveArea(&success, _ped, _defendPositionX, _defendPositionY, _defendPositionZ, _heading, _maxPatrolProximity, _time, _x, _y, _z, _defensiveAreaRadius); if (!success) throw new Exception("Native execution failed"); @@ -94249,23 +94236,23 @@ public void TaskGuardSphereDefensiveArea(int _ped, float _defendPositionX, float } public void TaskStandGuard(IPlayer ped, float x, float y, float z, float heading, string scenarioName) => TaskStandGuard(ped.ScriptId, x, y, z, heading, scenarioName); - public void TaskStandGuard(int _ped, float _x, float _y, float _z, float _heading, string _scenarioName) + public void TaskStandGuard(uint _ped, float _x, float _y, float _z, float _heading, string _scenarioName) { unsafe { - if (fn__taskStandGuard == null) fn__taskStandGuard = (delegate* unmanaged[Cdecl]) funcTable[0xAE032F8BBA959E90UL]; + if (fn__taskStandGuard == null) fn__taskStandGuard = (delegate* unmanaged[Cdecl]) funcTable[0xAE032F8BBA959E90UL]; var success = false; - var ptr_scenarioName = _scenarioName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scenarioName); + var ptr_scenarioName = MemoryUtils.StringToHGlobalUtf8(_scenarioName); fn__taskStandGuard(&success, _ped, _x, _y, _z, _heading, ptr_scenarioName); - if (ptr_scenarioName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scenarioName); + Marshal.FreeHGlobal(ptr_scenarioName); if (!success) throw new Exception("Native execution failed"); } } public void SetDriveTaskCruiseSpeed(IPlayer driver, float cruiseSpeed) => SetDriveTaskCruiseSpeed(driver.ScriptId, cruiseSpeed); - public void SetDriveTaskCruiseSpeed(int _driver, float _cruiseSpeed) + public void SetDriveTaskCruiseSpeed(uint _driver, float _cruiseSpeed) { unsafe { - if (fn__setDriveTaskCruiseSpeed == null) fn__setDriveTaskCruiseSpeed = (delegate* unmanaged[Cdecl]) funcTable[0x5C9B84BD7D31D908UL]; + if (fn__setDriveTaskCruiseSpeed == null) fn__setDriveTaskCruiseSpeed = (delegate* unmanaged[Cdecl]) funcTable[0x5C9B84BD7D31D908UL]; var success = false; fn__setDriveTaskCruiseSpeed(&success, _driver, _cruiseSpeed); if (!success) throw new Exception("Native execution failed"); @@ -94273,10 +94260,10 @@ public void SetDriveTaskCruiseSpeed(int _driver, float _cruiseSpeed) } public void SetDriveTaskMaxCruiseSpeed(IPlayer ped, float speed) => SetDriveTaskMaxCruiseSpeed(ped.ScriptId, speed); - public void SetDriveTaskMaxCruiseSpeed(int _ped, float _speed) + public void SetDriveTaskMaxCruiseSpeed(uint _ped, float _speed) { unsafe { - if (fn__setDriveTaskMaxCruiseSpeed == null) fn__setDriveTaskMaxCruiseSpeed = (delegate* unmanaged[Cdecl]) funcTable[0x404A5AA9B9F0B746UL]; + if (fn__setDriveTaskMaxCruiseSpeed == null) fn__setDriveTaskMaxCruiseSpeed = (delegate* unmanaged[Cdecl]) funcTable[0x404A5AA9B9F0B746UL]; var success = false; fn__setDriveTaskMaxCruiseSpeed(&success, _ped, _speed); if (!success) throw new Exception("Native execution failed"); @@ -94284,10 +94271,10 @@ public void SetDriveTaskMaxCruiseSpeed(int _ped, float _speed) } public void SetDriveTaskDrivingStyle(IPlayer ped, int drivingStyle) => SetDriveTaskDrivingStyle(ped.ScriptId, drivingStyle); - public void SetDriveTaskDrivingStyle(int _ped, int _drivingStyle) + public void SetDriveTaskDrivingStyle(uint _ped, int _drivingStyle) { unsafe { - if (fn__setDriveTaskDrivingStyle == null) fn__setDriveTaskDrivingStyle = (delegate* unmanaged[Cdecl]) funcTable[0xDACE1BE37D88AF67UL]; + if (fn__setDriveTaskDrivingStyle == null) fn__setDriveTaskDrivingStyle = (delegate* unmanaged[Cdecl]) funcTable[0xDACE1BE37D88AF67UL]; var success = false; fn__setDriveTaskDrivingStyle(&success, _ped, _drivingStyle); if (!success) throw new Exception("Native execution failed"); @@ -94335,36 +94322,36 @@ public void RemoveSpecificCoverBlockingAreas(float _startX, float _startY, float } public void TaskStartScenarioInPlace(IPlayer ped, string scenarioName, int unkDelay, bool playEnterAnim) => TaskStartScenarioInPlace(ped.ScriptId, scenarioName, unkDelay, playEnterAnim); - public void TaskStartScenarioInPlace(int _ped, string _scenarioName, int _unkDelay, bool _playEnterAnim) + public void TaskStartScenarioInPlace(uint _ped, string _scenarioName, int _unkDelay, bool _playEnterAnim) { unsafe { - if (fn__taskStartScenarioInPlace == null) fn__taskStartScenarioInPlace = (delegate* unmanaged[Cdecl]) funcTable[0x142A02425FF02BD9UL]; + if (fn__taskStartScenarioInPlace == null) fn__taskStartScenarioInPlace = (delegate* unmanaged[Cdecl]) funcTable[0x142A02425FF02BD9UL]; var success = false; - var ptr_scenarioName = _scenarioName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scenarioName); + var ptr_scenarioName = MemoryUtils.StringToHGlobalUtf8(_scenarioName); fn__taskStartScenarioInPlace(&success, _ped, ptr_scenarioName, _unkDelay, (byte) (_playEnterAnim ? 1 : 0)); - if (ptr_scenarioName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scenarioName); + Marshal.FreeHGlobal(ptr_scenarioName); if (!success) throw new Exception("Native execution failed"); } } public void TaskStartScenarioAtPosition(IPlayer ped, string scenarioName, float x, float y, float z, float heading, int duration, bool sittingScenario, bool teleport) => TaskStartScenarioAtPosition(ped.ScriptId, scenarioName, x, y, z, heading, duration, sittingScenario, teleport); - public void TaskStartScenarioAtPosition(int _ped, string _scenarioName, float _x, float _y, float _z, float _heading, int _duration, bool _sittingScenario, bool _teleport) + public void TaskStartScenarioAtPosition(uint _ped, string _scenarioName, float _x, float _y, float _z, float _heading, int _duration, bool _sittingScenario, bool _teleport) { unsafe { - if (fn__taskStartScenarioAtPosition == null) fn__taskStartScenarioAtPosition = (delegate* unmanaged[Cdecl]) funcTable[0xFA4EFC79F69D4F07UL]; + if (fn__taskStartScenarioAtPosition == null) fn__taskStartScenarioAtPosition = (delegate* unmanaged[Cdecl]) funcTable[0xFA4EFC79F69D4F07UL]; var success = false; - var ptr_scenarioName = _scenarioName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scenarioName); + var ptr_scenarioName = MemoryUtils.StringToHGlobalUtf8(_scenarioName); fn__taskStartScenarioAtPosition(&success, _ped, ptr_scenarioName, _x, _y, _z, _heading, _duration, (byte) (_sittingScenario ? 1 : 0), (byte) (_teleport ? 1 : 0)); - if (ptr_scenarioName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scenarioName); + Marshal.FreeHGlobal(ptr_scenarioName); if (!success) throw new Exception("Native execution failed"); } } public void TaskUseNearestScenarioToCoord(IPlayer ped, float x, float y, float z, float distance, int duration) => TaskUseNearestScenarioToCoord(ped.ScriptId, x, y, z, distance, duration); - public void TaskUseNearestScenarioToCoord(int _ped, float _x, float _y, float _z, float _distance, int _duration) + public void TaskUseNearestScenarioToCoord(uint _ped, float _x, float _y, float _z, float _distance, int _duration) { unsafe { - if (fn__taskUseNearestScenarioToCoord == null) fn__taskUseNearestScenarioToCoord = (delegate* unmanaged[Cdecl]) funcTable[0x277F471BA9DB000BUL]; + if (fn__taskUseNearestScenarioToCoord == null) fn__taskUseNearestScenarioToCoord = (delegate* unmanaged[Cdecl]) funcTable[0x277F471BA9DB000BUL]; var success = false; fn__taskUseNearestScenarioToCoord(&success, _ped, _x, _y, _z, _distance, _duration); if (!success) throw new Exception("Native execution failed"); @@ -94372,10 +94359,10 @@ public void TaskUseNearestScenarioToCoord(int _ped, float _x, float _y, float _z } public void TaskUseNearestScenarioToCoordWarp(IPlayer ped, float x, float y, float z, float radius, int timeToLeave) => TaskUseNearestScenarioToCoordWarp(ped.ScriptId, x, y, z, radius, timeToLeave); - public void TaskUseNearestScenarioToCoordWarp(int _ped, float _x, float _y, float _z, float _radius, int _timeToLeave) + public void TaskUseNearestScenarioToCoordWarp(uint _ped, float _x, float _y, float _z, float _radius, int _timeToLeave) { unsafe { - if (fn__taskUseNearestScenarioToCoordWarp == null) fn__taskUseNearestScenarioToCoordWarp = (delegate* unmanaged[Cdecl]) funcTable[0x58E2E0F23F6B76C3UL]; + if (fn__taskUseNearestScenarioToCoordWarp == null) fn__taskUseNearestScenarioToCoordWarp = (delegate* unmanaged[Cdecl]) funcTable[0x58E2E0F23F6B76C3UL]; var success = false; fn__taskUseNearestScenarioToCoordWarp(&success, _ped, _x, _y, _z, _radius, _timeToLeave); if (!success) throw new Exception("Native execution failed"); @@ -94383,10 +94370,10 @@ public void TaskUseNearestScenarioToCoordWarp(int _ped, float _x, float _y, floa } public void TaskUseNearestScenarioChainToCoord(IPlayer ped, float x, float y, float z, float maxRange, int timeToLeave) => TaskUseNearestScenarioChainToCoord(ped.ScriptId, x, y, z, maxRange, timeToLeave); - public void TaskUseNearestScenarioChainToCoord(int _ped, float _x, float _y, float _z, float _maxRange, int _timeToLeave) + public void TaskUseNearestScenarioChainToCoord(uint _ped, float _x, float _y, float _z, float _maxRange, int _timeToLeave) { unsafe { - if (fn__taskUseNearestScenarioChainToCoord == null) fn__taskUseNearestScenarioChainToCoord = (delegate* unmanaged[Cdecl]) funcTable[0x9FDA1B3D7E7028B3UL]; + if (fn__taskUseNearestScenarioChainToCoord == null) fn__taskUseNearestScenarioChainToCoord = (delegate* unmanaged[Cdecl]) funcTable[0x9FDA1B3D7E7028B3UL]; var success = false; fn__taskUseNearestScenarioChainToCoord(&success, _ped, _x, _y, _z, _maxRange, _timeToLeave); if (!success) throw new Exception("Native execution failed"); @@ -94394,10 +94381,10 @@ public void TaskUseNearestScenarioChainToCoord(int _ped, float _x, float _y, flo } public void TaskUseNearestScenarioChainToCoordWarp(IPlayer ped, float x, float y, float z, float radius, int timeToLeave) => TaskUseNearestScenarioChainToCoordWarp(ped.ScriptId, x, y, z, radius, timeToLeave); - public void TaskUseNearestScenarioChainToCoordWarp(int _ped, float _x, float _y, float _z, float _radius, int _timeToLeave) + public void TaskUseNearestScenarioChainToCoordWarp(uint _ped, float _x, float _y, float _z, float _radius, int _timeToLeave) { unsafe { - if (fn__taskUseNearestScenarioChainToCoordWarp == null) fn__taskUseNearestScenarioChainToCoordWarp = (delegate* unmanaged[Cdecl]) funcTable[0x97A28E63F0BA5631UL]; + if (fn__taskUseNearestScenarioChainToCoordWarp == null) fn__taskUseNearestScenarioChainToCoordWarp = (delegate* unmanaged[Cdecl]) funcTable[0x97A28E63F0BA5631UL]; var success = false; fn__taskUseNearestScenarioChainToCoordWarp(&success, _ped, _x, _y, _z, _radius, _timeToLeave); if (!success) throw new Exception("Native execution failed"); @@ -94420,9 +94407,9 @@ public bool DoesScenarioOfTypeExistInArea(float _x, float _y, float _z, string _ unsafe { if (fn__doesScenarioOfTypeExistInArea == null) fn__doesScenarioOfTypeExistInArea = (delegate* unmanaged[Cdecl]) funcTable[0x0A9D0C2A3BBC86C1UL]; var success = false; - var ptr_scenarioName = _scenarioName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scenarioName); + var ptr_scenarioName = MemoryUtils.StringToHGlobalUtf8(_scenarioName); var result = fn__doesScenarioOfTypeExistInArea(&success, _x, _y, _z, ptr_scenarioName, _radius, (byte) (_mustBeFree ? 1 : 0)); - if (ptr_scenarioName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scenarioName); + Marshal.FreeHGlobal(ptr_scenarioName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -94440,10 +94427,10 @@ public bool IsScenarioOccupied(float _x, float _y, float _z, float _maxRange, bo } public bool PedHasUseScenarioTask(IPlayer ped) => PedHasUseScenarioTask(ped.ScriptId); - public bool PedHasUseScenarioTask(int _ped) + public bool PedHasUseScenarioTask(uint _ped) { unsafe { - if (fn__pedHasUseScenarioTask == null) fn__pedHasUseScenarioTask = (delegate* unmanaged[Cdecl]) funcTable[0x295E3CCEC879CCD7UL]; + if (fn__pedHasUseScenarioTask == null) fn__pedHasUseScenarioTask = (delegate* unmanaged[Cdecl]) funcTable[0x295E3CCEC879CCD7UL]; var success = false; var result = fn__pedHasUseScenarioTask(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -94452,16 +94439,16 @@ public bool PedHasUseScenarioTask(int _ped) } public void PlayAnimOnRunningScenario(IPlayer ped, string animDict, string animName) => PlayAnimOnRunningScenario(ped.ScriptId, animDict, animName); - public void PlayAnimOnRunningScenario(int _ped, string _animDict, string _animName) + public void PlayAnimOnRunningScenario(uint _ped, string _animDict, string _animName) { unsafe { - if (fn__playAnimOnRunningScenario == null) fn__playAnimOnRunningScenario = (delegate* unmanaged[Cdecl]) funcTable[0x748040460F8DF5DCUL]; + if (fn__playAnimOnRunningScenario == null) fn__playAnimOnRunningScenario = (delegate* unmanaged[Cdecl]) funcTable[0x748040460F8DF5DCUL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); - var ptr_animName = _animName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animName); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animName = MemoryUtils.StringToHGlobalUtf8(_animName); fn__playAnimOnRunningScenario(&success, _ped, ptr_animDict, ptr_animName); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); - if (ptr_animName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animName); + Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animName); if (!success) throw new Exception("Native execution failed"); } } @@ -94471,9 +94458,9 @@ public bool DoesScenarioGroupExist(string _scenarioGroup) unsafe { if (fn__doesScenarioGroupExist == null) fn__doesScenarioGroupExist = (delegate* unmanaged[Cdecl]) funcTable[0xF9034C136C9E00D3UL]; var success = false; - var ptr_scenarioGroup = _scenarioGroup == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scenarioGroup); + var ptr_scenarioGroup = MemoryUtils.StringToHGlobalUtf8(_scenarioGroup); var result = fn__doesScenarioGroupExist(&success, ptr_scenarioGroup); - if (ptr_scenarioGroup != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scenarioGroup); + Marshal.FreeHGlobal(ptr_scenarioGroup); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -94484,9 +94471,9 @@ public bool IsScenarioGroupEnabled(string _scenarioGroup) unsafe { if (fn__isScenarioGroupEnabled == null) fn__isScenarioGroupEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x367A09DED4E05B99UL]; var success = false; - var ptr_scenarioGroup = _scenarioGroup == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scenarioGroup); + var ptr_scenarioGroup = MemoryUtils.StringToHGlobalUtf8(_scenarioGroup); var result = fn__isScenarioGroupEnabled(&success, ptr_scenarioGroup); - if (ptr_scenarioGroup != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scenarioGroup); + Marshal.FreeHGlobal(ptr_scenarioGroup); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -94497,9 +94484,9 @@ public void SetScenarioGroupEnabled(string _scenarioGroup, bool _enabled) unsafe { if (fn__setScenarioGroupEnabled == null) fn__setScenarioGroupEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x02C8E5B49848664EUL]; var success = false; - var ptr_scenarioGroup = _scenarioGroup == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scenarioGroup); + var ptr_scenarioGroup = MemoryUtils.StringToHGlobalUtf8(_scenarioGroup); fn__setScenarioGroupEnabled(&success, ptr_scenarioGroup, (byte) (_enabled ? 1 : 0)); - if (ptr_scenarioGroup != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scenarioGroup); + Marshal.FreeHGlobal(ptr_scenarioGroup); if (!success) throw new Exception("Native execution failed"); } } @@ -94519,9 +94506,9 @@ public void SetExclusiveScenarioGroup(string _scenarioGroup) unsafe { if (fn__setExclusiveScenarioGroup == null) fn__setExclusiveScenarioGroup = (delegate* unmanaged[Cdecl]) funcTable[0x535E97E1F7FC0C6AUL]; var success = false; - var ptr_scenarioGroup = _scenarioGroup == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scenarioGroup); + var ptr_scenarioGroup = MemoryUtils.StringToHGlobalUtf8(_scenarioGroup); fn__setExclusiveScenarioGroup(&success, ptr_scenarioGroup); - if (ptr_scenarioGroup != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scenarioGroup); + Marshal.FreeHGlobal(ptr_scenarioGroup); if (!success) throw new Exception("Native execution failed"); } } @@ -94541,9 +94528,9 @@ public bool IsScenarioTypeEnabled(string _scenarioType) unsafe { if (fn__isScenarioTypeEnabled == null) fn__isScenarioTypeEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x3A815DB3EA088722UL]; var success = false; - var ptr_scenarioType = _scenarioType == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scenarioType); + var ptr_scenarioType = MemoryUtils.StringToHGlobalUtf8(_scenarioType); var result = fn__isScenarioTypeEnabled(&success, ptr_scenarioType); - if (ptr_scenarioType != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scenarioType); + Marshal.FreeHGlobal(ptr_scenarioType); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -94554,9 +94541,9 @@ public void SetScenarioTypeEnabled(string _scenarioType, bool _toggle) unsafe { if (fn__setScenarioTypeEnabled == null) fn__setScenarioTypeEnabled = (delegate* unmanaged[Cdecl]) funcTable[0xEB47EC4E34FB7EE1UL]; var success = false; - var ptr_scenarioType = _scenarioType == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_scenarioType); + var ptr_scenarioType = MemoryUtils.StringToHGlobalUtf8(_scenarioType); fn__setScenarioTypeEnabled(&success, ptr_scenarioType, (byte) (_toggle ? 1 : 0)); - if (ptr_scenarioType != IntPtr.Zero) Marshal.FreeHGlobal(ptr_scenarioType); + Marshal.FreeHGlobal(ptr_scenarioType); if (!success) throw new Exception("Native execution failed"); } } @@ -94572,10 +94559,10 @@ public void ResetScenarioTypesEnabled() } public bool IsPedActiveInScenario(IPlayer ped) => IsPedActiveInScenario(ped.ScriptId); - public bool IsPedActiveInScenario(int _ped) + public bool IsPedActiveInScenario(uint _ped) { unsafe { - if (fn__isPedActiveInScenario == null) fn__isPedActiveInScenario = (delegate* unmanaged[Cdecl]) funcTable[0xAA135F9482C82CC3UL]; + if (fn__isPedActiveInScenario == null) fn__isPedActiveInScenario = (delegate* unmanaged[Cdecl]) funcTable[0xAA135F9482C82CC3UL]; var success = false; var result = fn__isPedActiveInScenario(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -94584,10 +94571,10 @@ public bool IsPedActiveInScenario(int _ped) } public bool IsPedPlayingBaseClipInScenario(IPlayer ped) => IsPedPlayingBaseClipInScenario(ped.ScriptId); - public bool IsPedPlayingBaseClipInScenario(int _ped) + public bool IsPedPlayingBaseClipInScenario(uint _ped) { unsafe { - if (fn__isPedPlayingBaseClipInScenario == null) fn__isPedPlayingBaseClipInScenario = (delegate* unmanaged[Cdecl]) funcTable[0x621C6E4729388E41UL]; + if (fn__isPedPlayingBaseClipInScenario == null) fn__isPedPlayingBaseClipInScenario = (delegate* unmanaged[Cdecl]) funcTable[0x621C6E4729388E41UL]; var success = false; var result = fn__isPedPlayingBaseClipInScenario(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -94596,10 +94583,10 @@ public bool IsPedPlayingBaseClipInScenario(int _ped) } public void SetPedCanPlayAmbientIdles(IPlayer ped, bool blockIdleClips, bool removeIdleClipIfPlaying) => SetPedCanPlayAmbientIdles(ped.ScriptId, blockIdleClips, removeIdleClipIfPlaying); - public void SetPedCanPlayAmbientIdles(int _ped, bool _blockIdleClips, bool _removeIdleClipIfPlaying) + public void SetPedCanPlayAmbientIdles(uint _ped, bool _blockIdleClips, bool _removeIdleClipIfPlaying) { unsafe { - if (fn__setPedCanPlayAmbientIdles == null) fn__setPedCanPlayAmbientIdles = (delegate* unmanaged[Cdecl]) funcTable[0x8FD89A6240813FD0UL]; + if (fn__setPedCanPlayAmbientIdles == null) fn__setPedCanPlayAmbientIdles = (delegate* unmanaged[Cdecl]) funcTable[0x8FD89A6240813FD0UL]; var success = false; fn__setPedCanPlayAmbientIdles(&success, _ped, (byte) (_blockIdleClips ? 1 : 0), (byte) (_removeIdleClipIfPlaying ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -94607,10 +94594,10 @@ public void SetPedCanPlayAmbientIdles(int _ped, bool _blockIdleClips, bool _remo } public void TaskCombatHatedTargetsInArea(IPlayer ped, float x, float y, float z, float radius, int combatFlags) => TaskCombatHatedTargetsInArea(ped.ScriptId, x, y, z, radius, combatFlags); - public void TaskCombatHatedTargetsInArea(int _ped, float _x, float _y, float _z, float _radius, int _combatFlags) + public void TaskCombatHatedTargetsInArea(uint _ped, float _x, float _y, float _z, float _radius, int _combatFlags) { unsafe { - if (fn__taskCombatHatedTargetsInArea == null) fn__taskCombatHatedTargetsInArea = (delegate* unmanaged[Cdecl]) funcTable[0x4CF5F55DAC3280A0UL]; + if (fn__taskCombatHatedTargetsInArea == null) fn__taskCombatHatedTargetsInArea = (delegate* unmanaged[Cdecl]) funcTable[0x4CF5F55DAC3280A0UL]; var success = false; fn__taskCombatHatedTargetsInArea(&success, _ped, _x, _y, _z, _radius, _combatFlags); if (!success) throw new Exception("Native execution failed"); @@ -94618,10 +94605,10 @@ public void TaskCombatHatedTargetsInArea(int _ped, float _x, float _y, float _z, } public void TaskCombatHatedTargetsAroundPed(IPlayer ped, float radius, int combatFlags) => TaskCombatHatedTargetsAroundPed(ped.ScriptId, radius, combatFlags); - public void TaskCombatHatedTargetsAroundPed(int _ped, float _radius, int _combatFlags) + public void TaskCombatHatedTargetsAroundPed(uint _ped, float _radius, int _combatFlags) { unsafe { - if (fn__taskCombatHatedTargetsAroundPed == null) fn__taskCombatHatedTargetsAroundPed = (delegate* unmanaged[Cdecl]) funcTable[0x7BF835BB9E2698C8UL]; + if (fn__taskCombatHatedTargetsAroundPed == null) fn__taskCombatHatedTargetsAroundPed = (delegate* unmanaged[Cdecl]) funcTable[0x7BF835BB9E2698C8UL]; var success = false; fn__taskCombatHatedTargetsAroundPed(&success, _ped, _radius, _combatFlags); if (!success) throw new Exception("Native execution failed"); @@ -94629,10 +94616,10 @@ public void TaskCombatHatedTargetsAroundPed(int _ped, float _radius, int _combat } public void TaskCombatHatedTargetsAroundPedTimed(IPlayer ped, float radius, int time, int combatFlags) => TaskCombatHatedTargetsAroundPedTimed(ped.ScriptId, radius, time, combatFlags); - public void TaskCombatHatedTargetsAroundPedTimed(int _ped, float _radius, int _time, int _combatFlags) + public void TaskCombatHatedTargetsAroundPedTimed(uint _ped, float _radius, int _time, int _combatFlags) { unsafe { - if (fn__taskCombatHatedTargetsAroundPedTimed == null) fn__taskCombatHatedTargetsAroundPedTimed = (delegate* unmanaged[Cdecl]) funcTable[0x2BBA30B854534A0CUL]; + if (fn__taskCombatHatedTargetsAroundPedTimed == null) fn__taskCombatHatedTargetsAroundPedTimed = (delegate* unmanaged[Cdecl]) funcTable[0x2BBA30B854534A0CUL]; var success = false; fn__taskCombatHatedTargetsAroundPedTimed(&success, _ped, _radius, _time, _combatFlags); if (!success) throw new Exception("Native execution failed"); @@ -94640,10 +94627,10 @@ public void TaskCombatHatedTargetsAroundPedTimed(int _ped, float _radius, int _t } public void TaskThrowProjectile(IPlayer ped, float x, float y, float z, int ignoreCollisionEntityIndex, bool createInvincibleProjectile) => TaskThrowProjectile(ped.ScriptId, x, y, z, ignoreCollisionEntityIndex, createInvincibleProjectile); - public void TaskThrowProjectile(int _ped, float _x, float _y, float _z, int _ignoreCollisionEntityIndex, bool _createInvincibleProjectile) + public void TaskThrowProjectile(uint _ped, float _x, float _y, float _z, int _ignoreCollisionEntityIndex, bool _createInvincibleProjectile) { unsafe { - if (fn__taskThrowProjectile == null) fn__taskThrowProjectile = (delegate* unmanaged[Cdecl]) funcTable[0x7285951DBF6B5A51UL]; + if (fn__taskThrowProjectile == null) fn__taskThrowProjectile = (delegate* unmanaged[Cdecl]) funcTable[0x7285951DBF6B5A51UL]; var success = false; fn__taskThrowProjectile(&success, _ped, _x, _y, _z, _ignoreCollisionEntityIndex, (byte) (_createInvincibleProjectile ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -94651,10 +94638,10 @@ public void TaskThrowProjectile(int _ped, float _x, float _y, float _z, int _ign } public void TaskSwapWeapon(IPlayer ped, bool drawWeapon) => TaskSwapWeapon(ped.ScriptId, drawWeapon); - public void TaskSwapWeapon(int _ped, bool _drawWeapon) + public void TaskSwapWeapon(uint _ped, bool _drawWeapon) { unsafe { - if (fn__taskSwapWeapon == null) fn__taskSwapWeapon = (delegate* unmanaged[Cdecl]) funcTable[0xA21C51255B205245UL]; + if (fn__taskSwapWeapon == null) fn__taskSwapWeapon = (delegate* unmanaged[Cdecl]) funcTable[0xA21C51255B205245UL]; var success = false; fn__taskSwapWeapon(&success, _ped, (byte) (_drawWeapon ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -94662,10 +94649,10 @@ public void TaskSwapWeapon(int _ped, bool _drawWeapon) } public void TaskReloadWeapon(IPlayer ped, bool drawWeapon) => TaskReloadWeapon(ped.ScriptId, drawWeapon); - public void TaskReloadWeapon(int _ped, bool _drawWeapon) + public void TaskReloadWeapon(uint _ped, bool _drawWeapon) { unsafe { - if (fn__taskReloadWeapon == null) fn__taskReloadWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x62D2916F56B9CD2DUL]; + if (fn__taskReloadWeapon == null) fn__taskReloadWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x62D2916F56B9CD2DUL]; var success = false; fn__taskReloadWeapon(&success, _ped, (byte) (_drawWeapon ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -94673,10 +94660,10 @@ public void TaskReloadWeapon(int _ped, bool _drawWeapon) } public bool IsPedGettingUp(IPlayer ped) => IsPedGettingUp(ped.ScriptId); - public bool IsPedGettingUp(int _ped) + public bool IsPedGettingUp(uint _ped) { unsafe { - if (fn__isPedGettingUp == null) fn__isPedGettingUp = (delegate* unmanaged[Cdecl]) funcTable[0x2A74E1D5F2F00EECUL]; + if (fn__isPedGettingUp == null) fn__isPedGettingUp = (delegate* unmanaged[Cdecl]) funcTable[0x2A74E1D5F2F00EECUL]; var success = false; var result = fn__isPedGettingUp(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -94684,13 +94671,13 @@ public bool IsPedGettingUp(int _ped) } } - public void TaskWrithe(IPlayer ped, int target, int minFireLoops, int startState, bool forceShootOnGround, int shootFromGroundTimer) => TaskWrithe(ped.ScriptId, target, minFireLoops, startState, forceShootOnGround, shootFromGroundTimer); - public void TaskWrithe(int ped, IPlayer target, int minFireLoops, int startState, bool forceShootOnGround, int shootFromGroundTimer) => TaskWrithe(ped, target.ScriptId, minFireLoops, startState, forceShootOnGround, shootFromGroundTimer); + public void TaskWrithe(IPlayer ped, uint target, int minFireLoops, int startState, bool forceShootOnGround, int shootFromGroundTimer) => TaskWrithe(ped.ScriptId, target, minFireLoops, startState, forceShootOnGround, shootFromGroundTimer); + public void TaskWrithe(uint ped, IPlayer target, int minFireLoops, int startState, bool forceShootOnGround, int shootFromGroundTimer) => TaskWrithe(ped, target.ScriptId, minFireLoops, startState, forceShootOnGround, shootFromGroundTimer); public void TaskWrithe(IPlayer ped, IPlayer target, int minFireLoops, int startState, bool forceShootOnGround, int shootFromGroundTimer) => TaskWrithe(ped.ScriptId, target.ScriptId, minFireLoops, startState, forceShootOnGround, shootFromGroundTimer); - public void TaskWrithe(int _ped, int _target, int _minFireLoops, int _startState, bool _forceShootOnGround, int _shootFromGroundTimer) + public void TaskWrithe(uint _ped, uint _target, int _minFireLoops, int _startState, bool _forceShootOnGround, int _shootFromGroundTimer) { unsafe { - if (fn__taskWrithe == null) fn__taskWrithe = (delegate* unmanaged[Cdecl]) funcTable[0xCDDC2B77CE54AC6EUL]; + if (fn__taskWrithe == null) fn__taskWrithe = (delegate* unmanaged[Cdecl]) funcTable[0xCDDC2B77CE54AC6EUL]; var success = false; fn__taskWrithe(&success, _ped, _target, _minFireLoops, _startState, (byte) (_forceShootOnGround ? 1 : 0), _shootFromGroundTimer); if (!success) throw new Exception("Native execution failed"); @@ -94698,10 +94685,10 @@ public void TaskWrithe(int _ped, int _target, int _minFireLoops, int _startState } public bool IsPedInWrithe(IPlayer ped) => IsPedInWrithe(ped.ScriptId); - public bool IsPedInWrithe(int _ped) + public bool IsPedInWrithe(uint _ped) { unsafe { - if (fn__isPedInWrithe == null) fn__isPedInWrithe = (delegate* unmanaged[Cdecl]) funcTable[0xDEB6D52126E7D640UL]; + if (fn__isPedInWrithe == null) fn__isPedInWrithe = (delegate* unmanaged[Cdecl]) funcTable[0xDEB6D52126E7D640UL]; var success = false; var result = fn__isPedInWrithe(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -94714,9 +94701,9 @@ public void OpenPatrolRoute(string _patrolRoute) unsafe { if (fn__openPatrolRoute == null) fn__openPatrolRoute = (delegate* unmanaged[Cdecl]) funcTable[0xA36BFB5EE89F3D82UL]; var success = false; - var ptr_patrolRoute = _patrolRoute == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_patrolRoute); + var ptr_patrolRoute = MemoryUtils.StringToHGlobalUtf8(_patrolRoute); fn__openPatrolRoute(&success, ptr_patrolRoute); - if (ptr_patrolRoute != IntPtr.Zero) Marshal.FreeHGlobal(ptr_patrolRoute); + Marshal.FreeHGlobal(ptr_patrolRoute); if (!success) throw new Exception("Native execution failed"); } } @@ -94736,9 +94723,9 @@ public void AddPatrolRouteNode(int _nodeId, string _nodeType, float _posX, float unsafe { if (fn__addPatrolRouteNode == null) fn__addPatrolRouteNode = (delegate* unmanaged[Cdecl]) funcTable[0x8EDF950167586B7CUL]; var success = false; - var ptr_nodeType = _nodeType == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_nodeType); + var ptr_nodeType = MemoryUtils.StringToHGlobalUtf8(_nodeType); fn__addPatrolRouteNode(&success, _nodeId, ptr_nodeType, _posX, _posY, _posZ, _headingX, _headingY, _headingZ, _duration); - if (ptr_nodeType != IntPtr.Zero) Marshal.FreeHGlobal(ptr_nodeType); + Marshal.FreeHGlobal(ptr_nodeType); if (!success) throw new Exception("Native execution failed"); } } @@ -94768,18 +94755,18 @@ public void DeletePatrolRoute(string _patrolRoute) unsafe { if (fn__deletePatrolRoute == null) fn__deletePatrolRoute = (delegate* unmanaged[Cdecl]) funcTable[0x7767DD9D65E91319UL]; var success = false; - var ptr_patrolRoute = _patrolRoute == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_patrolRoute); + var ptr_patrolRoute = MemoryUtils.StringToHGlobalUtf8(_patrolRoute); fn__deletePatrolRoute(&success, ptr_patrolRoute); - if (ptr_patrolRoute != IntPtr.Zero) Marshal.FreeHGlobal(ptr_patrolRoute); + Marshal.FreeHGlobal(ptr_patrolRoute); if (!success) throw new Exception("Native execution failed"); } } public bool GetPatrolTaskInfo(IPlayer ped, ref int timeLeftAtNode, ref int nodeId) => GetPatrolTaskInfo(ped.ScriptId, ref timeLeftAtNode, ref nodeId); - public bool GetPatrolTaskInfo(int _ped, ref int _timeLeftAtNode, ref int _nodeId) + public bool GetPatrolTaskInfo(uint _ped, ref int _timeLeftAtNode, ref int _nodeId) { unsafe { - if (fn__getPatrolTaskInfo == null) fn__getPatrolTaskInfo = (delegate* unmanaged[Cdecl]) funcTable[0x52F734CEBE20DFBAUL]; + if (fn__getPatrolTaskInfo == null) fn__getPatrolTaskInfo = (delegate* unmanaged[Cdecl]) funcTable[0x52F734CEBE20DFBAUL]; var success = false; var ref_timeLeftAtNode = _timeLeftAtNode; var ref_nodeId = _nodeId; @@ -94792,23 +94779,23 @@ public bool GetPatrolTaskInfo(int _ped, ref int _timeLeftAtNode, ref int _nodeId } public void TaskPatrol(IPlayer ped, string patrolRouteName, int alertState, bool canChatToPeds, bool useHeadLookAt) => TaskPatrol(ped.ScriptId, patrolRouteName, alertState, canChatToPeds, useHeadLookAt); - public void TaskPatrol(int _ped, string _patrolRouteName, int _alertState, bool _canChatToPeds, bool _useHeadLookAt) + public void TaskPatrol(uint _ped, string _patrolRouteName, int _alertState, bool _canChatToPeds, bool _useHeadLookAt) { unsafe { - if (fn__taskPatrol == null) fn__taskPatrol = (delegate* unmanaged[Cdecl]) funcTable[0xBDA5DF49D080FE4EUL]; + if (fn__taskPatrol == null) fn__taskPatrol = (delegate* unmanaged[Cdecl]) funcTable[0xBDA5DF49D080FE4EUL]; var success = false; - var ptr_patrolRouteName = _patrolRouteName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_patrolRouteName); + var ptr_patrolRouteName = MemoryUtils.StringToHGlobalUtf8(_patrolRouteName); fn__taskPatrol(&success, _ped, ptr_patrolRouteName, _alertState, (byte) (_canChatToPeds ? 1 : 0), (byte) (_useHeadLookAt ? 1 : 0)); - if (ptr_patrolRouteName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_patrolRouteName); + Marshal.FreeHGlobal(ptr_patrolRouteName); if (!success) throw new Exception("Native execution failed"); } } public void TaskStayInCover(IPlayer ped) => TaskStayInCover(ped.ScriptId); - public void TaskStayInCover(int _ped) + public void TaskStayInCover(uint _ped) { unsafe { - if (fn__taskStayInCover == null) fn__taskStayInCover = (delegate* unmanaged[Cdecl]) funcTable[0xE5DA8615A6180789UL]; + if (fn__taskStayInCover == null) fn__taskStayInCover = (delegate* unmanaged[Cdecl]) funcTable[0xE5DA8615A6180789UL]; var success = false; fn__taskStayInCover(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -94816,49 +94803,49 @@ public void TaskStayInCover(int _ped) } public void AddVehicleSubtaskAttackCoord(IPlayer ped, float x, float y, float z) => AddVehicleSubtaskAttackCoord(ped.ScriptId, x, y, z); - public void AddVehicleSubtaskAttackCoord(int _ped, float _x, float _y, float _z) + public void AddVehicleSubtaskAttackCoord(uint _ped, float _x, float _y, float _z) { unsafe { - if (fn__addVehicleSubtaskAttackCoord == null) fn__addVehicleSubtaskAttackCoord = (delegate* unmanaged[Cdecl]) funcTable[0x5CF0D8F9BBA0DD75UL]; + if (fn__addVehicleSubtaskAttackCoord == null) fn__addVehicleSubtaskAttackCoord = (delegate* unmanaged[Cdecl]) funcTable[0x5CF0D8F9BBA0DD75UL]; var success = false; fn__addVehicleSubtaskAttackCoord(&success, _ped, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); } } - public void AddVehicleSubtaskAttackPed(IPlayer ped, int target) => AddVehicleSubtaskAttackPed(ped.ScriptId, target); - public void AddVehicleSubtaskAttackPed(int ped, IPlayer target) => AddVehicleSubtaskAttackPed(ped, target.ScriptId); + public void AddVehicleSubtaskAttackPed(IPlayer ped, uint target) => AddVehicleSubtaskAttackPed(ped.ScriptId, target); + public void AddVehicleSubtaskAttackPed(uint ped, IPlayer target) => AddVehicleSubtaskAttackPed(ped, target.ScriptId); public void AddVehicleSubtaskAttackPed(IPlayer ped, IPlayer target) => AddVehicleSubtaskAttackPed(ped.ScriptId, target.ScriptId); - public void AddVehicleSubtaskAttackPed(int _ped, int _target) + public void AddVehicleSubtaskAttackPed(uint _ped, uint _target) { unsafe { - if (fn__addVehicleSubtaskAttackPed == null) fn__addVehicleSubtaskAttackPed = (delegate* unmanaged[Cdecl]) funcTable[0x85F462BADC7DA47FUL]; + if (fn__addVehicleSubtaskAttackPed == null) fn__addVehicleSubtaskAttackPed = (delegate* unmanaged[Cdecl]) funcTable[0x85F462BADC7DA47FUL]; var success = false; fn__addVehicleSubtaskAttackPed(&success, _ped, _target); if (!success) throw new Exception("Native execution failed"); } } - public void TaskVehicleShootAtPed(IPlayer ped, int target, float fireTolerance) => TaskVehicleShootAtPed(ped.ScriptId, target, fireTolerance); - public void TaskVehicleShootAtPed(int ped, IPlayer target, float fireTolerance) => TaskVehicleShootAtPed(ped, target.ScriptId, fireTolerance); + public void TaskVehicleShootAtPed(IPlayer ped, uint target, float fireTolerance) => TaskVehicleShootAtPed(ped.ScriptId, target, fireTolerance); + public void TaskVehicleShootAtPed(uint ped, IPlayer target, float fireTolerance) => TaskVehicleShootAtPed(ped, target.ScriptId, fireTolerance); public void TaskVehicleShootAtPed(IPlayer ped, IPlayer target, float fireTolerance) => TaskVehicleShootAtPed(ped.ScriptId, target.ScriptId, fireTolerance); - public void TaskVehicleShootAtPed(int _ped, int _target, float _fireTolerance) + public void TaskVehicleShootAtPed(uint _ped, uint _target, float _fireTolerance) { unsafe { - if (fn__taskVehicleShootAtPed == null) fn__taskVehicleShootAtPed = (delegate* unmanaged[Cdecl]) funcTable[0x10AB107B887214D8UL]; + if (fn__taskVehicleShootAtPed == null) fn__taskVehicleShootAtPed = (delegate* unmanaged[Cdecl]) funcTable[0x10AB107B887214D8UL]; var success = false; fn__taskVehicleShootAtPed(&success, _ped, _target, _fireTolerance); if (!success) throw new Exception("Native execution failed"); } } - public void TaskVehicleAimAtPed(IPlayer ped, int target) => TaskVehicleAimAtPed(ped.ScriptId, target); - public void TaskVehicleAimAtPed(int ped, IPlayer target) => TaskVehicleAimAtPed(ped, target.ScriptId); + public void TaskVehicleAimAtPed(IPlayer ped, uint target) => TaskVehicleAimAtPed(ped.ScriptId, target); + public void TaskVehicleAimAtPed(uint ped, IPlayer target) => TaskVehicleAimAtPed(ped, target.ScriptId); public void TaskVehicleAimAtPed(IPlayer ped, IPlayer target) => TaskVehicleAimAtPed(ped.ScriptId, target.ScriptId); - public void TaskVehicleAimAtPed(int _ped, int _target) + public void TaskVehicleAimAtPed(uint _ped, uint _target) { unsafe { - if (fn__taskVehicleAimAtPed == null) fn__taskVehicleAimAtPed = (delegate* unmanaged[Cdecl]) funcTable[0xE41885592B08B097UL]; + if (fn__taskVehicleAimAtPed == null) fn__taskVehicleAimAtPed = (delegate* unmanaged[Cdecl]) funcTable[0xE41885592B08B097UL]; var success = false; fn__taskVehicleAimAtPed(&success, _ped, _target); if (!success) throw new Exception("Native execution failed"); @@ -94866,10 +94853,10 @@ public void TaskVehicleAimAtPed(int _ped, int _target) } public void TaskVehicleShootAtCoord(IPlayer ped, float x, float y, float z, float fireTolerance) => TaskVehicleShootAtCoord(ped.ScriptId, x, y, z, fireTolerance); - public void TaskVehicleShootAtCoord(int _ped, float _x, float _y, float _z, float _fireTolerance) + public void TaskVehicleShootAtCoord(uint _ped, float _x, float _y, float _z, float _fireTolerance) { unsafe { - if (fn__taskVehicleShootAtCoord == null) fn__taskVehicleShootAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x5190796ED39C9B6DUL]; + if (fn__taskVehicleShootAtCoord == null) fn__taskVehicleShootAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x5190796ED39C9B6DUL]; var success = false; fn__taskVehicleShootAtCoord(&success, _ped, _x, _y, _z, _fireTolerance); if (!success) throw new Exception("Native execution failed"); @@ -94877,23 +94864,23 @@ public void TaskVehicleShootAtCoord(int _ped, float _x, float _y, float _z, floa } public void TaskVehicleAimAtCoord(IPlayer ped, float x, float y, float z) => TaskVehicleAimAtCoord(ped.ScriptId, x, y, z); - public void TaskVehicleAimAtCoord(int _ped, float _x, float _y, float _z) + public void TaskVehicleAimAtCoord(uint _ped, float _x, float _y, float _z) { unsafe { - if (fn__taskVehicleAimAtCoord == null) fn__taskVehicleAimAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x447C1E9EF844BC0FUL]; + if (fn__taskVehicleAimAtCoord == null) fn__taskVehicleAimAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x447C1E9EF844BC0FUL]; var success = false; fn__taskVehicleAimAtCoord(&success, _ped, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); } } - public void TaskVehicleGotoNavmesh(IPlayer ped, int vehicle, float x, float y, float z, float speed, int behaviorFlag, float stoppingRange) => TaskVehicleGotoNavmesh(ped.ScriptId, vehicle, x, y, z, speed, behaviorFlag, stoppingRange); - public void TaskVehicleGotoNavmesh(int ped, IVehicle vehicle, float x, float y, float z, float speed, int behaviorFlag, float stoppingRange) => TaskVehicleGotoNavmesh(ped, vehicle.ScriptId, x, y, z, speed, behaviorFlag, stoppingRange); + public void TaskVehicleGotoNavmesh(IPlayer ped, uint vehicle, float x, float y, float z, float speed, int behaviorFlag, float stoppingRange) => TaskVehicleGotoNavmesh(ped.ScriptId, vehicle, x, y, z, speed, behaviorFlag, stoppingRange); + public void TaskVehicleGotoNavmesh(uint ped, IVehicle vehicle, float x, float y, float z, float speed, int behaviorFlag, float stoppingRange) => TaskVehicleGotoNavmesh(ped, vehicle.ScriptId, x, y, z, speed, behaviorFlag, stoppingRange); public void TaskVehicleGotoNavmesh(IPlayer ped, IVehicle vehicle, float x, float y, float z, float speed, int behaviorFlag, float stoppingRange) => TaskVehicleGotoNavmesh(ped.ScriptId, vehicle.ScriptId, x, y, z, speed, behaviorFlag, stoppingRange); - public void TaskVehicleGotoNavmesh(int _ped, int _vehicle, float _x, float _y, float _z, float _speed, int _behaviorFlag, float _stoppingRange) + public void TaskVehicleGotoNavmesh(uint _ped, uint _vehicle, float _x, float _y, float _z, float _speed, int _behaviorFlag, float _stoppingRange) { unsafe { - if (fn__taskVehicleGotoNavmesh == null) fn__taskVehicleGotoNavmesh = (delegate* unmanaged[Cdecl]) funcTable[0x195AEEB13CEFE2EEUL]; + if (fn__taskVehicleGotoNavmesh == null) fn__taskVehicleGotoNavmesh = (delegate* unmanaged[Cdecl]) funcTable[0x195AEEB13CEFE2EEUL]; var success = false; fn__taskVehicleGotoNavmesh(&success, _ped, _vehicle, _x, _y, _z, _speed, _behaviorFlag, _stoppingRange); if (!success) throw new Exception("Native execution failed"); @@ -94901,23 +94888,23 @@ public void TaskVehicleGotoNavmesh(int _ped, int _vehicle, float _x, float _y, f } public void TaskGoToCoordWhileAimingAtCoord(IPlayer ped, float x, float y, float z, float aimAtX, float aimAtY, float aimAtZ, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, int navFlags, bool instantBlendToAim, uint firingPattern) => TaskGoToCoordWhileAimingAtCoord(ped.ScriptId, x, y, z, aimAtX, aimAtY, aimAtZ, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, navFlags, instantBlendToAim, firingPattern); - public void TaskGoToCoordWhileAimingAtCoord(int _ped, float _x, float _y, float _z, float _aimAtX, float _aimAtY, float _aimAtZ, float _moveBlendRatio, bool _shoot, float _targetRadius, float _slowDistance, bool _useNavMesh, int _navFlags, bool _instantBlendToAim, uint _firingPattern) + public void TaskGoToCoordWhileAimingAtCoord(uint _ped, float _x, float _y, float _z, float _aimAtX, float _aimAtY, float _aimAtZ, float _moveBlendRatio, bool _shoot, float _targetRadius, float _slowDistance, bool _useNavMesh, int _navFlags, bool _instantBlendToAim, uint _firingPattern) { unsafe { - if (fn__taskGoToCoordWhileAimingAtCoord == null) fn__taskGoToCoordWhileAimingAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x11315AB3385B8AC0UL]; + if (fn__taskGoToCoordWhileAimingAtCoord == null) fn__taskGoToCoordWhileAimingAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x11315AB3385B8AC0UL]; var success = false; fn__taskGoToCoordWhileAimingAtCoord(&success, _ped, _x, _y, _z, _aimAtX, _aimAtY, _aimAtZ, _moveBlendRatio, (byte) (_shoot ? 1 : 0), _targetRadius, _slowDistance, (byte) (_useNavMesh ? 1 : 0), _navFlags, (byte) (_instantBlendToAim ? 1 : 0), _firingPattern); if (!success) throw new Exception("Native execution failed"); } } - public void TaskGoToCoordWhileAimingAtEntity(IPlayer ped, float x, float y, float z, int aimAtID, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, int navFlags, bool instantBlendToAim, uint firingPattern, int time) => TaskGoToCoordWhileAimingAtEntity(ped.ScriptId, x, y, z, aimAtID, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, navFlags, instantBlendToAim, firingPattern, time); - public void TaskGoToCoordWhileAimingAtEntity(int ped, float x, float y, float z, IEntity aimAtID, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, int navFlags, bool instantBlendToAim, uint firingPattern, int time) => TaskGoToCoordWhileAimingAtEntity(ped, x, y, z, aimAtID.ScriptId, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, navFlags, instantBlendToAim, firingPattern, time); + public void TaskGoToCoordWhileAimingAtEntity(IPlayer ped, float x, float y, float z, uint aimAtID, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, int navFlags, bool instantBlendToAim, uint firingPattern, int time) => TaskGoToCoordWhileAimingAtEntity(ped.ScriptId, x, y, z, aimAtID, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, navFlags, instantBlendToAim, firingPattern, time); + public void TaskGoToCoordWhileAimingAtEntity(uint ped, float x, float y, float z, IEntity aimAtID, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, int navFlags, bool instantBlendToAim, uint firingPattern, int time) => TaskGoToCoordWhileAimingAtEntity(ped, x, y, z, aimAtID.ScriptId, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, navFlags, instantBlendToAim, firingPattern, time); public void TaskGoToCoordWhileAimingAtEntity(IPlayer ped, float x, float y, float z, IEntity aimAtID, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, int navFlags, bool instantBlendToAim, uint firingPattern, int time) => TaskGoToCoordWhileAimingAtEntity(ped.ScriptId, x, y, z, aimAtID.ScriptId, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, navFlags, instantBlendToAim, firingPattern, time); - public void TaskGoToCoordWhileAimingAtEntity(int _ped, float _x, float _y, float _z, int _aimAtID, float _moveBlendRatio, bool _shoot, float _targetRadius, float _slowDistance, bool _useNavMesh, int _navFlags, bool _instantBlendToAim, uint _firingPattern, int _time) + public void TaskGoToCoordWhileAimingAtEntity(uint _ped, float _x, float _y, float _z, uint _aimAtID, float _moveBlendRatio, bool _shoot, float _targetRadius, float _slowDistance, bool _useNavMesh, int _navFlags, bool _instantBlendToAim, uint _firingPattern, int _time) { unsafe { - if (fn__taskGoToCoordWhileAimingAtEntity == null) fn__taskGoToCoordWhileAimingAtEntity = (delegate* unmanaged[Cdecl]) funcTable[0xB2A16444EAD9AE47UL]; + if (fn__taskGoToCoordWhileAimingAtEntity == null) fn__taskGoToCoordWhileAimingAtEntity = (delegate* unmanaged[Cdecl]) funcTable[0xB2A16444EAD9AE47UL]; var success = false; fn__taskGoToCoordWhileAimingAtEntity(&success, _ped, _x, _y, _z, _aimAtID, _moveBlendRatio, (byte) (_shoot ? 1 : 0), _targetRadius, _slowDistance, (byte) (_useNavMesh ? 1 : 0), _navFlags, (byte) (_instantBlendToAim ? 1 : 0), _firingPattern, _time); if (!success) throw new Exception("Native execution failed"); @@ -94925,40 +94912,40 @@ public void TaskGoToCoordWhileAimingAtEntity(int _ped, float _x, float _y, float } public void TaskGoToCoordAndAimAtHatedEntitiesNearCoord(IPlayer pedHandle, float goToLocationX, float goToLocationY, float goToLocationZ, float focusLocationX, float focusLocationY, float focusLocationZ, float speed, bool shootAtEnemies, float distanceToStopAt, float noRoadsDistance, bool useNavMesh, int navFlags, int taskFlags, uint firingPattern) => TaskGoToCoordAndAimAtHatedEntitiesNearCoord(pedHandle.ScriptId, goToLocationX, goToLocationY, goToLocationZ, focusLocationX, focusLocationY, focusLocationZ, speed, shootAtEnemies, distanceToStopAt, noRoadsDistance, useNavMesh, navFlags, taskFlags, firingPattern); - public void TaskGoToCoordAndAimAtHatedEntitiesNearCoord(int _pedHandle, float _goToLocationX, float _goToLocationY, float _goToLocationZ, float _focusLocationX, float _focusLocationY, float _focusLocationZ, float _speed, bool _shootAtEnemies, float _distanceToStopAt, float _noRoadsDistance, bool _useNavMesh, int _navFlags, int _taskFlags, uint _firingPattern) + public void TaskGoToCoordAndAimAtHatedEntitiesNearCoord(uint _pedHandle, float _goToLocationX, float _goToLocationY, float _goToLocationZ, float _focusLocationX, float _focusLocationY, float _focusLocationZ, float _speed, bool _shootAtEnemies, float _distanceToStopAt, float _noRoadsDistance, bool _useNavMesh, int _navFlags, int _taskFlags, uint _firingPattern) { unsafe { - if (fn__taskGoToCoordAndAimAtHatedEntitiesNearCoord == null) fn__taskGoToCoordAndAimAtHatedEntitiesNearCoord = (delegate* unmanaged[Cdecl]) funcTable[0xA55547801EB331FCUL]; + if (fn__taskGoToCoordAndAimAtHatedEntitiesNearCoord == null) fn__taskGoToCoordAndAimAtHatedEntitiesNearCoord = (delegate* unmanaged[Cdecl]) funcTable[0xA55547801EB331FCUL]; var success = false; fn__taskGoToCoordAndAimAtHatedEntitiesNearCoord(&success, _pedHandle, _goToLocationX, _goToLocationY, _goToLocationZ, _focusLocationX, _focusLocationY, _focusLocationZ, _speed, (byte) (_shootAtEnemies ? 1 : 0), _distanceToStopAt, _noRoadsDistance, (byte) (_useNavMesh ? 1 : 0), _navFlags, _taskFlags, _firingPattern); if (!success) throw new Exception("Native execution failed"); } } - public void TaskGoToEntityWhileAimingAtCoord(IPlayer ped, int entity, float aimX, float aimY, float aimZ, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern) => TaskGoToEntityWhileAimingAtCoord(ped.ScriptId, entity, aimX, aimY, aimZ, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); - public void TaskGoToEntityWhileAimingAtCoord(int ped, IEntity entity, float aimX, float aimY, float aimZ, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern) => TaskGoToEntityWhileAimingAtCoord(ped, entity.ScriptId, aimX, aimY, aimZ, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); + public void TaskGoToEntityWhileAimingAtCoord(IPlayer ped, uint entity, float aimX, float aimY, float aimZ, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern) => TaskGoToEntityWhileAimingAtCoord(ped.ScriptId, entity, aimX, aimY, aimZ, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); + public void TaskGoToEntityWhileAimingAtCoord(uint ped, IEntity entity, float aimX, float aimY, float aimZ, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern) => TaskGoToEntityWhileAimingAtCoord(ped, entity.ScriptId, aimX, aimY, aimZ, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); public void TaskGoToEntityWhileAimingAtCoord(IPlayer ped, IEntity entity, float aimX, float aimY, float aimZ, float moveBlendRatio, bool shoot, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern) => TaskGoToEntityWhileAimingAtCoord(ped.ScriptId, entity.ScriptId, aimX, aimY, aimZ, moveBlendRatio, shoot, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); - public void TaskGoToEntityWhileAimingAtCoord(int _ped, int _entity, float _aimX, float _aimY, float _aimZ, float _moveBlendRatio, bool _shoot, float _targetRadius, float _slowDistance, bool _useNavMesh, bool _instantBlendToAim, uint _firingPattern) + public void TaskGoToEntityWhileAimingAtCoord(uint _ped, uint _entity, float _aimX, float _aimY, float _aimZ, float _moveBlendRatio, bool _shoot, float _targetRadius, float _slowDistance, bool _useNavMesh, bool _instantBlendToAim, uint _firingPattern) { unsafe { - if (fn__taskGoToEntityWhileAimingAtCoord == null) fn__taskGoToEntityWhileAimingAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x04701832B739DCE5UL]; + if (fn__taskGoToEntityWhileAimingAtCoord == null) fn__taskGoToEntityWhileAimingAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x04701832B739DCE5UL]; var success = false; fn__taskGoToEntityWhileAimingAtCoord(&success, _ped, _entity, _aimX, _aimY, _aimZ, _moveBlendRatio, (byte) (_shoot ? 1 : 0), _targetRadius, _slowDistance, (byte) (_useNavMesh ? 1 : 0), (byte) (_instantBlendToAim ? 1 : 0), _firingPattern); if (!success) throw new Exception("Native execution failed"); } } - public void TaskGoToEntityWhileAimingAtEntity(IPlayer ped, int entityToWalkTo, int entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern) => TaskGoToEntityWhileAimingAtEntity(ped.ScriptId, entityToWalkTo, entityToAimAt, speed, shootatEntity, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); - public void TaskGoToEntityWhileAimingAtEntity(int ped, IEntity entityToWalkTo, int entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern) => TaskGoToEntityWhileAimingAtEntity(ped, entityToWalkTo.ScriptId, entityToAimAt, speed, shootatEntity, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); - public void TaskGoToEntityWhileAimingAtEntity(IPlayer ped, IEntity entityToWalkTo, int entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern) => TaskGoToEntityWhileAimingAtEntity(ped.ScriptId, entityToWalkTo.ScriptId, entityToAimAt, speed, shootatEntity, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); - public void TaskGoToEntityWhileAimingAtEntity(int ped, int entityToWalkTo, IEntity entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern) => TaskGoToEntityWhileAimingAtEntity(ped, entityToWalkTo, entityToAimAt.ScriptId, speed, shootatEntity, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); - public void TaskGoToEntityWhileAimingAtEntity(IPlayer ped, int entityToWalkTo, IEntity entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern) => TaskGoToEntityWhileAimingAtEntity(ped.ScriptId, entityToWalkTo, entityToAimAt.ScriptId, speed, shootatEntity, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); - public void TaskGoToEntityWhileAimingAtEntity(int ped, IEntity entityToWalkTo, IEntity entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern) => TaskGoToEntityWhileAimingAtEntity(ped, entityToWalkTo.ScriptId, entityToAimAt.ScriptId, speed, shootatEntity, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); + public void TaskGoToEntityWhileAimingAtEntity(IPlayer ped, uint entityToWalkTo, uint entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern) => TaskGoToEntityWhileAimingAtEntity(ped.ScriptId, entityToWalkTo, entityToAimAt, speed, shootatEntity, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); + public void TaskGoToEntityWhileAimingAtEntity(uint ped, IEntity entityToWalkTo, uint entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern) => TaskGoToEntityWhileAimingAtEntity(ped, entityToWalkTo.ScriptId, entityToAimAt, speed, shootatEntity, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); + public void TaskGoToEntityWhileAimingAtEntity(IPlayer ped, IEntity entityToWalkTo, uint entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern) => TaskGoToEntityWhileAimingAtEntity(ped.ScriptId, entityToWalkTo.ScriptId, entityToAimAt, speed, shootatEntity, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); + public void TaskGoToEntityWhileAimingAtEntity(uint ped, uint entityToWalkTo, IEntity entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern) => TaskGoToEntityWhileAimingAtEntity(ped, entityToWalkTo, entityToAimAt.ScriptId, speed, shootatEntity, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); + public void TaskGoToEntityWhileAimingAtEntity(IPlayer ped, uint entityToWalkTo, IEntity entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern) => TaskGoToEntityWhileAimingAtEntity(ped.ScriptId, entityToWalkTo, entityToAimAt.ScriptId, speed, shootatEntity, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); + public void TaskGoToEntityWhileAimingAtEntity(uint ped, IEntity entityToWalkTo, IEntity entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern) => TaskGoToEntityWhileAimingAtEntity(ped, entityToWalkTo.ScriptId, entityToAimAt.ScriptId, speed, shootatEntity, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); public void TaskGoToEntityWhileAimingAtEntity(IPlayer ped, IEntity entityToWalkTo, IEntity entityToAimAt, float speed, bool shootatEntity, float targetRadius, float slowDistance, bool useNavMesh, bool instantBlendToAim, uint firingPattern) => TaskGoToEntityWhileAimingAtEntity(ped.ScriptId, entityToWalkTo.ScriptId, entityToAimAt.ScriptId, speed, shootatEntity, targetRadius, slowDistance, useNavMesh, instantBlendToAim, firingPattern); - public void TaskGoToEntityWhileAimingAtEntity(int _ped, int _entityToWalkTo, int _entityToAimAt, float _speed, bool _shootatEntity, float _targetRadius, float _slowDistance, bool _useNavMesh, bool _instantBlendToAim, uint _firingPattern) + public void TaskGoToEntityWhileAimingAtEntity(uint _ped, uint _entityToWalkTo, uint _entityToAimAt, float _speed, bool _shootatEntity, float _targetRadius, float _slowDistance, bool _useNavMesh, bool _instantBlendToAim, uint _firingPattern) { unsafe { - if (fn__taskGoToEntityWhileAimingAtEntity == null) fn__taskGoToEntityWhileAimingAtEntity = (delegate* unmanaged[Cdecl]) funcTable[0x97465886D35210E9UL]; + if (fn__taskGoToEntityWhileAimingAtEntity == null) fn__taskGoToEntityWhileAimingAtEntity = (delegate* unmanaged[Cdecl]) funcTable[0x97465886D35210E9UL]; var success = false; fn__taskGoToEntityWhileAimingAtEntity(&success, _ped, _entityToWalkTo, _entityToAimAt, _speed, (byte) (_shootatEntity ? 1 : 0), _targetRadius, _slowDistance, (byte) (_useNavMesh ? 1 : 0), (byte) (_instantBlendToAim ? 1 : 0), _firingPattern); if (!success) throw new Exception("Native execution failed"); @@ -94966,10 +94953,10 @@ public void TaskGoToEntityWhileAimingAtEntity(int _ped, int _entityToWalkTo, int } public void SetHighFallTask(IPlayer ped, int minTime, int maxTime, int entryType) => SetHighFallTask(ped.ScriptId, minTime, maxTime, entryType); - public void SetHighFallTask(int _ped, int _minTime, int _maxTime, int _entryType) + public void SetHighFallTask(uint _ped, int _minTime, int _maxTime, int _entryType) { unsafe { - if (fn__setHighFallTask == null) fn__setHighFallTask = (delegate* unmanaged[Cdecl]) funcTable[0x8C825BDC7741D37CUL]; + if (fn__setHighFallTask == null) fn__setHighFallTask = (delegate* unmanaged[Cdecl]) funcTable[0x8C825BDC7741D37CUL]; var success = false; fn__setHighFallTask(&success, _ped, _minTime, _maxTime, _entryType); if (!success) throw new Exception("Native execution failed"); @@ -94981,9 +94968,9 @@ public void RequestWaypointRecording(string _name) unsafe { if (fn__requestWaypointRecording == null) fn__requestWaypointRecording = (delegate* unmanaged[Cdecl]) funcTable[0x9EEFB62EB27B5792UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__requestWaypointRecording(&success, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -94993,9 +94980,9 @@ public bool GetIsWaypointRecordingLoaded(string _name) unsafe { if (fn__getIsWaypointRecordingLoaded == null) fn__getIsWaypointRecordingLoaded = (delegate* unmanaged[Cdecl]) funcTable[0xCB4E8BE8A0063C5DUL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var result = fn__getIsWaypointRecordingLoaded(&success, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -95006,9 +94993,9 @@ public void RemoveWaypointRecording(string _name) unsafe { if (fn__removeWaypointRecording == null) fn__removeWaypointRecording = (delegate* unmanaged[Cdecl]) funcTable[0xFF1B8B4AA1C25DC8UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__removeWaypointRecording(&success, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } @@ -95018,10 +95005,10 @@ public bool WaypointRecordingGetNumPoints(string _name, ref int _points) unsafe { if (fn__waypointRecordingGetNumPoints == null) fn__waypointRecordingGetNumPoints = (delegate* unmanaged[Cdecl]) funcTable[0x5343532C01A07234UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var ref_points = _points; var result = fn__waypointRecordingGetNumPoints(&success, ptr_name, &ref_points); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); _points = ref_points; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -95033,10 +95020,10 @@ public bool WaypointRecordingGetCoord(string _name, int _point, ref Vector3 _coo unsafe { if (fn__waypointRecordingGetCoord == null) fn__waypointRecordingGetCoord = (delegate* unmanaged[Cdecl]) funcTable[0x2FB897405C90B361UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var ref_coord = _coord; var result = fn__waypointRecordingGetCoord(&success, ptr_name, _point, &ref_coord); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); _coord = ref_coord; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -95048,9 +95035,9 @@ public float WaypointRecordingGetSpeedAtPoint(string _name, int _point) unsafe { if (fn__waypointRecordingGetSpeedAtPoint == null) fn__waypointRecordingGetSpeedAtPoint = (delegate* unmanaged[Cdecl]) funcTable[0x005622AEBC33ACA9UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var result = fn__waypointRecordingGetSpeedAtPoint(&success, ptr_name, _point); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); return result; } @@ -95061,10 +95048,10 @@ public bool WaypointRecordingGetClosestWaypoint(string _name, float _x, float _y unsafe { if (fn__waypointRecordingGetClosestWaypoint == null) fn__waypointRecordingGetClosestWaypoint = (delegate* unmanaged[Cdecl]) funcTable[0xB629A298081F876FUL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var ref_point = _point; var result = fn__waypointRecordingGetClosestWaypoint(&success, ptr_name, _x, _y, _z, &ref_point); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); _point = ref_point; if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; @@ -95072,23 +95059,23 @@ public bool WaypointRecordingGetClosestWaypoint(string _name, float _x, float _y } public void TaskFollowWaypointRecording(IPlayer ped, string name, int p2, int p3, int p4) => TaskFollowWaypointRecording(ped.ScriptId, name, p2, p3, p4); - public void TaskFollowWaypointRecording(int _ped, string _name, int _p2, int _p3, int _p4) + public void TaskFollowWaypointRecording(uint _ped, string _name, int _p2, int _p3, int _p4) { unsafe { - if (fn__taskFollowWaypointRecording == null) fn__taskFollowWaypointRecording = (delegate* unmanaged[Cdecl]) funcTable[0x0759591819534F7BUL]; + if (fn__taskFollowWaypointRecording == null) fn__taskFollowWaypointRecording = (delegate* unmanaged[Cdecl]) funcTable[0x0759591819534F7BUL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__taskFollowWaypointRecording(&success, _ped, ptr_name, _p2, _p3, _p4); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } public bool IsWaypointPlaybackGoingOnForPed(IPlayer ped) => IsWaypointPlaybackGoingOnForPed(ped.ScriptId); - public bool IsWaypointPlaybackGoingOnForPed(int _ped) + public bool IsWaypointPlaybackGoingOnForPed(uint _ped) { unsafe { - if (fn__isWaypointPlaybackGoingOnForPed == null) fn__isWaypointPlaybackGoingOnForPed = (delegate* unmanaged[Cdecl]) funcTable[0xE03B3F2D3DC59B64UL]; + if (fn__isWaypointPlaybackGoingOnForPed == null) fn__isWaypointPlaybackGoingOnForPed = (delegate* unmanaged[Cdecl]) funcTable[0xE03B3F2D3DC59B64UL]; var success = false; var result = fn__isWaypointPlaybackGoingOnForPed(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -95097,10 +95084,10 @@ public bool IsWaypointPlaybackGoingOnForPed(int _ped) } public int GetPedWaypointProgress(IPlayer ped) => GetPedWaypointProgress(ped.ScriptId); - public int GetPedWaypointProgress(int _ped) + public int GetPedWaypointProgress(uint _ped) { unsafe { - if (fn__getPedWaypointProgress == null) fn__getPedWaypointProgress = (delegate* unmanaged[Cdecl]) funcTable[0x2720AAA75001E094UL]; + if (fn__getPedWaypointProgress == null) fn__getPedWaypointProgress = (delegate* unmanaged[Cdecl]) funcTable[0x2720AAA75001E094UL]; var success = false; var result = fn__getPedWaypointProgress(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -95120,10 +95107,10 @@ public float GetPedWaypointDistance(int _p0) } public bool SetPedWaypointRouteOffset(IPlayer ped, float x, float y, float z) => SetPedWaypointRouteOffset(ped.ScriptId, x, y, z); - public bool SetPedWaypointRouteOffset(int _ped, float _x, float _y, float _z) + public bool SetPedWaypointRouteOffset(uint _ped, float _x, float _y, float _z) { unsafe { - if (fn__setPedWaypointRouteOffset == null) fn__setPedWaypointRouteOffset = (delegate* unmanaged[Cdecl]) funcTable[0xED98E10B0AFCE4B4UL]; + if (fn__setPedWaypointRouteOffset == null) fn__setPedWaypointRouteOffset = (delegate* unmanaged[Cdecl]) funcTable[0xED98E10B0AFCE4B4UL]; var success = false; var result = fn__setPedWaypointRouteOffset(&success, _ped, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); @@ -95136,9 +95123,9 @@ public float GetWaypointDistanceAlongRoute(string _name, int _point) unsafe { if (fn__getWaypointDistanceAlongRoute == null) fn__getWaypointDistanceAlongRoute = (delegate* unmanaged[Cdecl]) funcTable[0xA5B769058763E497UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var result = fn__getWaypointDistanceAlongRoute(&success, ptr_name, _point); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); return result; } @@ -95200,20 +95187,20 @@ public void UseWaypointRecordingAsAssistedMovementRoute(string _name, bool _p1, unsafe { if (fn__useWaypointRecordingAsAssistedMovementRoute == null) fn__useWaypointRecordingAsAssistedMovementRoute = (delegate* unmanaged[Cdecl]) funcTable[0x5A353B8E6B1095B5UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__useWaypointRecordingAsAssistedMovementRoute(&success, ptr_name, (byte) (_p1 ? 1 : 0), _p2, _p3); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } - public void WaypointPlaybackStartAimingAtPed(IPlayer ped, int target, bool p2) => WaypointPlaybackStartAimingAtPed(ped.ScriptId, target, p2); - public void WaypointPlaybackStartAimingAtPed(int ped, IPlayer target, bool p2) => WaypointPlaybackStartAimingAtPed(ped, target.ScriptId, p2); + public void WaypointPlaybackStartAimingAtPed(IPlayer ped, uint target, bool p2) => WaypointPlaybackStartAimingAtPed(ped.ScriptId, target, p2); + public void WaypointPlaybackStartAimingAtPed(uint ped, IPlayer target, bool p2) => WaypointPlaybackStartAimingAtPed(ped, target.ScriptId, p2); public void WaypointPlaybackStartAimingAtPed(IPlayer ped, IPlayer target, bool p2) => WaypointPlaybackStartAimingAtPed(ped.ScriptId, target.ScriptId, p2); - public void WaypointPlaybackStartAimingAtPed(int _ped, int _target, bool _p2) + public void WaypointPlaybackStartAimingAtPed(uint _ped, uint _target, bool _p2) { unsafe { - if (fn__waypointPlaybackStartAimingAtPed == null) fn__waypointPlaybackStartAimingAtPed = (delegate* unmanaged[Cdecl]) funcTable[0x20E330937C399D29UL]; + if (fn__waypointPlaybackStartAimingAtPed == null) fn__waypointPlaybackStartAimingAtPed = (delegate* unmanaged[Cdecl]) funcTable[0x20E330937C399D29UL]; var success = false; fn__waypointPlaybackStartAimingAtPed(&success, _ped, _target, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -95221,23 +95208,23 @@ public void WaypointPlaybackStartAimingAtPed(int _ped, int _target, bool _p2) } public void WaypointPlaybackStartAimingAtCoord(IPlayer ped, float x, float y, float z, bool p4) => WaypointPlaybackStartAimingAtCoord(ped.ScriptId, x, y, z, p4); - public void WaypointPlaybackStartAimingAtCoord(int _ped, float _x, float _y, float _z, bool _p4) + public void WaypointPlaybackStartAimingAtCoord(uint _ped, float _x, float _y, float _z, bool _p4) { unsafe { - if (fn__waypointPlaybackStartAimingAtCoord == null) fn__waypointPlaybackStartAimingAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x8968400D900ED8B3UL]; + if (fn__waypointPlaybackStartAimingAtCoord == null) fn__waypointPlaybackStartAimingAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x8968400D900ED8B3UL]; var success = false; fn__waypointPlaybackStartAimingAtCoord(&success, _ped, _x, _y, _z, (byte) (_p4 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void WaypointPlaybackStartShootingAtPed(IPlayer ped, int ped2, bool p2, bool p3) => WaypointPlaybackStartShootingAtPed(ped.ScriptId, ped2, p2, p3); - public void WaypointPlaybackStartShootingAtPed(int ped, IPlayer ped2, bool p2, bool p3) => WaypointPlaybackStartShootingAtPed(ped, ped2.ScriptId, p2, p3); + public void WaypointPlaybackStartShootingAtPed(IPlayer ped, uint ped2, bool p2, bool p3) => WaypointPlaybackStartShootingAtPed(ped.ScriptId, ped2, p2, p3); + public void WaypointPlaybackStartShootingAtPed(uint ped, IPlayer ped2, bool p2, bool p3) => WaypointPlaybackStartShootingAtPed(ped, ped2.ScriptId, p2, p3); public void WaypointPlaybackStartShootingAtPed(IPlayer ped, IPlayer ped2, bool p2, bool p3) => WaypointPlaybackStartShootingAtPed(ped.ScriptId, ped2.ScriptId, p2, p3); - public void WaypointPlaybackStartShootingAtPed(int _ped, int _ped2, bool _p2, bool _p3) + public void WaypointPlaybackStartShootingAtPed(uint _ped, uint _ped2, bool _p2, bool _p3) { unsafe { - if (fn__waypointPlaybackStartShootingAtPed == null) fn__waypointPlaybackStartShootingAtPed = (delegate* unmanaged[Cdecl]) funcTable[0xE70BA7B90F8390DCUL]; + if (fn__waypointPlaybackStartShootingAtPed == null) fn__waypointPlaybackStartShootingAtPed = (delegate* unmanaged[Cdecl]) funcTable[0xE70BA7B90F8390DCUL]; var success = false; fn__waypointPlaybackStartShootingAtPed(&success, _ped, _ped2, (byte) (_p2 ? 1 : 0), (byte) (_p3 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -95245,10 +95232,10 @@ public void WaypointPlaybackStartShootingAtPed(int _ped, int _ped2, bool _p2, bo } public void WaypointPlaybackStartShootingAtCoord(IPlayer ped, float x, float y, float z, bool p4, uint firingPattern) => WaypointPlaybackStartShootingAtCoord(ped.ScriptId, x, y, z, p4, firingPattern); - public void WaypointPlaybackStartShootingAtCoord(int _ped, float _x, float _y, float _z, bool _p4, uint _firingPattern) + public void WaypointPlaybackStartShootingAtCoord(uint _ped, float _x, float _y, float _z, bool _p4, uint _firingPattern) { unsafe { - if (fn__waypointPlaybackStartShootingAtCoord == null) fn__waypointPlaybackStartShootingAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x057A25CFCC9DB671UL]; + if (fn__waypointPlaybackStartShootingAtCoord == null) fn__waypointPlaybackStartShootingAtCoord = (delegate* unmanaged[Cdecl]) funcTable[0x057A25CFCC9DB671UL]; var success = false; fn__waypointPlaybackStartShootingAtCoord(&success, _ped, _x, _y, _z, (byte) (_p4 ? 1 : 0), _firingPattern); if (!success) throw new Exception("Native execution failed"); @@ -95256,10 +95243,10 @@ public void WaypointPlaybackStartShootingAtCoord(int _ped, float _x, float _y, f } public void WaypointPlaybackStopAimingOrShooting(IPlayer ped) => WaypointPlaybackStopAimingOrShooting(ped.ScriptId); - public void WaypointPlaybackStopAimingOrShooting(int _ped) + public void WaypointPlaybackStopAimingOrShooting(uint _ped) { unsafe { - if (fn__waypointPlaybackStopAimingOrShooting == null) fn__waypointPlaybackStopAimingOrShooting = (delegate* unmanaged[Cdecl]) funcTable[0x47EFA040EBB8E2EAUL]; + if (fn__waypointPlaybackStopAimingOrShooting == null) fn__waypointPlaybackStopAimingOrShooting = (delegate* unmanaged[Cdecl]) funcTable[0x47EFA040EBB8E2EAUL]; var success = false; fn__waypointPlaybackStopAimingOrShooting(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -95271,9 +95258,9 @@ public void AssistedMovementRequestRoute(string _route) unsafe { if (fn__assistedMovementRequestRoute == null) fn__assistedMovementRequestRoute = (delegate* unmanaged[Cdecl]) funcTable[0x817268968605947AUL]; var success = false; - var ptr_route = _route == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_route); + var ptr_route = MemoryUtils.StringToHGlobalUtf8(_route); fn__assistedMovementRequestRoute(&success, ptr_route); - if (ptr_route != IntPtr.Zero) Marshal.FreeHGlobal(ptr_route); + Marshal.FreeHGlobal(ptr_route); if (!success) throw new Exception("Native execution failed"); } } @@ -95283,9 +95270,9 @@ public void AssistedMovementRemoveRoute(string _route) unsafe { if (fn__assistedMovementRemoveRoute == null) fn__assistedMovementRemoveRoute = (delegate* unmanaged[Cdecl]) funcTable[0x3548536485DD792BUL]; var success = false; - var ptr_route = _route == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_route); + var ptr_route = MemoryUtils.StringToHGlobalUtf8(_route); fn__assistedMovementRemoveRoute(&success, ptr_route); - if (ptr_route != IntPtr.Zero) Marshal.FreeHGlobal(ptr_route); + Marshal.FreeHGlobal(ptr_route); if (!success) throw new Exception("Native execution failed"); } } @@ -95295,9 +95282,9 @@ public bool AssistedMovementIsRouteLoaded(string _route) unsafe { if (fn__assistedMovementIsRouteLoaded == null) fn__assistedMovementIsRouteLoaded = (delegate* unmanaged[Cdecl]) funcTable[0x60F9A4393A21F741UL]; var success = false; - var ptr_route = _route == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_route); + var ptr_route = MemoryUtils.StringToHGlobalUtf8(_route); var result = fn__assistedMovementIsRouteLoaded(&success, ptr_route); - if (ptr_route != IntPtr.Zero) Marshal.FreeHGlobal(ptr_route); + Marshal.FreeHGlobal(ptr_route); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -95308,9 +95295,9 @@ public void AssistedMovementSetRouteProperties(string _route, int _props) unsafe { if (fn__assistedMovementSetRouteProperties == null) fn__assistedMovementSetRouteProperties = (delegate* unmanaged[Cdecl]) funcTable[0xD5002D78B7162E1BUL]; var success = false; - var ptr_route = _route == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_route); + var ptr_route = MemoryUtils.StringToHGlobalUtf8(_route); fn__assistedMovementSetRouteProperties(&success, ptr_route, _props); - if (ptr_route != IntPtr.Zero) Marshal.FreeHGlobal(ptr_route); + Marshal.FreeHGlobal(ptr_route); if (!success) throw new Exception("Native execution failed"); } } @@ -95325,26 +95312,26 @@ public void AssistedMovementOverrideLoadDistanceThisFrame(float _dist) } } - public void TaskVehicleFollowWaypointRecording(IPlayer ped, int vehicle, string WPRecording, int p3, int p4, int p5, int p6, float p7, bool p8, float p9) => TaskVehicleFollowWaypointRecording(ped.ScriptId, vehicle, WPRecording, p3, p4, p5, p6, p7, p8, p9); - public void TaskVehicleFollowWaypointRecording(int ped, IVehicle vehicle, string WPRecording, int p3, int p4, int p5, int p6, float p7, bool p8, float p9) => TaskVehicleFollowWaypointRecording(ped, vehicle.ScriptId, WPRecording, p3, p4, p5, p6, p7, p8, p9); + public void TaskVehicleFollowWaypointRecording(IPlayer ped, uint vehicle, string WPRecording, int p3, int p4, int p5, int p6, float p7, bool p8, float p9) => TaskVehicleFollowWaypointRecording(ped.ScriptId, vehicle, WPRecording, p3, p4, p5, p6, p7, p8, p9); + public void TaskVehicleFollowWaypointRecording(uint ped, IVehicle vehicle, string WPRecording, int p3, int p4, int p5, int p6, float p7, bool p8, float p9) => TaskVehicleFollowWaypointRecording(ped, vehicle.ScriptId, WPRecording, p3, p4, p5, p6, p7, p8, p9); public void TaskVehicleFollowWaypointRecording(IPlayer ped, IVehicle vehicle, string WPRecording, int p3, int p4, int p5, int p6, float p7, bool p8, float p9) => TaskVehicleFollowWaypointRecording(ped.ScriptId, vehicle.ScriptId, WPRecording, p3, p4, p5, p6, p7, p8, p9); - public void TaskVehicleFollowWaypointRecording(int _ped, int _vehicle, string _WPRecording, int _p3, int _p4, int _p5, int _p6, float _p7, bool _p8, float _p9) + public void TaskVehicleFollowWaypointRecording(uint _ped, uint _vehicle, string _WPRecording, int _p3, int _p4, int _p5, int _p6, float _p7, bool _p8, float _p9) { unsafe { - if (fn__taskVehicleFollowWaypointRecording == null) fn__taskVehicleFollowWaypointRecording = (delegate* unmanaged[Cdecl]) funcTable[0x3123FAA6DB1CF7EDUL]; + if (fn__taskVehicleFollowWaypointRecording == null) fn__taskVehicleFollowWaypointRecording = (delegate* unmanaged[Cdecl]) funcTable[0x3123FAA6DB1CF7EDUL]; var success = false; - var ptr_WPRecording = _WPRecording == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_WPRecording); + var ptr_WPRecording = MemoryUtils.StringToHGlobalUtf8(_WPRecording); fn__taskVehicleFollowWaypointRecording(&success, _ped, _vehicle, ptr_WPRecording, _p3, _p4, _p5, _p6, _p7, (byte) (_p8 ? 1 : 0), _p9); - if (ptr_WPRecording != IntPtr.Zero) Marshal.FreeHGlobal(ptr_WPRecording); + Marshal.FreeHGlobal(ptr_WPRecording); if (!success) throw new Exception("Native execution failed"); } } public bool IsWaypointPlaybackGoingOnForVehicle(IVehicle vehicle) => IsWaypointPlaybackGoingOnForVehicle(vehicle.ScriptId); - public bool IsWaypointPlaybackGoingOnForVehicle(int _vehicle) + public bool IsWaypointPlaybackGoingOnForVehicle(uint _vehicle) { unsafe { - if (fn__isWaypointPlaybackGoingOnForVehicle == null) fn__isWaypointPlaybackGoingOnForVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xF5134943EA29868CUL]; + if (fn__isWaypointPlaybackGoingOnForVehicle == null) fn__isWaypointPlaybackGoingOnForVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xF5134943EA29868CUL]; var success = false; var result = fn__isWaypointPlaybackGoingOnForVehicle(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -95353,10 +95340,10 @@ public bool IsWaypointPlaybackGoingOnForVehicle(int _vehicle) } public int GetVehicleWaypointProgress(IVehicle vehicle) => GetVehicleWaypointProgress(vehicle.ScriptId); - public int GetVehicleWaypointProgress(int _vehicle) + public int GetVehicleWaypointProgress(uint _vehicle) { unsafe { - if (fn__getVehicleWaypointProgress == null) fn__getVehicleWaypointProgress = (delegate* unmanaged[Cdecl]) funcTable[0x9824CFF8FC66E159UL]; + if (fn__getVehicleWaypointProgress == null) fn__getVehicleWaypointProgress = (delegate* unmanaged[Cdecl]) funcTable[0x9824CFF8FC66E159UL]; var success = false; var result = fn__getVehicleWaypointProgress(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -95365,10 +95352,10 @@ public int GetVehicleWaypointProgress(int _vehicle) } public int GetVehicleWaypointTargetPoint(IVehicle vehicle) => GetVehicleWaypointTargetPoint(vehicle.ScriptId); - public int GetVehicleWaypointTargetPoint(int _vehicle) + public int GetVehicleWaypointTargetPoint(uint _vehicle) { unsafe { - if (fn__getVehicleWaypointTargetPoint == null) fn__getVehicleWaypointTargetPoint = (delegate* unmanaged[Cdecl]) funcTable[0x416B62AC8B9E5BBDUL]; + if (fn__getVehicleWaypointTargetPoint == null) fn__getVehicleWaypointTargetPoint = (delegate* unmanaged[Cdecl]) funcTable[0x416B62AC8B9E5BBDUL]; var success = false; var result = fn__getVehicleWaypointTargetPoint(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -95377,10 +95364,10 @@ public int GetVehicleWaypointTargetPoint(int _vehicle) } public void VehicleWaypointPlaybackPause(IVehicle vehicle) => VehicleWaypointPlaybackPause(vehicle.ScriptId); - public void VehicleWaypointPlaybackPause(int _vehicle) + public void VehicleWaypointPlaybackPause(uint _vehicle) { unsafe { - if (fn__vehicleWaypointPlaybackPause == null) fn__vehicleWaypointPlaybackPause = (delegate* unmanaged[Cdecl]) funcTable[0x8A4E6AC373666BC5UL]; + if (fn__vehicleWaypointPlaybackPause == null) fn__vehicleWaypointPlaybackPause = (delegate* unmanaged[Cdecl]) funcTable[0x8A4E6AC373666BC5UL]; var success = false; fn__vehicleWaypointPlaybackPause(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -95388,10 +95375,10 @@ public void VehicleWaypointPlaybackPause(int _vehicle) } public void VehicleWaypointPlaybackResume(IVehicle vehicle) => VehicleWaypointPlaybackResume(vehicle.ScriptId); - public void VehicleWaypointPlaybackResume(int _vehicle) + public void VehicleWaypointPlaybackResume(uint _vehicle) { unsafe { - if (fn__vehicleWaypointPlaybackResume == null) fn__vehicleWaypointPlaybackResume = (delegate* unmanaged[Cdecl]) funcTable[0xDC04FCAA7839D492UL]; + if (fn__vehicleWaypointPlaybackResume == null) fn__vehicleWaypointPlaybackResume = (delegate* unmanaged[Cdecl]) funcTable[0xDC04FCAA7839D492UL]; var success = false; fn__vehicleWaypointPlaybackResume(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -95399,10 +95386,10 @@ public void VehicleWaypointPlaybackResume(int _vehicle) } public void VehicleWaypointPlaybackUseDefaultSpeed(IVehicle vehicle) => VehicleWaypointPlaybackUseDefaultSpeed(vehicle.ScriptId); - public void VehicleWaypointPlaybackUseDefaultSpeed(int _vehicle) + public void VehicleWaypointPlaybackUseDefaultSpeed(uint _vehicle) { unsafe { - if (fn__vehicleWaypointPlaybackUseDefaultSpeed == null) fn__vehicleWaypointPlaybackUseDefaultSpeed = (delegate* unmanaged[Cdecl]) funcTable[0x5CEB25A7D2848963UL]; + if (fn__vehicleWaypointPlaybackUseDefaultSpeed == null) fn__vehicleWaypointPlaybackUseDefaultSpeed = (delegate* unmanaged[Cdecl]) funcTable[0x5CEB25A7D2848963UL]; var success = false; fn__vehicleWaypointPlaybackUseDefaultSpeed(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -95410,10 +95397,10 @@ public void VehicleWaypointPlaybackUseDefaultSpeed(int _vehicle) } public void VehicleWaypointPlaybackOverrideSpeed(IVehicle vehicle, float speed) => VehicleWaypointPlaybackOverrideSpeed(vehicle.ScriptId, speed); - public void VehicleWaypointPlaybackOverrideSpeed(int _vehicle, float _speed) + public void VehicleWaypointPlaybackOverrideSpeed(uint _vehicle, float _speed) { unsafe { - if (fn__vehicleWaypointPlaybackOverrideSpeed == null) fn__vehicleWaypointPlaybackOverrideSpeed = (delegate* unmanaged[Cdecl]) funcTable[0x121F0593E0A431D7UL]; + if (fn__vehicleWaypointPlaybackOverrideSpeed == null) fn__vehicleWaypointPlaybackOverrideSpeed = (delegate* unmanaged[Cdecl]) funcTable[0x121F0593E0A431D7UL]; var success = false; fn__vehicleWaypointPlaybackOverrideSpeed(&success, _vehicle, _speed); if (!success) throw new Exception("Native execution failed"); @@ -95421,10 +95408,10 @@ public void VehicleWaypointPlaybackOverrideSpeed(int _vehicle, float _speed) } public void TaskSetBlockingOfNonTemporaryEvents(IPlayer ped, bool toggle) => TaskSetBlockingOfNonTemporaryEvents(ped.ScriptId, toggle); - public void TaskSetBlockingOfNonTemporaryEvents(int _ped, bool _toggle) + public void TaskSetBlockingOfNonTemporaryEvents(uint _ped, bool _toggle) { unsafe { - if (fn__taskSetBlockingOfNonTemporaryEvents == null) fn__taskSetBlockingOfNonTemporaryEvents = (delegate* unmanaged[Cdecl]) funcTable[0x90D2156198831D69UL]; + if (fn__taskSetBlockingOfNonTemporaryEvents == null) fn__taskSetBlockingOfNonTemporaryEvents = (delegate* unmanaged[Cdecl]) funcTable[0x90D2156198831D69UL]; var success = false; fn__taskSetBlockingOfNonTemporaryEvents(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -95432,10 +95419,10 @@ public void TaskSetBlockingOfNonTemporaryEvents(int _ped, bool _toggle) } public void TaskForceMotionState(IPlayer ped, uint state, bool forceRestart) => TaskForceMotionState(ped.ScriptId, state, forceRestart); - public void TaskForceMotionState(int _ped, uint _state, bool _forceRestart) + public void TaskForceMotionState(uint _ped, uint _state, bool _forceRestart) { unsafe { - if (fn__taskForceMotionState == null) fn__taskForceMotionState = (delegate* unmanaged[Cdecl]) funcTable[0x4F056E1AFFEF17ABUL]; + if (fn__taskForceMotionState == null) fn__taskForceMotionState = (delegate* unmanaged[Cdecl]) funcTable[0x4F056E1AFFEF17ABUL]; var success = false; fn__taskForceMotionState(&success, _ped, _state, (byte) (_forceRestart ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -95443,74 +95430,74 @@ public void TaskForceMotionState(int _ped, uint _state, bool _forceRestart) } public void TaskMoveNetworkByName(IPlayer ped, string task, float multiplier, bool allowOverrideCloneUpdate, string animDict, int flags) => TaskMoveNetworkByName(ped.ScriptId, task, multiplier, allowOverrideCloneUpdate, animDict, flags); - public void TaskMoveNetworkByName(int _ped, string _task, float _multiplier, bool _allowOverrideCloneUpdate, string _animDict, int _flags) + public void TaskMoveNetworkByName(uint _ped, string _task, float _multiplier, bool _allowOverrideCloneUpdate, string _animDict, int _flags) { unsafe { - if (fn__taskMoveNetworkByName == null) fn__taskMoveNetworkByName = (delegate* unmanaged[Cdecl]) funcTable[0x2D537BA194896636UL]; + if (fn__taskMoveNetworkByName == null) fn__taskMoveNetworkByName = (delegate* unmanaged[Cdecl]) funcTable[0x2D537BA194896636UL]; var success = false; - var ptr_task = _task == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_task); - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_task = MemoryUtils.StringToHGlobalUtf8(_task); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); fn__taskMoveNetworkByName(&success, _ped, ptr_task, _multiplier, (byte) (_allowOverrideCloneUpdate ? 1 : 0), ptr_animDict, _flags); - if (ptr_task != IntPtr.Zero) Marshal.FreeHGlobal(ptr_task); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_task); + Marshal.FreeHGlobal(ptr_animDict); if (!success) throw new Exception("Native execution failed"); } } public void TaskMoveNetworkAdvancedByName(IPlayer ped, string network, float x, float y, float z, float rotX, float rotY, float rotZ, int rotOrder, float blendDuration, bool allowOverrideCloneUpdate, string animDict, int flags) => TaskMoveNetworkAdvancedByName(ped.ScriptId, network, x, y, z, rotX, rotY, rotZ, rotOrder, blendDuration, allowOverrideCloneUpdate, animDict, flags); - public void TaskMoveNetworkAdvancedByName(int _ped, string _network, float _x, float _y, float _z, float _rotX, float _rotY, float _rotZ, int _rotOrder, float _blendDuration, bool _allowOverrideCloneUpdate, string _animDict, int _flags) + public void TaskMoveNetworkAdvancedByName(uint _ped, string _network, float _x, float _y, float _z, float _rotX, float _rotY, float _rotZ, int _rotOrder, float _blendDuration, bool _allowOverrideCloneUpdate, string _animDict, int _flags) { unsafe { - if (fn__taskMoveNetworkAdvancedByName == null) fn__taskMoveNetworkAdvancedByName = (delegate* unmanaged[Cdecl]) funcTable[0xD5B35BEA41919ACBUL]; + if (fn__taskMoveNetworkAdvancedByName == null) fn__taskMoveNetworkAdvancedByName = (delegate* unmanaged[Cdecl]) funcTable[0xD5B35BEA41919ACBUL]; var success = false; - var ptr_network = _network == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_network); - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_network = MemoryUtils.StringToHGlobalUtf8(_network); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); fn__taskMoveNetworkAdvancedByName(&success, _ped, ptr_network, _x, _y, _z, _rotX, _rotY, _rotZ, _rotOrder, _blendDuration, (byte) (_allowOverrideCloneUpdate ? 1 : 0), ptr_animDict, _flags); - if (ptr_network != IntPtr.Zero) Marshal.FreeHGlobal(ptr_network); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_network); + Marshal.FreeHGlobal(ptr_animDict); if (!success) throw new Exception("Native execution failed"); } } public void TaskMoveNetworkByNameWithInitParams(IPlayer ped, string network, ref int initialParameters, float blendDuration, bool allowOverrideCloneUpdate, string animDict, int flags) => TaskMoveNetworkByNameWithInitParams(ped.ScriptId, network, ref initialParameters, blendDuration, allowOverrideCloneUpdate, animDict, flags); - public void TaskMoveNetworkByNameWithInitParams(int _ped, string _network, ref int _initialParameters, float _blendDuration, bool _allowOverrideCloneUpdate, string _animDict, int _flags) + public void TaskMoveNetworkByNameWithInitParams(uint _ped, string _network, ref int _initialParameters, float _blendDuration, bool _allowOverrideCloneUpdate, string _animDict, int _flags) { unsafe { - if (fn__taskMoveNetworkByNameWithInitParams == null) fn__taskMoveNetworkByNameWithInitParams = (delegate* unmanaged[Cdecl]) funcTable[0x3D45B0B355C5E0C9UL]; + if (fn__taskMoveNetworkByNameWithInitParams == null) fn__taskMoveNetworkByNameWithInitParams = (delegate* unmanaged[Cdecl]) funcTable[0x3D45B0B355C5E0C9UL]; var success = false; - var ptr_network = _network == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_network); + var ptr_network = MemoryUtils.StringToHGlobalUtf8(_network); var ref_initialParameters = _initialParameters; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); fn__taskMoveNetworkByNameWithInitParams(&success, _ped, ptr_network, &ref_initialParameters, _blendDuration, (byte) (_allowOverrideCloneUpdate ? 1 : 0), ptr_animDict, _flags); - if (ptr_network != IntPtr.Zero) Marshal.FreeHGlobal(ptr_network); + Marshal.FreeHGlobal(ptr_network); _initialParameters = ref_initialParameters; - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_animDict); if (!success) throw new Exception("Native execution failed"); } } public void TaskMoveNetworkAdvancedByNameWithInitParams(IPlayer ped, string network, ref int initialParameters, float x, float y, float z, float rotX, float rotY, float rotZ, int rotOrder, float blendDuration, bool allowOverrideCloneUpdate, string dictionary, int flags) => TaskMoveNetworkAdvancedByNameWithInitParams(ped.ScriptId, network, ref initialParameters, x, y, z, rotX, rotY, rotZ, rotOrder, blendDuration, allowOverrideCloneUpdate, dictionary, flags); - public void TaskMoveNetworkAdvancedByNameWithInitParams(int _ped, string _network, ref int _initialParameters, float _x, float _y, float _z, float _rotX, float _rotY, float _rotZ, int _rotOrder, float _blendDuration, bool _allowOverrideCloneUpdate, string _dictionary, int _flags) + public void TaskMoveNetworkAdvancedByNameWithInitParams(uint _ped, string _network, ref int _initialParameters, float _x, float _y, float _z, float _rotX, float _rotY, float _rotZ, int _rotOrder, float _blendDuration, bool _allowOverrideCloneUpdate, string _dictionary, int _flags) { unsafe { - if (fn__taskMoveNetworkAdvancedByNameWithInitParams == null) fn__taskMoveNetworkAdvancedByNameWithInitParams = (delegate* unmanaged[Cdecl]) funcTable[0x29682E2CCF21E9B5UL]; + if (fn__taskMoveNetworkAdvancedByNameWithInitParams == null) fn__taskMoveNetworkAdvancedByNameWithInitParams = (delegate* unmanaged[Cdecl]) funcTable[0x29682E2CCF21E9B5UL]; var success = false; - var ptr_network = _network == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_network); + var ptr_network = MemoryUtils.StringToHGlobalUtf8(_network); var ref_initialParameters = _initialParameters; - var ptr_dictionary = _dictionary == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_dictionary); + var ptr_dictionary = MemoryUtils.StringToHGlobalUtf8(_dictionary); fn__taskMoveNetworkAdvancedByNameWithInitParams(&success, _ped, ptr_network, &ref_initialParameters, _x, _y, _z, _rotX, _rotY, _rotZ, _rotOrder, _blendDuration, (byte) (_allowOverrideCloneUpdate ? 1 : 0), ptr_dictionary, _flags); - if (ptr_network != IntPtr.Zero) Marshal.FreeHGlobal(ptr_network); + Marshal.FreeHGlobal(ptr_network); _initialParameters = ref_initialParameters; - if (ptr_dictionary != IntPtr.Zero) Marshal.FreeHGlobal(ptr_dictionary); + Marshal.FreeHGlobal(ptr_dictionary); if (!success) throw new Exception("Native execution failed"); } } public bool IsTaskMoveNetworkActive(IPlayer ped) => IsTaskMoveNetworkActive(ped.ScriptId); - public bool IsTaskMoveNetworkActive(int _ped) + public bool IsTaskMoveNetworkActive(uint _ped) { unsafe { - if (fn__isTaskMoveNetworkActive == null) fn__isTaskMoveNetworkActive = (delegate* unmanaged[Cdecl]) funcTable[0x921CE12C489C4C41UL]; + if (fn__isTaskMoveNetworkActive == null) fn__isTaskMoveNetworkActive = (delegate* unmanaged[Cdecl]) funcTable[0x921CE12C489C4C41UL]; var success = false; var result = fn__isTaskMoveNetworkActive(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -95519,10 +95506,10 @@ public bool IsTaskMoveNetworkActive(int _ped) } public bool IsTaskMoveNetworkReadyForTransition(IPlayer ped) => IsTaskMoveNetworkReadyForTransition(ped.ScriptId); - public bool IsTaskMoveNetworkReadyForTransition(int _ped) + public bool IsTaskMoveNetworkReadyForTransition(uint _ped) { unsafe { - if (fn__isTaskMoveNetworkReadyForTransition == null) fn__isTaskMoveNetworkReadyForTransition = (delegate* unmanaged[Cdecl]) funcTable[0x30ED88D5E0C56A37UL]; + if (fn__isTaskMoveNetworkReadyForTransition == null) fn__isTaskMoveNetworkReadyForTransition = (delegate* unmanaged[Cdecl]) funcTable[0x30ED88D5E0C56A37UL]; var success = false; var result = fn__isTaskMoveNetworkReadyForTransition(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -95531,52 +95518,52 @@ public bool IsTaskMoveNetworkReadyForTransition(int _ped) } public bool RequestTaskMoveNetworkStateTransition(IPlayer ped, string name) => RequestTaskMoveNetworkStateTransition(ped.ScriptId, name); - public bool RequestTaskMoveNetworkStateTransition(int _ped, string _name) + public bool RequestTaskMoveNetworkStateTransition(uint _ped, string _name) { unsafe { - if (fn__requestTaskMoveNetworkStateTransition == null) fn__requestTaskMoveNetworkStateTransition = (delegate* unmanaged[Cdecl]) funcTable[0xD01015C7316AE176UL]; + if (fn__requestTaskMoveNetworkStateTransition == null) fn__requestTaskMoveNetworkStateTransition = (delegate* unmanaged[Cdecl]) funcTable[0xD01015C7316AE176UL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); var result = fn__requestTaskMoveNetworkStateTransition(&success, _ped, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool SetExpectedCloneNextTaskMoveNetworkState(IPlayer ped, string state) => SetExpectedCloneNextTaskMoveNetworkState(ped.ScriptId, state); - public bool SetExpectedCloneNextTaskMoveNetworkState(int _ped, string _state) + public bool SetExpectedCloneNextTaskMoveNetworkState(uint _ped, string _state) { unsafe { - if (fn__setExpectedCloneNextTaskMoveNetworkState == null) fn__setExpectedCloneNextTaskMoveNetworkState = (delegate* unmanaged[Cdecl]) funcTable[0xAB13A5565480B6D9UL]; + if (fn__setExpectedCloneNextTaskMoveNetworkState == null) fn__setExpectedCloneNextTaskMoveNetworkState = (delegate* unmanaged[Cdecl]) funcTable[0xAB13A5565480B6D9UL]; var success = false; - var ptr_state = _state == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_state); + var ptr_state = MemoryUtils.StringToHGlobalUtf8(_state); var result = fn__setExpectedCloneNextTaskMoveNetworkState(&success, _ped, ptr_state); - if (ptr_state != IntPtr.Zero) Marshal.FreeHGlobal(ptr_state); + Marshal.FreeHGlobal(ptr_state); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public string GetTaskMoveNetworkState(IPlayer ped) => GetTaskMoveNetworkState(ped.ScriptId); - public string GetTaskMoveNetworkState(int _ped) + public string GetTaskMoveNetworkState(uint _ped) { unsafe { - if (fn__getTaskMoveNetworkState == null) fn__getTaskMoveNetworkState = (delegate* unmanaged[Cdecl]) funcTable[0x717E4D1F2048376DUL]; + if (fn__getTaskMoveNetworkState == null) fn__getTaskMoveNetworkState = (delegate* unmanaged[Cdecl]) funcTable[0x717E4D1F2048376DUL]; var success = false; var result = fn__getTaskMoveNetworkState(&success, _ped); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } public void SetTaskMoveNetworkAnimSet(IPlayer ped, uint clipSet, uint unkVariableClipSet) => SetTaskMoveNetworkAnimSet(ped.ScriptId, clipSet, unkVariableClipSet); - public void SetTaskMoveNetworkAnimSet(int _ped, uint _clipSet, uint _unkVariableClipSet) + public void SetTaskMoveNetworkAnimSet(uint _ped, uint _clipSet, uint _unkVariableClipSet) { unsafe { - if (fn__setTaskMoveNetworkAnimSet == null) fn__setTaskMoveNetworkAnimSet = (delegate* unmanaged[Cdecl]) funcTable[0x8423541E8B3A1589UL]; + if (fn__setTaskMoveNetworkAnimSet == null) fn__setTaskMoveNetworkAnimSet = (delegate* unmanaged[Cdecl]) funcTable[0x8423541E8B3A1589UL]; var success = false; fn__setTaskMoveNetworkAnimSet(&success, _ped, _clipSet, _unkVariableClipSet); if (!success) throw new Exception("Native execution failed"); @@ -95584,104 +95571,104 @@ public void SetTaskMoveNetworkAnimSet(int _ped, uint _clipSet, uint _unkVariable } public void SetTaskMoveNetworkSignalFloat(IPlayer ped, string signalName, float value) => SetTaskMoveNetworkSignalFloat(ped.ScriptId, signalName, value); - public void SetTaskMoveNetworkSignalFloat(int _ped, string _signalName, float _value) + public void SetTaskMoveNetworkSignalFloat(uint _ped, string _signalName, float _value) { unsafe { - if (fn__setTaskMoveNetworkSignalFloat == null) fn__setTaskMoveNetworkSignalFloat = (delegate* unmanaged[Cdecl]) funcTable[0xD5BB4025AE449A4EUL]; + if (fn__setTaskMoveNetworkSignalFloat == null) fn__setTaskMoveNetworkSignalFloat = (delegate* unmanaged[Cdecl]) funcTable[0xD5BB4025AE449A4EUL]; var success = false; - var ptr_signalName = _signalName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_signalName); + var ptr_signalName = MemoryUtils.StringToHGlobalUtf8(_signalName); fn__setTaskMoveNetworkSignalFloat(&success, _ped, ptr_signalName, _value); - if (ptr_signalName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_signalName); + Marshal.FreeHGlobal(ptr_signalName); if (!success) throw new Exception("Native execution failed"); } } public void SetTaskMoveNetworkSignalLocalFloat(IPlayer ped, string signalName, float value) => SetTaskMoveNetworkSignalLocalFloat(ped.ScriptId, signalName, value); - public void SetTaskMoveNetworkSignalLocalFloat(int _ped, string _signalName, float _value) + public void SetTaskMoveNetworkSignalLocalFloat(uint _ped, string _signalName, float _value) { unsafe { - if (fn__setTaskMoveNetworkSignalLocalFloat == null) fn__setTaskMoveNetworkSignalLocalFloat = (delegate* unmanaged[Cdecl]) funcTable[0x373EF409B82697A3UL]; + if (fn__setTaskMoveNetworkSignalLocalFloat == null) fn__setTaskMoveNetworkSignalLocalFloat = (delegate* unmanaged[Cdecl]) funcTable[0x373EF409B82697A3UL]; var success = false; - var ptr_signalName = _signalName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_signalName); + var ptr_signalName = MemoryUtils.StringToHGlobalUtf8(_signalName); fn__setTaskMoveNetworkSignalLocalFloat(&success, _ped, ptr_signalName, _value); - if (ptr_signalName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_signalName); + Marshal.FreeHGlobal(ptr_signalName); if (!success) throw new Exception("Native execution failed"); } } public void SetTaskMoveNetworkSignalFloatLerpRate(IPlayer ped, string signalName, float value) => SetTaskMoveNetworkSignalFloatLerpRate(ped.ScriptId, signalName, value); - public void SetTaskMoveNetworkSignalFloatLerpRate(int _ped, string _signalName, float _value) + public void SetTaskMoveNetworkSignalFloatLerpRate(uint _ped, string _signalName, float _value) { unsafe { - if (fn__setTaskMoveNetworkSignalFloatLerpRate == null) fn__setTaskMoveNetworkSignalFloatLerpRate = (delegate* unmanaged[Cdecl]) funcTable[0x8634CEF2522D987BUL]; + if (fn__setTaskMoveNetworkSignalFloatLerpRate == null) fn__setTaskMoveNetworkSignalFloatLerpRate = (delegate* unmanaged[Cdecl]) funcTable[0x8634CEF2522D987BUL]; var success = false; - var ptr_signalName = _signalName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_signalName); + var ptr_signalName = MemoryUtils.StringToHGlobalUtf8(_signalName); fn__setTaskMoveNetworkSignalFloatLerpRate(&success, _ped, ptr_signalName, _value); - if (ptr_signalName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_signalName); + Marshal.FreeHGlobal(ptr_signalName); if (!success) throw new Exception("Native execution failed"); } } public void SetTaskMoveNetworkSignalBool(IPlayer ped, string signalName, bool value) => SetTaskMoveNetworkSignalBool(ped.ScriptId, signalName, value); - public void SetTaskMoveNetworkSignalBool(int _ped, string _signalName, bool _value) + public void SetTaskMoveNetworkSignalBool(uint _ped, string _signalName, bool _value) { unsafe { - if (fn__setTaskMoveNetworkSignalBool == null) fn__setTaskMoveNetworkSignalBool = (delegate* unmanaged[Cdecl]) funcTable[0xB0A6CFD2C69C1088UL]; + if (fn__setTaskMoveNetworkSignalBool == null) fn__setTaskMoveNetworkSignalBool = (delegate* unmanaged[Cdecl]) funcTable[0xB0A6CFD2C69C1088UL]; var success = false; - var ptr_signalName = _signalName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_signalName); + var ptr_signalName = MemoryUtils.StringToHGlobalUtf8(_signalName); fn__setTaskMoveNetworkSignalBool(&success, _ped, ptr_signalName, (byte) (_value ? 1 : 0)); - if (ptr_signalName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_signalName); + Marshal.FreeHGlobal(ptr_signalName); if (!success) throw new Exception("Native execution failed"); } } public float GetTaskMoveNetworkSignalFloat(IPlayer ped, string signalName) => GetTaskMoveNetworkSignalFloat(ped.ScriptId, signalName); - public float GetTaskMoveNetworkSignalFloat(int _ped, string _signalName) + public float GetTaskMoveNetworkSignalFloat(uint _ped, string _signalName) { unsafe { - if (fn__getTaskMoveNetworkSignalFloat == null) fn__getTaskMoveNetworkSignalFloat = (delegate* unmanaged[Cdecl]) funcTable[0x44AB0B3AFECCE242UL]; + if (fn__getTaskMoveNetworkSignalFloat == null) fn__getTaskMoveNetworkSignalFloat = (delegate* unmanaged[Cdecl]) funcTable[0x44AB0B3AFECCE242UL]; var success = false; - var ptr_signalName = _signalName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_signalName); + var ptr_signalName = MemoryUtils.StringToHGlobalUtf8(_signalName); var result = fn__getTaskMoveNetworkSignalFloat(&success, _ped, ptr_signalName); - if (ptr_signalName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_signalName); + Marshal.FreeHGlobal(ptr_signalName); if (!success) throw new Exception("Native execution failed"); return result; } } public bool GetTaskMoveNetworkSignalBool(IPlayer ped, string signalName) => GetTaskMoveNetworkSignalBool(ped.ScriptId, signalName); - public bool GetTaskMoveNetworkSignalBool(int _ped, string _signalName) + public bool GetTaskMoveNetworkSignalBool(uint _ped, string _signalName) { unsafe { - if (fn__getTaskMoveNetworkSignalBool == null) fn__getTaskMoveNetworkSignalBool = (delegate* unmanaged[Cdecl]) funcTable[0xA7FFBA498E4AAF67UL]; + if (fn__getTaskMoveNetworkSignalBool == null) fn__getTaskMoveNetworkSignalBool = (delegate* unmanaged[Cdecl]) funcTable[0xA7FFBA498E4AAF67UL]; var success = false; - var ptr_signalName = _signalName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_signalName); + var ptr_signalName = MemoryUtils.StringToHGlobalUtf8(_signalName); var result = fn__getTaskMoveNetworkSignalBool(&success, _ped, ptr_signalName); - if (ptr_signalName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_signalName); + Marshal.FreeHGlobal(ptr_signalName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool GetTaskMoveNetworkEvent(IPlayer ped, string eventName) => GetTaskMoveNetworkEvent(ped.ScriptId, eventName); - public bool GetTaskMoveNetworkEvent(int _ped, string _eventName) + public bool GetTaskMoveNetworkEvent(uint _ped, string _eventName) { unsafe { - if (fn__getTaskMoveNetworkEvent == null) fn__getTaskMoveNetworkEvent = (delegate* unmanaged[Cdecl]) funcTable[0xB4F47213DF45A64CUL]; + if (fn__getTaskMoveNetworkEvent == null) fn__getTaskMoveNetworkEvent = (delegate* unmanaged[Cdecl]) funcTable[0xB4F47213DF45A64CUL]; var success = false; - var ptr_eventName = _eventName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_eventName); + var ptr_eventName = MemoryUtils.StringToHGlobalUtf8(_eventName); var result = fn__getTaskMoveNetworkEvent(&success, _ped, ptr_eventName); - if (ptr_eventName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_eventName); + Marshal.FreeHGlobal(ptr_eventName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public bool SetTaskMoveNetworkEnableCollisionOnNetworkCloneWhenFixed(IPlayer ped, bool enable) => SetTaskMoveNetworkEnableCollisionOnNetworkCloneWhenFixed(ped.ScriptId, enable); - public bool SetTaskMoveNetworkEnableCollisionOnNetworkCloneWhenFixed(int _ped, bool _enable) + public bool SetTaskMoveNetworkEnableCollisionOnNetworkCloneWhenFixed(uint _ped, bool _enable) { unsafe { - if (fn__setTaskMoveNetworkEnableCollisionOnNetworkCloneWhenFixed == null) fn__setTaskMoveNetworkEnableCollisionOnNetworkCloneWhenFixed = (delegate* unmanaged[Cdecl]) funcTable[0x0FFB3C758E8C07B9UL]; + if (fn__setTaskMoveNetworkEnableCollisionOnNetworkCloneWhenFixed == null) fn__setTaskMoveNetworkEnableCollisionOnNetworkCloneWhenFixed = (delegate* unmanaged[Cdecl]) funcTable[0x0FFB3C758E8C07B9UL]; var success = false; var result = fn__setTaskMoveNetworkEnableCollisionOnNetworkCloneWhenFixed(&success, _ped, (byte) (_enable ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -95690,10 +95677,10 @@ public bool SetTaskMoveNetworkEnableCollisionOnNetworkCloneWhenFixed(int _ped, b } public bool IsMoveBlendRatioStill(IPlayer ped) => IsMoveBlendRatioStill(ped.ScriptId); - public bool IsMoveBlendRatioStill(int _ped) + public bool IsMoveBlendRatioStill(uint _ped) { unsafe { - if (fn__isMoveBlendRatioStill == null) fn__isMoveBlendRatioStill = (delegate* unmanaged[Cdecl]) funcTable[0x349CE7B56DAFD95CUL]; + if (fn__isMoveBlendRatioStill == null) fn__isMoveBlendRatioStill = (delegate* unmanaged[Cdecl]) funcTable[0x349CE7B56DAFD95CUL]; var success = false; var result = fn__isMoveBlendRatioStill(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -95702,10 +95689,10 @@ public bool IsMoveBlendRatioStill(int _ped) } public bool IsMoveBlendRatioWalking(IPlayer ped) => IsMoveBlendRatioWalking(ped.ScriptId); - public bool IsMoveBlendRatioWalking(int _ped) + public bool IsMoveBlendRatioWalking(uint _ped) { unsafe { - if (fn__isMoveBlendRatioWalking == null) fn__isMoveBlendRatioWalking = (delegate* unmanaged[Cdecl]) funcTable[0xF133BBBE91E1691FUL]; + if (fn__isMoveBlendRatioWalking == null) fn__isMoveBlendRatioWalking = (delegate* unmanaged[Cdecl]) funcTable[0xF133BBBE91E1691FUL]; var success = false; var result = fn__isMoveBlendRatioWalking(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -95714,10 +95701,10 @@ public bool IsMoveBlendRatioWalking(int _ped) } public bool IsMoveBlendRatioRunning(IPlayer ped) => IsMoveBlendRatioRunning(ped.ScriptId); - public bool IsMoveBlendRatioRunning(int _ped) + public bool IsMoveBlendRatioRunning(uint _ped) { unsafe { - if (fn__isMoveBlendRatioRunning == null) fn__isMoveBlendRatioRunning = (delegate* unmanaged[Cdecl]) funcTable[0xD4D8636C0199A939UL]; + if (fn__isMoveBlendRatioRunning == null) fn__isMoveBlendRatioRunning = (delegate* unmanaged[Cdecl]) funcTable[0xD4D8636C0199A939UL]; var success = false; var result = fn__isMoveBlendRatioRunning(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -95726,10 +95713,10 @@ public bool IsMoveBlendRatioRunning(int _ped) } public bool IsMoveBlendRatioSprinting(IPlayer ped) => IsMoveBlendRatioSprinting(ped.ScriptId); - public bool IsMoveBlendRatioSprinting(int _ped) + public bool IsMoveBlendRatioSprinting(uint _ped) { unsafe { - if (fn__isMoveBlendRatioSprinting == null) fn__isMoveBlendRatioSprinting = (delegate* unmanaged[Cdecl]) funcTable[0x24A2AD74FA9814E2UL]; + if (fn__isMoveBlendRatioSprinting == null) fn__isMoveBlendRatioSprinting = (delegate* unmanaged[Cdecl]) funcTable[0x24A2AD74FA9814E2UL]; var success = false; var result = fn__isMoveBlendRatioSprinting(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -95738,10 +95725,10 @@ public bool IsMoveBlendRatioSprinting(int _ped) } public bool IsPedStill(IPlayer ped) => IsPedStill(ped.ScriptId); - public bool IsPedStill(int _ped) + public bool IsPedStill(uint _ped) { unsafe { - if (fn__isPedStill == null) fn__isPedStill = (delegate* unmanaged[Cdecl]) funcTable[0xAC29253EEF8F0180UL]; + if (fn__isPedStill == null) fn__isPedStill = (delegate* unmanaged[Cdecl]) funcTable[0xAC29253EEF8F0180UL]; var success = false; var result = fn__isPedStill(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -95750,10 +95737,10 @@ public bool IsPedStill(int _ped) } public bool IsPedWalking(IPlayer ped) => IsPedWalking(ped.ScriptId); - public bool IsPedWalking(int _ped) + public bool IsPedWalking(uint _ped) { unsafe { - if (fn__isPedWalking == null) fn__isPedWalking = (delegate* unmanaged[Cdecl]) funcTable[0xDE4C184B2B9B071AUL]; + if (fn__isPedWalking == null) fn__isPedWalking = (delegate* unmanaged[Cdecl]) funcTable[0xDE4C184B2B9B071AUL]; var success = false; var result = fn__isPedWalking(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -95762,10 +95749,10 @@ public bool IsPedWalking(int _ped) } public bool IsPedRunning(IPlayer ped) => IsPedRunning(ped.ScriptId); - public bool IsPedRunning(int _ped) + public bool IsPedRunning(uint _ped) { unsafe { - if (fn__isPedRunning == null) fn__isPedRunning = (delegate* unmanaged[Cdecl]) funcTable[0xC5286FFC176F28A2UL]; + if (fn__isPedRunning == null) fn__isPedRunning = (delegate* unmanaged[Cdecl]) funcTable[0xC5286FFC176F28A2UL]; var success = false; var result = fn__isPedRunning(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -95774,10 +95761,10 @@ public bool IsPedRunning(int _ped) } public bool IsPedSprinting(IPlayer ped) => IsPedSprinting(ped.ScriptId); - public bool IsPedSprinting(int _ped) + public bool IsPedSprinting(uint _ped) { unsafe { - if (fn__isPedSprinting == null) fn__isPedSprinting = (delegate* unmanaged[Cdecl]) funcTable[0x57E457CD2C0FC168UL]; + if (fn__isPedSprinting == null) fn__isPedSprinting = (delegate* unmanaged[Cdecl]) funcTable[0x57E457CD2C0FC168UL]; var success = false; var result = fn__isPedSprinting(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -95786,10 +95773,10 @@ public bool IsPedSprinting(int _ped) } public bool IsPedStrafing(IPlayer ped) => IsPedStrafing(ped.ScriptId); - public bool IsPedStrafing(int _ped) + public bool IsPedStrafing(uint _ped) { unsafe { - if (fn__isPedStrafing == null) fn__isPedStrafing = (delegate* unmanaged[Cdecl]) funcTable[0xE45B7F222DE47E09UL]; + if (fn__isPedStrafing == null) fn__isPedStrafing = (delegate* unmanaged[Cdecl]) funcTable[0xE45B7F222DE47E09UL]; var success = false; var result = fn__isPedStrafing(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -95798,61 +95785,61 @@ public bool IsPedStrafing(int _ped) } public void TaskSynchronizedScene(IPlayer ped, int scene, string animDictionary, string animationName, float blendIn, float blendOut, int flags, int ragdollBlockingFlags, float moverBlendDelta, int ikFlags) => TaskSynchronizedScene(ped.ScriptId, scene, animDictionary, animationName, blendIn, blendOut, flags, ragdollBlockingFlags, moverBlendDelta, ikFlags); - public void TaskSynchronizedScene(int _ped, int _scene, string _animDictionary, string _animationName, float _blendIn, float _blendOut, int _flags, int _ragdollBlockingFlags, float _moverBlendDelta, int _ikFlags) + public void TaskSynchronizedScene(uint _ped, int _scene, string _animDictionary, string _animationName, float _blendIn, float _blendOut, int _flags, int _ragdollBlockingFlags, float _moverBlendDelta, int _ikFlags) { unsafe { - if (fn__taskSynchronizedScene == null) fn__taskSynchronizedScene = (delegate* unmanaged[Cdecl]) funcTable[0xEEA929141F699854UL]; + if (fn__taskSynchronizedScene == null) fn__taskSynchronizedScene = (delegate* unmanaged[Cdecl]) funcTable[0xEEA929141F699854UL]; var success = false; - var ptr_animDictionary = _animDictionary == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDictionary); - var ptr_animationName = _animationName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animationName); + var ptr_animDictionary = MemoryUtils.StringToHGlobalUtf8(_animDictionary); + var ptr_animationName = MemoryUtils.StringToHGlobalUtf8(_animationName); fn__taskSynchronizedScene(&success, _ped, _scene, ptr_animDictionary, ptr_animationName, _blendIn, _blendOut, _flags, _ragdollBlockingFlags, _moverBlendDelta, _ikFlags); - if (ptr_animDictionary != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDictionary); - if (ptr_animationName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animationName); + Marshal.FreeHGlobal(ptr_animDictionary); + Marshal.FreeHGlobal(ptr_animationName); if (!success) throw new Exception("Native execution failed"); } } - public void TaskAgitatedActionConfrontResponse(IPlayer ped, int ped2) => TaskAgitatedActionConfrontResponse(ped.ScriptId, ped2); - public void TaskAgitatedActionConfrontResponse(int ped, IPlayer ped2) => TaskAgitatedActionConfrontResponse(ped, ped2.ScriptId); + public void TaskAgitatedActionConfrontResponse(IPlayer ped, uint ped2) => TaskAgitatedActionConfrontResponse(ped.ScriptId, ped2); + public void TaskAgitatedActionConfrontResponse(uint ped, IPlayer ped2) => TaskAgitatedActionConfrontResponse(ped, ped2.ScriptId); public void TaskAgitatedActionConfrontResponse(IPlayer ped, IPlayer ped2) => TaskAgitatedActionConfrontResponse(ped.ScriptId, ped2.ScriptId); - public void TaskAgitatedActionConfrontResponse(int _ped, int _ped2) + public void TaskAgitatedActionConfrontResponse(uint _ped, uint _ped2) { unsafe { - if (fn__taskAgitatedActionConfrontResponse == null) fn__taskAgitatedActionConfrontResponse = (delegate* unmanaged[Cdecl]) funcTable[0x19D1B791CB3670FEUL]; + if (fn__taskAgitatedActionConfrontResponse == null) fn__taskAgitatedActionConfrontResponse = (delegate* unmanaged[Cdecl]) funcTable[0x19D1B791CB3670FEUL]; var success = false; fn__taskAgitatedActionConfrontResponse(&success, _ped, _ped2); if (!success) throw new Exception("Native execution failed"); } } - public void TaskSweepAimEntity(IPlayer ped, string animDict, string lowAnimName, string medAnimName, string hiAnimName, int runtime, int targetEntity, float turnRate, float blendInDuration) => TaskSweepAimEntity(ped.ScriptId, animDict, lowAnimName, medAnimName, hiAnimName, runtime, targetEntity, turnRate, blendInDuration); - public void TaskSweepAimEntity(int ped, string animDict, string lowAnimName, string medAnimName, string hiAnimName, int runtime, IEntity targetEntity, float turnRate, float blendInDuration) => TaskSweepAimEntity(ped, animDict, lowAnimName, medAnimName, hiAnimName, runtime, targetEntity.ScriptId, turnRate, blendInDuration); + public void TaskSweepAimEntity(IPlayer ped, string animDict, string lowAnimName, string medAnimName, string hiAnimName, int runtime, uint targetEntity, float turnRate, float blendInDuration) => TaskSweepAimEntity(ped.ScriptId, animDict, lowAnimName, medAnimName, hiAnimName, runtime, targetEntity, turnRate, blendInDuration); + public void TaskSweepAimEntity(uint ped, string animDict, string lowAnimName, string medAnimName, string hiAnimName, int runtime, IEntity targetEntity, float turnRate, float blendInDuration) => TaskSweepAimEntity(ped, animDict, lowAnimName, medAnimName, hiAnimName, runtime, targetEntity.ScriptId, turnRate, blendInDuration); public void TaskSweepAimEntity(IPlayer ped, string animDict, string lowAnimName, string medAnimName, string hiAnimName, int runtime, IEntity targetEntity, float turnRate, float blendInDuration) => TaskSweepAimEntity(ped.ScriptId, animDict, lowAnimName, medAnimName, hiAnimName, runtime, targetEntity.ScriptId, turnRate, blendInDuration); - public void TaskSweepAimEntity(int _ped, string _animDict, string _lowAnimName, string _medAnimName, string _hiAnimName, int _runtime, int _targetEntity, float _turnRate, float _blendInDuration) + public void TaskSweepAimEntity(uint _ped, string _animDict, string _lowAnimName, string _medAnimName, string _hiAnimName, int _runtime, uint _targetEntity, float _turnRate, float _blendInDuration) { unsafe { - if (fn__taskSweepAimEntity == null) fn__taskSweepAimEntity = (delegate* unmanaged[Cdecl]) funcTable[0x2047C02158D6405AUL]; + if (fn__taskSweepAimEntity == null) fn__taskSweepAimEntity = (delegate* unmanaged[Cdecl]) funcTable[0x2047C02158D6405AUL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); - var ptr_lowAnimName = _lowAnimName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_lowAnimName); - var ptr_medAnimName = _medAnimName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_medAnimName); - var ptr_hiAnimName = _hiAnimName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_hiAnimName); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_lowAnimName = MemoryUtils.StringToHGlobalUtf8(_lowAnimName); + var ptr_medAnimName = MemoryUtils.StringToHGlobalUtf8(_medAnimName); + var ptr_hiAnimName = MemoryUtils.StringToHGlobalUtf8(_hiAnimName); fn__taskSweepAimEntity(&success, _ped, ptr_animDict, ptr_lowAnimName, ptr_medAnimName, ptr_hiAnimName, _runtime, _targetEntity, _turnRate, _blendInDuration); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); - if (ptr_lowAnimName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_lowAnimName); - if (ptr_medAnimName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_medAnimName); - if (ptr_hiAnimName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_hiAnimName); + Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_lowAnimName); + Marshal.FreeHGlobal(ptr_medAnimName); + Marshal.FreeHGlobal(ptr_hiAnimName); if (!success) throw new Exception("Native execution failed"); } } - public void UpdateTaskSweepAimEntity(IPlayer ped, int entity) => UpdateTaskSweepAimEntity(ped.ScriptId, entity); - public void UpdateTaskSweepAimEntity(int ped, IEntity entity) => UpdateTaskSweepAimEntity(ped, entity.ScriptId); + public void UpdateTaskSweepAimEntity(IPlayer ped, uint entity) => UpdateTaskSweepAimEntity(ped.ScriptId, entity); + public void UpdateTaskSweepAimEntity(uint ped, IEntity entity) => UpdateTaskSweepAimEntity(ped, entity.ScriptId); public void UpdateTaskSweepAimEntity(IPlayer ped, IEntity entity) => UpdateTaskSweepAimEntity(ped.ScriptId, entity.ScriptId); - public void UpdateTaskSweepAimEntity(int _ped, int _entity) + public void UpdateTaskSweepAimEntity(uint _ped, uint _entity) { unsafe { - if (fn__updateTaskSweepAimEntity == null) fn__updateTaskSweepAimEntity = (delegate* unmanaged[Cdecl]) funcTable[0xE4973DBDBE6E44B3UL]; + if (fn__updateTaskSweepAimEntity == null) fn__updateTaskSweepAimEntity = (delegate* unmanaged[Cdecl]) funcTable[0xE4973DBDBE6E44B3UL]; var success = false; fn__updateTaskSweepAimEntity(&success, _ped, _entity); if (!success) throw new Exception("Native execution failed"); @@ -95860,42 +95847,42 @@ public void UpdateTaskSweepAimEntity(int _ped, int _entity) } public void TaskSweepAimPosition(IPlayer ped, string animDict, string lowAnimName, string medAnimName, string hiAnimName, int runtime, float x, float y, float z, float turnRate, float blendInDuration) => TaskSweepAimPosition(ped.ScriptId, animDict, lowAnimName, medAnimName, hiAnimName, runtime, x, y, z, turnRate, blendInDuration); - public void TaskSweepAimPosition(int _ped, string _animDict, string _lowAnimName, string _medAnimName, string _hiAnimName, int _runtime, float _x, float _y, float _z, float _turnRate, float _blendInDuration) + public void TaskSweepAimPosition(uint _ped, string _animDict, string _lowAnimName, string _medAnimName, string _hiAnimName, int _runtime, float _x, float _y, float _z, float _turnRate, float _blendInDuration) { unsafe { - if (fn__taskSweepAimPosition == null) fn__taskSweepAimPosition = (delegate* unmanaged[Cdecl]) funcTable[0x7AFE8FDC10BC07D2UL]; + if (fn__taskSweepAimPosition == null) fn__taskSweepAimPosition = (delegate* unmanaged[Cdecl]) funcTable[0x7AFE8FDC10BC07D2UL]; var success = false; - var ptr_animDict = _animDict == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_animDict); - var ptr_lowAnimName = _lowAnimName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_lowAnimName); - var ptr_medAnimName = _medAnimName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_medAnimName); - var ptr_hiAnimName = _hiAnimName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_hiAnimName); + var ptr_animDict = MemoryUtils.StringToHGlobalUtf8(_animDict); + var ptr_lowAnimName = MemoryUtils.StringToHGlobalUtf8(_lowAnimName); + var ptr_medAnimName = MemoryUtils.StringToHGlobalUtf8(_medAnimName); + var ptr_hiAnimName = MemoryUtils.StringToHGlobalUtf8(_hiAnimName); fn__taskSweepAimPosition(&success, _ped, ptr_animDict, ptr_lowAnimName, ptr_medAnimName, ptr_hiAnimName, _runtime, _x, _y, _z, _turnRate, _blendInDuration); - if (ptr_animDict != IntPtr.Zero) Marshal.FreeHGlobal(ptr_animDict); - if (ptr_lowAnimName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_lowAnimName); - if (ptr_medAnimName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_medAnimName); - if (ptr_hiAnimName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_hiAnimName); + Marshal.FreeHGlobal(ptr_animDict); + Marshal.FreeHGlobal(ptr_lowAnimName); + Marshal.FreeHGlobal(ptr_medAnimName); + Marshal.FreeHGlobal(ptr_hiAnimName); if (!success) throw new Exception("Native execution failed"); } } public void UpdateTaskSweepAimPosition(IPlayer ped, float x, float y, float z) => UpdateTaskSweepAimPosition(ped.ScriptId, x, y, z); - public void UpdateTaskSweepAimPosition(int _ped, float _x, float _y, float _z) + public void UpdateTaskSweepAimPosition(uint _ped, float _x, float _y, float _z) { unsafe { - if (fn__updateTaskSweepAimPosition == null) fn__updateTaskSweepAimPosition = (delegate* unmanaged[Cdecl]) funcTable[0xBB106883F5201FC4UL]; + if (fn__updateTaskSweepAimPosition == null) fn__updateTaskSweepAimPosition = (delegate* unmanaged[Cdecl]) funcTable[0xBB106883F5201FC4UL]; var success = false; fn__updateTaskSweepAimPosition(&success, _ped, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); } } - public void TaskArrestPed(IPlayer ped, int target) => TaskArrestPed(ped.ScriptId, target); - public void TaskArrestPed(int ped, IPlayer target) => TaskArrestPed(ped, target.ScriptId); + public void TaskArrestPed(IPlayer ped, uint target) => TaskArrestPed(ped.ScriptId, target); + public void TaskArrestPed(uint ped, IPlayer target) => TaskArrestPed(ped, target.ScriptId); public void TaskArrestPed(IPlayer ped, IPlayer target) => TaskArrestPed(ped.ScriptId, target.ScriptId); - public void TaskArrestPed(int _ped, int _target) + public void TaskArrestPed(uint _ped, uint _target) { unsafe { - if (fn__taskArrestPed == null) fn__taskArrestPed = (delegate* unmanaged[Cdecl]) funcTable[0xF3B9A78A178572B1UL]; + if (fn__taskArrestPed == null) fn__taskArrestPed = (delegate* unmanaged[Cdecl]) funcTable[0xF3B9A78A178572B1UL]; var success = false; fn__taskArrestPed(&success, _ped, _target); if (!success) throw new Exception("Native execution failed"); @@ -95903,10 +95890,10 @@ public void TaskArrestPed(int _ped, int _target) } public bool IsPedRunningArrestTask(IPlayer ped) => IsPedRunningArrestTask(ped.ScriptId); - public bool IsPedRunningArrestTask(int _ped) + public bool IsPedRunningArrestTask(uint _ped) { unsafe { - if (fn__isPedRunningArrestTask == null) fn__isPedRunningArrestTask = (delegate* unmanaged[Cdecl]) funcTable[0x3DC52677769B4AE0UL]; + if (fn__isPedRunningArrestTask == null) fn__isPedRunningArrestTask = (delegate* unmanaged[Cdecl]) funcTable[0x3DC52677769B4AE0UL]; var success = false; var result = fn__isPedRunningArrestTask(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -95915,10 +95902,10 @@ public bool IsPedRunningArrestTask(int _ped) } public bool IsPedBeingArrested(IPlayer ped) => IsPedBeingArrested(ped.ScriptId); - public bool IsPedBeingArrested(int _ped) + public bool IsPedBeingArrested(uint _ped) { unsafe { - if (fn__isPedBeingArrested == null) fn__isPedBeingArrested = (delegate* unmanaged[Cdecl]) funcTable[0x90A09F3A45FED688UL]; + if (fn__isPedBeingArrested == null) fn__isPedBeingArrested = (delegate* unmanaged[Cdecl]) funcTable[0x90A09F3A45FED688UL]; var success = false; var result = fn__isPedBeingArrested(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -95927,10 +95914,10 @@ public bool IsPedBeingArrested(int _ped) } public void UncuffPed(IPlayer ped) => UncuffPed(ped.ScriptId); - public void UncuffPed(int _ped) + public void UncuffPed(uint _ped) { unsafe { - if (fn__uncuffPed == null) fn__uncuffPed = (delegate* unmanaged[Cdecl]) funcTable[0x67406F2C8F87FC4FUL]; + if (fn__uncuffPed == null) fn__uncuffPed = (delegate* unmanaged[Cdecl]) funcTable[0x67406F2C8F87FC4FUL]; var success = false; fn__uncuffPed(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -95938,10 +95925,10 @@ public void UncuffPed(int _ped) } public bool IsPedCuffed(IPlayer ped) => IsPedCuffed(ped.ScriptId); - public bool IsPedCuffed(int _ped) + public bool IsPedCuffed(uint _ped) { unsafe { - if (fn__isPedCuffed == null) fn__isPedCuffed = (delegate* unmanaged[Cdecl]) funcTable[0x74E559B3BC910685UL]; + if (fn__isPedCuffed == null) fn__isPedCuffed = (delegate* unmanaged[Cdecl]) funcTable[0x74E559B3BC910685UL]; var success = false; var result = fn__isPedCuffed(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -95949,10 +95936,10 @@ public bool IsPedCuffed(int _ped) } } - public int CreateVehicle(uint _modelHash, float _x, float _y, float _z, float _heading, bool _isNetwork, bool _bScriptHostVeh, bool _p7) + public uint CreateVehicle(uint _modelHash, float _x, float _y, float _z, float _heading, bool _isNetwork, bool _bScriptHostVeh, bool _p7) { unsafe { - if (fn__createVehicle == null) fn__createVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xAF35D0D2583051B0UL]; + if (fn__createVehicle == null) fn__createVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xAF35D0D2583051B0UL]; var success = false; var result = fn__createVehicle(&success, _modelHash, _x, _y, _z, _heading, (byte) (_isNetwork ? 1 : 0), (byte) (_bScriptHostVeh ? 1 : 0), (byte) (_p7 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -95960,10 +95947,10 @@ public int CreateVehicle(uint _modelHash, float _x, float _y, float _z, float _h } } - public void DeleteVehicle(ref int _vehicle) + public void DeleteVehicle(ref uint _vehicle) { unsafe { - if (fn__deleteVehicle == null) fn__deleteVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xEA386986E786A54FUL]; + if (fn__deleteVehicle == null) fn__deleteVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xEA386986E786A54FUL]; var success = false; var ref_vehicle = _vehicle; fn__deleteVehicle(&success, &ref_vehicle); @@ -95973,10 +95960,10 @@ public void DeleteVehicle(ref int _vehicle) } public void SetVehicleAllowHomingMissleLockon(IVehicle vehicle, bool toggle, bool p2) => SetVehicleAllowHomingMissleLockon(vehicle.ScriptId, toggle, p2); - public void SetVehicleAllowHomingMissleLockon(int _vehicle, bool _toggle, bool _p2) + public void SetVehicleAllowHomingMissleLockon(uint _vehicle, bool _toggle, bool _p2) { unsafe { - if (fn__setVehicleAllowHomingMissleLockon == null) fn__setVehicleAllowHomingMissleLockon = (delegate* unmanaged[Cdecl]) funcTable[0x7D6F9A3EF26136A0UL]; + if (fn__setVehicleAllowHomingMissleLockon == null) fn__setVehicleAllowHomingMissleLockon = (delegate* unmanaged[Cdecl]) funcTable[0x7D6F9A3EF26136A0UL]; var success = false; fn__setVehicleAllowHomingMissleLockon(&success, _vehicle, (byte) (_toggle ? 1 : 0), (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -95984,10 +95971,10 @@ public void SetVehicleAllowHomingMissleLockon(int _vehicle, bool _toggle, bool _ } public void SetVehicleAllowHomingMissleLockonSynced(IVehicle vehicle, bool canBeLockedOn, bool p2) => SetVehicleAllowHomingMissleLockonSynced(vehicle.ScriptId, canBeLockedOn, p2); - public void SetVehicleAllowHomingMissleLockonSynced(int _vehicle, bool _canBeLockedOn, bool _p2) + public void SetVehicleAllowHomingMissleLockonSynced(uint _vehicle, bool _canBeLockedOn, bool _p2) { unsafe { - if (fn__setVehicleAllowHomingMissleLockonSynced == null) fn__setVehicleAllowHomingMissleLockonSynced = (delegate* unmanaged[Cdecl]) funcTable[0x1DDA078D12879EEEUL]; + if (fn__setVehicleAllowHomingMissleLockonSynced == null) fn__setVehicleAllowHomingMissleLockonSynced = (delegate* unmanaged[Cdecl]) funcTable[0x1DDA078D12879EEEUL]; var success = false; fn__setVehicleAllowHomingMissleLockonSynced(&success, _vehicle, (byte) (_canBeLockedOn ? 1 : 0), (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -95995,10 +95982,10 @@ public void SetVehicleAllowHomingMissleLockonSynced(int _vehicle, bool _canBeLoc } public void SetVehicleAllowNoPassengersLockon(IVehicle veh, bool toggle) => SetVehicleAllowNoPassengersLockon(veh.ScriptId, toggle); - public void SetVehicleAllowNoPassengersLockon(int _veh, bool _toggle) + public void SetVehicleAllowNoPassengersLockon(uint _veh, bool _toggle) { unsafe { - if (fn__setVehicleAllowNoPassengersLockon == null) fn__setVehicleAllowNoPassengersLockon = (delegate* unmanaged[Cdecl]) funcTable[0x5D14D4154BFE7B2CUL]; + if (fn__setVehicleAllowNoPassengersLockon == null) fn__setVehicleAllowNoPassengersLockon = (delegate* unmanaged[Cdecl]) funcTable[0x5D14D4154BFE7B2CUL]; var success = false; fn__setVehicleAllowNoPassengersLockon(&success, _veh, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96006,10 +95993,10 @@ public void SetVehicleAllowNoPassengersLockon(int _veh, bool _toggle) } public int GetVehicleHomingLockonState(IVehicle vehicle) => GetVehicleHomingLockonState(vehicle.ScriptId); - public int GetVehicleHomingLockonState(int _vehicle) + public int GetVehicleHomingLockonState(uint _vehicle) { unsafe { - if (fn__getVehicleHomingLockonState == null) fn__getVehicleHomingLockonState = (delegate* unmanaged[Cdecl]) funcTable[0xE6B0E8CFC3633BF0UL]; + if (fn__getVehicleHomingLockonState == null) fn__getVehicleHomingLockonState = (delegate* unmanaged[Cdecl]) funcTable[0xE6B0E8CFC3633BF0UL]; var success = false; var result = fn__getVehicleHomingLockonState(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96039,10 +96026,10 @@ public void SetVehicleHomingLockedontoState(int _p0, int _p1) } public bool IsVehicleModel(IVehicle vehicle, uint model) => IsVehicleModel(vehicle.ScriptId, model); - public bool IsVehicleModel(int _vehicle, uint _model) + public bool IsVehicleModel(uint _vehicle, uint _model) { unsafe { - if (fn__isVehicleModel == null) fn__isVehicleModel = (delegate* unmanaged[Cdecl]) funcTable[0x423E8DE37D934D89UL]; + if (fn__isVehicleModel == null) fn__isVehicleModel = (delegate* unmanaged[Cdecl]) funcTable[0x423E8DE37D934D89UL]; var success = false; var result = fn__isVehicleModel(&success, _vehicle, _model); if (!success) throw new Exception("Native execution failed"); @@ -96143,10 +96130,10 @@ public void ClearVehicleGeneratorAreaOfInterest() } public bool SetVehicleOnGroundProperly(IVehicle vehicle, float p1) => SetVehicleOnGroundProperly(vehicle.ScriptId, p1); - public bool SetVehicleOnGroundProperly(int _vehicle, float _p1) + public bool SetVehicleOnGroundProperly(uint _vehicle, float _p1) { unsafe { - if (fn__setVehicleOnGroundProperly == null) fn__setVehicleOnGroundProperly = (delegate* unmanaged[Cdecl]) funcTable[0x49733E92263139D1UL]; + if (fn__setVehicleOnGroundProperly == null) fn__setVehicleOnGroundProperly = (delegate* unmanaged[Cdecl]) funcTable[0x49733E92263139D1UL]; var success = false; var result = fn__setVehicleOnGroundProperly(&success, _vehicle, _p1); if (!success) throw new Exception("Native execution failed"); @@ -96155,10 +96142,10 @@ public bool SetVehicleOnGroundProperly(int _vehicle, float _p1) } public bool SetVehicleUseCutsceneWheelCompression(IVehicle p0, bool p1, bool p2, bool p3) => SetVehicleUseCutsceneWheelCompression(p0.ScriptId, p1, p2, p3); - public bool SetVehicleUseCutsceneWheelCompression(int _p0, bool _p1, bool _p2, bool _p3) + public bool SetVehicleUseCutsceneWheelCompression(uint _p0, bool _p1, bool _p2, bool _p3) { unsafe { - if (fn__setVehicleUseCutsceneWheelCompression == null) fn__setVehicleUseCutsceneWheelCompression = (delegate* unmanaged[Cdecl]) funcTable[0xE023E8AC4EF7C117UL]; + if (fn__setVehicleUseCutsceneWheelCompression == null) fn__setVehicleUseCutsceneWheelCompression = (delegate* unmanaged[Cdecl]) funcTable[0xE023E8AC4EF7C117UL]; var success = false; var result = fn__setVehicleUseCutsceneWheelCompression(&success, _p0, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0), (byte) (_p3 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96167,10 +96154,10 @@ public bool SetVehicleUseCutsceneWheelCompression(int _p0, bool _p1, bool _p2, b } public bool IsVehicleStuckOnRoof(IVehicle vehicle) => IsVehicleStuckOnRoof(vehicle.ScriptId); - public bool IsVehicleStuckOnRoof(int _vehicle) + public bool IsVehicleStuckOnRoof(uint _vehicle) { unsafe { - if (fn__isVehicleStuckOnRoof == null) fn__isVehicleStuckOnRoof = (delegate* unmanaged[Cdecl]) funcTable[0xB497F06B288DCFDFUL]; + if (fn__isVehicleStuckOnRoof == null) fn__isVehicleStuckOnRoof = (delegate* unmanaged[Cdecl]) funcTable[0xB497F06B288DCFDFUL]; var success = false; var result = fn__isVehicleStuckOnRoof(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96179,10 +96166,10 @@ public bool IsVehicleStuckOnRoof(int _vehicle) } public void AddVehicleUpsidedownCheck(IVehicle vehicle) => AddVehicleUpsidedownCheck(vehicle.ScriptId); - public void AddVehicleUpsidedownCheck(int _vehicle) + public void AddVehicleUpsidedownCheck(uint _vehicle) { unsafe { - if (fn__addVehicleUpsidedownCheck == null) fn__addVehicleUpsidedownCheck = (delegate* unmanaged[Cdecl]) funcTable[0xB72E26D81006005BUL]; + if (fn__addVehicleUpsidedownCheck == null) fn__addVehicleUpsidedownCheck = (delegate* unmanaged[Cdecl]) funcTable[0xB72E26D81006005BUL]; var success = false; fn__addVehicleUpsidedownCheck(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96190,10 +96177,10 @@ public void AddVehicleUpsidedownCheck(int _vehicle) } public void RemoveVehicleUpsidedownCheck(IVehicle vehicle) => RemoveVehicleUpsidedownCheck(vehicle.ScriptId); - public void RemoveVehicleUpsidedownCheck(int _vehicle) + public void RemoveVehicleUpsidedownCheck(uint _vehicle) { unsafe { - if (fn__removeVehicleUpsidedownCheck == null) fn__removeVehicleUpsidedownCheck = (delegate* unmanaged[Cdecl]) funcTable[0xC53EB42A499A7E90UL]; + if (fn__removeVehicleUpsidedownCheck == null) fn__removeVehicleUpsidedownCheck = (delegate* unmanaged[Cdecl]) funcTable[0xC53EB42A499A7E90UL]; var success = false; fn__removeVehicleUpsidedownCheck(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96201,10 +96188,10 @@ public void RemoveVehicleUpsidedownCheck(int _vehicle) } public bool IsVehicleStopped(IVehicle vehicle) => IsVehicleStopped(vehicle.ScriptId); - public bool IsVehicleStopped(int _vehicle) + public bool IsVehicleStopped(uint _vehicle) { unsafe { - if (fn__isVehicleStopped == null) fn__isVehicleStopped = (delegate* unmanaged[Cdecl]) funcTable[0x5721B434AD84D57AUL]; + if (fn__isVehicleStopped == null) fn__isVehicleStopped = (delegate* unmanaged[Cdecl]) funcTable[0x5721B434AD84D57AUL]; var success = false; var result = fn__isVehicleStopped(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96213,10 +96200,10 @@ public bool IsVehicleStopped(int _vehicle) } public int GetVehicleNumberOfPassengers(IVehicle vehicle, bool includeDriver, bool includeDeadOccupants) => GetVehicleNumberOfPassengers(vehicle.ScriptId, includeDriver, includeDeadOccupants); - public int GetVehicleNumberOfPassengers(int _vehicle, bool _includeDriver, bool _includeDeadOccupants) + public int GetVehicleNumberOfPassengers(uint _vehicle, bool _includeDriver, bool _includeDeadOccupants) { unsafe { - if (fn__getVehicleNumberOfPassengers == null) fn__getVehicleNumberOfPassengers = (delegate* unmanaged[Cdecl]) funcTable[0x24CB2137731FFE89UL]; + if (fn__getVehicleNumberOfPassengers == null) fn__getVehicleNumberOfPassengers = (delegate* unmanaged[Cdecl]) funcTable[0x24CB2137731FFE89UL]; var success = false; var result = fn__getVehicleNumberOfPassengers(&success, _vehicle, (byte) (_includeDriver ? 1 : 0), (byte) (_includeDeadOccupants ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96225,10 +96212,10 @@ public int GetVehicleNumberOfPassengers(int _vehicle, bool _includeDriver, bool } public int GetVehicleMaxNumberOfPassengers(IVehicle vehicle) => GetVehicleMaxNumberOfPassengers(vehicle.ScriptId); - public int GetVehicleMaxNumberOfPassengers(int _vehicle) + public int GetVehicleMaxNumberOfPassengers(uint _vehicle) { unsafe { - if (fn__getVehicleMaxNumberOfPassengers == null) fn__getVehicleMaxNumberOfPassengers = (delegate* unmanaged[Cdecl]) funcTable[0xA7C4F2C6E744A550UL]; + if (fn__getVehicleMaxNumberOfPassengers == null) fn__getVehicleMaxNumberOfPassengers = (delegate* unmanaged[Cdecl]) funcTable[0xA7C4F2C6E744A550UL]; var success = false; var result = fn__getVehicleMaxNumberOfPassengers(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96248,10 +96235,10 @@ public int GetVehicleModelNumberOfSeats(uint _modelHash) } public bool IsSeatWarpOnly(IVehicle vehicle, int seatIndex) => IsSeatWarpOnly(vehicle.ScriptId, seatIndex); - public bool IsSeatWarpOnly(int _vehicle, int _seatIndex) + public bool IsSeatWarpOnly(uint _vehicle, int _seatIndex) { unsafe { - if (fn__isSeatWarpOnly == null) fn__isSeatWarpOnly = (delegate* unmanaged[Cdecl]) funcTable[0xF7F203E31F96F6A1UL]; + if (fn__isSeatWarpOnly == null) fn__isSeatWarpOnly = (delegate* unmanaged[Cdecl]) funcTable[0xF7F203E31F96F6A1UL]; var success = false; var result = fn__isSeatWarpOnly(&success, _vehicle, _seatIndex); if (!success) throw new Exception("Native execution failed"); @@ -96260,10 +96247,10 @@ public bool IsSeatWarpOnly(int _vehicle, int _seatIndex) } public bool IsTurretSeat(IVehicle vehicle, int seatIndex) => IsTurretSeat(vehicle.ScriptId, seatIndex); - public bool IsTurretSeat(int _vehicle, int _seatIndex) + public bool IsTurretSeat(uint _vehicle, int _seatIndex) { unsafe { - if (fn__isTurretSeat == null) fn__isTurretSeat = (delegate* unmanaged[Cdecl]) funcTable[0xE33FFA906CE74880UL]; + if (fn__isTurretSeat == null) fn__isTurretSeat = (delegate* unmanaged[Cdecl]) funcTable[0xE33FFA906CE74880UL]; var success = false; var result = fn__isTurretSeat(&success, _vehicle, _seatIndex); if (!success) throw new Exception("Native execution failed"); @@ -96272,10 +96259,10 @@ public bool IsTurretSeat(int _vehicle, int _seatIndex) } public bool DoesVehicleAllowRappel(IVehicle vehicle) => DoesVehicleAllowRappel(vehicle.ScriptId); - public bool DoesVehicleAllowRappel(int _vehicle) + public bool DoesVehicleAllowRappel(uint _vehicle) { unsafe { - if (fn__doesVehicleAllowRappel == null) fn__doesVehicleAllowRappel = (delegate* unmanaged[Cdecl]) funcTable[0x4E417C547182C84DUL]; + if (fn__doesVehicleAllowRappel == null) fn__doesVehicleAllowRappel = (delegate* unmanaged[Cdecl]) funcTable[0x4E417C547182C84DUL]; var success = false; var result = fn__doesVehicleAllowRappel(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96354,10 +96341,10 @@ public void SetNumberOfParkedVehicles(int _value) } public void SetVehicleDoorsLocked(IVehicle vehicle, int doorLockStatus) => SetVehicleDoorsLocked(vehicle.ScriptId, doorLockStatus); - public void SetVehicleDoorsLocked(int _vehicle, int _doorLockStatus) + public void SetVehicleDoorsLocked(uint _vehicle, int _doorLockStatus) { unsafe { - if (fn__setVehicleDoorsLocked == null) fn__setVehicleDoorsLocked = (delegate* unmanaged[Cdecl]) funcTable[0xB664292EAECF7FA6UL]; + if (fn__setVehicleDoorsLocked == null) fn__setVehicleDoorsLocked = (delegate* unmanaged[Cdecl]) funcTable[0xB664292EAECF7FA6UL]; var success = false; fn__setVehicleDoorsLocked(&success, _vehicle, _doorLockStatus); if (!success) throw new Exception("Native execution failed"); @@ -96365,10 +96352,10 @@ public void SetVehicleDoorsLocked(int _vehicle, int _doorLockStatus) } public void SetVehicleIndividualDoorsLocked(IVehicle vehicle, int doorId, int doorLockStatus) => SetVehicleIndividualDoorsLocked(vehicle.ScriptId, doorId, doorLockStatus); - public void SetVehicleIndividualDoorsLocked(int _vehicle, int _doorId, int _doorLockStatus) + public void SetVehicleIndividualDoorsLocked(uint _vehicle, int _doorId, int _doorLockStatus) { unsafe { - if (fn__setVehicleIndividualDoorsLocked == null) fn__setVehicleIndividualDoorsLocked = (delegate* unmanaged[Cdecl]) funcTable[0xBE70724027F85BCDUL]; + if (fn__setVehicleIndividualDoorsLocked == null) fn__setVehicleIndividualDoorsLocked = (delegate* unmanaged[Cdecl]) funcTable[0xBE70724027F85BCDUL]; var success = false; fn__setVehicleIndividualDoorsLocked(&success, _vehicle, _doorId, _doorLockStatus); if (!success) throw new Exception("Native execution failed"); @@ -96376,36 +96363,36 @@ public void SetVehicleIndividualDoorsLocked(int _vehicle, int _doorId, int _door } public void SetVehicleHasMutedSirens(IVehicle vehicle, bool toggle) => SetVehicleHasMutedSirens(vehicle.ScriptId, toggle); - public void SetVehicleHasMutedSirens(int _vehicle, bool _toggle) + public void SetVehicleHasMutedSirens(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleHasMutedSirens == null) fn__setVehicleHasMutedSirens = (delegate* unmanaged[Cdecl]) funcTable[0xD8050E0EB60CF274UL]; + if (fn__setVehicleHasMutedSirens == null) fn__setVehicleHasMutedSirens = (delegate* unmanaged[Cdecl]) funcTable[0xD8050E0EB60CF274UL]; var success = false; fn__setVehicleHasMutedSirens(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void SetVehicleDoorsLockedForPlayer(IVehicle vehicle, int player, bool toggle) => SetVehicleDoorsLockedForPlayer(vehicle.ScriptId, player, toggle); - public void SetVehicleDoorsLockedForPlayer(int vehicle, IPlayer player, bool toggle) => SetVehicleDoorsLockedForPlayer(vehicle, player.ScriptId, toggle); + public void SetVehicleDoorsLockedForPlayer(IVehicle vehicle, uint player, bool toggle) => SetVehicleDoorsLockedForPlayer(vehicle.ScriptId, player, toggle); + public void SetVehicleDoorsLockedForPlayer(uint vehicle, IPlayer player, bool toggle) => SetVehicleDoorsLockedForPlayer(vehicle, player.ScriptId, toggle); public void SetVehicleDoorsLockedForPlayer(IVehicle vehicle, IPlayer player, bool toggle) => SetVehicleDoorsLockedForPlayer(vehicle.ScriptId, player.ScriptId, toggle); - public void SetVehicleDoorsLockedForPlayer(int _vehicle, int _player, bool _toggle) + public void SetVehicleDoorsLockedForPlayer(uint _vehicle, uint _player, bool _toggle) { unsafe { - if (fn__setVehicleDoorsLockedForPlayer == null) fn__setVehicleDoorsLockedForPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x517AAF684BB50CD1UL]; + if (fn__setVehicleDoorsLockedForPlayer == null) fn__setVehicleDoorsLockedForPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x517AAF684BB50CD1UL]; var success = false; fn__setVehicleDoorsLockedForPlayer(&success, _vehicle, _player, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public bool GetVehicleDoorsLockedForPlayer(IVehicle vehicle, int player) => GetVehicleDoorsLockedForPlayer(vehicle.ScriptId, player); - public bool GetVehicleDoorsLockedForPlayer(int vehicle, IPlayer player) => GetVehicleDoorsLockedForPlayer(vehicle, player.ScriptId); + public bool GetVehicleDoorsLockedForPlayer(IVehicle vehicle, uint player) => GetVehicleDoorsLockedForPlayer(vehicle.ScriptId, player); + public bool GetVehicleDoorsLockedForPlayer(uint vehicle, IPlayer player) => GetVehicleDoorsLockedForPlayer(vehicle, player.ScriptId); public bool GetVehicleDoorsLockedForPlayer(IVehicle vehicle, IPlayer player) => GetVehicleDoorsLockedForPlayer(vehicle.ScriptId, player.ScriptId); - public bool GetVehicleDoorsLockedForPlayer(int _vehicle, int _player) + public bool GetVehicleDoorsLockedForPlayer(uint _vehicle, uint _player) { unsafe { - if (fn__getVehicleDoorsLockedForPlayer == null) fn__getVehicleDoorsLockedForPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xF6AF6CB341349015UL]; + if (fn__getVehicleDoorsLockedForPlayer == null) fn__getVehicleDoorsLockedForPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xF6AF6CB341349015UL]; var success = false; var result = fn__getVehicleDoorsLockedForPlayer(&success, _vehicle, _player); if (!success) throw new Exception("Native execution failed"); @@ -96414,10 +96401,10 @@ public bool GetVehicleDoorsLockedForPlayer(int _vehicle, int _player) } public void SetVehicleDoorsLockedForAllPlayers(IVehicle vehicle, bool toggle) => SetVehicleDoorsLockedForAllPlayers(vehicle.ScriptId, toggle); - public void SetVehicleDoorsLockedForAllPlayers(int _vehicle, bool _toggle) + public void SetVehicleDoorsLockedForAllPlayers(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleDoorsLockedForAllPlayers == null) fn__setVehicleDoorsLockedForAllPlayers = (delegate* unmanaged[Cdecl]) funcTable[0xA2F80B8D040727CCUL]; + if (fn__setVehicleDoorsLockedForAllPlayers == null) fn__setVehicleDoorsLockedForAllPlayers = (delegate* unmanaged[Cdecl]) funcTable[0xA2F80B8D040727CCUL]; var success = false; fn__setVehicleDoorsLockedForAllPlayers(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96425,10 +96412,10 @@ public void SetVehicleDoorsLockedForAllPlayers(int _vehicle, bool _toggle) } public void SetVehicleDoorsLockedForNonScriptPlayers(IVehicle vehicle, bool toggle) => SetVehicleDoorsLockedForNonScriptPlayers(vehicle.ScriptId, toggle); - public void SetVehicleDoorsLockedForNonScriptPlayers(int _vehicle, bool _toggle) + public void SetVehicleDoorsLockedForNonScriptPlayers(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleDoorsLockedForNonScriptPlayers == null) fn__setVehicleDoorsLockedForNonScriptPlayers = (delegate* unmanaged[Cdecl]) funcTable[0x9737A37136F07E75UL]; + if (fn__setVehicleDoorsLockedForNonScriptPlayers == null) fn__setVehicleDoorsLockedForNonScriptPlayers = (delegate* unmanaged[Cdecl]) funcTable[0x9737A37136F07E75UL]; var success = false; fn__setVehicleDoorsLockedForNonScriptPlayers(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96436,10 +96423,10 @@ public void SetVehicleDoorsLockedForNonScriptPlayers(int _vehicle, bool _toggle) } public void SetVehicleDoorsLockedForTeam(IVehicle vehicle, int team, bool toggle) => SetVehicleDoorsLockedForTeam(vehicle.ScriptId, team, toggle); - public void SetVehicleDoorsLockedForTeam(int _vehicle, int _team, bool _toggle) + public void SetVehicleDoorsLockedForTeam(uint _vehicle, int _team, bool _toggle) { unsafe { - if (fn__setVehicleDoorsLockedForTeam == null) fn__setVehicleDoorsLockedForTeam = (delegate* unmanaged[Cdecl]) funcTable[0xB81F6D4A8F5EEBA8UL]; + if (fn__setVehicleDoorsLockedForTeam == null) fn__setVehicleDoorsLockedForTeam = (delegate* unmanaged[Cdecl]) funcTable[0xB81F6D4A8F5EEBA8UL]; var success = false; fn__setVehicleDoorsLockedForTeam(&success, _vehicle, _team, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96447,10 +96434,10 @@ public void SetVehicleDoorsLockedForTeam(int _vehicle, int _team, bool _toggle) } public void SetVehicleDoorsLockedForAllTeams(IVehicle vehicle, bool toggle) => SetVehicleDoorsLockedForAllTeams(vehicle.ScriptId, toggle); - public void SetVehicleDoorsLockedForAllTeams(int _vehicle, bool _toggle) + public void SetVehicleDoorsLockedForAllTeams(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleDoorsLockedForAllTeams == null) fn__setVehicleDoorsLockedForAllTeams = (delegate* unmanaged[Cdecl]) funcTable[0x203B527D1B77904CUL]; + if (fn__setVehicleDoorsLockedForAllTeams == null) fn__setVehicleDoorsLockedForAllTeams = (delegate* unmanaged[Cdecl]) funcTable[0x203B527D1B77904CUL]; var success = false; fn__setVehicleDoorsLockedForAllTeams(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96458,10 +96445,10 @@ public void SetVehicleDoorsLockedForAllTeams(int _vehicle, bool _toggle) } public void SetVehicleDontTerminateTaskWhenAchieved(IVehicle vehicle) => SetVehicleDontTerminateTaskWhenAchieved(vehicle.ScriptId); - public void SetVehicleDontTerminateTaskWhenAchieved(int _vehicle) + public void SetVehicleDontTerminateTaskWhenAchieved(uint _vehicle) { unsafe { - if (fn__setVehicleDontTerminateTaskWhenAchieved == null) fn__setVehicleDontTerminateTaskWhenAchieved = (delegate* unmanaged[Cdecl]) funcTable[0x76D26A22750E849EUL]; + if (fn__setVehicleDontTerminateTaskWhenAchieved == null) fn__setVehicleDontTerminateTaskWhenAchieved = (delegate* unmanaged[Cdecl]) funcTable[0x76D26A22750E849EUL]; var success = false; fn__setVehicleDontTerminateTaskWhenAchieved(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96469,10 +96456,10 @@ public void SetVehicleDontTerminateTaskWhenAchieved(int _vehicle) } public void ExplodeVehicle(IVehicle vehicle, bool isAudible, bool isInvisible) => ExplodeVehicle(vehicle.ScriptId, isAudible, isInvisible); - public void ExplodeVehicle(int _vehicle, bool _isAudible, bool _isInvisible) + public void ExplodeVehicle(uint _vehicle, bool _isAudible, bool _isInvisible) { unsafe { - if (fn__explodeVehicle == null) fn__explodeVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xBA71116ADF5B514CUL]; + if (fn__explodeVehicle == null) fn__explodeVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xBA71116ADF5B514CUL]; var success = false; fn__explodeVehicle(&success, _vehicle, (byte) (_isAudible ? 1 : 0), (byte) (_isInvisible ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96480,23 +96467,23 @@ public void ExplodeVehicle(int _vehicle, bool _isAudible, bool _isInvisible) } public void SetVehicleOutOfControl(IVehicle vehicle, bool killDriver, bool explodeOnImpact) => SetVehicleOutOfControl(vehicle.ScriptId, killDriver, explodeOnImpact); - public void SetVehicleOutOfControl(int _vehicle, bool _killDriver, bool _explodeOnImpact) + public void SetVehicleOutOfControl(uint _vehicle, bool _killDriver, bool _explodeOnImpact) { unsafe { - if (fn__setVehicleOutOfControl == null) fn__setVehicleOutOfControl = (delegate* unmanaged[Cdecl]) funcTable[0xF19D095E42D430CCUL]; + if (fn__setVehicleOutOfControl == null) fn__setVehicleOutOfControl = (delegate* unmanaged[Cdecl]) funcTable[0xF19D095E42D430CCUL]; var success = false; fn__setVehicleOutOfControl(&success, _vehicle, (byte) (_killDriver ? 1 : 0), (byte) (_explodeOnImpact ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void SetVehicleTimedExplosion(IVehicle vehicle, int ped, bool toggle) => SetVehicleTimedExplosion(vehicle.ScriptId, ped, toggle); - public void SetVehicleTimedExplosion(int vehicle, IPlayer ped, bool toggle) => SetVehicleTimedExplosion(vehicle, ped.ScriptId, toggle); + public void SetVehicleTimedExplosion(IVehicle vehicle, uint ped, bool toggle) => SetVehicleTimedExplosion(vehicle.ScriptId, ped, toggle); + public void SetVehicleTimedExplosion(uint vehicle, IPlayer ped, bool toggle) => SetVehicleTimedExplosion(vehicle, ped.ScriptId, toggle); public void SetVehicleTimedExplosion(IVehicle vehicle, IPlayer ped, bool toggle) => SetVehicleTimedExplosion(vehicle.ScriptId, ped.ScriptId, toggle); - public void SetVehicleTimedExplosion(int _vehicle, int _ped, bool _toggle) + public void SetVehicleTimedExplosion(uint _vehicle, uint _ped, bool _toggle) { unsafe { - if (fn__setVehicleTimedExplosion == null) fn__setVehicleTimedExplosion = (delegate* unmanaged[Cdecl]) funcTable[0x2E0A74E1002380B1UL]; + if (fn__setVehicleTimedExplosion == null) fn__setVehicleTimedExplosion = (delegate* unmanaged[Cdecl]) funcTable[0x2E0A74E1002380B1UL]; var success = false; fn__setVehicleTimedExplosion(&success, _vehicle, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96504,10 +96491,10 @@ public void SetVehicleTimedExplosion(int _vehicle, int _ped, bool _toggle) } public void AddVehiclePhoneExplosiveDevice(IVehicle vehicle) => AddVehiclePhoneExplosiveDevice(vehicle.ScriptId); - public void AddVehiclePhoneExplosiveDevice(int _vehicle) + public void AddVehiclePhoneExplosiveDevice(uint _vehicle) { unsafe { - if (fn__addVehiclePhoneExplosiveDevice == null) fn__addVehiclePhoneExplosiveDevice = (delegate* unmanaged[Cdecl]) funcTable[0x99AD4CCCB128CBC9UL]; + if (fn__addVehiclePhoneExplosiveDevice == null) fn__addVehiclePhoneExplosiveDevice = (delegate* unmanaged[Cdecl]) funcTable[0x99AD4CCCB128CBC9UL]; var success = false; fn__addVehiclePhoneExplosiveDevice(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96546,10 +96533,10 @@ public void DetonateVehiclePhoneExplosiveDevice() } public void SetTaxiLights(IVehicle vehicle, bool state) => SetTaxiLights(vehicle.ScriptId, state); - public void SetTaxiLights(int _vehicle, bool _state) + public void SetTaxiLights(uint _vehicle, bool _state) { unsafe { - if (fn__setTaxiLights == null) fn__setTaxiLights = (delegate* unmanaged[Cdecl]) funcTable[0x598803E85E8448D9UL]; + if (fn__setTaxiLights == null) fn__setTaxiLights = (delegate* unmanaged[Cdecl]) funcTable[0x598803E85E8448D9UL]; var success = false; fn__setTaxiLights(&success, _vehicle, (byte) (_state ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96557,10 +96544,10 @@ public void SetTaxiLights(int _vehicle, bool _state) } public bool IsTaxiLightOn(IVehicle vehicle) => IsTaxiLightOn(vehicle.ScriptId); - public bool IsTaxiLightOn(int _vehicle) + public bool IsTaxiLightOn(uint _vehicle) { unsafe { - if (fn__isTaxiLightOn == null) fn__isTaxiLightOn = (delegate* unmanaged[Cdecl]) funcTable[0x7504C0F113AB50FCUL]; + if (fn__isTaxiLightOn == null) fn__isTaxiLightOn = (delegate* unmanaged[Cdecl]) funcTable[0x7504C0F113AB50FCUL]; var success = false; var result = fn__isTaxiLightOn(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96569,24 +96556,24 @@ public bool IsTaxiLightOn(int _vehicle) } public bool IsVehicleInGarageArea(string garageName, IVehicle vehicle) => IsVehicleInGarageArea(garageName, vehicle.ScriptId); - public bool IsVehicleInGarageArea(string _garageName, int _vehicle) + public bool IsVehicleInGarageArea(string _garageName, uint _vehicle) { unsafe { - if (fn__isVehicleInGarageArea == null) fn__isVehicleInGarageArea = (delegate* unmanaged[Cdecl]) funcTable[0xCEE4490CD57BB3C2UL]; + if (fn__isVehicleInGarageArea == null) fn__isVehicleInGarageArea = (delegate* unmanaged[Cdecl]) funcTable[0xCEE4490CD57BB3C2UL]; var success = false; - var ptr_garageName = _garageName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_garageName); + var ptr_garageName = MemoryUtils.StringToHGlobalUtf8(_garageName); var result = fn__isVehicleInGarageArea(&success, ptr_garageName, _vehicle); - if (ptr_garageName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_garageName); + Marshal.FreeHGlobal(ptr_garageName); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } } public void SetVehicleColours(IVehicle vehicle, int colorPrimary, int colorSecondary) => SetVehicleColours(vehicle.ScriptId, colorPrimary, colorSecondary); - public void SetVehicleColours(int _vehicle, int _colorPrimary, int _colorSecondary) + public void SetVehicleColours(uint _vehicle, int _colorPrimary, int _colorSecondary) { unsafe { - if (fn__setVehicleColours == null) fn__setVehicleColours = (delegate* unmanaged[Cdecl]) funcTable[0x4F1D4BE3A7F24601UL]; + if (fn__setVehicleColours == null) fn__setVehicleColours = (delegate* unmanaged[Cdecl]) funcTable[0x4F1D4BE3A7F24601UL]; var success = false; fn__setVehicleColours(&success, _vehicle, _colorPrimary, _colorSecondary); if (!success) throw new Exception("Native execution failed"); @@ -96594,10 +96581,10 @@ public void SetVehicleColours(int _vehicle, int _colorPrimary, int _colorSeconda } public void SetVehicleFullbeam(IVehicle vehicle, bool toggle) => SetVehicleFullbeam(vehicle.ScriptId, toggle); - public void SetVehicleFullbeam(int _vehicle, bool _toggle) + public void SetVehicleFullbeam(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleFullbeam == null) fn__setVehicleFullbeam = (delegate* unmanaged[Cdecl]) funcTable[0x8B7FD87F0DDB421EUL]; + if (fn__setVehicleFullbeam == null) fn__setVehicleFullbeam = (delegate* unmanaged[Cdecl]) funcTable[0x8B7FD87F0DDB421EUL]; var success = false; fn__setVehicleFullbeam(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96605,10 +96592,10 @@ public void SetVehicleFullbeam(int _vehicle, bool _toggle) } public void SetVehicleIsRacing(IVehicle vehicle, bool toggle) => SetVehicleIsRacing(vehicle.ScriptId, toggle); - public void SetVehicleIsRacing(int _vehicle, bool _toggle) + public void SetVehicleIsRacing(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleIsRacing == null) fn__setVehicleIsRacing = (delegate* unmanaged[Cdecl]) funcTable[0x07116E24E9D1929DUL]; + if (fn__setVehicleIsRacing == null) fn__setVehicleIsRacing = (delegate* unmanaged[Cdecl]) funcTable[0x07116E24E9D1929DUL]; var success = false; fn__setVehicleIsRacing(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96616,10 +96603,10 @@ public void SetVehicleIsRacing(int _vehicle, bool _toggle) } public void SetVehicleCustomPrimaryColour(IVehicle vehicle, int r, int g, int b) => SetVehicleCustomPrimaryColour(vehicle.ScriptId, r, g, b); - public void SetVehicleCustomPrimaryColour(int _vehicle, int _r, int _g, int _b) + public void SetVehicleCustomPrimaryColour(uint _vehicle, int _r, int _g, int _b) { unsafe { - if (fn__setVehicleCustomPrimaryColour == null) fn__setVehicleCustomPrimaryColour = (delegate* unmanaged[Cdecl]) funcTable[0x7141766F91D15BEAUL]; + if (fn__setVehicleCustomPrimaryColour == null) fn__setVehicleCustomPrimaryColour = (delegate* unmanaged[Cdecl]) funcTable[0x7141766F91D15BEAUL]; var success = false; fn__setVehicleCustomPrimaryColour(&success, _vehicle, _r, _g, _b); if (!success) throw new Exception("Native execution failed"); @@ -96627,10 +96614,10 @@ public void SetVehicleCustomPrimaryColour(int _vehicle, int _r, int _g, int _b) } public void GetVehicleCustomPrimaryColour(IVehicle vehicle, ref int r, ref int g, ref int b) => GetVehicleCustomPrimaryColour(vehicle.ScriptId, ref r, ref g, ref b); - public void GetVehicleCustomPrimaryColour(int _vehicle, ref int _r, ref int _g, ref int _b) + public void GetVehicleCustomPrimaryColour(uint _vehicle, ref int _r, ref int _g, ref int _b) { unsafe { - if (fn__getVehicleCustomPrimaryColour == null) fn__getVehicleCustomPrimaryColour = (delegate* unmanaged[Cdecl]) funcTable[0xB64CF2CCA9D95F52UL]; + if (fn__getVehicleCustomPrimaryColour == null) fn__getVehicleCustomPrimaryColour = (delegate* unmanaged[Cdecl]) funcTable[0xB64CF2CCA9D95F52UL]; var success = false; var ref_r = _r; var ref_g = _g; @@ -96644,10 +96631,10 @@ public void GetVehicleCustomPrimaryColour(int _vehicle, ref int _r, ref int _g, } public void ClearVehicleCustomPrimaryColour(IVehicle vehicle) => ClearVehicleCustomPrimaryColour(vehicle.ScriptId); - public void ClearVehicleCustomPrimaryColour(int _vehicle) + public void ClearVehicleCustomPrimaryColour(uint _vehicle) { unsafe { - if (fn__clearVehicleCustomPrimaryColour == null) fn__clearVehicleCustomPrimaryColour = (delegate* unmanaged[Cdecl]) funcTable[0x55E1D2758F34E437UL]; + if (fn__clearVehicleCustomPrimaryColour == null) fn__clearVehicleCustomPrimaryColour = (delegate* unmanaged[Cdecl]) funcTable[0x55E1D2758F34E437UL]; var success = false; fn__clearVehicleCustomPrimaryColour(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96655,10 +96642,10 @@ public void ClearVehicleCustomPrimaryColour(int _vehicle) } public bool GetIsVehiclePrimaryColourCustom(IVehicle vehicle) => GetIsVehiclePrimaryColourCustom(vehicle.ScriptId); - public bool GetIsVehiclePrimaryColourCustom(int _vehicle) + public bool GetIsVehiclePrimaryColourCustom(uint _vehicle) { unsafe { - if (fn__getIsVehiclePrimaryColourCustom == null) fn__getIsVehiclePrimaryColourCustom = (delegate* unmanaged[Cdecl]) funcTable[0xF095C0405307B21BUL]; + if (fn__getIsVehiclePrimaryColourCustom == null) fn__getIsVehiclePrimaryColourCustom = (delegate* unmanaged[Cdecl]) funcTable[0xF095C0405307B21BUL]; var success = false; var result = fn__getIsVehiclePrimaryColourCustom(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96667,10 +96654,10 @@ public bool GetIsVehiclePrimaryColourCustom(int _vehicle) } public void SetVehicleCustomSecondaryColour(IVehicle vehicle, int r, int g, int b) => SetVehicleCustomSecondaryColour(vehicle.ScriptId, r, g, b); - public void SetVehicleCustomSecondaryColour(int _vehicle, int _r, int _g, int _b) + public void SetVehicleCustomSecondaryColour(uint _vehicle, int _r, int _g, int _b) { unsafe { - if (fn__setVehicleCustomSecondaryColour == null) fn__setVehicleCustomSecondaryColour = (delegate* unmanaged[Cdecl]) funcTable[0x36CED73BFED89754UL]; + if (fn__setVehicleCustomSecondaryColour == null) fn__setVehicleCustomSecondaryColour = (delegate* unmanaged[Cdecl]) funcTable[0x36CED73BFED89754UL]; var success = false; fn__setVehicleCustomSecondaryColour(&success, _vehicle, _r, _g, _b); if (!success) throw new Exception("Native execution failed"); @@ -96678,10 +96665,10 @@ public void SetVehicleCustomSecondaryColour(int _vehicle, int _r, int _g, int _b } public void GetVehicleCustomSecondaryColour(IVehicle vehicle, ref int r, ref int g, ref int b) => GetVehicleCustomSecondaryColour(vehicle.ScriptId, ref r, ref g, ref b); - public void GetVehicleCustomSecondaryColour(int _vehicle, ref int _r, ref int _g, ref int _b) + public void GetVehicleCustomSecondaryColour(uint _vehicle, ref int _r, ref int _g, ref int _b) { unsafe { - if (fn__getVehicleCustomSecondaryColour == null) fn__getVehicleCustomSecondaryColour = (delegate* unmanaged[Cdecl]) funcTable[0x8389CD56CA8072DCUL]; + if (fn__getVehicleCustomSecondaryColour == null) fn__getVehicleCustomSecondaryColour = (delegate* unmanaged[Cdecl]) funcTable[0x8389CD56CA8072DCUL]; var success = false; var ref_r = _r; var ref_g = _g; @@ -96695,10 +96682,10 @@ public void GetVehicleCustomSecondaryColour(int _vehicle, ref int _r, ref int _g } public void ClearVehicleCustomSecondaryColour(IVehicle vehicle) => ClearVehicleCustomSecondaryColour(vehicle.ScriptId); - public void ClearVehicleCustomSecondaryColour(int _vehicle) + public void ClearVehicleCustomSecondaryColour(uint _vehicle) { unsafe { - if (fn__clearVehicleCustomSecondaryColour == null) fn__clearVehicleCustomSecondaryColour = (delegate* unmanaged[Cdecl]) funcTable[0x5FFBDEEC3E8E2009UL]; + if (fn__clearVehicleCustomSecondaryColour == null) fn__clearVehicleCustomSecondaryColour = (delegate* unmanaged[Cdecl]) funcTable[0x5FFBDEEC3E8E2009UL]; var success = false; fn__clearVehicleCustomSecondaryColour(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96706,10 +96693,10 @@ public void ClearVehicleCustomSecondaryColour(int _vehicle) } public bool GetIsVehicleSecondaryColourCustom(IVehicle vehicle) => GetIsVehicleSecondaryColourCustom(vehicle.ScriptId); - public bool GetIsVehicleSecondaryColourCustom(int _vehicle) + public bool GetIsVehicleSecondaryColourCustom(uint _vehicle) { unsafe { - if (fn__getIsVehicleSecondaryColourCustom == null) fn__getIsVehicleSecondaryColourCustom = (delegate* unmanaged[Cdecl]) funcTable[0x910A32E7AAD2656CUL]; + if (fn__getIsVehicleSecondaryColourCustom == null) fn__getIsVehicleSecondaryColourCustom = (delegate* unmanaged[Cdecl]) funcTable[0x910A32E7AAD2656CUL]; var success = false; var result = fn__getIsVehicleSecondaryColourCustom(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96718,10 +96705,10 @@ public bool GetIsVehicleSecondaryColourCustom(int _vehicle) } public void SetVehicleEnveffScale(IVehicle vehicle, float fade) => SetVehicleEnveffScale(vehicle.ScriptId, fade); - public void SetVehicleEnveffScale(int _vehicle, float _fade) + public void SetVehicleEnveffScale(uint _vehicle, float _fade) { unsafe { - if (fn__setVehicleEnveffScale == null) fn__setVehicleEnveffScale = (delegate* unmanaged[Cdecl]) funcTable[0x3AFDC536C3D01674UL]; + if (fn__setVehicleEnveffScale == null) fn__setVehicleEnveffScale = (delegate* unmanaged[Cdecl]) funcTable[0x3AFDC536C3D01674UL]; var success = false; fn__setVehicleEnveffScale(&success, _vehicle, _fade); if (!success) throw new Exception("Native execution failed"); @@ -96729,10 +96716,10 @@ public void SetVehicleEnveffScale(int _vehicle, float _fade) } public float GetVehicleEnveffScale(IVehicle vehicle) => GetVehicleEnveffScale(vehicle.ScriptId); - public float GetVehicleEnveffScale(int _vehicle) + public float GetVehicleEnveffScale(uint _vehicle) { unsafe { - if (fn__getVehicleEnveffScale == null) fn__getVehicleEnveffScale = (delegate* unmanaged[Cdecl]) funcTable[0xA82819CAC9C4C403UL]; + if (fn__getVehicleEnveffScale == null) fn__getVehicleEnveffScale = (delegate* unmanaged[Cdecl]) funcTable[0xA82819CAC9C4C403UL]; var success = false; var result = fn__getVehicleEnveffScale(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96741,10 +96728,10 @@ public float GetVehicleEnveffScale(int _vehicle) } public void SetCanResprayVehicle(IVehicle vehicle, bool state) => SetCanResprayVehicle(vehicle.ScriptId, state); - public void SetCanResprayVehicle(int _vehicle, bool _state) + public void SetCanResprayVehicle(uint _vehicle, bool _state) { unsafe { - if (fn__setCanResprayVehicle == null) fn__setCanResprayVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x52BBA29D5EC69356UL]; + if (fn__setCanResprayVehicle == null) fn__setCanResprayVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x52BBA29D5EC69356UL]; var success = false; fn__setCanResprayVehicle(&success, _vehicle, (byte) (_state ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96752,10 +96739,10 @@ public void SetCanResprayVehicle(int _vehicle, bool _state) } public void SetGoonBossVehicle(IVehicle vehicle, bool toggle) => SetGoonBossVehicle(vehicle.ScriptId, toggle); - public void SetGoonBossVehicle(int _vehicle, bool _toggle) + public void SetGoonBossVehicle(uint _vehicle, bool _toggle) { unsafe { - if (fn__setGoonBossVehicle == null) fn__setGoonBossVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xAB31EF4DE6800CE9UL]; + if (fn__setGoonBossVehicle == null) fn__setGoonBossVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xAB31EF4DE6800CE9UL]; var success = false; fn__setGoonBossVehicle(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96763,10 +96750,10 @@ public void SetGoonBossVehicle(int _vehicle, bool _toggle) } public void SetOpenRearDoorsOnExplosion(IVehicle vehicle, bool toggle) => SetOpenRearDoorsOnExplosion(vehicle.ScriptId, toggle); - public void SetOpenRearDoorsOnExplosion(int _vehicle, bool _toggle) + public void SetOpenRearDoorsOnExplosion(uint _vehicle, bool _toggle) { unsafe { - if (fn__setOpenRearDoorsOnExplosion == null) fn__setOpenRearDoorsOnExplosion = (delegate* unmanaged[Cdecl]) funcTable[0x1B212B26DD3C04DFUL]; + if (fn__setOpenRearDoorsOnExplosion == null) fn__setOpenRearDoorsOnExplosion = (delegate* unmanaged[Cdecl]) funcTable[0x1B212B26DD3C04DFUL]; var success = false; fn__setOpenRearDoorsOnExplosion(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96774,10 +96761,10 @@ public void SetOpenRearDoorsOnExplosion(int _vehicle, bool _toggle) } public void ForceSubmarineSurfaceMode(IVehicle vehicle, bool toggle) => ForceSubmarineSurfaceMode(vehicle.ScriptId, toggle); - public void ForceSubmarineSurfaceMode(int _vehicle, bool _toggle) + public void ForceSubmarineSurfaceMode(uint _vehicle, bool _toggle) { unsafe { - if (fn__forceSubmarineSurfaceMode == null) fn__forceSubmarineSurfaceMode = (delegate* unmanaged[Cdecl]) funcTable[0x33506883545AC0DFUL]; + if (fn__forceSubmarineSurfaceMode == null) fn__forceSubmarineSurfaceMode = (delegate* unmanaged[Cdecl]) funcTable[0x33506883545AC0DFUL]; var success = false; fn__forceSubmarineSurfaceMode(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96795,10 +96782,10 @@ public void ForceSubmarineNeurtalBuoyancy(int _p0, int _p1) } public void SetSubmarineCrushDepths(IVehicle vehicle, bool p1, float depth1, float depth2, float depth3) => SetSubmarineCrushDepths(vehicle.ScriptId, p1, depth1, depth2, depth3); - public void SetSubmarineCrushDepths(int _vehicle, bool _p1, float _depth1, float _depth2, float _depth3) + public void SetSubmarineCrushDepths(uint _vehicle, bool _p1, float _depth1, float _depth2, float _depth3) { unsafe { - if (fn__setSubmarineCrushDepths == null) fn__setSubmarineCrushDepths = (delegate* unmanaged[Cdecl]) funcTable[0xC59872A5134879C7UL]; + if (fn__setSubmarineCrushDepths == null) fn__setSubmarineCrushDepths = (delegate* unmanaged[Cdecl]) funcTable[0xC59872A5134879C7UL]; var success = false; fn__setSubmarineCrushDepths(&success, _vehicle, (byte) (_p1 ? 1 : 0), _depth1, _depth2, _depth3); if (!success) throw new Exception("Native execution failed"); @@ -96806,10 +96793,10 @@ public void SetSubmarineCrushDepths(int _vehicle, bool _p1, float _depth1, float } public bool GetSubmarineIsUnderDesignDepth(IVehicle submarine) => GetSubmarineIsUnderDesignDepth(submarine.ScriptId); - public bool GetSubmarineIsUnderDesignDepth(int _submarine) + public bool GetSubmarineIsUnderDesignDepth(uint _submarine) { unsafe { - if (fn__getSubmarineIsUnderDesignDepth == null) fn__getSubmarineIsUnderDesignDepth = (delegate* unmanaged[Cdecl]) funcTable[0x3E71D0B300B7AA79UL]; + if (fn__getSubmarineIsUnderDesignDepth == null) fn__getSubmarineIsUnderDesignDepth = (delegate* unmanaged[Cdecl]) funcTable[0x3E71D0B300B7AA79UL]; var success = false; var result = fn__getSubmarineIsUnderDesignDepth(&success, _submarine); if (!success) throw new Exception("Native execution failed"); @@ -96818,10 +96805,10 @@ public bool GetSubmarineIsUnderDesignDepth(int _submarine) } public int GetSubmarineNumberOfAirLeaks(IVehicle submarine) => GetSubmarineNumberOfAirLeaks(submarine.ScriptId); - public int GetSubmarineNumberOfAirLeaks(int _submarine) + public int GetSubmarineNumberOfAirLeaks(uint _submarine) { unsafe { - if (fn__getSubmarineNumberOfAirLeaks == null) fn__getSubmarineNumberOfAirLeaks = (delegate* unmanaged[Cdecl]) funcTable[0x093D6DDCA5B8FBAEUL]; + if (fn__getSubmarineNumberOfAirLeaks == null) fn__getSubmarineNumberOfAirLeaks = (delegate* unmanaged[Cdecl]) funcTable[0x093D6DDCA5B8FBAEUL]; var success = false; var result = fn__getSubmarineNumberOfAirLeaks(&success, _submarine); if (!success) throw new Exception("Native execution failed"); @@ -96840,10 +96827,10 @@ public void SetBoatIgnoreLandProbes(int _p0, int _p1) } public void SetBoatAnchor(IVehicle vehicle, bool toggle) => SetBoatAnchor(vehicle.ScriptId, toggle); - public void SetBoatAnchor(int _vehicle, bool _toggle) + public void SetBoatAnchor(uint _vehicle, bool _toggle) { unsafe { - if (fn__setBoatAnchor == null) fn__setBoatAnchor = (delegate* unmanaged[Cdecl]) funcTable[0x75DBEC174AEEAD10UL]; + if (fn__setBoatAnchor == null) fn__setBoatAnchor = (delegate* unmanaged[Cdecl]) funcTable[0x75DBEC174AEEAD10UL]; var success = false; fn__setBoatAnchor(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96851,10 +96838,10 @@ public void SetBoatAnchor(int _vehicle, bool _toggle) } public bool CanAnchorBoatHere(IVehicle vehicle) => CanAnchorBoatHere(vehicle.ScriptId); - public bool CanAnchorBoatHere(int _vehicle) + public bool CanAnchorBoatHere(uint _vehicle) { unsafe { - if (fn__canAnchorBoatHere == null) fn__canAnchorBoatHere = (delegate* unmanaged[Cdecl]) funcTable[0x26C10ECBDA5D043BUL]; + if (fn__canAnchorBoatHere == null) fn__canAnchorBoatHere = (delegate* unmanaged[Cdecl]) funcTable[0x26C10ECBDA5D043BUL]; var success = false; var result = fn__canAnchorBoatHere(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96863,10 +96850,10 @@ public bool CanAnchorBoatHere(int _vehicle) } public bool CanAnchorBoatHereIgnorePlayers(IVehicle vehicle) => CanAnchorBoatHereIgnorePlayers(vehicle.ScriptId); - public bool CanAnchorBoatHereIgnorePlayers(int _vehicle) + public bool CanAnchorBoatHereIgnorePlayers(uint _vehicle) { unsafe { - if (fn__canAnchorBoatHereIgnorePlayers == null) fn__canAnchorBoatHereIgnorePlayers = (delegate* unmanaged[Cdecl]) funcTable[0x24F4121D07579880UL]; + if (fn__canAnchorBoatHereIgnorePlayers == null) fn__canAnchorBoatHereIgnorePlayers = (delegate* unmanaged[Cdecl]) funcTable[0x24F4121D07579880UL]; var success = false; var result = fn__canAnchorBoatHereIgnorePlayers(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96875,10 +96862,10 @@ public bool CanAnchorBoatHereIgnorePlayers(int _vehicle) } public void SetBoatRemainsAnchoredWhilePlayerIsDriver(IVehicle vehicle, bool toggle) => SetBoatRemainsAnchoredWhilePlayerIsDriver(vehicle.ScriptId, toggle); - public void SetBoatRemainsAnchoredWhilePlayerIsDriver(int _vehicle, bool _toggle) + public void SetBoatRemainsAnchoredWhilePlayerIsDriver(uint _vehicle, bool _toggle) { unsafe { - if (fn__setBoatRemainsAnchoredWhilePlayerIsDriver == null) fn__setBoatRemainsAnchoredWhilePlayerIsDriver = (delegate* unmanaged[Cdecl]) funcTable[0xE3EBAAE484798530UL]; + if (fn__setBoatRemainsAnchoredWhilePlayerIsDriver == null) fn__setBoatRemainsAnchoredWhilePlayerIsDriver = (delegate* unmanaged[Cdecl]) funcTable[0xE3EBAAE484798530UL]; var success = false; fn__setBoatRemainsAnchoredWhilePlayerIsDriver(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96886,10 +96873,10 @@ public void SetBoatRemainsAnchoredWhilePlayerIsDriver(int _vehicle, bool _toggle } public void SetForceLowLodAnchorMode(IVehicle vehicle, bool p1) => SetForceLowLodAnchorMode(vehicle.ScriptId, p1); - public void SetForceLowLodAnchorMode(int _vehicle, bool _p1) + public void SetForceLowLodAnchorMode(uint _vehicle, bool _p1) { unsafe { - if (fn__setForceLowLodAnchorMode == null) fn__setForceLowLodAnchorMode = (delegate* unmanaged[Cdecl]) funcTable[0xB28B1FE5BFADD7F5UL]; + if (fn__setForceLowLodAnchorMode == null) fn__setForceLowLodAnchorMode = (delegate* unmanaged[Cdecl]) funcTable[0xB28B1FE5BFADD7F5UL]; var success = false; fn__setForceLowLodAnchorMode(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96897,10 +96884,10 @@ public void SetForceLowLodAnchorMode(int _vehicle, bool _p1) } public void SetBoatLowLodAnchorDistance(IVehicle vehicle, float value) => SetBoatLowLodAnchorDistance(vehicle.ScriptId, value); - public void SetBoatLowLodAnchorDistance(int _vehicle, float _value) + public void SetBoatLowLodAnchorDistance(uint _vehicle, float _value) { unsafe { - if (fn__setBoatLowLodAnchorDistance == null) fn__setBoatLowLodAnchorDistance = (delegate* unmanaged[Cdecl]) funcTable[0xE842A9398079BD82UL]; + if (fn__setBoatLowLodAnchorDistance == null) fn__setBoatLowLodAnchorDistance = (delegate* unmanaged[Cdecl]) funcTable[0xE842A9398079BD82UL]; var success = false; fn__setBoatLowLodAnchorDistance(&success, _vehicle, _value); if (!success) throw new Exception("Native execution failed"); @@ -96908,10 +96895,10 @@ public void SetBoatLowLodAnchorDistance(int _vehicle, float _value) } public bool IsBoatAnchored(IVehicle vehicle) => IsBoatAnchored(vehicle.ScriptId); - public bool IsBoatAnchored(int _vehicle) + public bool IsBoatAnchored(uint _vehicle) { unsafe { - if (fn__isBoatAnchored == null) fn__isBoatAnchored = (delegate* unmanaged[Cdecl]) funcTable[0xB0AD1238A709B1A2UL]; + if (fn__isBoatAnchored == null) fn__isBoatAnchored = (delegate* unmanaged[Cdecl]) funcTable[0xB0AD1238A709B1A2UL]; var success = false; var result = fn__isBoatAnchored(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96920,10 +96907,10 @@ public bool IsBoatAnchored(int _vehicle) } public void SetBoatSinksWhenWrecked(IVehicle vehicle, bool toggle) => SetBoatSinksWhenWrecked(vehicle.ScriptId, toggle); - public void SetBoatSinksWhenWrecked(int _vehicle, bool _toggle) + public void SetBoatSinksWhenWrecked(uint _vehicle, bool _toggle) { unsafe { - if (fn__setBoatSinksWhenWrecked == null) fn__setBoatSinksWhenWrecked = (delegate* unmanaged[Cdecl]) funcTable[0x8F719973E1445BA2UL]; + if (fn__setBoatSinksWhenWrecked == null) fn__setBoatSinksWhenWrecked = (delegate* unmanaged[Cdecl]) funcTable[0x8F719973E1445BA2UL]; var success = false; fn__setBoatSinksWhenWrecked(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96931,10 +96918,10 @@ public void SetBoatSinksWhenWrecked(int _vehicle, bool _toggle) } public void SetBoatWrecked(IVehicle vehicle) => SetBoatWrecked(vehicle.ScriptId); - public void SetBoatWrecked(int _vehicle) + public void SetBoatWrecked(uint _vehicle) { unsafe { - if (fn__setBoatWrecked == null) fn__setBoatWrecked = (delegate* unmanaged[Cdecl]) funcTable[0xBD32E46AA95C1DD2UL]; + if (fn__setBoatWrecked == null) fn__setBoatWrecked = (delegate* unmanaged[Cdecl]) funcTable[0xBD32E46AA95C1DD2UL]; var success = false; fn__setBoatWrecked(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96942,10 +96929,10 @@ public void SetBoatWrecked(int _vehicle) } public void SetVehicleSiren(IVehicle vehicle, bool toggle) => SetVehicleSiren(vehicle.ScriptId, toggle); - public void SetVehicleSiren(int _vehicle, bool _toggle) + public void SetVehicleSiren(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleSiren == null) fn__setVehicleSiren = (delegate* unmanaged[Cdecl]) funcTable[0xF4924635A19EB37DUL]; + if (fn__setVehicleSiren == null) fn__setVehicleSiren = (delegate* unmanaged[Cdecl]) funcTable[0xF4924635A19EB37DUL]; var success = false; fn__setVehicleSiren(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96953,10 +96940,10 @@ public void SetVehicleSiren(int _vehicle, bool _toggle) } public bool IsVehicleSirenOn(IVehicle vehicle) => IsVehicleSirenOn(vehicle.ScriptId); - public bool IsVehicleSirenOn(int _vehicle) + public bool IsVehicleSirenOn(uint _vehicle) { unsafe { - if (fn__isVehicleSirenOn == null) fn__isVehicleSirenOn = (delegate* unmanaged[Cdecl]) funcTable[0x4C9BF537BE2634B2UL]; + if (fn__isVehicleSirenOn == null) fn__isVehicleSirenOn = (delegate* unmanaged[Cdecl]) funcTable[0x4C9BF537BE2634B2UL]; var success = false; var result = fn__isVehicleSirenOn(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96965,10 +96952,10 @@ public bool IsVehicleSirenOn(int _vehicle) } public bool IsVehicleSirenAudioOn(IVehicle vehicle) => IsVehicleSirenAudioOn(vehicle.ScriptId); - public bool IsVehicleSirenAudioOn(int _vehicle) + public bool IsVehicleSirenAudioOn(uint _vehicle) { unsafe { - if (fn__isVehicleSirenAudioOn == null) fn__isVehicleSirenAudioOn = (delegate* unmanaged[Cdecl]) funcTable[0xB5CC40FBCB586380UL]; + if (fn__isVehicleSirenAudioOn == null) fn__isVehicleSirenAudioOn = (delegate* unmanaged[Cdecl]) funcTable[0xB5CC40FBCB586380UL]; var success = false; var result = fn__isVehicleSirenAudioOn(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96977,10 +96964,10 @@ public bool IsVehicleSirenAudioOn(int _vehicle) } public void SetVehicleStrong(IVehicle vehicle, bool toggle) => SetVehicleStrong(vehicle.ScriptId, toggle); - public void SetVehicleStrong(int _vehicle, bool _toggle) + public void SetVehicleStrong(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleStrong == null) fn__setVehicleStrong = (delegate* unmanaged[Cdecl]) funcTable[0x3E8C8727991A8A0BUL]; + if (fn__setVehicleStrong == null) fn__setVehicleStrong = (delegate* unmanaged[Cdecl]) funcTable[0x3E8C8727991A8A0BUL]; var success = false; fn__setVehicleStrong(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -96988,10 +96975,10 @@ public void SetVehicleStrong(int _vehicle, bool _toggle) } public void RemoveVehicleStuckCheck(IVehicle vehicle) => RemoveVehicleStuckCheck(vehicle.ScriptId); - public void RemoveVehicleStuckCheck(int _vehicle) + public void RemoveVehicleStuckCheck(uint _vehicle) { unsafe { - if (fn__removeVehicleStuckCheck == null) fn__removeVehicleStuckCheck = (delegate* unmanaged[Cdecl]) funcTable[0x8386BFB614D06749UL]; + if (fn__removeVehicleStuckCheck == null) fn__removeVehicleStuckCheck = (delegate* unmanaged[Cdecl]) funcTable[0x8386BFB614D06749UL]; var success = false; fn__removeVehicleStuckCheck(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -96999,10 +96986,10 @@ public void RemoveVehicleStuckCheck(int _vehicle) } public void GetVehicleColours(IVehicle vehicle, ref int colorPrimary, ref int colorSecondary) => GetVehicleColours(vehicle.ScriptId, ref colorPrimary, ref colorSecondary); - public void GetVehicleColours(int _vehicle, ref int _colorPrimary, ref int _colorSecondary) + public void GetVehicleColours(uint _vehicle, ref int _colorPrimary, ref int _colorSecondary) { unsafe { - if (fn__getVehicleColours == null) fn__getVehicleColours = (delegate* unmanaged[Cdecl]) funcTable[0xA19435F193E081ACUL]; + if (fn__getVehicleColours == null) fn__getVehicleColours = (delegate* unmanaged[Cdecl]) funcTable[0xA19435F193E081ACUL]; var success = false; var ref_colorPrimary = _colorPrimary; var ref_colorSecondary = _colorSecondary; @@ -97014,10 +97001,10 @@ public void GetVehicleColours(int _vehicle, ref int _colorPrimary, ref int _colo } public bool IsVehicleSeatFree(IVehicle vehicle, int seatIndex, bool isTaskRunning) => IsVehicleSeatFree(vehicle.ScriptId, seatIndex, isTaskRunning); - public bool IsVehicleSeatFree(int _vehicle, int _seatIndex, bool _isTaskRunning) + public bool IsVehicleSeatFree(uint _vehicle, int _seatIndex, bool _isTaskRunning) { unsafe { - if (fn__isVehicleSeatFree == null) fn__isVehicleSeatFree = (delegate* unmanaged[Cdecl]) funcTable[0x22AC59A870E6A669UL]; + if (fn__isVehicleSeatFree == null) fn__isVehicleSeatFree = (delegate* unmanaged[Cdecl]) funcTable[0x22AC59A870E6A669UL]; var success = false; var result = fn__isVehicleSeatFree(&success, _vehicle, _seatIndex, (byte) (_isTaskRunning ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -97025,11 +97012,11 @@ public bool IsVehicleSeatFree(int _vehicle, int _seatIndex, bool _isTaskRunning) } } - public int GetPedInVehicleSeat(IVehicle vehicle, int seatIndex, bool p2) => GetPedInVehicleSeat(vehicle.ScriptId, seatIndex, p2); - public int GetPedInVehicleSeat(int _vehicle, int _seatIndex, bool _p2) + public uint GetPedInVehicleSeat(IVehicle vehicle, int seatIndex, bool p2) => GetPedInVehicleSeat(vehicle.ScriptId, seatIndex, p2); + public uint GetPedInVehicleSeat(uint _vehicle, int _seatIndex, bool _p2) { unsafe { - if (fn__getPedInVehicleSeat == null) fn__getPedInVehicleSeat = (delegate* unmanaged[Cdecl]) funcTable[0xBB40DD2270B65366UL]; + if (fn__getPedInVehicleSeat == null) fn__getPedInVehicleSeat = (delegate* unmanaged[Cdecl]) funcTable[0xBB40DD2270B65366UL]; var success = false; var result = fn__getPedInVehicleSeat(&success, _vehicle, _seatIndex, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -97037,11 +97024,11 @@ public int GetPedInVehicleSeat(int _vehicle, int _seatIndex, bool _p2) } } - public int GetLastPedInVehicleSeat(IVehicle vehicle, int seatIndex) => GetLastPedInVehicleSeat(vehicle.ScriptId, seatIndex); - public int GetLastPedInVehicleSeat(int _vehicle, int _seatIndex) + public uint GetLastPedInVehicleSeat(IVehicle vehicle, int seatIndex) => GetLastPedInVehicleSeat(vehicle.ScriptId, seatIndex); + public uint GetLastPedInVehicleSeat(uint _vehicle, int _seatIndex) { unsafe { - if (fn__getLastPedInVehicleSeat == null) fn__getLastPedInVehicleSeat = (delegate* unmanaged[Cdecl]) funcTable[0x83F969AA1EE2A664UL]; + if (fn__getLastPedInVehicleSeat == null) fn__getLastPedInVehicleSeat = (delegate* unmanaged[Cdecl]) funcTable[0x83F969AA1EE2A664UL]; var success = false; var result = fn__getLastPedInVehicleSeat(&success, _vehicle, _seatIndex); if (!success) throw new Exception("Native execution failed"); @@ -97050,10 +97037,10 @@ public int GetLastPedInVehicleSeat(int _vehicle, int _seatIndex) } public bool GetVehicleLightsState(IVehicle vehicle, ref bool lightsOn, ref bool highbeamsOn) => GetVehicleLightsState(vehicle.ScriptId, ref lightsOn, ref highbeamsOn); - public bool GetVehicleLightsState(int _vehicle, ref bool _lightsOn, ref bool _highbeamsOn) + public bool GetVehicleLightsState(uint _vehicle, ref bool _lightsOn, ref bool _highbeamsOn) { unsafe { - if (fn__getVehicleLightsState == null) fn__getVehicleLightsState = (delegate* unmanaged[Cdecl]) funcTable[0xB91B4C20085BD12FUL]; + if (fn__getVehicleLightsState == null) fn__getVehicleLightsState = (delegate* unmanaged[Cdecl]) funcTable[0xB91B4C20085BD12FUL]; var success = false; var ref_lightsOn = (byte) (_lightsOn ? 1 : 0); var ref_highbeamsOn = (byte) (_highbeamsOn ? 1 : 0); @@ -97066,10 +97053,10 @@ public bool GetVehicleLightsState(int _vehicle, ref bool _lightsOn, ref bool _hi } public bool IsVehicleTyreBurst(IVehicle vehicle, int wheelID, bool completely) => IsVehicleTyreBurst(vehicle.ScriptId, wheelID, completely); - public bool IsVehicleTyreBurst(int _vehicle, int _wheelID, bool _completely) + public bool IsVehicleTyreBurst(uint _vehicle, int _wheelID, bool _completely) { unsafe { - if (fn__isVehicleTyreBurst == null) fn__isVehicleTyreBurst = (delegate* unmanaged[Cdecl]) funcTable[0xBA291848A0815CA9UL]; + if (fn__isVehicleTyreBurst == null) fn__isVehicleTyreBurst = (delegate* unmanaged[Cdecl]) funcTable[0xBA291848A0815CA9UL]; var success = false; var result = fn__isVehicleTyreBurst(&success, _vehicle, _wheelID, (byte) (_completely ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -97078,10 +97065,10 @@ public bool IsVehicleTyreBurst(int _vehicle, int _wheelID, bool _completely) } public void SetVehicleForwardSpeed(IVehicle vehicle, float speed) => SetVehicleForwardSpeed(vehicle.ScriptId, speed); - public void SetVehicleForwardSpeed(int _vehicle, float _speed) + public void SetVehicleForwardSpeed(uint _vehicle, float _speed) { unsafe { - if (fn__setVehicleForwardSpeed == null) fn__setVehicleForwardSpeed = (delegate* unmanaged[Cdecl]) funcTable[0xAB54A438726D25D5UL]; + if (fn__setVehicleForwardSpeed == null) fn__setVehicleForwardSpeed = (delegate* unmanaged[Cdecl]) funcTable[0xAB54A438726D25D5UL]; var success = false; fn__setVehicleForwardSpeed(&success, _vehicle, _speed); if (!success) throw new Exception("Native execution failed"); @@ -97089,10 +97076,10 @@ public void SetVehicleForwardSpeed(int _vehicle, float _speed) } public void SetVehicleForwardSpeedXy(IVehicle vehicle, float speed) => SetVehicleForwardSpeedXy(vehicle.ScriptId, speed); - public void SetVehicleForwardSpeedXy(int _vehicle, float _speed) + public void SetVehicleForwardSpeedXy(uint _vehicle, float _speed) { unsafe { - if (fn__setVehicleForwardSpeedXy == null) fn__setVehicleForwardSpeedXy = (delegate* unmanaged[Cdecl]) funcTable[0x6501129C9E0FFA05UL]; + if (fn__setVehicleForwardSpeedXy == null) fn__setVehicleForwardSpeedXy = (delegate* unmanaged[Cdecl]) funcTable[0x6501129C9E0FFA05UL]; var success = false; fn__setVehicleForwardSpeedXy(&success, _vehicle, _speed); if (!success) throw new Exception("Native execution failed"); @@ -97100,10 +97087,10 @@ public void SetVehicleForwardSpeedXy(int _vehicle, float _speed) } public void BringVehicleToHalt(IVehicle vehicle, float distance, int duration, bool p3) => BringVehicleToHalt(vehicle.ScriptId, distance, duration, p3); - public void BringVehicleToHalt(int _vehicle, float _distance, int _duration, bool _p3) + public void BringVehicleToHalt(uint _vehicle, float _distance, int _duration, bool _p3) { unsafe { - if (fn__bringVehicleToHalt == null) fn__bringVehicleToHalt = (delegate* unmanaged[Cdecl]) funcTable[0x260BE8F09E326A20UL]; + if (fn__bringVehicleToHalt == null) fn__bringVehicleToHalt = (delegate* unmanaged[Cdecl]) funcTable[0x260BE8F09E326A20UL]; var success = false; fn__bringVehicleToHalt(&success, _vehicle, _distance, _duration, (byte) (_p3 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -97111,10 +97098,10 @@ public void BringVehicleToHalt(int _vehicle, float _distance, int _duration, boo } public void SetVehicleSteerForBuildings(IVehicle vehicle, int p1) => SetVehicleSteerForBuildings(vehicle.ScriptId, p1); - public void SetVehicleSteerForBuildings(int _vehicle, int _p1) + public void SetVehicleSteerForBuildings(uint _vehicle, int _p1) { unsafe { - if (fn__setVehicleSteerForBuildings == null) fn__setVehicleSteerForBuildings = (delegate* unmanaged[Cdecl]) funcTable[0xDCE97BDF8A0EABC8UL]; + if (fn__setVehicleSteerForBuildings == null) fn__setVehicleSteerForBuildings = (delegate* unmanaged[Cdecl]) funcTable[0xDCE97BDF8A0EABC8UL]; var success = false; fn__setVehicleSteerForBuildings(&success, _vehicle, _p1); if (!success) throw new Exception("Native execution failed"); @@ -97122,10 +97109,10 @@ public void SetVehicleSteerForBuildings(int _vehicle, int _p1) } public void SetVehicleCausesSwerving(IVehicle vehicle, bool toggle) => SetVehicleCausesSwerving(vehicle.ScriptId, toggle); - public void SetVehicleCausesSwerving(int _vehicle, bool _toggle) + public void SetVehicleCausesSwerving(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleCausesSwerving == null) fn__setVehicleCausesSwerving = (delegate* unmanaged[Cdecl]) funcTable[0x9849DE24FCF23CCCUL]; + if (fn__setVehicleCausesSwerving == null) fn__setVehicleCausesSwerving = (delegate* unmanaged[Cdecl]) funcTable[0x9849DE24FCF23CCCUL]; var success = false; fn__setVehicleCausesSwerving(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -97143,10 +97130,10 @@ public void SetIgnorePlanesSmallPitchChange(int _p0, int _p1) } public void StopBringingVehicleToHalt(IVehicle vehicle) => StopBringingVehicleToHalt(vehicle.ScriptId); - public void StopBringingVehicleToHalt(int _vehicle) + public void StopBringingVehicleToHalt(uint _vehicle) { unsafe { - if (fn__stopBringingVehicleToHalt == null) fn__stopBringingVehicleToHalt = (delegate* unmanaged[Cdecl]) funcTable[0x7C06330BFDDA182EUL]; + if (fn__stopBringingVehicleToHalt == null) fn__stopBringingVehicleToHalt = (delegate* unmanaged[Cdecl]) funcTable[0x7C06330BFDDA182EUL]; var success = false; fn__stopBringingVehicleToHalt(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -97154,10 +97141,10 @@ public void StopBringingVehicleToHalt(int _vehicle) } public bool IsVehicleBeingBroughtToHalt(IVehicle vehicle) => IsVehicleBeingBroughtToHalt(vehicle.ScriptId); - public bool IsVehicleBeingBroughtToHalt(int _vehicle) + public bool IsVehicleBeingBroughtToHalt(uint _vehicle) { unsafe { - if (fn__isVehicleBeingBroughtToHalt == null) fn__isVehicleBeingBroughtToHalt = (delegate* unmanaged[Cdecl]) funcTable[0xC69BB1D832A710EFUL]; + if (fn__isVehicleBeingBroughtToHalt == null) fn__isVehicleBeingBroughtToHalt = (delegate* unmanaged[Cdecl]) funcTable[0xC69BB1D832A710EFUL]; var success = false; var result = fn__isVehicleBeingBroughtToHalt(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -97166,23 +97153,23 @@ public bool IsVehicleBeingBroughtToHalt(int _vehicle) } public void SetForkliftForkHeight(IVehicle vehicle, float height) => SetForkliftForkHeight(vehicle.ScriptId, height); - public void SetForkliftForkHeight(int _vehicle, float _height) + public void SetForkliftForkHeight(uint _vehicle, float _height) { unsafe { - if (fn__setForkliftForkHeight == null) fn__setForkliftForkHeight = (delegate* unmanaged[Cdecl]) funcTable[0x37EBBF3117BD6A25UL]; + if (fn__setForkliftForkHeight == null) fn__setForkliftForkHeight = (delegate* unmanaged[Cdecl]) funcTable[0x37EBBF3117BD6A25UL]; var success = false; fn__setForkliftForkHeight(&success, _vehicle, _height); if (!success) throw new Exception("Native execution failed"); } } - public bool IsEntityAttachedToHandlerFrame(IVehicle vehicle, int entity) => IsEntityAttachedToHandlerFrame(vehicle.ScriptId, entity); - public bool IsEntityAttachedToHandlerFrame(int vehicle, IEntity entity) => IsEntityAttachedToHandlerFrame(vehicle, entity.ScriptId); + public bool IsEntityAttachedToHandlerFrame(IVehicle vehicle, uint entity) => IsEntityAttachedToHandlerFrame(vehicle.ScriptId, entity); + public bool IsEntityAttachedToHandlerFrame(uint vehicle, IEntity entity) => IsEntityAttachedToHandlerFrame(vehicle, entity.ScriptId); public bool IsEntityAttachedToHandlerFrame(IVehicle vehicle, IEntity entity) => IsEntityAttachedToHandlerFrame(vehicle.ScriptId, entity.ScriptId); - public bool IsEntityAttachedToHandlerFrame(int _vehicle, int _entity) + public bool IsEntityAttachedToHandlerFrame(uint _vehicle, uint _entity) { unsafe { - if (fn__isEntityAttachedToHandlerFrame == null) fn__isEntityAttachedToHandlerFrame = (delegate* unmanaged[Cdecl]) funcTable[0x57715966069157ADUL]; + if (fn__isEntityAttachedToHandlerFrame == null) fn__isEntityAttachedToHandlerFrame = (delegate* unmanaged[Cdecl]) funcTable[0x57715966069157ADUL]; var success = false; var result = fn__isEntityAttachedToHandlerFrame(&success, _vehicle, _entity); if (!success) throw new Exception("Native execution failed"); @@ -97191,10 +97178,10 @@ public bool IsEntityAttachedToHandlerFrame(int _vehicle, int _entity) } public bool IsAnyEntityAttachedToHandlerFrame(IVehicle vehicle) => IsAnyEntityAttachedToHandlerFrame(vehicle.ScriptId); - public bool IsAnyEntityAttachedToHandlerFrame(int _vehicle) + public bool IsAnyEntityAttachedToHandlerFrame(uint _vehicle) { unsafe { - if (fn__isAnyEntityAttachedToHandlerFrame == null) fn__isAnyEntityAttachedToHandlerFrame = (delegate* unmanaged[Cdecl]) funcTable[0x62CA17B74C435651UL]; + if (fn__isAnyEntityAttachedToHandlerFrame == null) fn__isAnyEntityAttachedToHandlerFrame = (delegate* unmanaged[Cdecl]) funcTable[0x62CA17B74C435651UL]; var success = false; var result = fn__isAnyEntityAttachedToHandlerFrame(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -97202,11 +97189,11 @@ public bool IsAnyEntityAttachedToHandlerFrame(int _vehicle) } } - public int FindHandlerVehicleContainerIsAttachedTo(IEntity entity) => FindHandlerVehicleContainerIsAttachedTo(entity.ScriptId); - public int FindHandlerVehicleContainerIsAttachedTo(int _entity) + public uint FindHandlerVehicleContainerIsAttachedTo(IEntity entity) => FindHandlerVehicleContainerIsAttachedTo(entity.ScriptId); + public uint FindHandlerVehicleContainerIsAttachedTo(uint _entity) { unsafe { - if (fn__findHandlerVehicleContainerIsAttachedTo == null) fn__findHandlerVehicleContainerIsAttachedTo = (delegate* unmanaged[Cdecl]) funcTable[0x375E7FC44F21C8ABUL]; + if (fn__findHandlerVehicleContainerIsAttachedTo == null) fn__findHandlerVehicleContainerIsAttachedTo = (delegate* unmanaged[Cdecl]) funcTable[0x375E7FC44F21C8ABUL]; var success = false; var result = fn__findHandlerVehicleContainerIsAttachedTo(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -97214,13 +97201,13 @@ public int FindHandlerVehicleContainerIsAttachedTo(int _entity) } } - public bool IsHandlerFrameLinedUpWithContainer(IVehicle vehicle, int entity) => IsHandlerFrameLinedUpWithContainer(vehicle.ScriptId, entity); - public bool IsHandlerFrameLinedUpWithContainer(int vehicle, IEntity entity) => IsHandlerFrameLinedUpWithContainer(vehicle, entity.ScriptId); + public bool IsHandlerFrameLinedUpWithContainer(IVehicle vehicle, uint entity) => IsHandlerFrameLinedUpWithContainer(vehicle.ScriptId, entity); + public bool IsHandlerFrameLinedUpWithContainer(uint vehicle, IEntity entity) => IsHandlerFrameLinedUpWithContainer(vehicle, entity.ScriptId); public bool IsHandlerFrameLinedUpWithContainer(IVehicle vehicle, IEntity entity) => IsHandlerFrameLinedUpWithContainer(vehicle.ScriptId, entity.ScriptId); - public bool IsHandlerFrameLinedUpWithContainer(int _vehicle, int _entity) + public bool IsHandlerFrameLinedUpWithContainer(uint _vehicle, uint _entity) { unsafe { - if (fn__isHandlerFrameLinedUpWithContainer == null) fn__isHandlerFrameLinedUpWithContainer = (delegate* unmanaged[Cdecl]) funcTable[0x89D630CF5EA96D23UL]; + if (fn__isHandlerFrameLinedUpWithContainer == null) fn__isHandlerFrameLinedUpWithContainer = (delegate* unmanaged[Cdecl]) funcTable[0x89D630CF5EA96D23UL]; var success = false; var result = fn__isHandlerFrameLinedUpWithContainer(&success, _vehicle, _entity); if (!success) throw new Exception("Native execution failed"); @@ -97228,13 +97215,13 @@ public bool IsHandlerFrameLinedUpWithContainer(int _vehicle, int _entity) } } - public void AttachContainerToHandlerFrameWhenLinedUp(IVehicle vehicle, int entity) => AttachContainerToHandlerFrameWhenLinedUp(vehicle.ScriptId, entity); - public void AttachContainerToHandlerFrameWhenLinedUp(int vehicle, IEntity entity) => AttachContainerToHandlerFrameWhenLinedUp(vehicle, entity.ScriptId); + public void AttachContainerToHandlerFrameWhenLinedUp(IVehicle vehicle, uint entity) => AttachContainerToHandlerFrameWhenLinedUp(vehicle.ScriptId, entity); + public void AttachContainerToHandlerFrameWhenLinedUp(uint vehicle, IEntity entity) => AttachContainerToHandlerFrameWhenLinedUp(vehicle, entity.ScriptId); public void AttachContainerToHandlerFrameWhenLinedUp(IVehicle vehicle, IEntity entity) => AttachContainerToHandlerFrameWhenLinedUp(vehicle.ScriptId, entity.ScriptId); - public void AttachContainerToHandlerFrameWhenLinedUp(int _vehicle, int _entity) + public void AttachContainerToHandlerFrameWhenLinedUp(uint _vehicle, uint _entity) { unsafe { - if (fn__attachContainerToHandlerFrameWhenLinedUp == null) fn__attachContainerToHandlerFrameWhenLinedUp = (delegate* unmanaged[Cdecl]) funcTable[0x6A98C2ECF57FA5D4UL]; + if (fn__attachContainerToHandlerFrameWhenLinedUp == null) fn__attachContainerToHandlerFrameWhenLinedUp = (delegate* unmanaged[Cdecl]) funcTable[0x6A98C2ECF57FA5D4UL]; var success = false; fn__attachContainerToHandlerFrameWhenLinedUp(&success, _vehicle, _entity); if (!success) throw new Exception("Native execution failed"); @@ -97242,10 +97229,10 @@ public void AttachContainerToHandlerFrameWhenLinedUp(int _vehicle, int _entity) } public void DetachContainerFromHandlerFrame(IVehicle vehicle) => DetachContainerFromHandlerFrame(vehicle.ScriptId); - public void DetachContainerFromHandlerFrame(int _vehicle) + public void DetachContainerFromHandlerFrame(uint _vehicle) { unsafe { - if (fn__detachContainerFromHandlerFrame == null) fn__detachContainerFromHandlerFrame = (delegate* unmanaged[Cdecl]) funcTable[0x7C0043FDFF6436BCUL]; + if (fn__detachContainerFromHandlerFrame == null) fn__detachContainerFromHandlerFrame = (delegate* unmanaged[Cdecl]) funcTable[0x7C0043FDFF6436BCUL]; var success = false; fn__detachContainerFromHandlerFrame(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -97253,10 +97240,10 @@ public void DetachContainerFromHandlerFrame(int _vehicle) } public void SetVehicleDisableHeightMapAvoidance(IVehicle vehicle, bool p1) => SetVehicleDisableHeightMapAvoidance(vehicle.ScriptId, p1); - public void SetVehicleDisableHeightMapAvoidance(int _vehicle, bool _p1) + public void SetVehicleDisableHeightMapAvoidance(uint _vehicle, bool _p1) { unsafe { - if (fn__setVehicleDisableHeightMapAvoidance == null) fn__setVehicleDisableHeightMapAvoidance = (delegate* unmanaged[Cdecl]) funcTable[0x8AA9180DE2FEDD45UL]; + if (fn__setVehicleDisableHeightMapAvoidance == null) fn__setVehicleDisableHeightMapAvoidance = (delegate* unmanaged[Cdecl]) funcTable[0x8AA9180DE2FEDD45UL]; var success = false; fn__setVehicleDisableHeightMapAvoidance(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -97264,10 +97251,10 @@ public void SetVehicleDisableHeightMapAvoidance(int _vehicle, bool _p1) } public void SetBoatDisableAvoidance(IVehicle vehicle, bool p1) => SetBoatDisableAvoidance(vehicle.ScriptId, p1); - public void SetBoatDisableAvoidance(int _vehicle, bool _p1) + public void SetBoatDisableAvoidance(uint _vehicle, bool _p1) { unsafe { - if (fn__setBoatDisableAvoidance == null) fn__setBoatDisableAvoidance = (delegate* unmanaged[Cdecl]) funcTable[0x0A6A279F3AA4FD70UL]; + if (fn__setBoatDisableAvoidance == null) fn__setBoatDisableAvoidance = (delegate* unmanaged[Cdecl]) funcTable[0x0A6A279F3AA4FD70UL]; var success = false; fn__setBoatDisableAvoidance(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -97275,10 +97262,10 @@ public void SetBoatDisableAvoidance(int _vehicle, bool _p1) } public bool IsHeliLandingAreaBlocked(IVehicle vehicle) => IsHeliLandingAreaBlocked(vehicle.ScriptId); - public bool IsHeliLandingAreaBlocked(int _vehicle) + public bool IsHeliLandingAreaBlocked(uint _vehicle) { unsafe { - if (fn__isHeliLandingAreaBlocked == null) fn__isHeliLandingAreaBlocked = (delegate* unmanaged[Cdecl]) funcTable[0x634148744F385576UL]; + if (fn__isHeliLandingAreaBlocked == null) fn__isHeliLandingAreaBlocked = (delegate* unmanaged[Cdecl]) funcTable[0x634148744F385576UL]; var success = false; var result = fn__isHeliLandingAreaBlocked(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -97287,10 +97274,10 @@ public bool IsHeliLandingAreaBlocked(int _vehicle) } public void SetShortSlowdownForLanding(IVehicle vehicle) => SetShortSlowdownForLanding(vehicle.ScriptId); - public void SetShortSlowdownForLanding(int _vehicle) + public void SetShortSlowdownForLanding(uint _vehicle) { unsafe { - if (fn__setShortSlowdownForLanding == null) fn__setShortSlowdownForLanding = (delegate* unmanaged[Cdecl]) funcTable[0x107A473D7A6647A9UL]; + if (fn__setShortSlowdownForLanding == null) fn__setShortSlowdownForLanding = (delegate* unmanaged[Cdecl]) funcTable[0x107A473D7A6647A9UL]; var success = false; fn__setShortSlowdownForLanding(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -97298,10 +97285,10 @@ public void SetShortSlowdownForLanding(int _vehicle) } public void SetHeliTurbulenceScalar(IVehicle vehicle, float p1) => SetHeliTurbulenceScalar(vehicle.ScriptId, p1); - public void SetHeliTurbulenceScalar(int _vehicle, float _p1) + public void SetHeliTurbulenceScalar(uint _vehicle, float _p1) { unsafe { - if (fn__setHeliTurbulenceScalar == null) fn__setHeliTurbulenceScalar = (delegate* unmanaged[Cdecl]) funcTable[0xE6F13851780394DAUL]; + if (fn__setHeliTurbulenceScalar == null) fn__setHeliTurbulenceScalar = (delegate* unmanaged[Cdecl]) funcTable[0xE6F13851780394DAUL]; var success = false; fn__setHeliTurbulenceScalar(&success, _vehicle, _p1); if (!success) throw new Exception("Native execution failed"); @@ -97309,10 +97296,10 @@ public void SetHeliTurbulenceScalar(int _vehicle, float _p1) } public void SetCarBootOpen(IVehicle vehicle) => SetCarBootOpen(vehicle.ScriptId); - public void SetCarBootOpen(int _vehicle) + public void SetCarBootOpen(uint _vehicle) { unsafe { - if (fn__setCarBootOpen == null) fn__setCarBootOpen = (delegate* unmanaged[Cdecl]) funcTable[0xFC40CBF7B90CA77CUL]; + if (fn__setCarBootOpen == null) fn__setCarBootOpen = (delegate* unmanaged[Cdecl]) funcTable[0xFC40CBF7B90CA77CUL]; var success = false; fn__setCarBootOpen(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -97320,10 +97307,10 @@ public void SetCarBootOpen(int _vehicle) } public void SetVehicleTyreBurst(IVehicle vehicle, int index, bool onRim, float p3) => SetVehicleTyreBurst(vehicle.ScriptId, index, onRim, p3); - public void SetVehicleTyreBurst(int _vehicle, int _index, bool _onRim, float _p3) + public void SetVehicleTyreBurst(uint _vehicle, int _index, bool _onRim, float _p3) { unsafe { - if (fn__setVehicleTyreBurst == null) fn__setVehicleTyreBurst = (delegate* unmanaged[Cdecl]) funcTable[0xEC6A202EE4960385UL]; + if (fn__setVehicleTyreBurst == null) fn__setVehicleTyreBurst = (delegate* unmanaged[Cdecl]) funcTable[0xEC6A202EE4960385UL]; var success = false; fn__setVehicleTyreBurst(&success, _vehicle, _index, (byte) (_onRim ? 1 : 0), _p3); if (!success) throw new Exception("Native execution failed"); @@ -97331,10 +97318,10 @@ public void SetVehicleTyreBurst(int _vehicle, int _index, bool _onRim, float _p3 } public void SetVehicleDoorsShut(IVehicle vehicle, bool closeInstantly) => SetVehicleDoorsShut(vehicle.ScriptId, closeInstantly); - public void SetVehicleDoorsShut(int _vehicle, bool _closeInstantly) + public void SetVehicleDoorsShut(uint _vehicle, bool _closeInstantly) { unsafe { - if (fn__setVehicleDoorsShut == null) fn__setVehicleDoorsShut = (delegate* unmanaged[Cdecl]) funcTable[0x781B3D62BB013EF5UL]; + if (fn__setVehicleDoorsShut == null) fn__setVehicleDoorsShut = (delegate* unmanaged[Cdecl]) funcTable[0x781B3D62BB013EF5UL]; var success = false; fn__setVehicleDoorsShut(&success, _vehicle, (byte) (_closeInstantly ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -97342,10 +97329,10 @@ public void SetVehicleDoorsShut(int _vehicle, bool _closeInstantly) } public void SetVehicleTyresCanBurst(IVehicle vehicle, bool toggle) => SetVehicleTyresCanBurst(vehicle.ScriptId, toggle); - public void SetVehicleTyresCanBurst(int _vehicle, bool _toggle) + public void SetVehicleTyresCanBurst(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleTyresCanBurst == null) fn__setVehicleTyresCanBurst = (delegate* unmanaged[Cdecl]) funcTable[0xEB9DC3C7D8596C46UL]; + if (fn__setVehicleTyresCanBurst == null) fn__setVehicleTyresCanBurst = (delegate* unmanaged[Cdecl]) funcTable[0xEB9DC3C7D8596C46UL]; var success = false; fn__setVehicleTyresCanBurst(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -97353,10 +97340,10 @@ public void SetVehicleTyresCanBurst(int _vehicle, bool _toggle) } public bool GetVehicleTyresCanBurst(IVehicle vehicle) => GetVehicleTyresCanBurst(vehicle.ScriptId); - public bool GetVehicleTyresCanBurst(int _vehicle) + public bool GetVehicleTyresCanBurst(uint _vehicle) { unsafe { - if (fn__getVehicleTyresCanBurst == null) fn__getVehicleTyresCanBurst = (delegate* unmanaged[Cdecl]) funcTable[0x678B9BB8C3F58FEBUL]; + if (fn__getVehicleTyresCanBurst == null) fn__getVehicleTyresCanBurst = (delegate* unmanaged[Cdecl]) funcTable[0x678B9BB8C3F58FEBUL]; var success = false; var result = fn__getVehicleTyresCanBurst(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -97365,10 +97352,10 @@ public bool GetVehicleTyresCanBurst(int _vehicle) } public void SetVehicleWheelsCanBreak(IVehicle vehicle, bool enabled) => SetVehicleWheelsCanBreak(vehicle.ScriptId, enabled); - public void SetVehicleWheelsCanBreak(int _vehicle, bool _enabled) + public void SetVehicleWheelsCanBreak(uint _vehicle, bool _enabled) { unsafe { - if (fn__setVehicleWheelsCanBreak == null) fn__setVehicleWheelsCanBreak = (delegate* unmanaged[Cdecl]) funcTable[0x29B18B4FD460CA8FUL]; + if (fn__setVehicleWheelsCanBreak == null) fn__setVehicleWheelsCanBreak = (delegate* unmanaged[Cdecl]) funcTable[0x29B18B4FD460CA8FUL]; var success = false; fn__setVehicleWheelsCanBreak(&success, _vehicle, (byte) (_enabled ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -97376,10 +97363,10 @@ public void SetVehicleWheelsCanBreak(int _vehicle, bool _enabled) } public void SetVehicleDoorOpen(IVehicle vehicle, int doorId, bool loose, bool openInstantly) => SetVehicleDoorOpen(vehicle.ScriptId, doorId, loose, openInstantly); - public void SetVehicleDoorOpen(int _vehicle, int _doorId, bool _loose, bool _openInstantly) + public void SetVehicleDoorOpen(uint _vehicle, int _doorId, bool _loose, bool _openInstantly) { unsafe { - if (fn__setVehicleDoorOpen == null) fn__setVehicleDoorOpen = (delegate* unmanaged[Cdecl]) funcTable[0x7C65DAC73C35C862UL]; + if (fn__setVehicleDoorOpen == null) fn__setVehicleDoorOpen = (delegate* unmanaged[Cdecl]) funcTable[0x7C65DAC73C35C862UL]; var success = false; fn__setVehicleDoorOpen(&success, _vehicle, _doorId, (byte) (_loose ? 1 : 0), (byte) (_openInstantly ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -97387,10 +97374,10 @@ public void SetVehicleDoorOpen(int _vehicle, int _doorId, bool _loose, bool _ope } public void SetVehicleDoorAutoLock(IVehicle vehicle, int doorId, bool toggle) => SetVehicleDoorAutoLock(vehicle.ScriptId, doorId, toggle); - public void SetVehicleDoorAutoLock(int _vehicle, int _doorId, bool _toggle) + public void SetVehicleDoorAutoLock(uint _vehicle, int _doorId, bool _toggle) { unsafe { - if (fn__setVehicleDoorAutoLock == null) fn__setVehicleDoorAutoLock = (delegate* unmanaged[Cdecl]) funcTable[0x3B458DDB57038F08UL]; + if (fn__setVehicleDoorAutoLock == null) fn__setVehicleDoorAutoLock = (delegate* unmanaged[Cdecl]) funcTable[0x3B458DDB57038F08UL]; var success = false; fn__setVehicleDoorAutoLock(&success, _vehicle, _doorId, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -97408,10 +97395,10 @@ public void SetFleeingVehiclesUseSwitchedOffNodes(int _p0) } public void RemoveVehicleWindow(IVehicle vehicle, int windowIndex) => RemoveVehicleWindow(vehicle.ScriptId, windowIndex); - public void RemoveVehicleWindow(int _vehicle, int _windowIndex) + public void RemoveVehicleWindow(uint _vehicle, int _windowIndex) { unsafe { - if (fn__removeVehicleWindow == null) fn__removeVehicleWindow = (delegate* unmanaged[Cdecl]) funcTable[0xA711568EEDB43069UL]; + if (fn__removeVehicleWindow == null) fn__removeVehicleWindow = (delegate* unmanaged[Cdecl]) funcTable[0xA711568EEDB43069UL]; var success = false; fn__removeVehicleWindow(&success, _vehicle, _windowIndex); if (!success) throw new Exception("Native execution failed"); @@ -97419,10 +97406,10 @@ public void RemoveVehicleWindow(int _vehicle, int _windowIndex) } public void RollDownWindows(IVehicle vehicle) => RollDownWindows(vehicle.ScriptId); - public void RollDownWindows(int _vehicle) + public void RollDownWindows(uint _vehicle) { unsafe { - if (fn__rollDownWindows == null) fn__rollDownWindows = (delegate* unmanaged[Cdecl]) funcTable[0x85796B0549DDE156UL]; + if (fn__rollDownWindows == null) fn__rollDownWindows = (delegate* unmanaged[Cdecl]) funcTable[0x85796B0549DDE156UL]; var success = false; fn__rollDownWindows(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -97430,10 +97417,10 @@ public void RollDownWindows(int _vehicle) } public void RollDownWindow(IVehicle vehicle, int windowIndex) => RollDownWindow(vehicle.ScriptId, windowIndex); - public void RollDownWindow(int _vehicle, int _windowIndex) + public void RollDownWindow(uint _vehicle, int _windowIndex) { unsafe { - if (fn__rollDownWindow == null) fn__rollDownWindow = (delegate* unmanaged[Cdecl]) funcTable[0x7AD9E6CE657D69E3UL]; + if (fn__rollDownWindow == null) fn__rollDownWindow = (delegate* unmanaged[Cdecl]) funcTable[0x7AD9E6CE657D69E3UL]; var success = false; fn__rollDownWindow(&success, _vehicle, _windowIndex); if (!success) throw new Exception("Native execution failed"); @@ -97441,10 +97428,10 @@ public void RollDownWindow(int _vehicle, int _windowIndex) } public void RollUpWindow(IVehicle vehicle, int windowIndex) => RollUpWindow(vehicle.ScriptId, windowIndex); - public void RollUpWindow(int _vehicle, int _windowIndex) + public void RollUpWindow(uint _vehicle, int _windowIndex) { unsafe { - if (fn__rollUpWindow == null) fn__rollUpWindow = (delegate* unmanaged[Cdecl]) funcTable[0x602E548F46E24D59UL]; + if (fn__rollUpWindow == null) fn__rollUpWindow = (delegate* unmanaged[Cdecl]) funcTable[0x602E548F46E24D59UL]; var success = false; fn__rollUpWindow(&success, _vehicle, _windowIndex); if (!success) throw new Exception("Native execution failed"); @@ -97452,10 +97439,10 @@ public void RollUpWindow(int _vehicle, int _windowIndex) } public void SmashVehicleWindow(IVehicle vehicle, int windowIndex) => SmashVehicleWindow(vehicle.ScriptId, windowIndex); - public void SmashVehicleWindow(int _vehicle, int _windowIndex) + public void SmashVehicleWindow(uint _vehicle, int _windowIndex) { unsafe { - if (fn__smashVehicleWindow == null) fn__smashVehicleWindow = (delegate* unmanaged[Cdecl]) funcTable[0x9E5B5E4D2CCD2259UL]; + if (fn__smashVehicleWindow == null) fn__smashVehicleWindow = (delegate* unmanaged[Cdecl]) funcTable[0x9E5B5E4D2CCD2259UL]; var success = false; fn__smashVehicleWindow(&success, _vehicle, _windowIndex); if (!success) throw new Exception("Native execution failed"); @@ -97463,10 +97450,10 @@ public void SmashVehicleWindow(int _vehicle, int _windowIndex) } public void FixVehicleWindow(IVehicle vehicle, int windowIndex) => FixVehicleWindow(vehicle.ScriptId, windowIndex); - public void FixVehicleWindow(int _vehicle, int _windowIndex) + public void FixVehicleWindow(uint _vehicle, int _windowIndex) { unsafe { - if (fn__fixVehicleWindow == null) fn__fixVehicleWindow = (delegate* unmanaged[Cdecl]) funcTable[0x772282EBEB95E682UL]; + if (fn__fixVehicleWindow == null) fn__fixVehicleWindow = (delegate* unmanaged[Cdecl]) funcTable[0x772282EBEB95E682UL]; var success = false; fn__fixVehicleWindow(&success, _vehicle, _windowIndex); if (!success) throw new Exception("Native execution failed"); @@ -97474,10 +97461,10 @@ public void FixVehicleWindow(int _vehicle, int _windowIndex) } public void PopOutVehicleWindscreen(IVehicle vehicle) => PopOutVehicleWindscreen(vehicle.ScriptId); - public void PopOutVehicleWindscreen(int _vehicle) + public void PopOutVehicleWindscreen(uint _vehicle) { unsafe { - if (fn__popOutVehicleWindscreen == null) fn__popOutVehicleWindscreen = (delegate* unmanaged[Cdecl]) funcTable[0x6D645D59FB5F5AD3UL]; + if (fn__popOutVehicleWindscreen == null) fn__popOutVehicleWindscreen = (delegate* unmanaged[Cdecl]) funcTable[0x6D645D59FB5F5AD3UL]; var success = false; fn__popOutVehicleWindscreen(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -97485,10 +97472,10 @@ public void PopOutVehicleWindscreen(int _vehicle) } public void PopOffVehicleRoofWithImpulse(IVehicle vehicle, float x, float y, float z) => PopOffVehicleRoofWithImpulse(vehicle.ScriptId, x, y, z); - public void PopOffVehicleRoofWithImpulse(int _vehicle, float _x, float _y, float _z) + public void PopOffVehicleRoofWithImpulse(uint _vehicle, float _x, float _y, float _z) { unsafe { - if (fn__popOffVehicleRoofWithImpulse == null) fn__popOffVehicleRoofWithImpulse = (delegate* unmanaged[Cdecl]) funcTable[0xE38CB9D7D39FDBCCUL]; + if (fn__popOffVehicleRoofWithImpulse == null) fn__popOffVehicleRoofWithImpulse = (delegate* unmanaged[Cdecl]) funcTable[0xE38CB9D7D39FDBCCUL]; var success = false; fn__popOffVehicleRoofWithImpulse(&success, _vehicle, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); @@ -97496,10 +97483,10 @@ public void PopOffVehicleRoofWithImpulse(int _vehicle, float _x, float _y, float } public void SetVehicleLights(IVehicle vehicle, int state) => SetVehicleLights(vehicle.ScriptId, state); - public void SetVehicleLights(int _vehicle, int _state) + public void SetVehicleLights(uint _vehicle, int _state) { unsafe { - if (fn__setVehicleLights == null) fn__setVehicleLights = (delegate* unmanaged[Cdecl]) funcTable[0x34E710FF01247C5AUL]; + if (fn__setVehicleLights == null) fn__setVehicleLights = (delegate* unmanaged[Cdecl]) funcTable[0x34E710FF01247C5AUL]; var success = false; fn__setVehicleLights(&success, _vehicle, _state); if (!success) throw new Exception("Native execution failed"); @@ -97507,10 +97494,10 @@ public void SetVehicleLights(int _vehicle, int _state) } public void SetVehicleUsePlayerLightSettings(IVehicle vehicle, bool toggle) => SetVehicleUsePlayerLightSettings(vehicle.ScriptId, toggle); - public void SetVehicleUsePlayerLightSettings(int _vehicle, bool _toggle) + public void SetVehicleUsePlayerLightSettings(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleUsePlayerLightSettings == null) fn__setVehicleUsePlayerLightSettings = (delegate* unmanaged[Cdecl]) funcTable[0xC45C27EF50F36ADCUL]; + if (fn__setVehicleUsePlayerLightSettings == null) fn__setVehicleUsePlayerLightSettings = (delegate* unmanaged[Cdecl]) funcTable[0xC45C27EF50F36ADCUL]; var success = false; fn__setVehicleUsePlayerLightSettings(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -97518,10 +97505,10 @@ public void SetVehicleUsePlayerLightSettings(int _vehicle, bool _toggle) } public void SetVehicleHeadlightShadows(IVehicle vehicle, int p1) => SetVehicleHeadlightShadows(vehicle.ScriptId, p1); - public void SetVehicleHeadlightShadows(int _vehicle, int _p1) + public void SetVehicleHeadlightShadows(uint _vehicle, int _p1) { unsafe { - if (fn__setVehicleHeadlightShadows == null) fn__setVehicleHeadlightShadows = (delegate* unmanaged[Cdecl]) funcTable[0x1FD09E7390A74D54UL]; + if (fn__setVehicleHeadlightShadows == null) fn__setVehicleHeadlightShadows = (delegate* unmanaged[Cdecl]) funcTable[0x1FD09E7390A74D54UL]; var success = false; fn__setVehicleHeadlightShadows(&success, _vehicle, _p1); if (!success) throw new Exception("Native execution failed"); @@ -97529,10 +97516,10 @@ public void SetVehicleHeadlightShadows(int _vehicle, int _p1) } public void SetVehicleAlarm(IVehicle vehicle, bool state) => SetVehicleAlarm(vehicle.ScriptId, state); - public void SetVehicleAlarm(int _vehicle, bool _state) + public void SetVehicleAlarm(uint _vehicle, bool _state) { unsafe { - if (fn__setVehicleAlarm == null) fn__setVehicleAlarm = (delegate* unmanaged[Cdecl]) funcTable[0xCDE5E70C1DDB954CUL]; + if (fn__setVehicleAlarm == null) fn__setVehicleAlarm = (delegate* unmanaged[Cdecl]) funcTable[0xCDE5E70C1DDB954CUL]; var success = false; fn__setVehicleAlarm(&success, _vehicle, (byte) (_state ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -97540,10 +97527,10 @@ public void SetVehicleAlarm(int _vehicle, bool _state) } public void StartVehicleAlarm(IVehicle vehicle) => StartVehicleAlarm(vehicle.ScriptId); - public void StartVehicleAlarm(int _vehicle) + public void StartVehicleAlarm(uint _vehicle) { unsafe { - if (fn__startVehicleAlarm == null) fn__startVehicleAlarm = (delegate* unmanaged[Cdecl]) funcTable[0xB8FF7AB45305C345UL]; + if (fn__startVehicleAlarm == null) fn__startVehicleAlarm = (delegate* unmanaged[Cdecl]) funcTable[0xB8FF7AB45305C345UL]; var success = false; fn__startVehicleAlarm(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -97551,10 +97538,10 @@ public void StartVehicleAlarm(int _vehicle) } public bool IsVehicleAlarmActivated(IVehicle vehicle) => IsVehicleAlarmActivated(vehicle.ScriptId); - public bool IsVehicleAlarmActivated(int _vehicle) + public bool IsVehicleAlarmActivated(uint _vehicle) { unsafe { - if (fn__isVehicleAlarmActivated == null) fn__isVehicleAlarmActivated = (delegate* unmanaged[Cdecl]) funcTable[0x4319E335B71FFF34UL]; + if (fn__isVehicleAlarmActivated == null) fn__isVehicleAlarmActivated = (delegate* unmanaged[Cdecl]) funcTable[0x4319E335B71FFF34UL]; var success = false; var result = fn__isVehicleAlarmActivated(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -97563,10 +97550,10 @@ public bool IsVehicleAlarmActivated(int _vehicle) } public void SetVehicleInteriorlight(IVehicle vehicle, bool toggle) => SetVehicleInteriorlight(vehicle.ScriptId, toggle); - public void SetVehicleInteriorlight(int _vehicle, bool _toggle) + public void SetVehicleInteriorlight(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleInteriorlight == null) fn__setVehicleInteriorlight = (delegate* unmanaged[Cdecl]) funcTable[0xBC2042F090AF6AD3UL]; + if (fn__setVehicleInteriorlight == null) fn__setVehicleInteriorlight = (delegate* unmanaged[Cdecl]) funcTable[0xBC2042F090AF6AD3UL]; var success = false; fn__setVehicleInteriorlight(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -97574,10 +97561,10 @@ public void SetVehicleInteriorlight(int _vehicle, bool _toggle) } public void SetVehicleForceInteriorlight(IVehicle vehicle, bool toggle) => SetVehicleForceInteriorlight(vehicle.ScriptId, toggle); - public void SetVehicleForceInteriorlight(int _vehicle, bool _toggle) + public void SetVehicleForceInteriorlight(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleForceInteriorlight == null) fn__setVehicleForceInteriorlight = (delegate* unmanaged[Cdecl]) funcTable[0x8821196D91FA2DE5UL]; + if (fn__setVehicleForceInteriorlight == null) fn__setVehicleForceInteriorlight = (delegate* unmanaged[Cdecl]) funcTable[0x8821196D91FA2DE5UL]; var success = false; fn__setVehicleForceInteriorlight(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -97585,49 +97572,49 @@ public void SetVehicleForceInteriorlight(int _vehicle, bool _toggle) } public void SetVehicleLightMultiplier(IVehicle vehicle, float multiplier) => SetVehicleLightMultiplier(vehicle.ScriptId, multiplier); - public void SetVehicleLightMultiplier(int _vehicle, float _multiplier) + public void SetVehicleLightMultiplier(uint _vehicle, float _multiplier) { unsafe { - if (fn__setVehicleLightMultiplier == null) fn__setVehicleLightMultiplier = (delegate* unmanaged[Cdecl]) funcTable[0xB385454F8791F57CUL]; + if (fn__setVehicleLightMultiplier == null) fn__setVehicleLightMultiplier = (delegate* unmanaged[Cdecl]) funcTable[0xB385454F8791F57CUL]; var success = false; fn__setVehicleLightMultiplier(&success, _vehicle, _multiplier); if (!success) throw new Exception("Native execution failed"); } } - public void AttachVehicleToTrailer(IVehicle vehicle, int trailer, float radius) => AttachVehicleToTrailer(vehicle.ScriptId, trailer, radius); - public void AttachVehicleToTrailer(int vehicle, IVehicle trailer, float radius) => AttachVehicleToTrailer(vehicle, trailer.ScriptId, radius); + public void AttachVehicleToTrailer(IVehicle vehicle, uint trailer, float radius) => AttachVehicleToTrailer(vehicle.ScriptId, trailer, radius); + public void AttachVehicleToTrailer(uint vehicle, IVehicle trailer, float radius) => AttachVehicleToTrailer(vehicle, trailer.ScriptId, radius); public void AttachVehicleToTrailer(IVehicle vehicle, IVehicle trailer, float radius) => AttachVehicleToTrailer(vehicle.ScriptId, trailer.ScriptId, radius); - public void AttachVehicleToTrailer(int _vehicle, int _trailer, float _radius) + public void AttachVehicleToTrailer(uint _vehicle, uint _trailer, float _radius) { unsafe { - if (fn__attachVehicleToTrailer == null) fn__attachVehicleToTrailer = (delegate* unmanaged[Cdecl]) funcTable[0x3C7D42D58F770B54UL]; + if (fn__attachVehicleToTrailer == null) fn__attachVehicleToTrailer = (delegate* unmanaged[Cdecl]) funcTable[0x3C7D42D58F770B54UL]; var success = false; fn__attachVehicleToTrailer(&success, _vehicle, _trailer, _radius); if (!success) throw new Exception("Native execution failed"); } } - public void AttachVehicleOnToTrailer(IVehicle vehicle, int trailer, float offsetX, float offsetY, float offsetZ, float coordsX, float coordsY, float coordsZ, float rotationX, float rotationY, float rotationZ, float disableCollisions) => AttachVehicleOnToTrailer(vehicle.ScriptId, trailer, offsetX, offsetY, offsetZ, coordsX, coordsY, coordsZ, rotationX, rotationY, rotationZ, disableCollisions); - public void AttachVehicleOnToTrailer(int vehicle, IVehicle trailer, float offsetX, float offsetY, float offsetZ, float coordsX, float coordsY, float coordsZ, float rotationX, float rotationY, float rotationZ, float disableCollisions) => AttachVehicleOnToTrailer(vehicle, trailer.ScriptId, offsetX, offsetY, offsetZ, coordsX, coordsY, coordsZ, rotationX, rotationY, rotationZ, disableCollisions); + public void AttachVehicleOnToTrailer(IVehicle vehicle, uint trailer, float offsetX, float offsetY, float offsetZ, float coordsX, float coordsY, float coordsZ, float rotationX, float rotationY, float rotationZ, float disableCollisions) => AttachVehicleOnToTrailer(vehicle.ScriptId, trailer, offsetX, offsetY, offsetZ, coordsX, coordsY, coordsZ, rotationX, rotationY, rotationZ, disableCollisions); + public void AttachVehicleOnToTrailer(uint vehicle, IVehicle trailer, float offsetX, float offsetY, float offsetZ, float coordsX, float coordsY, float coordsZ, float rotationX, float rotationY, float rotationZ, float disableCollisions) => AttachVehicleOnToTrailer(vehicle, trailer.ScriptId, offsetX, offsetY, offsetZ, coordsX, coordsY, coordsZ, rotationX, rotationY, rotationZ, disableCollisions); public void AttachVehicleOnToTrailer(IVehicle vehicle, IVehicle trailer, float offsetX, float offsetY, float offsetZ, float coordsX, float coordsY, float coordsZ, float rotationX, float rotationY, float rotationZ, float disableCollisions) => AttachVehicleOnToTrailer(vehicle.ScriptId, trailer.ScriptId, offsetX, offsetY, offsetZ, coordsX, coordsY, coordsZ, rotationX, rotationY, rotationZ, disableCollisions); - public void AttachVehicleOnToTrailer(int _vehicle, int _trailer, float _offsetX, float _offsetY, float _offsetZ, float _coordsX, float _coordsY, float _coordsZ, float _rotationX, float _rotationY, float _rotationZ, float _disableCollisions) + public void AttachVehicleOnToTrailer(uint _vehicle, uint _trailer, float _offsetX, float _offsetY, float _offsetZ, float _coordsX, float _coordsY, float _coordsZ, float _rotationX, float _rotationY, float _rotationZ, float _disableCollisions) { unsafe { - if (fn__attachVehicleOnToTrailer == null) fn__attachVehicleOnToTrailer = (delegate* unmanaged[Cdecl]) funcTable[0x16B5E274BDE402F8UL]; + if (fn__attachVehicleOnToTrailer == null) fn__attachVehicleOnToTrailer = (delegate* unmanaged[Cdecl]) funcTable[0x16B5E274BDE402F8UL]; var success = false; fn__attachVehicleOnToTrailer(&success, _vehicle, _trailer, _offsetX, _offsetY, _offsetZ, _coordsX, _coordsY, _coordsZ, _rotationX, _rotationY, _rotationZ, _disableCollisions); if (!success) throw new Exception("Native execution failed"); } } - public void StabiliseEntityAttachedToHeli(IVehicle vehicle, int entity, float p2) => StabiliseEntityAttachedToHeli(vehicle.ScriptId, entity, p2); - public void StabiliseEntityAttachedToHeli(int vehicle, IEntity entity, float p2) => StabiliseEntityAttachedToHeli(vehicle, entity.ScriptId, p2); + public void StabiliseEntityAttachedToHeli(IVehicle vehicle, uint entity, float p2) => StabiliseEntityAttachedToHeli(vehicle.ScriptId, entity, p2); + public void StabiliseEntityAttachedToHeli(uint vehicle, IEntity entity, float p2) => StabiliseEntityAttachedToHeli(vehicle, entity.ScriptId, p2); public void StabiliseEntityAttachedToHeli(IVehicle vehicle, IEntity entity, float p2) => StabiliseEntityAttachedToHeli(vehicle.ScriptId, entity.ScriptId, p2); - public void StabiliseEntityAttachedToHeli(int _vehicle, int _entity, float _p2) + public void StabiliseEntityAttachedToHeli(uint _vehicle, uint _entity, float _p2) { unsafe { - if (fn__stabiliseEntityAttachedToHeli == null) fn__stabiliseEntityAttachedToHeli = (delegate* unmanaged[Cdecl]) funcTable[0x374706271354CB18UL]; + if (fn__stabiliseEntityAttachedToHeli == null) fn__stabiliseEntityAttachedToHeli = (delegate* unmanaged[Cdecl]) funcTable[0x374706271354CB18UL]; var success = false; fn__stabiliseEntityAttachedToHeli(&success, _vehicle, _entity, _p2); if (!success) throw new Exception("Native execution failed"); @@ -97635,10 +97622,10 @@ public void StabiliseEntityAttachedToHeli(int _vehicle, int _entity, float _p2) } public void DetachVehicleFromTrailer(IVehicle vehicle) => DetachVehicleFromTrailer(vehicle.ScriptId); - public void DetachVehicleFromTrailer(int _vehicle) + public void DetachVehicleFromTrailer(uint _vehicle) { unsafe { - if (fn__detachVehicleFromTrailer == null) fn__detachVehicleFromTrailer = (delegate* unmanaged[Cdecl]) funcTable[0x90532EDF0D2BDD86UL]; + if (fn__detachVehicleFromTrailer == null) fn__detachVehicleFromTrailer = (delegate* unmanaged[Cdecl]) funcTable[0x90532EDF0D2BDD86UL]; var success = false; fn__detachVehicleFromTrailer(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -97646,10 +97633,10 @@ public void DetachVehicleFromTrailer(int _vehicle) } public bool IsVehicleAttachedToTrailer(IVehicle vehicle) => IsVehicleAttachedToTrailer(vehicle.ScriptId); - public bool IsVehicleAttachedToTrailer(int _vehicle) + public bool IsVehicleAttachedToTrailer(uint _vehicle) { unsafe { - if (fn__isVehicleAttachedToTrailer == null) fn__isVehicleAttachedToTrailer = (delegate* unmanaged[Cdecl]) funcTable[0xE7CF3C4F9F489F0CUL]; + if (fn__isVehicleAttachedToTrailer == null) fn__isVehicleAttachedToTrailer = (delegate* unmanaged[Cdecl]) funcTable[0xE7CF3C4F9F489F0CUL]; var success = false; var result = fn__isVehicleAttachedToTrailer(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -97658,10 +97645,10 @@ public bool IsVehicleAttachedToTrailer(int _vehicle) } public void SetTrailerInverseMassScale(IVehicle vehicle, float p1) => SetTrailerInverseMassScale(vehicle.ScriptId, p1); - public void SetTrailerInverseMassScale(int _vehicle, float _p1) + public void SetTrailerInverseMassScale(uint _vehicle, float _p1) { unsafe { - if (fn__setTrailerInverseMassScale == null) fn__setTrailerInverseMassScale = (delegate* unmanaged[Cdecl]) funcTable[0x2A8F319B392E7B3FUL]; + if (fn__setTrailerInverseMassScale == null) fn__setTrailerInverseMassScale = (delegate* unmanaged[Cdecl]) funcTable[0x2A8F319B392E7B3FUL]; var success = false; fn__setTrailerInverseMassScale(&success, _vehicle, _p1); if (!success) throw new Exception("Native execution failed"); @@ -97669,10 +97656,10 @@ public void SetTrailerInverseMassScale(int _vehicle, float _p1) } public void SetTrailerLegsRaised(IVehicle vehicle) => SetTrailerLegsRaised(vehicle.ScriptId); - public void SetTrailerLegsRaised(int _vehicle) + public void SetTrailerLegsRaised(uint _vehicle) { unsafe { - if (fn__setTrailerLegsRaised == null) fn__setTrailerLegsRaised = (delegate* unmanaged[Cdecl]) funcTable[0x95CF53B3D687F9FAUL]; + if (fn__setTrailerLegsRaised == null) fn__setTrailerLegsRaised = (delegate* unmanaged[Cdecl]) funcTable[0x95CF53B3D687F9FAUL]; var success = false; fn__setTrailerLegsRaised(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -97680,10 +97667,10 @@ public void SetTrailerLegsRaised(int _vehicle) } public void SetTrailerLegsLowered(IVehicle vehicle) => SetTrailerLegsLowered(vehicle.ScriptId); - public void SetTrailerLegsLowered(int _vehicle) + public void SetTrailerLegsLowered(uint _vehicle) { unsafe { - if (fn__setTrailerLegsLowered == null) fn__setTrailerLegsLowered = (delegate* unmanaged[Cdecl]) funcTable[0x878C75C09FBDB942UL]; + if (fn__setTrailerLegsLowered == null) fn__setTrailerLegsLowered = (delegate* unmanaged[Cdecl]) funcTable[0x878C75C09FBDB942UL]; var success = false; fn__setTrailerLegsLowered(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -97691,10 +97678,10 @@ public void SetTrailerLegsLowered(int _vehicle) } public void SetVehicleTyreFixed(IVehicle vehicle, int tyreIndex) => SetVehicleTyreFixed(vehicle.ScriptId, tyreIndex); - public void SetVehicleTyreFixed(int _vehicle, int _tyreIndex) + public void SetVehicleTyreFixed(uint _vehicle, int _tyreIndex) { unsafe { - if (fn__setVehicleTyreFixed == null) fn__setVehicleTyreFixed = (delegate* unmanaged[Cdecl]) funcTable[0x6E13FC662B882D1DUL]; + if (fn__setVehicleTyreFixed == null) fn__setVehicleTyreFixed = (delegate* unmanaged[Cdecl]) funcTable[0x6E13FC662B882D1DUL]; var success = false; fn__setVehicleTyreFixed(&success, _vehicle, _tyreIndex); if (!success) throw new Exception("Native execution failed"); @@ -97702,28 +97689,28 @@ public void SetVehicleTyreFixed(int _vehicle, int _tyreIndex) } public void SetVehicleNumberPlateText(IVehicle vehicle, string plateText) => SetVehicleNumberPlateText(vehicle.ScriptId, plateText); - public void SetVehicleNumberPlateText(int _vehicle, string _plateText) + public void SetVehicleNumberPlateText(uint _vehicle, string _plateText) { unsafe { - if (fn__setVehicleNumberPlateText == null) fn__setVehicleNumberPlateText = (delegate* unmanaged[Cdecl]) funcTable[0x95A88F0B409CDA47UL]; + if (fn__setVehicleNumberPlateText == null) fn__setVehicleNumberPlateText = (delegate* unmanaged[Cdecl]) funcTable[0x95A88F0B409CDA47UL]; var success = false; - var ptr_plateText = _plateText == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_plateText); + var ptr_plateText = MemoryUtils.StringToHGlobalUtf8(_plateText); fn__setVehicleNumberPlateText(&success, _vehicle, ptr_plateText); - if (ptr_plateText != IntPtr.Zero) Marshal.FreeHGlobal(ptr_plateText); + Marshal.FreeHGlobal(ptr_plateText); if (!success) throw new Exception("Native execution failed"); } } public string GetVehicleNumberPlateText(IVehicle vehicle) => GetVehicleNumberPlateText(vehicle.ScriptId); - public string GetVehicleNumberPlateText(int _vehicle) + public string GetVehicleNumberPlateText(uint _vehicle) { unsafe { - if (fn__getVehicleNumberPlateText == null) fn__getVehicleNumberPlateText = (delegate* unmanaged[Cdecl]) funcTable[0x7CE1CCB9B293020EUL]; + if (fn__getVehicleNumberPlateText == null) fn__getVehicleNumberPlateText = (delegate* unmanaged[Cdecl]) funcTable[0x7CE1CCB9B293020EUL]; var success = false; var result = fn__getVehicleNumberPlateText(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -97740,10 +97727,10 @@ public int GetNumberOfVehicleNumberPlates() } public void SetVehicleNumberPlateTextIndex(IVehicle vehicle, int plateIndex) => SetVehicleNumberPlateTextIndex(vehicle.ScriptId, plateIndex); - public void SetVehicleNumberPlateTextIndex(int _vehicle, int _plateIndex) + public void SetVehicleNumberPlateTextIndex(uint _vehicle, int _plateIndex) { unsafe { - if (fn__setVehicleNumberPlateTextIndex == null) fn__setVehicleNumberPlateTextIndex = (delegate* unmanaged[Cdecl]) funcTable[0x9088EB5A43FFB0A1UL]; + if (fn__setVehicleNumberPlateTextIndex == null) fn__setVehicleNumberPlateTextIndex = (delegate* unmanaged[Cdecl]) funcTable[0x9088EB5A43FFB0A1UL]; var success = false; fn__setVehicleNumberPlateTextIndex(&success, _vehicle, _plateIndex); if (!success) throw new Exception("Native execution failed"); @@ -97751,10 +97738,10 @@ public void SetVehicleNumberPlateTextIndex(int _vehicle, int _plateIndex) } public int GetVehicleNumberPlateTextIndex(IVehicle vehicle) => GetVehicleNumberPlateTextIndex(vehicle.ScriptId); - public int GetVehicleNumberPlateTextIndex(int _vehicle) + public int GetVehicleNumberPlateTextIndex(uint _vehicle) { unsafe { - if (fn__getVehicleNumberPlateTextIndex == null) fn__getVehicleNumberPlateTextIndex = (delegate* unmanaged[Cdecl]) funcTable[0xF11BC2DD9A3E7195UL]; + if (fn__getVehicleNumberPlateTextIndex == null) fn__getVehicleNumberPlateTextIndex = (delegate* unmanaged[Cdecl]) funcTable[0xF11BC2DD9A3E7195UL]; var success = false; var result = fn__getVehicleNumberPlateTextIndex(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -97772,10 +97759,10 @@ public void SetRandomTrains(bool _toggle) } } - public int CreateMissionTrain(int _unkVariation, float _x, float _y, float _z, bool _direction, int _p5, int _p6) + public uint CreateMissionTrain(int _unkVariation, float _x, float _y, float _z, bool _direction, int _p5, int _p6) { unsafe { - if (fn__createMissionTrain == null) fn__createMissionTrain = (delegate* unmanaged[Cdecl]) funcTable[0x63C6CCA8E68AE8C8UL]; + if (fn__createMissionTrain == null) fn__createMissionTrain = (delegate* unmanaged[Cdecl]) funcTable[0x63C6CCA8E68AE8C8UL]; var success = false; var result = fn__createMissionTrain(&success, _unkVariation, _x, _y, _z, (byte) (_direction ? 1 : 0), _p5, _p6); if (!success) throw new Exception("Native execution failed"); @@ -97824,10 +97811,10 @@ public void DeleteAllTrains() } public void SetTrainSpeed(IVehicle train, float speed) => SetTrainSpeed(train.ScriptId, speed); - public void SetTrainSpeed(int _train, float _speed) + public void SetTrainSpeed(uint _train, float _speed) { unsafe { - if (fn__setTrainSpeed == null) fn__setTrainSpeed = (delegate* unmanaged[Cdecl]) funcTable[0xAA0BC91BE0B796E3UL]; + if (fn__setTrainSpeed == null) fn__setTrainSpeed = (delegate* unmanaged[Cdecl]) funcTable[0xAA0BC91BE0B796E3UL]; var success = false; fn__setTrainSpeed(&success, _train, _speed); if (!success) throw new Exception("Native execution failed"); @@ -97835,10 +97822,10 @@ public void SetTrainSpeed(int _train, float _speed) } public void SetTrainCruiseSpeed(IVehicle train, float speed) => SetTrainCruiseSpeed(train.ScriptId, speed); - public void SetTrainCruiseSpeed(int _train, float _speed) + public void SetTrainCruiseSpeed(uint _train, float _speed) { unsafe { - if (fn__setTrainCruiseSpeed == null) fn__setTrainCruiseSpeed = (delegate* unmanaged[Cdecl]) funcTable[0x16469284DB8C62B5UL]; + if (fn__setTrainCruiseSpeed == null) fn__setTrainCruiseSpeed = (delegate* unmanaged[Cdecl]) funcTable[0x16469284DB8C62B5UL]; var success = false; fn__setTrainCruiseSpeed(&success, _train, _speed); if (!success) throw new Exception("Native execution failed"); @@ -97876,10 +97863,10 @@ public void SetGarbageTrucks(bool _toggle) } public bool DoesVehicleHaveStuckVehicleCheck(IVehicle vehicle) => DoesVehicleHaveStuckVehicleCheck(vehicle.ScriptId); - public bool DoesVehicleHaveStuckVehicleCheck(int _vehicle) + public bool DoesVehicleHaveStuckVehicleCheck(uint _vehicle) { unsafe { - if (fn__doesVehicleHaveStuckVehicleCheck == null) fn__doesVehicleHaveStuckVehicleCheck = (delegate* unmanaged[Cdecl]) funcTable[0x57E4C39DE5EE8470UL]; + if (fn__doesVehicleHaveStuckVehicleCheck == null) fn__doesVehicleHaveStuckVehicleCheck = (delegate* unmanaged[Cdecl]) funcTable[0x57E4C39DE5EE8470UL]; var success = false; var result = fn__doesVehicleHaveStuckVehicleCheck(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -97892,9 +97879,9 @@ public int GetVehicleRecordingId(int _recording, string _script) unsafe { if (fn__getVehicleRecordingId == null) fn__getVehicleRecordingId = (delegate* unmanaged[Cdecl]) funcTable[0x21543C612379DB3CUL]; var success = false; - var ptr_script = _script == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_script); + var ptr_script = MemoryUtils.StringToHGlobalUtf8(_script); var result = fn__getVehicleRecordingId(&success, _recording, ptr_script); - if (ptr_script != IntPtr.Zero) Marshal.FreeHGlobal(ptr_script); + Marshal.FreeHGlobal(ptr_script); if (!success) throw new Exception("Native execution failed"); return result; } @@ -97905,9 +97892,9 @@ public void RequestVehicleRecording(int _recording, string _script) unsafe { if (fn__requestVehicleRecording == null) fn__requestVehicleRecording = (delegate* unmanaged[Cdecl]) funcTable[0xAF514CABE74CBF15UL]; var success = false; - var ptr_script = _script == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_script); + var ptr_script = MemoryUtils.StringToHGlobalUtf8(_script); fn__requestVehicleRecording(&success, _recording, ptr_script); - if (ptr_script != IntPtr.Zero) Marshal.FreeHGlobal(ptr_script); + Marshal.FreeHGlobal(ptr_script); if (!success) throw new Exception("Native execution failed"); } } @@ -97917,9 +97904,9 @@ public bool HasVehicleRecordingBeenLoaded(int _recording, string _script) unsafe { if (fn__hasVehicleRecordingBeenLoaded == null) fn__hasVehicleRecordingBeenLoaded = (delegate* unmanaged[Cdecl]) funcTable[0x300D614A4C785FC4UL]; var success = false; - var ptr_script = _script == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_script); + var ptr_script = MemoryUtils.StringToHGlobalUtf8(_script); var result = fn__hasVehicleRecordingBeenLoaded(&success, _recording, ptr_script); - if (ptr_script != IntPtr.Zero) Marshal.FreeHGlobal(ptr_script); + Marshal.FreeHGlobal(ptr_script); if (!success) throw new Exception("Native execution failed"); return result == 0 ? false : true; } @@ -97930,9 +97917,9 @@ public void RemoveVehicleRecording(int _recording, string _script) unsafe { if (fn__removeVehicleRecording == null) fn__removeVehicleRecording = (delegate* unmanaged[Cdecl]) funcTable[0xF1160ACCF98A3FC8UL]; var success = false; - var ptr_script = _script == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_script); + var ptr_script = MemoryUtils.StringToHGlobalUtf8(_script); fn__removeVehicleRecording(&success, _recording, ptr_script); - if (ptr_script != IntPtr.Zero) Marshal.FreeHGlobal(ptr_script); + Marshal.FreeHGlobal(ptr_script); if (!success) throw new Exception("Native execution failed"); } } @@ -97953,9 +97940,9 @@ public Vector3 GetPositionOfVehicleRecordingAtTime(int _recording, float _time, unsafe { if (fn__getPositionOfVehicleRecordingAtTime == null) fn__getPositionOfVehicleRecordingAtTime = (delegate* unmanaged[Cdecl]) funcTable[0xD242728AA6F0FBA2UL]; var success = false; - var ptr_script = _script == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_script); + var ptr_script = MemoryUtils.StringToHGlobalUtf8(_script); var result = fn__getPositionOfVehicleRecordingAtTime(&success, _recording, _time, ptr_script); - if (ptr_script != IntPtr.Zero) Marshal.FreeHGlobal(ptr_script); + Marshal.FreeHGlobal(ptr_script); if (!success) throw new Exception("Native execution failed"); return result; } @@ -97977,9 +97964,9 @@ public Vector3 GetRotationOfVehicleRecordingAtTime(int _recording, float _time, unsafe { if (fn__getRotationOfVehicleRecordingAtTime == null) fn__getRotationOfVehicleRecordingAtTime = (delegate* unmanaged[Cdecl]) funcTable[0x2058206FBE79A8ADUL]; var success = false; - var ptr_script = _script == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_script); + var ptr_script = MemoryUtils.StringToHGlobalUtf8(_script); var result = fn__getRotationOfVehicleRecordingAtTime(&success, _recording, _time, ptr_script); - if (ptr_script != IntPtr.Zero) Marshal.FreeHGlobal(ptr_script); + Marshal.FreeHGlobal(ptr_script); if (!success) throw new Exception("Native execution failed"); return result; } @@ -98001,19 +97988,19 @@ public float GetTotalDurationOfVehicleRecording(int _recording, string _script) unsafe { if (fn__getTotalDurationOfVehicleRecording == null) fn__getTotalDurationOfVehicleRecording = (delegate* unmanaged[Cdecl]) funcTable[0x0E48D1C262390950UL]; var success = false; - var ptr_script = _script == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_script); + var ptr_script = MemoryUtils.StringToHGlobalUtf8(_script); var result = fn__getTotalDurationOfVehicleRecording(&success, _recording, ptr_script); - if (ptr_script != IntPtr.Zero) Marshal.FreeHGlobal(ptr_script); + Marshal.FreeHGlobal(ptr_script); if (!success) throw new Exception("Native execution failed"); return result; } } public float GetPositionInRecording(IVehicle vehicle) => GetPositionInRecording(vehicle.ScriptId); - public float GetPositionInRecording(int _vehicle) + public float GetPositionInRecording(uint _vehicle) { unsafe { - if (fn__getPositionInRecording == null) fn__getPositionInRecording = (delegate* unmanaged[Cdecl]) funcTable[0x2DACD605FC681475UL]; + if (fn__getPositionInRecording == null) fn__getPositionInRecording = (delegate* unmanaged[Cdecl]) funcTable[0x2DACD605FC681475UL]; var success = false; var result = fn__getPositionInRecording(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -98022,10 +98009,10 @@ public float GetPositionInRecording(int _vehicle) } public float GetTimePositionInRecording(IVehicle vehicle) => GetTimePositionInRecording(vehicle.ScriptId); - public float GetTimePositionInRecording(int _vehicle) + public float GetTimePositionInRecording(uint _vehicle) { unsafe { - if (fn__getTimePositionInRecording == null) fn__getTimePositionInRecording = (delegate* unmanaged[Cdecl]) funcTable[0x5746F3A7AB7FE544UL]; + if (fn__getTimePositionInRecording == null) fn__getTimePositionInRecording = (delegate* unmanaged[Cdecl]) funcTable[0x5746F3A7AB7FE544UL]; var success = false; var result = fn__getTimePositionInRecording(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -98034,36 +98021,36 @@ public float GetTimePositionInRecording(int _vehicle) } public void StartPlaybackRecordedVehicle(IVehicle vehicle, int recording, string script, bool p3) => StartPlaybackRecordedVehicle(vehicle.ScriptId, recording, script, p3); - public void StartPlaybackRecordedVehicle(int _vehicle, int _recording, string _script, bool _p3) + public void StartPlaybackRecordedVehicle(uint _vehicle, int _recording, string _script, bool _p3) { unsafe { - if (fn__startPlaybackRecordedVehicle == null) fn__startPlaybackRecordedVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x3F878F92B3A7A071UL]; + if (fn__startPlaybackRecordedVehicle == null) fn__startPlaybackRecordedVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x3F878F92B3A7A071UL]; var success = false; - var ptr_script = _script == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_script); + var ptr_script = MemoryUtils.StringToHGlobalUtf8(_script); fn__startPlaybackRecordedVehicle(&success, _vehicle, _recording, ptr_script, (byte) (_p3 ? 1 : 0)); - if (ptr_script != IntPtr.Zero) Marshal.FreeHGlobal(ptr_script); + Marshal.FreeHGlobal(ptr_script); if (!success) throw new Exception("Native execution failed"); } } public void StartPlaybackRecordedVehicleWithFlags(IVehicle vehicle, int recording, string script, int flags, int time, int drivingStyle) => StartPlaybackRecordedVehicleWithFlags(vehicle.ScriptId, recording, script, flags, time, drivingStyle); - public void StartPlaybackRecordedVehicleWithFlags(int _vehicle, int _recording, string _script, int _flags, int _time, int _drivingStyle) + public void StartPlaybackRecordedVehicleWithFlags(uint _vehicle, int _recording, string _script, int _flags, int _time, int _drivingStyle) { unsafe { - if (fn__startPlaybackRecordedVehicleWithFlags == null) fn__startPlaybackRecordedVehicleWithFlags = (delegate* unmanaged[Cdecl]) funcTable[0x7D80FD645D4DA346UL]; + if (fn__startPlaybackRecordedVehicleWithFlags == null) fn__startPlaybackRecordedVehicleWithFlags = (delegate* unmanaged[Cdecl]) funcTable[0x7D80FD645D4DA346UL]; var success = false; - var ptr_script = _script == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_script); + var ptr_script = MemoryUtils.StringToHGlobalUtf8(_script); fn__startPlaybackRecordedVehicleWithFlags(&success, _vehicle, _recording, ptr_script, _flags, _time, _drivingStyle); - if (ptr_script != IntPtr.Zero) Marshal.FreeHGlobal(ptr_script); + Marshal.FreeHGlobal(ptr_script); if (!success) throw new Exception("Native execution failed"); } } public void ForcePlaybackRecordedVehicleUpdate(IVehicle vehicle, bool p1) => ForcePlaybackRecordedVehicleUpdate(vehicle.ScriptId, p1); - public void ForcePlaybackRecordedVehicleUpdate(int _vehicle, bool _p1) + public void ForcePlaybackRecordedVehicleUpdate(uint _vehicle, bool _p1) { unsafe { - if (fn__forcePlaybackRecordedVehicleUpdate == null) fn__forcePlaybackRecordedVehicleUpdate = (delegate* unmanaged[Cdecl]) funcTable[0x1F2E4E06DEA8992BUL]; + if (fn__forcePlaybackRecordedVehicleUpdate == null) fn__forcePlaybackRecordedVehicleUpdate = (delegate* unmanaged[Cdecl]) funcTable[0x1F2E4E06DEA8992BUL]; var success = false; fn__forcePlaybackRecordedVehicleUpdate(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98071,10 +98058,10 @@ public void ForcePlaybackRecordedVehicleUpdate(int _vehicle, bool _p1) } public void StopPlaybackRecordedVehicle(IVehicle vehicle) => StopPlaybackRecordedVehicle(vehicle.ScriptId); - public void StopPlaybackRecordedVehicle(int _vehicle) + public void StopPlaybackRecordedVehicle(uint _vehicle) { unsafe { - if (fn__stopPlaybackRecordedVehicle == null) fn__stopPlaybackRecordedVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x54833611C17ABDEAUL]; + if (fn__stopPlaybackRecordedVehicle == null) fn__stopPlaybackRecordedVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x54833611C17ABDEAUL]; var success = false; fn__stopPlaybackRecordedVehicle(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -98082,10 +98069,10 @@ public void StopPlaybackRecordedVehicle(int _vehicle) } public void PausePlaybackRecordedVehicle(IVehicle vehicle) => PausePlaybackRecordedVehicle(vehicle.ScriptId); - public void PausePlaybackRecordedVehicle(int _vehicle) + public void PausePlaybackRecordedVehicle(uint _vehicle) { unsafe { - if (fn__pausePlaybackRecordedVehicle == null) fn__pausePlaybackRecordedVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x632A689BF42301B1UL]; + if (fn__pausePlaybackRecordedVehicle == null) fn__pausePlaybackRecordedVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x632A689BF42301B1UL]; var success = false; fn__pausePlaybackRecordedVehicle(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -98093,10 +98080,10 @@ public void PausePlaybackRecordedVehicle(int _vehicle) } public void UnpausePlaybackRecordedVehicle(IVehicle vehicle) => UnpausePlaybackRecordedVehicle(vehicle.ScriptId); - public void UnpausePlaybackRecordedVehicle(int _vehicle) + public void UnpausePlaybackRecordedVehicle(uint _vehicle) { unsafe { - if (fn__unpausePlaybackRecordedVehicle == null) fn__unpausePlaybackRecordedVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x8879EE09268305D5UL]; + if (fn__unpausePlaybackRecordedVehicle == null) fn__unpausePlaybackRecordedVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x8879EE09268305D5UL]; var success = false; fn__unpausePlaybackRecordedVehicle(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -98104,10 +98091,10 @@ public void UnpausePlaybackRecordedVehicle(int _vehicle) } public bool IsPlaybackGoingOnForVehicle(IVehicle vehicle) => IsPlaybackGoingOnForVehicle(vehicle.ScriptId); - public bool IsPlaybackGoingOnForVehicle(int _vehicle) + public bool IsPlaybackGoingOnForVehicle(uint _vehicle) { unsafe { - if (fn__isPlaybackGoingOnForVehicle == null) fn__isPlaybackGoingOnForVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x1C8A4C2C19E68EECUL]; + if (fn__isPlaybackGoingOnForVehicle == null) fn__isPlaybackGoingOnForVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x1C8A4C2C19E68EECUL]; var success = false; var result = fn__isPlaybackGoingOnForVehicle(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -98116,10 +98103,10 @@ public bool IsPlaybackGoingOnForVehicle(int _vehicle) } public bool IsPlaybackUsingAiGoingOnForVehicle(IVehicle vehicle) => IsPlaybackUsingAiGoingOnForVehicle(vehicle.ScriptId); - public bool IsPlaybackUsingAiGoingOnForVehicle(int _vehicle) + public bool IsPlaybackUsingAiGoingOnForVehicle(uint _vehicle) { unsafe { - if (fn__isPlaybackUsingAiGoingOnForVehicle == null) fn__isPlaybackUsingAiGoingOnForVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xAEA8FD591FAD4106UL]; + if (fn__isPlaybackUsingAiGoingOnForVehicle == null) fn__isPlaybackUsingAiGoingOnForVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xAEA8FD591FAD4106UL]; var success = false; var result = fn__isPlaybackUsingAiGoingOnForVehicle(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -98128,10 +98115,10 @@ public bool IsPlaybackUsingAiGoingOnForVehicle(int _vehicle) } public int GetCurrentPlaybackForVehicle(IVehicle vehicle) => GetCurrentPlaybackForVehicle(vehicle.ScriptId); - public int GetCurrentPlaybackForVehicle(int _vehicle) + public int GetCurrentPlaybackForVehicle(uint _vehicle) { unsafe { - if (fn__getCurrentPlaybackForVehicle == null) fn__getCurrentPlaybackForVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x42BC05C27A946054UL]; + if (fn__getCurrentPlaybackForVehicle == null) fn__getCurrentPlaybackForVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x42BC05C27A946054UL]; var success = false; var result = fn__getCurrentPlaybackForVehicle(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -98140,10 +98127,10 @@ public int GetCurrentPlaybackForVehicle(int _vehicle) } public void SkipToEndAndStopPlaybackRecordedVehicle(IVehicle vehicle) => SkipToEndAndStopPlaybackRecordedVehicle(vehicle.ScriptId); - public void SkipToEndAndStopPlaybackRecordedVehicle(int _vehicle) + public void SkipToEndAndStopPlaybackRecordedVehicle(uint _vehicle) { unsafe { - if (fn__skipToEndAndStopPlaybackRecordedVehicle == null) fn__skipToEndAndStopPlaybackRecordedVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xAB8E2EDA0C0A5883UL]; + if (fn__skipToEndAndStopPlaybackRecordedVehicle == null) fn__skipToEndAndStopPlaybackRecordedVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xAB8E2EDA0C0A5883UL]; var success = false; fn__skipToEndAndStopPlaybackRecordedVehicle(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -98151,10 +98138,10 @@ public void SkipToEndAndStopPlaybackRecordedVehicle(int _vehicle) } public void SetPlaybackSpeed(IVehicle vehicle, float speed) => SetPlaybackSpeed(vehicle.ScriptId, speed); - public void SetPlaybackSpeed(int _vehicle, float _speed) + public void SetPlaybackSpeed(uint _vehicle, float _speed) { unsafe { - if (fn__setPlaybackSpeed == null) fn__setPlaybackSpeed = (delegate* unmanaged[Cdecl]) funcTable[0x6683AB880E427778UL]; + if (fn__setPlaybackSpeed == null) fn__setPlaybackSpeed = (delegate* unmanaged[Cdecl]) funcTable[0x6683AB880E427778UL]; var success = false; fn__setPlaybackSpeed(&success, _vehicle, _speed); if (!success) throw new Exception("Native execution failed"); @@ -98162,23 +98149,23 @@ public void SetPlaybackSpeed(int _vehicle, float _speed) } public void StartPlaybackRecordedVehicleUsingAi(IVehicle vehicle, int recording, string script, float speed, int drivingStyle) => StartPlaybackRecordedVehicleUsingAi(vehicle.ScriptId, recording, script, speed, drivingStyle); - public void StartPlaybackRecordedVehicleUsingAi(int _vehicle, int _recording, string _script, float _speed, int _drivingStyle) + public void StartPlaybackRecordedVehicleUsingAi(uint _vehicle, int _recording, string _script, float _speed, int _drivingStyle) { unsafe { - if (fn__startPlaybackRecordedVehicleUsingAi == null) fn__startPlaybackRecordedVehicleUsingAi = (delegate* unmanaged[Cdecl]) funcTable[0x29DE5FA52D00428CUL]; + if (fn__startPlaybackRecordedVehicleUsingAi == null) fn__startPlaybackRecordedVehicleUsingAi = (delegate* unmanaged[Cdecl]) funcTable[0x29DE5FA52D00428CUL]; var success = false; - var ptr_script = _script == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_script); + var ptr_script = MemoryUtils.StringToHGlobalUtf8(_script); fn__startPlaybackRecordedVehicleUsingAi(&success, _vehicle, _recording, ptr_script, _speed, _drivingStyle); - if (ptr_script != IntPtr.Zero) Marshal.FreeHGlobal(ptr_script); + Marshal.FreeHGlobal(ptr_script); if (!success) throw new Exception("Native execution failed"); } } public void SkipTimeInPlaybackRecordedVehicle(IVehicle vehicle, float time) => SkipTimeInPlaybackRecordedVehicle(vehicle.ScriptId, time); - public void SkipTimeInPlaybackRecordedVehicle(int _vehicle, float _time) + public void SkipTimeInPlaybackRecordedVehicle(uint _vehicle, float _time) { unsafe { - if (fn__skipTimeInPlaybackRecordedVehicle == null) fn__skipTimeInPlaybackRecordedVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x9438F7AD68771A20UL]; + if (fn__skipTimeInPlaybackRecordedVehicle == null) fn__skipTimeInPlaybackRecordedVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x9438F7AD68771A20UL]; var success = false; fn__skipTimeInPlaybackRecordedVehicle(&success, _vehicle, _time); if (!success) throw new Exception("Native execution failed"); @@ -98186,10 +98173,10 @@ public void SkipTimeInPlaybackRecordedVehicle(int _vehicle, float _time) } public void SetPlaybackToUseAi(IVehicle vehicle, int drivingStyle) => SetPlaybackToUseAi(vehicle.ScriptId, drivingStyle); - public void SetPlaybackToUseAi(int _vehicle, int _drivingStyle) + public void SetPlaybackToUseAi(uint _vehicle, int _drivingStyle) { unsafe { - if (fn__setPlaybackToUseAi == null) fn__setPlaybackToUseAi = (delegate* unmanaged[Cdecl]) funcTable[0xA549C3B37EA28131UL]; + if (fn__setPlaybackToUseAi == null) fn__setPlaybackToUseAi = (delegate* unmanaged[Cdecl]) funcTable[0xA549C3B37EA28131UL]; var success = false; fn__setPlaybackToUseAi(&success, _vehicle, _drivingStyle); if (!success) throw new Exception("Native execution failed"); @@ -98197,10 +98184,10 @@ public void SetPlaybackToUseAi(int _vehicle, int _drivingStyle) } public void SetPlaybackToUseAiTryToRevertBackLater(IVehicle vehicle, int time, int drivingStyle, bool p3) => SetPlaybackToUseAiTryToRevertBackLater(vehicle.ScriptId, time, drivingStyle, p3); - public void SetPlaybackToUseAiTryToRevertBackLater(int _vehicle, int _time, int _drivingStyle, bool _p3) + public void SetPlaybackToUseAiTryToRevertBackLater(uint _vehicle, int _time, int _drivingStyle, bool _p3) { unsafe { - if (fn__setPlaybackToUseAiTryToRevertBackLater == null) fn__setPlaybackToUseAiTryToRevertBackLater = (delegate* unmanaged[Cdecl]) funcTable[0x6E63860BBB190730UL]; + if (fn__setPlaybackToUseAiTryToRevertBackLater == null) fn__setPlaybackToUseAiTryToRevertBackLater = (delegate* unmanaged[Cdecl]) funcTable[0x6E63860BBB190730UL]; var success = false; fn__setPlaybackToUseAiTryToRevertBackLater(&success, _vehicle, _time, _drivingStyle, (byte) (_p3 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98208,10 +98195,10 @@ public void SetPlaybackToUseAiTryToRevertBackLater(int _vehicle, int _time, int } public void SetAdditionalRotationForRecordedVehiclePlayback(IVehicle vehicle, float x, float y, float z, int p4) => SetAdditionalRotationForRecordedVehiclePlayback(vehicle.ScriptId, x, y, z, p4); - public void SetAdditionalRotationForRecordedVehiclePlayback(int _vehicle, float _x, float _y, float _z, int _p4) + public void SetAdditionalRotationForRecordedVehiclePlayback(uint _vehicle, float _x, float _y, float _z, int _p4) { unsafe { - if (fn__setAdditionalRotationForRecordedVehiclePlayback == null) fn__setAdditionalRotationForRecordedVehiclePlayback = (delegate* unmanaged[Cdecl]) funcTable[0x5845066D8A1EA7F7UL]; + if (fn__setAdditionalRotationForRecordedVehiclePlayback == null) fn__setAdditionalRotationForRecordedVehiclePlayback = (delegate* unmanaged[Cdecl]) funcTable[0x5845066D8A1EA7F7UL]; var success = false; fn__setAdditionalRotationForRecordedVehiclePlayback(&success, _vehicle, _x, _y, _z, _p4); if (!success) throw new Exception("Native execution failed"); @@ -98219,10 +98206,10 @@ public void SetAdditionalRotationForRecordedVehiclePlayback(int _vehicle, float } public void SetPositionOffsetForRecordedVehiclePlayback(IVehicle vehicle, float x, float y, float z) => SetPositionOffsetForRecordedVehiclePlayback(vehicle.ScriptId, x, y, z); - public void SetPositionOffsetForRecordedVehiclePlayback(int _vehicle, float _x, float _y, float _z) + public void SetPositionOffsetForRecordedVehiclePlayback(uint _vehicle, float _x, float _y, float _z) { unsafe { - if (fn__setPositionOffsetForRecordedVehiclePlayback == null) fn__setPositionOffsetForRecordedVehiclePlayback = (delegate* unmanaged[Cdecl]) funcTable[0x796A877E459B99EAUL]; + if (fn__setPositionOffsetForRecordedVehiclePlayback == null) fn__setPositionOffsetForRecordedVehiclePlayback = (delegate* unmanaged[Cdecl]) funcTable[0x796A877E459B99EAUL]; var success = false; fn__setPositionOffsetForRecordedVehiclePlayback(&success, _vehicle, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); @@ -98230,10 +98217,10 @@ public void SetPositionOffsetForRecordedVehiclePlayback(int _vehicle, float _x, } public void SetGlobalPositionOffsetForRecordedVehiclePlayback(IVehicle vehicle, float x, float y, float z) => SetGlobalPositionOffsetForRecordedVehiclePlayback(vehicle.ScriptId, x, y, z); - public void SetGlobalPositionOffsetForRecordedVehiclePlayback(int _vehicle, float _x, float _y, float _z) + public void SetGlobalPositionOffsetForRecordedVehiclePlayback(uint _vehicle, float _x, float _y, float _z) { unsafe { - if (fn__setGlobalPositionOffsetForRecordedVehiclePlayback == null) fn__setGlobalPositionOffsetForRecordedVehiclePlayback = (delegate* unmanaged[Cdecl]) funcTable[0xFAF2A78061FD9EF4UL]; + if (fn__setGlobalPositionOffsetForRecordedVehiclePlayback == null) fn__setGlobalPositionOffsetForRecordedVehiclePlayback = (delegate* unmanaged[Cdecl]) funcTable[0xFAF2A78061FD9EF4UL]; var success = false; fn__setGlobalPositionOffsetForRecordedVehiclePlayback(&success, _vehicle, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); @@ -98241,10 +98228,10 @@ public void SetGlobalPositionOffsetForRecordedVehiclePlayback(int _vehicle, floa } public void SetShouldLerpFromAiToFullRecording(IVehicle vehicle, bool p1) => SetShouldLerpFromAiToFullRecording(vehicle.ScriptId, p1); - public void SetShouldLerpFromAiToFullRecording(int _vehicle, bool _p1) + public void SetShouldLerpFromAiToFullRecording(uint _vehicle, bool _p1) { unsafe { - if (fn__setShouldLerpFromAiToFullRecording == null) fn__setShouldLerpFromAiToFullRecording = (delegate* unmanaged[Cdecl]) funcTable[0x063AE2B2CC273588UL]; + if (fn__setShouldLerpFromAiToFullRecording == null) fn__setShouldLerpFromAiToFullRecording = (delegate* unmanaged[Cdecl]) funcTable[0x063AE2B2CC273588UL]; var success = false; fn__setShouldLerpFromAiToFullRecording(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98252,10 +98239,10 @@ public void SetShouldLerpFromAiToFullRecording(int _vehicle, bool _p1) } public void ExplodeVehicleInCutscene(IVehicle vehicle, bool p1) => ExplodeVehicleInCutscene(vehicle.ScriptId, p1); - public void ExplodeVehicleInCutscene(int _vehicle, bool _p1) + public void ExplodeVehicleInCutscene(uint _vehicle, bool _p1) { unsafe { - if (fn__explodeVehicleInCutscene == null) fn__explodeVehicleInCutscene = (delegate* unmanaged[Cdecl]) funcTable[0x786A4EB67B01BF0BUL]; + if (fn__explodeVehicleInCutscene == null) fn__explodeVehicleInCutscene = (delegate* unmanaged[Cdecl]) funcTable[0x786A4EB67B01BF0BUL]; var success = false; fn__explodeVehicleInCutscene(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98282,10 +98269,10 @@ public void SetVehicleModelIsSuppressed(uint _model, bool _suppressed) } } - public int GetRandomVehicleInSphere(float _x, float _y, float _z, float _radius, uint _modelHash, int _flags) + public uint GetRandomVehicleInSphere(float _x, float _y, float _z, float _radius, uint _modelHash, int _flags) { unsafe { - if (fn__getRandomVehicleInSphere == null) fn__getRandomVehicleInSphere = (delegate* unmanaged[Cdecl]) funcTable[0x386F6CE5BAF6091CUL]; + if (fn__getRandomVehicleInSphere == null) fn__getRandomVehicleInSphere = (delegate* unmanaged[Cdecl]) funcTable[0x386F6CE5BAF6091CUL]; var success = false; var result = fn__getRandomVehicleInSphere(&success, _x, _y, _z, _radius, _modelHash, _flags); if (!success) throw new Exception("Native execution failed"); @@ -98293,10 +98280,10 @@ public int GetRandomVehicleInSphere(float _x, float _y, float _z, float _radius, } } - public int GetRandomVehicleFrontBumperInSphere(float _p0, float _p1, float _p2, float _p3, int _p4, int _p5, int _p6) + public uint GetRandomVehicleFrontBumperInSphere(float _p0, float _p1, float _p2, float _p3, int _p4, int _p5, int _p6) { unsafe { - if (fn__getRandomVehicleFrontBumperInSphere == null) fn__getRandomVehicleFrontBumperInSphere = (delegate* unmanaged[Cdecl]) funcTable[0xC5574E0AEB86BA68UL]; + if (fn__getRandomVehicleFrontBumperInSphere == null) fn__getRandomVehicleFrontBumperInSphere = (delegate* unmanaged[Cdecl]) funcTable[0xC5574E0AEB86BA68UL]; var success = false; var result = fn__getRandomVehicleFrontBumperInSphere(&success, _p0, _p1, _p2, _p3, _p4, _p5, _p6); if (!success) throw new Exception("Native execution failed"); @@ -98304,10 +98291,10 @@ public int GetRandomVehicleFrontBumperInSphere(float _p0, float _p1, float _p2, } } - public int GetRandomVehicleBackBumperInSphere(float _p0, float _p1, float _p2, float _p3, int _p4, int _p5, int _p6) + public uint GetRandomVehicleBackBumperInSphere(float _p0, float _p1, float _p2, float _p3, int _p4, int _p5, int _p6) { unsafe { - if (fn__getRandomVehicleBackBumperInSphere == null) fn__getRandomVehicleBackBumperInSphere = (delegate* unmanaged[Cdecl]) funcTable[0xB50807EABE20A8DCUL]; + if (fn__getRandomVehicleBackBumperInSphere == null) fn__getRandomVehicleBackBumperInSphere = (delegate* unmanaged[Cdecl]) funcTable[0xB50807EABE20A8DCUL]; var success = false; var result = fn__getRandomVehicleBackBumperInSphere(&success, _p0, _p1, _p2, _p3, _p4, _p5, _p6); if (!success) throw new Exception("Native execution failed"); @@ -98315,10 +98302,10 @@ public int GetRandomVehicleBackBumperInSphere(float _p0, float _p1, float _p2, f } } - public int GetClosestVehicle(float _x, float _y, float _z, float _radius, uint _modelHash, int _flags) + public uint GetClosestVehicle(float _x, float _y, float _z, float _radius, uint _modelHash, int _flags) { unsafe { - if (fn__getClosestVehicle == null) fn__getClosestVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xF73EB622C4F1689BUL]; + if (fn__getClosestVehicle == null) fn__getClosestVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xF73EB622C4F1689BUL]; var success = false; var result = fn__getClosestVehicle(&success, _x, _y, _z, _radius, _modelHash, _flags); if (!success) throw new Exception("Native execution failed"); @@ -98326,11 +98313,11 @@ public int GetClosestVehicle(float _x, float _y, float _z, float _radius, uint _ } } - public int GetTrainCarriage(IVehicle train, int trailerNumber) => GetTrainCarriage(train.ScriptId, trailerNumber); - public int GetTrainCarriage(int _train, int _trailerNumber) + public uint GetTrainCarriage(IVehicle train, int trailerNumber) => GetTrainCarriage(train.ScriptId, trailerNumber); + public uint GetTrainCarriage(uint _train, int _trailerNumber) { unsafe { - if (fn__getTrainCarriage == null) fn__getTrainCarriage = (delegate* unmanaged[Cdecl]) funcTable[0x08AAFD0814722BC3UL]; + if (fn__getTrainCarriage == null) fn__getTrainCarriage = (delegate* unmanaged[Cdecl]) funcTable[0x08AAFD0814722BC3UL]; var success = false; var result = fn__getTrainCarriage(&success, _train, _trailerNumber); if (!success) throw new Exception("Native execution failed"); @@ -98339,10 +98326,10 @@ public int GetTrainCarriage(int _train, int _trailerNumber) } public bool IsMissionTrain(IVehicle train) => IsMissionTrain(train.ScriptId); - public bool IsMissionTrain(int _train) + public bool IsMissionTrain(uint _train) { unsafe { - if (fn__isMissionTrain == null) fn__isMissionTrain = (delegate* unmanaged[Cdecl]) funcTable[0xAD464F2E18836BFCUL]; + if (fn__isMissionTrain == null) fn__isMissionTrain = (delegate* unmanaged[Cdecl]) funcTable[0xAD464F2E18836BFCUL]; var success = false; var result = fn__isMissionTrain(&success, _train); if (!success) throw new Exception("Native execution failed"); @@ -98350,10 +98337,10 @@ public bool IsMissionTrain(int _train) } } - public void DeleteMissionTrain(ref int _train) + public void DeleteMissionTrain(ref uint _train) { unsafe { - if (fn__deleteMissionTrain == null) fn__deleteMissionTrain = (delegate* unmanaged[Cdecl]) funcTable[0x5B76B14AE875C795UL]; + if (fn__deleteMissionTrain == null) fn__deleteMissionTrain = (delegate* unmanaged[Cdecl]) funcTable[0x5B76B14AE875C795UL]; var success = false; var ref_train = _train; fn__deleteMissionTrain(&success, &ref_train); @@ -98362,10 +98349,10 @@ public void DeleteMissionTrain(ref int _train) } } - public void SetMissionTrainAsNoLongerNeeded(ref int _train, bool _p1) + public void SetMissionTrainAsNoLongerNeeded(ref uint _train, bool _p1) { unsafe { - if (fn__setMissionTrainAsNoLongerNeeded == null) fn__setMissionTrainAsNoLongerNeeded = (delegate* unmanaged[Cdecl]) funcTable[0xBBE7648349B49BE8UL]; + if (fn__setMissionTrainAsNoLongerNeeded == null) fn__setMissionTrainAsNoLongerNeeded = (delegate* unmanaged[Cdecl]) funcTable[0xBBE7648349B49BE8UL]; var success = false; var ref_train = _train; fn__setMissionTrainAsNoLongerNeeded(&success, &ref_train, (byte) (_p1 ? 1 : 0)); @@ -98375,10 +98362,10 @@ public void SetMissionTrainAsNoLongerNeeded(ref int _train, bool _p1) } public void SetMissionTrainCoords(IVehicle train, float x, float y, float z) => SetMissionTrainCoords(train.ScriptId, x, y, z); - public void SetMissionTrainCoords(int _train, float _x, float _y, float _z) + public void SetMissionTrainCoords(uint _train, float _x, float _y, float _z) { unsafe { - if (fn__setMissionTrainCoords == null) fn__setMissionTrainCoords = (delegate* unmanaged[Cdecl]) funcTable[0x591CA673AA6AB736UL]; + if (fn__setMissionTrainCoords == null) fn__setMissionTrainCoords = (delegate* unmanaged[Cdecl]) funcTable[0x591CA673AA6AB736UL]; var success = false; fn__setMissionTrainCoords(&success, _train, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); @@ -98507,10 +98494,10 @@ public bool IsThisModelAnAmphibiousQuadbike(uint _model) } public void SetHeliBladesFullSpeed(IVehicle vehicle) => SetHeliBladesFullSpeed(vehicle.ScriptId); - public void SetHeliBladesFullSpeed(int _vehicle) + public void SetHeliBladesFullSpeed(uint _vehicle) { unsafe { - if (fn__setHeliBladesFullSpeed == null) fn__setHeliBladesFullSpeed = (delegate* unmanaged[Cdecl]) funcTable[0xA178472EBB8AE60DUL]; + if (fn__setHeliBladesFullSpeed == null) fn__setHeliBladesFullSpeed = (delegate* unmanaged[Cdecl]) funcTable[0xA178472EBB8AE60DUL]; var success = false; fn__setHeliBladesFullSpeed(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -98518,10 +98505,10 @@ public void SetHeliBladesFullSpeed(int _vehicle) } public void SetHeliBladesSpeed(IVehicle vehicle, float speed) => SetHeliBladesSpeed(vehicle.ScriptId, speed); - public void SetHeliBladesSpeed(int _vehicle, float _speed) + public void SetHeliBladesSpeed(uint _vehicle, float _speed) { unsafe { - if (fn__setHeliBladesSpeed == null) fn__setHeliBladesSpeed = (delegate* unmanaged[Cdecl]) funcTable[0xFD280B4D7F3ABC4DUL]; + if (fn__setHeliBladesSpeed == null) fn__setHeliBladesSpeed = (delegate* unmanaged[Cdecl]) funcTable[0xFD280B4D7F3ABC4DUL]; var success = false; fn__setHeliBladesSpeed(&success, _vehicle, _speed); if (!success) throw new Exception("Native execution failed"); @@ -98529,10 +98516,10 @@ public void SetHeliBladesSpeed(int _vehicle, float _speed) } public void ForceSubThrottleForTime(IVehicle vehicle, float p1, float p2) => ForceSubThrottleForTime(vehicle.ScriptId, p1, p2); - public void ForceSubThrottleForTime(int _vehicle, float _p1, float _p2) + public void ForceSubThrottleForTime(uint _vehicle, float _p1, float _p2) { unsafe { - if (fn__forceSubThrottleForTime == null) fn__forceSubThrottleForTime = (delegate* unmanaged[Cdecl]) funcTable[0x99CAD8E7AFDB60FAUL]; + if (fn__forceSubThrottleForTime == null) fn__forceSubThrottleForTime = (delegate* unmanaged[Cdecl]) funcTable[0x99CAD8E7AFDB60FAUL]; var success = false; fn__forceSubThrottleForTime(&success, _vehicle, _p1, _p2); if (!success) throw new Exception("Native execution failed"); @@ -98540,10 +98527,10 @@ public void ForceSubThrottleForTime(int _vehicle, float _p1, float _p2) } public void SetVehicleCanBeTargetted(IVehicle vehicle, bool state) => SetVehicleCanBeTargetted(vehicle.ScriptId, state); - public void SetVehicleCanBeTargetted(int _vehicle, bool _state) + public void SetVehicleCanBeTargetted(uint _vehicle, bool _state) { unsafe { - if (fn__setVehicleCanBeTargetted == null) fn__setVehicleCanBeTargetted = (delegate* unmanaged[Cdecl]) funcTable[0x3750146A28097A82UL]; + if (fn__setVehicleCanBeTargetted == null) fn__setVehicleCanBeTargetted = (delegate* unmanaged[Cdecl]) funcTable[0x3750146A28097A82UL]; var success = false; fn__setVehicleCanBeTargetted(&success, _vehicle, (byte) (_state ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98551,10 +98538,10 @@ public void SetVehicleCanBeTargetted(int _vehicle, bool _state) } public void SetDontAllowPlayerToEnterVehicleIfLockedForPlayer(IVehicle vehicle, bool p1) => SetDontAllowPlayerToEnterVehicleIfLockedForPlayer(vehicle.ScriptId, p1); - public void SetDontAllowPlayerToEnterVehicleIfLockedForPlayer(int _vehicle, bool _p1) + public void SetDontAllowPlayerToEnterVehicleIfLockedForPlayer(uint _vehicle, bool _p1) { unsafe { - if (fn__setDontAllowPlayerToEnterVehicleIfLockedForPlayer == null) fn__setDontAllowPlayerToEnterVehicleIfLockedForPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xDBC631F109350B8CUL]; + if (fn__setDontAllowPlayerToEnterVehicleIfLockedForPlayer == null) fn__setDontAllowPlayerToEnterVehicleIfLockedForPlayer = (delegate* unmanaged[Cdecl]) funcTable[0xDBC631F109350B8CUL]; var success = false; fn__setDontAllowPlayerToEnterVehicleIfLockedForPlayer(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98562,10 +98549,10 @@ public void SetDontAllowPlayerToEnterVehicleIfLockedForPlayer(int _vehicle, bool } public void SetVehicleCanBeVisiblyDamaged(IVehicle vehicle, bool state) => SetVehicleCanBeVisiblyDamaged(vehicle.ScriptId, state); - public void SetVehicleCanBeVisiblyDamaged(int _vehicle, bool _state) + public void SetVehicleCanBeVisiblyDamaged(uint _vehicle, bool _state) { unsafe { - if (fn__setVehicleCanBeVisiblyDamaged == null) fn__setVehicleCanBeVisiblyDamaged = (delegate* unmanaged[Cdecl]) funcTable[0x4C7028F78FFD3681UL]; + if (fn__setVehicleCanBeVisiblyDamaged == null) fn__setVehicleCanBeVisiblyDamaged = (delegate* unmanaged[Cdecl]) funcTable[0x4C7028F78FFD3681UL]; var success = false; fn__setVehicleCanBeVisiblyDamaged(&success, _vehicle, (byte) (_state ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98573,10 +98560,10 @@ public void SetVehicleCanBeVisiblyDamaged(int _vehicle, bool _state) } public void SetVehicleHasUnbreakableLights(IVehicle vehicle, bool toggle) => SetVehicleHasUnbreakableLights(vehicle.ScriptId, toggle); - public void SetVehicleHasUnbreakableLights(int _vehicle, bool _toggle) + public void SetVehicleHasUnbreakableLights(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleHasUnbreakableLights == null) fn__setVehicleHasUnbreakableLights = (delegate* unmanaged[Cdecl]) funcTable[0x1AA8A837D2169D94UL]; + if (fn__setVehicleHasUnbreakableLights == null) fn__setVehicleHasUnbreakableLights = (delegate* unmanaged[Cdecl]) funcTable[0x1AA8A837D2169D94UL]; var success = false; fn__setVehicleHasUnbreakableLights(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98584,10 +98571,10 @@ public void SetVehicleHasUnbreakableLights(int _vehicle, bool _toggle) } public void SetVehicleRespectsLocksWhenHasDriver(IVehicle vehicle, bool p1) => SetVehicleRespectsLocksWhenHasDriver(vehicle.ScriptId, p1); - public void SetVehicleRespectsLocksWhenHasDriver(int _vehicle, bool _p1) + public void SetVehicleRespectsLocksWhenHasDriver(uint _vehicle, bool _p1) { unsafe { - if (fn__setVehicleRespectsLocksWhenHasDriver == null) fn__setVehicleRespectsLocksWhenHasDriver = (delegate* unmanaged[Cdecl]) funcTable[0x2311DD7159F00582UL]; + if (fn__setVehicleRespectsLocksWhenHasDriver == null) fn__setVehicleRespectsLocksWhenHasDriver = (delegate* unmanaged[Cdecl]) funcTable[0x2311DD7159F00582UL]; var success = false; fn__setVehicleRespectsLocksWhenHasDriver(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98605,10 +98592,10 @@ public void SetVehicleCanEjectPassengersIfLocked(int _p0, int _p1) } public float GetVehicleDirtLevel(IVehicle vehicle) => GetVehicleDirtLevel(vehicle.ScriptId); - public float GetVehicleDirtLevel(int _vehicle) + public float GetVehicleDirtLevel(uint _vehicle) { unsafe { - if (fn__getVehicleDirtLevel == null) fn__getVehicleDirtLevel = (delegate* unmanaged[Cdecl]) funcTable[0x8F17BC8BA08DA62BUL]; + if (fn__getVehicleDirtLevel == null) fn__getVehicleDirtLevel = (delegate* unmanaged[Cdecl]) funcTable[0x8F17BC8BA08DA62BUL]; var success = false; var result = fn__getVehicleDirtLevel(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -98617,10 +98604,10 @@ public float GetVehicleDirtLevel(int _vehicle) } public void SetVehicleDirtLevel(IVehicle vehicle, float dirtLevel) => SetVehicleDirtLevel(vehicle.ScriptId, dirtLevel); - public void SetVehicleDirtLevel(int _vehicle, float _dirtLevel) + public void SetVehicleDirtLevel(uint _vehicle, float _dirtLevel) { unsafe { - if (fn__setVehicleDirtLevel == null) fn__setVehicleDirtLevel = (delegate* unmanaged[Cdecl]) funcTable[0x79D3B596FE44EE8BUL]; + if (fn__setVehicleDirtLevel == null) fn__setVehicleDirtLevel = (delegate* unmanaged[Cdecl]) funcTable[0x79D3B596FE44EE8BUL]; var success = false; fn__setVehicleDirtLevel(&success, _vehicle, _dirtLevel); if (!success) throw new Exception("Native execution failed"); @@ -98628,10 +98615,10 @@ public void SetVehicleDirtLevel(int _vehicle, float _dirtLevel) } public bool GetDoesVehicleHaveDamageDecals(IVehicle vehicle) => GetDoesVehicleHaveDamageDecals(vehicle.ScriptId); - public bool GetDoesVehicleHaveDamageDecals(int _vehicle) + public bool GetDoesVehicleHaveDamageDecals(uint _vehicle) { unsafe { - if (fn__getDoesVehicleHaveDamageDecals == null) fn__getDoesVehicleHaveDamageDecals = (delegate* unmanaged[Cdecl]) funcTable[0xBCDC5017D3CE1E9EUL]; + if (fn__getDoesVehicleHaveDamageDecals == null) fn__getDoesVehicleHaveDamageDecals = (delegate* unmanaged[Cdecl]) funcTable[0xBCDC5017D3CE1E9EUL]; var success = false; var result = fn__getDoesVehicleHaveDamageDecals(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -98640,10 +98627,10 @@ public bool GetDoesVehicleHaveDamageDecals(int _vehicle) } public bool IsVehicleDoorFullyOpen(IVehicle vehicle, int doorId) => IsVehicleDoorFullyOpen(vehicle.ScriptId, doorId); - public bool IsVehicleDoorFullyOpen(int _vehicle, int _doorId) + public bool IsVehicleDoorFullyOpen(uint _vehicle, int _doorId) { unsafe { - if (fn__isVehicleDoorFullyOpen == null) fn__isVehicleDoorFullyOpen = (delegate* unmanaged[Cdecl]) funcTable[0x3E933CFF7B111C22UL]; + if (fn__isVehicleDoorFullyOpen == null) fn__isVehicleDoorFullyOpen = (delegate* unmanaged[Cdecl]) funcTable[0x3E933CFF7B111C22UL]; var success = false; var result = fn__isVehicleDoorFullyOpen(&success, _vehicle, _doorId); if (!success) throw new Exception("Native execution failed"); @@ -98652,10 +98639,10 @@ public bool IsVehicleDoorFullyOpen(int _vehicle, int _doorId) } public void SetVehicleEngineOn(IVehicle vehicle, bool value, bool instantly, bool disableAutoStart) => SetVehicleEngineOn(vehicle.ScriptId, value, instantly, disableAutoStart); - public void SetVehicleEngineOn(int _vehicle, bool _value, bool _instantly, bool _disableAutoStart) + public void SetVehicleEngineOn(uint _vehicle, bool _value, bool _instantly, bool _disableAutoStart) { unsafe { - if (fn__setVehicleEngineOn == null) fn__setVehicleEngineOn = (delegate* unmanaged[Cdecl]) funcTable[0x2497C4717C8B881EUL]; + if (fn__setVehicleEngineOn == null) fn__setVehicleEngineOn = (delegate* unmanaged[Cdecl]) funcTable[0x2497C4717C8B881EUL]; var success = false; fn__setVehicleEngineOn(&success, _vehicle, (byte) (_value ? 1 : 0), (byte) (_instantly ? 1 : 0), (byte) (_disableAutoStart ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98663,10 +98650,10 @@ public void SetVehicleEngineOn(int _vehicle, bool _value, bool _instantly, bool } public void SetVehicleUndriveable(IVehicle vehicle, bool toggle) => SetVehicleUndriveable(vehicle.ScriptId, toggle); - public void SetVehicleUndriveable(int _vehicle, bool _toggle) + public void SetVehicleUndriveable(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleUndriveable == null) fn__setVehicleUndriveable = (delegate* unmanaged[Cdecl]) funcTable[0x8ABA6AF54B942B95UL]; + if (fn__setVehicleUndriveable == null) fn__setVehicleUndriveable = (delegate* unmanaged[Cdecl]) funcTable[0x8ABA6AF54B942B95UL]; var success = false; fn__setVehicleUndriveable(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98674,10 +98661,10 @@ public void SetVehicleUndriveable(int _vehicle, bool _toggle) } public void SetVehicleProvidesCover(IVehicle vehicle, bool toggle) => SetVehicleProvidesCover(vehicle.ScriptId, toggle); - public void SetVehicleProvidesCover(int _vehicle, bool _toggle) + public void SetVehicleProvidesCover(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleProvidesCover == null) fn__setVehicleProvidesCover = (delegate* unmanaged[Cdecl]) funcTable[0x5AFEEDD9BB2899D7UL]; + if (fn__setVehicleProvidesCover == null) fn__setVehicleProvidesCover = (delegate* unmanaged[Cdecl]) funcTable[0x5AFEEDD9BB2899D7UL]; var success = false; fn__setVehicleProvidesCover(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98685,10 +98672,10 @@ public void SetVehicleProvidesCover(int _vehicle, bool _toggle) } public void SetVehicleDoorControl(IVehicle vehicle, int doorId, int speed, float angle) => SetVehicleDoorControl(vehicle.ScriptId, doorId, speed, angle); - public void SetVehicleDoorControl(int _vehicle, int _doorId, int _speed, float _angle) + public void SetVehicleDoorControl(uint _vehicle, int _doorId, int _speed, float _angle) { unsafe { - if (fn__setVehicleDoorControl == null) fn__setVehicleDoorControl = (delegate* unmanaged[Cdecl]) funcTable[0xF2BFA0430F0A0FCBUL]; + if (fn__setVehicleDoorControl == null) fn__setVehicleDoorControl = (delegate* unmanaged[Cdecl]) funcTable[0xF2BFA0430F0A0FCBUL]; var success = false; fn__setVehicleDoorControl(&success, _vehicle, _doorId, _speed, _angle); if (!success) throw new Exception("Native execution failed"); @@ -98696,10 +98683,10 @@ public void SetVehicleDoorControl(int _vehicle, int _doorId, int _speed, float _ } public void SetVehicleDoorLatched(IVehicle vehicle, int doorId, bool p2, bool p3, bool p4) => SetVehicleDoorLatched(vehicle.ScriptId, doorId, p2, p3, p4); - public void SetVehicleDoorLatched(int _vehicle, int _doorId, bool _p2, bool _p3, bool _p4) + public void SetVehicleDoorLatched(uint _vehicle, int _doorId, bool _p2, bool _p3, bool _p4) { unsafe { - if (fn__setVehicleDoorLatched == null) fn__setVehicleDoorLatched = (delegate* unmanaged[Cdecl]) funcTable[0xA5A9653A8D2CAF48UL]; + if (fn__setVehicleDoorLatched == null) fn__setVehicleDoorLatched = (delegate* unmanaged[Cdecl]) funcTable[0xA5A9653A8D2CAF48UL]; var success = false; fn__setVehicleDoorLatched(&success, _vehicle, _doorId, (byte) (_p2 ? 1 : 0), (byte) (_p3 ? 1 : 0), (byte) (_p4 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98707,10 +98694,10 @@ public void SetVehicleDoorLatched(int _vehicle, int _doorId, bool _p2, bool _p3, } public float GetVehicleDoorAngleRatio(IVehicle vehicle, int doorId) => GetVehicleDoorAngleRatio(vehicle.ScriptId, doorId); - public float GetVehicleDoorAngleRatio(int _vehicle, int _doorId) + public float GetVehicleDoorAngleRatio(uint _vehicle, int _doorId) { unsafe { - if (fn__getVehicleDoorAngleRatio == null) fn__getVehicleDoorAngleRatio = (delegate* unmanaged[Cdecl]) funcTable[0xFE3F9C29F7B32BD5UL]; + if (fn__getVehicleDoorAngleRatio == null) fn__getVehicleDoorAngleRatio = (delegate* unmanaged[Cdecl]) funcTable[0xFE3F9C29F7B32BD5UL]; var success = false; var result = fn__getVehicleDoorAngleRatio(&success, _vehicle, _doorId); if (!success) throw new Exception("Native execution failed"); @@ -98718,11 +98705,11 @@ public float GetVehicleDoorAngleRatio(int _vehicle, int _doorId) } } - public int GetPedUsingVehicleDoor(IVehicle vehicle, int doord) => GetPedUsingVehicleDoor(vehicle.ScriptId, doord); - public int GetPedUsingVehicleDoor(int _vehicle, int _doord) + public uint GetPedUsingVehicleDoor(IVehicle vehicle, int doord) => GetPedUsingVehicleDoor(vehicle.ScriptId, doord); + public uint GetPedUsingVehicleDoor(uint _vehicle, int _doord) { unsafe { - if (fn__getPedUsingVehicleDoor == null) fn__getPedUsingVehicleDoor = (delegate* unmanaged[Cdecl]) funcTable[0x218297BF0CFD853BUL]; + if (fn__getPedUsingVehicleDoor == null) fn__getPedUsingVehicleDoor = (delegate* unmanaged[Cdecl]) funcTable[0x218297BF0CFD853BUL]; var success = false; var result = fn__getPedUsingVehicleDoor(&success, _vehicle, _doord); if (!success) throw new Exception("Native execution failed"); @@ -98731,10 +98718,10 @@ public int GetPedUsingVehicleDoor(int _vehicle, int _doord) } public void SetVehicleDoorShut(IVehicle vehicle, int doorId, bool closeInstantly) => SetVehicleDoorShut(vehicle.ScriptId, doorId, closeInstantly); - public void SetVehicleDoorShut(int _vehicle, int _doorId, bool _closeInstantly) + public void SetVehicleDoorShut(uint _vehicle, int _doorId, bool _closeInstantly) { unsafe { - if (fn__setVehicleDoorShut == null) fn__setVehicleDoorShut = (delegate* unmanaged[Cdecl]) funcTable[0x93D9BD300D7789E5UL]; + if (fn__setVehicleDoorShut == null) fn__setVehicleDoorShut = (delegate* unmanaged[Cdecl]) funcTable[0x93D9BD300D7789E5UL]; var success = false; fn__setVehicleDoorShut(&success, _vehicle, _doorId, (byte) (_closeInstantly ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98742,10 +98729,10 @@ public void SetVehicleDoorShut(int _vehicle, int _doorId, bool _closeInstantly) } public void SetVehicleDoorBroken(IVehicle vehicle, int doorId, bool deleteDoor) => SetVehicleDoorBroken(vehicle.ScriptId, doorId, deleteDoor); - public void SetVehicleDoorBroken(int _vehicle, int _doorId, bool _deleteDoor) + public void SetVehicleDoorBroken(uint _vehicle, int _doorId, bool _deleteDoor) { unsafe { - if (fn__setVehicleDoorBroken == null) fn__setVehicleDoorBroken = (delegate* unmanaged[Cdecl]) funcTable[0xD4D4F6A4AB575A33UL]; + if (fn__setVehicleDoorBroken == null) fn__setVehicleDoorBroken = (delegate* unmanaged[Cdecl]) funcTable[0xD4D4F6A4AB575A33UL]; var success = false; fn__setVehicleDoorBroken(&success, _vehicle, _doorId, (byte) (_deleteDoor ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98753,10 +98740,10 @@ public void SetVehicleDoorBroken(int _vehicle, int _doorId, bool _deleteDoor) } public void SetVehicleCanBreak(IVehicle vehicle, bool toggle) => SetVehicleCanBreak(vehicle.ScriptId, toggle); - public void SetVehicleCanBreak(int _vehicle, bool _toggle) + public void SetVehicleCanBreak(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleCanBreak == null) fn__setVehicleCanBreak = (delegate* unmanaged[Cdecl]) funcTable[0x59BF8C3D52C92F66UL]; + if (fn__setVehicleCanBreak == null) fn__setVehicleCanBreak = (delegate* unmanaged[Cdecl]) funcTable[0x59BF8C3D52C92F66UL]; var success = false; fn__setVehicleCanBreak(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98764,10 +98751,10 @@ public void SetVehicleCanBreak(int _vehicle, bool _toggle) } public bool DoesVehicleHaveRoof(IVehicle vehicle) => DoesVehicleHaveRoof(vehicle.ScriptId); - public bool DoesVehicleHaveRoof(int _vehicle) + public bool DoesVehicleHaveRoof(uint _vehicle) { unsafe { - if (fn__doesVehicleHaveRoof == null) fn__doesVehicleHaveRoof = (delegate* unmanaged[Cdecl]) funcTable[0x8AC862B0B32C5B80UL]; + if (fn__doesVehicleHaveRoof == null) fn__doesVehicleHaveRoof = (delegate* unmanaged[Cdecl]) funcTable[0x8AC862B0B32C5B80UL]; var success = false; var result = fn__doesVehicleHaveRoof(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -98806,10 +98793,10 @@ public void SetCarjackMissionRemovalParameters(int _p0, int _p1) } public bool IsBigVehicle(IVehicle vehicle) => IsBigVehicle(vehicle.ScriptId); - public bool IsBigVehicle(int _vehicle) + public bool IsBigVehicle(uint _vehicle) { unsafe { - if (fn__isBigVehicle == null) fn__isBigVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x9F243D3919F442FEUL]; + if (fn__isBigVehicle == null) fn__isBigVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x9F243D3919F442FEUL]; var success = false; var result = fn__isBigVehicle(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -98818,10 +98805,10 @@ public bool IsBigVehicle(int _vehicle) } public int GetNumberOfVehicleColours(IVehicle vehicle) => GetNumberOfVehicleColours(vehicle.ScriptId); - public int GetNumberOfVehicleColours(int _vehicle) + public int GetNumberOfVehicleColours(uint _vehicle) { unsafe { - if (fn__getNumberOfVehicleColours == null) fn__getNumberOfVehicleColours = (delegate* unmanaged[Cdecl]) funcTable[0x3B963160CD65D41EUL]; + if (fn__getNumberOfVehicleColours == null) fn__getNumberOfVehicleColours = (delegate* unmanaged[Cdecl]) funcTable[0x3B963160CD65D41EUL]; var success = false; var result = fn__getNumberOfVehicleColours(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -98830,10 +98817,10 @@ public int GetNumberOfVehicleColours(int _vehicle) } public void SetVehicleColourCombination(IVehicle vehicle, int colorCombination) => SetVehicleColourCombination(vehicle.ScriptId, colorCombination); - public void SetVehicleColourCombination(int _vehicle, int _colorCombination) + public void SetVehicleColourCombination(uint _vehicle, int _colorCombination) { unsafe { - if (fn__setVehicleColourCombination == null) fn__setVehicleColourCombination = (delegate* unmanaged[Cdecl]) funcTable[0x33E8CD3322E2FE31UL]; + if (fn__setVehicleColourCombination == null) fn__setVehicleColourCombination = (delegate* unmanaged[Cdecl]) funcTable[0x33E8CD3322E2FE31UL]; var success = false; fn__setVehicleColourCombination(&success, _vehicle, _colorCombination); if (!success) throw new Exception("Native execution failed"); @@ -98841,10 +98828,10 @@ public void SetVehicleColourCombination(int _vehicle, int _colorCombination) } public int GetVehicleColourCombination(IVehicle vehicle) => GetVehicleColourCombination(vehicle.ScriptId); - public int GetVehicleColourCombination(int _vehicle) + public int GetVehicleColourCombination(uint _vehicle) { unsafe { - if (fn__getVehicleColourCombination == null) fn__getVehicleColourCombination = (delegate* unmanaged[Cdecl]) funcTable[0x6A842D197F845D56UL]; + if (fn__getVehicleColourCombination == null) fn__getVehicleColourCombination = (delegate* unmanaged[Cdecl]) funcTable[0x6A842D197F845D56UL]; var success = false; var result = fn__getVehicleColourCombination(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -98853,10 +98840,10 @@ public int GetVehicleColourCombination(int _vehicle) } public void SetVehicleXenonLightColorIndex(IVehicle vehicle, int colorIndex) => SetVehicleXenonLightColorIndex(vehicle.ScriptId, colorIndex); - public void SetVehicleXenonLightColorIndex(int _vehicle, int _colorIndex) + public void SetVehicleXenonLightColorIndex(uint _vehicle, int _colorIndex) { unsafe { - if (fn__setVehicleXenonLightColorIndex == null) fn__setVehicleXenonLightColorIndex = (delegate* unmanaged[Cdecl]) funcTable[0xE41033B25D003A07UL]; + if (fn__setVehicleXenonLightColorIndex == null) fn__setVehicleXenonLightColorIndex = (delegate* unmanaged[Cdecl]) funcTable[0xE41033B25D003A07UL]; var success = false; fn__setVehicleXenonLightColorIndex(&success, _vehicle, _colorIndex); if (!success) throw new Exception("Native execution failed"); @@ -98864,10 +98851,10 @@ public void SetVehicleXenonLightColorIndex(int _vehicle, int _colorIndex) } public int GetVehicleXenonLightColorIndex(IVehicle vehicle) => GetVehicleXenonLightColorIndex(vehicle.ScriptId); - public int GetVehicleXenonLightColorIndex(int _vehicle) + public int GetVehicleXenonLightColorIndex(uint _vehicle) { unsafe { - if (fn__getVehicleXenonLightColorIndex == null) fn__getVehicleXenonLightColorIndex = (delegate* unmanaged[Cdecl]) funcTable[0x3DFF319A831E0CDBUL]; + if (fn__getVehicleXenonLightColorIndex == null) fn__getVehicleXenonLightColorIndex = (delegate* unmanaged[Cdecl]) funcTable[0x3DFF319A831E0CDBUL]; var success = false; var result = fn__getVehicleXenonLightColorIndex(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -98876,10 +98863,10 @@ public int GetVehicleXenonLightColorIndex(int _vehicle) } public void SetVehicleIsConsideredByPlayer(IVehicle vehicle, bool toggle) => SetVehicleIsConsideredByPlayer(vehicle.ScriptId, toggle); - public void SetVehicleIsConsideredByPlayer(int _vehicle, bool _toggle) + public void SetVehicleIsConsideredByPlayer(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleIsConsideredByPlayer == null) fn__setVehicleIsConsideredByPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x31B927BBC44156CDUL]; + if (fn__setVehicleIsConsideredByPlayer == null) fn__setVehicleIsConsideredByPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x31B927BBC44156CDUL]; var success = false; fn__setVehicleIsConsideredByPlayer(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98887,10 +98874,10 @@ public void SetVehicleIsConsideredByPlayer(int _vehicle, bool _toggle) } public void SetVehicleWillForceOtherVehiclesToStop(IVehicle vehicle, bool toggle) => SetVehicleWillForceOtherVehiclesToStop(vehicle.ScriptId, toggle); - public void SetVehicleWillForceOtherVehiclesToStop(int _vehicle, bool _toggle) + public void SetVehicleWillForceOtherVehiclesToStop(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleWillForceOtherVehiclesToStop == null) fn__setVehicleWillForceOtherVehiclesToStop = (delegate* unmanaged[Cdecl]) funcTable[0xBE5C1255A1830FF5UL]; + if (fn__setVehicleWillForceOtherVehiclesToStop == null) fn__setVehicleWillForceOtherVehiclesToStop = (delegate* unmanaged[Cdecl]) funcTable[0xBE5C1255A1830FF5UL]; var success = false; fn__setVehicleWillForceOtherVehiclesToStop(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98898,10 +98885,10 @@ public void SetVehicleWillForceOtherVehiclesToStop(int _vehicle, bool _toggle) } public void SetVehicleActAsIfHasSirenOn(IVehicle vehicle, bool p1) => SetVehicleActAsIfHasSirenOn(vehicle.ScriptId, p1); - public void SetVehicleActAsIfHasSirenOn(int _vehicle, bool _p1) + public void SetVehicleActAsIfHasSirenOn(uint _vehicle, bool _p1) { unsafe { - if (fn__setVehicleActAsIfHasSirenOn == null) fn__setVehicleActAsIfHasSirenOn = (delegate* unmanaged[Cdecl]) funcTable[0x9BECD4B9FEF3F8A6UL]; + if (fn__setVehicleActAsIfHasSirenOn == null) fn__setVehicleActAsIfHasSirenOn = (delegate* unmanaged[Cdecl]) funcTable[0x9BECD4B9FEF3F8A6UL]; var success = false; fn__setVehicleActAsIfHasSirenOn(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98909,10 +98896,10 @@ public void SetVehicleActAsIfHasSirenOn(int _vehicle, bool _p1) } public void SetVehicleUseMoreRestrictiveSpawnChecks(IVehicle vehicle, bool p1) => SetVehicleUseMoreRestrictiveSpawnChecks(vehicle.ScriptId, p1); - public void SetVehicleUseMoreRestrictiveSpawnChecks(int _vehicle, bool _p1) + public void SetVehicleUseMoreRestrictiveSpawnChecks(uint _vehicle, bool _p1) { unsafe { - if (fn__setVehicleUseMoreRestrictiveSpawnChecks == null) fn__setVehicleUseMoreRestrictiveSpawnChecks = (delegate* unmanaged[Cdecl]) funcTable[0x88BC673CA9E0AE99UL]; + if (fn__setVehicleUseMoreRestrictiveSpawnChecks == null) fn__setVehicleUseMoreRestrictiveSpawnChecks = (delegate* unmanaged[Cdecl]) funcTable[0x88BC673CA9E0AE99UL]; var success = false; fn__setVehicleUseMoreRestrictiveSpawnChecks(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98920,10 +98907,10 @@ public void SetVehicleUseMoreRestrictiveSpawnChecks(int _vehicle, bool _p1) } public void SetVehicleMayBeUsedByGotoPointAnyMeans(IVehicle vehicle, bool p1) => SetVehicleMayBeUsedByGotoPointAnyMeans(vehicle.ScriptId, p1); - public void SetVehicleMayBeUsedByGotoPointAnyMeans(int _vehicle, bool _p1) + public void SetVehicleMayBeUsedByGotoPointAnyMeans(uint _vehicle, bool _p1) { unsafe { - if (fn__setVehicleMayBeUsedByGotoPointAnyMeans == null) fn__setVehicleMayBeUsedByGotoPointAnyMeans = (delegate* unmanaged[Cdecl]) funcTable[0xE851E480B814D4BAUL]; + if (fn__setVehicleMayBeUsedByGotoPointAnyMeans == null) fn__setVehicleMayBeUsedByGotoPointAnyMeans = (delegate* unmanaged[Cdecl]) funcTable[0xE851E480B814D4BAUL]; var success = false; fn__setVehicleMayBeUsedByGotoPointAnyMeans(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98945,10 +98932,10 @@ public void GetRandomVehicleModelInMemory(bool _p0, ref uint _modelHash, ref int } public int GetVehicleDoorLockStatus(IVehicle vehicle) => GetVehicleDoorLockStatus(vehicle.ScriptId); - public int GetVehicleDoorLockStatus(int _vehicle) + public int GetVehicleDoorLockStatus(uint _vehicle) { unsafe { - if (fn__getVehicleDoorLockStatus == null) fn__getVehicleDoorLockStatus = (delegate* unmanaged[Cdecl]) funcTable[0x25BC98A59C2EA962UL]; + if (fn__getVehicleDoorLockStatus == null) fn__getVehicleDoorLockStatus = (delegate* unmanaged[Cdecl]) funcTable[0x25BC98A59C2EA962UL]; var success = false; var result = fn__getVehicleDoorLockStatus(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -98957,10 +98944,10 @@ public int GetVehicleDoorLockStatus(int _vehicle) } public int GetVehicleIndividualDoorLockStatus(IVehicle vehicle, int doorId) => GetVehicleIndividualDoorLockStatus(vehicle.ScriptId, doorId); - public int GetVehicleIndividualDoorLockStatus(int _vehicle, int _doorId) + public int GetVehicleIndividualDoorLockStatus(uint _vehicle, int _doorId) { unsafe { - if (fn__getVehicleIndividualDoorLockStatus == null) fn__getVehicleIndividualDoorLockStatus = (delegate* unmanaged[Cdecl]) funcTable[0xCA4AC3EAAE46EC7BUL]; + if (fn__getVehicleIndividualDoorLockStatus == null) fn__getVehicleIndividualDoorLockStatus = (delegate* unmanaged[Cdecl]) funcTable[0xCA4AC3EAAE46EC7BUL]; var success = false; var result = fn__getVehicleIndividualDoorLockStatus(&success, _vehicle, _doorId); if (!success) throw new Exception("Native execution failed"); @@ -98969,10 +98956,10 @@ public int GetVehicleIndividualDoorLockStatus(int _vehicle, int _doorId) } public bool IsVehicleDoorDamaged(IVehicle veh, int doorID) => IsVehicleDoorDamaged(veh.ScriptId, doorID); - public bool IsVehicleDoorDamaged(int _veh, int _doorID) + public bool IsVehicleDoorDamaged(uint _veh, int _doorID) { unsafe { - if (fn__isVehicleDoorDamaged == null) fn__isVehicleDoorDamaged = (delegate* unmanaged[Cdecl]) funcTable[0xB8E181E559464527UL]; + if (fn__isVehicleDoorDamaged == null) fn__isVehicleDoorDamaged = (delegate* unmanaged[Cdecl]) funcTable[0xB8E181E559464527UL]; var success = false; var result = fn__isVehicleDoorDamaged(&success, _veh, _doorID); if (!success) throw new Exception("Native execution failed"); @@ -98981,10 +98968,10 @@ public bool IsVehicleDoorDamaged(int _veh, int _doorID) } public void SetDoorAllowedToBeBrokenOff(IVehicle vehicle, int doorId, bool isBreakable) => SetDoorAllowedToBeBrokenOff(vehicle.ScriptId, doorId, isBreakable); - public void SetDoorAllowedToBeBrokenOff(int _vehicle, int _doorId, bool _isBreakable) + public void SetDoorAllowedToBeBrokenOff(uint _vehicle, int _doorId, bool _isBreakable) { unsafe { - if (fn__setDoorAllowedToBeBrokenOff == null) fn__setDoorAllowedToBeBrokenOff = (delegate* unmanaged[Cdecl]) funcTable[0x2FA133A4A9D37ED8UL]; + if (fn__setDoorAllowedToBeBrokenOff == null) fn__setDoorAllowedToBeBrokenOff = (delegate* unmanaged[Cdecl]) funcTable[0x2FA133A4A9D37ED8UL]; var success = false; fn__setDoorAllowedToBeBrokenOff(&success, _vehicle, _doorId, (byte) (_isBreakable ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -98992,10 +98979,10 @@ public void SetDoorAllowedToBeBrokenOff(int _vehicle, int _doorId, bool _isBreak } public bool IsVehicleBumperBouncing(IVehicle vehicle, bool frontBumper) => IsVehicleBumperBouncing(vehicle.ScriptId, frontBumper); - public bool IsVehicleBumperBouncing(int _vehicle, bool _frontBumper) + public bool IsVehicleBumperBouncing(uint _vehicle, bool _frontBumper) { unsafe { - if (fn__isVehicleBumperBouncing == null) fn__isVehicleBumperBouncing = (delegate* unmanaged[Cdecl]) funcTable[0x27B926779DEB502DUL]; + if (fn__isVehicleBumperBouncing == null) fn__isVehicleBumperBouncing = (delegate* unmanaged[Cdecl]) funcTable[0x27B926779DEB502DUL]; var success = false; var result = fn__isVehicleBumperBouncing(&success, _vehicle, (byte) (_frontBumper ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99004,10 +98991,10 @@ public bool IsVehicleBumperBouncing(int _vehicle, bool _frontBumper) } public bool IsVehicleBumperBrokenOff(IVehicle vehicle, bool frontBumper) => IsVehicleBumperBrokenOff(vehicle.ScriptId, frontBumper); - public bool IsVehicleBumperBrokenOff(int _vehicle, bool _frontBumper) + public bool IsVehicleBumperBrokenOff(uint _vehicle, bool _frontBumper) { unsafe { - if (fn__isVehicleBumperBrokenOff == null) fn__isVehicleBumperBrokenOff = (delegate* unmanaged[Cdecl]) funcTable[0x468056A6BB6F3846UL]; + if (fn__isVehicleBumperBrokenOff == null) fn__isVehicleBumperBrokenOff = (delegate* unmanaged[Cdecl]) funcTable[0x468056A6BB6F3846UL]; var success = false; var result = fn__isVehicleBumperBrokenOff(&success, _vehicle, (byte) (_frontBumper ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99027,10 +99014,10 @@ public bool IsCopVehicleInArea3d(float _x1, float _x2, float _y1, float _y2, flo } public bool IsVehicleOnAllWheels(IVehicle vehicle) => IsVehicleOnAllWheels(vehicle.ScriptId); - public bool IsVehicleOnAllWheels(int _vehicle) + public bool IsVehicleOnAllWheels(uint _vehicle) { unsafe { - if (fn__isVehicleOnAllWheels == null) fn__isVehicleOnAllWheels = (delegate* unmanaged[Cdecl]) funcTable[0xB104CD1BABF302E2UL]; + if (fn__isVehicleOnAllWheels == null) fn__isVehicleOnAllWheels = (delegate* unmanaged[Cdecl]) funcTable[0xB104CD1BABF302E2UL]; var success = false; var result = fn__isVehicleOnAllWheels(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -99050,10 +99037,10 @@ public int GetVehicleModelValue(uint _vehicleModel) } public uint GetVehicleLayoutHash(IVehicle vehicle) => GetVehicleLayoutHash(vehicle.ScriptId); - public uint GetVehicleLayoutHash(int _vehicle) + public uint GetVehicleLayoutHash(uint _vehicle) { unsafe { - if (fn__getVehicleLayoutHash == null) fn__getVehicleLayoutHash = (delegate* unmanaged[Cdecl]) funcTable[0x28D37D4F71AC5C58UL]; + if (fn__getVehicleLayoutHash == null) fn__getVehicleLayoutHash = (delegate* unmanaged[Cdecl]) funcTable[0x28D37D4F71AC5C58UL]; var success = false; var result = fn__getVehicleLayoutHash(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -99062,10 +99049,10 @@ public uint GetVehicleLayoutHash(int _vehicle) } public uint GetInVehicleClipsetHashForSeat(IVehicle vehicle, int p1) => GetInVehicleClipsetHashForSeat(vehicle.ScriptId, p1); - public uint GetInVehicleClipsetHashForSeat(int _vehicle, int _p1) + public uint GetInVehicleClipsetHashForSeat(uint _vehicle, int _p1) { unsafe { - if (fn__getInVehicleClipsetHashForSeat == null) fn__getInVehicleClipsetHashForSeat = (delegate* unmanaged[Cdecl]) funcTable[0xA01BC64DD4BFBBACUL]; + if (fn__getInVehicleClipsetHashForSeat == null) fn__getInVehicleClipsetHashForSeat = (delegate* unmanaged[Cdecl]) funcTable[0xA01BC64DD4BFBBACUL]; var success = false; var result = fn__getInVehicleClipsetHashForSeat(&success, _vehicle, _p1); if (!success) throw new Exception("Native execution failed"); @@ -99074,10 +99061,10 @@ public uint GetInVehicleClipsetHashForSeat(int _vehicle, int _p1) } public void SetRenderTrainAsDerailed(IVehicle train, bool toggle) => SetRenderTrainAsDerailed(train.ScriptId, toggle); - public void SetRenderTrainAsDerailed(int _train, bool _toggle) + public void SetRenderTrainAsDerailed(uint _train, bool _toggle) { unsafe { - if (fn__setRenderTrainAsDerailed == null) fn__setRenderTrainAsDerailed = (delegate* unmanaged[Cdecl]) funcTable[0x317B11A312DF5534UL]; + if (fn__setRenderTrainAsDerailed == null) fn__setRenderTrainAsDerailed = (delegate* unmanaged[Cdecl]) funcTable[0x317B11A312DF5534UL]; var success = false; fn__setRenderTrainAsDerailed(&success, _train, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99085,10 +99072,10 @@ public void SetRenderTrainAsDerailed(int _train, bool _toggle) } public void SetVehicleExtraColours(IVehicle vehicle, int pearlescentColor, int wheelColor) => SetVehicleExtraColours(vehicle.ScriptId, pearlescentColor, wheelColor); - public void SetVehicleExtraColours(int _vehicle, int _pearlescentColor, int _wheelColor) + public void SetVehicleExtraColours(uint _vehicle, int _pearlescentColor, int _wheelColor) { unsafe { - if (fn__setVehicleExtraColours == null) fn__setVehicleExtraColours = (delegate* unmanaged[Cdecl]) funcTable[0x2036F561ADD12E33UL]; + if (fn__setVehicleExtraColours == null) fn__setVehicleExtraColours = (delegate* unmanaged[Cdecl]) funcTable[0x2036F561ADD12E33UL]; var success = false; fn__setVehicleExtraColours(&success, _vehicle, _pearlescentColor, _wheelColor); if (!success) throw new Exception("Native execution failed"); @@ -99096,10 +99083,10 @@ public void SetVehicleExtraColours(int _vehicle, int _pearlescentColor, int _whe } public void GetVehicleExtraColours(IVehicle vehicle, ref int pearlescentColor, ref int wheelColor) => GetVehicleExtraColours(vehicle.ScriptId, ref pearlescentColor, ref wheelColor); - public void GetVehicleExtraColours(int _vehicle, ref int _pearlescentColor, ref int _wheelColor) + public void GetVehicleExtraColours(uint _vehicle, ref int _pearlescentColor, ref int _wheelColor) { unsafe { - if (fn__getVehicleExtraColours == null) fn__getVehicleExtraColours = (delegate* unmanaged[Cdecl]) funcTable[0x3BC4245933A166F7UL]; + if (fn__getVehicleExtraColours == null) fn__getVehicleExtraColours = (delegate* unmanaged[Cdecl]) funcTable[0x3BC4245933A166F7UL]; var success = false; var ref_pearlescentColor = _pearlescentColor; var ref_wheelColor = _wheelColor; @@ -99111,10 +99098,10 @@ public void GetVehicleExtraColours(int _vehicle, ref int _pearlescentColor, ref } public void SetVehicleExtraColour5(IVehicle vehicle, int color) => SetVehicleExtraColour5(vehicle.ScriptId, color); - public void SetVehicleExtraColour5(int _vehicle, int _color) + public void SetVehicleExtraColour5(uint _vehicle, int _color) { unsafe { - if (fn__setVehicleExtraColour5 == null) fn__setVehicleExtraColour5 = (delegate* unmanaged[Cdecl]) funcTable[0xF40DD601A65F7F19UL]; + if (fn__setVehicleExtraColour5 == null) fn__setVehicleExtraColour5 = (delegate* unmanaged[Cdecl]) funcTable[0xF40DD601A65F7F19UL]; var success = false; fn__setVehicleExtraColour5(&success, _vehicle, _color); if (!success) throw new Exception("Native execution failed"); @@ -99122,10 +99109,10 @@ public void SetVehicleExtraColour5(int _vehicle, int _color) } public void GetVehicleExtraColour5(IVehicle vehicle, ref int color) => GetVehicleExtraColour5(vehicle.ScriptId, ref color); - public void GetVehicleExtraColour5(int _vehicle, ref int _color) + public void GetVehicleExtraColour5(uint _vehicle, ref int _color) { unsafe { - if (fn__getVehicleExtraColour5 == null) fn__getVehicleExtraColour5 = (delegate* unmanaged[Cdecl]) funcTable[0x7D1464D472D32136UL]; + if (fn__getVehicleExtraColour5 == null) fn__getVehicleExtraColour5 = (delegate* unmanaged[Cdecl]) funcTable[0x7D1464D472D32136UL]; var success = false; var ref_color = _color; fn__getVehicleExtraColour5(&success, _vehicle, &ref_color); @@ -99135,10 +99122,10 @@ public void GetVehicleExtraColour5(int _vehicle, ref int _color) } public void SetVehicleExtraColour6(IVehicle vehicle, int color) => SetVehicleExtraColour6(vehicle.ScriptId, color); - public void SetVehicleExtraColour6(int _vehicle, int _color) + public void SetVehicleExtraColour6(uint _vehicle, int _color) { unsafe { - if (fn__setVehicleExtraColour6 == null) fn__setVehicleExtraColour6 = (delegate* unmanaged[Cdecl]) funcTable[0x6089CDF6A57F326CUL]; + if (fn__setVehicleExtraColour6 == null) fn__setVehicleExtraColour6 = (delegate* unmanaged[Cdecl]) funcTable[0x6089CDF6A57F326CUL]; var success = false; fn__setVehicleExtraColour6(&success, _vehicle, _color); if (!success) throw new Exception("Native execution failed"); @@ -99146,10 +99133,10 @@ public void SetVehicleExtraColour6(int _vehicle, int _color) } public void GetVehicleExtraColour6(IVehicle vehicle, ref int color) => GetVehicleExtraColour6(vehicle.ScriptId, ref color); - public void GetVehicleExtraColour6(int _vehicle, ref int _color) + public void GetVehicleExtraColour6(uint _vehicle, ref int _color) { unsafe { - if (fn__getVehicleExtraColour6 == null) fn__getVehicleExtraColour6 = (delegate* unmanaged[Cdecl]) funcTable[0xB7635E80A5C31BFFUL]; + if (fn__getVehicleExtraColour6 == null) fn__getVehicleExtraColour6 = (delegate* unmanaged[Cdecl]) funcTable[0xB7635E80A5C31BFFUL]; var success = false; var ref_color = _color; fn__getVehicleExtraColour6(&success, _vehicle, &ref_color); @@ -99169,10 +99156,10 @@ public void StopAllGarageActivity() } public void SetVehicleFixed(IVehicle vehicle) => SetVehicleFixed(vehicle.ScriptId); - public void SetVehicleFixed(int _vehicle) + public void SetVehicleFixed(uint _vehicle) { unsafe { - if (fn__setVehicleFixed == null) fn__setVehicleFixed = (delegate* unmanaged[Cdecl]) funcTable[0x115722B1B9C14C1CUL]; + if (fn__setVehicleFixed == null) fn__setVehicleFixed = (delegate* unmanaged[Cdecl]) funcTable[0x115722B1B9C14C1CUL]; var success = false; fn__setVehicleFixed(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -99180,10 +99167,10 @@ public void SetVehicleFixed(int _vehicle) } public void SetVehicleDeformationFixed(IVehicle vehicle) => SetVehicleDeformationFixed(vehicle.ScriptId); - public void SetVehicleDeformationFixed(int _vehicle) + public void SetVehicleDeformationFixed(uint _vehicle) { unsafe { - if (fn__setVehicleDeformationFixed == null) fn__setVehicleDeformationFixed = (delegate* unmanaged[Cdecl]) funcTable[0x953DA1E1B12C0491UL]; + if (fn__setVehicleDeformationFixed == null) fn__setVehicleDeformationFixed = (delegate* unmanaged[Cdecl]) funcTable[0x953DA1E1B12C0491UL]; var success = false; fn__setVehicleDeformationFixed(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -99191,10 +99178,10 @@ public void SetVehicleDeformationFixed(int _vehicle) } public void SetVehicleCanEngineMissfire(IVehicle vehicle, bool toggle) => SetVehicleCanEngineMissfire(vehicle.ScriptId, toggle); - public void SetVehicleCanEngineMissfire(int _vehicle, bool _toggle) + public void SetVehicleCanEngineMissfire(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleCanEngineMissfire == null) fn__setVehicleCanEngineMissfire = (delegate* unmanaged[Cdecl]) funcTable[0x206BC5DC9D1AC70AUL]; + if (fn__setVehicleCanEngineMissfire == null) fn__setVehicleCanEngineMissfire = (delegate* unmanaged[Cdecl]) funcTable[0x206BC5DC9D1AC70AUL]; var success = false; fn__setVehicleCanEngineMissfire(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99202,10 +99189,10 @@ public void SetVehicleCanEngineMissfire(int _vehicle, bool _toggle) } public void SetVehicleCanLeakOil(IVehicle vehicle, bool toggle) => SetVehicleCanLeakOil(vehicle.ScriptId, toggle); - public void SetVehicleCanLeakOil(int _vehicle, bool _toggle) + public void SetVehicleCanLeakOil(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleCanLeakOil == null) fn__setVehicleCanLeakOil = (delegate* unmanaged[Cdecl]) funcTable[0x51BB2D88D31A914BUL]; + if (fn__setVehicleCanLeakOil == null) fn__setVehicleCanLeakOil = (delegate* unmanaged[Cdecl]) funcTable[0x51BB2D88D31A914BUL]; var success = false; fn__setVehicleCanLeakOil(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99213,10 +99200,10 @@ public void SetVehicleCanLeakOil(int _vehicle, bool _toggle) } public void SetVehicleCanLeakPetrol(IVehicle vehicle, bool toggle) => SetVehicleCanLeakPetrol(vehicle.ScriptId, toggle); - public void SetVehicleCanLeakPetrol(int _vehicle, bool _toggle) + public void SetVehicleCanLeakPetrol(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleCanLeakPetrol == null) fn__setVehicleCanLeakPetrol = (delegate* unmanaged[Cdecl]) funcTable[0x192547247864DFDDUL]; + if (fn__setVehicleCanLeakPetrol == null) fn__setVehicleCanLeakPetrol = (delegate* unmanaged[Cdecl]) funcTable[0x192547247864DFDDUL]; var success = false; fn__setVehicleCanLeakPetrol(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99224,10 +99211,10 @@ public void SetVehicleCanLeakPetrol(int _vehicle, bool _toggle) } public void SetDisableVehiclePetrolTankFires(IVehicle vehicle, bool toggle) => SetDisableVehiclePetrolTankFires(vehicle.ScriptId, toggle); - public void SetDisableVehiclePetrolTankFires(int _vehicle, bool _toggle) + public void SetDisableVehiclePetrolTankFires(uint _vehicle, bool _toggle) { unsafe { - if (fn__setDisableVehiclePetrolTankFires == null) fn__setDisableVehiclePetrolTankFires = (delegate* unmanaged[Cdecl]) funcTable[0x465BF26AB9684352UL]; + if (fn__setDisableVehiclePetrolTankFires == null) fn__setDisableVehiclePetrolTankFires = (delegate* unmanaged[Cdecl]) funcTable[0x465BF26AB9684352UL]; var success = false; fn__setDisableVehiclePetrolTankFires(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99235,10 +99222,10 @@ public void SetDisableVehiclePetrolTankFires(int _vehicle, bool _toggle) } public void SetDisableVehiclePetrolTankDamage(IVehicle vehicle, bool toggle) => SetDisableVehiclePetrolTankDamage(vehicle.ScriptId, toggle); - public void SetDisableVehiclePetrolTankDamage(int _vehicle, bool _toggle) + public void SetDisableVehiclePetrolTankDamage(uint _vehicle, bool _toggle) { unsafe { - if (fn__setDisableVehiclePetrolTankDamage == null) fn__setDisableVehiclePetrolTankDamage = (delegate* unmanaged[Cdecl]) funcTable[0x37C8252A7C92D017UL]; + if (fn__setDisableVehiclePetrolTankDamage == null) fn__setDisableVehiclePetrolTankDamage = (delegate* unmanaged[Cdecl]) funcTable[0x37C8252A7C92D017UL]; var success = false; fn__setDisableVehiclePetrolTankDamage(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99246,10 +99233,10 @@ public void SetDisableVehiclePetrolTankDamage(int _vehicle, bool _toggle) } public void SetDisableVehicleEngineFires(IVehicle vehicle, bool toggle) => SetDisableVehicleEngineFires(vehicle.ScriptId, toggle); - public void SetDisableVehicleEngineFires(int _vehicle, bool _toggle) + public void SetDisableVehicleEngineFires(uint _vehicle, bool _toggle) { unsafe { - if (fn__setDisableVehicleEngineFires == null) fn__setDisableVehicleEngineFires = (delegate* unmanaged[Cdecl]) funcTable[0x91A0BD635321F145UL]; + if (fn__setDisableVehicleEngineFires == null) fn__setDisableVehicleEngineFires = (delegate* unmanaged[Cdecl]) funcTable[0x91A0BD635321F145UL]; var success = false; fn__setDisableVehicleEngineFires(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99257,10 +99244,10 @@ public void SetDisableVehicleEngineFires(int _vehicle, bool _toggle) } public void SetVehicleLimitSpeedWhenPlayerInactive(IVehicle vehicle, bool toggle) => SetVehicleLimitSpeedWhenPlayerInactive(vehicle.ScriptId, toggle); - public void SetVehicleLimitSpeedWhenPlayerInactive(int _vehicle, bool _toggle) + public void SetVehicleLimitSpeedWhenPlayerInactive(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleLimitSpeedWhenPlayerInactive == null) fn__setVehicleLimitSpeedWhenPlayerInactive = (delegate* unmanaged[Cdecl]) funcTable[0xC50CE861B55EAB8BUL]; + if (fn__setVehicleLimitSpeedWhenPlayerInactive == null) fn__setVehicleLimitSpeedWhenPlayerInactive = (delegate* unmanaged[Cdecl]) funcTable[0xC50CE861B55EAB8BUL]; var success = false; fn__setVehicleLimitSpeedWhenPlayerInactive(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99268,10 +99255,10 @@ public void SetVehicleLimitSpeedWhenPlayerInactive(int _vehicle, bool _toggle) } public void SetVehicleStopInstantlyWhenPlayerInactive(IVehicle vehicle, bool toggle) => SetVehicleStopInstantlyWhenPlayerInactive(vehicle.ScriptId, toggle); - public void SetVehicleStopInstantlyWhenPlayerInactive(int _vehicle, bool _toggle) + public void SetVehicleStopInstantlyWhenPlayerInactive(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleStopInstantlyWhenPlayerInactive == null) fn__setVehicleStopInstantlyWhenPlayerInactive = (delegate* unmanaged[Cdecl]) funcTable[0x6EBFB22D646FFC18UL]; + if (fn__setVehicleStopInstantlyWhenPlayerInactive == null) fn__setVehicleStopInstantlyWhenPlayerInactive = (delegate* unmanaged[Cdecl]) funcTable[0x6EBFB22D646FFC18UL]; var success = false; fn__setVehicleStopInstantlyWhenPlayerInactive(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99279,10 +99266,10 @@ public void SetVehicleStopInstantlyWhenPlayerInactive(int _vehicle, bool _toggle } public void SetDisablePretendOccupants(IVehicle vehicle, bool toggle) => SetDisablePretendOccupants(vehicle.ScriptId, toggle); - public void SetDisablePretendOccupants(int _vehicle, bool _toggle) + public void SetDisablePretendOccupants(uint _vehicle, bool _toggle) { unsafe { - if (fn__setDisablePretendOccupants == null) fn__setDisablePretendOccupants = (delegate* unmanaged[Cdecl]) funcTable[0x25367DE49D64CF16UL]; + if (fn__setDisablePretendOccupants == null) fn__setDisablePretendOccupants = (delegate* unmanaged[Cdecl]) funcTable[0x25367DE49D64CF16UL]; var success = false; fn__setDisablePretendOccupants(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99300,10 +99287,10 @@ public void RemoveVehiclesFromGeneratorsInArea(float _x1, float _y1, float _z1, } public void SetVehicleSteerBias(IVehicle vehicle, float value) => SetVehicleSteerBias(vehicle.ScriptId, value); - public void SetVehicleSteerBias(int _vehicle, float _value) + public void SetVehicleSteerBias(uint _vehicle, float _value) { unsafe { - if (fn__setVehicleSteerBias == null) fn__setVehicleSteerBias = (delegate* unmanaged[Cdecl]) funcTable[0x42A8EC77D5150CBEUL]; + if (fn__setVehicleSteerBias == null) fn__setVehicleSteerBias = (delegate* unmanaged[Cdecl]) funcTable[0x42A8EC77D5150CBEUL]; var success = false; fn__setVehicleSteerBias(&success, _vehicle, _value); if (!success) throw new Exception("Native execution failed"); @@ -99311,10 +99298,10 @@ public void SetVehicleSteerBias(int _vehicle, float _value) } public bool IsVehicleExtraTurnedOn(IVehicle vehicle, int extraId) => IsVehicleExtraTurnedOn(vehicle.ScriptId, extraId); - public bool IsVehicleExtraTurnedOn(int _vehicle, int _extraId) + public bool IsVehicleExtraTurnedOn(uint _vehicle, int _extraId) { unsafe { - if (fn__isVehicleExtraTurnedOn == null) fn__isVehicleExtraTurnedOn = (delegate* unmanaged[Cdecl]) funcTable[0xD2E6822DBFD6C8BDUL]; + if (fn__isVehicleExtraTurnedOn == null) fn__isVehicleExtraTurnedOn = (delegate* unmanaged[Cdecl]) funcTable[0xD2E6822DBFD6C8BDUL]; var success = false; var result = fn__isVehicleExtraTurnedOn(&success, _vehicle, _extraId); if (!success) throw new Exception("Native execution failed"); @@ -99323,10 +99310,10 @@ public bool IsVehicleExtraTurnedOn(int _vehicle, int _extraId) } public void SetVehicleExtra(IVehicle vehicle, int extraId, bool disable) => SetVehicleExtra(vehicle.ScriptId, extraId, disable); - public void SetVehicleExtra(int _vehicle, int _extraId, bool _disable) + public void SetVehicleExtra(uint _vehicle, int _extraId, bool _disable) { unsafe { - if (fn__setVehicleExtra == null) fn__setVehicleExtra = (delegate* unmanaged[Cdecl]) funcTable[0x7EE3A3C5E4A40CC9UL]; + if (fn__setVehicleExtra == null) fn__setVehicleExtra = (delegate* unmanaged[Cdecl]) funcTable[0x7EE3A3C5E4A40CC9UL]; var success = false; fn__setVehicleExtra(&success, _vehicle, _extraId, (byte) (_disable ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99334,10 +99321,10 @@ public void SetVehicleExtra(int _vehicle, int _extraId, bool _disable) } public bool DoesExtraExist(IVehicle vehicle, int extraId) => DoesExtraExist(vehicle.ScriptId, extraId); - public bool DoesExtraExist(int _vehicle, int _extraId) + public bool DoesExtraExist(uint _vehicle, int _extraId) { unsafe { - if (fn__doesExtraExist == null) fn__doesExtraExist = (delegate* unmanaged[Cdecl]) funcTable[0x1262D55792428154UL]; + if (fn__doesExtraExist == null) fn__doesExtraExist = (delegate* unmanaged[Cdecl]) funcTable[0x1262D55792428154UL]; var success = false; var result = fn__doesExtraExist(&success, _vehicle, _extraId); if (!success) throw new Exception("Native execution failed"); @@ -99346,10 +99333,10 @@ public bool DoesExtraExist(int _vehicle, int _extraId) } public bool IsExtraBrokenOff(IVehicle vehicle, int extraId) => IsExtraBrokenOff(vehicle.ScriptId, extraId); - public bool IsExtraBrokenOff(int _vehicle, int _extraId) + public bool IsExtraBrokenOff(uint _vehicle, int _extraId) { unsafe { - if (fn__isExtraBrokenOff == null) fn__isExtraBrokenOff = (delegate* unmanaged[Cdecl]) funcTable[0x534E36D4DB9ECC5DUL]; + if (fn__isExtraBrokenOff == null) fn__isExtraBrokenOff = (delegate* unmanaged[Cdecl]) funcTable[0x534E36D4DB9ECC5DUL]; var success = false; var result = fn__isExtraBrokenOff(&success, _vehicle, _extraId); if (!success) throw new Exception("Native execution failed"); @@ -99358,10 +99345,10 @@ public bool IsExtraBrokenOff(int _vehicle, int _extraId) } public void SetConvertibleRoof(IVehicle vehicle, bool p1) => SetConvertibleRoof(vehicle.ScriptId, p1); - public void SetConvertibleRoof(int _vehicle, bool _p1) + public void SetConvertibleRoof(uint _vehicle, bool _p1) { unsafe { - if (fn__setConvertibleRoof == null) fn__setConvertibleRoof = (delegate* unmanaged[Cdecl]) funcTable[0xF39C4F538B5124C2UL]; + if (fn__setConvertibleRoof == null) fn__setConvertibleRoof = (delegate* unmanaged[Cdecl]) funcTable[0xF39C4F538B5124C2UL]; var success = false; fn__setConvertibleRoof(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99369,10 +99356,10 @@ public void SetConvertibleRoof(int _vehicle, bool _p1) } public void LowerConvertibleRoof(IVehicle vehicle, bool instantlyLower) => LowerConvertibleRoof(vehicle.ScriptId, instantlyLower); - public void LowerConvertibleRoof(int _vehicle, bool _instantlyLower) + public void LowerConvertibleRoof(uint _vehicle, bool _instantlyLower) { unsafe { - if (fn__lowerConvertibleRoof == null) fn__lowerConvertibleRoof = (delegate* unmanaged[Cdecl]) funcTable[0xDED51F703D0FA83DUL]; + if (fn__lowerConvertibleRoof == null) fn__lowerConvertibleRoof = (delegate* unmanaged[Cdecl]) funcTable[0xDED51F703D0FA83DUL]; var success = false; fn__lowerConvertibleRoof(&success, _vehicle, (byte) (_instantlyLower ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99380,10 +99367,10 @@ public void LowerConvertibleRoof(int _vehicle, bool _instantlyLower) } public void RaiseConvertibleRoof(IVehicle vehicle, bool instantlyRaise) => RaiseConvertibleRoof(vehicle.ScriptId, instantlyRaise); - public void RaiseConvertibleRoof(int _vehicle, bool _instantlyRaise) + public void RaiseConvertibleRoof(uint _vehicle, bool _instantlyRaise) { unsafe { - if (fn__raiseConvertibleRoof == null) fn__raiseConvertibleRoof = (delegate* unmanaged[Cdecl]) funcTable[0x8F5FB35D7E88FC70UL]; + if (fn__raiseConvertibleRoof == null) fn__raiseConvertibleRoof = (delegate* unmanaged[Cdecl]) funcTable[0x8F5FB35D7E88FC70UL]; var success = false; fn__raiseConvertibleRoof(&success, _vehicle, (byte) (_instantlyRaise ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99391,10 +99378,10 @@ public void RaiseConvertibleRoof(int _vehicle, bool _instantlyRaise) } public int GetConvertibleRoofState(IVehicle vehicle) => GetConvertibleRoofState(vehicle.ScriptId); - public int GetConvertibleRoofState(int _vehicle) + public int GetConvertibleRoofState(uint _vehicle) { unsafe { - if (fn__getConvertibleRoofState == null) fn__getConvertibleRoofState = (delegate* unmanaged[Cdecl]) funcTable[0xF8C397922FC03F41UL]; + if (fn__getConvertibleRoofState == null) fn__getConvertibleRoofState = (delegate* unmanaged[Cdecl]) funcTable[0xF8C397922FC03F41UL]; var success = false; var result = fn__getConvertibleRoofState(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -99403,10 +99390,10 @@ public int GetConvertibleRoofState(int _vehicle) } public bool IsVehicleAConvertible(IVehicle vehicle, bool p1) => IsVehicleAConvertible(vehicle.ScriptId, p1); - public bool IsVehicleAConvertible(int _vehicle, bool _p1) + public bool IsVehicleAConvertible(uint _vehicle, bool _p1) { unsafe { - if (fn__isVehicleAConvertible == null) fn__isVehicleAConvertible = (delegate* unmanaged[Cdecl]) funcTable[0x52F357A30698BCCEUL]; + if (fn__isVehicleAConvertible == null) fn__isVehicleAConvertible = (delegate* unmanaged[Cdecl]) funcTable[0x52F357A30698BCCEUL]; var success = false; var result = fn__isVehicleAConvertible(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99415,10 +99402,10 @@ public bool IsVehicleAConvertible(int _vehicle, bool _p1) } public bool TransformToSubmarine(IVehicle vehicle, bool noAnimation) => TransformToSubmarine(vehicle.ScriptId, noAnimation); - public bool TransformToSubmarine(int _vehicle, bool _noAnimation) + public bool TransformToSubmarine(uint _vehicle, bool _noAnimation) { unsafe { - if (fn__transformToSubmarine == null) fn__transformToSubmarine = (delegate* unmanaged[Cdecl]) funcTable[0xBE4C854FFDB6EEBEUL]; + if (fn__transformToSubmarine == null) fn__transformToSubmarine = (delegate* unmanaged[Cdecl]) funcTable[0xBE4C854FFDB6EEBEUL]; var success = false; var result = fn__transformToSubmarine(&success, _vehicle, (byte) (_noAnimation ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99427,10 +99414,10 @@ public bool TransformToSubmarine(int _vehicle, bool _noAnimation) } public void TransformToCar(IVehicle vehicle, bool noAnimation) => TransformToCar(vehicle.ScriptId, noAnimation); - public void TransformToCar(int _vehicle, bool _noAnimation) + public void TransformToCar(uint _vehicle, bool _noAnimation) { unsafe { - if (fn__transformToCar == null) fn__transformToCar = (delegate* unmanaged[Cdecl]) funcTable[0x2A69FFD1B42BFF9EUL]; + if (fn__transformToCar == null) fn__transformToCar = (delegate* unmanaged[Cdecl]) funcTable[0x2A69FFD1B42BFF9EUL]; var success = false; fn__transformToCar(&success, _vehicle, (byte) (_noAnimation ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99438,10 +99425,10 @@ public void TransformToCar(int _vehicle, bool _noAnimation) } public bool IsVehicleInSubmarineMode(IVehicle vehicle) => IsVehicleInSubmarineMode(vehicle.ScriptId); - public bool IsVehicleInSubmarineMode(int _vehicle) + public bool IsVehicleInSubmarineMode(uint _vehicle) { unsafe { - if (fn__isVehicleInSubmarineMode == null) fn__isVehicleInSubmarineMode = (delegate* unmanaged[Cdecl]) funcTable[0xA77DC70BD689A1E5UL]; + if (fn__isVehicleInSubmarineMode == null) fn__isVehicleInSubmarineMode = (delegate* unmanaged[Cdecl]) funcTable[0xA77DC70BD689A1E5UL]; var success = false; var result = fn__isVehicleInSubmarineMode(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -99450,10 +99437,10 @@ public bool IsVehicleInSubmarineMode(int _vehicle) } public bool IsVehicleStoppedAtTrafficLights(IVehicle vehicle) => IsVehicleStoppedAtTrafficLights(vehicle.ScriptId); - public bool IsVehicleStoppedAtTrafficLights(int _vehicle) + public bool IsVehicleStoppedAtTrafficLights(uint _vehicle) { unsafe { - if (fn__isVehicleStoppedAtTrafficLights == null) fn__isVehicleStoppedAtTrafficLights = (delegate* unmanaged[Cdecl]) funcTable[0x2959F696AE390A99UL]; + if (fn__isVehicleStoppedAtTrafficLights == null) fn__isVehicleStoppedAtTrafficLights = (delegate* unmanaged[Cdecl]) funcTable[0x2959F696AE390A99UL]; var success = false; var result = fn__isVehicleStoppedAtTrafficLights(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -99462,10 +99449,10 @@ public bool IsVehicleStoppedAtTrafficLights(int _vehicle) } public void SetVehicleDamage(IVehicle vehicle, float xOffset, float yOffset, float zOffset, float damage, float radius, bool focusOnModel) => SetVehicleDamage(vehicle.ScriptId, xOffset, yOffset, zOffset, damage, radius, focusOnModel); - public void SetVehicleDamage(int _vehicle, float _xOffset, float _yOffset, float _zOffset, float _damage, float _radius, bool _focusOnModel) + public void SetVehicleDamage(uint _vehicle, float _xOffset, float _yOffset, float _zOffset, float _damage, float _radius, bool _focusOnModel) { unsafe { - if (fn__setVehicleDamage == null) fn__setVehicleDamage = (delegate* unmanaged[Cdecl]) funcTable[0xA1DD317EA8FD4F29UL]; + if (fn__setVehicleDamage == null) fn__setVehicleDamage = (delegate* unmanaged[Cdecl]) funcTable[0xA1DD317EA8FD4F29UL]; var success = false; fn__setVehicleDamage(&success, _vehicle, _xOffset, _yOffset, _zOffset, _damage, _radius, (byte) (_focusOnModel ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99473,10 +99460,10 @@ public void SetVehicleDamage(int _vehicle, float _xOffset, float _yOffset, float } public void SetVehicleOccupantsTakeExplosiveDamage(IVehicle vehicle, bool toggle) => SetVehicleOccupantsTakeExplosiveDamage(vehicle.ScriptId, toggle); - public void SetVehicleOccupantsTakeExplosiveDamage(int _vehicle, bool _toggle) + public void SetVehicleOccupantsTakeExplosiveDamage(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleOccupantsTakeExplosiveDamage == null) fn__setVehicleOccupantsTakeExplosiveDamage = (delegate* unmanaged[Cdecl]) funcTable[0x35BB21DE06784373UL]; + if (fn__setVehicleOccupantsTakeExplosiveDamage == null) fn__setVehicleOccupantsTakeExplosiveDamage = (delegate* unmanaged[Cdecl]) funcTable[0x35BB21DE06784373UL]; var success = false; fn__setVehicleOccupantsTakeExplosiveDamage(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99484,10 +99471,10 @@ public void SetVehicleOccupantsTakeExplosiveDamage(int _vehicle, bool _toggle) } public float GetVehicleEngineHealth(IVehicle vehicle) => GetVehicleEngineHealth(vehicle.ScriptId); - public float GetVehicleEngineHealth(int _vehicle) + public float GetVehicleEngineHealth(uint _vehicle) { unsafe { - if (fn__getVehicleEngineHealth == null) fn__getVehicleEngineHealth = (delegate* unmanaged[Cdecl]) funcTable[0xC45D23BAF168AAB8UL]; + if (fn__getVehicleEngineHealth == null) fn__getVehicleEngineHealth = (delegate* unmanaged[Cdecl]) funcTable[0xC45D23BAF168AAB8UL]; var success = false; var result = fn__getVehicleEngineHealth(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -99496,10 +99483,10 @@ public float GetVehicleEngineHealth(int _vehicle) } public void SetVehicleEngineHealth(IVehicle vehicle, float health) => SetVehicleEngineHealth(vehicle.ScriptId, health); - public void SetVehicleEngineHealth(int _vehicle, float _health) + public void SetVehicleEngineHealth(uint _vehicle, float _health) { unsafe { - if (fn__setVehicleEngineHealth == null) fn__setVehicleEngineHealth = (delegate* unmanaged[Cdecl]) funcTable[0x45F6D8EEF34ABEF1UL]; + if (fn__setVehicleEngineHealth == null) fn__setVehicleEngineHealth = (delegate* unmanaged[Cdecl]) funcTable[0x45F6D8EEF34ABEF1UL]; var success = false; fn__setVehicleEngineHealth(&success, _vehicle, _health); if (!success) throw new Exception("Native execution failed"); @@ -99507,10 +99494,10 @@ public void SetVehicleEngineHealth(int _vehicle, float _health) } public void SetPlaneEngineHealth(IVehicle vehicle, float health) => SetPlaneEngineHealth(vehicle.ScriptId, health); - public void SetPlaneEngineHealth(int _vehicle, float _health) + public void SetPlaneEngineHealth(uint _vehicle, float _health) { unsafe { - if (fn__setPlaneEngineHealth == null) fn__setPlaneEngineHealth = (delegate* unmanaged[Cdecl]) funcTable[0x2A86A0475B6A1434UL]; + if (fn__setPlaneEngineHealth == null) fn__setPlaneEngineHealth = (delegate* unmanaged[Cdecl]) funcTable[0x2A86A0475B6A1434UL]; var success = false; fn__setPlaneEngineHealth(&success, _vehicle, _health); if (!success) throw new Exception("Native execution failed"); @@ -99518,10 +99505,10 @@ public void SetPlaneEngineHealth(int _vehicle, float _health) } public float GetVehiclePetrolTankHealth(IVehicle vehicle) => GetVehiclePetrolTankHealth(vehicle.ScriptId); - public float GetVehiclePetrolTankHealth(int _vehicle) + public float GetVehiclePetrolTankHealth(uint _vehicle) { unsafe { - if (fn__getVehiclePetrolTankHealth == null) fn__getVehiclePetrolTankHealth = (delegate* unmanaged[Cdecl]) funcTable[0x7D5DABE888D2D074UL]; + if (fn__getVehiclePetrolTankHealth == null) fn__getVehiclePetrolTankHealth = (delegate* unmanaged[Cdecl]) funcTable[0x7D5DABE888D2D074UL]; var success = false; var result = fn__getVehiclePetrolTankHealth(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -99530,10 +99517,10 @@ public float GetVehiclePetrolTankHealth(int _vehicle) } public void SetVehiclePetrolTankHealth(IVehicle vehicle, float health) => SetVehiclePetrolTankHealth(vehicle.ScriptId, health); - public void SetVehiclePetrolTankHealth(int _vehicle, float _health) + public void SetVehiclePetrolTankHealth(uint _vehicle, float _health) { unsafe { - if (fn__setVehiclePetrolTankHealth == null) fn__setVehiclePetrolTankHealth = (delegate* unmanaged[Cdecl]) funcTable[0x70DB57649FA8D0D8UL]; + if (fn__setVehiclePetrolTankHealth == null) fn__setVehiclePetrolTankHealth = (delegate* unmanaged[Cdecl]) funcTable[0x70DB57649FA8D0D8UL]; var success = false; fn__setVehiclePetrolTankHealth(&success, _vehicle, _health); if (!success) throw new Exception("Native execution failed"); @@ -99541,10 +99528,10 @@ public void SetVehiclePetrolTankHealth(int _vehicle, float _health) } public bool IsVehicleStuckTimerUp(IVehicle vehicle, int p1, int ms) => IsVehicleStuckTimerUp(vehicle.ScriptId, p1, ms); - public bool IsVehicleStuckTimerUp(int _vehicle, int _p1, int _ms) + public bool IsVehicleStuckTimerUp(uint _vehicle, int _p1, int _ms) { unsafe { - if (fn__isVehicleStuckTimerUp == null) fn__isVehicleStuckTimerUp = (delegate* unmanaged[Cdecl]) funcTable[0x679BE1DAF71DA874UL]; + if (fn__isVehicleStuckTimerUp == null) fn__isVehicleStuckTimerUp = (delegate* unmanaged[Cdecl]) funcTable[0x679BE1DAF71DA874UL]; var success = false; var result = fn__isVehicleStuckTimerUp(&success, _vehicle, _p1, _ms); if (!success) throw new Exception("Native execution failed"); @@ -99553,10 +99540,10 @@ public bool IsVehicleStuckTimerUp(int _vehicle, int _p1, int _ms) } public void ResetVehicleStuckTimer(IVehicle vehicle, int nullAttributes) => ResetVehicleStuckTimer(vehicle.ScriptId, nullAttributes); - public void ResetVehicleStuckTimer(int _vehicle, int _nullAttributes) + public void ResetVehicleStuckTimer(uint _vehicle, int _nullAttributes) { unsafe { - if (fn__resetVehicleStuckTimer == null) fn__resetVehicleStuckTimer = (delegate* unmanaged[Cdecl]) funcTable[0xD7591B0065AFAA7AUL]; + if (fn__resetVehicleStuckTimer == null) fn__resetVehicleStuckTimer = (delegate* unmanaged[Cdecl]) funcTable[0xD7591B0065AFAA7AUL]; var success = false; fn__resetVehicleStuckTimer(&success, _vehicle, _nullAttributes); if (!success) throw new Exception("Native execution failed"); @@ -99564,10 +99551,10 @@ public void ResetVehicleStuckTimer(int _vehicle, int _nullAttributes) } public bool IsVehicleDriveable(IVehicle vehicle, bool isOnFireCheck) => IsVehicleDriveable(vehicle.ScriptId, isOnFireCheck); - public bool IsVehicleDriveable(int _vehicle, bool _isOnFireCheck) + public bool IsVehicleDriveable(uint _vehicle, bool _isOnFireCheck) { unsafe { - if (fn__isVehicleDriveable == null) fn__isVehicleDriveable = (delegate* unmanaged[Cdecl]) funcTable[0x4C241E39B23DF959UL]; + if (fn__isVehicleDriveable == null) fn__isVehicleDriveable = (delegate* unmanaged[Cdecl]) funcTable[0x4C241E39B23DF959UL]; var success = false; var result = fn__isVehicleDriveable(&success, _vehicle, (byte) (_isOnFireCheck ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99576,10 +99563,10 @@ public bool IsVehicleDriveable(int _vehicle, bool _isOnFireCheck) } public void SetVehicleHasBeenOwnedByPlayer(IVehicle vehicle, bool owned) => SetVehicleHasBeenOwnedByPlayer(vehicle.ScriptId, owned); - public void SetVehicleHasBeenOwnedByPlayer(int _vehicle, bool _owned) + public void SetVehicleHasBeenOwnedByPlayer(uint _vehicle, bool _owned) { unsafe { - if (fn__setVehicleHasBeenOwnedByPlayer == null) fn__setVehicleHasBeenOwnedByPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x2B5F9D2AF1F1722DUL]; + if (fn__setVehicleHasBeenOwnedByPlayer == null) fn__setVehicleHasBeenOwnedByPlayer = (delegate* unmanaged[Cdecl]) funcTable[0x2B5F9D2AF1F1722DUL]; var success = false; fn__setVehicleHasBeenOwnedByPlayer(&success, _vehicle, (byte) (_owned ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99587,10 +99574,10 @@ public void SetVehicleHasBeenOwnedByPlayer(int _vehicle, bool _owned) } public void SetVehicleNeedsToBeHotwired(IVehicle vehicle, bool toggle) => SetVehicleNeedsToBeHotwired(vehicle.ScriptId, toggle); - public void SetVehicleNeedsToBeHotwired(int _vehicle, bool _toggle) + public void SetVehicleNeedsToBeHotwired(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleNeedsToBeHotwired == null) fn__setVehicleNeedsToBeHotwired = (delegate* unmanaged[Cdecl]) funcTable[0xFBA550EA44404EE6UL]; + if (fn__setVehicleNeedsToBeHotwired == null) fn__setVehicleNeedsToBeHotwired = (delegate* unmanaged[Cdecl]) funcTable[0xFBA550EA44404EE6UL]; var success = false; fn__setVehicleNeedsToBeHotwired(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99598,10 +99585,10 @@ public void SetVehicleNeedsToBeHotwired(int _vehicle, bool _toggle) } public void SetVehicleBlipThrottleRandomly(IVehicle vehicle, bool p1) => SetVehicleBlipThrottleRandomly(vehicle.ScriptId, p1); - public void SetVehicleBlipThrottleRandomly(int _vehicle, bool _p1) + public void SetVehicleBlipThrottleRandomly(uint _vehicle, bool _p1) { unsafe { - if (fn__setVehicleBlipThrottleRandomly == null) fn__setVehicleBlipThrottleRandomly = (delegate* unmanaged[Cdecl]) funcTable[0x9F3F689B814F2599UL]; + if (fn__setVehicleBlipThrottleRandomly == null) fn__setVehicleBlipThrottleRandomly = (delegate* unmanaged[Cdecl]) funcTable[0x9F3F689B814F2599UL]; var success = false; fn__setVehicleBlipThrottleRandomly(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99609,10 +99596,10 @@ public void SetVehicleBlipThrottleRandomly(int _vehicle, bool _p1) } public void SetPoliceFocusWillTrackVehicle(IVehicle vehicle, bool toggle) => SetPoliceFocusWillTrackVehicle(vehicle.ScriptId, toggle); - public void SetPoliceFocusWillTrackVehicle(int _vehicle, bool _toggle) + public void SetPoliceFocusWillTrackVehicle(uint _vehicle, bool _toggle) { unsafe { - if (fn__setPoliceFocusWillTrackVehicle == null) fn__setPoliceFocusWillTrackVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x4E74E62E0A97E901UL]; + if (fn__setPoliceFocusWillTrackVehicle == null) fn__setPoliceFocusWillTrackVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x4E74E62E0A97E901UL]; var success = false; fn__setPoliceFocusWillTrackVehicle(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99620,10 +99607,10 @@ public void SetPoliceFocusWillTrackVehicle(int _vehicle, bool _toggle) } public void StartVehicleHorn(IVehicle vehicle, int duration, uint mode, bool forever) => StartVehicleHorn(vehicle.ScriptId, duration, mode, forever); - public void StartVehicleHorn(int _vehicle, int _duration, uint _mode, bool _forever) + public void StartVehicleHorn(uint _vehicle, int _duration, uint _mode, bool _forever) { unsafe { - if (fn__startVehicleHorn == null) fn__startVehicleHorn = (delegate* unmanaged[Cdecl]) funcTable[0x9C8C6504B5B63D2CUL]; + if (fn__startVehicleHorn == null) fn__startVehicleHorn = (delegate* unmanaged[Cdecl]) funcTable[0x9C8C6504B5B63D2CUL]; var success = false; fn__startVehicleHorn(&success, _vehicle, _duration, _mode, (byte) (_forever ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99631,10 +99618,10 @@ public void StartVehicleHorn(int _vehicle, int _duration, uint _mode, bool _fore } public void SetVehicleInCarModShop(IVehicle vehicle, bool toggle) => SetVehicleInCarModShop(vehicle.ScriptId, toggle); - public void SetVehicleInCarModShop(int _vehicle, bool _toggle) + public void SetVehicleInCarModShop(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleInCarModShop == null) fn__setVehicleInCarModShop = (delegate* unmanaged[Cdecl]) funcTable[0x9D44FCCE98450843UL]; + if (fn__setVehicleInCarModShop == null) fn__setVehicleInCarModShop = (delegate* unmanaged[Cdecl]) funcTable[0x9D44FCCE98450843UL]; var success = false; fn__setVehicleInCarModShop(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99642,10 +99629,10 @@ public void SetVehicleInCarModShop(int _vehicle, bool _toggle) } public void SetVehicleHasStrongAxles(IVehicle vehicle, bool toggle) => SetVehicleHasStrongAxles(vehicle.ScriptId, toggle); - public void SetVehicleHasStrongAxles(int _vehicle, bool _toggle) + public void SetVehicleHasStrongAxles(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleHasStrongAxles == null) fn__setVehicleHasStrongAxles = (delegate* unmanaged[Cdecl]) funcTable[0x92F0CF722BC4202FUL]; + if (fn__setVehicleHasStrongAxles == null) fn__setVehicleHasStrongAxles = (delegate* unmanaged[Cdecl]) funcTable[0x92F0CF722BC4202FUL]; var success = false; fn__setVehicleHasStrongAxles(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99659,8 +99646,8 @@ public string GetDisplayNameFromVehicleModel(uint _modelHash) var success = false; var result = fn__getDisplayNameFromVehicleModel(&success, _modelHash); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } @@ -99672,17 +99659,17 @@ public string GetMakeNameFromVehicleModel(uint _modelHash) var success = false; var result = fn__getMakeNameFromVehicleModel(&success, _modelHash); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } public Vector3 GetVehicleDeformationAtPos(IVehicle vehicle, float offsetX, float offsetY, float offsetZ) => GetVehicleDeformationAtPos(vehicle.ScriptId, offsetX, offsetY, offsetZ); - public Vector3 GetVehicleDeformationAtPos(int _vehicle, float _offsetX, float _offsetY, float _offsetZ) + public Vector3 GetVehicleDeformationAtPos(uint _vehicle, float _offsetX, float _offsetY, float _offsetZ) { unsafe { - if (fn__getVehicleDeformationAtPos == null) fn__getVehicleDeformationAtPos = (delegate* unmanaged[Cdecl]) funcTable[0x4EC6CFBC7B2E9536UL]; + if (fn__getVehicleDeformationAtPos == null) fn__getVehicleDeformationAtPos = (delegate* unmanaged[Cdecl]) funcTable[0x4EC6CFBC7B2E9536UL]; var success = false; var result = fn__getVehicleDeformationAtPos(&success, _vehicle, _offsetX, _offsetY, _offsetZ); if (!success) throw new Exception("Native execution failed"); @@ -99691,10 +99678,10 @@ public Vector3 GetVehicleDeformationAtPos(int _vehicle, float _offsetX, float _o } public void SetVehicleLivery(IVehicle vehicle, int livery) => SetVehicleLivery(vehicle.ScriptId, livery); - public void SetVehicleLivery(int _vehicle, int _livery) + public void SetVehicleLivery(uint _vehicle, int _livery) { unsafe { - if (fn__setVehicleLivery == null) fn__setVehicleLivery = (delegate* unmanaged[Cdecl]) funcTable[0x60BF608F1B8CD1B6UL]; + if (fn__setVehicleLivery == null) fn__setVehicleLivery = (delegate* unmanaged[Cdecl]) funcTable[0x60BF608F1B8CD1B6UL]; var success = false; fn__setVehicleLivery(&success, _vehicle, _livery); if (!success) throw new Exception("Native execution failed"); @@ -99702,10 +99689,10 @@ public void SetVehicleLivery(int _vehicle, int _livery) } public int GetVehicleLivery(IVehicle vehicle) => GetVehicleLivery(vehicle.ScriptId); - public int GetVehicleLivery(int _vehicle) + public int GetVehicleLivery(uint _vehicle) { unsafe { - if (fn__getVehicleLivery == null) fn__getVehicleLivery = (delegate* unmanaged[Cdecl]) funcTable[0x2BB9230590DA5E8AUL]; + if (fn__getVehicleLivery == null) fn__getVehicleLivery = (delegate* unmanaged[Cdecl]) funcTable[0x2BB9230590DA5E8AUL]; var success = false; var result = fn__getVehicleLivery(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -99714,10 +99701,10 @@ public int GetVehicleLivery(int _vehicle) } public int GetVehicleLiveryCount(IVehicle vehicle) => GetVehicleLiveryCount(vehicle.ScriptId); - public int GetVehicleLiveryCount(int _vehicle) + public int GetVehicleLiveryCount(uint _vehicle) { unsafe { - if (fn__getVehicleLiveryCount == null) fn__getVehicleLiveryCount = (delegate* unmanaged[Cdecl]) funcTable[0x87B63E25A529D526UL]; + if (fn__getVehicleLiveryCount == null) fn__getVehicleLiveryCount = (delegate* unmanaged[Cdecl]) funcTable[0x87B63E25A529D526UL]; var success = false; var result = fn__getVehicleLiveryCount(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -99726,10 +99713,10 @@ public int GetVehicleLiveryCount(int _vehicle) } public void SetVehicleLivery2(IVehicle vehicle, int livery) => SetVehicleLivery2(vehicle.ScriptId, livery); - public void SetVehicleLivery2(int _vehicle, int _livery) + public void SetVehicleLivery2(uint _vehicle, int _livery) { unsafe { - if (fn__setVehicleLivery2 == null) fn__setVehicleLivery2 = (delegate* unmanaged[Cdecl]) funcTable[0xA6D3A8750DC73270UL]; + if (fn__setVehicleLivery2 == null) fn__setVehicleLivery2 = (delegate* unmanaged[Cdecl]) funcTable[0xA6D3A8750DC73270UL]; var success = false; fn__setVehicleLivery2(&success, _vehicle, _livery); if (!success) throw new Exception("Native execution failed"); @@ -99737,10 +99724,10 @@ public void SetVehicleLivery2(int _vehicle, int _livery) } public int GetVehicleLivery2(IVehicle vehicle) => GetVehicleLivery2(vehicle.ScriptId); - public int GetVehicleLivery2(int _vehicle) + public int GetVehicleLivery2(uint _vehicle) { unsafe { - if (fn__getVehicleLivery2 == null) fn__getVehicleLivery2 = (delegate* unmanaged[Cdecl]) funcTable[0x60190048C0764A26UL]; + if (fn__getVehicleLivery2 == null) fn__getVehicleLivery2 = (delegate* unmanaged[Cdecl]) funcTable[0x60190048C0764A26UL]; var success = false; var result = fn__getVehicleLivery2(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -99749,10 +99736,10 @@ public int GetVehicleLivery2(int _vehicle) } public int GetVehicleLivery2Count(IVehicle vehicle) => GetVehicleLivery2Count(vehicle.ScriptId); - public int GetVehicleLivery2Count(int _vehicle) + public int GetVehicleLivery2Count(uint _vehicle) { unsafe { - if (fn__getVehicleLivery2Count == null) fn__getVehicleLivery2Count = (delegate* unmanaged[Cdecl]) funcTable[0x5ECB40269053C0D4UL]; + if (fn__getVehicleLivery2Count == null) fn__getVehicleLivery2Count = (delegate* unmanaged[Cdecl]) funcTable[0x5ECB40269053C0D4UL]; var success = false; var result = fn__getVehicleLivery2Count(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -99761,10 +99748,10 @@ public int GetVehicleLivery2Count(int _vehicle) } public bool IsVehicleWindowIntact(IVehicle vehicle, int windowIndex) => IsVehicleWindowIntact(vehicle.ScriptId, windowIndex); - public bool IsVehicleWindowIntact(int _vehicle, int _windowIndex) + public bool IsVehicleWindowIntact(uint _vehicle, int _windowIndex) { unsafe { - if (fn__isVehicleWindowIntact == null) fn__isVehicleWindowIntact = (delegate* unmanaged[Cdecl]) funcTable[0x46E571A0E20D01F1UL]; + if (fn__isVehicleWindowIntact == null) fn__isVehicleWindowIntact = (delegate* unmanaged[Cdecl]) funcTable[0x46E571A0E20D01F1UL]; var success = false; var result = fn__isVehicleWindowIntact(&success, _vehicle, _windowIndex); if (!success) throw new Exception("Native execution failed"); @@ -99773,10 +99760,10 @@ public bool IsVehicleWindowIntact(int _vehicle, int _windowIndex) } public bool AreAllVehicleWindowsIntact(IVehicle vehicle) => AreAllVehicleWindowsIntact(vehicle.ScriptId); - public bool AreAllVehicleWindowsIntact(int _vehicle) + public bool AreAllVehicleWindowsIntact(uint _vehicle) { unsafe { - if (fn__areAllVehicleWindowsIntact == null) fn__areAllVehicleWindowsIntact = (delegate* unmanaged[Cdecl]) funcTable[0x11D862A3E977A9EFUL]; + if (fn__areAllVehicleWindowsIntact == null) fn__areAllVehicleWindowsIntact = (delegate* unmanaged[Cdecl]) funcTable[0x11D862A3E977A9EFUL]; var success = false; var result = fn__areAllVehicleWindowsIntact(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -99785,10 +99772,10 @@ public bool AreAllVehicleWindowsIntact(int _vehicle) } public bool AreAnyVehicleSeatsFree(IVehicle vehicle) => AreAnyVehicleSeatsFree(vehicle.ScriptId); - public bool AreAnyVehicleSeatsFree(int _vehicle) + public bool AreAnyVehicleSeatsFree(uint _vehicle) { unsafe { - if (fn__areAnyVehicleSeatsFree == null) fn__areAnyVehicleSeatsFree = (delegate* unmanaged[Cdecl]) funcTable[0x2D34FC3BC4ADB780UL]; + if (fn__areAnyVehicleSeatsFree == null) fn__areAnyVehicleSeatsFree = (delegate* unmanaged[Cdecl]) funcTable[0x2D34FC3BC4ADB780UL]; var success = false; var result = fn__areAnyVehicleSeatsFree(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -99797,10 +99784,10 @@ public bool AreAnyVehicleSeatsFree(int _vehicle) } public void ResetVehicleWheels(IVehicle vehicle, bool toggle) => ResetVehicleWheels(vehicle.ScriptId, toggle); - public void ResetVehicleWheels(int _vehicle, bool _toggle) + public void ResetVehicleWheels(uint _vehicle, bool _toggle) { unsafe { - if (fn__resetVehicleWheels == null) fn__resetVehicleWheels = (delegate* unmanaged[Cdecl]) funcTable[0x21D2E5662C1F6FEDUL]; + if (fn__resetVehicleWheels == null) fn__resetVehicleWheels = (delegate* unmanaged[Cdecl]) funcTable[0x21D2E5662C1F6FEDUL]; var success = false; fn__resetVehicleWheels(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99808,10 +99795,10 @@ public void ResetVehicleWheels(int _vehicle, bool _toggle) } public bool IsHeliPartBroken(IVehicle vehicle, bool p1, bool p2, bool p3) => IsHeliPartBroken(vehicle.ScriptId, p1, p2, p3); - public bool IsHeliPartBroken(int _vehicle, bool _p1, bool _p2, bool _p3) + public bool IsHeliPartBroken(uint _vehicle, bool _p1, bool _p2, bool _p3) { unsafe { - if (fn__isHeliPartBroken == null) fn__isHeliPartBroken = (delegate* unmanaged[Cdecl]) funcTable[0xBC74B4BE25EB6C8AUL]; + if (fn__isHeliPartBroken == null) fn__isHeliPartBroken = (delegate* unmanaged[Cdecl]) funcTable[0xBC74B4BE25EB6C8AUL]; var success = false; var result = fn__isHeliPartBroken(&success, _vehicle, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0), (byte) (_p3 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99820,10 +99807,10 @@ public bool IsHeliPartBroken(int _vehicle, bool _p1, bool _p2, bool _p3) } public float GetHeliMainRotorHealth(IVehicle vehicle) => GetHeliMainRotorHealth(vehicle.ScriptId); - public float GetHeliMainRotorHealth(int _vehicle) + public float GetHeliMainRotorHealth(uint _vehicle) { unsafe { - if (fn__getHeliMainRotorHealth == null) fn__getHeliMainRotorHealth = (delegate* unmanaged[Cdecl]) funcTable[0xE4CB7541F413D2C5UL]; + if (fn__getHeliMainRotorHealth == null) fn__getHeliMainRotorHealth = (delegate* unmanaged[Cdecl]) funcTable[0xE4CB7541F413D2C5UL]; var success = false; var result = fn__getHeliMainRotorHealth(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -99832,10 +99819,10 @@ public float GetHeliMainRotorHealth(int _vehicle) } public float GetHeliTailRotorHealth(IVehicle vehicle) => GetHeliTailRotorHealth(vehicle.ScriptId); - public float GetHeliTailRotorHealth(int _vehicle) + public float GetHeliTailRotorHealth(uint _vehicle) { unsafe { - if (fn__getHeliTailRotorHealth == null) fn__getHeliTailRotorHealth = (delegate* unmanaged[Cdecl]) funcTable[0xAE8CE82A4219AC8CUL]; + if (fn__getHeliTailRotorHealth == null) fn__getHeliTailRotorHealth = (delegate* unmanaged[Cdecl]) funcTable[0xAE8CE82A4219AC8CUL]; var success = false; var result = fn__getHeliTailRotorHealth(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -99844,10 +99831,10 @@ public float GetHeliTailRotorHealth(int _vehicle) } public float GetHeliTailBoomHealth(IVehicle vehicle) => GetHeliTailBoomHealth(vehicle.ScriptId); - public float GetHeliTailBoomHealth(int _vehicle) + public float GetHeliTailBoomHealth(uint _vehicle) { unsafe { - if (fn__getHeliTailBoomHealth == null) fn__getHeliTailBoomHealth = (delegate* unmanaged[Cdecl]) funcTable[0xAC51915D27E4A5F7UL]; + if (fn__getHeliTailBoomHealth == null) fn__getHeliTailBoomHealth = (delegate* unmanaged[Cdecl]) funcTable[0xAC51915D27E4A5F7UL]; var success = false; var result = fn__getHeliTailBoomHealth(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -99856,10 +99843,10 @@ public float GetHeliTailBoomHealth(int _vehicle) } public void SetHeliMainRotorHealth(IVehicle vehicle, float health) => SetHeliMainRotorHealth(vehicle.ScriptId, health); - public void SetHeliMainRotorHealth(int _vehicle, float _health) + public void SetHeliMainRotorHealth(uint _vehicle, float _health) { unsafe { - if (fn__setHeliMainRotorHealth == null) fn__setHeliMainRotorHealth = (delegate* unmanaged[Cdecl]) funcTable[0x4056EA1105F5ABD7UL]; + if (fn__setHeliMainRotorHealth == null) fn__setHeliMainRotorHealth = (delegate* unmanaged[Cdecl]) funcTable[0x4056EA1105F5ABD7UL]; var success = false; fn__setHeliMainRotorHealth(&success, _vehicle, _health); if (!success) throw new Exception("Native execution failed"); @@ -99867,10 +99854,10 @@ public void SetHeliMainRotorHealth(int _vehicle, float _health) } public void SetHeliTailRotorHealth(IVehicle vehicle, float health) => SetHeliTailRotorHealth(vehicle.ScriptId, health); - public void SetHeliTailRotorHealth(int _vehicle, float _health) + public void SetHeliTailRotorHealth(uint _vehicle, float _health) { unsafe { - if (fn__setHeliTailRotorHealth == null) fn__setHeliTailRotorHealth = (delegate* unmanaged[Cdecl]) funcTable[0xFE205F38AAA58E5BUL]; + if (fn__setHeliTailRotorHealth == null) fn__setHeliTailRotorHealth = (delegate* unmanaged[Cdecl]) funcTable[0xFE205F38AAA58E5BUL]; var success = false; fn__setHeliTailRotorHealth(&success, _vehicle, _health); if (!success) throw new Exception("Native execution failed"); @@ -99878,10 +99865,10 @@ public void SetHeliTailRotorHealth(int _vehicle, float _health) } public bool SetHeliTailBoomCanBreakOff(IVehicle vehicle, bool toggle) => SetHeliTailBoomCanBreakOff(vehicle.ScriptId, toggle); - public bool SetHeliTailBoomCanBreakOff(int _vehicle, bool _toggle) + public bool SetHeliTailBoomCanBreakOff(uint _vehicle, bool _toggle) { unsafe { - if (fn__setHeliTailBoomCanBreakOff == null) fn__setHeliTailBoomCanBreakOff = (delegate* unmanaged[Cdecl]) funcTable[0x3EC8BF18AA453FE9UL]; + if (fn__setHeliTailBoomCanBreakOff == null) fn__setHeliTailBoomCanBreakOff = (delegate* unmanaged[Cdecl]) funcTable[0x3EC8BF18AA453FE9UL]; var success = false; var result = fn__setHeliTailBoomCanBreakOff(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99890,23 +99877,23 @@ public bool SetHeliTailBoomCanBreakOff(int _vehicle, bool _toggle) } public void SetVehicleNameDebug(IVehicle vehicle, string name) => SetVehicleNameDebug(vehicle.ScriptId, name); - public void SetVehicleNameDebug(int _vehicle, string _name) + public void SetVehicleNameDebug(uint _vehicle, string _name) { unsafe { - if (fn__setVehicleNameDebug == null) fn__setVehicleNameDebug = (delegate* unmanaged[Cdecl]) funcTable[0xBFDF984E2C22B94FUL]; + if (fn__setVehicleNameDebug == null) fn__setVehicleNameDebug = (delegate* unmanaged[Cdecl]) funcTable[0xBFDF984E2C22B94FUL]; var success = false; - var ptr_name = _name == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_name); + var ptr_name = MemoryUtils.StringToHGlobalUtf8(_name); fn__setVehicleNameDebug(&success, _vehicle, ptr_name); - if (ptr_name != IntPtr.Zero) Marshal.FreeHGlobal(ptr_name); + Marshal.FreeHGlobal(ptr_name); if (!success) throw new Exception("Native execution failed"); } } public void SetVehicleExplodesOnHighExplosionDamage(IVehicle vehicle, bool toggle) => SetVehicleExplodesOnHighExplosionDamage(vehicle.ScriptId, toggle); - public void SetVehicleExplodesOnHighExplosionDamage(int _vehicle, bool _toggle) + public void SetVehicleExplodesOnHighExplosionDamage(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleExplodesOnHighExplosionDamage == null) fn__setVehicleExplodesOnHighExplosionDamage = (delegate* unmanaged[Cdecl]) funcTable[0x71B0892EC081D60AUL]; + if (fn__setVehicleExplodesOnHighExplosionDamage == null) fn__setVehicleExplodesOnHighExplosionDamage = (delegate* unmanaged[Cdecl]) funcTable[0x71B0892EC081D60AUL]; var success = false; fn__setVehicleExplodesOnHighExplosionDamage(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99914,10 +99901,10 @@ public void SetVehicleExplodesOnHighExplosionDamage(int _vehicle, bool _toggle) } public void SetVehicleExplodesOnExplosionDamageAtZeroBodyHealth(IVehicle vehicle, bool toggle) => SetVehicleExplodesOnExplosionDamageAtZeroBodyHealth(vehicle.ScriptId, toggle); - public void SetVehicleExplodesOnExplosionDamageAtZeroBodyHealth(int _vehicle, bool _toggle) + public void SetVehicleExplodesOnExplosionDamageAtZeroBodyHealth(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleExplodesOnExplosionDamageAtZeroBodyHealth == null) fn__setVehicleExplodesOnExplosionDamageAtZeroBodyHealth = (delegate* unmanaged[Cdecl]) funcTable[0xD565F438137F0E10UL]; + if (fn__setVehicleExplodesOnExplosionDamageAtZeroBodyHealth == null) fn__setVehicleExplodesOnExplosionDamageAtZeroBodyHealth = (delegate* unmanaged[Cdecl]) funcTable[0xD565F438137F0E10UL]; var success = false; fn__setVehicleExplodesOnExplosionDamageAtZeroBodyHealth(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99925,10 +99912,10 @@ public void SetVehicleExplodesOnExplosionDamageAtZeroBodyHealth(int _vehicle, bo } public void SetAllowVehicleExplodesOnContact(IVehicle vehicle, bool toggle) => SetAllowVehicleExplodesOnContact(vehicle.ScriptId, toggle); - public void SetAllowVehicleExplodesOnContact(int _vehicle, bool _toggle) + public void SetAllowVehicleExplodesOnContact(uint _vehicle, bool _toggle) { unsafe { - if (fn__setAllowVehicleExplodesOnContact == null) fn__setAllowVehicleExplodesOnContact = (delegate* unmanaged[Cdecl]) funcTable[0x3441CAD2F2231923UL]; + if (fn__setAllowVehicleExplodesOnContact == null) fn__setAllowVehicleExplodesOnContact = (delegate* unmanaged[Cdecl]) funcTable[0x3441CAD2F2231923UL]; var success = false; fn__setAllowVehicleExplodesOnContact(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99936,10 +99923,10 @@ public void SetAllowVehicleExplodesOnContact(int _vehicle, bool _toggle) } public void SetVehicleDisableTowing(IVehicle vehicle, bool toggle) => SetVehicleDisableTowing(vehicle.ScriptId, toggle); - public void SetVehicleDisableTowing(int _vehicle, bool _toggle) + public void SetVehicleDisableTowing(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleDisableTowing == null) fn__setVehicleDisableTowing = (delegate* unmanaged[Cdecl]) funcTable[0x2B6747FAA9DB9D6BUL]; + if (fn__setVehicleDisableTowing == null) fn__setVehicleDisableTowing = (delegate* unmanaged[Cdecl]) funcTable[0x2B6747FAA9DB9D6BUL]; var success = false; fn__setVehicleDisableTowing(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -99947,10 +99934,10 @@ public void SetVehicleDisableTowing(int _vehicle, bool _toggle) } public bool GetVehicleHasLandingGear(IVehicle vehicle) => GetVehicleHasLandingGear(vehicle.ScriptId); - public bool GetVehicleHasLandingGear(int _vehicle) + public bool GetVehicleHasLandingGear(uint _vehicle) { unsafe { - if (fn__getVehicleHasLandingGear == null) fn__getVehicleHasLandingGear = (delegate* unmanaged[Cdecl]) funcTable[0xE43701C36CAFF1A4UL]; + if (fn__getVehicleHasLandingGear == null) fn__getVehicleHasLandingGear = (delegate* unmanaged[Cdecl]) funcTable[0xE43701C36CAFF1A4UL]; var success = false; var result = fn__getVehicleHasLandingGear(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -99959,10 +99946,10 @@ public bool GetVehicleHasLandingGear(int _vehicle) } public void ControlLandingGear(IVehicle vehicle, int state) => ControlLandingGear(vehicle.ScriptId, state); - public void ControlLandingGear(int _vehicle, int _state) + public void ControlLandingGear(uint _vehicle, int _state) { unsafe { - if (fn__controlLandingGear == null) fn__controlLandingGear = (delegate* unmanaged[Cdecl]) funcTable[0xCFC8BE9A5E1FE575UL]; + if (fn__controlLandingGear == null) fn__controlLandingGear = (delegate* unmanaged[Cdecl]) funcTable[0xCFC8BE9A5E1FE575UL]; var success = false; fn__controlLandingGear(&success, _vehicle, _state); if (!success) throw new Exception("Native execution failed"); @@ -99970,10 +99957,10 @@ public void ControlLandingGear(int _vehicle, int _state) } public int GetLandingGearState(IVehicle vehicle) => GetLandingGearState(vehicle.ScriptId); - public int GetLandingGearState(int _vehicle) + public int GetLandingGearState(uint _vehicle) { unsafe { - if (fn__getLandingGearState == null) fn__getLandingGearState = (delegate* unmanaged[Cdecl]) funcTable[0x9B0F3DCA3DB0F4CDUL]; + if (fn__getLandingGearState == null) fn__getLandingGearState = (delegate* unmanaged[Cdecl]) funcTable[0x9B0F3DCA3DB0F4CDUL]; var success = false; var result = fn__getLandingGearState(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -99993,10 +99980,10 @@ public bool IsAnyVehicleNearPoint(float _x, float _y, float _z, float _radius) } public void RequestVehicleHighDetailModel(IVehicle vehicle) => RequestVehicleHighDetailModel(vehicle.ScriptId); - public void RequestVehicleHighDetailModel(int _vehicle) + public void RequestVehicleHighDetailModel(uint _vehicle) { unsafe { - if (fn__requestVehicleHighDetailModel == null) fn__requestVehicleHighDetailModel = (delegate* unmanaged[Cdecl]) funcTable[0xA6E9FDCB2C76785EUL]; + if (fn__requestVehicleHighDetailModel == null) fn__requestVehicleHighDetailModel = (delegate* unmanaged[Cdecl]) funcTable[0xA6E9FDCB2C76785EUL]; var success = false; fn__requestVehicleHighDetailModel(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100004,10 +99991,10 @@ public void RequestVehicleHighDetailModel(int _vehicle) } public void RemoveVehicleHighDetailModel(IVehicle vehicle) => RemoveVehicleHighDetailModel(vehicle.ScriptId); - public void RemoveVehicleHighDetailModel(int _vehicle) + public void RemoveVehicleHighDetailModel(uint _vehicle) { unsafe { - if (fn__removeVehicleHighDetailModel == null) fn__removeVehicleHighDetailModel = (delegate* unmanaged[Cdecl]) funcTable[0x00689CDE5F7C6787UL]; + if (fn__removeVehicleHighDetailModel == null) fn__removeVehicleHighDetailModel = (delegate* unmanaged[Cdecl]) funcTable[0x00689CDE5F7C6787UL]; var success = false; fn__removeVehicleHighDetailModel(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100015,10 +100002,10 @@ public void RemoveVehicleHighDetailModel(int _vehicle) } public bool IsVehicleHighDetail(IVehicle vehicle) => IsVehicleHighDetail(vehicle.ScriptId); - public bool IsVehicleHighDetail(int _vehicle) + public bool IsVehicleHighDetail(uint _vehicle) { unsafe { - if (fn__isVehicleHighDetail == null) fn__isVehicleHighDetail = (delegate* unmanaged[Cdecl]) funcTable[0x1F25887F3C104278UL]; + if (fn__isVehicleHighDetail == null) fn__isVehicleHighDetail = (delegate* unmanaged[Cdecl]) funcTable[0x1F25887F3C104278UL]; var success = false; var result = fn__isVehicleHighDetail(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100058,36 +100045,36 @@ public void RemoveVehicleAsset(int _vehicleAsset) } public void SetVehicleTowTruckArmPosition(IVehicle vehicle, float position) => SetVehicleTowTruckArmPosition(vehicle.ScriptId, position); - public void SetVehicleTowTruckArmPosition(int _vehicle, float _position) + public void SetVehicleTowTruckArmPosition(uint _vehicle, float _position) { unsafe { - if (fn__setVehicleTowTruckArmPosition == null) fn__setVehicleTowTruckArmPosition = (delegate* unmanaged[Cdecl]) funcTable[0xFE54B92A344583CAUL]; + if (fn__setVehicleTowTruckArmPosition == null) fn__setVehicleTowTruckArmPosition = (delegate* unmanaged[Cdecl]) funcTable[0xFE54B92A344583CAUL]; var success = false; fn__setVehicleTowTruckArmPosition(&success, _vehicle, _position); if (!success) throw new Exception("Native execution failed"); } } - public void AttachVehicleToTowTruck(IVehicle towTruck, int vehicle, bool rear, float hookOffsetX, float hookOffsetY, float hookOffsetZ) => AttachVehicleToTowTruck(towTruck.ScriptId, vehicle, rear, hookOffsetX, hookOffsetY, hookOffsetZ); - public void AttachVehicleToTowTruck(int towTruck, IVehicle vehicle, bool rear, float hookOffsetX, float hookOffsetY, float hookOffsetZ) => AttachVehicleToTowTruck(towTruck, vehicle.ScriptId, rear, hookOffsetX, hookOffsetY, hookOffsetZ); + public void AttachVehicleToTowTruck(IVehicle towTruck, uint vehicle, bool rear, float hookOffsetX, float hookOffsetY, float hookOffsetZ) => AttachVehicleToTowTruck(towTruck.ScriptId, vehicle, rear, hookOffsetX, hookOffsetY, hookOffsetZ); + public void AttachVehicleToTowTruck(uint towTruck, IVehicle vehicle, bool rear, float hookOffsetX, float hookOffsetY, float hookOffsetZ) => AttachVehicleToTowTruck(towTruck, vehicle.ScriptId, rear, hookOffsetX, hookOffsetY, hookOffsetZ); public void AttachVehicleToTowTruck(IVehicle towTruck, IVehicle vehicle, bool rear, float hookOffsetX, float hookOffsetY, float hookOffsetZ) => AttachVehicleToTowTruck(towTruck.ScriptId, vehicle.ScriptId, rear, hookOffsetX, hookOffsetY, hookOffsetZ); - public void AttachVehicleToTowTruck(int _towTruck, int _vehicle, bool _rear, float _hookOffsetX, float _hookOffsetY, float _hookOffsetZ) + public void AttachVehicleToTowTruck(uint _towTruck, uint _vehicle, bool _rear, float _hookOffsetX, float _hookOffsetY, float _hookOffsetZ) { unsafe { - if (fn__attachVehicleToTowTruck == null) fn__attachVehicleToTowTruck = (delegate* unmanaged[Cdecl]) funcTable[0x29A16F8D621C4508UL]; + if (fn__attachVehicleToTowTruck == null) fn__attachVehicleToTowTruck = (delegate* unmanaged[Cdecl]) funcTable[0x29A16F8D621C4508UL]; var success = false; fn__attachVehicleToTowTruck(&success, _towTruck, _vehicle, (byte) (_rear ? 1 : 0), _hookOffsetX, _hookOffsetY, _hookOffsetZ); if (!success) throw new Exception("Native execution failed"); } } - public void DetachVehicleFromTowTruck(IVehicle towTruck, int vehicle) => DetachVehicleFromTowTruck(towTruck.ScriptId, vehicle); - public void DetachVehicleFromTowTruck(int towTruck, IVehicle vehicle) => DetachVehicleFromTowTruck(towTruck, vehicle.ScriptId); + public void DetachVehicleFromTowTruck(IVehicle towTruck, uint vehicle) => DetachVehicleFromTowTruck(towTruck.ScriptId, vehicle); + public void DetachVehicleFromTowTruck(uint towTruck, IVehicle vehicle) => DetachVehicleFromTowTruck(towTruck, vehicle.ScriptId); public void DetachVehicleFromTowTruck(IVehicle towTruck, IVehicle vehicle) => DetachVehicleFromTowTruck(towTruck.ScriptId, vehicle.ScriptId); - public void DetachVehicleFromTowTruck(int _towTruck, int _vehicle) + public void DetachVehicleFromTowTruck(uint _towTruck, uint _vehicle) { unsafe { - if (fn__detachVehicleFromTowTruck == null) fn__detachVehicleFromTowTruck = (delegate* unmanaged[Cdecl]) funcTable[0xC2DB6B6708350ED8UL]; + if (fn__detachVehicleFromTowTruck == null) fn__detachVehicleFromTowTruck = (delegate* unmanaged[Cdecl]) funcTable[0xC2DB6B6708350ED8UL]; var success = false; fn__detachVehicleFromTowTruck(&success, _towTruck, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100095,10 +100082,10 @@ public void DetachVehicleFromTowTruck(int _towTruck, int _vehicle) } public bool DetachVehicleFromAnyTowTruck(IVehicle vehicle) => DetachVehicleFromAnyTowTruck(vehicle.ScriptId); - public bool DetachVehicleFromAnyTowTruck(int _vehicle) + public bool DetachVehicleFromAnyTowTruck(uint _vehicle) { unsafe { - if (fn__detachVehicleFromAnyTowTruck == null) fn__detachVehicleFromAnyTowTruck = (delegate* unmanaged[Cdecl]) funcTable[0xD0E9CE05A1E68CD8UL]; + if (fn__detachVehicleFromAnyTowTruck == null) fn__detachVehicleFromAnyTowTruck = (delegate* unmanaged[Cdecl]) funcTable[0xD0E9CE05A1E68CD8UL]; var success = false; var result = fn__detachVehicleFromAnyTowTruck(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100106,13 +100093,13 @@ public bool DetachVehicleFromAnyTowTruck(int _vehicle) } } - public bool IsVehicleAttachedToTowTruck(IVehicle towTruck, int vehicle) => IsVehicleAttachedToTowTruck(towTruck.ScriptId, vehicle); - public bool IsVehicleAttachedToTowTruck(int towTruck, IVehicle vehicle) => IsVehicleAttachedToTowTruck(towTruck, vehicle.ScriptId); + public bool IsVehicleAttachedToTowTruck(IVehicle towTruck, uint vehicle) => IsVehicleAttachedToTowTruck(towTruck.ScriptId, vehicle); + public bool IsVehicleAttachedToTowTruck(uint towTruck, IVehicle vehicle) => IsVehicleAttachedToTowTruck(towTruck, vehicle.ScriptId); public bool IsVehicleAttachedToTowTruck(IVehicle towTruck, IVehicle vehicle) => IsVehicleAttachedToTowTruck(towTruck.ScriptId, vehicle.ScriptId); - public bool IsVehicleAttachedToTowTruck(int _towTruck, int _vehicle) + public bool IsVehicleAttachedToTowTruck(uint _towTruck, uint _vehicle) { unsafe { - if (fn__isVehicleAttachedToTowTruck == null) fn__isVehicleAttachedToTowTruck = (delegate* unmanaged[Cdecl]) funcTable[0x146DF9EC4C4B9FD4UL]; + if (fn__isVehicleAttachedToTowTruck == null) fn__isVehicleAttachedToTowTruck = (delegate* unmanaged[Cdecl]) funcTable[0x146DF9EC4C4B9FD4UL]; var success = false; var result = fn__isVehicleAttachedToTowTruck(&success, _towTruck, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100120,11 +100107,11 @@ public bool IsVehicleAttachedToTowTruck(int _towTruck, int _vehicle) } } - public int GetEntityAttachedToTowTruck(IVehicle towTruck) => GetEntityAttachedToTowTruck(towTruck.ScriptId); - public int GetEntityAttachedToTowTruck(int _towTruck) + public uint GetEntityAttachedToTowTruck(IVehicle towTruck) => GetEntityAttachedToTowTruck(towTruck.ScriptId); + public uint GetEntityAttachedToTowTruck(uint _towTruck) { unsafe { - if (fn__getEntityAttachedToTowTruck == null) fn__getEntityAttachedToTowTruck = (delegate* unmanaged[Cdecl]) funcTable[0xEFEA18DCF10F8F75UL]; + if (fn__getEntityAttachedToTowTruck == null) fn__getEntityAttachedToTowTruck = (delegate* unmanaged[Cdecl]) funcTable[0xEFEA18DCF10F8F75UL]; var success = false; var result = fn__getEntityAttachedToTowTruck(&success, _towTruck); if (!success) throw new Exception("Native execution failed"); @@ -100132,11 +100119,11 @@ public int GetEntityAttachedToTowTruck(int _towTruck) } } - public int SetVehicleAutomaticallyAttaches(IVehicle vehicle, bool p1, int p2) => SetVehicleAutomaticallyAttaches(vehicle.ScriptId, p1, p2); - public int SetVehicleAutomaticallyAttaches(int _vehicle, bool _p1, int _p2) + public uint SetVehicleAutomaticallyAttaches(IVehicle vehicle, bool p1, int p2) => SetVehicleAutomaticallyAttaches(vehicle.ScriptId, p1, p2); + public uint SetVehicleAutomaticallyAttaches(uint _vehicle, bool _p1, int _p2) { unsafe { - if (fn__setVehicleAutomaticallyAttaches == null) fn__setVehicleAutomaticallyAttaches = (delegate* unmanaged[Cdecl]) funcTable[0x8BA6F76BC53A1493UL]; + if (fn__setVehicleAutomaticallyAttaches == null) fn__setVehicleAutomaticallyAttaches = (delegate* unmanaged[Cdecl]) funcTable[0x8BA6F76BC53A1493UL]; var success = false; var result = fn__setVehicleAutomaticallyAttaches(&success, _vehicle, (byte) (_p1 ? 1 : 0), _p2); if (!success) throw new Exception("Native execution failed"); @@ -100145,10 +100132,10 @@ public int SetVehicleAutomaticallyAttaches(int _vehicle, bool _p1, int _p2) } public void SetVehicleBulldozerArmPosition(IVehicle vehicle, float position, bool p2) => SetVehicleBulldozerArmPosition(vehicle.ScriptId, position, p2); - public void SetVehicleBulldozerArmPosition(int _vehicle, float _position, bool _p2) + public void SetVehicleBulldozerArmPosition(uint _vehicle, float _position, bool _p2) { unsafe { - if (fn__setVehicleBulldozerArmPosition == null) fn__setVehicleBulldozerArmPosition = (delegate* unmanaged[Cdecl]) funcTable[0xF8EBCCC96ADB9FB7UL]; + if (fn__setVehicleBulldozerArmPosition == null) fn__setVehicleBulldozerArmPosition = (delegate* unmanaged[Cdecl]) funcTable[0xF8EBCCC96ADB9FB7UL]; var success = false; fn__setVehicleBulldozerArmPosition(&success, _vehicle, _position, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -100156,10 +100143,10 @@ public void SetVehicleBulldozerArmPosition(int _vehicle, float _position, bool _ } public void SetVehicleTankTurretPosition(IVehicle vehicle, float position, bool p2) => SetVehicleTankTurretPosition(vehicle.ScriptId, position, p2); - public void SetVehicleTankTurretPosition(int _vehicle, float _position, bool _p2) + public void SetVehicleTankTurretPosition(uint _vehicle, float _position, bool _p2) { unsafe { - if (fn__setVehicleTankTurretPosition == null) fn__setVehicleTankTurretPosition = (delegate* unmanaged[Cdecl]) funcTable[0x56B94C6D7127DFBAUL]; + if (fn__setVehicleTankTurretPosition == null) fn__setVehicleTankTurretPosition = (delegate* unmanaged[Cdecl]) funcTable[0x56B94C6D7127DFBAUL]; var success = false; fn__setVehicleTankTurretPosition(&success, _vehicle, _position, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -100167,10 +100154,10 @@ public void SetVehicleTankTurretPosition(int _vehicle, float _position, bool _p2 } public void SetVehicleTurretTarget(IVehicle vehicle, bool p1, float x, float y, float z, bool p5) => SetVehicleTurretTarget(vehicle.ScriptId, p1, x, y, z, p5); - public void SetVehicleTurretTarget(int _vehicle, bool _p1, float _x, float _y, float _z, bool _p5) + public void SetVehicleTurretTarget(uint _vehicle, bool _p1, float _x, float _y, float _z, bool _p5) { unsafe { - if (fn__setVehicleTurretTarget == null) fn__setVehicleTurretTarget = (delegate* unmanaged[Cdecl]) funcTable[0x0581730AB9380412UL]; + if (fn__setVehicleTurretTarget == null) fn__setVehicleTurretTarget = (delegate* unmanaged[Cdecl]) funcTable[0x0581730AB9380412UL]; var success = false; fn__setVehicleTurretTarget(&success, _vehicle, (byte) (_p1 ? 1 : 0), _x, _y, _z, (byte) (_p5 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -100178,10 +100165,10 @@ public void SetVehicleTurretTarget(int _vehicle, bool _p1, float _x, float _y, f } public void SetVehicleTankStationary(IVehicle vehicle, bool p1) => SetVehicleTankStationary(vehicle.ScriptId, p1); - public void SetVehicleTankStationary(int _vehicle, bool _p1) + public void SetVehicleTankStationary(uint _vehicle, bool _p1) { unsafe { - if (fn__setVehicleTankStationary == null) fn__setVehicleTankStationary = (delegate* unmanaged[Cdecl]) funcTable[0x737E398138550FFFUL]; + if (fn__setVehicleTankStationary == null) fn__setVehicleTankStationary = (delegate* unmanaged[Cdecl]) funcTable[0x737E398138550FFFUL]; var success = false; fn__setVehicleTankStationary(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -100189,10 +100176,10 @@ public void SetVehicleTankStationary(int _vehicle, bool _p1) } public void SetVehicleTurretSpeedThisFrame(IVehicle vehicle, float speed) => SetVehicleTurretSpeedThisFrame(vehicle.ScriptId, speed); - public void SetVehicleTurretSpeedThisFrame(int _vehicle, float _speed) + public void SetVehicleTurretSpeedThisFrame(uint _vehicle, float _speed) { unsafe { - if (fn__setVehicleTurretSpeedThisFrame == null) fn__setVehicleTurretSpeedThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x1093408B4B9D1146UL]; + if (fn__setVehicleTurretSpeedThisFrame == null) fn__setVehicleTurretSpeedThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x1093408B4B9D1146UL]; var success = false; fn__setVehicleTurretSpeedThisFrame(&success, _vehicle, _speed); if (!success) throw new Exception("Native execution failed"); @@ -100200,10 +100187,10 @@ public void SetVehicleTurretSpeedThisFrame(int _vehicle, float _speed) } public void DisableVehicleTurretMovementThisFrame(IVehicle vehicle) => DisableVehicleTurretMovementThisFrame(vehicle.ScriptId); - public void DisableVehicleTurretMovementThisFrame(int _vehicle) + public void DisableVehicleTurretMovementThisFrame(uint _vehicle) { unsafe { - if (fn__disableVehicleTurretMovementThisFrame == null) fn__disableVehicleTurretMovementThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x32CAEDF24A583345UL]; + if (fn__disableVehicleTurretMovementThisFrame == null) fn__disableVehicleTurretMovementThisFrame = (delegate* unmanaged[Cdecl]) funcTable[0x32CAEDF24A583345UL]; var success = false; fn__disableVehicleTurretMovementThisFrame(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100211,10 +100198,10 @@ public void DisableVehicleTurretMovementThisFrame(int _vehicle) } public void SetVehicleFlightNozzlePosition(IVehicle vehicle, float angleRatio) => SetVehicleFlightNozzlePosition(vehicle.ScriptId, angleRatio); - public void SetVehicleFlightNozzlePosition(int _vehicle, float _angleRatio) + public void SetVehicleFlightNozzlePosition(uint _vehicle, float _angleRatio) { unsafe { - if (fn__setVehicleFlightNozzlePosition == null) fn__setVehicleFlightNozzlePosition = (delegate* unmanaged[Cdecl]) funcTable[0x30D779DE7C4F6DD3UL]; + if (fn__setVehicleFlightNozzlePosition == null) fn__setVehicleFlightNozzlePosition = (delegate* unmanaged[Cdecl]) funcTable[0x30D779DE7C4F6DD3UL]; var success = false; fn__setVehicleFlightNozzlePosition(&success, _vehicle, _angleRatio); if (!success) throw new Exception("Native execution failed"); @@ -100222,10 +100209,10 @@ public void SetVehicleFlightNozzlePosition(int _vehicle, float _angleRatio) } public void SetVehicleFlightNozzlePositionImmediate(IVehicle vehicle, float angle) => SetVehicleFlightNozzlePositionImmediate(vehicle.ScriptId, angle); - public void SetVehicleFlightNozzlePositionImmediate(int _vehicle, float _angle) + public void SetVehicleFlightNozzlePositionImmediate(uint _vehicle, float _angle) { unsafe { - if (fn__setVehicleFlightNozzlePositionImmediate == null) fn__setVehicleFlightNozzlePositionImmediate = (delegate* unmanaged[Cdecl]) funcTable[0x9AA47FFF660CB932UL]; + if (fn__setVehicleFlightNozzlePositionImmediate == null) fn__setVehicleFlightNozzlePositionImmediate = (delegate* unmanaged[Cdecl]) funcTable[0x9AA47FFF660CB932UL]; var success = false; fn__setVehicleFlightNozzlePositionImmediate(&success, _vehicle, _angle); if (!success) throw new Exception("Native execution failed"); @@ -100233,10 +100220,10 @@ public void SetVehicleFlightNozzlePositionImmediate(int _vehicle, float _angle) } public float GetVehicleFlightNozzlePosition(IVehicle plane) => GetVehicleFlightNozzlePosition(plane.ScriptId); - public float GetVehicleFlightNozzlePosition(int _plane) + public float GetVehicleFlightNozzlePosition(uint _plane) { unsafe { - if (fn__getVehicleFlightNozzlePosition == null) fn__getVehicleFlightNozzlePosition = (delegate* unmanaged[Cdecl]) funcTable[0xDA62027C8BDB326EUL]; + if (fn__getVehicleFlightNozzlePosition == null) fn__getVehicleFlightNozzlePosition = (delegate* unmanaged[Cdecl]) funcTable[0xDA62027C8BDB326EUL]; var success = false; var result = fn__getVehicleFlightNozzlePosition(&success, _plane); if (!success) throw new Exception("Native execution failed"); @@ -100245,10 +100232,10 @@ public float GetVehicleFlightNozzlePosition(int _plane) } public void SetDisableVerticalFlightModeTransition(IVehicle vehicle, bool toggle) => SetDisableVerticalFlightModeTransition(vehicle.ScriptId, toggle); - public void SetDisableVerticalFlightModeTransition(int _vehicle, bool _toggle) + public void SetDisableVerticalFlightModeTransition(uint _vehicle, bool _toggle) { unsafe { - if (fn__setDisableVerticalFlightModeTransition == null) fn__setDisableVerticalFlightModeTransition = (delegate* unmanaged[Cdecl]) funcTable[0xCE2B43770B655F8FUL]; + if (fn__setDisableVerticalFlightModeTransition == null) fn__setDisableVerticalFlightModeTransition = (delegate* unmanaged[Cdecl]) funcTable[0xCE2B43770B655F8FUL]; var success = false; fn__setDisableVerticalFlightModeTransition(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -100271,10 +100258,10 @@ public bool GenerateVehicleCreationPosFromPaths(ref Vector3 _outVec, int _p1, re } public void SetVehicleBurnout(IVehicle vehicle, bool toggle) => SetVehicleBurnout(vehicle.ScriptId, toggle); - public void SetVehicleBurnout(int _vehicle, bool _toggle) + public void SetVehicleBurnout(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleBurnout == null) fn__setVehicleBurnout = (delegate* unmanaged[Cdecl]) funcTable[0xFB8794444A7D60FBUL]; + if (fn__setVehicleBurnout == null) fn__setVehicleBurnout = (delegate* unmanaged[Cdecl]) funcTable[0xFB8794444A7D60FBUL]; var success = false; fn__setVehicleBurnout(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -100282,10 +100269,10 @@ public void SetVehicleBurnout(int _vehicle, bool _toggle) } public bool IsVehicleInBurnout(IVehicle vehicle) => IsVehicleInBurnout(vehicle.ScriptId); - public bool IsVehicleInBurnout(int _vehicle) + public bool IsVehicleInBurnout(uint _vehicle) { unsafe { - if (fn__isVehicleInBurnout == null) fn__isVehicleInBurnout = (delegate* unmanaged[Cdecl]) funcTable[0x1297A88E081430EBUL]; + if (fn__isVehicleInBurnout == null) fn__isVehicleInBurnout = (delegate* unmanaged[Cdecl]) funcTable[0x1297A88E081430EBUL]; var success = false; var result = fn__isVehicleInBurnout(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100294,10 +100281,10 @@ public bool IsVehicleInBurnout(int _vehicle) } public void SetVehicleReduceGrip(IVehicle vehicle, bool toggle) => SetVehicleReduceGrip(vehicle.ScriptId, toggle); - public void SetVehicleReduceGrip(int _vehicle, bool _toggle) + public void SetVehicleReduceGrip(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleReduceGrip == null) fn__setVehicleReduceGrip = (delegate* unmanaged[Cdecl]) funcTable[0x222FF6A823D122E2UL]; + if (fn__setVehicleReduceGrip == null) fn__setVehicleReduceGrip = (delegate* unmanaged[Cdecl]) funcTable[0x222FF6A823D122E2UL]; var success = false; fn__setVehicleReduceGrip(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -100305,10 +100292,10 @@ public void SetVehicleReduceGrip(int _vehicle, bool _toggle) } public void SetVehicleReduceGripLevel(IVehicle vehicle, int val) => SetVehicleReduceGripLevel(vehicle.ScriptId, val); - public void SetVehicleReduceGripLevel(int _vehicle, int _val) + public void SetVehicleReduceGripLevel(uint _vehicle, int _val) { unsafe { - if (fn__setVehicleReduceGripLevel == null) fn__setVehicleReduceGripLevel = (delegate* unmanaged[Cdecl]) funcTable[0x6DEE944E1EE90CFBUL]; + if (fn__setVehicleReduceGripLevel == null) fn__setVehicleReduceGripLevel = (delegate* unmanaged[Cdecl]) funcTable[0x6DEE944E1EE90CFBUL]; var success = false; fn__setVehicleReduceGripLevel(&success, _vehicle, _val); if (!success) throw new Exception("Native execution failed"); @@ -100316,10 +100303,10 @@ public void SetVehicleReduceGripLevel(int _vehicle, int _val) } public void SetVehicleIndicatorLights(IVehicle vehicle, int turnSignal, bool toggle) => SetVehicleIndicatorLights(vehicle.ScriptId, turnSignal, toggle); - public void SetVehicleIndicatorLights(int _vehicle, int _turnSignal, bool _toggle) + public void SetVehicleIndicatorLights(uint _vehicle, int _turnSignal, bool _toggle) { unsafe { - if (fn__setVehicleIndicatorLights == null) fn__setVehicleIndicatorLights = (delegate* unmanaged[Cdecl]) funcTable[0xB5D45264751B7DF0UL]; + if (fn__setVehicleIndicatorLights == null) fn__setVehicleIndicatorLights = (delegate* unmanaged[Cdecl]) funcTable[0xB5D45264751B7DF0UL]; var success = false; fn__setVehicleIndicatorLights(&success, _vehicle, _turnSignal, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -100327,10 +100314,10 @@ public void SetVehicleIndicatorLights(int _vehicle, int _turnSignal, bool _toggl } public void SetVehicleBrakeLights(IVehicle vehicle, bool toggle) => SetVehicleBrakeLights(vehicle.ScriptId, toggle); - public void SetVehicleBrakeLights(int _vehicle, bool _toggle) + public void SetVehicleBrakeLights(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleBrakeLights == null) fn__setVehicleBrakeLights = (delegate* unmanaged[Cdecl]) funcTable[0x92B35082E0B42F66UL]; + if (fn__setVehicleBrakeLights == null) fn__setVehicleBrakeLights = (delegate* unmanaged[Cdecl]) funcTable[0x92B35082E0B42F66UL]; var success = false; fn__setVehicleBrakeLights(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -100338,10 +100325,10 @@ public void SetVehicleBrakeLights(int _vehicle, bool _toggle) } public void SetVehicleHandbrake(IVehicle vehicle, bool toggle) => SetVehicleHandbrake(vehicle.ScriptId, toggle); - public void SetVehicleHandbrake(int _vehicle, bool _toggle) + public void SetVehicleHandbrake(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleHandbrake == null) fn__setVehicleHandbrake = (delegate* unmanaged[Cdecl]) funcTable[0x684785568EF26A22UL]; + if (fn__setVehicleHandbrake == null) fn__setVehicleHandbrake = (delegate* unmanaged[Cdecl]) funcTable[0x684785568EF26A22UL]; var success = false; fn__setVehicleHandbrake(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -100349,10 +100336,10 @@ public void SetVehicleHandbrake(int _vehicle, bool _toggle) } public void SetVehicleBrake(IVehicle vehicle, bool toggle) => SetVehicleBrake(vehicle.ScriptId, toggle); - public void SetVehicleBrake(int _vehicle, bool _toggle) + public void SetVehicleBrake(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleBrake == null) fn__setVehicleBrake = (delegate* unmanaged[Cdecl]) funcTable[0xE4E2FD323574965CUL]; + if (fn__setVehicleBrake == null) fn__setVehicleBrake = (delegate* unmanaged[Cdecl]) funcTable[0xE4E2FD323574965CUL]; var success = false; fn__setVehicleBrake(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -100400,11 +100387,11 @@ public void NetworkCapEmptyCrowdingVehiclesRemoval(int _p0) } } - public bool GetVehicleTrailerVehicle(IVehicle vehicle, ref int trailer) => GetVehicleTrailerVehicle(vehicle.ScriptId, ref trailer); - public bool GetVehicleTrailerVehicle(int _vehicle, ref int _trailer) + public bool GetVehicleTrailerVehicle(IVehicle vehicle, ref uint trailer) => GetVehicleTrailerVehicle(vehicle.ScriptId, ref trailer); + public bool GetVehicleTrailerVehicle(uint _vehicle, ref uint _trailer) { unsafe { - if (fn__getVehicleTrailerVehicle == null) fn__getVehicleTrailerVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x1CDD6BADC297830DUL]; + if (fn__getVehicleTrailerVehicle == null) fn__getVehicleTrailerVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x1CDD6BADC297830DUL]; var success = false; var ref_trailer = _trailer; var result = fn__getVehicleTrailerVehicle(&success, _vehicle, &ref_trailer); @@ -100415,10 +100402,10 @@ public bool GetVehicleTrailerVehicle(int _vehicle, ref int _trailer) } public void SetVehicleUsesLargeRearRamp(IVehicle vehicle, bool toggle) => SetVehicleUsesLargeRearRamp(vehicle.ScriptId, toggle); - public void SetVehicleUsesLargeRearRamp(int _vehicle, bool _toggle) + public void SetVehicleUsesLargeRearRamp(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleUsesLargeRearRamp == null) fn__setVehicleUsesLargeRearRamp = (delegate* unmanaged[Cdecl]) funcTable[0xCAC66558B944DA67UL]; + if (fn__setVehicleUsesLargeRearRamp == null) fn__setVehicleUsesLargeRearRamp = (delegate* unmanaged[Cdecl]) funcTable[0xCAC66558B944DA67UL]; var success = false; fn__setVehicleUsesLargeRearRamp(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -100426,10 +100413,10 @@ public void SetVehicleUsesLargeRearRamp(int _vehicle, bool _toggle) } public void SetVehicleRudderBroken(IVehicle vehicle, bool toggle) => SetVehicleRudderBroken(vehicle.ScriptId, toggle); - public void SetVehicleRudderBroken(int _vehicle, bool _toggle) + public void SetVehicleRudderBroken(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleRudderBroken == null) fn__setVehicleRudderBroken = (delegate* unmanaged[Cdecl]) funcTable[0x09606148B6C71DEFUL]; + if (fn__setVehicleRudderBroken == null) fn__setVehicleRudderBroken = (delegate* unmanaged[Cdecl]) funcTable[0x09606148B6C71DEFUL]; var success = false; fn__setVehicleRudderBroken(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -100437,10 +100424,10 @@ public void SetVehicleRudderBroken(int _vehicle, bool _toggle) } public void SetConvertibleRoofLatchState(IVehicle vehicle, bool state) => SetConvertibleRoofLatchState(vehicle.ScriptId, state); - public void SetConvertibleRoofLatchState(int _vehicle, bool _state) + public void SetConvertibleRoofLatchState(uint _vehicle, bool _state) { unsafe { - if (fn__setConvertibleRoofLatchState == null) fn__setConvertibleRoofLatchState = (delegate* unmanaged[Cdecl]) funcTable[0x1A78AD3D8240536FUL]; + if (fn__setConvertibleRoofLatchState == null) fn__setConvertibleRoofLatchState = (delegate* unmanaged[Cdecl]) funcTable[0x1A78AD3D8240536FUL]; var success = false; fn__setConvertibleRoofLatchState(&success, _vehicle, (byte) (_state ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -100448,10 +100435,10 @@ public void SetConvertibleRoofLatchState(int _vehicle, bool _state) } public float GetVehicleEstimatedMaxSpeed(IVehicle vehicle) => GetVehicleEstimatedMaxSpeed(vehicle.ScriptId); - public float GetVehicleEstimatedMaxSpeed(int _vehicle) + public float GetVehicleEstimatedMaxSpeed(uint _vehicle) { unsafe { - if (fn__getVehicleEstimatedMaxSpeed == null) fn__getVehicleEstimatedMaxSpeed = (delegate* unmanaged[Cdecl]) funcTable[0x53AF99BAA671CA47UL]; + if (fn__getVehicleEstimatedMaxSpeed == null) fn__getVehicleEstimatedMaxSpeed = (delegate* unmanaged[Cdecl]) funcTable[0x53AF99BAA671CA47UL]; var success = false; var result = fn__getVehicleEstimatedMaxSpeed(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100460,10 +100447,10 @@ public float GetVehicleEstimatedMaxSpeed(int _vehicle) } public float GetVehicleMaxBraking(IVehicle vehicle) => GetVehicleMaxBraking(vehicle.ScriptId); - public float GetVehicleMaxBraking(int _vehicle) + public float GetVehicleMaxBraking(uint _vehicle) { unsafe { - if (fn__getVehicleMaxBraking == null) fn__getVehicleMaxBraking = (delegate* unmanaged[Cdecl]) funcTable[0xAD7E85FC227197C4UL]; + if (fn__getVehicleMaxBraking == null) fn__getVehicleMaxBraking = (delegate* unmanaged[Cdecl]) funcTable[0xAD7E85FC227197C4UL]; var success = false; var result = fn__getVehicleMaxBraking(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100472,10 +100459,10 @@ public float GetVehicleMaxBraking(int _vehicle) } public float GetVehicleMaxTraction(IVehicle vehicle) => GetVehicleMaxTraction(vehicle.ScriptId); - public float GetVehicleMaxTraction(int _vehicle) + public float GetVehicleMaxTraction(uint _vehicle) { unsafe { - if (fn__getVehicleMaxTraction == null) fn__getVehicleMaxTraction = (delegate* unmanaged[Cdecl]) funcTable[0xA132FB5370554DB0UL]; + if (fn__getVehicleMaxTraction == null) fn__getVehicleMaxTraction = (delegate* unmanaged[Cdecl]) funcTable[0xA132FB5370554DB0UL]; var success = false; var result = fn__getVehicleMaxTraction(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100484,10 +100471,10 @@ public float GetVehicleMaxTraction(int _vehicle) } public float GetVehicleAcceleration(IVehicle vehicle) => GetVehicleAcceleration(vehicle.ScriptId); - public float GetVehicleAcceleration(int _vehicle) + public float GetVehicleAcceleration(uint _vehicle) { unsafe { - if (fn__getVehicleAcceleration == null) fn__getVehicleAcceleration = (delegate* unmanaged[Cdecl]) funcTable[0x5DD35C8D074E57AEUL]; + if (fn__getVehicleAcceleration == null) fn__getVehicleAcceleration = (delegate* unmanaged[Cdecl]) funcTable[0x5DD35C8D074E57AEUL]; var success = false; var result = fn__getVehicleAcceleration(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100661,10 +100648,10 @@ public bool RemoveRoadNodeSpeedZone(int _speedzone) } public void OpenBombBayDoors(IVehicle vehicle) => OpenBombBayDoors(vehicle.ScriptId); - public void OpenBombBayDoors(int _vehicle) + public void OpenBombBayDoors(uint _vehicle) { unsafe { - if (fn__openBombBayDoors == null) fn__openBombBayDoors = (delegate* unmanaged[Cdecl]) funcTable[0x87E7F24270732CB1UL]; + if (fn__openBombBayDoors == null) fn__openBombBayDoors = (delegate* unmanaged[Cdecl]) funcTable[0x87E7F24270732CB1UL]; var success = false; fn__openBombBayDoors(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100672,10 +100659,10 @@ public void OpenBombBayDoors(int _vehicle) } public void CloseBombBayDoors(IVehicle vehicle) => CloseBombBayDoors(vehicle.ScriptId); - public void CloseBombBayDoors(int _vehicle) + public void CloseBombBayDoors(uint _vehicle) { unsafe { - if (fn__closeBombBayDoors == null) fn__closeBombBayDoors = (delegate* unmanaged[Cdecl]) funcTable[0x3556041742A0DC74UL]; + if (fn__closeBombBayDoors == null) fn__closeBombBayDoors = (delegate* unmanaged[Cdecl]) funcTable[0x3556041742A0DC74UL]; var success = false; fn__closeBombBayDoors(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100683,10 +100670,10 @@ public void CloseBombBayDoors(int _vehicle) } public bool GetAreBombBayDoorsOpen(IVehicle aircraft) => GetAreBombBayDoorsOpen(aircraft.ScriptId); - public bool GetAreBombBayDoorsOpen(int _aircraft) + public bool GetAreBombBayDoorsOpen(uint _aircraft) { unsafe { - if (fn__getAreBombBayDoorsOpen == null) fn__getAreBombBayDoorsOpen = (delegate* unmanaged[Cdecl]) funcTable[0xD0917A423314BBA8UL]; + if (fn__getAreBombBayDoorsOpen == null) fn__getAreBombBayDoorsOpen = (delegate* unmanaged[Cdecl]) funcTable[0xD0917A423314BBA8UL]; var success = false; var result = fn__getAreBombBayDoorsOpen(&success, _aircraft); if (!success) throw new Exception("Native execution failed"); @@ -100695,10 +100682,10 @@ public bool GetAreBombBayDoorsOpen(int _aircraft) } public bool IsVehicleSearchlightOn(IVehicle vehicle) => IsVehicleSearchlightOn(vehicle.ScriptId); - public bool IsVehicleSearchlightOn(int _vehicle) + public bool IsVehicleSearchlightOn(uint _vehicle) { unsafe { - if (fn__isVehicleSearchlightOn == null) fn__isVehicleSearchlightOn = (delegate* unmanaged[Cdecl]) funcTable[0xC0F97FCE55094987UL]; + if (fn__isVehicleSearchlightOn == null) fn__isVehicleSearchlightOn = (delegate* unmanaged[Cdecl]) funcTable[0xC0F97FCE55094987UL]; var success = false; var result = fn__isVehicleSearchlightOn(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100707,10 +100694,10 @@ public bool IsVehicleSearchlightOn(int _vehicle) } public void SetVehicleSearchlight(IVehicle heli, bool toggle, bool canBeUsedByAI) => SetVehicleSearchlight(heli.ScriptId, toggle, canBeUsedByAI); - public void SetVehicleSearchlight(int _heli, bool _toggle, bool _canBeUsedByAI) + public void SetVehicleSearchlight(uint _heli, bool _toggle, bool _canBeUsedByAI) { unsafe { - if (fn__setVehicleSearchlight == null) fn__setVehicleSearchlight = (delegate* unmanaged[Cdecl]) funcTable[0x14E85C5EE7A4D542UL]; + if (fn__setVehicleSearchlight == null) fn__setVehicleSearchlight = (delegate* unmanaged[Cdecl]) funcTable[0x14E85C5EE7A4D542UL]; var success = false; fn__setVehicleSearchlight(&success, _heli, (byte) (_toggle ? 1 : 0), (byte) (_canBeUsedByAI ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -100718,10 +100705,10 @@ public void SetVehicleSearchlight(int _heli, bool _toggle, bool _canBeUsedByAI) } public bool DoesVehicleHaveSearchlight(IVehicle vehicle) => DoesVehicleHaveSearchlight(vehicle.ScriptId); - public bool DoesVehicleHaveSearchlight(int _vehicle) + public bool DoesVehicleHaveSearchlight(uint _vehicle) { unsafe { - if (fn__doesVehicleHaveSearchlight == null) fn__doesVehicleHaveSearchlight = (delegate* unmanaged[Cdecl]) funcTable[0x99015ED7DBEA5113UL]; + if (fn__doesVehicleHaveSearchlight == null) fn__doesVehicleHaveSearchlight = (delegate* unmanaged[Cdecl]) funcTable[0x99015ED7DBEA5113UL]; var success = false; var result = fn__doesVehicleHaveSearchlight(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100729,13 +100716,13 @@ public bool DoesVehicleHaveSearchlight(int _vehicle) } } - public bool IsEntryPointForSeatClear(IPlayer ped, int vehicle, int seatIndex, bool side, bool onEnter) => IsEntryPointForSeatClear(ped.ScriptId, vehicle, seatIndex, side, onEnter); - public bool IsEntryPointForSeatClear(int ped, IVehicle vehicle, int seatIndex, bool side, bool onEnter) => IsEntryPointForSeatClear(ped, vehicle.ScriptId, seatIndex, side, onEnter); + public bool IsEntryPointForSeatClear(IPlayer ped, uint vehicle, int seatIndex, bool side, bool onEnter) => IsEntryPointForSeatClear(ped.ScriptId, vehicle, seatIndex, side, onEnter); + public bool IsEntryPointForSeatClear(uint ped, IVehicle vehicle, int seatIndex, bool side, bool onEnter) => IsEntryPointForSeatClear(ped, vehicle.ScriptId, seatIndex, side, onEnter); public bool IsEntryPointForSeatClear(IPlayer ped, IVehicle vehicle, int seatIndex, bool side, bool onEnter) => IsEntryPointForSeatClear(ped.ScriptId, vehicle.ScriptId, seatIndex, side, onEnter); - public bool IsEntryPointForSeatClear(int _ped, int _vehicle, int _seatIndex, bool _side, bool _onEnter) + public bool IsEntryPointForSeatClear(uint _ped, uint _vehicle, int _seatIndex, bool _side, bool _onEnter) { unsafe { - if (fn__isEntryPointForSeatClear == null) fn__isEntryPointForSeatClear = (delegate* unmanaged[Cdecl]) funcTable[0x639431E895B9AA57UL]; + if (fn__isEntryPointForSeatClear == null) fn__isEntryPointForSeatClear = (delegate* unmanaged[Cdecl]) funcTable[0x639431E895B9AA57UL]; var success = false; var result = fn__isEntryPointForSeatClear(&success, _ped, _vehicle, _seatIndex, (byte) (_side ? 1 : 0), (byte) (_onEnter ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -100744,10 +100731,10 @@ public bool IsEntryPointForSeatClear(int _ped, int _vehicle, int _seatIndex, boo } public Vector3 GetEntryPointPosition(IVehicle vehicle, int doorId) => GetEntryPointPosition(vehicle.ScriptId, doorId); - public Vector3 GetEntryPointPosition(int _vehicle, int _doorId) + public Vector3 GetEntryPointPosition(uint _vehicle, int _doorId) { unsafe { - if (fn__getEntryPointPosition == null) fn__getEntryPointPosition = (delegate* unmanaged[Cdecl]) funcTable[0xC0572928C0ABFDA3UL]; + if (fn__getEntryPointPosition == null) fn__getEntryPointPosition = (delegate* unmanaged[Cdecl]) funcTable[0xC0572928C0ABFDA3UL]; var success = false; var result = fn__getEntryPointPosition(&success, _vehicle, _doorId); if (!success) throw new Exception("Native execution failed"); @@ -100756,10 +100743,10 @@ public Vector3 GetEntryPointPosition(int _vehicle, int _doorId) } public bool CanShuffleSeat(IVehicle vehicle, int seatIndex) => CanShuffleSeat(vehicle.ScriptId, seatIndex); - public bool CanShuffleSeat(int _vehicle, int _seatIndex) + public bool CanShuffleSeat(uint _vehicle, int _seatIndex) { unsafe { - if (fn__canShuffleSeat == null) fn__canShuffleSeat = (delegate* unmanaged[Cdecl]) funcTable[0x30785D90C956BF35UL]; + if (fn__canShuffleSeat == null) fn__canShuffleSeat = (delegate* unmanaged[Cdecl]) funcTable[0x30785D90C956BF35UL]; var success = false; var result = fn__canShuffleSeat(&success, _vehicle, _seatIndex); if (!success) throw new Exception("Native execution failed"); @@ -100768,10 +100755,10 @@ public bool CanShuffleSeat(int _vehicle, int _seatIndex) } public int GetNumModKits(IVehicle vehicle) => GetNumModKits(vehicle.ScriptId); - public int GetNumModKits(int _vehicle) + public int GetNumModKits(uint _vehicle) { unsafe { - if (fn__getNumModKits == null) fn__getNumModKits = (delegate* unmanaged[Cdecl]) funcTable[0x33F2E3FE70EAAE1DUL]; + if (fn__getNumModKits == null) fn__getNumModKits = (delegate* unmanaged[Cdecl]) funcTable[0x33F2E3FE70EAAE1DUL]; var success = false; var result = fn__getNumModKits(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100780,10 +100767,10 @@ public int GetNumModKits(int _vehicle) } public void SetVehicleModKit(IVehicle vehicle, int modKit) => SetVehicleModKit(vehicle.ScriptId, modKit); - public void SetVehicleModKit(int _vehicle, int _modKit) + public void SetVehicleModKit(uint _vehicle, int _modKit) { unsafe { - if (fn__setVehicleModKit == null) fn__setVehicleModKit = (delegate* unmanaged[Cdecl]) funcTable[0x1F2AA07F00B3217AUL]; + if (fn__setVehicleModKit == null) fn__setVehicleModKit = (delegate* unmanaged[Cdecl]) funcTable[0x1F2AA07F00B3217AUL]; var success = false; fn__setVehicleModKit(&success, _vehicle, _modKit); if (!success) throw new Exception("Native execution failed"); @@ -100791,10 +100778,10 @@ public void SetVehicleModKit(int _vehicle, int _modKit) } public int GetVehicleModKit(IVehicle vehicle) => GetVehicleModKit(vehicle.ScriptId); - public int GetVehicleModKit(int _vehicle) + public int GetVehicleModKit(uint _vehicle) { unsafe { - if (fn__getVehicleModKit == null) fn__getVehicleModKit = (delegate* unmanaged[Cdecl]) funcTable[0x6325D1A044AE510DUL]; + if (fn__getVehicleModKit == null) fn__getVehicleModKit = (delegate* unmanaged[Cdecl]) funcTable[0x6325D1A044AE510DUL]; var success = false; var result = fn__getVehicleModKit(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100803,10 +100790,10 @@ public int GetVehicleModKit(int _vehicle) } public int GetVehicleModKitType(IVehicle vehicle) => GetVehicleModKitType(vehicle.ScriptId); - public int GetVehicleModKitType(int _vehicle) + public int GetVehicleModKitType(uint _vehicle) { unsafe { - if (fn__getVehicleModKitType == null) fn__getVehicleModKitType = (delegate* unmanaged[Cdecl]) funcTable[0xFC058F5121E54C32UL]; + if (fn__getVehicleModKitType == null) fn__getVehicleModKitType = (delegate* unmanaged[Cdecl]) funcTable[0xFC058F5121E54C32UL]; var success = false; var result = fn__getVehicleModKitType(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100815,10 +100802,10 @@ public int GetVehicleModKitType(int _vehicle) } public int GetVehicleWheelType(IVehicle vehicle) => GetVehicleWheelType(vehicle.ScriptId); - public int GetVehicleWheelType(int _vehicle) + public int GetVehicleWheelType(uint _vehicle) { unsafe { - if (fn__getVehicleWheelType == null) fn__getVehicleWheelType = (delegate* unmanaged[Cdecl]) funcTable[0xB3ED1BFB4BE636DCUL]; + if (fn__getVehicleWheelType == null) fn__getVehicleWheelType = (delegate* unmanaged[Cdecl]) funcTable[0xB3ED1BFB4BE636DCUL]; var success = false; var result = fn__getVehicleWheelType(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100827,10 +100814,10 @@ public int GetVehicleWheelType(int _vehicle) } public void SetVehicleWheelType(IVehicle vehicle, int WheelType) => SetVehicleWheelType(vehicle.ScriptId, WheelType); - public void SetVehicleWheelType(int _vehicle, int _WheelType) + public void SetVehicleWheelType(uint _vehicle, int _WheelType) { unsafe { - if (fn__setVehicleWheelType == null) fn__setVehicleWheelType = (delegate* unmanaged[Cdecl]) funcTable[0x487EB21CC7295BA1UL]; + if (fn__setVehicleWheelType == null) fn__setVehicleWheelType = (delegate* unmanaged[Cdecl]) funcTable[0x487EB21CC7295BA1UL]; var success = false; fn__setVehicleWheelType(&success, _vehicle, _WheelType); if (!success) throw new Exception("Native execution failed"); @@ -100849,10 +100836,10 @@ public int GetNumModColors(int _paintType, bool _p1) } public void SetVehicleModColor1(IVehicle vehicle, int paintType, int color, int pearlescentColor) => SetVehicleModColor1(vehicle.ScriptId, paintType, color, pearlescentColor); - public void SetVehicleModColor1(int _vehicle, int _paintType, int _color, int _pearlescentColor) + public void SetVehicleModColor1(uint _vehicle, int _paintType, int _color, int _pearlescentColor) { unsafe { - if (fn__setVehicleModColor1 == null) fn__setVehicleModColor1 = (delegate* unmanaged[Cdecl]) funcTable[0x43FEB945EE7F85B8UL]; + if (fn__setVehicleModColor1 == null) fn__setVehicleModColor1 = (delegate* unmanaged[Cdecl]) funcTable[0x43FEB945EE7F85B8UL]; var success = false; fn__setVehicleModColor1(&success, _vehicle, _paintType, _color, _pearlescentColor); if (!success) throw new Exception("Native execution failed"); @@ -100860,10 +100847,10 @@ public void SetVehicleModColor1(int _vehicle, int _paintType, int _color, int _p } public void SetVehicleModColor2(IVehicle vehicle, int paintType, int color) => SetVehicleModColor2(vehicle.ScriptId, paintType, color); - public void SetVehicleModColor2(int _vehicle, int _paintType, int _color) + public void SetVehicleModColor2(uint _vehicle, int _paintType, int _color) { unsafe { - if (fn__setVehicleModColor2 == null) fn__setVehicleModColor2 = (delegate* unmanaged[Cdecl]) funcTable[0x816562BADFDEC83EUL]; + if (fn__setVehicleModColor2 == null) fn__setVehicleModColor2 = (delegate* unmanaged[Cdecl]) funcTable[0x816562BADFDEC83EUL]; var success = false; fn__setVehicleModColor2(&success, _vehicle, _paintType, _color); if (!success) throw new Exception("Native execution failed"); @@ -100871,10 +100858,10 @@ public void SetVehicleModColor2(int _vehicle, int _paintType, int _color) } public void GetVehicleModColor1(IVehicle vehicle, ref int paintType, ref int color, ref int pearlescentColor) => GetVehicleModColor1(vehicle.ScriptId, ref paintType, ref color, ref pearlescentColor); - public void GetVehicleModColor1(int _vehicle, ref int _paintType, ref int _color, ref int _pearlescentColor) + public void GetVehicleModColor1(uint _vehicle, ref int _paintType, ref int _color, ref int _pearlescentColor) { unsafe { - if (fn__getVehicleModColor1 == null) fn__getVehicleModColor1 = (delegate* unmanaged[Cdecl]) funcTable[0xE8D65CA700C9A693UL]; + if (fn__getVehicleModColor1 == null) fn__getVehicleModColor1 = (delegate* unmanaged[Cdecl]) funcTable[0xE8D65CA700C9A693UL]; var success = false; var ref_paintType = _paintType; var ref_color = _color; @@ -100888,10 +100875,10 @@ public void GetVehicleModColor1(int _vehicle, ref int _paintType, ref int _color } public void GetVehicleModColor2(IVehicle vehicle, ref int paintType, ref int color) => GetVehicleModColor2(vehicle.ScriptId, ref paintType, ref color); - public void GetVehicleModColor2(int _vehicle, ref int _paintType, ref int _color) + public void GetVehicleModColor2(uint _vehicle, ref int _paintType, ref int _color) { unsafe { - if (fn__getVehicleModColor2 == null) fn__getVehicleModColor2 = (delegate* unmanaged[Cdecl]) funcTable[0x81592BE4E3878728UL]; + if (fn__getVehicleModColor2 == null) fn__getVehicleModColor2 = (delegate* unmanaged[Cdecl]) funcTable[0x81592BE4E3878728UL]; var success = false; var ref_paintType = _paintType; var ref_color = _color; @@ -100903,38 +100890,38 @@ public void GetVehicleModColor2(int _vehicle, ref int _paintType, ref int _color } public string GetVehicleModColor1Name(IVehicle vehicle, bool p1) => GetVehicleModColor1Name(vehicle.ScriptId, p1); - public string GetVehicleModColor1Name(int _vehicle, bool _p1) + public string GetVehicleModColor1Name(uint _vehicle, bool _p1) { unsafe { - if (fn__getVehicleModColor1Name == null) fn__getVehicleModColor1Name = (delegate* unmanaged[Cdecl]) funcTable[0xB45085B721EFD38CUL]; + if (fn__getVehicleModColor1Name == null) fn__getVehicleModColor1Name = (delegate* unmanaged[Cdecl]) funcTable[0xB45085B721EFD38CUL]; var success = false; var result = fn__getVehicleModColor1Name(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } public string GetVehicleModColor2Name(IVehicle vehicle) => GetVehicleModColor2Name(vehicle.ScriptId); - public string GetVehicleModColor2Name(int _vehicle) + public string GetVehicleModColor2Name(uint _vehicle) { unsafe { - if (fn__getVehicleModColor2Name == null) fn__getVehicleModColor2Name = (delegate* unmanaged[Cdecl]) funcTable[0x4967A516ED23A5A1UL]; + if (fn__getVehicleModColor2Name == null) fn__getVehicleModColor2Name = (delegate* unmanaged[Cdecl]) funcTable[0x4967A516ED23A5A1UL]; var success = false; var result = fn__getVehicleModColor2Name(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } public bool HaveVehicleModsStreamedIn(IVehicle vehicle) => HaveVehicleModsStreamedIn(vehicle.ScriptId); - public bool HaveVehicleModsStreamedIn(int _vehicle) + public bool HaveVehicleModsStreamedIn(uint _vehicle) { unsafe { - if (fn__haveVehicleModsStreamedIn == null) fn__haveVehicleModsStreamedIn = (delegate* unmanaged[Cdecl]) funcTable[0x9A83F5F9963775EFUL]; + if (fn__haveVehicleModsStreamedIn == null) fn__haveVehicleModsStreamedIn = (delegate* unmanaged[Cdecl]) funcTable[0x9A83F5F9963775EFUL]; var success = false; var result = fn__haveVehicleModsStreamedIn(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -100943,10 +100930,10 @@ public bool HaveVehicleModsStreamedIn(int _vehicle) } public bool IsVehicleModGen9Exclusive(IVehicle vehicle, int modType, int modIndex) => IsVehicleModGen9Exclusive(vehicle.ScriptId, modType, modIndex); - public bool IsVehicleModGen9Exclusive(int _vehicle, int _modType, int _modIndex) + public bool IsVehicleModGen9Exclusive(uint _vehicle, int _modType, int _modIndex) { unsafe { - if (fn__isVehicleModGen9Exclusive == null) fn__isVehicleModGen9Exclusive = (delegate* unmanaged[Cdecl]) funcTable[0x00834EAC4A96E010UL]; + if (fn__isVehicleModGen9Exclusive == null) fn__isVehicleModGen9Exclusive = (delegate* unmanaged[Cdecl]) funcTable[0x00834EAC4A96E010UL]; var success = false; var result = fn__isVehicleModGen9Exclusive(&success, _vehicle, _modType, _modIndex); if (!success) throw new Exception("Native execution failed"); @@ -100955,10 +100942,10 @@ public bool IsVehicleModGen9Exclusive(int _vehicle, int _modType, int _modIndex) } public void SetVehicleMod(IVehicle vehicle, int modType, int modIndex, bool customTires) => SetVehicleMod(vehicle.ScriptId, modType, modIndex, customTires); - public void SetVehicleMod(int _vehicle, int _modType, int _modIndex, bool _customTires) + public void SetVehicleMod(uint _vehicle, int _modType, int _modIndex, bool _customTires) { unsafe { - if (fn__setVehicleMod == null) fn__setVehicleMod = (delegate* unmanaged[Cdecl]) funcTable[0x6AF0636DDEDCB6DDUL]; + if (fn__setVehicleMod == null) fn__setVehicleMod = (delegate* unmanaged[Cdecl]) funcTable[0x6AF0636DDEDCB6DDUL]; var success = false; fn__setVehicleMod(&success, _vehicle, _modType, _modIndex, (byte) (_customTires ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -100966,10 +100953,10 @@ public void SetVehicleMod(int _vehicle, int _modType, int _modIndex, bool _custo } public int GetVehicleMod(IVehicle vehicle, int modType) => GetVehicleMod(vehicle.ScriptId, modType); - public int GetVehicleMod(int _vehicle, int _modType) + public int GetVehicleMod(uint _vehicle, int _modType) { unsafe { - if (fn__getVehicleMod == null) fn__getVehicleMod = (delegate* unmanaged[Cdecl]) funcTable[0x772960298DA26FDBUL]; + if (fn__getVehicleMod == null) fn__getVehicleMod = (delegate* unmanaged[Cdecl]) funcTable[0x772960298DA26FDBUL]; var success = false; var result = fn__getVehicleMod(&success, _vehicle, _modType); if (!success) throw new Exception("Native execution failed"); @@ -100978,10 +100965,10 @@ public int GetVehicleMod(int _vehicle, int _modType) } public int GetVehicleModVariation(IVehicle vehicle, int modType) => GetVehicleModVariation(vehicle.ScriptId, modType); - public int GetVehicleModVariation(int _vehicle, int _modType) + public int GetVehicleModVariation(uint _vehicle, int _modType) { unsafe { - if (fn__getVehicleModVariation == null) fn__getVehicleModVariation = (delegate* unmanaged[Cdecl]) funcTable[0xB3924ECD70E095DCUL]; + if (fn__getVehicleModVariation == null) fn__getVehicleModVariation = (delegate* unmanaged[Cdecl]) funcTable[0xB3924ECD70E095DCUL]; var success = false; var result = fn__getVehicleModVariation(&success, _vehicle, _modType); if (!success) throw new Exception("Native execution failed"); @@ -100990,10 +100977,10 @@ public int GetVehicleModVariation(int _vehicle, int _modType) } public int GetNumVehicleMods(IVehicle vehicle, int modType) => GetNumVehicleMods(vehicle.ScriptId, modType); - public int GetNumVehicleMods(int _vehicle, int _modType) + public int GetNumVehicleMods(uint _vehicle, int _modType) { unsafe { - if (fn__getNumVehicleMods == null) fn__getNumVehicleMods = (delegate* unmanaged[Cdecl]) funcTable[0xE38E9162A2500646UL]; + if (fn__getNumVehicleMods == null) fn__getNumVehicleMods = (delegate* unmanaged[Cdecl]) funcTable[0xE38E9162A2500646UL]; var success = false; var result = fn__getNumVehicleMods(&success, _vehicle, _modType); if (!success) throw new Exception("Native execution failed"); @@ -101002,10 +100989,10 @@ public int GetNumVehicleMods(int _vehicle, int _modType) } public void RemoveVehicleMod(IVehicle vehicle, int modType) => RemoveVehicleMod(vehicle.ScriptId, modType); - public void RemoveVehicleMod(int _vehicle, int _modType) + public void RemoveVehicleMod(uint _vehicle, int _modType) { unsafe { - if (fn__removeVehicleMod == null) fn__removeVehicleMod = (delegate* unmanaged[Cdecl]) funcTable[0x92D619E420858204UL]; + if (fn__removeVehicleMod == null) fn__removeVehicleMod = (delegate* unmanaged[Cdecl]) funcTable[0x92D619E420858204UL]; var success = false; fn__removeVehicleMod(&success, _vehicle, _modType); if (!success) throw new Exception("Native execution failed"); @@ -101013,10 +101000,10 @@ public void RemoveVehicleMod(int _vehicle, int _modType) } public void ToggleVehicleMod(IVehicle vehicle, int modType, bool toggle) => ToggleVehicleMod(vehicle.ScriptId, modType, toggle); - public void ToggleVehicleMod(int _vehicle, int _modType, bool _toggle) + public void ToggleVehicleMod(uint _vehicle, int _modType, bool _toggle) { unsafe { - if (fn__toggleVehicleMod == null) fn__toggleVehicleMod = (delegate* unmanaged[Cdecl]) funcTable[0x2A1F4F37F95BAD08UL]; + if (fn__toggleVehicleMod == null) fn__toggleVehicleMod = (delegate* unmanaged[Cdecl]) funcTable[0x2A1F4F37F95BAD08UL]; var success = false; fn__toggleVehicleMod(&success, _vehicle, _modType, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -101024,10 +101011,10 @@ public void ToggleVehicleMod(int _vehicle, int _modType, bool _toggle) } public bool IsToggleModOn(IVehicle vehicle, int modType) => IsToggleModOn(vehicle.ScriptId, modType); - public bool IsToggleModOn(int _vehicle, int _modType) + public bool IsToggleModOn(uint _vehicle, int _modType) { unsafe { - if (fn__isToggleModOn == null) fn__isToggleModOn = (delegate* unmanaged[Cdecl]) funcTable[0x84B233A8C8FC8AE7UL]; + if (fn__isToggleModOn == null) fn__isToggleModOn = (delegate* unmanaged[Cdecl]) funcTable[0x84B233A8C8FC8AE7UL]; var success = false; var result = fn__isToggleModOn(&success, _vehicle, _modType); if (!success) throw new Exception("Native execution failed"); @@ -101036,52 +101023,52 @@ public bool IsToggleModOn(int _vehicle, int _modType) } public string GetModTextLabel(IVehicle vehicle, int modType, int modValue) => GetModTextLabel(vehicle.ScriptId, modType, modValue); - public string GetModTextLabel(int _vehicle, int _modType, int _modValue) + public string GetModTextLabel(uint _vehicle, int _modType, int _modValue) { unsafe { - if (fn__getModTextLabel == null) fn__getModTextLabel = (delegate* unmanaged[Cdecl]) funcTable[0x8935624F8C5592CCUL]; + if (fn__getModTextLabel == null) fn__getModTextLabel = (delegate* unmanaged[Cdecl]) funcTable[0x8935624F8C5592CCUL]; var success = false; var result = fn__getModTextLabel(&success, _vehicle, _modType, _modValue); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } public string GetModSlotName(IVehicle vehicle, int modType) => GetModSlotName(vehicle.ScriptId, modType); - public string GetModSlotName(int _vehicle, int _modType) + public string GetModSlotName(uint _vehicle, int _modType) { unsafe { - if (fn__getModSlotName == null) fn__getModSlotName = (delegate* unmanaged[Cdecl]) funcTable[0x51F0FEB9F6AE98C0UL]; + if (fn__getModSlotName == null) fn__getModSlotName = (delegate* unmanaged[Cdecl]) funcTable[0x51F0FEB9F6AE98C0UL]; var success = false; var result = fn__getModSlotName(&success, _vehicle, _modType); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } public string GetLiveryName(IVehicle vehicle, int liveryIndex) => GetLiveryName(vehicle.ScriptId, liveryIndex); - public string GetLiveryName(int _vehicle, int _liveryIndex) + public string GetLiveryName(uint _vehicle, int _liveryIndex) { unsafe { - if (fn__getLiveryName == null) fn__getLiveryName = (delegate* unmanaged[Cdecl]) funcTable[0xB4C7A93837C91A1FUL]; + if (fn__getLiveryName == null) fn__getLiveryName = (delegate* unmanaged[Cdecl]) funcTable[0xB4C7A93837C91A1FUL]; var success = false; var result = fn__getLiveryName(&success, _vehicle, _liveryIndex); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } public int GetVehicleModModifierValue(IVehicle vehicle, int modType, int modIndex) => GetVehicleModModifierValue(vehicle.ScriptId, modType, modIndex); - public int GetVehicleModModifierValue(int _vehicle, int _modType, int _modIndex) + public int GetVehicleModModifierValue(uint _vehicle, int _modType, int _modIndex) { unsafe { - if (fn__getVehicleModModifierValue == null) fn__getVehicleModModifierValue = (delegate* unmanaged[Cdecl]) funcTable[0x90A38E9838E0A8C1UL]; + if (fn__getVehicleModModifierValue == null) fn__getVehicleModModifierValue = (delegate* unmanaged[Cdecl]) funcTable[0x90A38E9838E0A8C1UL]; var success = false; var result = fn__getVehicleModModifierValue(&success, _vehicle, _modType, _modIndex); if (!success) throw new Exception("Native execution failed"); @@ -101090,10 +101077,10 @@ public int GetVehicleModModifierValue(int _vehicle, int _modType, int _modIndex) } public uint GetVehicleModIdentifierHash(IVehicle vehicle, int modType, int modIndex) => GetVehicleModIdentifierHash(vehicle.ScriptId, modType, modIndex); - public uint GetVehicleModIdentifierHash(int _vehicle, int _modType, int _modIndex) + public uint GetVehicleModIdentifierHash(uint _vehicle, int _modType, int _modIndex) { unsafe { - if (fn__getVehicleModIdentifierHash == null) fn__getVehicleModIdentifierHash = (delegate* unmanaged[Cdecl]) funcTable[0x4593CF82AA179706UL]; + if (fn__getVehicleModIdentifierHash == null) fn__getVehicleModIdentifierHash = (delegate* unmanaged[Cdecl]) funcTable[0x4593CF82AA179706UL]; var success = false; var result = fn__getVehicleModIdentifierHash(&success, _vehicle, _modType, _modIndex); if (!success) throw new Exception("Native execution failed"); @@ -101102,10 +101089,10 @@ public uint GetVehicleModIdentifierHash(int _vehicle, int _modType, int _modInde } public void PreloadVehicleMod(IVehicle vehicle, int modType, int modIndex) => PreloadVehicleMod(vehicle.ScriptId, modType, modIndex); - public void PreloadVehicleMod(int _vehicle, int _modType, int _modIndex) + public void PreloadVehicleMod(uint _vehicle, int _modType, int _modIndex) { unsafe { - if (fn__preloadVehicleMod == null) fn__preloadVehicleMod = (delegate* unmanaged[Cdecl]) funcTable[0x758F49C24925568AUL]; + if (fn__preloadVehicleMod == null) fn__preloadVehicleMod = (delegate* unmanaged[Cdecl]) funcTable[0x758F49C24925568AUL]; var success = false; fn__preloadVehicleMod(&success, _vehicle, _modType, _modIndex); if (!success) throw new Exception("Native execution failed"); @@ -101113,10 +101100,10 @@ public void PreloadVehicleMod(int _vehicle, int _modType, int _modIndex) } public bool HasPreloadModsFinished(IVehicle vehicle) => HasPreloadModsFinished(vehicle.ScriptId); - public bool HasPreloadModsFinished(int _vehicle) + public bool HasPreloadModsFinished(uint _vehicle) { unsafe { - if (fn__hasPreloadModsFinished == null) fn__hasPreloadModsFinished = (delegate* unmanaged[Cdecl]) funcTable[0x06F43E5175EB6D96UL]; + if (fn__hasPreloadModsFinished == null) fn__hasPreloadModsFinished = (delegate* unmanaged[Cdecl]) funcTable[0x06F43E5175EB6D96UL]; var success = false; var result = fn__hasPreloadModsFinished(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101125,10 +101112,10 @@ public bool HasPreloadModsFinished(int _vehicle) } public void ReleasePreloadMods(IVehicle vehicle) => ReleasePreloadMods(vehicle.ScriptId); - public void ReleasePreloadMods(int _vehicle) + public void ReleasePreloadMods(uint _vehicle) { unsafe { - if (fn__releasePreloadMods == null) fn__releasePreloadMods = (delegate* unmanaged[Cdecl]) funcTable[0x445D79F995508307UL]; + if (fn__releasePreloadMods == null) fn__releasePreloadMods = (delegate* unmanaged[Cdecl]) funcTable[0x445D79F995508307UL]; var success = false; fn__releasePreloadMods(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101136,10 +101123,10 @@ public void ReleasePreloadMods(int _vehicle) } public void SetVehicleTyreSmokeColor(IVehicle vehicle, int r, int g, int b) => SetVehicleTyreSmokeColor(vehicle.ScriptId, r, g, b); - public void SetVehicleTyreSmokeColor(int _vehicle, int _r, int _g, int _b) + public void SetVehicleTyreSmokeColor(uint _vehicle, int _r, int _g, int _b) { unsafe { - if (fn__setVehicleTyreSmokeColor == null) fn__setVehicleTyreSmokeColor = (delegate* unmanaged[Cdecl]) funcTable[0xB5BA80F839791C0FUL]; + if (fn__setVehicleTyreSmokeColor == null) fn__setVehicleTyreSmokeColor = (delegate* unmanaged[Cdecl]) funcTable[0xB5BA80F839791C0FUL]; var success = false; fn__setVehicleTyreSmokeColor(&success, _vehicle, _r, _g, _b); if (!success) throw new Exception("Native execution failed"); @@ -101147,10 +101134,10 @@ public void SetVehicleTyreSmokeColor(int _vehicle, int _r, int _g, int _b) } public void GetVehicleTyreSmokeColor(IVehicle vehicle, ref int r, ref int g, ref int b) => GetVehicleTyreSmokeColor(vehicle.ScriptId, ref r, ref g, ref b); - public void GetVehicleTyreSmokeColor(int _vehicle, ref int _r, ref int _g, ref int _b) + public void GetVehicleTyreSmokeColor(uint _vehicle, ref int _r, ref int _g, ref int _b) { unsafe { - if (fn__getVehicleTyreSmokeColor == null) fn__getVehicleTyreSmokeColor = (delegate* unmanaged[Cdecl]) funcTable[0xB635392A4938B3C3UL]; + if (fn__getVehicleTyreSmokeColor == null) fn__getVehicleTyreSmokeColor = (delegate* unmanaged[Cdecl]) funcTable[0xB635392A4938B3C3UL]; var success = false; var ref_r = _r; var ref_g = _g; @@ -101164,10 +101151,10 @@ public void GetVehicleTyreSmokeColor(int _vehicle, ref int _r, ref int _g, ref i } public void SetVehicleWindowTint(IVehicle vehicle, int tint) => SetVehicleWindowTint(vehicle.ScriptId, tint); - public void SetVehicleWindowTint(int _vehicle, int _tint) + public void SetVehicleWindowTint(uint _vehicle, int _tint) { unsafe { - if (fn__setVehicleWindowTint == null) fn__setVehicleWindowTint = (delegate* unmanaged[Cdecl]) funcTable[0x57C51E6BAD752696UL]; + if (fn__setVehicleWindowTint == null) fn__setVehicleWindowTint = (delegate* unmanaged[Cdecl]) funcTable[0x57C51E6BAD752696UL]; var success = false; fn__setVehicleWindowTint(&success, _vehicle, _tint); if (!success) throw new Exception("Native execution failed"); @@ -101175,10 +101162,10 @@ public void SetVehicleWindowTint(int _vehicle, int _tint) } public int GetVehicleWindowTint(IVehicle vehicle) => GetVehicleWindowTint(vehicle.ScriptId); - public int GetVehicleWindowTint(int _vehicle) + public int GetVehicleWindowTint(uint _vehicle) { unsafe { - if (fn__getVehicleWindowTint == null) fn__getVehicleWindowTint = (delegate* unmanaged[Cdecl]) funcTable[0x0EE21293DAD47C95UL]; + if (fn__getVehicleWindowTint == null) fn__getVehicleWindowTint = (delegate* unmanaged[Cdecl]) funcTable[0x0EE21293DAD47C95UL]; var success = false; var result = fn__getVehicleWindowTint(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101198,10 +101185,10 @@ public int GetNumVehicleWindowTints() } public void GetVehicleColor(IVehicle vehicle, ref int r, ref int g, ref int b) => GetVehicleColor(vehicle.ScriptId, ref r, ref g, ref b); - public void GetVehicleColor(int _vehicle, ref int _r, ref int _g, ref int _b) + public void GetVehicleColor(uint _vehicle, ref int _r, ref int _g, ref int _b) { unsafe { - if (fn__getVehicleColor == null) fn__getVehicleColor = (delegate* unmanaged[Cdecl]) funcTable[0xF3CC740D36221548UL]; + if (fn__getVehicleColor == null) fn__getVehicleColor = (delegate* unmanaged[Cdecl]) funcTable[0xF3CC740D36221548UL]; var success = false; var ref_r = _r; var ref_g = _g; @@ -101215,10 +101202,10 @@ public void GetVehicleColor(int _vehicle, ref int _r, ref int _g, ref int _b) } public int GetVehicleColoursWhichCanBeSet(IVehicle vehicle) => GetVehicleColoursWhichCanBeSet(vehicle.ScriptId); - public int GetVehicleColoursWhichCanBeSet(int _vehicle) + public int GetVehicleColoursWhichCanBeSet(uint _vehicle) { unsafe { - if (fn__getVehicleColoursWhichCanBeSet == null) fn__getVehicleColoursWhichCanBeSet = (delegate* unmanaged[Cdecl]) funcTable[0xEEBFC7A7EFDC35B4UL]; + if (fn__getVehicleColoursWhichCanBeSet == null) fn__getVehicleColoursWhichCanBeSet = (delegate* unmanaged[Cdecl]) funcTable[0xEEBFC7A7EFDC35B4UL]; var success = false; var result = fn__getVehicleColoursWhichCanBeSet(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101227,10 +101214,10 @@ public int GetVehicleColoursWhichCanBeSet(int _vehicle) } public uint GetVehicleCauseOfDestruction(IVehicle vehicle) => GetVehicleCauseOfDestruction(vehicle.ScriptId); - public uint GetVehicleCauseOfDestruction(int _vehicle) + public uint GetVehicleCauseOfDestruction(uint _vehicle) { unsafe { - if (fn__getVehicleCauseOfDestruction == null) fn__getVehicleCauseOfDestruction = (delegate* unmanaged[Cdecl]) funcTable[0xE495D1EF4C91FD20UL]; + if (fn__getVehicleCauseOfDestruction == null) fn__getVehicleCauseOfDestruction = (delegate* unmanaged[Cdecl]) funcTable[0xE495D1EF4C91FD20UL]; var success = false; var result = fn__getVehicleCauseOfDestruction(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101239,10 +101226,10 @@ public uint GetVehicleCauseOfDestruction(int _vehicle) } public void OverridePlaneDamageThrehsold(IVehicle vehicle, float health) => OverridePlaneDamageThrehsold(vehicle.ScriptId, health); - public void OverridePlaneDamageThrehsold(int _vehicle, float _health) + public void OverridePlaneDamageThrehsold(uint _vehicle, float _health) { unsafe { - if (fn__overridePlaneDamageThrehsold == null) fn__overridePlaneDamageThrehsold = (delegate* unmanaged[Cdecl]) funcTable[0x5EE5632F47AE9695UL]; + if (fn__overridePlaneDamageThrehsold == null) fn__overridePlaneDamageThrehsold = (delegate* unmanaged[Cdecl]) funcTable[0x5EE5632F47AE9695UL]; var success = false; fn__overridePlaneDamageThrehsold(&success, _vehicle, _health); if (!success) throw new Exception("Native execution failed"); @@ -101250,10 +101237,10 @@ public void OverridePlaneDamageThrehsold(int _vehicle, float _health) } public bool GetIsLeftVehicleHeadlightDamaged(IVehicle vehicle) => GetIsLeftVehicleHeadlightDamaged(vehicle.ScriptId); - public bool GetIsLeftVehicleHeadlightDamaged(int _vehicle) + public bool GetIsLeftVehicleHeadlightDamaged(uint _vehicle) { unsafe { - if (fn__getIsLeftVehicleHeadlightDamaged == null) fn__getIsLeftVehicleHeadlightDamaged = (delegate* unmanaged[Cdecl]) funcTable[0x5EF77C9ADD3B11A3UL]; + if (fn__getIsLeftVehicleHeadlightDamaged == null) fn__getIsLeftVehicleHeadlightDamaged = (delegate* unmanaged[Cdecl]) funcTable[0x5EF77C9ADD3B11A3UL]; var success = false; var result = fn__getIsLeftVehicleHeadlightDamaged(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101262,10 +101249,10 @@ public bool GetIsLeftVehicleHeadlightDamaged(int _vehicle) } public bool GetIsRightVehicleHeadlightDamaged(IVehicle vehicle) => GetIsRightVehicleHeadlightDamaged(vehicle.ScriptId); - public bool GetIsRightVehicleHeadlightDamaged(int _vehicle) + public bool GetIsRightVehicleHeadlightDamaged(uint _vehicle) { unsafe { - if (fn__getIsRightVehicleHeadlightDamaged == null) fn__getIsRightVehicleHeadlightDamaged = (delegate* unmanaged[Cdecl]) funcTable[0xA7ECB73355EB2F20UL]; + if (fn__getIsRightVehicleHeadlightDamaged == null) fn__getIsRightVehicleHeadlightDamaged = (delegate* unmanaged[Cdecl]) funcTable[0xA7ECB73355EB2F20UL]; var success = false; var result = fn__getIsRightVehicleHeadlightDamaged(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101274,10 +101261,10 @@ public bool GetIsRightVehicleHeadlightDamaged(int _vehicle) } public bool GetBothVehicleHeadlightsDamaged(IVehicle vehicle) => GetBothVehicleHeadlightsDamaged(vehicle.ScriptId); - public bool GetBothVehicleHeadlightsDamaged(int _vehicle) + public bool GetBothVehicleHeadlightsDamaged(uint _vehicle) { unsafe { - if (fn__getBothVehicleHeadlightsDamaged == null) fn__getBothVehicleHeadlightsDamaged = (delegate* unmanaged[Cdecl]) funcTable[0xEC69ADF931AAE0C3UL]; + if (fn__getBothVehicleHeadlightsDamaged == null) fn__getBothVehicleHeadlightsDamaged = (delegate* unmanaged[Cdecl]) funcTable[0xEC69ADF931AAE0C3UL]; var success = false; var result = fn__getBothVehicleHeadlightsDamaged(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101286,10 +101273,10 @@ public bool GetBothVehicleHeadlightsDamaged(int _vehicle) } public void ModifyVehicleTopSpeed(IVehicle vehicle, float value) => ModifyVehicleTopSpeed(vehicle.ScriptId, value); - public void ModifyVehicleTopSpeed(int _vehicle, float _value) + public void ModifyVehicleTopSpeed(uint _vehicle, float _value) { unsafe { - if (fn__modifyVehicleTopSpeed == null) fn__modifyVehicleTopSpeed = (delegate* unmanaged[Cdecl]) funcTable[0x93A3996368C94158UL]; + if (fn__modifyVehicleTopSpeed == null) fn__modifyVehicleTopSpeed = (delegate* unmanaged[Cdecl]) funcTable[0x93A3996368C94158UL]; var success = false; fn__modifyVehicleTopSpeed(&success, _vehicle, _value); if (!success) throw new Exception("Native execution failed"); @@ -101297,10 +101284,10 @@ public void ModifyVehicleTopSpeed(int _vehicle, float _value) } public void SetVehicleMaxSpeed(IVehicle vehicle, float speed) => SetVehicleMaxSpeed(vehicle.ScriptId, speed); - public void SetVehicleMaxSpeed(int _vehicle, float _speed) + public void SetVehicleMaxSpeed(uint _vehicle, float _speed) { unsafe { - if (fn__setVehicleMaxSpeed == null) fn__setVehicleMaxSpeed = (delegate* unmanaged[Cdecl]) funcTable[0xBAA045B4E42F3C06UL]; + if (fn__setVehicleMaxSpeed == null) fn__setVehicleMaxSpeed = (delegate* unmanaged[Cdecl]) funcTable[0xBAA045B4E42F3C06UL]; var success = false; fn__setVehicleMaxSpeed(&success, _vehicle, _speed); if (!success) throw new Exception("Native execution failed"); @@ -101308,10 +101295,10 @@ public void SetVehicleMaxSpeed(int _vehicle, float _speed) } public void SetVehicleStaysFrozenWhenCleanedUp(IVehicle vehicle, bool toggle) => SetVehicleStaysFrozenWhenCleanedUp(vehicle.ScriptId, toggle); - public void SetVehicleStaysFrozenWhenCleanedUp(int _vehicle, bool _toggle) + public void SetVehicleStaysFrozenWhenCleanedUp(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleStaysFrozenWhenCleanedUp == null) fn__setVehicleStaysFrozenWhenCleanedUp = (delegate* unmanaged[Cdecl]) funcTable[0x1CF38D529D7441D9UL]; + if (fn__setVehicleStaysFrozenWhenCleanedUp == null) fn__setVehicleStaysFrozenWhenCleanedUp = (delegate* unmanaged[Cdecl]) funcTable[0x1CF38D529D7441D9UL]; var success = false; fn__setVehicleStaysFrozenWhenCleanedUp(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -101319,10 +101306,10 @@ public void SetVehicleStaysFrozenWhenCleanedUp(int _vehicle, bool _toggle) } public void SetVehicleActAsIfHighSpeedForFragSmashing(IVehicle vehicle, bool p1) => SetVehicleActAsIfHighSpeedForFragSmashing(vehicle.ScriptId, p1); - public void SetVehicleActAsIfHighSpeedForFragSmashing(int _vehicle, bool _p1) + public void SetVehicleActAsIfHighSpeedForFragSmashing(uint _vehicle, bool _p1) { unsafe { - if (fn__setVehicleActAsIfHighSpeedForFragSmashing == null) fn__setVehicleActAsIfHighSpeedForFragSmashing = (delegate* unmanaged[Cdecl]) funcTable[0x1F9FB66F3A3842D2UL]; + if (fn__setVehicleActAsIfHighSpeedForFragSmashing == null) fn__setVehicleActAsIfHighSpeedForFragSmashing = (delegate* unmanaged[Cdecl]) funcTable[0x1F9FB66F3A3842D2UL]; var success = false; fn__setVehicleActAsIfHighSpeedForFragSmashing(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -101330,10 +101317,10 @@ public void SetVehicleActAsIfHighSpeedForFragSmashing(int _vehicle, bool _p1) } public void SetPedsCanFallOffThisVehicleFromLargeFallDamage(IVehicle vehicle, bool toggle, float p2) => SetPedsCanFallOffThisVehicleFromLargeFallDamage(vehicle.ScriptId, toggle, p2); - public void SetPedsCanFallOffThisVehicleFromLargeFallDamage(int _vehicle, bool _toggle, float _p2) + public void SetPedsCanFallOffThisVehicleFromLargeFallDamage(uint _vehicle, bool _toggle, float _p2) { unsafe { - if (fn__setPedsCanFallOffThisVehicleFromLargeFallDamage == null) fn__setPedsCanFallOffThisVehicleFromLargeFallDamage = (delegate* unmanaged[Cdecl]) funcTable[0x59C3757B3B7408E8UL]; + if (fn__setPedsCanFallOffThisVehicleFromLargeFallDamage == null) fn__setPedsCanFallOffThisVehicleFromLargeFallDamage = (delegate* unmanaged[Cdecl]) funcTable[0x59C3757B3B7408E8UL]; var success = false; fn__setPedsCanFallOffThisVehicleFromLargeFallDamage(&success, _vehicle, (byte) (_toggle ? 1 : 0), _p2); if (!success) throw new Exception("Native execution failed"); @@ -101362,10 +101349,10 @@ public void RemoveVehicleCombatAvoidanceArea(int _p0) } public bool IsAnyPedRappellingFromHeli(IVehicle vehicle) => IsAnyPedRappellingFromHeli(vehicle.ScriptId); - public bool IsAnyPedRappellingFromHeli(int _vehicle) + public bool IsAnyPedRappellingFromHeli(uint _vehicle) { unsafe { - if (fn__isAnyPedRappellingFromHeli == null) fn__isAnyPedRappellingFromHeli = (delegate* unmanaged[Cdecl]) funcTable[0x291E373D483E7EE7UL]; + if (fn__isAnyPedRappellingFromHeli == null) fn__isAnyPedRappellingFromHeli = (delegate* unmanaged[Cdecl]) funcTable[0x291E373D483E7EE7UL]; var success = false; var result = fn__isAnyPedRappellingFromHeli(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101374,10 +101361,10 @@ public bool IsAnyPedRappellingFromHeli(int _vehicle) } public void SetVehicleCheatPowerIncrease(IVehicle vehicle, float value) => SetVehicleCheatPowerIncrease(vehicle.ScriptId, value); - public void SetVehicleCheatPowerIncrease(int _vehicle, float _value) + public void SetVehicleCheatPowerIncrease(uint _vehicle, float _value) { unsafe { - if (fn__setVehicleCheatPowerIncrease == null) fn__setVehicleCheatPowerIncrease = (delegate* unmanaged[Cdecl]) funcTable[0xB59E4BD37AE292DBUL]; + if (fn__setVehicleCheatPowerIncrease == null) fn__setVehicleCheatPowerIncrease = (delegate* unmanaged[Cdecl]) funcTable[0xB59E4BD37AE292DBUL]; var success = false; fn__setVehicleCheatPowerIncrease(&success, _vehicle, _value); if (!success) throw new Exception("Native execution failed"); @@ -101395,10 +101382,10 @@ public void SetVehicleInfluencesWantedLevel(int _p0, bool _p1) } public void SetVehicleIsWanted(IVehicle vehicle, bool state) => SetVehicleIsWanted(vehicle.ScriptId, state); - public void SetVehicleIsWanted(int _vehicle, bool _state) + public void SetVehicleIsWanted(uint _vehicle, bool _state) { unsafe { - if (fn__setVehicleIsWanted == null) fn__setVehicleIsWanted = (delegate* unmanaged[Cdecl]) funcTable[0xF7EC25A3EBEEC726UL]; + if (fn__setVehicleIsWanted == null) fn__setVehicleIsWanted = (delegate* unmanaged[Cdecl]) funcTable[0xF7EC25A3EBEEC726UL]; var success = false; fn__setVehicleIsWanted(&success, _vehicle, (byte) (_state ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -101406,10 +101393,10 @@ public void SetVehicleIsWanted(int _vehicle, bool _state) } public void SwingBoatBoomToRatio(IVehicle vehicle, float ratio) => SwingBoatBoomToRatio(vehicle.ScriptId, ratio); - public void SwingBoatBoomToRatio(int _vehicle, float _ratio) + public void SwingBoatBoomToRatio(uint _vehicle, float _ratio) { unsafe { - if (fn__swingBoatBoomToRatio == null) fn__swingBoatBoomToRatio = (delegate* unmanaged[Cdecl]) funcTable[0xF488C566413B4232UL]; + if (fn__swingBoatBoomToRatio == null) fn__swingBoatBoomToRatio = (delegate* unmanaged[Cdecl]) funcTable[0xF488C566413B4232UL]; var success = false; fn__swingBoatBoomToRatio(&success, _vehicle, _ratio); if (!success) throw new Exception("Native execution failed"); @@ -101417,10 +101404,10 @@ public void SwingBoatBoomToRatio(int _vehicle, float _ratio) } public void SwingBoatBoomFreely(IVehicle vehicle, bool toggle) => SwingBoatBoomFreely(vehicle.ScriptId, toggle); - public void SwingBoatBoomFreely(int _vehicle, bool _toggle) + public void SwingBoatBoomFreely(uint _vehicle, bool _toggle) { unsafe { - if (fn__swingBoatBoomFreely == null) fn__swingBoatBoomFreely = (delegate* unmanaged[Cdecl]) funcTable[0xC1F981A6F74F0C23UL]; + if (fn__swingBoatBoomFreely == null) fn__swingBoatBoomFreely = (delegate* unmanaged[Cdecl]) funcTable[0xC1F981A6F74F0C23UL]; var success = false; fn__swingBoatBoomFreely(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -101428,10 +101415,10 @@ public void SwingBoatBoomFreely(int _vehicle, bool _toggle) } public void AllowBoatBoomToAnimate(IVehicle vehicle, bool toggle) => AllowBoatBoomToAnimate(vehicle.ScriptId, toggle); - public void AllowBoatBoomToAnimate(int _vehicle, bool _toggle) + public void AllowBoatBoomToAnimate(uint _vehicle, bool _toggle) { unsafe { - if (fn__allowBoatBoomToAnimate == null) fn__allowBoatBoomToAnimate = (delegate* unmanaged[Cdecl]) funcTable[0x0F3B4D4E43177236UL]; + if (fn__allowBoatBoomToAnimate == null) fn__allowBoatBoomToAnimate = (delegate* unmanaged[Cdecl]) funcTable[0x0F3B4D4E43177236UL]; var success = false; fn__allowBoatBoomToAnimate(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -101439,10 +101426,10 @@ public void AllowBoatBoomToAnimate(int _vehicle, bool _toggle) } public float GetBoatBoomPositionRatio(IVehicle vehicle) => GetBoatBoomPositionRatio(vehicle.ScriptId); - public float GetBoatBoomPositionRatio(int _vehicle) + public float GetBoatBoomPositionRatio(uint _vehicle) { unsafe { - if (fn__getBoatBoomPositionRatio == null) fn__getBoatBoomPositionRatio = (delegate* unmanaged[Cdecl]) funcTable[0x6636C535F6CC2725UL]; + if (fn__getBoatBoomPositionRatio == null) fn__getBoatBoomPositionRatio = (delegate* unmanaged[Cdecl]) funcTable[0x6636C535F6CC2725UL]; var success = false; var result = fn__getBoatBoomPositionRatio(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101451,10 +101438,10 @@ public float GetBoatBoomPositionRatio(int _vehicle) } public void DisablePlaneAileron(IVehicle vehicle, bool p1, bool p2) => DisablePlaneAileron(vehicle.ScriptId, p1, p2); - public void DisablePlaneAileron(int _vehicle, bool _p1, bool _p2) + public void DisablePlaneAileron(uint _vehicle, bool _p1, bool _p2) { unsafe { - if (fn__disablePlaneAileron == null) fn__disablePlaneAileron = (delegate* unmanaged[Cdecl]) funcTable[0x23428FC53C60919CUL]; + if (fn__disablePlaneAileron == null) fn__disablePlaneAileron = (delegate* unmanaged[Cdecl]) funcTable[0x23428FC53C60919CUL]; var success = false; fn__disablePlaneAileron(&success, _vehicle, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -101462,10 +101449,10 @@ public void DisablePlaneAileron(int _vehicle, bool _p1, bool _p2) } public bool GetIsVehicleEngineRunning(IVehicle vehicle) => GetIsVehicleEngineRunning(vehicle.ScriptId); - public bool GetIsVehicleEngineRunning(int _vehicle) + public bool GetIsVehicleEngineRunning(uint _vehicle) { unsafe { - if (fn__getIsVehicleEngineRunning == null) fn__getIsVehicleEngineRunning = (delegate* unmanaged[Cdecl]) funcTable[0xAE31E7DF9B5B132EUL]; + if (fn__getIsVehicleEngineRunning == null) fn__getIsVehicleEngineRunning = (delegate* unmanaged[Cdecl]) funcTable[0xAE31E7DF9B5B132EUL]; var success = false; var result = fn__getIsVehicleEngineRunning(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101474,10 +101461,10 @@ public bool GetIsVehicleEngineRunning(int _vehicle) } public void SetVehicleUseAlternateHandling(IVehicle vehicle, bool toggle) => SetVehicleUseAlternateHandling(vehicle.ScriptId, toggle); - public void SetVehicleUseAlternateHandling(int _vehicle, bool _toggle) + public void SetVehicleUseAlternateHandling(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleUseAlternateHandling == null) fn__setVehicleUseAlternateHandling = (delegate* unmanaged[Cdecl]) funcTable[0x1D97D1E3A70A649FUL]; + if (fn__setVehicleUseAlternateHandling == null) fn__setVehicleUseAlternateHandling = (delegate* unmanaged[Cdecl]) funcTable[0x1D97D1E3A70A649FUL]; var success = false; fn__setVehicleUseAlternateHandling(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -101485,10 +101472,10 @@ public void SetVehicleUseAlternateHandling(int _vehicle, bool _toggle) } public void SetBikeOnStand(IVehicle vehicle, float x, float y) => SetBikeOnStand(vehicle.ScriptId, x, y); - public void SetBikeOnStand(int _vehicle, float _x, float _y) + public void SetBikeOnStand(uint _vehicle, float _x, float _y) { unsafe { - if (fn__setBikeOnStand == null) fn__setBikeOnStand = (delegate* unmanaged[Cdecl]) funcTable[0x9CFA4896C3A53CBBUL]; + if (fn__setBikeOnStand == null) fn__setBikeOnStand = (delegate* unmanaged[Cdecl]) funcTable[0x9CFA4896C3A53CBBUL]; var success = false; fn__setBikeOnStand(&success, _vehicle, _x, _y); if (!success) throw new Exception("Native execution failed"); @@ -101496,10 +101483,10 @@ public void SetBikeOnStand(int _vehicle, float _x, float _y) } public void SetVehicleNotStealableAmbiently(IVehicle vehicle, bool p1) => SetVehicleNotStealableAmbiently(vehicle.ScriptId, p1); - public void SetVehicleNotStealableAmbiently(int _vehicle, bool _p1) + public void SetVehicleNotStealableAmbiently(uint _vehicle, bool _p1) { unsafe { - if (fn__setVehicleNotStealableAmbiently == null) fn__setVehicleNotStealableAmbiently = (delegate* unmanaged[Cdecl]) funcTable[0xAB04325045427AAEUL]; + if (fn__setVehicleNotStealableAmbiently == null) fn__setVehicleNotStealableAmbiently = (delegate* unmanaged[Cdecl]) funcTable[0xAB04325045427AAEUL]; var success = false; fn__setVehicleNotStealableAmbiently(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -101507,10 +101494,10 @@ public void SetVehicleNotStealableAmbiently(int _vehicle, bool _p1) } public void LockDoorsWhenNoLongerNeeded(IVehicle vehicle) => LockDoorsWhenNoLongerNeeded(vehicle.ScriptId); - public void LockDoorsWhenNoLongerNeeded(int _vehicle) + public void LockDoorsWhenNoLongerNeeded(uint _vehicle) { unsafe { - if (fn__lockDoorsWhenNoLongerNeeded == null) fn__lockDoorsWhenNoLongerNeeded = (delegate* unmanaged[Cdecl]) funcTable[0xCFD778E7904C255EUL]; + if (fn__lockDoorsWhenNoLongerNeeded == null) fn__lockDoorsWhenNoLongerNeeded = (delegate* unmanaged[Cdecl]) funcTable[0xCFD778E7904C255EUL]; var success = false; fn__lockDoorsWhenNoLongerNeeded(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101518,20 +101505,20 @@ public void LockDoorsWhenNoLongerNeeded(int _vehicle) } public void SetLastDrivenVehicle(IVehicle vehicle) => SetLastDrivenVehicle(vehicle.ScriptId); - public void SetLastDrivenVehicle(int _vehicle) + public void SetLastDrivenVehicle(uint _vehicle) { unsafe { - if (fn__setLastDrivenVehicle == null) fn__setLastDrivenVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xACFB2463CC22BED2UL]; + if (fn__setLastDrivenVehicle == null) fn__setLastDrivenVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xACFB2463CC22BED2UL]; var success = false; fn__setLastDrivenVehicle(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); } } - public int GetLastDrivenVehicle() + public uint GetLastDrivenVehicle() { unsafe { - if (fn__getLastDrivenVehicle == null) fn__getLastDrivenVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xB2D06FAEDE65B577UL]; + if (fn__getLastDrivenVehicle == null) fn__getLastDrivenVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xB2D06FAEDE65B577UL]; var success = false; var result = fn__getLastDrivenVehicle(&success); if (!success) throw new Exception("Native execution failed"); @@ -101550,10 +101537,10 @@ public void ClearLastDrivenVehicle() } public void SetVehicleHasBeenDrivenFlag(IVehicle vehicle, bool toggle) => SetVehicleHasBeenDrivenFlag(vehicle.ScriptId, toggle); - public void SetVehicleHasBeenDrivenFlag(int _vehicle, bool _toggle) + public void SetVehicleHasBeenDrivenFlag(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleHasBeenDrivenFlag == null) fn__setVehicleHasBeenDrivenFlag = (delegate* unmanaged[Cdecl]) funcTable[0x02398B627547189CUL]; + if (fn__setVehicleHasBeenDrivenFlag == null) fn__setVehicleHasBeenDrivenFlag = (delegate* unmanaged[Cdecl]) funcTable[0x02398B627547189CUL]; var success = false; fn__setVehicleHasBeenDrivenFlag(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -101561,10 +101548,10 @@ public void SetVehicleHasBeenDrivenFlag(int _vehicle, bool _toggle) } public void SetTaskVehicleGotoPlaneMinHeightAboveTerrain(IVehicle plane, int height) => SetTaskVehicleGotoPlaneMinHeightAboveTerrain(plane.ScriptId, height); - public void SetTaskVehicleGotoPlaneMinHeightAboveTerrain(int _plane, int _height) + public void SetTaskVehicleGotoPlaneMinHeightAboveTerrain(uint _plane, int _height) { unsafe { - if (fn__setTaskVehicleGotoPlaneMinHeightAboveTerrain == null) fn__setTaskVehicleGotoPlaneMinHeightAboveTerrain = (delegate* unmanaged[Cdecl]) funcTable[0xB893215D8D4C015BUL]; + if (fn__setTaskVehicleGotoPlaneMinHeightAboveTerrain == null) fn__setTaskVehicleGotoPlaneMinHeightAboveTerrain = (delegate* unmanaged[Cdecl]) funcTable[0xB893215D8D4C015BUL]; var success = false; fn__setTaskVehicleGotoPlaneMinHeightAboveTerrain(&success, _plane, _height); if (!success) throw new Exception("Native execution failed"); @@ -101572,10 +101559,10 @@ public void SetTaskVehicleGotoPlaneMinHeightAboveTerrain(int _plane, int _height } public void SetVehicleLodMultiplier(IVehicle vehicle, float multiplier) => SetVehicleLodMultiplier(vehicle.ScriptId, multiplier); - public void SetVehicleLodMultiplier(int _vehicle, float _multiplier) + public void SetVehicleLodMultiplier(uint _vehicle, float _multiplier) { unsafe { - if (fn__setVehicleLodMultiplier == null) fn__setVehicleLodMultiplier = (delegate* unmanaged[Cdecl]) funcTable[0x93AE6A61BE015BF1UL]; + if (fn__setVehicleLodMultiplier == null) fn__setVehicleLodMultiplier = (delegate* unmanaged[Cdecl]) funcTable[0x93AE6A61BE015BF1UL]; var success = false; fn__setVehicleLodMultiplier(&success, _vehicle, _multiplier); if (!success) throw new Exception("Native execution failed"); @@ -101583,10 +101570,10 @@ public void SetVehicleLodMultiplier(int _vehicle, float _multiplier) } public void SetVehicleCanSaveInGarage(IVehicle vehicle, bool toggle) => SetVehicleCanSaveInGarage(vehicle.ScriptId, toggle); - public void SetVehicleCanSaveInGarage(int _vehicle, bool _toggle) + public void SetVehicleCanSaveInGarage(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleCanSaveInGarage == null) fn__setVehicleCanSaveInGarage = (delegate* unmanaged[Cdecl]) funcTable[0x428BACCDF5E26EADUL]; + if (fn__setVehicleCanSaveInGarage == null) fn__setVehicleCanSaveInGarage = (delegate* unmanaged[Cdecl]) funcTable[0x428BACCDF5E26EADUL]; var success = false; fn__setVehicleCanSaveInGarage(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -101594,10 +101581,10 @@ public void SetVehicleCanSaveInGarage(int _vehicle, bool _toggle) } public int GetVehicleNumOfBrokenOffParts(IVehicle vehicle) => GetVehicleNumOfBrokenOffParts(vehicle.ScriptId); - public int GetVehicleNumOfBrokenOffParts(int _vehicle) + public int GetVehicleNumOfBrokenOffParts(uint _vehicle) { unsafe { - if (fn__getVehicleNumOfBrokenOffParts == null) fn__getVehicleNumOfBrokenOffParts = (delegate* unmanaged[Cdecl]) funcTable[0x42A4BEB35D372407UL]; + if (fn__getVehicleNumOfBrokenOffParts == null) fn__getVehicleNumOfBrokenOffParts = (delegate* unmanaged[Cdecl]) funcTable[0x42A4BEB35D372407UL]; var success = false; var result = fn__getVehicleNumOfBrokenOffParts(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101606,10 +101593,10 @@ public int GetVehicleNumOfBrokenOffParts(int _vehicle) } public int GetVehicleNumOfBrokenLoosenParts(IVehicle vehicle) => GetVehicleNumOfBrokenLoosenParts(vehicle.ScriptId); - public int GetVehicleNumOfBrokenLoosenParts(int _vehicle) + public int GetVehicleNumOfBrokenLoosenParts(uint _vehicle) { unsafe { - if (fn__getVehicleNumOfBrokenLoosenParts == null) fn__getVehicleNumOfBrokenLoosenParts = (delegate* unmanaged[Cdecl]) funcTable[0x2C8CBFE1EA5FC631UL]; + if (fn__getVehicleNumOfBrokenLoosenParts == null) fn__getVehicleNumOfBrokenLoosenParts = (delegate* unmanaged[Cdecl]) funcTable[0x2C8CBFE1EA5FC631UL]; var success = false; var result = fn__getVehicleNumOfBrokenLoosenParts(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101628,23 +101615,23 @@ public void SetForceVehicleEngineDamageByBullet(int _p0, bool _p1) } public void SetVehicleGeneratesEngineShockingEvents(IVehicle vehicle, bool toggle) => SetVehicleGeneratesEngineShockingEvents(vehicle.ScriptId, toggle); - public void SetVehicleGeneratesEngineShockingEvents(int _vehicle, bool _toggle) + public void SetVehicleGeneratesEngineShockingEvents(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleGeneratesEngineShockingEvents == null) fn__setVehicleGeneratesEngineShockingEvents = (delegate* unmanaged[Cdecl]) funcTable[0x279D50DE5652D935UL]; + if (fn__setVehicleGeneratesEngineShockingEvents == null) fn__setVehicleGeneratesEngineShockingEvents = (delegate* unmanaged[Cdecl]) funcTable[0x279D50DE5652D935UL]; var success = false; fn__setVehicleGeneratesEngineShockingEvents(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void CopyVehicleDamages(IVehicle sourceVehicle, int targetVehicle) => CopyVehicleDamages(sourceVehicle.ScriptId, targetVehicle); - public void CopyVehicleDamages(int sourceVehicle, IVehicle targetVehicle) => CopyVehicleDamages(sourceVehicle, targetVehicle.ScriptId); + public void CopyVehicleDamages(IVehicle sourceVehicle, uint targetVehicle) => CopyVehicleDamages(sourceVehicle.ScriptId, targetVehicle); + public void CopyVehicleDamages(uint sourceVehicle, IVehicle targetVehicle) => CopyVehicleDamages(sourceVehicle, targetVehicle.ScriptId); public void CopyVehicleDamages(IVehicle sourceVehicle, IVehicle targetVehicle) => CopyVehicleDamages(sourceVehicle.ScriptId, targetVehicle.ScriptId); - public void CopyVehicleDamages(int _sourceVehicle, int _targetVehicle) + public void CopyVehicleDamages(uint _sourceVehicle, uint _targetVehicle) { unsafe { - if (fn__copyVehicleDamages == null) fn__copyVehicleDamages = (delegate* unmanaged[Cdecl]) funcTable[0xE44A982368A4AF23UL]; + if (fn__copyVehicleDamages == null) fn__copyVehicleDamages = (delegate* unmanaged[Cdecl]) funcTable[0xE44A982368A4AF23UL]; var success = false; fn__copyVehicleDamages(&success, _sourceVehicle, _targetVehicle); if (!success) throw new Exception("Native execution failed"); @@ -101671,24 +101658,24 @@ public void SetLightsCutoffDistanceTweak(float _distance) } } - public void SetVehicleShootAtTarget(IPlayer driver, int entity, float xTarget, float yTarget, float zTarget) => SetVehicleShootAtTarget(driver.ScriptId, entity, xTarget, yTarget, zTarget); - public void SetVehicleShootAtTarget(int driver, IEntity entity, float xTarget, float yTarget, float zTarget) => SetVehicleShootAtTarget(driver, entity.ScriptId, xTarget, yTarget, zTarget); + public void SetVehicleShootAtTarget(IPlayer driver, uint entity, float xTarget, float yTarget, float zTarget) => SetVehicleShootAtTarget(driver.ScriptId, entity, xTarget, yTarget, zTarget); + public void SetVehicleShootAtTarget(uint driver, IEntity entity, float xTarget, float yTarget, float zTarget) => SetVehicleShootAtTarget(driver, entity.ScriptId, xTarget, yTarget, zTarget); public void SetVehicleShootAtTarget(IPlayer driver, IEntity entity, float xTarget, float yTarget, float zTarget) => SetVehicleShootAtTarget(driver.ScriptId, entity.ScriptId, xTarget, yTarget, zTarget); - public void SetVehicleShootAtTarget(int _driver, int _entity, float _xTarget, float _yTarget, float _zTarget) + public void SetVehicleShootAtTarget(uint _driver, uint _entity, float _xTarget, float _yTarget, float _zTarget) { unsafe { - if (fn__setVehicleShootAtTarget == null) fn__setVehicleShootAtTarget = (delegate* unmanaged[Cdecl]) funcTable[0x74CD9A9327A282EAUL]; + if (fn__setVehicleShootAtTarget == null) fn__setVehicleShootAtTarget = (delegate* unmanaged[Cdecl]) funcTable[0x74CD9A9327A282EAUL]; var success = false; fn__setVehicleShootAtTarget(&success, _driver, _entity, _xTarget, _yTarget, _zTarget); if (!success) throw new Exception("Native execution failed"); } } - public bool GetVehicleLockOnTarget(IVehicle vehicle, ref int entity) => GetVehicleLockOnTarget(vehicle.ScriptId, ref entity); - public bool GetVehicleLockOnTarget(int _vehicle, ref int _entity) + public bool GetVehicleLockOnTarget(IVehicle vehicle, ref uint entity) => GetVehicleLockOnTarget(vehicle.ScriptId, ref entity); + public bool GetVehicleLockOnTarget(uint _vehicle, ref uint _entity) { unsafe { - if (fn__getVehicleLockOnTarget == null) fn__getVehicleLockOnTarget = (delegate* unmanaged[Cdecl]) funcTable[0x8F5EBAB1F260CFCEUL]; + if (fn__getVehicleLockOnTarget == null) fn__getVehicleLockOnTarget = (delegate* unmanaged[Cdecl]) funcTable[0x8F5EBAB1F260CFCEUL]; var success = false; var ref_entity = _entity; var result = fn__getVehicleLockOnTarget(&success, _vehicle, &ref_entity); @@ -101699,10 +101686,10 @@ public bool GetVehicleLockOnTarget(int _vehicle, ref int _entity) } public void SetForceHdVehicle(IVehicle vehicle, bool toggle) => SetForceHdVehicle(vehicle.ScriptId, toggle); - public void SetForceHdVehicle(int _vehicle, bool _toggle) + public void SetForceHdVehicle(uint _vehicle, bool _toggle) { unsafe { - if (fn__setForceHdVehicle == null) fn__setForceHdVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x97CE68CB032583F0UL]; + if (fn__setForceHdVehicle == null) fn__setForceHdVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x97CE68CB032583F0UL]; var success = false; fn__setForceHdVehicle(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -101710,10 +101697,10 @@ public void SetForceHdVehicle(int _vehicle, bool _toggle) } public void SetVehicleCustomPathNodeStreamingRadius(IVehicle vehicle, float p1) => SetVehicleCustomPathNodeStreamingRadius(vehicle.ScriptId, p1); - public void SetVehicleCustomPathNodeStreamingRadius(int _vehicle, float _p1) + public void SetVehicleCustomPathNodeStreamingRadius(uint _vehicle, float _p1) { unsafe { - if (fn__setVehicleCustomPathNodeStreamingRadius == null) fn__setVehicleCustomPathNodeStreamingRadius = (delegate* unmanaged[Cdecl]) funcTable[0x182F266C2D9E2BEBUL]; + if (fn__setVehicleCustomPathNodeStreamingRadius == null) fn__setVehicleCustomPathNodeStreamingRadius = (delegate* unmanaged[Cdecl]) funcTable[0x182F266C2D9E2BEBUL]; var success = false; fn__setVehicleCustomPathNodeStreamingRadius(&success, _vehicle, _p1); if (!success) throw new Exception("Native execution failed"); @@ -101721,10 +101708,10 @@ public void SetVehicleCustomPathNodeStreamingRadius(int _vehicle, float _p1) } public int GetVehiclePlateType(IVehicle vehicle) => GetVehiclePlateType(vehicle.ScriptId); - public int GetVehiclePlateType(int _vehicle) + public int GetVehiclePlateType(uint _vehicle) { unsafe { - if (fn__getVehiclePlateType == null) fn__getVehiclePlateType = (delegate* unmanaged[Cdecl]) funcTable[0x9CCC9525BF2408E0UL]; + if (fn__getVehiclePlateType == null) fn__getVehiclePlateType = (delegate* unmanaged[Cdecl]) funcTable[0x9CCC9525BF2408E0UL]; var success = false; var result = fn__getVehiclePlateType(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101733,10 +101720,10 @@ public int GetVehiclePlateType(int _vehicle) } public void TrackVehicleVisibility(IVehicle vehicle) => TrackVehicleVisibility(vehicle.ScriptId); - public void TrackVehicleVisibility(int _vehicle) + public void TrackVehicleVisibility(uint _vehicle) { unsafe { - if (fn__trackVehicleVisibility == null) fn__trackVehicleVisibility = (delegate* unmanaged[Cdecl]) funcTable[0x64473AEFDCF47DCAUL]; + if (fn__trackVehicleVisibility == null) fn__trackVehicleVisibility = (delegate* unmanaged[Cdecl]) funcTable[0x64473AEFDCF47DCAUL]; var success = false; fn__trackVehicleVisibility(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101744,10 +101731,10 @@ public void TrackVehicleVisibility(int _vehicle) } public bool IsVehicleVisible(IVehicle vehicle) => IsVehicleVisible(vehicle.ScriptId); - public bool IsVehicleVisible(int _vehicle) + public bool IsVehicleVisible(uint _vehicle) { unsafe { - if (fn__isVehicleVisible == null) fn__isVehicleVisible = (delegate* unmanaged[Cdecl]) funcTable[0xAA0A52D24FB98293UL]; + if (fn__isVehicleVisible == null) fn__isVehicleVisible = (delegate* unmanaged[Cdecl]) funcTable[0xAA0A52D24FB98293UL]; var success = false; var result = fn__isVehicleVisible(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101756,10 +101743,10 @@ public bool IsVehicleVisible(int _vehicle) } public void SetVehicleGravity(IVehicle vehicle, bool toggle) => SetVehicleGravity(vehicle.ScriptId, toggle); - public void SetVehicleGravity(int _vehicle, bool _toggle) + public void SetVehicleGravity(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleGravity == null) fn__setVehicleGravity = (delegate* unmanaged[Cdecl]) funcTable[0x89F149B6131E57DAUL]; + if (fn__setVehicleGravity == null) fn__setVehicleGravity = (delegate* unmanaged[Cdecl]) funcTable[0x89F149B6131E57DAUL]; var success = false; fn__setVehicleGravity(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -101787,10 +101774,10 @@ public void SetVehicleSlipstreamingShouldTimeOut(bool _toggle) } public float GetVehicleCurrentTimeInSlipStream(IVehicle vehicle) => GetVehicleCurrentTimeInSlipStream(vehicle.ScriptId); - public float GetVehicleCurrentTimeInSlipStream(int _vehicle) + public float GetVehicleCurrentTimeInSlipStream(uint _vehicle) { unsafe { - if (fn__getVehicleCurrentTimeInSlipStream == null) fn__getVehicleCurrentTimeInSlipStream = (delegate* unmanaged[Cdecl]) funcTable[0x36492C2F0D134C56UL]; + if (fn__getVehicleCurrentTimeInSlipStream == null) fn__getVehicleCurrentTimeInSlipStream = (delegate* unmanaged[Cdecl]) funcTable[0x36492C2F0D134C56UL]; var success = false; var result = fn__getVehicleCurrentTimeInSlipStream(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101799,10 +101786,10 @@ public float GetVehicleCurrentTimeInSlipStream(int _vehicle) } public bool IsVehicleProducingSlipStream(IVehicle vehicle) => IsVehicleProducingSlipStream(vehicle.ScriptId); - public bool IsVehicleProducingSlipStream(int _vehicle) + public bool IsVehicleProducingSlipStream(uint _vehicle) { unsafe { - if (fn__isVehicleProducingSlipStream == null) fn__isVehicleProducingSlipStream = (delegate* unmanaged[Cdecl]) funcTable[0x48C633E94A8142A7UL]; + if (fn__isVehicleProducingSlipStream == null) fn__isVehicleProducingSlipStream = (delegate* unmanaged[Cdecl]) funcTable[0x48C633E94A8142A7UL]; var success = false; var result = fn__isVehicleProducingSlipStream(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101811,10 +101798,10 @@ public bool IsVehicleProducingSlipStream(int _vehicle) } public void SetVehicleInactiveDuringPlayback(IVehicle vehicle, bool toggle) => SetVehicleInactiveDuringPlayback(vehicle.ScriptId, toggle); - public void SetVehicleInactiveDuringPlayback(int _vehicle, bool _toggle) + public void SetVehicleInactiveDuringPlayback(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleInactiveDuringPlayback == null) fn__setVehicleInactiveDuringPlayback = (delegate* unmanaged[Cdecl]) funcTable[0x06582AFF74894C75UL]; + if (fn__setVehicleInactiveDuringPlayback == null) fn__setVehicleInactiveDuringPlayback = (delegate* unmanaged[Cdecl]) funcTable[0x06582AFF74894C75UL]; var success = false; fn__setVehicleInactiveDuringPlayback(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -101822,10 +101809,10 @@ public void SetVehicleInactiveDuringPlayback(int _vehicle, bool _toggle) } public void SetVehicleActiveDuringPlayback(IVehicle vehicle, bool toggle) => SetVehicleActiveDuringPlayback(vehicle.ScriptId, toggle); - public void SetVehicleActiveDuringPlayback(int _vehicle, bool _toggle) + public void SetVehicleActiveDuringPlayback(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleActiveDuringPlayback == null) fn__setVehicleActiveDuringPlayback = (delegate* unmanaged[Cdecl]) funcTable[0xDFFCEF48E511DB48UL]; + if (fn__setVehicleActiveDuringPlayback == null) fn__setVehicleActiveDuringPlayback = (delegate* unmanaged[Cdecl]) funcTable[0xDFFCEF48E511DB48UL]; var success = false; fn__setVehicleActiveDuringPlayback(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -101833,10 +101820,10 @@ public void SetVehicleActiveDuringPlayback(int _vehicle, bool _toggle) } public bool IsVehicleSprayable(IVehicle vehicle) => IsVehicleSprayable(vehicle.ScriptId); - public bool IsVehicleSprayable(int _vehicle) + public bool IsVehicleSprayable(uint _vehicle) { unsafe { - if (fn__isVehicleSprayable == null) fn__isVehicleSprayable = (delegate* unmanaged[Cdecl]) funcTable[0x8D474C8FAEFF6CDEUL]; + if (fn__isVehicleSprayable == null) fn__isVehicleSprayable = (delegate* unmanaged[Cdecl]) funcTable[0x8D474C8FAEFF6CDEUL]; var success = false; var result = fn__isVehicleSprayable(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101845,10 +101832,10 @@ public bool IsVehicleSprayable(int _vehicle) } public void SetVehicleEngineCanDegrade(IVehicle vehicle, bool toggle) => SetVehicleEngineCanDegrade(vehicle.ScriptId, toggle); - public void SetVehicleEngineCanDegrade(int _vehicle, bool _toggle) + public void SetVehicleEngineCanDegrade(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleEngineCanDegrade == null) fn__setVehicleEngineCanDegrade = (delegate* unmanaged[Cdecl]) funcTable[0x983765856F2564F9UL]; + if (fn__setVehicleEngineCanDegrade == null) fn__setVehicleEngineCanDegrade = (delegate* unmanaged[Cdecl]) funcTable[0x983765856F2564F9UL]; var success = false; fn__setVehicleEngineCanDegrade(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -101856,10 +101843,10 @@ public void SetVehicleEngineCanDegrade(int _vehicle, bool _toggle) } public void DisableVehcileDynamicAmbientScales(IVehicle vehicle, int p1, int p2) => DisableVehcileDynamicAmbientScales(vehicle.ScriptId, p1, p2); - public void DisableVehcileDynamicAmbientScales(int _vehicle, int _p1, int _p2) + public void DisableVehcileDynamicAmbientScales(uint _vehicle, int _p1, int _p2) { unsafe { - if (fn__disableVehcileDynamicAmbientScales == null) fn__disableVehcileDynamicAmbientScales = (delegate* unmanaged[Cdecl]) funcTable[0xF0E4BA16D1DB546CUL]; + if (fn__disableVehcileDynamicAmbientScales == null) fn__disableVehcileDynamicAmbientScales = (delegate* unmanaged[Cdecl]) funcTable[0xF0E4BA16D1DB546CUL]; var success = false; fn__disableVehcileDynamicAmbientScales(&success, _vehicle, _p1, _p2); if (!success) throw new Exception("Native execution failed"); @@ -101867,10 +101854,10 @@ public void DisableVehcileDynamicAmbientScales(int _vehicle, int _p1, int _p2) } public void EnableVehicleDynamicAmbientScales(IVehicle vehicle) => EnableVehicleDynamicAmbientScales(vehicle.ScriptId); - public void EnableVehicleDynamicAmbientScales(int _vehicle) + public void EnableVehicleDynamicAmbientScales(uint _vehicle) { unsafe { - if (fn__enableVehicleDynamicAmbientScales == null) fn__enableVehicleDynamicAmbientScales = (delegate* unmanaged[Cdecl]) funcTable[0xF87D9F2301F7D206UL]; + if (fn__enableVehicleDynamicAmbientScales == null) fn__enableVehicleDynamicAmbientScales = (delegate* unmanaged[Cdecl]) funcTable[0xF87D9F2301F7D206UL]; var success = false; fn__enableVehicleDynamicAmbientScales(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101878,10 +101865,10 @@ public void EnableVehicleDynamicAmbientScales(int _vehicle) } public bool IsPlaneLandingGearIntact(IVehicle plane) => IsPlaneLandingGearIntact(plane.ScriptId); - public bool IsPlaneLandingGearIntact(int _plane) + public bool IsPlaneLandingGearIntact(uint _plane) { unsafe { - if (fn__isPlaneLandingGearIntact == null) fn__isPlaneLandingGearIntact = (delegate* unmanaged[Cdecl]) funcTable[0x4198AB0022B15F87UL]; + if (fn__isPlaneLandingGearIntact == null) fn__isPlaneLandingGearIntact = (delegate* unmanaged[Cdecl]) funcTable[0x4198AB0022B15F87UL]; var success = false; var result = fn__isPlaneLandingGearIntact(&success, _plane); if (!success) throw new Exception("Native execution failed"); @@ -101890,10 +101877,10 @@ public bool IsPlaneLandingGearIntact(int _plane) } public bool ArePlanePropellersIntact(IVehicle plane) => ArePlanePropellersIntact(plane.ScriptId); - public bool ArePlanePropellersIntact(int _plane) + public bool ArePlanePropellersIntact(uint _plane) { unsafe { - if (fn__arePlanePropellersIntact == null) fn__arePlanePropellersIntact = (delegate* unmanaged[Cdecl]) funcTable[0x755D6D5267CBBD7EUL]; + if (fn__arePlanePropellersIntact == null) fn__arePlanePropellersIntact = (delegate* unmanaged[Cdecl]) funcTable[0x755D6D5267CBBD7EUL]; var success = false; var result = fn__arePlanePropellersIntact(&success, _plane); if (!success) throw new Exception("Native execution failed"); @@ -101902,10 +101889,10 @@ public bool ArePlanePropellersIntact(int _plane) } public bool SetPlanePropellerHealth(IVehicle plane, float health) => SetPlanePropellerHealth(plane.ScriptId, health); - public bool SetPlanePropellerHealth(int _plane, float _health) + public bool SetPlanePropellerHealth(uint _plane, float _health) { unsafe { - if (fn__setPlanePropellerHealth == null) fn__setPlanePropellerHealth = (delegate* unmanaged[Cdecl]) funcTable[0x4C815EB175086F84UL]; + if (fn__setPlanePropellerHealth == null) fn__setPlanePropellerHealth = (delegate* unmanaged[Cdecl]) funcTable[0x4C815EB175086F84UL]; var success = false; var result = fn__setPlanePropellerHealth(&success, _plane, _health); if (!success) throw new Exception("Native execution failed"); @@ -101914,10 +101901,10 @@ public bool SetPlanePropellerHealth(int _plane, float _health) } public void SetVehicleCanDeformWheels(IVehicle vehicle, bool toggle) => SetVehicleCanDeformWheels(vehicle.ScriptId, toggle); - public void SetVehicleCanDeformWheels(int _vehicle, bool _toggle) + public void SetVehicleCanDeformWheels(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleCanDeformWheels == null) fn__setVehicleCanDeformWheels = (delegate* unmanaged[Cdecl]) funcTable[0x0CDDA42F9E360CA6UL]; + if (fn__setVehicleCanDeformWheels == null) fn__setVehicleCanDeformWheels = (delegate* unmanaged[Cdecl]) funcTable[0x0CDDA42F9E360CA6UL]; var success = false; fn__setVehicleCanDeformWheels(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -101925,10 +101912,10 @@ public void SetVehicleCanDeformWheels(int _vehicle, bool _toggle) } public bool IsVehicleStolen(IVehicle vehicle) => IsVehicleStolen(vehicle.ScriptId); - public bool IsVehicleStolen(int _vehicle) + public bool IsVehicleStolen(uint _vehicle) { unsafe { - if (fn__isVehicleStolen == null) fn__isVehicleStolen = (delegate* unmanaged[Cdecl]) funcTable[0x4AF9BD80EEBEB453UL]; + if (fn__isVehicleStolen == null) fn__isVehicleStolen = (delegate* unmanaged[Cdecl]) funcTable[0x4AF9BD80EEBEB453UL]; var success = false; var result = fn__isVehicleStolen(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -101937,10 +101924,10 @@ public bool IsVehicleStolen(int _vehicle) } public void SetVehicleIsStolen(IVehicle vehicle, bool isStolen) => SetVehicleIsStolen(vehicle.ScriptId, isStolen); - public void SetVehicleIsStolen(int _vehicle, bool _isStolen) + public void SetVehicleIsStolen(uint _vehicle, bool _isStolen) { unsafe { - if (fn__setVehicleIsStolen == null) fn__setVehicleIsStolen = (delegate* unmanaged[Cdecl]) funcTable[0x67B2C79AA7FF5738UL]; + if (fn__setVehicleIsStolen == null) fn__setVehicleIsStolen = (delegate* unmanaged[Cdecl]) funcTable[0x67B2C79AA7FF5738UL]; var success = false; fn__setVehicleIsStolen(&success, _vehicle, (byte) (_isStolen ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -101948,10 +101935,10 @@ public void SetVehicleIsStolen(int _vehicle, bool _isStolen) } public void SetPlaneTurbulenceMultiplier(IVehicle vehicle, float multiplier) => SetPlaneTurbulenceMultiplier(vehicle.ScriptId, multiplier); - public void SetPlaneTurbulenceMultiplier(int _vehicle, float _multiplier) + public void SetPlaneTurbulenceMultiplier(uint _vehicle, float _multiplier) { unsafe { - if (fn__setPlaneTurbulenceMultiplier == null) fn__setPlaneTurbulenceMultiplier = (delegate* unmanaged[Cdecl]) funcTable[0xAD2D28A1AFDFF131UL]; + if (fn__setPlaneTurbulenceMultiplier == null) fn__setPlaneTurbulenceMultiplier = (delegate* unmanaged[Cdecl]) funcTable[0xAD2D28A1AFDFF131UL]; var success = false; fn__setPlaneTurbulenceMultiplier(&success, _vehicle, _multiplier); if (!success) throw new Exception("Native execution failed"); @@ -101959,10 +101946,10 @@ public void SetPlaneTurbulenceMultiplier(int _vehicle, float _multiplier) } public bool AreWingsOfPlaneIntact(IVehicle plane) => AreWingsOfPlaneIntact(plane.ScriptId); - public bool AreWingsOfPlaneIntact(int _plane) + public bool AreWingsOfPlaneIntact(uint _plane) { unsafe { - if (fn__areWingsOfPlaneIntact == null) fn__areWingsOfPlaneIntact = (delegate* unmanaged[Cdecl]) funcTable[0x5991A01434CE9677UL]; + if (fn__areWingsOfPlaneIntact == null) fn__areWingsOfPlaneIntact = (delegate* unmanaged[Cdecl]) funcTable[0x5991A01434CE9677UL]; var success = false; var result = fn__areWingsOfPlaneIntact(&success, _plane); if (!success) throw new Exception("Native execution failed"); @@ -101971,23 +101958,23 @@ public bool AreWingsOfPlaneIntact(int _plane) } public void AllowAmbientVehiclesToAvoidAdverseConditions(IVehicle vehicle) => AllowAmbientVehiclesToAvoidAdverseConditions(vehicle.ScriptId); - public void AllowAmbientVehiclesToAvoidAdverseConditions(int _vehicle) + public void AllowAmbientVehiclesToAvoidAdverseConditions(uint _vehicle) { unsafe { - if (fn__allowAmbientVehiclesToAvoidAdverseConditions == null) fn__allowAmbientVehiclesToAvoidAdverseConditions = (delegate* unmanaged[Cdecl]) funcTable[0xB264C4D2F2B0A78BUL]; + if (fn__allowAmbientVehiclesToAvoidAdverseConditions == null) fn__allowAmbientVehiclesToAvoidAdverseConditions = (delegate* unmanaged[Cdecl]) funcTable[0xB264C4D2F2B0A78BUL]; var success = false; fn__allowAmbientVehiclesToAvoidAdverseConditions(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); } } - public void DetachVehicleFromCargobob(IVehicle vehicle, int cargobob) => DetachVehicleFromCargobob(vehicle.ScriptId, cargobob); - public void DetachVehicleFromCargobob(int vehicle, IVehicle cargobob) => DetachVehicleFromCargobob(vehicle, cargobob.ScriptId); + public void DetachVehicleFromCargobob(IVehicle vehicle, uint cargobob) => DetachVehicleFromCargobob(vehicle.ScriptId, cargobob); + public void DetachVehicleFromCargobob(uint vehicle, IVehicle cargobob) => DetachVehicleFromCargobob(vehicle, cargobob.ScriptId); public void DetachVehicleFromCargobob(IVehicle vehicle, IVehicle cargobob) => DetachVehicleFromCargobob(vehicle.ScriptId, cargobob.ScriptId); - public void DetachVehicleFromCargobob(int _vehicle, int _cargobob) + public void DetachVehicleFromCargobob(uint _vehicle, uint _cargobob) { unsafe { - if (fn__detachVehicleFromCargobob == null) fn__detachVehicleFromCargobob = (delegate* unmanaged[Cdecl]) funcTable[0x0E21D3DF1051399DUL]; + if (fn__detachVehicleFromCargobob == null) fn__detachVehicleFromCargobob = (delegate* unmanaged[Cdecl]) funcTable[0x0E21D3DF1051399DUL]; var success = false; fn__detachVehicleFromCargobob(&success, _vehicle, _cargobob); if (!success) throw new Exception("Native execution failed"); @@ -101995,10 +101982,10 @@ public void DetachVehicleFromCargobob(int _vehicle, int _cargobob) } public bool DetachVehicleFromAnyCargobob(IVehicle vehicle) => DetachVehicleFromAnyCargobob(vehicle.ScriptId); - public bool DetachVehicleFromAnyCargobob(int _vehicle) + public bool DetachVehicleFromAnyCargobob(uint _vehicle) { unsafe { - if (fn__detachVehicleFromAnyCargobob == null) fn__detachVehicleFromAnyCargobob = (delegate* unmanaged[Cdecl]) funcTable[0xADF7BE450512C12FUL]; + if (fn__detachVehicleFromAnyCargobob == null) fn__detachVehicleFromAnyCargobob = (delegate* unmanaged[Cdecl]) funcTable[0xADF7BE450512C12FUL]; var success = false; var result = fn__detachVehicleFromAnyCargobob(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -102006,13 +101993,13 @@ public bool DetachVehicleFromAnyCargobob(int _vehicle) } } - public bool DetachEntityFromCargobob(IVehicle cargobob, int entity) => DetachEntityFromCargobob(cargobob.ScriptId, entity); - public bool DetachEntityFromCargobob(int cargobob, IEntity entity) => DetachEntityFromCargobob(cargobob, entity.ScriptId); + public bool DetachEntityFromCargobob(IVehicle cargobob, uint entity) => DetachEntityFromCargobob(cargobob.ScriptId, entity); + public bool DetachEntityFromCargobob(uint cargobob, IEntity entity) => DetachEntityFromCargobob(cargobob, entity.ScriptId); public bool DetachEntityFromCargobob(IVehicle cargobob, IEntity entity) => DetachEntityFromCargobob(cargobob.ScriptId, entity.ScriptId); - public bool DetachEntityFromCargobob(int _cargobob, int _entity) + public bool DetachEntityFromCargobob(uint _cargobob, uint _entity) { unsafe { - if (fn__detachEntityFromCargobob == null) fn__detachEntityFromCargobob = (delegate* unmanaged[Cdecl]) funcTable[0xAF03011701811146UL]; + if (fn__detachEntityFromCargobob == null) fn__detachEntityFromCargobob = (delegate* unmanaged[Cdecl]) funcTable[0xAF03011701811146UL]; var success = false; var result = fn__detachEntityFromCargobob(&success, _cargobob, _entity); if (!success) throw new Exception("Native execution failed"); @@ -102020,13 +102007,13 @@ public bool DetachEntityFromCargobob(int _cargobob, int _entity) } } - public bool IsVehicleAttachedToCargobob(IVehicle cargobob, int vehicleAttached) => IsVehicleAttachedToCargobob(cargobob.ScriptId, vehicleAttached); - public bool IsVehicleAttachedToCargobob(int cargobob, IVehicle vehicleAttached) => IsVehicleAttachedToCargobob(cargobob, vehicleAttached.ScriptId); + public bool IsVehicleAttachedToCargobob(IVehicle cargobob, uint vehicleAttached) => IsVehicleAttachedToCargobob(cargobob.ScriptId, vehicleAttached); + public bool IsVehicleAttachedToCargobob(uint cargobob, IVehicle vehicleAttached) => IsVehicleAttachedToCargobob(cargobob, vehicleAttached.ScriptId); public bool IsVehicleAttachedToCargobob(IVehicle cargobob, IVehicle vehicleAttached) => IsVehicleAttachedToCargobob(cargobob.ScriptId, vehicleAttached.ScriptId); - public bool IsVehicleAttachedToCargobob(int _cargobob, int _vehicleAttached) + public bool IsVehicleAttachedToCargobob(uint _cargobob, uint _vehicleAttached) { unsafe { - if (fn__isVehicleAttachedToCargobob == null) fn__isVehicleAttachedToCargobob = (delegate* unmanaged[Cdecl]) funcTable[0xD40148F22E81A1D9UL]; + if (fn__isVehicleAttachedToCargobob == null) fn__isVehicleAttachedToCargobob = (delegate* unmanaged[Cdecl]) funcTable[0xD40148F22E81A1D9UL]; var success = false; var result = fn__isVehicleAttachedToCargobob(&success, _cargobob, _vehicleAttached); if (!success) throw new Exception("Native execution failed"); @@ -102034,11 +102021,11 @@ public bool IsVehicleAttachedToCargobob(int _cargobob, int _vehicleAttached) } } - public int GetVehicleAttachedToCargobob(IVehicle cargobob) => GetVehicleAttachedToCargobob(cargobob.ScriptId); - public int GetVehicleAttachedToCargobob(int _cargobob) + public uint GetVehicleAttachedToCargobob(IVehicle cargobob) => GetVehicleAttachedToCargobob(cargobob.ScriptId); + public uint GetVehicleAttachedToCargobob(uint _cargobob) { unsafe { - if (fn__getVehicleAttachedToCargobob == null) fn__getVehicleAttachedToCargobob = (delegate* unmanaged[Cdecl]) funcTable[0x873B82D42AC2B9E5UL]; + if (fn__getVehicleAttachedToCargobob == null) fn__getVehicleAttachedToCargobob = (delegate* unmanaged[Cdecl]) funcTable[0x873B82D42AC2B9E5UL]; var success = false; var result = fn__getVehicleAttachedToCargobob(&success, _cargobob); if (!success) throw new Exception("Native execution failed"); @@ -102046,10 +102033,10 @@ public int GetVehicleAttachedToCargobob(int _cargobob) } } - public int GetEntityAttachedToCargobob(int _p0) + public uint GetEntityAttachedToCargobob(int _p0) { unsafe { - if (fn__getEntityAttachedToCargobob == null) fn__getEntityAttachedToCargobob = (delegate* unmanaged[Cdecl]) funcTable[0x99093F60746708CAUL]; + if (fn__getEntityAttachedToCargobob == null) fn__getEntityAttachedToCargobob = (delegate* unmanaged[Cdecl]) funcTable[0x99093F60746708CAUL]; var success = false; var result = fn__getEntityAttachedToCargobob(&success, _p0); if (!success) throw new Exception("Native execution failed"); @@ -102057,13 +102044,13 @@ public int GetEntityAttachedToCargobob(int _p0) } } - public void AttachVehicleToCargobob(IVehicle vehicle, int cargobob, int p2, float x, float y, float z) => AttachVehicleToCargobob(vehicle.ScriptId, cargobob, p2, x, y, z); - public void AttachVehicleToCargobob(int vehicle, IVehicle cargobob, int p2, float x, float y, float z) => AttachVehicleToCargobob(vehicle, cargobob.ScriptId, p2, x, y, z); + public void AttachVehicleToCargobob(IVehicle vehicle, uint cargobob, int p2, float x, float y, float z) => AttachVehicleToCargobob(vehicle.ScriptId, cargobob, p2, x, y, z); + public void AttachVehicleToCargobob(uint vehicle, IVehicle cargobob, int p2, float x, float y, float z) => AttachVehicleToCargobob(vehicle, cargobob.ScriptId, p2, x, y, z); public void AttachVehicleToCargobob(IVehicle vehicle, IVehicle cargobob, int p2, float x, float y, float z) => AttachVehicleToCargobob(vehicle.ScriptId, cargobob.ScriptId, p2, x, y, z); - public void AttachVehicleToCargobob(int _vehicle, int _cargobob, int _p2, float _x, float _y, float _z) + public void AttachVehicleToCargobob(uint _vehicle, uint _cargobob, int _p2, float _x, float _y, float _z) { unsafe { - if (fn__attachVehicleToCargobob == null) fn__attachVehicleToCargobob = (delegate* unmanaged[Cdecl]) funcTable[0x4127F1D84E347769UL]; + if (fn__attachVehicleToCargobob == null) fn__attachVehicleToCargobob = (delegate* unmanaged[Cdecl]) funcTable[0x4127F1D84E347769UL]; var success = false; fn__attachVehicleToCargobob(&success, _vehicle, _cargobob, _p2, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); @@ -102081,10 +102068,10 @@ public void AttachEntityToCargobob(int _p0, int _p1, int _p2, int _p3, int _p4, } public void SetCargobobForceDontDetachVehicle(IVehicle cargobob, bool toggle) => SetCargobobForceDontDetachVehicle(cargobob.ScriptId, toggle); - public void SetCargobobForceDontDetachVehicle(int _cargobob, bool _toggle) + public void SetCargobobForceDontDetachVehicle(uint _cargobob, bool _toggle) { unsafe { - if (fn__setCargobobForceDontDetachVehicle == null) fn__setCargobobForceDontDetachVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x571FEB383F629926UL]; + if (fn__setCargobobForceDontDetachVehicle == null) fn__setCargobobForceDontDetachVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x571FEB383F629926UL]; var success = false; fn__setCargobobForceDontDetachVehicle(&success, _cargobob, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102113,10 +102100,10 @@ public bool CanCargobobPickUpEntity(int _p0, int _p1) } public Vector3 GetAttachedPickUpHookPosition(IVehicle cargobob) => GetAttachedPickUpHookPosition(cargobob.ScriptId); - public Vector3 GetAttachedPickUpHookPosition(int _cargobob) + public Vector3 GetAttachedPickUpHookPosition(uint _cargobob) { unsafe { - if (fn__getAttachedPickUpHookPosition == null) fn__getAttachedPickUpHookPosition = (delegate* unmanaged[Cdecl]) funcTable[0xCBDB9B923CACC92DUL]; + if (fn__getAttachedPickUpHookPosition == null) fn__getAttachedPickUpHookPosition = (delegate* unmanaged[Cdecl]) funcTable[0xCBDB9B923CACC92DUL]; var success = false; var result = fn__getAttachedPickUpHookPosition(&success, _cargobob); if (!success) throw new Exception("Native execution failed"); @@ -102125,10 +102112,10 @@ public Vector3 GetAttachedPickUpHookPosition(int _cargobob) } public bool DoesCargobobHavePickUpRope(IVehicle cargobob) => DoesCargobobHavePickUpRope(cargobob.ScriptId); - public bool DoesCargobobHavePickUpRope(int _cargobob) + public bool DoesCargobobHavePickUpRope(uint _cargobob) { unsafe { - if (fn__doesCargobobHavePickUpRope == null) fn__doesCargobobHavePickUpRope = (delegate* unmanaged[Cdecl]) funcTable[0x1821D91AD4B56108UL]; + if (fn__doesCargobobHavePickUpRope == null) fn__doesCargobobHavePickUpRope = (delegate* unmanaged[Cdecl]) funcTable[0x1821D91AD4B56108UL]; var success = false; var result = fn__doesCargobobHavePickUpRope(&success, _cargobob); if (!success) throw new Exception("Native execution failed"); @@ -102137,10 +102124,10 @@ public bool DoesCargobobHavePickUpRope(int _cargobob) } public void CreatePickUpRopeForCargobob(IVehicle cargobob, int state) => CreatePickUpRopeForCargobob(cargobob.ScriptId, state); - public void CreatePickUpRopeForCargobob(int _cargobob, int _state) + public void CreatePickUpRopeForCargobob(uint _cargobob, int _state) { unsafe { - if (fn__createPickUpRopeForCargobob == null) fn__createPickUpRopeForCargobob = (delegate* unmanaged[Cdecl]) funcTable[0x7BEB0C7A235F6F3BUL]; + if (fn__createPickUpRopeForCargobob == null) fn__createPickUpRopeForCargobob = (delegate* unmanaged[Cdecl]) funcTable[0x7BEB0C7A235F6F3BUL]; var success = false; fn__createPickUpRopeForCargobob(&success, _cargobob, _state); if (!success) throw new Exception("Native execution failed"); @@ -102148,10 +102135,10 @@ public void CreatePickUpRopeForCargobob(int _cargobob, int _state) } public void RemovePickUpRopeForCargobob(IVehicle cargobob) => RemovePickUpRopeForCargobob(cargobob.ScriptId); - public void RemovePickUpRopeForCargobob(int _cargobob) + public void RemovePickUpRopeForCargobob(uint _cargobob) { unsafe { - if (fn__removePickUpRopeForCargobob == null) fn__removePickUpRopeForCargobob = (delegate* unmanaged[Cdecl]) funcTable[0x9768CF648F54C804UL]; + if (fn__removePickUpRopeForCargobob == null) fn__removePickUpRopeForCargobob = (delegate* unmanaged[Cdecl]) funcTable[0x9768CF648F54C804UL]; var success = false; fn__removePickUpRopeForCargobob(&success, _cargobob); if (!success) throw new Exception("Native execution failed"); @@ -102159,10 +102146,10 @@ public void RemovePickUpRopeForCargobob(int _cargobob) } public void SetPickupRopeLengthForCargobob(IVehicle cargobob, float length1, float length2, bool p3) => SetPickupRopeLengthForCargobob(cargobob.ScriptId, length1, length2, p3); - public void SetPickupRopeLengthForCargobob(int _cargobob, float _length1, float _length2, bool _p3) + public void SetPickupRopeLengthForCargobob(uint _cargobob, float _length1, float _length2, bool _p3) { unsafe { - if (fn__setPickupRopeLengthForCargobob == null) fn__setPickupRopeLengthForCargobob = (delegate* unmanaged[Cdecl]) funcTable[0x877C1EAEAC531023UL]; + if (fn__setPickupRopeLengthForCargobob == null) fn__setPickupRopeLengthForCargobob = (delegate* unmanaged[Cdecl]) funcTable[0x877C1EAEAC531023UL]; var success = false; fn__setPickupRopeLengthForCargobob(&success, _cargobob, _length1, _length2, (byte) (_p3 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102200,10 +102187,10 @@ public void SetCargobobPickupRopeType(int _p0, int _p1) } public bool DoesCargobobHavePickupMagnet(IVehicle cargobob) => DoesCargobobHavePickupMagnet(cargobob.ScriptId); - public bool DoesCargobobHavePickupMagnet(int _cargobob) + public bool DoesCargobobHavePickupMagnet(uint _cargobob) { unsafe { - if (fn__doesCargobobHavePickupMagnet == null) fn__doesCargobobHavePickupMagnet = (delegate* unmanaged[Cdecl]) funcTable[0x6E08BF5B3722BAC9UL]; + if (fn__doesCargobobHavePickupMagnet == null) fn__doesCargobobHavePickupMagnet = (delegate* unmanaged[Cdecl]) funcTable[0x6E08BF5B3722BAC9UL]; var success = false; var result = fn__doesCargobobHavePickupMagnet(&success, _cargobob); if (!success) throw new Exception("Native execution failed"); @@ -102212,10 +102199,10 @@ public bool DoesCargobobHavePickupMagnet(int _cargobob) } public void SetCargobobPickupMagnetActive(IVehicle cargobob, bool isActive) => SetCargobobPickupMagnetActive(cargobob.ScriptId, isActive); - public void SetCargobobPickupMagnetActive(int _cargobob, bool _isActive) + public void SetCargobobPickupMagnetActive(uint _cargobob, bool _isActive) { unsafe { - if (fn__setCargobobPickupMagnetActive == null) fn__setCargobobPickupMagnetActive = (delegate* unmanaged[Cdecl]) funcTable[0x9A665550F8DA349BUL]; + if (fn__setCargobobPickupMagnetActive == null) fn__setCargobobPickupMagnetActive = (delegate* unmanaged[Cdecl]) funcTable[0x9A665550F8DA349BUL]; var success = false; fn__setCargobobPickupMagnetActive(&success, _cargobob, (byte) (_isActive ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102223,10 +102210,10 @@ public void SetCargobobPickupMagnetActive(int _cargobob, bool _isActive) } public void SetCargobobPickupMagnetStrength(IVehicle cargobob, float strength) => SetCargobobPickupMagnetStrength(cargobob.ScriptId, strength); - public void SetCargobobPickupMagnetStrength(int _cargobob, float _strength) + public void SetCargobobPickupMagnetStrength(uint _cargobob, float _strength) { unsafe { - if (fn__setCargobobPickupMagnetStrength == null) fn__setCargobobPickupMagnetStrength = (delegate* unmanaged[Cdecl]) funcTable[0xBCBFCD9D1DAC19E2UL]; + if (fn__setCargobobPickupMagnetStrength == null) fn__setCargobobPickupMagnetStrength = (delegate* unmanaged[Cdecl]) funcTable[0xBCBFCD9D1DAC19E2UL]; var success = false; fn__setCargobobPickupMagnetStrength(&success, _cargobob, _strength); if (!success) throw new Exception("Native execution failed"); @@ -102234,10 +102221,10 @@ public void SetCargobobPickupMagnetStrength(int _cargobob, float _strength) } public void SetCargobobPickupMagnetFalloff(IVehicle cargobob, float p1) => SetCargobobPickupMagnetFalloff(cargobob.ScriptId, p1); - public void SetCargobobPickupMagnetFalloff(int _cargobob, float _p1) + public void SetCargobobPickupMagnetFalloff(uint _cargobob, float _p1) { unsafe { - if (fn__setCargobobPickupMagnetFalloff == null) fn__setCargobobPickupMagnetFalloff = (delegate* unmanaged[Cdecl]) funcTable[0xA17BAD153B51547EUL]; + if (fn__setCargobobPickupMagnetFalloff == null) fn__setCargobobPickupMagnetFalloff = (delegate* unmanaged[Cdecl]) funcTable[0xA17BAD153B51547EUL]; var success = false; fn__setCargobobPickupMagnetFalloff(&success, _cargobob, _p1); if (!success) throw new Exception("Native execution failed"); @@ -102245,10 +102232,10 @@ public void SetCargobobPickupMagnetFalloff(int _cargobob, float _p1) } public void SetCargobobPickupMagnetReducedStrength(IVehicle cargobob, float p1) => SetCargobobPickupMagnetReducedStrength(cargobob.ScriptId, p1); - public void SetCargobobPickupMagnetReducedStrength(int _cargobob, float _p1) + public void SetCargobobPickupMagnetReducedStrength(uint _cargobob, float _p1) { unsafe { - if (fn__setCargobobPickupMagnetReducedStrength == null) fn__setCargobobPickupMagnetReducedStrength = (delegate* unmanaged[Cdecl]) funcTable[0x66979ACF5102FD2FUL]; + if (fn__setCargobobPickupMagnetReducedStrength == null) fn__setCargobobPickupMagnetReducedStrength = (delegate* unmanaged[Cdecl]) funcTable[0x66979ACF5102FD2FUL]; var success = false; fn__setCargobobPickupMagnetReducedStrength(&success, _cargobob, _p1); if (!success) throw new Exception("Native execution failed"); @@ -102256,10 +102243,10 @@ public void SetCargobobPickupMagnetReducedStrength(int _cargobob, float _p1) } public void SetCargobobPickupMagnetReducedFalloff(IVehicle cargobob, float p1) => SetCargobobPickupMagnetReducedFalloff(cargobob.ScriptId, p1); - public void SetCargobobPickupMagnetReducedFalloff(int _cargobob, float _p1) + public void SetCargobobPickupMagnetReducedFalloff(uint _cargobob, float _p1) { unsafe { - if (fn__setCargobobPickupMagnetReducedFalloff == null) fn__setCargobobPickupMagnetReducedFalloff = (delegate* unmanaged[Cdecl]) funcTable[0x6D8EAC07506291FBUL]; + if (fn__setCargobobPickupMagnetReducedFalloff == null) fn__setCargobobPickupMagnetReducedFalloff = (delegate* unmanaged[Cdecl]) funcTable[0x6D8EAC07506291FBUL]; var success = false; fn__setCargobobPickupMagnetReducedFalloff(&success, _cargobob, _p1); if (!success) throw new Exception("Native execution failed"); @@ -102267,10 +102254,10 @@ public void SetCargobobPickupMagnetReducedFalloff(int _cargobob, float _p1) } public void SetCargobobPickupMagnetPullStrength(IVehicle cargobob, float p1) => SetCargobobPickupMagnetPullStrength(cargobob.ScriptId, p1); - public void SetCargobobPickupMagnetPullStrength(int _cargobob, float _p1) + public void SetCargobobPickupMagnetPullStrength(uint _cargobob, float _p1) { unsafe { - if (fn__setCargobobPickupMagnetPullStrength == null) fn__setCargobobPickupMagnetPullStrength = (delegate* unmanaged[Cdecl]) funcTable[0xED8286F71A819BAAUL]; + if (fn__setCargobobPickupMagnetPullStrength == null) fn__setCargobobPickupMagnetPullStrength = (delegate* unmanaged[Cdecl]) funcTable[0xED8286F71A819BAAUL]; var success = false; fn__setCargobobPickupMagnetPullStrength(&success, _cargobob, _p1); if (!success) throw new Exception("Native execution failed"); @@ -102278,23 +102265,23 @@ public void SetCargobobPickupMagnetPullStrength(int _cargobob, float _p1) } public void SetCargobobPickupMagnetPullRopeLength(IVehicle vehicle, float p1) => SetCargobobPickupMagnetPullRopeLength(vehicle.ScriptId, p1); - public void SetCargobobPickupMagnetPullRopeLength(int _vehicle, float _p1) + public void SetCargobobPickupMagnetPullRopeLength(uint _vehicle, float _p1) { unsafe { - if (fn__setCargobobPickupMagnetPullRopeLength == null) fn__setCargobobPickupMagnetPullRopeLength = (delegate* unmanaged[Cdecl]) funcTable[0x685D5561680D088BUL]; + if (fn__setCargobobPickupMagnetPullRopeLength == null) fn__setCargobobPickupMagnetPullRopeLength = (delegate* unmanaged[Cdecl]) funcTable[0x685D5561680D088BUL]; var success = false; fn__setCargobobPickupMagnetPullRopeLength(&success, _vehicle, _p1); if (!success) throw new Exception("Native execution failed"); } } - public void SetCargobobPickupMagnetSetTargetedMode(IVehicle vehicle, int cargobob) => SetCargobobPickupMagnetSetTargetedMode(vehicle.ScriptId, cargobob); - public void SetCargobobPickupMagnetSetTargetedMode(int vehicle, IVehicle cargobob) => SetCargobobPickupMagnetSetTargetedMode(vehicle, cargobob.ScriptId); + public void SetCargobobPickupMagnetSetTargetedMode(IVehicle vehicle, uint cargobob) => SetCargobobPickupMagnetSetTargetedMode(vehicle.ScriptId, cargobob); + public void SetCargobobPickupMagnetSetTargetedMode(uint vehicle, IVehicle cargobob) => SetCargobobPickupMagnetSetTargetedMode(vehicle, cargobob.ScriptId); public void SetCargobobPickupMagnetSetTargetedMode(IVehicle vehicle, IVehicle cargobob) => SetCargobobPickupMagnetSetTargetedMode(vehicle.ScriptId, cargobob.ScriptId); - public void SetCargobobPickupMagnetSetTargetedMode(int _vehicle, int _cargobob) + public void SetCargobobPickupMagnetSetTargetedMode(uint _vehicle, uint _cargobob) { unsafe { - if (fn__setCargobobPickupMagnetSetTargetedMode == null) fn__setCargobobPickupMagnetSetTargetedMode = (delegate* unmanaged[Cdecl]) funcTable[0xE301BD63E9E13CF0UL]; + if (fn__setCargobobPickupMagnetSetTargetedMode == null) fn__setCargobobPickupMagnetSetTargetedMode = (delegate* unmanaged[Cdecl]) funcTable[0xE301BD63E9E13CF0UL]; var success = false; fn__setCargobobPickupMagnetSetTargetedMode(&success, _vehicle, _cargobob); if (!success) throw new Exception("Native execution failed"); @@ -102302,10 +102289,10 @@ public void SetCargobobPickupMagnetSetTargetedMode(int _vehicle, int _cargobob) } public void SetCargobobPickupMagnetSetAmbientMode(IVehicle vehicle, bool p1, bool p2) => SetCargobobPickupMagnetSetAmbientMode(vehicle.ScriptId, p1, p2); - public void SetCargobobPickupMagnetSetAmbientMode(int _vehicle, bool _p1, bool _p2) + public void SetCargobobPickupMagnetSetAmbientMode(uint _vehicle, bool _p1, bool _p2) { unsafe { - if (fn__setCargobobPickupMagnetSetAmbientMode == null) fn__setCargobobPickupMagnetSetAmbientMode = (delegate* unmanaged[Cdecl]) funcTable[0x9BDDC73CC6A115D4UL]; + if (fn__setCargobobPickupMagnetSetAmbientMode == null) fn__setCargobobPickupMagnetSetAmbientMode = (delegate* unmanaged[Cdecl]) funcTable[0x9BDDC73CC6A115D4UL]; var success = false; fn__setCargobobPickupMagnetSetAmbientMode(&success, _vehicle, (byte) (_p1 ? 1 : 0), (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102313,10 +102300,10 @@ public void SetCargobobPickupMagnetSetAmbientMode(int _vehicle, bool _p1, bool _ } public void SetCargobobPickupMagnetEnsurePickupEntityUpright(IVehicle vehicle, bool p1) => SetCargobobPickupMagnetEnsurePickupEntityUpright(vehicle.ScriptId, p1); - public void SetCargobobPickupMagnetEnsurePickupEntityUpright(int _vehicle, bool _p1) + public void SetCargobobPickupMagnetEnsurePickupEntityUpright(uint _vehicle, bool _p1) { unsafe { - if (fn__setCargobobPickupMagnetEnsurePickupEntityUpright == null) fn__setCargobobPickupMagnetEnsurePickupEntityUpright = (delegate* unmanaged[Cdecl]) funcTable[0x56EB5E94318D3FB6UL]; + if (fn__setCargobobPickupMagnetEnsurePickupEntityUpright == null) fn__setCargobobPickupMagnetEnsurePickupEntityUpright = (delegate* unmanaged[Cdecl]) funcTable[0x56EB5E94318D3FB6UL]; var success = false; fn__setCargobobPickupMagnetEnsurePickupEntityUpright(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102324,10 +102311,10 @@ public void SetCargobobPickupMagnetEnsurePickupEntityUpright(int _vehicle, bool } public bool DoesVehicleHaveWeapons(IVehicle vehicle) => DoesVehicleHaveWeapons(vehicle.ScriptId); - public bool DoesVehicleHaveWeapons(int _vehicle) + public bool DoesVehicleHaveWeapons(uint _vehicle) { unsafe { - if (fn__doesVehicleHaveWeapons == null) fn__doesVehicleHaveWeapons = (delegate* unmanaged[Cdecl]) funcTable[0x25ECB9F8017D98E0UL]; + if (fn__doesVehicleHaveWeapons == null) fn__doesVehicleHaveWeapons = (delegate* unmanaged[Cdecl]) funcTable[0x25ECB9F8017D98E0UL]; var success = false; var result = fn__doesVehicleHaveWeapons(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -102336,36 +102323,36 @@ public bool DoesVehicleHaveWeapons(int _vehicle) } public void SetVehicleWillTellOthersToHurry(IVehicle vehicle, bool p1) => SetVehicleWillTellOthersToHurry(vehicle.ScriptId, p1); - public void SetVehicleWillTellOthersToHurry(int _vehicle, bool _p1) + public void SetVehicleWillTellOthersToHurry(uint _vehicle, bool _p1) { unsafe { - if (fn__setVehicleWillTellOthersToHurry == null) fn__setVehicleWillTellOthersToHurry = (delegate* unmanaged[Cdecl]) funcTable[0x2C4A1590ABF43E8BUL]; + if (fn__setVehicleWillTellOthersToHurry == null) fn__setVehicleWillTellOthersToHurry = (delegate* unmanaged[Cdecl]) funcTable[0x2C4A1590ABF43E8BUL]; var success = false; fn__setVehicleWillTellOthersToHurry(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void DisableVehicleWeapon(bool disabled, uint weaponHash, IVehicle vehicle, int owner) => DisableVehicleWeapon(disabled, weaponHash, vehicle.ScriptId, owner); - public void DisableVehicleWeapon(bool disabled, uint weaponHash, int vehicle, IPlayer owner) => DisableVehicleWeapon(disabled, weaponHash, vehicle, owner.ScriptId); + public void DisableVehicleWeapon(bool disabled, uint weaponHash, IVehicle vehicle, uint owner) => DisableVehicleWeapon(disabled, weaponHash, vehicle.ScriptId, owner); + public void DisableVehicleWeapon(bool disabled, uint weaponHash, uint vehicle, IPlayer owner) => DisableVehicleWeapon(disabled, weaponHash, vehicle, owner.ScriptId); public void DisableVehicleWeapon(bool disabled, uint weaponHash, IVehicle vehicle, IPlayer owner) => DisableVehicleWeapon(disabled, weaponHash, vehicle.ScriptId, owner.ScriptId); - public void DisableVehicleWeapon(bool _disabled, uint _weaponHash, int _vehicle, int _owner) + public void DisableVehicleWeapon(bool _disabled, uint _weaponHash, uint _vehicle, uint _owner) { unsafe { - if (fn__disableVehicleWeapon == null) fn__disableVehicleWeapon = (delegate* unmanaged[Cdecl]) funcTable[0xF4FC6A6F67D8D856UL]; + if (fn__disableVehicleWeapon == null) fn__disableVehicleWeapon = (delegate* unmanaged[Cdecl]) funcTable[0xF4FC6A6F67D8D856UL]; var success = false; fn__disableVehicleWeapon(&success, (byte) (_disabled ? 1 : 0), _weaponHash, _vehicle, _owner); if (!success) throw new Exception("Native execution failed"); } } - public bool IsVehicleWeaponDisabled(uint weaponHash, IVehicle vehicle, int owner) => IsVehicleWeaponDisabled(weaponHash, vehicle.ScriptId, owner); - public bool IsVehicleWeaponDisabled(uint weaponHash, int vehicle, IPlayer owner) => IsVehicleWeaponDisabled(weaponHash, vehicle, owner.ScriptId); + public bool IsVehicleWeaponDisabled(uint weaponHash, IVehicle vehicle, uint owner) => IsVehicleWeaponDisabled(weaponHash, vehicle.ScriptId, owner); + public bool IsVehicleWeaponDisabled(uint weaponHash, uint vehicle, IPlayer owner) => IsVehicleWeaponDisabled(weaponHash, vehicle, owner.ScriptId); public bool IsVehicleWeaponDisabled(uint weaponHash, IVehicle vehicle, IPlayer owner) => IsVehicleWeaponDisabled(weaponHash, vehicle.ScriptId, owner.ScriptId); - public bool IsVehicleWeaponDisabled(uint _weaponHash, int _vehicle, int _owner) + public bool IsVehicleWeaponDisabled(uint _weaponHash, uint _vehicle, uint _owner) { unsafe { - if (fn__isVehicleWeaponDisabled == null) fn__isVehicleWeaponDisabled = (delegate* unmanaged[Cdecl]) funcTable[0x563B65A643ED072EUL]; + if (fn__isVehicleWeaponDisabled == null) fn__isVehicleWeaponDisabled = (delegate* unmanaged[Cdecl]) funcTable[0x563B65A643ED072EUL]; var success = false; var result = fn__isVehicleWeaponDisabled(&success, _weaponHash, _vehicle, _owner); if (!success) throw new Exception("Native execution failed"); @@ -102374,10 +102361,10 @@ public bool IsVehicleWeaponDisabled(uint _weaponHash, int _vehicle, int _owner) } public void SetVehicleUsedForPilotSchool(IVehicle vehicle, bool toggle) => SetVehicleUsedForPilotSchool(vehicle.ScriptId, toggle); - public void SetVehicleUsedForPilotSchool(int _vehicle, bool _toggle) + public void SetVehicleUsedForPilotSchool(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleUsedForPilotSchool == null) fn__setVehicleUsedForPilotSchool = (delegate* unmanaged[Cdecl]) funcTable[0xE05DD0E9707003A3UL]; + if (fn__setVehicleUsedForPilotSchool == null) fn__setVehicleUsedForPilotSchool = (delegate* unmanaged[Cdecl]) funcTable[0xE05DD0E9707003A3UL]; var success = false; fn__setVehicleUsedForPilotSchool(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102385,10 +102372,10 @@ public void SetVehicleUsedForPilotSchool(int _vehicle, bool _toggle) } public void SetVehicleActiveForPedNavigation(IVehicle vehicle, bool toggle) => SetVehicleActiveForPedNavigation(vehicle.ScriptId, toggle); - public void SetVehicleActiveForPedNavigation(int _vehicle, bool _toggle) + public void SetVehicleActiveForPedNavigation(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleActiveForPedNavigation == null) fn__setVehicleActiveForPedNavigation = (delegate* unmanaged[Cdecl]) funcTable[0x21115BCD6E44656AUL]; + if (fn__setVehicleActiveForPedNavigation == null) fn__setVehicleActiveForPedNavigation = (delegate* unmanaged[Cdecl]) funcTable[0x21115BCD6E44656AUL]; var success = false; fn__setVehicleActiveForPedNavigation(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102396,10 +102383,10 @@ public void SetVehicleActiveForPedNavigation(int _vehicle, bool _toggle) } public int GetVehicleClass(IVehicle vehicle) => GetVehicleClass(vehicle.ScriptId); - public int GetVehicleClass(int _vehicle) + public int GetVehicleClass(uint _vehicle) { unsafe { - if (fn__getVehicleClass == null) fn__getVehicleClass = (delegate* unmanaged[Cdecl]) funcTable[0x29439776AAA00A62UL]; + if (fn__getVehicleClass == null) fn__getVehicleClass = (delegate* unmanaged[Cdecl]) funcTable[0x29439776AAA00A62UL]; var success = false; var result = fn__getVehicleClass(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -102419,10 +102406,10 @@ public int GetVehicleClassFromName(uint _modelHash) } public void SetPlayersLastVehicle(IVehicle vehicle) => SetPlayersLastVehicle(vehicle.ScriptId); - public void SetPlayersLastVehicle(int _vehicle) + public void SetPlayersLastVehicle(uint _vehicle) { unsafe { - if (fn__setPlayersLastVehicle == null) fn__setPlayersLastVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xBCDF8BAF56C87B6AUL]; + if (fn__setPlayersLastVehicle == null) fn__setPlayersLastVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xBCDF8BAF56C87B6AUL]; var success = false; fn__setPlayersLastVehicle(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -102430,10 +102417,10 @@ public void SetPlayersLastVehicle(int _vehicle) } public void SetVehicleCanBeUsedByFleeingPeds(IVehicle vehicle, bool toggle) => SetVehicleCanBeUsedByFleeingPeds(vehicle.ScriptId, toggle); - public void SetVehicleCanBeUsedByFleeingPeds(int _vehicle, bool _toggle) + public void SetVehicleCanBeUsedByFleeingPeds(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleCanBeUsedByFleeingPeds == null) fn__setVehicleCanBeUsedByFleeingPeds = (delegate* unmanaged[Cdecl]) funcTable[0x300504B23BD3B711UL]; + if (fn__setVehicleCanBeUsedByFleeingPeds == null) fn__setVehicleCanBeUsedByFleeingPeds = (delegate* unmanaged[Cdecl]) funcTable[0x300504B23BD3B711UL]; var success = false; fn__setVehicleCanBeUsedByFleeingPeds(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102441,10 +102428,10 @@ public void SetVehicleCanBeUsedByFleeingPeds(int _vehicle, bool _toggle) } public void SetAircraftPilotSkillNoiseScalar(IVehicle vehicle, float p1) => SetAircraftPilotSkillNoiseScalar(vehicle.ScriptId, p1); - public void SetAircraftPilotSkillNoiseScalar(int _vehicle, float _p1) + public void SetAircraftPilotSkillNoiseScalar(uint _vehicle, float _p1) { unsafe { - if (fn__setAircraftPilotSkillNoiseScalar == null) fn__setAircraftPilotSkillNoiseScalar = (delegate* unmanaged[Cdecl]) funcTable[0xE5810AC70602F2F5UL]; + if (fn__setAircraftPilotSkillNoiseScalar == null) fn__setAircraftPilotSkillNoiseScalar = (delegate* unmanaged[Cdecl]) funcTable[0xE5810AC70602F2F5UL]; var success = false; fn__setAircraftPilotSkillNoiseScalar(&success, _vehicle, _p1); if (!success) throw new Exception("Native execution failed"); @@ -102452,10 +102439,10 @@ public void SetAircraftPilotSkillNoiseScalar(int _vehicle, float _p1) } public void SetVehicleDropsMoneyWhenBlownUp(IVehicle vehicle, bool toggle) => SetVehicleDropsMoneyWhenBlownUp(vehicle.ScriptId, toggle); - public void SetVehicleDropsMoneyWhenBlownUp(int _vehicle, bool _toggle) + public void SetVehicleDropsMoneyWhenBlownUp(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleDropsMoneyWhenBlownUp == null) fn__setVehicleDropsMoneyWhenBlownUp = (delegate* unmanaged[Cdecl]) funcTable[0x068F64F2470F9656UL]; + if (fn__setVehicleDropsMoneyWhenBlownUp == null) fn__setVehicleDropsMoneyWhenBlownUp = (delegate* unmanaged[Cdecl]) funcTable[0x068F64F2470F9656UL]; var success = false; fn__setVehicleDropsMoneyWhenBlownUp(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102463,10 +102450,10 @@ public void SetVehicleDropsMoneyWhenBlownUp(int _vehicle, bool _toggle) } public void SetVehicleKeepEngineOnWhenAbandoned(IVehicle vehicle, bool toggle) => SetVehicleKeepEngineOnWhenAbandoned(vehicle.ScriptId, toggle); - public void SetVehicleKeepEngineOnWhenAbandoned(int _vehicle, bool _toggle) + public void SetVehicleKeepEngineOnWhenAbandoned(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleKeepEngineOnWhenAbandoned == null) fn__setVehicleKeepEngineOnWhenAbandoned = (delegate* unmanaged[Cdecl]) funcTable[0xB8FBC8B1330CA9B4UL]; + if (fn__setVehicleKeepEngineOnWhenAbandoned == null) fn__setVehicleKeepEngineOnWhenAbandoned = (delegate* unmanaged[Cdecl]) funcTable[0xB8FBC8B1330CA9B4UL]; var success = false; fn__setVehicleKeepEngineOnWhenAbandoned(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102474,10 +102461,10 @@ public void SetVehicleKeepEngineOnWhenAbandoned(int _vehicle, bool _toggle) } public void SetVehicleImpatienceTimer(IVehicle vehicle, int p1) => SetVehicleImpatienceTimer(vehicle.ScriptId, p1); - public void SetVehicleImpatienceTimer(int _vehicle, int _p1) + public void SetVehicleImpatienceTimer(uint _vehicle, int _p1) { unsafe { - if (fn__setVehicleImpatienceTimer == null) fn__setVehicleImpatienceTimer = (delegate* unmanaged[Cdecl]) funcTable[0x6A973569BA094650UL]; + if (fn__setVehicleImpatienceTimer == null) fn__setVehicleImpatienceTimer = (delegate* unmanaged[Cdecl]) funcTable[0x6A973569BA094650UL]; var success = false; fn__setVehicleImpatienceTimer(&success, _vehicle, _p1); if (!success) throw new Exception("Native execution failed"); @@ -102485,10 +102472,10 @@ public void SetVehicleImpatienceTimer(int _vehicle, int _p1) } public void SetVehicleHandlingOverride(IVehicle vehicle, uint hash) => SetVehicleHandlingOverride(vehicle.ScriptId, hash); - public void SetVehicleHandlingOverride(int _vehicle, uint _hash) + public void SetVehicleHandlingOverride(uint _vehicle, uint _hash) { unsafe { - if (fn__setVehicleHandlingOverride == null) fn__setVehicleHandlingOverride = (delegate* unmanaged[Cdecl]) funcTable[0x10655FAB9915623DUL]; + if (fn__setVehicleHandlingOverride == null) fn__setVehicleHandlingOverride = (delegate* unmanaged[Cdecl]) funcTable[0x10655FAB9915623DUL]; var success = false; fn__setVehicleHandlingOverride(&success, _vehicle, _hash); if (!success) throw new Exception("Native execution failed"); @@ -102496,10 +102483,10 @@ public void SetVehicleHandlingOverride(int _vehicle, uint _hash) } public void SetVehicleExtendedRemovalRange(IVehicle vehicle, int range) => SetVehicleExtendedRemovalRange(vehicle.ScriptId, range); - public void SetVehicleExtendedRemovalRange(int _vehicle, int _range) + public void SetVehicleExtendedRemovalRange(uint _vehicle, int _range) { unsafe { - if (fn__setVehicleExtendedRemovalRange == null) fn__setVehicleExtendedRemovalRange = (delegate* unmanaged[Cdecl]) funcTable[0x79DF7E806202CE01UL]; + if (fn__setVehicleExtendedRemovalRange == null) fn__setVehicleExtendedRemovalRange = (delegate* unmanaged[Cdecl]) funcTable[0x79DF7E806202CE01UL]; var success = false; fn__setVehicleExtendedRemovalRange(&success, _vehicle, _range); if (!success) throw new Exception("Native execution failed"); @@ -102517,10 +102504,10 @@ public void SetVehicleSteeringBiasScalar(int _p0, float _p1) } public void SetHeliControlLaggingRateScalar(IVehicle helicopter, float multiplier) => SetHeliControlLaggingRateScalar(helicopter.ScriptId, multiplier); - public void SetHeliControlLaggingRateScalar(int _helicopter, float _multiplier) + public void SetHeliControlLaggingRateScalar(uint _helicopter, float _multiplier) { unsafe { - if (fn__setHeliControlLaggingRateScalar == null) fn__setHeliControlLaggingRateScalar = (delegate* unmanaged[Cdecl]) funcTable[0x6E0859B530A365CCUL]; + if (fn__setHeliControlLaggingRateScalar == null) fn__setHeliControlLaggingRateScalar = (delegate* unmanaged[Cdecl]) funcTable[0x6E0859B530A365CCUL]; var success = false; fn__setHeliControlLaggingRateScalar(&success, _helicopter, _multiplier); if (!success) throw new Exception("Native execution failed"); @@ -102528,10 +102515,10 @@ public void SetHeliControlLaggingRateScalar(int _helicopter, float _multiplier) } public void SetVehicleFrictionOverride(IVehicle vehicle, float friction) => SetVehicleFrictionOverride(vehicle.ScriptId, friction); - public void SetVehicleFrictionOverride(int _vehicle, float _friction) + public void SetVehicleFrictionOverride(uint _vehicle, float _friction) { unsafe { - if (fn__setVehicleFrictionOverride == null) fn__setVehicleFrictionOverride = (delegate* unmanaged[Cdecl]) funcTable[0x1837AF7C627009BAUL]; + if (fn__setVehicleFrictionOverride == null) fn__setVehicleFrictionOverride = (delegate* unmanaged[Cdecl]) funcTable[0x1837AF7C627009BAUL]; var success = false; fn__setVehicleFrictionOverride(&success, _vehicle, _friction); if (!success) throw new Exception("Native execution failed"); @@ -102539,10 +102526,10 @@ public void SetVehicleFrictionOverride(int _vehicle, float _friction) } public void SetVehicleWheelsCanBreakOffWhenBlowUp(IVehicle vehicle, bool toggle) => SetVehicleWheelsCanBreakOffWhenBlowUp(vehicle.ScriptId, toggle); - public void SetVehicleWheelsCanBreakOffWhenBlowUp(int _vehicle, bool _toggle) + public void SetVehicleWheelsCanBreakOffWhenBlowUp(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleWheelsCanBreakOffWhenBlowUp == null) fn__setVehicleWheelsCanBreakOffWhenBlowUp = (delegate* unmanaged[Cdecl]) funcTable[0xA37B9A517B133349UL]; + if (fn__setVehicleWheelsCanBreakOffWhenBlowUp == null) fn__setVehicleWheelsCanBreakOffWhenBlowUp = (delegate* unmanaged[Cdecl]) funcTable[0xA37B9A517B133349UL]; var success = false; fn__setVehicleWheelsCanBreakOffWhenBlowUp(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102550,10 +102537,10 @@ public void SetVehicleWheelsCanBreakOffWhenBlowUp(int _vehicle, bool _toggle) } public bool ArePlaneControlPanelsIntact(IVehicle vehicle, bool p1) => ArePlaneControlPanelsIntact(vehicle.ScriptId, p1); - public bool ArePlaneControlPanelsIntact(int _vehicle, bool _p1) + public bool ArePlaneControlPanelsIntact(uint _vehicle, bool _p1) { unsafe { - if (fn__arePlaneControlPanelsIntact == null) fn__arePlaneControlPanelsIntact = (delegate* unmanaged[Cdecl]) funcTable[0xF78F94D60248C737UL]; + if (fn__arePlaneControlPanelsIntact == null) fn__arePlaneControlPanelsIntact = (delegate* unmanaged[Cdecl]) funcTable[0xF78F94D60248C737UL]; var success = false; var result = fn__arePlaneControlPanelsIntact(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102562,10 +102549,10 @@ public bool ArePlaneControlPanelsIntact(int _vehicle, bool _p1) } public void SetVehicleCeilingHeight(IVehicle vehicle, float height) => SetVehicleCeilingHeight(vehicle.ScriptId, height); - public void SetVehicleCeilingHeight(int _vehicle, float _height) + public void SetVehicleCeilingHeight(uint _vehicle, float _height) { unsafe { - if (fn__setVehicleCeilingHeight == null) fn__setVehicleCeilingHeight = (delegate* unmanaged[Cdecl]) funcTable[0xA46413066687A328UL]; + if (fn__setVehicleCeilingHeight == null) fn__setVehicleCeilingHeight = (delegate* unmanaged[Cdecl]) funcTable[0xA46413066687A328UL]; var success = false; fn__setVehicleCeilingHeight(&success, _vehicle, _height); if (!success) throw new Exception("Native execution failed"); @@ -102573,10 +102560,10 @@ public void SetVehicleCeilingHeight(int _vehicle, float _height) } public void SetVehicleNoExplosionDamageFromDriver(IVehicle vehicle, bool toggle) => SetVehicleNoExplosionDamageFromDriver(vehicle.ScriptId, toggle); - public void SetVehicleNoExplosionDamageFromDriver(int _vehicle, bool _toggle) + public void SetVehicleNoExplosionDamageFromDriver(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleNoExplosionDamageFromDriver == null) fn__setVehicleNoExplosionDamageFromDriver = (delegate* unmanaged[Cdecl]) funcTable[0x5E569EC46EC21CAEUL]; + if (fn__setVehicleNoExplosionDamageFromDriver == null) fn__setVehicleNoExplosionDamageFromDriver = (delegate* unmanaged[Cdecl]) funcTable[0x5E569EC46EC21CAEUL]; var success = false; fn__setVehicleNoExplosionDamageFromDriver(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102584,60 +102571,60 @@ public void SetVehicleNoExplosionDamageFromDriver(int _vehicle, bool _toggle) } public void ClearVehicleRouteHistory(IVehicle vehicle) => ClearVehicleRouteHistory(vehicle.ScriptId); - public void ClearVehicleRouteHistory(int _vehicle) + public void ClearVehicleRouteHistory(uint _vehicle) { unsafe { - if (fn__clearVehicleRouteHistory == null) fn__clearVehicleRouteHistory = (delegate* unmanaged[Cdecl]) funcTable[0x6D6AF961B72728AEUL]; + if (fn__clearVehicleRouteHistory == null) fn__clearVehicleRouteHistory = (delegate* unmanaged[Cdecl]) funcTable[0x6D6AF961B72728AEUL]; var success = false; fn__clearVehicleRouteHistory(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); } } - public int DoesVehicleExistWithDecorator(string _decorator) + public uint DoesVehicleExistWithDecorator(string _decorator) { unsafe { - if (fn__doesVehicleExistWithDecorator == null) fn__doesVehicleExistWithDecorator = (delegate* unmanaged[Cdecl]) funcTable[0x956B409B984D9BF7UL]; + if (fn__doesVehicleExistWithDecorator == null) fn__doesVehicleExistWithDecorator = (delegate* unmanaged[Cdecl]) funcTable[0x956B409B984D9BF7UL]; var success = false; - var ptr_decorator = _decorator == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_decorator); + var ptr_decorator = MemoryUtils.StringToHGlobalUtf8(_decorator); var result = fn__doesVehicleExistWithDecorator(&success, ptr_decorator); - if (ptr_decorator != IntPtr.Zero) Marshal.FreeHGlobal(ptr_decorator); + Marshal.FreeHGlobal(ptr_decorator); if (!success) throw new Exception("Native execution failed"); return result; } } public void SetVehicleAiCanUseExclusiveSeats(IVehicle vehicle, bool toggle) => SetVehicleAiCanUseExclusiveSeats(vehicle.ScriptId, toggle); - public void SetVehicleAiCanUseExclusiveSeats(int _vehicle, bool _toggle) + public void SetVehicleAiCanUseExclusiveSeats(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleAiCanUseExclusiveSeats == null) fn__setVehicleAiCanUseExclusiveSeats = (delegate* unmanaged[Cdecl]) funcTable[0x41062318F23ED854UL]; + if (fn__setVehicleAiCanUseExclusiveSeats == null) fn__setVehicleAiCanUseExclusiveSeats = (delegate* unmanaged[Cdecl]) funcTable[0x41062318F23ED854UL]; var success = false; fn__setVehicleAiCanUseExclusiveSeats(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); } } - public void SetVehicleExclusiveDriver(IVehicle vehicle, int ped, int index) => SetVehicleExclusiveDriver(vehicle.ScriptId, ped, index); - public void SetVehicleExclusiveDriver(int vehicle, IPlayer ped, int index) => SetVehicleExclusiveDriver(vehicle, ped.ScriptId, index); + public void SetVehicleExclusiveDriver(IVehicle vehicle, uint ped, int index) => SetVehicleExclusiveDriver(vehicle.ScriptId, ped, index); + public void SetVehicleExclusiveDriver(uint vehicle, IPlayer ped, int index) => SetVehicleExclusiveDriver(vehicle, ped.ScriptId, index); public void SetVehicleExclusiveDriver(IVehicle vehicle, IPlayer ped, int index) => SetVehicleExclusiveDriver(vehicle.ScriptId, ped.ScriptId, index); - public void SetVehicleExclusiveDriver(int _vehicle, int _ped, int _index) + public void SetVehicleExclusiveDriver(uint _vehicle, uint _ped, int _index) { unsafe { - if (fn__setVehicleExclusiveDriver == null) fn__setVehicleExclusiveDriver = (delegate* unmanaged[Cdecl]) funcTable[0xB5C51B5502E85E83UL]; + if (fn__setVehicleExclusiveDriver == null) fn__setVehicleExclusiveDriver = (delegate* unmanaged[Cdecl]) funcTable[0xB5C51B5502E85E83UL]; var success = false; fn__setVehicleExclusiveDriver(&success, _vehicle, _ped, _index); if (!success) throw new Exception("Native execution failed"); } } - public bool IsPedExclusiveDriverOfVehicle(IPlayer ped, int vehicle, ref int outIndex) => IsPedExclusiveDriverOfVehicle(ped.ScriptId, vehicle, ref outIndex); - public bool IsPedExclusiveDriverOfVehicle(int ped, IVehicle vehicle, ref int outIndex) => IsPedExclusiveDriverOfVehicle(ped, vehicle.ScriptId, ref outIndex); + public bool IsPedExclusiveDriverOfVehicle(IPlayer ped, uint vehicle, ref int outIndex) => IsPedExclusiveDriverOfVehicle(ped.ScriptId, vehicle, ref outIndex); + public bool IsPedExclusiveDriverOfVehicle(uint ped, IVehicle vehicle, ref int outIndex) => IsPedExclusiveDriverOfVehicle(ped, vehicle.ScriptId, ref outIndex); public bool IsPedExclusiveDriverOfVehicle(IPlayer ped, IVehicle vehicle, ref int outIndex) => IsPedExclusiveDriverOfVehicle(ped.ScriptId, vehicle.ScriptId, ref outIndex); - public bool IsPedExclusiveDriverOfVehicle(int _ped, int _vehicle, ref int _outIndex) + public bool IsPedExclusiveDriverOfVehicle(uint _ped, uint _vehicle, ref int _outIndex) { unsafe { - if (fn__isPedExclusiveDriverOfVehicle == null) fn__isPedExclusiveDriverOfVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xB09D25E77C33EB3FUL]; + if (fn__isPedExclusiveDriverOfVehicle == null) fn__isPedExclusiveDriverOfVehicle = (delegate* unmanaged[Cdecl]) funcTable[0xB09D25E77C33EB3FUL]; var success = false; var ref_outIndex = _outIndex; var result = fn__isPedExclusiveDriverOfVehicle(&success, _ped, _vehicle, &ref_outIndex); @@ -102648,10 +102635,10 @@ public bool IsPedExclusiveDriverOfVehicle(int _ped, int _vehicle, ref int _outIn } public void DisableIndividualPlanePropeller(IVehicle vehicle, int propeller) => DisableIndividualPlanePropeller(vehicle.ScriptId, propeller); - public void DisableIndividualPlanePropeller(int _vehicle, int _propeller) + public void DisableIndividualPlanePropeller(uint _vehicle, int _propeller) { unsafe { - if (fn__disableIndividualPlanePropeller == null) fn__disableIndividualPlanePropeller = (delegate* unmanaged[Cdecl]) funcTable[0x500873A45724C863UL]; + if (fn__disableIndividualPlanePropeller == null) fn__disableIndividualPlanePropeller = (delegate* unmanaged[Cdecl]) funcTable[0x500873A45724C863UL]; var success = false; fn__disableIndividualPlanePropeller(&success, _vehicle, _propeller); if (!success) throw new Exception("Native execution failed"); @@ -102659,10 +102646,10 @@ public void DisableIndividualPlanePropeller(int _vehicle, int _propeller) } public void SetVehicleForceAfterburner(IVehicle vehicle, bool toggle) => SetVehicleForceAfterburner(vehicle.ScriptId, toggle); - public void SetVehicleForceAfterburner(int _vehicle, bool _toggle) + public void SetVehicleForceAfterburner(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleForceAfterburner == null) fn__setVehicleForceAfterburner = (delegate* unmanaged[Cdecl]) funcTable[0xB055A34527CB8FD7UL]; + if (fn__setVehicleForceAfterburner == null) fn__setVehicleForceAfterburner = (delegate* unmanaged[Cdecl]) funcTable[0xB055A34527CB8FD7UL]; var success = false; fn__setVehicleForceAfterburner(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102670,10 +102657,10 @@ public void SetVehicleForceAfterburner(int _vehicle, bool _toggle) } public void SetDontProcessVehicleGlass(IVehicle vehicle, bool toggle) => SetDontProcessVehicleGlass(vehicle.ScriptId, toggle); - public void SetDontProcessVehicleGlass(int _vehicle, bool _toggle) + public void SetDontProcessVehicleGlass(uint _vehicle, bool _toggle) { unsafe { - if (fn__setDontProcessVehicleGlass == null) fn__setDontProcessVehicleGlass = (delegate* unmanaged[Cdecl]) funcTable[0x1087BC8EC540DAEBUL]; + if (fn__setDontProcessVehicleGlass == null) fn__setDontProcessVehicleGlass = (delegate* unmanaged[Cdecl]) funcTable[0x1087BC8EC540DAEBUL]; var success = false; fn__setDontProcessVehicleGlass(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102681,10 +102668,10 @@ public void SetDontProcessVehicleGlass(int _vehicle, bool _toggle) } public void SetDisableWantedConesResponse(IVehicle vehicle, bool toggle) => SetDisableWantedConesResponse(vehicle.ScriptId, toggle); - public void SetDisableWantedConesResponse(int _vehicle, bool _toggle) + public void SetDisableWantedConesResponse(uint _vehicle, bool _toggle) { unsafe { - if (fn__setDisableWantedConesResponse == null) fn__setDisableWantedConesResponse = (delegate* unmanaged[Cdecl]) funcTable[0x4AD280EB48B2D8E6UL]; + if (fn__setDisableWantedConesResponse == null) fn__setDisableWantedConesResponse = (delegate* unmanaged[Cdecl]) funcTable[0x4AD280EB48B2D8E6UL]; var success = false; fn__setDisableWantedConesResponse(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102692,10 +102679,10 @@ public void SetDisableWantedConesResponse(int _vehicle, bool _toggle) } public void SetUseDesiredZCruiseSpeedForLanding(IVehicle vehicle, bool toggle) => SetUseDesiredZCruiseSpeedForLanding(vehicle.ScriptId, toggle); - public void SetUseDesiredZCruiseSpeedForLanding(int _vehicle, bool _toggle) + public void SetUseDesiredZCruiseSpeedForLanding(uint _vehicle, bool _toggle) { unsafe { - if (fn__setUseDesiredZCruiseSpeedForLanding == null) fn__setUseDesiredZCruiseSpeedForLanding = (delegate* unmanaged[Cdecl]) funcTable[0xB68CFAF83A02768DUL]; + if (fn__setUseDesiredZCruiseSpeedForLanding == null) fn__setUseDesiredZCruiseSpeedForLanding = (delegate* unmanaged[Cdecl]) funcTable[0xB68CFAF83A02768DUL]; var success = false; fn__setUseDesiredZCruiseSpeedForLanding(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102703,10 +102690,10 @@ public void SetUseDesiredZCruiseSpeedForLanding(int _vehicle, bool _toggle) } public void SetArriveDistanceOverrideForVehiclePersuitAttack(IVehicle vehicle, float p1) => SetArriveDistanceOverrideForVehiclePersuitAttack(vehicle.ScriptId, p1); - public void SetArriveDistanceOverrideForVehiclePersuitAttack(int _vehicle, float _p1) + public void SetArriveDistanceOverrideForVehiclePersuitAttack(uint _vehicle, float _p1) { unsafe { - if (fn__setArriveDistanceOverrideForVehiclePersuitAttack == null) fn__setArriveDistanceOverrideForVehiclePersuitAttack = (delegate* unmanaged[Cdecl]) funcTable[0x0205F5365292D2EBUL]; + if (fn__setArriveDistanceOverrideForVehiclePersuitAttack == null) fn__setArriveDistanceOverrideForVehiclePersuitAttack = (delegate* unmanaged[Cdecl]) funcTable[0x0205F5365292D2EBUL]; var success = false; fn__setArriveDistanceOverrideForVehiclePersuitAttack(&success, _vehicle, _p1); if (!success) throw new Exception("Native execution failed"); @@ -102734,10 +102721,10 @@ public void SetDistantCarsEnabled(bool _toggle) } public void SetVehicleNeonColour(IVehicle vehicle, int r, int g, int b) => SetVehicleNeonColour(vehicle.ScriptId, r, g, b); - public void SetVehicleNeonColour(int _vehicle, int _r, int _g, int _b) + public void SetVehicleNeonColour(uint _vehicle, int _r, int _g, int _b) { unsafe { - if (fn__setVehicleNeonColour == null) fn__setVehicleNeonColour = (delegate* unmanaged[Cdecl]) funcTable[0x8E0A582209A62695UL]; + if (fn__setVehicleNeonColour == null) fn__setVehicleNeonColour = (delegate* unmanaged[Cdecl]) funcTable[0x8E0A582209A62695UL]; var success = false; fn__setVehicleNeonColour(&success, _vehicle, _r, _g, _b); if (!success) throw new Exception("Native execution failed"); @@ -102745,10 +102732,10 @@ public void SetVehicleNeonColour(int _vehicle, int _r, int _g, int _b) } public void SetVehicleNeonIndexColour(IVehicle vehicle, int index) => SetVehicleNeonIndexColour(vehicle.ScriptId, index); - public void SetVehicleNeonIndexColour(int _vehicle, int _index) + public void SetVehicleNeonIndexColour(uint _vehicle, int _index) { unsafe { - if (fn__setVehicleNeonIndexColour == null) fn__setVehicleNeonIndexColour = (delegate* unmanaged[Cdecl]) funcTable[0xB93B2867F7B479D1UL]; + if (fn__setVehicleNeonIndexColour == null) fn__setVehicleNeonIndexColour = (delegate* unmanaged[Cdecl]) funcTable[0xB93B2867F7B479D1UL]; var success = false; fn__setVehicleNeonIndexColour(&success, _vehicle, _index); if (!success) throw new Exception("Native execution failed"); @@ -102756,10 +102743,10 @@ public void SetVehicleNeonIndexColour(int _vehicle, int _index) } public void GetVehicleNeonColour(IVehicle vehicle, ref int r, ref int g, ref int b) => GetVehicleNeonColour(vehicle.ScriptId, ref r, ref g, ref b); - public void GetVehicleNeonColour(int _vehicle, ref int _r, ref int _g, ref int _b) + public void GetVehicleNeonColour(uint _vehicle, ref int _r, ref int _g, ref int _b) { unsafe { - if (fn__getVehicleNeonColour == null) fn__getVehicleNeonColour = (delegate* unmanaged[Cdecl]) funcTable[0x7619EEE8C886757FUL]; + if (fn__getVehicleNeonColour == null) fn__getVehicleNeonColour = (delegate* unmanaged[Cdecl]) funcTable[0x7619EEE8C886757FUL]; var success = false; var ref_r = _r; var ref_g = _g; @@ -102773,10 +102760,10 @@ public void GetVehicleNeonColour(int _vehicle, ref int _r, ref int _g, ref int _ } public void SetVehicleNeonEnabled(IVehicle vehicle, int index, bool toggle) => SetVehicleNeonEnabled(vehicle.ScriptId, index, toggle); - public void SetVehicleNeonEnabled(int _vehicle, int _index, bool _toggle) + public void SetVehicleNeonEnabled(uint _vehicle, int _index, bool _toggle) { unsafe { - if (fn__setVehicleNeonEnabled == null) fn__setVehicleNeonEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x2AA720E4287BF269UL]; + if (fn__setVehicleNeonEnabled == null) fn__setVehicleNeonEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x2AA720E4287BF269UL]; var success = false; fn__setVehicleNeonEnabled(&success, _vehicle, _index, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102784,10 +102771,10 @@ public void SetVehicleNeonEnabled(int _vehicle, int _index, bool _toggle) } public bool GetVehicleNeonEnabled(IVehicle vehicle, int index) => GetVehicleNeonEnabled(vehicle.ScriptId, index); - public bool GetVehicleNeonEnabled(int _vehicle, int _index) + public bool GetVehicleNeonEnabled(uint _vehicle, int _index) { unsafe { - if (fn__getVehicleNeonEnabled == null) fn__getVehicleNeonEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x8C4B92553E4766A5UL]; + if (fn__getVehicleNeonEnabled == null) fn__getVehicleNeonEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x8C4B92553E4766A5UL]; var success = false; var result = fn__getVehicleNeonEnabled(&success, _vehicle, _index); if (!success) throw new Exception("Native execution failed"); @@ -102806,10 +102793,10 @@ public void SetAmbientVehicleNeonEnabled(bool _p0) } public void SuppressNeonsOnVehicle(IVehicle vehicle, bool toggle) => SuppressNeonsOnVehicle(vehicle.ScriptId, toggle); - public void SuppressNeonsOnVehicle(int _vehicle, bool _toggle) + public void SuppressNeonsOnVehicle(uint _vehicle, bool _toggle) { unsafe { - if (fn__suppressNeonsOnVehicle == null) fn__suppressNeonsOnVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x83F813570FF519DEUL]; + if (fn__suppressNeonsOnVehicle == null) fn__suppressNeonsOnVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x83F813570FF519DEUL]; var success = false; fn__suppressNeonsOnVehicle(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102817,10 +102804,10 @@ public void SuppressNeonsOnVehicle(int _vehicle, bool _toggle) } public void SetDisableSuperdummy(IVehicle vehicle, bool p1) => SetDisableSuperdummy(vehicle.ScriptId, p1); - public void SetDisableSuperdummy(int _vehicle, bool _p1) + public void SetDisableSuperdummy(uint _vehicle, bool _p1) { unsafe { - if (fn__setDisableSuperdummy == null) fn__setDisableSuperdummy = (delegate* unmanaged[Cdecl]) funcTable[0xB088E9A47AE6EDD5UL]; + if (fn__setDisableSuperdummy == null) fn__setDisableSuperdummy = (delegate* unmanaged[Cdecl]) funcTable[0xB088E9A47AE6EDD5UL]; var success = false; fn__setDisableSuperdummy(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102828,10 +102815,10 @@ public void SetDisableSuperdummy(int _vehicle, bool _p1) } public void RequestVehicleDial(IVehicle vehicle) => RequestVehicleDial(vehicle.ScriptId); - public void RequestVehicleDial(int _vehicle) + public void RequestVehicleDial(uint _vehicle) { unsafe { - if (fn__requestVehicleDial == null) fn__requestVehicleDial = (delegate* unmanaged[Cdecl]) funcTable[0xDBA3C090E3D74690UL]; + if (fn__requestVehicleDial == null) fn__requestVehicleDial = (delegate* unmanaged[Cdecl]) funcTable[0xDBA3C090E3D74690UL]; var success = false; fn__requestVehicleDial(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -102839,10 +102826,10 @@ public void RequestVehicleDial(int _vehicle) } public float GetVehicleBodyHealth(IVehicle vehicle) => GetVehicleBodyHealth(vehicle.ScriptId); - public float GetVehicleBodyHealth(int _vehicle) + public float GetVehicleBodyHealth(uint _vehicle) { unsafe { - if (fn__getVehicleBodyHealth == null) fn__getVehicleBodyHealth = (delegate* unmanaged[Cdecl]) funcTable[0xF271147EB7B40F12UL]; + if (fn__getVehicleBodyHealth == null) fn__getVehicleBodyHealth = (delegate* unmanaged[Cdecl]) funcTable[0xF271147EB7B40F12UL]; var success = false; var result = fn__getVehicleBodyHealth(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -102851,10 +102838,10 @@ public float GetVehicleBodyHealth(int _vehicle) } public void SetVehicleBodyHealth(IVehicle vehicle, float value) => SetVehicleBodyHealth(vehicle.ScriptId, value); - public void SetVehicleBodyHealth(int _vehicle, float _value) + public void SetVehicleBodyHealth(uint _vehicle, float _value) { unsafe { - if (fn__setVehicleBodyHealth == null) fn__setVehicleBodyHealth = (delegate* unmanaged[Cdecl]) funcTable[0xB77D05AC8C78AADBUL]; + if (fn__setVehicleBodyHealth == null) fn__setVehicleBodyHealth = (delegate* unmanaged[Cdecl]) funcTable[0xB77D05AC8C78AADBUL]; var success = false; fn__setVehicleBodyHealth(&success, _vehicle, _value); if (!success) throw new Exception("Native execution failed"); @@ -102862,10 +102849,10 @@ public void SetVehicleBodyHealth(int _vehicle, float _value) } public void GetVehicleSize(IVehicle vehicle, ref Vector3 out1, ref Vector3 out2) => GetVehicleSize(vehicle.ScriptId, ref out1, ref out2); - public void GetVehicleSize(int _vehicle, ref Vector3 _out1, ref Vector3 _out2) + public void GetVehicleSize(uint _vehicle, ref Vector3 _out1, ref Vector3 _out2) { unsafe { - if (fn__getVehicleSize == null) fn__getVehicleSize = (delegate* unmanaged[Cdecl]) funcTable[0xDF7E3EEB29642C38UL]; + if (fn__getVehicleSize == null) fn__getVehicleSize = (delegate* unmanaged[Cdecl]) funcTable[0xDF7E3EEB29642C38UL]; var success = false; var ref_out1 = _out1; var ref_out2 = _out2; @@ -102877,10 +102864,10 @@ public void GetVehicleSize(int _vehicle, ref Vector3 _out1, ref Vector3 _out2) } public float GetFakeSuspensionLoweringAmount(IVehicle vehicle) => GetFakeSuspensionLoweringAmount(vehicle.ScriptId); - public float GetFakeSuspensionLoweringAmount(int _vehicle) + public float GetFakeSuspensionLoweringAmount(uint _vehicle) { unsafe { - if (fn__getFakeSuspensionLoweringAmount == null) fn__getFakeSuspensionLoweringAmount = (delegate* unmanaged[Cdecl]) funcTable[0x53952FD2BAA19F17UL]; + if (fn__getFakeSuspensionLoweringAmount == null) fn__getFakeSuspensionLoweringAmount = (delegate* unmanaged[Cdecl]) funcTable[0x53952FD2BAA19F17UL]; var success = false; var result = fn__getFakeSuspensionLoweringAmount(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -102899,10 +102886,10 @@ public void SetCarHighSpeedBumpSeverityMultiplier(float _multiplier) } public int GetNumberOfVehicleDoors(IVehicle vehicle) => GetNumberOfVehicleDoors(vehicle.ScriptId); - public int GetNumberOfVehicleDoors(int _vehicle) + public int GetNumberOfVehicleDoors(uint _vehicle) { unsafe { - if (fn__getNumberOfVehicleDoors == null) fn__getNumberOfVehicleDoors = (delegate* unmanaged[Cdecl]) funcTable[0x92922A607497B14DUL]; + if (fn__getNumberOfVehicleDoors == null) fn__getNumberOfVehicleDoors = (delegate* unmanaged[Cdecl]) funcTable[0x92922A607497B14DUL]; var success = false; var result = fn__getNumberOfVehicleDoors(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -102911,10 +102898,10 @@ public int GetNumberOfVehicleDoors(int _vehicle) } public void SetHydraulicsControl(IVehicle vehicle, bool toggle) => SetHydraulicsControl(vehicle.ScriptId, toggle); - public void SetHydraulicsControl(int _vehicle, bool _toggle) + public void SetHydraulicsControl(uint _vehicle, bool _toggle) { unsafe { - if (fn__setHydraulicsControl == null) fn__setHydraulicsControl = (delegate* unmanaged[Cdecl]) funcTable[0x28B18377EB6E25F6UL]; + if (fn__setHydraulicsControl == null) fn__setHydraulicsControl = (delegate* unmanaged[Cdecl]) funcTable[0x28B18377EB6E25F6UL]; var success = false; fn__setHydraulicsControl(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102922,10 +102909,10 @@ public void SetHydraulicsControl(int _vehicle, bool _toggle) } public void SetCanAdjustGroundClearance(IVehicle vehicle, bool p1) => SetCanAdjustGroundClearance(vehicle.ScriptId, p1); - public void SetCanAdjustGroundClearance(int _vehicle, bool _p1) + public void SetCanAdjustGroundClearance(uint _vehicle, bool _p1) { unsafe { - if (fn__setCanAdjustGroundClearance == null) fn__setCanAdjustGroundClearance = (delegate* unmanaged[Cdecl]) funcTable[0xA7DCDF4DED40A8F4UL]; + if (fn__setCanAdjustGroundClearance == null) fn__setCanAdjustGroundClearance = (delegate* unmanaged[Cdecl]) funcTable[0xA7DCDF4DED40A8F4UL]; var success = false; fn__setCanAdjustGroundClearance(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102933,10 +102920,10 @@ public void SetCanAdjustGroundClearance(int _vehicle, bool _p1) } public float GetVehicleHealthPercentage(IVehicle vehicle, float maxEngineHealth, float maxPetrolTankHealth, float maxBodyHealth, float maxMainRotorHealth, float maxTailRotorHealth, float maxUnkHealth) => GetVehicleHealthPercentage(vehicle.ScriptId, maxEngineHealth, maxPetrolTankHealth, maxBodyHealth, maxMainRotorHealth, maxTailRotorHealth, maxUnkHealth); - public float GetVehicleHealthPercentage(int _vehicle, float _maxEngineHealth, float _maxPetrolTankHealth, float _maxBodyHealth, float _maxMainRotorHealth, float _maxTailRotorHealth, float _maxUnkHealth) + public float GetVehicleHealthPercentage(uint _vehicle, float _maxEngineHealth, float _maxPetrolTankHealth, float _maxBodyHealth, float _maxMainRotorHealth, float _maxTailRotorHealth, float _maxUnkHealth) { unsafe { - if (fn__getVehicleHealthPercentage == null) fn__getVehicleHealthPercentage = (delegate* unmanaged[Cdecl]) funcTable[0xB8EF61207C2393A9UL]; + if (fn__getVehicleHealthPercentage == null) fn__getVehicleHealthPercentage = (delegate* unmanaged[Cdecl]) funcTable[0xB8EF61207C2393A9UL]; var success = false; var result = fn__getVehicleHealthPercentage(&success, _vehicle, _maxEngineHealth, _maxPetrolTankHealth, _maxBodyHealth, _maxMainRotorHealth, _maxTailRotorHealth, _maxUnkHealth); if (!success) throw new Exception("Native execution failed"); @@ -102945,10 +102932,10 @@ public float GetVehicleHealthPercentage(int _vehicle, float _maxEngineHealth, fl } public bool GetVehicleIsMercenary(IVehicle vehicle) => GetVehicleIsMercenary(vehicle.ScriptId); - public bool GetVehicleIsMercenary(int _vehicle) + public bool GetVehicleIsMercenary(uint _vehicle) { unsafe { - if (fn__getVehicleIsMercenary == null) fn__getVehicleIsMercenary = (delegate* unmanaged[Cdecl]) funcTable[0xD4C4642CB7F50B5DUL]; + if (fn__getVehicleIsMercenary == null) fn__getVehicleIsMercenary = (delegate* unmanaged[Cdecl]) funcTable[0xD4C4642CB7F50B5DUL]; var success = false; var result = fn__getVehicleIsMercenary(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -102957,10 +102944,10 @@ public bool GetVehicleIsMercenary(int _vehicle) } public void SetVehicleBrokenPartsDontAffectAiHandling(IVehicle vehicle, bool p1) => SetVehicleBrokenPartsDontAffectAiHandling(vehicle.ScriptId, p1); - public void SetVehicleBrokenPartsDontAffectAiHandling(int _vehicle, bool _p1) + public void SetVehicleBrokenPartsDontAffectAiHandling(uint _vehicle, bool _p1) { unsafe { - if (fn__setVehicleBrokenPartsDontAffectAiHandling == null) fn__setVehicleBrokenPartsDontAffectAiHandling = (delegate* unmanaged[Cdecl]) funcTable[0xC361AA040D6637A8UL]; + if (fn__setVehicleBrokenPartsDontAffectAiHandling == null) fn__setVehicleBrokenPartsDontAffectAiHandling = (delegate* unmanaged[Cdecl]) funcTable[0xC361AA040D6637A8UL]; var success = false; fn__setVehicleBrokenPartsDontAffectAiHandling(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102968,10 +102955,10 @@ public void SetVehicleBrokenPartsDontAffectAiHandling(int _vehicle, bool _p1) } public void SetVehicleKersAllowed(IVehicle vehicle, bool toggle) => SetVehicleKersAllowed(vehicle.ScriptId, toggle); - public void SetVehicleKersAllowed(int _vehicle, bool _toggle) + public void SetVehicleKersAllowed(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleKersAllowed == null) fn__setVehicleKersAllowed = (delegate* unmanaged[Cdecl]) funcTable[0x99C82F8A139F3E4EUL]; + if (fn__setVehicleKersAllowed == null) fn__setVehicleKersAllowed = (delegate* unmanaged[Cdecl]) funcTable[0x99C82F8A139F3E4EUL]; var success = false; fn__setVehicleKersAllowed(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -102979,10 +102966,10 @@ public void SetVehicleKersAllowed(int _vehicle, bool _toggle) } public bool GetVehicleHasKers(IVehicle vehicle) => GetVehicleHasKers(vehicle.ScriptId); - public bool GetVehicleHasKers(int _vehicle) + public bool GetVehicleHasKers(uint _vehicle) { unsafe { - if (fn__getVehicleHasKers == null) fn__getVehicleHasKers = (delegate* unmanaged[Cdecl]) funcTable[0x50634E348C8D44EFUL]; + if (fn__getVehicleHasKers == null) fn__getVehicleHasKers = (delegate* unmanaged[Cdecl]) funcTable[0x50634E348C8D44EFUL]; var success = false; var result = fn__getVehicleHasKers(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -102991,10 +102978,10 @@ public bool GetVehicleHasKers(int _vehicle) } public void SetPlaneResistToExplosion(IVehicle vehicle, bool toggle) => SetPlaneResistToExplosion(vehicle.ScriptId, toggle); - public void SetPlaneResistToExplosion(int _vehicle, bool _toggle) + public void SetPlaneResistToExplosion(uint _vehicle, bool _toggle) { unsafe { - if (fn__setPlaneResistToExplosion == null) fn__setPlaneResistToExplosion = (delegate* unmanaged[Cdecl]) funcTable[0xE16142B94664DEFDUL]; + if (fn__setPlaneResistToExplosion == null) fn__setPlaneResistToExplosion = (delegate* unmanaged[Cdecl]) funcTable[0xE16142B94664DEFDUL]; var success = false; fn__setPlaneResistToExplosion(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103002,10 +102989,10 @@ public void SetPlaneResistToExplosion(int _vehicle, bool _toggle) } public void SetHeliResistToExplosion(IVehicle vehicle, bool toggle) => SetHeliResistToExplosion(vehicle.ScriptId, toggle); - public void SetHeliResistToExplosion(int _vehicle, bool _toggle) + public void SetHeliResistToExplosion(uint _vehicle, bool _toggle) { unsafe { - if (fn__setHeliResistToExplosion == null) fn__setHeliResistToExplosion = (delegate* unmanaged[Cdecl]) funcTable[0x8074CC1886802912UL]; + if (fn__setHeliResistToExplosion == null) fn__setHeliResistToExplosion = (delegate* unmanaged[Cdecl]) funcTable[0x8074CC1886802912UL]; var success = false; fn__setHeliResistToExplosion(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103023,10 +103010,10 @@ public void SetDisableBmxExtraTrickForces(int _p0) } public void SetHydraulicSuspensionRaiseFactor(IVehicle vehicle, int wheelId, float value) => SetHydraulicSuspensionRaiseFactor(vehicle.ScriptId, wheelId, value); - public void SetHydraulicSuspensionRaiseFactor(int _vehicle, int _wheelId, float _value) + public void SetHydraulicSuspensionRaiseFactor(uint _vehicle, int _wheelId, float _value) { unsafe { - if (fn__setHydraulicSuspensionRaiseFactor == null) fn__setHydraulicSuspensionRaiseFactor = (delegate* unmanaged[Cdecl]) funcTable[0x84EA99C62CB3EF0CUL]; + if (fn__setHydraulicSuspensionRaiseFactor == null) fn__setHydraulicSuspensionRaiseFactor = (delegate* unmanaged[Cdecl]) funcTable[0x84EA99C62CB3EF0CUL]; var success = false; fn__setHydraulicSuspensionRaiseFactor(&success, _vehicle, _wheelId, _value); if (!success) throw new Exception("Native execution failed"); @@ -103034,10 +103021,10 @@ public void SetHydraulicSuspensionRaiseFactor(int _vehicle, int _wheelId, float } public float GetHydraulicSuspensionRaiseFactor(IVehicle vehicle, int wheelId) => GetHydraulicSuspensionRaiseFactor(vehicle.ScriptId, wheelId); - public float GetHydraulicSuspensionRaiseFactor(int _vehicle, int _wheelId) + public float GetHydraulicSuspensionRaiseFactor(uint _vehicle, int _wheelId) { unsafe { - if (fn__getHydraulicSuspensionRaiseFactor == null) fn__getHydraulicSuspensionRaiseFactor = (delegate* unmanaged[Cdecl]) funcTable[0x0BB5CBDDD0F25AE3UL]; + if (fn__getHydraulicSuspensionRaiseFactor == null) fn__getHydraulicSuspensionRaiseFactor = (delegate* unmanaged[Cdecl]) funcTable[0x0BB5CBDDD0F25AE3UL]; var success = false; var result = fn__getHydraulicSuspensionRaiseFactor(&success, _vehicle, _wheelId); if (!success) throw new Exception("Native execution failed"); @@ -103046,10 +103033,10 @@ public float GetHydraulicSuspensionRaiseFactor(int _vehicle, int _wheelId) } public void SetCanUseHydraulics(IVehicle vehicle, bool toggle) => SetCanUseHydraulics(vehicle.ScriptId, toggle); - public void SetCanUseHydraulics(int _vehicle, bool _toggle) + public void SetCanUseHydraulics(uint _vehicle, bool _toggle) { unsafe { - if (fn__setCanUseHydraulics == null) fn__setCanUseHydraulics = (delegate* unmanaged[Cdecl]) funcTable[0x1201E8A3290A3B98UL]; + if (fn__setCanUseHydraulics == null) fn__setCanUseHydraulics = (delegate* unmanaged[Cdecl]) funcTable[0x1201E8A3290A3B98UL]; var success = false; fn__setCanUseHydraulics(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103057,10 +103044,10 @@ public void SetCanUseHydraulics(int _vehicle, bool _toggle) } public void SetHydraulicVehicleState(IVehicle vehicle, int state) => SetHydraulicVehicleState(vehicle.ScriptId, state); - public void SetHydraulicVehicleState(int _vehicle, int _state) + public void SetHydraulicVehicleState(uint _vehicle, int _state) { unsafe { - if (fn__setHydraulicVehicleState == null) fn__setHydraulicVehicleState = (delegate* unmanaged[Cdecl]) funcTable[0x8EA86DF356801C7DUL]; + if (fn__setHydraulicVehicleState == null) fn__setHydraulicVehicleState = (delegate* unmanaged[Cdecl]) funcTable[0x8EA86DF356801C7DUL]; var success = false; fn__setHydraulicVehicleState(&success, _vehicle, _state); if (!success) throw new Exception("Native execution failed"); @@ -103068,10 +103055,10 @@ public void SetHydraulicVehicleState(int _vehicle, int _state) } public void SetHydraulicWheelState(IVehicle vehicle, int wheelId, int state, float value, int p4) => SetHydraulicWheelState(vehicle.ScriptId, wheelId, state, value, p4); - public void SetHydraulicWheelState(int _vehicle, int _wheelId, int _state, float _value, int _p4) + public void SetHydraulicWheelState(uint _vehicle, int _wheelId, int _state, float _value, int _p4) { unsafe { - if (fn__setHydraulicWheelState == null) fn__setHydraulicWheelState = (delegate* unmanaged[Cdecl]) funcTable[0xC24075310A8B9CD1UL]; + if (fn__setHydraulicWheelState == null) fn__setHydraulicWheelState = (delegate* unmanaged[Cdecl]) funcTable[0xC24075310A8B9CD1UL]; var success = false; fn__setHydraulicWheelState(&success, _vehicle, _wheelId, _state, _value, _p4); if (!success) throw new Exception("Native execution failed"); @@ -103090,10 +103077,10 @@ public bool HasVehiclePetroltankSetOnFireByEntity(int _p0, int _p1) } public void ClearVehiclePetroltankFireCulprit(IVehicle vehicle) => ClearVehiclePetroltankFireCulprit(vehicle.ScriptId); - public void ClearVehiclePetroltankFireCulprit(int _vehicle) + public void ClearVehiclePetroltankFireCulprit(uint _vehicle) { unsafe { - if (fn__clearVehiclePetroltankFireCulprit == null) fn__clearVehiclePetroltankFireCulprit = (delegate* unmanaged[Cdecl]) funcTable[0x4419966C9936071AUL]; + if (fn__clearVehiclePetroltankFireCulprit == null) fn__clearVehiclePetroltankFireCulprit = (delegate* unmanaged[Cdecl]) funcTable[0x4419966C9936071AUL]; var success = false; fn__clearVehiclePetroltankFireCulprit(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -103122,10 +103109,10 @@ public bool GetVehicleIsDummy(int _p0) } public bool SetVehicleDamageScale(IVehicle vehicle, float p1) => SetVehicleDamageScale(vehicle.ScriptId, p1); - public bool SetVehicleDamageScale(int _vehicle, float _p1) + public bool SetVehicleDamageScale(uint _vehicle, float _p1) { unsafe { - if (fn__setVehicleDamageScale == null) fn__setVehicleDamageScale = (delegate* unmanaged[Cdecl]) funcTable[0x4E20D2A627011E8EUL]; + if (fn__setVehicleDamageScale == null) fn__setVehicleDamageScale = (delegate* unmanaged[Cdecl]) funcTable[0x4E20D2A627011E8EUL]; var success = false; var result = fn__setVehicleDamageScale(&success, _vehicle, _p1); if (!success) throw new Exception("Native execution failed"); @@ -103134,10 +103121,10 @@ public bool SetVehicleDamageScale(int _vehicle, float _p1) } public bool SetVehicleWeaponDamageScale(IVehicle vehicle, float multiplier) => SetVehicleWeaponDamageScale(vehicle.ScriptId, multiplier); - public bool SetVehicleWeaponDamageScale(int _vehicle, float _multiplier) + public bool SetVehicleWeaponDamageScale(uint _vehicle, float _multiplier) { unsafe { - if (fn__setVehicleWeaponDamageScale == null) fn__setVehicleWeaponDamageScale = (delegate* unmanaged[Cdecl]) funcTable[0x45A561A9421AB6ADUL]; + if (fn__setVehicleWeaponDamageScale == null) fn__setVehicleWeaponDamageScale = (delegate* unmanaged[Cdecl]) funcTable[0x45A561A9421AB6ADUL]; var success = false; var result = fn__setVehicleWeaponDamageScale(&success, _vehicle, _multiplier); if (!success) throw new Exception("Native execution failed"); @@ -103167,10 +103154,10 @@ public void SetVehicleUsesMpPlayerDamageMultiplier(int _p0, int _p1) } public void SetBikeEasyToLand(IVehicle vehicle, bool toggle) => SetBikeEasyToLand(vehicle.ScriptId, toggle); - public void SetBikeEasyToLand(int _vehicle, bool _toggle) + public void SetBikeEasyToLand(uint _vehicle, bool _toggle) { unsafe { - if (fn__setBikeEasyToLand == null) fn__setBikeEasyToLand = (delegate* unmanaged[Cdecl]) funcTable[0x73561D4425A021A2UL]; + if (fn__setBikeEasyToLand == null) fn__setBikeEasyToLand = (delegate* unmanaged[Cdecl]) funcTable[0x73561D4425A021A2UL]; var success = false; fn__setBikeEasyToLand(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103178,10 +103165,10 @@ public void SetBikeEasyToLand(int _vehicle, bool _toggle) } public void SetInvertVehicleControls(IVehicle vehicle, bool state) => SetInvertVehicleControls(vehicle.ScriptId, state); - public void SetInvertVehicleControls(int _vehicle, bool _state) + public void SetInvertVehicleControls(uint _vehicle, bool _state) { unsafe { - if (fn__setInvertVehicleControls == null) fn__setInvertVehicleControls = (delegate* unmanaged[Cdecl]) funcTable[0x5B91B229243351A8UL]; + if (fn__setInvertVehicleControls == null) fn__setInvertVehicleControls = (delegate* unmanaged[Cdecl]) funcTable[0x5B91B229243351A8UL]; var success = false; fn__setInvertVehicleControls(&success, _vehicle, (byte) (_state ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103209,10 +103196,10 @@ public void SetSlowDownEffectDisabled(bool _disabled) } public void SetFormationLeader(IVehicle vehicle, float x, float y, float z, float p4) => SetFormationLeader(vehicle.ScriptId, x, y, z, p4); - public void SetFormationLeader(int _vehicle, float _x, float _y, float _z, float _p4) + public void SetFormationLeader(uint _vehicle, float _x, float _y, float _z, float _p4) { unsafe { - if (fn__setFormationLeader == null) fn__setFormationLeader = (delegate* unmanaged[Cdecl]) funcTable[0x428AD3E26C8D9EB0UL]; + if (fn__setFormationLeader == null) fn__setFormationLeader = (delegate* unmanaged[Cdecl]) funcTable[0x428AD3E26C8D9EB0UL]; var success = false; fn__setFormationLeader(&success, _vehicle, _x, _y, _z, _p4); if (!success) throw new Exception("Native execution failed"); @@ -103230,10 +103217,10 @@ public void ResetFormationLeader() } public bool GetIsBoatCapsized(IVehicle vehicle) => GetIsBoatCapsized(vehicle.ScriptId); - public bool GetIsBoatCapsized(int _vehicle) + public bool GetIsBoatCapsized(uint _vehicle) { unsafe { - if (fn__getIsBoatCapsized == null) fn__getIsBoatCapsized = (delegate* unmanaged[Cdecl]) funcTable[0xBA91D045575699ADUL]; + if (fn__getIsBoatCapsized == null) fn__getIsBoatCapsized = (delegate* unmanaged[Cdecl]) funcTable[0xBA91D045575699ADUL]; var success = false; var result = fn__getIsBoatCapsized(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -103252,10 +103239,10 @@ public void SetAllowRammingSoopOrRamp(int _p0, int _p1) } public void SetScriptRampImpulseScale(IVehicle vehicle, float impulseScale) => SetScriptRampImpulseScale(vehicle.ScriptId, impulseScale); - public void SetScriptRampImpulseScale(int _vehicle, float _impulseScale) + public void SetScriptRampImpulseScale(uint _vehicle, float _impulseScale) { unsafe { - if (fn__setScriptRampImpulseScale == null) fn__setScriptRampImpulseScale = (delegate* unmanaged[Cdecl]) funcTable[0xEFC13B1CE30D755DUL]; + if (fn__setScriptRampImpulseScale == null) fn__setScriptRampImpulseScale = (delegate* unmanaged[Cdecl]) funcTable[0xEFC13B1CE30D755DUL]; var success = false; fn__setScriptRampImpulseScale(&success, _vehicle, _impulseScale); if (!success) throw new Exception("Native execution failed"); @@ -103263,10 +103250,10 @@ public void SetScriptRampImpulseScale(int _vehicle, float _impulseScale) } public bool GetIsDoorValid(IVehicle vehicle, int doorId) => GetIsDoorValid(vehicle.ScriptId, doorId); - public bool GetIsDoorValid(int _vehicle, int _doorId) + public bool GetIsDoorValid(uint _vehicle, int _doorId) { unsafe { - if (fn__getIsDoorValid == null) fn__getIsDoorValid = (delegate* unmanaged[Cdecl]) funcTable[0x645F4B6E8499F632UL]; + if (fn__getIsDoorValid == null) fn__getIsDoorValid = (delegate* unmanaged[Cdecl]) funcTable[0x645F4B6E8499F632UL]; var success = false; var result = fn__getIsDoorValid(&success, _vehicle, _doorId); if (!success) throw new Exception("Native execution failed"); @@ -103275,10 +103262,10 @@ public bool GetIsDoorValid(int _vehicle, int _doorId) } public void SetScriptRocketBoostRechargeTime(IVehicle vehicle, float seconds) => SetScriptRocketBoostRechargeTime(vehicle.ScriptId, seconds); - public void SetScriptRocketBoostRechargeTime(int _vehicle, float _seconds) + public void SetScriptRocketBoostRechargeTime(uint _vehicle, float _seconds) { unsafe { - if (fn__setScriptRocketBoostRechargeTime == null) fn__setScriptRocketBoostRechargeTime = (delegate* unmanaged[Cdecl]) funcTable[0xE00F2AB100B76E89UL]; + if (fn__setScriptRocketBoostRechargeTime == null) fn__setScriptRocketBoostRechargeTime = (delegate* unmanaged[Cdecl]) funcTable[0xE00F2AB100B76E89UL]; var success = false; fn__setScriptRocketBoostRechargeTime(&success, _vehicle, _seconds); if (!success) throw new Exception("Native execution failed"); @@ -103286,10 +103273,10 @@ public void SetScriptRocketBoostRechargeTime(int _vehicle, float _seconds) } public bool GetHasRocketBoost(IVehicle vehicle) => GetHasRocketBoost(vehicle.ScriptId); - public bool GetHasRocketBoost(int _vehicle) + public bool GetHasRocketBoost(uint _vehicle) { unsafe { - if (fn__getHasRocketBoost == null) fn__getHasRocketBoost = (delegate* unmanaged[Cdecl]) funcTable[0x36D782F68B309BDAUL]; + if (fn__getHasRocketBoost == null) fn__getHasRocketBoost = (delegate* unmanaged[Cdecl]) funcTable[0x36D782F68B309BDAUL]; var success = false; var result = fn__getHasRocketBoost(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -103298,10 +103285,10 @@ public bool GetHasRocketBoost(int _vehicle) } public bool IsRocketBoostActive(IVehicle vehicle) => IsRocketBoostActive(vehicle.ScriptId); - public bool IsRocketBoostActive(int _vehicle) + public bool IsRocketBoostActive(uint _vehicle) { unsafe { - if (fn__isRocketBoostActive == null) fn__isRocketBoostActive = (delegate* unmanaged[Cdecl]) funcTable[0x3D34E80EED4AE3BEUL]; + if (fn__isRocketBoostActive == null) fn__isRocketBoostActive = (delegate* unmanaged[Cdecl]) funcTable[0x3D34E80EED4AE3BEUL]; var success = false; var result = fn__isRocketBoostActive(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -103310,10 +103297,10 @@ public bool IsRocketBoostActive(int _vehicle) } public void SetRocketBoostActive(IVehicle vehicle, bool active) => SetRocketBoostActive(vehicle.ScriptId, active); - public void SetRocketBoostActive(int _vehicle, bool _active) + public void SetRocketBoostActive(uint _vehicle, bool _active) { unsafe { - if (fn__setRocketBoostActive == null) fn__setRocketBoostActive = (delegate* unmanaged[Cdecl]) funcTable[0x81E1552E35DC3839UL]; + if (fn__setRocketBoostActive == null) fn__setRocketBoostActive = (delegate* unmanaged[Cdecl]) funcTable[0x81E1552E35DC3839UL]; var success = false; fn__setRocketBoostActive(&success, _vehicle, (byte) (_active ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103321,10 +103308,10 @@ public void SetRocketBoostActive(int _vehicle, bool _active) } public bool GetHasRetractableWheels(IVehicle vehicle) => GetHasRetractableWheels(vehicle.ScriptId); - public bool GetHasRetractableWheels(int _vehicle) + public bool GetHasRetractableWheels(uint _vehicle) { unsafe { - if (fn__getHasRetractableWheels == null) fn__getHasRetractableWheels = (delegate* unmanaged[Cdecl]) funcTable[0xDCA174A42133F08CUL]; + if (fn__getHasRetractableWheels == null) fn__getHasRetractableWheels = (delegate* unmanaged[Cdecl]) funcTable[0xDCA174A42133F08CUL]; var success = false; var result = fn__getHasRetractableWheels(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -103333,10 +103320,10 @@ public bool GetHasRetractableWheels(int _vehicle) } public bool GetIsWheelsRetracted(IVehicle vehicle) => GetIsWheelsRetracted(vehicle.ScriptId); - public bool GetIsWheelsRetracted(int _vehicle) + public bool GetIsWheelsRetracted(uint _vehicle) { unsafe { - if (fn__getIsWheelsRetracted == null) fn__getIsWheelsRetracted = (delegate* unmanaged[Cdecl]) funcTable[0x1DA0DA9CB3F0C8BFUL]; + if (fn__getIsWheelsRetracted == null) fn__getIsWheelsRetracted = (delegate* unmanaged[Cdecl]) funcTable[0x1DA0DA9CB3F0C8BFUL]; var success = false; var result = fn__getIsWheelsRetracted(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -103345,10 +103332,10 @@ public bool GetIsWheelsRetracted(int _vehicle) } public void SetWheelsExtendedInstantly(IVehicle vehicle) => SetWheelsExtendedInstantly(vehicle.ScriptId); - public void SetWheelsExtendedInstantly(int _vehicle) + public void SetWheelsExtendedInstantly(uint _vehicle) { unsafe { - if (fn__setWheelsExtendedInstantly == null) fn__setWheelsExtendedInstantly = (delegate* unmanaged[Cdecl]) funcTable[0xF660602546D27BA8UL]; + if (fn__setWheelsExtendedInstantly == null) fn__setWheelsExtendedInstantly = (delegate* unmanaged[Cdecl]) funcTable[0xF660602546D27BA8UL]; var success = false; fn__setWheelsExtendedInstantly(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -103356,10 +103343,10 @@ public void SetWheelsExtendedInstantly(int _vehicle) } public void SetWheelsRetractedInstantly(IVehicle vehicle) => SetWheelsRetractedInstantly(vehicle.ScriptId); - public void SetWheelsRetractedInstantly(int _vehicle) + public void SetWheelsRetractedInstantly(uint _vehicle) { unsafe { - if (fn__setWheelsRetractedInstantly == null) fn__setWheelsRetractedInstantly = (delegate* unmanaged[Cdecl]) funcTable[0x5335BE58C083E74EUL]; + if (fn__setWheelsRetractedInstantly == null) fn__setWheelsRetractedInstantly = (delegate* unmanaged[Cdecl]) funcTable[0x5335BE58C083E74EUL]; var success = false; fn__setWheelsRetractedInstantly(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -103367,10 +103354,10 @@ public void SetWheelsRetractedInstantly(int _vehicle) } public bool GetCarHasJump(IVehicle vehicle) => GetCarHasJump(vehicle.ScriptId); - public bool GetCarHasJump(int _vehicle) + public bool GetCarHasJump(uint _vehicle) { unsafe { - if (fn__getCarHasJump == null) fn__getCarHasJump = (delegate* unmanaged[Cdecl]) funcTable[0x9078C0C5EF8C19E9UL]; + if (fn__getCarHasJump == null) fn__getCarHasJump = (delegate* unmanaged[Cdecl]) funcTable[0x9078C0C5EF8C19E9UL]; var success = false; var result = fn__getCarHasJump(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -103379,10 +103366,10 @@ public bool GetCarHasJump(int _vehicle) } public void SetUseHigherCarJump(IVehicle vehicle, bool toggle) => SetUseHigherCarJump(vehicle.ScriptId, toggle); - public void SetUseHigherCarJump(int _vehicle, bool _toggle) + public void SetUseHigherCarJump(uint _vehicle, bool _toggle) { unsafe { - if (fn__setUseHigherCarJump == null) fn__setUseHigherCarJump = (delegate* unmanaged[Cdecl]) funcTable[0xF06A16CA55D138D8UL]; + if (fn__setUseHigherCarJump == null) fn__setUseHigherCarJump = (delegate* unmanaged[Cdecl]) funcTable[0xF06A16CA55D138D8UL]; var success = false; fn__setUseHigherCarJump(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103390,10 +103377,10 @@ public void SetUseHigherCarJump(int _vehicle, bool _toggle) } public void SetClearFreezeWaitingOnCollisionOncePlayerEnters(IVehicle vehicle, bool toggle) => SetClearFreezeWaitingOnCollisionOncePlayerEnters(vehicle.ScriptId, toggle); - public void SetClearFreezeWaitingOnCollisionOncePlayerEnters(int _vehicle, bool _toggle) + public void SetClearFreezeWaitingOnCollisionOncePlayerEnters(uint _vehicle, bool _toggle) { unsafe { - if (fn__setClearFreezeWaitingOnCollisionOncePlayerEnters == null) fn__setClearFreezeWaitingOnCollisionOncePlayerEnters = (delegate* unmanaged[Cdecl]) funcTable[0xB2E0C0D6922D31F2UL]; + if (fn__setClearFreezeWaitingOnCollisionOncePlayerEnters == null) fn__setClearFreezeWaitingOnCollisionOncePlayerEnters = (delegate* unmanaged[Cdecl]) funcTable[0xB2E0C0D6922D31F2UL]; var success = false; fn__setClearFreezeWaitingOnCollisionOncePlayerEnters(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103401,10 +103388,10 @@ public void SetClearFreezeWaitingOnCollisionOncePlayerEnters(int _vehicle, bool } public void SetVehicleWeaponRestrictedAmmo(IVehicle vehicle, int weaponIndex, int capacity) => SetVehicleWeaponRestrictedAmmo(vehicle.ScriptId, weaponIndex, capacity); - public void SetVehicleWeaponRestrictedAmmo(int _vehicle, int _weaponIndex, int _capacity) + public void SetVehicleWeaponRestrictedAmmo(uint _vehicle, int _weaponIndex, int _capacity) { unsafe { - if (fn__setVehicleWeaponRestrictedAmmo == null) fn__setVehicleWeaponRestrictedAmmo = (delegate* unmanaged[Cdecl]) funcTable[0x44CD1F493DB2A0A6UL]; + if (fn__setVehicleWeaponRestrictedAmmo == null) fn__setVehicleWeaponRestrictedAmmo = (delegate* unmanaged[Cdecl]) funcTable[0x44CD1F493DB2A0A6UL]; var success = false; fn__setVehicleWeaponRestrictedAmmo(&success, _vehicle, _weaponIndex, _capacity); if (!success) throw new Exception("Native execution failed"); @@ -103412,10 +103399,10 @@ public void SetVehicleWeaponRestrictedAmmo(int _vehicle, int _weaponIndex, int _ } public int GetVehicleWeaponRestrictedAmmo(IVehicle vehicle, int weaponIndex) => GetVehicleWeaponRestrictedAmmo(vehicle.ScriptId, weaponIndex); - public int GetVehicleWeaponRestrictedAmmo(int _vehicle, int _weaponIndex) + public int GetVehicleWeaponRestrictedAmmo(uint _vehicle, int _weaponIndex) { unsafe { - if (fn__getVehicleWeaponRestrictedAmmo == null) fn__getVehicleWeaponRestrictedAmmo = (delegate* unmanaged[Cdecl]) funcTable[0x8181CE2F25CB9BB7UL]; + if (fn__getVehicleWeaponRestrictedAmmo == null) fn__getVehicleWeaponRestrictedAmmo = (delegate* unmanaged[Cdecl]) funcTable[0x8181CE2F25CB9BB7UL]; var success = false; var result = fn__getVehicleWeaponRestrictedAmmo(&success, _vehicle, _weaponIndex); if (!success) throw new Exception("Native execution failed"); @@ -103424,10 +103411,10 @@ public int GetVehicleWeaponRestrictedAmmo(int _vehicle, int _weaponIndex) } public bool GetVehicleHasParachute(IVehicle vehicle) => GetVehicleHasParachute(vehicle.ScriptId); - public bool GetVehicleHasParachute(int _vehicle) + public bool GetVehicleHasParachute(uint _vehicle) { unsafe { - if (fn__getVehicleHasParachute == null) fn__getVehicleHasParachute = (delegate* unmanaged[Cdecl]) funcTable[0xBC9CFF381338CB4FUL]; + if (fn__getVehicleHasParachute == null) fn__getVehicleHasParachute = (delegate* unmanaged[Cdecl]) funcTable[0xBC9CFF381338CB4FUL]; var success = false; var result = fn__getVehicleHasParachute(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -103436,10 +103423,10 @@ public bool GetVehicleHasParachute(int _vehicle) } public bool GetVehicleCanDeployParachute(IVehicle vehicle) => GetVehicleCanDeployParachute(vehicle.ScriptId); - public bool GetVehicleCanDeployParachute(int _vehicle) + public bool GetVehicleCanDeployParachute(uint _vehicle) { unsafe { - if (fn__getVehicleCanDeployParachute == null) fn__getVehicleCanDeployParachute = (delegate* unmanaged[Cdecl]) funcTable[0xA916396DF4154EE3UL]; + if (fn__getVehicleCanDeployParachute == null) fn__getVehicleCanDeployParachute = (delegate* unmanaged[Cdecl]) funcTable[0xA916396DF4154EE3UL]; var success = false; var result = fn__getVehicleCanDeployParachute(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -103448,10 +103435,10 @@ public bool GetVehicleCanDeployParachute(int _vehicle) } public void VehicleStartParachuting(IVehicle vehicle, bool active) => VehicleStartParachuting(vehicle.ScriptId, active); - public void VehicleStartParachuting(int _vehicle, bool _active) + public void VehicleStartParachuting(uint _vehicle, bool _active) { unsafe { - if (fn__vehicleStartParachuting == null) fn__vehicleStartParachuting = (delegate* unmanaged[Cdecl]) funcTable[0x0BFFB028B3DD0A97UL]; + if (fn__vehicleStartParachuting == null) fn__vehicleStartParachuting = (delegate* unmanaged[Cdecl]) funcTable[0x0BFFB028B3DD0A97UL]; var success = false; fn__vehicleStartParachuting(&success, _vehicle, (byte) (_active ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103459,10 +103446,10 @@ public void VehicleStartParachuting(int _vehicle, bool _active) } public bool IsVehicleParachuteDeployed(IVehicle vehicle) => IsVehicleParachuteDeployed(vehicle.ScriptId); - public bool IsVehicleParachuteDeployed(int _vehicle) + public bool IsVehicleParachuteDeployed(uint _vehicle) { unsafe { - if (fn__isVehicleParachuteDeployed == null) fn__isVehicleParachuteDeployed = (delegate* unmanaged[Cdecl]) funcTable[0x3DE51E9C80B116CFUL]; + if (fn__isVehicleParachuteDeployed == null) fn__isVehicleParachuteDeployed = (delegate* unmanaged[Cdecl]) funcTable[0x3DE51E9C80B116CFUL]; var success = false; var result = fn__isVehicleParachuteDeployed(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -103471,10 +103458,10 @@ public bool IsVehicleParachuteDeployed(int _vehicle) } public void VehicleSetRampAndRammingCarsTakeDamage(IVehicle vehicle, bool toggle) => VehicleSetRampAndRammingCarsTakeDamage(vehicle.ScriptId, toggle); - public void VehicleSetRampAndRammingCarsTakeDamage(int _vehicle, bool _toggle) + public void VehicleSetRampAndRammingCarsTakeDamage(uint _vehicle, bool _toggle) { unsafe { - if (fn__vehicleSetRampAndRammingCarsTakeDamage == null) fn__vehicleSetRampAndRammingCarsTakeDamage = (delegate* unmanaged[Cdecl]) funcTable[0x28D034A93FE31BF5UL]; + if (fn__vehicleSetRampAndRammingCarsTakeDamage == null) fn__vehicleSetRampAndRammingCarsTakeDamage = (delegate* unmanaged[Cdecl]) funcTable[0x28D034A93FE31BF5UL]; var success = false; fn__vehicleSetRampAndRammingCarsTakeDamage(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103512,10 +103499,10 @@ public void VehicleSetJetWashForceEnabled(int _p0) } public void SetVehicleWeaponCanTargetObjects(IVehicle vehicle, bool toggle) => SetVehicleWeaponCanTargetObjects(vehicle.ScriptId, toggle); - public void SetVehicleWeaponCanTargetObjects(int _vehicle, bool _toggle) + public void SetVehicleWeaponCanTargetObjects(uint _vehicle, bool _toggle) { unsafe { - if (fn__setVehicleWeaponCanTargetObjects == null) fn__setVehicleWeaponCanTargetObjects = (delegate* unmanaged[Cdecl]) funcTable[0x86B4B6212CB8B627UL]; + if (fn__setVehicleWeaponCanTargetObjects == null) fn__setVehicleWeaponCanTargetObjects = (delegate* unmanaged[Cdecl]) funcTable[0x86B4B6212CB8B627UL]; var success = false; fn__setVehicleWeaponCanTargetObjects(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103533,10 +103520,10 @@ public void SetVehicleUseBoostButtonForWheelRetract(bool _toggle) } public void VehicleSetParachuteModelOverride(IVehicle vehicle, uint modelHash) => VehicleSetParachuteModelOverride(vehicle.ScriptId, modelHash); - public void VehicleSetParachuteModelOverride(int _vehicle, uint _modelHash) + public void VehicleSetParachuteModelOverride(uint _vehicle, uint _modelHash) { unsafe { - if (fn__vehicleSetParachuteModelOverride == null) fn__vehicleSetParachuteModelOverride = (delegate* unmanaged[Cdecl]) funcTable[0x4D610C6B56031351UL]; + if (fn__vehicleSetParachuteModelOverride == null) fn__vehicleSetParachuteModelOverride = (delegate* unmanaged[Cdecl]) funcTable[0x4D610C6B56031351UL]; var success = false; fn__vehicleSetParachuteModelOverride(&success, _vehicle, _modelHash); if (!success) throw new Exception("Native execution failed"); @@ -103544,10 +103531,10 @@ public void VehicleSetParachuteModelOverride(int _vehicle, uint _modelHash) } public void VehicleSetParachuteModelTintIndex(IVehicle vehicle, int textureVariation) => VehicleSetParachuteModelTintIndex(vehicle.ScriptId, textureVariation); - public void VehicleSetParachuteModelTintIndex(int _vehicle, int _textureVariation) + public void VehicleSetParachuteModelTintIndex(uint _vehicle, int _textureVariation) { unsafe { - if (fn__vehicleSetParachuteModelTintIndex == null) fn__vehicleSetParachuteModelTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xA74AD2439468C883UL]; + if (fn__vehicleSetParachuteModelTintIndex == null) fn__vehicleSetParachuteModelTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xA74AD2439468C883UL]; var success = false; fn__vehicleSetParachuteModelTintIndex(&success, _vehicle, _textureVariation); if (!success) throw new Exception("Native execution failed"); @@ -103621,10 +103608,10 @@ public void SetOverrideVehicleDoorTorque(int _p0, int _p1, int _p2) } public void SetWheelieEnabled(IVehicle vehicle, bool enabled) => SetWheelieEnabled(vehicle.ScriptId, enabled); - public void SetWheelieEnabled(int _vehicle, bool _enabled) + public void SetWheelieEnabled(uint _vehicle, bool _enabled) { unsafe { - if (fn__setWheelieEnabled == null) fn__setWheelieEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x1312DDD8385AEE4EUL]; + if (fn__setWheelieEnabled == null) fn__setWheelieEnabled = (delegate* unmanaged[Cdecl]) funcTable[0x1312DDD8385AEE4EUL]; var success = false; fn__setWheelieEnabled(&success, _vehicle, (byte) (_enabled ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103642,10 +103629,10 @@ public void SetDisableHeliExplodeFromBodyDamage(int _p0, int _p1) } public void SetDisableExplodeFromBodyDamageOnCollision(IVehicle vehicle, float value) => SetDisableExplodeFromBodyDamageOnCollision(vehicle.ScriptId, value); - public void SetDisableExplodeFromBodyDamageOnCollision(int _vehicle, float _value) + public void SetDisableExplodeFromBodyDamageOnCollision(uint _vehicle, float _value) { unsafe { - if (fn__setDisableExplodeFromBodyDamageOnCollision == null) fn__setDisableExplodeFromBodyDamageOnCollision = (delegate* unmanaged[Cdecl]) funcTable[0x26E13D440E7F6064UL]; + if (fn__setDisableExplodeFromBodyDamageOnCollision == null) fn__setDisableExplodeFromBodyDamageOnCollision = (delegate* unmanaged[Cdecl]) funcTable[0x26E13D440E7F6064UL]; var success = false; fn__setDisableExplodeFromBodyDamageOnCollision(&success, _vehicle, _value); if (!success) throw new Exception("Native execution failed"); @@ -103663,10 +103650,10 @@ public void SetTrailerAttachmentEnabled(int _p0, int _p1) } public void SetRocketBoostFill(IVehicle vehicle, float percentage) => SetRocketBoostFill(vehicle.ScriptId, percentage); - public void SetRocketBoostFill(int _vehicle, float _percentage) + public void SetRocketBoostFill(uint _vehicle, float _percentage) { unsafe { - if (fn__setRocketBoostFill == null) fn__setRocketBoostFill = (delegate* unmanaged[Cdecl]) funcTable[0xFEB2DDED3509562EUL]; + if (fn__setRocketBoostFill == null) fn__setRocketBoostFill = (delegate* unmanaged[Cdecl]) funcTable[0xFEB2DDED3509562EUL]; var success = false; fn__setRocketBoostFill(&success, _vehicle, _percentage); if (!success) throw new Exception("Native execution failed"); @@ -103674,10 +103661,10 @@ public void SetRocketBoostFill(int _vehicle, float _percentage) } public void SetGliderActive(IVehicle vehicle, bool state) => SetGliderActive(vehicle.ScriptId, state); - public void SetGliderActive(int _vehicle, bool _state) + public void SetGliderActive(uint _vehicle, bool _state) { unsafe { - if (fn__setGliderActive == null) fn__setGliderActive = (delegate* unmanaged[Cdecl]) funcTable[0x544996C0081ABDEBUL]; + if (fn__setGliderActive == null) fn__setGliderActive = (delegate* unmanaged[Cdecl]) funcTable[0x544996C0081ABDEBUL]; var success = false; fn__setGliderActive(&success, _vehicle, (byte) (_state ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103685,10 +103672,10 @@ public void SetGliderActive(int _vehicle, bool _state) } public void SetShouldResetTurretInScriptedCameras(IVehicle vehicle, bool shouldReset) => SetShouldResetTurretInScriptedCameras(vehicle.ScriptId, shouldReset); - public void SetShouldResetTurretInScriptedCameras(int _vehicle, bool _shouldReset) + public void SetShouldResetTurretInScriptedCameras(uint _vehicle, bool _shouldReset) { unsafe { - if (fn__setShouldResetTurretInScriptedCameras == null) fn__setShouldResetTurretInScriptedCameras = (delegate* unmanaged[Cdecl]) funcTable[0x78CEEE41F49F421FUL]; + if (fn__setShouldResetTurretInScriptedCameras == null) fn__setShouldResetTurretInScriptedCameras = (delegate* unmanaged[Cdecl]) funcTable[0x78CEEE41F49F421FUL]; var success = false; fn__setShouldResetTurretInScriptedCameras(&success, _vehicle, (byte) (_shouldReset ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103696,10 +103683,10 @@ public void SetShouldResetTurretInScriptedCameras(int _vehicle, bool _shouldRese } public void SetVehicleDisableCollisionUponCreation(IVehicle vehicle, bool disable) => SetVehicleDisableCollisionUponCreation(vehicle.ScriptId, disable); - public void SetVehicleDisableCollisionUponCreation(int _vehicle, bool _disable) + public void SetVehicleDisableCollisionUponCreation(uint _vehicle, bool _disable) { unsafe { - if (fn__setVehicleDisableCollisionUponCreation == null) fn__setVehicleDisableCollisionUponCreation = (delegate* unmanaged[Cdecl]) funcTable[0xAF60E6A2936F982AUL]; + if (fn__setVehicleDisableCollisionUponCreation == null) fn__setVehicleDisableCollisionUponCreation = (delegate* unmanaged[Cdecl]) funcTable[0xAF60E6A2936F982AUL]; var success = false; fn__setVehicleDisableCollisionUponCreation(&success, _vehicle, (byte) (_disable ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103717,10 +103704,10 @@ public void SetGroundEffectReducesDrag(bool _toggle) } public void SetDisableMapCollision(IVehicle vehicle) => SetDisableMapCollision(vehicle.ScriptId); - public void SetDisableMapCollision(int _vehicle) + public void SetDisableMapCollision(uint _vehicle) { unsafe { - if (fn__setDisableMapCollision == null) fn__setDisableMapCollision = (delegate* unmanaged[Cdecl]) funcTable[0x75627043C6AA90ADUL]; + if (fn__setDisableMapCollision == null) fn__setDisableMapCollision = (delegate* unmanaged[Cdecl]) funcTable[0x75627043C6AA90ADUL]; var success = false; fn__setDisableMapCollision(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -103728,10 +103715,10 @@ public void SetDisableMapCollision(int _vehicle) } public void SetDisablePedStandOnTop(IVehicle vehicle, bool toggle) => SetDisablePedStandOnTop(vehicle.ScriptId, toggle); - public void SetDisablePedStandOnTop(int _vehicle, bool _toggle) + public void SetDisablePedStandOnTop(uint _vehicle, bool _toggle) { unsafe { - if (fn__setDisablePedStandOnTop == null) fn__setDisablePedStandOnTop = (delegate* unmanaged[Cdecl]) funcTable[0x8235F1BEAD557629UL]; + if (fn__setDisablePedStandOnTop == null) fn__setDisablePedStandOnTop = (delegate* unmanaged[Cdecl]) funcTable[0x8235F1BEAD557629UL]; var success = false; fn__setDisablePedStandOnTop(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103739,10 +103726,10 @@ public void SetDisablePedStandOnTop(int _vehicle, bool _toggle) } public void SetVehicleDamageScales(IVehicle vehicle, int p1, int p2, int p3, int p4) => SetVehicleDamageScales(vehicle.ScriptId, p1, p2, p3, p4); - public void SetVehicleDamageScales(int _vehicle, int _p1, int _p2, int _p3, int _p4) + public void SetVehicleDamageScales(uint _vehicle, int _p1, int _p2, int _p3, int _p4) { unsafe { - if (fn__setVehicleDamageScales == null) fn__setVehicleDamageScales = (delegate* unmanaged[Cdecl]) funcTable[0x9640E30A7F395E4BUL]; + if (fn__setVehicleDamageScales == null) fn__setVehicleDamageScales = (delegate* unmanaged[Cdecl]) funcTable[0x9640E30A7F395E4BUL]; var success = false; fn__setVehicleDamageScales(&success, _vehicle, _p1, _p2, _p3, _p4); if (!success) throw new Exception("Native execution failed"); @@ -103750,10 +103737,10 @@ public void SetVehicleDamageScales(int _vehicle, int _p1, int _p2, int _p3, int } public void SetPlaneSectionDamageScale(IVehicle vehicle, int p1, int p2) => SetPlaneSectionDamageScale(vehicle.ScriptId, p1, p2); - public void SetPlaneSectionDamageScale(int _vehicle, int _p1, int _p2) + public void SetPlaneSectionDamageScale(uint _vehicle, int _p1, int _p2) { unsafe { - if (fn__setPlaneSectionDamageScale == null) fn__setPlaneSectionDamageScale = (delegate* unmanaged[Cdecl]) funcTable[0x0BBB9A7A8FFE931BUL]; + if (fn__setPlaneSectionDamageScale == null) fn__setPlaneSectionDamageScale = (delegate* unmanaged[Cdecl]) funcTable[0x0BBB9A7A8FFE931BUL]; var success = false; fn__setPlaneSectionDamageScale(&success, _vehicle, _p1, _p2); if (!success) throw new Exception("Native execution failed"); @@ -103761,10 +103748,10 @@ public void SetPlaneSectionDamageScale(int _vehicle, int _p1, int _p2) } public void SetHeliCanPickupEntityThatHasPickUpDisabled(IVehicle vehicle, bool toggle) => SetHeliCanPickupEntityThatHasPickUpDisabled(vehicle.ScriptId, toggle); - public void SetHeliCanPickupEntityThatHasPickUpDisabled(int _vehicle, bool _toggle) + public void SetHeliCanPickupEntityThatHasPickUpDisabled(uint _vehicle, bool _toggle) { unsafe { - if (fn__setHeliCanPickupEntityThatHasPickUpDisabled == null) fn__setHeliCanPickupEntityThatHasPickUpDisabled = (delegate* unmanaged[Cdecl]) funcTable[0x94A68DA412C4007DUL]; + if (fn__setHeliCanPickupEntityThatHasPickUpDisabled == null) fn__setHeliCanPickupEntityThatHasPickUpDisabled = (delegate* unmanaged[Cdecl]) funcTable[0x94A68DA412C4007DUL]; var success = false; fn__setHeliCanPickupEntityThatHasPickUpDisabled(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103772,10 +103759,10 @@ public void SetHeliCanPickupEntityThatHasPickUpDisabled(int _vehicle, bool _togg } public void SetVehicleBombAmmo(IVehicle vehicle, int bombCount) => SetVehicleBombAmmo(vehicle.ScriptId, bombCount); - public void SetVehicleBombAmmo(int _vehicle, int _bombCount) + public void SetVehicleBombAmmo(uint _vehicle, int _bombCount) { unsafe { - if (fn__setVehicleBombAmmo == null) fn__setVehicleBombAmmo = (delegate* unmanaged[Cdecl]) funcTable[0xF4B2ED59DEB5D774UL]; + if (fn__setVehicleBombAmmo == null) fn__setVehicleBombAmmo = (delegate* unmanaged[Cdecl]) funcTable[0xF4B2ED59DEB5D774UL]; var success = false; fn__setVehicleBombAmmo(&success, _vehicle, _bombCount); if (!success) throw new Exception("Native execution failed"); @@ -103783,10 +103770,10 @@ public void SetVehicleBombAmmo(int _vehicle, int _bombCount) } public int GetVehicleBombAmmo(IVehicle vehicle) => GetVehicleBombAmmo(vehicle.ScriptId); - public int GetVehicleBombAmmo(int _vehicle) + public int GetVehicleBombAmmo(uint _vehicle) { unsafe { - if (fn__getVehicleBombAmmo == null) fn__getVehicleBombAmmo = (delegate* unmanaged[Cdecl]) funcTable[0xEA12BD130D7569A1UL]; + if (fn__getVehicleBombAmmo == null) fn__getVehicleBombAmmo = (delegate* unmanaged[Cdecl]) funcTable[0xEA12BD130D7569A1UL]; var success = false; var result = fn__getVehicleBombAmmo(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -103795,10 +103782,10 @@ public int GetVehicleBombAmmo(int _vehicle) } public void SetVehicleCountermeasureAmmo(IVehicle vehicle, int counterMeasureCount) => SetVehicleCountermeasureAmmo(vehicle.ScriptId, counterMeasureCount); - public void SetVehicleCountermeasureAmmo(int _vehicle, int _counterMeasureCount) + public void SetVehicleCountermeasureAmmo(uint _vehicle, int _counterMeasureCount) { unsafe { - if (fn__setVehicleCountermeasureAmmo == null) fn__setVehicleCountermeasureAmmo = (delegate* unmanaged[Cdecl]) funcTable[0x9BDA23BF666F0855UL]; + if (fn__setVehicleCountermeasureAmmo == null) fn__setVehicleCountermeasureAmmo = (delegate* unmanaged[Cdecl]) funcTable[0x9BDA23BF666F0855UL]; var success = false; fn__setVehicleCountermeasureAmmo(&success, _vehicle, _counterMeasureCount); if (!success) throw new Exception("Native execution failed"); @@ -103806,10 +103793,10 @@ public void SetVehicleCountermeasureAmmo(int _vehicle, int _counterMeasureCount) } public int GetVehicleCountermeasureAmmo(IVehicle vehicle) => GetVehicleCountermeasureAmmo(vehicle.ScriptId); - public int GetVehicleCountermeasureAmmo(int _vehicle) + public int GetVehicleCountermeasureAmmo(uint _vehicle) { unsafe { - if (fn__getVehicleCountermeasureAmmo == null) fn__getVehicleCountermeasureAmmo = (delegate* unmanaged[Cdecl]) funcTable[0xF846AA63DF56B804UL]; + if (fn__getVehicleCountermeasureAmmo == null) fn__getVehicleCountermeasureAmmo = (delegate* unmanaged[Cdecl]) funcTable[0xF846AA63DF56B804UL]; var success = false; var result = fn__getVehicleCountermeasureAmmo(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -103818,10 +103805,10 @@ public int GetVehicleCountermeasureAmmo(int _vehicle) } public void SetHeliCombatOffset(IVehicle vehicle, float x, float y, float z) => SetHeliCombatOffset(vehicle.ScriptId, x, y, z); - public void SetHeliCombatOffset(int _vehicle, float _x, float _y, float _z) + public void SetHeliCombatOffset(uint _vehicle, float _x, float _y, float _z) { unsafe { - if (fn__setHeliCombatOffset == null) fn__setHeliCombatOffset = (delegate* unmanaged[Cdecl]) funcTable[0x0A3F820A9A9A9AC5UL]; + if (fn__setHeliCombatOffset == null) fn__setHeliCombatOffset = (delegate* unmanaged[Cdecl]) funcTable[0x0A3F820A9A9A9AC5UL]; var success = false; fn__setHeliCombatOffset(&success, _vehicle, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); @@ -103829,10 +103816,10 @@ public void SetHeliCombatOffset(int _vehicle, float _x, float _y, float _z) } public bool GetCanVehicleBePlacedHere(IVehicle vehicle, float x, float y, float z, float rotX, float rotY, float rotZ, int p7, int p8) => GetCanVehicleBePlacedHere(vehicle.ScriptId, x, y, z, rotX, rotY, rotZ, p7, p8); - public bool GetCanVehicleBePlacedHere(int _vehicle, float _x, float _y, float _z, float _rotX, float _rotY, float _rotZ, int _p7, int _p8) + public bool GetCanVehicleBePlacedHere(uint _vehicle, float _x, float _y, float _z, float _rotX, float _rotY, float _rotZ, int _p7, int _p8) { unsafe { - if (fn__getCanVehicleBePlacedHere == null) fn__getCanVehicleBePlacedHere = (delegate* unmanaged[Cdecl]) funcTable[0x51F30DB60626A20EUL]; + if (fn__getCanVehicleBePlacedHere == null) fn__getCanVehicleBePlacedHere = (delegate* unmanaged[Cdecl]) funcTable[0x51F30DB60626A20EUL]; var success = false; var result = fn__getCanVehicleBePlacedHere(&success, _vehicle, _x, _y, _z, _rotX, _rotY, _rotZ, _p7, _p8); if (!success) throw new Exception("Native execution failed"); @@ -103841,10 +103828,10 @@ public bool GetCanVehicleBePlacedHere(int _vehicle, float _x, float _y, float _z } public void SetDisableAutomaticCrashTask(IVehicle vehicle, bool toggle) => SetDisableAutomaticCrashTask(vehicle.ScriptId, toggle); - public void SetDisableAutomaticCrashTask(int _vehicle, bool _toggle) + public void SetDisableAutomaticCrashTask(uint _vehicle, bool _toggle) { unsafe { - if (fn__setDisableAutomaticCrashTask == null) fn__setDisableAutomaticCrashTask = (delegate* unmanaged[Cdecl]) funcTable[0x97841634EF7DF1D6UL]; + if (fn__setDisableAutomaticCrashTask == null) fn__setDisableAutomaticCrashTask = (delegate* unmanaged[Cdecl]) funcTable[0x97841634EF7DF1D6UL]; var success = false; fn__setDisableAutomaticCrashTask(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103852,10 +103839,10 @@ public void SetDisableAutomaticCrashTask(int _vehicle, bool _toggle) } public void SetSpecialFlightModeRatio(IVehicle vehicle, float ratio) => SetSpecialFlightModeRatio(vehicle.ScriptId, ratio); - public void SetSpecialFlightModeRatio(int _vehicle, float _ratio) + public void SetSpecialFlightModeRatio(uint _vehicle, float _ratio) { unsafe { - if (fn__setSpecialFlightModeRatio == null) fn__setSpecialFlightModeRatio = (delegate* unmanaged[Cdecl]) funcTable[0xD138FA15C9776837UL]; + if (fn__setSpecialFlightModeRatio == null) fn__setSpecialFlightModeRatio = (delegate* unmanaged[Cdecl]) funcTable[0xD138FA15C9776837UL]; var success = false; fn__setSpecialFlightModeRatio(&success, _vehicle, _ratio); if (!success) throw new Exception("Native execution failed"); @@ -103863,10 +103850,10 @@ public void SetSpecialFlightModeRatio(int _vehicle, float _ratio) } public void SetSpecialFlightModeTargetRatio(IVehicle vehicle, float targetRatio) => SetSpecialFlightModeTargetRatio(vehicle.ScriptId, targetRatio); - public void SetSpecialFlightModeTargetRatio(int _vehicle, float _targetRatio) + public void SetSpecialFlightModeTargetRatio(uint _vehicle, float _targetRatio) { unsafe { - if (fn__setSpecialFlightModeTargetRatio == null) fn__setSpecialFlightModeTargetRatio = (delegate* unmanaged[Cdecl]) funcTable[0x438B3D7CA026FE91UL]; + if (fn__setSpecialFlightModeTargetRatio == null) fn__setSpecialFlightModeTargetRatio = (delegate* unmanaged[Cdecl]) funcTable[0x438B3D7CA026FE91UL]; var success = false; fn__setSpecialFlightModeTargetRatio(&success, _vehicle, _targetRatio); if (!success) throw new Exception("Native execution failed"); @@ -103874,10 +103861,10 @@ public void SetSpecialFlightModeTargetRatio(int _vehicle, float _targetRatio) } public void SetSpecialFlightModeAllowed(IVehicle vehicle, bool toggle) => SetSpecialFlightModeAllowed(vehicle.ScriptId, toggle); - public void SetSpecialFlightModeAllowed(int _vehicle, bool _toggle) + public void SetSpecialFlightModeAllowed(uint _vehicle, bool _toggle) { unsafe { - if (fn__setSpecialFlightModeAllowed == null) fn__setSpecialFlightModeAllowed = (delegate* unmanaged[Cdecl]) funcTable[0xF1211889DF15A763UL]; + if (fn__setSpecialFlightModeAllowed == null) fn__setSpecialFlightModeAllowed = (delegate* unmanaged[Cdecl]) funcTable[0xF1211889DF15A763UL]; var success = false; fn__setSpecialFlightModeAllowed(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103885,10 +103872,10 @@ public void SetSpecialFlightModeAllowed(int _vehicle, bool _toggle) } public void SetDisableHoverModeFlight(IVehicle vehicle, bool toggle) => SetDisableHoverModeFlight(vehicle.ScriptId, toggle); - public void SetDisableHoverModeFlight(int _vehicle, bool _toggle) + public void SetDisableHoverModeFlight(uint _vehicle, bool _toggle) { unsafe { - if (fn__setDisableHoverModeFlight == null) fn__setDisableHoverModeFlight = (delegate* unmanaged[Cdecl]) funcTable[0x2D55FE374D5FDB91UL]; + if (fn__setDisableHoverModeFlight == null) fn__setDisableHoverModeFlight = (delegate* unmanaged[Cdecl]) funcTable[0x2D55FE374D5FDB91UL]; var success = false; fn__setDisableHoverModeFlight(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103896,10 +103883,10 @@ public void SetDisableHoverModeFlight(int _vehicle, bool _toggle) } public bool GetOutriggersDeployed(IVehicle vehicle) => GetOutriggersDeployed(vehicle.ScriptId); - public bool GetOutriggersDeployed(int _vehicle) + public bool GetOutriggersDeployed(uint _vehicle) { unsafe { - if (fn__getOutriggersDeployed == null) fn__getOutriggersDeployed = (delegate* unmanaged[Cdecl]) funcTable[0x3A9128352EAC9E85UL]; + if (fn__getOutriggersDeployed == null) fn__getOutriggersDeployed = (delegate* unmanaged[Cdecl]) funcTable[0x3A9128352EAC9E85UL]; var success = false; var result = fn__getOutriggersDeployed(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -103908,10 +103895,10 @@ public bool GetOutriggersDeployed(int _vehicle) } public Vector3 FindSpawnCoordinatesForHeli(IPlayer ped) => FindSpawnCoordinatesForHeli(ped.ScriptId); - public Vector3 FindSpawnCoordinatesForHeli(int _ped) + public Vector3 FindSpawnCoordinatesForHeli(uint _ped) { unsafe { - if (fn__findSpawnCoordinatesForHeli == null) fn__findSpawnCoordinatesForHeli = (delegate* unmanaged[Cdecl]) funcTable[0x8DC9675797123522UL]; + if (fn__findSpawnCoordinatesForHeli == null) fn__findSpawnCoordinatesForHeli = (delegate* unmanaged[Cdecl]) funcTable[0x8DC9675797123522UL]; var success = false; var result = fn__findSpawnCoordinatesForHeli(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -103920,10 +103907,10 @@ public Vector3 FindSpawnCoordinatesForHeli(int _ped) } public void SetDeployFoldingWings(IVehicle vehicle, bool deploy, bool p2) => SetDeployFoldingWings(vehicle.ScriptId, deploy, p2); - public void SetDeployFoldingWings(int _vehicle, bool _deploy, bool _p2) + public void SetDeployFoldingWings(uint _vehicle, bool _deploy, bool _p2) { unsafe { - if (fn__setDeployFoldingWings == null) fn__setDeployFoldingWings = (delegate* unmanaged[Cdecl]) funcTable[0xB251E0B33E58B424UL]; + if (fn__setDeployFoldingWings == null) fn__setDeployFoldingWings = (delegate* unmanaged[Cdecl]) funcTable[0xB251E0B33E58B424UL]; var success = false; fn__setDeployFoldingWings(&success, _vehicle, (byte) (_deploy ? 1 : 0), (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103931,10 +103918,10 @@ public void SetDeployFoldingWings(int _vehicle, bool _deploy, bool _p2) } public bool AreFoldingWingsDeployed(IVehicle vehicle) => AreFoldingWingsDeployed(vehicle.ScriptId); - public bool AreFoldingWingsDeployed(int _vehicle) + public bool AreFoldingWingsDeployed(uint _vehicle) { unsafe { - if (fn__areFoldingWingsDeployed == null) fn__areFoldingWingsDeployed = (delegate* unmanaged[Cdecl]) funcTable[0xAEF12960FA943792UL]; + if (fn__areFoldingWingsDeployed == null) fn__areFoldingWingsDeployed = (delegate* unmanaged[Cdecl]) funcTable[0xAEF12960FA943792UL]; var success = false; var result = fn__areFoldingWingsDeployed(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -103943,10 +103930,10 @@ public bool AreFoldingWingsDeployed(int _vehicle) } public void SetDipStraightDownWhenCrashingPlane(IVehicle vehicle, bool toggle) => SetDipStraightDownWhenCrashingPlane(vehicle.ScriptId, toggle); - public void SetDipStraightDownWhenCrashingPlane(int _vehicle, bool _toggle) + public void SetDipStraightDownWhenCrashingPlane(uint _vehicle, bool _toggle) { unsafe { - if (fn__setDipStraightDownWhenCrashingPlane == null) fn__setDipStraightDownWhenCrashingPlane = (delegate* unmanaged[Cdecl]) funcTable[0xAA653AE61924B0A0UL]; + if (fn__setDipStraightDownWhenCrashingPlane == null) fn__setDipStraightDownWhenCrashingPlane = (delegate* unmanaged[Cdecl]) funcTable[0xAA653AE61924B0A0UL]; var success = false; fn__setDipStraightDownWhenCrashingPlane(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103954,10 +103941,10 @@ public void SetDipStraightDownWhenCrashingPlane(int _vehicle, bool _toggle) } public void SetTurretHidden(IVehicle vehicle, int index, bool toggle) => SetTurretHidden(vehicle.ScriptId, index, toggle); - public void SetTurretHidden(int _vehicle, int _index, bool _toggle) + public void SetTurretHidden(uint _vehicle, int _index, bool _toggle) { unsafe { - if (fn__setTurretHidden == null) fn__setTurretHidden = (delegate* unmanaged[Cdecl]) funcTable[0xC60060EB0D8AC7B1UL]; + if (fn__setTurretHidden == null) fn__setTurretHidden = (delegate* unmanaged[Cdecl]) funcTable[0xC60060EB0D8AC7B1UL]; var success = false; fn__setTurretHidden(&success, _vehicle, _index, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -103965,10 +103952,10 @@ public void SetTurretHidden(int _vehicle, int _index, bool _toggle) } public void SetHoverModeWingRatio(IVehicle vehicle, float ratio) => SetHoverModeWingRatio(vehicle.ScriptId, ratio); - public void SetHoverModeWingRatio(int _vehicle, float _ratio) + public void SetHoverModeWingRatio(uint _vehicle, float _ratio) { unsafe { - if (fn__setHoverModeWingRatio == null) fn__setHoverModeWingRatio = (delegate* unmanaged[Cdecl]) funcTable[0x70A252F60A3E036BUL]; + if (fn__setHoverModeWingRatio == null) fn__setHoverModeWingRatio = (delegate* unmanaged[Cdecl]) funcTable[0x70A252F60A3E036BUL]; var success = false; fn__setHoverModeWingRatio(&success, _vehicle, _ratio); if (!success) throw new Exception("Native execution failed"); @@ -103976,10 +103963,10 @@ public void SetHoverModeWingRatio(int _vehicle, float _ratio) } public void SetDisableTurretMovement(IVehicle vehicle, int turretId) => SetDisableTurretMovement(vehicle.ScriptId, turretId); - public void SetDisableTurretMovement(int _vehicle, int _turretId) + public void SetDisableTurretMovement(uint _vehicle, int _turretId) { unsafe { - if (fn__setDisableTurretMovement == null) fn__setDisableTurretMovement = (delegate* unmanaged[Cdecl]) funcTable[0xE615BB7A7752C76AUL]; + if (fn__setDisableTurretMovement == null) fn__setDisableTurretMovement = (delegate* unmanaged[Cdecl]) funcTable[0xE615BB7A7752C76AUL]; var success = false; fn__setDisableTurretMovement(&success, _vehicle, _turretId); if (!success) throw new Exception("Native execution failed"); @@ -103987,10 +103974,10 @@ public void SetDisableTurretMovement(int _vehicle, int _turretId) } public void SetForceFixLinkMatrices(IVehicle vehicle) => SetForceFixLinkMatrices(vehicle.ScriptId); - public void SetForceFixLinkMatrices(int _vehicle) + public void SetForceFixLinkMatrices(uint _vehicle) { unsafe { - if (fn__setForceFixLinkMatrices == null) fn__setForceFixLinkMatrices = (delegate* unmanaged[Cdecl]) funcTable[0x887FA38787DE8C72UL]; + if (fn__setForceFixLinkMatrices == null) fn__setForceFixLinkMatrices = (delegate* unmanaged[Cdecl]) funcTable[0x887FA38787DE8C72UL]; var success = false; fn__setForceFixLinkMatrices(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -103998,10 +103985,10 @@ public void SetForceFixLinkMatrices(int _vehicle) } public void SetTransformRateForAnimation(IVehicle vehicle, float transformRate) => SetTransformRateForAnimation(vehicle.ScriptId, transformRate); - public void SetTransformRateForAnimation(int _vehicle, float _transformRate) + public void SetTransformRateForAnimation(uint _vehicle, float _transformRate) { unsafe { - if (fn__setTransformRateForAnimation == null) fn__setTransformRateForAnimation = (delegate* unmanaged[Cdecl]) funcTable[0x498218259FB7C72DUL]; + if (fn__setTransformRateForAnimation == null) fn__setTransformRateForAnimation = (delegate* unmanaged[Cdecl]) funcTable[0x498218259FB7C72DUL]; var success = false; fn__setTransformRateForAnimation(&success, _vehicle, _transformRate); if (!success) throw new Exception("Native execution failed"); @@ -104009,10 +103996,10 @@ public void SetTransformRateForAnimation(int _vehicle, float _transformRate) } public void SetTransformToSubmarineUsesAlternateInput(IVehicle vehicle, bool toggle) => SetTransformToSubmarineUsesAlternateInput(vehicle.ScriptId, toggle); - public void SetTransformToSubmarineUsesAlternateInput(int _vehicle, bool _toggle) + public void SetTransformToSubmarineUsesAlternateInput(uint _vehicle, bool _toggle) { unsafe { - if (fn__setTransformToSubmarineUsesAlternateInput == null) fn__setTransformToSubmarineUsesAlternateInput = (delegate* unmanaged[Cdecl]) funcTable[0x41B9FB92EDED32A6UL]; + if (fn__setTransformToSubmarineUsesAlternateInput == null) fn__setTransformToSubmarineUsesAlternateInput = (delegate* unmanaged[Cdecl]) funcTable[0x41B9FB92EDED32A6UL]; var success = false; fn__setTransformToSubmarineUsesAlternateInput(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -104050,10 +104037,10 @@ public void SetVehicleShuntOnStick(bool _toggle) } public bool GetIsVehicleShunting(IVehicle vehicle) => GetIsVehicleShunting(vehicle.ScriptId); - public bool GetIsVehicleShunting(int _vehicle) + public bool GetIsVehicleShunting(uint _vehicle) { unsafe { - if (fn__getIsVehicleShunting == null) fn__getIsVehicleShunting = (delegate* unmanaged[Cdecl]) funcTable[0xA2459F72C14E2E8DUL]; + if (fn__getIsVehicleShunting == null) fn__getIsVehicleShunting = (delegate* unmanaged[Cdecl]) funcTable[0xA2459F72C14E2E8DUL]; var success = false; var result = fn__getIsVehicleShunting(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -104062,10 +104049,10 @@ public bool GetIsVehicleShunting(int _vehicle) } public bool GetHasVehicleBeenHitByShunt(IVehicle vehicle) => GetHasVehicleBeenHitByShunt(vehicle.ScriptId); - public bool GetHasVehicleBeenHitByShunt(int _vehicle) + public bool GetHasVehicleBeenHitByShunt(uint _vehicle) { unsafe { - if (fn__getHasVehicleBeenHitByShunt == null) fn__getHasVehicleBeenHitByShunt = (delegate* unmanaged[Cdecl]) funcTable[0xE8718FAF591FD224UL]; + if (fn__getHasVehicleBeenHitByShunt == null) fn__getHasVehicleBeenHitByShunt = (delegate* unmanaged[Cdecl]) funcTable[0xE8718FAF591FD224UL]; var success = false; var result = fn__getHasVehicleBeenHitByShunt(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -104073,11 +104060,11 @@ public bool GetHasVehicleBeenHitByShunt(int _vehicle) } } - public int GetLastShuntVehicle(IVehicle vehicle) => GetLastShuntVehicle(vehicle.ScriptId); - public int GetLastShuntVehicle(int _vehicle) + public uint GetLastShuntVehicle(IVehicle vehicle) => GetLastShuntVehicle(vehicle.ScriptId); + public uint GetLastShuntVehicle(uint _vehicle) { unsafe { - if (fn__getLastShuntVehicle == null) fn__getLastShuntVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x04F2FA6E234162F7UL]; + if (fn__getLastShuntVehicle == null) fn__getLastShuntVehicle = (delegate* unmanaged[Cdecl]) funcTable[0x04F2FA6E234162F7UL]; var success = false; var result = fn__getLastShuntVehicle(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -104096,10 +104083,10 @@ public void SetDisableVehicleExplosionsDamage(bool _toggle) } public void SetOverrideNitrousLevel(IVehicle vehicle, bool toggle, float level, float power, float rechargeTime, bool disableSound) => SetOverrideNitrousLevel(vehicle.ScriptId, toggle, level, power, rechargeTime, disableSound); - public void SetOverrideNitrousLevel(int _vehicle, bool _toggle, float _level, float _power, float _rechargeTime, bool _disableSound) + public void SetOverrideNitrousLevel(uint _vehicle, bool _toggle, float _level, float _power, float _rechargeTime, bool _disableSound) { unsafe { - if (fn__setOverrideNitrousLevel == null) fn__setOverrideNitrousLevel = (delegate* unmanaged[Cdecl]) funcTable[0xC8E9B6B71B8E660DUL]; + if (fn__setOverrideNitrousLevel == null) fn__setOverrideNitrousLevel = (delegate* unmanaged[Cdecl]) funcTable[0xC8E9B6B71B8E660DUL]; var success = false; fn__setOverrideNitrousLevel(&success, _vehicle, (byte) (_toggle ? 1 : 0), _level, _power, _rechargeTime, (byte) (_disableSound ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -104107,10 +104094,10 @@ public void SetOverrideNitrousLevel(int _vehicle, bool _toggle, float _level, fl } public void SetIncreaseWheelCrushDamage(IVehicle vehicle, bool toggle) => SetIncreaseWheelCrushDamage(vehicle.ScriptId, toggle); - public void SetIncreaseWheelCrushDamage(int _vehicle, bool _toggle) + public void SetIncreaseWheelCrushDamage(uint _vehicle, bool _toggle) { unsafe { - if (fn__setIncreaseWheelCrushDamage == null) fn__setIncreaseWheelCrushDamage = (delegate* unmanaged[Cdecl]) funcTable[0x2970EAA18FD5E42FUL]; + if (fn__setIncreaseWheelCrushDamage == null) fn__setIncreaseWheelCrushDamage = (delegate* unmanaged[Cdecl]) funcTable[0x2970EAA18FD5E42FUL]; var success = false; fn__setIncreaseWheelCrushDamage(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -104138,10 +104125,10 @@ public void SetUseDoubleClickForCarJump(bool _toggle) } public bool GetDoesVehicleHaveTombstone(IVehicle vehicle) => GetDoesVehicleHaveTombstone(vehicle.ScriptId); - public bool GetDoesVehicleHaveTombstone(int _vehicle) + public bool GetDoesVehicleHaveTombstone(uint _vehicle) { unsafe { - if (fn__getDoesVehicleHaveTombstone == null) fn__getDoesVehicleHaveTombstone = (delegate* unmanaged[Cdecl]) funcTable[0x71AFB258CCED3A27UL]; + if (fn__getDoesVehicleHaveTombstone == null) fn__getDoesVehicleHaveTombstone = (delegate* unmanaged[Cdecl]) funcTable[0x71AFB258CCED3A27UL]; var success = false; var result = fn__getDoesVehicleHaveTombstone(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -104150,10 +104137,10 @@ public bool GetDoesVehicleHaveTombstone(int _vehicle) } public void HideTombstone(IVehicle vehicle, bool toggle) => HideTombstone(vehicle.ScriptId, toggle); - public void HideTombstone(int _vehicle, bool _toggle) + public void HideTombstone(uint _vehicle, bool _toggle) { unsafe { - if (fn__hideTombstone == null) fn__hideTombstone = (delegate* unmanaged[Cdecl]) funcTable[0xAE71FB656C600587UL]; + if (fn__hideTombstone == null) fn__hideTombstone = (delegate* unmanaged[Cdecl]) funcTable[0xAE71FB656C600587UL]; var success = false; fn__hideTombstone(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -104161,10 +104148,10 @@ public void HideTombstone(int _vehicle, bool _toggle) } public bool GetIsVehicleDisabledByEmp(IVehicle vehicle) => GetIsVehicleDisabledByEmp(vehicle.ScriptId); - public bool GetIsVehicleDisabledByEmp(int _vehicle) + public bool GetIsVehicleDisabledByEmp(uint _vehicle) { unsafe { - if (fn__getIsVehicleDisabledByEmp == null) fn__getIsVehicleDisabledByEmp = (delegate* unmanaged[Cdecl]) funcTable[0x0506ED94363AD905UL]; + if (fn__getIsVehicleDisabledByEmp == null) fn__getIsVehicleDisabledByEmp = (delegate* unmanaged[Cdecl]) funcTable[0x0506ED94363AD905UL]; var success = false; var result = fn__getIsVehicleDisabledByEmp(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -104183,10 +104170,10 @@ public void SetDisableRetractingWeaponBlades(bool _toggle) } public float GetTyreHealth(IVehicle vehicle, int wheelIndex) => GetTyreHealth(vehicle.ScriptId, wheelIndex); - public float GetTyreHealth(int _vehicle, int _wheelIndex) + public float GetTyreHealth(uint _vehicle, int _wheelIndex) { unsafe { - if (fn__getTyreHealth == null) fn__getTyreHealth = (delegate* unmanaged[Cdecl]) funcTable[0x55EAB010FAEE9380UL]; + if (fn__getTyreHealth == null) fn__getTyreHealth = (delegate* unmanaged[Cdecl]) funcTable[0x55EAB010FAEE9380UL]; var success = false; var result = fn__getTyreHealth(&success, _vehicle, _wheelIndex); if (!success) throw new Exception("Native execution failed"); @@ -104195,10 +104182,10 @@ public float GetTyreHealth(int _vehicle, int _wheelIndex) } public void SetTyreHealth(IVehicle vehicle, int wheelIndex, float health) => SetTyreHealth(vehicle.ScriptId, wheelIndex, health); - public void SetTyreHealth(int _vehicle, int _wheelIndex, float _health) + public void SetTyreHealth(uint _vehicle, int _wheelIndex, float _health) { unsafe { - if (fn__setTyreHealth == null) fn__setTyreHealth = (delegate* unmanaged[Cdecl]) funcTable[0x74C68EF97645E79DUL]; + if (fn__setTyreHealth == null) fn__setTyreHealth = (delegate* unmanaged[Cdecl]) funcTable[0x74C68EF97645E79DUL]; var success = false; fn__setTyreHealth(&success, _vehicle, _wheelIndex, _health); if (!success) throw new Exception("Native execution failed"); @@ -104206,10 +104193,10 @@ public void SetTyreHealth(int _vehicle, int _wheelIndex, float _health) } public float GetTyreWearRate(IVehicle vehicle, int wheelIndex) => GetTyreWearRate(vehicle.ScriptId, wheelIndex); - public float GetTyreWearRate(int _vehicle, int _wheelIndex) + public float GetTyreWearRate(uint _vehicle, int _wheelIndex) { unsafe { - if (fn__getTyreWearRate == null) fn__getTyreWearRate = (delegate* unmanaged[Cdecl]) funcTable[0x6E387895952F4F71UL]; + if (fn__getTyreWearRate == null) fn__getTyreWearRate = (delegate* unmanaged[Cdecl]) funcTable[0x6E387895952F4F71UL]; var success = false; var result = fn__getTyreWearRate(&success, _vehicle, _wheelIndex); if (!success) throw new Exception("Native execution failed"); @@ -104218,10 +104205,10 @@ public float GetTyreWearRate(int _vehicle, int _wheelIndex) } public void SetTyreWearRate(IVehicle vehicle, int wheelIndex, float multiplier) => SetTyreWearRate(vehicle.ScriptId, wheelIndex, multiplier); - public void SetTyreWearRate(int _vehicle, int _wheelIndex, float _multiplier) + public void SetTyreWearRate(uint _vehicle, int _wheelIndex, float _multiplier) { unsafe { - if (fn__setTyreWearRate == null) fn__setTyreWearRate = (delegate* unmanaged[Cdecl]) funcTable[0x01894E2EDE923CA2UL]; + if (fn__setTyreWearRate == null) fn__setTyreWearRate = (delegate* unmanaged[Cdecl]) funcTable[0x01894E2EDE923CA2UL]; var success = false; fn__setTyreWearRate(&success, _vehicle, _wheelIndex, _multiplier); if (!success) throw new Exception("Native execution failed"); @@ -104229,10 +104216,10 @@ public void SetTyreWearRate(int _vehicle, int _wheelIndex, float _multiplier) } public void SetTyreMaximumGripDifferenceDueToWearRate(IVehicle vehicle, int wheelIndex, float multiplier) => SetTyreMaximumGripDifferenceDueToWearRate(vehicle.ScriptId, wheelIndex, multiplier); - public void SetTyreMaximumGripDifferenceDueToWearRate(int _vehicle, int _wheelIndex, float _multiplier) + public void SetTyreMaximumGripDifferenceDueToWearRate(uint _vehicle, int _wheelIndex, float _multiplier) { unsafe { - if (fn__setTyreMaximumGripDifferenceDueToWearRate == null) fn__setTyreMaximumGripDifferenceDueToWearRate = (delegate* unmanaged[Cdecl]) funcTable[0xC970D0E0FC31D768UL]; + if (fn__setTyreMaximumGripDifferenceDueToWearRate == null) fn__setTyreMaximumGripDifferenceDueToWearRate = (delegate* unmanaged[Cdecl]) funcTable[0xC970D0E0FC31D768UL]; var success = false; fn__setTyreMaximumGripDifferenceDueToWearRate(&success, _vehicle, _wheelIndex, _multiplier); if (!success) throw new Exception("Native execution failed"); @@ -104240,10 +104227,10 @@ public void SetTyreMaximumGripDifferenceDueToWearRate(int _vehicle, int _wheelIn } public void SetAircraftIgnoreHightmapOptimisation(IVehicle vehicle, int p1) => SetAircraftIgnoreHightmapOptimisation(vehicle.ScriptId, p1); - public void SetAircraftIgnoreHightmapOptimisation(int _vehicle, int _p1) + public void SetAircraftIgnoreHightmapOptimisation(uint _vehicle, int _p1) { unsafe { - if (fn__setAircraftIgnoreHightmapOptimisation == null) fn__setAircraftIgnoreHightmapOptimisation = (delegate* unmanaged[Cdecl]) funcTable[0xF8B49F5BA7F850E7UL]; + if (fn__setAircraftIgnoreHightmapOptimisation == null) fn__setAircraftIgnoreHightmapOptimisation = (delegate* unmanaged[Cdecl]) funcTable[0xF8B49F5BA7F850E7UL]; var success = false; fn__setAircraftIgnoreHightmapOptimisation(&success, _vehicle, _p1); if (!success) throw new Exception("Native execution failed"); @@ -104251,10 +104238,10 @@ public void SetAircraftIgnoreHightmapOptimisation(int _vehicle, int _p1) } public void SetReducedSuspensionForce(IVehicle vehicle, bool enable) => SetReducedSuspensionForce(vehicle.ScriptId, enable); - public void SetReducedSuspensionForce(int _vehicle, bool _enable) + public void SetReducedSuspensionForce(uint _vehicle, bool _enable) { unsafe { - if (fn__setReducedSuspensionForce == null) fn__setReducedSuspensionForce = (delegate* unmanaged[Cdecl]) funcTable[0x3A375167F5782A65UL]; + if (fn__setReducedSuspensionForce == null) fn__setReducedSuspensionForce = (delegate* unmanaged[Cdecl]) funcTable[0x3A375167F5782A65UL]; var success = false; fn__setReducedSuspensionForce(&success, _vehicle, (byte) (_enable ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -104262,10 +104249,10 @@ public void SetReducedSuspensionForce(int _vehicle, bool _enable) } public void SetDriftTyres(IVehicle vehicle, bool toggle) => SetDriftTyres(vehicle.ScriptId, toggle); - public void SetDriftTyres(int _vehicle, bool _toggle) + public void SetDriftTyres(uint _vehicle, bool _toggle) { unsafe { - if (fn__setDriftTyres == null) fn__setDriftTyres = (delegate* unmanaged[Cdecl]) funcTable[0x5AC79C98C5C17F05UL]; + if (fn__setDriftTyres == null) fn__setDriftTyres = (delegate* unmanaged[Cdecl]) funcTable[0x5AC79C98C5C17F05UL]; var success = false; fn__setDriftTyres(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -104273,10 +104260,10 @@ public void SetDriftTyres(int _vehicle, bool _toggle) } public bool GetDriftTyresSet(IVehicle vehicle) => GetDriftTyresSet(vehicle.ScriptId); - public bool GetDriftTyresSet(int _vehicle) + public bool GetDriftTyresSet(uint _vehicle) { unsafe { - if (fn__getDriftTyresSet == null) fn__getDriftTyresSet = (delegate* unmanaged[Cdecl]) funcTable[0x2F5A72430E78C8D3UL]; + if (fn__getDriftTyresSet == null) fn__getDriftTyresSet = (delegate* unmanaged[Cdecl]) funcTable[0x2F5A72430E78C8D3UL]; var success = false; var result = fn__getDriftTyresSet(&success, _vehicle); if (!success) throw new Exception("Native execution failed"); @@ -104285,10 +104272,10 @@ public bool GetDriftTyresSet(int _vehicle) } public void NetworkUseHighPrecisionTrainBlending(IVehicle vehicle, bool toggle) => NetworkUseHighPrecisionTrainBlending(vehicle.ScriptId, toggle); - public void NetworkUseHighPrecisionTrainBlending(int _vehicle, bool _toggle) + public void NetworkUseHighPrecisionTrainBlending(uint _vehicle, bool _toggle) { unsafe { - if (fn__networkUseHighPrecisionTrainBlending == null) fn__networkUseHighPrecisionTrainBlending = (delegate* unmanaged[Cdecl]) funcTable[0xEC0C1D4922AF9754UL]; + if (fn__networkUseHighPrecisionTrainBlending == null) fn__networkUseHighPrecisionTrainBlending = (delegate* unmanaged[Cdecl]) funcTable[0xEC0C1D4922AF9754UL]; var success = false; fn__networkUseHighPrecisionTrainBlending(&success, _vehicle, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -104296,10 +104283,10 @@ public void NetworkUseHighPrecisionTrainBlending(int _vehicle, bool _toggle) } public void SetCheckForEnoughRoomForPed(IVehicle vehicle, bool p1) => SetCheckForEnoughRoomForPed(vehicle.ScriptId, p1); - public void SetCheckForEnoughRoomForPed(int _vehicle, bool _p1) + public void SetCheckForEnoughRoomForPed(uint _vehicle, bool _p1) { unsafe { - if (fn__setCheckForEnoughRoomForPed == null) fn__setCheckForEnoughRoomForPed = (delegate* unmanaged[Cdecl]) funcTable[0xEF9D388F8D377F44UL]; + if (fn__setCheckForEnoughRoomForPed == null) fn__setCheckForEnoughRoomForPed = (delegate* unmanaged[Cdecl]) funcTable[0xEF9D388F8D377F44UL]; var success = false; fn__setCheckForEnoughRoomForPed(&success, _vehicle, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -104520,10 +104507,10 @@ public uint GetWeaponComponentVariantExtraModel(uint _componentHash, int _extraC } public void SetCurrentPedWeapon(IPlayer ped, uint weaponHash, bool bForceInHand) => SetCurrentPedWeapon(ped.ScriptId, weaponHash, bForceInHand); - public void SetCurrentPedWeapon(int _ped, uint _weaponHash, bool _bForceInHand) + public void SetCurrentPedWeapon(uint _ped, uint _weaponHash, bool _bForceInHand) { unsafe { - if (fn__setCurrentPedWeapon == null) fn__setCurrentPedWeapon = (delegate* unmanaged[Cdecl]) funcTable[0xADF692B254977C0CUL]; + if (fn__setCurrentPedWeapon == null) fn__setCurrentPedWeapon = (delegate* unmanaged[Cdecl]) funcTable[0xADF692B254977C0CUL]; var success = false; fn__setCurrentPedWeapon(&success, _ped, _weaponHash, (byte) (_bForceInHand ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -104531,10 +104518,10 @@ public void SetCurrentPedWeapon(int _ped, uint _weaponHash, bool _bForceInHand) } public bool GetCurrentPedWeapon(IPlayer ped, ref uint weaponHash, bool p2) => GetCurrentPedWeapon(ped.ScriptId, ref weaponHash, p2); - public bool GetCurrentPedWeapon(int _ped, ref uint _weaponHash, bool _p2) + public bool GetCurrentPedWeapon(uint _ped, ref uint _weaponHash, bool _p2) { unsafe { - if (fn__getCurrentPedWeapon == null) fn__getCurrentPedWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x3A87E44BB9A01D54UL]; + if (fn__getCurrentPedWeapon == null) fn__getCurrentPedWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x3A87E44BB9A01D54UL]; var success = false; var ref_weaponHash = _weaponHash; var result = fn__getCurrentPedWeapon(&success, _ped, &ref_weaponHash, (byte) (_p2 ? 1 : 0)); @@ -104544,11 +104531,11 @@ public bool GetCurrentPedWeapon(int _ped, ref uint _weaponHash, bool _p2) } } - public int GetCurrentPedWeaponEntityIndex(IPlayer ped, int p1) => GetCurrentPedWeaponEntityIndex(ped.ScriptId, p1); - public int GetCurrentPedWeaponEntityIndex(int _ped, int _p1) + public uint GetCurrentPedWeaponEntityIndex(IPlayer ped, int p1) => GetCurrentPedWeaponEntityIndex(ped.ScriptId, p1); + public uint GetCurrentPedWeaponEntityIndex(uint _ped, int _p1) { unsafe { - if (fn__getCurrentPedWeaponEntityIndex == null) fn__getCurrentPedWeaponEntityIndex = (delegate* unmanaged[Cdecl]) funcTable[0x3B390A939AF0B5FCUL]; + if (fn__getCurrentPedWeaponEntityIndex == null) fn__getCurrentPedWeaponEntityIndex = (delegate* unmanaged[Cdecl]) funcTable[0x3B390A939AF0B5FCUL]; var success = false; var result = fn__getCurrentPedWeaponEntityIndex(&success, _ped, _p1); if (!success) throw new Exception("Native execution failed"); @@ -104557,10 +104544,10 @@ public int GetCurrentPedWeaponEntityIndex(int _ped, int _p1) } public uint GetBestPedWeapon(IPlayer ped, bool p1) => GetBestPedWeapon(ped.ScriptId, p1); - public uint GetBestPedWeapon(int _ped, bool _p1) + public uint GetBestPedWeapon(uint _ped, bool _p1) { unsafe { - if (fn__getBestPedWeapon == null) fn__getBestPedWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x8483E98E8B888AE2UL]; + if (fn__getBestPedWeapon == null) fn__getBestPedWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x8483E98E8B888AE2UL]; var success = false; var result = fn__getBestPedWeapon(&success, _ped, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -104569,10 +104556,10 @@ public uint GetBestPedWeapon(int _ped, bool _p1) } public bool SetCurrentPedVehicleWeapon(IPlayer ped, uint weaponHash) => SetCurrentPedVehicleWeapon(ped.ScriptId, weaponHash); - public bool SetCurrentPedVehicleWeapon(int _ped, uint _weaponHash) + public bool SetCurrentPedVehicleWeapon(uint _ped, uint _weaponHash) { unsafe { - if (fn__setCurrentPedVehicleWeapon == null) fn__setCurrentPedVehicleWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x75C55983C2C39DAAUL]; + if (fn__setCurrentPedVehicleWeapon == null) fn__setCurrentPedVehicleWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x75C55983C2C39DAAUL]; var success = false; var result = fn__setCurrentPedVehicleWeapon(&success, _ped, _weaponHash); if (!success) throw new Exception("Native execution failed"); @@ -104581,10 +104568,10 @@ public bool SetCurrentPedVehicleWeapon(int _ped, uint _weaponHash) } public bool GetCurrentPedVehicleWeapon(IPlayer ped, ref uint weaponHash) => GetCurrentPedVehicleWeapon(ped.ScriptId, ref weaponHash); - public bool GetCurrentPedVehicleWeapon(int _ped, ref uint _weaponHash) + public bool GetCurrentPedVehicleWeapon(uint _ped, ref uint _weaponHash) { unsafe { - if (fn__getCurrentPedVehicleWeapon == null) fn__getCurrentPedVehicleWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x1017582BCD3832DCUL]; + if (fn__getCurrentPedVehicleWeapon == null) fn__getCurrentPedVehicleWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x1017582BCD3832DCUL]; var success = false; var ref_weaponHash = _weaponHash; var result = fn__getCurrentPedVehicleWeapon(&success, _ped, &ref_weaponHash); @@ -104595,10 +104582,10 @@ public bool GetCurrentPedVehicleWeapon(int _ped, ref uint _weaponHash) } public void SetPedCycleVehicleWeaponsOnly(IPlayer ped) => SetPedCycleVehicleWeaponsOnly(ped.ScriptId); - public void SetPedCycleVehicleWeaponsOnly(int _ped) + public void SetPedCycleVehicleWeaponsOnly(uint _ped) { unsafe { - if (fn__setPedCycleVehicleWeaponsOnly == null) fn__setPedCycleVehicleWeaponsOnly = (delegate* unmanaged[Cdecl]) funcTable[0x50276EF8172F5F12UL]; + if (fn__setPedCycleVehicleWeaponsOnly == null) fn__setPedCycleVehicleWeaponsOnly = (delegate* unmanaged[Cdecl]) funcTable[0x50276EF8172F5F12UL]; var success = false; fn__setPedCycleVehicleWeaponsOnly(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -104606,10 +104593,10 @@ public void SetPedCycleVehicleWeaponsOnly(int _ped) } public bool IsPedArmed(IPlayer ped, int typeFlags) => IsPedArmed(ped.ScriptId, typeFlags); - public bool IsPedArmed(int _ped, int _typeFlags) + public bool IsPedArmed(uint _ped, int _typeFlags) { unsafe { - if (fn__isPedArmed == null) fn__isPedArmed = (delegate* unmanaged[Cdecl]) funcTable[0x475768A975D5AD17UL]; + if (fn__isPedArmed == null) fn__isPedArmed = (delegate* unmanaged[Cdecl]) funcTable[0x475768A975D5AD17UL]; var success = false; var result = fn__isPedArmed(&success, _ped, _typeFlags); if (!success) throw new Exception("Native execution failed"); @@ -104629,10 +104616,10 @@ public bool IsWeaponValid(uint _weaponHash) } public bool HasPedGotWeapon(IPlayer ped, uint weaponHash, bool p2) => HasPedGotWeapon(ped.ScriptId, weaponHash, p2); - public bool HasPedGotWeapon(int _ped, uint _weaponHash, bool _p2) + public bool HasPedGotWeapon(uint _ped, uint _weaponHash, bool _p2) { unsafe { - if (fn__hasPedGotWeapon == null) fn__hasPedGotWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x8DECB02F88F428BCUL]; + if (fn__hasPedGotWeapon == null) fn__hasPedGotWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x8DECB02F88F428BCUL]; var success = false; var result = fn__hasPedGotWeapon(&success, _ped, _weaponHash, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -104641,10 +104628,10 @@ public bool HasPedGotWeapon(int _ped, uint _weaponHash, bool _p2) } public bool IsPedWeaponReadyToShoot(IPlayer ped) => IsPedWeaponReadyToShoot(ped.ScriptId); - public bool IsPedWeaponReadyToShoot(int _ped) + public bool IsPedWeaponReadyToShoot(uint _ped) { unsafe { - if (fn__isPedWeaponReadyToShoot == null) fn__isPedWeaponReadyToShoot = (delegate* unmanaged[Cdecl]) funcTable[0xB80CA294F2F26749UL]; + if (fn__isPedWeaponReadyToShoot == null) fn__isPedWeaponReadyToShoot = (delegate* unmanaged[Cdecl]) funcTable[0xB80CA294F2F26749UL]; var success = false; var result = fn__isPedWeaponReadyToShoot(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -104653,10 +104640,10 @@ public bool IsPedWeaponReadyToShoot(int _ped) } public uint GetPedWeapontypeInSlot(IPlayer ped, uint weaponSlot) => GetPedWeapontypeInSlot(ped.ScriptId, weaponSlot); - public uint GetPedWeapontypeInSlot(int _ped, uint _weaponSlot) + public uint GetPedWeapontypeInSlot(uint _ped, uint _weaponSlot) { unsafe { - if (fn__getPedWeapontypeInSlot == null) fn__getPedWeapontypeInSlot = (delegate* unmanaged[Cdecl]) funcTable[0xEFFED78E9011134DUL]; + if (fn__getPedWeapontypeInSlot == null) fn__getPedWeapontypeInSlot = (delegate* unmanaged[Cdecl]) funcTable[0xEFFED78E9011134DUL]; var success = false; var result = fn__getPedWeapontypeInSlot(&success, _ped, _weaponSlot); if (!success) throw new Exception("Native execution failed"); @@ -104665,10 +104652,10 @@ public uint GetPedWeapontypeInSlot(int _ped, uint _weaponSlot) } public int GetAmmoInPedWeapon(IPlayer ped, uint weaponhash) => GetAmmoInPedWeapon(ped.ScriptId, weaponhash); - public int GetAmmoInPedWeapon(int _ped, uint _weaponhash) + public int GetAmmoInPedWeapon(uint _ped, uint _weaponhash) { unsafe { - if (fn__getAmmoInPedWeapon == null) fn__getAmmoInPedWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x015A522136D7F951UL]; + if (fn__getAmmoInPedWeapon == null) fn__getAmmoInPedWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x015A522136D7F951UL]; var success = false; var result = fn__getAmmoInPedWeapon(&success, _ped, _weaponhash); if (!success) throw new Exception("Native execution failed"); @@ -104677,10 +104664,10 @@ public int GetAmmoInPedWeapon(int _ped, uint _weaponhash) } public void AddAmmoToPed(IPlayer ped, uint weaponHash, int ammo) => AddAmmoToPed(ped.ScriptId, weaponHash, ammo); - public void AddAmmoToPed(int _ped, uint _weaponHash, int _ammo) + public void AddAmmoToPed(uint _ped, uint _weaponHash, int _ammo) { unsafe { - if (fn__addAmmoToPed == null) fn__addAmmoToPed = (delegate* unmanaged[Cdecl]) funcTable[0x78F0424C34306220UL]; + if (fn__addAmmoToPed == null) fn__addAmmoToPed = (delegate* unmanaged[Cdecl]) funcTable[0x78F0424C34306220UL]; var success = false; fn__addAmmoToPed(&success, _ped, _weaponHash, _ammo); if (!success) throw new Exception("Native execution failed"); @@ -104688,10 +104675,10 @@ public void AddAmmoToPed(int _ped, uint _weaponHash, int _ammo) } public void SetPedAmmo(IPlayer ped, uint weaponHash, int ammo, bool p3) => SetPedAmmo(ped.ScriptId, weaponHash, ammo, p3); - public void SetPedAmmo(int _ped, uint _weaponHash, int _ammo, bool _p3) + public void SetPedAmmo(uint _ped, uint _weaponHash, int _ammo, bool _p3) { unsafe { - if (fn__setPedAmmo == null) fn__setPedAmmo = (delegate* unmanaged[Cdecl]) funcTable[0x14E56BC5B5DB6A19UL]; + if (fn__setPedAmmo == null) fn__setPedAmmo = (delegate* unmanaged[Cdecl]) funcTable[0x14E56BC5B5DB6A19UL]; var success = false; fn__setPedAmmo(&success, _ped, _weaponHash, _ammo, (byte) (_p3 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -104699,10 +104686,10 @@ public void SetPedAmmo(int _ped, uint _weaponHash, int _ammo, bool _p3) } public void SetPedInfiniteAmmo(IPlayer ped, bool toggle, uint weaponHash) => SetPedInfiniteAmmo(ped.ScriptId, toggle, weaponHash); - public void SetPedInfiniteAmmo(int _ped, bool _toggle, uint _weaponHash) + public void SetPedInfiniteAmmo(uint _ped, bool _toggle, uint _weaponHash) { unsafe { - if (fn__setPedInfiniteAmmo == null) fn__setPedInfiniteAmmo = (delegate* unmanaged[Cdecl]) funcTable[0x3EDCB0505123623BUL]; + if (fn__setPedInfiniteAmmo == null) fn__setPedInfiniteAmmo = (delegate* unmanaged[Cdecl]) funcTable[0x3EDCB0505123623BUL]; var success = false; fn__setPedInfiniteAmmo(&success, _ped, (byte) (_toggle ? 1 : 0), _weaponHash); if (!success) throw new Exception("Native execution failed"); @@ -104710,10 +104697,10 @@ public void SetPedInfiniteAmmo(int _ped, bool _toggle, uint _weaponHash) } public void SetPedInfiniteAmmoClip(IPlayer ped, bool toggle) => SetPedInfiniteAmmoClip(ped.ScriptId, toggle); - public void SetPedInfiniteAmmoClip(int _ped, bool _toggle) + public void SetPedInfiniteAmmoClip(uint _ped, bool _toggle) { unsafe { - if (fn__setPedInfiniteAmmoClip == null) fn__setPedInfiniteAmmoClip = (delegate* unmanaged[Cdecl]) funcTable[0x183DADC6AA953186UL]; + if (fn__setPedInfiniteAmmoClip == null) fn__setPedInfiniteAmmoClip = (delegate* unmanaged[Cdecl]) funcTable[0x183DADC6AA953186UL]; var success = false; fn__setPedInfiniteAmmoClip(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -104731,10 +104718,10 @@ public void SetPedStunGunFiniteAmmo(int _p0, int _p1) } public void GiveWeaponToPed(IPlayer ped, uint weaponHash, int ammoCount, bool isHidden, bool bForceInHand) => GiveWeaponToPed(ped.ScriptId, weaponHash, ammoCount, isHidden, bForceInHand); - public void GiveWeaponToPed(int _ped, uint _weaponHash, int _ammoCount, bool _isHidden, bool _bForceInHand) + public void GiveWeaponToPed(uint _ped, uint _weaponHash, int _ammoCount, bool _isHidden, bool _bForceInHand) { unsafe { - if (fn__giveWeaponToPed == null) fn__giveWeaponToPed = (delegate* unmanaged[Cdecl]) funcTable[0xBF0FD6E56C964FCBUL]; + if (fn__giveWeaponToPed == null) fn__giveWeaponToPed = (delegate* unmanaged[Cdecl]) funcTable[0xBF0FD6E56C964FCBUL]; var success = false; fn__giveWeaponToPed(&success, _ped, _weaponHash, _ammoCount, (byte) (_isHidden ? 1 : 0), (byte) (_bForceInHand ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -104742,10 +104729,10 @@ public void GiveWeaponToPed(int _ped, uint _weaponHash, int _ammoCount, bool _is } public void GiveDelayedWeaponToPed(IPlayer ped, uint weaponHash, int ammoCount, bool bForceInHand) => GiveDelayedWeaponToPed(ped.ScriptId, weaponHash, ammoCount, bForceInHand); - public void GiveDelayedWeaponToPed(int _ped, uint _weaponHash, int _ammoCount, bool _bForceInHand) + public void GiveDelayedWeaponToPed(uint _ped, uint _weaponHash, int _ammoCount, bool _bForceInHand) { unsafe { - if (fn__giveDelayedWeaponToPed == null) fn__giveDelayedWeaponToPed = (delegate* unmanaged[Cdecl]) funcTable[0xB282DC6EBD803C75UL]; + if (fn__giveDelayedWeaponToPed == null) fn__giveDelayedWeaponToPed = (delegate* unmanaged[Cdecl]) funcTable[0xB282DC6EBD803C75UL]; var success = false; fn__giveDelayedWeaponToPed(&success, _ped, _weaponHash, _ammoCount, (byte) (_bForceInHand ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -104753,10 +104740,10 @@ public void GiveDelayedWeaponToPed(int _ped, uint _weaponHash, int _ammoCount, b } public void RemoveAllPedWeapons(IPlayer ped, bool p1) => RemoveAllPedWeapons(ped.ScriptId, p1); - public void RemoveAllPedWeapons(int _ped, bool _p1) + public void RemoveAllPedWeapons(uint _ped, bool _p1) { unsafe { - if (fn__removeAllPedWeapons == null) fn__removeAllPedWeapons = (delegate* unmanaged[Cdecl]) funcTable[0xF25DF915FA38C5F3UL]; + if (fn__removeAllPedWeapons == null) fn__removeAllPedWeapons = (delegate* unmanaged[Cdecl]) funcTable[0xF25DF915FA38C5F3UL]; var success = false; fn__removeAllPedWeapons(&success, _ped, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -104764,10 +104751,10 @@ public void RemoveAllPedWeapons(int _ped, bool _p1) } public void RemoveWeaponFromPed(IPlayer ped, uint weaponHash) => RemoveWeaponFromPed(ped.ScriptId, weaponHash); - public void RemoveWeaponFromPed(int _ped, uint _weaponHash) + public void RemoveWeaponFromPed(uint _ped, uint _weaponHash) { unsafe { - if (fn__removeWeaponFromPed == null) fn__removeWeaponFromPed = (delegate* unmanaged[Cdecl]) funcTable[0x4899CB088EDF59B8UL]; + if (fn__removeWeaponFromPed == null) fn__removeWeaponFromPed = (delegate* unmanaged[Cdecl]) funcTable[0x4899CB088EDF59B8UL]; var success = false; fn__removeWeaponFromPed(&success, _ped, _weaponHash); if (!success) throw new Exception("Native execution failed"); @@ -104775,10 +104762,10 @@ public void RemoveWeaponFromPed(int _ped, uint _weaponHash) } public void HidePedWeaponForScriptedCutscene(IPlayer ped, bool toggle) => HidePedWeaponForScriptedCutscene(ped.ScriptId, toggle); - public void HidePedWeaponForScriptedCutscene(int _ped, bool _toggle) + public void HidePedWeaponForScriptedCutscene(uint _ped, bool _toggle) { unsafe { - if (fn__hidePedWeaponForScriptedCutscene == null) fn__hidePedWeaponForScriptedCutscene = (delegate* unmanaged[Cdecl]) funcTable[0x6F6981D2253C208FUL]; + if (fn__hidePedWeaponForScriptedCutscene == null) fn__hidePedWeaponForScriptedCutscene = (delegate* unmanaged[Cdecl]) funcTable[0x6F6981D2253C208FUL]; var success = false; fn__hidePedWeaponForScriptedCutscene(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -104786,10 +104773,10 @@ public void HidePedWeaponForScriptedCutscene(int _ped, bool _toggle) } public void SetPedCurrentWeaponVisible(IPlayer ped, bool visible, bool deselectWeapon, bool p3, bool p4) => SetPedCurrentWeaponVisible(ped.ScriptId, visible, deselectWeapon, p3, p4); - public void SetPedCurrentWeaponVisible(int _ped, bool _visible, bool _deselectWeapon, bool _p3, bool _p4) + public void SetPedCurrentWeaponVisible(uint _ped, bool _visible, bool _deselectWeapon, bool _p3, bool _p4) { unsafe { - if (fn__setPedCurrentWeaponVisible == null) fn__setPedCurrentWeaponVisible = (delegate* unmanaged[Cdecl]) funcTable[0x0725A4CCFDED9A70UL]; + if (fn__setPedCurrentWeaponVisible == null) fn__setPedCurrentWeaponVisible = (delegate* unmanaged[Cdecl]) funcTable[0x0725A4CCFDED9A70UL]; var success = false; fn__setPedCurrentWeaponVisible(&success, _ped, (byte) (_visible ? 1 : 0), (byte) (_deselectWeapon ? 1 : 0), (byte) (_p3 ? 1 : 0), (byte) (_p4 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -104797,10 +104784,10 @@ public void SetPedCurrentWeaponVisible(int _ped, bool _visible, bool _deselectWe } public void SetPedDropsWeaponsWhenDead(IPlayer ped, bool toggle) => SetPedDropsWeaponsWhenDead(ped.ScriptId, toggle); - public void SetPedDropsWeaponsWhenDead(int _ped, bool _toggle) + public void SetPedDropsWeaponsWhenDead(uint _ped, bool _toggle) { unsafe { - if (fn__setPedDropsWeaponsWhenDead == null) fn__setPedDropsWeaponsWhenDead = (delegate* unmanaged[Cdecl]) funcTable[0x476AE72C1D19D1A8UL]; + if (fn__setPedDropsWeaponsWhenDead == null) fn__setPedDropsWeaponsWhenDead = (delegate* unmanaged[Cdecl]) funcTable[0x476AE72C1D19D1A8UL]; var success = false; fn__setPedDropsWeaponsWhenDead(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -104808,10 +104795,10 @@ public void SetPedDropsWeaponsWhenDead(int _ped, bool _toggle) } public bool HasPedBeenDamagedByWeapon(IPlayer ped, uint weaponHash, int weaponType) => HasPedBeenDamagedByWeapon(ped.ScriptId, weaponHash, weaponType); - public bool HasPedBeenDamagedByWeapon(int _ped, uint _weaponHash, int _weaponType) + public bool HasPedBeenDamagedByWeapon(uint _ped, uint _weaponHash, int _weaponType) { unsafe { - if (fn__hasPedBeenDamagedByWeapon == null) fn__hasPedBeenDamagedByWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x2D343D2219CD027AUL]; + if (fn__hasPedBeenDamagedByWeapon == null) fn__hasPedBeenDamagedByWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x2D343D2219CD027AUL]; var success = false; var result = fn__hasPedBeenDamagedByWeapon(&success, _ped, _weaponHash, _weaponType); if (!success) throw new Exception("Native execution failed"); @@ -104820,10 +104807,10 @@ public bool HasPedBeenDamagedByWeapon(int _ped, uint _weaponHash, int _weaponTyp } public void ClearPedLastWeaponDamage(IPlayer ped) => ClearPedLastWeaponDamage(ped.ScriptId); - public void ClearPedLastWeaponDamage(int _ped) + public void ClearPedLastWeaponDamage(uint _ped) { unsafe { - if (fn__clearPedLastWeaponDamage == null) fn__clearPedLastWeaponDamage = (delegate* unmanaged[Cdecl]) funcTable[0x0E98F88A24C5F4B8UL]; + if (fn__clearPedLastWeaponDamage == null) fn__clearPedLastWeaponDamage = (delegate* unmanaged[Cdecl]) funcTable[0x0E98F88A24C5F4B8UL]; var success = false; fn__clearPedLastWeaponDamage(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -104831,10 +104818,10 @@ public void ClearPedLastWeaponDamage(int _ped) } public bool HasEntityBeenDamagedByWeapon(IEntity entity, uint weaponHash, int weaponType) => HasEntityBeenDamagedByWeapon(entity.ScriptId, weaponHash, weaponType); - public bool HasEntityBeenDamagedByWeapon(int _entity, uint _weaponHash, int _weaponType) + public bool HasEntityBeenDamagedByWeapon(uint _entity, uint _weaponHash, int _weaponType) { unsafe { - if (fn__hasEntityBeenDamagedByWeapon == null) fn__hasEntityBeenDamagedByWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x131D401334815E94UL]; + if (fn__hasEntityBeenDamagedByWeapon == null) fn__hasEntityBeenDamagedByWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x131D401334815E94UL]; var success = false; var result = fn__hasEntityBeenDamagedByWeapon(&success, _entity, _weaponHash, _weaponType); if (!success) throw new Exception("Native execution failed"); @@ -104843,10 +104830,10 @@ public bool HasEntityBeenDamagedByWeapon(int _entity, uint _weaponHash, int _wea } public void ClearEntityLastWeaponDamage(IEntity entity) => ClearEntityLastWeaponDamage(entity.ScriptId); - public void ClearEntityLastWeaponDamage(int _entity) + public void ClearEntityLastWeaponDamage(uint _entity) { unsafe { - if (fn__clearEntityLastWeaponDamage == null) fn__clearEntityLastWeaponDamage = (delegate* unmanaged[Cdecl]) funcTable[0xAC678E40BE7C74D2UL]; + if (fn__clearEntityLastWeaponDamage == null) fn__clearEntityLastWeaponDamage = (delegate* unmanaged[Cdecl]) funcTable[0xAC678E40BE7C74D2UL]; var success = false; fn__clearEntityLastWeaponDamage(&success, _entity); if (!success) throw new Exception("Native execution failed"); @@ -104854,10 +104841,10 @@ public void ClearEntityLastWeaponDamage(int _entity) } public void SetPedDropsWeapon(IPlayer ped) => SetPedDropsWeapon(ped.ScriptId); - public void SetPedDropsWeapon(int _ped) + public void SetPedDropsWeapon(uint _ped) { unsafe { - if (fn__setPedDropsWeapon == null) fn__setPedDropsWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x6B7513D9966FBEC0UL]; + if (fn__setPedDropsWeapon == null) fn__setPedDropsWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x6B7513D9966FBEC0UL]; var success = false; fn__setPedDropsWeapon(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -104865,10 +104852,10 @@ public void SetPedDropsWeapon(int _ped) } public void SetPedDropsInventoryWeapon(IPlayer ped, uint weaponHash, float xOffset, float yOffset, float zOffset, int ammoCount) => SetPedDropsInventoryWeapon(ped.ScriptId, weaponHash, xOffset, yOffset, zOffset, ammoCount); - public void SetPedDropsInventoryWeapon(int _ped, uint _weaponHash, float _xOffset, float _yOffset, float _zOffset, int _ammoCount) + public void SetPedDropsInventoryWeapon(uint _ped, uint _weaponHash, float _xOffset, float _yOffset, float _zOffset, int _ammoCount) { unsafe { - if (fn__setPedDropsInventoryWeapon == null) fn__setPedDropsInventoryWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x208A1888007FC0E6UL]; + if (fn__setPedDropsInventoryWeapon == null) fn__setPedDropsInventoryWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x208A1888007FC0E6UL]; var success = false; fn__setPedDropsInventoryWeapon(&success, _ped, _weaponHash, _xOffset, _yOffset, _zOffset, _ammoCount); if (!success) throw new Exception("Native execution failed"); @@ -104876,10 +104863,10 @@ public void SetPedDropsInventoryWeapon(int _ped, uint _weaponHash, float _xOffse } public int GetMaxAmmoInClip(IPlayer ped, uint weaponHash, bool p2) => GetMaxAmmoInClip(ped.ScriptId, weaponHash, p2); - public int GetMaxAmmoInClip(int _ped, uint _weaponHash, bool _p2) + public int GetMaxAmmoInClip(uint _ped, uint _weaponHash, bool _p2) { unsafe { - if (fn__getMaxAmmoInClip == null) fn__getMaxAmmoInClip = (delegate* unmanaged[Cdecl]) funcTable[0xA38DCFFCEA8962FAUL]; + if (fn__getMaxAmmoInClip == null) fn__getMaxAmmoInClip = (delegate* unmanaged[Cdecl]) funcTable[0xA38DCFFCEA8962FAUL]; var success = false; var result = fn__getMaxAmmoInClip(&success, _ped, _weaponHash, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -104888,10 +104875,10 @@ public int GetMaxAmmoInClip(int _ped, uint _weaponHash, bool _p2) } public bool GetAmmoInClip(IPlayer ped, uint weaponHash, ref int ammo) => GetAmmoInClip(ped.ScriptId, weaponHash, ref ammo); - public bool GetAmmoInClip(int _ped, uint _weaponHash, ref int _ammo) + public bool GetAmmoInClip(uint _ped, uint _weaponHash, ref int _ammo) { unsafe { - if (fn__getAmmoInClip == null) fn__getAmmoInClip = (delegate* unmanaged[Cdecl]) funcTable[0x2E1202248937775CUL]; + if (fn__getAmmoInClip == null) fn__getAmmoInClip = (delegate* unmanaged[Cdecl]) funcTable[0x2E1202248937775CUL]; var success = false; var ref_ammo = _ammo; var result = fn__getAmmoInClip(&success, _ped, _weaponHash, &ref_ammo); @@ -104902,10 +104889,10 @@ public bool GetAmmoInClip(int _ped, uint _weaponHash, ref int _ammo) } public bool SetAmmoInClip(IPlayer ped, uint weaponHash, int ammo) => SetAmmoInClip(ped.ScriptId, weaponHash, ammo); - public bool SetAmmoInClip(int _ped, uint _weaponHash, int _ammo) + public bool SetAmmoInClip(uint _ped, uint _weaponHash, int _ammo) { unsafe { - if (fn__setAmmoInClip == null) fn__setAmmoInClip = (delegate* unmanaged[Cdecl]) funcTable[0xDCD2A934D65CB497UL]; + if (fn__setAmmoInClip == null) fn__setAmmoInClip = (delegate* unmanaged[Cdecl]) funcTable[0xDCD2A934D65CB497UL]; var success = false; var result = fn__setAmmoInClip(&success, _ped, _weaponHash, _ammo); if (!success) throw new Exception("Native execution failed"); @@ -104914,10 +104901,10 @@ public bool SetAmmoInClip(int _ped, uint _weaponHash, int _ammo) } public bool GetMaxAmmo(IPlayer ped, uint weaponHash, ref int ammo) => GetMaxAmmo(ped.ScriptId, weaponHash, ref ammo); - public bool GetMaxAmmo(int _ped, uint _weaponHash, ref int _ammo) + public bool GetMaxAmmo(uint _ped, uint _weaponHash, ref int _ammo) { unsafe { - if (fn__getMaxAmmo == null) fn__getMaxAmmo = (delegate* unmanaged[Cdecl]) funcTable[0xDC16122C7A20C933UL]; + if (fn__getMaxAmmo == null) fn__getMaxAmmo = (delegate* unmanaged[Cdecl]) funcTable[0xDC16122C7A20C933UL]; var success = false; var ref_ammo = _ammo; var result = fn__getMaxAmmo(&success, _ped, _weaponHash, &ref_ammo); @@ -104928,10 +104915,10 @@ public bool GetMaxAmmo(int _ped, uint _weaponHash, ref int _ammo) } public bool GetMaxAmmoByType(IPlayer ped, uint ammoTypeHash, ref int ammo) => GetMaxAmmoByType(ped.ScriptId, ammoTypeHash, ref ammo); - public bool GetMaxAmmoByType(int _ped, uint _ammoTypeHash, ref int _ammo) + public bool GetMaxAmmoByType(uint _ped, uint _ammoTypeHash, ref int _ammo) { unsafe { - if (fn__getMaxAmmoByType == null) fn__getMaxAmmoByType = (delegate* unmanaged[Cdecl]) funcTable[0x585847C5E4E11709UL]; + if (fn__getMaxAmmoByType == null) fn__getMaxAmmoByType = (delegate* unmanaged[Cdecl]) funcTable[0x585847C5E4E11709UL]; var success = false; var ref_ammo = _ammo; var result = fn__getMaxAmmoByType(&success, _ped, _ammoTypeHash, &ref_ammo); @@ -104942,10 +104929,10 @@ public bool GetMaxAmmoByType(int _ped, uint _ammoTypeHash, ref int _ammo) } public void AddPedAmmoByType(IPlayer ped, uint ammoTypeHash, int ammo) => AddPedAmmoByType(ped.ScriptId, ammoTypeHash, ammo); - public void AddPedAmmoByType(int _ped, uint _ammoTypeHash, int _ammo) + public void AddPedAmmoByType(uint _ped, uint _ammoTypeHash, int _ammo) { unsafe { - if (fn__addPedAmmoByType == null) fn__addPedAmmoByType = (delegate* unmanaged[Cdecl]) funcTable[0x2472622CE1F2D45FUL]; + if (fn__addPedAmmoByType == null) fn__addPedAmmoByType = (delegate* unmanaged[Cdecl]) funcTable[0x2472622CE1F2D45FUL]; var success = false; fn__addPedAmmoByType(&success, _ped, _ammoTypeHash, _ammo); if (!success) throw new Exception("Native execution failed"); @@ -104953,10 +104940,10 @@ public void AddPedAmmoByType(int _ped, uint _ammoTypeHash, int _ammo) } public void SetPedAmmoByType(IPlayer ped, uint ammoTypeHash, int ammo) => SetPedAmmoByType(ped.ScriptId, ammoTypeHash, ammo); - public void SetPedAmmoByType(int _ped, uint _ammoTypeHash, int _ammo) + public void SetPedAmmoByType(uint _ped, uint _ammoTypeHash, int _ammo) { unsafe { - if (fn__setPedAmmoByType == null) fn__setPedAmmoByType = (delegate* unmanaged[Cdecl]) funcTable[0x5FD1E1F011E76D7EUL]; + if (fn__setPedAmmoByType == null) fn__setPedAmmoByType = (delegate* unmanaged[Cdecl]) funcTable[0x5FD1E1F011E76D7EUL]; var success = false; fn__setPedAmmoByType(&success, _ped, _ammoTypeHash, _ammo); if (!success) throw new Exception("Native execution failed"); @@ -104964,10 +104951,10 @@ public void SetPedAmmoByType(int _ped, uint _ammoTypeHash, int _ammo) } public int GetPedAmmoByType(IPlayer ped, uint ammoTypeHash) => GetPedAmmoByType(ped.ScriptId, ammoTypeHash); - public int GetPedAmmoByType(int _ped, uint _ammoTypeHash) + public int GetPedAmmoByType(uint _ped, uint _ammoTypeHash) { unsafe { - if (fn__getPedAmmoByType == null) fn__getPedAmmoByType = (delegate* unmanaged[Cdecl]) funcTable[0x39D22031557946C1UL]; + if (fn__getPedAmmoByType == null) fn__getPedAmmoByType = (delegate* unmanaged[Cdecl]) funcTable[0x39D22031557946C1UL]; var success = false; var result = fn__getPedAmmoByType(&success, _ped, _ammoTypeHash); if (!success) throw new Exception("Native execution failed"); @@ -104976,10 +104963,10 @@ public int GetPedAmmoByType(int _ped, uint _ammoTypeHash) } public void SetPedAmmoToDrop(IPlayer ped, int p1) => SetPedAmmoToDrop(ped.ScriptId, p1); - public void SetPedAmmoToDrop(int _ped, int _p1) + public void SetPedAmmoToDrop(uint _ped, int _p1) { unsafe { - if (fn__setPedAmmoToDrop == null) fn__setPedAmmoToDrop = (delegate* unmanaged[Cdecl]) funcTable[0xA4EFEF9440A5B0EFUL]; + if (fn__setPedAmmoToDrop == null) fn__setPedAmmoToDrop = (delegate* unmanaged[Cdecl]) funcTable[0xA4EFEF9440A5B0EFUL]; var success = false; fn__setPedAmmoToDrop(&success, _ped, _p1); if (!success) throw new Exception("Native execution failed"); @@ -104997,10 +104984,10 @@ public void SetPickupAmmoAmountScaler(float _p0) } public uint GetPedAmmoTypeFromWeapon(IPlayer ped, uint weaponHash) => GetPedAmmoTypeFromWeapon(ped.ScriptId, weaponHash); - public uint GetPedAmmoTypeFromWeapon(int _ped, uint _weaponHash) + public uint GetPedAmmoTypeFromWeapon(uint _ped, uint _weaponHash) { unsafe { - if (fn__getPedAmmoTypeFromWeapon == null) fn__getPedAmmoTypeFromWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x7FEAD38B326B9F74UL]; + if (fn__getPedAmmoTypeFromWeapon == null) fn__getPedAmmoTypeFromWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x7FEAD38B326B9F74UL]; var success = false; var result = fn__getPedAmmoTypeFromWeapon(&success, _ped, _weaponHash); if (!success) throw new Exception("Native execution failed"); @@ -105009,10 +104996,10 @@ public uint GetPedAmmoTypeFromWeapon(int _ped, uint _weaponHash) } public uint GetPedOriginalAmmoTypeFromWeapon(IPlayer ped, uint weaponHash) => GetPedOriginalAmmoTypeFromWeapon(ped.ScriptId, weaponHash); - public uint GetPedOriginalAmmoTypeFromWeapon(int _ped, uint _weaponHash) + public uint GetPedOriginalAmmoTypeFromWeapon(uint _ped, uint _weaponHash) { unsafe { - if (fn__getPedOriginalAmmoTypeFromWeapon == null) fn__getPedOriginalAmmoTypeFromWeapon = (delegate* unmanaged[Cdecl]) funcTable[0xF489B44DD5AF4BD9UL]; + if (fn__getPedOriginalAmmoTypeFromWeapon == null) fn__getPedOriginalAmmoTypeFromWeapon = (delegate* unmanaged[Cdecl]) funcTable[0xF489B44DD5AF4BD9UL]; var success = false; var result = fn__getPedOriginalAmmoTypeFromWeapon(&success, _ped, _weaponHash); if (!success) throw new Exception("Native execution failed"); @@ -105021,10 +105008,10 @@ public uint GetPedOriginalAmmoTypeFromWeapon(int _ped, uint _weaponHash) } public bool GetPedLastWeaponImpactCoord(IPlayer ped, ref Vector3 coords) => GetPedLastWeaponImpactCoord(ped.ScriptId, ref coords); - public bool GetPedLastWeaponImpactCoord(int _ped, ref Vector3 _coords) + public bool GetPedLastWeaponImpactCoord(uint _ped, ref Vector3 _coords) { unsafe { - if (fn__getPedLastWeaponImpactCoord == null) fn__getPedLastWeaponImpactCoord = (delegate* unmanaged[Cdecl]) funcTable[0x6C4D0409BA1A2BC2UL]; + if (fn__getPedLastWeaponImpactCoord == null) fn__getPedLastWeaponImpactCoord = (delegate* unmanaged[Cdecl]) funcTable[0x6C4D0409BA1A2BC2UL]; var success = false; var ref_coords = _coords; var result = fn__getPedLastWeaponImpactCoord(&success, _ped, &ref_coords); @@ -105035,10 +105022,10 @@ public bool GetPedLastWeaponImpactCoord(int _ped, ref Vector3 _coords) } public void SetPedGadget(IPlayer ped, uint gadgetHash, bool p2) => SetPedGadget(ped.ScriptId, gadgetHash, p2); - public void SetPedGadget(int _ped, uint _gadgetHash, bool _p2) + public void SetPedGadget(uint _ped, uint _gadgetHash, bool _p2) { unsafe { - if (fn__setPedGadget == null) fn__setPedGadget = (delegate* unmanaged[Cdecl]) funcTable[0xD0D7B1E680ED4A1AUL]; + if (fn__setPedGadget == null) fn__setPedGadget = (delegate* unmanaged[Cdecl]) funcTable[0xD0D7B1E680ED4A1AUL]; var success = false; fn__setPedGadget(&success, _ped, _gadgetHash, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -105046,10 +105033,10 @@ public void SetPedGadget(int _ped, uint _gadgetHash, bool _p2) } public bool GetIsPedGadgetEquipped(IPlayer ped, uint gadgetHash) => GetIsPedGadgetEquipped(ped.ScriptId, gadgetHash); - public bool GetIsPedGadgetEquipped(int _ped, uint _gadgetHash) + public bool GetIsPedGadgetEquipped(uint _ped, uint _gadgetHash) { unsafe { - if (fn__getIsPedGadgetEquipped == null) fn__getIsPedGadgetEquipped = (delegate* unmanaged[Cdecl]) funcTable[0xF731332072F5156CUL]; + if (fn__getIsPedGadgetEquipped == null) fn__getIsPedGadgetEquipped = (delegate* unmanaged[Cdecl]) funcTable[0xF731332072F5156CUL]; var success = false; var result = fn__getIsPedGadgetEquipped(&success, _ped, _gadgetHash); if (!success) throw new Exception("Native execution failed"); @@ -105058,10 +105045,10 @@ public bool GetIsPedGadgetEquipped(int _ped, uint _gadgetHash) } public uint GetSelectedPedWeapon(IPlayer ped) => GetSelectedPedWeapon(ped.ScriptId); - public uint GetSelectedPedWeapon(int _ped) + public uint GetSelectedPedWeapon(uint _ped) { unsafe { - if (fn__getSelectedPedWeapon == null) fn__getSelectedPedWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x0A6DB4965674D243UL]; + if (fn__getSelectedPedWeapon == null) fn__getSelectedPedWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x0A6DB4965674D243UL]; var success = false; var result = fn__getSelectedPedWeapon(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -105070,10 +105057,10 @@ public uint GetSelectedPedWeapon(int _ped) } public void ExplodeProjectiles(IPlayer ped, uint weaponHash, bool p2) => ExplodeProjectiles(ped.ScriptId, weaponHash, p2); - public void ExplodeProjectiles(int _ped, uint _weaponHash, bool _p2) + public void ExplodeProjectiles(uint _ped, uint _weaponHash, bool _p2) { unsafe { - if (fn__explodeProjectiles == null) fn__explodeProjectiles = (delegate* unmanaged[Cdecl]) funcTable[0xFC4BD125DE7611E4UL]; + if (fn__explodeProjectiles == null) fn__explodeProjectiles = (delegate* unmanaged[Cdecl]) funcTable[0xFC4BD125DE7611E4UL]; var success = false; fn__explodeProjectiles(&success, _ped, _weaponHash, (byte) (_p2 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -105091,10 +105078,10 @@ public void RemoveAllProjectilesOfType(uint _weaponHash, bool _explode) } public float GetLockonDistanceOfCurrentPedWeapon(IPlayer ped) => GetLockonDistanceOfCurrentPedWeapon(ped.ScriptId); - public float GetLockonDistanceOfCurrentPedWeapon(int _ped) + public float GetLockonDistanceOfCurrentPedWeapon(uint _ped) { unsafe { - if (fn__getLockonDistanceOfCurrentPedWeapon == null) fn__getLockonDistanceOfCurrentPedWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x840F03E9041E2C9CUL]; + if (fn__getLockonDistanceOfCurrentPedWeapon == null) fn__getLockonDistanceOfCurrentPedWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x840F03E9041E2C9CUL]; var success = false; var result = fn__getLockonDistanceOfCurrentPedWeapon(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -105103,10 +105090,10 @@ public float GetLockonDistanceOfCurrentPedWeapon(int _ped) } public float GetMaxRangeOfCurrentPedWeapon(IPlayer ped) => GetMaxRangeOfCurrentPedWeapon(ped.ScriptId); - public float GetMaxRangeOfCurrentPedWeapon(int _ped) + public float GetMaxRangeOfCurrentPedWeapon(uint _ped) { unsafe { - if (fn__getMaxRangeOfCurrentPedWeapon == null) fn__getMaxRangeOfCurrentPedWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x814C9D19DFD69679UL]; + if (fn__getMaxRangeOfCurrentPedWeapon == null) fn__getMaxRangeOfCurrentPedWeapon = (delegate* unmanaged[Cdecl]) funcTable[0x814C9D19DFD69679UL]; var success = false; var result = fn__getMaxRangeOfCurrentPedWeapon(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -105114,13 +105101,13 @@ public float GetMaxRangeOfCurrentPedWeapon(int _ped) } } - public bool HasVehicleGotProjectileAttached(IPlayer driver, int vehicle, uint weaponHash, int p3) => HasVehicleGotProjectileAttached(driver.ScriptId, vehicle, weaponHash, p3); - public bool HasVehicleGotProjectileAttached(int driver, IVehicle vehicle, uint weaponHash, int p3) => HasVehicleGotProjectileAttached(driver, vehicle.ScriptId, weaponHash, p3); + public bool HasVehicleGotProjectileAttached(IPlayer driver, uint vehicle, uint weaponHash, int p3) => HasVehicleGotProjectileAttached(driver.ScriptId, vehicle, weaponHash, p3); + public bool HasVehicleGotProjectileAttached(uint driver, IVehicle vehicle, uint weaponHash, int p3) => HasVehicleGotProjectileAttached(driver, vehicle.ScriptId, weaponHash, p3); public bool HasVehicleGotProjectileAttached(IPlayer driver, IVehicle vehicle, uint weaponHash, int p3) => HasVehicleGotProjectileAttached(driver.ScriptId, vehicle.ScriptId, weaponHash, p3); - public bool HasVehicleGotProjectileAttached(int _driver, int _vehicle, uint _weaponHash, int _p3) + public bool HasVehicleGotProjectileAttached(uint _driver, uint _vehicle, uint _weaponHash, int _p3) { unsafe { - if (fn__hasVehicleGotProjectileAttached == null) fn__hasVehicleGotProjectileAttached = (delegate* unmanaged[Cdecl]) funcTable[0x717C8481234E3B88UL]; + if (fn__hasVehicleGotProjectileAttached == null) fn__hasVehicleGotProjectileAttached = (delegate* unmanaged[Cdecl]) funcTable[0x717C8481234E3B88UL]; var success = false; var result = fn__hasVehicleGotProjectileAttached(&success, _driver, _vehicle, _weaponHash, _p3); if (!success) throw new Exception("Native execution failed"); @@ -105129,10 +105116,10 @@ public bool HasVehicleGotProjectileAttached(int _driver, int _vehicle, uint _wea } public void GiveWeaponComponentToPed(IPlayer ped, uint weaponHash, uint componentHash) => GiveWeaponComponentToPed(ped.ScriptId, weaponHash, componentHash); - public void GiveWeaponComponentToPed(int _ped, uint _weaponHash, uint _componentHash) + public void GiveWeaponComponentToPed(uint _ped, uint _weaponHash, uint _componentHash) { unsafe { - if (fn__giveWeaponComponentToPed == null) fn__giveWeaponComponentToPed = (delegate* unmanaged[Cdecl]) funcTable[0xD966D51AA5B28BB9UL]; + if (fn__giveWeaponComponentToPed == null) fn__giveWeaponComponentToPed = (delegate* unmanaged[Cdecl]) funcTable[0xD966D51AA5B28BB9UL]; var success = false; fn__giveWeaponComponentToPed(&success, _ped, _weaponHash, _componentHash); if (!success) throw new Exception("Native execution failed"); @@ -105140,10 +105127,10 @@ public void GiveWeaponComponentToPed(int _ped, uint _weaponHash, uint _component } public void RemoveWeaponComponentFromPed(IPlayer ped, uint weaponHash, uint componentHash) => RemoveWeaponComponentFromPed(ped.ScriptId, weaponHash, componentHash); - public void RemoveWeaponComponentFromPed(int _ped, uint _weaponHash, uint _componentHash) + public void RemoveWeaponComponentFromPed(uint _ped, uint _weaponHash, uint _componentHash) { unsafe { - if (fn__removeWeaponComponentFromPed == null) fn__removeWeaponComponentFromPed = (delegate* unmanaged[Cdecl]) funcTable[0x1E8BE90C74FB4C09UL]; + if (fn__removeWeaponComponentFromPed == null) fn__removeWeaponComponentFromPed = (delegate* unmanaged[Cdecl]) funcTable[0x1E8BE90C74FB4C09UL]; var success = false; fn__removeWeaponComponentFromPed(&success, _ped, _weaponHash, _componentHash); if (!success) throw new Exception("Native execution failed"); @@ -105151,10 +105138,10 @@ public void RemoveWeaponComponentFromPed(int _ped, uint _weaponHash, uint _compo } public bool HasPedGotWeaponComponent(IPlayer ped, uint weaponHash, uint componentHash) => HasPedGotWeaponComponent(ped.ScriptId, weaponHash, componentHash); - public bool HasPedGotWeaponComponent(int _ped, uint _weaponHash, uint _componentHash) + public bool HasPedGotWeaponComponent(uint _ped, uint _weaponHash, uint _componentHash) { unsafe { - if (fn__hasPedGotWeaponComponent == null) fn__hasPedGotWeaponComponent = (delegate* unmanaged[Cdecl]) funcTable[0xC593212475FAE340UL]; + if (fn__hasPedGotWeaponComponent == null) fn__hasPedGotWeaponComponent = (delegate* unmanaged[Cdecl]) funcTable[0xC593212475FAE340UL]; var success = false; var result = fn__hasPedGotWeaponComponent(&success, _ped, _weaponHash, _componentHash); if (!success) throw new Exception("Native execution failed"); @@ -105163,10 +105150,10 @@ public bool HasPedGotWeaponComponent(int _ped, uint _weaponHash, uint _component } public bool IsPedWeaponComponentActive(IPlayer ped, uint weaponHash, uint componentHash) => IsPedWeaponComponentActive(ped.ScriptId, weaponHash, componentHash); - public bool IsPedWeaponComponentActive(int _ped, uint _weaponHash, uint _componentHash) + public bool IsPedWeaponComponentActive(uint _ped, uint _weaponHash, uint _componentHash) { unsafe { - if (fn__isPedWeaponComponentActive == null) fn__isPedWeaponComponentActive = (delegate* unmanaged[Cdecl]) funcTable[0x0D78DE0572D3969EUL]; + if (fn__isPedWeaponComponentActive == null) fn__isPedWeaponComponentActive = (delegate* unmanaged[Cdecl]) funcTable[0x0D78DE0572D3969EUL]; var success = false; var result = fn__isPedWeaponComponentActive(&success, _ped, _weaponHash, _componentHash); if (!success) throw new Exception("Native execution failed"); @@ -105175,10 +105162,10 @@ public bool IsPedWeaponComponentActive(int _ped, uint _weaponHash, uint _compone } public bool RefillAmmoInstantly(IPlayer ped) => RefillAmmoInstantly(ped.ScriptId); - public bool RefillAmmoInstantly(int _ped) + public bool RefillAmmoInstantly(uint _ped) { unsafe { - if (fn__refillAmmoInstantly == null) fn__refillAmmoInstantly = (delegate* unmanaged[Cdecl]) funcTable[0x8C0D57EA686FAD87UL]; + if (fn__refillAmmoInstantly == null) fn__refillAmmoInstantly = (delegate* unmanaged[Cdecl]) funcTable[0x8C0D57EA686FAD87UL]; var success = false; var result = fn__refillAmmoInstantly(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -105187,10 +105174,10 @@ public bool RefillAmmoInstantly(int _ped) } public bool MakePedReload(IPlayer ped) => MakePedReload(ped.ScriptId); - public bool MakePedReload(int _ped) + public bool MakePedReload(uint _ped) { unsafe { - if (fn__makePedReload == null) fn__makePedReload = (delegate* unmanaged[Cdecl]) funcTable[0x20AE33F3AC9C0033UL]; + if (fn__makePedReload == null) fn__makePedReload = (delegate* unmanaged[Cdecl]) funcTable[0x20AE33F3AC9C0033UL]; var success = false; var result = fn__makePedReload(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -105229,10 +105216,10 @@ public void RemoveWeaponAsset(uint _weaponHash) } } - public int CreateWeaponObject(uint _weaponHash, int _ammoCount, float _x, float _y, float _z, bool _showWorldModel, float _scale, int _p7, int _p8, int _p9) + public uint CreateWeaponObject(uint _weaponHash, int _ammoCount, float _x, float _y, float _z, bool _showWorldModel, float _scale, int _p7, int _p8, int _p9) { unsafe { - if (fn__createWeaponObject == null) fn__createWeaponObject = (delegate* unmanaged[Cdecl]) funcTable[0x9541D3CF0D398F36UL]; + if (fn__createWeaponObject == null) fn__createWeaponObject = (delegate* unmanaged[Cdecl]) funcTable[0x9541D3CF0D398F36UL]; var success = false; var result = fn__createWeaponObject(&success, _weaponHash, _ammoCount, _x, _y, _z, (byte) (_showWorldModel ? 1 : 0), _scale, _p7, _p8, _p9); if (!success) throw new Exception("Native execution failed"); @@ -105240,30 +105227,30 @@ public int CreateWeaponObject(uint _weaponHash, int _ammoCount, float _x, float } } - public void GiveWeaponComponentToWeaponObject(int _weaponObject, uint _componentHash) + public void GiveWeaponComponentToWeaponObject(uint _weaponObject, uint _componentHash) { unsafe { - if (fn__giveWeaponComponentToWeaponObject == null) fn__giveWeaponComponentToWeaponObject = (delegate* unmanaged[Cdecl]) funcTable[0x33E179436C0B31DBUL]; + if (fn__giveWeaponComponentToWeaponObject == null) fn__giveWeaponComponentToWeaponObject = (delegate* unmanaged[Cdecl]) funcTable[0x33E179436C0B31DBUL]; var success = false; fn__giveWeaponComponentToWeaponObject(&success, _weaponObject, _componentHash); if (!success) throw new Exception("Native execution failed"); } } - public void RemoveWeaponComponentFromWeaponObject(int _object, uint _componentHash) + public void RemoveWeaponComponentFromWeaponObject(uint _object, uint _componentHash) { unsafe { - if (fn__removeWeaponComponentFromWeaponObject == null) fn__removeWeaponComponentFromWeaponObject = (delegate* unmanaged[Cdecl]) funcTable[0xF7D82B0D66777611UL]; + if (fn__removeWeaponComponentFromWeaponObject == null) fn__removeWeaponComponentFromWeaponObject = (delegate* unmanaged[Cdecl]) funcTable[0xF7D82B0D66777611UL]; var success = false; fn__removeWeaponComponentFromWeaponObject(&success, _object, _componentHash); if (!success) throw new Exception("Native execution failed"); } } - public bool HasWeaponGotWeaponComponent(int _weapon, uint _componentHash) + public bool HasWeaponGotWeaponComponent(uint _weapon, uint _componentHash) { unsafe { - if (fn__hasWeaponGotWeaponComponent == null) fn__hasWeaponGotWeaponComponent = (delegate* unmanaged[Cdecl]) funcTable[0x76A18844E743BF91UL]; + if (fn__hasWeaponGotWeaponComponent == null) fn__hasWeaponGotWeaponComponent = (delegate* unmanaged[Cdecl]) funcTable[0x76A18844E743BF91UL]; var success = false; var result = fn__hasWeaponGotWeaponComponent(&success, _weapon, _componentHash); if (!success) throw new Exception("Native execution failed"); @@ -105271,11 +105258,11 @@ public bool HasWeaponGotWeaponComponent(int _weapon, uint _componentHash) } } - public void GiveWeaponObjectToPed(int weaponObject, IPlayer ped) => GiveWeaponObjectToPed(weaponObject, ped.ScriptId); - public void GiveWeaponObjectToPed(int _weaponObject, int _ped) + public void GiveWeaponObjectToPed(uint weaponObject, IPlayer ped) => GiveWeaponObjectToPed(weaponObject, ped.ScriptId); + public void GiveWeaponObjectToPed(uint _weaponObject, uint _ped) { unsafe { - if (fn__giveWeaponObjectToPed == null) fn__giveWeaponObjectToPed = (delegate* unmanaged[Cdecl]) funcTable[0xB1FA61371AF7C4B7UL]; + if (fn__giveWeaponObjectToPed == null) fn__giveWeaponObjectToPed = (delegate* unmanaged[Cdecl]) funcTable[0xB1FA61371AF7C4B7UL]; var success = false; fn__giveWeaponObjectToPed(&success, _weaponObject, _ped); if (!success) throw new Exception("Native execution failed"); @@ -105293,11 +105280,11 @@ public bool DoesWeaponTakeWeaponComponent(uint _weaponHash, uint _componentHash) } } - public int GetWeaponObjectFromPed(IPlayer ped, bool p1) => GetWeaponObjectFromPed(ped.ScriptId, p1); - public int GetWeaponObjectFromPed(int _ped, bool _p1) + public uint GetWeaponObjectFromPed(IPlayer ped, bool p1) => GetWeaponObjectFromPed(ped.ScriptId, p1); + public uint GetWeaponObjectFromPed(uint _ped, bool _p1) { unsafe { - if (fn__getWeaponObjectFromPed == null) fn__getWeaponObjectFromPed = (delegate* unmanaged[Cdecl]) funcTable[0xCAE1DC9A0E22A16DUL]; + if (fn__getWeaponObjectFromPed == null) fn__getWeaponObjectFromPed = (delegate* unmanaged[Cdecl]) funcTable[0xCAE1DC9A0E22A16DUL]; var success = false; var result = fn__getWeaponObjectFromPed(&success, _ped, (byte) (_p1 ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -105306,10 +105293,10 @@ public int GetWeaponObjectFromPed(int _ped, bool _p1) } public void GiveLoadoutToPed(IPlayer ped, uint loadoutHash) => GiveLoadoutToPed(ped.ScriptId, loadoutHash); - public void GiveLoadoutToPed(int _ped, uint _loadoutHash) + public void GiveLoadoutToPed(uint _ped, uint _loadoutHash) { unsafe { - if (fn__giveLoadoutToPed == null) fn__giveLoadoutToPed = (delegate* unmanaged[Cdecl]) funcTable[0x68F8BE6AF5CDF8A6UL]; + if (fn__giveLoadoutToPed == null) fn__giveLoadoutToPed = (delegate* unmanaged[Cdecl]) funcTable[0x68F8BE6AF5CDF8A6UL]; var success = false; fn__giveLoadoutToPed(&success, _ped, _loadoutHash); if (!success) throw new Exception("Native execution failed"); @@ -105317,10 +105304,10 @@ public void GiveLoadoutToPed(int _ped, uint _loadoutHash) } public void SetPedWeaponTintIndex(IPlayer ped, uint weaponHash, int tintIndex) => SetPedWeaponTintIndex(ped.ScriptId, weaponHash, tintIndex); - public void SetPedWeaponTintIndex(int _ped, uint _weaponHash, int _tintIndex) + public void SetPedWeaponTintIndex(uint _ped, uint _weaponHash, int _tintIndex) { unsafe { - if (fn__setPedWeaponTintIndex == null) fn__setPedWeaponTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0x50969B9B89ED5738UL]; + if (fn__setPedWeaponTintIndex == null) fn__setPedWeaponTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0x50969B9B89ED5738UL]; var success = false; fn__setPedWeaponTintIndex(&success, _ped, _weaponHash, _tintIndex); if (!success) throw new Exception("Native execution failed"); @@ -105328,10 +105315,10 @@ public void SetPedWeaponTintIndex(int _ped, uint _weaponHash, int _tintIndex) } public int GetPedWeaponTintIndex(IPlayer ped, uint weaponHash) => GetPedWeaponTintIndex(ped.ScriptId, weaponHash); - public int GetPedWeaponTintIndex(int _ped, uint _weaponHash) + public int GetPedWeaponTintIndex(uint _ped, uint _weaponHash) { unsafe { - if (fn__getPedWeaponTintIndex == null) fn__getPedWeaponTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0x2B9EEDC07BD06B9FUL]; + if (fn__getPedWeaponTintIndex == null) fn__getPedWeaponTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0x2B9EEDC07BD06B9FUL]; var success = false; var result = fn__getPedWeaponTintIndex(&success, _ped, _weaponHash); if (!success) throw new Exception("Native execution failed"); @@ -105339,20 +105326,20 @@ public int GetPedWeaponTintIndex(int _ped, uint _weaponHash) } } - public void SetWeaponObjectTintIndex(int _weapon, int _tintIndex) + public void SetWeaponObjectTintIndex(uint _weapon, int _tintIndex) { unsafe { - if (fn__setWeaponObjectTintIndex == null) fn__setWeaponObjectTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xF827589017D4E4A9UL]; + if (fn__setWeaponObjectTintIndex == null) fn__setWeaponObjectTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xF827589017D4E4A9UL]; var success = false; fn__setWeaponObjectTintIndex(&success, _weapon, _tintIndex); if (!success) throw new Exception("Native execution failed"); } } - public int GetWeaponObjectTintIndex(int _weapon) + public int GetWeaponObjectTintIndex(uint _weapon) { unsafe { - if (fn__getWeaponObjectTintIndex == null) fn__getWeaponObjectTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xCD183314F7CD2E57UL]; + if (fn__getWeaponObjectTintIndex == null) fn__getWeaponObjectTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xCD183314F7CD2E57UL]; var success = false; var result = fn__getWeaponObjectTintIndex(&success, _weapon); if (!success) throw new Exception("Native execution failed"); @@ -105372,10 +105359,10 @@ public int GetWeaponTintCount(uint _weaponHash) } public void SetPedWeaponComponentTintIndex(IPlayer ped, uint weaponHash, uint camoComponentHash, int colorIndex) => SetPedWeaponComponentTintIndex(ped.ScriptId, weaponHash, camoComponentHash, colorIndex); - public void SetPedWeaponComponentTintIndex(int _ped, uint _weaponHash, uint _camoComponentHash, int _colorIndex) + public void SetPedWeaponComponentTintIndex(uint _ped, uint _weaponHash, uint _camoComponentHash, int _colorIndex) { unsafe { - if (fn__setPedWeaponComponentTintIndex == null) fn__setPedWeaponComponentTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0x9FE5633880ECD8EDUL]; + if (fn__setPedWeaponComponentTintIndex == null) fn__setPedWeaponComponentTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0x9FE5633880ECD8EDUL]; var success = false; fn__setPedWeaponComponentTintIndex(&success, _ped, _weaponHash, _camoComponentHash, _colorIndex); if (!success) throw new Exception("Native execution failed"); @@ -105383,10 +105370,10 @@ public void SetPedWeaponComponentTintIndex(int _ped, uint _weaponHash, uint _cam } public int GetPedWeaponComponentTintIndex(IPlayer ped, uint weaponHash, uint camoComponentHash) => GetPedWeaponComponentTintIndex(ped.ScriptId, weaponHash, camoComponentHash); - public int GetPedWeaponComponentTintIndex(int _ped, uint _weaponHash, uint _camoComponentHash) + public int GetPedWeaponComponentTintIndex(uint _ped, uint _weaponHash, uint _camoComponentHash) { unsafe { - if (fn__getPedWeaponComponentTintIndex == null) fn__getPedWeaponComponentTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xF0A60040BE558F2DUL]; + if (fn__getPedWeaponComponentTintIndex == null) fn__getPedWeaponComponentTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xF0A60040BE558F2DUL]; var success = false; var result = fn__getPedWeaponComponentTintIndex(&success, _ped, _weaponHash, _camoComponentHash); if (!success) throw new Exception("Native execution failed"); @@ -105394,20 +105381,20 @@ public int GetPedWeaponComponentTintIndex(int _ped, uint _weaponHash, uint _camo } } - public void SetWeaponObjectComponentTintIndex(int _weaponObject, uint _camoComponentHash, int _colorIndex) + public void SetWeaponObjectComponentTintIndex(uint _weaponObject, uint _camoComponentHash, int _colorIndex) { unsafe { - if (fn__setWeaponObjectComponentTintIndex == null) fn__setWeaponObjectComponentTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0x5DA825A85D0EA6E6UL]; + if (fn__setWeaponObjectComponentTintIndex == null) fn__setWeaponObjectComponentTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0x5DA825A85D0EA6E6UL]; var success = false; fn__setWeaponObjectComponentTintIndex(&success, _weaponObject, _camoComponentHash, _colorIndex); if (!success) throw new Exception("Native execution failed"); } } - public int GetWeaponObjectComponentTintIndex(int _weaponObject, uint _camoComponentHash) + public int GetWeaponObjectComponentTintIndex(uint _weaponObject, uint _camoComponentHash) { unsafe { - if (fn__getWeaponObjectComponentTintIndex == null) fn__getWeaponObjectComponentTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xB3EA4FEABF41464BUL]; + if (fn__getWeaponObjectComponentTintIndex == null) fn__getWeaponObjectComponentTintIndex = (delegate* unmanaged[Cdecl]) funcTable[0xB3EA4FEABF41464BUL]; var success = false; var result = fn__getWeaponObjectComponentTintIndex(&success, _weaponObject, _camoComponentHash); if (!success) throw new Exception("Native execution failed"); @@ -105416,10 +105403,10 @@ public int GetWeaponObjectComponentTintIndex(int _weaponObject, uint _camoCompon } public int GetPedWeaponCamoIndex(IPlayer ped, uint weaponHash) => GetPedWeaponCamoIndex(ped.ScriptId, weaponHash); - public int GetPedWeaponCamoIndex(int _ped, uint _weaponHash) + public int GetPedWeaponCamoIndex(uint _ped, uint _weaponHash) { unsafe { - if (fn__getPedWeaponCamoIndex == null) fn__getPedWeaponCamoIndex = (delegate* unmanaged[Cdecl]) funcTable[0xA2C9AC24B4061285UL]; + if (fn__getPedWeaponCamoIndex == null) fn__getPedWeaponCamoIndex = (delegate* unmanaged[Cdecl]) funcTable[0xA2C9AC24B4061285UL]; var success = false; var result = fn__getPedWeaponCamoIndex(&success, _ped, _weaponHash); if (!success) throw new Exception("Native execution failed"); @@ -105427,10 +105414,10 @@ public int GetPedWeaponCamoIndex(int _ped, uint _weaponHash) } } - public void SetWeaponObjectCamoIndex(int _weaponObject, int _p1) + public void SetWeaponObjectCamoIndex(uint _weaponObject, int _p1) { unsafe { - if (fn__setWeaponObjectCamoIndex == null) fn__setWeaponObjectCamoIndex = (delegate* unmanaged[Cdecl]) funcTable[0x977CA98939E82E4BUL]; + if (fn__setWeaponObjectCamoIndex == null) fn__setWeaponObjectCamoIndex = (delegate* unmanaged[Cdecl]) funcTable[0x977CA98939E82E4BUL]; var success = false; fn__setWeaponObjectCamoIndex(&success, _weaponObject, _p1); if (!success) throw new Exception("Native execution failed"); @@ -105497,21 +105484,21 @@ public float GetWeaponTimeBetweenShots(uint _weaponHash) } public void SetPedChanceOfFiringBlanks(IPlayer ped, float xBias, float yBias) => SetPedChanceOfFiringBlanks(ped.ScriptId, xBias, yBias); - public void SetPedChanceOfFiringBlanks(int _ped, float _xBias, float _yBias) + public void SetPedChanceOfFiringBlanks(uint _ped, float _xBias, float _yBias) { unsafe { - if (fn__setPedChanceOfFiringBlanks == null) fn__setPedChanceOfFiringBlanks = (delegate* unmanaged[Cdecl]) funcTable[0x8378627201D5497DUL]; + if (fn__setPedChanceOfFiringBlanks == null) fn__setPedChanceOfFiringBlanks = (delegate* unmanaged[Cdecl]) funcTable[0x8378627201D5497DUL]; var success = false; fn__setPedChanceOfFiringBlanks(&success, _ped, _xBias, _yBias); if (!success) throw new Exception("Native execution failed"); } } - public int SetPedShootOrdnanceWeapon(IPlayer ped, float p1) => SetPedShootOrdnanceWeapon(ped.ScriptId, p1); - public int SetPedShootOrdnanceWeapon(int _ped, float _p1) + public uint SetPedShootOrdnanceWeapon(IPlayer ped, float p1) => SetPedShootOrdnanceWeapon(ped.ScriptId, p1); + public uint SetPedShootOrdnanceWeapon(uint _ped, float _p1) { unsafe { - if (fn__setPedShootOrdnanceWeapon == null) fn__setPedShootOrdnanceWeapon = (delegate* unmanaged[Cdecl]) funcTable[0xB4C8D77C80C0421EUL]; + if (fn__setPedShootOrdnanceWeapon == null) fn__setPedShootOrdnanceWeapon = (delegate* unmanaged[Cdecl]) funcTable[0xB4C8D77C80C0421EUL]; var success = false; var result = fn__setPedShootOrdnanceWeapon(&success, _ped, _p1); if (!success) throw new Exception("Native execution failed"); @@ -105520,10 +105507,10 @@ public int SetPedShootOrdnanceWeapon(int _ped, float _p1) } public void RequestWeaponHighDetailModel(IEntity weaponObject) => RequestWeaponHighDetailModel(weaponObject.ScriptId); - public void RequestWeaponHighDetailModel(int _weaponObject) + public void RequestWeaponHighDetailModel(uint _weaponObject) { unsafe { - if (fn__requestWeaponHighDetailModel == null) fn__requestWeaponHighDetailModel = (delegate* unmanaged[Cdecl]) funcTable[0x48164DBB970AC3F0UL]; + if (fn__requestWeaponHighDetailModel == null) fn__requestWeaponHighDetailModel = (delegate* unmanaged[Cdecl]) funcTable[0x48164DBB970AC3F0UL]; var success = false; fn__requestWeaponHighDetailModel(&success, _weaponObject); if (!success) throw new Exception("Native execution failed"); @@ -105561,10 +105548,10 @@ public void SetWeaponEffectDurationModifier(uint _p0, float _p1) } public bool IsPedCurrentWeaponSilenced(IPlayer ped) => IsPedCurrentWeaponSilenced(ped.ScriptId); - public bool IsPedCurrentWeaponSilenced(int _ped) + public bool IsPedCurrentWeaponSilenced(uint _ped) { unsafe { - if (fn__isPedCurrentWeaponSilenced == null) fn__isPedCurrentWeaponSilenced = (delegate* unmanaged[Cdecl]) funcTable[0x65F0C5AE05943EC7UL]; + if (fn__isPedCurrentWeaponSilenced == null) fn__isPedCurrentWeaponSilenced = (delegate* unmanaged[Cdecl]) funcTable[0x65F0C5AE05943EC7UL]; var success = false; var result = fn__isPedCurrentWeaponSilenced(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -105573,10 +105560,10 @@ public bool IsPedCurrentWeaponSilenced(int _ped) } public bool IsFlashLightOn(IPlayer ped) => IsFlashLightOn(ped.ScriptId); - public bool IsFlashLightOn(int _ped) + public bool IsFlashLightOn(uint _ped) { unsafe { - if (fn__isFlashLightOn == null) fn__isFlashLightOn = (delegate* unmanaged[Cdecl]) funcTable[0x4B7620C47217126CUL]; + if (fn__isFlashLightOn == null) fn__isFlashLightOn = (delegate* unmanaged[Cdecl]) funcTable[0x4B7620C47217126CUL]; var success = false; var result = fn__isFlashLightOn(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -105596,10 +105583,10 @@ public bool SetFlashLightFadeDistance(float _distance) } public void SetFlashLightActiveHistory(IPlayer ped, bool toggle) => SetFlashLightActiveHistory(ped.ScriptId, toggle); - public void SetFlashLightActiveHistory(int _ped, bool _toggle) + public void SetFlashLightActiveHistory(uint _ped, bool _toggle) { unsafe { - if (fn__setFlashLightActiveHistory == null) fn__setFlashLightActiveHistory = (delegate* unmanaged[Cdecl]) funcTable[0x988DB6FE9B3AC000UL]; + if (fn__setFlashLightActiveHistory == null) fn__setFlashLightActiveHistory = (delegate* unmanaged[Cdecl]) funcTable[0x988DB6FE9B3AC000UL]; var success = false; fn__setFlashLightActiveHistory(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -105607,10 +105594,10 @@ public void SetFlashLightActiveHistory(int _ped, bool _toggle) } public void SetWeaponAnimationOverride(IPlayer ped, uint animStyle) => SetWeaponAnimationOverride(ped.ScriptId, animStyle); - public void SetWeaponAnimationOverride(int _ped, uint _animStyle) + public void SetWeaponAnimationOverride(uint _ped, uint _animStyle) { unsafe { - if (fn__setWeaponAnimationOverride == null) fn__setWeaponAnimationOverride = (delegate* unmanaged[Cdecl]) funcTable[0x1055AC3A667F09D9UL]; + if (fn__setWeaponAnimationOverride == null) fn__setWeaponAnimationOverride = (delegate* unmanaged[Cdecl]) funcTable[0x1055AC3A667F09D9UL]; var success = false; fn__setWeaponAnimationOverride(&success, _ped, _animStyle); if (!success) throw new Exception("Native execution failed"); @@ -105629,10 +105616,10 @@ public int GetWeaponDamageType(uint _weaponHash) } public void SetEqippedWeaponStartSpinningAtFullSpeed(IPlayer ped) => SetEqippedWeaponStartSpinningAtFullSpeed(ped.ScriptId); - public void SetEqippedWeaponStartSpinningAtFullSpeed(int _ped) + public void SetEqippedWeaponStartSpinningAtFullSpeed(uint _ped) { unsafe { - if (fn__setEqippedWeaponStartSpinningAtFullSpeed == null) fn__setEqippedWeaponStartSpinningAtFullSpeed = (delegate* unmanaged[Cdecl]) funcTable[0xE4DCEC7FD5B739A5UL]; + if (fn__setEqippedWeaponStartSpinningAtFullSpeed == null) fn__setEqippedWeaponStartSpinningAtFullSpeed = (delegate* unmanaged[Cdecl]) funcTable[0xE4DCEC7FD5B739A5UL]; var success = false; fn__setEqippedWeaponStartSpinningAtFullSpeed(&success, _ped); if (!success) throw new Exception("Native execution failed"); @@ -105694,10 +105681,10 @@ public void RemoveAllAirDefenceSpheres() } public void SetPlayerTargettableForAirDefenceSphere(IPlayer player, int zoneId, bool enable) => SetPlayerTargettableForAirDefenceSphere(player.ScriptId, zoneId, enable); - public void SetPlayerTargettableForAirDefenceSphere(int _player, int _zoneId, bool _enable) + public void SetPlayerTargettableForAirDefenceSphere(uint _player, int _zoneId, bool _enable) { unsafe { - if (fn__setPlayerTargettableForAirDefenceSphere == null) fn__setPlayerTargettableForAirDefenceSphere = (delegate* unmanaged[Cdecl]) funcTable[0xECDC202B25E5CF48UL]; + if (fn__setPlayerTargettableForAirDefenceSphere == null) fn__setPlayerTargettableForAirDefenceSphere = (delegate* unmanaged[Cdecl]) funcTable[0xECDC202B25E5CF48UL]; var success = false; fn__setPlayerTargettableForAirDefenceSphere(&success, _player, _zoneId, (byte) (_enable ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -105739,10 +105726,10 @@ public bool DoesAirDefenceSphereExist(int _zoneId) } public void SetCanPedSelectInventoryWeapon(IPlayer ped, uint weaponHash, bool toggle) => SetCanPedSelectInventoryWeapon(ped.ScriptId, weaponHash, toggle); - public void SetCanPedSelectInventoryWeapon(int _ped, uint _weaponHash, bool _toggle) + public void SetCanPedSelectInventoryWeapon(uint _ped, uint _weaponHash, bool _toggle) { unsafe { - if (fn__setCanPedSelectInventoryWeapon == null) fn__setCanPedSelectInventoryWeapon = (delegate* unmanaged[Cdecl]) funcTable[0xB4771B9AAF4E68E4UL]; + if (fn__setCanPedSelectInventoryWeapon == null) fn__setCanPedSelectInventoryWeapon = (delegate* unmanaged[Cdecl]) funcTable[0xB4771B9AAF4E68E4UL]; var success = false; fn__setCanPedSelectInventoryWeapon(&success, _ped, _weaponHash, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -105750,10 +105737,10 @@ public void SetCanPedSelectInventoryWeapon(int _ped, uint _weaponHash, bool _tog } public void SetCanPedSelectAllWeapons(IPlayer ped, bool toggle) => SetCanPedSelectAllWeapons(ped.ScriptId, toggle); - public void SetCanPedSelectAllWeapons(int _ped, bool _toggle) + public void SetCanPedSelectAllWeapons(uint _ped, bool _toggle) { unsafe { - if (fn__setCanPedSelectAllWeapons == null) fn__setCanPedSelectAllWeapons = (delegate* unmanaged[Cdecl]) funcTable[0xEFF296097FF1E509UL]; + if (fn__setCanPedSelectAllWeapons == null) fn__setCanPedSelectAllWeapons = (delegate* unmanaged[Cdecl]) funcTable[0xEFF296097FF1E509UL]; var success = false; fn__setCanPedSelectAllWeapons(&success, _ped, (byte) (_toggle ? 1 : 0)); if (!success) throw new Exception("Native execution failed"); @@ -105776,9 +105763,9 @@ public int GetZoneFromNameId(string _zoneName) unsafe { if (fn__getZoneFromNameId == null) fn__getZoneFromNameId = (delegate* unmanaged[Cdecl]) funcTable[0x98CD1D2934B76CC1UL]; var success = false; - var ptr_zoneName = _zoneName == null ? IntPtr.Zero : MemoryUtils.StringToHGlobalUtf8(_zoneName); + var ptr_zoneName = MemoryUtils.StringToHGlobalUtf8(_zoneName); var result = fn__getZoneFromNameId(&success, ptr_zoneName); - if (ptr_zoneName != IntPtr.Zero) Marshal.FreeHGlobal(ptr_zoneName); + Marshal.FreeHGlobal(ptr_zoneName); if (!success) throw new Exception("Native execution failed"); return result; } @@ -105802,8 +105789,8 @@ public string GetNameOfZone(float _x, float _y, float _z) var success = false; var result = fn__getNameOfZone(&success, _x, _y, _z); if (!success) throw new Exception("Native execution failed"); - var strResult = result != IntPtr.Zero ? Marshal.PtrToStringUTF8(result) : null; - if (result != IntPtr.Zero) freeString(result); + var strResult = Marshal.PtrToStringUTF8(result); + freeString(result); return strResult; } } diff --git a/api/AltV.Net.Client/Resource.cs b/api/AltV.Net.Client/Resource.cs index aff12e04c..471539448 100644 --- a/api/AltV.Net.Client/Resource.cs +++ b/api/AltV.Net.Client/Resource.cs @@ -21,7 +21,6 @@ public virtual UnhandledExceptionHandingOptions OnUnhandledException(UnhandledEx return new UnhandledExceptionHandingOptions(); } - public virtual IPlayerFactory GetPlayerFactory() { return new PlayerFactory(); @@ -37,6 +36,11 @@ public virtual IEntityFactory GetVehicleFactory() return new VehicleFactory(); } + public virtual IEntityFactory GetPedFactory() + { + return new PedFactory(); + } + public virtual IBaseObjectFactory GetBlipFactory() { return new BlipFactory(); @@ -47,16 +51,86 @@ public virtual IBaseObjectFactory GetCheckpointFactory() return new CheckpointFactory(); } + public virtual IBaseObjectFactory GetColShapeFactory() + { + return new ColShapeFactory(); + } + public virtual IBaseObjectFactory GetWebViewFactory() { return new WebViewFactory(); } + public virtual IEntityFactory GetLocalObjectFactory() + { + return new LocalObjectFactory(); + } + public virtual IEntityFactory GetObjectFactory() { return new ObjectFactory(); } + public virtual IBaseObjectFactory GetVirtualEntityFactory() + { + return new VirtualEntityFactory(); + } + + public virtual IBaseObjectFactory GetVirtualEntityGroupFactory() + { + return new VirtualEntityGroupFactory(); + } + + public virtual IBaseObjectFactory GetTextLabelFactory() + { + return new TextLabelFactory(); + } + + public virtual IBaseObjectFactory GetLocalVehicleFactory() + { + return new LocalVehicleFactory(); + } + + public virtual IBaseObjectFactory GetLocalPedFactory() + { + return new LocalPedFactory(); + } + + public virtual IBaseObjectFactory GetAudioFilterFactory() + { + return new AudioFilterFactory(); + } + + public virtual IBaseObjectFactory GetAudioOutputFactory() + { + return new AudioOutputFactory(); + } + + public virtual IBaseObjectFactory GetAudioOutputWorldFactory() + { + return new AudioOutputWorldFactory(); + } + + public virtual IBaseObjectFactory GetFontFactory() + { + return new FontFactory(); + } + + public virtual IBaseObjectFactory GetMarkerFactory() + { + return new MarkerFactory(); + } + + public virtual IBaseObjectFactory GetAudioOutputAttachedFactory() + { + return new AudioOutputAttachedFactory(); + } + + public virtual IBaseObjectFactory GetAudioOutputFrontendFactory() + { + return new AudioOutputFrontendFactory(); + } + public virtual IBaseObjectFactory GetAudioFactory() { return new AudioFactory(); diff --git a/api/AltV.Net.Client/Runtime/CSharpResourceImpl.cs b/api/AltV.Net.Client/Runtime/CSharpResourceImpl.cs index 2355acbb9..dbfbfd5e8 100644 --- a/api/AltV.Net.Client/Runtime/CSharpResourceImpl.cs +++ b/api/AltV.Net.Client/Runtime/CSharpResourceImpl.cs @@ -37,6 +37,10 @@ internal void SetDelegates() handles.AddFirst(GCHandle.Alloc(onWebSocketEvent)); core.Library.Client.Event_SetWebSocketEventDelegate(this.NativePointer, onWebSocketEvent); + AudioEventModuleDelegate onAudioEvent = ModuleWrapper.OnAudioEvent; + handles.AddFirst(GCHandle.Alloc(onAudioEvent)); + core.Library.Client.Event_SetAudioEventDelegate(this.NativePointer, onAudioEvent); + RmlEventModuleDelegate onRmlElementEvent = ModuleWrapper.OnRmlElementEvent; handles.AddFirst(GCHandle.Alloc(onRmlElementEvent)); core.Library.Client.Event_SetRmlEventDelegate(this.NativePointer, onRmlElementEvent); @@ -45,29 +49,13 @@ internal void SetDelegates() handles.AddFirst(GCHandle.Alloc(onConsoleCommand)); core.Library.Client.Event_SetConsoleCommandDelegate(this.NativePointer, onConsoleCommand); - CreatePlayerModuleDelegate onCreatePlayer = ModuleWrapper.OnCreatePlayer; - handles.AddFirst(GCHandle.Alloc(onCreatePlayer)); - core.Library.Client.Event_SetCreatePlayerDelegate(this.NativePointer, onCreatePlayer); - - RemovePlayerModuleDelegate onRemovePlayer = ModuleWrapper.OnRemovePlayer; - handles.AddFirst(GCHandle.Alloc(onRemovePlayer)); - core.Library.Client.Event_SetRemovePlayerDelegate(this.NativePointer, onRemovePlayer); - - CreateObjectModuleDelegate onCreateObject = ModuleWrapper.OnCreateObject; - handles.AddFirst(GCHandle.Alloc(onCreateObject)); - core.Library.Client.Event_SetCreateObjectDelegate(this.NativePointer, onCreateObject); - - RemoveObjectModuleDelegate onRemoveObject = ModuleWrapper.OnRemoveObject; - handles.AddFirst(GCHandle.Alloc(onRemoveObject)); - core.Library.Client.Event_SetRemoveObjectDelegate(this.NativePointer, onRemoveObject); - - CreateVehicleModuleDelegate onCreateVehicle = ModuleWrapper.OnCreateVehicle; - handles.AddFirst(GCHandle.Alloc(onCreateVehicle)); - core.Library.Client.Event_SetCreateVehicleDelegate(this.NativePointer, onCreateVehicle); + CreateBaseObjectModuleDelegate onCreateBaseObject = ModuleWrapper.OnCreateBaseObject; + handles.AddFirst(GCHandle.Alloc(onCreateBaseObject)); + core.Library.Client.Event_SetCreateBaseObjectDelegate (this.NativePointer, onCreateBaseObject); - RemoveVehicleModuleDelegate onRemoveVehicle = ModuleWrapper.OnRemoveVehicle; - handles.AddFirst(GCHandle.Alloc(onRemoveVehicle)); - core.Library.Client.Event_SetRemoveVehicleDelegate(this.NativePointer, onRemoveVehicle); + RemoveBaseObjectModuleDelegate onRemoveBaseObject = ModuleWrapper.OnRemoveBaseObject; + handles.AddFirst(GCHandle.Alloc(onRemoveBaseObject)); + core.Library.Client.Event_SetRemoveBaseObjectDelegate(this.NativePointer, onRemoveBaseObject); PlayerSpawnModuleDelegate onPlayerSpawn = ModuleWrapper.OnPlayerSpawn; handles.AddFirst(GCHandle.Alloc(onPlayerSpawn)); @@ -153,78 +141,10 @@ internal void SetDelegates() handles.AddFirst(GCHandle.Alloc(onNetOwnerChange)); core.Library.Client.Event_SetNetOwnerChangeDelegate(this.NativePointer, onNetOwnerChange); - RemoveEntityModuleDelegate onRemoveEntity = ModuleWrapper.OnRemoveEntity; - handles.AddFirst(GCHandle.Alloc(onRemoveEntity)); - core.Library.Client.Event_SetRemoveEntityDelegate(this.NativePointer, onRemoveEntity); - PlayerLeaveVehicleModuleDelegate onPlayerLeaveVehicle = ModuleWrapper.OnPlayerLeaveVehicle; handles.AddFirst(GCHandle.Alloc(onPlayerLeaveVehicle)); core.Library.Client.Event_SetPlayerLeaveVehicleDelegate(this.NativePointer, onPlayerLeaveVehicle); - CreateBlipModuleDelegate onCreateBlip = ModuleWrapper.OnBlipCreate; - handles.AddFirst(GCHandle.Alloc(onCreateBlip)); - core.Library.Client.Event_SetCreateBlipDelegate(this.NativePointer, onCreateBlip); - - CreateWebViewModuleDelegate onCreateWebView = ModuleWrapper.OnWebViewCreate; - handles.AddFirst(GCHandle.Alloc(onCreateWebView)); - core.Library.Client.Event_SetCreateWebViewDelegate(this.NativePointer, onCreateWebView); - - CreateCheckpointModuleDelegate onCreateCheckpoint = ModuleWrapper.OnCheckpointCreate; - handles.AddFirst(GCHandle.Alloc(onCreateCheckpoint)); - core.Library.Client.Event_SetCreateCheckpointDelegate(this.NativePointer, onCreateCheckpoint); - - CreateWebSocketClientModuleDelegate onCreateWebSocketClient = ModuleWrapper.OnWebSocketClientCreate; - handles.AddFirst(GCHandle.Alloc(onCreateWebSocketClient)); - core.Library.Client.Event_SetCreateWebSocketClientDelegate(this.NativePointer, onCreateWebSocketClient); - - CreateHttpClientModuleDelegate onCreateHttpClient = ModuleWrapper.OnHttpClientCreate; - handles.AddFirst(GCHandle.Alloc(onCreateHttpClient)); - core.Library.Client.Event_SetCreateHttpClientDelegate(this.NativePointer, onCreateHttpClient); - - CreateAudioModuleDelegate onCreateAudio = ModuleWrapper.OnAudioCreate; - handles.AddFirst(GCHandle.Alloc(onCreateAudio)); - core.Library.Client.Event_SetCreateAudioDelegate(this.NativePointer, onCreateAudio); - - CreateRmlElementModuleDelegate onCreateRmlElement = ModuleWrapper.OnRmlElementCreate; - handles.AddFirst(GCHandle.Alloc(onCreateRmlElement)); - core.Library.Client.Event_SetCreateRmlElementDelegate(this.NativePointer, onCreateRmlElement); - - CreateRmlDocumentModuleDelegate onCreateRmlDocument = ModuleWrapper.OnRmlDocumentCreate; - handles.AddFirst(GCHandle.Alloc(onCreateRmlDocument)); - core.Library.Client.Event_SetCreateRmlDocumentDelegate(this.NativePointer, onCreateRmlDocument); - - RemoveBlipModuleDelegate onRemoveBlip = ModuleWrapper.OnBlipRemove; - handles.AddFirst(GCHandle.Alloc(onRemoveBlip)); - core.Library.Client.Event_SetRemoveBlipDelegate(this.NativePointer, onRemoveBlip); - - RemoveWebViewModuleDelegate onRemoveWebView = ModuleWrapper.OnWebViewRemove; - handles.AddFirst(GCHandle.Alloc(onRemoveWebView)); - core.Library.Client.Event_SetRemoveWebViewDelegate(this.NativePointer, onRemoveWebView); - - RemoveCheckpointModuleDelegate onRemoveCheckpoint = ModuleWrapper.OnCheckpointRemove; - handles.AddFirst(GCHandle.Alloc(onRemoveCheckpoint)); - core.Library.Client.Event_SetRemoveCheckpointDelegate(this.NativePointer, onRemoveCheckpoint); - - RemoveWebSocketClientModuleDelegate onRemoveWebSocketClient = ModuleWrapper.OnWebSocketClientRemove; - handles.AddFirst(GCHandle.Alloc(onRemoveWebSocketClient)); - core.Library.Client.Event_SetRemoveWebSocketClientDelegate(this.NativePointer, onRemoveWebSocketClient); - - RemoveHttpClientModuleDelegate onRemoveHttpClient = ModuleWrapper.OnHttpClientRemove; - handles.AddFirst(GCHandle.Alloc(onRemoveHttpClient)); - core.Library.Client.Event_SetRemoveHttpClientDelegate(this.NativePointer, onRemoveHttpClient); - - RemoveAudioModuleDelegate onRemoveAudio = ModuleWrapper.OnAudioRemove; - handles.AddFirst(GCHandle.Alloc(onRemoveAudio)); - core.Library.Client.Event_SetRemoveAudioDelegate(this.NativePointer, onRemoveAudio); - - RemoveRmlElementModuleDelegate onRemoveRmlElement = ModuleWrapper.OnRmlElementRemove; - handles.AddFirst(GCHandle.Alloc(onRemoveRmlElement)); - core.Library.Client.Event_SetRemoveRmlElementDelegate(this.NativePointer, onRemoveRmlElement); - - RemoveRmlDocumentModuleDelegate onRemoveRmlDocument = ModuleWrapper.OnRmlDocumentRemove; - handles.AddFirst(GCHandle.Alloc(onRemoveRmlDocument)); - core.Library.Client.Event_SetRemoveRmlDocumentDelegate(this.NativePointer, onRemoveRmlDocument); - PlayerChangeAnimationModuleDelegate onPlayerChangeAnimation = ModuleWrapper.OnPlayerChangeAnimation; handles.AddFirst(GCHandle.Alloc(onPlayerChangeAnimation)); core.Library.Client.Event_SetPlayerChangeAnimationDelegate(this.NativePointer, onPlayerChangeAnimation); @@ -244,6 +164,58 @@ internal void SetDelegates() WeaponDamageModuleDelegate onWeaponDamage = ModuleWrapper.OnWeaponDamage; handles.AddFirst(GCHandle.Alloc(onWeaponDamage)); core.Library.Client.Event_SetWeaponDamageDelegate(this.NativePointer, onWeaponDamage); + + WorldObjectPositionChangeModuleDelegate onWorldObjectPositionChange = ModuleWrapper.OnWorldObjectPositionChange; + handles.AddFirst(GCHandle.Alloc(onWorldObjectPositionChange)); + core.Library.Client.Event_SetWorldObjectPositionChangeDelegate(this.NativePointer, onWorldObjectPositionChange); + + WorldObjectStreamInModuleDelegate onWorldObjectStreamIn = ModuleWrapper.OnWorldObjectStreamIn; + handles.AddFirst(GCHandle.Alloc(onWorldObjectStreamIn)); + core.Library.Client.Event_SetWorldObjectStreamInDelegate(this.NativePointer, onWorldObjectStreamIn); + + WorldObjectStreamOutModuleDelegate onWorldObjectStreamOut = ModuleWrapper.OnWorldObjectStreamOut; + handles.AddFirst(GCHandle.Alloc(onWorldObjectStreamOut)); + core.Library.Client.Event_SetWorldObjectStreamOutDelegate(this.NativePointer, onWorldObjectStreamOut); + + ColShapeModuleDelegate onColShape = ModuleWrapper.OnColShape; + handles.AddFirst(GCHandle.Alloc(onColShape)); + core.Library.Client.Event_SetColShapeDelegate(this.NativePointer, onColShape); + + CheckpointModuleDelegate onCheckpoint = ModuleWrapper.OnCheckpoint; + handles.AddFirst(GCHandle.Alloc(onCheckpoint)); + core.Library.Client.Event_SetCheckpointDelegate(this.NativePointer, onCheckpoint); + + MetaChangeModuleDelegate onMetaChange = ModuleWrapper.OnMetaChange; + handles.AddFirst(GCHandle.Alloc(onMetaChange)); + core.Library.Client.Event_SetMetaChangeDelegate(this.NativePointer, onMetaChange); + + EntityHitEntityModuleDelegate onEntityHitEntity = ModuleWrapper.OnEntityHitEntity; + handles.AddFirst(GCHandle.Alloc(onEntityHitEntity)); + core.Library.Client.Event_SetEntityHitEntityDelegate(this.NativePointer, onEntityHitEntity); + + PlayerStartEnterVehicleModuleDelegate onPlayerStartEnterVehicle = ModuleWrapper.OnPlayerStartEnterVehicle; + handles.AddFirst(GCHandle.Alloc(onPlayerStartEnterVehicle)); + core.Library.Client.Event_SetPlayerStartEnterVehicleDelegate(this.NativePointer, onPlayerStartEnterVehicle); + + PlayerStartLeaveVehicleModuleDelegate onPlayerStartLeaveVehicle = ModuleWrapper.OnPlayerStartLeaveVehicle; + handles.AddFirst(GCHandle.Alloc(onPlayerStartLeaveVehicle)); + core.Library.Client.Event_SetPlayerStartLeaveVehicleDelegate(this.NativePointer, onPlayerStartLeaveVehicle); + + PlayerBulletHitModuleDelegate onPlayerBulletHit = ModuleWrapper.OnPlayerBulletHit; + handles.AddFirst(GCHandle.Alloc(onPlayerBulletHit)); + core.Library.Client.Event_SetPlayerBulletHitDelegate(this.NativePointer, onPlayerBulletHit); + + VoiceConnectionModuleDelegate onVoiceConnection = ModuleWrapper.OnVoiceConnection; + handles.AddFirst(GCHandle.Alloc(onVoiceConnection)); + core.Library.Client.Event_SetVoiceConnectionDelegate(this.NativePointer, onVoiceConnection); + + ScriptRPCModuleDelegate onScriptRPC = ModuleWrapper.OnScriptRPC; + handles.AddFirst(GCHandle.Alloc(onScriptRPC)); + core.Library.Client.Event_SetScriptRPCDelegate(this.NativePointer, onScriptRPC); + + ScriptRPCAnswerModuleDelegate onScriptRPCAnswer = ModuleWrapper.OnScriptRPCAnswer; + handles.AddFirst(GCHandle.Alloc(onScriptRPCAnswer)); + core.Library.Client.Event_SetScriptRPCAnswerDelegate(this.NativePointer, onScriptRPCAnswer); } } diff --git a/api/AltV.Net.Client/WinApi/ErrorDialog.cs b/api/AltV.Net.Client/WinApi/ErrorDialog.cs index 75900ca60..c6c82d618 100644 --- a/api/AltV.Net.Client/WinApi/ErrorDialog.cs +++ b/api/AltV.Net.Client/WinApi/ErrorDialog.cs @@ -30,7 +30,7 @@ public enum TaskDialogFlags NoSetForeground = 0x00010000, SizeToContent = 0x01000000, } - + [Flags] public enum TaskDialogCommonButtonFlags { @@ -41,7 +41,7 @@ public enum TaskDialogCommonButtonFlags Retry = 0x0010, Close = 0x0020 } - + public enum TaskDialogNotification : uint { Created = 0, @@ -91,11 +91,11 @@ public struct TaskDialogConfig public IntPtr CallbackData; public uint Width; } - + private delegate long TaskDialogIndirectDelegate(ref TaskDialogConfig pTaskConfig, out int pnButton, out int pnRadioButton, [MarshalAs(UnmanagedType.Bool)] out bool pfVerificationFlagChecked); - + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode, Pack = 1)] public struct TaskDialogButton { @@ -108,9 +108,9 @@ public TaskDialogButton(int buttonId, string buttonText) ButtonText = buttonText; } } - + private static TaskDialogIndirectDelegate _taskDialogIndirectAction; - + private static void LoadTaskDialog(ICApiCore core) { unsafe @@ -118,7 +118,7 @@ private static void LoadTaskDialog(ICApiCore core) _taskDialogIndirectAction = Marshal.GetDelegateForFunctionPointer(core.Library.Client.Win_GetTaskDialog()); } } - + private static long TaskDialogIndirect(ICore core, ref TaskDialogConfig taskConfig, out int button, out int radioButton, [MarshalAs(UnmanagedType.Bool)] out bool verificationFlagChecked) { @@ -150,16 +150,16 @@ internal enum TaskDialogMessages : uint [DllImport("user32.dll", CharSet = CharSet.Unicode)] public static extern long SendMessage(IntPtr hWnd, TaskDialogMessages Msg, IntPtr wParam, IntPtr lParam); - + internal TaskDialogConfig Config; private readonly ICore core; - + public enum TaskDialogIconType { Main, Footer } - + internal ErrorDialog(ICore core, UnhandledExceptionHandingOptions options, Exception e) { this.core = core; @@ -178,7 +178,7 @@ internal ErrorDialog(ICore core, UnhandledExceptionHandingOptions options, Excep { Config.Content += "\r\n" + options.CustomMessage; } - + Config.Content += "\r\nThe game will be closed."; if (options.ShowStacktrace) @@ -186,10 +186,10 @@ internal ErrorDialog(ICore core, UnhandledExceptionHandingOptions options, Excep Config.ExpandedInformation = e?.ToString() ?? "No stacktrace available"; Config.ExpandedControlText = "Show stacktrace"; } - + Config.CommonButtons = TaskDialogCommonButtonFlags.OK; Config.Flags |= TaskDialogFlags.SizeToContent; - + if (options.ShowLinkToDocs) { Config.Footer = "C# module documentation"; @@ -198,21 +198,21 @@ internal ErrorDialog(ICore core, UnhandledExceptionHandingOptions options, Excep } var buttons = new List(); - + if (options.ShowOpenLogsFolderButton) { buttons.Add(new TaskDialogButton(1000, "Open logs folder")); Config.Flags |= TaskDialogFlags.UseCommandLinks; } - if (options.ShowCopyStacktraceButton && core.GetPermissionState(Permission.ClipboardAccess) == PermissionState.Allowed) + if (options.ShowCopyStacktraceButton && core.GetPermissionState(Permission.ClipboardAccess)) { buttons.Add(new TaskDialogButton(1001, "Copy stacktrace")); Config.Flags |= TaskDialogFlags.UseCommandLinks; } if (buttons.Count > 0) Buttons = buttons.ToArray(); - + // -7 is shield red bar Config.MainIconHandle = new IntPtr(unchecked((ushort) -7)); Config.StructSize = (uint) Marshal.SizeOf(Config); @@ -261,7 +261,7 @@ internal ErrorDialog(ICore core, UnhandledExceptionHandingOptions options, Excep return 0; }; } - + public TaskDialogButton[] Buttons { get; set; } public void Show() @@ -282,18 +282,18 @@ public void Show() Config.ButtonsArray = buttonsPtr; Config.ButtonsCount = (uint) Buttons.Length; } - + Config.ParentWindowHandle = IntPtr.Zero; var hr = TaskDialogIndirect(core, ref Config, out var button, out var radioButton, out var verificationFlag); - + if (Config.ButtonsArray != IntPtr.Zero) { Marshal.FreeHGlobal(Config.ButtonsArray); Config.ButtonsArray = IntPtr.Zero; Config.ButtonsCount = 0; } - + if (hr != 0) throw new Exception($"Failed to execute TaskDialogIndirect: {hr}"); } } diff --git a/api/AltV.Net.ColShape.Tests/AltV.Net.ColShape.Tests.csproj b/api/AltV.Net.ColShape.Tests/AltV.Net.ColShape.Tests.csproj index 584d8dd75..97ea5d795 100644 --- a/api/AltV.Net.ColShape.Tests/AltV.Net.ColShape.Tests.csproj +++ b/api/AltV.Net.ColShape.Tests/AltV.Net.ColShape.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/api/AltV.Net.ColShape.Tests/MockPlayerPool.cs b/api/AltV.Net.ColShape.Tests/MockPlayerPool.cs index ad6bbb6b8..b9a2bcb56 100644 --- a/api/AltV.Net.ColShape.Tests/MockPlayerPool.cs +++ b/api/AltV.Net.ColShape.Tests/MockPlayerPool.cs @@ -10,13 +10,13 @@ namespace AltV.Net.ColShape.Tests public class MockPlayerPool : IEntityPool { private readonly List players; - + public MockPlayerPool(List players) { this.players = players; } - public IPlayer Create(ICore core, IntPtr entityPointer, ushort id) + public IPlayer Create(ICore core, IntPtr entityPointer, uint id) { throw new NotImplementedException(); } @@ -48,7 +48,7 @@ public IPlayer Get(IntPtr entityPointer) { throw new NotImplementedException(); } - public IPlayer GetOrCreate(ICore core, IntPtr entityPointer, ushort entityId) + public IPlayer GetOrCreate(ICore core, IntPtr entityPointer, uint entityId) { throw new NotImplementedException(); } diff --git a/api/AltV.Net.ColShape.Tests/MockVehiclePool.cs b/api/AltV.Net.ColShape.Tests/MockVehiclePool.cs index 3dd34a801..4f6e5099a 100644 --- a/api/AltV.Net.ColShape.Tests/MockVehiclePool.cs +++ b/api/AltV.Net.ColShape.Tests/MockVehiclePool.cs @@ -9,7 +9,7 @@ namespace AltV.Net.ColShape.Tests { public class MockVehiclePool : IEntityPool { - public void Create(ICore core, IntPtr entityPointer, ushort id) + public void Create(ICore core, IntPtr entityPointer, uint id) { throw new NotImplementedException(); } @@ -18,7 +18,7 @@ public IVehicle Create(ICore core, IntPtr entityPointer) throw new NotImplementedException(); } - IVehicle IEntityPool.Create(ICore core, IntPtr entityPointer, ushort id) + IVehicle IEntityPool.Create(ICore core, IntPtr entityPointer, uint id) { throw new NotImplementedException(); } @@ -46,7 +46,7 @@ public IVehicle Get(IntPtr entityPointer) { throw new NotImplementedException(); } - public IVehicle GetOrCreate(ICore core, IntPtr entityPointer, ushort entityId) + public IVehicle GetOrCreate(ICore core, IntPtr entityPointer, uint entityId) { throw new NotImplementedException(); } @@ -64,7 +64,7 @@ public IReadOnlyCollection GetAllEntities() var vehicles = new List {mockVehicle}; return vehicles; } - + public KeyValuePair[] GetEntitiesArray() { var mockVehicle = new MockVehicle(null) {Position = new Position(1, 1, 1)}; diff --git a/api/AltV.Net.EntitySync.Benchmarks/AltV.Net.EntitySync.Benchmarks.csproj b/api/AltV.Net.EntitySync.Benchmarks/AltV.Net.EntitySync.Benchmarks.csproj index d4cda7dda..229641fb8 100644 --- a/api/AltV.Net.EntitySync.Benchmarks/AltV.Net.EntitySync.Benchmarks.csproj +++ b/api/AltV.Net.EntitySync.Benchmarks/AltV.Net.EntitySync.Benchmarks.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/api/AltV.Net.EntitySync.Tests/AltV.Net.EntitySync.Tests.csproj b/api/AltV.Net.EntitySync.Tests/AltV.Net.EntitySync.Tests.csproj index 03605de68..95d7fbe70 100644 --- a/api/AltV.Net.EntitySync.Tests/AltV.Net.EntitySync.Tests.csproj +++ b/api/AltV.Net.EntitySync.Tests/AltV.Net.EntitySync.Tests.csproj @@ -7,9 +7,9 @@ - + - + diff --git a/api/AltV.Net.Example/MyPlayer.cs b/api/AltV.Net.Example/MyPlayer.cs index d1ebd2488..15d892a14 100644 --- a/api/AltV.Net.Example/MyPlayer.cs +++ b/api/AltV.Net.Example/MyPlayer.cs @@ -14,9 +14,9 @@ public class MyPlayer : AsyncPlayer, IMyPlayer { public int MyData { get; set; } - public MyPlayer(ICore core, IntPtr nativePointer, ushort id) : base(core, nativePointer, id) + public MyPlayer(ICore core, IntPtr nativePointer, uint id) : base(core, nativePointer, id) { MyData = 6; } } -} +} \ No newline at end of file diff --git a/api/AltV.Net.Example/MyPlayerFactory.cs b/api/AltV.Net.Example/MyPlayerFactory.cs index 5c25ccce4..6124bc219 100644 --- a/api/AltV.Net.Example/MyPlayerFactory.cs +++ b/api/AltV.Net.Example/MyPlayerFactory.cs @@ -6,7 +6,7 @@ namespace AltV.Net.Example [EntityFactory(BaseObjectType.Player)] public class MyPlayerFactory : IEntityFactory { - public IPlayer Create(ICore core, IntPtr playerPointer, ushort id) + public IPlayer Create(ICore core, IntPtr playerPointer, uint id) { return new MyPlayer(core, playerPointer, id); } diff --git a/api/AltV.Net.Example/MyVehicle.cs b/api/AltV.Net.Example/MyVehicle.cs index 7ba74bd9b..a4198075f 100644 --- a/api/AltV.Net.Example/MyVehicle.cs +++ b/api/AltV.Net.Example/MyVehicle.cs @@ -15,7 +15,7 @@ public MyVehicle(uint model, Position position, Rotation rotation) : base(Alt.Co } // This constructor is used for creation via entity factory - public MyVehicle(ICore core, IntPtr nativePointer, ushort id) : base(core, nativePointer, id) + public MyVehicle(ICore core, IntPtr nativePointer, uint id) : base(core, nativePointer, id) { MyData = 6; } diff --git a/api/AltV.Net.Example/MyVehicleFactory.cs b/api/AltV.Net.Example/MyVehicleFactory.cs index a4c792b17..7cdc51e96 100644 --- a/api/AltV.Net.Example/MyVehicleFactory.cs +++ b/api/AltV.Net.Example/MyVehicleFactory.cs @@ -5,7 +5,7 @@ namespace AltV.Net.Example { public class MyVehicleFactory : IEntityFactory { - public IVehicle Create(ICore core, IntPtr vehiclePointer, ushort id) + public IVehicle Create(ICore core, IntPtr vehiclePointer, uint id) { return new MyVehicle(core, vehiclePointer, id); } diff --git a/api/AltV.Net.Example/SampleResource.cs b/api/AltV.Net.Example/SampleResource.cs index 4f7ac37df..ba916b394 100644 --- a/api/AltV.Net.Example/SampleResource.cs +++ b/api/AltV.Net.Example/SampleResource.cs @@ -9,6 +9,7 @@ using System.Drawing; using AltV.Net.BenchmarkRunners; using AltV.Net.Resources.Chat.Api; +using AltV.Net.Shared.Utils; namespace AltV.Net.Example { @@ -22,6 +23,12 @@ public override void OnStart() long currentTraceSize = 0; AltTrace.OnTraceFileSizeChange += size => { currentTraceSize = size; }; + Alt.OnWeaponDamage += (player, target, weapon, damage, offset, part) => + { + //Do Something + return false; + }; + Alt.OnConsoleCommand += (name, args) => { Console.WriteLine("Command name: " + name); @@ -123,8 +130,6 @@ public override void OnStart() Alt.OnPlayerConnect += OnPlayerConnect; Alt.OnPlayerDisconnect += OnPlayerDisconnect; AltAsync.OnPlayerDisconnect += OnPlayerDisconnectAsync; - Alt.OnPlayerRemove += OnPlayerRemove; - Alt.OnVehicleRemove += OnVehicleRemove; AltAsync.OnPlayerConnect += OnPlayerConnectAsync; Alt.OnConsoleCommand += (name, args) => { }; Alt.OnPlayerEvent += (player, name, args) => { Alt.Log("event:" + name); }; @@ -137,10 +142,10 @@ public override void OnStart() async args => { await AltAsync.Do(() => Alt.Log("bla with no args:" + args.Length)); }); Alt.Emit("bla"); - var blip = Alt.CreateBlip(BlipType.Area, Position.Zero); + var blip = Alt.CreateBlip(true, BlipType.Area, Position.Zero, Array.Empty()); blip.Color = 1; - var checkpoint = Alt.CreateCheckpoint(CheckpointType.Cyclinder, Position.Zero, 1f, 1f, Rgba.Zero); + var checkpoint = Alt.CreateCheckpoint(CheckpointType.Cylinder, Position.Zero, 1f, 1f, Rgba.Zero, 50); Alt.Log(checkpoint.Color.ToString()); var voiceChannel = Alt.CreateVoiceChannel(true, 10f); @@ -410,7 +415,7 @@ async delegate(string s, string s1, long i1, string[] arg3, object[] arg4, IMyVe Alt.Emit("onOptionalAndParamArray", 5, 42, "test"); - Alt.CreateCheckpoint(CheckpointType.Cyclinder, Position.Zero, 50f, 50f, Rgba.Zero); + Alt.CreateCheckpoint(CheckpointType.Cylinder, Position.Zero, 50f, 50f, Rgba.Zero, 50); var vehicle5 = Alt.CreateVehicle(VehicleModel.Adder, Position.Zero, Rotation.Zero); @@ -632,14 +637,6 @@ private async Task OnPlayerDisconnectAsync(IPlayer player, string reason) return 42; } - private void OnPlayerRemove(IPlayer player) - { - } - - private void OnVehicleRemove(IVehicle vehicle) - { - } - public void bla() { } diff --git a/api/AltV.Net.Example/SampleScript.cs b/api/AltV.Net.Example/SampleScript.cs index 231d3eccc..0a24876d7 100644 --- a/api/AltV.Net.Example/SampleScript.cs +++ b/api/AltV.Net.Example/SampleScript.cs @@ -14,15 +14,15 @@ public async Task Checkpoint(ICheckpoint checkpoint, IEntity entity, bool state) { await Task.Delay(100); Console.WriteLine("checkpoint event"); - } - + } + [AsyncScriptEvent(ScriptEventType.ColShape)] public async Task ColShape(IColShape checkpoint, IEntity entity, bool state) { await Task.Delay(100); Console.WriteLine("colshape event"); } - + [Command] public void MyCommand(IPlayer player, string myArgument) { @@ -33,38 +33,38 @@ public void MyCommand2(IPlayer player, int? myArgument) { Console.WriteLine("bla with arg:" + myArgument); } - + [Command("bladyn")] public void MyCommand(IPlayer player, int myArgument, params string[] message) { Console.WriteLine("bladync with arg:" + myArgument + string.Join(" ", message)); } - [Command("bla", true, new [] {"bla2", "bla3"})] + [Command("bla", true, new[] { "bla2", "bla3" })] public void MyCommand2(IPlayer player, string myArgument) { Console.WriteLine("bla with greedy arg:" + myArgument); } - + [CommandEvent(CommandEventType.CommandNotFound)] public void MyCommandNotFoundHandler(IPlayer player, string command) { Console.WriteLine("Command not found:" + command); } - + [Command("dynamicArgs")] public void MyCommandWithDynamicArgs(IPlayer player, int arg1, int arg2, params string[] args) { Console.WriteLine("Command:" + arg1 + " " + arg2 + " remaining args " + string.Join(",", args)); } - + [Command("dynamicArgs2")] public void MyCommandWithDynamicArgs2(IPlayer player, int arg1, int? arg2, params string[] args) { Console.WriteLine("Command:" + arg1 + " " + arg2 + " remaining args " + string.Join(",", args)); } - - [Command("defaultParamsCommand", aliases: new []{"defaultParamsCommand2"})] + + [Command("defaultParamsCommand", aliases: new[] { "defaultParamsCommand2" })] public void DefaultParamsCommand(IPlayer player, string test, int arg1 = 1, int arg2 = 2) { Console.WriteLine("Command:" + test + " " + arg1 + " " + arg2); @@ -74,7 +74,7 @@ public void DefaultParamsCommand(IPlayer player, string test, int arg1 = 1, int public void MyEvent(IPlayer player) { } - + [ServerEvent("eventNameWithEntity")] public void MyEvent2(IPlayer player, IEntity entity) { @@ -98,7 +98,7 @@ public void MyPlayerConnect(IPlayer player, string reason) { player.Emit("connect_event"); player.SetDateTime(DateTime.Now); - player.Model = (uint) PedModel.FreemodeMale01; + player.Model = (uint)PedModel.FreemodeMale01; } [ScriptEvent(ScriptEventType.ServerEvent)] diff --git a/api/AltV.Net.Executable.Example/nuget.old.config b/api/AltV.Net.Executable.Example/nuget.old.config index ffafea790..8c7f1dc03 100644 --- a/api/AltV.Net.Executable.Example/nuget.old.config +++ b/api/AltV.Net.Executable.Example/nuget.old.config @@ -1,10 +1,11 @@ + - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/api/AltV.Net.Interactions.Tests/AltV.Net.Interactions.Tests.csproj b/api/AltV.Net.Interactions.Tests/AltV.Net.Interactions.Tests.csproj index b64df8f06..37415822f 100644 --- a/api/AltV.Net.Interactions.Tests/AltV.Net.Interactions.Tests.csproj +++ b/api/AltV.Net.Interactions.Tests/AltV.Net.Interactions.Tests.csproj @@ -8,9 +8,9 @@ - + - + diff --git a/api/AltV.Net.Mock.Example/Program.cs b/api/AltV.Net.Mock.Example/Program.cs index ab782c151..4269027d0 100644 --- a/api/AltV.Net.Mock.Example/Program.cs +++ b/api/AltV.Net.Mock.Example/Program.cs @@ -10,7 +10,7 @@ class Program static void Main(string[] args) { var mockAltV = - new MockAltV("resource/AltV.Net.Example.dll"); + new MockAltV("resource/AltV.Net.Example.dll"); Alt.EmitAllClients("bla"); var player = mockAltV.ConnectPlayer("bla", "direct connect", iPlayer => { @@ -24,7 +24,7 @@ static void Main(string[] args) player.Emit("bla2"); Console.WriteLine(player.DequeueEvent().Name); player.Damage(null, 1, 10, 5); - var checkpoint = Alt.CreateCheckpoint(1, Position.Zero, 10, 10, Rgba.Zero); + var checkpoint = Alt.CreateCheckpoint(1, Position.Zero, 10, 10, Rgba.Zero, 50); checkpoint.EntityExit(player); checkpoint.EntityExit(player); player.Death(null, 1); diff --git a/api/AltV.Net.Mock/MockAltV.cs b/api/AltV.Net.Mock/MockAltV.cs index 8cacaba02..6fc154615 100644 --- a/api/AltV.Net.Mock/MockAltV.cs +++ b/api/AltV.Net.Mock/MockAltV.cs @@ -7,46 +7,69 @@ namespace AltV.Net.Mock //TODO: MValue_GetEntity is currently broken because the cpp code tries to access the getType method from entity //TODO: we need a way now to create MValues that are giving back the correct values inside storage pointer but without using mvalue_get //TODO: or create own mock cpp lib? maybe add an macro for building mock lib - public class MockAltV where TPlayer : IPlayer + public class MockAltV where TPlayer : IPlayer where TVehicle : IVehicle where TBlip : IBlip where TCheckpoint : ICheckpoint where TVoiceChannel : IVoiceChannel - where TColShape: IColShape + where TPed : IPed + where TObject : IObject + where TVirtualEntity : IVirtualEntity + where TVirtualEntityGroup : IVirtualEntityGroup + where TMarker : IMarker + where TConnectionInfo : IConnectionInfo + where TColShape : IColShape { private readonly ICore core; - + public MockAltV(string entryPoint) { //var resource = new MockResourceLoader(IntPtr.Zero, string.Empty, entryPoint).Init(); IResource resource = null; var playerFactory = new MockPlayerFactory(resource.GetPlayerFactory()); var vehicleFactory = new MockVehicleFactory(resource.GetVehicleFactory()); + var pedFactory = new MockPedFactory(resource.GetPedFactory()); + var objectFactory = new MockObjectFactory(resource.GetObjectFactory()); var blipFactory = new MockBlipFactory(resource.GetBlipFactory()); var checkpointFactory = new MockCheckpointFactory(resource.GetCheckpointFactory()); var voiceChannelFactory = new MockVoiceChannelFactory(resource.GetVoiceChannelFactory()); var colShapeFactory = new MockColShapeFactory(resource.GetColShapeFactory()); + var virtualEntityFactory = new MockVirtualEntityFactory(resource.GetVirtualEntityFactory()); + var virtualEntityGroupFactory = + new MockVirtualEntityGroupFactory(resource.GetVirtualEntityGroupFactory()); + var markerFactory = new MockMarkerFactory(resource.GetMarkerFactory()); + var connectionInfoFactory = + new MockConnectionInfoFactory(resource.GetConnectionInfoFactory()); + var playerPool = new MockPlayerPool(playerFactory); var vehiclePool = new MockVehiclePool(vehicleFactory); + var pedPool = new MockPedPool(pedFactory); + var objectPool = new MockObjectPool(objectFactory); var blipPool = new MockBlipPool(blipFactory); var checkpointPool = new MockCheckpointPool(checkpointFactory); var voiceChannelPool = new MockVoiceChannelPool(voiceChannelFactory); var colShapePool = new MockColShapePool(colShapeFactory); - var entityPool = new MockBaseEntityPool(playerPool, vehiclePool); + var virtualEntityPool = new MockVirtualEntityPool(virtualEntityFactory); + var virtualEntityGroupPool = new MockVirtualEntityGroupPool(virtualEntityGroupFactory); + var markerPool = new MockMarkerPool(markerFactory); + var connectionInfoPool = new MockConnectionInfoPool(connectionInfoFactory); + var baseObjectPool = - new MockBaseBaseObjectPool(playerPool, vehiclePool, blipPool, checkpointPool, voiceChannelPool, colShapePool); - core = new MockCore(IntPtr.Zero, baseObjectPool, entityPool, playerPool, vehiclePool, blipPool, - checkpointPool, voiceChannelPool, null); + new MockPoolManager(playerPool, vehiclePool, pedPool, objectPool, blipPool, checkpointPool, + voiceChannelPool, colShapePool, virtualEntityPool, virtualEntityGroupPool, markerPool, + connectionInfoPool); + core = new MockCore(IntPtr.Zero, baseObjectPool, null); resource.OnStart(); } public IPlayer ConnectPlayer(string playerName, string reason, Action intercept = null) { var ptr = MockEntities.GetNextPtr(out var entityId); - var player = Alt.Core.PlayerPool.Create(core, ptr , entityId); + var player = Alt.Core.PoolManager.Player.Create(core, ptr, entityId); //player.Name = playerName; intercept?.Invoke(player); - Alt.CoreImpl.OnPlayerConnect(ptr, player.Id, reason); + Alt.CoreImpl.OnPlayerConnect(ptr, reason); return player; } } diff --git a/api/AltV.Net.Mock/MockBaseBaseObjectPool.cs b/api/AltV.Net.Mock/MockBaseBaseObjectPool.cs deleted file mode 100644 index 47394e328..000000000 --- a/api/AltV.Net.Mock/MockBaseBaseObjectPool.cs +++ /dev/null @@ -1,15 +0,0 @@ -using AltV.Net.Elements.Entities; -using AltV.Net.Elements.Pools; - -namespace AltV.Net.Mock -{ - public class MockBaseBaseObjectPool : BaseBaseObjectPool - { - public MockBaseBaseObjectPool(IEntityPool playerPool, IEntityPool vehiclePool, - IBaseObjectPool blipPool, - IBaseObjectPool checkpointPool, IBaseObjectPool voiceChannelPool, IBaseObjectPool colShapePool) : base( - playerPool, vehiclePool, blipPool, checkpointPool, voiceChannelPool, colShapePool) - { - } - } -} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockBaseEntityPool.cs b/api/AltV.Net.Mock/MockBaseEntityPool.cs deleted file mode 100644 index 229d9b3f3..000000000 --- a/api/AltV.Net.Mock/MockBaseEntityPool.cs +++ /dev/null @@ -1,12 +0,0 @@ -using AltV.Net.Elements.Entities; -using AltV.Net.Elements.Pools; - -namespace AltV.Net.Mock -{ - public class MockBaseEntityPool : BaseEntityPool - { - public MockBaseEntityPool(IEntityPool playerPool, IEntityPool vehiclePool) : base(playerPool, vehiclePool) - { - } - } -} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockBlip.cs b/api/AltV.Net.Mock/MockBlip.cs index 800e4e84c..e991eaf09 100644 --- a/api/AltV.Net.Mock/MockBlip.cs +++ b/api/AltV.Net.Mock/MockBlip.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Numerics; using AltV.Net.Data; using AltV.Net.Elements.Entities; @@ -7,23 +8,39 @@ namespace AltV.Net.Mock { public class MockBlip : MockWorldObject, IBlip { - public MockBlip(ICore core, IntPtr nativePointer) : base(core, nativePointer, BaseObjectType.Blip) + public MockBlip(ICore core, IntPtr nativePointer, uint id) : base(core, nativePointer, BaseObjectType.Blip, id) { } public IntPtr BlipNativePointer { get; } - public bool IsGlobal { get; } + public bool IsGlobal { get; set; } + + public void AddTargetPlayer(IPlayer player) + { + throw new NotImplementedException(); + } + + public void RemoveTargetPlayer(IPlayer player) + { + throw new NotImplementedException(); + } + + public IReadOnlyCollection GetTargets() + { + throw new NotImplementedException(); + } + public bool IsAttached { get; set; } public IEntity AttachedTo { get; set; } public byte BlipType { get; set; } - public ushort Sprite { get; set; } - public byte Color { get; set; } + public uint Sprite { get; set; } + public uint Color { get; set; } public bool Route { get; set; } public Rgba RouteColor { get; set; } public Vector2 ScaleXY { get; set; } - public short Display { get; set; } + public uint Display { get; set; } public Rgba SecondaryColor { get; set; } - public byte Alpha { get; set; } + public uint Alpha { get; set; } public ushort FlashTimer { get; set; } public ushort FlashInterval { get; set; } public bool Friendly { get; set; } @@ -33,7 +50,7 @@ public MockBlip(ICore core, IntPtr nativePointer) : base(core, nativePointer, Ba public bool Flashes { get; set; } public bool FlashesAlternate { get; set; } public bool ShortRange { get; set; } - public ushort Priority { get; set; } + public uint Priority { get; set; } public float Rotation { get; set; } public string GxtName { get; set; } public string Name { get; set; } @@ -43,7 +60,7 @@ public MockBlip(ICore core, IntPtr nativePointer) : base(core, nativePointer, Ba public bool HeadingIndicatorVisible { get; set; } public bool OutlineIndicatorVisible { get; set; } public bool CrewIndicatorVisible { get; set; } - public ushort Category { get; set; } + public uint Category { get; set; } public bool HighDetail { get; set; } public bool Shrinked { get; set; } @@ -56,5 +73,11 @@ public void Destroy() { Alt.Core.RemoveBlip(this); } + + public bool Visible { get; set; } + public bool IsHiddenOnLegend { get; set; } + public bool IsMinimalOnEdge { get; set; } + public bool IsUseHeightIndicatorOnEdge { get; set; } + public bool IsShortHeightThreshold { get; set; } } } \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockBlipFactory.cs b/api/AltV.Net.Mock/MockBlipFactory.cs index f5e7d672a..3f08d9514 100644 --- a/api/AltV.Net.Mock/MockBlipFactory.cs +++ b/api/AltV.Net.Mock/MockBlipFactory.cs @@ -12,10 +12,10 @@ public MockBlipFactory(IBaseObjectFactory blipFactory) this.blipFactory = blipFactory; } - public IBlip Create(ICore core, IntPtr entityPointer) + public IBlip Create(ICore core, IntPtr entityPointer, uint id) { - return MockDecorator.Create((TEntity) blipFactory.Create(core, entityPointer), - new MockBlip(core, entityPointer)); + return MockDecorator.Create((TEntity)blipFactory.Create(core, entityPointer, id), + new MockBlip(core, entityPointer, id)); } } } \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockCheckpoint.cs b/api/AltV.Net.Mock/MockCheckpoint.cs index b19a1fdf9..da30338fd 100644 --- a/api/AltV.Net.Mock/MockCheckpoint.cs +++ b/api/AltV.Net.Mock/MockCheckpoint.cs @@ -1,17 +1,18 @@ using System; +using System.Collections.Generic; using AltV.Net.Data; +using AltV.Net.Elements.Args; using AltV.Net.Elements.Entities; namespace AltV.Net.Mock { public class MockCheckpoint : MockColShape, ICheckpoint { - public MockCheckpoint(ICore core, IntPtr nativePointer) : base(core, nativePointer) + public MockCheckpoint(ICore core, IntPtr nativePointer, uint id) : base(core, nativePointer, id) { } - public IntPtr CheckpointNativePointer { get; } public byte CheckpointType { get; set; } public float Height { get; set; } @@ -19,5 +20,56 @@ public MockCheckpoint(ICore core, IntPtr nativePointer) : base(core, nativePoint public Rgba Color { get; set; } public Position NextPosition { get; set; } + public uint StreamingDistance { get; } + public bool Visible { get; set; } + public void SetStreamSyncedMetaData(string key, object value) + { + throw new NotImplementedException(); + } + + public void SetStreamSyncedMetaData(Dictionary metaData) + { + throw new NotImplementedException(); + } + + public void SetStreamSyncedMetaData(string key, in MValueConst value) + { + throw new NotImplementedException(); + } + + public void DeleteStreamSyncedMetaData(string key) + { + throw new NotImplementedException(); + } + + public bool HasStreamSyncedMetaData(string key) + { + throw new NotImplementedException(); + } + + public bool GetStreamSyncedMetaData(string key, out int result) + { + throw new NotImplementedException(); + } + + public bool GetStreamSyncedMetaData(string key, out uint result) + { + throw new NotImplementedException(); + } + + public bool GetStreamSyncedMetaData(string key, out float result) + { + throw new NotImplementedException(); + } + + public void GetStreamSyncedMetaData(string key, out MValueConst value) + { + throw new NotImplementedException(); + } + + public bool GetStreamSyncedMetaData(string key, out T result) + { + throw new NotImplementedException(); + } } } \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockCheckpointFactory.cs b/api/AltV.Net.Mock/MockCheckpointFactory.cs index b04ec40a8..e9e89376f 100644 --- a/api/AltV.Net.Mock/MockCheckpointFactory.cs +++ b/api/AltV.Net.Mock/MockCheckpointFactory.cs @@ -12,10 +12,11 @@ public MockCheckpointFactory(IBaseObjectFactory checkpointFactory) this.checkpointFactory = checkpointFactory; } - public ICheckpoint Create(ICore core, IntPtr entityPointer) + public ICheckpoint Create(ICore core, IntPtr entityPointer, uint id) { - return MockDecorator.Create((TEntity) checkpointFactory.Create(core, entityPointer), - new MockCheckpoint(core, entityPointer)); + return MockDecorator.Create( + (TEntity)checkpointFactory.Create(core, entityPointer, id), + new MockCheckpoint(core, entityPointer, id)); } } } \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockClientEvents.cs b/api/AltV.Net.Mock/MockClientEvents.cs index 45c83cca5..ea0ea0d87 100644 --- a/api/AltV.Net.Mock/MockClientEvents.cs +++ b/api/AltV.Net.Mock/MockClientEvents.cs @@ -73,7 +73,7 @@ internal static void PushEvent(this IPlayer player, string eventName, MValueCons @delegate(eventName, obj); } } - + //TODO: /*var mValue = MValue.Nil; AltNative.MValueCreate.MValue_CreateList(args, (ulong) args.Length, ref mValue); diff --git a/api/AltV.Net.Mock/MockColShape.cs b/api/AltV.Net.Mock/MockColShape.cs index 6b795bfb3..8ef4268d9 100644 --- a/api/AltV.Net.Mock/MockColShape.cs +++ b/api/AltV.Net.Mock/MockColShape.cs @@ -8,7 +8,8 @@ namespace AltV.Net.Mock { public class MockColShape : MockWorldObject, IColShape { - public MockColShape(ICore core, IntPtr nativePointer) : base(core, nativePointer, BaseObjectType.ColShape) + public MockColShape(ICore core, IntPtr nativePointer, uint id) : base(core, nativePointer, + BaseObjectType.ColShape, id) { } @@ -26,12 +27,13 @@ public void Destroy() { Alt.Core.RemoveColShape(this); } + public bool IsEntityIn(ISharedEntity entity) { throw new NotImplementedException(); } - public bool IsEntityIdIn(ushort id) + public bool IsEntityIdIn(uint id) { throw new NotImplementedException(); } diff --git a/api/AltV.Net.Mock/MockColShapeFactory.cs b/api/AltV.Net.Mock/MockColShapeFactory.cs index 35e6b5423..34afd513d 100644 --- a/api/AltV.Net.Mock/MockColShapeFactory.cs +++ b/api/AltV.Net.Mock/MockColShapeFactory.cs @@ -12,10 +12,10 @@ public MockColShapeFactory(IBaseObjectFactory colShapeFactory) this.colShapeFactory = colShapeFactory; } - public IColShape Create(ICore core, IntPtr entityPointer) + public IColShape Create(ICore core, IntPtr entityPointer, uint id) { - return MockDecorator.Create((TEntity) colShapeFactory.Create(core, entityPointer), - new MockColShape(core, entityPointer)); + return MockDecorator.Create((TEntity)colShapeFactory.Create(core, entityPointer, id), + new MockColShape(core, entityPointer, id)); } } } \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockConnectionInfo.cs b/api/AltV.Net.Mock/MockConnectionInfo.cs new file mode 100644 index 000000000..4113ce9fc --- /dev/null +++ b/api/AltV.Net.Mock/MockConnectionInfo.cs @@ -0,0 +1,47 @@ +using System; +using System.Threading.Tasks; +using AltV.Net.Data; +using AltV.Net.Elements.Args; +using AltV.Net.Elements.Entities; +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Mock +{ + public class MockConnectionInfo : MockWorldObject, IConnectionInfo + { + public MockConnectionInfo(ICore core, IntPtr nativePointer, uint id) : base(core, nativePointer, + BaseObjectType.ConnectionInfo, id) + { + } + + public IntPtr ConnectionInfoNativePointer { get; } + public string Name { get; } + public ulong SocialId { get; } + public ulong HardwareIdHash { get; } + public ulong HardwareIdExHash { get; } + public string AuthToken { get; } + public bool IsDebug { get; } + public string Branch { get; } + public uint Build { get; } + public string CdnUrl { get; } + public ulong PasswordHash { get; } + public string Ip { get; } + public long DiscordUserId { get; } + public string SocialName { get; } + public string Text { get; set; } + public bool IsAccepted { get; } + + public void Accept(bool sendNames = true) + { + throw new NotImplementedException(); + } + + public void Decline(string reason) + { + throw new NotImplementedException(); + } + + public string CloudId { get; } + public CloudAuthResult CloudAuthResult { get; } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockConnectionInfoFactory.cs b/api/AltV.Net.Mock/MockConnectionInfoFactory.cs new file mode 100644 index 000000000..10fbd64d2 --- /dev/null +++ b/api/AltV.Net.Mock/MockConnectionInfoFactory.cs @@ -0,0 +1,22 @@ +using System; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Mock +{ + public class MockConnectionInfoFactory : IBaseObjectFactory + where TEntity : IConnectionInfo + { + private readonly IBaseObjectFactory factory; + + public MockConnectionInfoFactory(IBaseObjectFactory factory) + { + this.factory = factory; + } + + public IConnectionInfo Create(ICore core, IntPtr entityPointer, uint id) + { + return MockDecorator.Create((TEntity)factory.Create(core, entityPointer, id), + new MockConnectionInfo(core, entityPointer, id)); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockConnectionInfoPool.cs b/api/AltV.Net.Mock/MockConnectionInfoPool.cs new file mode 100644 index 000000000..b4fb6f187 --- /dev/null +++ b/api/AltV.Net.Mock/MockConnectionInfoPool.cs @@ -0,0 +1,17 @@ +using AltV.Net.Elements.Entities; +using AltV.Net.Elements.Pools; + +namespace AltV.Net.Mock +{ + public class MockConnectionInfoPool : ConnectionInfoPool + { + public MockConnectionInfoPool(IBaseObjectFactory factory) : base(factory) + { + } + + public override void OnRemove(IConnectionInfo entity) + { + MockEntities.FreeNoId(entity.NativePointer); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockCore.cs b/api/AltV.Net.Mock/MockCore.cs index 40e688e8a..102248ff4 100644 --- a/api/AltV.Net.Mock/MockCore.cs +++ b/api/AltV.Net.Mock/MockCore.cs @@ -10,54 +10,62 @@ using AltV.Net.Shared; using AltV.Net.Shared.Elements.Data; using AltV.Net.Shared.Elements.Entities; +using AltV.Net.Shared.Enums; using AltV.Net.Shared.Events; namespace AltV.Net.Mock { public class MockCore : ICore { + ISharedPoolManager ISharedCore.PoolManager => PoolManager; + public Dictionary> VehiclePassengers { get; } + public IPoolManager PoolManager { get; } public EventStateManager EventStateManager { get; } ISharedNativeResource ISharedCore.Resource => Resource; - ISharedEntity ISharedCore.GetEntityById(ushort id) + + public IReadOnlyCollection GetAllPeds() { - return GetEntityById(id); + throw new NotImplementedException(); } - public IntPtr NativePointer { get; } - public string SdkVersion { get; } - public string CApiVersion { get; } - public ILibrary Library { get; } - - private readonly IBaseBaseObjectPool baseBaseObjectPool; + public IReadOnlyCollection GetAllNetworkObjects() + { + throw new NotImplementedException(); + } - private readonly IBaseEntityPool baseEntityPool; + public IReadOnlyCollection GetAllColShapes() + { + throw new NotImplementedException(); + } - IReadOnlyBaseObjectPool ISharedCore.BlipPool => blipPool1; - IReadOnlyBaseObjectPool ISharedCore.CheckpointPool => CheckpointPool; - public IBaseBaseObjectPool BaseBaseObjectPool { get; } - IReadOnlyBaseBaseObjectPool ISharedCore.BaseBaseObjectPool => BaseBaseObjectPool; + public IReadOnlyCollection GetAllMarkers() + { + throw new NotImplementedException(); + } - public IEntityPool PlayerPool { get; } - IReadOnlyEntityPool ISharedCore.PlayerPool => PlayerPool; - public IEntityPool ObjectPool { get; } - IReadOnlyEntityPool ISharedCore.ObjectPool => ObjectPool; + public IReadOnlyCollection GetAllConnectionInfos() + { + throw new NotImplementedException(); + } - public IEntityPool VehiclePool { get; } - public IBaseObjectPool BlipPool { get; } - public IBaseObjectPool CheckpointPool { get; } - public IBaseObjectPool VoiceChannelPool { get; } - public IBaseObjectPool ColShapePool { get; } - public INativeResourcePool NativeResourcePool { get; } - IReadOnlyEntityPool ISharedCore.VehiclePool => VehiclePool; + public IReadOnlyCollection GetAllMetrics() + { + throw new NotImplementedException(); + } - private readonly IBaseObjectPool blipPool; + ISharedBaseObject ISharedCore.GetBaseObjectById(BaseObjectType type, uint id) + { + return GetBaseObjectById(type, id); + } - private readonly IBaseObjectPool checkpointPool; + public IntPtr NativePointer { get; } + public string SdkVersion { get; } + public string CApiVersion { get; } - private readonly IBaseObjectPool voiceChannelPool; + public ILibrary Library { get; } + public INativeResourcePool NativeResourcePool { get; } private readonly INativeResourcePool nativeResourcePool; - private IReadOnlyBaseObjectPool blipPool1; public int NetTime => 0; @@ -68,24 +76,12 @@ ISharedEntity ISharedCore.GetEntityById(ushort id) public string Version => ""; public INativeResource Resource => new NativeResource(null, IntPtr.Zero); - public IBaseEntityPool BaseEntityPool { get; } - - internal MockCore(IntPtr nativePointer, IBaseBaseObjectPool baseBaseObjectPool, - IBaseEntityPool baseEntityPool, IEntityPool playerPool, - IEntityPool vehiclePool, - IBaseObjectPool blipPool, - IBaseObjectPool checkpointPool, - IBaseObjectPool voiceChannelPool, + + internal MockCore(IntPtr nativePointer, IPoolManager poolManager, INativeResourcePool nativeResourcePool) { this.NativePointer = nativePointer; - this.baseBaseObjectPool = baseBaseObjectPool; - this.baseEntityPool = baseEntityPool; - this.PlayerPool = playerPool; - this.VehiclePool = vehiclePool; - this.blipPool = blipPool; - this.checkpointPool = checkpointPool; - this.voiceChannelPool = voiceChannelPool; + this.PoolManager = poolManager; this.nativeResourcePool = nativeResourcePool; } @@ -138,6 +134,7 @@ public void LogColored(IntPtr message) { Console.WriteLine(Marshal.PtrToStringUTF8(message)); } + public bool IsMainThread() { return true; @@ -251,10 +248,130 @@ public void TriggerClientEventForSome(IPlayer[] clients, string eventName, param throw new NotImplementedException(); } - public IVehicle CreateVehicle(uint model, Position pos, Rotation rotation) + public void TriggerClientEventUnreliable(IPlayer player, IntPtr eventNamePtr, MValueConst[] args) + { + throw new NotImplementedException(); + } + + public void TriggerClientEventUnreliable(IPlayer player, string eventName, MValueConst[] args) + { + throw new NotImplementedException(); + } + + public void TriggerClientEventUnreliable(IPlayer player, IntPtr eventNamePtr, IntPtr[] args) + { + throw new NotImplementedException(); + } + + public void TriggerClientEventUnreliable(IPlayer player, string eventName, IntPtr[] args) + { + throw new NotImplementedException(); + } + + public void TriggerClientEventUnreliable(IPlayer player, IntPtr eventNamePtr, params object[] args) + { + throw new NotImplementedException(); + } + + public void TriggerClientEventUnreliable(IPlayer player, string eventName, params object[] args) + { + throw new NotImplementedException(); + } + + public void TriggerClientEventUnreliableForAll(IntPtr eventNamePtr, MValueConst[] args) + { + throw new NotImplementedException(); + } + + public void TriggerClientEventUnreliableForAll(string eventName, MValueConst[] args) + { + throw new NotImplementedException(); + } + + public void TriggerClientEventUnreliableForAll(IntPtr eventNamePtr, IntPtr[] args) + { + throw new NotImplementedException(); + } + + public void TriggerClientEventUnreliableForAll(string eventName, IntPtr[] args) + { + throw new NotImplementedException(); + } + + public void TriggerClientEventUnreliableForAll(IntPtr eventNamePtr, params object[] args) + { + throw new NotImplementedException(); + } + + public void TriggerClientEventUnreliableForAll(string eventName, params object[] args) + { + throw new NotImplementedException(); + } + + public void TriggerClientEventUnreliableForSome(IPlayer[] clients, IntPtr eventNamePtr, MValueConst[] args) + { + throw new NotImplementedException(); + } + + public void TriggerClientEventUnreliableForSome(IPlayer[] clients, string eventName, MValueConst[] args) + { + throw new NotImplementedException(); + } + + public void TriggerClientEventUnreliableForSome(IPlayer[] clients, IntPtr eventNamePtr, IntPtr[] args) + { + throw new NotImplementedException(); + } + + public void TriggerClientEventUnreliableForSome(IPlayer[] clients, string eventName, IntPtr[] args) + { + throw new NotImplementedException(); + } + + public void TriggerClientEventUnreliableForSome(IPlayer[] clients, IntPtr eventNamePtr, params object[] args) + { + throw new NotImplementedException(); + } + + public void TriggerClientEventUnreliableForSome(IPlayer[] clients, string eventName, params object[] args) + { + throw new NotImplementedException(); + } + + public void TriggerClientRPCAnswer(IPlayer target, ushort answerId, object answer, string error) + { + throw new NotImplementedException(); + } + + public void TriggerClientRPCAnswer(IPlayer player, ushort answerId, MValueConst answer, IntPtr errorPtr) + { + throw new NotImplementedException(); + } + + public void TriggerClientRPCAnswer(IPlayer target, ushort answerId, MValueConst answer, string error) + { + throw new NotImplementedException(); + } + + public ushort TriggerClientRPC(IPlayer target, string name, params object[] args) + { + throw new NotImplementedException(); + } + + public ushort TriggerClientRPC(IPlayer target, string eventName, MValueConst[] args) + { + throw new NotImplementedException(); + } + + public ushort TriggerClientRPC(IPlayer target, IntPtr eventNamePtr, MValueConst[] args) + { + throw new NotImplementedException(); + } + + public IVehicle CreateVehicle(uint model, Position pos, Rotation rotation, uint streamingDistance) { var ptr = MockEntities.GetNextPtr(out var entityId); - var vehicle = VehiclePool.Create(this, ptr, entityId); + var vehicle = PoolManager.Vehicle.Create(this, ptr, entityId); vehicle.Position = pos; if (vehicle is MockVehicle mockVehicle) { @@ -262,23 +379,86 @@ public IVehicle CreateVehicle(uint model, Position pos, Rotation rotation) mockVehicle.Rotation = rotation; mockVehicle.Model = model; } - Alt.CoreImpl.OnCreateVehicle(ptr, entityId); + return vehicle; } - public IntPtr CreateVehicleEntity(out ushort id, uint model, Position pos, Rotation rotation) + public IPed CreatePed(uint model, Position pos, Rotation rotation, uint streamingDistance) + { + var ptr = MockEntities.GetNextPtr(out var entityId); + var ped = PoolManager.Ped.Create(this, ptr, entityId); + ped.Position = pos; + if (ped is MockPed mockPed) + { + mockPed.Position = pos; + mockPed.Rotation = rotation; + mockPed.Model = model; + } + + return ped; + } + + public INativeResource[] GetAllResources() + { + throw new NotImplementedException(); + } + + public IntPtr CreateVehicleEntity(out uint id, uint model, Position pos, Rotation rotation, uint streamingDistance) { var ptr = MockEntities.GetNextPtr(out var entityId); id = entityId; - Alt.CoreImpl.OnCreateVehicle(ptr, entityId); return ptr; } + public IntPtr CreatePedEntity(out uint id, uint model, Position pos, Rotation rotation) + { + var ptr = MockEntities.GetNextPtr(out var entityId); + id = entityId; + return ptr; + } + + public IntPtr CreateNetworkObjectEntity(out uint id, uint model, Position pos, Rotation rotation, + byte alpha = 255, + byte textureVariation = 0, ushort lodDistance = 100) + { + throw new NotImplementedException(); + } + + public IReadOnlyCollection GetAllPlayers() + { + throw new NotImplementedException(); + } + + public IReadOnlyCollection GetAllVehicles() + { + throw new NotImplementedException(); + } + + public IReadOnlyCollection GetAllBlips() + { + throw new NotImplementedException(); + } + + public IReadOnlyCollection GetAllCheckpoints() + { + throw new NotImplementedException(); + } + + public IReadOnlyCollection GetAllVirtualEntities() + { + throw new NotImplementedException(); + } + + public IReadOnlyCollection GetAllVirtualEntityGroups() + { + throw new NotImplementedException(); + } + public ICheckpoint CreateCheckpoint(IPlayer player, byte type, Position pos, float radius, float height, - Rgba color) + Rgba color, uint streamingDistance) { - var ptr = MockEntities.GetNextPtrNoId(); - var checkpoint = checkpointPool.Create(this, ptr); + var ptr = MockEntities.GetNextPtr(out var id); + var checkpoint = PoolManager.Checkpoint.Create(this, ptr, id); if (checkpoint is MockCheckpoint mockCheckpoint) { mockCheckpoint.Position = pos; @@ -287,47 +467,52 @@ public ICheckpoint CreateCheckpoint(IPlayer player, byte type, Position pos, flo mockCheckpoint.Height = height; mockCheckpoint.Color = color; } - Alt.CoreImpl.OnCreateCheckpoint(ptr); + return checkpoint; } public IBlip CreateBlip(IPlayer player, byte type, Position pos) { - var ptr = MockEntities.GetNextPtrNoId(); - var blip = blipPool.Create(this, ptr); + var ptr = MockEntities.GetNextPtr(out var id); + var blip = PoolManager.Blip.Create(this, ptr, id); if (blip is MockBlip mockBlip) { mockBlip.Position = pos; mockBlip.BlipType = type; } - Alt.CoreImpl.OnCreateBlip(ptr); + return blip; } public IBlip CreateBlip(IPlayer player, byte type, IEntity entityAttach) { - var ptr = MockEntities.GetNextPtrNoId(); - var blip = blipPool.Create(this, ptr); + var ptr = MockEntities.GetNextPtr(out var id); + var blip = PoolManager.Blip.Create(this, ptr, id); if (blip is MockBlip mockBlip) { mockBlip.BlipType = type; mockBlip.IsAttached = true; mockBlip.AttachedTo = entityAttach; } - Alt.CoreImpl.OnCreateBlip(ptr); + return blip; } + public IBlip CreateBlip(bool global, byte type, IEntity entityAttach, IPlayer[] targets) + { + throw new NotImplementedException(); + } + public IVoiceChannel CreateVoiceChannel(bool spatial, float maxDistance) { - var ptr = MockEntities.GetNextPtrNoId(); - var voiceChannel = voiceChannelPool.Create(this, ptr); + var ptr = MockEntities.GetNextPtr(out var id); + var voiceChannel = PoolManager.VoiceChannel.Create(this, ptr, id); if (voiceChannel is MockVoiceChannel mockVoiceChannel) { mockVoiceChannel.IsSpatial = spatial; mockVoiceChannel.MaxDistance = maxDistance; } - Alt.CoreImpl.OnCreateVoiceChannel(ptr); + return voiceChannel; } @@ -368,23 +553,18 @@ public void RemoveColShape(IColShape colShape) public void RemoveBlip(IBlip blip) { - Alt.CoreImpl.OnRemoveBlip(blip.NativePointer); } public void RemoveCheckpoint(ICheckpoint checkpoint) { - Alt.CoreImpl.OnRemoveCheckpoint(checkpoint.NativePointer); } public void RemoveVehicle(IVehicle vehicle) { - Alt.CoreImpl.OnVehicleRemove(vehicle.NativePointer); - Alt.CoreImpl.OnRemoveVehicle(vehicle.NativePointer); } public void RemoveVoiceChannel(IVoiceChannel channel) { - Alt.CoreImpl.OnRemoveVoiceChannel(channel.NativePointer); } public INativeResource GetResource(string name) @@ -397,16 +577,6 @@ public INativeResource GetResource(IntPtr resourcePointer) return new NativeResource(null, IntPtr.Zero); } - public IPlayer[] GetPlayers() - { - return Array.Empty(); - } - - public IVehicle[] GetVehicles() - { - return Array.Empty(); - } - public void CreateMValueVector3(out MValueConst mValue, Position value) { throw new NotImplementedException(); @@ -427,7 +597,7 @@ public void CreateMValueByteArray(out MValueConst mValue, byte[] value) throw new NotImplementedException(); } - public IEntity GetEntityById(ushort id) + public IBaseObject GetBaseObjectById(BaseObjectType type, uint id) { throw new NotImplementedException(); } @@ -451,6 +621,7 @@ public bool IsMValueConvertible(Type type) { throw new NotImplementedException(); } + public void CreateMValueNil(out MValueConst mValue) { throw new NotImplementedException(); @@ -596,7 +767,13 @@ public void TriggerClientEventForAll(IntPtr eventNamePtr, params object[] args) throw new NotImplementedException(); } - public ICheckpoint CreateCheckpoint(byte type, Position pos, float radius, float height, Rgba color) + public ICheckpoint CreateCheckpoint(byte type, Position pos, float radius, float height, Rgba color, + uint streamingDistance) + { + throw new NotImplementedException(); + } + + public IBlip CreateBlip(bool global, byte type, Position pos, IPlayer[] targets) { throw new NotImplementedException(); } @@ -645,31 +822,42 @@ public void GetSyncedMetaData(string key, out MValueConst value) { throw new NotImplementedException(); } + public void TriggerLocalEvent(string eventName, MValueConst[] args) { throw new NotImplementedException(); } + public void TriggerLocalEvent(IntPtr eventNamePtr, MValueConst[] args) { throw new NotImplementedException(); } + public void TriggerLocalEvent(string eventName, IntPtr[] args) { throw new NotImplementedException(); } + public void TriggerLocalEvent(IntPtr eventNamePtr, IntPtr[] args) { throw new NotImplementedException(); } + public void TriggerLocalEvent(IntPtr eventNamePtr, params object[] args) { throw new NotImplementedException(); } + public void TriggerLocalEvent(string eventName, params object[] args) { throw new NotImplementedException(); } + public VoiceConnectionState GetVoiceConnectionState() + { + throw new NotImplementedException(); + } + public void SetPassword(string password) { throw new NotImplementedException(); @@ -679,11 +867,17 @@ public VehicleModelInfo GetVehicleModelInfo(uint hash) { throw new NotImplementedException(); } + public PedModelInfo? GetPedModelInfo(uint hash) { throw new NotImplementedException(); } + public WeaponModelInfo? GetWeaponModelInfo(uint hash) + { + throw new NotImplementedException(); + } + public void StopServer() { throw new NotImplementedException(); @@ -705,6 +899,7 @@ public byte[] FileReadBinary(string path) { throw new NotImplementedException(); } + public IConfig GetServerConfig() { throw new NotImplementedException(); @@ -714,31 +909,140 @@ public void SetWorldProfiler(bool state) { throw new NotImplementedException(); } + public IEnumerable GetRegisteredClientEvents() { throw new NotImplementedException(); } + public IEnumerable GetRegisteredServerEvents() { throw new NotImplementedException(); } + public IBaseObject[] GetClosestEntities(Position position, int range, int dimension, int limit, + EntityType allowedTypes) + { + throw new NotImplementedException(); + } + + public IBaseObject[] GetEntitiesInDimension(int dimension, EntityType allowedTypes) + { + throw new NotImplementedException(); + } + + public IBaseObject[] GetEntitiesInRange(Position position, int range, int dimension, EntityType allowedTypes) + { + throw new NotImplementedException(); + } + + public IntPtr CreateVirtualEntityEntity(out uint id, IVirtualEntityGroup group, Position position, + uint streamingDistance, Dictionary data) + { + throw new NotImplementedException(); + } + + public IntPtr CreateVirtualEntityGroupEntity(out uint id, uint maxEntitiesInStream) + { + throw new NotImplementedException(); + } + + public IntPtr CreateMarkerEntity(out uint id, IPlayer player, MarkerType type, Position pos, Rgba color) + { + throw new NotImplementedException(); + } + + public IBaseObject GetBaseObject(BaseObjectType type, uint id) + { + throw new NotImplementedException(); + } + + public IMetric RegisterMetric(string name, MetricType type = MetricType.MetricTypeGauge, + Dictionary dataDict = default) + { + throw new NotImplementedException(); + } + + public void UnregisterMetric(IMetric metric) + { + throw new NotImplementedException(); + } + + public IMarker CreateMarker(IPlayer player, MarkerType type, Position pos, Rgba color) + { + throw new NotImplementedException(); + } + + public IObject CreateObject(uint hash, Position position, Rotation rotation, byte alpha, byte textureVariation, + ushort lodDistance, uint streamingDistance) + { + throw new NotImplementedException(); + } + + public IVirtualEntityGroup CreateVirtualEntityGroup(uint streamingDistance) + { + throw new NotImplementedException(); + } + + public IVirtualEntity CreateVirtualEntity(IVirtualEntityGroup group, Position position, uint streamingDistance, + Dictionary dataDict) + { + throw new NotImplementedException(); + } + + public void SetVoiceExternalPublic(string host, ushort port) + { + throw new NotImplementedException(); + } + + public void SetVoiceExternal(string host, ushort port) + { + throw new NotImplementedException(); + } + + public ushort MaxStreamingPeds { get; set; } + public ushort MaxStreamingObjects { get; set; } + public ushort MaxStreamingVehicles { get; set; } + public byte StreamerThreadCount { get; set; } + public uint StreamingTickRate { get; set; } + public uint StreamingDistance { get; set; } + public uint ColShapeTickRate { get; set; } + public uint MigrationDistance { get; set; } + public byte MigrationThreadCount { get; set; } + public uint MigrationTickRate { get; set; } + public byte SyncReceiveThreadCount { get; set; } + public byte SyncSendThreadCount { get; set; } + public uint[] LoadedVehicleModels { get; } + public void AddClientConfigKey(string key) + { + throw new NotImplementedException(); + } + + public bool HasBenefit(Benefit benefit) + { + throw new NotImplementedException(); + } + public string PtrToStringUtf8AndFree(nint str, int size) { throw new NotImplementedException(); } + public void RegisterMValueAdapter(IMValueAdapter adapter) { throw new NotImplementedException(); } + public bool ToMValue(object obj, Type type, out MValueConst mValue) { throw new NotImplementedException(); } + public bool FromMValue(in MValueConst mValue, Type type, out object obj) { throw new NotImplementedException(); } + public bool MValueFromObject(object obj, Type type, out object result) { throw new NotImplementedException(); diff --git a/api/AltV.Net.Mock/MockDecorator.cs b/api/AltV.Net.Mock/MockDecorator.cs index 3fc08a87c..6bc951f1f 100644 --- a/api/AltV.Net.Mock/MockDecorator.cs +++ b/api/AltV.Net.Mock/MockDecorator.cs @@ -19,7 +19,7 @@ protected override object Invoke(MethodInfo targetMethod, object[] args) var mockMethod = mock.GetType().GetMethods() .FirstOrDefault(info => info.Name == targetMethod.Name); var result = mockMethod != null ? mockMethod.Invoke(mock, args) : targetMethod.Invoke(decorated, args); - + LogAfter(targetMethod, args, result); return result; } @@ -33,9 +33,9 @@ protected override object Invoke(MethodInfo targetMethod, object[] args) public static T Create(T decorated, TM mock) { object proxy = Create>(); - ((MockDecorator) proxy).SetParameters(decorated, mock); + ((MockDecorator)proxy).SetParameters(decorated, mock); - return (T) proxy; + return (T)proxy; } private void SetParameters(T decorated, TM mock) @@ -50,7 +50,7 @@ private void SetParameters(T decorated, TM mock) } public TM GetMock() => mock; - + public T GetDecorated() => decorated; private void LogException(Exception exception, MethodInfo methodInfo = null) diff --git a/api/AltV.Net.Mock/MockEntities.cs b/api/AltV.Net.Mock/MockEntities.cs index 670120e58..7d5211134 100644 --- a/api/AltV.Net.Mock/MockEntities.cs +++ b/api/AltV.Net.Mock/MockEntities.cs @@ -7,41 +7,43 @@ public static class MockEntities { private static IntPtr _ptr = IntPtr.Zero; - private static ushort _id = 0; - + private static uint _id = 0; + private static readonly Stack FreePointers = new Stack(); - - private static readonly Stack FreeIds = new Stack(); - public static IntPtr GetNextPtr(out ushort id) + private static readonly Stack FreeIds = new Stack(); + + public static IntPtr GetNextPtr(out uint id) { if (FreeIds.Count > 0 && FreePointers.Count > 0) { id = FreeIds.Pop(); return FreePointers.Pop(); } + _ptr += 1; id = ++_id; return _ptr; } - public static void Free(IntPtr intPtr, ushort id) + public static void Free(IntPtr intPtr, uint id) { FreeIds.Push(id); FreePointers.Push(intPtr); } - + public static void FreeNoId(IntPtr intPtr) { FreePointers.Push(intPtr); } - + public static IntPtr GetNextPtrNoId() { if (FreePointers.Count > 0) { return FreePointers.Pop(); } + _ptr += 1; return _ptr; } diff --git a/api/AltV.Net.Mock/MockEntity.cs b/api/AltV.Net.Mock/MockEntity.cs index 7e3ff69f9..6e01dc9d4 100644 --- a/api/AltV.Net.Mock/MockEntity.cs +++ b/api/AltV.Net.Mock/MockEntity.cs @@ -11,7 +11,7 @@ public abstract class MockEntity : Entity { public IntPtr NativePointer { get; } public bool Exists { get; } - public ushort Id { get; } + public uint Id { get; } public BaseObjectType Type { get; } public override uint Model { get; set; } @@ -21,7 +21,8 @@ public abstract class MockEntity : Entity private readonly Dictionary syncedMetaData = new Dictionary(); - public MockEntity(ICore core, IntPtr nativePointer, BaseObjectType baseObjectType, ushort id):base(core, nativePointer, baseObjectType, id) + public MockEntity(ICore core, IntPtr nativePointer, BaseObjectType baseObjectType, uint id) : base(core, + nativePointer, baseObjectType, id) { NativePointer = nativePointer; Type = baseObjectType; diff --git a/api/AltV.Net.Mock/MockMarker.cs b/api/AltV.Net.Mock/MockMarker.cs new file mode 100644 index 000000000..a9318e22b --- /dev/null +++ b/api/AltV.Net.Mock/MockMarker.cs @@ -0,0 +1,12 @@ +using System; +using AltV.Net.Data; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Mock; + +public class MockMarker : Marker +{ + public MockMarker(ICore core, IntPtr nativePointer, uint id) : base(core, nativePointer, id) + { + } +} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockMarkerFactory.cs b/api/AltV.Net.Mock/MockMarkerFactory.cs new file mode 100644 index 000000000..ebbe49535 --- /dev/null +++ b/api/AltV.Net.Mock/MockMarkerFactory.cs @@ -0,0 +1,21 @@ +using System; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Mock +{ + public class MockMarkerFactory : IBaseObjectFactory where TEntity : IMarker + { + private readonly IBaseObjectFactory markerFactory; + + public MockMarkerFactory(IBaseObjectFactory markerFactory) + { + this.markerFactory = markerFactory; + } + + public IMarker Create(ICore core, IntPtr entityPointer, uint id) + { + return MockDecorator.Create((TEntity)markerFactory.Create(core, entityPointer, id), + new MockMarker(core, entityPointer, id)); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockMarkerPool.cs b/api/AltV.Net.Mock/MockMarkerPool.cs new file mode 100644 index 000000000..9edfc2d34 --- /dev/null +++ b/api/AltV.Net.Mock/MockMarkerPool.cs @@ -0,0 +1,17 @@ +using AltV.Net.Elements.Entities; +using AltV.Net.Elements.Pools; + +namespace AltV.Net.Mock +{ + public class MockMarkerPool : MarkerPool + { + public MockMarkerPool(IBaseObjectFactory factory) : base(factory) + { + } + + public override void OnRemove(IMarker entity) + { + MockEntities.FreeNoId(entity.NativePointer); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockObject.cs b/api/AltV.Net.Mock/MockObject.cs new file mode 100644 index 000000000..1060ddd90 --- /dev/null +++ b/api/AltV.Net.Mock/MockObject.cs @@ -0,0 +1,13 @@ +using System; +using AltV.Net.Data; +using AltV.Net.Elements.Entities; +using Object = AltV.Net.Elements.Entities.Object; + +namespace AltV.Net.Mock; + +public class MockObject : Object +{ + public MockObject(ICore core, IntPtr nativePointer, uint id) : base(core, nativePointer, id) + { + } +} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockObjectFactory.cs b/api/AltV.Net.Mock/MockObjectFactory.cs new file mode 100644 index 000000000..fca00baf4 --- /dev/null +++ b/api/AltV.Net.Mock/MockObjectFactory.cs @@ -0,0 +1,21 @@ +using System; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Mock +{ + public class MockObjectFactory : IEntityFactory where TEntity : IObject + { + private readonly IEntityFactory factory; + + public MockObjectFactory(IEntityFactory factory) + { + this.factory = factory; + } + + public IObject Create(ICore core, IntPtr entityPointer, uint id) + { + return MockDecorator.Create((TEntity)factory.Create(core, entityPointer, id), + new MockObject(core, entityPointer, id)); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockObjectPool.cs b/api/AltV.Net.Mock/MockObjectPool.cs new file mode 100644 index 000000000..8f47951e8 --- /dev/null +++ b/api/AltV.Net.Mock/MockObjectPool.cs @@ -0,0 +1,23 @@ +using System; +using AltV.Net.Elements.Entities; +using AltV.Net.Elements.Pools; + +namespace AltV.Net.Mock +{ + public class MockObjectPool : ObjectPool + { + public MockObjectPool(IEntityFactory factory) : base(factory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + return 0; + } + + public override void OnRemove(IObject entity) + { + MockEntities.Free(entity.NativePointer, entity.Id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockPed.cs b/api/AltV.Net.Mock/MockPed.cs new file mode 100644 index 000000000..16c97ced2 --- /dev/null +++ b/api/AltV.Net.Mock/MockPed.cs @@ -0,0 +1,12 @@ +using System; +using AltV.Net.Data; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Mock; + +public class MockPed : Ped +{ + public MockPed(ICore core, IntPtr nativePointer, uint id) : base(core, nativePointer, id) + { + } +} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockPedFactory.cs b/api/AltV.Net.Mock/MockPedFactory.cs new file mode 100644 index 000000000..921a96872 --- /dev/null +++ b/api/AltV.Net.Mock/MockPedFactory.cs @@ -0,0 +1,21 @@ +using System; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Mock +{ + public class MockPedFactory : IEntityFactory where TEntity : IPed + { + private readonly IEntityFactory pedFactory; + + public MockPedFactory(IEntityFactory pedFactory) + { + this.pedFactory = pedFactory; + } + + public IPed Create(ICore core, IntPtr entityPointer, uint id) + { + return MockDecorator.Create((TEntity)pedFactory.Create(core, entityPointer, id), + new MockPed(core, entityPointer, id)); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockPedPool.cs b/api/AltV.Net.Mock/MockPedPool.cs new file mode 100644 index 000000000..b04471c9b --- /dev/null +++ b/api/AltV.Net.Mock/MockPedPool.cs @@ -0,0 +1,23 @@ +using System; +using AltV.Net.Elements.Entities; +using AltV.Net.Elements.Pools; + +namespace AltV.Net.Mock +{ + public class MockPedPool : PedPool + { + public MockPedPool(IEntityFactory pedFactory) : base(pedFactory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + return 0; + } + + public override void OnRemove(IPed entity) + { + MockEntities.Free(entity.NativePointer, entity.Id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockPlayer.Events.cs b/api/AltV.Net.Mock/MockPlayer.Events.cs index 580eefd72..d37dc9410 100644 --- a/api/AltV.Net.Mock/MockPlayer.Events.cs +++ b/api/AltV.Net.Mock/MockPlayer.Events.cs @@ -9,16 +9,16 @@ public static void Disconnect(this IPlayer player, string reason) { player.CancelEvents(); Alt.CoreImpl.OnPlayerDisconnect(player.NativePointer, reason); - Alt.CoreImpl.OnPlayerRemove(player.NativePointer); - Alt.CoreImpl.OnRemovePlayer(player.NativePointer); } - public static void Damage(this IPlayer player, IEntity attacker, uint weapon, byte healthDamage, byte armourDamage) + public static void Damage(this IPlayer player, IEntity attacker, uint weapon, byte healthDamage, + byte armourDamage) { player.Health -= healthDamage; player.Armor -= armourDamage; - Alt.CoreImpl.OnPlayerDamage(player.NativePointer, attacker?.NativePointer ?? IntPtr.Zero, attacker?.Type ?? BaseObjectType.Undefined, attacker?.Id ?? 0, weapon, healthDamage, armourDamage); + Alt.CoreImpl.OnPlayerDamage(player.NativePointer, attacker?.NativePointer ?? IntPtr.Zero, + attacker?.Type ?? BaseObjectType.Undefined, weapon, healthDamage, armourDamage); } public static void Death(this IPlayer player, IEntity killer, uint weapon) @@ -27,17 +27,19 @@ public static void Death(this IPlayer player, IEntity killer, uint weapon) { throw new ArgumentException("Player can't die twice"); } - if (((MockDecorator) player).GetMock() is MockPlayer mockPlayer) + + if (((MockDecorator)player).GetMock() is MockPlayer mockPlayer) { //mockPlayer.IsDead = true; } - Alt.CoreImpl.OnPlayerDeath(player.NativePointer, killer?.NativePointer ?? IntPtr.Zero, killer?.Type ?? BaseObjectType.Undefined, weapon); + Alt.CoreImpl.OnPlayerDeath(player.NativePointer, killer?.NativePointer ?? IntPtr.Zero, + killer?.Type ?? BaseObjectType.Undefined, weapon); } public static void EnterVehicle(this IPlayer player, IVehicle vehicle, byte seat) { - if (((MockDecorator) player).GetMock() is MockPlayer mockPlayer) + if (((MockDecorator)player).GetMock() is MockPlayer mockPlayer) { //mockPlayer.IsInVehicle = true; //mockPlayer.Vehicle = vehicle; @@ -53,7 +55,8 @@ public static void LeaveVehicle(this IPlayer player, IVehicle vehicle, byte seat { throw new ArgumentException("Player can't leave vehicle outside of an vehicle"); } - if (((MockDecorator) player).GetMock() is MockPlayer mockPlayer) + + if (((MockDecorator)player).GetMock() is MockPlayer mockPlayer) { //mockPlayer.IsInVehicle = false; //mockPlayer.Vehicle = null; @@ -64,13 +67,14 @@ public static void LeaveVehicle(this IPlayer player, IVehicle vehicle, byte seat } public static void ChangeSeat(this IPlayer player, IVehicle vehicle, byte seat) - { + { if (!player.IsInVehicle) { throw new ArgumentException("Player can't change seat outside of an vehicle"); } + var oldSeat = player.Seat; - if (((MockDecorator) player).GetMock() is MockPlayer mockPlayer) + if (((MockDecorator)player).GetMock() is MockPlayer mockPlayer) { //mockPlayer.Seat = seat; } diff --git a/api/AltV.Net.Mock/MockPlayer.cs b/api/AltV.Net.Mock/MockPlayer.cs index 1aa9855c9..832c80bcd 100644 --- a/api/AltV.Net.Mock/MockPlayer.cs +++ b/api/AltV.Net.Mock/MockPlayer.cs @@ -5,7 +5,7 @@ namespace AltV.Net.Mock { public class MockPlayer : Player { - public MockPlayer(ICore core, IntPtr nativePointer, ushort id) : base(core, nativePointer, id) + public MockPlayer(ICore core, IntPtr nativePointer, uint id) : base(core, nativePointer, id) { } } diff --git a/api/AltV.Net.Mock/MockPlayerFactory.cs b/api/AltV.Net.Mock/MockPlayerFactory.cs index ef403b987..990a42b37 100644 --- a/api/AltV.Net.Mock/MockPlayerFactory.cs +++ b/api/AltV.Net.Mock/MockPlayerFactory.cs @@ -12,9 +12,9 @@ public MockPlayerFactory(IEntityFactory playerFactory) this.playerFactory = playerFactory; } - public IPlayer Create(ICore core, IntPtr entityPointer, ushort id) + public IPlayer Create(ICore core, IntPtr entityPointer, uint id) { - return MockDecorator.Create((TEntity) playerFactory.Create(core, entityPointer, id), + return MockDecorator.Create((TEntity)playerFactory.Create(core, entityPointer, id), new MockPlayer(core, entityPointer, id)); } } diff --git a/api/AltV.Net.Mock/MockPlayerPool.cs b/api/AltV.Net.Mock/MockPlayerPool.cs index 631674f81..6bac86af8 100644 --- a/api/AltV.Net.Mock/MockPlayerPool.cs +++ b/api/AltV.Net.Mock/MockPlayerPool.cs @@ -10,7 +10,7 @@ public MockPlayerPool(IEntityFactory playerFactory) : base(playerFactor { } - public override ushort GetId(IntPtr entityPointer) + public override uint GetId(IntPtr entityPointer) { return 0; } diff --git a/api/AltV.Net.Mock/MockPoolManager.cs b/api/AltV.Net.Mock/MockPoolManager.cs new file mode 100644 index 000000000..d102398dd --- /dev/null +++ b/api/AltV.Net.Mock/MockPoolManager.cs @@ -0,0 +1,22 @@ +using AltV.Net.Elements.Entities; +using AltV.Net.Elements.Pools; + +namespace AltV.Net.Mock +{ + public class MockPoolManager : PoolManager + { + public MockPoolManager(IEntityPool playerPool, IEntityPool vehiclePool, + IEntityPool pedPool, + IEntityPool objectPool, + IBaseObjectPool blipPool, + IBaseObjectPool checkpointPool, IBaseObjectPool voiceChannelPool, + IBaseObjectPool colShapePool, + IBaseObjectPool virtualEntityPool, + IBaseObjectPool virtualEntityGroupPool, + IBaseObjectPool markerPool, IBaseObjectPool connectionInfoPool) : base( + playerPool, vehiclePool, pedPool, objectPool, blipPool, checkpointPool, voiceChannelPool, colShapePool, + virtualEntityPool, virtualEntityGroupPool, markerPool, connectionInfoPool) + { + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockVehicle.cs b/api/AltV.Net.Mock/MockVehicle.cs index f1e1e3d81..72aca3205 100644 --- a/api/AltV.Net.Mock/MockVehicle.cs +++ b/api/AltV.Net.Mock/MockVehicle.cs @@ -3,9 +3,9 @@ namespace AltV.Net.Mock { - public class MockVehicle: Vehicle - { - public MockVehicle(ICore core, IntPtr nativePointer, ushort id): base(core, nativePointer, id) + public class MockVehicle : Vehicle + { + public MockVehicle(ICore core, IntPtr nativePointer, uint id) : base(core, nativePointer, id) { } } diff --git a/api/AltV.Net.Mock/MockVehicleFactory.cs b/api/AltV.Net.Mock/MockVehicleFactory.cs index be1a5548e..9d2d4b3e1 100644 --- a/api/AltV.Net.Mock/MockVehicleFactory.cs +++ b/api/AltV.Net.Mock/MockVehicleFactory.cs @@ -12,9 +12,9 @@ public MockVehicleFactory(IEntityFactory vehicleFactory) this.vehicleFactory = vehicleFactory; } - public IVehicle Create(ICore core, IntPtr entityPointer, ushort id) + public IVehicle Create(ICore core, IntPtr entityPointer, uint id) { - return MockDecorator.Create((TEntity) vehicleFactory.Create(core, entityPointer, id), + return MockDecorator.Create((TEntity)vehicleFactory.Create(core, entityPointer, id), new MockVehicle(core, entityPointer, id)); } } diff --git a/api/AltV.Net.Mock/MockVehiclePool.cs b/api/AltV.Net.Mock/MockVehiclePool.cs index 55c5037f1..12a05146b 100644 --- a/api/AltV.Net.Mock/MockVehiclePool.cs +++ b/api/AltV.Net.Mock/MockVehiclePool.cs @@ -10,7 +10,7 @@ public MockVehiclePool(IEntityFactory vehicleFactory) : base(vehicleFa { } - public override ushort GetId(IntPtr entityPointer) + public override uint GetId(IntPtr entityPointer) { return 0; } diff --git a/api/AltV.Net.Mock/MockVirtualEntity.cs b/api/AltV.Net.Mock/MockVirtualEntity.cs new file mode 100644 index 000000000..8fa978152 --- /dev/null +++ b/api/AltV.Net.Mock/MockVirtualEntity.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using AltV.Net.Elements.Args; +using AltV.Net.Elements.Entities; +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Mock +{ + public class MockVirtualEntity : MockWorldObject, IVirtualEntity + { + public MockVirtualEntity(ICore core, IntPtr nativePointer, uint id) : base(core, nativePointer, + BaseObjectType.VirtualEntity, id) + { + } + + public IntPtr VirtualEntityNativePointer { get; } + public ISharedVirtualEntityGroup Group { get; } + + public bool HasStreamSyncedMetaData(string key) + { + throw new NotImplementedException(); + } + + public bool GetStreamSyncedMetaData(string key, out int result) + { + throw new NotImplementedException(); + } + + public bool GetStreamSyncedMetaData(string key, out uint result) + { + throw new NotImplementedException(); + } + + public bool GetStreamSyncedMetaData(string key, out float result) + { + throw new NotImplementedException(); + } + + public bool GetStreamSyncedMetaData(string key, out T result) + { + throw new NotImplementedException(); + } + + public void GetStreamSyncedMetaData(string key, out MValueConst value) + { + throw new NotImplementedException(); + } + + public uint StreamingDistance { get; } + public bool Visible { get; set; } + + public void SetStreamSyncedMetaData(string key, object value) + { + throw new NotImplementedException(); + } + + public void SetStreamSyncedMetaData(Dictionary metaData) + { + throw new NotImplementedException(); + } + + public void SetStreamSyncedMetaData(string key, in MValueConst value) + { + throw new NotImplementedException(); + } + + public void DeleteStreamSyncedMetaData(string key) + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockVirtualEntityFactory.cs b/api/AltV.Net.Mock/MockVirtualEntityFactory.cs new file mode 100644 index 000000000..ceeb6d6eb --- /dev/null +++ b/api/AltV.Net.Mock/MockVirtualEntityFactory.cs @@ -0,0 +1,22 @@ +using System; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Mock +{ + public class MockVirtualEntityFactory : IBaseObjectFactory where TEntity : IVirtualEntity + { + private readonly IBaseObjectFactory virtualEntityFactory; + + public MockVirtualEntityFactory(IBaseObjectFactory virtualEntityFactory) + { + this.virtualEntityFactory = virtualEntityFactory; + } + + public IVirtualEntity Create(ICore core, IntPtr entityPointer, uint id) + { + return MockDecorator.Create( + (TEntity)virtualEntityFactory.Create(core, entityPointer, id), + new MockVirtualEntity(core, entityPointer, id)); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockVirtualEntityGroup.cs b/api/AltV.Net.Mock/MockVirtualEntityGroup.cs new file mode 100644 index 000000000..efd733a0c --- /dev/null +++ b/api/AltV.Net.Mock/MockVirtualEntityGroup.cs @@ -0,0 +1,17 @@ +using System; +using AltV.Net.Elements.Args; +using AltV.Net.Elements.Entities; +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Mock +{ + public class MockVirtualEntityGroup : MockWorldObject, IVirtualEntityGroup + { + public MockVirtualEntityGroup(ICore core, IntPtr nativePointer, uint id) : base(core, nativePointer, BaseObjectType.VirtualEntityGroup, id) + { + } + + public IntPtr VirtualEntityGroupNativePointer { get; } + public uint MaxEntitiesInStream { get; } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockVirtualEntityGroupFactory.cs b/api/AltV.Net.Mock/MockVirtualEntityGroupFactory.cs new file mode 100644 index 000000000..264ff7c73 --- /dev/null +++ b/api/AltV.Net.Mock/MockVirtualEntityGroupFactory.cs @@ -0,0 +1,21 @@ +using System; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Mock +{ + public class MockVirtualEntityGroupFactory : IBaseObjectFactory where TEntity : IVirtualEntityGroup + { + private readonly IBaseObjectFactory virtualEntityGroupFactory; + + public MockVirtualEntityGroupFactory(IBaseObjectFactory virtualEntityGroupFactory) + { + this.virtualEntityGroupFactory = virtualEntityGroupFactory; + } + + public IVirtualEntityGroup Create(ICore core, IntPtr entityPointer, uint id) + { + return MockDecorator.Create((TEntity) virtualEntityGroupFactory.Create(core, entityPointer, id), + new MockVirtualEntityGroup(core, entityPointer, id)); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockVirtualEntityGroupPool.cs b/api/AltV.Net.Mock/MockVirtualEntityGroupPool.cs new file mode 100644 index 000000000..2ecc8d3cf --- /dev/null +++ b/api/AltV.Net.Mock/MockVirtualEntityGroupPool.cs @@ -0,0 +1,17 @@ +using AltV.Net.Elements.Entities; +using AltV.Net.Elements.Pools; + +namespace AltV.Net.Mock +{ + public class MockVirtualEntityGroupPool : VirtualEntityGroupPool + { + public MockVirtualEntityGroupPool(IBaseObjectFactory factory) : base(factory) + { + } + + public override void OnRemove(IVirtualEntityGroup entity) + { + MockEntities.FreeNoId(entity.NativePointer); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockVirtualEntityPool.cs b/api/AltV.Net.Mock/MockVirtualEntityPool.cs new file mode 100644 index 000000000..b80517781 --- /dev/null +++ b/api/AltV.Net.Mock/MockVirtualEntityPool.cs @@ -0,0 +1,17 @@ +using AltV.Net.Elements.Entities; +using AltV.Net.Elements.Pools; + +namespace AltV.Net.Mock +{ + public class MockVirtualEntityPool : VirtualEntityPool + { + public MockVirtualEntityPool(IBaseObjectFactory factory) : base(factory) + { + } + + public override void OnRemove(IVirtualEntity entity) + { + MockEntities.FreeNoId(entity.NativePointer); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockVoiceChannel.cs b/api/AltV.Net.Mock/MockVoiceChannel.cs index b48c3cee9..5227f3077 100644 --- a/api/AltV.Net.Mock/MockVoiceChannel.cs +++ b/api/AltV.Net.Mock/MockVoiceChannel.cs @@ -1,11 +1,12 @@ using System; +using System.Collections.Generic; using AltV.Net.Elements.Entities; namespace AltV.Net.Mock { public class MockVoiceChannel : MockWorldObject, IVoiceChannel { - public MockVoiceChannel(ICore core, IntPtr nativePointer): base(core, nativePointer, BaseObjectType.VoiceChannel) + public MockVoiceChannel(ICore core, IntPtr nativePointer, uint id): base(core, nativePointer, BaseObjectType.VoiceChannel, id) { } @@ -47,5 +48,10 @@ public void Destroy() { Alt.Core.RemoveVoiceChannel(this); } + + public uint Filter { get; set; } + public int Priority { get; set; } + public IReadOnlyCollection Players { get; } + public ulong PlayerCount { get; } } } \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockVoiceChannelFactory.cs b/api/AltV.Net.Mock/MockVoiceChannelFactory.cs index 31364bb7a..75b7a78b5 100644 --- a/api/AltV.Net.Mock/MockVoiceChannelFactory.cs +++ b/api/AltV.Net.Mock/MockVoiceChannelFactory.cs @@ -12,10 +12,10 @@ public MockVoiceChannelFactory(IBaseObjectFactory voiceChannelFac this.voiceChannelFactory = voiceChannelFactory; } - public IVoiceChannel Create(ICore core, IntPtr entityPointer) + public IVoiceChannel Create(ICore core, IntPtr entityPointer, uint id) { - return MockDecorator.Create((TEntity) voiceChannelFactory.Create(core, entityPointer), - new MockVoiceChannel(core, entityPointer)); + return MockDecorator.Create((TEntity) voiceChannelFactory.Create(core, entityPointer, id), + new MockVoiceChannel(core, entityPointer, id)); } } } \ No newline at end of file diff --git a/api/AltV.Net.Mock/MockWorldObject.cs b/api/AltV.Net.Mock/MockWorldObject.cs index 6bdb6fd40..f0c6c10fc 100644 --- a/api/AltV.Net.Mock/MockWorldObject.cs +++ b/api/AltV.Net.Mock/MockWorldObject.cs @@ -7,7 +7,7 @@ namespace AltV.Net.Mock { public class MockWorldObject : WorldObject { - public MockWorldObject(ICore core, IntPtr nativePointer, BaseObjectType type) : base(core, nativePointer, type) + public MockWorldObject(ICore core, IntPtr nativePointer, BaseObjectType type, uint id) : base(core, nativePointer, type, id) { } } diff --git a/api/AltV.Net.Sdk.Client/Sdk/Sdk.props b/api/AltV.Net.Sdk.Client/Sdk/Sdk.props index a4fceed80..1ca8c3086 100644 --- a/api/AltV.Net.Sdk.Client/Sdk/Sdk.props +++ b/api/AltV.Net.Sdk.Client/Sdk/Sdk.props @@ -4,6 +4,10 @@ true enable true + true + + + false bin\ @@ -14,5 +18,9 @@ false + + + + \ No newline at end of file diff --git a/api/AltV.Net.Sdk.Generator/AltV.Net.Sdk.Generator.csproj b/api/AltV.Net.Sdk.Generator/AltV.Net.Sdk.Generator.csproj new file mode 100644 index 000000000..b9de0634b --- /dev/null +++ b/api/AltV.Net.Sdk.Generator/AltV.Net.Sdk.Generator.csproj @@ -0,0 +1,10 @@ + + + + Exe + net6.0 + enable + enable + + + diff --git a/api/AltV.Net.Sdk.Generator/IGenerator.cs b/api/AltV.Net.Sdk.Generator/IGenerator.cs new file mode 100644 index 000000000..2fe2bb7ae --- /dev/null +++ b/api/AltV.Net.Sdk.Generator/IGenerator.cs @@ -0,0 +1,7 @@ +namespace AltV.Net.Sdk.Generator +{ + public interface IGenerator + { + string Generate(string[] args); + } +} \ No newline at end of file diff --git a/api/AltV.Net.Sdk.Generator/ImplicitUsingsGenerator.cs b/api/AltV.Net.Sdk.Generator/ImplicitUsingsGenerator.cs new file mode 100644 index 000000000..b2af87441 --- /dev/null +++ b/api/AltV.Net.Sdk.Generator/ImplicitUsingsGenerator.cs @@ -0,0 +1,34 @@ +using System.Text.RegularExpressions; + +namespace AltV.Net.Sdk.Generator +{ + public class ImplicitUsingsGenerator : IGenerator + { + private static readonly Regex NamespaceRegex = new Regex(@"namespace (?[^\s;\{]+)"); + private static readonly List IgnoredNamespaces = new() { "AltV.Net.Async.RPC" }; + + public string Generate(string[] args) + { + var usings = new HashSet(); + + foreach (var project in args) + { + // ([ \t]*)\ + foreach (var file in Directory.GetFiles("./" + project, "*.cs", SearchOption.AllDirectories)) + { + var content = File.ReadAllText(file); + var ns = NamespaceRegex.Matches(content); + foreach (Match match in ns) + { + var @namespace = match.Groups["ns"].ToString(); + if (IgnoredNamespaces.Contains(@namespace)) continue; + + usings.Add(@namespace); + } + } + } + + return string.Join("\n", usings.Select(e => @$"")); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Sdk.Generator/Program.cs b/api/AltV.Net.Sdk.Generator/Program.cs new file mode 100644 index 000000000..32f819c57 --- /dev/null +++ b/api/AltV.Net.Sdk.Generator/Program.cs @@ -0,0 +1,34 @@ +using System.Reflection; +using System.Text.RegularExpressions; +using AltV.Net.Sdk.Generator; + +Directory.SetCurrentDirectory(Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly()!.Location)!, "../../../../")); + +var generatorRegex = new Regex(@"(?[ \t]*)\"); +var files = new[] {"AltV.Net.Sdk.Client/Sdk/Sdk.props", "AltV.Net.Sdk.Server/Sdk/Sdk.props", "AltV.Net.Sdk.Shared/Sdk/Sdk.props"}; + +foreach (var file in files) +{ + Console.WriteLine("Generating code for " + file); + + var content = File.ReadAllText(file); + + var newContent = generatorRegex.Replace(content, (match) => + { + var indent = match.Groups["indent"]; + var args = match.Groups["args"].ToString().Split(" "); + + var command = args.First(); + var generator = command switch + { + "ImplicitUsings" => new ImplicitUsingsGenerator(), + _ => throw new Exception($"Generator {command} not found") + }; + + var newContent = generator.Generate(args.Skip(1).ToArray()); + return indent + newContent.ReplaceLineEndings("\n" + indent); + }); + + File.WriteAllText(file, newContent); + +} \ No newline at end of file diff --git a/api/AltV.Net.Sdk.Server/Sdk/Sdk.props b/api/AltV.Net.Sdk.Server/Sdk/Sdk.props index 6116bdf90..4ee32a61a 100644 --- a/api/AltV.Net.Sdk.Server/Sdk/Sdk.props +++ b/api/AltV.Net.Sdk.Server/Sdk/Sdk.props @@ -4,9 +4,17 @@ true enable true + true + + + false bin\ + + + + \ No newline at end of file diff --git a/api/AltV.Net.Sdk.Shared/Sdk/Sdk.props b/api/AltV.Net.Sdk.Shared/Sdk/Sdk.props index 6116bdf90..c6d7d320a 100644 --- a/api/AltV.Net.Sdk.Shared/Sdk/Sdk.props +++ b/api/AltV.Net.Sdk.Shared/Sdk/Sdk.props @@ -4,9 +4,17 @@ true enable true + true + + + false bin\ - + + + + + \ No newline at end of file diff --git a/api/AltV.Net.Shared/Elements/Args/MValueBuffer2.cs b/api/AltV.Net.Shared/Elements/Args/MValueBuffer2.cs index 110fbc024..57e83a246 100644 --- a/api/AltV.Net.Shared/Elements/Args/MValueBuffer2.cs +++ b/api/AltV.Net.Shared/Elements/Args/MValueBuffer2.cs @@ -387,7 +387,7 @@ public bool GetNext(out TEntity value) where TEntity : ISharedBaseObjec var entityType = BaseObjectType.Undefined; var ptr = mValue.GetEntityPointer(ref entityType); - var entity = core.BaseBaseObjectPool.Get(ptr, entityType); + var entity = core.PoolManager.Get(ptr, entityType); if (entity != null) { if (entity is TEntity typedEntity) diff --git a/api/AltV.Net.Shared/Elements/Args/MValueConst.cs b/api/AltV.Net.Shared/Elements/Args/MValueConst.cs index c5ddb1edd..8720c8867 100644 --- a/api/AltV.Net.Shared/Elements/Args/MValueConst.cs +++ b/api/AltV.Net.Shared/Elements/Args/MValueConst.cs @@ -138,7 +138,7 @@ public ISharedBaseObject GetBaseObject() { var baseObjectType = BaseObjectType.Undefined; var baseObjectPtr = GetEntityPointer(ref baseObjectType); - return core.BaseBaseObjectPool.Get(baseObjectPtr, baseObjectType); + return core.PoolManager.Get(baseObjectPtr, baseObjectType); } public MValueConst[] GetList() @@ -315,7 +315,7 @@ public object ToObject() var entityPointer = GetEntityPointer(ref entityType); if (entityPointer == IntPtr.Zero) return null; // TODO get or create - return core.BaseBaseObjectPool.Get(entityPointer, entityType); + return core.PoolManager.Get(entityPointer, entityType); case Type.Function: return null; @@ -372,7 +372,7 @@ public override string ToString() var entityType = BaseObjectType.Undefined; var ptr = GetEntityPointer(ref entityType); if (ptr == IntPtr.Zero) return $"MValue"; - var entity = core.BaseBaseObjectPool.Get(ptr, entityType); + var entity = core.PoolManager.Get(ptr, entityType); if (entity != null) { return $"MValue<{entity.Type.ToString()}>"; diff --git a/api/AltV.Net.Shared/Elements/Entities/CheckpointType.cs b/api/AltV.Net.Shared/Elements/Entities/CheckpointType.cs index e154d7d09..9e06b9ac1 100644 --- a/api/AltV.Net.Shared/Elements/Entities/CheckpointType.cs +++ b/api/AltV.Net.Shared/Elements/Entities/CheckpointType.cs @@ -48,8 +48,8 @@ public enum CheckpointType : byte //CylinderCustomShape, //CylinderCustomShape2, //CylinderCustomShape3, - Cyclinder = 45, - Cyclinder2, - Cyclinder3 + Cylinder = 45, + Cylinder2, + Cylinder3 } } \ No newline at end of file diff --git a/api/AltV.Net.Shared/Elements/Entities/IScriptRPCEvent.cs b/api/AltV.Net.Shared/Elements/Entities/IScriptRPCEvent.cs new file mode 100644 index 000000000..0c8b71d1f --- /dev/null +++ b/api/AltV.Net.Shared/Elements/Entities/IScriptRPCEvent.cs @@ -0,0 +1,10 @@ +namespace AltV.Net.Shared.Elements.Entities; + +public interface IScriptRPCEvent +{ + IntPtr ScriptRPCNativePointer { get; } + ISharedCore Core { get; } + bool WillAnswer(); + bool Answer(object answer); + bool AnswerWithError(string error); +} \ No newline at end of file diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedBaseObject.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedBaseObject.cs index 29b62ce78..bb826fbe0 100644 --- a/api/AltV.Net.Shared/Elements/Entities/ISharedBaseObject.cs +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedBaseObject.cs @@ -1,4 +1,4 @@ -using System.Runtime.CompilerServices; +using System.Runtime.CompilerServices; using AltV.Net.Elements.Args; using AltV.Net.Elements.Entities; using AltV.Net.Types; @@ -22,6 +22,8 @@ public interface ISharedBaseObject : INative /// This entity was deleted before void SetMetaData(string key, object value); + void SetMetaData(Dictionary metaData); + /// /// Returns meta data for a given key. /// @@ -128,5 +130,56 @@ public interface ISharedBaseObject : INative /// Destroy the baseobject /// void Destroy(); + + /// + /// Checks if a synced meta data key is set on an entity. + /// + /// Synced meta data is accessible across different serverside resources and across all clients. + /// + /// + bool HasSyncedMetaData(string key); + + /// + /// Gets the synced meta data of an entity. + /// + /// Synced meta data is accessible across different serverside resources and across all clients. + /// + /// + bool GetSyncedMetaData(string key, out int result); + + /// + /// Gets the synced meta data of an entity. + /// + /// Synced meta data is accessible across different serverside resources and across all clients. + /// + /// + bool GetSyncedMetaData(string key, out uint result); + + /// + /// Gets the synced meta data of an entity. + /// + /// Synced meta data is accessible across different serverside resources and across all clients. + /// + /// + bool GetSyncedMetaData(string key, out float result); + + /// + /// Gets the synced meta data of an entity. + /// + /// Synced meta data is accessible across different serverside resources and across all clients. + /// + /// + void GetSyncedMetaData(string key, out MValueConst value); + + /// + /// Get synced meta data of the entity. + /// + /// Synced meta data is accessible across different serverside resources and across all clients. + /// + /// + /// + /// + /// This entity was removed + bool GetSyncedMetaData(string key, out T result); } } \ No newline at end of file diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedBlip.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedBlip.cs index 133a8ec79..3a2c464d6 100644 --- a/api/AltV.Net.Shared/Elements/Entities/ISharedBlip.cs +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedBlip.cs @@ -1,4 +1,4 @@ -using System.Numerics; +using System.Numerics; using AltV.Net.Data; namespace AltV.Net.Shared.Elements.Entities @@ -20,12 +20,12 @@ public interface ISharedBlip : ISharedWorldObject /// /// Gets or sets the blip sprite. /// - ushort Sprite { set; get; } + uint Sprite { set; get; } /// /// Gets or sets the blip color. /// - byte Color { set; get; } + uint Color { set; get; } /// /// Gets or sets if a route to the blip should be shown. @@ -45,7 +45,7 @@ public interface ISharedBlip : ISharedWorldObject /// /// Gets or sets the display mode of the blip /// - short Display { get; set; } + uint Display { get; set; } /// /// Gets or sets the secondary color of the blip @@ -55,7 +55,7 @@ public interface ISharedBlip : ISharedWorldObject /// /// Gets or sets the alpha of the blip /// - byte Alpha { get; set; } + uint Alpha { get; set; } /// /// Gets or sets the flash timer of the blip @@ -105,7 +105,7 @@ public interface ISharedBlip : ISharedWorldObject /// /// Gets or sets the blips priority /// - ushort Priority { get; set; } + uint Priority { get; set; } /// /// Gets or sets the blips rotation @@ -155,7 +155,7 @@ public interface ISharedBlip : ISharedWorldObject /// /// Gets or sets the blips category /// - ushort Category { get; set; } + uint Category { get; set; } /// /// Gets or sets if the blip is high detail @@ -179,5 +179,14 @@ public interface ISharedBlip : ISharedWorldObject /// Destroy the blip. /// void Destroy(); + bool Visible { get; set; } + + bool IsHiddenOnLegend { get; set; } + + bool IsMinimalOnEdge { get; set; } + + bool IsUseHeightIndicatorOnEdge { get; set; } + + bool IsShortHeightThreshold { get; set; } } } \ No newline at end of file diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedCheckpoint.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedCheckpoint.cs index 3bd233c54..1d5a0993a 100644 --- a/api/AltV.Net.Shared/Elements/Entities/ISharedCheckpoint.cs +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedCheckpoint.cs @@ -5,30 +5,34 @@ namespace AltV.Net.Shared.Elements.Entities public interface ISharedCheckpoint : ISharedColShape { IntPtr CheckpointNativePointer { get; } - + /// /// Gets or sets the checkpoint type /// byte CheckpointType { get; set; } - + /// /// Gets or sets the height /// float Height { get; set; } - + /// /// Gets or sets the radius /// float Radius { get; set; } - + /// /// Gets or sets the color in Rgba format /// Rgba Color { get; set; } - + /// /// Sets or gets the next checkpoint position /// Position NextPosition { get; set; } + + uint StreamingDistance { get; } + + bool Visible { get; set; } } } \ No newline at end of file diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedColShape.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedColShape.cs index 990c96901..ddac074f8 100644 --- a/api/AltV.Net.Shared/Elements/Entities/ISharedColShape.cs +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedColShape.cs @@ -6,7 +6,7 @@ namespace AltV.Net.Shared.Elements.Entities public interface ISharedColShape : ISharedWorldObject { IntPtr ColShapeNativePointer { get; } - + /// /// Returns if the entity is inside the ColShape /// @@ -14,8 +14,8 @@ public interface ISharedColShape : ISharedWorldObject /// This entity was removed bool IsEntityIn(ISharedEntity entity); - bool IsEntityIdIn(ushort id); - + bool IsEntityIdIn(uint id); + /// /// Returns if the point is inside the ColShape /// diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedEntity.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedEntity.cs index caa155afd..0d949b023 100644 --- a/api/AltV.Net.Shared/Elements/Entities/ISharedEntity.cs +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedEntity.cs @@ -9,13 +9,13 @@ namespace AltV.Net.Shared.Elements.Entities public interface ISharedEntity : ISharedWorldObject { IntPtr EntityNativePointer { get; } - + /// /// Get the entity id. /// /// This entity was removed - ushort Id { get; } - + uint Id { get; } + bool Exists { get; } /// @@ -96,54 +96,9 @@ public interface ISharedEntity : ISharedWorldObject bool GetStreamSyncedMetaData(string key, out T result); /// - /// Checks if a synced meta data key is set on an entity. - /// - /// Synced meta data is accessible across different serverside resources and across all clients. - /// - /// - bool HasSyncedMetaData(string key); - - /// - /// Gets the synced meta data of an entity. - /// - /// Synced meta data is accessible across different serverside resources and across all clients. - /// - /// - bool GetSyncedMetaData(string key, out int result); - - /// - /// Gets the synced meta data of an entity. - /// - /// Synced meta data is accessible across different serverside resources and across all clients. - /// - /// - bool GetSyncedMetaData(string key, out uint result); - - /// - /// Gets the synced meta data of an entity. - /// - /// Synced meta data is accessible across different serverside resources and across all clients. - /// - /// - bool GetSyncedMetaData(string key, out float result); - - /// - /// Gets the synced meta data of an entity. - /// - /// Synced meta data is accessible across different serverside resources and across all clients. - /// - /// - void GetSyncedMetaData(string key, out MValueConst value); - - /// - /// Get synced meta data of the entity. + /// Get or set frozen of the entity. /// - /// Synced meta data is accessible across different serverside resources and across all clients. - /// - /// - /// - /// /// This entity was removed - bool GetSyncedMetaData(string key, out T result); + bool Frozen { get; set; } } } \ No newline at end of file diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedMarker.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedMarker.cs new file mode 100644 index 000000000..d7ad4e202 --- /dev/null +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedMarker.cs @@ -0,0 +1,23 @@ +using AltV.Net.Data; +using AltV.Net.Shared.Enums; + +namespace AltV.Net.Shared.Elements.Entities; + +public interface ISharedMarker : ISharedWorldObject +{ + IntPtr MarkerNativePointer { get; } + uint Id { get; } + bool IsGlobal { get; } + ISharedPlayer Target { get; } + Rgba Color { get; set; } + bool Visible { get; set; } + MarkerType MarkerType { get; set; } + Position Scale { get; set; } + Rotation Rotation { get; set; } + Position Direction { get; set; } + + uint StreamingDistance { get; } + bool IsFaceCamera { get; set; } + bool IsRotating { get; set; } + bool IsBobUpDown { get; set; } +} \ No newline at end of file diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedObject.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedObject.cs index b7ef6180c..8e36dd44a 100644 --- a/api/AltV.Net.Shared/Elements/Entities/ISharedObject.cs +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedObject.cs @@ -1,26 +1,9 @@ -using AltV.Net.Data; - -namespace AltV.Net.Shared.Elements.Entities; +namespace AltV.Net.Shared.Elements.Entities; public interface ISharedObject : ISharedEntity { IntPtr ObjectNativePointer { get; } - byte Alpha { get; set; } - void ResetAlpha(); - bool IsDynamic { get; } - ushort LodDistance { get; set; } - bool Gravity { get; set; } - void AttachToEntity(ISharedEntity entity, short bone, Position position, Rotation rotation, bool useSoftPinning, bool collision, bool fixedRotation); - void AttachToEntity(uint scriptId, short bone, Position position, Rotation rotation, bool useSoftPinning, bool collision, bool fixedRotation); - void Detach(bool dynamic); - bool Collision { get; } - void ToggleCollision(bool toggle, bool keepPhysics); - void PlaceOnGroundProperly(); - void ActivatePhysics(); - byte TextureVariation { get; set; } - - /// - /// true = Created by GTA, false = Created by API - /// - bool IsWorldObject { get; } + byte Alpha { get; } + byte TextureVariation { get; } + ushort LodDistance { get; } } \ No newline at end of file diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedPed.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedPed.cs new file mode 100644 index 000000000..c3c6e0747 --- /dev/null +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedPed.cs @@ -0,0 +1,12 @@ +namespace AltV.Net.Shared.Elements.Entities; + +public interface ISharedPed : ISharedEntity +{ + IntPtr PedNativePointer { get; } + + ushort Armour { get; } + ushort Health { get; } + ushort MaxHealth { get; } + uint CurrentWeapon { get; } + +} \ No newline at end of file diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedPlayer.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedPlayer.cs index 25d93e940..7dc0fb113 100644 --- a/api/AltV.Net.Shared/Elements/Entities/ISharedPlayer.cs +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedPlayer.cs @@ -6,7 +6,7 @@ namespace AltV.Net.Shared.Elements.Entities public interface ISharedPlayer : ISharedEntity { IntPtr PlayerNativePointer { get; } - + /// /// Returns the current vehicle. Null if not in a vehicle /// @@ -63,7 +63,7 @@ public interface ISharedPlayer : ISharedEntity /// Returns if the player is currently in RagDoll state. /// bool IsInRagdoll { get; } - + /// /// Returns if the player is in a vehicle /// @@ -74,6 +74,31 @@ public interface ISharedPlayer : ISharedEntity /// bool IsReloading { get; } + /// + /// Returns if the player is entering vehicle + /// + bool IsEnteringVehicle { get; } + + /// + /// Returns if the player is leaving vehicle + /// + bool IsLeavingVehicle { get; } + + /// + /// Returns if the player is on ladder + /// + bool IsOnLadder { get; } + + /// + /// Returns if the player is in melee + /// + bool IsInMelee { get; } + + /// + /// Returns if the player is in cover + /// + bool IsInCover { get; } + /// /// Returns the max armor for the player /// @@ -88,9 +113,9 @@ public interface ISharedPlayer : ISharedEntity /// Gets the current movement speed of the player in m/s /// float MoveSpeed { get; } - + float ForwardSpeed { get; } - + float StrafeSpeed { get; } /// @@ -123,5 +148,7 @@ public interface ISharedPlayer : ISharedEntity /// /// Array of component hashes void GetCurrentWeaponComponents(out uint[] weaponComponents); + + bool IsParachuting { get; } } } \ No newline at end of file diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedVehicle.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedVehicle.cs index ec1309fac..dbbda45f1 100644 --- a/api/AltV.Net.Shared/Elements/Entities/ISharedVehicle.cs +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedVehicle.cs @@ -8,10 +8,12 @@ public interface ISharedVehicle : ISharedEntity /// Amount of Wheels /// byte WheelsCount { get; } - + /// /// Fuel Tank Health /// int PetrolTankHealth { get; } + + float SteeringAngle { get; } } } \ No newline at end of file diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedVirtualEntity.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedVirtualEntity.cs new file mode 100644 index 000000000..a810f3533 --- /dev/null +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedVirtualEntity.cs @@ -0,0 +1,73 @@ +using System.Numerics; +using AltV.Net.Data; +using AltV.Net.Elements.Args; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Shared.Elements.Entities +{ + public interface ISharedVirtualEntity : ISharedWorldObject + { + IntPtr VirtualEntityNativePointer { get; } + uint Id { get; } + + ISharedVirtualEntityGroup Group { get; } + + bool HasStreamSyncedMetaData(string key); + + + /// + /// Get synced meta data of the entity. + /// + /// Stream synced meta data is accessible across different serverside resources and across all clients within the streaming range of the clients. + /// + /// + /// + /// This entity was removed + bool GetStreamSyncedMetaData(string key, out int result); + + /// + /// Get synced meta data of the entity. + /// + /// Stream synced meta data is accessible across different serverside resources and across all clients within the streaming range of the clients. + /// + /// + /// + /// This entity was removed + bool GetStreamSyncedMetaData(string key, out uint result); + + /// + /// Get synced meta data of the entity. + /// + /// Stream synced meta data is accessible across different serverside resources and across all clients within the streaming range of the clients. + /// + /// + /// + /// This entity was removed + bool GetStreamSyncedMetaData(string key, out float result); + + /// + /// Get synced meta data of the entity. + /// + /// Stream synced meta data is accessible across different serverside resources and across all clients within the streaming range of the clients. + /// + /// + /// + /// This entity was removed + void GetStreamSyncedMetaData(string key, out MValueConst value); + + /// + /// Get synced meta data of the entity. + /// + /// Stream synced meta data is accessible across different serverside resources and across all clients within the streaming range of the clients. + /// + /// + /// + /// + /// This entity was removed + bool GetStreamSyncedMetaData(string key, out T result); + + uint StreamingDistance { get; } + + bool Visible { get; set; } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedVirtualEntityGroup.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedVirtualEntityGroup.cs new file mode 100644 index 000000000..cd9bb414a --- /dev/null +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedVirtualEntityGroup.cs @@ -0,0 +1,14 @@ +using System.Numerics; +using AltV.Net.Data; + +namespace AltV.Net.Shared.Elements.Entities +{ + public interface ISharedVirtualEntityGroup : ISharedBaseObject + { + IntPtr VirtualEntityGroupNativePointer { get; } + + uint Id { get; } + + uint MaxEntitiesInStream { get; } + } +} \ No newline at end of file diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedWorldObject.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedWorldObject.cs index 1a6b00227..c2958af08 100644 --- a/api/AltV.Net.Shared/Elements/Entities/ISharedWorldObject.cs +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedWorldObject.cs @@ -7,11 +7,17 @@ namespace AltV.Net.Shared.Elements.Entities public interface ISharedWorldObject : ISharedBaseObject { IntPtr WorldObjectNativePointer { get; } - + /// /// Get or set position of the entity. /// /// This entity was deleted before - Position Position { get; } + Position Position { get; set; } + + /// + /// Get or set dimension of the entity. + /// + /// This entity was deleted before + int Dimension { get; set; } } } \ No newline at end of file diff --git a/api/AltV.Net.Shared/Elements/Entities/ScriptRpcEvent.cs b/api/AltV.Net.Shared/Elements/Entities/ScriptRpcEvent.cs new file mode 100644 index 000000000..a66792dff --- /dev/null +++ b/api/AltV.Net.Shared/Elements/Entities/ScriptRpcEvent.cs @@ -0,0 +1,52 @@ +using System.Runtime.InteropServices; +using AltV.Net.Native; +using AltV.Net.Shared.Utils; + +namespace AltV.Net.Shared.Elements.Entities; + +public class ScriptRpcEvent : IScriptRPCEvent +{ + public ScriptRpcEvent(ISharedCore core, IntPtr clientScriptRPCNativePointer) + { + ScriptRPCNativePointer = clientScriptRPCNativePointer; + Core = core; + } + + public IntPtr ScriptRPCNativePointer { get; } + public ISharedCore Core { get; } + + public bool WillAnswer() + { + unsafe + { + return Core.Library.Shared.Event_ScriptRPCEvent_WillAnswer(ScriptRPCNativePointer) == 1; + } + } + + public bool Answer(object answer) + { + Core.CreateMValue(out var mValue, answer); + bool result; + unsafe + { + result = Core.Library.Shared.Event_ScriptRPCEvent_Answer(ScriptRPCNativePointer, mValue.nativePointer) == 1; + } + mValue.Dispose(); + + return result; + } + + public bool AnswerWithError(string error) + { + var errorPtr = MemoryUtils.StringToHGlobalUtf8(error); + + bool result; + unsafe + { + result = Core.Library.Shared.Event_ScriptRPCEvent_AnswerWithError (ScriptRPCNativePointer, errorPtr) == 1; + } + Marshal.FreeHGlobal(errorPtr); + + return result; + } +} \ No newline at end of file diff --git a/api/AltV.Net.Shared/Elements/Entities/SharedBaseObject.cs b/api/AltV.Net.Shared/Elements/Entities/SharedBaseObject.cs index 6aaf6c7b7..33de12b95 100644 --- a/api/AltV.Net.Shared/Elements/Entities/SharedBaseObject.cs +++ b/api/AltV.Net.Shared/Elements/Entities/SharedBaseObject.cs @@ -123,6 +123,34 @@ public void SetMetaData(string key, object value) mValue.Dispose(); } + public void SetMetaData(Dictionary metaData) + { + unsafe + { + var dataTemp = new Dictionary(); + + var keys = new IntPtr[metaData.Count]; + var values = new IntPtr[metaData.Count]; + + for (var i = 0; i < metaData.Count; i++) + { + var stringPtr = MemoryUtils.StringToHGlobalUtf8(metaData.ElementAt(i).Key); + Core.CreateMValue(out var mValue, metaData.ElementAt(i).Value); + keys[i] = stringPtr; + values[i] = mValue.nativePointer; + dataTemp.Add(stringPtr, mValue); + } + + Core.Library.Shared.BaseObject_SetMultipleMetaData(NativePointer, keys, values, (uint)dataTemp.Count); + + foreach (var dataValue in dataTemp) + { + dataValue.Value.Dispose(); + Marshal.FreeHGlobal(dataValue.Key); + } + } + } + public bool GetMetaData(string key, out int result) { CheckIfEntityExistsOrCached(); @@ -243,5 +271,98 @@ public virtual void SetCached(IntPtr cachedBaseObject) this.BaseObjectNativePointer = cachedBaseObject; this.Cached = true; } + + public void GetSyncedMetaData(string key, out MValueConst value) + { + CheckIfEntityExists(); + unsafe + { + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); + value = new MValueConst(Core, Core.Library.Shared.BaseObject_GetSyncedMetaData(BaseObjectNativePointer, stringPtr)); + Marshal.FreeHGlobal(stringPtr); + } + } + + public bool GetSyncedMetaData(string key, out T result) + { + CheckIfEntityExists(); + GetSyncedMetaData(key, out MValueConst mValue); + var obj = mValue.ToObject(); + mValue.Dispose(); + if (!(obj is T cast)) + { + result = default; + return false; + } + + result = cast; + return true; + } + + public bool HasSyncedMetaData(string key) + { + CheckIfEntityExists(); + unsafe + { + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); + var result = Core.Library.Shared.BaseObject_HasSyncedMetaData(BaseObjectNativePointer, stringPtr); + Marshal.FreeHGlobal(stringPtr); + return result == 1; + } + } + + public bool GetSyncedMetaData(string key, out int result) + { + CheckIfEntityExists(); + GetSyncedMetaData(key, out MValueConst mValue); + using (mValue) + { + if (mValue.type != MValueConst.Type.Int) + { + result = default; + return false; + } + + result = (int) mValue.GetInt(); + } + + return true; + } + + public bool GetSyncedMetaData(string key, out uint result) + { + CheckIfEntityExists(); + GetSyncedMetaData(key, out MValueConst mValue); + using (mValue) + { + if (mValue.type != MValueConst.Type.Uint) + { + result = default; + return false; + } + + result = (uint) mValue.GetUint(); + } + + return true; + } + + public bool GetSyncedMetaData(string key, out float result) + { + CheckIfEntityExists(); + GetSyncedMetaData(key, out MValueConst mValue); + using (mValue) + { + if (mValue.type != MValueConst.Type.Double) + { + result = default; + return false; + } + + result = (float) mValue.GetDouble(); + } + + return true; + } } } \ No newline at end of file diff --git a/api/AltV.Net.Shared/Enums/AmmoType.cs b/api/AltV.Net.Shared/Enums/AmmoType.cs new file mode 100644 index 000000000..a8ec8a7b2 --- /dev/null +++ b/api/AltV.Net.Shared/Enums/AmmoType.cs @@ -0,0 +1,40 @@ +namespace AltV.Net.Shared.Enums +{ + public enum AmmoType : uint + { + Null = 987444055, + Shotgun = 2416459067, + Sniper = 1285032059, + FireExtinguisher = 1359393852, + GrenadeLauncher = 1003267566, + Snowball = 2182627693, + Pistol = 1950175060, + Smg = 1820140472, + FertilizerCan = 1963932634, + Ball = 4287981158, + Molotov = 1446246869, + StickyBomb = 1411692055, + PetrolCan = 3395492001, + StunGun = 2955849184, + Rifle = 218444191, + Minigun = 2680539266, + MG = 1788949567, + FlareGun = 1173416293, + Flare = 1808594799, + GrenadeLauncherSmoke = 826266432, + HomingLauncher = 2568293933, + Railgun = 2034517757, + Firework = 2938367503, + Grenade = 1003688881, + BZGas = 2608103076, + ProximityMine = 2938243239, + RayPistol = 2768943988, + Rpg = 1742569970, + PipeBomb = 357983224, + HazardCan = 1618528319, + EMPLauncher = 4057942205, + AcidPackage = 1003730930, + SmokeGrenade = 3859679398, + RailgunXm3 = 1322889087 + } +} diff --git a/api/AltV.Net.Shared/Enums/MarkerType.cs b/api/AltV.Net.Shared/Enums/MarkerType.cs new file mode 100644 index 000000000..799b7e09c --- /dev/null +++ b/api/AltV.Net.Shared/Enums/MarkerType.cs @@ -0,0 +1,50 @@ +namespace AltV.Net.Shared.Enums; + +public enum MarkerType +{ + MarkerCone = 0, + MarkerCylinder = 1, + MarkerArrow = 2, + MarkerArrowFlat = 3, + MarkerFlag = 4, + MarkerRingFlag = 5, + MarkerRing = 6, + MarkerPlane = 7, + MarkerBikeLogo1 = 8, + MarkerBikeLogo2 = 9, + MarkerNum0 = 10, + MarkerNum1 = 11, + MarkerNum2 = 12, + MarkerNum3 = 13, + MarkerNum4 = 14, + MarkerNum5 = 15, + MarkerNum6 = 16, + MarkerNum7 = 17, + MarkerNum8 = 18, + MarkerNum9 = 19, + MarkerChevron1 = 20, + MarkerChevron2 = 21, + MarkerChevron3 = 22, + MarkerRingFlat = 23, + MarkerLap = 24, + MarkerHalo = 25, + MarkerHaloPoint = 26, + MarkerHaloRotate = 27, + MarkerSphere = 28, + MarkerMoney = 29, + MarkerLines = 30, + MarkerBeast = 31, + MarkerQuestionMark = 32, + MarkerTransformPlane = 33, + MarkerTransformHelicopter = 34, + MarkerTransformBoat = 35, + MarkerTransformCar = 36, + MarkerTransformBike = 37, + MarkerTransformPushBike = 38, + MarkerTransformTruck = 39, + MarkerTransformParachute = 40, + MarkerTransformThruster = 41, + MarkerWarp = 42, + MarkerBoxes = 43, + MarkerPitLane = 44 +}; \ No newline at end of file diff --git a/api/AltV.Net.Shared/Enums/PedModel.cs b/api/AltV.Net.Shared/Enums/PedModel.cs index 86d6b5eb4..12596dbc2 100644 --- a/api/AltV.Net.Shared/Enums/PedModel.cs +++ b/api/AltV.Net.Shared/Enums/PedModel.cs @@ -867,6 +867,19 @@ public enum PedModel : uint HazmatWorker01SMM = 3688051673, YuleMonsterUMM = 3543068589, DrFriedlander02CS = 3177620756, - NervousRon02CS = 731167118 + NervousRon02CS = 731167118, + Boar02AC = 2334752500, // 0x8B297EF4 + Coyote02AC = 734582471, // 0x2BC8D6C7 + Deer02AC = 2857068496, // 0xAA4B67D0 + MtLion02AC = 2368442193, // 0x8D2B8F51 + Pug02AC = 1072872081, // 0x3FF2BA91 + AviSchwartzman03CSB = 399022197, // 0x17C89875 + CharlieReedCSB = 10366540, // 0x9E2E4C + AviSchwartzman03IG = 2100370963, // 0x7D311E13 + CharlieReedIG = 1818503341, // 0x6C6428AD + PernellMossIG = 2239793254, // 0x85808866 + RoosterMcCrawIG = 2086307585, // 0x7C5A8701 + CCrew02SMM = 3080868068, // 0xB7A250E4 + Juggernaut03UMM = 2680892058 // 0x9FCB2A9A } } diff --git a/api/AltV.Net.Shared/Enums/VehicleModel.cs b/api/AltV.Net.Shared/Enums/VehicleModel.cs index 7e698d1f8..fbf0cb7bc 100644 --- a/api/AltV.Net.Shared/Enums/VehicleModel.cs +++ b/api/AltV.Net.Shared/Enums/VehicleModel.cs @@ -702,10 +702,10 @@ public enum VehicleModel : uint Tigon = 0xAF0B8D48, Yosemite3 = 0x0409D787, Youga3 = 0x6B73A9BE, - Alkonost = 3929093893, + Alkonost = 3929093893, Annihilator2 = 295054921, - Avisa = 2588363614, - Brioso2 = 1429622905, + Avisa = 2588363614, + Brioso2 = 1429622905, Dinghy5 = 3314393930, Italirsx = 3145241962, Kosatka = 1336872304, @@ -792,6 +792,23 @@ public enum VehicleModel : uint Cargopl = 2336777441, // [0x8b4864e1] Cargo Plane (Plane) Brickade2 = 2718380883, // [0xa2073353] Brickade 6x6 (Car) Manchez3 = 1384502824, // [0x5285d628] Manchez Scout C (Bike) - Surfer3 = 3259477733 // [0xc247aee5] Surfer Custom (Car) + Surfer3 = 3259477733, // [0xc247aee5] Surfer Custom (Car) + Inductor2 = 2311345272, // [0x89C45478] Junk Energy Inductor (BICYCLE) + Inductor = 3397143273, // [0xCA7C4AE9] Inductor (BICYCLE) + Raiju = 239897677, // [0xE4C8C4D] F-160 Raiju (PLANE) + MonstroCiti = 802856453, // [0x2FDA9E05] MonstroCiti (CAR) + Coureur = 610429990, // [0x24626C26] La Coureuse (CAR) + Ratel = 3758861739, // [0xE00BADAB] Ratel (CAR) + Stingertt = 1447690049, // [0x5649FF41] Itali GTO Stinger TT (CAR) + Avenger3 = 3868033424, // [0xE68D8190] Avenger (PLANE) + Avenger4 = 4225674290, // [0xFBDEAC32] Avenger (PLANE) + Clique2 = 3315674721, // [0xC5A12E61] Clique Wagon (CAR) + Streamer216 = 191916658, // [0xB706A72] Streamer216 (PLANE) + Brigham = 3640468689, // [0xD8FD24D1] Brigham (CAR) + Gauntlet6 = 1336514315, // [0x4FA9970B] Hotring Hellfire (CAR) + Conada2 = 2635962482, // [0x9D1D9872] Weaponized Conada (HELI) + l35 = 2531292011, // [0x96E0736B] Walton L35 (CAR) + Speedo5 = 4250167832, // [0xFD546A18] Speedo Custom (CAR) + Buffalo5 = 165968051 // [0x9E478B3] Buffalo EVX (CAR) } } diff --git a/api/AltV.Net.Shared/Enums/WeaponModel.cs b/api/AltV.Net.Shared/Enums/WeaponModel.cs index b0de56053..15efa58a2 100644 --- a/api/AltV.Net.Shared/Enums/WeaponModel.cs +++ b/api/AltV.Net.Shared/Enums/WeaponModel.cs @@ -109,6 +109,7 @@ public enum WeaponModel : uint CandyCane = 1703483498, AcidPackage = 4159824478, Wm29Pistol = 465894841, - RailgunXm3 = 4272043364 + RailgunXm3 = 4272043364, + TecPistol = 350597077 // Tactical SMG } } diff --git a/api/AltV.Net.Shared/Events/EventType.cs b/api/AltV.Net.Shared/Events/EventType.cs index d23ff95e6..b87d27f97 100644 --- a/api/AltV.Net.Shared/Events/EventType.cs +++ b/api/AltV.Net.Shared/Events/EventType.cs @@ -2,87 +2,115 @@ { public enum EventType : byte { - NONE, - - // Server - SERVER_STARTED, - - // Shared - PLAYER_CONNECT, - PLAYER_BEFORE_CONNECT, - PLAYER_DISCONNECT, - PLAYER_CONNECT_DENIED, - - CONNECTION_QUEUE_ADD, - CONNECTION_QUEUE_REMOVE, - - RESOURCE_START, - RESOURCE_STOP, - RESOURCE_ERROR, - - SERVER_SCRIPT_EVENT, - CLIENT_SCRIPT_EVENT, - - META_CHANGE, - SYNCED_META_CHANGE, - STREAM_SYNCED_META_CHANGE, - GLOBAL_META_CHANGE, - GLOBAL_SYNCED_META_CHANGE, - LOCAL_SYNCED_META_CHANGE, - - PLAYER_DAMAGE, - PLAYER_DEATH, - FIRE_EVENT, - EXPLOSION_EVENT, - START_PROJECTILE_EVENT, - WEAPON_DAMAGE_EVENT, - VEHICLE_DESTROY, - VEHICLE_DAMAGE, - - CHECKPOINT_EVENT, - COLSHAPE_EVENT, - PLAYER_ENTER_VEHICLE, - PLAYER_ENTERING_VEHICLE, - PLAYER_LEAVE_VEHICLE, - PLAYER_CHANGE_VEHICLE_SEAT, - PLAYER_WEAPON_CHANGE, - PLAYER_REQUEST_CONTROL, - - VEHICLE_ATTACH, - VEHICLE_DETACH, - NETOWNER_CHANGE, - - CREATE_BASE_OBJECT_EVENT, - REMOVE_BASE_OBJECT_EVENT, - - DATA_NODE_RECEIVED_EVENT, - - CONSOLE_COMMAND_EVENT, - - PLAYER_CHANGE_ANIMATION_EVENT, - - PLAYER_CHANGE_INTERIOR_EVENT, - - PLAYER_WEAPON_SHOOT_EVENT, - - PLAYER_DIMENSION_CHANGE, - - // Client - CONNECTION_COMPLETE, - DISCONNECT_EVENT, - WEB_VIEW_EVENT, - KEYBOARD_EVENT, - GAME_ENTITY_CREATE, - GAME_ENTITY_DESTROY, - WEB_SOCKET_CLIENT_EVENT, - AUDIO_EVENT, - TASK_CHANGE, - SPAWNED, - RMLUI_EVENT, - WINDOW_FOCUS_CHANGE, - WINDOW_RESOLUTION_CHANGE, - - ALL, - SIZE + NONE, + + // Server + SERVER_STARTED, + CLIENT_REQUEST_OBJECT_EVENT, + CLIENT_DELETE_OBJECT_EVENT, + + // Shared + PLAYER_CONNECT, + PLAYER_DISCONNECT, + PLAYER_CONNECT_DENIED, + PLAYER_SPAWN, + + CONNECTION_QUEUE_ADD, + CONNECTION_QUEUE_REMOVE, + + RESOURCE_START, + RESOURCE_STOP, + RESOURCE_ERROR, + + SERVER_SCRIPT_EVENT, + CLIENT_SCRIPT_EVENT, + + META_CHANGE, + SYNCED_META_CHANGE, + STREAM_SYNCED_META_CHANGE, + GLOBAL_META_CHANGE, + GLOBAL_SYNCED_META_CHANGE, + LOCAL_SYNCED_META_CHANGE, + + PLAYER_DAMAGE, + PLAYER_DEATH, + PLAYER_HEAL, + FIRE_EVENT, + EXPLOSION_EVENT, + START_PROJECTILE_EVENT, + WEAPON_DAMAGE_EVENT, + VEHICLE_DESTROY, + VEHICLE_DAMAGE, + + REQUEST_SYNCED_SCENE, + START_SYNCED_SCENE, + STOP_SYNCED_SCENE, + UPDATE_SYNCED_SCENE, + + COLSHAPE_EVENT, + PLAYER_ENTER_VEHICLE, + PLAYER_START_ENTER_VEHICLE, + PLAYER_ENTERING_VEHICLE, + PLAYER_LEAVE_VEHICLE, + PLAYER_START_LEAVE_VEHICLE, + PLAYER_CHANGE_VEHICLE_SEAT, + PLAYER_WEAPON_CHANGE, + PLAYER_REQUEST_CONTROL, + PLAYER_START_TALKING, + PLAYER_STOP_TALKING, + + VEHICLE_ATTACH, + VEHICLE_DETACH, + VEHICLE_HORN, + VEHICLE_SIREN, + NETOWNER_CHANGE, + + CREATE_BASE_OBJECT_EVENT, + REMOVE_BASE_OBJECT_EVENT, + + CONSOLE_COMMAND_EVENT, + + PLAYER_CHANGE_ANIMATION_EVENT, + + PLAYER_CHANGE_INTERIOR_EVENT, + + PLAYER_WEAPON_SHOOT_EVENT, + PLAYER_BULLET_HIT_EVENT, + + PLAYER_DIMENSION_CHANGE, + + GIVE_PED_SCRIPTED_TASK, + + SCRIPT_RPC_EVENT, + SCRIPT_RPC_ANSWER_EVENT, + + // Client + CONNECTION_COMPLETE, + DISCONNECT_EVENT, + WEB_VIEW_EVENT, + KEYBOARD_EVENT, + GAME_ENTITY_CREATE, + GAME_ENTITY_DESTROY, + WEB_SOCKET_CLIENT_EVENT, + AUDIO_EVENT, + TASK_CHANGE, + SPAWNED, + RMLUI_EVENT, + WINDOW_FOCUS_CHANGE, + WINDOW_RESOLUTION_CHANGE, + ENTITY_HIT_ENTITY, + + WORLD_OBJECT_POSITION_CHANGE, + WORLD_OBJECT_STREAM_IN, + WORLD_OBJECT_STREAM_OUT, + + VOICE_CONNECTION_EVENT, + + PED_DAMAGE, + PED_DEATH, + PED_HEAL, + + ALL, + SIZE } } \ No newline at end of file diff --git a/api/AltV.Net.Shared/FunctionParser/FunctionCall.cs b/api/AltV.Net.Shared/FunctionParser/FunctionCall.cs new file mode 100644 index 000000000..9d39bbec4 --- /dev/null +++ b/api/AltV.Net.Shared/FunctionParser/FunctionCall.cs @@ -0,0 +1,8 @@ +namespace AltV.Net; + +public class FunctionCall +{ + public Function Function { get; set; } + public bool IsOnce { get; set; } + public bool IsCalled { get; set; } +} \ No newline at end of file diff --git a/api/AltV.Net.Shared/FunctionParser/FunctionMValueConstParsers.cs b/api/AltV.Net.Shared/FunctionParser/FunctionMValueConstParsers.cs index a89d9c43b..73e3d7351 100644 --- a/api/AltV.Net.Shared/FunctionParser/FunctionMValueConstParsers.cs +++ b/api/AltV.Net.Shared/FunctionParser/FunctionMValueConstParsers.cs @@ -601,7 +601,7 @@ public static object ParseBaseObject(ISharedCore core, in MValueConst mValue, Ty var entityPointer = mValue.GetEntityPointer(ref entityType); if (entityPointer == IntPtr.Zero || entityType == BaseObjectType.Undefined) return null; - var entity = core.BaseBaseObjectPool.GetOrCreate(core, entityPointer, entityType); + var entity = core.PoolManager.GetOrCreate(core, entityPointer, entityType); if (entity == null) return null; return type == FunctionTypes.Obj || entity.GetType().IsAssignableTo(type) ? entity : null; diff --git a/api/AltV.Net.Shared/FunctionParser/FunctionStringParsers.cs b/api/AltV.Net.Shared/FunctionParser/FunctionStringParsers.cs index 0d3555048..e9b9b7559 100644 --- a/api/AltV.Net.Shared/FunctionParser/FunctionStringParsers.cs +++ b/api/AltV.Net.Shared/FunctionParser/FunctionStringParsers.cs @@ -93,7 +93,7 @@ public static object ParseBaseObject(ISharedCore core, string value, Type type, { if (typeInfo.IsPlayer) { - foreach (var player in core.PlayerPool.GetAllEntities()) + foreach (var player in core.PoolManager.Player.GetAllEntities()) { if (!player.Exists) continue; if (player.Name.Equals(value)) @@ -103,7 +103,7 @@ public static object ParseBaseObject(ISharedCore core, string value, Type type, } if (!ushort.TryParse(value, out var playerId)) return null; - var entity = core.GetEntityById(playerId); + var entity = core.GetBaseObjectById(BaseObjectType.Player, playerId); if (entity is ISharedPlayer playerEntity) { return playerEntity; @@ -112,7 +112,7 @@ public static object ParseBaseObject(ISharedCore core, string value, Type type, else if (typeInfo.IsVehicle) { if (!ushort.TryParse(value, out var vehicleId)) return null; - var entity = core.GetEntityById(vehicleId); + var entity = core.GetBaseObjectById(BaseObjectType.Vehicle, vehicleId); if (entity is ISharedVehicle vehicleEntity) { return vehicleEntity; @@ -141,22 +141,22 @@ public static object ParsePosition(ISharedCore core, string value, Type type, Fu { return null; } - + public static object ParseRotation(ISharedCore core, string value, Type type, FunctionTypeInfo typeInfo) { return null; } - + public static object ParseVector3(ISharedCore core, string value, Type type, FunctionTypeInfo typeInfo) { return null; } - + public static object ParseRgba(ISharedCore core, string value, Type type, FunctionTypeInfo typeInfo) { return null; } - + public static object ParseByteArray(ISharedCore core, string value, Type type, FunctionTypeInfo typeInfo) { return null; diff --git a/api/AltV.Net.Shared/FunctionParser/ScriptFunction.cs b/api/AltV.Net.Shared/FunctionParser/ScriptFunction.cs index 17bc02b10..7f088fa5a 100644 --- a/api/AltV.Net.Shared/FunctionParser/ScriptFunction.cs +++ b/api/AltV.Net.Shared/FunctionParser/ScriptFunction.cs @@ -14,6 +14,11 @@ private static void WrongReturnType(MethodInfo methodInfo, Type expected, Type g Console.WriteLine( $"{methodInfo.DeclaringType?.FullName}.{methodInfo.Name}({string.Join(", ", methodInfo.GetParameters().Select(m => $"{m.ParameterType.FullName} {m.Name}"))}): Expected {expected} return type, but got {got}"); } + private static void WrongReturnTypes(MethodInfo methodInfo, Type[] expected, Type got) + { + Console.WriteLine( + $"{methodInfo.DeclaringType?.FullName}.{methodInfo.Name}({string.Join(", ", methodInfo.GetParameters().Select(m => $"{m.ParameterType.FullName} {m.Name}"))}): Expected {expected} return type, but got {got}"); + } private static void WrongType(MethodInfo methodInfo, Type expected, Type got) { @@ -40,7 +45,7 @@ public ScriptFunctionParameter(bool baseObjectCheck, Type parameterType) } } - public static ScriptFunction? Create(Delegate @delegate, Type[] types, bool isAsync = false) + public static ScriptFunction? Create(Delegate @delegate, Type[] types, Type[]? returnTypes = null, bool isAsync = false) { var parameters = @delegate.Method.GetParameters(); if (parameters.Length != types.Length) @@ -76,6 +81,25 @@ public ScriptFunctionParameter(bool baseObjectCheck, Type parameterType) return null; } + if (!isAsync) + { + if (returnTypes is null && !typeof(void).IsAssignableFrom(@delegate.Method.ReturnType)) + { + WrongReturnType(@delegate.Method, typeof(void), @delegate.Method.ReturnType); + return null; + } + if (returnTypes is not null) + { + var validType = returnTypes.Any(returnType => returnType.IsAssignableFrom(@delegate.Method.ReturnType)); + + if (!validType) + { + WrongReturnTypes(@delegate.Method, returnTypes, @delegate.Method.ReturnType); + return null; + } + } + } + if (isAsync && !typeof(Task).IsAssignableFrom(@delegate.Method.ReturnType)) { WrongReturnType(@delegate.Method, typeof(Task), @delegate.Method.ReturnType); diff --git a/api/AltV.Net.Shared/IReadOnlyBaseBaseObjectPool.cs b/api/AltV.Net.Shared/IReadOnlyBaseBaseObjectPool.cs deleted file mode 100644 index 4840e2bb5..000000000 --- a/api/AltV.Net.Shared/IReadOnlyBaseBaseObjectPool.cs +++ /dev/null @@ -1,12 +0,0 @@ -using AltV.Net.Elements.Entities; -using AltV.Net.Shared.Elements.Entities; - -namespace AltV.Net.Shared -{ - public interface IReadOnlyBaseBaseObjectPool - { - ISharedBaseObject GetOrCreate(ISharedCore core, IntPtr entityPointer, BaseObjectType baseObjectType, ushort entityId); - ISharedBaseObject GetOrCreate(ISharedCore core, IntPtr entityPointer, BaseObjectType baseObjectType); - ISharedBaseObject Get(IntPtr entityPointer, BaseObjectType baseObjectType); - } -} \ No newline at end of file diff --git a/api/AltV.Net.Shared/ISharedCore.cs b/api/AltV.Net.Shared/ISharedCore.cs index 4b30a5e71..d33b176b8 100644 --- a/api/AltV.Net.Shared/ISharedCore.cs +++ b/api/AltV.Net.Shared/ISharedCore.cs @@ -2,6 +2,7 @@ using AltV.Net.CApi; using AltV.Net.Data; using AltV.Net.Elements.Args; +using AltV.Net.Elements.Entities; using AltV.Net.Shared.Elements.Entities; using AltV.Net.Shared.Events; @@ -9,17 +10,12 @@ namespace AltV.Net.Shared { public interface ISharedCore : ICApiCore { - IReadOnlyEntityPool PlayerPool { get; } - IReadOnlyEntityPool ObjectPool { get; } - IReadOnlyEntityPool VehiclePool { get; } - IReadOnlyBaseObjectPool BlipPool { get; } - IReadOnlyBaseObjectPool CheckpointPool { get; } - IReadOnlyBaseBaseObjectPool BaseBaseObjectPool { get; } + ISharedPoolManager PoolManager { get; } EventStateManager EventStateManager { get; } - + ISharedNativeResource Resource { get; } - ISharedEntity GetEntityById(ushort id); + ISharedBaseObject GetBaseObjectById(BaseObjectType type, uint id); IntPtr NativePointer { get; } @@ -28,13 +24,13 @@ public interface ISharedCore : ICApiCore string CApiVersion { get; } string Version { get; } - + string Branch { get; } - + bool IsDebug { get; } void LogInfo(string message); - + uint Hash(string hash); /// @@ -63,19 +59,19 @@ public interface ISharedCore : ICApiCore bool IsMainThread(); string PtrToStringUtf8AndFree(nint str, int size); - + #region MValueAdapters void RegisterMValueAdapter(IMValueAdapter adapter); - + bool ToMValue(object obj, Type type, out MValueConst mValue); - + bool FromMValue(in MValueConst mValue, Type type, out object obj); - + bool MValueFromObject(object obj, Type type, out object result); - + bool IsMValueConvertible(Type type); #endregion - + #region MValues void CreateMValueNil(out MValueConst mValue); @@ -93,17 +89,17 @@ public interface ISharedCore : ICApiCore void CreateMValueDict(out MValueConst mValue, string[] keys, MValueConst[] val, ulong size); - + void CreateMValueBaseObject(out MValueConst mValue, ISharedBaseObject value); void CreateMValueFunction(out MValueConst mValue, IntPtr value); - + void CreateMValueVector3(out MValueConst mValue, Position value); - + void CreateMValueVector2(out MValueConst mValue, Vector2 value); - + void CreateMValueRgba(out MValueConst mValue, Rgba value); - + void CreateMValueByteArray(out MValueConst mValue, byte[] value); void CreateMValue(out MValueConst mValue, object obj); @@ -136,5 +132,9 @@ void CreateMValueDict(out MValueConst mValue, string[] keys, MValueConst[] val, void TriggerLocalEvent(string eventName, params object[] args); #endregion + + VoiceConnectionState GetVoiceConnectionState(); + + int NetTime { get; } } } \ No newline at end of file diff --git a/api/AltV.Net.Shared/ISharedNativeResource.cs b/api/AltV.Net.Shared/ISharedNativeResource.cs index dc7da4e7a..61ba05dde 100644 --- a/api/AltV.Net.Shared/ISharedNativeResource.cs +++ b/api/AltV.Net.Shared/ISharedNativeResource.cs @@ -1,13 +1,14 @@ using AltV.Net.Elements.Args; +using AltV.Net.Shared.Elements.Data; namespace AltV.Net.Shared { public interface ISharedNativeResource { ISharedCSharpResourceImpl CSharpResourceImpl { get; } - + IntPtr NativePointer { get; } - + IntPtr ResourceImplPtr { get; } string Name { get; } @@ -15,17 +16,19 @@ public interface ISharedNativeResource string Type { get; } bool IsStarted { get; } - + string[] Dependencies { get; } - + string[] Dependants { get; } void SetExport(string key, object value); - + void SetExport(string key, in MValueConst value); object GetExport(string key); bool GetExport(string key, out MValueConst mValue); + + public IConfig GetConfig(); } } \ No newline at end of file diff --git a/api/AltV.Net.Shared/ISharedPoolManager.cs b/api/AltV.Net.Shared/ISharedPoolManager.cs new file mode 100644 index 000000000..92d16bd79 --- /dev/null +++ b/api/AltV.Net.Shared/ISharedPoolManager.cs @@ -0,0 +1,24 @@ +using AltV.Net.Elements.Entities; +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Shared +{ + public interface ISharedPoolManager + { + IReadOnlyEntityPool Player { get; } + IReadOnlyEntityPool Vehicle { get; } + IReadOnlyEntityPool Ped { get; } + IReadOnlyEntityPool Object { get; } + IReadOnlyBaseObjectPool Blip { get; } + IReadOnlyBaseObjectPool Checkpoint { get; } + IReadOnlyBaseObjectPool ColShape { get; } + IReadOnlyBaseObjectPool VirtualEntity { get; } + IReadOnlyBaseObjectPool VirtualEntityGroup { get; } + IReadOnlyBaseObjectPool Marker { get; } + + ISharedBaseObject GetOrCreate(ISharedCore core, IntPtr entityPointer, BaseObjectType baseObjectType, uint entityId); + ISharedBaseObject GetOrCreate(ISharedCore core, IntPtr entityPointer, BaseObjectType baseObjectType); + ISharedBaseObject Get(IntPtr entityPointer, BaseObjectType baseObjectType); + void Dispose(); + } +} \ No newline at end of file diff --git a/api/AltV.Net.Shared/SharedCore.cs b/api/AltV.Net.Shared/SharedCore.cs index 1afd068e1..afc3df13a 100644 --- a/api/AltV.Net.Shared/SharedCore.cs +++ b/api/AltV.Net.Shared/SharedCore.cs @@ -24,20 +24,15 @@ public abstract class SharedCore : ISharedCore, IDisposable public ILibrary Library { get; } public SharedCore(IntPtr nativePointer, ILibrary library) - { + { NativePointer = nativePointer; Library = library; MainThread = Thread.CurrentThread; EventStateManager = new EventStateManager(this); } - + public abstract ISharedNativeResource Resource { get; } - public abstract IReadOnlyEntityPool PlayerPool { get; } - public abstract IReadOnlyEntityPool ObjectPool { get; } - public abstract IReadOnlyEntityPool VehiclePool { get; } - public abstract IReadOnlyBaseObjectPool BlipPool { get; } - public abstract IReadOnlyBaseObjectPool CheckpointPool { get; } - public abstract IReadOnlyBaseBaseObjectPool BaseBaseObjectPool { get; } + public abstract ISharedPoolManager PoolManager { get; } public EventStateManager EventStateManager { get; } private string? sdkVersion; @@ -90,7 +85,7 @@ public string Version } } } - + private string? branch; public string Branch { @@ -107,7 +102,18 @@ public string Branch } } } - + + public int NetTime + { + get + { + unsafe + { + return Library.Shared.Core_GetNetTime(NativePointer); + } + } + } + private bool? isDebug; public bool IsDebug { @@ -143,7 +149,7 @@ public uint Hash(string stringToHash) return hash; } - + public void LogInfo(IntPtr messagePtr) { unsafe @@ -233,7 +239,7 @@ public void LogColored(string message) Marshal.FreeHGlobal(messagePtr); } } - + public string PtrToStringUtf8AndFree(nint str, int size) { if (str == IntPtr.Zero) return string.Empty; @@ -247,9 +253,9 @@ public string PtrToStringUtf8AndFree(nint str, int size) public virtual void Dispose() { - + } - + protected readonly Thread MainThread; @@ -264,25 +270,16 @@ public virtual void CheckIfCallIsValid([CallerMemberName] string callerName = "" if (IsMainThread()) return; throw new IllegalThreadException(this, callerName); } - - public ISharedEntity GetEntityById(ushort id) + + public ISharedBaseObject GetBaseObjectById(BaseObjectType type, uint id) { unsafe { CheckIfCallIsValid(); - var type = (byte) BaseObjectType.Undefined; - var entityPointer = Library.Shared.Core_GetEntityById(NativePointer, id, &type); + var entityPointer = Library.Shared.Core_GetBaseObjectByID(NativePointer, (byte)type, id); if (entityPointer == IntPtr.Zero) return null; - switch (type) - { - case (byte) BaseObjectType.Player: - case (byte) BaseObjectType.LocalPlayer: - return PlayerPool.Get(entityPointer); - case (byte) BaseObjectType.Vehicle: - return VehiclePool.Get(entityPointer); - default: - return null; - } + + return PoolManager.Get(entityPointer, type); } } @@ -365,7 +362,7 @@ public void CreateMValueDict(out MValueConst mValue, string[] keys, MValueConst[ { pointers[i] = val[i].nativePointer; } - + var keyPointers = new IntPtr[size]; for (ulong i = 0; i < size; i++) { @@ -376,7 +373,7 @@ public void CreateMValueDict(out MValueConst mValue, string[] keys, MValueConst[ Library.Shared.Core_CreateMValueDict(NativePointer, keyPointers, pointers, size)); for (ulong i = 0; i < size; i++) { - Marshal.FreeHGlobal(keyPointers[i]); + Marshal.FreeHGlobal(keyPointers[i]); } } } @@ -416,7 +413,7 @@ public void CreateMValueVector3(out MValueConst mValue, Position value) Library.Shared.Core_CreateMValueVector3(NativePointer, value)); } } - + public void CreateMValueVector2(out MValueConst mValue, Vector2 value) { unsafe @@ -619,7 +616,7 @@ public void CreateMValue(out MValueConst mValue, object obj) ToMValue(obj, type, out mValue); return; } - + LogInfo("can't convert type:" + type); mValue = MValueConst.Nil; return; @@ -642,9 +639,9 @@ public void CreateMValues(MValueConst[] mValues, object[] objects) } } #endregion - + #region MValueAdapters - + private readonly Dictionary adapters = new Dictionary(); @@ -710,14 +707,14 @@ public bool IsMValueConvertible(Type type) return adapters.ContainsKey(type); } #endregion - + #region Metadata public void GetMetaData(string key, out MValueConst value) { unsafe { CheckIfCallIsValid(); - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); value = new MValueConst(this, Library.Shared.Core_GetMetaData(NativePointer, stringPtr)); Marshal.FreeHGlobal(stringPtr); } @@ -729,7 +726,7 @@ public void SetMetaData(string key, object value) { CheckIfCallIsValid(); CreateMValue(out var mValue, value); - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); Library.Shared.Core_SetMetaData(NativePointer, stringPtr, mValue.nativePointer); Marshal.FreeHGlobal(stringPtr); mValue.Dispose(); @@ -741,7 +738,7 @@ public bool HasMetaData(string key) unsafe { CheckIfCallIsValid(); - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); var result = Library.Shared.Core_HasMetaData(NativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); return result == 1; @@ -753,40 +750,40 @@ public void DeleteMetaData(string key) unsafe { CheckIfCallIsValid(); - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); Library.Shared.Core_DeleteMetaData(NativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); } } - + public void GetSyncedMetaData(string key, out MValueConst value) { unsafe { CheckIfCallIsValid(); - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); value = new MValueConst(this, Library.Shared.Core_GetSyncedMetaData(NativePointer, stringPtr)); Marshal.FreeHGlobal(stringPtr); } } - + public bool HasSyncedMetaData(string key) { unsafe { CheckIfCallIsValid(); - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); var result = Library.Shared.Core_HasSyncedMetaData(NativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); return result == 1; } } #endregion - + #region TriggerLocalEvent public void TriggerLocalEvent(string eventName, MValueConst[] args) { - var eventNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(eventName); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); TriggerLocalEvent(eventNamePtr, args); Marshal.FreeHGlobal(eventNamePtr); } @@ -805,7 +802,7 @@ public void TriggerLocalEvent(IntPtr eventNamePtr, MValueConst[] args) public void TriggerLocalEvent(string eventName, IntPtr[] args) { - var eventNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(eventName); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); TriggerLocalEvent(eventNamePtr, args); Marshal.FreeHGlobal(eventNamePtr); } @@ -846,5 +843,13 @@ public void TriggerLocalEvent(string eventName, params object[] args) } #endregion + + public VoiceConnectionState GetVoiceConnectionState() + { + unsafe + { + return (VoiceConnectionState) Library.Shared.Core_GetVoiceConnectionState(NativePointer); + } + } } } \ No newline at end of file diff --git a/api/AltV.Net.Shared/SharedNativeResource.cs b/api/AltV.Net.Shared/SharedNativeResource.cs index 1bff3bde6..c6dd28264 100644 --- a/api/AltV.Net.Shared/SharedNativeResource.cs +++ b/api/AltV.Net.Shared/SharedNativeResource.cs @@ -1,5 +1,6 @@ using System.Runtime.InteropServices; using AltV.Net.Elements.Args; +using AltV.Net.Shared.Elements.Data; using AltV.Net.Shared.Utils; namespace AltV.Net.Shared @@ -11,7 +12,7 @@ public abstract class SharedNativeResource : ISharedNativeResource public IntPtr NativePointer { get; } public abstract ISharedCSharpResourceImpl CSharpResourceImpl { get; } - + public IntPtr ResourceImplPtr { get @@ -29,7 +30,7 @@ public string Name get { if (name != null) return name; - + unsafe { var size = 0; @@ -67,7 +68,7 @@ public bool IsStarted } private string[] dependencies; - + public string[] Dependencies { get @@ -84,14 +85,14 @@ public string[] Dependencies strings[i] = Marshal.PtrToStringUTF8(pointers[i]); } dependencies = strings; - + return strings; } } } private string[] dependants; - + public string[] Dependants { get @@ -153,7 +154,7 @@ public object GetExport(string key) return obj; } } - + public bool GetExport(string key, out MValueConst mValue) { unsafe @@ -164,5 +165,13 @@ public bool GetExport(string key, out MValueConst mValue) return mValue.type != MValueConst.Type.Nil; } } + + public IConfig GetConfig() + { + unsafe + { + return new Config(core, core.Library.Shared.Resource_GetConfig(NativePointer)); + } + } } } \ No newline at end of file diff --git a/api/AltV.Net.Shared/Utils/MemoryUtils.cs b/api/AltV.Net.Shared/Utils/MemoryUtils.cs index ada53fa9c..9b422cb7c 100644 --- a/api/AltV.Net.Shared/Utils/MemoryUtils.cs +++ b/api/AltV.Net.Shared/Utils/MemoryUtils.cs @@ -10,7 +10,7 @@ public static IntPtr StringToHGlobalUtf8(string str) { if (str == null) { - return IntPtr.Zero; + str = ""; } var bytes = Encoding.UTF8.GetBytes(str); diff --git a/api/AltV.Net.VehicleData/AltV.Net.VehicleData.csproj b/api/AltV.Net.VehicleData/AltV.Net.VehicleData.csproj index cfd4822bb..8c9e1c0f0 100644 --- a/api/AltV.Net.VehicleData/AltV.Net.VehicleData.csproj +++ b/api/AltV.Net.VehicleData/AltV.Net.VehicleData.csproj @@ -28,7 +28,7 @@ - + diff --git a/api/AltV.Net.VehicleData/VehicleData.cs b/api/AltV.Net.VehicleData/VehicleData.cs index 11f281341..d5dde2cb8 100644 --- a/api/AltV.Net.VehicleData/VehicleData.cs +++ b/api/AltV.Net.VehicleData/VehicleData.cs @@ -12,11 +12,11 @@ public class VehicleModel public readonly struct ModKit { - public readonly ushort Id; + public readonly uint Id; public readonly string Name; public readonly Dictionary Mods; - public ModKit(ushort id, string name, Dictionary mods) + public ModKit(uint id, string name, Dictionary mods) { Id = id; Name = name; diff --git a/api/AltV.Net.sln b/api/AltV.Net.sln index d815d8915..ec39ffdd8 100644 --- a/api/AltV.Net.sln +++ b/api/AltV.Net.sln @@ -1,4 +1,4 @@ - + Microsoft Visual Studio Solution File, Format Version 12.00 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AltV.Net", "AltV.Net\AltV.Net.csproj", "{B41318D4-99B3-4B17-88C1-2B7CCF60541F}" EndProject @@ -76,6 +76,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AltV.Net.Sdk.Client", "AltV EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AltV.Net.Sdk.Shared", "AltV.Net.Sdk.Shared\AltV.Net.Sdk.Shared.csproj", "{E8399DB0-355D-4A49-AAD8-6CDD9BBF33CE}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AltV.Net.Sdk.Generator", "AltV.Net.Sdk.Generator\AltV.Net.Sdk.Generator.csproj", "{267131B2-D994-4672-A53D-839C91CB3D70}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -299,6 +301,12 @@ Global {E8399DB0-355D-4A49-AAD8-6CDD9BBF33CE}.Release|Any CPU.Build.0 = Release|Any CPU {E8399DB0-355D-4A49-AAD8-6CDD9BBF33CE}.Testing|Any CPU.ActiveCfg = Debug|Any CPU {E8399DB0-355D-4A49-AAD8-6CDD9BBF33CE}.Testing|Any CPU.Build.0 = Debug|Any CPU + {267131B2-D994-4672-A53D-839C91CB3D70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {267131B2-D994-4672-A53D-839C91CB3D70}.Debug|Any CPU.Build.0 = Debug|Any CPU + {267131B2-D994-4672-A53D-839C91CB3D70}.Release|Any CPU.ActiveCfg = Release|Any CPU + {267131B2-D994-4672-A53D-839C91CB3D70}.Release|Any CPU.Build.0 = Release|Any CPU + {267131B2-D994-4672-A53D-839C91CB3D70}.Testing|Any CPU.ActiveCfg = Debug|Any CPU + {267131B2-D994-4672-A53D-839C91CB3D70}.Testing|Any CPU.Build.0 = Debug|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {B41318D4-99B3-4B17-88C1-2B7CCF60541F} = {6A31F2DA-FBB6-40DF-89FF-57AF6266AECB} @@ -312,5 +320,6 @@ Global {8BEFB443-C2B9-4057-8271-D21FDB91C919} = {4B99DFE6-8EB6-4D7B-AFA6-AC75DBDA2CF0} {7E06CD9C-E5B5-423A-9969-396601C59142} = {4B99DFE6-8EB6-4D7B-AFA6-AC75DBDA2CF0} {E8399DB0-355D-4A49-AAD8-6CDD9BBF33CE} = {4B99DFE6-8EB6-4D7B-AFA6-AC75DBDA2CF0} + {267131B2-D994-4672-A53D-839C91CB3D70} = {F7E03C06-1353-43A4-A369-DF614EABD34B} EndGlobalSection EndGlobal diff --git a/api/AltV.Net/Alt.Blip.cs b/api/AltV.Net/Alt.Blip.cs index 3b3f763fe..93688c64e 100644 --- a/api/AltV.Net/Alt.Blip.cs +++ b/api/AltV.Net/Alt.Blip.cs @@ -9,85 +9,49 @@ public partial class Alt /// /// Creates a blip for a specific player on a specific position. /// - /// The player for which the blip is created. + /// If the blip global /// The type of the blip. /// The position on which the blip is created. + /// Targets there can see the blip /// The created Blip. [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static IBlip CreateBlip(IPlayer player, byte type, Position pos) => - Core.CreateBlip(player, type, pos); + public static IBlip CreateBlip(bool global, byte type, Position pos, IPlayer[] targets) => + Core.CreateBlip(global, type, pos, targets); /// /// Create a blip for a specific player, attached to specific entity. /// - /// The player for which the blip is created. + /// If the blip global /// The type of the blip. /// The entity to which the blip is atteched to. + /// Targets there can see the blip /// The created Blip. [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static IBlip CreateBlip(IPlayer player, byte type, IEntity entityAttach) => - Core.CreateBlip(player, type, entityAttach); + public static IBlip CreateBlip(bool global, byte type, IEntity entityAttach, IPlayer[] targets) => + Core.CreateBlip(global, type, entityAttach, targets); /// /// Creates a blip for a specific player on a specific position. /// - /// The player for which the blip is created. + /// If the blip global /// The type of the blip. /// The position on which the blip is created. + /// Targets there can see the blip /// The created Blip. [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static IBlip CreateBlip(IPlayer player, BlipType type, Position pos) => - Core.CreateBlip(player, (byte) type, pos); + public static IBlip CreateBlip(bool global, BlipType type, Position pos, IPlayer[] targets) => + Core.CreateBlip(global, (byte) type, pos, targets); /// /// Creates a blip for a specific player, attached to specific entity. /// - /// The player for which the blip is created. + /// If the blip global /// The type of the blip. /// The entity to which the blip is atteched to. + /// Targets there can see the blip /// The created Blip. [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static IBlip CreateBlip(IPlayer player, BlipType type, IEntity entityAttach) => - Core.CreateBlip(player, (byte) type, entityAttach); - - /// - /// Creates a blip for all players on a specific position. - /// - /// The type of the blip. - /// The position on which the blip is created. - /// The created Blip. - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static IBlip CreateBlip(byte type, Position pos) => - Core.CreateBlip(null, type, pos); - - /// - /// Creates a blip for all players, attached to specific entity. - /// - /// The type of the blip. - /// The entity to which the blip is atteched to. - /// The created Blip. - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static IBlip CreateBlip(byte type, IEntity entityAttach) => - Core.CreateBlip(null, type, entityAttach); - - /// - /// Creates a blip for all players on a specific position. - /// - /// The type of the blip. - /// The position on which the blip is created. - /// The created Blip. - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static IBlip CreateBlip(BlipType type, Position pos) => - Core.CreateBlip(null, (byte) type, pos); - - /// - /// Creates a blip for all players, attached to specific entity. - /// - /// The type of the blip. - /// The entity to which the blip is atteched to. - /// The created Blip. - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static IBlip CreateBlip(BlipType type, IEntity entityAttach) => - Core.CreateBlip(null, (byte) type, entityAttach); + public static IBlip CreateBlip(bool global, BlipType type, IEntity entityAttach, IPlayer[] targets) => + Core.CreateBlip(global, (byte) type, entityAttach, targets); } } \ No newline at end of file diff --git a/api/AltV.Net/Alt.Checkpoint.cs b/api/AltV.Net/Alt.Checkpoint.cs index 4299e065d..0b8746a10 100644 --- a/api/AltV.Net/Alt.Checkpoint.cs +++ b/api/AltV.Net/Alt.Checkpoint.cs @@ -15,8 +15,8 @@ public partial class Alt /// The color of the checkpoint. /// The created Checkpoint. public static ICheckpoint CreateCheckpoint(byte type, Position pos, float radius, float height, - Rgba color) => - Core.CreateCheckpoint(type, pos, radius, height, color); + Rgba color, uint streamingDistance) => + Core.CreateCheckpoint(type, pos, radius, height, color, streamingDistance); /// /// Creates a checkpoint for a all players, with given type, position, radius, height and color. @@ -28,8 +28,7 @@ public static ICheckpoint CreateCheckpoint(byte type, Position pos, float radius /// The color of the checkpoint. /// public static ICheckpoint CreateCheckpoint(CheckpointType type, Position pos, float radius, - float height, - Rgba color) => - Core.CreateCheckpoint((byte) type, pos, radius, height, color); + float height, Rgba color, uint streamingDistance) => + Core.CreateCheckpoint((byte) type, pos, radius, height, color, streamingDistance); } } \ No newline at end of file diff --git a/api/AltV.Net/Alt.Events.cs b/api/AltV.Net/Alt.Events.cs index 7c907d4a1..cf5538cd3 100644 --- a/api/AltV.Net/Alt.Events.cs +++ b/api/AltV.Net/Alt.Events.cs @@ -26,12 +26,6 @@ public static event PlayerConnectDelegate OnPlayerConnect remove => CoreImpl.PlayerConnectEventHandler.Remove(value); } - public static event PlayerBeforeConnectDelegate OnPlayerBeforeConnect - { - add => CoreImpl.PlayerBeforeConnectEventHandler.Add(value); - remove => CoreImpl.PlayerBeforeConnectEventHandler.Remove(value); - } - public static event PlayerConnectDeniedDelegate OnPlayerConnectDenied { add => CoreImpl.PlayerConnectDeniedEventHandler.Add(value); @@ -68,6 +62,12 @@ public static event PlayerDeadDelegate OnPlayerDead remove => CoreImpl.PlayerDeadEventHandler.Remove(value); } + public static event PlayerHealDelegate OnPlayerHeal + { + add => CoreImpl.PlayerHealEventHandler.Add(value); + remove => CoreImpl.PlayerHealEventHandler.Remove(value); + } + public static event ExplosionDelegate OnExplosion { add => CoreImpl.ExplosionEventHandler.Add(value); @@ -81,6 +81,7 @@ public static event ExplosionDelegate OnExplosion /// Alt.OnWeaponDamage += (player, target, weapon, damage, shotOffset, bodyPart) => { /// Console.WriteLine($"{player.Name} got damaged."); /// return true; // return false will cancel the weapon damage event and player won't receive damage. + /// return 5; // return a number will set the new damage /// }; /// /// @@ -109,6 +110,12 @@ public static event VehicleRemoveDelegate OnVehicleRemove remove => CoreImpl.VehicleRemoveEventHandler.Remove(value); } + public static event PedRemoveDelegate OnPedRemove + { + add => CoreImpl.PedRemoveEventHandler.Add(value); + remove => CoreImpl.PedRemoveEventHandler.Remove(value); + } + public static event PlayerChangeVehicleSeatDelegate OnPlayerChangeVehicleSeat { add => CoreImpl.PlayerChangeVehicleSeatEventHandler.Add(value); @@ -236,48 +243,149 @@ public static event VehicleDamageDelegate OnVehicleDamage add => CoreImpl.VehicleDamageEventHandler.Add(value); remove => CoreImpl.VehicleDamageEventHandler.Remove(value); } - + + public static event VehicleHornDelegate OnVehicleHorn + { + add => CoreImpl.VehicleHornEventHandler.Add(value); + remove => CoreImpl.VehicleHornEventHandler.Remove(value); + } + public static event ConnectionQueueAddDelegate OnConnectionQueueAdd { add => CoreImpl.ConnectionQueueAddHandler.Add(value); remove => CoreImpl.ConnectionQueueAddHandler.Remove(value); } - + public static event ConnectionQueueRemoveDelegate OnConnectionQueueRemove { add => CoreImpl.ConnectionQueueRemoveHandler.Add(value); remove => CoreImpl.ConnectionQueueRemoveHandler.Remove(value); } - + public static event ServerStartedDelegate OnServerStarted { add => CoreImpl.ServerStartedHandler.Add(value); remove => CoreImpl.ServerStartedHandler.Remove(value); } - + public static event PlayerRequestControlDelegate OnPlayerRequestControl { add => CoreImpl.PlayerRequestControlHandler.Add(value); remove => CoreImpl.PlayerRequestControlHandler.Remove(value); } - + public static event PlayerChangeAnimationDelegate OnPlayerChangeAnimation { add => CoreImpl.PlayerChangeAnimationHandler.Add(value); remove => CoreImpl.PlayerChangeAnimationHandler.Remove(value); } - + public static event PlayerChangeInteriorDelegate OnPlayerChangeInterior { add => CoreImpl.PlayerChangeInteriorHandler.Add(value); remove => CoreImpl.PlayerChangeInteriorHandler.Remove(value); } - + public static event PlayerDimensionChangeDelegate OnPlayerDimensionChange { add => CoreImpl.PlayerDimensionChangeHandler.Add(value); remove => CoreImpl.PlayerDimensionChangeHandler.Remove(value); } - + + public static event VehicleSirenDelegate OnVehicleSiren + { + add => CoreImpl.VehicleSirenHandler.Add(value); + remove => CoreImpl.VehicleSirenHandler.Remove(value); + } + + public static event PlayerSpawnDelegate OnPlayerSpawn + { + add => CoreImpl.PlayerSpawnHandler.Add(value); + remove => CoreImpl.PlayerSpawnHandler.Remove(value); + } + + public static event RequestSyncedSceneDelegate OnRequestSyncScene + { + add => CoreImpl.RequestSyncedSceneHandler.Add(value); + remove => CoreImpl.RequestSyncedSceneHandler.Remove(value); + } + + public static event StartSyncedSceneDelegate OnStartSyncedScene + { + add => CoreImpl.StartSyncedSceneHandler.Add(value); + remove => CoreImpl.StartSyncedSceneHandler.Remove(value); + } + + public static event StopSyncedSceneDelegate OnStopSyncedScene + { + add => CoreImpl.StopSyncedSceneHandler.Add(value); + remove => CoreImpl.StopSyncedSceneHandler.Remove(value); + } + + public static event UpdateSyncedSceneDelegate OnUpdateSyncedScene + { + add => CoreImpl.UpdateSyncedSceneHandler.Add(value); + remove => CoreImpl.UpdateSyncedSceneHandler.Remove(value); + } + + public static event ClientRequestObjectDelegate OnClientRequestObject + { + add => CoreImpl.ClientRequestObjectHandler.Add(value); + remove => CoreImpl.ClientRequestObjectHandler.Remove(value); + } + + public static event ClientDeleteObjectDelegate OnClientDeleteObject + { + add => CoreImpl.ClientDeleteObjectHandler.Add(value); + remove => CoreImpl.ClientDeleteObjectHandler.Remove(value); + } + + public static event GivePedScriptedTaskDelegate OnGivePedScriptedTask + { + add => CoreImpl.GivePedScriptedTaskHandler.Add(value); + remove => CoreImpl.GivePedScriptedTaskHandler.Remove(value); + } + + public static event PedDamageDelegate OnPedDamage + { + add => CoreImpl.PedDamageEventHandler.Add(value); + remove => CoreImpl.PedDamageEventHandler.Remove(value); + } + + public static event PedDeadDelegate OnPedDead + { + add => CoreImpl.PedDeadEventHandler.Add(value); + remove => CoreImpl.PedDeadEventHandler.Remove(value); + } + + public static event PedHealDelegate OnPedHeal + { + add => CoreImpl.PedHealEventHandler.Add(value); + remove => CoreImpl.PedHealEventHandler.Remove(value); + } + + public static event PlayerStartTalkingDelegate OnPlayerStartTalking + { + add => CoreImpl.PlayerStartTalkingHandler.Add(value); + remove => CoreImpl.PlayerStartTalkingHandler.Remove(value); + } + + public static event PlayerStopTalkingDelegate OnPlayerStopTalking + { + add => CoreImpl.PlayerStopTalkingHandler.Add(value); + remove => CoreImpl.PlayerStopTalkingHandler.Remove(value); + } + + public static event ScriptRpcDelegate OnScriptRPC + { + add => CoreImpl.ScriptRpcHandler.Add(value); + remove => CoreImpl.ScriptRpcHandler.Remove(value); + } + + public static event ScriptRpcAnswerDelegate OnScriptRPCAnswer + { + add => CoreImpl.ScriptRpcAnswerHandler.Add(value); + remove => CoreImpl.ScriptRpcAnswerHandler.Remove(value); + } } } \ No newline at end of file diff --git a/api/AltV.Net/Alt.GetById.cs b/api/AltV.Net/Alt.GetById.cs new file mode 100644 index 000000000..d4a16e6c1 --- /dev/null +++ b/api/AltV.Net/Alt.GetById.cs @@ -0,0 +1,17 @@ +using AltV.Net.Elements.Entities; + +namespace AltV.Net; + +public partial class Alt +{ + public static IPlayer GetPlayerById(uint id) => Core.GetBaseObject(BaseObjectType.Player, id) as IPlayer; + public static IVehicle GetVehicleById(uint id) => Core.GetBaseObject(BaseObjectType.Vehicle, id) as IVehicle; + public static IPed GetPedById(uint id) => Core.GetBaseObject(BaseObjectType.Ped, id) as IPed; + public static IBlip GetBlipById(uint id) => Core.GetBaseObject(BaseObjectType.Blip, id) as IBlip; + public static IVoiceChannel GetVoiceChannelById(uint id) => Core.GetBaseObject(BaseObjectType.VoiceChannel, id) as IVoiceChannel; + public static IColShape GetColShapeById(uint id) => Core.GetBaseObject(BaseObjectType.ColShape, id) as IColShape; + public static ICheckpoint GetCheckpointById(uint id) => Core.GetBaseObject(BaseObjectType.Checkpoint, id) as ICheckpoint; + public static IVirtualEntity GetVirtualEntityById(uint id) => Core.GetBaseObject(BaseObjectType.VirtualEntity, id) as IVirtualEntity; + public static IVirtualEntityGroup GetVirtualEntityGroupById(uint id) => Core.GetBaseObject(BaseObjectType.VirtualEntityGroup, id) as IVirtualEntityGroup; + public static IMarker GetMarkerById(uint id) => Core.GetBaseObject(BaseObjectType.Marker, id) as IMarker; +} \ No newline at end of file diff --git a/api/AltV.Net/Alt.Marker.cs b/api/AltV.Net/Alt.Marker.cs new file mode 100644 index 000000000..9e5091dd8 --- /dev/null +++ b/api/AltV.Net/Alt.Marker.cs @@ -0,0 +1,15 @@ +using AltV.Net.Data; +using AltV.Net.Elements.Entities; +using AltV.Net.Enums; +using AltV.Net.Shared.Enums; + +namespace AltV.Net; + +public partial class Alt +{ + public static IMarker CreateMarker(MarkerType type, Position pos, Rgba color) => + Core.CreateMarker(null, type, pos, color); + + public static IMarker CreateMarker(IPlayer player, MarkerType type, Position pos, Rgba color) => + Core.CreateMarker(player, type, pos, color); +} \ No newline at end of file diff --git a/api/AltV.Net/Alt.Object.cs b/api/AltV.Net/Alt.Object.cs new file mode 100644 index 000000000..1870f3739 --- /dev/null +++ b/api/AltV.Net/Alt.Object.cs @@ -0,0 +1,15 @@ +using AltV.Net.Data; +using AltV.Net.Elements.Entities; +using AltV.Net.Enums; + +namespace AltV.Net +{ + public partial class Alt + { + public static IObject CreateObject(uint model, Position position, Rotation rotation, byte alpha = 255, byte textureVariation = 0, ushort lodDistance = 100, uint streamingDistance = 0) => + Core.CreateObject(model, position, rotation, alpha, textureVariation, lodDistance, streamingDistance); + + public static IObject CreateObject(string model, Position position, Rotation rotation, byte alpha = 255, byte textureVariation = 0, ushort lodDistance = 100, uint streamingDistance = 0) => + Core.CreateObject(Core.Hash(model), position, rotation, alpha, textureVariation, lodDistance, streamingDistance); + } +} \ No newline at end of file diff --git a/api/AltV.Net/Alt.On.cs b/api/AltV.Net/Alt.On.cs index 0d9da408b..1e33d551b 100644 --- a/api/AltV.Net/Alt.On.cs +++ b/api/AltV.Net/Alt.On.cs @@ -250,7 +250,7 @@ public static Function OnClient action) => CoreImpl.OnClient(eventName, Function.Create(Core, action)); - + public static Function OnClient(string eventName, Action action) => CoreImpl.OnClient(eventName, Function.Create(Core, action)); @@ -362,5 +362,363 @@ public static Function OnClient action) => CoreImpl.OnClient(eventName, Function.Create(Core, action)); + + + public static Function OnceServer(string eventName, Action action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, Action action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, Action action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, Action action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, Action action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, Action action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, Action action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, + Action action) => CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, + Action action) => CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, + Action action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, + Action action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, + Action action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, + Action action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, + Action action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, + Action action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, + Action action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer( + string eventName, + Action action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, Func action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, Func action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, Func action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, Func action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, Func action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, Func action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, + Func action) => CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, + Func action) => CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, + Func action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, + Func action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, + Func action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, + Func action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, + Func action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, + Func action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer(string eventName, + Func action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer( + string eventName, + Func action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + public static Function OnceServer( + string eventName, + Func action) => + CoreImpl.OnServer(eventName, Function.Create(Core, action), true); + + + public static Function OnceClient(string eventName, Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Action action) => CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Action action) => CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient( + string eventName, + Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Func action) => CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Func action) => CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient( + string eventName, + Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient( + string eventName, + Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Action action) => CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Action action) => CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Action action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Func action) => CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Func action) => CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient(string eventName, + Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); + + public static Function OnceClient( + string eventName, + Func action) => + CoreImpl.OnClient(eventName, Function.Create(Core, action), true); } } \ No newline at end of file diff --git a/api/AltV.Net/Alt.Ped.cs b/api/AltV.Net/Alt.Ped.cs new file mode 100644 index 000000000..b6fb1524f --- /dev/null +++ b/api/AltV.Net/Alt.Ped.cs @@ -0,0 +1,18 @@ +using AltV.Net.Data; +using AltV.Net.Elements.Entities; +using AltV.Net.Enums; + +namespace AltV.Net +{ + public partial class Alt + { + public static IPed CreatePed(uint model, Position pos, Rotation rot, uint streamingDistance = 0) => + Core.CreatePed(model, pos, rot, streamingDistance); + + public static IPed CreatePed(PedModel model, Position pos, Rotation rot, uint streamingDistance = 0) => + Core.CreatePed((uint)model, pos, rot, streamingDistance); + + public static IPed CreatePed(string model, Position pos, Rotation rot, uint streamingDistance = 0) => + Core.CreatePed(Core.Hash(model), pos, rot, streamingDistance); + } +} \ No newline at end of file diff --git a/api/AltV.Net/Alt.RegisterEvents.cs b/api/AltV.Net/Alt.RegisterEvents.cs index d636be5b0..2a3244e9b 100644 --- a/api/AltV.Net/Alt.RegisterEvents.cs +++ b/api/AltV.Net/Alt.RegisterEvents.cs @@ -49,24 +49,6 @@ public static void RegisterEvents(object target) }; break; } - case ScriptEventType.PlayerBeforeConnect: - { - scriptFunction = ScriptFunction.Create(eventMethodDelegate, - new[] { typeof(PlayerConnectionInfo), typeof(string) }); - if (scriptFunction == null) return; - OnPlayerBeforeConnect += (connectionInfo, reason) => - { - scriptFunction.Set(connectionInfo); - scriptFunction.Set(reason); - if (scriptFunction.Call() is string value) - { - return value; - } - - return null; - }; - break; - } case ScriptEventType.PlayerDamage: { scriptFunction = ScriptFunction.Create(eventMethodDelegate, @@ -101,6 +83,22 @@ public static void RegisterEvents(object target) }; break; } + case ScriptEventType.PlayerHeal: + { + scriptFunction = ScriptFunction.Create(eventMethodDelegate, + new[] { typeof(IPlayer), typeof(ushort), typeof(ushort), typeof(ushort), typeof(ushort) }); + if (scriptFunction == null) return; + OnPlayerHeal += (player, oldHealth, newHealth, oldArmour, newArmour) => + { + scriptFunction.Set(player); + scriptFunction.Set(oldHealth); + scriptFunction.Set(newHealth); + scriptFunction.Set(oldArmour); + scriptFunction.Set(newArmour); + scriptFunction.Call(); + }; + break; + } case ScriptEventType.PlayerDisconnect: { scriptFunction = ScriptFunction.Create(eventMethodDelegate, @@ -138,6 +136,18 @@ public static void RegisterEvents(object target) }; break; } + case ScriptEventType.PedRemove: + { + scriptFunction = + ScriptFunction.Create(eventMethodDelegate, new[] { typeof(IPed) }); + if (scriptFunction == null) return; + OnPedRemove += ped => + { + scriptFunction.Set(ped); + scriptFunction.Call(); + }; + break; + } case ScriptEventType.PlayerChangeVehicleSeat: { scriptFunction = @@ -317,7 +327,7 @@ public static void RegisterEvents(object target) { typeof(IPlayer), typeof(IEntity), typeof(uint), typeof(ushort), typeof(Position), typeof(BodyPart) - }); + }, new[] {typeof(WeaponDamageResponse)}); if (scriptFunction == null) return; OnWeaponDamage += (player, targetEntity, weapon, damage, shotOffset, damageOffset) => @@ -328,12 +338,17 @@ public static void RegisterEvents(object target) scriptFunction.Set(damage); scriptFunction.Set(shotOffset); scriptFunction.Set(damageOffset); - if (scriptFunction.Call() is bool value) + if (scriptFunction.Call() is uint uintValue) { - return value; + return uintValue; } - return true; + if (scriptFunction.Call() is bool boolValue) + { + return boolValue; + } + + return 0; }; break; } @@ -360,7 +375,7 @@ public static void RegisterEvents(object target) { typeof(IPlayer), typeof(ExplosionType), typeof(Position), typeof(uint), typeof(IEntity) - }); + }, new[] {typeof(bool) }); if (scriptFunction == null) return; OnExplosion += (player, explosionType, position, explosionFx, targetEntity) => { @@ -384,7 +399,7 @@ public static void RegisterEvents(object target) new[] { typeof(IPlayer), typeof(FireInfo[]) - }); + }, new[] {typeof(bool) }); if (scriptFunction == null) return; OnFire += (player, fireInfos) => { @@ -406,7 +421,7 @@ public static void RegisterEvents(object target) { typeof(IPlayer), typeof(Position), typeof(Position), typeof(uint), typeof(uint) - }); + }, new[] {typeof(bool) }); if (scriptFunction == null) return; OnStartProjectile += (player, startPosition, direction, ammoHash, weaponHash) => { @@ -437,12 +452,7 @@ public static void RegisterEvents(object target) scriptFunction.Set(player); scriptFunction.Set(oldWeapon); scriptFunction.Set(newWeapon); - if (scriptFunction.Call() is bool value) - { - return value; - } - - return true; + scriptFunction.Call(); }; break; } @@ -519,6 +529,44 @@ public static void RegisterEvents(object target) }; break; } + case ScriptEventType.VehicleHorn: + { + scriptFunction = ScriptFunction.Create(eventMethodDelegate, + new[] + { + typeof(IVehicle), typeof(IPlayer), typeof(bool) + }, new[] {typeof(bool) }); + if (scriptFunction == null) return; + OnVehicleHorn += (targetVehicle, reporterPlayer, state) => + { + scriptFunction.Set(targetVehicle); + scriptFunction.Set(reporterPlayer); + scriptFunction.Set(state); + if (scriptFunction.Call() is bool value) + { + return value; + } + + return true; + }; + break; + } + case ScriptEventType.VehicleSiren: + { + scriptFunction = ScriptFunction.Create(eventMethodDelegate, + new[] + { + typeof(IVehicle), typeof(bool) + }); + if (scriptFunction == null) return; + OnVehicleSiren += (targetVehicle, state) => + { + scriptFunction.Set(targetVehicle); + scriptFunction.Set(state); + scriptFunction.Call(); + }; + break; + } case ScriptEventType.ConnectionQueueAdd: { scriptFunction = ScriptFunction.Create(eventMethodDelegate, @@ -633,6 +681,43 @@ public static void RegisterEvents(object target) }; break; } + case ScriptEventType.PlayerSpawn: + { + scriptFunction = ScriptFunction.Create(eventMethodDelegate, + new[] + { + typeof(IPlayer) + }); + if (scriptFunction == null) return; + OnPlayerSpawn += + (player) => + { + scriptFunction.Set(player); + scriptFunction.Call(); + }; + break; + } + case ScriptEventType.RequestSyncedScene: + { + scriptFunction = ScriptFunction.Create(eventMethodDelegate, + new[] + { + typeof(IPlayer), typeof(int) + }, new[] {typeof(bool) }); + if (scriptFunction == null) return; + OnRequestSyncScene += (source, sceneId) => + { + scriptFunction.Set(source); + scriptFunction.Set(sceneId); + if (scriptFunction.Call() is bool value) + { + return value; + } + + return true; + }; + break; + } default: throw new ArgumentOutOfRangeException(); } diff --git a/api/AltV.Net/Alt.Resource.cs b/api/AltV.Net/Alt.Resource.cs index 8eabb5779..0de9b8f3c 100644 --- a/api/AltV.Net/Alt.Resource.cs +++ b/api/AltV.Net/Alt.Resource.cs @@ -9,6 +9,7 @@ public partial class Alt public static void RestartResource(string name) => Core.RestartResource(name); public static INativeResource GetResource(string name) => Core.GetResource(name); + public static INativeResource[] GetAllResources() => Core.GetAllResources(); public static INativeResource Resource => Core.Resource; } diff --git a/api/AltV.Net/Alt.Vehicle.cs b/api/AltV.Net/Alt.Vehicle.cs index f345a848e..0b9512491 100644 --- a/api/AltV.Net/Alt.Vehicle.cs +++ b/api/AltV.Net/Alt.Vehicle.cs @@ -6,13 +6,13 @@ namespace AltV.Net { public partial class Alt { - public static IVehicle CreateVehicle(uint model, Position pos, Rotation rotation) => - Core.CreateVehicle(model, pos, rotation); + public static IVehicle CreateVehicle(uint model, Position pos, Rotation rotation, uint streamingDistance = 0) => + Core.CreateVehicle(model, pos, rotation, streamingDistance); - public static IVehicle CreateVehicle(VehicleModel model, Position pos, Rotation rotation) => - Core.CreateVehicle((uint) model, pos, rotation); + public static IVehicle CreateVehicle(VehicleModel model, Position pos, Rotation rotation, uint streamingDistance = 0) => + Core.CreateVehicle((uint) model, pos, rotation, streamingDistance); - public static IVehicle CreateVehicle(string model, Position pos, Rotation rotation) => - Core.CreateVehicle(Core.Hash(model), pos, rotation); + public static IVehicle CreateVehicle(string model, Position pos, Rotation rotation, uint streamingDistance = 0) => + Core.CreateVehicle(Core.Hash(model), pos, rotation, streamingDistance); } } \ No newline at end of file diff --git a/api/AltV.Net/Alt.VirtualEntity.cs b/api/AltV.Net/Alt.VirtualEntity.cs new file mode 100644 index 000000000..c0f8250eb --- /dev/null +++ b/api/AltV.Net/Alt.VirtualEntity.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; +using AltV.Net.Data; +using AltV.Net.Elements.Entities; + +namespace AltV.Net; + +public partial class Alt +{ + public static IVirtualEntityGroup CreateVirtualEntityGroup(uint maxEntitiesInStream) => + Core.CreateVirtualEntityGroup(maxEntitiesInStream); + + public static IVirtualEntity CreateVirtualEntity(IVirtualEntityGroup group, Position position, + uint streamingDistance, Dictionary dataDict) => + Core.CreateVirtualEntity(group, position, streamingDistance, dataDict); +} diff --git a/api/AltV.Net/Alt.cs b/api/AltV.Net/Alt.cs index 22aaded2e..93b056626 100644 --- a/api/AltV.Net/Alt.cs +++ b/api/AltV.Net/Alt.cs @@ -20,15 +20,6 @@ public static partial class Alt public static ICore Core => CoreImpl; internal static Core CoreImpl; - [Obsolete("Use Core instead")] - public static ICore Server - { - get - { - LogWarning("Alt.Server is deprecated, use Alt.Core instead"); - return Core; - } - } public static bool CacheEntities { get => AltShared.CacheEntities; set => AltShared.CacheEntities = value; } public static bool ThrowIfEntityDoesNotExist = false; @@ -42,90 +33,184 @@ public static void EmitAllClients(string eventName, params object[] args) => public static void EmitClients(IPlayer[] clients, string eventName, params object[] args) => Core.TriggerClientEventForSome(clients, eventName, args); + public static void EmitEventUnreliableAllClients(string eventName, params object[] args) => + Core.TriggerClientEventUnreliableForAll(eventName, args); + + public static void EmitUnreliableClients(IPlayer[] clients, string eventName, params object[] args) => + Core.TriggerClientEventUnreliableForSome(clients, eventName, args); + public static IEnumerable GetRegisteredClientEvents() => Core.GetRegisteredClientEvents(); public static IEnumerable GetRegisteredServerEvents() => Core.GetRegisteredServerEvents(); - + public static void Log(string message) => Core.LogInfo(message); - public static IReadOnlyCollection GetAllPlayers() => Core.PlayerPool.GetAllEntities(); + public static IReadOnlyCollection GetAllPlayers() => Core.PoolManager.Player.GetAllEntities(); + + public static IReadOnlyCollection GetAllVehicles() =>Core.PoolManager.Vehicle.GetAllEntities(); + + public static IReadOnlyCollection GetAllPeds() =>Core.PoolManager.Ped.GetAllEntities(); + + public static IReadOnlyCollection GetAllBlips() =>Core.PoolManager.Blip.GetAllObjects(); + + public static IReadOnlyCollection GetAllNetworkObjects() =>Core.PoolManager.Object.GetAllEntities(); + + public static IReadOnlyCollection GetAllCheckpoints() =>Core.PoolManager.Checkpoint.GetAllObjects(); + + public static IReadOnlyCollection GetAllVoiceChannels() =>Core.PoolManager.VoiceChannel.GetAllObjects(); + + public static IReadOnlyCollection GetAllColShapes() =>Core.PoolManager.ColShape.GetAllObjects(); - public static IReadOnlyCollection GetAllVehicles() => - Core.VehiclePool.GetAllEntities(); + public static IReadOnlyCollection GetAllMarkers() =>Core.PoolManager.Marker.GetAllObjects(); - public static IReadOnlyCollection GetAllBlips() => Core.BlipPool.GetAllObjects(); + public static IReadOnlyCollection GetAllConnectionInfos() => Core.PoolManager.ConnectionInfo.GetAllObjects(); - public static IReadOnlyCollection GetAllCheckpoints() => - Core.CheckpointPool.GetAllObjects(); + public static IReadOnlyCollection GetAllVirtualEntities() => Core.PoolManager.VirtualEntity.GetAllObjects(); - public static IReadOnlyCollection GetAllVoiceChannels() => - Core.VoiceChannelPool.GetAllObjects(); + public static IReadOnlyCollection GetAllVirtualEntityGroups() => Core.PoolManager.VirtualEntityGroup.GetAllObjects(); - public static IReadOnlyCollection GetAllColShapes() => - Core.ColShapePool.GetAllObjects(); + public static KeyValuePair[] GetPlayersArray() => Core.PoolManager.Player.GetEntitiesArray(); - public static KeyValuePair[] GetPlayersArray() => Core.PlayerPool.GetEntitiesArray(); + public static KeyValuePair[] GetVehiclesArray() => Core.PoolManager.Vehicle.GetEntitiesArray(); - public static KeyValuePair[] GetVehiclesArray() => Core.VehiclePool.GetEntitiesArray(); + public static KeyValuePair[] GetPedsArray() => Core.PoolManager.Ped.GetEntitiesArray(); - public static KeyValuePair[] GetBlipsArray() => Core.BlipPool.GetObjectsArray(); + public static KeyValuePair[] GetBlipsArray() => Core.PoolManager.Blip.GetObjectsArray(); - public static KeyValuePair[] GetCheckpointsArray() => - Core.CheckpointPool.GetObjectsArray(); + public static KeyValuePair[] GetCheckpointsArray() => Core.PoolManager.Checkpoint.GetObjectsArray(); - public static KeyValuePair[] GetVoiceChannelsArray() => - Core.VoiceChannelPool.GetObjectsArray(); + public static KeyValuePair[] GetVoiceChannelsArray() => Core.PoolManager.VoiceChannel.GetObjectsArray(); - public static KeyValuePair[] GetColShapesArray() => Core.ColShapePool.GetObjectsArray(); + public static KeyValuePair[] GetColShapesArray() => Core.PoolManager.ColShape.GetObjectsArray(); + public static KeyValuePair[] GetConnectionInfoArray() => Core.PoolManager.ConnectionInfo.GetObjectsArray(); public static void ForEachPlayers(IBaseObjectCallback baseObjectCallback) => - Core.PlayerPool.ForEach(baseObjectCallback); + Core.PoolManager.Player.ForEach(baseObjectCallback); public static Task ForEachPlayers(IAsyncBaseObjectCallback baseObjectCallback) => - Core.PlayerPool.ForEach(baseObjectCallback); + Core.PoolManager.Player.ForEach(baseObjectCallback); public static void ForEachVehicles(IBaseObjectCallback baseObjectCallback) => - Core.VehiclePool.ForEach(baseObjectCallback); + Core.PoolManager.Vehicle.ForEach(baseObjectCallback); public static Task ForEachVehicles(IAsyncBaseObjectCallback baseObjectCallback) => - Core.VehiclePool.ForEach(baseObjectCallback); + Core.PoolManager.Vehicle.ForEach(baseObjectCallback); + + public static void ForEachPeds(IBaseObjectCallback baseObjectCallback) => + Core.PoolManager.Ped.ForEach(baseObjectCallback); + + public static Task ForEachPeds(IAsyncBaseObjectCallback baseObjectCallback) => + Core.PoolManager.Ped.ForEach(baseObjectCallback); public static void ForEachBlips(IBaseObjectCallback baseObjectCallback) => - Core.BlipPool.ForEach(baseObjectCallback); + Core.PoolManager.Blip.ForEach(baseObjectCallback); public static Task ForEachBlips(IAsyncBaseObjectCallback baseObjectCallback) => - Core.BlipPool.ForEach(baseObjectCallback); + Core.PoolManager.Blip.ForEach(baseObjectCallback); public static void ForEachCheckpoints(IBaseObjectCallback baseObjectCallback) => - Core.CheckpointPool.ForEach(baseObjectCallback); + Core.PoolManager.Checkpoint.ForEach(baseObjectCallback); public static Task ForEachCheckpoints(IAsyncBaseObjectCallback baseObjectCallback) => - Core.CheckpointPool.ForEach(baseObjectCallback); + Core.PoolManager.Checkpoint.ForEach(baseObjectCallback); public static void ForEachVoiceChannels(IBaseObjectCallback baseObjectCallback) => - Core.VoiceChannelPool.ForEach(baseObjectCallback); + Core.PoolManager.VoiceChannel.ForEach(baseObjectCallback); public static Task ForEachVoiceChannels(IAsyncBaseObjectCallback baseObjectCallback) => - Core.VoiceChannelPool.ForEach(baseObjectCallback); - + Core.PoolManager.VoiceChannel.ForEach(baseObjectCallback); + public static void ForEachColShapes(IBaseObjectCallback baseObjectCallback) => - Core.ColShapePool.ForEach(baseObjectCallback); + Core.PoolManager.ColShape.ForEach(baseObjectCallback); public static Task ForEachColShapes(IAsyncBaseObjectCallback baseObjectCallback) => - Core.ColShapePool.ForEach(baseObjectCallback); + Core.PoolManager.ColShape.ForEach(baseObjectCallback); public static VehicleModelInfo GetVehicleModelInfo(uint hash) => Core.GetVehicleModelInfo(hash); public static VehicleModelInfo GetVehicleModelInfo(string name) => Core.GetVehicleModelInfo(Hash(name)); public static PedModelInfo? GetPedModelInfo(uint hash) => Core.GetPedModelInfo(hash); public static PedModelInfo? GetPedModelInfo(string name) => Core.GetPedModelInfo(Hash(name)); - + public static uint Hash(string stringToHash) => Core.Hash(stringToHash); public static ulong HashPassword(string password) => Core.HashPassword(password); - + public static bool FileExists(string path) => Core.FileExists(path); public static string ReadFile(string path) => Core.FileRead(path); public static byte[] ReadFileBinary(string path) => Core.FileReadBinary(path); public static IConfig GetServerConfig() => Core.GetServerConfig(); - public static IEntity GetEntityById(ushort id) => Core.GetEntityById(id); + public static IBaseObject GetBaseObjectById(BaseObjectType type, uint id) => Core.GetBaseObjectById(type, id); + + public static IMetric RegisterMetric(string name, MetricType type = MetricType.MetricTypeGauge, Dictionary dataDict = default) => Core.RegisterMetric(name, type, dataDict); + public static void UnregisterMetric(IMetric metric) => Core.UnregisterMetric(metric); + public static IReadOnlyCollection GetAllMetrics() => Core.GetAllMetrics(); + public static VoiceConnectionState GetVoiceConnectionState() => Core.GetVoiceConnectionState(); + + public static int NetTime => Core.NetTime; + + public static void AddClientConfigKey(string key) => Core.AddClientConfigKey(key); + + public static ushort MaxStreamingPeds + { + get => Core.MaxStreamingPeds; + set => Core.MaxStreamingPeds = value; + } + + public static ushort MaxStreamingObjects + { + get => Core.MaxStreamingObjects; + set => Core.MaxStreamingObjects = value; + } + public static ushort MaxStreamingVehicles + { + get => Core.MaxStreamingVehicles; + set => Core.MaxStreamingVehicles = value; + } + public static byte StreamerThreadCount + { + get => Core.StreamerThreadCount; + set => Core.StreamerThreadCount = value; + } + public static uint StreamingTickRate + { + get => Core.StreamingTickRate; + set => Core.StreamingTickRate = value; + } + public static uint StreamingDistance + { + get => Core.StreamingDistance; + set => Core.StreamingDistance = value; + } + public static uint ColShapeTickRate + { + get => Core.ColShapeTickRate; + set => Core.ColShapeTickRate = value; + } + public static uint MigrationDistance + { + get => Core.MigrationDistance; + set => Core.MigrationDistance = value; + } + public static byte MigrationThreadCount + { + get => Core.MigrationThreadCount; + set => Core.MigrationThreadCount = value; + } + public static uint MigrationTickRate + { + get => Core.MigrationTickRate; + set => Core.MigrationTickRate = value; + } + public static byte SyncReceiveThreadCount + { + get => Core.SyncReceiveThreadCount; + set => Core.SyncReceiveThreadCount = value; + } + public static byte SyncSendThreadCount + { + get => Core.SyncSendThreadCount; + set => Core.SyncSendThreadCount = value; + } + + public static bool HasBenefit(Benefit benefit) => Core.HasBenefit(benefit); } } \ No newline at end of file diff --git a/api/AltV.Net/CSharpResourceImpl.cs b/api/AltV.Net/CSharpResourceImpl.cs index 3ae8a3361..dffb498c4 100644 --- a/api/AltV.Net/CSharpResourceImpl.cs +++ b/api/AltV.Net/CSharpResourceImpl.cs @@ -52,10 +52,6 @@ internal void SetDelegates(AltNative.Resource.MainDelegate onStart) handles.AddFirst(GCHandle.Alloc(onPlayerConnect)); AltNative.Resource.CSharpResourceImpl_SetPlayerConnectDelegate(NativePointer, onPlayerConnect); - AltNative.Resource.PlayerBeforeConnectDelegate onPlayerBeforeConnect = ModuleWrapper.OnPlayerBeforeConnect; - handles.AddFirst(GCHandle.Alloc(onPlayerBeforeConnect)); - AltNative.Resource.CSharpResourceImpl_SetPlayerBeforeConnectDelegate(NativePointer, onPlayerBeforeConnect); - AltNative.Resource.PlayerConnectDeniedDelegate onPlayerConnectDenied = ModuleWrapper.OnPlayerConnectDenied; handles.AddFirst(GCHandle.Alloc(onPlayerConnectDenied)); AltNative.Resource.CSharpResourceImpl_SetPlayerConnectDeniedDelegate(NativePointer, onPlayerConnectDenied); @@ -76,6 +72,10 @@ internal void SetDelegates(AltNative.Resource.MainDelegate onStart) handles.AddFirst(GCHandle.Alloc(onPlayerDeath)); AltNative.Resource.CSharpResourceImpl_SetPlayerDeathDelegate(NativePointer, onPlayerDeath); + AltNative.Resource.PlayerHealDelegate onPlayerHeal = ModuleWrapper.OnPlayerHeal; + handles.AddFirst(GCHandle.Alloc(onPlayerHeal)); + AltNative.Resource.CSharpResourceImpl_SetPlayerHealDelegate(NativePointer, onPlayerHeal); + AltNative.Resource.ExplosionDelegate onExplosion = ModuleWrapper.OnExplosion; handles.AddFirst(GCHandle.Alloc(onExplosion)); AltNative.Resource.CSharpResourceImpl_SetExplosionDelegate(NativePointer, onExplosion); @@ -88,14 +88,6 @@ internal void SetDelegates(AltNative.Resource.MainDelegate onStart) handles.AddFirst(GCHandle.Alloc(onPlayerDisconnect)); AltNative.Resource.CSharpResourceImpl_SetPlayerDisconnectDelegate(NativePointer, onPlayerDisconnect); - AltNative.Resource.PlayerRemoveDelegate onPlayerRemove = ModuleWrapper.OnPlayerRemove; - handles.AddFirst(GCHandle.Alloc(onPlayerRemove)); - AltNative.Resource.CSharpResourceImpl_SetPlayerRemoveDelegate(NativePointer, onPlayerRemove); - - AltNative.Resource.VehicleRemoveDelegate onVehicleRemove = ModuleWrapper.OnVehicleRemove; - handles.AddFirst(GCHandle.Alloc(onVehicleRemove)); - AltNative.Resource.CSharpResourceImpl_SetVehicleRemoveDelegate(NativePointer, onVehicleRemove); - AltNative.Resource.PlayerChangeVehicleSeatDelegate onPlayerChangeVehicleSeat = ModuleWrapper.OnPlayerChangeVehicleSeat; handles.AddFirst(GCHandle.Alloc(onPlayerChangeVehicleSeat)); @@ -116,54 +108,6 @@ internal void SetDelegates(AltNative.Resource.MainDelegate onStart) handles.AddFirst(GCHandle.Alloc(onPlayerLeaveVehicle)); AltNative.Resource.CSharpResourceImpl_SetPlayerLeaveVehicleDelegate(NativePointer, onPlayerLeaveVehicle); - AltNative.Resource.CreatePlayerDelegate onCreatePlayer = ModuleWrapper.OnCreatePlayer; - handles.AddFirst(GCHandle.Alloc(onCreatePlayer)); - AltNative.Resource.CSharpResourceImpl_SetCreatePlayerDelegate(NativePointer, onCreatePlayer); - - AltNative.Resource.RemovePlayerDelegate onRemovePlayer = ModuleWrapper.OnRemovePlayer; - handles.AddFirst(GCHandle.Alloc(onRemovePlayer)); - AltNative.Resource.CSharpResourceImpl_SetRemovePlayerDelegate(NativePointer, onRemovePlayer); - - AltNative.Resource.CreateObjectDelegate onCreateObject = ModuleWrapper.OnCreateObject; - handles.AddFirst(GCHandle.Alloc(onCreatePlayer)); - AltNative.Resource.CSharpResourceImpl_SetCreateObjectDelegate(NativePointer, onCreateObject); - - AltNative.Resource.RemoveObjectDelegate onRemoveObject = ModuleWrapper.OnRemoveObject; - handles.AddFirst(GCHandle.Alloc(onRemoveObject)); - AltNative.Resource.CSharpResourceImpl_SetRemoveObjectDelegate(NativePointer, onRemoveObject); - - AltNative.Resource.CreateVehicleDelegate onCreateVehicle = ModuleWrapper.OnCreateVehicle; - handles.AddFirst(GCHandle.Alloc(onCreateVehicle)); - AltNative.Resource.CSharpResourceImpl_SetCreateVehicleDelegate(NativePointer, onCreateVehicle); - - AltNative.Resource.RemoveVehicleDelegate onRemoveVehicle = ModuleWrapper.OnRemoveVehicle; - handles.AddFirst(GCHandle.Alloc(onRemoveVehicle)); - AltNative.Resource.CSharpResourceImpl_SetRemoveVehicleDelegate(NativePointer, onRemoveVehicle); - - AltNative.Resource.CreateBlipDelegate onCreateBlip = ModuleWrapper.OnCreateBlip; - handles.AddFirst(GCHandle.Alloc(onCreateBlip)); - AltNative.Resource.CSharpResourceImpl_SetCreateBlipDelegate(NativePointer, onCreateBlip); - - AltNative.Resource.RemoveBlipDelegate onRemoveBlip = ModuleWrapper.OnRemoveBlip; - handles.AddFirst(GCHandle.Alloc(onRemoveBlip)); - AltNative.Resource.CSharpResourceImpl_SetRemoveBlipDelegate(NativePointer, onRemoveBlip); - - AltNative.Resource.CreateCheckpointDelegate onCreateCheckpoint = ModuleWrapper.OnCreateCheckpoint; - handles.AddFirst(GCHandle.Alloc(onCreateCheckpoint)); - AltNative.Resource.CSharpResourceImpl_SetCreateCheckpointDelegate(NativePointer, onCreateCheckpoint); - - AltNative.Resource.RemoveCheckpointDelegate onRemoveCheckpoint = ModuleWrapper.OnRemoveCheckpoint; - handles.AddFirst(GCHandle.Alloc(onRemoveCheckpoint)); - AltNative.Resource.CSharpResourceImpl_SetRemoveCheckpointDelegate(NativePointer, onRemoveCheckpoint); - - AltNative.Resource.CreateVoiceChannelDelegate onCreateVoiceChannel = ModuleWrapper.OnCreateVoiceChannel; - handles.AddFirst(GCHandle.Alloc(onCreateVoiceChannel)); - AltNative.Resource.CSharpResourceImpl_SetCreateVoiceChannelDelegate(NativePointer, onCreateVoiceChannel); - - AltNative.Resource.RemoveVoiceChannelDelegate onRemoveVoiceChannel = ModuleWrapper.OnRemoveVoiceChannel; - handles.AddFirst(GCHandle.Alloc(onRemoveVoiceChannel)); - AltNative.Resource.CSharpResourceImpl_SetRemoveVoiceChannelDelegate(NativePointer, onRemoveVoiceChannel); - AltNative.Resource.ConsoleCommandDelegate onConsoleCommand = ModuleWrapper.OnConsoleCommand; handles.AddFirst(GCHandle.Alloc(onConsoleCommand)); AltNative.Resource.CSharpResourceImpl_SetConsoleCommandDelegate(NativePointer, onConsoleCommand); @@ -176,14 +120,6 @@ internal void SetDelegates(AltNative.Resource.MainDelegate onStart) handles.AddFirst(GCHandle.Alloc(onSyncedMetaDataChange)); AltNative.Resource.CSharpResourceImpl_SetSyncedMetaChangeDelegate(NativePointer, onSyncedMetaDataChange); - AltNative.Resource.CreateColShapeDelegate onCreateColShape = ModuleWrapper.OnCreateColShape; - handles.AddFirst(GCHandle.Alloc(onCreateColShape)); - AltNative.Resource.CSharpResourceImpl_SetCreateColShapeDelegate(NativePointer, onCreateColShape); - - AltNative.Resource.RemoveColShapeDelegate onRemoveColShape = ModuleWrapper.OnRemoveColShape; - handles.AddFirst(GCHandle.Alloc(onRemoveColShape)); - AltNative.Resource.CSharpResourceImpl_SetRemoveColShapeDelegate(NativePointer, onRemoveColShape); - AltNative.Resource.ColShapeDelegate onColShape = ModuleWrapper.OnColShape; handles.AddFirst(GCHandle.Alloc(onColShape)); AltNative.Resource.CSharpResourceImpl_SetColShapeDelegate(NativePointer, onColShape); @@ -219,35 +155,109 @@ internal void SetDelegates(AltNative.Resource.MainDelegate onStart) AltNative.Resource.VehicleDamageDelegate onVehicleDamage = ModuleWrapper.OnVehicleDamage; handles.AddFirst(GCHandle.Alloc(onVehicleDamage)); AltNative.Resource.CSharpResourceImpl_SetVehicleDamageDelegate(NativePointer, onVehicleDamage); - + + AltNative.Resource.VehicleHornDelegate onVehicleHorn = ModuleWrapper.OnVehicleHorn; + handles.AddFirst(GCHandle.Alloc(onVehicleHorn)); + AltNative.Resource.CSharpResourceImpl_SetVehicleHornDelegate(NativePointer, onVehicleHorn); + AltNative.Resource.ConnectionQueueAddDelegate onConnectionQueueAdd = ModuleWrapper.OnConnectionQueueAdd; handles.AddFirst(GCHandle.Alloc(onConnectionQueueAdd)); AltNative.Resource.CSharpResourceImpl_SetConnectionQueueAddDelegate(NativePointer, onConnectionQueueAdd); - + AltNative.Resource.ConnectionQueueRemoveDelegate onConnectionQueueRemove = ModuleWrapper.OnConnectionQueueRemove; handles.AddFirst(GCHandle.Alloc(onConnectionQueueRemove)); AltNative.Resource.CSharpResourceImpl_SetConnectionQueueRemoveDelegate(NativePointer, onConnectionQueueRemove); - + AltNative.Resource.ServerStartedDelegate onServerStarted = ModuleWrapper.OnServerStarted; handles.AddFirst(GCHandle.Alloc(onServerStarted)); AltNative.Resource.CSharpResourceImpl_SetServerStartedDelegate(NativePointer, onServerStarted); - + AltNative.Resource.PlayerRequestControlDelegate onPlayerRequestControl = ModuleWrapper.OnPlayerRequestControl; handles.AddFirst(GCHandle.Alloc(onPlayerRequestControl)); AltNative.Resource.CSharpResourceImpl_SetPlayerRequestControlDelegate(NativePointer, onPlayerRequestControl); - + AltNative.Resource.PlayerChangeAnimationDelegate onPlayerChangeAnimation = ModuleWrapper.OnPlayerChangeAnimation; handles.AddFirst(GCHandle.Alloc(onPlayerChangeAnimation)); AltNative.Resource.CSharpResourceImpl_SetPlayerChangeAnimationDelegate(NativePointer, onPlayerChangeAnimation); - + AltNative.Resource.PlayerChangeInteriorDelegate onPlayerChangeInterior = ModuleWrapper.OnPlayerChangeInterior; handles.AddFirst(GCHandle.Alloc(onPlayerChangeInterior)); AltNative.Resource.CSharpResourceImpl_SetPlayerChangeInteriorDelegate(NativePointer, onPlayerChangeInterior); - + AltNative.Resource.PlayerDimensionChangeDelegate onPlayerDimensionChange = ModuleWrapper.OnPlayerDimensionChange; handles.AddFirst(GCHandle.Alloc(onPlayerDimensionChange)); AltNative.Resource.CSharpResourceImpl_SetPlayerDimensionChangeDelegate(NativePointer, onPlayerDimensionChange); - + + AltNative.Resource.VehicleSirenDelegate onVehicleSiren = ModuleWrapper.OnVehicleSiren; + handles.AddFirst(GCHandle.Alloc(onVehicleSiren)); + AltNative.Resource.CSharpResourceImpl_SetVehicleSirenDelegate(NativePointer, onVehicleSiren); + + AltNative.Resource.PlayerSpawnDelegate onPlayerSpawn = ModuleWrapper.OnPlayerSpawn; + handles.AddFirst(GCHandle.Alloc(onPlayerSpawn)); + AltNative.Resource.CSharpResourceImpl_SetPlayerSpawnDelegate(NativePointer, onPlayerSpawn); + + AltNative.Resource.CreateBaseObjectDelegate onCreateBaseObject = ModuleWrapper.OnCreateBaseObject; + handles.AddFirst(GCHandle.Alloc(onCreateBaseObject)); + AltNative.Resource.CSharpResourceImpl_SetCreateBaseObjectDelegate(NativePointer, onCreateBaseObject); + + AltNative.Resource.RemoveBaseObjectDelegate onRemoveRemoveBaseObject = ModuleWrapper.OnRemoveBaseObject; + handles.AddFirst(GCHandle.Alloc(onRemoveRemoveBaseObject)); + AltNative.Resource.CSharpResourceImpl_SetRemoveBaseObjectDelegate(NativePointer, onRemoveRemoveBaseObject); + + AltNative.Resource.RequestSyncedSceneDelegate onRequestSyncedSceneDelegate = + ModuleWrapper.OnRequestSyncedScene; + handles.AddFirst(GCHandle.Alloc(onRequestSyncedSceneDelegate)); + AltNative.Resource.CSharpResourceImpl_SetRequestSyncedSceneDelegate(NativePointer, onRequestSyncedSceneDelegate); + + AltNative.Resource.StartSyncedSceneDelegate onStartSyncedScene = + ModuleWrapper.OnStartSyncedScene; + handles.AddFirst(GCHandle.Alloc(onStartSyncedScene)); + AltNative.Resource.CSharpResourceImpl_SetStartSyncedSceneDelegate(NativePointer, onStartSyncedScene); + + AltNative.Resource.StopSyncedSceneDelegate onStopSyncedScene = + ModuleWrapper.OnStopSyncedScene; + handles.AddFirst(GCHandle.Alloc(onStopSyncedScene)); + AltNative.Resource.CSharpResourceImpl_SetStopSyncedSceneDelegate(NativePointer, onStopSyncedScene); + + AltNative.Resource.UpdateSyncedSceneDelegate onUpdateSyncedSceneDelegate = + ModuleWrapper.OnUpdateSyncedScene; + handles.AddFirst(GCHandle.Alloc(onUpdateSyncedSceneDelegate)); + AltNative.Resource.CSharpResourceImpl_SetUpdateSyncedSceneDelegate(NativePointer, onUpdateSyncedSceneDelegate); + + AltNative.Resource.GivePedScriptedTaskDelegate onGivePedScriptedTaskDelegate = + ModuleWrapper.OnGivePedScriptedTask; + handles.AddFirst(GCHandle.Alloc(onGivePedScriptedTaskDelegate)); + AltNative.Resource.CSharpResourceImpl_SetGivePedScriptedTaskDelegate(NativePointer, onGivePedScriptedTaskDelegate); + + + AltNative.Resource.PedDamageDelegate onPedDamage = ModuleWrapper.OnPedDamage; + handles.AddFirst(GCHandle.Alloc(onPedDamage)); + AltNative.Resource.CSharpResourceImpl_SetPedDamageDelegate(NativePointer, onPedDamage); + + AltNative.Resource.PedDeathDelegate onPedDeath = ModuleWrapper.OnPedDeath; + handles.AddFirst(GCHandle.Alloc(onPedDeath)); + AltNative.Resource.CSharpResourceImpl_SetPedDeathDelegate(NativePointer, onPedDeath); + + AltNative.Resource.PedHealDelegate onPedHeal = ModuleWrapper.OnPedHeal; + handles.AddFirst(GCHandle.Alloc(onPedHeal)); + AltNative.Resource.CSharpResourceImpl_SetPedHealDelegate(NativePointer, onPedHeal); + + AltNative.Resource.PlayerStartTalkingDelegate onPlayerStartTalking = ModuleWrapper.OnPlayerStartTalking; + handles.AddFirst(GCHandle.Alloc(onPlayerStartTalking)); + AltNative.Resource.CSharpResourceImpl_SetPlayerStartTalkingDelegate(NativePointer, onPlayerStartTalking); + + AltNative.Resource.PlayerStopTalkingDelegate onPlayerStopTalking = ModuleWrapper.OnPlayerStopTalking; + handles.AddFirst(GCHandle.Alloc(onPlayerStopTalking)); + AltNative.Resource.CSharpResourceImpl_SetPlayerStopTalkingDelegate(NativePointer, onPlayerStopTalking); + + AltNative.Resource.ScriptRPCDelegate onScriptRPC = ModuleWrapper.OnScriptRPC; + handles.AddFirst(GCHandle.Alloc(onScriptRPC)); + AltNative.Resource.CSharpResourceImpl_SetScriptRPCDelegate(NativePointer, onScriptRPC); + + AltNative.Resource.ScriptRPCAnswerDelegate onScriptRPCAnswer = ModuleWrapper.OnScriptRPCAnswer; + handles.AddFirst(GCHandle.Alloc(onScriptRPCAnswer)); + AltNative.Resource.CSharpResourceImpl_SetScriptRPCAnswerDelegate(this.NativePointer, onScriptRPCAnswer); + } public void Dispose() diff --git a/api/AltV.Net/CloudIDRequestException.cs b/api/AltV.Net/CloudIDRequestException.cs new file mode 100644 index 000000000..cb73e7363 --- /dev/null +++ b/api/AltV.Net/CloudIDRequestException.cs @@ -0,0 +1,12 @@ +using System; + +namespace AltV.Net +{ + public class CloudIDRequestException : Exception + { + internal CloudIDRequestException(string message) + : base(message) + { + } + } +} \ No newline at end of file diff --git a/api/AltV.Net/Core.Events.cs b/api/AltV.Net/Core.Events.cs index 26e115b80..d2895cd0c 100644 --- a/api/AltV.Net/Core.Events.cs +++ b/api/AltV.Net/Core.Events.cs @@ -1,7 +1,5 @@ -using System; -using System.Collections.Concurrent; +using System; using System.Collections.Generic; -using System.Diagnostics.Metrics; using System.Linq; using System.Reflection; using System.Runtime.InteropServices; @@ -10,9 +8,8 @@ using AltV.Net.Elements.Entities; using AltV.Net.Events; using AltV.Net.FunctionParser; -using AltV.Net.Native; +using AltV.Net.Shared.Elements.Entities; using AltV.Net.Shared.Events; -using AltV.Net.Types; namespace AltV.Net { @@ -24,9 +21,6 @@ public partial class Core internal readonly IEventHandler PlayerConnectEventHandler = new HashSetEventHandler(EventType.PLAYER_CONNECT); - internal readonly IEventHandler PlayerBeforeConnectEventHandler = - new HashSetEventHandler(EventType.PLAYER_BEFORE_CONNECT); - internal readonly IEventHandler PlayerConnectDeniedEventHandler = new HashSetEventHandler(EventType.PLAYER_CONNECT_DENIED); @@ -45,6 +39,9 @@ public partial class Core internal readonly IEventHandler PlayerDeadEventHandler = new HashSetEventHandler(EventType.PLAYER_DEATH); + internal readonly IEventHandler PlayerHealEventHandler = + new HashSetEventHandler(EventType.PLAYER_HEAL); + internal readonly IEventHandler ExplosionEventHandler = new HashSetEventHandler(EventType.EXPLOSION_EVENT); @@ -72,6 +69,9 @@ public partial class Core internal readonly IEventHandler VehicleRemoveEventHandler = new HashSetEventHandler(); + internal readonly IEventHandler PedRemoveEventHandler = + new HashSetEventHandler(); + internal readonly IEventHandler ConsoleCommandEventHandler = new HashSetEventHandler(EventType.CONSOLE_COMMAND_EVENT); @@ -108,35 +108,82 @@ public partial class Core internal readonly IEventHandler VehicleDamageEventHandler = new HashSetEventHandler(EventType.VEHICLE_DAMAGE); - private readonly ConcurrentDictionary connectionInfos = - new (); - + internal readonly IEventHandler VehicleHornEventHandler = + new HashSetEventHandler(EventType.VEHICLE_HORN); + internal readonly IEventHandler ConnectionQueueAddHandler = new HashSetEventHandler(EventType.CONNECTION_QUEUE_ADD); - + internal readonly IEventHandler ConnectionQueueRemoveHandler = new HashSetEventHandler(EventType.CONNECTION_QUEUE_REMOVE); - + internal readonly IEventHandler ServerStartedHandler = new HashSetEventHandler(EventType.SERVER_STARTED); - + internal readonly IEventHandler PlayerRequestControlHandler = new HashSetEventHandler(EventType.PLAYER_REQUEST_CONTROL); - + internal readonly IEventHandler PlayerChangeAnimationHandler = new HashSetEventHandler(EventType.PLAYER_CHANGE_ANIMATION_EVENT); - + internal readonly IEventHandler PlayerChangeInteriorHandler = new HashSetEventHandler(EventType.PLAYER_CHANGE_INTERIOR_EVENT); - + internal readonly IEventHandler PlayerDimensionChangeHandler = new HashSetEventHandler(EventType.PLAYER_DIMENSION_CHANGE); + internal readonly IEventHandler VehicleSirenHandler = + new HashSetEventHandler(EventType.VEHICLE_SIREN); + + internal readonly IEventHandler PlayerSpawnHandler = + new HashSetEventHandler(EventType.PLAYER_SPAWN); + + internal readonly IEventHandler RequestSyncedSceneHandler = + new HashSetEventHandler(EventType.REQUEST_SYNCED_SCENE); + + internal readonly IEventHandler StartSyncedSceneHandler = + new HashSetEventHandler(EventType.START_SYNCED_SCENE); + + internal readonly IEventHandler StopSyncedSceneHandler = + new HashSetEventHandler(EventType.STOP_SYNCED_SCENE); + + internal readonly IEventHandler UpdateSyncedSceneHandler = + new HashSetEventHandler(EventType.UPDATE_SYNCED_SCENE); + + internal readonly IEventHandler ClientRequestObjectHandler = + new HashSetEventHandler(EventType.CLIENT_REQUEST_OBJECT_EVENT); + + internal readonly IEventHandler ClientDeleteObjectHandler = + new HashSetEventHandler(EventType.CLIENT_DELETE_OBJECT_EVENT); + + internal readonly IEventHandler GivePedScriptedTaskHandler = + new HashSetEventHandler(EventType.GIVE_PED_SCRIPTED_TASK); + + internal readonly IEventHandler PedDamageEventHandler = + new HashSetEventHandler(EventType.PED_DAMAGE); + + internal readonly IEventHandler PedDeadEventHandler = + new HashSetEventHandler(EventType.PED_DEATH); + + internal readonly IEventHandler PedHealEventHandler = + new HashSetEventHandler(EventType.PED_HEAL); + + internal readonly IEventHandler PlayerStartTalkingHandler = + new HashSetEventHandler(EventType.PLAYER_START_TALKING); + + internal readonly IEventHandler PlayerStopTalkingHandler = + new HashSetEventHandler(EventType.PLAYER_STOP_TALKING); + + internal readonly IEventHandler ScriptRpcHandler = + new HashSetEventHandler(EventType.SCRIPT_RPC_EVENT); + + internal readonly IEventHandler ScriptRpcAnswerHandler = + new HashSetEventHandler(EventType.SCRIPT_RPC_ANSWER_EVENT); public void OnCheckpoint(IntPtr checkpointPointer, IntPtr entityPointer, BaseObjectType baseObjectType, bool state) { - var checkpoint = CheckpointPool.Get(checkpointPointer); + var checkpoint = PoolManager.Checkpoint.Get(checkpointPointer); if (checkpoint == null) { Console.WriteLine("OnCheckpoint Invalid checkpoint " + checkpointPointer + " " + entityPointer + " " + @@ -144,7 +191,9 @@ public void OnCheckpoint(IntPtr checkpointPointer, IntPtr entityPointer, BaseObj return; } - if (!BaseEntityPool.Get(entityPointer, baseObjectType, out var entity)) + var entity = (IWorldObject)PoolManager.Get(entityPointer, baseObjectType); + + if (entity is null) { Console.WriteLine("OnCheckpoint Invalid entity " + checkpointPointer + " " + entityPointer + " " + baseObjectType + " " + state); @@ -154,7 +203,7 @@ public void OnCheckpoint(IntPtr checkpointPointer, IntPtr entityPointer, BaseObj OnCheckPointEvent(checkpoint, entity, state); } - public virtual void OnCheckPointEvent(ICheckpoint checkpoint, IEntity entity, bool state) + public virtual void OnCheckPointEvent(ICheckpoint checkpoint, IWorldObject entity, bool state) { foreach (var @delegate in CheckpointEventHandler.GetEvents()) { @@ -173,12 +222,12 @@ public virtual void OnCheckPointEvent(ICheckpoint checkpoint, IEntity entity, bo } } - public void OnPlayerConnect(IntPtr playerPointer, ushort playerId, string reason) + public void OnPlayerConnect(IntPtr playerPointer, string reason) { - var player = PlayerPool.Get(playerPointer); + var player = PoolManager.Player.Get(playerPointer); if (player == null) { - Console.WriteLine("OnPlayerConnect Invalid player " + playerPointer + " " + playerId + " " + + Console.WriteLine("OnPlayerConnect Invalid player " + playerPointer + " " + reason); return; } @@ -204,67 +253,31 @@ public virtual void OnPlayerConnectEvent(IPlayer player, string reason) } } } - - public void OnPlayerBeforeConnect(IntPtr eventPointer, PlayerConnectionInfo connectionInfo, string reason) - { - OnPlayerBeforeConnectEvent(eventPointer, connectionInfo, reason); - } - - public virtual void OnPlayerBeforeConnectEvent(IntPtr eventPointer, PlayerConnectionInfo connectionInfo, string reason) - { - if (!PlayerBeforeConnectEventHandler.HasEvents()) return; - string cancel = null; - foreach (var @delegate in PlayerBeforeConnectEventHandler.GetEvents()) - { - try - { - if (@delegate(connectionInfo, reason) is string cancelReason) - { - cancel = cancelReason; - } - } - catch (TargetInvocationException exception) - { - Alt.Log("exception at event:" + "OnPlayerBeforeConnectEvent" + ":" + exception.InnerException); - } - catch (Exception exception) - { - Alt.Log("exception at event:" + "OnPlayerBeforeConnectEvent" + ":" + exception); - } - } - - if (cancel != null) - { - unsafe - { - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(cancel); - Alt.Core.Library.Server.Event_PlayerBeforeConnect_Cancel(eventPointer, stringPtr); - Marshal.FreeHGlobal(stringPtr); - } - } - } - public void onPlayerConnectDenied(PlayerConnectDeniedReason reason, string name, string ip, ulong passwordHash, bool isDebug, string branch, uint majorVersion, string cdnUrl, long discordId) + public void OnPlayerConnectDenied(PlayerConnectDeniedReason reason, string name, string ip, ulong passwordHash, + bool isDebug, string branch, uint majorVersion, string cdnUrl, long discordId) { - onPlayerConnectDeniedEvent(reason, name, ip, passwordHash, isDebug, branch,majorVersion, cdnUrl, discordId); + OnPlayerConnectDeniedEvent(reason, name, ip, passwordHash, isDebug, branch, majorVersion, cdnUrl, + discordId); } - public virtual void onPlayerConnectDeniedEvent(PlayerConnectDeniedReason reason, string name, string ip, ulong passwordHash, bool isDebug, string branch, uint majorVersion, string cdnUrl, long discordId) + public virtual void OnPlayerConnectDeniedEvent(PlayerConnectDeniedReason reason, string name, string ip, + ulong passwordHash, bool isDebug, string branch, uint majorVersion, string cdnUrl, long discordId) { foreach (var @delegate in PlayerConnectDeniedEventHandler.GetEvents()) { try { - @delegate(reason, name, ip, passwordHash, isDebug, branch,majorVersion, cdnUrl, discordId); + @delegate(reason, name, ip, passwordHash, isDebug, branch, majorVersion, cdnUrl, discordId); } catch (TargetInvocationException exception) { - Alt.Log("exception at event:" + "onPlayerConnectDeniedEvent" + ":" + exception.InnerException); + Alt.Log("exception at event:" + "OnPlayerConnectDeniedEvent" + ":" + exception.InnerException); } catch (Exception exception) { - Alt.Log("exception at event:" + "onPlayerConnectDeniedEvent" + ":" + exception); + Alt.Log("exception at event:" + "OnPlayerConnectDeniedEvent" + ":" + exception); } } } @@ -348,24 +361,24 @@ public virtual void OnResourceErrorEvent(INativeResource resource) } public void OnPlayerDamage(IntPtr playerPointer, IntPtr attackerEntityPointer, - BaseObjectType attackerBaseObjectType, - ushort attackerEntityId, uint weapon, ushort healthDamage, ushort armourDamage) + BaseObjectType attackerBaseObjectType, uint weapon, ushort healthDamage, ushort armourDamage) { - var player = PlayerPool.Get(playerPointer); - if (player == null) + var player = PoolManager.Player.Get(playerPointer); + if (player == null) { Console.WriteLine("OnPlayerDamage Invalid player " + playerPointer + " " + attackerEntityPointer + " " + - attackerBaseObjectType + " " + attackerEntityId + " " + weapon + " " + healthDamage + " " + armourDamage); + attackerBaseObjectType + " " + weapon + " " + healthDamage + + " " + armourDamage); return; } - BaseEntityPool.Get(attackerEntityPointer, attackerBaseObjectType, - out var attacker); + var attacker = (IEntity)PoolManager.Get(attackerEntityPointer, attackerBaseObjectType); OnPlayerDamageEvent(player, attacker, weapon, healthDamage, armourDamage); } - public virtual void OnPlayerDamageEvent(IPlayer player, IEntity attacker, uint weapon, ushort healthDamage, ushort armourDamage) + public virtual void OnPlayerDamageEvent(IPlayer player, IEntity attacker, uint weapon, ushort healthDamage, + ushort armourDamage) { foreach (var @delegate in PlayerDamageEventHandler.GetEvents()) { @@ -387,15 +400,15 @@ public virtual void OnPlayerDamageEvent(IPlayer player, IEntity attacker, uint w public void OnPlayerDeath(IntPtr playerPointer, IntPtr killerEntityPointer, BaseObjectType killerBaseObjectType, uint weapon) { - var player = PlayerPool.Get(playerPointer); - if (player == null) + var player = PoolManager.Player.Get(playerPointer); + if (player == null) { Console.WriteLine("OnPlayerDeath Invalid player " + playerPointer + " " + killerEntityPointer + " " + killerBaseObjectType + " " + weapon); return; } - BaseEntityPool.Get(killerEntityPointer, killerBaseObjectType, out var killer); + var killer = (IEntity)PoolManager.Get(killerEntityPointer, killerBaseObjectType); OnPlayerDeathEvent(player, killer, weapon); } @@ -419,18 +432,52 @@ public virtual void OnPlayerDeathEvent(IPlayer player, IEntity killer, uint weap } } + public void OnPlayerHeal(IntPtr playerPointer, ushort oldHealth, ushort newHealth, ushort oldArmour, + ushort newArmour) + { + var player = PoolManager.Player.Get(playerPointer); + if (player == null) + { + Console.WriteLine("OnPlayerHeal Invalid player " + playerPointer + " " + oldHealth + " " + + newHealth + " " + oldArmour + " " + newArmour); + return; + } + + OnPlayerHealEvent(player, oldHealth, newHealth, oldArmour, newArmour); + } + + public virtual void OnPlayerHealEvent(IPlayer player, ushort oldHealth, ushort newHealth, ushort oldArmour, + ushort newArmour) + { + foreach (var @delegate in PlayerHealEventHandler.GetEvents()) + { + try + { + @delegate(player, oldHealth, newHealth, oldArmour, newArmour); + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnPlayerHealEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnPlayerHealEvent" + ":" + exception); + } + } + } + public void OnExplosion(IntPtr eventPointer, IntPtr playerPointer, ExplosionType explosionType, Position position, uint explosionFx, IntPtr targetEntityPointer, BaseObjectType targetEntityType) { - var sourcePlayer = PlayerPool.Get(playerPointer); - if (sourcePlayer == null) + var sourcePlayer = PoolManager.Player.Get(playerPointer); + if (sourcePlayer == null) { Console.WriteLine("OnExplosion Invalid player " + playerPointer + " " + explosionType + " " + position + " " + explosionFx); return; } - BaseEntityPool.Get(targetEntityPointer, targetEntityType, out var targetEntity); + var targetEntity = (IEntity)PoolManager.Get(targetEntityPointer, targetEntityType); OnExplosionEvent(eventPointer, sourcePlayer, explosionType, position, explosionFx, targetEntity); } @@ -472,15 +519,15 @@ public void OnWeaponDamage(IntPtr eventPointer, IntPtr playerPointer, IntPtr ent BaseObjectType entityType, uint weapon, ushort damage, Position shotOffset, BodyPart bodyPart) { - var sourcePlayer = PlayerPool.Get(playerPointer); - if (sourcePlayer == null) + var sourcePlayer = PoolManager.Player.Get(playerPointer); + if (sourcePlayer == null) { Console.WriteLine("OnWeaponDamage Invalid player " + playerPointer + " " + entityPointer + " " + entityType + " " + weapon + " " + damage + " " + shotOffset + " " + bodyPart); return; } - BaseEntityPool.Get(entityPointer, entityType, out var targetEntity); + var targetEntity = (IEntity)PoolManager.Get(entityPointer, entityType); OnWeaponDamageEvent(eventPointer, sourcePlayer, targetEntity, weapon, damage, shotOffset, bodyPart); } @@ -489,15 +536,23 @@ public virtual void OnWeaponDamageEvent(IntPtr eventPointer, IPlayer sourcePlaye uint weapon, ushort damage, Position shotOffset, BodyPart bodyPart) { + uint? weaponDamage = null; var cancel = false; foreach (var @delegate in WeaponDamageEventHandler.GetEvents()) { try { - if (!@delegate(sourcePlayer, targetEntity, weapon, damage, shotOffset, bodyPart)) + var result = @delegate(sourcePlayer, targetEntity, weapon, damage, shotOffset, bodyPart); + + if (!result.notCancel) { cancel = true; } + + if (result.Damage.HasValue) + { + weaponDamage ??= result.Damage.Value; + } } catch (TargetInvocationException exception) { @@ -509,6 +564,14 @@ public virtual void OnWeaponDamageEvent(IntPtr eventPointer, IPlayer sourcePlaye } } + if (weaponDamage is not null) + { + unsafe + { + Alt.Core.Library.Server.Event_WeaponDamageEvent_SetDamageValue(eventPointer, weaponDamage.Value); + } + } + if (cancel) { unsafe @@ -521,22 +584,42 @@ public virtual void OnWeaponDamageEvent(IntPtr eventPointer, IPlayer sourcePlaye public void OnPlayerChangeVehicleSeat(IntPtr vehiclePointer, IntPtr playerPointer, byte oldSeat, byte newSeat) { - var vehicle = VehiclePool.Get(vehiclePointer); - if (vehicle == null) + var vehicle = PoolManager.Vehicle.Get(vehiclePointer); + if (vehicle == null) { - Console.WriteLine("OnPlayerChangeVehicleSeat Invalid vehicle " + vehiclePointer + " " + playerPointer + " " + + Console.WriteLine("OnPlayerChangeVehicleSeat Invalid vehicle " + vehiclePointer + " " + playerPointer + + " " + oldSeat + " " + newSeat); return; } - var player = PlayerPool.Get(playerPointer); - if (player == null) + var player = PoolManager.Player.Get(playerPointer); + if (player == null) { - Console.WriteLine("OnPlayerChangeVehicleSeat Invalid player " + vehiclePointer + " " + playerPointer + " " + + Console.WriteLine("OnPlayerChangeVehicleSeat Invalid player " + vehiclePointer + " " + playerPointer + + " " + oldSeat + " " + newSeat); return; } + if (VehiclePassengers.TryGetValue(vehiclePointer, out var passengers)) + { + if (passengers.Exists(x => x.PlayerPointer == playerPointer)) + { + var playerSeat = passengers.First(x => x.PlayerPointer == playerPointer); + playerSeat.Seat = newSeat; + } + else + { + passengers.Add(new InternalPlayerSeat { PlayerPointer = playerPointer, Seat = newSeat }); + } + } + else + { + VehiclePassengers[vehiclePointer] = new List + { new() { PlayerPointer = playerPointer, Seat = newSeat } }; + } + OnPlayerChangeVehicleSeatEvent(vehicle, player, oldSeat, newSeat); } @@ -561,22 +644,40 @@ public virtual void OnPlayerChangeVehicleSeatEvent(IVehicle vehicle, IPlayer pla public void OnPlayerEnterVehicle(IntPtr vehiclePointer, IntPtr playerPointer, byte seat) { - var vehicle = VehiclePool.Get(vehiclePointer); - if (vehicle == null) + var vehicle = PoolManager.Vehicle.Get(vehiclePointer); + if (vehicle == null) { Console.WriteLine("OnPlayerEnterVehicle Invalid vehicle " + vehiclePointer + " " + playerPointer + " " + seat); return; } - var player = PlayerPool.Get(playerPointer); - if (player == null) + var player = PoolManager.Player.Get(playerPointer); + if (player == null) { Console.WriteLine("OnPlayerEnterVehicle Invalid player " + vehiclePointer + " " + playerPointer + " " + seat); return; } + if (VehiclePassengers.TryGetValue(vehiclePointer, out var passengers)) + { + if (passengers.Exists(x => x.PlayerPointer == playerPointer)) + { + var playerSeat = passengers.First(x => x.PlayerPointer == playerPointer); + playerSeat.Seat = seat; + } + else + { + passengers.Add(new InternalPlayerSeat { PlayerPointer = playerPointer, Seat = seat }); + } + } + else + { + VehiclePassengers[vehiclePointer] = new List + { new() { PlayerPointer = playerPointer, Seat = seat } }; + } + OnPlayerEnterVehicleEvent(vehicle, player, seat); } @@ -601,22 +702,40 @@ public virtual void OnPlayerEnterVehicleEvent(IVehicle vehicle, IPlayer player, public void OnPlayerEnteringVehicle(IntPtr vehiclePointer, IntPtr playerPointer, byte seat) { - var vehicle = VehiclePool.Get(vehiclePointer); - if (vehicle == null) + var vehicle = PoolManager.Vehicle.Get(vehiclePointer); + if (vehicle == null) { Console.WriteLine("OnPlayerEnteringVehicle Invalid vehicle " + vehiclePointer + " " + playerPointer + " " + seat); return; } - var player = PlayerPool.Get(playerPointer); - if (player == null) + var player = PoolManager.Player.Get(playerPointer); + if (player == null) { Console.WriteLine("OnPlayerEnteringVehicle Invalid player " + vehiclePointer + " " + playerPointer + " " + seat); return; } + if (VehiclePassengers.TryGetValue(vehiclePointer, out var passengers)) + { + if (passengers.Exists(x => x.PlayerPointer == playerPointer)) + { + var playerSeat = passengers.First(x => x.PlayerPointer == playerPointer); + playerSeat.Seat = seat; + } + else + { + passengers.Add(new InternalPlayerSeat { PlayerPointer = playerPointer, Seat = seat }); + } + } + else + { + VehiclePassengers[vehiclePointer] = new List + { new() { PlayerPointer = playerPointer, Seat = seat } }; + } + OnPlayerEnteringVehicleEvent(vehicle, player, seat); } @@ -641,22 +760,36 @@ public virtual void OnPlayerEnteringVehicleEvent(IVehicle vehicle, IPlayer playe public void OnPlayerLeaveVehicle(IntPtr vehiclePointer, IntPtr playerPointer, byte seat) { - var vehicle = VehiclePool.Get(vehiclePointer); - if (vehicle == null) + var vehicle = PoolManager.Vehicle.Get(vehiclePointer); + if (vehicle == null) { Console.WriteLine("OnPlayerLeaveVehicle Invalid vehicle " + vehiclePointer + " " + playerPointer + " " + seat); return; } - var player = PlayerPool.Get(playerPointer); - if (player == null) + var player = PoolManager.Player.Get(playerPointer); + if (player == null) { Console.WriteLine("OnPlayerLeaveVehicle Invalid player " + vehiclePointer + " " + playerPointer + " " + seat); return; } + if (VehiclePassengers.TryGetValue(vehiclePointer, out var passengers)) + { + if (passengers.Exists(x => x.PlayerPointer == playerPointer)) + { + var playerSeat = passengers.First(x => x.PlayerPointer == playerPointer); + passengers.Remove(playerSeat); + } + + if (!passengers.Any()) + { + VehiclePassengers.Remove(vehiclePointer); + } + } + OnPlayerLeaveVehicleEvent(vehicle, player, seat); } @@ -681,8 +814,8 @@ public virtual void OnPlayerLeaveVehicleEvent(IVehicle vehicle, IPlayer player, public void OnPlayerDisconnect(IntPtr playerPointer, string reason) { - var player = PlayerPool.Get(playerPointer); - if (player == null) + var player = PoolManager.Player.Get(playerPointer); + if (player == null) { Console.WriteLine("OnPlayerDisconnect Invalid player " + playerPointer + " " + reason); return; @@ -710,69 +843,6 @@ public virtual void OnPlayerDisconnectEvent(IPlayer player, string reason) } } - public void OnPlayerRemove(IntPtr playerPointer) - { - var player = PlayerPool.Get(playerPointer); - if (player == null) - { - Console.WriteLine("OnPlayerRemove Invalid player " + playerPointer); - return; - } - - OnPlayerRemoveEvent(player); - } - - public virtual void OnPlayerRemoveEvent(IPlayer player) - { - foreach (var @delegate in PlayerRemoveEventHandler.GetEvents()) - { - try - { - @delegate(player); - } - catch (TargetInvocationException exception) - { - Alt.Log("exception at event:" + "OnPlayerRemoveEvent" + ":" + exception.InnerException); - } - catch (Exception exception) - { - Alt.Log("exception at event:" + "OnPlayerRemoveEvent" + ":" + exception); - } - } - } - - public void OnVehicleRemove(IntPtr vehiclePointer) - { - var vehicle = VehiclePool.Get(vehiclePointer); - if (vehicle == null) - { - Console.WriteLine("OnVehicleRemove Invalid vehicle " + vehiclePointer); - return; - } - - OnVehicleRemoveEvent(vehicle); - } - - public virtual void OnVehicleRemoveEvent(IVehicle vehicle) - { - foreach (var @delegate in VehicleRemoveEventHandler.GetEvents()) - { - try - { - @delegate(vehicle); - } - catch (TargetInvocationException exception) - { - Alt.Log("exception at event:" + "OnVehicleRemoveEvent" + ":" + exception.InnerException); - } - catch (Exception exception) - { - Alt.Log("exception at event:" + "OnVehicleRemoveEvent" + ":" + exception); - } - } - } - - public void OnConsoleCommand(string name, string[] args) { if (ConsoleCommandEventHandler.HasEvents()) @@ -804,9 +874,11 @@ public virtual void OnConsoleCommandEvent(string name, string[] args) public void OnMetaDataChange(IntPtr entityPointer, BaseObjectType entityType, string key, IntPtr value) { - if (!BaseEntityPool.Get(entityPointer, entityType, out var entity)) + var entity = (IEntity)PoolManager.Get(entityPointer, entityType); + if (entity is null) { - Console.WriteLine("OnMetaDataChange Invalid entity " + entityPointer + " " + entityType + " " + key + " " + value); + Console.WriteLine("OnMetaDataChange Invalid entity " + entityPointer + " " + entityType + " " + key + + " " + value); return; } @@ -836,9 +908,11 @@ public virtual void OnMetaDataChangeEvent(IEntity entity, string key, object val public void OnSyncedMetaDataChange(IntPtr entityPointer, BaseObjectType entityType, string key, IntPtr value) { - if (!BaseEntityPool.Get(entityPointer, entityType, out var entity)) + var entity = (IEntity)PoolManager.Get(entityPointer, entityType); + if (entity is null) { - Console.WriteLine("OnSyncedMetaDataChange Invalid entity " + entityPointer + " " + entityType + " " + key + " " + value); + Console.WriteLine("OnSyncedMetaDataChange Invalid entity " + entityPointer + " " + entityType + " " + + key + " " + value); return; } @@ -868,23 +942,27 @@ public virtual void OnSyncedMetaDataChangeEvent(IEntity entity, string key, obje public void OnColShape(IntPtr colShapePointer, IntPtr targetEntityPointer, BaseObjectType entityType, bool state) { - var colShape = ColShapePool.Get(colShapePointer); + var colShape = PoolManager.ColShape.Get(colShapePointer); if (colShape == null) { - Console.WriteLine("OnColShape Invalid colshape " + colShapePointer + " " + targetEntityPointer + " " + entityType + " " + state); + Console.WriteLine("OnColShape Invalid colshape " + colShapePointer + " " + targetEntityPointer + " " + + entityType + " " + state); return; } - if (!BaseEntityPool.Get(targetEntityPointer, entityType, out var entity)) + var entity = (IWorldObject)PoolManager.Get(targetEntityPointer, entityType); + + if (entity is null) { - Console.WriteLine("OnColShape Invalid entity " + colShapePointer + " " + targetEntityPointer + " " + entityType + " " + state); + Console.WriteLine("OnColShape Invalid entity " + colShapePointer + " " + targetEntityPointer + " " + + entityType + " " + state); return; } OnColShapeEvent(colShape, entity, state); } - public virtual void OnColShapeEvent(IColShape colShape, IEntity entity, bool state) + public virtual void OnColShapeEvent(IColShape colShape, IWorldObject entity, bool state) { if (!ColShapeEventHandler.HasEvents()) return; foreach (var eventHandler in ColShapeEventHandler.GetEvents()) @@ -906,8 +984,8 @@ public virtual void OnColShapeEvent(IColShape colShape, IEntity entity, bool sta public void OnVehicleDestroy(IntPtr vehiclePointer) { - var vehicle = VehiclePool.Get(vehiclePointer); - if (vehicle == null) + var vehicle = PoolManager.Vehicle.Get(vehiclePointer); + if (vehicle == null) { Console.WriteLine("OnVehicleDestroy Invalid vehicle " + vehiclePointer); return; @@ -938,8 +1016,8 @@ public virtual void OnVehicleDestroyEvent(IVehicle vehicle) public void OnFire(IntPtr eventPointer, IntPtr playerPointer, FireInfo[] fires) { - var player = PlayerPool.Get(playerPointer); - if (player == null) + var player = PoolManager.Player.Get(playerPointer); + if (player == null) { Console.WriteLine("OnFire Invalid player " + playerPointer); return; @@ -980,9 +1058,10 @@ public virtual void OnFireEvent(IntPtr eventPointer, IPlayer player, FireInfo[] } } - public void OnStartProjectile(IntPtr eventPointer, IntPtr sourcePlayerPointer, Position startPosition, Position direction, uint ammoHash, uint weaponHash) + public void OnStartProjectile(IntPtr eventPointer, IntPtr sourcePlayerPointer, Position startPosition, + Position direction, uint ammoHash, uint weaponHash) { - var player = PlayerPool.Get(sourcePlayerPointer); + var player = PoolManager.Player.Get(sourcePlayerPointer); if (player == null) { Console.WriteLine("OnStartProjectile Invalid player " + sourcePlayerPointer); @@ -992,7 +1071,8 @@ public void OnStartProjectile(IntPtr eventPointer, IntPtr sourcePlayerPointer, P OnStartProjectileEvent(eventPointer, player, startPosition, direction, ammoHash, weaponHash); } - public virtual void OnStartProjectileEvent(IntPtr eventPointer, IPlayer player, Position startPosition, Position direction, uint ammoHash, uint weaponHash) + public virtual void OnStartProjectileEvent(IntPtr eventPointer, IPlayer player, Position startPosition, + Position direction, uint ammoHash, uint weaponHash) { if (!StartProjectileEventHandler.HasEvents()) return; var cancel = false; @@ -1024,10 +1104,11 @@ public virtual void OnStartProjectileEvent(IntPtr eventPointer, IPlayer player, } } - public void OnPlayerWeaponChange(IntPtr eventPointer, IntPtr targetPlayerPointer, uint oldWeapon, uint newWeapon) + public void OnPlayerWeaponChange(IntPtr eventPointer, IntPtr targetPlayerPointer, uint oldWeapon, + uint newWeapon) { - var player = PlayerPool.Get(targetPlayerPointer); - if (player == null) + var player = PoolManager.Player.Get(targetPlayerPointer); + if (player == null) { Console.WriteLine("OnPlayerWeaponChange Invalid player " + targetPlayerPointer); return; @@ -1036,18 +1117,15 @@ public void OnPlayerWeaponChange(IntPtr eventPointer, IntPtr targetPlayerPointer OnPlayerWeaponChangeEvent(eventPointer, player, oldWeapon, newWeapon); } - public virtual void OnPlayerWeaponChangeEvent(IntPtr eventPointer, IPlayer player, uint oldWeapon, uint newWeapon) + public virtual void OnPlayerWeaponChangeEvent(IntPtr eventPointer, IPlayer player, uint oldWeapon, + uint newWeapon) { if (!PlayerWeaponChangeEventHandler.HasEvents()) return; - var cancel = false; foreach (var @delegate in PlayerWeaponChangeEventHandler.GetEvents()) { try { - if (!@delegate(player, oldWeapon, newWeapon)) - { - cancel = true; - } + @delegate(player, oldWeapon, newWeapon); } catch (TargetInvocationException exception) { @@ -1058,26 +1136,21 @@ public virtual void OnPlayerWeaponChangeEvent(IntPtr eventPointer, IPlayer playe Alt.Log("exception at event:" + "OnPlayerWeaponChangeEvent" + ":" + exception); } } - - if (cancel) - { - unsafe - { - Alt.Core.Library.Shared.Event_Cancel(eventPointer); - } - } } - public void OnNetOwnerChange(IntPtr eventPointer, IntPtr targetEntityPointer, BaseObjectType targetEntityType, IntPtr oldNetOwnerPointer, IntPtr newNetOwnerPointer) + public void OnNetOwnerChange(IntPtr eventPointer, IntPtr targetEntityPointer, BaseObjectType targetEntityType, + IntPtr oldNetOwnerPointer, IntPtr newNetOwnerPointer) { - if (!BaseEntityPool.Get(targetEntityPointer, targetEntityType, out var targetEntity)) + var targetEntity = (IEntity)PoolManager.Get(targetEntityPointer, targetEntityType); + if (targetEntity is null) { - Console.WriteLine("OnNetOwnerChange Invalid targetEntity " + targetEntity); + Console.WriteLine("OnNetOwnerChange Invalid targetEntity " + targetEntityPointer + " " + + targetEntityType); return; } - var oldPlayer = PlayerPool.Get(oldNetOwnerPointer); - var newPlayer = PlayerPool.Get(newNetOwnerPointer); + var oldPlayer = PoolManager.Player.Get(oldNetOwnerPointer); + var newPlayer = PoolManager.Player.Get(newNetOwnerPointer); OnNetOwnerChangeEvent(targetEntity, oldPlayer, newPlayer); } @@ -1104,14 +1177,14 @@ public virtual void OnNetOwnerChangeEvent(IEntity targetEntity, IPlayer oldPlaye public void OnVehicleAttach(IntPtr eventPointer, IntPtr targetPointer, IntPtr attachedPointer) { - var targetVehicle = VehiclePool.Get(targetPointer); + var targetVehicle = PoolManager.Vehicle.Get(targetPointer); if (targetVehicle == null) { - Console.WriteLine("OnVehicleAttach Invalid targetVehicle " + targetVehicle); + Console.WriteLine("OnVehicleAttach Invalid targetVehicle " + targetPointer); return; } - var attachedVehicle = VehiclePool.Get(attachedPointer); + var attachedVehicle = PoolManager.Vehicle.Get(attachedPointer); if (attachedVehicle == null) { Console.WriteLine("OnVehicleAttach Invalid attachedVehicle " + attachedPointer); @@ -1143,15 +1216,15 @@ public virtual void OnVehicleAttachEvent(IVehicle targetVehicle, IVehicle attach public void OnVehicleDetach(IntPtr eventPointer, IntPtr targetPointer, IntPtr detachedPointer) { - var targetVehicle = VehiclePool.Get(targetPointer); - if (targetVehicle == null) + var targetVehicle = PoolManager.Vehicle.Get(targetPointer); + if (targetVehicle == null) { - Console.WriteLine("OnVehicleAttach Invalid targetVehicle " + targetVehicle); + Console.WriteLine("OnVehicleAttach Invalid targetVehicle " + targetPointer); return; } - var detachedVehicle = VehiclePool.Get(detachedPointer); - if (detachedVehicle == null) + var detachedVehicle = PoolManager.Vehicle.Get(detachedPointer); + if (detachedVehicle == null) { Console.WriteLine("OnVehicleDetach Invalid detachedPointer " + detachedPointer); return; @@ -1184,15 +1257,17 @@ public void OnVehicleDamage(IntPtr eventPointer, IntPtr vehiclePointer, IntPtr e BaseObjectType entityType, uint bodyHealthDamage, uint additionalBodyHealthDamage, uint engineHealthDamage, uint petrolTankDamage, uint weaponHash) { - var targetVehicle = VehiclePool.Get(vehiclePointer); - if (targetVehicle == null) + var targetVehicle = PoolManager.Vehicle.Get(vehiclePointer); + if (targetVehicle == null) { - Console.WriteLine("OnVehicleDamage Invalid vehicle " + vehiclePointer + " " + entityPointer + " " + entityType + " " + bodyHealthDamage + - " " + additionalBodyHealthDamage + " " + engineHealthDamage + " " + petrolTankDamage + " " + weaponHash); + Console.WriteLine("OnVehicleDamage Invalid vehicle " + vehiclePointer + " " + entityPointer + " " + + entityType + " " + bodyHealthDamage + + " " + additionalBodyHealthDamage + " " + engineHealthDamage + " " + petrolTankDamage + + " " + weaponHash); return; } - BaseEntityPool.Get(entityPointer, entityType, out var sourceEntity); + var sourceEntity = (IEntity)PoolManager.Get(entityPointer, entityType); OnVehicleDamageEvent(targetVehicle, sourceEntity, bodyHealthDamage, additionalBodyHealthDamage, engineHealthDamage, petrolTankDamage, weaponHash); @@ -1205,7 +1280,8 @@ public virtual void OnVehicleDamageEvent(IVehicle targetVehicle, IEntity sourceE { try { - @delegate(targetVehicle, sourceEntity, bodyHealthDamage, additionalBodyHealthDamage, engineHealthDamage, petrolTankDamage, weaponHash); + @delegate(targetVehicle, sourceEntity, bodyHealthDamage, additionalBodyHealthDamage, + engineHealthDamage, petrolTankDamage, weaponHash); } catch (TargetInvocationException exception) { @@ -1218,10 +1294,68 @@ public virtual void OnVehicleDamageEvent(IVehicle targetVehicle, IEntity sourceE } } + public void OnVehicleHorn(IntPtr eventPointer, IntPtr targetPointer, IntPtr reporterPointer, bool state) + { + var targetVehicle = PoolManager.Vehicle.Get(targetPointer); + if (targetVehicle == null) + { + Console.WriteLine( + "OnVehicleHorn Invalid vehicle " + targetPointer + " " + reporterPointer + " " + state); + return; + } + + var reporterPlayer = PoolManager.Player.Get(reporterPointer); + if (reporterPlayer == null) + { + Console.WriteLine("OnVehicleHorn Invalid player " + targetPointer + " " + reporterPointer + " " + + state); + return; + } + + OnVehicleHornEvent(eventPointer, targetVehicle, reporterPlayer, state); + } + + public virtual void OnVehicleHornEvent(IntPtr eventPointer, IVehicle targetVehicle, IPlayer reporterPlayer, + bool state) + { + var cancel = false; + foreach (var @delegate in VehicleHornEventHandler.GetEvents()) + { + try + { + if (!@delegate(targetVehicle, reporterPlayer, state)) + { + cancel = true; + } + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnVehicleHornEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnVehicleHornEvent" + ":" + exception); + } + } + + if (cancel) + { + unsafe + { + Alt.Core.Library.Shared.Event_Cancel(eventPointer); + } + } + } + public virtual void OnConnectionQueueAdd(IntPtr connectionInfoPtr) { - IConnectionInfo connectionInfo = new ConnectionInfo(this, connectionInfoPtr); - connectionInfos[connectionInfoPtr] = connectionInfo; + var connectionInfo = (IConnectionInfo)PoolManager.Get(connectionInfoPtr, BaseObjectType.ConnectionInfo); + if (connectionInfo is null) + { + Console.WriteLine("OnConnectionQueueAdd Invalid connectionInfo " + connectionInfoPtr); + return; + } + OnConnectionQueueAddEvent(connectionInfo); } @@ -1243,21 +1377,19 @@ public virtual void OnConnectionQueueAddEvent(IConnectionInfo connectionInfo) } } } - + public virtual void OnConnectionQueueRemove(IntPtr connectionInfoPtr) { - if (!connectionInfos.Remove(connectionInfoPtr, out var connectionInfo)) + var connectionInfo = (IConnectionInfo)PoolManager.Get(connectionInfoPtr, BaseObjectType.ConnectionInfo); + if (connectionInfo is null) { + Console.WriteLine("OnConnectionQueueRemove Invalid connectionInfo " + connectionInfoPtr); return; } OnConnectionQueueRemoveEvent(connectionInfo); - - lock (connectionInfo) - { - ((IInternalNative) connectionInfo).Exists = false; - } } + public virtual void OnConnectionQueueRemoveEvent(IConnectionInfo connectionInfo) { foreach (var @delegate in ConnectionQueueRemoveHandler.GetEvents()) @@ -1303,21 +1435,23 @@ public virtual void OnServerStartedEvent() public virtual void OnPlayerRequestControl(IntPtr targetPtr, BaseObjectType targetType, IntPtr playerPtr) { - if (!BaseEntityPool.Get(targetPtr, targetType, out var target)) + var target = (IEntity)PoolManager.Get(targetPtr, targetType); + if (target is null) { Console.WriteLine("OnPlayerRequestControl Invalid targetEntity " + targetPtr + " " + targetType); return; } - var player = PlayerPool.Get(playerPtr); + var player = PoolManager.Player.Get(playerPtr); if (player == null) { Console.WriteLine("OnPlayerRequestControl Invalid player " + playerPtr); return; } + OnPlayerRequestControlEvent(target, player); } - + public virtual void OnPlayerRequestControlEvent(IEntity target, IPlayer player) { foreach (var @delegate in PlayerRequestControlHandler.GetEvents()) @@ -1337,18 +1471,21 @@ public virtual void OnPlayerRequestControlEvent(IEntity target, IPlayer player) } } - public virtual void OnPlayerChangeAnimation(IntPtr playerPtr, uint oldDict, uint newDict, uint oldName, uint newName) + public virtual void OnPlayerChangeAnimation(IntPtr playerPtr, uint oldDict, uint newDict, uint oldName, + uint newName) { - var player = PlayerPool.Get(playerPtr); + var player = PoolManager.Player.Get(playerPtr); if (player == null) { Console.WriteLine("OnPlayerChangeAnimation Invalid player " + playerPtr); return; } + OnPlayerChangeAnimationEvent(player, oldDict, newDict, oldName, newName); } - - public virtual void OnPlayerChangeAnimationEvent(IPlayer player, uint oldDict, uint newDict, uint oldName, uint newName) + + public virtual void OnPlayerChangeAnimationEvent(IPlayer player, uint oldDict, uint newDict, uint oldName, + uint newName) { foreach (var @delegate in PlayerChangeAnimationHandler.GetEvents()) { @@ -1369,15 +1506,16 @@ public virtual void OnPlayerChangeAnimationEvent(IPlayer player, uint oldDict, u public virtual void OnPlayerChangeInterior(IntPtr playerPtr, uint oldIntLoc, uint newIntLoc) { - var player = PlayerPool.Get(playerPtr); + var player = PoolManager.Player.Get(playerPtr); if (player == null) { Console.WriteLine("OnPlayerChangeInterior Invalid player " + playerPtr); return; } + OnPlayerChangeInteriorEvent(player, oldIntLoc, newIntLoc); } - + public virtual void OnPlayerChangeInteriorEvent(IPlayer player, uint oldIntLoc, uint newIntLoc) { foreach (var @delegate in PlayerChangeInteriorHandler.GetEvents()) @@ -1399,7 +1537,7 @@ public virtual void OnPlayerChangeInteriorEvent(IPlayer player, uint oldIntLoc, public virtual void OnPlayerDimensionChange(IntPtr playerPtr, int oldDimension, int newDimension) { - var player = PlayerPool.Get(playerPtr); + var player = PoolManager.Player.Get(playerPtr); if (player is null) { Console.WriteLine("OnPlayerDimensionChange Invalid player " + playerPtr); @@ -1408,7 +1546,7 @@ public virtual void OnPlayerDimensionChange(IntPtr playerPtr, int oldDimension, OnPlayerDimensionChangeEvent(player, oldDimension, newDimension); } - + public virtual void OnPlayerDimensionChangeEvent(IPlayer player, int oldDimension, int newDimension) { foreach (var @delegate in PlayerDimensionChangeHandler.GetEvents()) @@ -1427,14 +1565,76 @@ public virtual void OnPlayerDimensionChangeEvent(IPlayer player, int oldDimensio } } } - + + public void OnVehicleSiren(IntPtr targetVehiclePointer, bool state) + { + var targetVehicle = PoolManager.Vehicle.Get(targetVehiclePointer); + if (targetVehicle is null) + { + Console.WriteLine($"OnVehicleSiren Invalid vehicle {targetVehiclePointer} {state}"); + return; + } + + OnVehicleSirenEvent(targetVehicle, state); + } + + public virtual void OnVehicleSirenEvent(IVehicle targetVehicle, bool state) + { + foreach (var @delegate in VehicleSirenHandler.GetEvents()) + { + try + { + @delegate(targetVehicle, state); + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnVehicleSirenEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnVehicleSirenEvent" + ":" + exception); + } + } + } + + public void OnPlayerSpawn(IntPtr playerPointer) + { + var player = PoolManager.Player.Get(playerPointer); + if (player is null) + { + Console.WriteLine($"OnPlayerSpawn Invalid player {playerPointer}"); + return; + } + + OnPlayerSpawnEvent(player); + } + + public virtual void OnPlayerSpawnEvent(IPlayer player) + { + foreach (var @delegate in PlayerSpawnHandler.GetEvents()) + { + try + { + @delegate(player); + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnPlayerSpawnEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnPlayerSpawnEvent" + ":" + exception); + } + } + } + //For custom defined args event handlers - private readonly Dictionary> eventBusClient = - new Dictionary>(); + private readonly Dictionary> eventBusClient = + new Dictionary>(); - private readonly Dictionary> eventBusServer = - new Dictionary>(); + private readonly Dictionary> eventBusServer = + new Dictionary>(); private readonly Dictionary> eventBusClientParser = new Dictionary>(); @@ -1464,21 +1664,21 @@ public virtual IEnumerable GetRegisteredServerEvents() internal readonly IEventHandler PlayerClientCustomEventEventHandler = new HashSetEventHandler(); - public Function OnClient(string eventName, Function function) + public Function OnClient(string eventName, Function function, bool isOnce = false) { if (function == null) { Alt.LogWarning("Failed to register client event " + eventName + ": function is null"); return null; } - + if (eventBusClient.TryGetValue(eventName, out var eventHandlers)) { - eventHandlers.Add(function); + eventHandlers.Add(new FunctionCall { Function = function, IsOnce = isOnce }); } else { - eventHandlers = new HashSet {function}; + eventHandlers = new List { new() { Function = function } }; eventBusClient[eventName] = eventHandlers; } @@ -1488,28 +1688,29 @@ public Function OnClient(string eventName, Function function) public void OffClient(string eventName, Function function) { if (function == null) return; - + if (eventBusClient.TryGetValue(eventName, out var eventHandlers)) { - eventHandlers.Remove(function); + var functionCall = eventHandlers.First(x => x.Function == function); + eventHandlers.Remove(functionCall); } } - public Function OnServer(string eventName, Function function) + public Function OnServer(string eventName, Function function, bool isOnce = false) { if (function == null) { Alt.LogWarning("Failed to register server event " + eventName + ": function is null"); return null; } - + if (eventBusServer.TryGetValue(eventName, out var eventHandlers)) { - eventHandlers.Add(function); + eventHandlers.Add(new FunctionCall { Function = function, IsOnce = isOnce }); } else { - eventHandlers = new HashSet {function}; + eventHandlers = new List { new() { Function = function } }; eventBusServer[eventName] = eventHandlers; } @@ -1519,10 +1720,11 @@ public Function OnServer(string eventName, Function function) public void OffServer(string eventName, Function function) { if (function == null) return; - + if (eventBusServer.TryGetValue(eventName, out var eventHandlers)) { - eventHandlers.Remove(function); + var functionCall = eventHandlers.First(x => x.Function == function); + eventHandlers.Remove(functionCall); } } @@ -1536,7 +1738,7 @@ public void On(string eventName, TFunc func, ClientEventParser par else { eventHandlers = new HashSet - {new ParserClientEventHandler(func, parser)}; + { new ParserClientEventHandler(func, parser) }; eventBusClientParser[eventName] = eventHandlers; } } @@ -1548,7 +1750,7 @@ public void Off(string eventName, TFunc func, ClientEventParser pa var parsersToDelete = new LinkedList(); var eventHandlerToFind = new ParserClientEventHandler(func, parser); foreach (var eventHandler in eventHandlers.Where(eventHandler => - eventHandler.Equals(eventHandlerToFind))) + eventHandler.Equals(eventHandlerToFind))) { parsersToDelete.AddFirst(eventHandler); } @@ -1569,7 +1771,7 @@ public void On(string eventName, TFunc func, ServerEventParser par else { eventHandlers = new HashSet - {new ParserServerEventHandler(func, parser)}; + { new ParserServerEventHandler(func, parser) }; eventBusServerParser[eventName] = eventHandlers; } } @@ -1581,7 +1783,7 @@ public void Off(string eventName, TFunc func, ServerEventParser pa var parsersToDelete = new LinkedList(); var eventHandlerToFind = new ParserServerEventHandler(func, parser); foreach (var eventHandler in eventHandlers.Where(eventHandler => - eventHandler.Equals(eventHandlerToFind))) + eventHandler.Equals(eventHandlerToFind))) { parsersToDelete.AddFirst(eventHandler); } @@ -1595,8 +1797,8 @@ public void Off(string eventName, TFunc func, ServerEventParser pa public void OnClientEvent(IntPtr playerPointer, string name, IntPtr[] args) { - var player = PlayerPool.Get(playerPointer); - if (player == null) + var player = PoolManager.Player.Get(playerPointer); + if (player == null) { Console.WriteLine("OnClientEvent Invalid player " + playerPointer); return; @@ -1644,9 +1846,14 @@ public void OnClientEvent(IntPtr playerPointer, string name, IntPtr[] args) foreach (var eventHandler in eventHandlersClient) { + if (eventHandler.IsOnce && eventHandler.IsCalled) continue; try { - eventHandler.Call(player, mValues); + eventHandler.Function.Call(player, mValues); + if (eventHandler.IsOnce) + { + eventHandler.IsCalled = true; + } } catch (TargetInvocationException exception) { @@ -1672,13 +1879,10 @@ public void OnClientEvent(IntPtr playerPointer, string name, IntPtr[] args) } } - if (argObjects == null) + argObjects = new object[length]; + for (var i = 0; i < length; i++) { - argObjects = new object[length]; - for (var i = 0; i < length; i++) - { - argObjects[i] = mValues[i].ToObject(); - } + argObjects[i] = mValues[i].ToObject(); } foreach (var eventHandler in PlayerClientEventEventHandler.GetEvents()) @@ -1728,7 +1932,7 @@ public void OnClientEvent(IntPtr playerPointer, string name, IntPtr[] args) OnClientEventEvent(player, name, args, mValues, argObjects); } - + public virtual void OnClientEventEvent(IPlayer player, string name, IntPtr[] args, MValueConst[] mValues, object[] objects) { @@ -1756,9 +1960,14 @@ public void OnServerEvent(string name, IntPtr[] args) { foreach (var eventNameEventHandler in eventHandlersServer) { + if (eventNameEventHandler.IsOnce && eventNameEventHandler.IsCalled) continue; try { - eventNameEventHandler.Call(mValues); + eventNameEventHandler.Function.Call(mValues); + if (eventNameEventHandler.IsOnce) + { + eventNameEventHandler.IsCalled = true; + } } catch (TargetInvocationException exception) { @@ -1775,13 +1984,10 @@ public void OnServerEvent(string name, IntPtr[] args) if (ServerEventEventHandler.HasEvents()) { - if (argObjects == null) + argObjects = new object[length]; + for (var i = 0; i < length; i++) { - argObjects = new object[length]; - for (var i = 0; i < length; i++) - { - argObjects[i] = mValues[i].ToObject(); - } + argObjects[i] = mValues[i].ToObject(); } foreach (var eventHandler in ServerEventEventHandler.GetEvents()) @@ -1826,88 +2032,664 @@ public void OnServerEvent(string name, IntPtr[] args) public virtual void OnServerEventEvent(string name, IntPtr[] args, MValueConst[] mValues, object[] objects) { } - - public void OnCreatePlayer(IntPtr playerPointer, ushort playerId) + public void OnModulesLoaded(IModule[] modules) + { + foreach (var module in modules) + { + OnModuleLoaded(module); + } + } + + public virtual void OnModuleLoaded(IModule module) + { + } + + public void OnCreateBaseObject(IntPtr baseObject, BaseObjectType type, uint id) + { + PoolManager.GetOrCreate(this, baseObject, type, id); + } + + public void OnRemoveBaseObject(IntPtr baseObject, BaseObjectType type) + { + PoolManager.Remove(baseObject, type); + } + + public void OnPlayerRemove(IntPtr playerPointer) { - PlayerPool.Create(this, playerPointer, playerId); + var player = PoolManager.Player.Get(playerPointer); + if (player == null) + { + Console.WriteLine("OnPlayerRemove Invalid player " + playerPointer); + return; + } + + foreach (var vehiclePassenger in VehiclePassengers) + { + if (vehiclePassenger.Value.All(x => x.PlayerPointer != playerPointer)) + { + continue; + } + + var playerSeat = vehiclePassenger.Value.First(x => x.PlayerPointer == playerPointer); + vehiclePassenger.Value.Remove(playerSeat); + } + + OnPlayerRemoveEvent(player); } - public void OnRemovePlayer(IntPtr playerPointer) + public virtual void OnPlayerRemoveEvent(IPlayer player) { - PlayerPool.Remove(playerPointer); + foreach (var @delegate in PlayerRemoveEventHandler.GetEvents()) + { + try + { + @delegate(player); + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnPlayerRemoveEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnPlayerRemoveEvent" + ":" + exception); + } + } } - public void OnCreateObject(IntPtr playerPointer, ushort playerId) + public void OnVehicleRemove(IntPtr vehiclePointer) { - ObjectPool.Create(this, playerPointer, playerId); + var vehicle = PoolManager.Vehicle.Get(vehiclePointer); + if (vehicle == null) + { + Console.WriteLine("OnVehicleRemove Invalid vehicle " + vehiclePointer); + return; + } + + if (VehiclePassengers.ContainsKey(vehiclePointer)) + { + VehiclePassengers.Remove(vehiclePointer); + } + + OnVehicleRemoveEvent(vehicle); } - public void OnRemoveObject(IntPtr playerPointer) + public virtual void OnVehicleRemoveEvent(IVehicle vehicle) { - ObjectPool.Remove(playerPointer); + foreach (var @delegate in VehicleRemoveEventHandler.GetEvents()) + { + try + { + @delegate(vehicle); + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnVehicleRemoveEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnVehicleRemoveEvent" + ":" + exception); + } + } } - public void OnCreateVehicle(IntPtr vehiclePointer, ushort vehicleId) + public void OnPedRemove(IntPtr pedPointer) { - VehiclePool.Create(this, vehiclePointer, vehicleId); + var ped = PoolManager.Ped.Get(pedPointer); + if (ped == null) + { + Console.WriteLine("OnPedRemove Invalid ped " + pedPointer); + return; + } + + OnPedRemoveEvent(ped); } - public void OnCreateVoiceChannel(IntPtr channelPointer) + public virtual void OnPedRemoveEvent(IPed ped) { - VoiceChannelPool.Create(this, channelPointer); + foreach (var @delegate in PedRemoveEventHandler.GetEvents()) + { + try + { + @delegate(ped); + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnPedRemoveEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnPedRemoveEvent" + ":" + exception); + } + } } - public void OnCreateColShape(IntPtr colShapePointer) + public virtual void OnRequestSyncedScene(IntPtr eventPointer, IntPtr source, int sceneid) { - ColShapePool.Create(this, colShapePointer); + var sourcePlayer = PoolManager.Player.Get(source); + if (sourcePlayer == null) + { + Console.WriteLine("OnRequestSyncedSceneDelegate Invalid source " + source + " " + sceneid); + return; + } + + OnRequestSyncedSceneEvent(eventPointer, sourcePlayer, sceneid); } - public void OnRemoveVehicle(IntPtr vehiclePointer) + public virtual void OnRequestSyncedSceneEvent(IntPtr eventPointer, IPlayer sourcePlayer, int sceneid) { - VehiclePool.Remove(vehiclePointer); + if (!RequestSyncedSceneHandler.HasEvents()) return; + var cancel = false; + foreach (var @delegate in RequestSyncedSceneHandler.GetEvents()) + { + try + { + if (!@delegate(sourcePlayer, sceneid)) + { + cancel = true; + } + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnRequestSyncedSceneEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnRequestSyncedSceneEvent" + ":" + exception); + } + } + + if (cancel) + { + unsafe + { + Alt.Core.Library.Shared.Event_Cancel(eventPointer); + } + } } - public void OnCreateBlip(IntPtr blipPointer) + public virtual void OnStartSyncedScene(IntPtr source, int sceneid, Position position, Rotation rotation, + uint animDictHash, IntPtr[] entites, BaseObjectType[] types, uint[] animHashes, ulong size) { - BlipPool.Create(this, blipPointer); + var sourcePlayer = PoolManager.Player.Get(source); + if (sourcePlayer == null) + { + Console.WriteLine("OnStartSyncedScene Invalid source " + source + " " + sceneid + " " + position + " " + + rotation + " " + animDictHash); + return; + } + + var entityAndAnimHash = new Dictionary(); + for (ulong i = 0; i < size; i++) + { + var entityObject = (IEntity)PoolManager.Get(entites[i], types[i]); + entityAndAnimHash.Add(entityObject, animHashes[i]); + } + + OnStartSyncedSceneEvent(sourcePlayer, sceneid, position, rotation, animDictHash, entityAndAnimHash); } - public void OnRemoveBlip(IntPtr blipPointer) + public virtual void OnStartSyncedSceneEvent(IPlayer sourcePlayer, int sceneid, Position position, + Rotation rotation, uint animDictHash, Dictionary entityAndAnimHash) { - BlipPool.Remove(blipPointer); + if (!StartSyncedSceneHandler.HasEvents()) return; + foreach (var @delegate in StartSyncedSceneHandler.GetEvents()) + { + try + { + @delegate(sourcePlayer, sceneid, position, rotation, animDictHash, entityAndAnimHash); + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnStartSyncedSceneEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnStartSyncedSceneEvent" + ":" + exception); + } + } } - public void OnCreateCheckpoint(IntPtr checkpointPointer) + public virtual void OnStopSyncedScene(IntPtr source, int sceneid) { - CheckpointPool.Create(this, checkpointPointer); + var sourcePlayer = PoolManager.Player.Get(source); + if (sourcePlayer == null) + { + Console.WriteLine("OnStopSyncedScene Invalid source " + source + " " + sceneid); + return; + } + + OnStopSyncedSceneEvent(sourcePlayer, sceneid); } - public void OnRemoveCheckpoint(IntPtr checkpointPointer) + public virtual void OnStopSyncedSceneEvent(IPlayer sourcePlayer, int sceneid) { - CheckpointPool.Remove(checkpointPointer); + if (!StopSyncedSceneHandler.HasEvents()) return; + foreach (var @delegate in StopSyncedSceneHandler.GetEvents()) + { + try + { + @delegate(sourcePlayer, sceneid); + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnStopSyncedSceneEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnStopSyncedSceneEvent" + ":" + exception); + } + } } - public void OnRemoveVoiceChannel(IntPtr channelPointer) + public virtual void OnUpdateSyncedScene(IntPtr source, float startRate, int sceneid) { - VoiceChannelPool.Remove(channelPointer); + var sourcePlayer = PoolManager.Player.Get(source); + if (sourcePlayer == null) + { + Console.WriteLine("OnUpdateSyncedScene Invalid source " + source + " " + startRate + " " + sceneid); + return; + } + + OnUpdateSyncedSceneEvent(sourcePlayer, startRate, sceneid); } - public void OnRemoveColShape(IntPtr colShapePointer) + public virtual void OnUpdateSyncedSceneEvent(IPlayer sourcePlayer, float startRate, int sceneid) { - ColShapePool.Remove(colShapePointer); + if (!UpdateSyncedSceneHandler.HasEvents()) return; + foreach (var @delegate in UpdateSyncedSceneHandler.GetEvents()) + { + try + { + @delegate(sourcePlayer, startRate, sceneid); + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnUpdateSyncedSceneEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnUpdateSyncedSceneEvent" + ":" + exception); + } + } } - public void OnModulesLoaded(IModule[] modules) + public virtual void OnClientRequestObject(IntPtr eventPointer, IntPtr source, uint model, Position position) { - foreach (var module in modules) + var sourcePlayer = PoolManager.Player.Get(source); + if (sourcePlayer == null) { - OnModuleLoaded(module); + Console.WriteLine("OnClientRequestObject Invalid source " + source + " " + model + " " + position); + return; } + + OnClientRequestObjectEvent(eventPointer, sourcePlayer, model, position); } - public virtual void OnModuleLoaded(IModule module) + public virtual void OnClientRequestObjectEvent(IntPtr eventPointer, IPlayer sourcePlayer, uint model, + Position position) { + if (!ClientRequestObjectHandler.HasEvents()) return; + var cancel = false; + foreach (var @delegate in ClientRequestObjectHandler.GetEvents()) + { + try + { + if (!@delegate(sourcePlayer, model, position)) + { + cancel = true; + } + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnClientRequestObjectEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnClientRequestObjectEvent" + ":" + exception); + } + } + + if (cancel) + { + unsafe + { + Alt.Core.Library.Shared.Event_Cancel(eventPointer); + } + } + } + + public virtual void OnClientDeleteObject(IntPtr eventPointer, IntPtr source) + { + var sourcePlayer = PoolManager.Player.Get(source); + if (sourcePlayer == null) + { + Console.WriteLine("OnClientDeleteObject Invalid source " + source); + return; + } + + OnClientDeleteObjectEvent(eventPointer, sourcePlayer); + } + + public virtual void OnClientDeleteObjectEvent(IntPtr eventPointer, IPlayer sourcePlayer) + { + if (!ClientDeleteObjectHandler.HasEvents()) return; + var cancel = false; + foreach (var @delegate in ClientDeleteObjectHandler.GetEvents()) + { + try + { + if (!@delegate(sourcePlayer)) + { + cancel = true; + } + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnClientDeleteObjectEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnClientDeleteObjectEvent" + ":" + exception); + } + } + + if (cancel) + { + unsafe + { + Alt.Core.Library.Shared.Event_Cancel(eventPointer); + } + } + } + + public virtual void OnGivePedScriptedTask(IntPtr eventPointer, IntPtr source, IntPtr target, uint taskType) + { + var sourcePlayer = PoolManager.Player.Get(source); + var targetPed = PoolManager.Ped.Get(target); + + if (sourcePlayer == null) + { + Console.WriteLine("OnGivePedScriptedTask Invalid source " + source); + return; + } + + if (targetPed == null) + { + Console.WriteLine("OnGivePedScriptedTask Invalid target " + target); + return; + } + + OnGivePedScriptedTaskEvent(eventPointer, sourcePlayer, targetPed, taskType); + } + + public virtual void OnGivePedScriptedTaskEvent(IntPtr eventPointer, IPlayer source, IPed target, uint taskType) + { + if (!GivePedScriptedTaskHandler.HasEvents()) return; + var cancel = false; + foreach (var @delegate in GivePedScriptedTaskHandler.GetEvents()) + { + try + { + if (!@delegate(source, target, taskType)) + { + cancel = true; + } + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnGivePedScriptedTaskEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnGivePedScriptedTaskEvent" + ":" + exception); + } + } + + if (cancel) + { + unsafe + { + Alt.Core.Library.Shared.Event_Cancel(eventPointer); + } + } + } + + public void OnPedDamage(IntPtr pedpointer, IntPtr attackerentitypointer, BaseObjectType attackerbaseobjecttype, uint weapon, ushort healthdamage, ushort armourdamage) + { + var ped = PoolManager.Ped.Get(pedpointer); + if (ped == null) + { + Console.WriteLine("OnPedDamage Invalid player " + pedpointer + " " + attackerentitypointer + " " + + attackerbaseobjecttype + " " + weapon + " " + healthdamage + + " " + armourdamage); + return; + } + + var attacker = (IEntity)PoolManager.Get(attackerentitypointer, attackerbaseobjecttype); + + OnPedDamageEvent(ped, attacker, weapon, healthdamage, armourdamage); + } + + public virtual void OnPedDamageEvent(IPed ped, IEntity attacker, uint weapon, ushort healthDamage, + ushort armourDamage) + { + foreach (var @delegate in PedDamageEventHandler.GetEvents()) + { + try + { + @delegate(ped, attacker, weapon, healthDamage, armourDamage); + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnPedDamageEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnPedDamageEvent" + ":" + exception); + } + } + } + + public void OnPedDeath(IntPtr pedpointer, IntPtr killerentitypointer, BaseObjectType killerbaseobjecttype, uint weapon) + { + var ped = PoolManager.Ped.Get(pedpointer); + if (ped == null) + { + Console.WriteLine("OnPedDeath Invalid ped " + pedpointer + " " + killerentitypointer + " " + + killerbaseobjecttype + " " + weapon); + return; + } + + var killer = (IEntity)PoolManager.Get(killerentitypointer, killerbaseobjecttype); + + OnPedDeathEvent(ped, killer, weapon); + } + + public virtual void OnPedDeathEvent(IPed ped, IEntity killer, uint weapon) + { + foreach (var @delegate in PedDeadEventHandler.GetEvents()) + { + try + { + @delegate(ped, killer, weapon); + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnPedDeathEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnPedDeathEvent" + ":" + exception); + } + } + } + + public void OnPedHeal(IntPtr pedpointer, ushort oldHealth, ushort newHealth, ushort oldArmour, + ushort newArmour) + { + var ped = PoolManager.Ped.Get(pedpointer); + if (ped == null) + { + Console.WriteLine("OnPedHeal Invalid ped " + pedpointer + " " + oldHealth + " " + + newHealth + " " + oldArmour + " " + newArmour); + return; + } + + OnPedHealEvent(ped, oldHealth, newHealth, oldArmour, newArmour); + } + + public virtual void OnPedHealEvent(IPed ped, ushort oldHealth, ushort newHealth, ushort oldArmour, + ushort newArmour) + { + foreach (var @delegate in PedHealEventHandler.GetEvents()) + { + try + { + @delegate(ped, oldHealth, newHealth, oldArmour, newArmour); + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnPedHealEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnPedHealEvent" + ":" + exception); + } + } + } + + public void OnPlayerStartTalking(IntPtr playerpointer) + { + var player = PoolManager.Player.Get(playerpointer); + if (player == null) + { + Console.WriteLine("OnPlayerStartTalking Invalid player " + playerpointer); + return; + } + + OnPlayerStartTalkingEvent(player); + } + + public virtual void OnPlayerStartTalkingEvent(IPlayer player) + { + foreach (var @delegate in PlayerStartTalkingHandler.GetEvents()) + { + try + { + @delegate(player); + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnPlayerStartTalkingEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnPlayerStartTalkingEvent" + ":" + exception); + } + } + } + + public void OnPlayerStopTalking(IntPtr playerpointer) + { + var player = PoolManager.Player.Get(playerpointer); + if (player == null) + { + Console.WriteLine("OnPlayerStopTalking Invalid player " + playerpointer); + return; + } + + OnPlayerStopTalkingEvent(player); + } + + public virtual void OnPlayerStopTalkingEvent(IPlayer player) + { + foreach (var @delegate in PlayerStopTalkingHandler.GetEvents()) + { + try + { + @delegate(player); + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnPlayerStopTalkingEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnPlayerStopTalkingEvent" + ":" + exception); + } + } + } + + public void OnScriptRPC(IntPtr eventpointer, IntPtr targetpointer, string name, IntPtr pointer, ulong size, ushort answerId) + { + var target = PoolManager.Player.Get(targetpointer); + if (target == null) + { + Console.WriteLine("OnScriptRPC Invalid target " + targetpointer); + return; + } + + var args = new IntPtr[size]; + if (pointer != IntPtr.Zero) + { + Marshal.Copy(pointer, args, 0, (int) size); + } + + OnScriptRPCEvent(eventpointer, target, name, args, answerId); + } + + public virtual void OnScriptRPCEvent(IntPtr eventpointer, IPlayer target, string name, IntPtr[] args, ushort answerId) + { + var mValues = MValueConst.CreateFrom(this, args); + var clientScriptRPCEvent = new ScriptRpcEvent(this, eventpointer); + foreach (var @delegate in ScriptRpcHandler.GetEvents()) + { + try + { + @delegate(clientScriptRPCEvent, target, name, mValues.Select(x => x.ToObject()).ToArray(), answerId); + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnScriptRPCEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnScriptRPCEvent" + ":" + exception); + } + } + } + + public void OnScriptAnswerRPC(IntPtr targetpointer, ushort answerid, IntPtr answer, string answererror) + { + var target = PoolManager.Player.Get(targetpointer); + if (target == null) + { + Console.WriteLine("OnScriptRPC Invalid target " + targetpointer); + return; + } + + OnScriptAnswerRPCEvent(target, answerid, answer, answererror); + } + + public virtual void OnScriptAnswerRPCEvent(IPlayer target, ushort answerid, IntPtr mValue, string answererror) + { + var mValues = new MValueConst(this, mValue); + foreach (var @delegate in ScriptRpcAnswerHandler.GetEvents()) + { + try + { + @delegate(target, answerid, mValues.ToObject(), answererror); + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnScriptRPCEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnScriptRPCEvent" + ":" + exception); + } + } } } } \ No newline at end of file diff --git a/api/AltV.Net/Core.cs b/api/AltV.Net/Core.cs index 80bccf8fc..a255aa575 100644 --- a/api/AltV.Net/Core.cs +++ b/api/AltV.Net/Core.cs @@ -1,5 +1,4 @@ using System; -using System.Collections; using System.Collections.Concurrent; using System.Collections.Generic; using System.Diagnostics; @@ -10,63 +9,32 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Loader; -using System.Text; -using System.Threading; using AltV.Net.CApi; using AltV.Net.Data; using AltV.Net.Elements.Args; using AltV.Net.Elements.Entities; -using AltV.Net.Events; using AltV.Net.Exceptions; -using AltV.Net.FunctionParser; using AltV.Net.Native; using AltV.Net.Shared; using AltV.Net.Shared.Elements.Data; -using AltV.Net.Shared.Elements.Entities; -using AltV.Net.Shared.Events; -using AltV.Net.Types; +using AltV.Net.Shared.Enums; +using AltV.Net.Shared.Utils; namespace AltV.Net { - public partial class Core : SharedCore, ICore, IInternalCore, IDisposable + public partial class Core : SharedCore, ICore, IInternalCore { - public override IBaseBaseObjectPool BaseBaseObjectPool { get;} - IReadOnlyBaseBaseObjectPool ISharedCore.BaseBaseObjectPool => BaseBaseObjectPool; - - public IBaseEntityPool BaseEntityPool { get; } - - public override IEntityPool PlayerPool { get; } - IReadOnlyEntityPool ISharedCore.PlayerPool => PlayerPool; - - public override IEntityPool ObjectPool { get; } - IReadOnlyEntityPool ISharedCore.ObjectPool => ObjectPool; - - public override IEntityPool VehiclePool { get; } - IReadOnlyEntityPool ISharedCore.VehiclePool => VehiclePool; - - public override IBaseObjectPool BlipPool { get; } - - public override IBaseObjectPool CheckpointPool { get; } - - public IBaseObjectPool VoiceChannelPool { get; } - - public IBaseObjectPool ColShapePool { get; } + public override IPoolManager PoolManager { get;} + public Dictionary> VehiclePassengers { get; } + ISharedPoolManager ISharedCore.PoolManager => PoolManager; public INativeResourcePool NativeResourcePool { get; } private readonly ConcurrentDictionary vehicleModelInfoCache; private readonly ConcurrentDictionary pedModelInfoCache; + private readonly ConcurrentDictionary weaponModelInfoCache; - public int NetTime - { - get - { - unsafe - { - return Library.Server.Core_GetNetTime(NativePointer); - } - } - } + private readonly ConcurrentDictionary metricCache; private string rootDirectory; @@ -87,30 +55,19 @@ public string RootDirectory public override INativeResource Resource { get; } - public Core(IntPtr nativePointer, IntPtr resourcePointer, AssemblyLoadContext assemblyLoadContext, ILibrary library, IBaseBaseObjectPool baseBaseObjectPool, - IBaseEntityPool baseEntityPool, - IEntityPool playerPool, - IEntityPool vehiclePool, - IBaseObjectPool blipPool, - IBaseObjectPool checkpointPool, - IBaseObjectPool voiceChannelPool, - IBaseObjectPool colShapePool, + public Core(IntPtr nativePointer, IntPtr resourcePointer, AssemblyLoadContext assemblyLoadContext, ILibrary library, IPoolManager poolManager, INativeResourcePool nativeResourcePool) : base(nativePointer, library) { this.assemblyLoadContext = new WeakReference(assemblyLoadContext); - this.BaseBaseObjectPool = baseBaseObjectPool; - this.BaseEntityPool = baseEntityPool; - this.PlayerPool = playerPool; - this.VehiclePool = vehiclePool; - this.BlipPool = blipPool; - this.CheckpointPool = checkpointPool; - this.VoiceChannelPool = voiceChannelPool; - this.ColShapePool = colShapePool; + this.PoolManager = poolManager; this.NativeResourcePool = nativeResourcePool; this.vehicleModelInfoCache = new(); this.pedModelInfoCache = new(); + this.metricCache = new(); + this.weaponModelInfoCache = new(); nativeResourcePool.GetOrCreate(this, resourcePointer, out var resource); Resource = resource; + this.VehiclePassengers = new(); } void IInternalCore.InitResource(INativeResource resource) @@ -132,7 +89,7 @@ public ulong HashPassword(string password) { unsafe { - var passwordPtr = AltNative.StringUtils.StringToHGlobalUtf8(password); + var passwordPtr = MemoryUtils.StringToHGlobalUtf8(password); var value = Library.Server.Core_HashPassword(NativePointer, passwordPtr); Marshal.FreeHGlobal(passwordPtr); return value; @@ -143,7 +100,7 @@ public void SetPassword(string password) { unsafe { - var passwordPtr = AltNative.StringUtils.StringToHGlobalUtf8(password); + var passwordPtr = MemoryUtils.StringToHGlobalUtf8(password); Library.Server.Core_SetPassword(NativePointer, passwordPtr); Marshal.FreeHGlobal(passwordPtr); } @@ -179,6 +136,21 @@ public VehicleModelInfo GetVehicleModelInfo(uint hash) }); } + public WeaponModelInfo? GetWeaponModelInfo(uint hash) + { + return this.weaponModelInfoCache.GetOrAdd(hash, u => + { + unsafe + { + var ptr = Library.Server.Core_GetWeaponModelByHash(NativePointer, u); + var structure = Marshal.PtrToStructure(ptr); + var publicStructure = structure.ToPublic(); + Library.Server.Core_DeallocWeaponModelInfo(ptr); + return publicStructure.Hash == 0 ? null : publicStructure; + } + }); + } + public void StopServer() { unsafe @@ -202,7 +174,7 @@ public void TriggerClientEvent(IPlayer player, IntPtr eventNamePtr, MValueConst[ public void TriggerClientEvent(IPlayer player, string eventName, MValueConst[] args) { - var eventNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(eventName); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); TriggerClientEvent(player, eventNamePtr, args); Marshal.FreeHGlobal(eventNamePtr); } @@ -219,7 +191,7 @@ public void TriggerClientEvent(IPlayer player, IntPtr eventNamePtr, IntPtr[] arg public void TriggerClientEvent(IPlayer player, string eventName, IntPtr[] args) { - var eventNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(eventName); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); TriggerClientEvent(player, eventNamePtr, args); Marshal.FreeHGlobal(eventNamePtr); } @@ -269,7 +241,7 @@ public void TriggerClientEventForAll(IntPtr eventNamePtr, MValueConst[] args) public void TriggerClientEventForAll(string eventName, MValueConst[] args) { - var eventNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(eventName); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); TriggerClientEventForAll(eventNamePtr, args); Marshal.FreeHGlobal(eventNamePtr); } @@ -284,7 +256,7 @@ public void TriggerClientEventForAll(IntPtr eventNamePtr, IntPtr[] args) public void TriggerClientEventForAll(string eventName, IntPtr[] args) { - var eventNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(eventName); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); TriggerClientEventForAll(eventNamePtr, args); Marshal.FreeHGlobal(eventNamePtr); } @@ -329,7 +301,7 @@ public void TriggerClientEventForSome(IPlayer[] clients, IntPtr eventNamePtr, MV public void TriggerClientEventForSome(IPlayer[] clients, string eventName, MValueConst[] args) { - var eventNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(eventName); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); TriggerClientEventForSome(clients, eventNamePtr, args); Marshal.FreeHGlobal(eventNamePtr); } @@ -352,7 +324,7 @@ public void TriggerClientEventForSome(IPlayer[] clients, IntPtr eventNamePtr, In public void TriggerClientEventForSome(IPlayer[] clients, string eventName, IntPtr[] args) { - var eventNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(eventName); + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); TriggerClientEventForSome(clients, eventNamePtr, args); Marshal.FreeHGlobal(eventNamePtr); } @@ -384,72 +356,351 @@ public void TriggerClientEventForSome(IPlayer[] clients, string eventName, param mValues[i].Dispose(); } } + + public void TriggerClientEventUnreliable(IPlayer player, IntPtr eventNamePtr, MValueConst[] args) + { + var size = args.Length; + var mValuePointers = new IntPtr[size]; + for (var i = 0; i < size; i++) + { + mValuePointers[i] = args[i].nativePointer; + } + + TriggerClientEventUnreliable(player, eventNamePtr, mValuePointers); + } + + public void TriggerClientEventUnreliable(IPlayer player, string eventName, MValueConst[] args) + { + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); + TriggerClientEventUnreliable(player, eventNamePtr, args); + Marshal.FreeHGlobal(eventNamePtr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void TriggerClientEventUnreliable(IPlayer player, IntPtr eventNamePtr, IntPtr[] args) + { + unsafe + { + Library.Server.Core_TriggerClientEventUnreliable(NativePointer, player.PlayerNativePointer, + eventNamePtr, args, args.Length); + } + } + + public void TriggerClientEventUnreliable(IPlayer player, string eventName, IntPtr[] args) + { + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); + TriggerClientEventUnreliable(player, eventNamePtr, args); + Marshal.FreeHGlobal(eventNamePtr); + } + + public void TriggerClientEventUnreliable(IPlayer player, IntPtr eventNamePtr, params object[] args) + { + if (player == null) throw new ArgumentException("player should not be null."); + if (args == null) throw new ArgumentException("Arguments array should not be null."); + var size = args.Length; + var mValues = new MValueConst[size]; + CreateMValues(mValues, args); + TriggerClientEventUnreliable(player, eventNamePtr, mValues); + for (var i = 0; i < size; i++) + { + mValues[i].Dispose(); + } + } + + public void TriggerClientEventUnreliable(IPlayer player, string eventName, params object[] args) + { + if (player == null) throw new ArgumentException("player should not be null."); + if (args == null) throw new ArgumentException("Arguments array should not be null."); + var size = args.Length; + var mValues = new MValueConst[size]; + CreateMValues(mValues, args); + TriggerClientEventUnreliable(player, eventName, mValues); + for (var i = 0; i < size; i++) + { + mValues[i].Dispose(); + } + } + + public void TriggerClientEventUnreliableForAll(IntPtr eventNamePtr, MValueConst[] args) + { + unsafe + { + var size = args.Length; + var mValuePointers = new IntPtr[size]; + for (var i = 0; i < size; i++) + { + mValuePointers[i] = args[i].nativePointer; + } + + Library.Server.Core_TriggerClientEventUnreliableForAll(NativePointer, eventNamePtr, mValuePointers, args.Length); + } + } + + public void TriggerClientEventUnreliableForAll(string eventName, MValueConst[] args) + { + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); + TriggerClientEventUnreliableForAll(eventNamePtr, args); + Marshal.FreeHGlobal(eventNamePtr); + } + + public void TriggerClientEventUnreliableForAll(IntPtr eventNamePtr, IntPtr[] args) + { + unsafe + { + Library.Server.Core_TriggerClientEventUnreliableForAll(NativePointer, eventNamePtr, args, args.Length); + } + } + + public void TriggerClientEventUnreliableForAll(string eventName, IntPtr[] args) + { + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); + TriggerClientEventUnreliableForAll(eventNamePtr, args); + Marshal.FreeHGlobal(eventNamePtr); + } + + public void TriggerClientEventUnreliableForAll(IntPtr eventNamePtr, params object[] args) + { + if (args == null) throw new ArgumentException("Arguments array should not be null."); + var size = args.Length; + var mValues = new MValueConst[size]; + CreateMValues(mValues, args); + TriggerClientEventUnreliableForAll(eventNamePtr, mValues); + for (var i = 0; i < size; i++) + { + mValues[i].Dispose(); + } + } + + public void TriggerClientEventUnreliableForAll(string eventName, params object[] args) + { + if (args == null) throw new ArgumentException("Arguments array should not be null."); + var size = args.Length; + var mValues = new MValueConst[size]; + CreateMValues(mValues, args); + TriggerClientEventUnreliableForAll(eventName, mValues); + for (var i = 0; i < size; i++) + { + mValues[i].Dispose(); + } + } + + public void TriggerClientEventUnreliableForSome(IPlayer[] clients, IntPtr eventNamePtr, MValueConst[] args) + { + var size = args.Length; + var mValuePointers = new IntPtr[size]; + for (var i = 0; i < size; i++) + { + mValuePointers[i] = args[i].nativePointer; + } + + TriggerClientEventUnreliableForSome(clients, eventNamePtr, mValuePointers); + } + + public void TriggerClientEventUnreliableForSome(IPlayer[] clients, string eventName, MValueConst[] args) + { + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); + TriggerClientEventUnreliableForSome(clients, eventNamePtr, args); + Marshal.FreeHGlobal(eventNamePtr); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void TriggerClientEventUnreliableForSome(IPlayer[] clients, IntPtr eventNamePtr, IntPtr[] args) + { + unsafe + { + var size = clients.Length; + var clPtrs = new IntPtr[size]; + for (var i = 0; i < size; i++) + { + clPtrs[i] = clients[i].PlayerNativePointer; + } + Library.Server.Core_TriggerClientEventUnreliableForSome(NativePointer, clPtrs, size, + eventNamePtr, args, args.Length); + } + } + + public void TriggerClientEventUnreliableForSome(IPlayer[] clients, string eventName, IntPtr[] args) + { + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); + TriggerClientEventUnreliableForSome(clients, eventNamePtr, args); + Marshal.FreeHGlobal(eventNamePtr); + } + + public void TriggerClientEventUnreliableForSome(IPlayer[] clients, IntPtr eventNamePtr, params object[] args) + { + if (clients == null) throw new ArgumentException("players should not be null."); + if (args == null) throw new ArgumentException("Arguments array should not be null."); + var size = args.Length; + var mValues = new MValueConst[size]; + CreateMValues(mValues, args); + TriggerClientEventUnreliableForSome(clients, eventNamePtr, mValues); + for (var i = 0; i < size; i++) + { + mValues[i].Dispose(); + } + } + + public void TriggerClientEventUnreliableForSome(IPlayer[] clients, string eventName, params object[] args) + { + if (clients == null) throw new ArgumentException("players should not be null."); + if (args == null) throw new ArgumentException("Arguments array should not be null."); + var size = args.Length; + var mValues = new MValueConst[size]; + CreateMValues(mValues, args); + TriggerClientEventUnreliableForSome(clients, eventName, mValues); + for (var i = 0; i < size; i++) + { + mValues[i].Dispose(); + } + } + + public void TriggerClientRPCAnswer(IPlayer target, ushort answerId, object answer, string error) + { + CreateMValue(out var mValue, answer); + TriggerClientRPCAnswer(target, answerId, mValue, error); + mValue.Dispose(); + } + + public void TriggerClientRPCAnswer(IPlayer target, ushort answerId, MValueConst answer, IntPtr errorPtr) + { + unsafe + { + Library.Server.Core_TriggerClientRPCAnswer(NativePointer, target.NativePointer, answerId, + answer.nativePointer, errorPtr); + } + } + + public void TriggerClientRPCAnswer(IPlayer target, ushort answerId, MValueConst answer, string error) + { + var errorPtr = MemoryUtils.StringToHGlobalUtf8(error); + TriggerClientRPCAnswer(target, answerId, answer, errorPtr); + Marshal.FreeHGlobal(errorPtr); + } + + public ushort TriggerClientRPC(IPlayer target, string name, params object[] args) + { + if (args == null) throw new ArgumentException("Arguments array should not be null."); + var size = args.Length; + var mValues = new MValueConst[size]; + CreateMValues(mValues, args); + var result = TriggerClientRPC(target, name, mValues); + for (var i = 0; i < size; i++) + { + mValues[i].Dispose(); + } + + return result; + } + + public ushort TriggerClientRPC(IPlayer target, string eventName, MValueConst[] args) + { + var eventNamePtr = MemoryUtils.StringToHGlobalUtf8(eventName); + var result = TriggerClientRPC(target, eventNamePtr, args); + Marshal.FreeHGlobal(eventNamePtr); + return result; + } + + public ushort TriggerClientRPC(IPlayer target, IntPtr eventNamePtr, MValueConst[] args) + { + var size = args.Length; + var mValuePointers = new IntPtr[size]; + for (var i = 0; i < size; i++) + { + mValuePointers[i] = args[i].nativePointer; + } + + return TriggerClientRPC(target.PlayerNativePointer, eventNamePtr, mValuePointers); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public ushort TriggerClientRPC(IntPtr targetPtr, IntPtr eventNamePtr, IntPtr[] args) + { + unsafe + { + return Library.Server.Core_TriggerClientRPCEvent(NativePointer, targetPtr, eventNamePtr, args, args.Length); + } + } + #endregion #region BaseObject creation/removal - public IVehicle CreateVehicle(uint model, Position pos, Rotation rotation) + public IVehicle CreateVehicle(uint model, Position pos, Rotation rotation, uint streamingDistance) { unsafe { CheckIfCallIsValid(); CheckIfThreadIsValid(); - ushort id = default; - var ptr = Library.Server.Core_CreateVehicle(NativePointer, model, pos, rotation, &id); + uint id = default; + var ptr = Library.Server.Core_CreateVehicle(NativePointer, model, pos, rotation, streamingDistance, &id); if (ptr == IntPtr.Zero) return null; - return VehiclePool.Create(this, ptr, id); + return PoolManager.Vehicle.GetOrCreate(this, ptr, id); } } - public IntPtr CreateVehicleEntity(out ushort id, uint model, Position pos, Rotation rotation) + public IntPtr CreateVehicleEntity(out uint id, uint model, Position pos, Rotation rotation, uint streamingDistance) { unsafe { CheckIfThreadIsValid(); - ushort pId; - var pointer = Library.Server.Core_CreateVehicle(NativePointer, model, pos, rotation, &pId); + uint pId; + var pointer = Library.Server.Core_CreateVehicle(NativePointer, model, pos, rotation, streamingDistance, &pId); id = pId; return pointer; } } + public IPed CreatePed(uint model, Position pos, Rotation rotation, uint streamingDistance) + { + unsafe + { + CheckIfCallIsValid(); + CheckIfThreadIsValid(); + uint id = default; + var ptr = Library.Server.Core_CreatePed(NativePointer, model, pos, rotation, streamingDistance, &id); + if (ptr == IntPtr.Zero) return null; + return PoolManager.Ped.GetOrCreate(this, ptr, id); + } + } public ICheckpoint CreateCheckpoint(byte type, Position pos, float radius, float height, - Rgba color) + Rgba color, uint streamingDistance) { unsafe { CheckIfCallIsValid(); CheckIfThreadIsValid(); - var ptr = Library.Server.Core_CreateCheckpoint(NativePointer, type, pos, radius, height, color); + uint id = default; + var ptr = Library.Server.Core_CreateCheckpoint(NativePointer, type, pos, radius, height, color, streamingDistance, &id); if (ptr == IntPtr.Zero) return null; - return CheckpointPool.Create(this, ptr); + return PoolManager.Checkpoint.GetOrCreate(this, ptr, id); } } - public IBlip CreateBlip(IPlayer player, byte type, Position pos) + public IBlip CreateBlip(bool global, byte type, Position pos, IPlayer[] targets) { unsafe { CheckIfCallIsValid(); CheckIfThreadIsValid(); - var ptr = Library.Server.Core_CreateBlip(NativePointer, player?.PlayerNativePointer ?? IntPtr.Zero, - type, pos); + uint id = default; + var ptr = Library.Server.Core_CreateBlip(NativePointer, global ? (byte)1 : (byte)0, + type, pos, targets.Select(x => x.PlayerNativePointer).ToArray(), targets.Length, &id); if (ptr == IntPtr.Zero) return null; - return BlipPool.Create(this, ptr); + return PoolManager.Blip.GetOrCreate(this, ptr, id); } } - public IBlip CreateBlip(IPlayer player, byte type, IEntity entityAttach) + public IBlip CreateBlip(bool global, byte type, IEntity entityAttach, IPlayer[] targets) { unsafe { CheckIfCallIsValid(); CheckIfThreadIsValid(); - + uint id = default; var ptr = Library.Server.Core_CreateBlipAttached(NativePointer, - player?.PlayerNativePointer ?? IntPtr.Zero, - type, entityAttach.EntityNativePointer); + global ? (byte)1 : (byte)0, + type, entityAttach.EntityNativePointer, targets.Select(x => x.PlayerNativePointer).ToArray(), targets.Length, &id); if (ptr == IntPtr.Zero) return null; - return BlipPool.Create(this, ptr); + return PoolManager.Blip.GetOrCreate(this, ptr, id); } } @@ -459,10 +710,11 @@ public IVoiceChannel CreateVoiceChannel(bool spatial, float maxDistance) { CheckIfCallIsValid(); CheckIfThreadIsValid(); + uint id = default; var ptr = Library.Server.Core_CreateVoiceChannel(NativePointer, - spatial ? (byte) 1 : (byte) 0, maxDistance); + spatial ? (byte) 1 : (byte) 0, maxDistance, &id); if (ptr == IntPtr.Zero) return null; - return VoiceChannelPool.Create(this, ptr); + return PoolManager.VoiceChannel.GetOrCreate(this, ptr, id); } } @@ -472,9 +724,10 @@ public IColShape CreateColShapeCylinder(Position pos, float radius, float height { CheckIfCallIsValid(); CheckIfThreadIsValid(); - var ptr = Library.Server.Core_CreateColShapeCylinder(NativePointer, pos, radius, height); + uint id = default; + var ptr = Library.Shared.Core_CreateColShapeCylinder(NativePointer, pos, radius, height, &id); if (ptr == IntPtr.Zero) return null; - return ColShapePool.Create(this, ptr); + return PoolManager.ColShape.GetOrCreate(this, ptr, id); } } @@ -484,9 +737,10 @@ public IColShape CreateColShapeSphere(Position pos, float radius) { CheckIfCallIsValid(); CheckIfThreadIsValid(); - var ptr = Library.Server.Core_CreateColShapeSphere(NativePointer, pos, radius); + uint id = default; + var ptr = Library.Shared.Core_CreateColShapeSphere(NativePointer, pos, radius, &id); if (ptr == IntPtr.Zero) return null; - return ColShapePool.Create(this, ptr); + return PoolManager.ColShape.GetOrCreate(this, ptr, id); } } @@ -496,9 +750,10 @@ public IColShape CreateColShapeCircle(Position pos, float radius) { CheckIfCallIsValid(); CheckIfThreadIsValid(); - var ptr = Library.Server.Core_CreateColShapeCircle(NativePointer, pos, radius); + uint id = default; + var ptr = Library.Shared.Core_CreateColShapeCircle(NativePointer, pos, radius, &id); if (ptr == IntPtr.Zero) return null; - return ColShapePool.Create(this, ptr); + return PoolManager.ColShape.GetOrCreate(this, ptr, id); } } @@ -508,9 +763,10 @@ public IColShape CreateColShapeCube(Position pos, Position pos2) { CheckIfCallIsValid(); CheckIfThreadIsValid(); - var ptr = Library.Server.Core_CreateColShapeCube(NativePointer, pos, pos2); + uint id = default; + var ptr = Library.Shared.Core_CreateColShapeCube(NativePointer, pos, pos2, &id); if (ptr == IntPtr.Zero) return null; - return ColShapePool.Create(this, ptr); + return PoolManager.ColShape.GetOrCreate(this, ptr, id); } } @@ -520,9 +776,10 @@ public IColShape CreateColShapeRectangle(float x1, float y1, float x2, float y2, { CheckIfCallIsValid(); CheckIfThreadIsValid(); - var ptr = Library.Server.Core_CreateColShapeRectangle(NativePointer, x1, y1, x2, y2, z); + uint id = default; + var ptr = Library.Shared.Core_CreateColShapeRectangle(NativePointer, x1, y1, x2, y2, z, &id); if (ptr == IntPtr.Zero) return null; - return ColShapePool.Create(this, ptr); + return PoolManager.ColShape.GetOrCreate(this, ptr, id); } } @@ -533,9 +790,10 @@ public IColShape CreateColShapePolygon(float minZ, float maxZ, Vector2[] points) CheckIfCallIsValid(); CheckIfThreadIsValid(); int size = points.Count(); - var ptr = Library.Server.Core_CreateColShapePolygon(NativePointer, minZ, maxZ, points, size); + uint id = default; + var ptr = Library.Shared.Core_CreateColShapePolygon(NativePointer, minZ, maxZ, points, size, &id); if (ptr == IntPtr.Zero) return null; - return ColShapePool.Create(this, ptr); + return PoolManager.ColShape.GetOrCreate(this, ptr, id); } } @@ -608,7 +866,7 @@ public INativeResource GetResource(string name) { unsafe { - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(name); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(name); var resourcePointer = Library.Shared.Core_GetResource(NativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); return !NativeResourcePool.GetOrCreate(this, resourcePointer, out var nativeResource) @@ -624,82 +882,236 @@ public INativeResource GetResource(IntPtr resourcePointer) : nativeResource; } - public IPlayer[] GetPlayers() + public INativeResource[] GetAllResources() { unsafe { - CheckIfCallIsValid(); - var playerCount = Library.Shared.Core_GetPlayerCount(NativePointer); - var pointers = new IntPtr[playerCount]; - Library.Shared.Core_GetPlayers(NativePointer, pointers, playerCount); - var players = new IPlayer[playerCount]; - for (ulong i = 0; i < playerCount; i++) - { - var playerPointer = pointers[i]; - players[i] = PlayerPool.GetOrCreate(this, playerPointer); - } - - return players; + uint size = 0; + var ptr = Library.Shared.Core_GetAllResources(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int) size); + var arr = data.Select(e => NativeResourcePool.GetOrCreate(this, e, out var v) ? v : null).ToArray(); + Library.Shared.FreeResourceArray(ptr); + return arr; } } - public IVehicle[] GetVehicles() + public IReadOnlyCollection GetAllPlayers() { unsafe { CheckIfCallIsValid(); - var vehicleCount = Library.Shared.Core_GetVehicleCount(NativePointer); - var pointers = new IntPtr[vehicleCount]; - Library.Shared.Core_GetVehicles(NativePointer, pointers, vehicleCount); - var vehicles = new IVehicle[vehicleCount]; - for (ulong i = 0; i < vehicleCount; i++) - { - var vehiclePointer = pointers[i]; - vehicles[i] = VehiclePool.GetOrCreate(this, vehiclePointer); - } - - return vehicles; + ulong size = 0; + var ptr = Library.Shared.Core_GetPlayers(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int) size); + var arr = data.Select(e => PoolManager.Player.GetOrCreate(this, e)).ToArray(); + Library.Shared.FreePlayerArray(ptr); + return arr; } } - public new IEntity GetEntityById(ushort id) + public IReadOnlyCollection GetAllConnectionInfos() { - return (IEntity) base.GetEntityById(id); + unsafe + { + CheckIfCallIsValid(); + ulong size = 0; + var ptr = Library.Server.Core_GetConnectionInfos(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int) size); + var arr = data.Select(e => PoolManager.ConnectionInfo.GetOrCreate(this, e)).ToArray(); + Library.Shared.FreeConnectionInfoArray(ptr); + return arr; + } } - public void StartResource(string name) + public IReadOnlyCollection GetAllVehicles() { unsafe { CheckIfCallIsValid(); - var namePtr = AltNative.StringUtils.StringToHGlobalUtf8(name); - Library.Server.Core_StartResource(NativePointer, namePtr); - Marshal.FreeHGlobal(namePtr); + ulong size = 0; + var ptr = Library.Shared.Core_GetVehicles(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int) size); + var arr = data.Select(e => PoolManager.Vehicle.GetOrCreate(this, e)).ToArray(); + Library.Shared.FreeVehicleArray(ptr); + return arr; } } - public void StopResource(string name) + public IReadOnlyCollection GetAllBlips() { unsafe { CheckIfCallIsValid(); - var namePtr = AltNative.StringUtils.StringToHGlobalUtf8(name); - Library.Server.Core_StopResource(NativePointer, namePtr); - Marshal.FreeHGlobal(namePtr); + ulong size = 0; + var ptr = Library.Shared.Core_GetBlips(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int) size); + var arr = data.Select(e => PoolManager.Blip.GetOrCreate(this, e)).ToArray(); + Library.Shared.FreeBlipArray(ptr); + return arr; } } - public void RestartResource(string name) + public IReadOnlyCollection GetAllCheckpoints() { unsafe { CheckIfCallIsValid(); - var namePtr = AltNative.StringUtils.StringToHGlobalUtf8(name); - Library.Server.Core_RestartResource(NativePointer, namePtr); - Marshal.FreeHGlobal(namePtr); + ulong size = 0; + var ptr = Library.Shared.Core_GetCheckpoints(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int) size); + var arr = data.Select(e => PoolManager.Checkpoint.GetOrCreate(this, e)).ToArray(); + Library.Shared.FreeCheckpointArray(ptr); + return arr; } } + public IReadOnlyCollection GetAllVirtualEntities() + { + unsafe + { + CheckIfCallIsValid(); + ulong size = 0; + var ptr = Library.Shared.Core_GetVirtualEntities(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int) size); + var arr = data.Select(e => PoolManager.VirtualEntity.GetOrCreate(this, e)).ToArray(); + Library.Shared.FreeVirtualEntityArray(ptr); + return arr; + } + } + + public IReadOnlyCollection GetAllVirtualEntityGroups() + { + unsafe + { + CheckIfCallIsValid(); + ulong size = 0; + var ptr = Library.Shared.Core_GetVirtualEntityGroups(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int) size); + var arr = data.Select(e => PoolManager.VirtualEntityGroup.GetOrCreate(this, e)).ToArray(); + Library.Shared.FreeVirtualEntityGroupArray(ptr); + return arr; + } + } + + public IReadOnlyCollection GetAllPeds() + { + unsafe + { + CheckIfCallIsValid(); + ulong size = 0; + var ptr = Library.Shared.Core_GetPeds(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int)size); + var arr = data.Select(e => PoolManager.Ped.GetOrCreate(this, e)).ToArray(); + Library.Shared.FreePedArray(ptr); + return arr; + } + } + + public IReadOnlyCollection GetAllNetworkObjects() + { + unsafe + { + CheckIfCallIsValid(); + ulong size = 0; + var ptr = Library.Shared.Core_GetNetworkObjects(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int)size); + var arr = data.Select(e => PoolManager.Object.GetOrCreate(this, e)).ToArray(); + Library.Shared.FreeNetworkObjectArray(ptr); + return arr; + } + } + + public IReadOnlyCollection GetAllColShapes() + { + unsafe + { + CheckIfCallIsValid(); + ulong size = 0; + var ptr = Library.Shared.Core_GetColShapes(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int)size); + var arr = data.Select(e => PoolManager.ColShape.GetOrCreate(this, e)).ToArray(); + Library.Shared.FreeColShapeArray(ptr); + return arr; + } + } + + public IReadOnlyCollection GetAllMarkers() + { + unsafe + { + CheckIfCallIsValid(); + ulong size = 0; + var ptr = Library.Shared.Core_GetMarkers(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int)size); + var arr = data.Select(e => PoolManager.Marker.GetOrCreate(this, e)).ToArray(); + Library.Shared.FreeMarkerArray(ptr); + return arr; + } + } + + public new IBaseObject GetBaseObjectById(BaseObjectType type, uint id) + { + return (IBaseObject) base.GetBaseObjectById(type, id); + } + + public void StartResource(string name) + { + unsafe + { + CheckIfCallIsValid(); + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + Library.Server.Core_StartResource(NativePointer, namePtr); + Marshal.FreeHGlobal(namePtr); + } + } + + public void StopResource(string name) + { + unsafe + { + CheckIfCallIsValid(); + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + Library.Server.Core_StopResource(NativePointer, namePtr); + Marshal.FreeHGlobal(namePtr); + } + } + + public void RestartResource(string name) + { + unsafe + { + CheckIfCallIsValid(); + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + Library.Server.Core_RestartResource(NativePointer, namePtr); + Marshal.FreeHGlobal(namePtr); + } + } + + public void AddClientConfigKey(string key) + { + unsafe + { + CheckIfCallIsValid(); + var keyPtr = MemoryUtils.StringToHGlobalUtf8(key); + Library.Server.Core_AddClientConfigKey(NativePointer, keyPtr); + Marshal.FreeHGlobal(keyPtr); + } + } + + + #region SyncedMetaData public void SetSyncedMetaData(string key, object value) { @@ -707,7 +1119,7 @@ public void SetSyncedMetaData(string key, object value) { CheckIfCallIsValid(); CreateMValue(out var mValue, value); - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); Library.Server.Core_SetSyncedMetaData(NativePointer, stringPtr, mValue.nativePointer); Marshal.FreeHGlobal(stringPtr); mValue.Dispose(); @@ -719,7 +1131,7 @@ public void DeleteSyncedMetaData(string key) unsafe { CheckIfCallIsValid(); - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); Library.Server.Core_DeleteSyncedMetaData(NativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); } @@ -742,7 +1154,7 @@ public virtual void OnScriptLoaded(IScript script) internal readonly IDictionary functionExports = new Dictionary(); - internal readonly LinkedList functionExportHandles = new LinkedList(); + internal readonly LinkedList functionExportHandles = new(); public void SetExport(string key, Function function) { @@ -808,7 +1220,7 @@ public bool FileExists(string path) { unsafe { - var pathPtr = AltNative.StringUtils.StringToHGlobalUtf8(path); + var pathPtr = MemoryUtils.StringToHGlobalUtf8(path); var result = Library.Shared.Core_FileExists(NativePointer, pathPtr); Marshal.FreeHGlobal(pathPtr); return result == 1; @@ -819,7 +1231,7 @@ public string FileRead(string path) { unsafe { - var pathPtr = AltNative.StringUtils.StringToHGlobalUtf8(path); + var pathPtr = MemoryUtils.StringToHGlobalUtf8(path); var size = 0; var result = PtrToStringUtf8AndFree(Library.Shared.Core_FileRead(NativePointer, pathPtr, &size), size); Marshal.FreeHGlobal(pathPtr); @@ -831,7 +1243,7 @@ public byte[] FileReadBinary(string path) { unsafe { - var pathPtr = AltNative.StringUtils.StringToHGlobalUtf8(path); + var pathPtr = MemoryUtils.StringToHGlobalUtf8(path); var size = 0; var result = Library.Shared.Core_FileRead(NativePointer, pathPtr, &size); var buffer = new byte[size]; @@ -856,5 +1268,490 @@ public void SetWorldProfiler(bool state) Library.Server.Core_SetWorldProfiler(NativePointer, state ? (byte)1 : (byte)0); } } + + public IBaseObject[] GetClosestEntities(Position position, int range, int dimension, int limit, + EntityType allowedTypes) + { + unsafe + { + CheckIfCallIsValid(); + var entitiesCount = Library.Server.Core_GetClosestEntitiesCount(NativePointer, position, range, dimension, limit, (ulong)allowedTypes); + var pointers = IntPtr.Zero; + var types = new byte[entitiesCount]; + Library.Server.Core_GetClosestEntities(NativePointer,position, range, dimension, limit, (ulong)allowedTypes, &pointers, types, entitiesCount); + + var entityPtrArray = new IntPtr[entitiesCount]; + Marshal.Copy(pointers, entityPtrArray, 0, (int) entitiesCount); + Library.Shared.FreeVoidPointerArray(pointers); + + var baseObjects = new IBaseObject[entitiesCount]; + for (ulong i = 0; i < entitiesCount; i++) + { + var basePointer = entityPtrArray[i]; + baseObjects[i] = PoolManager.GetOrCreate(this, basePointer, (BaseObjectType)types[i]); + } + + return baseObjects; + } + } + + public IBaseObject[] GetEntitiesInDimension(int dimension, EntityType allowedTypes) + { + unsafe + { + CheckIfCallIsValid(); + var entitiesCount = Library.Server.Core_GetEntitiesInDimensionCount(NativePointer, dimension, (ulong)allowedTypes); + var pointers = IntPtr.Zero; + var types = new byte[entitiesCount]; + Library.Server.Core_GetEntitiesInDimension(NativePointer, dimension, (ulong)allowedTypes, &pointers, types, entitiesCount); + + var entityPtrArray = new IntPtr[entitiesCount]; + Marshal.Copy(pointers, entityPtrArray, 0, (int) entitiesCount); + Library.Shared.FreeVoidPointerArray(pointers); + var baseObjects = new IBaseObject[entitiesCount]; + for (ulong i = 0; i < entitiesCount; i++) + { + var basePointer = entityPtrArray[i]; + baseObjects[i] = PoolManager.GetOrCreate(this, basePointer, (BaseObjectType)types[i]); + } + + return baseObjects; + } + } + + public IBaseObject[] GetEntitiesInRange(Position position, int range, int dimension, EntityType allowedTypes) + { + unsafe + { + CheckIfCallIsValid(); + var entitiesCount = Library.Server.Core_GetEntitiesInRangeCount(NativePointer, position, range, dimension, (ulong)allowedTypes); + var pointers = IntPtr.Zero; + var types = new byte[entitiesCount]; + Library.Server.Core_GetEntitiesInRange(NativePointer, position, range, dimension, (ulong)allowedTypes, &pointers, types, entitiesCount); + + var entityPtrArray = new IntPtr[entitiesCount]; + Marshal.Copy(pointers, entityPtrArray, 0, (int) entitiesCount); + Library.Shared.FreeVoidPointerArray(pointers); + + var baseObjects = new IBaseObject[entitiesCount]; + for (ulong i = 0; i < entitiesCount; i++) + { + var basePointer = entityPtrArray[i]; + baseObjects[i] = PoolManager.GetOrCreate(this, basePointer, (BaseObjectType)types[i]); + } + + return baseObjects; + } + } + + public IBaseObject GetBaseObject(BaseObjectType type, uint id) + { + unsafe + { + CheckIfCallIsValid(); + CheckIfThreadIsValid(); + var ptr = Library.Shared.Core_GetBaseObjectByID(NativePointer, (byte)type, id); + + return PoolManager.Get(ptr, type); + } + } + + public IMetric RegisterMetric(string name, MetricType type = MetricType.MetricTypeGauge, + Dictionary dataDict = default) + { + unsafe + { + var data = new Dictionary(); + + var dictionary = dataDict ?? new Dictionary(); + + var keys = new IntPtr[dictionary.Count]; + var values = new IntPtr[dictionary.Count]; + + for (var i = 0; i < dictionary.Count; i++) + { + var keyptr = MemoryUtils.StringToHGlobalUtf8(dictionary.ElementAt(i).Key); + var valueptr = MemoryUtils.StringToHGlobalUtf8(dictionary.ElementAt(i).Value); + keys[i] = keyptr; + values[i] = valueptr; + data.Add(keyptr, valueptr); + } + + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + + var ptr = Library.Server.Core_RegisterMetric(NativePointer, namePtr, (byte)type, keys, values, + (uint)data.Count); + + foreach (var dataValue in data) + { + Marshal.FreeHGlobal(dataValue.Key); + Marshal.FreeHGlobal(dataValue.Value); + } + + Marshal.FreeHGlobal(namePtr); + if (ptr == IntPtr.Zero) return null; + + var metric = new Metric(this, ptr); + metricCache.TryAdd(metric.Name, metric); + return metric; + } + } + + public void UnregisterMetric(IMetric metric) + { + if (metricCache.TryRemove(metric.Name, out var removedMetric)) + { + unsafe + { + Library.Server.Core_UnregisterMetric(NativePointer, removedMetric.MetricNativePointer); + } + } + else + { + Console.WriteLine("FEHLER LÖSCHEN"); + } + } + + public IMarker CreateMarker(IPlayer player, MarkerType type, Position pos, Rgba color) + { + unsafe + { + CheckIfCallIsValid(); + CheckIfThreadIsValid(); + uint pId = default; + var ptr = Library.Server.Core_CreateMarker(NativePointer, player?.PlayerNativePointer ?? IntPtr.Zero, (byte)type, pos, color, Resource.NativePointer, &pId); + if (ptr == IntPtr.Zero) return null; + return PoolManager.Marker.GetOrCreate(this, ptr, pId); + } + } + + public IObject CreateObject(uint hash, Position position, Rotation rotation, byte alpha, byte textureVariation, + ushort lodDistance, uint streamingDistance) + { + unsafe + { + CheckIfCallIsValid(); + CheckIfThreadIsValid(); + uint pId = default; + var ptr = Library.Server.Core_CreateObject(NativePointer, hash, position, rotation, alpha, textureVariation, lodDistance, streamingDistance, &pId); + if (ptr == IntPtr.Zero) return null; + return PoolManager.Object.GetOrCreate(this, ptr, pId); + } + } + + public IVirtualEntityGroup CreateVirtualEntityGroup(uint streamingDistance) + { + unsafe + { + CheckIfCallIsValid(); + CheckIfThreadIsValid(); + uint pId = default; + var ptr = Library.Shared.Core_CreateVirtualEntityGroup(NativePointer, streamingDistance, &pId); + if (ptr == IntPtr.Zero) return null; + return PoolManager.VirtualEntityGroup.GetOrCreate(this, ptr, pId); + } + } + + public IVirtualEntity CreateVirtualEntity(IVirtualEntityGroup group, Position position, uint streamingDistance, + Dictionary dataDict) + { + unsafe + { + CheckIfCallIsValid(); + CheckIfThreadIsValid(); + + var data = new Dictionary(); + + var keys = new IntPtr[dataDict.Count]; + var values = new IntPtr[dataDict.Count]; + + for (var i = 0; i < dataDict.Count; i++) + { + var stringPtr = MemoryUtils.StringToHGlobalUtf8(dataDict.ElementAt(i).Key); + Alt.Core.CreateMValue(out var mValue, dataDict.ElementAt(i).Value); + keys[i] = stringPtr; + values[i] = mValue.nativePointer; + data.Add(stringPtr, mValue); + } + + uint pId = default; + var ptr = Library.Shared.Core_CreateVirtualEntity(NativePointer, group.VirtualEntityGroupNativePointer, position, streamingDistance, keys, values, (uint)data.Count, &pId); + + foreach (var dataValue in data) + { + dataValue.Value.Dispose(); + Marshal.FreeHGlobal(dataValue.Key); + } + if (ptr == IntPtr.Zero) return null; + return PoolManager.VirtualEntity.GetOrCreate(this, ptr, pId); + } + } + + public void SetVoiceExternalPublic(string host, ushort port) + { + unsafe + { + var hostPtr = MemoryUtils.StringToHGlobalUtf8(host); + Library.Server.Core_SetVoiceExternalPublic(NativePointer, hostPtr, port); + Marshal.FreeHGlobal(hostPtr); + } + } + + public void SetVoiceExternal(string host, ushort port) + { + unsafe + { + var hostPtr = MemoryUtils.StringToHGlobalUtf8(host); + Library.Server.Core_SetVoiceExternal(NativePointer, hostPtr, port); + Marshal.FreeHGlobal(hostPtr); + } + } + + public ushort MaxStreamingPeds + { + get + { + unsafe + { + return Library.Server.Core_GetMaxStreamingPeds(NativePointer); + } + } + set + { + unsafe + { + Library.Server.Core_SetMaxStreamingPeds(NativePointer, value); + } + } + } + + public ushort MaxStreamingObjects + { + get + { + unsafe + { + return Library.Server.Core_GetMaxStreamingObjects(NativePointer); + } + } + set + { + unsafe + { + Library.Server.Core_SetMaxStreamingObjects(NativePointer, value); + } + } + } + public ushort MaxStreamingVehicles + { + get + { + unsafe + { + return Library.Server.Core_GetMaxStreamingVehicles(NativePointer); + } + } + set + { + unsafe + { + Library.Server.Core_SetMaxStreamingVehicles(NativePointer, value); + } + } + } + public byte StreamerThreadCount + { + get + { + unsafe + { + return Library.Server.Core_GetStreamerThreadCount(NativePointer); + } + } + set + { + unsafe + { + Library.Server.Core_SetStreamerThreadCount(NativePointer, value); + } + } + } + public uint StreamingTickRate + { + get + { + unsafe + { + return Library.Server.Core_GetStreamingTickRate(NativePointer); + } + } + set + { + unsafe + { + Library.Server.Core_SetStreamingTickRate(NativePointer, value); + } + } + } + public uint StreamingDistance + { + get + { + unsafe + { + return Library.Server.Core_GetStreamingDistance(NativePointer); + } + } + set + { + unsafe + { + Library.Server.Core_SetStreamingDistance(NativePointer, value); + } + } + } + + public uint ColShapeTickRate + { + get + { + unsafe + { + return Library.Server.Core_GetColShapeTickRate(NativePointer); + } + } + set + { + unsafe + { + Library.Server.Core_SetColShapeTickRate(NativePointer, value); + } + } + } + public uint MigrationDistance + { + get + { + unsafe + { + return Library.Server.Core_GetMigrationDistance(NativePointer); + } + } + set + { + unsafe + { + Library.Server.Core_SetMigrationDistance(NativePointer, value); + } + } + } + + public bool HasBenefit(Benefit benefit) + { + unsafe + { + return Library.Server.Core_HasBenefit(NativePointer, (byte)benefit) == 1; + } + } + + public byte MigrationThreadCount + { + get + { + unsafe + { + return Library.Server.Core_GetMigrationThreadCount(NativePointer); + } + } + set + { + unsafe + { + Library.Server.Core_SetMigrationThreadCount(NativePointer, value); + } + } + } + public uint MigrationTickRate + { + get + { + unsafe + { + return Library.Server.Core_GetMigrationTickRate(NativePointer); + } + } + set + { + unsafe + { + Library.Server.Core_SetMigrationTickRate(NativePointer, value); + } + } + } + public byte SyncReceiveThreadCount + { + get + { + unsafe + { + return Library.Server.Core_GetSyncReceiveThreadCount(NativePointer); + } + } + set + { + unsafe + { + Library.Server.Core_SetSyncReceiveThreadCount(NativePointer, value); + } + } + } + public byte SyncSendThreadCount + { + get + { + unsafe + { + return Library.Server.Core_GetSyncSendThreadCount(NativePointer); + } + } + set + { + unsafe + { + Library.Server.Core_SetSyncSendThreadCount(NativePointer, value); + } + } + } + + public uint[] LoadedVehicleModels + { + get + { + unsafe + { + var ptr = IntPtr.Zero; + ulong size = 0; + Library.Server.Core_GetLoadedVehicleModels(NativePointer, &ptr, &size); + + var uintArray = new UIntArray + { + data = ptr, + size = size, + capacity = size + }; + + var result = uintArray.ToArray(); + + Library.Shared.FreeUInt32Array(ptr); + + return result; + } + } + } + + public IReadOnlyCollection GetAllMetrics() + { + return metricCache.Values.ToList(); + } } } \ No newline at end of file diff --git a/api/AltV.Net/Data/AmmoFlags.cs b/api/AltV.Net/Data/AmmoFlags.cs new file mode 100644 index 000000000..3f463175f --- /dev/null +++ b/api/AltV.Net/Data/AmmoFlags.cs @@ -0,0 +1,35 @@ +using System.Runtime.InteropServices; + +namespace AltV.Net.Data; + +[StructLayout(LayoutKind.Sequential)] +internal readonly struct AmmoFlagsInternal +{ + [MarshalAs(UnmanagedType.I1)] + private readonly bool InfiniteAmmo; + [MarshalAs(UnmanagedType.I1)] + private readonly bool AddSmokeOnExplosion; + [MarshalAs(UnmanagedType.I1)] + private readonly bool Fuse; + [MarshalAs(UnmanagedType.I1)] + private readonly bool FixedAfterExplosion; + + public AmmoFlags ToPublic() + { + return new AmmoFlags + { + InfiniteAmmo = InfiniteAmmo, + AddSmokeOnExplosion = AddSmokeOnExplosion, + Fuse = Fuse, + FixedAfterExplosion = FixedAfterExplosion + }; + } +} + +public struct AmmoFlags +{ + public bool InfiniteAmmo; + public bool AddSmokeOnExplosion; + public bool Fuse; + public bool FixedAfterExplosion; +} \ No newline at end of file diff --git a/api/AltV.Net/Data/Benefit.cs b/api/AltV.Net/Data/Benefit.cs new file mode 100644 index 000000000..058c35c52 --- /dev/null +++ b/api/AltV.Net/Data/Benefit.cs @@ -0,0 +1,7 @@ +namespace AltV.Net.Data; + +public enum Benefit : byte +{ + None, + CloudAuth +} \ No newline at end of file diff --git a/api/AltV.Net/Data/CloudAuthResult.cs b/api/AltV.Net/Data/CloudAuthResult.cs new file mode 100644 index 000000000..31c4b5dfc --- /dev/null +++ b/api/AltV.Net/Data/CloudAuthResult.cs @@ -0,0 +1,8 @@ +namespace AltV.Net.Data; + +public enum CloudAuthResult : byte +{ + Success, + NoBenefit, + VerifyFailed, +} \ No newline at end of file diff --git a/api/AltV.Net/Data/Decoration.cs b/api/AltV.Net/Data/Decoration.cs new file mode 100644 index 000000000..78f700ef0 --- /dev/null +++ b/api/AltV.Net/Data/Decoration.cs @@ -0,0 +1,25 @@ +using System.Runtime.InteropServices; + +namespace AltV.Net.Data; + +[StructLayout(LayoutKind.Sequential)] +internal readonly struct DecorationInternal +{ + private readonly uint Collection; + private readonly uint Overlay; + + public Decoration ToPublic() + { + return new Decoration + { + Collection = Collection, + Overlay = Overlay + }; + } +} + +public struct Decoration +{ + public uint Collection; + public uint Overlay; +} \ No newline at end of file diff --git a/api/AltV.Net/Data/EntityType.cs b/api/AltV.Net/Data/EntityType.cs new file mode 100644 index 000000000..6aa4362a3 --- /dev/null +++ b/api/AltV.Net/Data/EntityType.cs @@ -0,0 +1,44 @@ +using System; + +namespace AltV.Net.Data; + +[Flags] +public enum EntityType +{ + Player = 1, + Vehicle = 2, + Ped = 4, + Object = 8, + // Disable current not supported types + /* + Blip = 16, + Webview = 32, + VoiceChannel = 64, + ColShape = 128, + Checkpoint = 256, + WebsocketClient = 512, + HttpClient = 1024, + Audio = 2048, + AudioOutput = 4096, + AudioOutputWorld = 8192, + AudioOutputAttached = 16384, + AudioOutputFrontend = 32768, + RmlElement = 65536, + RmlDocument = 131072, + LocalPlayer = 262144, + LocalObject = 524288, + VirtualEntity = 1048576, + VirtualEntityGroup = 2097152, + Marker = 4194304, + TextLabel = 8388608, + LocalPed = 16777216, + LocalVehicle = 33554432, + AudioFilter = 67108864, + ConnectionInfo = 134217728, + CustomTexture = 268435456, + Font = 536870912, + Size = 1073741824, + Undefined = -2147483648, + */ + +} \ No newline at end of file diff --git a/api/AltV.Net/Data/Metric.cs b/api/AltV.Net/Data/Metric.cs new file mode 100644 index 000000000..cf312a55e --- /dev/null +++ b/api/AltV.Net/Data/Metric.cs @@ -0,0 +1,63 @@ +using System; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Data; + +public class Metric : IMetric +{ + public IntPtr MetricNativePointer { get; } + public ICore Core { get; } + + public Metric(ICore core, IntPtr metricNativePointer) + { + MetricNativePointer = metricNativePointer; + Core = core; + } + + public string Name + { + get + { + unsafe + { + var size = 0; + return Core.PtrToStringUtf8AndFree( + Core.Library.Server.Metric_GetName(MetricNativePointer, &size), size); + } + } + } + + public ulong Value + { + get + { + unsafe + { + return Core.Library.Server.Metric_GetValue(MetricNativePointer); + } + } + set + { + unsafe + { + Core.Library.Server.Metric_SetValue(MetricNativePointer, value); + } + } + } + + public void Begin() + { + unsafe + { + Core.Library.Server.Metric_Begin(MetricNativePointer); + } + } + + public void End() + { + unsafe + { + Core.Library.Server.Metric_End(MetricNativePointer); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net/Data/MetricType.cs b/api/AltV.Net/Data/MetricType.cs new file mode 100644 index 000000000..e65c4e1ee --- /dev/null +++ b/api/AltV.Net/Data/MetricType.cs @@ -0,0 +1,8 @@ +namespace AltV.Net.Data; + +public enum MetricType : byte +{ + MetricTypeGauge, + MetricTypeCounter, + MetricTypeSize +} \ No newline at end of file diff --git a/api/AltV.Net/Data/PlayerSeat.cs b/api/AltV.Net/Data/PlayerSeat.cs new file mode 100644 index 000000000..8a26a184e --- /dev/null +++ b/api/AltV.Net/Data/PlayerSeat.cs @@ -0,0 +1,16 @@ +using System; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Data; + +public struct InternalPlayerSeat +{ + public IntPtr PlayerPointer { get; set; } + public byte Seat { get; set; } +} + +public struct PlayerSeat +{ + public IPlayer Player { get; set; } + public byte Seat { get; set; } +} \ No newline at end of file diff --git a/api/AltV.Net/Data/VehicleModelInfo.cs b/api/AltV.Net/Data/VehicleModelInfo.cs index 98ec6eccc..0743c518d 100644 --- a/api/AltV.Net/Data/VehicleModelInfo.cs +++ b/api/AltV.Net/Data/VehicleModelInfo.cs @@ -56,6 +56,11 @@ internal readonly struct VehicleModelInfoInternal private readonly IntPtr BonesPtr; private readonly uint BonesSize; + [MarshalAs(UnmanagedType.I1)] + private readonly bool CanAttachCars; + + private readonly uint HandlingNameHash; + public VehicleModelInfo ToPublic() { var arr = new BoneInfo[BonesSize]; @@ -81,7 +86,9 @@ public VehicleModelInfo ToPublic() DefaultExtras = DefaultExtras, ModKits = ModKits, HasAutoAttachTrailer = HasAutoAttachTrailer, - Bones = arr + Bones = arr, + CanAttachCars = CanAttachCars, + HandlingNameHash = HandlingNameHash }; } } @@ -105,6 +112,8 @@ public struct VehicleModelInfo public bool[] ModKits; public bool HasAutoAttachTrailer; public BoneInfo[] Bones; + public bool CanAttachCars; + public uint HandlingNameHash; public bool HasExtra(byte extraId) { diff --git a/api/AltV.Net/Data/WeaponDamageResponse.cs b/api/AltV.Net/Data/WeaponDamageResponse.cs new file mode 100644 index 000000000..43bf4f694 --- /dev/null +++ b/api/AltV.Net/Data/WeaponDamageResponse.cs @@ -0,0 +1,6 @@ +namespace AltV.Net.Data; + +public record WeaponDamageResponse(bool notCancel, uint? Damage) { + public static implicit operator WeaponDamageResponse(bool val) => new WeaponDamageResponse(val, null); + public static implicit operator WeaponDamageResponse(uint val) => new WeaponDamageResponse(true, val); +}; \ No newline at end of file diff --git a/api/AltV.Net/Data/WeaponModelnfo.cs b/api/AltV.Net/Data/WeaponModelnfo.cs new file mode 100644 index 000000000..e32e5b018 --- /dev/null +++ b/api/AltV.Net/Data/WeaponModelnfo.cs @@ -0,0 +1,63 @@ +using System; +using System.Runtime.InteropServices; +using System.Runtime.Serialization; +using AltV.Net.Native; + +namespace AltV.Net.Data +{ + [StructLayout(LayoutKind.Sequential)] + internal readonly struct WeaponModelInfoInternal + { + private readonly uint Hash; + [MarshalAs(UnmanagedType.LPStr)] + private readonly string Name; + [MarshalAs(UnmanagedType.LPStr)] + private readonly string ModelName; + private readonly uint ModelHash; + private readonly uint AmmoTypeHash; + [MarshalAs(UnmanagedType.LPStr)] + private readonly string AmmoType; + [MarshalAs(UnmanagedType.LPStr)] + private readonly string AmmoModelName; + private readonly uint AmmoModelHash; + private readonly int DefaultMaxAmmoMp; + private readonly int SkillAbove50MaxAmmoMp; + private readonly int MaxSkillMaxAmmoMp; + private readonly int BonusMaxAmmoMp; + + public WeaponModelInfo ToPublic() + { + return new WeaponModelInfo + { + Hash = Hash, + Name = Name, + ModelName = ModelName, + ModelHash = ModelHash, + AmmoTypeHash = AmmoTypeHash, + AmmoType = AmmoType, + AmmoModelName = AmmoModelName, + AmmoModelHash = AmmoModelHash, + DefaultMaxAmmoMp = DefaultMaxAmmoMp, + SkillAbove50MaxAmmoMp = SkillAbove50MaxAmmoMp, + MaxSkillMaxAmmoMp = MaxSkillMaxAmmoMp, + BonusMaxAmmoMp = BonusMaxAmmoMp + }; + } + } + + public struct WeaponModelInfo + { + public uint Hash; + public string Name; + public string ModelName; + public uint ModelHash; + public uint AmmoTypeHash; + public string AmmoType; + public string AmmoModelName; + public uint AmmoModelHash; + public int DefaultMaxAmmoMp; + public int SkillAbove50MaxAmmoMp; + public int MaxSkillMaxAmmoMp; + public int BonusMaxAmmoMp; + } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/BaseObject.cs b/api/AltV.Net/Elements/Entities/BaseObject.cs index 828ea8b10..c67eb9ac5 100644 --- a/api/AltV.Net/Elements/Entities/BaseObject.cs +++ b/api/AltV.Net/Elements/Entities/BaseObject.cs @@ -11,42 +11,37 @@ using AltV.Net.Native; using AltV.Net.Shared; using AltV.Net.Shared.Elements.Entities; +using AltV.Net.Shared.Utils; namespace AltV.Net.Elements.Entities { public abstract class BaseObject : SharedBaseObject, IBaseObject, IInternalBaseObject { public override IntPtr BaseObjectNativePointer { get; protected set; } - + public override ICore Core { get; } - [Obsolete("Use Core instead")] - public ICore Server - { - get - { - Alt.LogWarning("baseObject.Server is deprecated, use baseObject.Core instead"); - return Core; - } - } + public uint Id { get; } + public override BaseObjectType Type { get; } - - protected BaseObject(ICore core, IntPtr nativePointer, BaseObjectType type) + + protected BaseObject(ICore core, IntPtr nativePointer, BaseObjectType type, uint id) { Core = core; BaseObjectNativePointer = nativePointer; Type = type; - + Id = id; + if (nativePointer == IntPtr.Zero) { throw new BaseObjectRemovedException(this); } - + Exists = true; } - + public override void CheckIfEntityExists() { CheckIfCallIsValid(); @@ -61,5 +56,61 @@ public override void CheckIfEntityExists() public override void CheckIfCallIsValid() { } + + public void SetSyncedMetaData(string key, object value) + { + CheckIfEntityExists(); + Alt.Core.CreateMValue(out var mValue, value); + SetSyncedMetaData(key, in mValue); + mValue.Dispose(); + } + + public void SetSyncedMetaData(Dictionary metaData) + { + unsafe + { + var dataTemp = new Dictionary(); + + var keys = new IntPtr[metaData.Count]; + var values = new IntPtr[metaData.Count]; + + for (var i = 0; i < metaData.Count; i++) + { + var stringPtr = MemoryUtils.StringToHGlobalUtf8(metaData.ElementAt(i).Key); + Core.CreateMValue(out var mValue, metaData.ElementAt(i).Value); + keys[i] = stringPtr; + values[i] = mValue.nativePointer; + dataTemp.Add(stringPtr, mValue); + } + + Core.Library.Server.BaseObject_SetMultipleSyncedMetaData(NativePointer, keys, values, (uint)dataTemp.Count); + + foreach (var dataValue in dataTemp) + { + dataValue.Value.Dispose(); + Marshal.FreeHGlobal(dataValue.Key); + } + } + } + + public void SetSyncedMetaData(string key, in MValueConst value) + { + unsafe + { + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); + Core.Library.Server.BaseObject_SetSyncedMetaData(BaseObjectNativePointer, stringPtr, value.nativePointer); + Marshal.FreeHGlobal(stringPtr); + } + } + + public void DeleteSyncedMetaData(string key) + { + unsafe + { + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); + Core.Library.Server.BaseObject_DeleteSyncedMetaData(BaseObjectNativePointer, stringPtr); + Marshal.FreeHGlobal(stringPtr); + } + } } } \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/Blip.cs b/api/AltV.Net/Elements/Entities/Blip.cs index f71e4db25..ec49b0399 100644 --- a/api/AltV.Net/Elements/Entities/Blip.cs +++ b/api/AltV.Net/Elements/Entities/Blip.cs @@ -1,17 +1,59 @@ using System; +using System.Collections.Generic; +using System.Linq; using System.Numerics; using System.Runtime.InteropServices; using AltV.Net.Data; using AltV.Net.Native; -using AltV.Net.Shared.Elements.Entities; +using AltV.Net.Shared.Utils; namespace AltV.Net.Elements.Entities { public class Blip : WorldObject, IBlip { public IntPtr BlipNativePointer { get; } + bool IBlip.IsGlobal { get; set; } + public void AddTargetPlayer(IPlayer player) + { + unsafe + { + Core.Library.Server.Blip_AddTargetPlayer(BlipNativePointer, player.PlayerNativePointer); + } + } + + public void RemoveTargetPlayer(IPlayer player) + { + unsafe + { + Core.Library.Server.Blip_RemoveTargetPlayer(BlipNativePointer, player.PlayerNativePointer); + } + } + + public IReadOnlyCollection GetTargets() + { + unsafe + { + CheckIfCallIsValid(); + ulong size = 0; + var ptr = Core.Library.Server.Blip_GetTargets(BlipNativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int) size); + var arr = data.Select(e => Core.PoolManager.Player.GetOrCreate(Core, e)).ToArray(); + Core.Library.Shared.FreePlayerArray(ptr); + return arr; + } + } + public override IntPtr NativePointer => BlipNativePointer; - + + public static uint GetId(IntPtr pedPointer) + { + unsafe + { + return Alt.Core.Library.Shared.Blip_GetID(pedPointer); + } + } + private static IntPtr GetWorldObjectPointer(ICore core, IntPtr nativePointer) { unsafe @@ -19,7 +61,7 @@ private static IntPtr GetWorldObjectPointer(ICore core, IntPtr nativePointer) return core.Library.Shared.Blip_GetWorldObject(nativePointer); } } - + public bool IsGlobal { get @@ -32,6 +74,8 @@ public bool IsGlobal } } + byte IBlip.BlipType { get; set; } + public bool IsAttached { get @@ -39,7 +83,7 @@ public bool IsAttached unsafe { CheckIfEntityExists(); - return Core.Library.Server.Blip_IsAttached(BlipNativePointer) == 1; + return Core.Library.Shared.Blip_IsAttached(BlipNativePointer) == 1; } } } @@ -52,9 +96,9 @@ public IEntity AttachedTo { CheckIfEntityExists(); var entityType = BaseObjectType.Undefined; - var entityPointer = Core.Library.Server.Blip_AttachedTo(BlipNativePointer, &entityType); + var entityPointer = Core.Library.Shared.Blip_AttachedTo(BlipNativePointer, &entityType); if (entityPointer == IntPtr.Zero) return null; - return Alt.Core.BaseEntityPool.Get(entityPointer, entityType, out var entity) ? entity : null; + return (IEntity)Alt.Core.PoolManager.Blip.Get(entityPointer); } } } @@ -66,12 +110,20 @@ public byte BlipType unsafe { CheckIfEntityExists(); - return Core.Library.Shared.Blip_GetType(BlipNativePointer); + return Core.Library.Shared.Blip_GetBlipType(BlipNativePointer); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Blip_SetBlipType(BlipNativePointer, value); } } } - public ushort Sprite + public uint Sprite { get { @@ -91,7 +143,7 @@ public ushort Sprite } } - public byte Color + public uint Color { get { @@ -175,7 +227,7 @@ public Vector2 ScaleXY } } - public short Display + public uint Display { get { @@ -217,7 +269,7 @@ public Rgba SecondaryColor } } - public byte Alpha + public uint Alpha { get { @@ -296,7 +348,7 @@ public bool Friendly } } } - + public bool Bright { get @@ -336,8 +388,8 @@ public ushort Number } } } - - public bool ShowCone + + public bool ShowCone { get { @@ -356,8 +408,8 @@ public bool ShowCone } } } - - public bool Flashes + + public bool Flashes { get { @@ -376,8 +428,8 @@ public bool Flashes } } } - - public bool FlashesAlternate + + public bool FlashesAlternate { get { @@ -396,8 +448,8 @@ public bool FlashesAlternate } } } - - public bool ShortRange + + public bool ShortRange { get { @@ -417,7 +469,7 @@ public bool ShortRange } } - public ushort Priority + public uint Priority { get { @@ -456,8 +508,8 @@ public float Rotation } } } - - public string GxtName + + public string GxtName { get { @@ -473,14 +525,14 @@ public string GxtName unsafe { CheckIfEntityExists(); - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(value); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(value); Core.Library.Shared.Blip_SetGxtName(BlipNativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); } } } - public string Name + public string Name { get { @@ -496,14 +548,14 @@ public string Name unsafe { CheckIfEntityExists(); - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(value); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(value); Core.Library.Shared.Blip_SetName(BlipNativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); } } } - - public bool Pulse + + public bool Pulse { get { @@ -522,8 +574,8 @@ public bool Pulse } } } - - public bool MissionCreator + + public bool MissionCreator { get { @@ -542,8 +594,8 @@ public bool MissionCreator } } } - - public bool TickVisible + + public bool TickVisible { get { @@ -562,8 +614,8 @@ public bool TickVisible } } } - - public bool HeadingIndicatorVisible + + public bool HeadingIndicatorVisible { get { @@ -582,7 +634,7 @@ public bool HeadingIndicatorVisible } } } - + public bool OutlineIndicatorVisible { get @@ -602,8 +654,8 @@ public bool OutlineIndicatorVisible } } } - - public bool CrewIndicatorVisible + + public bool CrewIndicatorVisible { get { @@ -623,7 +675,7 @@ public bool CrewIndicatorVisible } } - public ushort Category + public uint Category { get { @@ -642,8 +694,8 @@ public ushort Category } } } - - public bool HighDetail + + public bool HighDetail { get { @@ -662,7 +714,7 @@ public bool HighDetail } } } - + public bool Shrinked { get @@ -683,7 +735,7 @@ public bool Shrinked } } - public Blip(ICore core, IntPtr nativePointer) : base(core, GetWorldObjectPointer(core, nativePointer), BaseObjectType.Blip) + public Blip(ICore core, IntPtr nativePointer, uint id) : base(core, GetWorldObjectPointer(core, nativePointer), BaseObjectType.Blip, id) { BlipNativePointer = nativePointer; } @@ -696,5 +748,105 @@ public void Fade(uint opacity, uint duration) Core.Library.Shared.Blip_Fade(BlipNativePointer, opacity, duration); } } + + public bool Visible + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Blip_IsVisible(BlipNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Blip_SetVisible(BlipNativePointer, value ? (byte) 1 : (byte) 0); + } + } + } + + public bool IsHiddenOnLegend + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Blip_IsVisible(BlipNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Blip_SetVisible(BlipNativePointer, value ? (byte) 1 : (byte) 0); + } + } + } + + public bool IsMinimalOnEdge + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Blip_IsMinimalOnEdge(BlipNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Blip_SetMinimalOnEdge(BlipNativePointer, value ? (byte) 1 : (byte) 0); + } + } + } + + public bool IsUseHeightIndicatorOnEdge + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Blip_IsUseHeightIndicatorOnEdge(BlipNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Blip_SetUseHeightIndicatorOnEdge(BlipNativePointer, value ? (byte) 1 : (byte) 0); + } + } + } + + public bool IsShortHeightThreshold + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Blip_IsShortHeightThreshold(BlipNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Blip_SetShortHeightThreshold(BlipNativePointer, value ? (byte) 1 : (byte) 0); + } + } + } } } \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/Checkpoint.cs b/api/AltV.Net/Elements/Entities/Checkpoint.cs index b8f0a49ee..89ef57071 100644 --- a/api/AltV.Net/Elements/Entities/Checkpoint.cs +++ b/api/AltV.Net/Elements/Entities/Checkpoint.cs @@ -1,9 +1,12 @@ using System; +using System.Collections.Generic; +using System.Linq; using System.Numerics; using System.Runtime.InteropServices; using AltV.Net.Data; using AltV.Net.Elements.Args; using AltV.Net.Native; +using AltV.Net.Shared.Utils; namespace AltV.Net.Elements.Entities { @@ -11,7 +14,7 @@ public class Checkpoint : ColShape, ICheckpoint { public IntPtr CheckpointNativePointer { get; } public override IntPtr NativePointer => CheckpointNativePointer; - + private static IntPtr GetColShapePointer(ICore core, IntPtr nativePointer) { unsafe @@ -20,6 +23,14 @@ private static IntPtr GetColShapePointer(ICore core, IntPtr nativePointer) } } + public static uint GetId(IntPtr pedPointer) + { + unsafe + { + return Alt.Core.Library.Shared.Checkpoint_GetID(pedPointer); + } + } + public byte CheckpointType { get @@ -124,9 +135,193 @@ public Position NextPosition } } - public Checkpoint(ICore core, IntPtr nativePointer) : base(core, GetColShapePointer(core, nativePointer), BaseObjectType.Checkpoint) + public uint StreamingDistance + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Checkpoint_GetStreamingDistance(CheckpointNativePointer); + } + } + } + + public Checkpoint(ICore core, IntPtr nativePointer, uint id) : base(core, + GetColShapePointer(core, nativePointer), BaseObjectType.Checkpoint, id) { CheckpointNativePointer = nativePointer; } + + public bool Visible + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Checkpoint_IsVisible(CheckpointNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Checkpoint_SetVisible(CheckpointNativePointer, value ? (byte)1 : (byte)0); + } + } + } + + public void SetStreamSyncedMetaData(Dictionary metaData) + { + unsafe + { + var dataTemp = new Dictionary(); + + var keys = new IntPtr[metaData.Count]; + var values = new IntPtr[metaData.Count]; + + for (var i = 0; i < metaData.Count; i++) + { + var stringPtr = MemoryUtils.StringToHGlobalUtf8(metaData.ElementAt(i).Key); + Core.CreateMValue(out var mValue, metaData.ElementAt(i).Value); + keys[i] = stringPtr; + values[i] = mValue.nativePointer; + dataTemp.Add(stringPtr, mValue); + } + + Core.Library.Server.Checkpoint_SetMultipleStreamSyncedMetaData(CheckpointNativePointer, keys, values, (uint)dataTemp.Count); + + foreach (var dataValue in dataTemp) + { + dataValue.Value.Dispose(); + Marshal.FreeHGlobal(dataValue.Key); + } + } + } + + public void SetStreamSyncedMetaData(string key, in MValueConst value) + { + unsafe + { + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); + Core.Library.Server.Checkpoint_SetStreamSyncedMetaData(CheckpointNativePointer, stringPtr, value.nativePointer); + Marshal.FreeHGlobal(stringPtr); + } + } + + public void DeleteStreamSyncedMetaData(string key) + { + CheckIfEntityExists(); + unsafe + { + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); + Core.Library.Server.Checkpoint_DeleteStreamSyncedMetaData(CheckpointNativePointer, stringPtr); + Marshal.FreeHGlobal(stringPtr); + } + } + + public void SetStreamSyncedMetaData(string key, object value) + { + CheckIfEntityExists(); + Alt.Core.CreateMValue(out var mValue, value); + SetStreamSyncedMetaData(key, in mValue); + mValue.Dispose(); + } + + public bool HasStreamSyncedMetaData(string key) + { + unsafe + { + CheckIfEntityExists(); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); + var result = Core.Library.Server.Checkpoint_HasStreamSyncedMetaData(CheckpointNativePointer, stringPtr); + Marshal.FreeHGlobal(stringPtr); + return result == 1; + } + } + + public bool GetStreamSyncedMetaData(string key, out int result) + { + CheckIfEntityExists(); + GetStreamSyncedMetaData(key, out MValueConst mValue); + using (mValue) + { + if (mValue.type != MValueConst.Type.Int) + { + result = default; + return false; + } + + result = (int)mValue.GetInt(); + } + + return true; + } + + public bool GetStreamSyncedMetaData(string key, out uint result) + { + CheckIfEntityExists(); + GetStreamSyncedMetaData(key, out MValueConst mValue); + using (mValue) + { + if (mValue.type != MValueConst.Type.Uint) + { + result = default; + return false; + } + + result = (uint)mValue.GetUint(); + } + + return true; + } + + public bool GetStreamSyncedMetaData(string key, out float result) + { + CheckIfEntityExists(); + GetStreamSyncedMetaData(key, out MValueConst mValue); + using (mValue) + { + if (mValue.type != MValueConst.Type.Double) + { + result = default; + return false; + } + + result = (float)mValue.GetDouble(); + } + + return true; + } + + public bool GetStreamSyncedMetaData(string key, out T result) + { + CheckIfEntityExists(); + GetStreamSyncedMetaData(key, out MValueConst mValue); + var obj = mValue.ToObject(); + mValue.Dispose(); + if (!(obj is T cast)) + { + result = default; + return false; + } + + result = cast; + return true; + } + + public void GetStreamSyncedMetaData(string key, out MValueConst value) + { + CheckIfEntityExists(); + unsafe + { + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); + value = new MValueConst(Core, + Core.Library.Server.Checkpoint_GetStreamSyncedMetaData(CheckpointNativePointer, stringPtr)); + Marshal.FreeHGlobal(stringPtr); + } + } } } \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/ColShape.cs b/api/AltV.Net/Elements/Entities/ColShape.cs index 0ae2dbb40..83fb4383b 100644 --- a/api/AltV.Net/Elements/Entities/ColShape.cs +++ b/api/AltV.Net/Elements/Entities/ColShape.cs @@ -8,7 +8,7 @@ public class ColShape : WorldObject, IColShape { public IntPtr ColShapeNativePointer { get; } public override IntPtr NativePointer => ColShapeNativePointer; - + private static IntPtr GetWorldObjectPointer(ICore core, IntPtr nativePointer) { unsafe @@ -16,7 +16,15 @@ private static IntPtr GetWorldObjectPointer(ICore core, IntPtr nativePointer) return core.Library.Shared.ColShape_GetWorldObject(nativePointer); } } - + + public static uint GetId(IntPtr pedPointer) + { + unsafe + { + return Alt.Core.Library.Shared.ColShape_GetID(pedPointer); + } + } + public bool IsPlayersOnly { get @@ -49,20 +57,20 @@ public ColShapeType ColShapeType } } - public ColShape(ICore core, IntPtr nativePointer) : base(core, GetWorldObjectPointer(core, nativePointer), BaseObjectType.ColShape) + public ColShape(ICore core, IntPtr nativePointer, uint id) : base(core, GetWorldObjectPointer(core, nativePointer), BaseObjectType.ColShape, id) { ColShapeNativePointer = nativePointer; } - public ColShape(ICore core, IntPtr nativePointer, BaseObjectType baseObjectType) : base(core, GetWorldObjectPointer(core, nativePointer), baseObjectType) + public ColShape(ICore core, IntPtr nativePointer, BaseObjectType baseObjectType, uint id) : base(core, GetWorldObjectPointer(core, nativePointer), baseObjectType, id) { ColShapeNativePointer = nativePointer; } - public bool IsEntityIdIn(ushort id) + public bool IsEntityIdIn(uint id) { CheckIfEntityExists(); - + unsafe { return Core.Library.Shared.ColShape_IsEntityIdIn(ColShapeNativePointer, id) == 1; @@ -72,7 +80,7 @@ public bool IsEntityIdIn(ushort id) public bool IsPointIn(Vector3 point) { CheckIfEntityExists(); - + unsafe { return Core.Library.Shared.ColShape_IsPointIn(ColShapeNativePointer, point) == 1; @@ -83,7 +91,7 @@ public bool IsEntityIn(ISharedEntity entity) { CheckIfEntityExists(); entity.CheckIfEntityExists(); - + unsafe { return Core.Library.Shared.ColShape_IsEntityIn(ColShapeNativePointer, entity.EntityNativePointer) == 1; @@ -94,7 +102,7 @@ public bool IsEntityIn(IEntity entity) { return IsEntityIn((ISharedEntity) entity); } - + [Obsolete("Use IsEntityIn instead")] public bool IsPlayerIn(IPlayer player) { diff --git a/api/AltV.Net/Elements/Entities/ConnectionInfo.cs b/api/AltV.Net/Elements/Entities/ConnectionInfo.cs new file mode 100644 index 000000000..df2598e47 --- /dev/null +++ b/api/AltV.Net/Elements/Entities/ConnectionInfo.cs @@ -0,0 +1,270 @@ +using System; +using System.Runtime.InteropServices; +using System.Threading; +using System.Threading.Tasks; +using AltV.Net.CApi.ServerEvents; +using AltV.Net.Data; +using AltV.Net.Native; +using AltV.Net.Shared.Utils; + +namespace AltV.Net.Elements.Entities; + +public class ConnectionInfo : BaseObject, IConnectionInfo +{ + + public IntPtr ConnectionInfoNativePointer { get; } + public override IntPtr NativePointer => ConnectionInfoNativePointer; + + private static IntPtr GetBaseObjectPointer(ICore core, IntPtr virtualEntityGroupNativePointer) + { + unsafe + { + return core.Library.Server.ConnectionInfo_GetBaseObject(virtualEntityGroupNativePointer); + } + } + + public static uint GetId(IntPtr pointer) + { + unsafe + { + return Alt.Core.Library.Server.ConnectionInfo_GetID(pointer); + } + } + + + public ConnectionInfo(ICore core, IntPtr nativePointer, uint id) : base(core, GetBaseObjectPointer(core, nativePointer), BaseObjectType.ConnectionInfo, id) + { + ConnectionInfoNativePointer = nativePointer; + } + + public string Name + { + get + { + unsafe + { + var size = 0; + return Core.PtrToStringUtf8AndFree( + Core.Library.Server.ConnectionInfo_GetName(ConnectionInfoNativePointer, &size), size); + } + } + } + + public ulong SocialId + { + get + { + unsafe + { + return Core.Library.Server.ConnectionInfo_GetSocialId(ConnectionInfoNativePointer); + } + } + } + + public ulong HardwareIdHash + { + get + { + unsafe + { + return Core.Library.Server.ConnectionInfo_GetHwIdHash(ConnectionInfoNativePointer); + } + } + } + + public ulong HardwareIdExHash + { + get + { + unsafe + { + return Core.Library.Server.ConnectionInfo_GetHwIdExHash(ConnectionInfoNativePointer); + } + } + } + + public string AuthToken + { + get + { + unsafe + { + var size = 0; + return Core.PtrToStringUtf8AndFree( + Core.Library.Server.ConnectionInfo_GetAuthToken(ConnectionInfoNativePointer, &size), size); + } + } + } + + public bool IsDebug + { + get + { + unsafe + { + return Core.Library.Server.ConnectionInfo_GetIsDebug(ConnectionInfoNativePointer) == 1; + } + } + } + + public string Branch + { + get + { + unsafe + { + var size = 0; + return Core.PtrToStringUtf8AndFree( + Core.Library.Server.ConnectionInfo_GetBranch(ConnectionInfoNativePointer, &size), size); + } + } + } + + public uint Build + { + get + { + unsafe + { + return Core.Library.Server.ConnectionInfo_GetBuild(ConnectionInfoNativePointer); + } + } + } + + public string CdnUrl + { + get + { + unsafe + { + var size = 0; + return Core.PtrToStringUtf8AndFree( + Core.Library.Server.ConnectionInfo_GetCdnUrl(ConnectionInfoNativePointer, &size), size); + } + } + } + + public ulong PasswordHash + { + get + { + unsafe + { + return Core.Library.Server.ConnectionInfo_GetPasswordHash(ConnectionInfoNativePointer); + } + } + } + + public string Ip + { + get + { + unsafe + { + var size = 0; + return Core.PtrToStringUtf8AndFree( + Core.Library.Server.ConnectionInfo_GetIp(ConnectionInfoNativePointer, &size), size); + } + } + } + + public long DiscordUserId + { + get + { + unsafe + { + return Core.Library.Server.ConnectionInfo_GetDiscordUserID(ConnectionInfoNativePointer); + } + } + } + + public string SocialName + { + get + { + unsafe + { + var size = 0; + return Core.PtrToStringUtf8AndFree( + Core.Library.Server.ConnectionInfo_GetSocialName(ConnectionInfoNativePointer, &size), size); + } + } + } + + public string Text + { + get + { + unsafe + { + var size = 0; + return Core.PtrToStringUtf8AndFree( + Core.Library.Server.ConnectionInfo_GetText(ConnectionInfoNativePointer, &size), size); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(value); + Core.Library.Server.ConnectionInfo_SetText(ConnectionInfoNativePointer, stringPtr); + Marshal.FreeHGlobal(stringPtr); + } + } + } + + public bool IsAccepted + { + get + { + unsafe + { + return Core.Library.Server.ConnectionInfo_IsAccepted(ConnectionInfoNativePointer) == 1; + } + } + } + + public void Accept(bool sendNames = true) + { + unsafe + { + Core.Library.Server.ConnectionInfo_Accept(ConnectionInfoNativePointer, sendNames ? (byte)1 : (byte)0); + } + } + + public void Decline(string reason) + { + unsafe + { + var stringPtr = MemoryUtils.StringToHGlobalUtf8(reason); + Core.Library.Server.ConnectionInfo_Decline(ConnectionInfoNativePointer, stringPtr); + Marshal.FreeHGlobal(stringPtr); + } + } + + public string CloudId + { + get + { + unsafe + { + var size = 0; + return Core.PtrToStringUtf8AndFree( + Core.Library.Server.ConnectionInfo_GetCloudID(ConnectionInfoNativePointer, &size), size); + } + } + } + + public CloudAuthResult CloudAuthResult + { + get + { + unsafe + { + return (CloudAuthResult)Core.Library.Server.ConnectionInfo_GetCloudAuthResult(ConnectionInfoNativePointer); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/Entity.cs b/api/AltV.Net/Elements/Entities/Entity.cs index 67add42ed..0355bcca5 100644 --- a/api/AltV.Net/Elements/Entities/Entity.cs +++ b/api/AltV.Net/Elements/Entities/Entity.cs @@ -1,10 +1,13 @@ using System; +using System.Collections.Generic; +using System.Linq; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using AltV.Net.Data; using AltV.Net.Elements.Args; using AltV.Net.Native; using AltV.Net.Shared.Elements.Entities; +using AltV.Net.Shared.Utils; namespace AltV.Net.Elements.Entities { @@ -12,7 +15,7 @@ public abstract class Entity : WorldObject, IEntity { public IntPtr EntityNativePointer { get; private set; } public override IntPtr NativePointer => EntityNativePointer; - + private static IntPtr GetWorldObjectNativePointer(ICore core, IntPtr nativePointer) { unsafe @@ -20,9 +23,7 @@ private static IntPtr GetWorldObjectNativePointer(ICore core, IntPtr nativePoint return core.Library.Shared.Entity_GetWorldObject(nativePointer); } } - - public ushort Id { get; } - + public IPlayer NetworkOwner { get @@ -32,12 +33,13 @@ public IPlayer NetworkOwner { var entityPointer = Core.Library.Shared.Entity_GetNetOwner(EntityNativePointer); if (entityPointer == IntPtr.Zero) return null; - return Alt.Core.PlayerPool.Get(entityPointer); + return Alt.Core.PoolManager.Player.Get(entityPointer); } } } + ISharedPlayer ISharedEntity.NetworkOwner => NetworkOwner; - + public Rotation Rotation { get @@ -55,7 +57,7 @@ public Rotation Rotation CheckIfEntityExists(); unsafe { - Core.Library.Server.Entity_SetRotation(EntityNativePointer, value); + Core.Library.Shared.Entity_SetRotation(EntityNativePointer, value); } } } @@ -77,7 +79,7 @@ public bool Visible CheckIfEntityExists(); unsafe { - Core.Library.Server.Entity_SetVisible(EntityNativePointer, value ? (byte) 1 : (byte) 0); + Core.Library.Server.Entity_SetVisible(EntityNativePointer, value ? (byte)1 : (byte)0); } } } @@ -97,7 +99,7 @@ public bool Streamed CheckIfEntityExists(); unsafe { - Core.Library.Server.Entity_SetStreamed(EntityNativePointer, value ? (byte) 1 : (byte) 0); + Core.Library.Server.Entity_SetStreamed(EntityNativePointer, value ? (byte)1 : (byte)0); } } } @@ -107,48 +109,37 @@ public void SetNetworkOwner(IPlayer player, bool disableMigration) CheckIfEntityExists(); unsafe { - Core.Library.Server.Entity_SetNetOwner(EntityNativePointer, player?.PlayerNativePointer ?? IntPtr.Zero, disableMigration ? (byte) 1 : (byte) 0); + Core.Library.Server.Entity_SetNetOwner(EntityNativePointer, player?.PlayerNativePointer ?? IntPtr.Zero, + disableMigration ? (byte)1 : (byte)0); } } - public void SetSyncedMetaData(string key, in MValueConst value) + public void SetStreamSyncedMetaData(Dictionary metaData) { unsafe { - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); - Core.Library.Server.Entity_SetSyncedMetaData(EntityNativePointer, stringPtr, value.nativePointer); - Marshal.FreeHGlobal(stringPtr); - } - } + var dataTemp = new Dictionary(); - public void GetSyncedMetaData(string key, out MValueConst value) - { - unsafe - { - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); - value = new MValueConst(Core, Core.Library.Shared.Entity_GetSyncedMetaData(EntityNativePointer, stringPtr)); - Marshal.FreeHGlobal(stringPtr); - } - } + var keys = new IntPtr[metaData.Count]; + var values = new IntPtr[metaData.Count]; - public bool HasSyncedMetaData(string key) - { - unsafe - { - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); - var result = Core.Library.Shared.Entity_HasSyncedMetaData(EntityNativePointer, stringPtr); - Marshal.FreeHGlobal(stringPtr); - return result == 1; - } - } + for (var i = 0; i < metaData.Count; i++) + { + var stringPtr = MemoryUtils.StringToHGlobalUtf8(metaData.ElementAt(i).Key); + Core.CreateMValue(out var mValue, metaData.ElementAt(i).Value); + keys[i] = stringPtr; + values[i] = mValue.nativePointer; + dataTemp.Add(stringPtr, mValue); + } - public void DeleteSyncedMetaData(string key) - { - unsafe - { - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); - Core.Library.Server.Entity_DeleteSyncedMetaData(EntityNativePointer, stringPtr); - Marshal.FreeHGlobal(stringPtr); + Core.Library.Server.Entity_SetMultipleStreamSyncedMetaData(EntityNativePointer, keys, values, + (uint)dataTemp.Count); + + foreach (var dataValue in dataTemp) + { + dataValue.Value.Dispose(); + Marshal.FreeHGlobal(dataValue.Key); + } } } @@ -156,7 +147,7 @@ public void SetStreamSyncedMetaData(string key, in MValueConst value) { unsafe { - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); Core.Library.Server.Entity_SetStreamSyncedMetaData(EntityNativePointer, stringPtr, value.nativePointer); Marshal.FreeHGlobal(stringPtr); } @@ -166,8 +157,9 @@ public void GetStreamSyncedMetaData(string key, out MValueConst value) { unsafe { - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); - value = new MValueConst(Core, Core.Library.Shared.Entity_GetStreamSyncedMetaData(EntityNativePointer, stringPtr)); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); + value = new MValueConst(Core, + Core.Library.Shared.Entity_GetStreamSyncedMetaData(EntityNativePointer, stringPtr)); Marshal.FreeHGlobal(stringPtr); } } @@ -177,7 +169,7 @@ public bool HasStreamSyncedMetaData(string key) CheckIfEntityExistsOrCached(); unsafe { - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); var result = Core.Library.Shared.Entity_HasStreamSyncedMetaData(EntityNativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); return result == 1; @@ -189,36 +181,12 @@ public void DeleteStreamSyncedMetaData(string key) CheckIfEntityExists(); unsafe { - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); Core.Library.Server.Entity_DeleteStreamSyncedMetaData(EntityNativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); } } - - public void SetSyncedMetaData(string key, object value) - { - CheckIfEntityExists(); - Alt.Core.CreateMValue(out var mValue, value); - SetSyncedMetaData(key, in mValue); - mValue.Dispose(); - } - public bool GetSyncedMetaData(string key, out T result) - { - CheckIfEntityExistsOrCached(); - GetSyncedMetaData(key, out MValueConst mValue); - var obj = mValue.ToObject(); - mValue.Dispose(); - if (!(obj is T cast)) - { - result = default; - return false; - } - - result = cast; - return true; - } - public void SetStreamSyncedMetaData(string key, object value) { CheckIfEntityExists(); @@ -242,11 +210,11 @@ public bool GetStreamSyncedMetaData(string key, out T result) result = cast; return true; } - - public bool GetSyncedMetaData(string key, out int result) + + public bool GetStreamSyncedMetaData(string key, out int result) { CheckIfEntityExistsOrCached(); - GetSyncedMetaData(key, out MValueConst mValue); + GetStreamSyncedMetaData(key, out MValueConst mValue); using (mValue) { if (mValue.type != MValueConst.Type.Int) @@ -255,16 +223,16 @@ public bool GetSyncedMetaData(string key, out int result) return false; } - result = (int) mValue.GetInt(); + result = (int)mValue.GetInt(); } return true; } - - public bool GetSyncedMetaData(string key, out uint result) + + public bool GetStreamSyncedMetaData(string key, out uint result) { CheckIfEntityExistsOrCached(); - GetSyncedMetaData(key, out MValueConst mValue); + GetStreamSyncedMetaData(key, out MValueConst mValue); using (mValue) { if (mValue.type != MValueConst.Type.Uint) @@ -273,16 +241,16 @@ public bool GetSyncedMetaData(string key, out uint result) return false; } - result = (uint) mValue.GetUint(); + result = (uint)mValue.GetUint(); } return true; } - - public bool GetSyncedMetaData(string key, out float result) + + public bool GetStreamSyncedMetaData(string key, out float result) { CheckIfEntityExistsOrCached(); - GetSyncedMetaData(key, out MValueConst mValue); + GetStreamSyncedMetaData(key, out MValueConst mValue); using (mValue) { if (mValue.type != MValueConst.Type.Double) @@ -291,79 +259,91 @@ public bool GetSyncedMetaData(string key, out float result) return false; } - result = (float) mValue.GetDouble(); + result = (float)mValue.GetDouble(); } return true; } - - public bool GetStreamSyncedMetaData(string key, out int result) + + public void ResetNetworkOwner() { - CheckIfEntityExistsOrCached(); - GetStreamSyncedMetaData(key, out MValueConst mValue); - using (mValue) + SetNetworkOwner(null, false); + } + + public void AttachToEntity(IEntity entity, ushort otherBoneId, ushort ownBoneId, Position position, + Rotation rotation, + bool collision, bool noFixedRotation) + { + unsafe { - if (mValue.type != MValueConst.Type.Int) - { - result = default; - return false; - } + CheckIfEntityExists(); + if (entity == null) return; + entity.CheckIfEntityExists(); - result = (int) mValue.GetInt(); + Core.Library.Server.Entity_AttachToEntity(EntityNativePointer, entity.EntityNativePointer, otherBoneId, + ownBoneId, position, rotation, collision ? (byte)1 : (byte)0, noFixedRotation ? (byte)1 : (byte)0); } - - return true; } - - public bool GetStreamSyncedMetaData(string key, out uint result) + + public void AttachToEntity(IEntity entity, string otherBone, string ownBone, Position position, + Rotation rotation, + bool collision, bool noFixedRotation) { - CheckIfEntityExistsOrCached(); - GetStreamSyncedMetaData(key, out MValueConst mValue); - using (mValue) + unsafe { - if (mValue.type != MValueConst.Type.Uint) - { - result = default; - return false; - } - - result = (uint) mValue.GetUint(); + CheckIfEntityExists(); + if (entity == null) return; + entity.CheckIfEntityExists(); + + var otherBonePtr = MemoryUtils.StringToHGlobalUtf8(otherBone); + var ownBonePtr = MemoryUtils.StringToHGlobalUtf8(ownBone); + Core.Library.Server.Entity_AttachToEntity_BoneString(EntityNativePointer, entity.EntityNativePointer, + otherBonePtr, ownBonePtr, position, rotation, collision ? (byte)1 : (byte)0, + noFixedRotation ? (byte)1 : (byte)0); } + } - return true; + public void Detach() + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Entity_Detach(EntityNativePointer); + } } - - public bool GetStreamSyncedMetaData(string key, out float result) + + public uint Timestamp { - CheckIfEntityExistsOrCached(); - GetStreamSyncedMetaData(key, out MValueConst mValue); - using (mValue) + get { - if (mValue.type != MValueConst.Type.Double) + CheckIfEntityExistsOrCached(); + unsafe { - result = default; - return false; + return Core.Library.Server.Entity_GetTimestamp(EntityNativePointer); } - - result = (float) mValue.GetDouble(); } - - return true; } - public void ResetNetworkOwner() + public uint StreamingDistance { - SetNetworkOwner(null, false); + get + { + CheckIfEntityExistsOrCached(); + unsafe + { + return Core.Library.Server.Entity_GetStreamingDistance(EntityNativePointer); + } + } + set + { + CheckIfEntityExists(); + unsafe + { + Core.Library.Server.Entity_SetStreamingDistance(EntityNativePointer, value); + } + } } - public abstract void AttachToEntity(IEntity entity, short otherBone, short ownBone, Position position, - Rotation rotation, - bool collision, bool noFixedRotation); - - public abstract void AttachToEntity(IEntity entity, string otherBone, string ownBone, Position position, - Rotation rotation, - bool collision, bool noFixedRotation); - public bool Frozen { get @@ -371,7 +351,7 @@ public bool Frozen CheckIfEntityExistsOrCached(); unsafe { - return Core.Library.Server.Entity_IsFrozen(EntityNativePointer) == 1; + return Core.Library.Shared.Entity_IsFrozen(EntityNativePointer) == 1; } } set @@ -379,7 +359,7 @@ public bool Frozen CheckIfEntityExists(); unsafe { - Core.Library.Server.Entity_SetFrozen(EntityNativePointer, value ? (byte) 1 : (byte) 0); + Core.Library.Shared.Entity_SetFrozen(EntityNativePointer, value ? (byte)1 : (byte)0); } } } @@ -391,7 +371,7 @@ public bool Collision CheckIfEntityExistsOrCached(); unsafe { - return Core.Library.Server.Entity_HasCollision (EntityNativePointer) == 1; + return Core.Library.Server.Entity_HasCollision(EntityNativePointer) == 1; } } set @@ -399,17 +379,15 @@ public bool Collision CheckIfEntityExists(); unsafe { - Core.Library.Server.Entity_SetCollision(EntityNativePointer, value ? (byte) 1 : (byte) 0); + Core.Library.Server.Entity_SetCollision(EntityNativePointer, value ? (byte)1 : (byte)0); } } } - public abstract void Detach(); - - protected Entity(ICore core, IntPtr nativePointer, BaseObjectType type, ushort id) : base(core, GetWorldObjectNativePointer(core, nativePointer), type) + protected Entity(ICore core, IntPtr nativePointer, BaseObjectType type, uint id) : base(core, + GetWorldObjectNativePointer(core, nativePointer), type, id) { EntityNativePointer = nativePointer; - Id = id; } public override void CheckIfEntityExists() diff --git a/api/AltV.Net/Elements/Entities/IBaseObject.cs b/api/AltV.Net/Elements/Entities/IBaseObject.cs index 213b12e08..eaf75828f 100644 --- a/api/AltV.Net/Elements/Entities/IBaseObject.cs +++ b/api/AltV.Net/Elements/Entities/IBaseObject.cs @@ -9,5 +9,31 @@ namespace AltV.Net.Elements.Entities public interface IBaseObject : ISharedBaseObject { new ICore Core { get; } + + /// + /// Set synced meta data of the entity. + /// + /// Synced meta data is accessible across different serverside resources and across all clients. + /// + /// + /// This entity was removed + void SetSyncedMetaData(string key, object value); + + void SetSyncedMetaData(Dictionary metaData); + + /// + /// Sets the synced meta data of an entity. + /// + /// Synced meta data is accessible across different serverside resources and across all clients. + /// + /// + void SetSyncedMetaData(string key, in MValueConst value); + + /// + /// Deletes synced meta data from an entity. + /// + /// Synced meta data is accessible across different serverside resources and across all clients. + /// + void DeleteSyncedMetaData(string key); } } \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/IBlip.cs b/api/AltV.Net/Elements/Entities/IBlip.cs index 20dd52d9d..825d46244 100644 --- a/api/AltV.Net/Elements/Entities/IBlip.cs +++ b/api/AltV.Net/Elements/Entities/IBlip.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Numerics; using AltV.Net.Data; using AltV.Net.Shared.Elements.Entities; @@ -7,15 +8,29 @@ namespace AltV.Net.Elements.Entities { public interface IBlip : IWorldObject, ISharedBlip { - + /// /// If the blip is attached. /// bool IsAttached { get; } - + /// /// Get the current entity the blip is attached to. /// IEntity AttachedTo { get; } + + /// + /// Get the type of blip. + /// + new byte BlipType { get; set; } + + /// + /// If the blip is global. + /// + new bool IsGlobal { get; set; } + + void AddTargetPlayer(IPlayer player); + void RemoveTargetPlayer(IPlayer player); + IReadOnlyCollection GetTargets(); } } diff --git a/api/AltV.Net/Elements/Entities/ICheckpoint.cs b/api/AltV.Net/Elements/Entities/ICheckpoint.cs index 6c2544934..124429ec1 100644 --- a/api/AltV.Net/Elements/Entities/ICheckpoint.cs +++ b/api/AltV.Net/Elements/Entities/ICheckpoint.cs @@ -1,10 +1,22 @@ using System; +using System.Collections.Generic; using AltV.Net.Data; +using AltV.Net.Elements.Args; using AltV.Net.Shared.Elements.Entities; namespace AltV.Net.Elements.Entities { public interface ICheckpoint : ISharedCheckpoint, IColShape { + void SetStreamSyncedMetaData(string key, object value); + void SetStreamSyncedMetaData(Dictionary metaData); + void SetStreamSyncedMetaData(string key, in MValueConst value); + void DeleteStreamSyncedMetaData(string key); + bool HasStreamSyncedMetaData(string key); + bool GetStreamSyncedMetaData(string key, out int result); + bool GetStreamSyncedMetaData(string key, out uint result); + bool GetStreamSyncedMetaData(string key, out float result); + void GetStreamSyncedMetaData(string key, out MValueConst value); + bool GetStreamSyncedMetaData(string key, out T result); } } \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/IConnectionInfo.cs b/api/AltV.Net/Elements/Entities/IConnectionInfo.cs new file mode 100644 index 000000000..c539f37c2 --- /dev/null +++ b/api/AltV.Net/Elements/Entities/IConnectionInfo.cs @@ -0,0 +1,34 @@ +using System; +using System.Threading.Tasks; +using AltV.Net.Data; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Elements.Entities; + +public interface IConnectionInfo : IBaseObject +{ + IntPtr ConnectionInfoNativePointer { get; } + string Name { get; } + ulong SocialId { get; } + ulong HardwareIdHash { get; } + ulong HardwareIdExHash { get; } + string AuthToken { get; } + bool IsDebug { get; } + string Branch { get; } + uint Build { get; } + string CdnUrl { get; } + ulong PasswordHash { get; } + string Ip { get; } + long DiscordUserId { get; } + string SocialName { get; } + + string Text { get; set; } + + bool IsAccepted { get; } + + void Accept(bool sendNames = true); + void Decline(string reason); + string CloudId { get; } + + CloudAuthResult CloudAuthResult { get; } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/IEntity.cs b/api/AltV.Net/Elements/Entities/IEntity.cs index 1c7375fbe..f27223bb2 100644 --- a/api/AltV.Net/Elements/Entities/IEntity.cs +++ b/api/AltV.Net/Elements/Entities/IEntity.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using AltV.Net.Data; using AltV.Net.Elements.Args; using AltV.Net.Shared.Elements.Entities; @@ -7,7 +8,7 @@ namespace AltV.Net.Elements.Entities { public interface IEntity : ISharedEntity, IWorldObject { - + /// /// Get the network owner, or null if none is present /// @@ -44,15 +45,6 @@ public interface IEntity : ISharedEntity, IWorldObject /// public void ResetNetworkOwner(); - /// - /// Set synced meta data of the entity. - /// - /// Synced meta data is accessible across different serverside resources and across all clients. - /// - /// - /// This entity was removed - void SetSyncedMetaData(string key, object value); - /// /// Set synced meta data of the entity. /// @@ -61,14 +53,7 @@ public interface IEntity : ISharedEntity, IWorldObject /// /// This entity was removed void SetStreamSyncedMetaData(string key, object value); - - /// - /// Sets the synced meta data of an entity. - /// - /// Synced meta data is accessible across different serverside resources and across all clients. - /// - /// - void SetSyncedMetaData(string key, in MValueConst value); + void SetStreamSyncedMetaData(Dictionary metaData); /// /// Set synced meta data of the entity. @@ -79,13 +64,6 @@ public interface IEntity : ISharedEntity, IWorldObject /// This entity was removed void SetStreamSyncedMetaData(string key, in MValueConst value); - /// - /// Deletes synced meta data from an entity. - /// - /// Synced meta data is accessible across different serverside resources and across all clients. - /// - void DeleteSyncedMetaData(string key); - /// /// Deletes stream synced meta data from an entity. /// @@ -97,19 +75,13 @@ public interface IEntity : ISharedEntity, IWorldObject /// /// Attaches the entity to another entity. /// - void AttachToEntity(IEntity entity, short otherBone, short ownBone, Position position, Rotation rotation, bool collision, bool noFixedRotation); + void AttachToEntity(IEntity entity, ushort otherBoneId, ushort ownBoneId, Position position, Rotation rotation, bool collision, bool noFixedRotation); /// /// Attaches the entity to another entity. /// void AttachToEntity(IEntity entity, string otherBone, string ownBone, Position position, Rotation rotation, bool collision, bool noFixedRotation); - /// - /// Get or set frozen of the entity. - /// - /// This entity was removed - bool Frozen { get; set; } - /// /// Get or set collision of the entity. /// @@ -120,5 +92,9 @@ public interface IEntity : ISharedEntity, IWorldObject /// Detaches the entity from its attached entity. /// void Detach(); + + uint Timestamp { get; } + + uint StreamingDistance { get; set; } } } \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/IMarker.cs b/api/AltV.Net/Elements/Entities/IMarker.cs new file mode 100644 index 000000000..1ca3bb18a --- /dev/null +++ b/api/AltV.Net/Elements/Entities/IMarker.cs @@ -0,0 +1,8 @@ +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Elements.Entities; + +public interface IMarker : ISharedMarker, IWorldObject +{ + +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/IMetric.cs b/api/AltV.Net/Elements/Entities/IMetric.cs new file mode 100644 index 000000000..c71c27d99 --- /dev/null +++ b/api/AltV.Net/Elements/Entities/IMetric.cs @@ -0,0 +1,13 @@ +using System; + +namespace AltV.Net.Elements.Entities; + +public interface IMetric +{ + IntPtr MetricNativePointer { get; } + ICore Core { get; } + string Name { get; } + ulong Value { get; set; } + void Begin(); + void End(); +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/IObject.cs b/api/AltV.Net/Elements/Entities/IObject.cs index a8f7c83f6..2274387c1 100644 --- a/api/AltV.Net/Elements/Entities/IObject.cs +++ b/api/AltV.Net/Elements/Entities/IObject.cs @@ -1,9 +1,13 @@ +using System; using AltV.Net.Shared.Elements.Entities; -namespace AltV.Net.Elements.Entities +namespace AltV.Net.Elements.Entities; + +public interface IObject : ISharedObject, IEntity { - public interface IObject : ISharedObject, IEntity - { - - } + new byte Alpha { get; set; } + new byte TextureVariation { get; set; } + new ushort LodDistance { get; set; } + void PlaceOnGroundProperly(); + void ActivatePhysics(); } \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/IPed.cs b/api/AltV.Net/Elements/Entities/IPed.cs new file mode 100644 index 000000000..2dad0d709 --- /dev/null +++ b/api/AltV.Net/Elements/Entities/IPed.cs @@ -0,0 +1,11 @@ +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Elements.Entities; + +public interface IPed : ISharedPed, IEntity +{ + new ushort Armour { get; set; } + new ushort Health { get; set; } + new ushort MaxHealth { get; set; } + new uint CurrentWeapon { get; set; } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/IPlayer.cs b/api/AltV.Net/Elements/Entities/IPlayer.cs index d69bdb1ab..392aabf5f 100644 --- a/api/AltV.Net/Elements/Entities/IPlayer.cs +++ b/api/AltV.Net/Elements/Entities/IPlayer.cs @@ -1,5 +1,6 @@ using System; using System.Numerics; +using System.Threading.Tasks; using AltV.Net.Data; using AltV.Net.Elements.Args; using AltV.Net.Enums; @@ -13,7 +14,7 @@ public interface IPlayer : ISharedPlayer, IEntity /// Returns the current vehicle. Null if not in a vehicle /// new IVehicle Vehicle { get; } - + /// /// The players model / skin /// @@ -37,7 +38,7 @@ public interface IPlayer : ISharedPlayer, IEntity ulong HardwareIdExHash { get; } string AuthToken { get; } - + long DiscordId { get; } /// @@ -89,7 +90,7 @@ public interface IPlayer : ISharedPlayer, IEntity /// Returns the IP of the player /// string Ip { get; } - + uint InteriorLocation { get; } /// @@ -140,7 +141,9 @@ void SetDateTime(int day, int month, int year, int hour, /// /// Removes all player weapons /// - void RemoveAllWeapons(); + void RemoveAllWeapons(bool removeAllAmmo); + + bool HasWeapon(uint weapon); /// /// Kicks the player with reason @@ -155,6 +158,17 @@ void SetDateTime(int day, int month, int year, int hour, /// Parameters void Emit(string eventName, params object[] args); + ushort EmitRPC(string name, params object[] args); + + void EmitRPCAnswer(ushort answerId, object answer, string error); + + /// + /// Triggers client side event for a player + /// + /// Event Trigger + /// Parameters + void EmitUnreliable(string eventName, params object[] args); + /// /// Adds a weapon component to a weapon /// @@ -288,7 +302,7 @@ void SetDateTime(int day, int month, int year, int hour, /// /// This entity was removed bool Invincible { get; set; } - + uint LastDamagedBodyPart { get; set; } void SetIntoVehicle(IVehicle vehicle, byte seat); @@ -411,12 +425,48 @@ void SetDateTime(int day, int month, int year, int hour, void GetLocalMetaData(string key, out MValueConst value); void SetLocalMetaData(string key, in MValueConst value); - + bool HasLocalMetaData(string key); void DeleteLocalMetaData(string key); - + bool SendNames { get; set; } + + void PlayAnimation(string animDict, string animName, float blendInSpeed, float blendOutSpeed, int duration, + int flags, float playbackRate, bool lockX, bool lockY, bool lockZ); + + void ClearTasks(); + + string SocialClubName { get; } + void SetAmmo(uint ammoHash, ushort ammo); + ushort GetAmmo(uint ammoHash); + void SetWeaponAmmo(uint weaponHash, ushort ammo); + ushort GetWeaponAmmo(uint weaponHash); + + void SetAmmoSpecialType(uint ammoHash, AmmoSpecialType ammoSpecialType); + AmmoSpecialType GetAmmoSpecialType(uint ammoHash); + + void SetAmmoFlags(uint ammoHash, AmmoFlags ammoFlags); + + AmmoFlags GetAmmoFlags(uint ammoHash); + + void SetAmmoMax(uint ammoHash, int ammoMax); + int GetAmmoMax(uint ammoHash); + void SetAmmoMax50(uint ammoHash, int ammoMax); + int GetAmmoMax50(uint ammoHash); + void SetAmmoMax100(uint ammoHash, int ammoMax); + int GetAmmoMax100(uint ammoHash); + + void AddDecoration(uint collection, uint overlay); + void RemoveDecoration(uint collection, uint overlay); + void ClearDecorations(); + Decoration[] GetDecorations(); + void PlayScenario(string name); + string CloudId { get; } + + CloudAuthResult CloudAuthResult { get; } + + string BloodDamage { get; set; } } public static class PlayerExtensions @@ -490,7 +540,7 @@ public static void RemoveWeapon(this IPlayer player, WeaponModel weaponModel) => public static Vector3 GetForwardVector(this IPlayer player) { var z = player.Rotation.Yaw * (Math.PI / 180.0); - var x = player.Rotation.Pitch * (Math.PI / 180.0); + var x = player.Rotation.Roll * (Math.PI / 180.0); var num = Math.Abs(Math.Cos(x)); return new Vector3( @@ -499,7 +549,7 @@ public static Vector3 GetForwardVector(this IPlayer player) (float) Math.Sin(x) ); } - + public static void SetLocalMetaData(this IPlayer player, string key, object value) { player.CheckIfEntityExists(); diff --git a/api/AltV.Net/Elements/Entities/IVehicle.cs b/api/AltV.Net/Elements/Entities/IVehicle.cs index 1b492e398..a3108436c 100644 --- a/api/AltV.Net/Elements/Entities/IVehicle.cs +++ b/api/AltV.Net/Elements/Entities/IVehicle.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Numerics; using AltV.Net.Data; using AltV.Net.Enums; @@ -852,5 +853,14 @@ NumberPlateStyle GetNumberPlateStyleExt() => /// Index of weapon /// int GetWeaponCapacity(byte index); + + Quaternion Quaternion { get; set; } + + bool IsHornActive { get; } + + float AccelerationLevel { get; } + float BrakeLevel { get; } + + List Passengers { get; } } } \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/IVirtualEntity.cs b/api/AltV.Net/Elements/Entities/IVirtualEntity.cs new file mode 100644 index 000000000..12390e056 --- /dev/null +++ b/api/AltV.Net/Elements/Entities/IVirtualEntity.cs @@ -0,0 +1,13 @@ +using System.Collections.Generic; +using AltV.Net.Elements.Args; +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Elements.Entities; + +public interface IVirtualEntity : ISharedVirtualEntity, IWorldObject +{ + void SetStreamSyncedMetaData(string key, object value); + void SetStreamSyncedMetaData(Dictionary metaData); + void SetStreamSyncedMetaData(string key, in MValueConst value); + void DeleteStreamSyncedMetaData(string key); +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/IVirtualEntityGroup.cs b/api/AltV.Net/Elements/Entities/IVirtualEntityGroup.cs new file mode 100644 index 000000000..b42bb31e4 --- /dev/null +++ b/api/AltV.Net/Elements/Entities/IVirtualEntityGroup.cs @@ -0,0 +1,8 @@ +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Elements.Entities; + +public interface IVirtualEntityGroup : ISharedVirtualEntityGroup, IBaseObject +{ + +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/IVoiceChannel.cs b/api/AltV.Net/Elements/Entities/IVoiceChannel.cs index 3cf5ab99f..f34532222 100644 --- a/api/AltV.Net/Elements/Entities/IVoiceChannel.cs +++ b/api/AltV.Net/Elements/Entities/IVoiceChannel.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; namespace AltV.Net.Elements.Entities { @@ -65,5 +66,11 @@ public interface IVoiceChannel : IBaseObject /// Destroy the voice channel /// void Destroy(); + + uint Filter { get; set; } + int Priority { get; set; } + + IReadOnlyCollection Players { get; } + ulong PlayerCount { get; } } } \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/IWorldObject.cs b/api/AltV.Net/Elements/Entities/IWorldObject.cs index a931bc43a..d56cb5562 100644 --- a/api/AltV.Net/Elements/Entities/IWorldObject.cs +++ b/api/AltV.Net/Elements/Entities/IWorldObject.cs @@ -6,17 +6,6 @@ namespace AltV.Net.Elements.Entities { public interface IWorldObject : ISharedWorldObject, IBaseObject { - /// - /// Get or set position of the entity. - /// - /// This entity was deleted before - new Position Position { get; set; } - - /// - /// Get or set dimension of the entity. - /// - /// This entity was deleted before - int Dimension { get; set; } } public static class WorldObjectExtensions diff --git a/api/AltV.Net/Elements/Entities/Marker.cs b/api/AltV.Net/Elements/Entities/Marker.cs new file mode 100644 index 000000000..bf1f2e9b1 --- /dev/null +++ b/api/AltV.Net/Elements/Entities/Marker.cs @@ -0,0 +1,259 @@ +using System; +using System.Numerics; +using AltV.Net.Data; +using AltV.Net.Shared.Elements.Entities; +using AltV.Net.Shared.Enums; + +namespace AltV.Net.Elements.Entities; + +public class Marker : WorldObject, IMarker +{ + public IntPtr MarkerNativePointer { get; } + public override IntPtr NativePointer => MarkerNativePointer; + + private static IntPtr GetWorldObjectPointer(ICore core, IntPtr nativePointer) + { + unsafe + { + return core.Library.Shared.Marker_GetWorldObject(nativePointer); + } + } + + public static uint GetId(IntPtr nativePointer) + { + unsafe + { + return Alt.Core.Library.Shared.Marker_GetID(nativePointer); + } + } + + public Marker(ICore core, IntPtr nativePointer, uint id) : base(core, GetWorldObjectPointer(core, nativePointer), BaseObjectType.Marker, id) + { + this.MarkerNativePointer = nativePointer; + } + + public bool IsGlobal + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Marker_IsGlobal(MarkerNativePointer) == 1; + } + } + } + + public ISharedPlayer Target + { + get + { + unsafe + { + CheckIfEntityExists(); + var targetPointer = Core.Library.Shared.Marker_GetTarget(MarkerNativePointer); + if (targetPointer == IntPtr.Zero) return null; + return Core.PoolManager.Player.Get(targetPointer); + } + } + } + public Rgba Color + { + get + { + unsafe + { + CheckIfEntityExists(); + var color = Rgba.Zero; + Core.Library.Shared.Marker_GetColor(MarkerNativePointer, &color); + return color; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Marker_SetColor(MarkerNativePointer, value); + } + } + } + + + public bool Visible + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Marker_IsVisible(MarkerNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Marker_SetVisible(MarkerNativePointer, value ? (byte)1 : (byte)0); + } + } + } + + public MarkerType MarkerType + { + get + { + unsafe + { + CheckIfEntityExists(); + return (MarkerType)Core.Library.Shared.Marker_GetMarkerType(MarkerNativePointer); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Marker_SetMarkerType(MarkerNativePointer, (byte)value); + } + } + } + + public Position Scale + { + get + { + unsafe + { + CheckIfEntityExists(); + var scale = Vector3.Zero; + Core.Library.Shared.Marker_GetScale(MarkerNativePointer, &scale); + return scale; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Marker_SetScale(MarkerNativePointer, value); + } + } + } + + public Rotation Rotation + { + get + { + unsafe + { + CheckIfEntityExists(); + var directon = Rotation.Zero; + Core.Library.Shared.Marker_GetRotation(MarkerNativePointer, &directon); + return directon; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Marker_SetRotation(MarkerNativePointer, value); + } + } + } + public Position Direction + { + get + { + unsafe + { + CheckIfEntityExists(); + var directon = Vector3.Zero; + Core.Library.Shared.Marker_GetDirection(MarkerNativePointer, &directon); + return directon; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Marker_SetDirection(MarkerNativePointer, value); + } + } + } + + public uint StreamingDistance + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Marker_GetStreamingDistance(MarkerNativePointer); + } + } + } + + public bool IsFaceCamera + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Marker_IsFaceCamera(MarkerNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Marker_SetFaceCamera(MarkerNativePointer, value ? (byte)1:(byte)0); + } + } + } + + public bool IsRotating + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Marker_IsRotating(MarkerNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Marker_SetRotating(MarkerNativePointer, value ? (byte)1:(byte)0); + } + } + } + + public bool IsBobUpDown + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.Marker_IsBobUpDown(MarkerNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.Marker_SetBobUpDown(MarkerNativePointer, value ? (byte)1:(byte)0); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/Object.cs b/api/AltV.Net/Elements/Entities/Object.cs new file mode 100644 index 000000000..c04ed15a8 --- /dev/null +++ b/api/AltV.Net/Elements/Entities/Object.cs @@ -0,0 +1,128 @@ +using System; +using AltV.Net.Data; + +namespace AltV.Net.Elements.Entities; + +public class Object : Entity, IObject +{ + public IntPtr ObjectNativePointer { get; private set; } + public override IntPtr NativePointer => ObjectNativePointer; + + private static IntPtr GetEntityPointer(ICore core, IntPtr pointer) + { + unsafe + { + return core.Library.Shared.Object_GetEntity(pointer); + } + } + + public static uint GetId(IntPtr pointer) + { + unsafe + { + return Alt.Core.Library.Shared.Object_GetID(pointer); + } + } + + public Object(ICore core, IntPtr nativePointer, uint id) : base(core, GetEntityPointer(core, nativePointer), BaseObjectType.Object, id) + { + this.ObjectNativePointer = nativePointer; + } + + public override uint Model + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Entity_GetModel(EntityNativePointer); + } + } + set => throw new NotImplementedException("network object doesn't support set model"); + } + + public byte Alpha + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Object_GetAlpha(ObjectNativePointer); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Object_SetAlpha(ObjectNativePointer, value); + } + } + } + + public ushort LodDistance + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Object_GetLodDistance(ObjectNativePointer); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Object_SetLodDistance(ObjectNativePointer, value); + } + } + } + + public void PlaceOnGroundProperly() + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Object_PlaceOnGroundProperly(ObjectNativePointer); + } + } + + public void ActivatePhysics() + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Object_ActivatePhysics(ObjectNativePointer); + } + } + + public byte TextureVariation + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Object_GetTextureVariation(ObjectNativePointer); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Object_SetTextureVariation(ObjectNativePointer, value); + } + } + } + + public override void SetCached(IntPtr cachedNetworkObject) + { + this.ObjectNativePointer = cachedNetworkObject; + base.SetCached(GetEntityPointer(Core, cachedNetworkObject)); + } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/Ped.cs b/api/AltV.Net/Elements/Entities/Ped.cs new file mode 100644 index 000000000..4eb3b837a --- /dev/null +++ b/api/AltV.Net/Elements/Entities/Ped.cs @@ -0,0 +1,131 @@ +using System; +using AltV.Net.Data; +using AltV.Net.Native; + +namespace AltV.Net.Elements.Entities; + +public class Ped : Entity, IPed +{ + public IntPtr PedNativePointer { get; private set; } + public override IntPtr NativePointer => PedNativePointer; + + private static IntPtr GetEntityPointer(ICore core, IntPtr pedPointer) + { + unsafe + { + return core.Library.Shared.Ped_GetEntity(pedPointer); + } + } + + public static uint GetId(IntPtr pedPointer) + { + unsafe + { + return Alt.Core.Library.Shared.Ped_GetID(pedPointer); + } + } + + public Ped(ICore core, IntPtr nativePointer, uint id) : base(core, GetEntityPointer(core, nativePointer), BaseObjectType.Ped, id) + { + this.PedNativePointer = nativePointer; + } + + public override uint Model + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Entity_GetModel(EntityNativePointer); + } + } + set => throw new NotImplementedException("ped doesn't support set model"); + } + + public ushort Armour + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Ped_GetArmour(PedNativePointer); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Ped_SetArmour(PedNativePointer, value); + } + } + } + + public ushort Health + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Ped_GetHealth(PedNativePointer); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Ped_SetHealth(PedNativePointer, value); + } + } + } + + public ushort MaxHealth + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Ped_GetMaxHealth(PedNativePointer); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Ped_SetMaxHealth(PedNativePointer, value); + } + } + } + + public uint CurrentWeapon + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Ped_GetCurrentWeapon(PedNativePointer); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Ped_SetCurrentWeapon(PedNativePointer, value); + } + } + } + + public override void SetCached(IntPtr cachedPed) + { + this.PedNativePointer = cachedPed; + base.SetCached(GetEntityPointer(Core, cachedPed)); + } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/Player.cs b/api/AltV.Net/Elements/Entities/Player.cs index bd0684756..9151341f2 100644 --- a/api/AltV.Net/Elements/Entities/Player.cs +++ b/api/AltV.Net/Elements/Entities/Player.cs @@ -1,10 +1,15 @@ using System; using System.Numerics; using System.Runtime.InteropServices; +using System.Threading; +using System.Threading.Tasks; +using AltV.Net.CApi.ClientEvents; +using AltV.Net.CApi.ServerEvents; using AltV.Net.Data; using AltV.Net.Elements.Args; using AltV.Net.Native; using AltV.Net.Shared.Elements.Entities; +using AltV.Net.Shared.Utils; namespace AltV.Net.Elements.Entities { @@ -12,7 +17,7 @@ public class Player : Entity, IPlayer { public IntPtr PlayerNativePointer { get; private set; } public override IntPtr NativePointer => PlayerNativePointer; - + private static IntPtr GetEntityPointer(ICore core, IntPtr nativePointer) { unsafe @@ -20,8 +25,8 @@ private static IntPtr GetEntityPointer(ICore core, IntPtr nativePointer) return core.Library.Shared.Player_GetEntity(nativePointer); } } - - public static ushort GetId(IntPtr playerPointer) + + public static uint GetId(IntPtr playerPointer) { unsafe { @@ -79,7 +84,7 @@ public void GetLocalMetaData(string key, out MValueConst value) { unsafe { - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); value = new MValueConst(Core, Core.Library.Server.Player_GetLocalMetaData(PlayerNativePointer, stringPtr)); Marshal.FreeHGlobal(stringPtr); } @@ -89,7 +94,7 @@ public void SetLocalMetaData(string key, in MValueConst value) { unsafe { - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); Core.Library.Server.Player_SetLocalMetaData(PlayerNativePointer, stringPtr, value.nativePointer); Marshal.FreeHGlobal(stringPtr); } @@ -100,7 +105,7 @@ public bool HasLocalMetaData(string key) CheckIfEntityExistsOrCached(); unsafe { - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); var result = Core.Library.Server.Player_HasLocalMetaData(PlayerNativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); return result == 1; @@ -112,7 +117,7 @@ public void DeleteLocalMetaData(string key) CheckIfEntityExists(); unsafe { - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(key); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); Core.Library.Server.Player_DeleteLocalMetaData(PlayerNativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); } @@ -139,6 +144,299 @@ public bool SendNames } } + public void PlayAnimation(string animDict, string animName, float blendInSpeed, float blendOutSpeed, int duration, int flags, + float playbackRate, bool lockX, bool lockY, bool lockZ) + { + unsafe + { + CheckIfEntityExists(); + + var animDictPtr = MemoryUtils.StringToHGlobalUtf8(animDict); + var animNamePtr = MemoryUtils.StringToHGlobalUtf8(animName); + + Core.Library.Server.Player_PlayAnimation( + PlayerNativePointer, + animDictPtr, + animNamePtr, + blendInSpeed, + blendOutSpeed, + duration, + flags, + playbackRate, + lockX ? (byte)1 : (byte)0, + lockY ? (byte)1 : (byte)0, + lockZ ? (byte)1 : (byte)0); + Marshal.FreeHGlobal(animDictPtr); + Marshal.FreeHGlobal(animNamePtr); + } + } + + public void ClearTasks() + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Player_ClearTasks(PlayerNativePointer); + } + } + + public string SocialClubName + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + var size = 0; + return Core.PtrToStringUtf8AndFree( + Core.Library.Server.Player_GetSocialClubName(PlayerNativePointer, &size), size); + } + } + } + + public void SetAmmo(uint ammoHash, ushort ammo) + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Player_SetAmmo(PlayerNativePointer, ammoHash, ammo); + } + } + + public ushort GetAmmo(uint ammoHash) + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Server.Player_GetAmmo(PlayerNativePointer, ammoHash); + } + } + + public void SetWeaponAmmo(uint weaponHash, ushort ammo) + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Player_SetWeaponAmmo(PlayerNativePointer, weaponHash, ammo); + } + } + + public ushort GetWeaponAmmo(uint weaponHash) + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Server.Player_GetWeaponAmmo(PlayerNativePointer, weaponHash); + } + } + + public void SetAmmoSpecialType(uint ammoHash, AmmoSpecialType ammoSpecialType) + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Player_SetAmmoSpecialType(PlayerNativePointer, ammoHash, (uint)ammoSpecialType); + } + } + + public AmmoSpecialType GetAmmoSpecialType(uint ammoHash) + { + unsafe + { + CheckIfEntityExistsOrCached(); + return (AmmoSpecialType)Core.Library.Server.Player_GetAmmoMax(PlayerNativePointer, ammoHash); + } + } + + public void SetAmmoFlags(uint ammoHash, AmmoFlags ammoFlags) + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Player_SetAmmoFlags(PlayerNativePointer, ammoHash, + ammoFlags.InfiniteAmmo ? (byte)1 : (byte)0, + ammoFlags.AddSmokeOnExplosion ? (byte)1 : (byte)0, + ammoFlags.Fuse ? (byte)1 : (byte)0, + ammoFlags.FixedAfterExplosion ? (byte)1 : (byte)0); + } + } + + public AmmoFlags GetAmmoFlags(uint ammoHash) + { + unsafe + { + CheckIfEntityExistsOrCached(); + var ptr = Core.Library.Server.Player_GetAmmoFlags(PlayerNativePointer, ammoHash); + var structure = Marshal.PtrToStructure(ptr); + var publicStructure = structure.ToPublic(); + Core.Library.Server.Player_DeallocAmmoFlags(ptr); + return publicStructure; + } + } + + public void SetAmmoMax(uint ammoHash, int ammoMax) + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Player_SetAmmoMax(PlayerNativePointer, ammoHash, ammoMax); + } + } + + public int GetAmmoMax(uint ammoHash) + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Server.Player_GetAmmoMax(PlayerNativePointer, ammoHash); + } + } + + public void SetAmmoMax50(uint ammoHash, int ammoMax) + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Player_SetAmmoMax50(PlayerNativePointer, ammoHash, ammoMax); + } + } + + public int GetAmmoMax50(uint ammoHash) + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Server.Player_GetAmmoMax50(PlayerNativePointer, ammoHash); + } + } + + public void SetAmmoMax100(uint ammoHash, int ammoMax) + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Player_SetAmmoMax100(PlayerNativePointer, ammoHash, ammoMax); + } + } + + public int GetAmmoMax100(uint ammoHash) + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Server.Player_GetAmmoMax100(PlayerNativePointer, ammoHash); + } + } + + public void AddDecoration(uint collection, uint overlay) + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Player_AddDecoration(PlayerNativePointer, collection, overlay); + } + } + + public void RemoveDecoration(uint collection, uint overlay) + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Player_RemoveDecoration(PlayerNativePointer, collection, overlay); + } + } + + public void ClearDecorations() + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Player_ClearDecorations(PlayerNativePointer); + } + } + + public Decoration[] GetDecorations() + { + unsafe + { + CheckIfEntityExists(); + ulong size = 0; + var ptr = Core.Library.Server.Player_GetDecorations(PlayerNativePointer, &size); + var decorations = new Decoration[size]; + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int) size); + + for (ulong i = 0; i < size; i++) + { + var structure = Marshal.PtrToStructure(ptr); + decorations[i] = structure.ToPublic(); + } + Core.Library.Shared.FreePlayerArray(ptr); + return decorations; + } + } + + public void PlayScenario(string name) + { + unsafe + { + CheckIfEntityExists(); + var namePtr = MemoryUtils.StringToHGlobalUtf8(name); + Core.Library.Server.Player_PlayScenario(PlayerNativePointer, namePtr); + Marshal.FreeHGlobal(namePtr); + } + } + + public string CloudId + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + var size = 0; + return Core.PtrToStringUtf8AndFree( + Core.Library.Server.Player_GetCloudID(PlayerNativePointer, &size), size); + } + } + } + + public CloudAuthResult CloudAuthResult + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return (CloudAuthResult)Core.Library.Server.Player_GetCloudAuthResult(PlayerNativePointer); + } + } + } + + public string BloodDamage + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + var size = 0; + return Core.PtrToStringUtf8AndFree( + Core.Library.Server.Player_GetBloodDamageBase64(PlayerNativePointer, &size), size); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(value); + Core.Library.Server.Player_SetBloodDamageBase64(PlayerNativePointer, stringPtr); + Marshal.FreeHGlobal(stringPtr); + } + } + } + public bool IsConnected { get @@ -339,6 +637,66 @@ public bool IsReloading } } + public bool IsEnteringVehicle + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Player_IsEnteringVehicle(PlayerNativePointer) == 1; + } + } + } + + public bool IsLeavingVehicle + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Player_IsLeavingVehicle(PlayerNativePointer) == 1; + } + } + } + + public bool IsOnLadder + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Player_IsOnLadder(PlayerNativePointer) == 1; + } + } + } + + public bool IsInMelee + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Player_IsInMelee(PlayerNativePointer) == 1; + } + } + } + + public bool IsInCover + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Player_IsInCover(PlayerNativePointer) == 1; + } + } + } + public ushort Armor { get @@ -464,7 +822,7 @@ public IVehicle Vehicle CheckIfEntityExistsOrCached(); var entityPointer = Core.Library.Shared.Player_GetVehicle(PlayerNativePointer); if (entityPointer == IntPtr.Zero) return null; - return Alt.Core.VehiclePool.Get(entityPointer); + return Alt.Core.PoolManager.Vehicle.Get(entityPointer); } } } @@ -500,7 +858,7 @@ public IEntity EntityAimingAt var type = BaseObjectType.Undefined; var entityPointer = Core.Library.Shared.Player_GetEntityAimingAt(PlayerNativePointer, &type); if (entityPointer == IntPtr.Zero) return null; - return Alt.Core.BaseEntityPool.Get(entityPointer, type, out var entity) ? entity : null; + return Alt.Core.PoolManager.Vehicle.Get(entityPointer); } } } @@ -593,7 +951,7 @@ public uint CurrentAnimationName } } - public Player(ICore core, IntPtr nativePointer, ushort id) : base(core, GetEntityPointer(core, nativePointer), BaseObjectType.Player, id) + public Player(ICore core, IntPtr nativePointer, uint id) : base(core, GetEntityPointer(core, nativePointer), BaseObjectType.Player, id) { PlayerNativePointer = nativePointer; } @@ -652,12 +1010,21 @@ public bool RemoveWeapon(uint weapon) } } - public void RemoveAllWeapons() + public void RemoveAllWeapons(bool removeAllAmmo) + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Player_RemoveAllWeapons(PlayerNativePointer, removeAllAmmo ? (byte)1:(byte)0); + } + } + + public bool HasWeapon(uint weapon) { unsafe { CheckIfEntityExists(); - Core.Library.Server.Player_RemoveAllWeapons(PlayerNativePointer); + return Core.Library.Server.Player_HasWeapon(PlayerNativePointer, weapon) == 1; } } @@ -696,8 +1063,8 @@ public void GetCurrentWeaponComponents(out uint[] weaponComponents) var ptr = IntPtr.Zero; uint size = 0; Core.Library.Shared.Player_GetCurrentWeaponComponents(PlayerNativePointer, &ptr, &size); - - + + var uintArray = new UIntArray { data = ptr, @@ -706,7 +1073,7 @@ public void GetCurrentWeaponComponents(out uint[] weaponComponents) }; var result = uintArray.ToArray(); - + Core.Library.Shared.FreeUInt32Array(ptr); weaponComponents = result; @@ -768,7 +1135,7 @@ public void Kick(string reason) unsafe { CheckIfEntityExists(); - var reasonPtr = AltNative.StringUtils.StringToHGlobalUtf8(reason); + var reasonPtr = MemoryUtils.StringToHGlobalUtf8(reason); Core.Library.Server.Player_Kick(PlayerNativePointer, reasonPtr); Marshal.FreeHGlobal(reasonPtr); } @@ -779,7 +1146,25 @@ public void Emit(string eventName, params object[] args) CheckIfEntityExists(); Alt.Core.TriggerClientEvent(this, eventName, args); } - + + public ushort EmitRPC(string name, params object[] args) + { + CheckIfEntityExists(); + return Alt.Core.TriggerClientRPC(this, name, args); + } + + public void EmitRPCAnswer(ushort answerId, object answer, string error) + { + CheckIfEntityExists(); + Core.TriggerClientRPCAnswer(this, answerId, answer, error); + } + + public void EmitUnreliable(string eventName, params object[] args) + { + CheckIfEntityExists(); + Alt.Core.TriggerClientEventUnreliable(this, eventName, args); + } + public void ClearBloodDamage() { unsafe @@ -933,42 +1318,6 @@ public bool IsEntityInStreamingRange(IEntity entity) } } - public override void AttachToEntity(IEntity entity, short otherBone, short ownBone, Position position, Rotation rotation, bool collision, bool noFixedRotation) - { - unsafe - { - CheckIfEntityExists(); - if(entity == null) return; - entity.CheckIfEntityExists(); - - Core.Library.Server.Player_AttachToEntity(PlayerNativePointer, entity.EntityNativePointer, otherBone, ownBone, position, rotation, collision ? (byte) 1 : (byte) 0, noFixedRotation ? (byte) 1 : (byte) 0); - } - } - - public override void AttachToEntity(IEntity entity, string otherBone, string ownBone, Position position, Rotation rotation, - bool collision, bool noFixedRotation) - { - unsafe - { - CheckIfEntityExists(); - if(entity == null) return; - entity.CheckIfEntityExists(); - - var otherBonePtr = AltNative.StringUtils.StringToHGlobalUtf8(otherBone); - var ownBonePtr = AltNative.StringUtils.StringToHGlobalUtf8(ownBone); - Core.Library.Server.Player_AttachToEntity_BoneString(PlayerNativePointer, entity.EntityNativePointer, otherBonePtr, ownBonePtr, position, rotation, collision ? (byte) 1 : (byte) 0, noFixedRotation ? (byte) 1 : (byte) 0); - } - } - - public override void Detach() - { - unsafe - { - CheckIfEntityExists(); - Core.Library.Server.Player_Detach(PlayerNativePointer); - } - } - public bool Invincible { get @@ -1059,8 +1408,8 @@ public void PlayAmbientSpeech(string speechName, string speechParam, uint speech { unsafe { - var speechNamePtr = AltNative.StringUtils.StringToHGlobalUtf8(speechName); - var speechParamPtr = AltNative.StringUtils.StringToHGlobalUtf8(speechParam); + var speechNamePtr = MemoryUtils.StringToHGlobalUtf8(speechName); + var speechParamPtr = MemoryUtils.StringToHGlobalUtf8(speechParam); Core.Library.Server.Player_PlayAmbientSpeech(PlayerNativePointer, speechNamePtr, speechParamPtr, speechDictHash); Marshal.FreeHGlobal(speechNamePtr); Marshal.FreeHGlobal(speechParamPtr); @@ -1241,5 +1590,17 @@ public override void SetCached(IntPtr cachedPlayer) this.PlayerNativePointer = cachedPlayer; base.SetCached(GetEntityPointer(Core, cachedPlayer)); } + + public bool IsParachuting + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return this.Core.Library.Shared.Player_IsParachuting(this.PlayerNativePointer) == 1; + } + } + } } } diff --git a/api/AltV.Net/Elements/Entities/Vehicle.cs b/api/AltV.Net/Elements/Entities/Vehicle.cs index fc1ade504..99f0a5ec8 100644 --- a/api/AltV.Net/Elements/Entities/Vehicle.cs +++ b/api/AltV.Net/Elements/Entities/Vehicle.cs @@ -1,9 +1,11 @@ using System; +using System.Collections.Generic; using System.Numerics; using System.Runtime.InteropServices; using AltV.Net.Data; using AltV.Net.Enums; using AltV.Net.Native; +using AltV.Net.Shared.Utils; namespace AltV.Net.Elements.Entities { @@ -20,7 +22,7 @@ private static IntPtr GetEntityPointer(ICore core, IntPtr nativePointer) } } - public static ushort GetId(IntPtr vehiclePointer) + public static uint GetId(IntPtr vehiclePointer) { unsafe { @@ -50,7 +52,7 @@ public IPlayer Driver CheckIfEntityExistsOrCached(); var entityPointer = Core.Library.Server.Vehicle_GetDriver(VehicleNativePointer); if (entityPointer == IntPtr.Zero) return null; - return Core.PlayerPool.Get(entityPointer); + return Core.PoolManager.Player.Get(entityPointer); } } } @@ -442,7 +444,7 @@ public string NumberplateText unsafe { CheckIfEntityExists(); - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(value); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(value); Core.Library.Server.Vehicle_SetNumberplateText(VehicleNativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); } @@ -588,7 +590,7 @@ public string AppearanceData unsafe { CheckIfEntityExists(); - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(value); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(value); if (stringPtr == IntPtr.Zero) throw new ArgumentNullException(nameof(ScriptData)); Core.Library.Server.Vehicle_LoadAppearanceDataFromBase64(VehicleNativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); @@ -677,7 +679,7 @@ public IPlayer TimedExplosionCulprit CheckIfEntityExistsOrCached(); var entityPointer = Core.Library.Server.Vehicle_GetTimedExplosionCulprit(VehicleNativePointer); if (entityPointer == IntPtr.Zero) return null; - return Core.PlayerPool.Get(entityPointer); + return Core.PoolManager.Player.Get(entityPointer); } } } @@ -863,7 +865,7 @@ public string State unsafe { CheckIfEntityExists(); - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(value); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(value); if (stringPtr == IntPtr.Zero) throw new ArgumentNullException(nameof(ScriptData)); Core.Library.Server.Vehicle_LoadGameStateFromBase64(VehicleNativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); @@ -911,6 +913,18 @@ public int PetrolTankHealth } } + public float SteeringAngle + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Shared.Vehicle_GetSteeringAngle(VehicleNativePointer); + } + } + } + public byte WheelsCount { get @@ -1091,7 +1105,7 @@ public string HealthData unsafe { CheckIfEntityExists(); - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(value); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(value); if (stringPtr == IntPtr.Zero) throw new ArgumentNullException(nameof(ScriptData)); Core.Library.Server.Vehicle_LoadHealthDataFromBase64(VehicleNativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); @@ -1283,7 +1297,7 @@ public string DamageData unsafe { CheckIfEntityExists(); - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(value); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(value); if (stringPtr == IntPtr.Zero) throw new ArgumentNullException(nameof(ScriptData)); Core.Library.Server.Vehicle_LoadDamageDataFromBase64(VehicleNativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); @@ -1328,7 +1342,7 @@ public string ScriptData unsafe { CheckIfEntityExists(); - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(value); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(value); if (stringPtr == IntPtr.Zero) throw new ArgumentNullException(nameof(ScriptData)); Core.Library.Server.Vehicle_LoadScriptDataFromBase64(VehicleNativePointer, stringPtr); Marshal.FreeHGlobal(stringPtr); @@ -1345,7 +1359,7 @@ public IVehicle Attached CheckIfEntityExistsOrCached(); var entityPointer = Core.Library.Server.Vehicle_GetAttached(VehicleNativePointer); if (entityPointer == IntPtr.Zero) return null; - return Alt.Core.VehiclePool.Get(entityPointer); + return Alt.Core.PoolManager.Vehicle.Get(entityPointer); } } } @@ -1359,18 +1373,19 @@ public IVehicle AttachedTo CheckIfEntityExistsOrCached(); var entityPointer = Core.Library.Server.Vehicle_GetAttachedTo(VehicleNativePointer); if (entityPointer == IntPtr.Zero) return null; - return Alt.Core.VehiclePool.Get(entityPointer); + return Alt.Core.PoolManager.Vehicle.Get(entityPointer); } } } - public Vehicle(ICore core, uint model, Position position, Rotation rotation) : this( - core, core.CreateVehicleEntity(out var id, model, position, rotation), id) + [Obsolete("Use Alt.CreateVehicle instead")] + public Vehicle(ICore core, uint model, Position position, Rotation rotation, uint streamingDistance = 0) : this( + core, core.CreateVehicleEntity(out var id, model, position, rotation, streamingDistance), id) { - Alt.Core.VehiclePool.Add(this); + core.PoolManager.Vehicle.Add(this); } - public Vehicle(ICore core, IntPtr nativePointer, ushort id) : base(core, GetEntityPointer(core, nativePointer), BaseObjectType.Vehicle, id) + public Vehicle(ICore core, IntPtr nativePointer, uint id) : base(core, GetEntityPointer(core, nativePointer), BaseObjectType.Vehicle, id) { this.VehicleNativePointer = nativePointer; } @@ -1485,42 +1500,6 @@ public void SetTimedExplosion(bool state, IPlayer culprit, uint time) } } - public override void AttachToEntity(IEntity entity, short otherBone, short ownBone, Position position, Rotation rotation, bool collision, bool noFixedRotation) - { - unsafe - { - CheckIfEntityExists(); - if(entity == null) return; - entity.CheckIfEntityExists(); - - Core.Library.Server.Vehicle_AttachToEntity(VehicleNativePointer, entity.EntityNativePointer, otherBone, ownBone, position, rotation, collision ? (byte) 1 : (byte) 0, noFixedRotation ? (byte) 1 : (byte) 0); - } - } - - public override void AttachToEntity(IEntity entity, string otherBone, string ownBone, Position position, Rotation rotation, - bool collision, bool noFixedRotation) - { - unsafe - { - CheckIfEntityExists(); - if(entity == null) return; - entity.CheckIfEntityExists(); - - var otherBonePtr = AltNative.StringUtils.StringToHGlobalUtf8(otherBone); - var ownBonePtr = AltNative.StringUtils.StringToHGlobalUtf8(ownBone); - Core.Library.Server.Vehicle_AttachToEntity_BoneString(VehicleNativePointer, entity.EntityNativePointer, otherBonePtr, ownBonePtr, position, rotation, collision ? (byte) 1 : (byte) 0, noFixedRotation ? (byte) 1 : (byte) 0); - } - } - - public override void Detach() - { - unsafe - { - CheckIfEntityExists(); - Core.Library.Server.Vehicle_Detach(VehicleNativePointer); - } - } - public Position Velocity { get @@ -1635,7 +1614,7 @@ public IVehicle TrainEngine CheckIfEntityExistsOrCached(); var entityPointer = Core.Library.Server.Vehicle_GetTrainEngineId(VehicleNativePointer); if (entityPointer == IntPtr.Zero) return null; - return Alt.Core.VehiclePool.Get(entityPointer); + return Alt.Core.PoolManager.Vehicle.Get(entityPointer); } } set @@ -1857,7 +1836,7 @@ public IVehicle TrainLinkedToBackward CheckIfEntityExistsOrCached(); var entityPointer = Core.Library.Server.Vehicle_GetTrainLinkedToBackwardId(VehicleNativePointer); if (entityPointer == IntPtr.Zero) return null; - return Alt.Core.VehiclePool.Get(entityPointer); + return Alt.Core.PoolManager.Vehicle.Get(entityPointer); } } set @@ -1879,7 +1858,7 @@ public IVehicle TrainLinkedToForward CheckIfEntityExistsOrCached(); var entityPointer = Core.Library.Server.Vehicle_GetTrainLinkedToForwardId(VehicleNativePointer); if (entityPointer == IntPtr.Zero) return null; - return Alt.Core.VehiclePool.Get(entityPointer); + return Alt.Core.PoolManager.Vehicle.Get(entityPointer); } } set @@ -2030,6 +2009,89 @@ public int GetWeaponCapacity(byte index) } } + public Quaternion Quaternion + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Server.Vehicle_GetQuaternion(VehicleNativePointer); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Vehicle_SetQuaternion(VehicleNativePointer, value); + } + } + } + + public bool IsHornActive + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Server.Vehicle_IsHornActive(VehicleNativePointer) == 1; + } + } + } + + public float AccelerationLevel + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Server.Vehicle_GetAccelerationLevel(VehicleNativePointer); + } + } + } + + public float BrakeLevel + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Server.Vehicle_GetBrakeLevel(VehicleNativePointer); + } + } + } + + public List Passengers + { + get + { + if (!Core.VehiclePassengers.TryGetValue(VehicleNativePointer, out var passengers)) + { + return new List(); + } + + var result = new List(); + foreach (var passenger in passengers) + { + var player = Core.PoolManager.Player.Get(passenger.PlayerPointer); + if (player is null) continue; + + var playerSeat = new PlayerSeat + { + Player = player, + Seat = passenger.Seat + }; + result.Add(playerSeat); + } + + return result; + } + } + public override void SetCached(IntPtr cachedVehicle) { this.VehicleNativePointer = cachedVehicle; diff --git a/api/AltV.Net/Elements/Entities/VirtualEntity.cs b/api/AltV.Net/Elements/Entities/VirtualEntity.cs new file mode 100644 index 000000000..7030f0a66 --- /dev/null +++ b/api/AltV.Net/Elements/Entities/VirtualEntity.cs @@ -0,0 +1,234 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using AltV.Net.Data; +using AltV.Net.Elements.Args; +using AltV.Net.Native; +using AltV.Net.Shared.Elements.Entities; +using AltV.Net.Shared.Utils; + +namespace AltV.Net.Elements.Entities; + +public class VirtualEntity : WorldObject, IVirtualEntity +{ + public IntPtr VirtualEntityNativePointer { get; } + public override IntPtr NativePointer => VirtualEntityNativePointer; + + private static IntPtr GetWorldObjectPointer(ICore core, IntPtr virtualEntityNativePointer) + { + unsafe + { + return core.Library.Shared.VirtualEntity_GetWorldObject(virtualEntityNativePointer); + } + } + + public static uint GetId(IntPtr pedPointer) + { + unsafe + { + return Alt.Core.Library.Shared.VirtualEntity_GetID(pedPointer); + } + } + + public VirtualEntity(ICore core, IntPtr nativePointer, uint id) : base(core, GetWorldObjectPointer(core, nativePointer), BaseObjectType.VirtualEntity, id) + { + this.VirtualEntityNativePointer = nativePointer; + } + + public ISharedVirtualEntityGroup Group + { + get + { + unsafe + { + CheckIfEntityExists(); + var groupPointer = Core.Library.Shared.VirtualEntity_GetGroup(VirtualEntityNativePointer); + if (groupPointer == IntPtr.Zero) return null; + return Core.PoolManager.VirtualEntityGroup.Get(groupPointer); + } + } + } + + public bool HasStreamSyncedMetaData(string key) + { + unsafe + { + CheckIfEntityExists(); + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); + var result = Core.Library.Shared.VirtualEntity_HasStreamSyncedMetaData(VirtualEntityNativePointer, stringPtr); + Marshal.FreeHGlobal(stringPtr); + return result == 1; + } + } + + public bool GetStreamSyncedMetaData(string key, out int result) + { + CheckIfEntityExists(); + GetStreamSyncedMetaData(key, out MValueConst mValue); + using (mValue) + { + if (mValue.type != MValueConst.Type.Int) + { + result = default; + return false; + } + + result = (int) mValue.GetInt(); + } + + return true; + } + + public bool GetStreamSyncedMetaData(string key, out uint result) + { + CheckIfEntityExists(); + GetStreamSyncedMetaData(key, out MValueConst mValue); + using (mValue) + { + if (mValue.type != MValueConst.Type.Uint) + { + result = default; + return false; + } + + result = (uint) mValue.GetUint(); + } + + return true; + } + + public bool GetStreamSyncedMetaData(string key, out float result) + { + CheckIfEntityExists(); + GetStreamSyncedMetaData(key, out MValueConst mValue); + using (mValue) + { + if (mValue.type != MValueConst.Type.Double) + { + result = default; + return false; + } + + result = (float) mValue.GetDouble(); + } + + return true; + } + + public bool GetStreamSyncedMetaData(string key, out T result) + { + CheckIfEntityExists(); + GetStreamSyncedMetaData(key, out MValueConst mValue); + var obj = mValue.ToObject(); + mValue.Dispose(); + if (!(obj is T cast)) + { + result = default; + return false; + } + + result = cast; + return true; + } + + public void GetStreamSyncedMetaData(string key, out MValueConst value) + { + CheckIfEntityExists(); + unsafe + { + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); + value = new MValueConst(Core, Core.Library.Shared.VirtualEntity_GetStreamSyncedMetaData(VirtualEntityNativePointer, stringPtr)); + Marshal.FreeHGlobal(stringPtr); + } + } + + public uint StreamingDistance + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.VirtualEntity_GetStreamingDistance(VirtualEntityNativePointer); + } + } + } + + public bool Visible + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.VirtualEntity_IsVisible(VirtualEntityNativePointer) == 1; + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Shared.VirtualEntity_SetVisible(VirtualEntityNativePointer, value ? (byte)1:(byte)0); + } + } + } + + public void SetStreamSyncedMetaData(string key, object value) + { + CheckIfEntityExists(); + Alt.Core.CreateMValue(out var mValue, value); + SetStreamSyncedMetaData(key, in mValue); + mValue.Dispose(); + } + + public void SetStreamSyncedMetaData(Dictionary metaData) + { + unsafe + { + var dataTemp = new Dictionary(); + + var keys = new IntPtr[metaData.Count]; + var values = new IntPtr[metaData.Count]; + + for (var i = 0; i < metaData.Count; i++) + { + var stringPtr = MemoryUtils.StringToHGlobalUtf8(metaData.ElementAt(i).Key); + Core.CreateMValue(out var mValue, metaData.ElementAt(i).Value); + keys[i] = stringPtr; + values[i] = mValue.nativePointer; + dataTemp.Add(stringPtr, mValue); + } + + Core.Library.Server.VirtualEntity_SetMultipleStreamSyncedMetaData(VirtualEntityNativePointer, keys, values, (uint)dataTemp.Count); + + foreach (var dataValue in dataTemp) + { + dataValue.Value.Dispose(); + Marshal.FreeHGlobal(dataValue.Key); + } + } + } + + public void SetStreamSyncedMetaData(string key, in MValueConst value) + { + unsafe + { + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); + Core.Library.Server.VirtualEntity_SetStreamSyncedMetaData(VirtualEntityNativePointer, stringPtr, value.nativePointer); + Marshal.FreeHGlobal(stringPtr); + } + } + + public void DeleteStreamSyncedMetaData(string key) + { + CheckIfEntityExists(); + unsafe + { + var stringPtr = MemoryUtils.StringToHGlobalUtf8(key); + Core.Library.Server.VirtualEntity_DeleteStreamSyncedMetaData(VirtualEntityNativePointer, stringPtr); + Marshal.FreeHGlobal(stringPtr); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/VirtualEntityGroup.cs b/api/AltV.Net/Elements/Entities/VirtualEntityGroup.cs new file mode 100644 index 000000000..b9fddda64 --- /dev/null +++ b/api/AltV.Net/Elements/Entities/VirtualEntityGroup.cs @@ -0,0 +1,43 @@ +using System; + +namespace AltV.Net.Elements.Entities; + +public class VirtualEntityGroup : BaseObject, IVirtualEntityGroup +{ + public IntPtr VirtualEntityGroupNativePointer { get; } + public override IntPtr NativePointer => VirtualEntityGroupNativePointer; + + private static IntPtr GetBaseObjectPointer(ICore core, IntPtr virtualEntityGroupNativePointer) + { + unsafe + { + return core.Library.Shared.VirtualEntityGroup_GetBaseObject(virtualEntityGroupNativePointer); + } + } + + public static uint GetId(IntPtr pedPointer) + { + unsafe + { + return Alt.Core.Library.Shared.VirtualEntityGroup_GetID(pedPointer); + } + } + + public VirtualEntityGroup(ICore core, IntPtr nativePointer, uint id) : base(core, GetBaseObjectPointer(core, nativePointer), BaseObjectType.VirtualEntityGroup, id) + { + VirtualEntityGroupNativePointer = nativePointer; + } + + public uint MaxEntitiesInStream + { + get + { + unsafe + { + CheckIfEntityExists(); + return Core.Library.Shared.VirtualEntityGroup_GetMaxEntitiesInStream(VirtualEntityGroupNativePointer); + } + } + + } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/VoiceChannel.cs b/api/AltV.Net/Elements/Entities/VoiceChannel.cs index 54fe885bc..d0950811d 100644 --- a/api/AltV.Net/Elements/Entities/VoiceChannel.cs +++ b/api/AltV.Net/Elements/Entities/VoiceChannel.cs @@ -1,4 +1,9 @@ using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using AltV.Net.CApi; +using AltV.Net.Elements.Pools; namespace AltV.Net.Elements.Entities { @@ -6,7 +11,7 @@ public class VoiceChannel : BaseObject, IVoiceChannel { public IntPtr VoiceChannelNativePointer { get; } public override IntPtr NativePointer => VoiceChannelNativePointer; - + private static IntPtr GetBaseObjectPointer(ICore core, IntPtr nativePointer) { unsafe @@ -14,7 +19,15 @@ private static IntPtr GetBaseObjectPointer(ICore core, IntPtr nativePointer) return core.Library.Server.VoiceChannel_GetBaseObject(nativePointer); } } - + + public static uint GetId(IntPtr pedPointer) + { + unsafe + { + return Alt.Core.Library.Shared.VoiceChannel_GetID(pedPointer); + } + } + public void AddPlayer(IPlayer player) { unsafe @@ -93,7 +106,78 @@ public float MaxDistance } } - public VoiceChannel(ICore core, IntPtr nativePointer) : base(core, GetBaseObjectPointer(core, nativePointer), BaseObjectType.VoiceChannel) + public uint Filter + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Server.VoiceChannel_GetFilter(VoiceChannelNativePointer); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.VoiceChannel_SetFilter(VoiceChannelNativePointer, value); + } + } + } + + public int Priority + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Server.VoiceChannel_GetPriority(VoiceChannelNativePointer); + } + } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.VoiceChannel_SetPriority(VoiceChannelNativePointer, value); + } + } + } + + public IReadOnlyCollection Players + { + get + { + unsafe + { + CheckIfCallIsValid(); + ulong size = 0; + var ptr = Core.Library.Server.VoiceChannel_GetPlayers(NativePointer, &size); + var data = new IntPtr[size]; + Marshal.Copy(ptr, data, 0, (int)size); + var arr = data.Select(e => (IPlayer)Core.PoolManager.GetOrCreate(Core, e, BaseObjectType.Player)) + .ToArray(); + Core.Library.Shared.FreePlayerArray(ptr); + return arr; + } + } + } + + public ulong PlayerCount + { + get + { + unsafe + { + CheckIfEntityExistsOrCached(); + return Core.Library.Server.VoiceChannel_GetPlayerCount(VoiceChannelNativePointer); + } + } + } + + public VoiceChannel(ICore core, IntPtr nativePointer, uint id) : base(core, GetBaseObjectPointer(core, nativePointer), BaseObjectType.VoiceChannel, id) { VoiceChannelNativePointer = nativePointer; } diff --git a/api/AltV.Net/Elements/Entities/WorldObject.cs b/api/AltV.Net/Elements/Entities/WorldObject.cs index 3e36b8577..b33660457 100644 --- a/api/AltV.Net/Elements/Entities/WorldObject.cs +++ b/api/AltV.Net/Elements/Entities/WorldObject.cs @@ -9,7 +9,7 @@ public abstract class WorldObject : BaseObject, IWorldObject { public IntPtr WorldObjectNativePointer { get; private set; } public override IntPtr NativePointer => WorldObjectNativePointer; - + private static IntPtr GetBaseObjectPointer(ICore core, IntPtr nativePointer) { unsafe @@ -17,7 +17,7 @@ private static IntPtr GetBaseObjectPointer(ICore core, IntPtr nativePointer) return core.Library.Shared.WorldObject_GetBaseObject(nativePointer); } } - + public Position Position { @@ -36,7 +36,7 @@ public Position Position CheckIfEntityExists(); unsafe { - Core.Library.Server.WorldObject_SetPosition(WorldObjectNativePointer, value); + Core.Library.Shared.WorldObject_SetPosition(WorldObjectNativePointer, value); } } } @@ -47,7 +47,7 @@ public int Dimension CheckIfEntityExistsOrCached(); unsafe { - return Core.Library.Server.WorldObject_GetDimension(WorldObjectNativePointer); + return Core.Library.Shared.WorldObject_GetDimension(WorldObjectNativePointer); } } set @@ -55,12 +55,12 @@ public int Dimension CheckIfEntityExists(); unsafe { - Core.Library.Server.WorldObject_SetDimension(WorldObjectNativePointer, value); + Core.Library.Shared.WorldObject_SetDimension(WorldObjectNativePointer, value); } } } - protected WorldObject(ICore core, IntPtr nativePointer, BaseObjectType type) : base(core, GetBaseObjectPointer(core, nativePointer), type) + protected WorldObject(ICore core, IntPtr nativePointer, BaseObjectType type, uint id) : base(core, GetBaseObjectPointer(core, nativePointer), type, id) { WorldObjectNativePointer = nativePointer; } diff --git a/api/AltV.Net/Elements/Factories/BlipFactory.cs b/api/AltV.Net/Elements/Factories/BlipFactory.cs index 37297cac3..19c6a3e3c 100644 --- a/api/AltV.Net/Elements/Factories/BlipFactory.cs +++ b/api/AltV.Net/Elements/Factories/BlipFactory.cs @@ -5,9 +5,9 @@ namespace AltV.Net.Elements.Factories { public class BlipFactory : IBaseObjectFactory { - public IBlip Create(ICore core, IntPtr blipPointer) + public IBlip Create(ICore core, IntPtr blipPointer, uint id) { - return new Blip(core, blipPointer); + return new Blip(core, blipPointer, id); } } } \ No newline at end of file diff --git a/api/AltV.Net/Elements/Factories/CheckpointFactory.cs b/api/AltV.Net/Elements/Factories/CheckpointFactory.cs index 228a42365..e05bc3bd1 100644 --- a/api/AltV.Net/Elements/Factories/CheckpointFactory.cs +++ b/api/AltV.Net/Elements/Factories/CheckpointFactory.cs @@ -5,9 +5,9 @@ namespace AltV.Net.Elements.Factories { public class CheckpointFactory : IBaseObjectFactory { - public ICheckpoint Create(ICore core, IntPtr checkpointFactory) + public ICheckpoint Create(ICore core, IntPtr checkpointFactory, uint id) { - return new Checkpoint(core, checkpointFactory); + return new Checkpoint(core, checkpointFactory, id); } } } \ No newline at end of file diff --git a/api/AltV.Net/Elements/Factories/ColShapeFactory.cs b/api/AltV.Net/Elements/Factories/ColShapeFactory.cs index 3e76e7ee3..cebd71fa1 100644 --- a/api/AltV.Net/Elements/Factories/ColShapeFactory.cs +++ b/api/AltV.Net/Elements/Factories/ColShapeFactory.cs @@ -5,9 +5,9 @@ namespace AltV.Net.Elements.Factories { public class ColShapeFactory : IBaseObjectFactory { - public IColShape Create(ICore core, IntPtr entityPointer) + public IColShape Create(ICore core, IntPtr entityPointer, uint id) { - return new ColShape(core, entityPointer); + return new ColShape(core, entityPointer, id); } } } \ No newline at end of file diff --git a/api/AltV.Net/Elements/Factories/ConnectionInfoFactory.cs b/api/AltV.Net/Elements/Factories/ConnectionInfoFactory.cs new file mode 100644 index 000000000..63fab8c9f --- /dev/null +++ b/api/AltV.Net/Elements/Factories/ConnectionInfoFactory.cs @@ -0,0 +1,13 @@ +using System; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Elements.Factories +{ + public class ConnectionInfoFactory : IBaseObjectFactory + { + public IConnectionInfo Create(ICore core, IntPtr pointer, uint id) + { + return new ConnectionInfo(core, pointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Factories/MarkerFactory.cs b/api/AltV.Net/Elements/Factories/MarkerFactory.cs new file mode 100644 index 000000000..2f94cb77a --- /dev/null +++ b/api/AltV.Net/Elements/Factories/MarkerFactory.cs @@ -0,0 +1,13 @@ +using System; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Elements.Factories +{ + public class MarkerFactory : IBaseObjectFactory + { + public IMarker Create(ICore core, IntPtr markerPointer, uint id) + { + return new Marker(core, markerPointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Factories/ObjectFactory.cs b/api/AltV.Net/Elements/Factories/ObjectFactory.cs new file mode 100644 index 000000000..bf908d1d3 --- /dev/null +++ b/api/AltV.Net/Elements/Factories/ObjectFactory.cs @@ -0,0 +1,13 @@ +using System; +using AltV.Net.Elements.Entities; +using Object = AltV.Net.Elements.Entities.Object; + +namespace AltV.Net.Elements.Factories; + +public class ObjectFactory : IEntityFactory +{ + public IObject Create(ICore core, IntPtr pointer, uint id) + { + return new Object(core, pointer, id); + } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Factories/PedFactory.cs b/api/AltV.Net/Elements/Factories/PedFactory.cs new file mode 100644 index 000000000..37924bd67 --- /dev/null +++ b/api/AltV.Net/Elements/Factories/PedFactory.cs @@ -0,0 +1,12 @@ +using System; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Elements.Factories; + +public class PedFactory : IEntityFactory +{ + public IPed Create(ICore core, IntPtr pedPointer, uint id) + { + return new Ped(core, pedPointer, id); + } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Factories/PlayerFactory.cs b/api/AltV.Net/Elements/Factories/PlayerFactory.cs index a65e688e7..99ee5638a 100644 --- a/api/AltV.Net/Elements/Factories/PlayerFactory.cs +++ b/api/AltV.Net/Elements/Factories/PlayerFactory.cs @@ -5,7 +5,7 @@ namespace AltV.Net.Elements.Factories { public class PlayerFactory : IEntityFactory { - public IPlayer Create(ICore core, IntPtr playerPointer, ushort id) + public IPlayer Create(ICore core, IntPtr playerPointer, uint id) { return new Player(core, playerPointer, id); } diff --git a/api/AltV.Net/Elements/Factories/VehicleFactory.cs b/api/AltV.Net/Elements/Factories/VehicleFactory.cs index e46709d1b..31a3676b7 100644 --- a/api/AltV.Net/Elements/Factories/VehicleFactory.cs +++ b/api/AltV.Net/Elements/Factories/VehicleFactory.cs @@ -5,7 +5,7 @@ namespace AltV.Net.Elements.Factories { public class VehicleFactory : IEntityFactory { - public IVehicle Create(ICore core, IntPtr vehiclePointer, ushort id) + public IVehicle Create(ICore core, IntPtr vehiclePointer, uint id) { return new Vehicle(core, vehiclePointer, id); } diff --git a/api/AltV.Net/Elements/Factories/VirtualEntityFactory.cs b/api/AltV.Net/Elements/Factories/VirtualEntityFactory.cs new file mode 100644 index 000000000..880cd4fbe --- /dev/null +++ b/api/AltV.Net/Elements/Factories/VirtualEntityFactory.cs @@ -0,0 +1,13 @@ +using System; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Elements.Factories +{ + public class VirtualEntityFactory : IBaseObjectFactory + { + public IVirtualEntity Create(ICore core, IntPtr pointer, uint id) + { + return new VirtualEntity(core, pointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Factories/VirtualEntityGroupFactory.cs b/api/AltV.Net/Elements/Factories/VirtualEntityGroupFactory.cs new file mode 100644 index 000000000..bf080fff4 --- /dev/null +++ b/api/AltV.Net/Elements/Factories/VirtualEntityGroupFactory.cs @@ -0,0 +1,13 @@ +using System; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Elements.Factories +{ + public class VirtualEntityGroupFactory : IBaseObjectFactory + { + public IVirtualEntityGroup Create(ICore core, IntPtr pointer, uint id) + { + return new VirtualEntityGroup(core, pointer, id); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Factories/VoiceChannelFactory.cs b/api/AltV.Net/Elements/Factories/VoiceChannelFactory.cs index 5861094ba..bd06e370e 100644 --- a/api/AltV.Net/Elements/Factories/VoiceChannelFactory.cs +++ b/api/AltV.Net/Elements/Factories/VoiceChannelFactory.cs @@ -5,9 +5,9 @@ namespace AltV.Net.Elements.Factories { public class VoiceChannelFactory : IBaseObjectFactory { - public IVoiceChannel Create(ICore core, IntPtr channelPointer) + public IVoiceChannel Create(ICore core, IntPtr channelPointer, uint id) { - return new VoiceChannel(core, channelPointer); + return new VoiceChannel(core, channelPointer, id); } } } \ No newline at end of file diff --git a/api/AltV.Net/Elements/Pools/BaseBaseObjectPool.cs b/api/AltV.Net/Elements/Pools/BaseBaseObjectPool.cs deleted file mode 100644 index 3a48a2699..000000000 --- a/api/AltV.Net/Elements/Pools/BaseBaseObjectPool.cs +++ /dev/null @@ -1,99 +0,0 @@ -using System; -using AltV.Net.Elements.Entities; -using AltV.Net.Shared; -using AltV.Net.Shared.Elements.Entities; - -namespace AltV.Net.Elements.Pools -{ - public class BaseBaseObjectPool : IBaseBaseObjectPool - { - private readonly IEntityPool playerPool; - - private readonly IEntityPool vehiclePool; - - private readonly IBaseObjectPool blipPool; - - private readonly IBaseObjectPool checkpointPool; - - private readonly IBaseObjectPool voiceChannelPool; - - private readonly IBaseObjectPool colShapePool; - - public BaseBaseObjectPool(IEntityPool playerPool, IEntityPool vehiclePool, - IBaseObjectPool blipPool, IBaseObjectPool checkpointPool, - IBaseObjectPool voiceChannelPool, IBaseObjectPool colShapePool) - { - this.playerPool = playerPool; - this.vehiclePool = vehiclePool; - this.blipPool = blipPool; - this.checkpointPool = checkpointPool; - this.voiceChannelPool = voiceChannelPool; - this.colShapePool = colShapePool; - } - - public IBaseObject Get(IntPtr entityPointer, BaseObjectType baseObjectType) - { - return baseObjectType switch - { - BaseObjectType.Player => playerPool.Get(entityPointer), - BaseObjectType.Vehicle => vehiclePool.Get(entityPointer), - BaseObjectType.Blip => blipPool.Get(entityPointer), - BaseObjectType.Checkpoint => checkpointPool.Get(entityPointer), - BaseObjectType.VoiceChannel => voiceChannelPool.Get(entityPointer), - BaseObjectType.ColShape => colShapePool.Get(entityPointer), - _ => default - }; - } - - ISharedBaseObject IReadOnlyBaseBaseObjectPool.Get(IntPtr entityPointer, BaseObjectType baseObjectType) => Get(entityPointer, baseObjectType); - - public IBaseObject GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType) - { - return baseObjectType switch - { - BaseObjectType.Player => playerPool.GetOrCreate(core, entityPointer), - BaseObjectType.Vehicle => vehiclePool.GetOrCreate(core, entityPointer), - BaseObjectType.Blip => blipPool.GetOrCreate(core, entityPointer), - BaseObjectType.Checkpoint => checkpointPool.GetOrCreate(core, entityPointer), - BaseObjectType.VoiceChannel => voiceChannelPool.GetOrCreate(core, entityPointer), - BaseObjectType.ColShape => colShapePool.GetOrCreate(core, entityPointer), - _ => default - }; - } - ISharedBaseObject IReadOnlyBaseBaseObjectPool.GetOrCreate(ISharedCore core, IntPtr entityPointer, BaseObjectType baseObjectType) => GetOrCreate((ICore) core, entityPointer, baseObjectType); - - public IBaseObject GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType, ushort entityId) - { - return baseObjectType switch - { - BaseObjectType.Player => playerPool.GetOrCreate(core, entityPointer, entityId), - BaseObjectType.Vehicle => vehiclePool.GetOrCreate(core, entityPointer, entityId), - BaseObjectType.Blip => blipPool.GetOrCreate(core, entityPointer), - BaseObjectType.Checkpoint => checkpointPool.GetOrCreate(core, entityPointer), - BaseObjectType.VoiceChannel => voiceChannelPool.GetOrCreate(core, entityPointer), - BaseObjectType.ColShape => colShapePool.GetOrCreate(core, entityPointer), - _ => default - }; - } - ISharedBaseObject IReadOnlyBaseBaseObjectPool.GetOrCreate(ISharedCore core, IntPtr entityPointer, BaseObjectType baseObjectType, ushort entityId) => GetOrCreate((ICore) core, entityPointer, baseObjectType, entityId); - - public bool Remove(IBaseObject entity) - { - return Remove(entity.NativePointer, entity.Type); - } - - public bool Remove(IntPtr entityPointer, BaseObjectType baseObjectType) - { - return baseObjectType switch - { - BaseObjectType.Player => playerPool.Remove(entityPointer), - BaseObjectType.Vehicle => vehiclePool.Remove(entityPointer), - BaseObjectType.Blip => blipPool.Remove(entityPointer), - BaseObjectType.Checkpoint => checkpointPool.Remove(entityPointer), - BaseObjectType.VoiceChannel => voiceChannelPool.Remove(entityPointer), - BaseObjectType.ColShape => colShapePool.Remove(entityPointer), - _ => false - }; - } - } -} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Pools/BaseEntityPool.cs b/api/AltV.Net/Elements/Pools/BaseEntityPool.cs deleted file mode 100644 index dfa41a017..000000000 --- a/api/AltV.Net/Elements/Pools/BaseEntityPool.cs +++ /dev/null @@ -1,93 +0,0 @@ -using System; -using AltV.Net.Elements.Entities; - -namespace AltV.Net.Elements.Pools -{ - public class BaseEntityPool : IBaseEntityPool - { - private readonly IEntityPool playerPool; - - private readonly IEntityPool vehiclePool; - - public BaseEntityPool(IEntityPool playerPool, IEntityPool vehiclePool) - { - this.playerPool = playerPool; - this.vehiclePool = vehiclePool; - } - - public bool GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType, out IEntity entity) - { - bool result; - switch (baseObjectType) - { - case BaseObjectType.Player: - var player = playerPool.GetOrCreate(core, entityPointer); - entity = player; - return player != null; - case BaseObjectType.Vehicle: - var vehicle = vehiclePool.GetOrCreate(core, entityPointer); - entity = vehicle; - return vehicle != null; - default: - entity = default; - return false; - } - } - - public bool Get(IntPtr entityPointer, BaseObjectType baseObjectType, out IEntity entity) - { - bool result; - switch (baseObjectType) - { - case BaseObjectType.Player: - var player = playerPool.Get(entityPointer); - entity = player; - return player != null; - case BaseObjectType.Vehicle: - var vehicle = vehiclePool.Get(entityPointer); - entity = vehicle; - return vehicle != null; - default: - entity = default; - return false; - } - } - - public bool GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType, ushort entityId, out IEntity entity) - { - bool result; - switch (baseObjectType) - { - case BaseObjectType.Player: - var player = playerPool.GetOrCreate(core, entityPointer, entityId); - entity = player; - return player != null; - case BaseObjectType.Vehicle: - var vehicle = vehiclePool.GetOrCreate(core, entityPointer, entityId); - entity = vehicle; - return vehicle != null; - default: - entity = default; - return false; - } - } - - public bool Remove(IEntity entity) - { - return Remove(entity.NativePointer, entity.Type); - } - - public bool Remove(IntPtr entityPointer, BaseObjectType baseObjectType) - { - switch (baseObjectType) - { - case BaseObjectType.Player: - return playerPool.Remove(entityPointer); - case BaseObjectType.Vehicle: - return vehiclePool.Remove(entityPointer); - default: - return false; - } - } - } -} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Pools/BaseObjectPool.cs b/api/AltV.Net/Elements/Pools/BaseObjectPool.cs index ae264e018..90b86cfe5 100644 --- a/api/AltV.Net/Elements/Pools/BaseObjectPool.cs +++ b/api/AltV.Net/Elements/Pools/BaseObjectPool.cs @@ -7,6 +7,7 @@ namespace AltV.Net.Elements.Pools { public abstract class BaseObjectPool : IBaseObjectPool where TBaseObject : IBaseObject { + public abstract uint GetId(IntPtr entityPointer); public static void SetEntityNoLongerExists(TBaseObject entity) { if (entity is not IInternalBaseObject internalEntity) return; @@ -23,11 +24,11 @@ protected BaseObjectPool(IBaseObjectFactory entityFactory) this.entityFactory = entityFactory; } - public TBaseObject Create(ICore core, IntPtr entityPointer) + public TBaseObject Create(ICore core, IntPtr entityPointer, uint id) { if (entityPointer == IntPtr.Zero) return default; if (entities.TryGetValue(entityPointer, out var baseObject)) return baseObject; - baseObject = entityFactory.Create(core, entityPointer); + baseObject = entityFactory.Create(core, entityPointer, id); Add(baseObject); return baseObject; } @@ -56,6 +57,18 @@ public bool Remove(IntPtr entityPointer) return true; } + public TBaseObject GetOrCreate(ICore core, IntPtr entityPointer, uint entityId) + { + if (entityPointer == IntPtr.Zero) + { + return default; + } + + if (entities.TryGetValue(entityPointer, out var entity)) return entity; + + return Create(core, entityPointer, entityId); + } + public TBaseObject Get(IntPtr entityPointer) { return entities.TryGetValue(entityPointer, out var baseObject) ? baseObject : default; @@ -69,7 +82,7 @@ public TBaseObject GetOrCreate(ICore core, IntPtr entityPointer) if (entities.TryGetValue(entityPointer, out var entity)) return entity; - return Create(core, entityPointer); + return Create(core, entityPointer, GetId(entityPointer)); } public IReadOnlyCollection GetAllObjects() diff --git a/api/AltV.Net/Elements/Pools/BlipPool.cs b/api/AltV.Net/Elements/Pools/BlipPool.cs index 299f8127e..ac6c518db 100644 --- a/api/AltV.Net/Elements/Pools/BlipPool.cs +++ b/api/AltV.Net/Elements/Pools/BlipPool.cs @@ -1,3 +1,4 @@ +using System; using AltV.Net.Elements.Entities; namespace AltV.Net.Elements.Pools @@ -7,5 +8,13 @@ public class BlipPool : BaseObjectPool public BlipPool(IBaseObjectFactory blipFactory) : base(blipFactory) { } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.Blip_GetID(entityPointer); + } + } } } \ No newline at end of file diff --git a/api/AltV.Net/Elements/Pools/CheckpointPool.cs b/api/AltV.Net/Elements/Pools/CheckpointPool.cs index 3f190a492..e3e96bad4 100644 --- a/api/AltV.Net/Elements/Pools/CheckpointPool.cs +++ b/api/AltV.Net/Elements/Pools/CheckpointPool.cs @@ -1,3 +1,4 @@ +using System; using AltV.Net.Elements.Entities; namespace AltV.Net.Elements.Pools @@ -7,5 +8,13 @@ public class CheckpointPool : BaseObjectPool public CheckpointPool(IBaseObjectFactory checkpointPool) : base(checkpointPool) { } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.Checkpoint_GetID(entityPointer); + } + } } } \ No newline at end of file diff --git a/api/AltV.Net/Elements/Pools/ColShapePool.cs b/api/AltV.Net/Elements/Pools/ColShapePool.cs index 0a6d3b526..5ce4abd2a 100644 --- a/api/AltV.Net/Elements/Pools/ColShapePool.cs +++ b/api/AltV.Net/Elements/Pools/ColShapePool.cs @@ -1,3 +1,4 @@ +using System; using AltV.Net.Elements.Entities; namespace AltV.Net.Elements.Pools @@ -7,5 +8,13 @@ public class ColShapePool : BaseObjectPool public ColShapePool(IBaseObjectFactory colShapeFactory) : base(colShapeFactory) { } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.ColShape_GetID(entityPointer); + } + } } } \ No newline at end of file diff --git a/api/AltV.Net/Elements/Pools/ConnectionInfoPool.cs b/api/AltV.Net/Elements/Pools/ConnectionInfoPool.cs new file mode 100644 index 000000000..45741a935 --- /dev/null +++ b/api/AltV.Net/Elements/Pools/ConnectionInfoPool.cs @@ -0,0 +1,19 @@ +using System; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Elements.Pools; + +public class ConnectionInfoPool : BaseObjectPool +{ + public ConnectionInfoPool(IBaseObjectFactory factory) : base(factory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Server.ConnectionInfo_GetID(entityPointer); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Pools/EntityPool.cs b/api/AltV.Net/Elements/Pools/EntityPool.cs index 8916a65db..d0f850ede 100644 --- a/api/AltV.Net/Elements/Pools/EntityPool.cs +++ b/api/AltV.Net/Elements/Pools/EntityPool.cs @@ -18,9 +18,9 @@ protected EntityPool(IEntityFactory entityFactory) this.entityFactory = entityFactory; } - public abstract ushort GetId(IntPtr entityPointer); + public abstract uint GetId(IntPtr entityPointer); - public TEntity Create(ICore core, IntPtr entityPointer, ushort id) + public TEntity Create(ICore core, IntPtr entityPointer, uint id) { if (entityPointer == IntPtr.Zero) return default; if (entities.TryGetValue(entityPointer, out var entity)) return entity; @@ -102,7 +102,7 @@ public TEntity GetOrCreate(ICore core, IntPtr entityPointer) return Create(core, entityPointer); } - public TEntity GetOrCreate(ICore core, IntPtr entityPointer, ushort entityId) + public TEntity GetOrCreate(ICore core, IntPtr entityPointer, uint entityId) { if (entityPointer == IntPtr.Zero) { diff --git a/api/AltV.Net/Elements/Pools/MarkerPool.cs b/api/AltV.Net/Elements/Pools/MarkerPool.cs new file mode 100644 index 000000000..1067487cf --- /dev/null +++ b/api/AltV.Net/Elements/Pools/MarkerPool.cs @@ -0,0 +1,20 @@ +using System; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Elements.Pools +{ + public class MarkerPool : BaseObjectPool + { + public MarkerPool(IBaseObjectFactory factory) : base(factory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.Marker_GetID(entityPointer); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Pools/ObjectPool.cs b/api/AltV.Net/Elements/Pools/ObjectPool.cs new file mode 100644 index 000000000..9289bc4b8 --- /dev/null +++ b/api/AltV.Net/Elements/Pools/ObjectPool.cs @@ -0,0 +1,21 @@ +using System; +using AltV.Net.Elements.Entities; +using AltV.Net.Native; + +namespace AltV.Net.Elements.Pools +{ + public class ObjectPool : EntityPool + { + public ObjectPool(IEntityFactory factory) : base(factory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.Object_GetID(entityPointer); + } + } + } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Pools/PedPool.cs b/api/AltV.Net/Elements/Pools/PedPool.cs new file mode 100644 index 000000000..588736730 --- /dev/null +++ b/api/AltV.Net/Elements/Pools/PedPool.cs @@ -0,0 +1,19 @@ +using System; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Elements.Pools; + +public class PedPool : EntityPool +{ + public PedPool(IEntityFactory pedFactory) : base(pedFactory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.Ped_GetID(entityPointer); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Pools/PlayerPool.cs b/api/AltV.Net/Elements/Pools/PlayerPool.cs index 3ead4bb8d..a5a3d0ea4 100644 --- a/api/AltV.Net/Elements/Pools/PlayerPool.cs +++ b/api/AltV.Net/Elements/Pools/PlayerPool.cs @@ -9,8 +9,8 @@ public class PlayerPool : EntityPool public PlayerPool(IEntityFactory playerFactory) : base(playerFactory) { } - - public override ushort GetId(IntPtr entityPointer) + + public override uint GetId(IntPtr entityPointer) { unsafe { diff --git a/api/AltV.Net/Elements/Pools/PoolManager.cs b/api/AltV.Net/Elements/Pools/PoolManager.cs new file mode 100644 index 000000000..3756f8fae --- /dev/null +++ b/api/AltV.Net/Elements/Pools/PoolManager.cs @@ -0,0 +1,168 @@ +using System; +using System.Collections.Generic; +using System.Net.Mime; +using System.Threading.Tasks; +using AltV.Net.Elements.Entities; +using AltV.Net.Shared; +using AltV.Net.Shared.Elements.Entities; + +namespace AltV.Net.Elements.Pools; + +public class PoolManager : IPoolManager +{ + public IEntityPool Player { get; } + IReadOnlyEntityPool ISharedPoolManager.Player => Player; + public IEntityPool Vehicle { get; } + IReadOnlyEntityPool ISharedPoolManager.Vehicle => Vehicle; + public IEntityPool Ped { get; } + IReadOnlyEntityPool ISharedPoolManager.Ped => Ped; + public IEntityPool Object { get; } + IReadOnlyEntityPool ISharedPoolManager.Object => Object; + + public IBaseObjectPool Blip { get; } + IReadOnlyBaseObjectPool ISharedPoolManager.Blip => Blip; + public IBaseObjectPool Checkpoint { get; } + IReadOnlyBaseObjectPool ISharedPoolManager.Checkpoint => Checkpoint; + public IBaseObjectPool VoiceChannel { get; } + public IBaseObjectPool ConnectionInfo { get; } + public IBaseObjectPool ColShape { get; } + IReadOnlyBaseObjectPool ISharedPoolManager.ColShape => ColShape; + public IBaseObjectPool VirtualEntity { get; } + IReadOnlyBaseObjectPool ISharedPoolManager.VirtualEntity => VirtualEntity; + public IBaseObjectPool VirtualEntityGroup { get; } + IReadOnlyBaseObjectPool ISharedPoolManager.VirtualEntityGroup => VirtualEntityGroup; + public IBaseObjectPool Marker { get; } + + IReadOnlyBaseObjectPool ISharedPoolManager.Marker => Marker; + + public PoolManager(IEntityPool playerPool, IEntityPool vehiclePool, IEntityPool pedPool, IEntityPool objectPool, + IBaseObjectPool blipPool, IBaseObjectPool checkpointPool, + IBaseObjectPool voiceChannelPool, IBaseObjectPool colShapePool, + IBaseObjectPool virtualEntityPool, + IBaseObjectPool virtualEntityGroupPool, + IBaseObjectPool markerPool, + IBaseObjectPool connectionInfoPool) + { + this.Player = playerPool; + this.Vehicle = vehiclePool; + this.Ped = pedPool; + this.Object = objectPool; + this.Blip = blipPool; + this.Checkpoint = checkpointPool; + this.VoiceChannel = voiceChannelPool; + this.ColShape = colShapePool; + this.VirtualEntity = virtualEntityPool; + this.VirtualEntityGroup = virtualEntityGroupPool; + this.Marker = markerPool; + this.ConnectionInfo = connectionInfoPool; + } + + public IBaseObject GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType, uint entityId) + { + return baseObjectType switch + { + BaseObjectType.Player => Player.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.Vehicle => Vehicle.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.Ped => Ped.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.Object => Object.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.Blip => Blip.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.Checkpoint => Checkpoint.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.VoiceChannel => VoiceChannel.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.ColShape => ColShape.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.VirtualEntity => VirtualEntity.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.VirtualEntityGroup => VirtualEntityGroup.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.Marker => Marker.GetOrCreate(core, entityPointer, entityId), + BaseObjectType.ConnectionInfo => ConnectionInfo.GetOrCreate(core, entityPointer, entityId), + _ => default + }; + } + + public IBaseObject GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType) + { + return baseObjectType switch + { + BaseObjectType.Player => Player.GetOrCreate(core, entityPointer), + BaseObjectType.Vehicle => Vehicle.GetOrCreate(core, entityPointer), + BaseObjectType.Ped => Ped.GetOrCreate(core, entityPointer), + BaseObjectType.Object => Object.GetOrCreate(core, entityPointer), + BaseObjectType.Blip => Blip.GetOrCreate(core, entityPointer), + BaseObjectType.Checkpoint => Checkpoint.GetOrCreate(core, entityPointer), + BaseObjectType.VoiceChannel => VoiceChannel.GetOrCreate(core, entityPointer), + BaseObjectType.ColShape => ColShape.GetOrCreate(core, entityPointer), + BaseObjectType.VirtualEntity => VirtualEntity.GetOrCreate(core, entityPointer), + BaseObjectType.VirtualEntityGroup => VirtualEntityGroup.GetOrCreate(core, entityPointer), + BaseObjectType.Marker => Marker.GetOrCreate(core, entityPointer), + BaseObjectType.ConnectionInfo => ConnectionInfo.GetOrCreate(core, entityPointer), + _ => default + }; + } + + public IBaseObject Get(IntPtr entityPointer, BaseObjectType baseObjectType) + { + return baseObjectType switch + { + BaseObjectType.Player => Player.Get(entityPointer), + BaseObjectType.Vehicle => Vehicle.Get(entityPointer), + BaseObjectType.Ped => Ped.Get(entityPointer), + BaseObjectType.Object => Object.Get(entityPointer), + BaseObjectType.Blip => Blip.Get(entityPointer), + BaseObjectType.Checkpoint => Checkpoint.Get(entityPointer), + BaseObjectType.VoiceChannel => VoiceChannel.Get(entityPointer), + BaseObjectType.ColShape => ColShape.Get(entityPointer), + BaseObjectType.VirtualEntity => VirtualEntity.Get(entityPointer), + BaseObjectType.VirtualEntityGroup => VirtualEntityGroup.Get(entityPointer), + BaseObjectType.Marker => Marker.Get(entityPointer), + BaseObjectType.ConnectionInfo => ConnectionInfo.Get(entityPointer), + _ => default + }; + } + + public void Dispose() + { + Player.Dispose(); + Vehicle.Dispose(); + Ped.Dispose(); + Object.Dispose(); + Blip.Dispose(); + Checkpoint.Dispose(); + VoiceChannel.Dispose(); + ColShape.Dispose(); + VirtualEntity.Dispose(); + VirtualEntityGroup.Dispose(); + Marker.Dispose(); + ConnectionInfo.Dispose(); + } + + public bool Remove(IBaseObject entity) + { + return Remove(entity.NativePointer, entity.Type); + } + + public bool Remove(IntPtr entityPointer, BaseObjectType baseObjectType) + { + return baseObjectType switch + { + BaseObjectType.Player => Player.Remove(entityPointer), + BaseObjectType.Vehicle => Vehicle.Remove(entityPointer), + BaseObjectType.Ped => Ped.Remove(entityPointer), + BaseObjectType.Object => Object.Remove(entityPointer), + BaseObjectType.Blip => Blip.Remove(entityPointer), + BaseObjectType.Checkpoint => Checkpoint.Remove(entityPointer), + BaseObjectType.VoiceChannel => VoiceChannel.Remove(entityPointer), + BaseObjectType.ColShape => ColShape.Remove(entityPointer), + BaseObjectType.VirtualEntity => VirtualEntity.Remove(entityPointer), + BaseObjectType.VirtualEntityGroup => VirtualEntityGroup.Remove(entityPointer), + BaseObjectType.Marker => Marker.Remove(entityPointer), + BaseObjectType.ConnectionInfo => ConnectionInfo.Remove(entityPointer), + _ => false + }; + } + + ISharedBaseObject ISharedPoolManager.GetOrCreate(ISharedCore core, IntPtr entityPointer, BaseObjectType baseObjectType, + uint entityId) => GetOrCreate((ICore)core, entityPointer, baseObjectType, entityId); + + ISharedBaseObject ISharedPoolManager.GetOrCreate(ISharedCore core, IntPtr entityPointer, BaseObjectType baseObjectType) => GetOrCreate((ICore)core, entityPointer, baseObjectType); + + ISharedBaseObject ISharedPoolManager.Get(IntPtr entityPointer, BaseObjectType baseObjectType) => Get(entityPointer, baseObjectType); + +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Pools/VehiclePool.cs b/api/AltV.Net/Elements/Pools/VehiclePool.cs index ce909842f..54b97d2d3 100644 --- a/api/AltV.Net/Elements/Pools/VehiclePool.cs +++ b/api/AltV.Net/Elements/Pools/VehiclePool.cs @@ -10,7 +10,7 @@ public VehiclePool(IEntityFactory vehicleFactory) : base(vehicleFactor { } - public override ushort GetId(IntPtr entityPointer) + public override uint GetId(IntPtr entityPointer) { unsafe { diff --git a/api/AltV.Net/Elements/Pools/VirtualEntityGroupPool.cs b/api/AltV.Net/Elements/Pools/VirtualEntityGroupPool.cs new file mode 100644 index 000000000..063816f71 --- /dev/null +++ b/api/AltV.Net/Elements/Pools/VirtualEntityGroupPool.cs @@ -0,0 +1,19 @@ +using System; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Elements.Pools; + +public class VirtualEntityGroupPool : BaseObjectPool +{ + public VirtualEntityGroupPool(IBaseObjectFactory entityFactory) : base(entityFactory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.VirtualEntityGroup_GetID(entityPointer); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Pools/VirtualEntityPool.cs b/api/AltV.Net/Elements/Pools/VirtualEntityPool.cs new file mode 100644 index 000000000..0a8afd6c7 --- /dev/null +++ b/api/AltV.Net/Elements/Pools/VirtualEntityPool.cs @@ -0,0 +1,19 @@ +using System; +using AltV.Net.Elements.Entities; + +namespace AltV.Net.Elements.Pools; + +public class VirtualEntityPool : BaseObjectPool +{ + public VirtualEntityPool(IBaseObjectFactory entityFactory) : base(entityFactory) + { + } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.VirtualEntity_GetID(entityPointer); + } + } +} \ No newline at end of file diff --git a/api/AltV.Net/Elements/Pools/VoiceChannelPool.cs b/api/AltV.Net/Elements/Pools/VoiceChannelPool.cs index 46c18cb13..712086093 100644 --- a/api/AltV.Net/Elements/Pools/VoiceChannelPool.cs +++ b/api/AltV.Net/Elements/Pools/VoiceChannelPool.cs @@ -1,3 +1,4 @@ +using System; using AltV.Net.Elements.Entities; namespace AltV.Net.Elements.Pools @@ -7,5 +8,13 @@ public class VoiceChannelPool : BaseObjectPool public VoiceChannelPool(IBaseObjectFactory voiceChannelFactory) : base(voiceChannelFactory) { } + + public override uint GetId(IntPtr entityPointer) + { + unsafe + { + return Alt.Core.Library.Shared.VoiceChannel_GetID(entityPointer); + } + } } } \ No newline at end of file diff --git a/api/AltV.Net/Events/Events.cs b/api/AltV.Net/Events/Events.cs index 7972f7906..a04a2766e 100644 --- a/api/AltV.Net/Events/Events.cs +++ b/api/AltV.Net/Events/Events.cs @@ -1,18 +1,18 @@ +using System.Collections.Generic; using AltV.Net.Data; using AltV.Net.Elements.Args; using AltV.Net.Elements.Entities; +using AltV.Net.Shared.Elements.Entities; using AltV.Net.Types; namespace AltV.Net.Events { - public delegate void CheckpointDelegate(ICheckpoint checkpoint, IEntity entity, bool state); + public delegate void CheckpointDelegate(ICheckpoint checkpoint, IWorldObject entity, bool state); public delegate void ClientEventDelegate(IPlayer player, object[] args); public delegate void PlayerConnectDelegate(IPlayer player, string reason); - public delegate string PlayerBeforeConnectDelegate(PlayerConnectionInfo connectionInfo, string reason); - public delegate void PlayerConnectDeniedDelegate(PlayerConnectDeniedReason reason, string name, string ip, ulong passwordHash, bool isDebug, string branch, uint majorVersion, string cdnUrl, long discordId); @@ -22,12 +22,17 @@ public delegate void PlayerConnectDeniedDelegate(PlayerConnectDeniedReason reaso public delegate void PlayerDeadDelegate(IPlayer player, IEntity killer, uint weapon); + public delegate void PlayerHealDelegate(IPlayer target, ushort oldHealth, ushort newHealth, ushort oldArmour, + ushort newArmour); + public delegate void PlayerDisconnectDelegate(IPlayer player, string reason); public delegate void PlayerRemoveDelegate(IPlayer player); public delegate void VehicleRemoveDelegate(IVehicle vehicle); + public delegate void PedRemoveDelegate(IPed ped); + public delegate void ServerEventDelegate(object[] args); public delegate void PlayerClientEventDelegate(IPlayer player, string eventName, object[] args); @@ -50,12 +55,12 @@ public delegate void PlayerConnectDeniedDelegate(PlayerConnectDeniedReason reaso public delegate void MetaDataChangeDelegate(IEntity entity, string key, object value); - public delegate void ColShapeDelegate(IColShape colShape, IEntity targetEntity, bool state); + public delegate void ColShapeDelegate(IColShape colShape, IWorldObject targetEntity, bool state); public delegate bool ExplosionDelegate(IPlayer player, ExplosionType explosionType, Position position, uint explosionFx, IEntity targetEntity); - public delegate bool WeaponDamageDelegate(IPlayer player, IEntity target, uint weapon, ushort damage, + public delegate WeaponDamageResponse WeaponDamageDelegate(IPlayer player, IEntity target, uint weapon, ushort damage, Position shotOffset, BodyPart bodyPart); public delegate void VehicleDestroyDelegate(IVehicle vehicle); @@ -64,7 +69,7 @@ public delegate bool WeaponDamageDelegate(IPlayer player, IEntity target, uint w public delegate bool StartProjectileDelegate(IPlayer player, Position startPosition, Position direction, uint ammoHash, uint weaponHash); - public delegate bool PlayerWeaponChangeDelegate(IPlayer player, uint oldWeapon, uint newWeapon); + public delegate void PlayerWeaponChangeDelegate(IPlayer player, uint oldWeapon, uint newWeapon); public delegate void NetOwnerChangeDelegate(IEntity target, IPlayer oldNetOwner, IPlayer newNetOwner); @@ -73,18 +78,47 @@ public delegate bool WeaponDamageDelegate(IPlayer player, IEntity target, uint w public delegate void VehicleDetachDelegate(IVehicle target, IVehicle detachedVehicle); public delegate void VehicleDamageDelegate(IVehicle target, IEntity attacker, uint bodyHealthDamage, uint additionalBodyHealthDamage, uint engineHealthDamage, uint petrolTankDamage, uint weaponHash); - + + public delegate bool VehicleHornDelegate(IVehicle target, IPlayer reporter, bool state); + public delegate void ConnectionQueueAddDelegate(IConnectionInfo connectionInfo); - + public delegate void ConnectionQueueRemoveDelegate(IConnectionInfo connectionInfo); public delegate void ServerStartedDelegate(); public delegate void PlayerRequestControlDelegate(IEntity target, IPlayer player); - + public delegate void PlayerChangeAnimationDelegate(IPlayer player, uint oldDict, uint newDict, uint oldName, uint newName); - + public delegate void PlayerChangeInteriorDelegate(IPlayer player, uint oldIntLoc, uint newIntLoc); public delegate void PlayerDimensionChangeDelegate(IPlayer player, int oldDimension, int newDimension); + + public delegate void VehicleSirenDelegate(IVehicle targetVehicle, bool state); + + public delegate void PlayerSpawnDelegate(IPlayer player); + + public delegate bool RequestSyncedSceneDelegate(IPlayer source, int sceneId); + + public delegate void StartSyncedSceneDelegate(IPlayer source, int sceneId, Position position, Rotation rotation, uint animDictHash, Dictionary entityAndAnimHash); + public delegate void StopSyncedSceneDelegate(IPlayer source, int sceneId); + public delegate void UpdateSyncedSceneDelegate(IPlayer source, float startRate, int sceneId); + public delegate bool ClientRequestObjectDelegate(IPlayer target, uint model, Position position); + public delegate bool ClientDeleteObjectDelegate(IPlayer target); + + public delegate bool GivePedScriptedTaskDelegate(IPlayer source, IPed target, uint taskType); + + public delegate void PedDamageDelegate(IPed ped, IEntity attacker, uint weapon, ushort healthDamage, ushort armourDamage); + + public delegate void PedDeadDelegate(IPed ped, IEntity killer, uint weapon); + + public delegate void PedHealDelegate(IPed ped, ushort oldHealth, ushort newHealth, ushort oldArmour, + ushort newArmour); + public delegate bool PlayerStartTalkingDelegate(IPlayer Player); + public delegate bool PlayerStopTalkingDelegate(IPlayer Player); + + public delegate void ScriptRpcDelegate(IScriptRPCEvent scriptRpcEvent, IPlayer target, string name, object[] args, ushort answerId); + public delegate void ScriptRpcAnswerDelegate(IPlayer target, ushort answerId, object answer, string answerError); + } \ No newline at end of file diff --git a/api/AltV.Net/IBaseBaseObjectPool.cs b/api/AltV.Net/IBaseBaseObjectPool.cs deleted file mode 100644 index 945e9a58e..000000000 --- a/api/AltV.Net/IBaseBaseObjectPool.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using AltV.Net.Elements.Entities; -using AltV.Net.Shared; - -namespace AltV.Net -{ - /// - /// This pool decides which entity pool to use depending on the entity type - /// - public interface IBaseBaseObjectPool : IReadOnlyBaseBaseObjectPool - { - IBaseObject GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType, ushort entityId); - IBaseObject GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType); - new IBaseObject Get(IntPtr entityPointer, BaseObjectType baseObjectType); - bool Remove(IBaseObject baseObject); - bool Remove(IntPtr entityPointer, BaseObjectType baseObjectType); - } -} \ No newline at end of file diff --git a/api/AltV.Net/IBaseEntityPool.cs b/api/AltV.Net/IBaseEntityPool.cs deleted file mode 100644 index 3b20c46dc..000000000 --- a/api/AltV.Net/IBaseEntityPool.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using AltV.Net.Elements.Entities; - -namespace AltV.Net -{ - /// - /// This pool decides which entity pool to use depending on the entity type - /// - public interface IBaseEntityPool - { - bool GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType, ushort entityId, out IEntity baseObject); - bool GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType, out IEntity baseObject); - bool Get(IntPtr entityPointer, BaseObjectType baseObjectType, out IEntity baseObject); - bool Remove(IEntity baseObject); - bool Remove(IntPtr entityPointer, BaseObjectType baseObjectType); - } -} \ No newline at end of file diff --git a/api/AltV.Net/IBaseObjectFactory.cs b/api/AltV.Net/IBaseObjectFactory.cs index bbc0487a6..90d7f8d79 100644 --- a/api/AltV.Net/IBaseObjectFactory.cs +++ b/api/AltV.Net/IBaseObjectFactory.cs @@ -5,6 +5,6 @@ namespace AltV.Net { public interface IBaseObjectFactory where TBaseObject : IBaseObject { - TBaseObject Create(ICore core, IntPtr baseObjectPointer); + TBaseObject Create(ICore core, IntPtr baseObjectPointer, uint id); } } \ No newline at end of file diff --git a/api/AltV.Net/IBaseObjectPool.cs b/api/AltV.Net/IBaseObjectPool.cs index 53ed9413c..14d467470 100644 --- a/api/AltV.Net/IBaseObjectPool.cs +++ b/api/AltV.Net/IBaseObjectPool.cs @@ -8,10 +8,11 @@ namespace AltV.Net { public interface IBaseObjectPool : IReadOnlyBaseObjectPool where TBaseObject : IBaseObject { - TBaseObject Create(ICore core, IntPtr entityPointer); + TBaseObject Create(ICore core, IntPtr entityPointer, uint id); void Add(TBaseObject entity); bool Remove(TBaseObject entity); bool Remove(IntPtr entityPointer); + TBaseObject GetOrCreate(ICore core, IntPtr entityPointer, uint entityId); TBaseObject GetOrCreate(ICore core, IntPtr entityPointer); KeyValuePair[] GetObjectsArray(); void ForEach(IBaseObjectCallback baseObjectCallback); diff --git a/api/AltV.Net/ICore.cs b/api/AltV.Net/ICore.cs index 94d0bfbba..088a190c6 100644 --- a/api/AltV.Net/ICore.cs +++ b/api/AltV.Net/ICore.cs @@ -5,30 +5,23 @@ using AltV.Net.Data; using AltV.Net.Elements.Args; using AltV.Net.Elements.Entities; +using AltV.Net.Elements.Pools; using AltV.Net.Native; using AltV.Net.Shared; using AltV.Net.Shared.Elements.Data; +using AltV.Net.Shared.Enums; namespace AltV.Net { public interface ICore : ISharedCore { - new IBaseBaseObjectPool BaseBaseObjectPool { get; } - new IEntityPool PlayerPool { get; } - new IEntityPool ObjectPool { get; } - new IEntityPool VehiclePool { get; } - IBaseObjectPool BlipPool { get; } - IBaseObjectPool CheckpointPool { get; } - IBaseObjectPool VoiceChannelPool { get; } - IBaseObjectPool ColShapePool { get; } + new IPoolManager PoolManager { get; } + Dictionary> VehiclePassengers { get; } INativeResourcePool NativeResourcePool { get; } - int NetTime { get; } - string RootDirectory { get; } INativeResource Resource { get; } - IBaseEntityPool BaseEntityPool { get; } ulong HashPassword(string password); @@ -36,6 +29,7 @@ public interface ICore : ISharedCore public VehicleModelInfo GetVehicleModelInfo(uint hash); public PedModelInfo? GetPedModelInfo(uint hash); + public WeaponModelInfo? GetWeaponModelInfo(uint hash); void StopServer(); @@ -75,13 +69,60 @@ public interface ICore : ISharedCore void TriggerClientEventForSome(IPlayer[] clients, string eventName, params object[] args); - IVehicle CreateVehicle(uint model, Position pos, Rotation rotation); + void TriggerClientEventUnreliable(IPlayer player, IntPtr eventNamePtr, MValueConst[] args); + + void TriggerClientEventUnreliable(IPlayer player, string eventName, MValueConst[] args); + + void TriggerClientEventUnreliable(IPlayer player, IntPtr eventNamePtr, IntPtr[] args); + + void TriggerClientEventUnreliable(IPlayer player, string eventName, IntPtr[] args); + + void TriggerClientEventUnreliable(IPlayer player, IntPtr eventNamePtr, params object[] args); + + void TriggerClientEventUnreliable(IPlayer player, string eventName, params object[] args); + + void TriggerClientEventUnreliableForAll(IntPtr eventNamePtr, MValueConst[] args); + + void TriggerClientEventUnreliableForAll(string eventName, MValueConst[] args); + + void TriggerClientEventUnreliableForAll(IntPtr eventNamePtr, IntPtr[] args); + + void TriggerClientEventUnreliableForAll(string eventName, IntPtr[] args); + + void TriggerClientEventUnreliableForAll(IntPtr eventNamePtr, params object[] args); + + void TriggerClientEventUnreliableForAll(string eventName, params object[] args); + + void TriggerClientEventUnreliableForSome(IPlayer[] clients, IntPtr eventNamePtr, MValueConst[] args); - ICheckpoint CreateCheckpoint(byte type, Position pos, float radius, float height, Rgba color); + void TriggerClientEventUnreliableForSome(IPlayer[] clients, string eventName, MValueConst[] args); - IBlip CreateBlip(IPlayer player, byte type, Position pos); + void TriggerClientEventUnreliableForSome(IPlayer[] clients, IntPtr eventNamePtr, IntPtr[] args); - IBlip CreateBlip(IPlayer player, byte type, IEntity entityAttach); + void TriggerClientEventUnreliableForSome(IPlayer[] clients, string eventName, IntPtr[] args); + + void TriggerClientEventUnreliableForSome(IPlayer[] clients, IntPtr eventNamePtr, params object[] args); + + void TriggerClientEventUnreliableForSome(IPlayer[] clients, string eventName, params object[] args); + + void TriggerClientRPCAnswer(IPlayer target, ushort answerId, object answer, string error); + + void TriggerClientRPCAnswer(IPlayer player, ushort answerId, MValueConst answer, IntPtr errorPtr); + + void TriggerClientRPCAnswer(IPlayer target, ushort answerId, MValueConst answer, string error); + + ushort TriggerClientRPC(IPlayer target, string name, params object[] args); + ushort TriggerClientRPC(IPlayer target, string eventName, MValueConst[] args); + ushort TriggerClientRPC(IPlayer target, IntPtr eventNamePtr, MValueConst[] args); + + IVehicle CreateVehicle(uint model, Position pos, Rotation rotation, uint streamingDistance); + IPed CreatePed(uint model, Position pos, Rotation rotation, uint streamingDistance); + + ICheckpoint CreateCheckpoint(byte type, Position pos, float radius, float height, Rgba color, uint streamingDistance); + + IBlip CreateBlip(bool global, byte type, Position pos, IPlayer[] targets); + + IBlip CreateBlip(bool global, byte type, IEntity entityAttach, IPlayer[] targets); IVoiceChannel CreateVoiceChannel(bool spatial, float maxDistance); @@ -115,16 +156,26 @@ public interface ICore : ISharedCore INativeResource GetResource(string name); INativeResource GetResource(IntPtr resourcePointer); + INativeResource[] GetAllResources(); // Only for advanced use cases - IntPtr CreateVehicleEntity(out ushort id, uint model, Position pos, Rotation rotation); - - IPlayer[] GetPlayers(); + IntPtr CreateVehicleEntity(out uint id, uint model, Position pos, Rotation rotation, uint streamingDistance); - IVehicle[] GetVehicles(); + IReadOnlyCollection GetAllPlayers(); + IReadOnlyCollection GetAllVehicles(); + IReadOnlyCollection GetAllBlips(); + IReadOnlyCollection GetAllCheckpoints(); + IReadOnlyCollection GetAllVirtualEntities(); + IReadOnlyCollection GetAllVirtualEntityGroups(); + IReadOnlyCollection GetAllPeds(); + IReadOnlyCollection GetAllNetworkObjects(); + IReadOnlyCollection GetAllColShapes(); + IReadOnlyCollection GetAllMarkers(); + IReadOnlyCollection GetAllConnectionInfos(); + IReadOnlyCollection GetAllMetrics(); - IEntity GetEntityById(ushort id); + IBaseObject GetBaseObjectById(BaseObjectType type, uint id); void StartResource(string name); @@ -144,5 +195,39 @@ public interface ICore : ISharedCore void SetWorldProfiler(bool state); IEnumerable GetRegisteredClientEvents(); IEnumerable GetRegisteredServerEvents(); + + IBaseObject[] GetClosestEntities(Position position, int range, int dimension, int limit, + EntityType allowedTypes); + IBaseObject[] GetEntitiesInDimension(int dimension, EntityType allowedTypes); + IBaseObject[] GetEntitiesInRange(Position position, int range, int dimension, EntityType allowedTypes); + IBaseObject GetBaseObject(BaseObjectType type, uint id); + IMetric RegisterMetric(string name, MetricType type = MetricType.MetricTypeGauge, Dictionary dataDict = default); + void UnregisterMetric(IMetric metric); + IMarker CreateMarker(IPlayer player, MarkerType type, Position pos, Rgba color); + IObject CreateObject(uint hash, Position position, Rotation rotation, byte alpha, byte textureVariation, ushort lodDistance, uint streamingDistance); + IVirtualEntityGroup CreateVirtualEntityGroup(uint streamingDistance); + IVirtualEntity CreateVirtualEntity(IVirtualEntityGroup group, Position position, uint streamingDistance, Dictionary dataDict); + + void SetVoiceExternalPublic(string host, ushort port); + void SetVoiceExternal(string host, ushort port); + + ushort MaxStreamingPeds { get; set; } + ushort MaxStreamingObjects { get; set; } + ushort MaxStreamingVehicles { get; set; } + byte StreamerThreadCount { get; set; } + uint StreamingTickRate { get; set; } + uint StreamingDistance { get; set; } + uint ColShapeTickRate { get; set; } + uint MigrationDistance { get; set; } + byte MigrationThreadCount { get; set; } + uint MigrationTickRate { get; set; } + byte SyncReceiveThreadCount { get; set; } + byte SyncSendThreadCount { get; set; } + + uint[] LoadedVehicleModels { get; } + + void AddClientConfigKey(string key); + + bool HasBenefit(Benefit benefit); } } \ No newline at end of file diff --git a/api/AltV.Net/IEntityFactory.cs b/api/AltV.Net/IEntityFactory.cs index 92f63a7d1..efea1e896 100644 --- a/api/AltV.Net/IEntityFactory.cs +++ b/api/AltV.Net/IEntityFactory.cs @@ -5,6 +5,6 @@ namespace AltV.Net { public interface IEntityFactory where TEntity : IEntity { - TEntity Create(ICore core, IntPtr entityPointer, ushort id); + TEntity Create(ICore core, IntPtr entityPointer, uint id); } } \ No newline at end of file diff --git a/api/AltV.Net/IEntityPool.cs b/api/AltV.Net/IEntityPool.cs index 4e8af68d7..a9ac3ed0e 100644 --- a/api/AltV.Net/IEntityPool.cs +++ b/api/AltV.Net/IEntityPool.cs @@ -8,8 +8,8 @@ namespace AltV.Net { public interface IEntityPool : IReadOnlyEntityPool where TEntity : IEntity { - TEntity Create(ICore core, IntPtr entityPointer, ushort id); - + TEntity Create(ICore core, IntPtr entityPointer, uint id); + TEntity Create(ICore core, IntPtr entityPointer); void Add(TEntity entity); @@ -18,20 +18,20 @@ public interface IEntityPool : IReadOnlyEntityPool where TEnti bool Remove(IntPtr entityPointer); - TEntity GetOrCreate(ICore core, IntPtr entityPointer, ushort entityId); - + TEntity GetOrCreate(ICore core, IntPtr entityPointer, uint entityId); + TEntity GetOrCreate(ICore core, IntPtr entityPointer); KeyValuePair[] GetEntitiesArray(); void ForEach(IBaseObjectCallback baseObjectCallback); - + Task ForEach(IAsyncBaseObjectCallback asyncBaseObjectCallback); void OnAdd(TEntity entity); void OnRemove(TEntity entity); - + void Dispose(); } } \ No newline at end of file diff --git a/api/AltV.Net/INativeResource.cs b/api/AltV.Net/INativeResource.cs index 0dd0e7358..a0e1fb191 100644 --- a/api/AltV.Net/INativeResource.cs +++ b/api/AltV.Net/INativeResource.cs @@ -1,7 +1,4 @@ -using System; -using AltV.Net.Elements.Args; using AltV.Net.Shared; -using AltV.Net.Shared.Elements.Data; namespace AltV.Net { @@ -16,7 +13,5 @@ public interface INativeResource : ISharedNativeResource void Start(); void Stop(); - - public IConfig GetConfig(); } } \ No newline at end of file diff --git a/api/AltV.Net/IPoolManager.cs b/api/AltV.Net/IPoolManager.cs new file mode 100644 index 000000000..60f187ae5 --- /dev/null +++ b/api/AltV.Net/IPoolManager.cs @@ -0,0 +1,32 @@ +using System; +using AltV.Net.Elements.Entities; +using AltV.Net.Shared; + +namespace AltV.Net +{ + /// + /// This pool decides which entity pool to use depending on the entity type + /// + public interface IPoolManager : ISharedPoolManager + { + new IEntityPool Player { get; } + new IEntityPool Vehicle { get; } + new IEntityPool Ped { get; } + new IEntityPool Object { get; } + + new IBaseObjectPool Blip { get; } + new IBaseObjectPool Checkpoint { get; } + new IBaseObjectPool ColShape { get; } + new IBaseObjectPool VirtualEntity { get; } + new IBaseObjectPool VirtualEntityGroup { get; } + new IBaseObjectPool Marker { get; } + IBaseObjectPool VoiceChannel { get; } + IBaseObjectPool ConnectionInfo { get; } + + IBaseObject GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType, uint entityId); + IBaseObject GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType); + IBaseObject Get(IntPtr entityPointer, BaseObjectType baseObjectType); + bool Remove(IBaseObject baseObject); + bool Remove(IntPtr entityPointer, BaseObjectType baseObjectType); + } +} \ No newline at end of file diff --git a/api/AltV.Net/IResource.cs b/api/AltV.Net/IResource.cs index 3743c3ac2..73e0c6d55 100644 --- a/api/AltV.Net/IResource.cs +++ b/api/AltV.Net/IResource.cs @@ -2,6 +2,7 @@ using System.Runtime.Loader; using AltV.Net.CApi; using AltV.Net.Elements.Entities; +using AltV.Net.Shared; namespace AltV.Net { @@ -17,38 +18,43 @@ void OnStart(IntPtr serverPointer, IntPtr resourcePointer, string resourceName, void OnTick(); - //TODO: default implementation in c# 8.0 - IBaseEntityPool GetBaseEntityPool(IEntityPool playerPool, IEntityPool vehiclePool); - - IBaseBaseObjectPool GetBaseBaseObjectPool(IEntityPool playerPool, IEntityPool vehiclePool, + IPoolManager GetBaseBaseObjectPool(IEntityPool playerPool, IEntityPool vehiclePool,IEntityPool pedPool, IEntityPool networkObjectPool, IBaseObjectPool blipPool, IBaseObjectPool checkpointPool, - IBaseObjectPool voiceChannelPool, IBaseObjectPool colShapePool); + IBaseObjectPool voiceChannelPool, IBaseObjectPool colShapePool, + IBaseObjectPool virtualEntityPool, + IBaseObjectPool virtualEntityGroupPool, + IBaseObjectPool markerPool, IBaseObjectPool connectionInfoPool); IEntityPool GetPlayerPool(IEntityFactory playerFactory); IEntityPool GetVehiclePool(IEntityFactory vehicleFactory); + IEntityPool GetPedPool(IEntityFactory pedFactory); + IEntityPool GetObjectPool(IEntityFactory objectFactory); IBaseObjectPool GetBlipPool(IBaseObjectFactory blipFactory); IBaseObjectPool GetCheckpointPool(IBaseObjectFactory checkpointFactory); IBaseObjectPool GetVoiceChannelPool(IBaseObjectFactory voiceChannelFactory); IBaseObjectPool GetColShapePool(IBaseObjectFactory colShapeFactory); INativeResourcePool GetNativeResourcePool(INativeResourceFactory nativeResourceFactory); + IBaseObjectPool GetVirtualEntityPool(IBaseObjectFactory virtualEntityFactory); + IBaseObjectPool GetVirtualEntityGroupPool(IBaseObjectFactory virtualEntityGroupFactory); + IBaseObjectPool GetMarkerPool(IBaseObjectFactory markerFactory); + IBaseObjectPool GetConnectionInfoPool(IBaseObjectFactory connectionInfoFactory); IEntityFactory GetPlayerFactory(); IEntityFactory GetVehicleFactory(); + IEntityFactory GetPedFactory(); + IEntityFactory GetObjectFactory(); IBaseObjectFactory GetBlipFactory(); IBaseObjectFactory GetCheckpointFactory(); IBaseObjectFactory GetVoiceChannelFactory(); IBaseObjectFactory GetColShapeFactory(); INativeResourceFactory GetNativeResourceFactory(); + IBaseObjectFactory GetVirtualEntityFactory(); + IBaseObjectFactory GetVirtualEntityGroupFactory(); + IBaseObjectFactory GetMarkerFactory(); + IBaseObjectFactory GetConnectionInfoFactory(); ILibrary GetLibrary(); - Core GetCore(IntPtr nativePointer, IntPtr resourcePointer, AssemblyLoadContext assemblyLoadContext, ILibrary library, IBaseBaseObjectPool baseBaseObjectPool, - IBaseEntityPool baseEntityPool, - IEntityPool playerPool, - IEntityPool vehiclePool, - IBaseObjectPool blipPool, - IBaseObjectPool checkpointPool, - IBaseObjectPool voiceChannelPool, - IBaseObjectPool colShapePool, + Core GetCore(IntPtr nativePointer, IntPtr resourcePointer, AssemblyLoadContext assemblyLoadContext, ILibrary library, IPoolManager poolManager, INativeResourcePool nativeResourcePool); IScript[] GetScripts(); diff --git a/api/AltV.Net/ModuleWrapper.cs b/api/AltV.Net/ModuleWrapper.cs index e92cfc00b..b40922832 100644 --- a/api/AltV.Net/ModuleWrapper.cs +++ b/api/AltV.Net/ModuleWrapper.cs @@ -79,54 +79,76 @@ public static void MainWithAssembly(IntPtr serverPointer, IntPtr resourcePointer //TODO: do the same with the pools var library = _resource.GetLibrary() ?? new Library(cApiFuncTable, false); - + unsafe { - if (library.Shared.Core_GetEventEnumSize() != (byte) EventType.SIZE) + if (library.Shared.Core_GetEventTypeSize() != (byte) EventType.SIZE) { throw new OutdatedSdkException("EventType", "Event type enum size doesn't match. Please, update the nuget"); } + if (library.Shared.Core_GetBaseObjectTypeSize() != (byte) BaseObjectType.Size) + { + throw new OutdatedSdkException("BaseObjectType", "BaseObject type enum size doesn't match. Please, update the nuget"); + } } - + var playerFactory = _resource.GetPlayerFactory() ?? new PlayerFactory(); var vehicleFactory = _resource.GetVehicleFactory() ?? new VehicleFactory(); + var pedFactory = _resource.GetPedFactory() ?? new PedFactory(); + var objectFactory = _resource.GetObjectFactory() ?? new ObjectFactory(); var blipFactory = _resource.GetBlipFactory() ?? new BlipFactory(); var checkpointFactory = _resource.GetCheckpointFactory() ?? new CheckpointFactory(); var voiceChannelFactory = _resource.GetVoiceChannelFactory() ?? new VoiceChannelFactory(); var colShapeFactory = _resource.GetColShapeFactory() ?? new ColShapeFactory(); var nativeResourceFactory = _resource.GetNativeResourceFactory() ?? new NativeResourceFactory(); + + var virtualEntityFactory = _resource.GetVirtualEntityFactory() ?? new VirtualEntityFactory(); + var virtualEntityGroupPoolFactory = _resource.GetVirtualEntityGroupFactory() ?? new VirtualEntityGroupFactory(); + var markerPoolFactory = _resource.GetMarkerFactory() ?? new MarkerFactory(); + var connectionInfoFactory = _resource.GetConnectionInfoFactory() ?? new ConnectionInfoFactory(); + var playerPool = _resource.GetPlayerPool(playerFactory); var vehiclePool = _resource.GetVehiclePool(vehicleFactory); + var pedPool = _resource.GetPedPool(pedFactory); + var objectPool = _resource.GetObjectPool(objectFactory); var blipPool = _resource.GetBlipPool(blipFactory); var checkpointPool = _resource.GetCheckpointPool(checkpointFactory); var voiceChannelPool = _resource.GetVoiceChannelPool(voiceChannelFactory); var colShapePool = _resource.GetColShapePool(colShapeFactory); + var virtualEntityPool = _resource.GetVirtualEntityPool(virtualEntityFactory); + var virtualEntityGroupPool = _resource.GetVirtualEntityGroupPool(virtualEntityGroupPoolFactory); + var markerPool = _resource.GetMarkerPool(markerPoolFactory); + var connectionInfoPool = _resource.GetConnectionInfoPool(connectionInfoFactory); + var nativeResourcePool = _resource.GetNativeResourcePool(nativeResourceFactory); - var entityPool = _resource.GetBaseEntityPool(playerPool, vehiclePool); var baseObjectPool = - _resource.GetBaseBaseObjectPool(playerPool, vehiclePool, blipPool, checkpointPool, voiceChannelPool, - colShapePool); + _resource.GetBaseBaseObjectPool(playerPool, vehiclePool, pedPool, objectPool, blipPool, checkpointPool, voiceChannelPool, + colShapePool, virtualEntityPool, virtualEntityGroupPool, markerPool, connectionInfoPool); - var server = _resource.GetCore(serverPointer, resourcePointer, assemblyLoadContext, library, baseObjectPool, entityPool, - playerPool, vehiclePool, blipPool, checkpointPool, voiceChannelPool, colShapePool, nativeResourcePool); - _core = server; - Alt.CoreImpl = server; - AltShared.Core = server; + var core = _resource.GetCore(serverPointer, resourcePointer, assemblyLoadContext, library, baseObjectPool, nativeResourcePool); + _core = core; + Alt.CoreImpl = core; + AltShared.Core = core; if (library.Outdated) { Alt.LogWarning("Found mismatching SDK methods. Please update AltV.Net NuGet"); } - foreach (var unused in server.GetPlayers()) - { - } - - foreach (var unused in server.GetVehicles()) - { - } - - server.Resource.CSharpResourceImpl.SetDelegates(OnStartResource); + core.GetAllPlayers(); + core.GetAllVehicles(); + core.GetAllPeds(); + core.GetAllNetworkObjects(); + core.GetAllColShapes(); + core.GetAllMarkers(); + core.GetAllBlips(); + core.GetAllCheckpoints(); + core.GetAllVirtualEntities(); + core.GetAllVirtualEntityGroups(); + core.GetAllConnectionInfos(); + core.GetAllMetrics(); + + core.Resource.CSharpResourceImpl.SetDelegates(OnStartResource); _scripts = AssemblyLoader.FindAllTypes(assemblyLoadContext.Assemblies); foreach (var script in _scripts) @@ -164,12 +186,7 @@ public static void OnStop() module.OnStop(); } - _core.BlipPool.Dispose(); - _core.CheckpointPool.Dispose(); - _core.PlayerPool.Dispose(); - _core.VehiclePool.Dispose(); - _core.ColShapePool.Dispose(); - _core.VoiceChannelPool.Dispose(); + _core.PoolManager.Dispose(); Alt.Core.Resource.CSharpResourceImpl.Dispose(); @@ -188,20 +205,14 @@ public static void OnTick() } public static void OnCheckpoint(IntPtr checkpointPointer, IntPtr entityPointer, BaseObjectType baseObjectType, - bool state) + byte state) { - _core.OnCheckpoint(checkpointPointer, entityPointer, baseObjectType, state); + _core.OnCheckpoint(checkpointPointer, entityPointer, baseObjectType, state == 1); } - public static void OnPlayerConnect(IntPtr playerPointer, ushort playerId, string reason) + public static void OnPlayerConnect(IntPtr playerPointer, string reason) { - _core.OnPlayerConnect(playerPointer, playerId, reason); - } - - public static void OnPlayerBeforeConnect(IntPtr eventPointer, IntPtr connectionInfoPointer, string reason) - { - var connectionInfo = Marshal.PtrToStructure(connectionInfoPointer); - _core.OnPlayerBeforeConnect(eventPointer, connectionInfo, reason); + _core.OnPlayerConnect(playerPointer, reason); } public static void OnResourceStart(IntPtr resourcePointer) @@ -220,10 +231,9 @@ public static void OnResourceError(IntPtr resourcePointer) } public static void OnPlayerDamage(IntPtr playerPointer, IntPtr attackerEntityPointer, - BaseObjectType attackerBaseObjectType, - ushort attackerEntityId, uint weapon, ushort healthDamage, ushort armourDamage) + BaseObjectType attackerBaseObjectType, uint weapon, ushort healthDamage, ushort armourDamage) { - _core.OnPlayerDamage(playerPointer, attackerEntityPointer, attackerBaseObjectType, attackerEntityId, + _core.OnPlayerDamage(playerPointer, attackerEntityPointer, attackerBaseObjectType, weapon, healthDamage, armourDamage); } @@ -233,6 +243,11 @@ public static void OnPlayerDeath(IntPtr playerPointer, IntPtr killerEntityPointe _core.OnPlayerDeath(playerPointer, killerEntityPointer, killerBaseObjectType, weapon); } + public static void OnPlayerHeal(IntPtr playerPointer, ushort oldHealth, ushort newHealth, ushort oldArmour, ushort newArmour) + { + _core.OnPlayerHeal(playerPointer, oldHealth, newHealth, oldArmour, newArmour); + } + public static void OnExplosion(IntPtr eventPointer, IntPtr playerPointer, ExplosionType explosionType, Position position, uint explosionFx, IntPtr targetEntityPointer, BaseObjectType targetEntityType) { @@ -293,90 +308,6 @@ public static void OnServerEvent(string name, IntPtr pointer, ulong size) _core.OnServerEvent(name, args); } - public static void OnCreatePlayer(IntPtr playerPointer, ushort playerId) - { - _core.OnCreatePlayer(playerPointer, playerId); - } - - public static void OnRemovePlayer(IntPtr playerPointer) - { - _core.OnPlayerRemove(playerPointer); - _core.OnRemovePlayer(playerPointer); - } - - public static void OnCreateObject(IntPtr playerPointer, ushort playerId) - { - _core.OnCreateObject(playerPointer, playerId); - } - - public static void OnRemoveObject(IntPtr playerPointer) - { - _core.OnRemoveObject(playerPointer); - } - - public static void OnCreateVehicle(IntPtr vehiclePointer, ushort vehicleId) - { - _core.OnCreateVehicle(vehiclePointer, vehicleId); - } - - public static void OnRemoveVehicle(IntPtr vehiclePointer) - { - _core.OnVehicleRemove(vehiclePointer); - _core.OnRemoveVehicle(vehiclePointer); - } - - public static void OnCreateBlip(IntPtr blipPointer) - { - _core.OnCreateBlip(blipPointer); - } - - public static void OnCreateVoiceChannel(IntPtr channelPointer) - { - _core.OnCreateVoiceChannel(channelPointer); - } - - public static void OnCreateColShape(IntPtr colShapePointer) - { - _core.OnCreateColShape(colShapePointer); - } - - public static void OnRemoveBlip(IntPtr blipPointer) - { - _core.OnRemoveBlip(blipPointer); - } - - public static void OnCreateCheckpoint(IntPtr checkpointPointer) - { - _core.OnCreateCheckpoint(checkpointPointer); - } - - public static void OnRemoveCheckpoint(IntPtr checkpointPointer) - { - _core.OnRemoveCheckpoint(checkpointPointer); - } - - public static void OnRemoveVoiceChannel(IntPtr channelPointer) - { - _core.OnRemoveVoiceChannel(channelPointer); - } - - public static void OnRemoveColShape(IntPtr colShapePointer) - { - _core.OnRemoveColShape(colShapePointer); - } - - public static void OnPlayerRemove(IntPtr playerPointer) - { - // todo removed from api - _core.OnPlayerRemove(playerPointer); - } - - public static void OnVehicleRemove(IntPtr vehiclePointer) - { - // todo removed from api - _core.OnVehicleRemove(vehiclePointer); - } - public static void OnConsoleCommand(string name, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] string[] args, int argsSize) @@ -398,9 +329,9 @@ public static void OnSyncedMetaDataChange(IntPtr entityPointer, BaseObjectType e } public static void OnColShape(IntPtr colShapePointer, IntPtr targetEntityPointer, BaseObjectType entityType, - bool state) + byte state) { - _core.OnColShape(colShapePointer, targetEntityPointer, entityType, state); + _core.OnColShape(colShapePointer, targetEntityPointer, entityType, state == 1); } public static void OnVehicleDestroy(IntPtr vehiclePointer) @@ -447,14 +378,19 @@ public static void OnVehicleDamage(IntPtr eventPointer, IntPtr vehiclePointer, I _core.OnVehicleDamage(eventPointer, vehiclePointer, entityPointer, entityType, bodyHealthDamage, additionalBodyHealthDamage, engineHealthDamage, petrolTankDamage, weaponHash); } - + + public static void OnVehicleHorn(IntPtr eventPointer, IntPtr targetPointer, IntPtr reporterPointer, byte state) + { + _core.OnVehicleHorn(eventPointer, targetPointer, reporterPointer, state == 1); + } + public static void OnConnectionQueueAdd(IntPtr connectionInfo) { _core.OnConnectionQueueAdd(connectionInfo); } - + public static void OnConnectionQueueRemove(IntPtr connectionInfo) - { + { _core.OnConnectionQueueRemove(connectionInfo); } @@ -483,10 +419,113 @@ public static void OnPlayerDimensionChange(IntPtr player, int oldDimension, int _core.OnPlayerDimensionChange(player, oldDimension, newDimension); } - public static void OnPlayerConnectDenied(PlayerConnectDeniedReason reason, string name, string ip, ulong passwordHash, bool isDebug, string branch, uint majorVersion, string cdnUrl, long discordId) + public static void OnPlayerConnectDenied(PlayerConnectDeniedReason reason, string name, string ip, ulong passwordHash, byte isDebug, string branch, uint majorVersion, string cdnUrl, long discordId) { - _core.onPlayerConnectDenied(reason, name, ip, passwordHash, isDebug, branch, majorVersion, cdnUrl, + _core.OnPlayerConnectDenied(reason, name, ip, passwordHash, isDebug == 1, branch, majorVersion, cdnUrl, discordId); } + + public static void OnVehicleSiren(IntPtr targetVehiclePointer, byte state) + { + _core.OnVehicleSiren(targetVehiclePointer, state == 1); + } + + public static void OnPlayerSpawn(IntPtr playerPointer) + { + _core.OnPlayerSpawn(playerPointer); + } + + public static void OnCreateBaseObject(IntPtr baseObject, BaseObjectType type, uint id) + { + _core.OnCreateBaseObject(baseObject, type, id); + } + + public static void OnRemoveBaseObject(IntPtr baseObject, BaseObjectType type) + { + if (type == BaseObjectType.Player) + { + _core.OnPlayerRemove(baseObject); + } + else if (type == BaseObjectType.Vehicle) + { + _core.OnVehicleRemove(baseObject); + } + else if (type == BaseObjectType.Ped) + { + _core.OnPedRemove(baseObject); + } + + _core.OnRemoveBaseObject(baseObject, type); + } + + public static void OnRequestSyncedScene(IntPtr eventPointer, IntPtr source, int sceneid) + { + _core.OnRequestSyncedScene(eventPointer, source, sceneid); + } + + public static void OnStartSyncedScene(IntPtr source, int sceneid, Position position, Rotation rotation, uint animDictHash, IntPtr[] entites, BaseObjectType[] types, uint[] animHashes, ulong size) + { + _core.OnStartSyncedScene(source, sceneid, position, rotation, animDictHash, entites, types, animHashes, size); + } + + public static void OnStopSyncedScene(IntPtr source, int sceneid) + { + _core.OnStopSyncedScene(source, sceneid); + } + + public static void OnUpdateSyncedScene(IntPtr source, float startRate, int sceneid) + { + _core.OnUpdateSyncedScene(source, startRate, sceneid); + } + + public static void OnClientRequestObject(IntPtr eventPointer, IntPtr source, uint model, Position position) + { + _core.OnClientRequestObject(eventPointer, source, model, position); + } + + public static void OnRequestSyncedScene(IntPtr eventPointer, IntPtr source) + { + _core.OnClientDeleteObject(eventPointer, source); + } + + public static void OnGivePedScriptedTask(IntPtr eventPointer, IntPtr source, IntPtr target, uint taskType) + { + _core.OnGivePedScriptedTask(eventPointer, source, target, taskType); + } + + public static void OnPedDamage(IntPtr pedpointer, IntPtr attackerentitypointer, BaseObjectType attackerbaseobjecttype, uint weapon, ushort healthdamage, ushort armourdamage) + { + _core.OnPedDamage(pedpointer, attackerentitypointer, attackerbaseobjecttype, weapon, healthdamage, armourdamage); + } + + public static void OnPedDeath(IntPtr pedpointer, IntPtr killerentitypointer, BaseObjectType killerbaseobjecttype, uint weapon) + { + _core.OnPedDeath(pedpointer, killerentitypointer, killerbaseobjecttype, weapon); + } + + public static void OnPedHeal(IntPtr pedpointer, ushort oldhealth, ushort newhealth, ushort oldarmour, ushort newarmour) + { + _core.OnPedHeal(pedpointer, oldhealth, newhealth, oldarmour, newarmour); + } + + public static void OnPlayerStartTalking(IntPtr playerpointer) + { + _core.OnPlayerStartTalking(playerpointer); + } + + public static void OnPlayerStopTalking(IntPtr playerpointer) + { + _core.OnPlayerStopTalking(playerpointer); + } + + public static void OnScriptRPC(IntPtr eventpointer, IntPtr targetpointer, string name, IntPtr args, ulong size, ushort answerId) + { + _core.OnScriptRPC(eventpointer, targetpointer, name, args, size, answerId); + } + + public static void OnScriptRPCAnswer(IntPtr targetpointer, ushort answerid, IntPtr answer, string answererror) + { + _core.OnScriptAnswerRPC(targetpointer, answerid, answer, answererror); + } } } diff --git a/api/AltV.Net/NativeResource.cs b/api/AltV.Net/NativeResource.cs index 1754fb388..e3a370d29 100644 --- a/api/AltV.Net/NativeResource.cs +++ b/api/AltV.Net/NativeResource.cs @@ -64,14 +64,6 @@ public void Stop() } } - public IConfig GetConfig() - { - unsafe - { - return new Config(core, core.Library.Server.Resource_GetConfig(NativePointer)); - } - } - internal NativeResource(ISharedCore core, IntPtr nativePointer) : base(core, nativePointer) { } diff --git a/api/AltV.Net/Resource.cs b/api/AltV.Net/Resource.cs index c3431e3b0..51ce1db00 100644 --- a/api/AltV.Net/Resource.cs +++ b/api/AltV.Net/Resource.cs @@ -1,4 +1,5 @@ using System; +using System.Net; using System.Runtime.Loader; using AltV.Net.CApi; using AltV.Net.Elements.Entities; @@ -21,19 +22,15 @@ public void OnStart(IntPtr serverPointer, IntPtr resourcePointer, string resourc OnStart(); } - public virtual IBaseBaseObjectPool GetBaseBaseObjectPool(IEntityPool playerPool, - IEntityPool vehiclePool, IBaseObjectPool blipPool, + public virtual IPoolManager GetBaseBaseObjectPool(IEntityPool playerPool, + IEntityPool vehiclePool, IEntityPool pedPool, IEntityPool objectPool, IBaseObjectPool blipPool, IBaseObjectPool checkpointPool, IBaseObjectPool voiceChannelPool, - IBaseObjectPool colShapePool) + IBaseObjectPool colShapePool, IBaseObjectPool virtualEntityPool, + IBaseObjectPool virtualEntityGroupPool, + IBaseObjectPool markerPool, IBaseObjectPool connectionInfoPool) { - return new BaseBaseObjectPool(playerPool, vehiclePool, blipPool, checkpointPool, voiceChannelPool, - colShapePool); - } - - public virtual IBaseEntityPool GetBaseEntityPool(IEntityPool playerPool, - IEntityPool vehiclePool) - { - return new BaseEntityPool(playerPool, vehiclePool); + return new PoolManager(playerPool, vehiclePool, pedPool, objectPool, blipPool, checkpointPool, voiceChannelPool, + colShapePool, virtualEntityPool, virtualEntityGroupPool, markerPool, connectionInfoPool); } public virtual IEntityPool GetPlayerPool(IEntityFactory playerFactory) @@ -46,6 +43,16 @@ public virtual IEntityPool GetVehiclePool(IEntityFactory veh return new VehiclePool(vehicleFactory); } + public virtual IEntityPool GetPedPool(IEntityFactory pedFactory) + { + return new PedPool(pedFactory); + } + + public IEntityPool GetObjectPool(IEntityFactory networkObjectFactory) + { + return new ObjectPool(networkObjectFactory); + } + public virtual IBaseObjectPool GetBlipPool(IBaseObjectFactory blipFactory) { return new BlipPool(blipFactory); @@ -71,7 +78,27 @@ public virtual INativeResourcePool GetNativeResourcePool(INativeResourceFactory { return new NativeResourcePool(nativeResourceFactory); } - + + public virtual IBaseObjectPool GetVirtualEntityPool(IBaseObjectFactory virtualEntityFactory) + { + return new VirtualEntityPool(virtualEntityFactory); + } + + public virtual IBaseObjectPool GetVirtualEntityGroupPool(IBaseObjectFactory virtualEntityGroupFactory) + { + return new VirtualEntityGroupPool(virtualEntityGroupFactory); + } + + public virtual IBaseObjectPool GetMarkerPool(IBaseObjectFactory markerFactory) + { + return new MarkerPool(markerFactory); + } + + public IBaseObjectPool GetConnectionInfoPool(IBaseObjectFactory connectionInfoFactory) + { + return new ConnectionInfoPool(connectionInfoFactory); + } + public virtual IEntityFactory GetPlayerFactory() { return null; @@ -82,6 +109,16 @@ public virtual IEntityFactory GetVehicleFactory() return null; } + public virtual IEntityFactory GetPedFactory() + { + return null; + } + + public virtual IEntityFactory GetObjectFactory() + { + return null; + } + public virtual IBaseObjectFactory GetBlipFactory() { return null; @@ -96,7 +133,7 @@ public virtual IBaseObjectFactory GetVoiceChannelFactory() { return null; } - + public virtual IBaseObjectFactory GetColShapeFactory() { return null; @@ -107,22 +144,35 @@ public virtual INativeResourceFactory GetNativeResourceFactory() return null; } + public virtual IBaseObjectFactory GetVirtualEntityFactory() + { + return null; + } + + public virtual IBaseObjectFactory GetVirtualEntityGroupFactory() + { + return null; + } + + public virtual IBaseObjectFactory GetMarkerFactory() + { + return null; + } + + public virtual IBaseObjectFactory GetConnectionInfoFactory() + { + return null; + } + public ILibrary GetLibrary() { return null; } - public virtual Core GetCore(IntPtr nativePointer, IntPtr resourcePointer, AssemblyLoadContext assemblyLoadContext, ILibrary library, IBaseBaseObjectPool baseBaseObjectPool, - IBaseEntityPool baseEntityPool, - IEntityPool playerPool, - IEntityPool vehiclePool, - IBaseObjectPool blipPool, - IBaseObjectPool checkpointPool, - IBaseObjectPool voiceChannelPool, - IBaseObjectPool colShapePool, + public virtual Core GetCore(IntPtr nativePointer, IntPtr resourcePointer, AssemblyLoadContext assemblyLoadContext, ILibrary library, IPoolManager poolManager, INativeResourcePool nativeResourcePool) { - return new Core(nativePointer, resourcePointer, assemblyLoadContext, library, baseBaseObjectPool, baseEntityPool, playerPool, vehiclePool, blipPool, checkpointPool, voiceChannelPool, colShapePool, nativeResourcePool); + return new Core(nativePointer, resourcePointer, assemblyLoadContext, library, poolManager, nativeResourcePool); } public IScript[] GetScripts() diff --git a/api/AltV.Net/ScriptEventType.cs b/api/AltV.Net/ScriptEventType.cs index 39d4a825b..db64a4a52 100644 --- a/api/AltV.Net/ScriptEventType.cs +++ b/api/AltV.Net/ScriptEventType.cs @@ -4,16 +4,19 @@ public enum ScriptEventType { Checkpoint, PlayerConnect, - PlayerBeforeConnect, PlayerDamage, PlayerDead, + PlayerHeal, PlayerDisconnect, PlayerRemove, VehicleRemove, + PedRemove, PlayerChangeVehicleSeat, PlayerEnterVehicle, + PlayerStartEnterVehicle, PlayerEnteringVehicle, PlayerLeaveVehicle, + PlayerStartLeaveVehicle, PlayerEvent, PlayerCustomEvent, ServerEvent, @@ -39,5 +42,9 @@ public enum ScriptEventType PlayerChangeAnimation, PlayerChangeInterior, PlayerDimensionChange, + VehicleHorn, + VehicleSiren, + PlayerSpawn, + RequestSyncedScene } } \ No newline at end of file diff --git a/api/AltV.Net/Types/ConnectionInfo.cs b/api/AltV.Net/Types/ConnectionInfo.cs deleted file mode 100644 index 16f514536..000000000 --- a/api/AltV.Net/Types/ConnectionInfo.cs +++ /dev/null @@ -1,244 +0,0 @@ -using System; -using System.Runtime.InteropServices; -using AltV.Net.Native; - -namespace AltV.Net.Types; - -public class ConnectionInfo: IConnectionInfo, IInternalNative -{ - private bool exists; - - public bool Exists - { - get => exists; - set => exists = value; - } - - public string Name { - get - { - lock (this) - { - if (!exists) return null; - unsafe - { - var size = 0; - return core.PtrToStringUtf8AndFree( - core.Library.Server.ConnectionInfo_GetName(NativePointer, &size), size); - } - } - } - } - public ulong SocialClubId { - get - { - lock (this) - { - if (!exists) return default; - unsafe - { - return core.Library.Server.ConnectionInfo_GetSocialId(NativePointer); - } - } - } - } - public ulong HardwareIdHash { - get - { - lock (this) - { - if (!exists) return default; - unsafe - { - return core.Library.Server.ConnectionInfo_GetHwIdHash(NativePointer); - } - } - } - } - public ulong HardwareIdExHash { - get - { - lock (this) - { - if (!exists) return default; - unsafe - { - return core.Library.Server.ConnectionInfo_GetHwIdExHash(NativePointer); - } - } - } - } - public string AuthToken { - get - { - lock (this) - { - if (!exists) return default; - unsafe - { - var size = 0; - return core.PtrToStringUtf8AndFree( - core.Library.Server.ConnectionInfo_GetAuthToken(NativePointer, &size), size); - } - } - } - } - public bool IsDebug { - get - { - lock (this) - { - if (!exists) return default; - unsafe - { - return core.Library.Server.ConnectionInfo_GetIsDebug(NativePointer) == 1; - } - } - } - } - public string Branch { - get - { - lock (this) - { - if (!exists) return null; - unsafe - { - var size = 0; - return core.PtrToStringUtf8AndFree( - core.Library.Server.ConnectionInfo_GetBranch(NativePointer, &size), size); - } - } - } - } - public uint Build { - get - { - lock (this) - { - if (!exists) return default; - unsafe - { - return core.Library.Server.ConnectionInfo_GetBuild(NativePointer); - } - } - } - } - public string CdnUrl { - get - { - lock (this) - { - if (!exists) return null; - unsafe - { - var size = 0; - return core.PtrToStringUtf8AndFree( - core.Library.Server.ConnectionInfo_GetCdnUrl(NativePointer, &size), size); - } - } - } - } - public ulong PasswordHash { - get - { - lock (this) - { - if (!exists) return default; - unsafe - { - return core.Library.Server.ConnectionInfo_GetPasswordHash(NativePointer); - } - } - } - } - public string Ip { - get - { - lock (this) - { - if (!exists) return null; - unsafe - { - var size = 0; - return core.PtrToStringUtf8AndFree( - core.Library.Server.ConnectionInfo_GetIp(NativePointer, &size), size); - } - } - } - } - public long DiscordUserId { - get - { - lock (this) - { - if (!exists) return default; - unsafe - { - return core.Library.Server.ConnectionInfo_GetDiscordUserID(NativePointer); - } - } - } - } - public IntPtr NativePointer { get; } - - private readonly ICore core; - - public ConnectionInfo(ICore core, IntPtr nativePointer) - { - NativePointer = nativePointer; - this.core = core; - exists = true; - } - - public bool AddRef() - { - lock (this) - { - if (!exists) return false; - } - - return true; - } - - public bool RemoveRef() - { - lock (this) - { - if (!exists) return false; - } - - return true; - } - - public void Accept(bool sendNames = true) - { - lock (this) - { - if (!exists) return; - unsafe - { - core.Library.Server.ConnectionInfo_Accept(NativePointer, sendNames ? (byte)1 : (byte)0); - } - } - } - - public void Decline(string reason) - { - lock (this) - { - if (!exists) return; - unsafe - { - var stringPtr = AltNative.StringUtils.StringToHGlobalUtf8(reason); - core.Library.Server.ConnectionInfo_Decline(NativePointer, stringPtr); - Marshal.FreeHGlobal(stringPtr); - } - } - } - - public override int GetHashCode() - { - return NativePointer.GetHashCode(); - } -} \ No newline at end of file diff --git a/api/AltV.Net/Types/IConnectionInfo.cs b/api/AltV.Net/Types/IConnectionInfo.cs deleted file mode 100644 index 2148cd8f6..000000000 --- a/api/AltV.Net/Types/IConnectionInfo.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace AltV.Net.Types; - -public interface IConnectionInfo : INative -{ - string Name { get; } - ulong SocialClubId { get; } - ulong HardwareIdHash { get; } - ulong HardwareIdExHash { get; } - string AuthToken { get; } - bool IsDebug { get; } - string Branch { get; } - uint Build { get; } - string CdnUrl { get; } - ulong PasswordHash { get; } - string Ip { get; } - long DiscordUserId { get; } - - void Accept(bool sendNames = true); - void Decline(string reason); -} \ No newline at end of file diff --git a/api/AltV.Net/Types/IInternalNative.cs b/api/AltV.Net/Types/IInternalNative.cs deleted file mode 100644 index 4cd72fa94..000000000 --- a/api/AltV.Net/Types/IInternalNative.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace AltV.Net.Types; - -public interface IInternalNative -{ - bool Exists { set; } -} \ No newline at end of file diff --git a/docs/articles/client.md b/docs/articles/client.md index 12d1286f2..2c6091c3e 100644 --- a/docs/articles/client.md +++ b/docs/articles/client.md @@ -1,9 +1,5 @@ # Client-side C# module -> [!WARNING] -> C# client-side module cannot be used in production yet.
-> The module **is still in development**, and can be released regardless of alt:V updates.
- Until the C# client-side module is publicly released in order to use it you need to: * Have debug enabled (`debug: true` in altv.toml) * Have sandboxing disabled (`disableRestrictedSandbox: true` in altv.toml) diff --git a/docs/articles/events/player-events/index.md b/docs/articles/events/player-events/index.md index 907917a13..2808685bb 100644 --- a/docs/articles/events/player-events/index.md +++ b/docs/articles/events/player-events/index.md @@ -11,7 +11,6 @@ This section contains a list of articles about the player events. * [PlayerEnterVehicle](player-enter-vehicle.md) * [PlayerLeaveVehicle](player-leave-vehicle.md) * [PlayerChangeVehicleSeat](player-change-vehicle-seat.md) -* [PlayerBeforeConnect](player-change-vehicle-seat.md) * [NetOwnerChange](netowner-change.md) * [StartProjectile](start-projectile.md) * [Fire](fire.md) diff --git a/docs/articles/events/player-events/player-before-connect.md b/docs/articles/events/player-events/player-before-connect.md deleted file mode 100644 index 933aaf945..000000000 --- a/docs/articles/events/player-events/player-before-connect.md +++ /dev/null @@ -1,41 +0,0 @@ -# PlayerBeforeConnect - -> [!TIP] -> This event is available on **server-side** only
- -This event is called before a player is connected. -You can cancel the connection by returning a string (cancel message), and allow by returning a null; - -| Parameter | Description | -| -------------- | --------------------------------------------------- | -| connectionInfo | The player that connected. | -| reason | The reason the player connected with. | - -## Normal event handler - -```csharp -Alt.OnPlayerBeforeConnect += (player, reason) => { - // ... - // null to allow the connection - return null; -} -``` - -## Attribute event handler - -> [!WARNING] -> Attribute event handlers only work in Scripts, or after executing Alt.RegisterEvents on a class instance.
-> For more info see: [Create script](../../getting-started/create-script.md) - -```csharp -public class MyScript : IScript -{ - [ScriptEvent(ScriptEventType.PlayerBeforeConnect)] - public string OnPlayerBeforeConnect(PlayerConnectionInfo connectionInfo, string reason) - { - // ... - // null to allow the connection - return null; - } -} -``` diff --git a/docs/articles/events/player-events/player-entering-vehicle.md b/docs/articles/events/player-events/player-entering-vehicle.md index 76ba8cf36..e5e168b33 100644 --- a/docs/articles/events/player-events/player-entering-vehicle.md +++ b/docs/articles/events/player-events/player-entering-vehicle.md @@ -28,10 +28,10 @@ Alt.OnPlayerEnteringVehicle += (vehicle, player, seat) => { ```csharp public class MyScript : IScript { - [ScriptEvent(ScriptEventType.PlayerLeaveVehicle)] + [ScriptEvent(ScriptEventType.PlayerEnteringVehicle)] public void OnPlayerEnteringVehicle(IVehicle vehicle, IPlayer player, uint seat) { // ... } } -``` \ No newline at end of file +``` diff --git a/docs/articles/getting-started/async-entity-factories.md b/docs/articles/getting-started/async-entity-factories.md new file mode 100644 index 000000000..2835c7c33 --- /dev/null +++ b/docs/articles/getting-started/async-entity-factories.md @@ -0,0 +1,99 @@ +# Entity factories + +Entity factories allows you to optimize your server performance by defining the data you need to store in a player or vehicle on compile time. This allows much faster data access than via .SetData, ```.GetData```. + +**NOTE: For gamemodes extending ``Resource``, please read [Entity Factories](entity-factories.md).** + +## Step 1, Create the class + +Defining your custom player or vehicle class by extending ```AsyncPlayer``` or ```AsyncVehicle```. +You need to implement the default constructor of ```AsyncPlayer``` or ```AsyncVehicle``` as well. + +```csharp +public class MyAsyncPlayer : AsyncPlayer +{ + public bool LoggedIn { get; set; } + + public MyAsyncPlayer(ICore core, IntPtr nativePointer, ushort id) : base(core, nativePointer, id) + { + LoggedIn = false; + } +} +``` + +You can't create a player via a constructor, because the player class will be created automatically when someone connects. +Thats why you need to create a factory that will create the player for you when its needed. + +## Step 2, Create the factory + +In the factory the defined default constructor of the player or vehicle class will be called. +You only need to override the ```IPlayer Create(IntPtr playerPointer, ushort id)``` method and initialize your own class instead of the default one. + +```csharp +public class MyAsyncPlayerFactory : IEntityFactory +{ + public IPlayer Create(ICore core, IntPtr playerPointer, ushort id) + { + return new MyAsyncPlayer(core, playerPointer, id); + } +} +``` + +## Step 3, Apply the factory + +Now you need to tell the module that it should use your own entity factory for the player. +You simply do this by overriding ```IEntityFactory GetPlayerFactory()``` method in your Resource class. +This will look like the code below. + +```csharp +public class SampleResource : AsyncResource { + public override IEntityFactory GetPlayerFactory() + { + return new MyAsyncPlayerFactory(); + } +} +``` + +## Vehicle class + +It works the same for vehicles, eg: +```csharp +public class MyAsyncVehicle : AsyncVehicle + { + public int MyData { get; set; } + + // This constructor is used for creation via entity factory + public MyAsyncVehicle(ICore core, IntPtr nativePointer, ushort id) : base(core, nativePointer, id) + { + MyData = 6; + } +} +``` + + + +## Use the custom Entity class + +For events inside IScript class you can just use your own class instead of IPlayer/IVehicle ect. + +```csharp +public class SampleScript: IScript { + [ScriptEvent(ScriptEventType.PlayerConnect)] + public void MyPlayerConnect(MyAsyncPlayer player, string reason) + { + //... + } +} +``` + +For events registered via Alt you can just cast the entities to the custom classes. + +```csharp +AltAsync.OnPlayerConnect += OnPlayerConnect; +//... +private async Task OnPlayerConnect(IPlayer player, string reason) +{ + var myPlayer = (MyAsyncPlayer)player; + //... +} +``` diff --git a/docs/articles/getting-started/checkpoints.md b/docs/articles/getting-started/checkpoints.md index e1c68084f..8172da7fc 100644 --- a/docs/articles/getting-started/checkpoints.md +++ b/docs/articles/getting-started/checkpoints.md @@ -40,7 +40,7 @@ public class CheckpointTest Alt.OnCheckpoint += Alt_OnCheckpoint; // create a new checkpoint - _demoCheckpoint = Alt.CreateCheckpoint(CheckpointType.Cyclinder, new Position(), 1.5f, 2f, Color.Yellow); + _demoCheckpoint = Alt.CreateCheckpoint(CheckpointType.Cylinder, new Position(), 1.5f, 2f, Color.Yellow); } private void Alt_OnCheckpoint(ICheckpoint checkpoint, IEntity entity, bool state) diff --git a/docs/articles/getting-started/create-resource.md b/docs/articles/getting-started/create-resource.md index 2c1c3d709..f65eed120 100644 --- a/docs/articles/getting-started/create-resource.md +++ b/docs/articles/getting-started/create-resource.md @@ -3,10 +3,6 @@ > [!TIP] > This article covers both **client-side** and **server-side** resources. -> [!WARNING] -> C# client-side module cannot be used in production yet.
-> The module is still in development, and can be released regardless of alt:V updates.
- ## Create solution In this example we will assume you call both your resource and your solution "ExampleProject". diff --git a/docs/articles/getting-started/entity-factories.md b/docs/articles/getting-started/entity-factories.md index c51d59981..8a6971d16 100644 --- a/docs/articles/getting-started/entity-factories.md +++ b/docs/articles/getting-started/entity-factories.md @@ -2,6 +2,8 @@ Entity factories allows you to optimize your server performance by defining the data you need to store in a player or vehicle on compile time. This allows much faster data access than via .SetData, ```.GetData```. +**NOTE: For gamemodes extending ``AsyncResource``, please read [Async Entity Factories](async-entity-factories.md).** + ## Step 1, Create the class Defining your custom player or vehicle class by extending ```Player``` or ```Vehicle```. @@ -52,25 +54,14 @@ public class SampleResource : Resource { } ``` -This also works when you extend ```AsyncResource``` ect. - ## Vehicle class -It works the same for vehicles, but with a small difference, because you can create vehicles via the constructor by defining the vehicle model, position and rotation. - -Thats why you most likely will add a second constructor to the vehicle that looks like this. - +It works the same for vehicles, eg: ```csharp public class MyVehicle : Vehicle { public int MyData { get; set; } - // This constructor is used for creation via constructor - public MyVehicle(ICore core, uint model, Position position, Rotation rotation) : base(core, model, position, rotation) - { - MyData = 7; - } - // This constructor is used for creation via entity factory public MyVehicle(ICore core, IntPtr nativePointer, ushort id) : base(core, nativePointer, id) { diff --git a/docs/articles/toc.yml b/docs/articles/toc.yml index 3d1f20f0b..03b00a04f 100644 --- a/docs/articles/toc.yml +++ b/docs/articles/toc.yml @@ -15,6 +15,8 @@ href: getting-started/resource-communication.md - name: Entity factories href: getting-started/entity-factories.md + - name: Async Entity factories + href: getting-started/async-entity-factories.md - name: Entity data href: getting-started/entity-data.md - name: Async diff --git a/docs/images/voice_1.png b/docs/images/voice_1.png index 4d622078bc9d16a529bbacf23703e305ddd89482..715e75df2dc1170ed7ba1e5c548db0aa7620f569 100644 GIT binary patch literal 162632 zcmX_nby!Qe3L%_`h|D{xaq0L zBUO*n93U=GY~{4%kdS^RU_V-*BCau=Ro}ZIA>sA@_W}$$m0KYpy_Bda${Bc@9zPw` zn<;(Yi@6%TJUFR1_ ze4?JhBcG*3I~2{|Mb#w+Tw>?5oA6)DeRoFsL##@OS1kHQZ-Li2EGeEjv4?NcY-7}4 zAkY6itL01A`u*zlc&v`Yj_>&}yW0+!`=Y9G&h){{W-M3Ya#Vw#z0NLwYbC9U4kd

w4fN~2M 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%0Ax+i|=cj+w_ebnOCk? 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 a9>`iR1$Ugc&wRcI{HZBxE7dDlMg9+ISbs$T literal 447796 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

$K1au}gj?R_*-}hkhhJ0RP4!unR76 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

&HJi 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 z Date: Sat, 21 Oct 2023 17:51:15 +0200 Subject: [PATCH 06/51] fix objectRequest and ObjectDelete events --- api/AltV.Net.CApi/Native/AltV.Resource.cs | 10 ++++++++++ api/AltV.Net/CSharpResourceImpl.cs | 8 ++++++++ api/AltV.Net/ModuleWrapper.cs | 2 +- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/api/AltV.Net.CApi/Native/AltV.Resource.cs b/api/AltV.Net.CApi/Native/AltV.Resource.cs index 47258bf3b..0726da7a3 100644 --- a/api/AltV.Net.CApi/Native/AltV.Resource.cs +++ b/api/AltV.Net.CApi/Native/AltV.Resource.cs @@ -140,6 +140,8 @@ internal delegate void PedHealDelegate(IntPtr pedPointer, ushort oldHealth, usho internal delegate void ScriptRPCDelegate(IntPtr eventPointer, IntPtr targetPointer, string name, IntPtr args, ulong size, ushort answerId); internal delegate void ScriptRPCAnswerDelegate(IntPtr targetPointer, ushort answerId, IntPtr answer, string answerError); + internal delegate void ClientRequestObjectDelegate(IntPtr eventPointer, IntPtr playerPointer, uint model, Position position); + internal delegate void ClientDeleteObjectDelegate(IntPtr eventPointer, IntPtr playerPointer); [DllImport(DllName, CallingConvention = NativeCallingConvention)] @@ -369,6 +371,14 @@ internal static extern void CSharpResourceImpl_SetScriptRPCDelegate(IntPtr resou [DllImport(DllName, CallingConvention = NativeCallingConvention)] internal static extern void CSharpResourceImpl_SetScriptRPCAnswerDelegate(IntPtr resource, ScriptRPCAnswerDelegate @delegate); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void CSharpResourceImpl_SetClientRequestObjectDelegate(IntPtr resource, + ClientRequestObjectDelegate @delegate); + + [DllImport(DllName, CallingConvention = NativeCallingConvention)] + internal static extern void CSharpResourceImpl_SetClientDeleteObjectDelegate(IntPtr resource, + ClientDeleteObjectDelegate @delegate); } } } \ No newline at end of file diff --git a/api/AltV.Net/CSharpResourceImpl.cs b/api/AltV.Net/CSharpResourceImpl.cs index dffb498c4..b2803c30f 100644 --- a/api/AltV.Net/CSharpResourceImpl.cs +++ b/api/AltV.Net/CSharpResourceImpl.cs @@ -258,6 +258,14 @@ internal void SetDelegates(AltNative.Resource.MainDelegate onStart) handles.AddFirst(GCHandle.Alloc(onScriptRPCAnswer)); AltNative.Resource.CSharpResourceImpl_SetScriptRPCAnswerDelegate(this.NativePointer, onScriptRPCAnswer); + AltNative.Resource.ClientRequestObjectDelegate onClientRequestObject = ModuleWrapper.OnClientRequestObject; + handles.AddFirst(GCHandle.Alloc(onClientRequestObject)); + AltNative.Resource.CSharpResourceImpl_SetClientRequestObjectDelegate(this.NativePointer, onClientRequestObject); + + AltNative.Resource.ClientDeleteObjectDelegate onClientDeleteObject = ModuleWrapper.OnClientDeleteObject; + handles.AddFirst(GCHandle.Alloc(onClientDeleteObject)); + AltNative.Resource.CSharpResourceImpl_SetClientDeleteObjectDelegate(this.NativePointer, onClientDeleteObject); + } public void Dispose() diff --git a/api/AltV.Net/ModuleWrapper.cs b/api/AltV.Net/ModuleWrapper.cs index b40922832..7dd916927 100644 --- a/api/AltV.Net/ModuleWrapper.cs +++ b/api/AltV.Net/ModuleWrapper.cs @@ -483,7 +483,7 @@ public static void OnClientRequestObject(IntPtr eventPointer, IntPtr source, uin _core.OnClientRequestObject(eventPointer, source, model, position); } - public static void OnRequestSyncedScene(IntPtr eventPointer, IntPtr source) + public static void OnClientDeleteObject(IntPtr eventPointer, IntPtr source) { _core.OnClientDeleteObject(eventPointer, source); } From fb3557d78bd793555cc094271c7d6f589c2d98be Mon Sep 17 00:00:00 2001 From: doxoh Date: Sun, 22 Oct 2023 20:21:39 +0200 Subject: [PATCH 07/51] remove duplicate interface methods --- api/AltV.Net.Client/Elements/Interfaces/IBaseObject.cs | 3 --- api/AltV.Net.Shared/Elements/Entities/ISharedBlip.cs | 8 -------- api/AltV.Net/Elements/Entities/IColShape.cs | 8 -------- api/AltV.Net/Elements/Entities/IVehicle.cs | 8 -------- api/AltV.Net/Elements/Entities/IVoiceChannel.cs | 8 -------- 5 files changed, 35 deletions(-) diff --git a/api/AltV.Net.Client/Elements/Interfaces/IBaseObject.cs b/api/AltV.Net.Client/Elements/Interfaces/IBaseObject.cs index c963b2b41..96c715f0f 100644 --- a/api/AltV.Net.Client/Elements/Interfaces/IBaseObject.cs +++ b/api/AltV.Net.Client/Elements/Interfaces/IBaseObject.cs @@ -5,9 +5,6 @@ namespace AltV.Net.Client.Elements.Interfaces public interface IBaseObject : ISharedBaseObject { new ICore Core { get; } - [Obsolete("Use Destroy() instead")] - public void Remove(); - public void Destroy(); uint RemoteId { get; } bool IsRemote { get; } } diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedBlip.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedBlip.cs index 3a2c464d6..01e057796 100644 --- a/api/AltV.Net.Shared/Elements/Entities/ISharedBlip.cs +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedBlip.cs @@ -171,14 +171,6 @@ public interface ISharedBlip : ISharedWorldObject /// Fades the blip ///
void Fade(uint opacity, uint duration); - - [Obsolete("Use Destroy() instead")] - void Remove(); - - /// - /// Destroy the blip. - /// - void Destroy(); bool Visible { get; set; } bool IsHiddenOnLegend { get; set; } diff --git a/api/AltV.Net/Elements/Entities/IColShape.cs b/api/AltV.Net/Elements/Entities/IColShape.cs index 3b809fb37..1173f533f 100644 --- a/api/AltV.Net/Elements/Entities/IColShape.cs +++ b/api/AltV.Net/Elements/Entities/IColShape.cs @@ -16,14 +16,6 @@ public interface IColShape : ISharedColShape, IWorldObject ///
bool IsPlayersOnly { get; set; } - [Obsolete("Use Destroy() instead")] - void Remove(); - - /// - /// Destroy the collision shape - /// - void Destroy(); - bool IsEntityIn(IEntity entity); /// diff --git a/api/AltV.Net/Elements/Entities/IVehicle.cs b/api/AltV.Net/Elements/Entities/IVehicle.cs index a3108436c..b0f721704 100644 --- a/api/AltV.Net/Elements/Entities/IVehicle.cs +++ b/api/AltV.Net/Elements/Entities/IVehicle.cs @@ -562,14 +562,6 @@ public interface IVehicle : ISharedVehicle, IEntity /// string ScriptData { get; set; } - [Obsolete("Use Destroy() instead")] - void Remove(); - - /// - /// Destroy the vehicle entity - /// - void Destroy(); - /// /// Repairs the vehicle /// diff --git a/api/AltV.Net/Elements/Entities/IVoiceChannel.cs b/api/AltV.Net/Elements/Entities/IVoiceChannel.cs index f34532222..be6c449ce 100644 --- a/api/AltV.Net/Elements/Entities/IVoiceChannel.cs +++ b/api/AltV.Net/Elements/Entities/IVoiceChannel.cs @@ -59,14 +59,6 @@ public interface IVoiceChannel : IBaseObject ///
float MaxDistance { get; } - [Obsolete("Use Destroy() instead")] - void Remove(); - - /// - /// Destroy the voice channel - /// - void Destroy(); - uint Filter { get; set; } int Priority { get; set; } From 615444c969c6d68b4997aea57d90f137f6f07cb4 Mon Sep 17 00:00:00 2001 From: doxoh Date: Sun, 22 Oct 2023 21:39:11 +0200 Subject: [PATCH 08/51] fix serverside blips --- api/AltV.Net.Async/Elements/Entities/AsyncBlip.cs | 12 ++++++++---- api/AltV.Net/Elements/Entities/Blip.cs | 11 ++++++++--- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncBlip.cs b/api/AltV.Net.Async/Elements/Entities/AsyncBlip.cs index 5c9af23fb..379e0d174 100644 --- a/api/AltV.Net.Async/Elements/Entities/AsyncBlip.cs +++ b/api/AltV.Net.Async/Elements/Entities/AsyncBlip.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Numerics; @@ -13,7 +13,6 @@ public class AsyncBlip : AsyncWorldObject, IBlip, IAsyncConvertible { protected readonly IBlip Blip; public IntPtr BlipNativePointer => Blip.BlipNativePointer; - bool IBlip.IsGlobal { get; set; } public void AddTargetPlayer(IPlayer player) { lock (Blip) @@ -61,8 +60,6 @@ public bool IsGlobal } } - byte IBlip.BlipType { get; set; } - public bool IsAttached { get @@ -97,6 +94,13 @@ public byte BlipType return Blip.BlipType; } } + set { + lock (Blip) + { + if (!AsyncContext.CheckIfExistsNullable(Blip)) return; + Blip.BlipType = value; + } + } } public uint Sprite diff --git a/api/AltV.Net/Elements/Entities/Blip.cs b/api/AltV.Net/Elements/Entities/Blip.cs index ec49b0399..19245f411 100644 --- a/api/AltV.Net/Elements/Entities/Blip.cs +++ b/api/AltV.Net/Elements/Entities/Blip.cs @@ -12,7 +12,6 @@ namespace AltV.Net.Elements.Entities public class Blip : WorldObject, IBlip { public IntPtr BlipNativePointer { get; } - bool IBlip.IsGlobal { get; set; } public void AddTargetPlayer(IPlayer player) { unsafe @@ -72,10 +71,16 @@ public bool IsGlobal return Core.Library.Shared.Blip_IsGlobal(BlipNativePointer) == 1; } } + set + { + unsafe + { + CheckIfEntityExists(); + Core.Library.Server.Blip_SetGlobal(BlipNativePointer, (value) ? (byte)1 : (byte)0); + } + } } - byte IBlip.BlipType { get; set; } - public bool IsAttached { get From 4c53a51429be50316650f6a1186cefc38adba360 Mon Sep 17 00:00:00 2001 From: doxoh Date: Wed, 25 Oct 2023 13:28:56 +0200 Subject: [PATCH 09/51] fix Audio addOutput --- api/AltV.Net.Client/Elements/Entities/Audio.cs | 4 ++-- api/AltV.Net.Client/Elements/Interfaces/IAudio.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/api/AltV.Net.Client/Elements/Entities/Audio.cs b/api/AltV.Net.Client/Elements/Entities/Audio.cs index 65bca1190..524e0570b 100644 --- a/api/AltV.Net.Client/Elements/Entities/Audio.cs +++ b/api/AltV.Net.Client/Elements/Entities/Audio.cs @@ -138,7 +138,7 @@ public bool IsPlaying } } - public void AddOutput(AudioOutput audioOutput) + public void AddOutput(IAudioOutput audioOutput) { unsafe { @@ -147,7 +147,7 @@ public void AddOutput(AudioOutput audioOutput) } } - public void RemoveOutput(AudioOutput audioOutput) + public void RemoveOutput(IAudioOutput audioOutput) { unsafe { diff --git a/api/AltV.Net.Client/Elements/Interfaces/IAudio.cs b/api/AltV.Net.Client/Elements/Interfaces/IAudio.cs index 426156941..ae11fdacf 100644 --- a/api/AltV.Net.Client/Elements/Interfaces/IAudio.cs +++ b/api/AltV.Net.Client/Elements/Interfaces/IAudio.cs @@ -11,8 +11,8 @@ public interface IAudio : IBaseObject double CurrentTime { get; } double MaxTime { get; } bool IsPlaying { get; } - void AddOutput(AudioOutput audioOutput); - void RemoveOutput(AudioOutput audioOutput); + void AddOutput(IAudioOutput audioOutput); + void RemoveOutput(IAudioOutput audioOutput); AudioEntity[] GetOutputs(); void Pause(); void Play(); From 2882c30b57a61fe79c934e5efdc47ad9b2805b89 Mon Sep 17 00:00:00 2001 From: doxoh Date: Fri, 24 Nov 2023 20:51:06 +0100 Subject: [PATCH 10/51] CI: fix target framework --- .github/workflows/dotnetcore.yml | 4 ++-- .github/workflows/release.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index ab0ee5e28..f47e3091c 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -19,7 +19,7 @@ jobs: dotnet-version: 6.0.x - name: Build with dotnet working-directory: ./api - run: dotnet build --configuration Release + run: dotnet build --configuration Release --framework net6.0 build: runs-on: ubuntu-latest @@ -32,4 +32,4 @@ jobs: dotnet-version: 6.0.x - name: Build with dotnet working-directory: ./api - run: dotnet build --configuration Release + run: dotnet build --configuration Release --framework net6.0 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5d5912ee6..c8cbd648c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -106,9 +106,9 @@ jobs: dotnet publish AltV.Net.Client -c Release -f net6.0 dotnet publish AltV.Net.Client.Async -c Release -f net6.0 dotnet publish AltV.Net.ColShape -c Release -f net6.0 - dotnet publish AltV.Net.Sdk.Server -c Release - dotnet publish AltV.Net.Sdk.Client -c Release - dotnet publish AltV.Net.Sdk.Shared -c Release + dotnet publish AltV.Net.Sdk.Server -c Release -f net6.0 + dotnet publish AltV.Net.Sdk.Client -c Release -f net6.0 + dotnet publish AltV.Net.Sdk.Shared -c Release -f net6.0 - run: | mkdir -p ./modules/linux mkdir -p ./modules/windows From 11d5c0adc6940270272320a4dada7302b2e07ef5 Mon Sep 17 00:00:00 2001 From: doxoh Date: Fri, 24 Nov 2023 20:54:59 +0100 Subject: [PATCH 11/51] CI: try next fix --- .github/workflows/dotnetcore.yml | 40 ++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dotnetcore.yml b/.github/workflows/dotnetcore.yml index f47e3091c..c938296de 100644 --- a/.github/workflows/dotnetcore.yml +++ b/.github/workflows/dotnetcore.yml @@ -19,7 +19,25 @@ jobs: dotnet-version: 6.0.x - name: Build with dotnet working-directory: ./api - run: dotnet build --configuration Release --framework net6.0 + run: | + dotnet build AltV.Net.Host -c Release -f net6.0 + dotnet build AltV.Net.Host -c Release -f net6.0 + dotnet build AltV.Net.Shared -c Release -f net6.0 + dotnet build AltV.Net.CApi -c Release -f net6.0 + dotnet build AltV.Net -c Release -f net6.0 + dotnet build AltV.Net -c Debug -f net6.0 + dotnet build AltV.Net.Async -c Release -f net6.0 + dotnet build AltV.Net.Async -c Debug -f net6.0 + dotnet build AltV.Net.Interactions -c Release -f net6.0 + dotnet build AltV.Net.Async.CodeGen -c Release -f netstandard2.0 + dotnet build AltV.Net.Resources.Chat.Api -c Release -f net6.0 + dotnet build AltV.Net.EntitySync.ServerEvent -c Release -f net6.0 + dotnet build AltV.Net.Client -c Release -f net6.0 + dotnet build AltV.Net.Client.Async -c Release -f net6.0 + dotnet build AltV.Net.ColShape -c Release -f net6.0 + dotnet build AltV.Net.Sdk.Server -c Release -f net6.0 + dotnet build AltV.Net.Sdk.Client -c Release -f net6.0 + dotnet build AltV.Net.Sdk.Shared -c Release -f net6.0 build: runs-on: ubuntu-latest @@ -32,4 +50,22 @@ jobs: dotnet-version: 6.0.x - name: Build with dotnet working-directory: ./api - run: dotnet build --configuration Release --framework net6.0 + run: | + dotnet build AltV.Net.Host -c Release -f net6.0 + dotnet build AltV.Net.Host -c Release -f net6.0 + dotnet build AltV.Net.Shared -c Release -f net6.0 + dotnet build AltV.Net.CApi -c Release -f net6.0 + dotnet build AltV.Net -c Release -f net6.0 + dotnet build AltV.Net -c Debug -f net6.0 + dotnet build AltV.Net.Async -c Release -f net6.0 + dotnet build AltV.Net.Async -c Debug -f net6.0 + dotnet build AltV.Net.Interactions -c Release -f net6.0 + dotnet build AltV.Net.Async.CodeGen -c Release -f netstandard2.0 + dotnet build AltV.Net.Resources.Chat.Api -c Release -f net6.0 + dotnet build AltV.Net.EntitySync.ServerEvent -c Release -f net6.0 + dotnet build AltV.Net.Client -c Release -f net6.0 + dotnet build AltV.Net.Client.Async -c Release -f net6.0 + dotnet build AltV.Net.ColShape -c Release -f net6.0 + dotnet build AltV.Net.Sdk.Server -c Release -f net6.0 + dotnet build AltV.Net.Sdk.Client -c Release -f net6.0 + dotnet build AltV.Net.Sdk.Shared -c Release -f net6.0 From fc3c817c662299e8639ae85202841b04b03ffcf5 Mon Sep 17 00:00:00 2001 From: doxoh Date: Sat, 25 Nov 2023 21:59:00 +0100 Subject: [PATCH 12/51] CI: fix build --- api/AltV.Net.Sdk.Client/AltV.Net.Sdk.Client.csproj | 1 - api/AltV.Net.Sdk.Server/AltV.Net.Sdk.Server.csproj | 1 - api/AltV.Net.Sdk.Shared/AltV.Net.Sdk.Shared.csproj | 1 - api/Directory.Build.props | 5 +++++ 4 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 api/Directory.Build.props diff --git a/api/AltV.Net.Sdk.Client/AltV.Net.Sdk.Client.csproj b/api/AltV.Net.Sdk.Client/AltV.Net.Sdk.Client.csproj index 14baede2f..10ae89626 100644 --- a/api/AltV.Net.Sdk.Client/AltV.Net.Sdk.Client.csproj +++ b/api/AltV.Net.Sdk.Client/AltV.Net.Sdk.Client.csproj @@ -14,7 +14,6 @@ icon.png true snupkg - $(BaseArtifactsPath)$(MSBuildProjectName)\ true MSBuildSdk diff --git a/api/AltV.Net.Sdk.Server/AltV.Net.Sdk.Server.csproj b/api/AltV.Net.Sdk.Server/AltV.Net.Sdk.Server.csproj index 127d72064..14de90e94 100644 --- a/api/AltV.Net.Sdk.Server/AltV.Net.Sdk.Server.csproj +++ b/api/AltV.Net.Sdk.Server/AltV.Net.Sdk.Server.csproj @@ -14,7 +14,6 @@ icon.png true snupkg - $(BaseArtifactsPath)$(MSBuildProjectName)\ true MSBuildSdk diff --git a/api/AltV.Net.Sdk.Shared/AltV.Net.Sdk.Shared.csproj b/api/AltV.Net.Sdk.Shared/AltV.Net.Sdk.Shared.csproj index 13b39e1d8..67fe48ff6 100644 --- a/api/AltV.Net.Sdk.Shared/AltV.Net.Sdk.Shared.csproj +++ b/api/AltV.Net.Sdk.Shared/AltV.Net.Sdk.Shared.csproj @@ -14,7 +14,6 @@ icon.png true snupkg - $(BaseArtifactsPath)$(MSBuildProjectName)\ true MSBuildSdk diff --git a/api/Directory.Build.props b/api/Directory.Build.props new file mode 100644 index 000000000..bc210072a --- /dev/null +++ b/api/Directory.Build.props @@ -0,0 +1,5 @@ + + + $(BaseArtifactsPath)$(MSBuildProjectName)\ + + \ No newline at end of file From 9a586c302a71b6621209db325daa115e138f2589 Mon Sep 17 00:00:00 2001 From: doxoh Date: Sat, 25 Nov 2023 22:17:20 +0100 Subject: [PATCH 13/51] CI: fix build --- api/AltV.Net.Sdk.Generator/Program.cs | 4 ++-- api/Directory.Build.props | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api/AltV.Net.Sdk.Generator/Program.cs b/api/AltV.Net.Sdk.Generator/Program.cs index 32f819c57..84bb663e4 100644 --- a/api/AltV.Net.Sdk.Generator/Program.cs +++ b/api/AltV.Net.Sdk.Generator/Program.cs @@ -10,9 +10,9 @@ foreach (var file in files) { Console.WriteLine("Generating code for " + file); - + var content = File.ReadAllText(file); - + var newContent = generatorRegex.Replace(content, (match) => { var indent = match.Groups["indent"]; diff --git a/api/Directory.Build.props b/api/Directory.Build.props index bc210072a..41af8f3b9 100644 --- a/api/Directory.Build.props +++ b/api/Directory.Build.props @@ -1,5 +1,5 @@ - $(BaseArtifactsPath)$(MSBuildProjectName)\ + $(BaseArtifactsPath) \ No newline at end of file From 03458b6be0f7b70310c0b08e6b1794fe1e9b90c9 Mon Sep 17 00:00:00 2001 From: Fabian Terhorst Date: Fri, 17 Nov 2023 20:47:49 +0100 Subject: [PATCH 14/51] Merge pull request #826 from duydang2311/fix/incorrect-emit-rpc-answer-id Fix `AsyncPlayer.EmitRPC` always returns 0 --- api/AltV.Net.Async/Elements/Entities/AsyncPlayer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncPlayer.cs b/api/AltV.Net.Async/Elements/Entities/AsyncPlayer.cs index d338a44de..9d4a68d75 100644 --- a/api/AltV.Net.Async/Elements/Entities/AsyncPlayer.cs +++ b/api/AltV.Net.Async/Elements/Entities/AsyncPlayer.cs @@ -693,7 +693,7 @@ public ushort EmitRPC(string name, params object[] args) { if (Player.Exists) { - Alt.Core.TriggerClientRPC(Player, eventNamePtr, mValues); + result = Alt.Core.TriggerClientRPC(Player, eventNamePtr, mValues); } } From bcb518404a296bb078f52da6153f484a7a9fc7db Mon Sep 17 00:00:00 2001 From: Fabian Terhorst Date: Fri, 17 Nov 2023 20:48:43 +0100 Subject: [PATCH 15/51] Merge pull request #827 from BluePeer/patch-3 Update netowner-change.md --- docs/articles/events/player-events/netowner-change.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/articles/events/player-events/netowner-change.md b/docs/articles/events/player-events/netowner-change.md index 69a5d4037..dba4732de 100644 --- a/docs/articles/events/player-events/netowner-change.md +++ b/docs/articles/events/player-events/netowner-change.md @@ -27,7 +27,7 @@ Alt.OnNetOwnerChange += (entity, oldNetOwner, newNetOwner) => { ```csharp public class MyScript : IScript { - [ScriptEvent(ScriptEventType.StartProjectile)] + [ScriptEvent(ScriptEventType.NetOwnerChange)] public void OnNetOwnerChange(IEntity entity, IPlayer oldNetOwner, IPlayer newNetOwner) { // ... From 45dda2efbb3dcc6e0d69519827043763b01d4c4b Mon Sep 17 00:00:00 2001 From: Fabian Terhorst Date: Fri, 17 Nov 2023 20:49:14 +0100 Subject: [PATCH 16/51] Merge pull request #822 from Kaiwoknats/patch-1 Update async-entity-factories.md --- docs/articles/getting-started/async-entity-factories.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/articles/getting-started/async-entity-factories.md b/docs/articles/getting-started/async-entity-factories.md index 2835c7c33..4a954a756 100644 --- a/docs/articles/getting-started/async-entity-factories.md +++ b/docs/articles/getting-started/async-entity-factories.md @@ -14,7 +14,7 @@ public class MyAsyncPlayer : AsyncPlayer { public bool LoggedIn { get; set; } - public MyAsyncPlayer(ICore core, IntPtr nativePointer, ushort id) : base(core, nativePointer, id) + public MyAsyncPlayer(ICore core, IntPtr nativePointer, uint id) : base(core, nativePointer, id) { LoggedIn = false; } @@ -27,12 +27,12 @@ Thats why you need to create a factory that will create the player for you when ## Step 2, Create the factory In the factory the defined default constructor of the player or vehicle class will be called. -You only need to override the ```IPlayer Create(IntPtr playerPointer, ushort id)``` method and initialize your own class instead of the default one. +You only need to override the ```IPlayer Create(IntPtr playerPointer, uint id)``` method and initialize your own class instead of the default one. ```csharp public class MyAsyncPlayerFactory : IEntityFactory { - public IPlayer Create(ICore core, IntPtr playerPointer, ushort id) + public IPlayer Create(ICore core, IntPtr playerPointer, uint id) { return new MyAsyncPlayer(core, playerPointer, id); } @@ -63,7 +63,7 @@ public class MyAsyncVehicle : AsyncVehicle public int MyData { get; set; } // This constructor is used for creation via entity factory - public MyAsyncVehicle(ICore core, IntPtr nativePointer, ushort id) : base(core, nativePointer, id) + public MyAsyncVehicle(ICore core, IntPtr nativePointer, uint id) : base(core, nativePointer, id) { MyData = 6; } From 0203b034bd27b672d3f7036b8123fdc1e2a84d60 Mon Sep 17 00:00:00 2001 From: Fabian Terhorst Date: Fri, 17 Nov 2023 20:49:23 +0100 Subject: [PATCH 17/51] Merge pull request #828 from BluePeer/patch-1 Update toc.yml --- docs/articles/toc.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/articles/toc.yml b/docs/articles/toc.yml index 03b00a04f..cfbe825c5 100644 --- a/docs/articles/toc.yml +++ b/docs/articles/toc.yml @@ -83,8 +83,6 @@ href: events/player-events/player-change-vehicle-seat.md - name: PlayerDamage event href: events/player-events/player-damage.md - - name: PlayerBeforeConnect event - href: events/player-events/player-before-connect.md - name: NetOwnerChange event href: events/player-events/netowner-change.md - name: Fire event From 64f17312ab22a3c8ba95005927c59a7aea4c8e5b Mon Sep 17 00:00:00 2001 From: Fabian Terhorst Date: Thu, 14 Dec 2023 08:26:39 +0100 Subject: [PATCH 18/51] Merge pull request #830 from DurtyFree/patch-1 Add mp2023_02 / The Chop Shop content --- api/AltV.Net.Shared/Enums/PedModel.cs | 24 +++++++++++++++- api/AltV.Net.Shared/Enums/VehicleModel.cs | 35 ++++++++++++++++++++++- api/AltV.Net.Shared/Enums/WeaponModel.cs | 5 +++- 3 files changed, 61 insertions(+), 3 deletions(-) diff --git a/api/AltV.Net.Shared/Enums/PedModel.cs b/api/AltV.Net.Shared/Enums/PedModel.cs index 12596dbc2..be70d1bd1 100644 --- a/api/AltV.Net.Shared/Enums/PedModel.cs +++ b/api/AltV.Net.Shared/Enums/PedModel.cs @@ -880,6 +880,28 @@ public enum PedModel : uint PernellMossIG = 2239793254, // 0x85808866 RoosterMcCrawIG = 2086307585, // 0x7C5A8701 CCrew02SMM = 3080868068, // 0xB7A250E4 - Juggernaut03UMM = 2680892058 // 0x9FCB2A9A + Juggernaut03UMM = 2680892058, // 0x9FCB2A9A + Mechanic01IG = 482489509, // 0x1CC234A5 + CallGirl02CSB = 779177722, // 0x2E714EFA + MaraGrande01GMM = 2487843240, // 0x944979A8 + CallGirl01CSB = 1613083234, // 0x6025B262 + Vincent4CSB = 2149958315, // 0x8025C2AB + Cop01SMM = 1762753038, // 0x69117A0E + CallGirl02IG = 2450524033, // 0x92100781 + CartelGoons01GMM = 2572894111, // 0x995B3F9F + CCrew03SMM = 3867258530, // 0xE681AEA2 + Vincent4IG = 1764259993, // 0x69287899 + CallGirl01IG = 2872523215, // 0xAB3739CF + Pilot02IG = 183230355, // 0xAEBDF93 + Mechanic02IG = 1590147279, // 0x5EC7B8CF + JamalAmirCSB = 3014899707, // 0xB3B3B7FB + JamalAmirIG = 1011548258, // 0x3C4B0062 + YetiUMM = 2363925622, // 0x8CE6A476 + YusufAmirCSB = 2709440876, // 0xA17EC96C + SubCrew01SMM = 3738560875, // 0xDED5E96B + SubCrewHeadIG = 3801918077, // 0xE29CAA7D + AhronWardIG = 927014855, // 0x37411FC7 + YusufAmirIG = 1608114028, // 0x5FD9DF6C + JaywalkerIG = 1283622549 // 0x4C828695 } } diff --git a/api/AltV.Net.Shared/Enums/VehicleModel.cs b/api/AltV.Net.Shared/Enums/VehicleModel.cs index fbf0cb7bc..c4c7a9e31 100644 --- a/api/AltV.Net.Shared/Enums/VehicleModel.cs +++ b/api/AltV.Net.Shared/Enums/VehicleModel.cs @@ -809,6 +809,39 @@ public enum VehicleModel : uint Conada2 = 2635962482, // [0x9D1D9872] Weaponized Conada (HELI) l35 = 2531292011, // [0x96E0736B] Walton L35 (CAR) Speedo5 = 4250167832, // [0xFD546A18] Speedo Custom (CAR) - Buffalo5 = 165968051 // [0x9E478B3] Buffalo EVX (CAR) + Buffalo5 = 165968051, // [0x9E478B3] Buffalo EVX (CAR) + trailers5 = 2960513480, // [0xB075D9C8] Trailer (TRAILER) + aleutian = 4256087847, // [0xFDAEBF27] Aleutian (CAR) + freight2 = 3852738056, // [0xE5A41E08] Freight Train (TRAIN) + tvtrailer2 = 471034616, // [0x1C136AF8] Trailer (TRAILER) + vivanite = 2922168362, // [0xAE2CC02A] Vivanite (CAR) + baller8 = 3431608412, // [0xCC8A305C] Baller ST-D (CAR) + benson2 = 728350375, // [0x2B69BEA7] Benson (Cluckin' Bell) (CAR) + towtruck4 = 3392937977, // [0xCA3C1FF9] Tow Truck (CAR) + driftremus = 2670883828, // [0x9F3273F4] Remus (CAR) + cavalcade3 = 3265236814, // [0xC29F8F4E] Cavalcade XL (CAR) + boattrailer3 = 1539159908, // [0x5BBDB764] Boat Trailer (TRAILER) + driftfr36 = 2815031719, // [0xA7C9F9A7] FR36 (CAR) + drifteuros = 821121576, // [0x30F15228] Euros (CAR) + dorado = 3526923154, // [0xD2389392] Dorado (CAR) + towtruck3 = 3623402354, // [0xD7F8BB72] Tow Truck (CAR) + terminus = 167522317, // [0x9FC300D] Terminus (CAR) + boattrailer2 = 1835260592, // [0x6D63DAB0] Boat Trailer (TRAILER) + driftyosemite = 2613313775, // [0x9BC400EF] Drift Yosemite (CAR) + police5 = 2620582743, // [0x9C32EB57] Stanier LE Cruiser (CAR) + turismo3 = 4171974011, // [0xF8AB457B] Turismo Omaggio (CAR) + dominator9 = 3853757601, // [0xE5B3ACA1] Dominator GT (CAR) + fr36 = 3829141989, // [0xE43C11E5] FR36 (CAR) + driftjester = 2531693357, // [0x96E6932D] Jester RR (CAR) + impaler6 = 4116524922, // [0xF55D2F7A] Impaler LX (CAR) + impaler5 = 3816328113, // [0xE3788BB1] Impaler SZ (CAR) + polgauntlet = 3061199846, // [0xB67633E6] Gauntlet Interceptor (CAR) + boxville6 = 3452201761, // [0xCDC46B21] Boxville (LSDS) (CAR) + Phantom4 = 4165683409, // [0xF84B48D1] Phantom (CAR) + vigero3 = 372621319, // [0x1635C007] Vigero ZX Convertible (CAR) + driftfuto = 4113404654, // [0xF52D92EE] Futo GTX (CAR) + driftzr350 = 1923534526, // [0x72A6CEBE] ZR350 (CAR) + asterope2 = 3553846961, // [0xD3D366B1] Asterope GZ (CAR) + drifttampa = 2598648200 // [0x9AE43988] Drift Tampa (CAR) } } diff --git a/api/AltV.Net.Shared/Enums/WeaponModel.cs b/api/AltV.Net.Shared/Enums/WeaponModel.cs index 15efa58a2..b6c700d6f 100644 --- a/api/AltV.Net.Shared/Enums/WeaponModel.cs +++ b/api/AltV.Net.Shared/Enums/WeaponModel.cs @@ -110,6 +110,9 @@ public enum WeaponModel : uint AcidPackage = 4159824478, Wm29Pistol = 465894841, RailgunXm3 = 4272043364, - TecPistol = 350597077 // Tactical SMG + TecPistol = 350597077, // Tactical SMG + BattleRifle = 1924557585, // [0x72B66B11] Battle Rifle + SnowLauncher = 62870901, // [0x3BF5575] Snowball Launcher + HackingDevice = 485882440 // [0x1CF5FA48] Hacking Device } } From c83882c5c362a35058ea2c45923ab0adef3b5ba7 Mon Sep 17 00:00:00 2001 From: doxoh Date: Thu, 14 Dec 2023 09:10:19 +0100 Subject: [PATCH 19/51] fix(server): IPlayer.EntityAimingAt --- api/AltV.Net/Elements/Entities/Player.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/api/AltV.Net/Elements/Entities/Player.cs b/api/AltV.Net/Elements/Entities/Player.cs index f3deec321..ce450d783 100644 --- a/api/AltV.Net/Elements/Entities/Player.cs +++ b/api/AltV.Net/Elements/Entities/Player.cs @@ -858,7 +858,9 @@ public IEntity EntityAimingAt var type = BaseObjectType.Undefined; var entityPointer = Core.Library.Shared.Player_GetEntityAimingAt(PlayerNativePointer, &type); if (entityPointer == IntPtr.Zero) return null; - return Alt.Core.PoolManager.Vehicle.Get(entityPointer); + + var entity = (IEntity)Core.PoolManager.Get(entityPointer, type); + return entity; } } } From 10b020823f54fe2ab4854328310fa99df70ef47c Mon Sep 17 00:00:00 2001 From: doxoh Date: Fri, 22 Dec 2023 18:20:27 +0100 Subject: [PATCH 20/51] fix(server): fix call AsyncEntity.SetStreamSyncedMetaData --- api/AltV.Net.Async/Elements/Entities/AsyncEntity.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncEntity.cs b/api/AltV.Net.Async/Elements/Entities/AsyncEntity.cs index 0bfd3b9af..fce91cc7b 100644 --- a/api/AltV.Net.Async/Elements/Entities/AsyncEntity.cs +++ b/api/AltV.Net.Async/Elements/Entities/AsyncEntity.cs @@ -163,7 +163,7 @@ public void SetStreamSyncedMetaData(string key, in MValueConst value) lock (Entity) { if (!AsyncContext.CheckIfExistsNullable(Entity)) return; - Entity.SetSyncedMetaData(key, in value); + Entity.SetStreamSyncedMetaData(key, in value); } } From c6b1ca3882f667a9b899100c6b9a4ca791fe7f75 Mon Sep 17 00:00:00 2001 From: doxoh Date: Mon, 25 Dec 2023 10:31:24 +0100 Subject: [PATCH 21/51] fix(shared): make BaseObject Id gettable --- .../Elements/Entities/AsyncBaseObject.cs | 10 ++++++++++ api/AltV.Net.Client/Elements/Entities/BaseObject.cs | 2 +- .../Elements/Entities/ISharedBaseObject.cs | 1 + .../Elements/Entities/SharedBaseObject.cs | 1 + api/AltV.Net/Elements/Entities/BaseObject.cs | 2 +- 5 files changed, 14 insertions(+), 2 deletions(-) diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncBaseObject.cs b/api/AltV.Net.Async/Elements/Entities/AsyncBaseObject.cs index ae74f8093..2f86645b6 100644 --- a/api/AltV.Net.Async/Elements/Entities/AsyncBaseObject.cs +++ b/api/AltV.Net.Async/Elements/Entities/AsyncBaseObject.cs @@ -16,6 +16,16 @@ public class AsyncBaseObject : IBaseObject, IInternalBaseObject public IntPtr NativePointer => BaseObject.NativePointer; public IntPtr BaseObjectNativePointer => BaseObject.BaseObjectNativePointer; + public uint Id + { + get + { + lock (BaseObject) + { + return BaseObject.Id; + } + } + } public ICore Core => BaseObject.Core; public bool Cached => BaseObject.Cached; ISharedCore ISharedBaseObject.Core => BaseObject.Core; diff --git a/api/AltV.Net.Client/Elements/Entities/BaseObject.cs b/api/AltV.Net.Client/Elements/Entities/BaseObject.cs index 3862b4c57..459d61123 100644 --- a/api/AltV.Net.Client/Elements/Entities/BaseObject.cs +++ b/api/AltV.Net.Client/Elements/Entities/BaseObject.cs @@ -13,7 +13,7 @@ public class BaseObject : SharedBaseObject, IBaseObject public override IntPtr NativePointer => BaseObjectNativePointer; public override ICore Core { get; } public override BaseObjectType Type { get; } - public uint Id { get; } + public override uint Id { get; } public BaseObject(ICore core, IntPtr baseObjectPointer, BaseObjectType type, uint id) { diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedBaseObject.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedBaseObject.cs index bb826fbe0..53e1e65ad 100644 --- a/api/AltV.Net.Shared/Elements/Entities/ISharedBaseObject.cs +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedBaseObject.cs @@ -9,6 +9,7 @@ public interface ISharedBaseObject : INative { IntPtr BaseObjectNativePointer { get; } BaseObjectType Type { get; } + uint Id { get; } ISharedCore Core { get; } bool Cached { get; } diff --git a/api/AltV.Net.Shared/Elements/Entities/SharedBaseObject.cs b/api/AltV.Net.Shared/Elements/Entities/SharedBaseObject.cs index 33de12b95..b88fe3b71 100644 --- a/api/AltV.Net.Shared/Elements/Entities/SharedBaseObject.cs +++ b/api/AltV.Net.Shared/Elements/Entities/SharedBaseObject.cs @@ -12,6 +12,7 @@ namespace AltV.Net.Shared.Elements.Entities public abstract class SharedBaseObject : ISharedBaseObject, IInternalBaseObject { public abstract IntPtr BaseObjectNativePointer { get; protected set; } + public abstract uint Id { get; } public abstract ISharedCore Core { get; } public virtual IntPtr NativePointer => BaseObjectNativePointer; diff --git a/api/AltV.Net/Elements/Entities/BaseObject.cs b/api/AltV.Net/Elements/Entities/BaseObject.cs index c67eb9ac5..515723bb1 100644 --- a/api/AltV.Net/Elements/Entities/BaseObject.cs +++ b/api/AltV.Net/Elements/Entities/BaseObject.cs @@ -21,7 +21,7 @@ public abstract class BaseObject : SharedBaseObject, IBaseObject, IInternalBaseO public override ICore Core { get; } - public uint Id { get; } + public override uint Id { get; } public override BaseObjectType Type { get; } From 877b3760c03351ef614ffde953b44a239127ff38 Mon Sep 17 00:00:00 2001 From: doxoh Date: Mon, 25 Dec 2023 11:17:58 +0100 Subject: [PATCH 22/51] fix(shared): remove obsolete Id properties --- api/AltV.Net.Async/Elements/Entities/AsyncEntity.cs | 2 -- api/AltV.Net.Client/Elements/Interfaces/ITextLabel.cs | 1 - api/AltV.Net.Shared/Elements/Entities/ISharedEntity.cs | 6 ------ api/AltV.Net.Shared/Elements/Entities/ISharedMarker.cs | 1 - .../Elements/Entities/ISharedVirtualEntity.cs | 1 - .../Elements/Entities/ISharedVirtualEntityGroup.cs | 2 -- 6 files changed, 13 deletions(-) diff --git a/api/AltV.Net.Async/Elements/Entities/AsyncEntity.cs b/api/AltV.Net.Async/Elements/Entities/AsyncEntity.cs index fce91cc7b..f18ee2e58 100644 --- a/api/AltV.Net.Async/Elements/Entities/AsyncEntity.cs +++ b/api/AltV.Net.Async/Elements/Entities/AsyncEntity.cs @@ -15,8 +15,6 @@ public class AsyncEntity : AsyncWorldObject, IEntity protected readonly IEntity Entity; public IntPtr EntityNativePointer => Entity.EntityNativePointer; - public uint Id => Entity.Id; - public IPlayer NetworkOwner { get diff --git a/api/AltV.Net.Client/Elements/Interfaces/ITextLabel.cs b/api/AltV.Net.Client/Elements/Interfaces/ITextLabel.cs index 57c3d3982..fb7499809 100644 --- a/api/AltV.Net.Client/Elements/Interfaces/ITextLabel.cs +++ b/api/AltV.Net.Client/Elements/Interfaces/ITextLabel.cs @@ -6,7 +6,6 @@ public interface ITextLabel : IWorldObject { IntPtr TextLabelNativePointer { get; } - uint Id { get; } bool IsGlobal { get; } IPlayer? Target { get; } Rgba Color { get; set; } diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedEntity.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedEntity.cs index 0d949b023..1ce5aa718 100644 --- a/api/AltV.Net.Shared/Elements/Entities/ISharedEntity.cs +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedEntity.cs @@ -10,12 +10,6 @@ public interface ISharedEntity : ISharedWorldObject { IntPtr EntityNativePointer { get; } - /// - /// Get the entity id. - /// - /// This entity was removed - uint Id { get; } - bool Exists { get; } /// diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedMarker.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedMarker.cs index d7ad4e202..75760416b 100644 --- a/api/AltV.Net.Shared/Elements/Entities/ISharedMarker.cs +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedMarker.cs @@ -6,7 +6,6 @@ namespace AltV.Net.Shared.Elements.Entities; public interface ISharedMarker : ISharedWorldObject { IntPtr MarkerNativePointer { get; } - uint Id { get; } bool IsGlobal { get; } ISharedPlayer Target { get; } Rgba Color { get; set; } diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedVirtualEntity.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedVirtualEntity.cs index a810f3533..91b7a0a49 100644 --- a/api/AltV.Net.Shared/Elements/Entities/ISharedVirtualEntity.cs +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedVirtualEntity.cs @@ -8,7 +8,6 @@ namespace AltV.Net.Shared.Elements.Entities public interface ISharedVirtualEntity : ISharedWorldObject { IntPtr VirtualEntityNativePointer { get; } - uint Id { get; } ISharedVirtualEntityGroup Group { get; } diff --git a/api/AltV.Net.Shared/Elements/Entities/ISharedVirtualEntityGroup.cs b/api/AltV.Net.Shared/Elements/Entities/ISharedVirtualEntityGroup.cs index cd9bb414a..cfee797d2 100644 --- a/api/AltV.Net.Shared/Elements/Entities/ISharedVirtualEntityGroup.cs +++ b/api/AltV.Net.Shared/Elements/Entities/ISharedVirtualEntityGroup.cs @@ -7,8 +7,6 @@ public interface ISharedVirtualEntityGroup : ISharedBaseObject { IntPtr VirtualEntityGroupNativePointer { get; } - uint Id { get; } - uint MaxEntitiesInStream { get; } } } \ No newline at end of file From 6b81c14cb5c3c887aaf7f55aed3f5719be2d8323 Mon Sep 17 00:00:00 2001 From: doxoh Date: Wed, 7 Feb 2024 15:08:50 +0100 Subject: [PATCH 23/51] fix(client): add bigobj to build pipeline --- runtime | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime b/runtime index ef5cd0244..4fedeabe4 160000 --- a/runtime +++ b/runtime @@ -1 +1 @@ -Subproject commit ef5cd024485b74a2aa035d1b831db8cbb5a3129b +Subproject commit 4fedeabe49637a2e1efa731282f0d00eea998a91 From 8500450294d810f42947e3f422051e9366ab191d Mon Sep 17 00:00:00 2001 From: Fabian Terhorst Date: Wed, 14 Feb 2024 19:23:25 +0100 Subject: [PATCH 24/51] chore: update runtime --- runtime | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime b/runtime index 4fedeabe4..e4812d330 160000 --- a/runtime +++ b/runtime @@ -1 +1 @@ -Subproject commit 4fedeabe49637a2e1efa731282f0d00eea998a91 +Subproject commit e4812d330849313e682d7738e7ec5ca5119bb921 From 5744452f7be17080929d27edf582bf5ffc0c9a0e Mon Sep 17 00:00:00 2001 From: doxoh Date: Sat, 17 Feb 2024 11:14:52 +0100 Subject: [PATCH 25/51] fix(server): rpc string as argument --- api/AltV.Net.Async/AsyncCore.cs | 8 ++++---- api/AltV.Net/Core.Events.cs | 26 ++++++++++++++++++-------- api/AltV.Net/ModuleWrapper.cs | 9 +++++++-- runtime | 2 +- 4 files changed, 30 insertions(+), 15 deletions(-) diff --git a/api/AltV.Net.Async/AsyncCore.cs b/api/AltV.Net.Async/AsyncCore.cs index 84305b97c..c064501cd 100644 --- a/api/AltV.Net.Async/AsyncCore.cs +++ b/api/AltV.Net.Async/AsyncCore.cs @@ -968,13 +968,13 @@ public override void OnPlayerStopTalkingEvent(IPlayer player) }); } - public override void OnScriptRPCEvent(IntPtr eventpointer, IPlayer target, string name, IntPtr[] args, ushort answerId, bool async) + public override void OnScriptRPCEvent(IntPtr eventpointer, IPlayer target, string name, object[] objects, ushort answerId, bool async) { if (!UnansweredServerRpcRequest.Contains(answerId)) { UnansweredServerRpcRequest.Add(answerId); } - base.OnScriptRPCEvent(eventpointer, target, name, args, answerId, true); + base.OnScriptRPCEvent(eventpointer, target, name, objects, answerId, true); if (UnansweredServerRpcRequest.Contains(answerId)) { @@ -985,11 +985,11 @@ public override void OnScriptRPCEvent(IntPtr eventpointer, IPlayer target, strin } if (!ScriptRpcAsyncEventHandler.HasEvents()) return; + Task.Run(async () => { - var mValues = MValueConst.CreateFrom(this, args); var clientScriptRPCEvent = new AsyncScriptRpcEvent(target, answerId); - await ScriptRpcAsyncEventHandler.CallAsync(@delegate => @delegate(clientScriptRPCEvent, target, name, mValues.Select(x => x.ToObject()).ToArray(), answerId)); + await ScriptRpcAsyncEventHandler.CallAsync(@delegate => @delegate(clientScriptRPCEvent, target, name, objects, answerId)); }); if (UnansweredServerRpcRequest.Contains(answerId)) diff --git a/api/AltV.Net/Core.Events.cs b/api/AltV.Net/Core.Events.cs index b55ce03b6..2c8d7651f 100644 --- a/api/AltV.Net/Core.Events.cs +++ b/api/AltV.Net/Core.Events.cs @@ -2633,7 +2633,7 @@ public virtual void OnPlayerStopTalkingEvent(IPlayer player) } } - public void OnScriptRPC(IntPtr eventpointer, IntPtr targetpointer, string name, IntPtr pointer, ulong size, ushort answerId) + public void OnScriptRPC(IntPtr eventpointer, IntPtr targetpointer, string name, IntPtr[] args, ushort answerId) { var target = PoolManager.Player.Get(targetpointer); if (target == null) @@ -2642,28 +2642,38 @@ public void OnScriptRPC(IntPtr eventpointer, IntPtr targetpointer, string name, return; } - var args = new IntPtr[size]; - if (pointer != IntPtr.Zero) + var length = args.Length; + var mValues = new MValueConst[length]; + for (var i = 0; i < length; i++) { - Marshal.Copy(pointer, args, 0, (int) size); + mValues[i] = new MValueConst(this, args[i]); } - OnScriptRPCEvent(eventpointer, target, name, args, answerId, false); + var objects = new object[length]; + for (var i = 0; i < length; i++) + { + objects[i] = mValues[i].ToObject(); + } + + OnScriptRPCEvent(eventpointer, target, name, objects, answerId, false); } - public virtual void OnScriptRPCEvent(IntPtr eventpointer, IPlayer target, string name, IntPtr[] args, ushort answerId, bool async) + public virtual void OnScriptRPCEvent(IntPtr eventpointer, IPlayer target, string name, object[] objects, ushort answerId, bool async) { if (!UnansweredServerRpcRequest.Contains(answerId)) { UnansweredServerRpcRequest.Add(answerId); } - var mValues = MValueConst.CreateFrom(this, args); + + if (!ScriptRpcHandler.HasEvents()) return; + var clientScriptRPCEvent = new ScriptRpcEvent(this, eventpointer, answerId, false); + foreach (var @delegate in ScriptRpcHandler.GetEvents()) { try { - @delegate(clientScriptRPCEvent, target, name, mValues.Select(x => x.ToObject()).ToArray(), answerId); + @delegate(clientScriptRPCEvent, target, name, objects, answerId); } catch (TargetInvocationException exception) { diff --git a/api/AltV.Net/ModuleWrapper.cs b/api/AltV.Net/ModuleWrapper.cs index 014d9db00..e3599c85a 100644 --- a/api/AltV.Net/ModuleWrapper.cs +++ b/api/AltV.Net/ModuleWrapper.cs @@ -518,9 +518,14 @@ public static void OnPlayerStopTalking(IntPtr playerpointer) _core.OnPlayerStopTalking(playerpointer); } - public static void OnScriptRPC(IntPtr eventpointer, IntPtr targetpointer, string name, IntPtr args, ulong size, ushort answerId) + public static void OnScriptRPC(IntPtr eventpointer, IntPtr targetpointer, string name, IntPtr pointer, ulong size, ushort answerId) { - _core.OnScriptRPC(eventpointer, targetpointer, name, args, size, answerId); + var args = new IntPtr[size]; + if (pointer != IntPtr.Zero) + { + Marshal.Copy(pointer, args, 0, (int) size); + } + _core.OnScriptRPC(eventpointer, targetpointer, name, args, answerId); } public static void OnScriptRPCAnswer(IntPtr targetpointer, ushort answerid, IntPtr answer, string answererror) diff --git a/runtime b/runtime index e4812d330..133161b34 160000 --- a/runtime +++ b/runtime @@ -1 +1 @@ -Subproject commit e4812d330849313e682d7738e7ec5ca5119bb921 +Subproject commit 133161b34d0a1891b9c4c204fba0f523fe5b57fe From 08f8bd4aa1f8f8c35f682700944b25f98e3d09a7 Mon Sep 17 00:00:00 2001 From: doxoh Date: Sat, 17 Feb 2024 12:29:46 +0100 Subject: [PATCH 26/51] fix(server): clear data only if its not cached --- api/AltV.Net/Elements/Pools/BaseObjectPool.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/api/AltV.Net/Elements/Pools/BaseObjectPool.cs b/api/AltV.Net/Elements/Pools/BaseObjectPool.cs index 90b86cfe5..787488c69 100644 --- a/api/AltV.Net/Elements/Pools/BaseObjectPool.cs +++ b/api/AltV.Net/Elements/Pools/BaseObjectPool.cs @@ -12,7 +12,10 @@ public static void SetEntityNoLongerExists(TBaseObject entity) { if (entity is not IInternalBaseObject internalEntity) return; internalEntity.Exists = false; - internalEntity.ClearData(); + if (!entity.Cached) + { + internalEntity.ClearData(); + } } private readonly Dictionary entities = new (); From d95755178e8c1fba7fea90f9e79a9d790df24806 Mon Sep 17 00:00:00 2001 From: doxoh Date: Sat, 17 Feb 2024 12:40:37 +0100 Subject: [PATCH 27/51] feat(server): add new metric methods --- api/AltV.Net.CApi/Libraries/ClientLibrary.cs | 4 ++-- api/AltV.Net.CApi/Libraries/ServerLibrary.cs | 19 +++++++++++++-- api/AltV.Net.CApi/Libraries/SharedLibrary.cs | 4 ++-- api/AltV.Net/Data/Metric.cs | 25 ++++++++++++++++++++ api/AltV.Net/Elements/Entities/IMetric.cs | 4 ++++ runtime | 2 +- 6 files changed, 51 insertions(+), 7 deletions(-) diff --git a/api/AltV.Net.CApi/Libraries/ClientLibrary.cs b/api/AltV.Net.CApi/Libraries/ClientLibrary.cs index 87282b950..9a00ddeda 100644 --- a/api/AltV.Net.CApi/Libraries/ClientLibrary.cs +++ b/api/AltV.Net.CApi/Libraries/ClientLibrary.cs @@ -902,7 +902,7 @@ public unsafe interface IClientLibrary public unsafe class ClientLibrary : IClientLibrary { - public readonly uint Methods = 1770; + public readonly uint Methods = 1773; public delegate* unmanaged[Cdecl] Audio_AddOutput { get; } public delegate* unmanaged[Cdecl] Audio_GetBaseObject { get; } public delegate* unmanaged[Cdecl] Audio_GetCurrentTime { get; } @@ -3573,7 +3573,7 @@ private IntPtr GetUnmanagedPtr(IDictionary funcTable, ulong ha public ClientLibrary(Dictionary funcTable) { if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true; - else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 18234026019486245283UL) Outdated = true; + else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 78812385462098472UL) Outdated = true; Audio_AddOutput = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9914412815391408844UL, Audio_AddOutputFallback); Audio_GetBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6330360502401226894UL, Audio_GetBaseObjectFallback); Audio_GetCurrentTime = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2944324482134975819UL, Audio_GetCurrentTimeFallback); diff --git a/api/AltV.Net.CApi/Libraries/ServerLibrary.cs b/api/AltV.Net.CApi/Libraries/ServerLibrary.cs index 40111dcaa..80b124f92 100644 --- a/api/AltV.Net.CApi/Libraries/ServerLibrary.cs +++ b/api/AltV.Net.CApi/Libraries/ServerLibrary.cs @@ -143,10 +143,13 @@ public unsafe interface IServerLibrary public delegate* unmanaged[Cdecl] Entity_SetStreamSyncedMetaData { get; } public delegate* unmanaged[Cdecl] Entity_SetVisible { get; } public delegate* unmanaged[Cdecl] Event_WeaponDamageEvent_SetDamageValue { get; } + public delegate* unmanaged[Cdecl] Metric_Add { get; } public delegate* unmanaged[Cdecl] Metric_Begin { get; } public delegate* unmanaged[Cdecl] Metric_End { get; } + public delegate* unmanaged[Cdecl] Metric_End2 { get; } public delegate* unmanaged[Cdecl] Metric_GetName { get; } public delegate* unmanaged[Cdecl] Metric_GetValue { get; } + public delegate* unmanaged[Cdecl] Metric_Inc { get; } public delegate* unmanaged[Cdecl] Metric_SetValue { get; } public delegate* unmanaged[Cdecl] Object_ActivatePhysics { get; } public delegate* unmanaged[Cdecl] Object_PlaceOnGroundProperly { get; } @@ -485,7 +488,7 @@ public unsafe interface IServerLibrary public unsafe class ServerLibrary : IServerLibrary { - public readonly uint Methods = 1770; + public readonly uint Methods = 1773; public delegate* unmanaged[Cdecl] BaseObject_DeleteSyncedMetaData { get; } public delegate* unmanaged[Cdecl] BaseObject_SetMultipleSyncedMetaData { get; } public delegate* unmanaged[Cdecl] BaseObject_SetSyncedMetaData { get; } @@ -618,10 +621,13 @@ public unsafe class ServerLibrary : IServerLibrary public delegate* unmanaged[Cdecl] Entity_SetStreamSyncedMetaData { get; } public delegate* unmanaged[Cdecl] Entity_SetVisible { get; } public delegate* unmanaged[Cdecl] Event_WeaponDamageEvent_SetDamageValue { get; } + public delegate* unmanaged[Cdecl] Metric_Add { get; } public delegate* unmanaged[Cdecl] Metric_Begin { get; } public delegate* unmanaged[Cdecl] Metric_End { get; } + public delegate* unmanaged[Cdecl] Metric_End2 { get; } public delegate* unmanaged[Cdecl] Metric_GetName { get; } public delegate* unmanaged[Cdecl] Metric_GetValue { get; } + public delegate* unmanaged[Cdecl] Metric_Inc { get; } public delegate* unmanaged[Cdecl] Metric_SetValue { get; } public delegate* unmanaged[Cdecl] Object_ActivatePhysics { get; } public delegate* unmanaged[Cdecl] Object_PlaceOnGroundProperly { get; } @@ -1220,14 +1226,20 @@ public unsafe class ServerLibrary : IServerLibrary private static void Entity_SetVisibleFallback(nint _entity, byte _state) => throw new Exceptions.OutdatedSdkException("Entity_SetVisible", "Entity_SetVisible SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_WeaponDamageEvent_SetDamageValueDelegate(nint _event, uint _damageValue); private static void Event_WeaponDamageEvent_SetDamageValueFallback(nint _event, uint _damageValue) => throw new Exceptions.OutdatedSdkException("Event_WeaponDamageEvent_SetDamageValue", "Event_WeaponDamageEvent_SetDamageValue SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Metric_AddDelegate(nint _metric, ulong _value); + private static void Metric_AddFallback(nint _metric, ulong _value) => throw new Exceptions.OutdatedSdkException("Metric_Add", "Metric_Add SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Metric_BeginDelegate(nint _metric); private static void Metric_BeginFallback(nint _metric) => throw new Exceptions.OutdatedSdkException("Metric_Begin", "Metric_Begin SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Metric_EndDelegate(nint _metric); private static void Metric_EndFallback(nint _metric) => throw new Exceptions.OutdatedSdkException("Metric_End", "Metric_End SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Metric_End2Delegate(nint _metric); + private static void Metric_End2Fallback(nint _metric) => throw new Exceptions.OutdatedSdkException("Metric_End2", "Metric_End2 SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Metric_GetNameDelegate(nint _metric, int* _size); private static nint Metric_GetNameFallback(nint _metric, int* _size) => throw new Exceptions.OutdatedSdkException("Metric_GetName", "Metric_GetName SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Metric_GetValueDelegate(nint _metric); private static ulong Metric_GetValueFallback(nint _metric) => throw new Exceptions.OutdatedSdkException("Metric_GetValue", "Metric_GetValue SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Metric_IncDelegate(nint _metric); + private static void Metric_IncFallback(nint _metric) => throw new Exceptions.OutdatedSdkException("Metric_Inc", "Metric_Inc SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Metric_SetValueDelegate(nint _metric, ulong _value); private static void Metric_SetValueFallback(nint _metric, ulong _value) => throw new Exceptions.OutdatedSdkException("Metric_SetValue", "Metric_SetValue SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_ActivatePhysicsDelegate(nint _object); @@ -1905,7 +1917,7 @@ private IntPtr GetUnmanagedPtr(IDictionary funcTable, ulong ha public ServerLibrary(Dictionary funcTable) { if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true; - else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 18234026019486245283UL) Outdated = true; + else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 78812385462098472UL) Outdated = true; BaseObject_DeleteSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8228424877092269355UL, BaseObject_DeleteSyncedMetaDataFallback); BaseObject_SetMultipleSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1390762125822890831UL, BaseObject_SetMultipleSyncedMetaDataFallback); BaseObject_SetSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8002999088966424231UL, BaseObject_SetSyncedMetaDataFallback); @@ -2038,10 +2050,13 @@ public ServerLibrary(Dictionary funcTable) Entity_SetStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12798418058428333585UL, Entity_SetStreamSyncedMetaDataFallback); Entity_SetVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8026011842118229214UL, Entity_SetVisibleFallback); Event_WeaponDamageEvent_SetDamageValue = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18440396865533386791UL, Event_WeaponDamageEvent_SetDamageValueFallback); + Metric_Add = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16053290375636538610UL, Metric_AddFallback); Metric_Begin = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2348810001298180138UL, Metric_BeginFallback); Metric_End = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13016512038826983106UL, Metric_EndFallback); + Metric_End2 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18410039824979474410UL, Metric_End2Fallback); Metric_GetName = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8652629169459184520UL, Metric_GetNameFallback); Metric_GetValue = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16033500183040421617UL, Metric_GetValueFallback); + Metric_Inc = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9564264321313118159UL, Metric_IncFallback); Metric_SetValue = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13198892627580896636UL, Metric_SetValueFallback); Object_ActivatePhysics = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17585830173881425980UL, Object_ActivatePhysicsFallback); Object_PlaceOnGroundProperly = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16593704804065749058UL, Object_PlaceOnGroundProperlyFallback); diff --git a/api/AltV.Net.CApi/Libraries/SharedLibrary.cs b/api/AltV.Net.CApi/Libraries/SharedLibrary.cs index 8e8745ae9..549d703b2 100644 --- a/api/AltV.Net.CApi/Libraries/SharedLibrary.cs +++ b/api/AltV.Net.CApi/Libraries/SharedLibrary.cs @@ -426,7 +426,7 @@ public unsafe interface ISharedLibrary public unsafe class SharedLibrary : ISharedLibrary { - public readonly uint Methods = 1770; + public readonly uint Methods = 1773; public delegate* unmanaged[Cdecl] Audio_GetID { get; } public delegate* unmanaged[Cdecl] AudioAttachedOutput_GetID { get; } public delegate* unmanaged[Cdecl] AudioFilter_GetID { get; } @@ -1669,7 +1669,7 @@ private IntPtr GetUnmanagedPtr(IDictionary funcTable, ulong ha public SharedLibrary(Dictionary funcTable) { if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true; - else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 18234026019486245283UL) Outdated = true; + else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 78812385462098472UL) Outdated = true; Audio_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4464042055475980737UL, Audio_GetIDFallback); AudioAttachedOutput_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17725794901805112189UL, AudioAttachedOutput_GetIDFallback); AudioFilter_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8824535635529306325UL, AudioFilter_GetIDFallback); diff --git a/api/AltV.Net/Data/Metric.cs b/api/AltV.Net/Data/Metric.cs index cf312a55e..517f2e200 100644 --- a/api/AltV.Net/Data/Metric.cs +++ b/api/AltV.Net/Data/Metric.cs @@ -53,6 +53,7 @@ public void Begin() } } + [Obsolete("Deprecated old behavior, remove in future. Use End2")] public void End() { unsafe @@ -60,4 +61,28 @@ public void End() Core.Library.Server.Metric_End(MetricNativePointer); } } + + public void Add(ulong value) + { + unsafe + { + Core.Library.Server.Metric_Add(MetricNativePointer, value); + } + } + + public void Inc() + { + unsafe + { + Core.Library.Server.Metric_Inc(MetricNativePointer); + } + } + + public void End2() + { + unsafe + { + Core.Library.Server.Metric_End2(MetricNativePointer); + } + } } \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/IMetric.cs b/api/AltV.Net/Elements/Entities/IMetric.cs index c71c27d99..39eeea0cc 100644 --- a/api/AltV.Net/Elements/Entities/IMetric.cs +++ b/api/AltV.Net/Elements/Entities/IMetric.cs @@ -9,5 +9,9 @@ public interface IMetric string Name { get; } ulong Value { get; set; } void Begin(); + [Obsolete("Deprecated old behavior, remove in future. Use End2")] void End(); + void Add(ulong value); + void Inc(); + void End2(); } \ No newline at end of file diff --git a/runtime b/runtime index 133161b34..1831c4cb8 160000 --- a/runtime +++ b/runtime @@ -1 +1 @@ -Subproject commit 133161b34d0a1891b9c4c204fba0f523fe5b57fe +Subproject commit 1831c4cb871c91ee9038e3611ea48cbe274f602e From e67f08138cfd9d844326b572205ad852866a0bfd Mon Sep 17 00:00:00 2001 From: doxoh Date: Sat, 17 Feb 2024 12:40:37 +0100 Subject: [PATCH 28/51] feat(server): add new metric methods --- api/AltV.Net.CApi/Libraries/ClientLibrary.cs | 4 ++-- api/AltV.Net.CApi/Libraries/ServerLibrary.cs | 19 +++++++++++++-- api/AltV.Net.CApi/Libraries/SharedLibrary.cs | 4 ++-- api/AltV.Net/Data/Metric.cs | 25 ++++++++++++++++++++ api/AltV.Net/Elements/Entities/IMetric.cs | 4 ++++ runtime | 2 +- 6 files changed, 51 insertions(+), 7 deletions(-) diff --git a/api/AltV.Net.CApi/Libraries/ClientLibrary.cs b/api/AltV.Net.CApi/Libraries/ClientLibrary.cs index 87282b950..9a00ddeda 100644 --- a/api/AltV.Net.CApi/Libraries/ClientLibrary.cs +++ b/api/AltV.Net.CApi/Libraries/ClientLibrary.cs @@ -902,7 +902,7 @@ public unsafe interface IClientLibrary public unsafe class ClientLibrary : IClientLibrary { - public readonly uint Methods = 1770; + public readonly uint Methods = 1773; public delegate* unmanaged[Cdecl] Audio_AddOutput { get; } public delegate* unmanaged[Cdecl] Audio_GetBaseObject { get; } public delegate* unmanaged[Cdecl] Audio_GetCurrentTime { get; } @@ -3573,7 +3573,7 @@ private IntPtr GetUnmanagedPtr(IDictionary funcTable, ulong ha public ClientLibrary(Dictionary funcTable) { if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true; - else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 18234026019486245283UL) Outdated = true; + else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 78812385462098472UL) Outdated = true; Audio_AddOutput = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9914412815391408844UL, Audio_AddOutputFallback); Audio_GetBaseObject = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 6330360502401226894UL, Audio_GetBaseObjectFallback); Audio_GetCurrentTime = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2944324482134975819UL, Audio_GetCurrentTimeFallback); diff --git a/api/AltV.Net.CApi/Libraries/ServerLibrary.cs b/api/AltV.Net.CApi/Libraries/ServerLibrary.cs index 40111dcaa..80b124f92 100644 --- a/api/AltV.Net.CApi/Libraries/ServerLibrary.cs +++ b/api/AltV.Net.CApi/Libraries/ServerLibrary.cs @@ -143,10 +143,13 @@ public unsafe interface IServerLibrary public delegate* unmanaged[Cdecl] Entity_SetStreamSyncedMetaData { get; } public delegate* unmanaged[Cdecl] Entity_SetVisible { get; } public delegate* unmanaged[Cdecl] Event_WeaponDamageEvent_SetDamageValue { get; } + public delegate* unmanaged[Cdecl] Metric_Add { get; } public delegate* unmanaged[Cdecl] Metric_Begin { get; } public delegate* unmanaged[Cdecl] Metric_End { get; } + public delegate* unmanaged[Cdecl] Metric_End2 { get; } public delegate* unmanaged[Cdecl] Metric_GetName { get; } public delegate* unmanaged[Cdecl] Metric_GetValue { get; } + public delegate* unmanaged[Cdecl] Metric_Inc { get; } public delegate* unmanaged[Cdecl] Metric_SetValue { get; } public delegate* unmanaged[Cdecl] Object_ActivatePhysics { get; } public delegate* unmanaged[Cdecl] Object_PlaceOnGroundProperly { get; } @@ -485,7 +488,7 @@ public unsafe interface IServerLibrary public unsafe class ServerLibrary : IServerLibrary { - public readonly uint Methods = 1770; + public readonly uint Methods = 1773; public delegate* unmanaged[Cdecl] BaseObject_DeleteSyncedMetaData { get; } public delegate* unmanaged[Cdecl] BaseObject_SetMultipleSyncedMetaData { get; } public delegate* unmanaged[Cdecl] BaseObject_SetSyncedMetaData { get; } @@ -618,10 +621,13 @@ public unsafe class ServerLibrary : IServerLibrary public delegate* unmanaged[Cdecl] Entity_SetStreamSyncedMetaData { get; } public delegate* unmanaged[Cdecl] Entity_SetVisible { get; } public delegate* unmanaged[Cdecl] Event_WeaponDamageEvent_SetDamageValue { get; } + public delegate* unmanaged[Cdecl] Metric_Add { get; } public delegate* unmanaged[Cdecl] Metric_Begin { get; } public delegate* unmanaged[Cdecl] Metric_End { get; } + public delegate* unmanaged[Cdecl] Metric_End2 { get; } public delegate* unmanaged[Cdecl] Metric_GetName { get; } public delegate* unmanaged[Cdecl] Metric_GetValue { get; } + public delegate* unmanaged[Cdecl] Metric_Inc { get; } public delegate* unmanaged[Cdecl] Metric_SetValue { get; } public delegate* unmanaged[Cdecl] Object_ActivatePhysics { get; } public delegate* unmanaged[Cdecl] Object_PlaceOnGroundProperly { get; } @@ -1220,14 +1226,20 @@ public unsafe class ServerLibrary : IServerLibrary private static void Entity_SetVisibleFallback(nint _entity, byte _state) => throw new Exceptions.OutdatedSdkException("Entity_SetVisible", "Entity_SetVisible SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Event_WeaponDamageEvent_SetDamageValueDelegate(nint _event, uint _damageValue); private static void Event_WeaponDamageEvent_SetDamageValueFallback(nint _event, uint _damageValue) => throw new Exceptions.OutdatedSdkException("Event_WeaponDamageEvent_SetDamageValue", "Event_WeaponDamageEvent_SetDamageValue SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Metric_AddDelegate(nint _metric, ulong _value); + private static void Metric_AddFallback(nint _metric, ulong _value) => throw new Exceptions.OutdatedSdkException("Metric_Add", "Metric_Add SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Metric_BeginDelegate(nint _metric); private static void Metric_BeginFallback(nint _metric) => throw new Exceptions.OutdatedSdkException("Metric_Begin", "Metric_Begin SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Metric_EndDelegate(nint _metric); private static void Metric_EndFallback(nint _metric) => throw new Exceptions.OutdatedSdkException("Metric_End", "Metric_End SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Metric_End2Delegate(nint _metric); + private static void Metric_End2Fallback(nint _metric) => throw new Exceptions.OutdatedSdkException("Metric_End2", "Metric_End2 SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate nint Metric_GetNameDelegate(nint _metric, int* _size); private static nint Metric_GetNameFallback(nint _metric, int* _size) => throw new Exceptions.OutdatedSdkException("Metric_GetName", "Metric_GetName SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate ulong Metric_GetValueDelegate(nint _metric); private static ulong Metric_GetValueFallback(nint _metric) => throw new Exceptions.OutdatedSdkException("Metric_GetValue", "Metric_GetValue SDK method is outdated. Please update your module nuget"); + [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Metric_IncDelegate(nint _metric); + private static void Metric_IncFallback(nint _metric) => throw new Exceptions.OutdatedSdkException("Metric_Inc", "Metric_Inc SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Metric_SetValueDelegate(nint _metric, ulong _value); private static void Metric_SetValueFallback(nint _metric, ulong _value) => throw new Exceptions.OutdatedSdkException("Metric_SetValue", "Metric_SetValue SDK method is outdated. Please update your module nuget"); [UnmanagedFunctionPointer(CallingConvention.Cdecl)] private delegate void Object_ActivatePhysicsDelegate(nint _object); @@ -1905,7 +1917,7 @@ private IntPtr GetUnmanagedPtr(IDictionary funcTable, ulong ha public ServerLibrary(Dictionary funcTable) { if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true; - else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 18234026019486245283UL) Outdated = true; + else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 78812385462098472UL) Outdated = true; BaseObject_DeleteSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8228424877092269355UL, BaseObject_DeleteSyncedMetaDataFallback); BaseObject_SetMultipleSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 1390762125822890831UL, BaseObject_SetMultipleSyncedMetaDataFallback); BaseObject_SetSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8002999088966424231UL, BaseObject_SetSyncedMetaDataFallback); @@ -2038,10 +2050,13 @@ public ServerLibrary(Dictionary funcTable) Entity_SetStreamSyncedMetaData = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 12798418058428333585UL, Entity_SetStreamSyncedMetaDataFallback); Entity_SetVisible = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8026011842118229214UL, Entity_SetVisibleFallback); Event_WeaponDamageEvent_SetDamageValue = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18440396865533386791UL, Event_WeaponDamageEvent_SetDamageValueFallback); + Metric_Add = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16053290375636538610UL, Metric_AddFallback); Metric_Begin = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 2348810001298180138UL, Metric_BeginFallback); Metric_End = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13016512038826983106UL, Metric_EndFallback); + Metric_End2 = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 18410039824979474410UL, Metric_End2Fallback); Metric_GetName = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8652629169459184520UL, Metric_GetNameFallback); Metric_GetValue = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16033500183040421617UL, Metric_GetValueFallback); + Metric_Inc = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 9564264321313118159UL, Metric_IncFallback); Metric_SetValue = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 13198892627580896636UL, Metric_SetValueFallback); Object_ActivatePhysics = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17585830173881425980UL, Object_ActivatePhysicsFallback); Object_PlaceOnGroundProperly = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 16593704804065749058UL, Object_PlaceOnGroundProperlyFallback); diff --git a/api/AltV.Net.CApi/Libraries/SharedLibrary.cs b/api/AltV.Net.CApi/Libraries/SharedLibrary.cs index 8e8745ae9..549d703b2 100644 --- a/api/AltV.Net.CApi/Libraries/SharedLibrary.cs +++ b/api/AltV.Net.CApi/Libraries/SharedLibrary.cs @@ -426,7 +426,7 @@ public unsafe interface ISharedLibrary public unsafe class SharedLibrary : ISharedLibrary { - public readonly uint Methods = 1770; + public readonly uint Methods = 1773; public delegate* unmanaged[Cdecl] Audio_GetID { get; } public delegate* unmanaged[Cdecl] AudioAttachedOutput_GetID { get; } public delegate* unmanaged[Cdecl] AudioFilter_GetID { get; } @@ -1669,7 +1669,7 @@ private IntPtr GetUnmanagedPtr(IDictionary funcTable, ulong ha public SharedLibrary(Dictionary funcTable) { if (!funcTable.TryGetValue(0, out var capiHash)) Outdated = true; - else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 18234026019486245283UL) Outdated = true; + else if (capiHash == IntPtr.Zero || *(ulong*)capiHash != 78812385462098472UL) Outdated = true; Audio_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 4464042055475980737UL, Audio_GetIDFallback); AudioAttachedOutput_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 17725794901805112189UL, AudioAttachedOutput_GetIDFallback); AudioFilter_GetID = (delegate* unmanaged[Cdecl]) GetUnmanagedPtr(funcTable, 8824535635529306325UL, AudioFilter_GetIDFallback); diff --git a/api/AltV.Net/Data/Metric.cs b/api/AltV.Net/Data/Metric.cs index cf312a55e..517f2e200 100644 --- a/api/AltV.Net/Data/Metric.cs +++ b/api/AltV.Net/Data/Metric.cs @@ -53,6 +53,7 @@ public void Begin() } } + [Obsolete("Deprecated old behavior, remove in future. Use End2")] public void End() { unsafe @@ -60,4 +61,28 @@ public void End() Core.Library.Server.Metric_End(MetricNativePointer); } } + + public void Add(ulong value) + { + unsafe + { + Core.Library.Server.Metric_Add(MetricNativePointer, value); + } + } + + public void Inc() + { + unsafe + { + Core.Library.Server.Metric_Inc(MetricNativePointer); + } + } + + public void End2() + { + unsafe + { + Core.Library.Server.Metric_End2(MetricNativePointer); + } + } } \ No newline at end of file diff --git a/api/AltV.Net/Elements/Entities/IMetric.cs b/api/AltV.Net/Elements/Entities/IMetric.cs index c71c27d99..39eeea0cc 100644 --- a/api/AltV.Net/Elements/Entities/IMetric.cs +++ b/api/AltV.Net/Elements/Entities/IMetric.cs @@ -9,5 +9,9 @@ public interface IMetric string Name { get; } ulong Value { get; set; } void Begin(); + [Obsolete("Deprecated old behavior, remove in future. Use End2")] void End(); + void Add(ulong value); + void Inc(); + void End2(); } \ No newline at end of file diff --git a/runtime b/runtime index 133161b34..1831c4cb8 160000 --- a/runtime +++ b/runtime @@ -1 +1 @@ -Subproject commit 133161b34d0a1891b9c4c204fba0f523fe5b57fe +Subproject commit 1831c4cb871c91ee9038e3611ea48cbe274f602e From fa14e4cc7e75874092e76d3a8634bb978bb8470e Mon Sep 17 00:00:00 2001 From: doxoh Date: Sat, 17 Feb 2024 12:41:30 +0100 Subject: [PATCH 29/51] Updated submodule runtime --- runtime | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime b/runtime index 1831c4cb8..2621da6b5 160000 --- a/runtime +++ b/runtime @@ -1 +1 @@ -Subproject commit 1831c4cb871c91ee9038e3611ea48cbe274f602e +Subproject commit 2621da6b5c0e43e503acdbfa95e137a1f47fa652 From 9bc0d9ad679dc5b7a3077e40a6d06a5452ea5cab Mon Sep 17 00:00:00 2001 From: LightSrc Date: Thu, 22 Feb 2024 08:27:35 +0200 Subject: [PATCH 30/51] fix(shared): added missing enums for CheckpointType (#847) --- .../Elements/Entities/CheckpointType.cs | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/api/AltV.Net.Shared/Elements/Entities/CheckpointType.cs b/api/AltV.Net.Shared/Elements/Entities/CheckpointType.cs index 9e06b9ac1..ce8b6570a 100644 --- a/api/AltV.Net.Shared/Elements/Entities/CheckpointType.cs +++ b/api/AltV.Net.Shared/Elements/Entities/CheckpointType.cs @@ -7,11 +7,13 @@ public enum CheckpointType : byte CylinderTripleArrow, CylinderCycleArrow, CylinderCheckerboard, + CylinderWrench, CylinderSingleArrow2, CylinderDoubleArrow2, CylinderTripleArrow2, CylinderCycleArrow2, CylinderCheckerboard2, + CylinderWrench2, RingSingleArrow, RingDoubleArrow, RingTripleArrow, @@ -44,12 +46,28 @@ public enum CheckpointType : byte Empty, Ring, Empty2, - - //CylinderCustomShape, - //CylinderCustomShape2, - //CylinderCustomShape3, - Cylinder = 45, + Cylinder, + Cylinder1, Cylinder2, - Cylinder3 + Cylinder3, + Cylinder4, + Cylinder5, + Empty3, + Empty4, + Empty5, + Empty6, + RingDollar, + RingWolf, + RingQuestionMark, + RingPlane, + RingChopper, + RingBoat, + RingCar, + RingBike, + RingBicycle, + RingTruck, + RingParachute, + RingJetpack, + RingWhirl } } \ No newline at end of file From 2d72bf710b01a6e38f510888ba09056f2a5dee2e Mon Sep 17 00:00:00 2001 From: doxoh Date: Fri, 23 Feb 2024 13:18:35 +0100 Subject: [PATCH 31/51] fix(server): error as rpc answer --- api/AltV.Net.Async/AsyncCore.cs | 4 +++- runtime | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/api/AltV.Net.Async/AsyncCore.cs b/api/AltV.Net.Async/AsyncCore.cs index c064501cd..60570372a 100644 --- a/api/AltV.Net.Async/AsyncCore.cs +++ b/api/AltV.Net.Async/AsyncCore.cs @@ -986,12 +986,14 @@ public override void OnScriptRPCEvent(IntPtr eventpointer, IPlayer target, strin if (!ScriptRpcAsyncEventHandler.HasEvents()) return; - Task.Run(async () => + var task = Task.Run(async () => { var clientScriptRPCEvent = new AsyncScriptRpcEvent(target, answerId); await ScriptRpcAsyncEventHandler.CallAsync(@delegate => @delegate(clientScriptRPCEvent, target, name, objects, answerId)); }); + Task.WaitAll(task); + if (UnansweredServerRpcRequest.Contains(answerId)) { target.EmitRPCAnswer(answerId, null, "Answer not handled"); diff --git a/runtime b/runtime index 1831c4cb8..88a8e39bd 160000 --- a/runtime +++ b/runtime @@ -1 +1 @@ -Subproject commit 1831c4cb871c91ee9038e3611ea48cbe274f602e +Subproject commit 88a8e39bdd79f9c3a602017fc75e6285d6bf78c8 From 8fc2a62a0442d923237fed371f459be135bfed21 Mon Sep 17 00:00:00 2001 From: doxoh Date: Mon, 26 Feb 2024 22:39:24 +0100 Subject: [PATCH 32/51] fix(client): OnPlayerEnterVehicle for LocalVehicle --- api/AltV.Net.Client/Core.Events.cs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/api/AltV.Net.Client/Core.Events.cs b/api/AltV.Net.Client/Core.Events.cs index 10583a98f..352984991 100644 --- a/api/AltV.Net.Client/Core.Events.cs +++ b/api/AltV.Net.Client/Core.Events.cs @@ -254,8 +254,12 @@ public void OnPlayerEnterVehicle(IntPtr pointer, byte seat) var vehicle = PoolManager.Vehicle.Get(pointer); if (vehicle is null) { - Console.WriteLine("Invalid vehicle: " + pointer); - return; + vehicle = PoolManager.LocalVehicle.Get(pointer); + if (vehicle is null) + { + Console.WriteLine("Invalid vehicle: " + pointer); + return; + } } EnterVehicleEventHandler.GetEvents().ForEachCatching(fn => fn(vehicle, seat), $"event {nameof(OnPlayerEnterVehicle)}"); @@ -478,6 +482,16 @@ public void OnRemoveEntity(IntPtr targetPtr, BaseObjectType type) public void OnPlayerLeaveVehicle(IntPtr vehiclePtr, byte seat) { var vehicle = PoolManager.Vehicle.Get(vehiclePtr); + if (vehicle is null) + { + vehicle = PoolManager.LocalVehicle.Get(vehiclePtr); + if (vehicle is null) + { + Console.WriteLine("Invalid vehicle: " + vehiclePtr); + return; + } + } + PlayerLeaveVehicleEventHandler.GetEvents().ForEachCatching(fn => fn(vehicle, seat), $"event {nameof(OnPlayerLeaveVehicle)}"); } From 2a2a1d19dce07bf4c77a185d4a7c753e94d25d1a Mon Sep 17 00:00:00 2001 From: doxoh Date: Wed, 20 Mar 2024 17:24:09 +0100 Subject: [PATCH 33/51] feat(shared): add ToRadians --- api/AltV.Net.CApi/Data/Position.cs | 6 ++++++ api/AltV.Net.CApi/Data/Rotation.cs | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/api/AltV.Net.CApi/Data/Position.cs b/api/AltV.Net.CApi/Data/Position.cs index afc7e0bca..13f9ce3d4 100644 --- a/api/AltV.Net.CApi/Data/Position.cs +++ b/api/AltV.Net.CApi/Data/Position.cs @@ -1,4 +1,5 @@ using System; +using System.Drawing; using System.Numerics; using System.Runtime.InteropServices; using System.Runtime.Serialization; @@ -105,6 +106,11 @@ public float Distance(Position b) return MathF.Sqrt(diffX * diffX + diffY * diffY + diffZ * diffZ); } + public Position ToRadians() + { + return new Position((X * MathF.PI) / 180, (Y * MathF.PI) / 180, (Z * MathF.PI) / 180); + } + public static Position operator +(Position a, Position b) => new Position(a.X + b.X, a.Y + b.Y, a.Z + b.Z); public static Position operator -(Position a, Position b) => new Position(a.X - b.X, a.Y - b.Y, a.Z - b.Z); diff --git a/api/AltV.Net.CApi/Data/Rotation.cs b/api/AltV.Net.CApi/Data/Rotation.cs index e8218d1d9..2a26fea9e 100644 --- a/api/AltV.Net.CApi/Data/Rotation.cs +++ b/api/AltV.Net.CApi/Data/Rotation.cs @@ -72,6 +72,11 @@ public bool Equals(Rotation other) return Roll.Equals(other.Roll) && Pitch.Equals(other.Pitch) && Yaw.Equals(other.Yaw); } + public Rotation ToRadians() + { + return new Rotation((Roll * MathF.PI) / 180, (Pitch * MathF.PI) / 180, (Yaw * MathF.PI) / 180); + } + public override int GetHashCode() => HashCode.Combine(Roll.GetHashCode(), Pitch.GetHashCode(), Yaw.GetHashCode()); } } \ No newline at end of file From 7b9f170cad31a4e03d0150c7229d3ec177f77f1b Mon Sep 17 00:00:00 2001 From: doxoh Date: Thu, 29 Feb 2024 17:09:47 +0100 Subject: [PATCH 34/51] chore: change package urls --- api/AltV.Net.Async.CodeGen/AltV.Net.Async.CodeGen.csproj | 4 ++-- api/AltV.Net.Async/AltV.Net.Async.csproj | 4 ++-- api/AltV.Net.CApi/AltV.Net.CApi.csproj | 4 ++-- api/AltV.Net.Client.Async/AltV.Net.Client.Async.csproj | 4 ++-- api/AltV.Net.Client/AltV.Net.Client.csproj | 4 ++-- api/AltV.Net.ColShape/AltV.Net.ColShape.csproj | 6 +++--- .../AltV.Net.EntitySync.ServerEvent.csproj | 4 ++-- api/AltV.Net.EntitySync/AltV.Net.EntitySync.csproj | 4 ++-- api/AltV.Net.Interactions/AltV.Net.Interactions.csproj | 4 ++-- api/AltV.Net.Mock/AltV.Net.Mock.csproj | 4 ++-- .../AltV.Net.ResourceGenerator.csproj | 4 ++-- .../AltV.Net.Resources.Chat.Api.csproj | 4 ++-- api/AltV.Net.Sdk.Client/AltV.Net.Sdk.Client.csproj | 4 ++-- api/AltV.Net.Sdk.Server/AltV.Net.Sdk.Server.csproj | 4 ++-- api/AltV.Net.Sdk.Shared/AltV.Net.Sdk.Shared.csproj | 4 ++-- api/AltV.Net.Shared/AltV.Net.Shared.csproj | 4 ++-- api/AltV.Net.VehicleData/AltV.Net.VehicleData.csproj | 4 ++-- api/AltV.Net/AltV.Net.csproj | 4 ++-- 18 files changed, 37 insertions(+), 37 deletions(-) diff --git a/api/AltV.Net.Async.CodeGen/AltV.Net.Async.CodeGen.csproj b/api/AltV.Net.Async.CodeGen/AltV.Net.Async.CodeGen.csproj index b46b90929..60cb6bb05 100644 --- a/api/AltV.Net.Async.CodeGen/AltV.Net.Async.CodeGen.csproj +++ b/api/AltV.Net.Async.CodeGen/AltV.Net.Async.CodeGen.csproj @@ -7,8 +7,8 @@ AltMp AltV .NET Core Async CodeGen AltMp - https://github.com/FabianTerhorst/coreclr-module - https://github.com/FabianTerhorst/coreclr-module + https://github.com/altmp/coreclr-module + https://github.com/altmp/coreclr-module git altv gta bridge 1.0.0 diff --git a/api/AltV.Net.Async/AltV.Net.Async.csproj b/api/AltV.Net.Async/AltV.Net.Async.csproj index 6c8ea6c3d..fab578d0f 100644 --- a/api/AltV.Net.Async/AltV.Net.Async.csproj +++ b/api/AltV.Net.Async/AltV.Net.Async.csproj @@ -8,8 +8,8 @@ AltMp AltV .NET Core Async Server Api AltMp - https://github.com/FabianTerhorst/coreclr-module - https://github.com/FabianTerhorst/coreclr-module + https://github.com/altmp/coreclr-module + https://github.com/altmp/coreclr-module git altv gta bridge 1.0.0 diff --git a/api/AltV.Net.CApi/AltV.Net.CApi.csproj b/api/AltV.Net.CApi/AltV.Net.CApi.csproj index 095f88359..f4100c765 100644 --- a/api/AltV.Net.CApi/AltV.Net.CApi.csproj +++ b/api/AltV.Net.CApi/AltV.Net.CApi.csproj @@ -4,8 +4,8 @@ FabianTerhorst AltV .NET CApi FabianTerhorst - https://github.com/FabianTerhorst/coreclr-module - https://github.com/FabianTerhorst/coreclr-module + https://github.com/altmp/coreclr-module + https://github.com/altmp/coreclr-module git altv gta bridge gta5 gtav colshape 1.0.0 diff --git a/api/AltV.Net.Client.Async/AltV.Net.Client.Async.csproj b/api/AltV.Net.Client.Async/AltV.Net.Client.Async.csproj index 532d28d7d..fd8003356 100644 --- a/api/AltV.Net.Client.Async/AltV.Net.Client.Async.csproj +++ b/api/AltV.Net.Client.Async/AltV.Net.Client.Async.csproj @@ -4,8 +4,8 @@ FabianTerhorst,zziger,JuzTim AltV .NET Client Async API FabianTerhorst - https://github.com/FabianTerhorst/coreclr-module - https://github.com/FabianTerhorst/coreclr-module + https://github.com/altmp/coreclr-module + https://github.com/altmp/coreclr-module git altv gta bridge gta5 gtav 1.0.0 diff --git a/api/AltV.Net.Client/AltV.Net.Client.csproj b/api/AltV.Net.Client/AltV.Net.Client.csproj index 1d94ef861..9d7f451b8 100644 --- a/api/AltV.Net.Client/AltV.Net.Client.csproj +++ b/api/AltV.Net.Client/AltV.Net.Client.csproj @@ -5,8 +5,8 @@ FabianTerhorst,zziger,JuzTim AltV .NET Client FabianTerhorst - https://github.com/FabianTerhorst/coreclr-module - https://github.com/FabianTerhorst/coreclr-module + https://github.com/altmp/coreclr-module + https://github.com/altmp/coreclr-module git altv gta bridge gta5 gtav 1.0.0 diff --git a/api/AltV.Net.ColShape/AltV.Net.ColShape.csproj b/api/AltV.Net.ColShape/AltV.Net.ColShape.csproj index 0ca873566..bca3d5556 100644 --- a/api/AltV.Net.ColShape/AltV.Net.ColShape.csproj +++ b/api/AltV.Net.ColShape/AltV.Net.ColShape.csproj @@ -1,11 +1,11 @@ - + FabianTerhorst AltV .NET Core ColShape Api FabianTerhorst - https://github.com/FabianTerhorst/coreclr-module - https://github.com/FabianTerhorst/coreclr-module + https://github.com/altmp/coreclr-module + https://github.com/altmp/coreclr-module git altv gta bridge gta5 gtav colshape 1.0.0 diff --git a/api/AltV.Net.EntitySync.ServerEvent/AltV.Net.EntitySync.ServerEvent.csproj b/api/AltV.Net.EntitySync.ServerEvent/AltV.Net.EntitySync.ServerEvent.csproj index 7c6621146..3bafbaacc 100644 --- a/api/AltV.Net.EntitySync.ServerEvent/AltV.Net.EntitySync.ServerEvent.csproj +++ b/api/AltV.Net.EntitySync.ServerEvent/AltV.Net.EntitySync.ServerEvent.csproj @@ -4,8 +4,8 @@ FabianTerhorst AltV .NET Core Entity Sync ServerEvent network layer FabianTerhorst - https://github.com/FabianTerhorst/coreclr-module - https://github.com/FabianTerhorst/coreclr-module + https://github.com/altmp/coreclr-module + https://github.com/altmp/coreclr-module git altv gta bridge gta5 gtav chat 1.0.0 diff --git a/api/AltV.Net.EntitySync/AltV.Net.EntitySync.csproj b/api/AltV.Net.EntitySync/AltV.Net.EntitySync.csproj index 5b054225b..6a4d3745b 100644 --- a/api/AltV.Net.EntitySync/AltV.Net.EntitySync.csproj +++ b/api/AltV.Net.EntitySync/AltV.Net.EntitySync.csproj @@ -6,8 +6,8 @@ AltMp AltV .NET Core Entity Sync AltMp - https://github.com/FabianTerhorst/coreclr-module - https://github.com/FabianTerhorst/coreclr-module + https://github.com/altmp/coreclr-module + https://github.com/altmp/coreclr-module git altv gta bridge gta5 gtav license.txt diff --git a/api/AltV.Net.Interactions/AltV.Net.Interactions.csproj b/api/AltV.Net.Interactions/AltV.Net.Interactions.csproj index fa777a2a9..d4088491e 100644 --- a/api/AltV.Net.Interactions/AltV.Net.Interactions.csproj +++ b/api/AltV.Net.Interactions/AltV.Net.Interactions.csproj @@ -5,8 +5,8 @@ FabianTerhorst AltV .NET Core Interactions FabianTerhorst - https://github.com/FabianTerhorst/coreclr-module - https://github.com/FabianTerhorst/coreclr-module + https://github.com/altmp/coreclr-module + https://github.com/altmp/coreclr-module git altv gta bridge gta5 gtav 1.0.0 diff --git a/api/AltV.Net.Mock/AltV.Net.Mock.csproj b/api/AltV.Net.Mock/AltV.Net.Mock.csproj index d2999bef7..71db69d7e 100644 --- a/api/AltV.Net.Mock/AltV.Net.Mock.csproj +++ b/api/AltV.Net.Mock/AltV.Net.Mock.csproj @@ -7,8 +7,8 @@ AltMp AltV .NET Core Server Mock Api AltMp - https://github.com/FabianTerhorst/coreclr-module - https://github.com/FabianTerhorst/coreclr-module + https://github.com/altmp/coreclr-module + https://github.com/altmp/coreclr-module git altv gta bridge mock 1.17.2-alpha diff --git a/api/AltV.Net.ResourceGenerator/AltV.Net.ResourceGenerator.csproj b/api/AltV.Net.ResourceGenerator/AltV.Net.ResourceGenerator.csproj index ed22c6154..bf9ba7c2e 100644 --- a/api/AltV.Net.ResourceGenerator/AltV.Net.ResourceGenerator.csproj +++ b/api/AltV.Net.ResourceGenerator/AltV.Net.ResourceGenerator.csproj @@ -5,8 +5,8 @@ FabianTerhorst AltV .NET Core Resource Generator FabianTerhorst - https://github.com/FabianTerhorst/coreclr-module - https://github.com/FabianTerhorst/coreclr-module + https://github.com/altmp/coreclr-module + https://github.com/altmp/coreclr-module git altv gta bridge gta5 gtav 1.0.1 diff --git a/api/AltV.Net.Resources.Chat.Api/AltV.Net.Resources.Chat.Api.csproj b/api/AltV.Net.Resources.Chat.Api/AltV.Net.Resources.Chat.Api.csproj index cfeef3b31..422082707 100644 --- a/api/AltV.Net.Resources.Chat.Api/AltV.Net.Resources.Chat.Api.csproj +++ b/api/AltV.Net.Resources.Chat.Api/AltV.Net.Resources.Chat.Api.csproj @@ -4,8 +4,8 @@ FabianTerhorst AltV .NET Core Chat API FabianTerhorst - https://github.com/FabianTerhorst/coreclr-module - https://github.com/FabianTerhorst/coreclr-module + https://github.com/altmp/coreclr-module + https://github.com/altmp/coreclr-module git altv gta bridge gta5 gtav chat 1.0.0 diff --git a/api/AltV.Net.Sdk.Client/AltV.Net.Sdk.Client.csproj b/api/AltV.Net.Sdk.Client/AltV.Net.Sdk.Client.csproj index 10ae89626..d84c88e1b 100644 --- a/api/AltV.Net.Sdk.Client/AltV.Net.Sdk.Client.csproj +++ b/api/AltV.Net.Sdk.Client/AltV.Net.Sdk.Client.csproj @@ -4,8 +4,8 @@ AltMp alt:V .NET client SDK AltMp - https://github.com/FabianTerhorst/coreclr-module - https://github.com/FabianTerhorst/coreclr-module + https://github.com/altmp/coreclr-module + https://github.com/altmp/coreclr-module git altv gta bridge gta5 gtav altvsdk 1.0.0 diff --git a/api/AltV.Net.Sdk.Server/AltV.Net.Sdk.Server.csproj b/api/AltV.Net.Sdk.Server/AltV.Net.Sdk.Server.csproj index 14de90e94..ae24fff44 100644 --- a/api/AltV.Net.Sdk.Server/AltV.Net.Sdk.Server.csproj +++ b/api/AltV.Net.Sdk.Server/AltV.Net.Sdk.Server.csproj @@ -4,8 +4,8 @@ AltMp alt:V .NET server SDK AltMp - https://github.com/FabianTerhorst/coreclr-module - https://github.com/FabianTerhorst/coreclr-module + https://github.com/altmp/coreclr-module + https://github.com/altmp/coreclr-module git altv gta bridge gta5 gtav altvsdk 1.0.0 diff --git a/api/AltV.Net.Sdk.Shared/AltV.Net.Sdk.Shared.csproj b/api/AltV.Net.Sdk.Shared/AltV.Net.Sdk.Shared.csproj index 67fe48ff6..f07784652 100644 --- a/api/AltV.Net.Sdk.Shared/AltV.Net.Sdk.Shared.csproj +++ b/api/AltV.Net.Sdk.Shared/AltV.Net.Sdk.Shared.csproj @@ -4,8 +4,8 @@ AltMp alt:V .NET shared SDK AltMp - https://github.com/FabianTerhorst/coreclr-module - https://github.com/FabianTerhorst/coreclr-module + https://github.com/altmp/coreclr-module + https://github.com/altmp/coreclr-module git altv gta bridge gta5 gtav altvsdk 1.0.0 diff --git a/api/AltV.Net.Shared/AltV.Net.Shared.csproj b/api/AltV.Net.Shared/AltV.Net.Shared.csproj index e371e13d4..7a5523369 100644 --- a/api/AltV.Net.Shared/AltV.Net.Shared.csproj +++ b/api/AltV.Net.Shared/AltV.Net.Shared.csproj @@ -4,8 +4,8 @@ FabianTerhorst AltV .NET Shared API FabianTerhorst - https://github.com/FabianTerhorst/coreclr-module - https://github.com/FabianTerhorst/coreclr-module + https://github.com/altmp/coreclr-module + https://github.com/altmp/coreclr-module git altv gta bridge gta5 gtav 1.0.0 diff --git a/api/AltV.Net.VehicleData/AltV.Net.VehicleData.csproj b/api/AltV.Net.VehicleData/AltV.Net.VehicleData.csproj index 8c9e1c0f0..06ec05470 100644 --- a/api/AltV.Net.VehicleData/AltV.Net.VehicleData.csproj +++ b/api/AltV.Net.VehicleData/AltV.Net.VehicleData.csproj @@ -7,8 +7,8 @@ AltMp AltV .NET VehicleData Api AltMp - https://github.com/fabianterhorst/coreclr-module - https://github.com/fabianterhorst/coreclr-module + https://github.com/altmp/coreclr-module + https://github.com/altmp/coreclr-module git 1.0.0-dev-preview license.txt diff --git a/api/AltV.Net/AltV.Net.csproj b/api/AltV.Net/AltV.Net.csproj index abb55e620..7894f91a5 100644 --- a/api/AltV.Net/AltV.Net.csproj +++ b/api/AltV.Net/AltV.Net.csproj @@ -10,8 +10,8 @@ AltMp AltV .NET Core Server Api AltMp - https://github.com/FabianTerhorst/coreclr-module - https://github.com/FabianTerhorst/coreclr-module + https://github.com/altmp/coreclr-module + https://github.com/altmp/coreclr-module git altv gta bridge gta5 gtav 1.0.0 From 4eee8e443931585316171dd9f65436b99dac593f Mon Sep 17 00:00:00 2001 From: doxoh Date: Thu, 29 Feb 2024 17:10:02 +0100 Subject: [PATCH 35/51] chore: update authors --- api/AltV.Net.CApi/AltV.Net.CApi.csproj | 4 ++-- api/AltV.Net.Client.Async/AltV.Net.Client.Async.csproj | 6 +++--- api/AltV.Net.Client/AltV.Net.Client.csproj | 4 ++-- api/AltV.Net.ColShape/AltV.Net.ColShape.csproj | 6 +++--- .../AltV.Net.EntitySync.ServerEvent.csproj | 4 ++-- api/AltV.Net.Interactions/AltV.Net.Interactions.csproj | 4 ++-- .../AltV.Net.ResourceGenerator.csproj | 4 ++-- .../AltV.Net.Resources.Chat.Api.csproj | 4 ++-- api/AltV.Net.Shared/AltV.Net.Shared.csproj | 4 ++-- 9 files changed, 20 insertions(+), 20 deletions(-) diff --git a/api/AltV.Net.CApi/AltV.Net.CApi.csproj b/api/AltV.Net.CApi/AltV.Net.CApi.csproj index f4100c765..b59a47e5c 100644 --- a/api/AltV.Net.CApi/AltV.Net.CApi.csproj +++ b/api/AltV.Net.CApi/AltV.Net.CApi.csproj @@ -1,9 +1,9 @@ - FabianTerhorst + FabianTerhorst,Doxoh AltV .NET CApi - FabianTerhorst + FabianTerhorst,Doxoh https://github.com/altmp/coreclr-module https://github.com/altmp/coreclr-module git diff --git a/api/AltV.Net.Client.Async/AltV.Net.Client.Async.csproj b/api/AltV.Net.Client.Async/AltV.Net.Client.Async.csproj index fd8003356..6d846bec5 100644 --- a/api/AltV.Net.Client.Async/AltV.Net.Client.Async.csproj +++ b/api/AltV.Net.Client.Async/AltV.Net.Client.Async.csproj @@ -1,9 +1,9 @@ - FabianTerhorst,zziger,JuzTim + FabianTerhorst,Doxoh,zziger,JuzTim AltV .NET Client Async API - FabianTerhorst + FabianTerhorst,Doxoh https://github.com/altmp/coreclr-module https://github.com/altmp/coreclr-module git @@ -22,7 +22,7 @@ true AltV.Net.Client.Async - + true diff --git a/api/AltV.Net.Client/AltV.Net.Client.csproj b/api/AltV.Net.Client/AltV.Net.Client.csproj index 9d7f451b8..950d1c4cf 100644 --- a/api/AltV.Net.Client/AltV.Net.Client.csproj +++ b/api/AltV.Net.Client/AltV.Net.Client.csproj @@ -2,9 +2,9 @@ true - FabianTerhorst,zziger,JuzTim + FabianTerhorst,Doxoh,zziger,JuzTim AltV .NET Client - FabianTerhorst + FabianTerhorst,Doxoh https://github.com/altmp/coreclr-module https://github.com/altmp/coreclr-module git diff --git a/api/AltV.Net.ColShape/AltV.Net.ColShape.csproj b/api/AltV.Net.ColShape/AltV.Net.ColShape.csproj index bca3d5556..30d1f0071 100644 --- a/api/AltV.Net.ColShape/AltV.Net.ColShape.csproj +++ b/api/AltV.Net.ColShape/AltV.Net.ColShape.csproj @@ -1,9 +1,9 @@ - + - FabianTerhorst + FabianTerhorst,Doxoh AltV .NET Core ColShape Api - FabianTerhorst + FabianTerhorst,Doxoh https://github.com/altmp/coreclr-module https://github.com/altmp/coreclr-module git diff --git a/api/AltV.Net.EntitySync.ServerEvent/AltV.Net.EntitySync.ServerEvent.csproj b/api/AltV.Net.EntitySync.ServerEvent/AltV.Net.EntitySync.ServerEvent.csproj index 3bafbaacc..9b2fd29d8 100644 --- a/api/AltV.Net.EntitySync.ServerEvent/AltV.Net.EntitySync.ServerEvent.csproj +++ b/api/AltV.Net.EntitySync.ServerEvent/AltV.Net.EntitySync.ServerEvent.csproj @@ -1,9 +1,9 @@ - FabianTerhorst + FabianTerhorst,Doxoh AltV .NET Core Entity Sync ServerEvent network layer - FabianTerhorst + FabianTerhorst,Doxoh https://github.com/altmp/coreclr-module https://github.com/altmp/coreclr-module git diff --git a/api/AltV.Net.Interactions/AltV.Net.Interactions.csproj b/api/AltV.Net.Interactions/AltV.Net.Interactions.csproj index d4088491e..2bea9b4a7 100644 --- a/api/AltV.Net.Interactions/AltV.Net.Interactions.csproj +++ b/api/AltV.Net.Interactions/AltV.Net.Interactions.csproj @@ -2,9 +2,9 @@ true - FabianTerhorst + FabianTerhorst,Doxoh AltV .NET Core Interactions - FabianTerhorst + FabianTerhorst,Doxoh https://github.com/altmp/coreclr-module https://github.com/altmp/coreclr-module git diff --git a/api/AltV.Net.ResourceGenerator/AltV.Net.ResourceGenerator.csproj b/api/AltV.Net.ResourceGenerator/AltV.Net.ResourceGenerator.csproj index bf9ba7c2e..04538a48d 100644 --- a/api/AltV.Net.ResourceGenerator/AltV.Net.ResourceGenerator.csproj +++ b/api/AltV.Net.ResourceGenerator/AltV.Net.ResourceGenerator.csproj @@ -2,9 +2,9 @@ true - FabianTerhorst + FabianTerhorst,Doxoh AltV .NET Core Resource Generator - FabianTerhorst + FabianTerhorst,Doxoh https://github.com/altmp/coreclr-module https://github.com/altmp/coreclr-module git diff --git a/api/AltV.Net.Resources.Chat.Api/AltV.Net.Resources.Chat.Api.csproj b/api/AltV.Net.Resources.Chat.Api/AltV.Net.Resources.Chat.Api.csproj index 422082707..2635ff43f 100644 --- a/api/AltV.Net.Resources.Chat.Api/AltV.Net.Resources.Chat.Api.csproj +++ b/api/AltV.Net.Resources.Chat.Api/AltV.Net.Resources.Chat.Api.csproj @@ -1,9 +1,9 @@ - FabianTerhorst + FabianTerhorst,Doxoh AltV .NET Core Chat API - FabianTerhorst + FabianTerhorst,Doxoh https://github.com/altmp/coreclr-module https://github.com/altmp/coreclr-module git diff --git a/api/AltV.Net.Shared/AltV.Net.Shared.csproj b/api/AltV.Net.Shared/AltV.Net.Shared.csproj index 7a5523369..6c440b41a 100644 --- a/api/AltV.Net.Shared/AltV.Net.Shared.csproj +++ b/api/AltV.Net.Shared/AltV.Net.Shared.csproj @@ -1,9 +1,9 @@ - FabianTerhorst + FabianTerhorst,Doxoh AltV .NET Shared API - FabianTerhorst + FabianTerhorst,Doxoh https://github.com/altmp/coreclr-module https://github.com/altmp/coreclr-module git From 69d2a3d8f51fc2d2c2292d308a12e85aa852c887 Mon Sep 17 00:00:00 2001 From: doxoh Date: Tue, 26 Mar 2024 21:21:24 +0100 Subject: [PATCH 36/51] chore: update runtime --- runtime | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime b/runtime index f7c10dc5e..429df4862 160000 --- a/runtime +++ b/runtime @@ -1 +1 @@ -Subproject commit f7c10dc5e7f0ea46ee473a08cddc7baafc208956 +Subproject commit 429df486222fa3c24ef54b9248c29f1979be4702 From 643216c9bbc34a18618eb1c3ea791d8378d94518 Mon Sep 17 00:00:00 2001 From: doxoh Date: Thu, 29 Feb 2024 17:05:14 +0100 Subject: [PATCH 37/51] chore: add codeowner --- .github/CODEOWNERS | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index ff8a99de0..885ad9509 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,7 +1,7 @@ -* @fabianterhorst +* @fabianterhorst @doxoh /docs/ @lhoerion !/docs/*.md @lhoerion !/docs/*.yml @lhoerion /docs/filterConfig.yml @lhoerion -/api/AltV.Net.Async.CodeGen/ @zziger -/api/AltV.Net.Client/ @zziger @juztim +/api/AltV.Net.Async.CodeGen/ @zziger @doxoh +/api/AltV.Net.Client/ @zziger @juztim @doxoh From 44c2cedd24b83b83e9fe235fc103b36f1c10ebfc Mon Sep 17 00:00:00 2001 From: duydang <34796192+duydang2311@users.noreply.github.com> Date: Thu, 29 Feb 2024 23:16:55 +0700 Subject: [PATCH 38/51] feat: add Off methods for server, client, webview, audio, rml, websocket (#3) --- api/AltV.Net.Client/Alt.Events.cs | 351 +++++++++++++++-------------- api/AltV.Net.Client/Core.Events.cs | 64 ++++++ 2 files changed, 243 insertions(+), 172 deletions(-) diff --git a/api/AltV.Net.Client/Alt.Events.cs b/api/AltV.Net.Client/Alt.Events.cs index 9ae23f44e..8ede87c11 100644 --- a/api/AltV.Net.Client/Alt.Events.cs +++ b/api/AltV.Net.Client/Alt.Events.cs @@ -258,217 +258,224 @@ public static event ScriptRPCDelegate OnScriptRPC remove => CoreImpl.ScriptRPCHandler.Remove(value); } - public static void OnServer(string eventName, Function function) => CoreImpl.AddServerEventListener(eventName, function); - - public static void OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Function function) => CoreImpl.AddClientEventListener(eventName, function); - public static void OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); - public static void OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Function function) => CoreImpl.AddServerEventListener(eventName, function); + + public static Function OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Action function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static Function OnServer(string eventName, Func function) => CoreImpl.AddServerEventListener(eventName, Function.Create(Core, function)); + public static bool OffServer(string eventName, Function function) => CoreImpl.RemoveServerEventListener(eventName, function); + + public static Function OnClient(string eventName, Function function) => CoreImpl.AddClientEventListener(eventName, function); + public static Function OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Action function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static Function OnClient(string eventName, Func function) => CoreImpl.AddClientEventListener(eventName, Function.Create(Core, function)); + public static bool OffClient(string eventName, Function function) => CoreImpl.RemoveClientEventListener(eventName, function); #region WebView - public static void On(this IWebView webView, string eventName, Function function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, function); - public static void On(this IWebView webView, string eventName, Action function) => + public static Function On(this IWebView webView, string eventName, Function function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, function); + public static Function On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Action function) => + public static Function On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Action function) => + public static Function On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Func function) => + public static Function On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Action function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Func function) => + public static Function On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebView webView, string eventName, Func function) => CoreImpl.AddWebViewEventListener(webView.WebViewNativePointer, eventName, Function.Create(Core, function)); + public static bool Off(this IWebView webView, string eventName, Function function) => CoreImpl.RemoveWebViewEventListener(webView.WebViewNativePointer, eventName, function); #endregion #region RmlElement - public static void OnRmlEvent(this IRmlElement rmlElement, string eventName, Action> function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); + public static Function OnRmlEvent(this IRmlElement rmlElement, string eventName, Action> function) => CoreImpl.AddRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, Function.Create(Core, function)); + public static bool OffRmlEvent(this IRmlElement rmlElement, string eventName, Function function) => CoreImpl.RemoveRmlElementEventListener(rmlElement.RmlElementNativePointer, eventName, function); #endregion #region Websocket - public static void On(this IWebSocketClient webSocketClient, string eventName, Function function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, function); - public static void On(this IWebSocketClient webSocketClient, string eventName, Action function) => + public static Function On(this IWebSocketClient webSocketClient, string eventName, Function function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, function); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Action function) => + public static Function On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Action function) => + public static Function On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Action function) => + public static Function On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Action function) => + public static Function On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Action function) => + public static Function On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Func function) => + public static Function On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Action function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Func function) => + public static Function On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Func function) => + public static Function On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Func function) => + public static Function On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Func function) => + public static Function On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Func function) => + public static Function On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IWebSocketClient webSocketClient, string eventName, Func function) => CoreImpl.AddWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, Function.Create(Core, function)); + public static bool Off(this IWebSocketClient webSocketClient, string eventName, Function function) => CoreImpl.RemoveWebSocketEventListener(webSocketClient.WebSocketClientNativePointer, eventName, function); #endregion #region Audio - public static void On(this IAudio audio, string eventName, Function function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, function); - public static void On(this IAudio audio, string eventName, Action function) => + public static Function On(this IAudio audio, string eventName, Function function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, function); + public static Function On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Action function) => + public static Function On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Action function) => + public static Function On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Func function) => + public static Function On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Action function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Func function) => + public static Function On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); - public static void On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static Function On(this IAudio audio, string eventName, Func function) => CoreImpl.AddAudioEventListener(audio.AudioNativePointer, eventName, Function.Create(Core, function)); + public static bool Off(this IAudio audio, string eventName, Function function) => CoreImpl.RemoveAudioEventListener(audio.AudioNativePointer, eventName, function); #endregion } diff --git a/api/AltV.Net.Client/Core.Events.cs b/api/AltV.Net.Client/Core.Events.cs index 352984991..20b2850f5 100644 --- a/api/AltV.Net.Client/Core.Events.cs +++ b/api/AltV.Net.Client/Core.Events.cs @@ -733,5 +733,69 @@ public void OnScriptRPC(IntPtr eventpointer, string name, IntPtr[] args, ushort UnansweredClientRpcRequest.Remove(answerid); } } + + public bool RemoveServerEventListener(string name, Function function) + { + if (function is null + || !ServerEventBus.TryGetValue(name, out var eventHandlers)) + { + return false; + } + return eventHandlers.Remove(function); + } + + public bool RemoveClientEventListener(string name, Function function) + { + if (function is null + || !ClientEventBus.TryGetValue(name, out var eventHandlers)) + { + return false; + } + return eventHandlers.Remove(function); + } + + public bool RemoveWebViewEventListener(IntPtr webViewPtr, string name, Function function) + { + if (function is null + || !WebViewEventBus.TryGetValue(webViewPtr, out var eventHandlerDictionary) + || !eventHandlerDictionary.TryGetValue(name, out var eventHandlers)) + { + return false; + } + return eventHandlers.Remove(function); + } + + public bool RemoveAudioEventListener(IntPtr audioPtr, string name, Function function) + { + if (function is null + || !AudioEventBus.TryGetValue(audioPtr, out var eventHandlerDictionary) + || !eventHandlerDictionary.TryGetValue(name, out var eventHandlers)) + { + return false; + } + return eventHandlers.Remove(function); + } + + public bool RemoveRmlElementEventListener(IntPtr rmlElementPtr, string name, Function function) + { + if (function is null + || !RmlElementEventBus.TryGetValue(rmlElementPtr, out var eventHandlerDictionary) + || !eventHandlerDictionary.TryGetValue(name, out var eventHandlers)) + { + return false; + } + return eventHandlers.Remove(function); + } + + public bool RemoveWebSocketEventListener(IntPtr webSocketPtr, string name, Function function) + { + if (function is null + || !WebSocketEventBus.TryGetValue(webSocketPtr, out var eventHandlerDictionary) + || !eventHandlerDictionary.TryGetValue(name, out var eventHandlers)) + { + return false; + } + return eventHandlers.Remove(function); + } } } \ No newline at end of file From 324e3d9b33f7bed4470d91dad0d1c498231b0354 Mon Sep 17 00:00:00 2001 From: doxoh Date: Thu, 29 Feb 2024 19:55:31 +0100 Subject: [PATCH 39/51] fix(client): PLAYER_ENTER_VEHICLE and PLAYER_LEAVE_VEHICLE --- api/AltV.Net.CApi/Events/ClientEvents.cs | 4 ++-- api/AltV.Net.Client/Core.Events.cs | 24 ++++++++---------------- api/AltV.Net.Client/ModuleWrapper.cs | 8 ++++---- 3 files changed, 14 insertions(+), 22 deletions(-) diff --git a/api/AltV.Net.CApi/Events/ClientEvents.cs b/api/AltV.Net.CApi/Events/ClientEvents.cs index 8d634d5df..f125a5467 100644 --- a/api/AltV.Net.CApi/Events/ClientEvents.cs +++ b/api/AltV.Net.CApi/Events/ClientEvents.cs @@ -17,8 +17,8 @@ namespace AltV.Net.CApi.ClientEvents public delegate void PlayerSpawnModuleDelegate(); public delegate void PlayerDisconnectModuleDelegate(); - public delegate void PlayerEnterVehicleModuleDelegate(IntPtr pointer, byte seat); - public delegate void PlayerLeaveVehicleModuleDelegate(IntPtr pointer, byte seat); + public delegate void PlayerEnterVehicleModuleDelegate(IntPtr baseObject, BaseObjectType type, byte seat); + public delegate void PlayerLeaveVehicleModuleDelegate(IntPtr baseObject, BaseObjectType type, byte seat); public delegate void PlayerChangeVehicleSeatModuleDelegate(IntPtr pointer, byte oldSeat, byte newSeat); public delegate void PlayerChangeAnimationModuleDelegate(IntPtr pointer, uint oldDict, uint newDict, uint oldName, uint newName); public delegate void PlayerChangeInteriorModuleDelegate(IntPtr pointer, uint oldIntLoc, uint newIntLoc); diff --git a/api/AltV.Net.Client/Core.Events.cs b/api/AltV.Net.Client/Core.Events.cs index 20b2850f5..15273cf0e 100644 --- a/api/AltV.Net.Client/Core.Events.cs +++ b/api/AltV.Net.Client/Core.Events.cs @@ -249,17 +249,13 @@ public void OnPlayerDisconnect() DisconnectEventHandler.GetEvents().ForEachCatching(fn => fn(), $"event {nameof(OnPlayerDisconnect)}"); } - public void OnPlayerEnterVehicle(IntPtr pointer, byte seat) + public void OnPlayerEnterVehicle(IntPtr pointer, BaseObjectType type, byte seat) { - var vehicle = PoolManager.Vehicle.Get(pointer); + var vehicle = (IVehicle)PoolManager.Get(pointer, type); if (vehicle is null) { - vehicle = PoolManager.LocalVehicle.Get(pointer); - if (vehicle is null) - { - Console.WriteLine("Invalid vehicle: " + pointer); - return; - } + Console.WriteLine("Invalid vehicle: " + pointer); + return; } EnterVehicleEventHandler.GetEvents().ForEachCatching(fn => fn(vehicle, seat), $"event {nameof(OnPlayerEnterVehicle)}"); @@ -479,17 +475,13 @@ public void OnRemoveEntity(IntPtr targetPtr, BaseObjectType type) RemoveEntityEventHandler.GetEvents().ForEachCatching(fn => fn(target), $"event {nameof(OnRemoveEntity)}"); } - public void OnPlayerLeaveVehicle(IntPtr vehiclePtr, byte seat) + public void OnPlayerLeaveVehicle(IntPtr vehiclePtr, BaseObjectType type, byte seat) { - var vehicle = PoolManager.Vehicle.Get(vehiclePtr); + var vehicle = (IVehicle)PoolManager.Get(vehiclePtr, type); if (vehicle is null) { - vehicle = PoolManager.LocalVehicle.Get(vehiclePtr); - if (vehicle is null) - { - Console.WriteLine("Invalid vehicle: " + vehiclePtr); - return; - } + Console.WriteLine("Invalid vehicle: " + vehiclePtr); + return; } PlayerLeaveVehicleEventHandler.GetEvents().ForEachCatching(fn => fn(vehicle, seat), $"event {nameof(OnPlayerLeaveVehicle)}"); diff --git a/api/AltV.Net.Client/ModuleWrapper.cs b/api/AltV.Net.Client/ModuleWrapper.cs index f23ba6794..572ca185c 100644 --- a/api/AltV.Net.Client/ModuleWrapper.cs +++ b/api/AltV.Net.Client/ModuleWrapper.cs @@ -209,9 +209,9 @@ public static void OnPlayerDisconnect() _core.OnPlayerDisconnect(); } - public static void OnPlayerEnterVehicle(IntPtr pointer, byte seat) + public static void OnPlayerEnterVehicle(IntPtr pointer, BaseObjectType type, byte seat) { - _core.OnPlayerEnterVehicle(pointer, seat); + _core.OnPlayerEnterVehicle(pointer, type, seat); } public static void OnGameEntityCreate(IntPtr pointer, byte type) @@ -396,9 +396,9 @@ public static void OnWorldObjectPositionChange(IntPtr target, BaseObjectType typ _core.OnWorldObjectPositionChange(target, type, position); } - public static void OnPlayerLeaveVehicle(IntPtr vehicle, byte seat) + public static void OnPlayerLeaveVehicle(IntPtr vehicle, BaseObjectType type, byte seat) { - _core.OnPlayerLeaveVehicle(vehicle, seat); + _core.OnPlayerLeaveVehicle(vehicle, type, seat); } public static void OnWorldObjectStreamIn(IntPtr target, BaseObjectType type) From 35c8726c6faa33d83f0b47e16f7b24335cbeee5e Mon Sep 17 00:00:00 2001 From: doxoh Date: Thu, 29 Feb 2024 20:45:59 +0100 Subject: [PATCH 40/51] fix(client): localped type --- api/AltV.Net.Client/Elements/Entities/LocalPed.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/AltV.Net.Client/Elements/Entities/LocalPed.cs b/api/AltV.Net.Client/Elements/Entities/LocalPed.cs index 656551c2f..96f4dd892 100644 --- a/api/AltV.Net.Client/Elements/Entities/LocalPed.cs +++ b/api/AltV.Net.Client/Elements/Entities/LocalPed.cs @@ -17,7 +17,7 @@ private static IntPtr GetPedPointer(ICore core, IntPtr nativePointer) } } - public LocalPed(ICore core, IntPtr nativePointer, uint id) : base(core, GetPedPointer(core, nativePointer), BaseObjectType.LocalVehicle, id) + public LocalPed(ICore core, IntPtr nativePointer, uint id) : base(core, GetPedPointer(core, nativePointer), BaseObjectType.LocalPed, id) { LocalPedNativePointer = nativePointer; } From 02eeb8f7f11276adf9ec76c0e86b4fa8237a5b74 Mon Sep 17 00:00:00 2001 From: LightSrc Date: Thu, 7 Mar 2024 22:10:49 +0200 Subject: [PATCH 41/51] fix(client): RmlElement type (#5) * fix(client): RmlElement type * fix(client): typos in PoolManager --- .../Elements/Entities/RmlElement.cs | 2 +- .../Elements/Pools/PoolManager.cs | 46 +++++++++---------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/api/AltV.Net.Client/Elements/Entities/RmlElement.cs b/api/AltV.Net.Client/Elements/Entities/RmlElement.cs index c7dde5eea..416b97881 100644 --- a/api/AltV.Net.Client/Elements/Entities/RmlElement.cs +++ b/api/AltV.Net.Client/Elements/Entities/RmlElement.cs @@ -19,7 +19,7 @@ private static IntPtr GetBaseObjectPointer(ICore core, IntPtr rmlElementPointer) public IntPtr RmlElementNativePointer { get; } public override IntPtr NativePointer => RmlElementNativePointer; - public RmlElement(ICore core, IntPtr rmlElementPointer, uint id) : base(core, GetBaseObjectPointer(core, rmlElementPointer), BaseObjectType.RmlDocument, id) + public RmlElement(ICore core, IntPtr rmlElementPointer, uint id) : base(core, GetBaseObjectPointer(core, rmlElementPointer), BaseObjectType.RmlElement, id) { RmlElementNativePointer = rmlElementPointer; } diff --git a/api/AltV.Net.Client/Elements/Pools/PoolManager.cs b/api/AltV.Net.Client/Elements/Pools/PoolManager.cs index def6a2eb3..d1d2550c2 100644 --- a/api/AltV.Net.Client/Elements/Pools/PoolManager.cs +++ b/api/AltV.Net.Client/Elements/Pools/PoolManager.cs @@ -69,44 +69,44 @@ public PoolManager( IBaseObjectPool rmlDocumentPool, IEntityPool localObjectPool, IEntityPool objectPool, - IBaseObjectPool virtualEntitiyPool, - IBaseObjectPool virtualEntitiyGroupPool, + IBaseObjectPool virtualEntityPool, + IBaseObjectPool virtualEntityGroupPool, IBaseObjectPool textLabelPool, IBaseObjectPool colShapePool, IBaseObjectPool localVehiclePool, IBaseObjectPool localPedPool, IBaseObjectPool audioFilterPool, IBaseObjectPool audioOutputPool, - IBaseObjectPool AudioOutputFrontendPool, - IBaseObjectPool AudioOutputAttachedPool, - IBaseObjectPool AudioOutputWorldPool, + IBaseObjectPool audioOutputFrontendPool, + IBaseObjectPool audioOutputAttachedPool, + IBaseObjectPool audioOutputWorldPool, IBaseObjectPool fontPool, IBaseObjectPool markerPool) { - this.Player = playerPool; - this.Vehicle = vehiclePool; - this.Ped = pedPool; - this.Blip = blipPool; - this.Checkpoint = checkpointPool; - this.Audio = audioPool; - this.HttpClient = httpClientPool; - this.WebSocketClient = webSocketClientPool; - this.WebView = webViewPool; - this.RmlElement = rmlElementPool; - this.RmlDocument = rmlDocumentPool; - this.LocalObject = localObjectPool; - this.Object = objectPool; - this.VirtualEntity = virtualEntitiyPool; - this.VirtualEntityGroup = virtualEntitiyGroupPool; + Player = playerPool; + Vehicle = vehiclePool; + Ped = pedPool; + Blip = blipPool; + Checkpoint = checkpointPool; + Audio = audioPool; + HttpClient = httpClientPool; + WebSocketClient = webSocketClientPool; + WebView = webViewPool; + RmlElement = rmlElementPool; + RmlDocument = rmlDocumentPool; + LocalObject = localObjectPool; + Object = objectPool; + VirtualEntity = virtualEntityPool; + VirtualEntityGroup = virtualEntityGroupPool; TextLabel = textLabelPool; ColShape = colShapePool; LocalVehicle = localVehiclePool; LocalPed = localPedPool; AudioFilter = audioFilterPool; AudioOutput = audioOutputPool; - AudioOutputFrontend = AudioOutputFrontendPool; - AudioOutputAttached = AudioOutputAttachedPool; - AudioOutputWorld = AudioOutputWorldPool; + AudioOutputFrontend = audioOutputFrontendPool; + AudioOutputAttached = audioOutputAttachedPool; + AudioOutputWorld = audioOutputWorldPool; Font = fontPool; Marker = markerPool; } From 0b7f0453eb18e4506e51b372cdff89ceaf20907f Mon Sep 17 00:00:00 2001 From: doxoh Date: Wed, 13 Mar 2024 17:52:25 +0100 Subject: [PATCH 42/51] fix(client): change types for local entites --- api/AltV.Net.CApi/Events/ClientEvents.cs | 14 +++++------ api/AltV.Net.Client/Core.Events.cs | 32 ++++++++++++------------ api/AltV.Net.Client/ModuleWrapper.cs | 24 +++++++++--------- 3 files changed, 35 insertions(+), 35 deletions(-) diff --git a/api/AltV.Net.CApi/Events/ClientEvents.cs b/api/AltV.Net.CApi/Events/ClientEvents.cs index f125a5467..e4c8822aa 100644 --- a/api/AltV.Net.CApi/Events/ClientEvents.cs +++ b/api/AltV.Net.CApi/Events/ClientEvents.cs @@ -19,14 +19,14 @@ namespace AltV.Net.CApi.ClientEvents public delegate void PlayerDisconnectModuleDelegate(); public delegate void PlayerEnterVehicleModuleDelegate(IntPtr baseObject, BaseObjectType type, byte seat); public delegate void PlayerLeaveVehicleModuleDelegate(IntPtr baseObject, BaseObjectType type, byte seat); - public delegate void PlayerChangeVehicleSeatModuleDelegate(IntPtr pointer, byte oldSeat, byte newSeat); - public delegate void PlayerChangeAnimationModuleDelegate(IntPtr pointer, uint oldDict, uint newDict, uint oldName, uint newName); - public delegate void PlayerChangeInteriorModuleDelegate(IntPtr pointer, uint oldIntLoc, uint newIntLoc); + public delegate void PlayerChangeVehicleSeatModuleDelegate(IntPtr pointer, BaseObjectType type, byte oldSeat, byte newSeat); + public delegate void PlayerChangeAnimationModuleDelegate(IntPtr pointer, BaseObjectType type, uint oldDict, uint newDict, uint oldName, uint newName); + public delegate void PlayerChangeInteriorModuleDelegate(IntPtr pointer, BaseObjectType type, uint oldIntLoc, uint newIntLoc); public delegate void PlayerWeaponShootModuleDelegate(uint weapon, ushort totalAmmo, ushort ammoInClip); public delegate void PlayerWeaponChangeModuleDelegate(uint oldWeapon, uint newWeapon); - public delegate void GameEntityCreateModuleDelegate(IntPtr pointer, byte type); - public delegate void GameEntityDestroyModuleDelegate(IntPtr pointer, byte type); + public delegate void GameEntityCreateModuleDelegate(IntPtr pointer, BaseObjectType type); + public delegate void GameEntityDestroyModuleDelegate(IntPtr pointer, BaseObjectType type); public delegate void AnyResourceErrorModuleDelegate(string name); public delegate void AnyResourceStartModuleDelegate(string name); @@ -78,8 +78,8 @@ public delegate void CheckpointModuleDelegate(IntPtr colShapePointer, IntPtr tar public delegate void EntityHitEntityModuleDelegate(IntPtr targetPointer, BaseObjectType targetType, IntPtr damagerPointer, BaseObjectType damagerType, uint weaponHash); - public delegate void PlayerStartEnterVehicleModuleDelegate(IntPtr targetPointer, IntPtr player, byte seat); - public delegate void PlayerStartLeaveVehicleModuleDelegate(IntPtr targetPointer, IntPtr player, byte seat); + public delegate void PlayerStartEnterVehicleModuleDelegate(IntPtr targetPointer, BaseObjectType type, IntPtr player, BaseObjectType playerType, byte seat); + public delegate void PlayerStartLeaveVehicleModuleDelegate(IntPtr targetPointer, BaseObjectType type, IntPtr player, BaseObjectType playerType, byte seat); public delegate void PlayerBulletHitModuleDelegate(uint weapon, IntPtr victimPointer, BaseObjectType victimType, Position pos); diff --git a/api/AltV.Net.Client/Core.Events.cs b/api/AltV.Net.Client/Core.Events.cs index 15273cf0e..7be66dd7e 100644 --- a/api/AltV.Net.Client/Core.Events.cs +++ b/api/AltV.Net.Client/Core.Events.cs @@ -261,9 +261,9 @@ public void OnPlayerEnterVehicle(IntPtr pointer, BaseObjectType type, byte seat) EnterVehicleEventHandler.GetEvents().ForEachCatching(fn => fn(vehicle, seat), $"event {nameof(OnPlayerEnterVehicle)}"); } - public void OnGameEntityCreate(IntPtr pointer, byte type) + public void OnGameEntityCreate(IntPtr pointer, BaseObjectType type) { - var baseObject = PoolManager.Get(pointer, (BaseObjectType) type); + var baseObject = PoolManager.Get(pointer, type); if (baseObject is not IEntity entity) { Console.WriteLine("Invalid entity: " + pointer + " " + (baseObject == null)); @@ -273,9 +273,9 @@ public void OnGameEntityCreate(IntPtr pointer, byte type) GameEntityCreateEventHandler.GetEvents().ForEachCatching(fn => fn(entity), $"event {nameof(OnGameEntityCreate)}"); } - public void OnGameEntityDestroy(IntPtr pointer, byte type) + public void OnGameEntityDestroy(IntPtr pointer, BaseObjectType type) { - var baseObject = PoolManager.Get(pointer, (BaseObjectType) type); + var baseObject = PoolManager.Get(pointer, type); if (baseObject is not IEntity entity) { Console.WriteLine("Invalid entity: " + pointer); @@ -339,14 +339,14 @@ public void OnGlobalSyncedMetaChange(string key, IntPtr valuePtr, IntPtr oldValu GlobalSyncedMetaChangeEventHandler.GetEvents().ForEachCatching(fn => fn(key, value.ToObject(), oldValue.ToObject()), $"event {nameof(OnGlobalSyncedMetaChange)}"); } - public void OnPlayerChangeVehicleSeat(IntPtr vehiclePtr, byte oldSeat, byte newSeat) + public void OnPlayerChangeVehicleSeat(IntPtr vehiclePtr, BaseObjectType type, byte oldSeat, byte newSeat) { - var vehicle = PoolManager.Vehicle.Get(vehiclePtr); + var vehicle = (IVehicle)PoolManager.Get(vehiclePtr, type); PlayerChangeVehicleSeatEventHandler.GetEvents().ForEachCatching(fn => fn(vehicle, oldSeat, newSeat), $"event {nameof(OnPlayerChangeVehicleSeat)}"); } - public void OnPlayerChangeAnimation(IntPtr playerPtr, uint oldDict, uint newDict, uint oldName, uint newName) + public void OnPlayerChangeAnimation(IntPtr playerPtr, BaseObjectType type, uint oldDict, uint newDict, uint oldName, uint newName) { - var player = PoolManager.Player.Get(playerPtr); + var player = (IPlayer)PoolManager.Get(playerPtr, type); if (player == null) { Alt.LogWarning("OnPlayerChangeAnimation: Invalid player " + playerPtr); @@ -356,9 +356,9 @@ public void OnPlayerChangeAnimation(IntPtr playerPtr, uint oldDict, uint newDict PlayerChangeAnimationEventHandler.GetEvents().ForEachCatching(fn => fn(player, oldDict, newDict, oldName, newName), $"event {nameof(OnPlayerChangeAnimation)}"); } - public void OnPlayerChangeInterior(IntPtr playerPtr, uint oldIntLoc, uint newIntLoc) + public void OnPlayerChangeInterior(IntPtr playerPtr, BaseObjectType type, uint oldIntLoc, uint newIntLoc) { - var player = PoolManager.Player.Get(playerPtr); + var player = (IPlayer)PoolManager.Get(playerPtr, type); if (player == null) { Alt.LogWarning("OnPlayerChangeInterior: Invalid player " + playerPtr); @@ -654,18 +654,18 @@ public void OnMetaChange(IntPtr targetPtr, BaseObjectType type, string key, IntP MetaChangeEventHandler.GetEvents().ForEachCatching(fn => fn(target, key, value.ToObject(), oldValue.ToObject()), $"event {nameof(OnMetaChange)}"); } - public void OnPlayerStartEnterVehicle(IntPtr targetpointer, IntPtr playerPointer, byte seat) + public void OnPlayerStartEnterVehicle(IntPtr targetpointer, BaseObjectType type, IntPtr playerPointer, BaseObjectType playerType, byte seat) { - var vehicle = PoolManager.Vehicle.Get(targetpointer); - var player = PoolManager.Player.Get(playerPointer); + var vehicle = (IVehicle)PoolManager.Get(targetpointer, type); + var player = (IPlayer)PoolManager.Get(playerPointer, playerType); PlayerStartEnterVehicleEventHandler.GetEvents().ForEachCatching(fn => fn(vehicle, player, seat), $"event {nameof(OnPlayerStartEnterVehicle)}"); } - public void OnPlayerStartLeaveVehicle(IntPtr targetpointer, IntPtr playerPointer, byte seat) + public void OnPlayerStartLeaveVehicle(IntPtr targetpointer, BaseObjectType type, IntPtr playerPointer, BaseObjectType playerType, byte seat) { - var vehicle = PoolManager.Vehicle.Get(targetpointer); - var player = PoolManager.Player.Get(playerPointer); + var vehicle = (IVehicle)PoolManager.Get(targetpointer, type); + var player = (IPlayer)PoolManager.Get(playerPointer, playerType); PlayerStartLeaveVehicleEventHandler.GetEvents().ForEachCatching(fn => fn(vehicle, player, seat), $"event {nameof(OnPlayerStartLeaveVehicle)}"); } diff --git a/api/AltV.Net.Client/ModuleWrapper.cs b/api/AltV.Net.Client/ModuleWrapper.cs index 572ca185c..edaeccd75 100644 --- a/api/AltV.Net.Client/ModuleWrapper.cs +++ b/api/AltV.Net.Client/ModuleWrapper.cs @@ -214,12 +214,12 @@ public static void OnPlayerEnterVehicle(IntPtr pointer, BaseObjectType type, byt _core.OnPlayerEnterVehicle(pointer, type, seat); } - public static void OnGameEntityCreate(IntPtr pointer, byte type) + public static void OnGameEntityCreate(IntPtr pointer, BaseObjectType type) { _core.OnGameEntityCreate(pointer, type); } - public static void OnGameEntityDestroy(IntPtr pointer, byte type) + public static void OnGameEntityDestroy(IntPtr pointer, BaseObjectType type) { _core.OnGameEntityDestroy(pointer, type); } @@ -323,19 +323,19 @@ public static void OnConnectionComplete() _core.OnConnectionComplete(); } - public static void OnPlayerChangeVehicleSeat(IntPtr vehicle, byte oldSeat, byte newSeat) + public static void OnPlayerChangeVehicleSeat(IntPtr vehicle, BaseObjectType type, byte oldSeat, byte newSeat) { - _core.OnPlayerChangeVehicleSeat(vehicle, oldSeat, newSeat); + _core.OnPlayerChangeVehicleSeat(vehicle, type, oldSeat, newSeat); } - public static void OnPlayerChangeAnimation(IntPtr player, uint oldDict, uint newDict, uint oldName, uint newName) + public static void OnPlayerChangeAnimation(IntPtr player, BaseObjectType type, uint oldDict, uint newDict, uint oldName, uint newName) { - _core.OnPlayerChangeAnimation(player, oldDict, newDict, oldName, newName); + _core.OnPlayerChangeAnimation(player, type, oldDict, newDict, oldName, newName); } - public static void OnPlayerChangeInterior(IntPtr player, uint oldIntLoc, uint newIntLoc) + public static void OnPlayerChangeInterior(IntPtr player, BaseObjectType type, uint oldIntLoc, uint newIntLoc) { - _core.OnPlayerChangeInterior(player, oldIntLoc, newIntLoc); + _core.OnPlayerChangeInterior(player, type, oldIntLoc, newIntLoc); } public static void OnPlayerWeaponShoot(uint weapon, ushort totalAmmo, ushort ammoInClip) @@ -426,14 +426,14 @@ public static void OnMetaChange(IntPtr target, BaseObjectType type, string key, _core.OnMetaChange(target, type, key, value, oldvalue); } - public static void OnPlayerStartEnterVehicle(IntPtr targetpointer, IntPtr player, byte seat) + public static void OnPlayerStartEnterVehicle(IntPtr targetpointer, BaseObjectType type, IntPtr player, BaseObjectType playerType, byte seat) { - _core.OnPlayerStartEnterVehicle(targetpointer, player, seat); + _core.OnPlayerStartEnterVehicle(targetpointer, type, player, playerType, seat); } - public static void OnPlayerStartLeaveVehicle(IntPtr targetpointer, IntPtr player, byte seat) + public static void OnPlayerStartLeaveVehicle(IntPtr targetpointer, BaseObjectType type, IntPtr player, BaseObjectType playerType, byte seat) { - _core.OnPlayerStartLeaveVehicle(targetpointer, player, seat); + _core.OnPlayerStartLeaveVehicle(targetpointer, type, player, playerType, seat); } public static void OnEntityHitEntity(IntPtr targetpointer, BaseObjectType targettype, IntPtr damagerpointer, BaseObjectType damagertype, uint weaponhash) From 279154bb229cdd924f20c4e56415aec0c436a436 Mon Sep 17 00:00:00 2001 From: doxoh Date: Sun, 17 Mar 2024 16:32:17 +0100 Subject: [PATCH 43/51] chore: fix ci (wa) --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e7ca8d6dc..431869c65 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -264,7 +264,7 @@ jobs: echo "branch=${build_info%%/*}" >> $GITHUB_OUTPUT echo "version=${build_info##*/}" >> $GITHUB_OUTPUT echo "sdk_commit=$(cat ./modules/sdk_version.txt)" >> $GITHUB_OUTPUT - - run: npm i @altmp/upload-tool@latest + - run: npm i @altmp/upload-tool@1.2.0 - run: npx alt-upload linux coreclr-module/$BRANCH/x64_linux $VERSION $SDK_VERSION working-directory: ./modules env: From 0c300359bdda5529794cdb2b384ba2e8d39aaec3 Mon Sep 17 00:00:00 2001 From: doxoh Date: Sun, 17 Mar 2024 16:40:35 +0100 Subject: [PATCH 44/51] chore: ci remove wa --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 431869c65..b25684ac3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -264,7 +264,7 @@ jobs: echo "branch=${build_info%%/*}" >> $GITHUB_OUTPUT echo "version=${build_info##*/}" >> $GITHUB_OUTPUT echo "sdk_commit=$(cat ./modules/sdk_version.txt)" >> $GITHUB_OUTPUT - - run: npm i @altmp/upload-tool@1.2.0 + - run: npm i @altmp/upload-tool@latest fast-xml-parser@4.3.6 - run: npx alt-upload linux coreclr-module/$BRANCH/x64_linux $VERSION $SDK_VERSION working-directory: ./modules env: From 9bea34ebe54713bec27b8206aafff63498057888 Mon Sep 17 00:00:00 2001 From: doxoh Date: Mon, 18 Mar 2024 16:05:11 +0100 Subject: [PATCH 45/51] feat(client): add OnPLayerChangeAnimation and OnPlayerChangeInterior --- api/AltV.Net.Client/Alt.Events.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/api/AltV.Net.Client/Alt.Events.cs b/api/AltV.Net.Client/Alt.Events.cs index 8ede87c11..d0f4417b9 100644 --- a/api/AltV.Net.Client/Alt.Events.cs +++ b/api/AltV.Net.Client/Alt.Events.cs @@ -170,6 +170,18 @@ public static event NetOwnerChangeDelegate OnNetOwnerChange remove => CoreImpl.NetOwnerChangeEventHandler.Remove(value); } + public static event PlayerChangeAnimationDelegate OnPLayerChangeAnimation + { + add => CoreImpl.PlayerChangeAnimationEventHandler.Add(value); + remove => CoreImpl.PlayerChangeAnimationEventHandler.Remove(value); + } + + public static event PlayerChangeInteriorDelegate OnPlayerChangeInterior + { + add => CoreImpl.PlayerChangeInteriorEventHandler.Add(value); + remove => CoreImpl.PlayerChangeInteriorEventHandler.Remove(value); + } + public static event WeaponDamageDelegate OnWeaponDamage { add => CoreImpl.WeaponDamageEventHandler.Add(value); From a4bbf893160eecdaaf8ea50d1f51dd97008c1515 Mon Sep 17 00:00:00 2001 From: duydang <34796192+duydang2311@users.noreply.github.com> Date: Tue, 19 Mar 2024 14:12:58 +0700 Subject: [PATCH 46/51] fix: fix events might be turned off if trying to call Remove multiple times (#8) --- api/AltV.Net.Shared/Events/HashSetEventHandler.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/api/AltV.Net.Shared/Events/HashSetEventHandler.cs b/api/AltV.Net.Shared/Events/HashSetEventHandler.cs index 27f7701eb..a2254fada 100644 --- a/api/AltV.Net.Shared/Events/HashSetEventHandler.cs +++ b/api/AltV.Net.Shared/Events/HashSetEventHandler.cs @@ -18,15 +18,19 @@ public HashSetEventHandler() public void Add(TEvent value) { if (value == null) return; - if (type != null) core.EventStateManager.AddHandler(type.Value); - events.Add(value); + if (events.Add(value)) + { + if (type != null) core.EventStateManager.AddHandler(type.Value); + } } public void Remove(TEvent value) { if (value == null) return; - if (type != null) core.EventStateManager.RemoveHandler(type.Value); - events.Remove(value); + if (events.Remove(value)) + { + if (type != null) core.EventStateManager.RemoveHandler(type.Value); + } } public HashSet GetEvents() => events; From ea084c47944a0ec10031bd0b6d104c9dbc19750c Mon Sep 17 00:00:00 2001 From: doxoh Date: Fri, 29 Mar 2024 23:21:31 +0100 Subject: [PATCH 47/51] feat(server): add BaseObjectCreate/BaseObjectRemove event --- api/AltV.Net.Async/AltAsync.RegisterEvents.cs | 26 +++++++++ api/AltV.Net.Async/AltAsync.cs | 12 ++++ api/AltV.Net.Async/AsyncCore.cs | 27 +++++++++ api/AltV.Net.Async/Events/Events.cs | 2 + api/AltV.Net/Alt.Events.cs | 12 ++++ api/AltV.Net/Alt.RegisterEvents.cs | 24 ++++++++ api/AltV.Net/Core.Events.cs | 55 +++++++++++++++++-- api/AltV.Net/Events/Events.cs | 3 + api/AltV.Net/ScriptEventType.cs | 4 +- 9 files changed, 160 insertions(+), 5 deletions(-) diff --git a/api/AltV.Net.Async/AltAsync.RegisterEvents.cs b/api/AltV.Net.Async/AltAsync.RegisterEvents.cs index 6dabcf8ce..2161f1cf2 100644 --- a/api/AltV.Net.Async/AltAsync.RegisterEvents.cs +++ b/api/AltV.Net.Async/AltAsync.RegisterEvents.cs @@ -25,6 +25,32 @@ public static void RegisterEvents(object target) ScriptFunction scriptFunction; switch (scriptEventType) { + case ScriptEventType.BaseObjectCreate: + { + scriptFunction = ScriptFunction.Create(eventMethodDelegate, + new[] { typeof(IBaseObject) }, isAsync: true); + if (scriptFunction == null) return; + OnBaseObjectCreate += (baseObject) => + { + var currScriptFunction = scriptFunction.Clone(); + currScriptFunction.Set(baseObject); + return currScriptFunction.CallAsync(); + }; + break; + } + case ScriptEventType.BaseObjectRemove: + { + scriptFunction = ScriptFunction.Create(eventMethodDelegate, + new[] { typeof(IBaseObject) }, isAsync: true); + if (scriptFunction == null) return; + OnBaseObjectRemove += (baseObject) => + { + var currScriptFunction = scriptFunction.Clone(); + currScriptFunction.Set(baseObject); + return currScriptFunction.CallAsync(); + }; + break; + } case ScriptEventType.Checkpoint: { scriptFunction = ScriptFunction.Create(eventMethodDelegate, diff --git a/api/AltV.Net.Async/AltAsync.cs b/api/AltV.Net.Async/AltAsync.cs index 751e45134..0307aa584 100644 --- a/api/AltV.Net.Async/AltAsync.cs +++ b/api/AltV.Net.Async/AltAsync.cs @@ -23,6 +23,18 @@ public static event CheckpointAsyncDelegate OnCheckpoint remove => Core.CheckpointAsyncEventHandler.Remove(value); } + public static event BaseObjectCreateAsyncDelegate OnBaseObjectCreate + { + add => Core.BaseObjectCreateAsyncEventHandler.Add(value); + remove => Core.BaseObjectCreateAsyncEventHandler.Remove(value); + } + + public static event BaseObjectRemoveAsyncDelegate OnBaseObjectRemove + { + add => Core.BaseObjectRemoveAsyncEventHandler.Add(value); + remove => Core.BaseObjectRemoveAsyncEventHandler.Remove(value); + } + public static event PlayerConnectAsyncDelegate OnPlayerConnect { add => Core.PlayerConnectAsyncEventHandler.Add(value); diff --git a/api/AltV.Net.Async/AsyncCore.cs b/api/AltV.Net.Async/AsyncCore.cs index 60570372a..2dbacf858 100644 --- a/api/AltV.Net.Async/AsyncCore.cs +++ b/api/AltV.Net.Async/AsyncCore.cs @@ -81,6 +81,12 @@ internal readonly AsyncEventHandler internal readonly AsyncEventHandler PlayerDisconnectAsyncEventHandler = new(EventType.PLAYER_DISCONNECT); + internal readonly AsyncEventHandler BaseObjectCreateAsyncEventHandler = + new(); + + internal readonly AsyncEventHandler BaseObjectRemoveAsyncEventHandler = + new(); + internal readonly AsyncEventHandler PlayerRemoveAsyncEventHandler = new(); @@ -357,6 +363,27 @@ await PlayerDisconnectAsyncEventHandler.CallAsync(@delegate => ); } + public override void OnCreateBaseObjectEvent(IBaseObject baseObject) + { + base.OnCreateBaseObjectEvent(baseObject); + if (!BaseObjectCreateAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await BaseObjectCreateAsyncEventHandler.CallAsync(@delegate => + @delegate(baseObject)); + }); + } + public override void OnRemoveBaseObjectEvent(IBaseObject baseObject) + { + base.OnRemoveBaseObjectEvent(baseObject); + if (!BaseObjectRemoveAsyncEventHandler.HasEvents()) return; + Task.Run(async () => + { + await BaseObjectRemoveAsyncEventHandler.CallAsync(@delegate => + @delegate(baseObject)); + }); + } + public override void OnPlayerRemoveEvent(IPlayer player) { base.OnPlayerRemoveEvent(player); diff --git a/api/AltV.Net.Async/Events/Events.cs b/api/AltV.Net.Async/Events/Events.cs index 6314681ac..6aa2a772d 100644 --- a/api/AltV.Net.Async/Events/Events.cs +++ b/api/AltV.Net.Async/Events/Events.cs @@ -28,6 +28,8 @@ public delegate Task PlayerHealAsyncDelegate(IPlayer target, ushort oldHealth, u public delegate Task PlayerDisconnectAsyncDelegate(IPlayer player, string reason); + public delegate Task BaseObjectCreateAsyncDelegate(IBaseObject baseObject); + public delegate Task BaseObjectRemoveAsyncDelegate(IBaseObject baseObject); public delegate Task PlayerRemoveAsyncDelegate(IPlayer player); public delegate Task VehicleRemoveAsyncDelegate(IVehicle vehicle); diff --git a/api/AltV.Net/Alt.Events.cs b/api/AltV.Net/Alt.Events.cs index cf5538cd3..50cd05aa8 100644 --- a/api/AltV.Net/Alt.Events.cs +++ b/api/AltV.Net/Alt.Events.cs @@ -26,6 +26,18 @@ public static event PlayerConnectDelegate OnPlayerConnect remove => CoreImpl.PlayerConnectEventHandler.Remove(value); } + public static event BaseObjectCreateDelegate OnBaseObjectCreate + { + add => CoreImpl.BaseObjectCreateEventHandler.Add(value); + remove => CoreImpl.BaseObjectCreateEventHandler.Remove(value); + } + + public static event BaseObjectRemoveDelegate OnBaseObjectRemove + { + add => CoreImpl.BaseObjectRemoveEventHandler.Add(value); + remove => CoreImpl.BaseObjectRemoveEventHandler.Remove(value); + } + public static event PlayerConnectDeniedDelegate OnPlayerConnectDenied { add => CoreImpl.PlayerConnectDeniedEventHandler.Add(value); diff --git a/api/AltV.Net/Alt.RegisterEvents.cs b/api/AltV.Net/Alt.RegisterEvents.cs index e38127c8e..09bf3b047 100644 --- a/api/AltV.Net/Alt.RegisterEvents.cs +++ b/api/AltV.Net/Alt.RegisterEvents.cs @@ -22,6 +22,30 @@ public static void RegisterEvents(object target) ScriptFunction scriptFunction; switch (scriptEventType) { + case ScriptEventType.BaseObjectCreate: + { + scriptFunction = ScriptFunction.Create(eventMethodDelegate, + new[] { typeof(IBaseObject) }); + if (scriptFunction == null) return; + OnBaseObjectCreate += (baseObject) => + { + scriptFunction.Set(baseObject); + scriptFunction.Call(); + }; + break; + } + case ScriptEventType.BaseObjectRemove: + { + scriptFunction = ScriptFunction.Create(eventMethodDelegate, + new[] { typeof(IBaseObject) }); + if (scriptFunction == null) return; + OnBaseObjectRemove += (baseObject) => + { + scriptFunction.Set(baseObject); + scriptFunction.Call(); + }; + break; + } case ScriptEventType.Checkpoint: { scriptFunction = ScriptFunction.Create(eventMethodDelegate, diff --git a/api/AltV.Net/Core.Events.cs b/api/AltV.Net/Core.Events.cs index 2c8d7651f..922669889 100644 --- a/api/AltV.Net/Core.Events.cs +++ b/api/AltV.Net/Core.Events.cs @@ -63,6 +63,12 @@ public partial class Core internal readonly IEventHandler PlayerDisconnectEventHandler = new HashSetEventHandler(EventType.PLAYER_DISCONNECT); + internal readonly IEventHandler BaseObjectCreateEventHandler = + new HashSetEventHandler(); + + internal readonly IEventHandler BaseObjectRemoveEventHandler = + new HashSetEventHandler(); + internal readonly IEventHandler PlayerRemoveEventHandler = new HashSetEventHandler(); @@ -2057,14 +2063,55 @@ public virtual void OnModuleLoaded(IModule module) { } - public void OnCreateBaseObject(IntPtr baseObject, BaseObjectType type, uint id) + public void OnCreateBaseObject(IntPtr baseObjectPtr, BaseObjectType type, uint id) + { + var baseObject = PoolManager.GetOrCreate(this, baseObjectPtr, type, id); + OnCreateBaseObjectEvent(baseObject); + } + + public virtual void OnCreateBaseObjectEvent(IBaseObject baseObject) + { + foreach (var @delegate in BaseObjectCreateEventHandler.GetEvents()) + { + try + { + @delegate(baseObject); + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnCreateBaseObjectEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnCreateBaseObjectEvent" + ":" + exception); + } + } + } + + public void OnRemoveBaseObject(IntPtr baseObjectPtr, BaseObjectType type) { - PoolManager.GetOrCreate(this, baseObject, type, id); + var baseObject = PoolManager.Get(baseObjectPtr, type); + OnRemoveBaseObjectEvent(baseObject); + PoolManager.Remove(baseObjectPtr, type); } - public void OnRemoveBaseObject(IntPtr baseObject, BaseObjectType type) + public virtual void OnRemoveBaseObjectEvent(IBaseObject baseObject) { - PoolManager.Remove(baseObject, type); + foreach (var @delegate in BaseObjectRemoveEventHandler.GetEvents()) + { + try + { + @delegate(baseObject); + } + catch (TargetInvocationException exception) + { + Alt.Log("exception at event:" + "OnRemoveBaseObjectEvent" + ":" + exception.InnerException); + } + catch (Exception exception) + { + Alt.Log("exception at event:" + "OnRemoveBaseObjectEvent" + ":" + exception); + } + } } public void OnPlayerRemove(IntPtr playerPointer) diff --git a/api/AltV.Net/Events/Events.cs b/api/AltV.Net/Events/Events.cs index 85e0245ce..cd9f358ea 100644 --- a/api/AltV.Net/Events/Events.cs +++ b/api/AltV.Net/Events/Events.cs @@ -27,6 +27,9 @@ public delegate void PlayerHealDelegate(IPlayer target, ushort oldHealth, ushort public delegate void PlayerDisconnectDelegate(IPlayer player, string reason); + public delegate void BaseObjectCreateDelegate(IBaseObject baseObject); + public delegate void BaseObjectRemoveDelegate(IBaseObject baseObject); + public delegate void PlayerRemoveDelegate(IPlayer player); public delegate void VehicleRemoveDelegate(IVehicle vehicle); diff --git a/api/AltV.Net/ScriptEventType.cs b/api/AltV.Net/ScriptEventType.cs index db64a4a52..2053cf95a 100644 --- a/api/AltV.Net/ScriptEventType.cs +++ b/api/AltV.Net/ScriptEventType.cs @@ -45,6 +45,8 @@ public enum ScriptEventType VehicleHorn, VehicleSiren, PlayerSpawn, - RequestSyncedScene + RequestSyncedScene, + BaseObjectCreate, + BaseObjectRemove, } } \ No newline at end of file From e1fdbe81ac66513cfdd58fe0b361ed523df03299 Mon Sep 17 00:00:00 2001 From: doxoh Date: Sat, 30 Mar 2024 23:06:18 +0100 Subject: [PATCH 48/51] chore: update runtime --- runtime | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime b/runtime index 429df4862..6ed88c5ad 160000 --- a/runtime +++ b/runtime @@ -1 +1 @@ -Subproject commit 429df486222fa3c24ef54b9248c29f1979be4702 +Subproject commit 6ed88c5adbbd0e4a290e5df703040809e227c2ab From 092081909a662541568a7731ea50fc0c7fe2467e Mon Sep 17 00:00:00 2001 From: doxoh Date: Sun, 31 Mar 2024 16:33:24 +0200 Subject: [PATCH 49/51] feat(shared): fix getMetaData --- api/AltV.Net.Client/Alt.GlobalMeta.cs | 7 +- .../Elements/Data/LocalStorage.cs | 2 +- .../Elements/Entities/Entity.cs | 2 +- .../Elements/Entities/VirtualEntity.cs | 2 +- .../Elements/Args/MValueConst.cs | 5 +- .../Elements/Entities/SharedBaseObject.cs | 4 +- api/AltV.Net.Shared/Utils/Utils.cs | 118 ++++++++++++++++++ api/AltV.Net/Alt.GlobalMeta.cs | 8 +- api/AltV.Net/Alt.Import.cs | 67 ++++++---- api/AltV.Net/Elements/Entities/Checkpoint.cs | 2 +- api/AltV.Net/Elements/Entities/Entity.cs | 2 +- api/AltV.Net/Elements/Entities/Player.cs | 2 +- .../Elements/Entities/VirtualEntity.cs | 2 +- 13 files changed, 185 insertions(+), 38 deletions(-) diff --git a/api/AltV.Net.Client/Alt.GlobalMeta.cs b/api/AltV.Net.Client/Alt.GlobalMeta.cs index cdf0e40c3..3f943eb88 100644 --- a/api/AltV.Net.Client/Alt.GlobalMeta.cs +++ b/api/AltV.Net.Client/Alt.GlobalMeta.cs @@ -1,4 +1,5 @@ using AltV.Net.Elements.Args; +using AltV.Net.Shared.Utils; namespace AltV.Net.Client { @@ -71,7 +72,7 @@ public static bool GetMetaData(string key, out T result) try { - result = (T)Convert.ChangeType(mValue.ToObject(), typeof(T)); + result = Utils.GetCastedMValue(mValue); return true; } catch @@ -90,7 +91,7 @@ public static bool GetSyncedMetaData(string key, out T result) try { - result = (T)Convert.ChangeType(mValue.ToObject(), typeof(T)); + result = Utils.GetCastedMValue(mValue); return true; } catch @@ -109,7 +110,7 @@ public static bool GetLocalMetaData(string key, out T result) try { - result = (T)Convert.ChangeType(mValue.ToObject(), typeof(T)); + result = Utils.GetCastedMValue(mValue); return true; } catch diff --git a/api/AltV.Net.Client/Elements/Data/LocalStorage.cs b/api/AltV.Net.Client/Elements/Data/LocalStorage.cs index cc3a0bbf7..73bf5a4c9 100644 --- a/api/AltV.Net.Client/Elements/Data/LocalStorage.cs +++ b/api/AltV.Net.Client/Elements/Data/LocalStorage.cs @@ -165,7 +165,7 @@ public bool Get(string key, out T result) try { - result = (T)Convert.ChangeType(mValue.ToObject(), typeof(T)); + result = Utils.GetCastedMValue(mValue); return true; } catch diff --git a/api/AltV.Net.Client/Elements/Entities/Entity.cs b/api/AltV.Net.Client/Elements/Entities/Entity.cs index 1914158d7..5c741f012 100644 --- a/api/AltV.Net.Client/Elements/Entities/Entity.cs +++ b/api/AltV.Net.Client/Elements/Entities/Entity.cs @@ -172,7 +172,7 @@ public bool GetStreamSyncedMetaData(string key, out T result) try { - result = (T)Convert.ChangeType(mValue.ToObject(), typeof(T)); + result = Utils.GetCastedMValue(mValue); return true; } catch diff --git a/api/AltV.Net.Client/Elements/Entities/VirtualEntity.cs b/api/AltV.Net.Client/Elements/Entities/VirtualEntity.cs index ecc28df66..5f83aa217 100644 --- a/api/AltV.Net.Client/Elements/Entities/VirtualEntity.cs +++ b/api/AltV.Net.Client/Elements/Entities/VirtualEntity.cs @@ -73,7 +73,7 @@ public bool GetStreamSyncedMetaData(string key, out T result) try { - result = (T)Convert.ChangeType(mValue.ToObject(), typeof(T)); + result = Utils.GetCastedMValue(mValue); return true; } catch diff --git a/api/AltV.Net.Shared/Elements/Args/MValueConst.cs b/api/AltV.Net.Shared/Elements/Args/MValueConst.cs index 8720c8867..912e82e45 100644 --- a/api/AltV.Net.Shared/Elements/Args/MValueConst.cs +++ b/api/AltV.Net.Shared/Elements/Args/MValueConst.cs @@ -188,7 +188,7 @@ public void CallFunction(MValueConst[] args, out MValueConst result) argsPointers[i] = args[i].nativePointer; } - result = new MValueConst(core, + result = new MValueConst(core, core.Library.Shared.MValueConst_CallFunction(core.NativePointer, nativePointer, argsPointers, length)); } @@ -252,6 +252,7 @@ public byte[] GetByteArray() public object ToObject() { + Console.WriteLine($"To Object: {type}"); switch (type) { case Type.None: @@ -316,7 +317,7 @@ public object ToObject() if (entityPointer == IntPtr.Zero) return null; // TODO get or create return core.PoolManager.Get(entityPointer, entityType); - + case Type.Function: return null; case Type.Vector3: diff --git a/api/AltV.Net.Shared/Elements/Entities/SharedBaseObject.cs b/api/AltV.Net.Shared/Elements/Entities/SharedBaseObject.cs index 17e305321..917e0f1d3 100644 --- a/api/AltV.Net.Shared/Elements/Entities/SharedBaseObject.cs +++ b/api/AltV.Net.Shared/Elements/Entities/SharedBaseObject.cs @@ -223,7 +223,7 @@ public bool GetMetaData(string key, out T result) try { - result = (T)Convert.ChangeType(mValue.ToObject(), typeof(T)); + result = Utils.Utils.GetCastedMValue(mValue); return true; } catch @@ -302,7 +302,7 @@ public bool GetSyncedMetaData(string key, out T result) try { - result = (T)Convert.ChangeType(mValue.ToObject(), typeof(T)); + result = Utils.Utils.GetCastedMValue(mValue); return true; } catch diff --git a/api/AltV.Net.Shared/Utils/Utils.cs b/api/AltV.Net.Shared/Utils/Utils.cs index 5e0d3e3c7..246a70966 100644 --- a/api/AltV.Net.Shared/Utils/Utils.cs +++ b/api/AltV.Net.Shared/Utils/Utils.cs @@ -1,4 +1,5 @@ using System.Text; +using AltV.Net.Elements.Args; namespace AltV.Net.Shared.Utils { @@ -25,5 +26,122 @@ public static uint Hash(string stringToHash) return hash; } + + public static T GetCastedMValue(MValueConst mValue) + { + object @object; + + if (mValue.type == MValueConst.Type.List) + { + if (mValue.ToObject() is IEnumerable sourceEnumerable) + { + + if (typeof(T).IsArray) + { + var resultList = new List(); + var elementType = typeof(T).IsArray ? typeof(T).GetElementType() : typeof(T).GetGenericArguments()[0]; + + foreach (var item in sourceEnumerable) + { + if (item == null) + { + resultList.Add(null); + } + else + { + resultList.Add(Convert.ChangeType(item, elementType)); + } + } + + var resultArray = Array.CreateInstance(elementType, resultList.Count); + for (int i = 0; i < resultList.Count; i++) + { + resultArray.SetValue(resultList[i], i); + } + return (T)(object)resultArray; + } + else + { + T resultList = default(T)!; + if (typeof(T).IsGenericType && (typeof(T).GetGenericTypeDefinition() == typeof(List<>))) + { + resultList = Activator.CreateInstance(); + + var type = typeof(T).GetGenericArguments()[0]; + foreach (var item in (object[])mValue.ToObject()) + { + if (item == null) + { + resultList.GetType().GetMethod("Add").Invoke(resultList, [null]); + } + else + { + resultList.GetType().GetMethod("Add").Invoke(resultList, [Convert.ChangeType(item, type)]); + } + } + } + return resultList; + } + } + else + { + throw new ArgumentException("Quellobjekt muss eine IEnumerable sein."); + } + + /* + T resultList = default(T)!; + if (typeof(T).IsGenericType && (typeof(T).GetGenericTypeDefinition() == typeof(List<>))) + { + resultList = Activator.CreateInstance(); + + var type = typeof(T).GetGenericArguments()[0]; + foreach (var item in (object[])mValue.ToObject()) + { + if (item == null) + { + resultList.GetType().GetMethod("Add").Invoke(resultList, [null]); + } + else + { + resultList.GetType().GetMethod("Add").Invoke(resultList, [Convert.ChangeType(item, type)]); + } + } + } + + return resultList;*/ + } + + if (mValue.type == MValueConst.Type.Dict) + { + T resultDictionary = default(T); + if (typeof(T).IsGenericType && typeof(T).GetGenericTypeDefinition() == typeof(Dictionary<,>)) + { + var dictionaryType = typeof(T); + var valueType = dictionaryType.GetGenericArguments()[1]; + + if (mValue.ToObject() is Dictionary sourceDictionary) + { + resultDictionary = Activator.CreateInstance(); + + foreach (var kvp in sourceDictionary) + { + object value = Convert.ChangeType(kvp.Value, valueType); + resultDictionary.GetType().GetMethod("Add").Invoke(resultDictionary, new object[] { kvp.Key, value }); + } + + return resultDictionary; + } + else + { + throw new ArgumentException("Quellobjekt muss ein Dictionary sein."); + } + } + return resultDictionary; + } + + @object = mValue.ToObject(); + + return (T)Convert.ChangeType(@object, typeof(T)); + } } } \ No newline at end of file diff --git a/api/AltV.Net/Alt.GlobalMeta.cs b/api/AltV.Net/Alt.GlobalMeta.cs index b485b6a70..de87c4325 100644 --- a/api/AltV.Net/Alt.GlobalMeta.cs +++ b/api/AltV.Net/Alt.GlobalMeta.cs @@ -1,5 +1,7 @@ using System; +using System.Collections.Generic; using AltV.Net.Elements.Args; +using AltV.Net.Shared.Utils; namespace AltV.Net { @@ -14,12 +16,12 @@ public static partial class Alt public static bool GetMetaData(string key, out T result) { Core.GetMetaData(key, out var mValue); + using (mValue) { - try { - result = (T)Convert.ChangeType(mValue.ToObject(), typeof(T)); + result = Utils.GetCastedMValue(mValue); return true; } catch @@ -44,7 +46,7 @@ public static bool GetSyncedMetaData(string key, out T result) try { - result = (T)Convert.ChangeType(mValue.ToObject(), typeof(T)); + result = Utils.GetCastedMValue(mValue); return true; } catch diff --git a/api/AltV.Net/Alt.Import.cs b/api/AltV.Net/Alt.Import.cs index ed1495870..4428ddf98 100644 --- a/api/AltV.Net/Alt.Import.cs +++ b/api/AltV.Net/Alt.Import.cs @@ -1,6 +1,7 @@ using System; using AltV.Net.Elements.Args; using AltV.Net.Native; +using AltV.Net.Shared.Utils; namespace AltV.Net { @@ -141,7 +142,7 @@ public static bool Import(string resourceName, string key, out object value) value = mValue.ToObject(); return true; } - + public static bool Import(string resourceName, string key, out string value) { if (HostImport(resourceName, key, out value)) @@ -168,7 +169,7 @@ public static bool Import(string resourceName, string key, out MValueConst mValu throw new InvalidImportException( $"Resource: '{resourceName}' not found."); } - + if (!resource.GetExport(key, out mValue)) { throw new InvalidImportException( @@ -198,14 +199,14 @@ public static bool Import(string resourceName, string key, MValueConst.Type type Alt.Core.CreateMValue(out var mValueElement, args[i]); mValueArgs[i] = mValueElement.nativePointer; } - + result = new MValueConst(Alt.Core.Library.MValue_CallFunction(mValue.nativePointer, mValueArgs, length)); for (ulong i = 0;i < length;i++) { Alt.Core.Library.MValueConst_Delete(mValueArgs[i]); } }*/ - + private static object ImportCall(in MValueConst mValue, object[] args) { unsafe @@ -230,6 +231,30 @@ private static object ImportCall(in MValueConst mValue, object[] args) } } + private static object ImportCall(in MValueConst mValue, object[] args) + { + unsafe + { + var length = (ulong) args.Length; + var mValueArgs = new IntPtr[length]; + for (uint i = 0; i < length; i++) + { + Alt.Core.CreateMValue(out var mValueElement, args[i]); + mValueArgs[i] = mValueElement.nativePointer; + } + + var result = new MValueConst(Alt.Core, Alt.Core.Library.Shared.MValueConst_CallFunction(Alt.Core.NativePointer, mValue.nativePointer, mValueArgs, length)); + var resultObj = Utils.GetCastedMValue(result); + result.Dispose(); + for (ulong i = 0;i < length;i++) + { + Alt.Core.Library.Shared.MValueConst_Delete(mValueArgs[i]); + } + + return resultObj; + } + } + public static bool Import(string resourceName, string key, out Action value) { if (HostImport(resourceName, key, out value)) @@ -578,7 +603,7 @@ public static bool Import(string resourceName, string key, out Func { - if (ImportCall(mValue, new object[] { }) is TResult result) + if (ImportCall(mValue, new object[] { }) is TResult result) { return result; } @@ -603,7 +628,7 @@ public static bool Import(string resourceName, string key, out Func value = (p1) => { - if (ImportCall(mValue, new object[] {p1}) is TResult result) + if (ImportCall(mValue, new object[] {p1}) is TResult result) { return result; } @@ -628,7 +653,7 @@ public static bool Import(string resourceName, string key, out value = (p1, p2) => { - if (ImportCall(mValue, new object[] {p1, p2}) is TResult result) + if (ImportCall(mValue, new object[] {p1, p2}) is TResult result) { return result; } @@ -654,7 +679,7 @@ public static bool Import(string resourceName, string key, value = (p1, p2, p3) => { - if (ImportCall(mValue, new object[] {p1, p2, p3}) is TResult result) + if (ImportCall(mValue, new object[] {p1, p2, p3}) is TResult result) { return result; } @@ -680,7 +705,7 @@ public static bool Import(string resourceName, string k value = (p1, p2, p3, p4) => { - if (ImportCall(mValue, new object[] {p1, p2, p3, p4}) is TResult result) + if (ImportCall(mValue, new object[] {p1, p2, p3, p4}) is TResult result) { return result; } @@ -706,7 +731,7 @@ public static bool Import(string resourceName, stri value = (p1, p2, p3, p4, p5) => { - if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5}) is TResult result) + if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5}) is TResult result) { return result; } @@ -732,7 +757,7 @@ public static bool Import(string resourceName, value = (p1, p2, p3, p4, p5, p6) => { - if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5, p6}) is TResult result) + if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5, p6}) is TResult result) { return result; } @@ -758,7 +783,7 @@ public static bool Import(string resourceNa value = (p1, p2, p3, p4, p5, p6, p7) => { - if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5, p6, p7}) is TResult result) + if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5, p6, p7}) is TResult result) { return result; } @@ -784,7 +809,7 @@ public static bool Import(string resour value = (p1, p2, p3, p4, p5, p6, p7, p8) => { - if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5, p6, p7, p8}) is TResult result) + if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5, p6, p7, p8}) is TResult result) { return result; } @@ -810,7 +835,7 @@ public static bool Import(string re value = (p1, p2, p3, p4, p5, p6, p7, p8, p9) => { - if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5, p6, p7, p8, p9}) is TResult result) + if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5, p6, p7, p8, p9}) is TResult result) { return result; } @@ -836,7 +861,7 @@ public static bool Import(stri value = (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) => { - if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10}) is TResult result) + if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10}) is TResult result) { return result; } @@ -863,7 +888,7 @@ public static bool Import value = (p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) => { - if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11}) is TResult result) + if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11}) is TResult result) { return result; } @@ -890,7 +915,7 @@ public static bool Import { - if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12}) is TResult + if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12}) is TResult result) { return result; @@ -918,7 +943,7 @@ public static bool Import { - if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13}) is TResult + if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13}) is TResult result) { return result; @@ -946,7 +971,7 @@ public static bool Import { - if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14}) is + if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14}) is TResult result) { return result; @@ -974,7 +999,7 @@ public static bool Import { - if (ImportCall(mValue, + if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15}) is TResult result) { return result; @@ -1002,7 +1027,7 @@ public static bool Import { - if (ImportCall(mValue, + if (ImportCall(mValue, new object[] {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16}) is TResult result) { diff --git a/api/AltV.Net/Elements/Entities/Checkpoint.cs b/api/AltV.Net/Elements/Entities/Checkpoint.cs index 72462469e..6a3eb4faa 100644 --- a/api/AltV.Net/Elements/Entities/Checkpoint.cs +++ b/api/AltV.Net/Elements/Entities/Checkpoint.cs @@ -251,7 +251,7 @@ public bool GetStreamSyncedMetaData(string key, out T result) try { - result = (T)Convert.ChangeType(mValue.ToObject(), typeof(T)); + result = Utils.GetCastedMValue(mValue); return true; } catch diff --git a/api/AltV.Net/Elements/Entities/Entity.cs b/api/AltV.Net/Elements/Entities/Entity.cs index db06c7f0f..50e911794 100644 --- a/api/AltV.Net/Elements/Entities/Entity.cs +++ b/api/AltV.Net/Elements/Entities/Entity.cs @@ -206,7 +206,7 @@ public bool GetStreamSyncedMetaData(string key, out T result) try { - result = (T)Convert.ChangeType(mValue.ToObject(), typeof(T)); + result = Utils.GetCastedMValue(mValue); return true; } catch diff --git a/api/AltV.Net/Elements/Entities/Player.cs b/api/AltV.Net/Elements/Entities/Player.cs index dee69418d..14b6549b2 100644 --- a/api/AltV.Net/Elements/Entities/Player.cs +++ b/api/AltV.Net/Elements/Entities/Player.cs @@ -85,7 +85,7 @@ public bool GetLocalMetaData(string key, out T result) try { - result = (T)Convert.ChangeType(mValue.ToObject(), typeof(T)); + result = Utils.GetCastedMValue(mValue); return true; } catch diff --git a/api/AltV.Net/Elements/Entities/VirtualEntity.cs b/api/AltV.Net/Elements/Entities/VirtualEntity.cs index 816f2c6c3..5756f71ff 100644 --- a/api/AltV.Net/Elements/Entities/VirtualEntity.cs +++ b/api/AltV.Net/Elements/Entities/VirtualEntity.cs @@ -71,7 +71,7 @@ public bool GetStreamSyncedMetaData(string key, out T result) try { - result = (T)Convert.ChangeType(mValue.ToObject(), typeof(T)); + result = Utils.GetCastedMValue(mValue); return true; } catch From f35c69181f1ded9131247b92ee7006726494fa84 Mon Sep 17 00:00:00 2001 From: doxoh Date: Sat, 13 Apr 2024 13:13:21 +0200 Subject: [PATCH 50/51] fix(client): remove textlabels by GetAllTextLabels() --- api/AltV.Net.Client/Core.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/AltV.Net.Client/Core.cs b/api/AltV.Net.Client/Core.cs index 7e25e6737..8977c24cb 100644 --- a/api/AltV.Net.Client/Core.cs +++ b/api/AltV.Net.Client/Core.cs @@ -232,7 +232,7 @@ public IReadOnlyCollection GetAllTextLabels() { CheckIfCallIsValid(); ulong size = 0; - var ptr = Library.Shared.Core_GetMarkers(NativePointer, &size); + var ptr = Library.Shared.Core_GetTextLabels(NativePointer, &size); var data = new IntPtr[size]; Marshal.Copy(ptr, data, 0, (int)size); var arr = data.Select(e => PoolManager.TextLabel.GetOrCreate(this, e)).ToArray(); From 819bb37f10b30762dbabdc8dc84a2221d13bd0db Mon Sep 17 00:00:00 2001 From: doxoh Date: Sun, 14 Apr 2024 11:36:30 +0200 Subject: [PATCH 51/51] fix(shared): remove debug log --- api/AltV.Net.Shared/Elements/Args/MValueConst.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/api/AltV.Net.Shared/Elements/Args/MValueConst.cs b/api/AltV.Net.Shared/Elements/Args/MValueConst.cs index 912e82e45..68c590479 100644 --- a/api/AltV.Net.Shared/Elements/Args/MValueConst.cs +++ b/api/AltV.Net.Shared/Elements/Args/MValueConst.cs @@ -252,7 +252,6 @@ public byte[] GetByteArray() public object ToObject() { - Console.WriteLine($"To Object: {type}"); switch (type) { case Type.None: