diff --git a/doc/limit_adjuster_gta3vcsa.ini b/doc/limit_adjuster_gta3vcsa.ini index e62649d..cbd09b5 100644 --- a/doc/limit_adjuster_gta3vcsa.ini +++ b/doc/limit_adjuster_gta3vcsa.ini @@ -18,6 +18,7 @@ PatrolRoute = unlimited NodeRoute = unlimited TaskAllocator = unlimited PedAttractors = unlimited +VehicleStructs = unlimited MatrixList = unlimited OutsideWorldWaterBlocks = 500 AlphaEntityList = unlimited @@ -147,6 +148,9 @@ DebugTextKey = 0x74 ; F5 -- Use an VKEY (see http://msdn.microsoft.com/pt-br/li ; ### PedAttractors [CanBeUnlimited] ; Peds attracted to specific objects (e.g. ped using a cassino machine) ; +; ### VehicleStructs [CanBeUnlimited] +; Loaded vehicles models information. +; ; ### Treadables ; Animated buildings? ; diff --git a/src/limits/Pools/PoolAdjusterDynamic.hpp b/src/limits/Pools/PoolAdjusterDynamic.hpp index 9613d97..7c38b3c 100644 --- a/src/limits/Pools/PoolAdjusterDynamic.hpp +++ b/src/limits/Pools/PoolAdjusterDynamic.hpp @@ -71,6 +71,17 @@ struct PoolAdjusterDynamic : PoolAdjuster PatchStaticND(0x40FC30, 0x40FC40); break; + case 0x5B8FE7: // VehicleStructs + //PatchShutdown(); -- doesnt seem it have one + PatchStaticND(0x4C9570, 0x4C9580); + injector::MakeInline<0x4C98A3, 0x4C98D2>(ReleaseESI); + injector::MakeNOP(0x4C989B, 1); + injector::MakeInline<0x4C9850, 0x4C9885>(ReleaseEDI); + + injector::MakeJMP(0x4C94C0, Do_Alloc); + injector::MakeJMP(0x4C9840, Do_StaticRelease); + break; + case 0x5511B2: // PointRoute PatchShutdown(0x551CF3); PatchStaticND(0x41B7C0, 0x41B7D0); diff --git a/src/limits/Pools/Pools.cpp b/src/limits/Pools/Pools.cpp index 7d399b7..68127c8 100644 --- a/src/limits/Pools/Pools.cpp +++ b/src/limits/Pools/Pools.cpp @@ -50,6 +50,7 @@ enum TaskAllocator, PedIntelligence, PedAttractors, + VehicleStructs, MAX_POOLS }; @@ -202,6 +203,7 @@ struct PoolsAdjusterSA : public PoolsAdjusterBase PoolAdjusterDynamic<0x55121C, 0x5511F0 + 1, 36> m_NodeRoute; PoolAdjusterDynamic<0x551251, 0x551225 + 1, 32> m_TaskAllocator; PoolAdjusterDynamic<0x5512BF, 0x551292 + 1, 196> m_PedAttractors; + PoolAdjusterDynamic<0x5B8FE7, 0x5B8FC3 + 1, 788> m_VehicleStructs; // Limit Names const Limit* GetLimits() @@ -227,6 +229,7 @@ struct PoolsAdjusterSA : public PoolsAdjusterBase DEFINE_POOL_LIMIT(TaskAllocator), DEFINE_POOL_LIMIT(PedIntelligence), DEFINE_POOL_LIMIT(PedAttractors), + DEFINE_POOL_LIMIT(VehicleStructs), FINISH_LIMITS() }; return lm;