From a6dc7e699d00599be491b6e0e4b7245c58db5cd5 Mon Sep 17 00:00:00 2001 From: ricardoofnl Date: Fri, 4 Sep 2026 21:16:24 +0700 Subject: [PATCH] [saco] Implement/match `CVehiclePool::FUNC_1001EE20`; the 300 unit cutoff is a `float` literal and the walk is a plain `int` --- saco/game/entity.h | 2 ++ saco/net/vehiclepool.cpp | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/saco/game/entity.h b/saco/game/entity.h index 8983cd5..0a4bc80 100644 --- a/saco/game/entity.h +++ b/saco/game/entity.h @@ -58,6 +58,8 @@ public: float FUNC_1009F0C0(); // .text:1009F0C0 float FUNC_1009F190(); // .text:1009F190 + char FUNC_1009FC00(VECTOR *vecStart, VECTOR *vecEnd, char a3); // .text:1009FC00 + char FUNC_1009FCE0(); // .text:1009FCE0 BYTE FUNC_100B8340(); // .text:100B8340 float FUNC_100B72A0(); // .text:100B72A0 int FUNC_100B7390(); // .text:100B7390 diff --git a/saco/net/vehiclepool.cpp b/saco/net/vehiclepool.cpp index bde884d..be1b1f5 100644 --- a/saco/net/vehiclepool.cpp +++ b/saco/net/vehiclepool.cpp @@ -189,3 +189,18 @@ short CVehiclePool::FUNC_1001EEB0(int a1, VECTOR *vecOrigin, VECTOR *vecLine) } //---------------------------------------------------- + +char CVehiclePool::FUNC_1001EE20(VECTOR *vecStart, VECTOR *vecEnd) +{ + for(int i = 0; i <= field_0; i++) { + if(field_3074[i] && field_1134[i]) { + CVehicle *pVehicle = (CVehicle *)field_1134[i]; + if(pVehicle->IsAdded() && pVehicle->FUNC_1009F190() < 300.0f + && !pVehicle->FUNC_1009FCE0() + && pVehicle->FUNC_1009FC00(vecStart, vecEnd, 1)) return 1; + } + } + return 0; +} + +//----------------------------------------------------