diff --git a/saco/game/hooks.cpp b/saco/game/hooks.cpp index 6681963..78bda1d 100644 --- a/saco/game/hooks.cpp +++ b/saco/game/hooks.cpp @@ -45,6 +45,7 @@ DWORD dwParam1; DWORD dwParam2; DWORD dwParamThis; +DWORD unnamed_10150960; DWORD unnamed_101516D4; DWORD unnamed_10151710; DWORD unnamed_10151810; @@ -410,7 +411,17 @@ NUDE PlayerWalk_Hook() NUDE PickUpPickup_Hook() { - // TODO: PickUpPickup_Hook + _asm mov unnamed_10150960, esi + _asm pushad + + if (pNetGame && pNetGame->GetPickupPool()) + pNetGame->GetPickupPool()->sub_10013440((unnamed_10150960 - 0x9788C0) >> 5); + + _asm popad + _asm mov al, [esi+0x1C] + _asm cmp al, 6 + _asm push 0x4579CB + _asm ret } //----------------------------------------------------------- diff --git a/saco/net/netgame.h b/saco/net/netgame.h index 73ac7e6..7e44c89 100644 --- a/saco/net/netgame.h +++ b/saco/net/netgame.h @@ -77,6 +77,7 @@ public: CVehiclePool * GetVehiclePool() { return m_pPools->pVehiclePool; }; CPlayerPool * GetPlayerPool() { return m_pPools->pPlayerPool; }; + CPickupPool * GetPickupPool() { return m_pPools->pPickupPool; }; CGangZonePool * GetGangZonePool() { return m_pPools->pGangZonePool; }; RakClientInterface * GetRakClient() { return m_pRakClient; }; diff --git a/saco/net/pickuppool.h b/saco/net/pickuppool.h index 9ec0908..958ec78 100644 --- a/saco/net/pickuppool.h +++ b/saco/net/pickuppool.h @@ -33,6 +33,8 @@ public: ~CPickupPool(); + void sub_10013440(int iPickup); // .text:10013440 + }; //---------------------------------------------------- \ No newline at end of file