diff --git a/saco/net/localplayer.cpp b/saco/net/localplayer.cpp index 1c36fec..05d8853 100644 --- a/saco/net/localplayer.cpp +++ b/saco/net/localplayer.cpp @@ -587,3 +587,23 @@ void CLocalPlayer::FUNC_10004280(PLAYERID playerId) field_314 = 0; } } + +//---------------------------------------------------- + +// the in-vehicle half of the boundary check, keyed off the driven vehicle +void CLocalPlayer::FUNC_10003FC0() +{ + CVehiclePool *pVehiclePool = pNetGame->GetVehiclePool(); + WORD wVehicleId = pVehiclePool->FUNC_1001EB90((int)m_pPlayerPed->GetGtaVehicle()); + + if(!pGame->FUNC_100A0EE0() && wVehicleId != INVALID_VEHICLE_ID && wVehicleId < MAX_VEHICLES + && pVehiclePool->field_3074[wVehicleId]) + { + CVehicle *pVehicle = (CVehicle *)pVehiclePool->field_1134[wVehicleId]; + + if(pVehicle && pVehicle->FUNC_1009F420(pNetGame->GetSettings()->fWorldBoundryPX, + pNetGame->GetSettings()->fWorldBoundryZX, pNetGame->GetSettings()->fWorldBoundryPY, + pNetGame->GetSettings()->fWorldBoundryNY)) + pGame->DisplayGameText("Stay within the ~r~world boundries", 1000, 5); + } +} diff --git a/saco/net/localplayer.h b/saco/net/localplayer.h index 85511e6..bcab4dd 100644 --- a/saco/net/localplayer.h +++ b/saco/net/localplayer.h @@ -153,6 +153,7 @@ public: void FUNC_10004230(WORD a1); // .text:10004230 void FUNC_10004280(PLAYERID playerId); // .text:10004280 void FUNC_10003F50(); // .text:10003F50 + void FUNC_10003FC0(); // .text:10003FC0 void FUNC_100041C0(BOOL bSpectating); // .text:100041C0 DWORD GetField_F0() { return field_F0; };