# PATH natives

76 natives · 57 named · 14 described. RDR3 game natives (client side).

- [_0x264E9A5CD78C338F](https://natives.borderlinerp.com/natives/PATH/0x264E9A5CD78C338F.md) `0x264E9A5CD78C338F` — `void N_0x264e9a5cd78c338f(Any p0)`
- [_0x34C9AF25649172D0](https://natives.borderlinerp.com/natives/PATH/0x34C9AF25649172D0.md) `0x34C9AF25649172D0` — `void N_0x34c9af25649172d0(Any p0)`
- [_0x4358BCF14C91761C](https://natives.borderlinerp.com/natives/PATH/0x4358BCF14C91761C.md) `0x4358BCF14C91761C` — `void N_0x4358bcf14c91761c(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8, Any p9)`
- [_0x4BDEBEA5702B97A9](https://natives.borderlinerp.com/natives/PATH/0x4BDEBEA5702B97A9.md) `0x4BDEBEA5702B97A9` — `void N_0x4bdebea5702b97a9(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5)`
- [_0x54F4D7B6670FBB5A](https://natives.borderlinerp.com/natives/PATH/0x54F4D7B6670FBB5A.md) `0x54F4D7B6670FBB5A` — `Any N_0x54f4d7b6670fbb5a(Any p0, Any p1, Any p2, Any p3, Any p4)`
- [_0x5A3B54ADDF5472A3](https://natives.borderlinerp.com/natives/PATH/0x5A3B54ADDF5472A3.md) `0x5A3B54ADDF5472A3` — `int N_0x5a3b54addf5472a3(const char* p0)`
- [_0x5A4E1A41E3A02AD0](https://natives.borderlinerp.com/natives/PATH/0x5A4E1A41E3A02AD0.md) `0x5A4E1A41E3A02AD0` — `void N_0x5a4e1a41e3a02ad0(Any p0, Any p1, Any p2)`
- [_0x665B21666351CB37](https://natives.borderlinerp.com/natives/PATH/0x665B21666351CB37.md) `0x665B21666351CB37` — `Any N_0x665b21666351cb37(Any p0, Any p1, Any p2)`
- [_0x6C3F12ECEB6D2E2A](https://natives.borderlinerp.com/natives/PATH/0x6C3F12ECEB6D2E2A.md) `0x6C3F12ECEB6D2E2A` — `void N_0x6c3f12eceb6d2e2a(float xMin, float yMin, float zMin, float xMax, float yMax, float zMax, Any p6, Any p7)`
- [_0x6DAD6630AE4A74CB](https://natives.borderlinerp.com/natives/PATH/0x6DAD6630AE4A74CB.md) `0x6DAD6630AE4A74CB` — `void N_0x6dad6630ae4a74cb(Any p0, Any p1)`
- [_0x869A7015BD4606E9](https://natives.borderlinerp.com/natives/PATH/0x869A7015BD4606E9.md) `0x869A7015BD4606E9` — `void N_0x869a7015bd4606e9(Any p0)`
- [_0xA33914B00CA55756](https://natives.borderlinerp.com/natives/PATH/0xA33914B00CA55756.md) `0xA33914B00CA55756` — `Any* N_0xa33914b00ca55756(const char* p0, int p1)`
- [_0xAFE2AE66F6251C66](https://natives.borderlinerp.com/natives/PATH/0xAFE2AE66F6251C66.md) `0xAFE2AE66F6251C66` — `void N_0xafe2ae66f6251c66(float xMin, float yMin, float zMin, float xMax, float yMax, float zMax, int p6, Any p7)`
- [_0xB03944057FD735BA](https://natives.borderlinerp.com/natives/PATH/0xB03944057FD735BA.md) `0xB03944057FD735BA` — `void N_0xb03944057fd735ba(Any p0, Any p1, Any p2)`
- [_0xCA27A86CAA4E98ED](https://natives.borderlinerp.com/natives/PATH/0xCA27A86CAA4E98ED.md) `0xCA27A86CAA4E98ED` — `Any N_0xca27a86caa4e98ed(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6)`
- [_0xCF213A5FC3ABFC08](https://natives.borderlinerp.com/natives/PATH/0xCF213A5FC3ABFC08.md) `0xCF213A5FC3ABFC08` — `void N_0xcf213a5fc3abfc08(Any p0, Any p1, Any p2)`
- [_0xE5EF9DE716FF737E](https://natives.borderlinerp.com/natives/PATH/0xE5EF9DE716FF737E.md) `0xE5EF9DE716FF737E` — `void N_0xe5ef9de716ff737e(Any p0, Any p1, Any p2)`
- [_0xEFC535C9FAF563B3](https://natives.borderlinerp.com/natives/PATH/0xEFC535C9FAF563B3.md) `0xEFC535C9FAF563B3` — `Any N_0xefc535c9faf563b3(Any p0)`
- [_0xF2A2177AC848B3A8](https://natives.borderlinerp.com/natives/PATH/0xF2A2177AC848B3A8.md) `0xF2A2177AC848B3A8` — `void N_0xf2a2177ac848b3a8(Volume volume, int p1, int p2)` — GPS disabled zone: p1 = 0 Clearing GPS disabled zone: p1 = 1
- [ADD_NAVMESH_BLOCKING_OBJECT](https://natives.borderlinerp.com/natives/PATH/ADD_NAVMESH_BLOCKING_OBJECT.md) `0xFCD5C8E06E502F5A` — `Object AddNavmeshBlockingObject(float p0, float p1, float p2, float p3, float p4, float p5, float p6, BOOL p7, Any p8)`
- [_ADD_NAVMESH_BLOCKING_VOLUME](https://natives.borderlinerp.com/natives/PATH/_ADD_NAVMESH_BLOCKING_VOLUME.md) `0x19C7567D2F2287D6` — `BOOL AddNavmeshBlockingVolume(Volume volume, int flags)`
- [ADD_NAVMESH_REQUIRED_REGION](https://natives.borderlinerp.com/natives/PATH/ADD_NAVMESH_REQUIRED_REGION.md) `0x387EAD7EE42F6685` — `void AddNavmeshRequiredRegion(float x, float y, float radius)`
- [ARE_NODES_LOADED_FOR_AREA](https://natives.borderlinerp.com/natives/PATH/ARE_NODES_LOADED_FOR_AREA.md) `0xF7B79A50B905A30D` — `BOOL AreNodesLoadedForArea(float x1, float y1, float x2, float y2)`
- [DOES_NAVMESH_BLOCKING_OBJECT_EXIST](https://natives.borderlinerp.com/natives/PATH/DOES_NAVMESH_BLOCKING_OBJECT_EXIST.md) `0x0EAEB0DB4B132399` — `BOOL DoesNavmeshBlockingObjectExist(Object object)`
- [_DOES_NAVMESH_BLOCKING_VOLUME_EXIST](https://natives.borderlinerp.com/natives/PATH/_DOES_NAVMESH_BLOCKING_VOLUME_EXIST.md) `0xDE0EA444735C1368` — `BOOL DoesNavmeshBlockingVolumeExist(Volume volume)`
- [GET_APPROX_FLOOR_FOR_POINT](https://natives.borderlinerp.com/natives/PATH/GET_APPROX_FLOOR_FOR_POINT.md) `0x336511A34F2E5185` — `float GetApproxFloorForPoint(float x, float y)` — Returns CGameWorldHeightMap's minimum Z value at specified point (grid node).
- [GET_CLOSEST_ROAD](https://natives.borderlinerp.com/natives/PATH/GET_CLOSEST_ROAD.md) `0x132F52BBA570FE92` — `BOOL GetClosestRoad(float x, float y, float z, float p3, int p4, Vector3* p5, Vector3* p6, Any* p7, Any* p8, float* p9, BOOL p10)`
- [GET_CLOSEST_VEHICLE_NODE](https://natives.borderlinerp.com/natives/PATH/GET_CLOSEST_VEHICLE_NODE.md) `0x240A18690AE96513` — `BOOL GetClosestVehicleNode(float x, float y, float z, Vector3* outPosition, int nodeType, float p5, float p6)`
- [GET_CLOSEST_VEHICLE_NODE_WITH_HEADING](https://natives.borderlinerp.com/natives/PATH/GET_CLOSEST_VEHICLE_NODE_WITH_HEADING.md) `0x23CFFD4CCB243354` — `BOOL GetClosestVehicleNodeWithHeading(float x, float y, float z, Vector3* outPosition, float* outHeading, int nodeType, float p6, float p7)`
- [GET_GPS_BLIP_ROUTE_FOUND](https://natives.borderlinerp.com/natives/PATH/GET_GPS_BLIP_ROUTE_FOUND.md) `0x869DAACBBE9FA006` — `BOOL GetGpsBlipRouteFound()`
- [GET_GPS_BLIP_ROUTE_LENGTH](https://natives.borderlinerp.com/natives/PATH/GET_GPS_BLIP_ROUTE_LENGTH.md) `0xBBB45C3CF5C8AA85` — `int GetGpsBlipRouteLength()`
- [GET_NTH_CLOSEST_VEHICLE_NODE](https://natives.borderlinerp.com/natives/PATH/GET_NTH_CLOSEST_VEHICLE_NODE.md) `0x5A6D8DF6FBC5D0C4` — `BOOL GetNthClosestVehicleNode(float x, float y, float z, int nthClosest, Vector3* outPosition, int unknown1, float unknown2, Any unknown3)`
- [GET_NTH_CLOSEST_VEHICLE_NODE_FAVOUR_DIRECTION](https://natives.borderlinerp.com/natives/PATH/GET_NTH_CLOSEST_VEHICLE_NODE_FAVOUR_DIRECTION.md) `0x2FAC235A6062F14A` — `BOOL GetNthClosestVehicleNodeFavourDirection(float x, float y, float z, float desiredX, float desiredY, float desiredZ, int nthClosest, Vector3* outPosition, float* outHeading, int nodetype, Any p10, Any p11)`
- [GET_NTH_CLOSEST_VEHICLE_NODE_ID](https://natives.borderlinerp.com/natives/PATH/GET_NTH_CLOSEST_VEHICLE_NODE_ID.md) `0x116443008E5CEFC3` — `int GetNthClosestVehicleNodeId(float x, float y, float z, int nth, int nodetype, float p5, float p6)`
- [GET_NTH_CLOSEST_VEHICLE_NODE_ID_WITH_HEADING](https://natives.borderlinerp.com/natives/PATH/GET_NTH_CLOSEST_VEHICLE_NODE_ID_WITH_HEADING.md) `0x4114EAA8A7F7766D` — `int GetNthClosestVehicleNodeIdWithHeading(float x, float y, float z, int nthClosest, float* returnHeading, int* returnNumLanes, int nodeFlags, float zMeasureMult, float zTolerance)` — Returns the nth closest vehicle node with a heading to a coord
- [GET_NTH_CLOSEST_VEHICLE_NODE_WITH_HEADING](https://natives.borderlinerp.com/natives/PATH/GET_NTH_CLOSEST_VEHICLE_NODE_WITH_HEADING.md) `0x591B40D4390DB54A` — `BOOL GetNthClosestVehicleNodeWithHeading(float x, float y, float z, int nthClosest, Vector3* outPosition, float* heading, Any* unknown1, int unknown2, float unknown3, float unknown4)`
- [GET_NUM_NAVMESHES_EXISTING_IN_AREA](https://natives.borderlinerp.com/natives/PATH/GET_NUM_NAVMESHES_EXISTING_IN_AREA.md) `0x01708E8DD3FF8C65` — `int GetNumNavmeshesExistingInArea(float p0, float p1, float p2, float p3, float p4, float p5)`
- [GET_RANDOM_VEHICLE_NODE](https://natives.borderlinerp.com/natives/PATH/GET_RANDOM_VEHICLE_NODE.md) `0x93E0DB8440B73A7D` — `BOOL GetRandomVehicleNode(float x, float y, float z, float radius, int minLanes, BOOL avoidDeadEnds, BOOL avoidHighways, Vector3* outPosition, int* nodeId)`
- [GET_SAFE_COORD_FOR_PED](https://natives.borderlinerp.com/natives/PATH/GET_SAFE_COORD_FOR_PED.md) `0xB61C8E878A4199CA` — `BOOL GetSafeCoordForPed(float x, float y, float z, BOOL onGround, Vector3* outPosition, int flags)`
- [_GET_SPAWN_DATA_FOR_ROAD_NODE](https://natives.borderlinerp.com/natives/PATH/_GET_SPAWN_DATA_FOR_ROAD_NODE.md) `0xA3791B915B8B84C6` — `void GetSpawnDataForRoadNode(int nodeId, float x, float y, float z, Vector3* outCoords, float* heading)`
- [GET_VEHICLE_NODE_IS_SWITCHED_OFF](https://natives.borderlinerp.com/natives/PATH/GET_VEHICLE_NODE_IS_SWITCHED_OFF.md) `0x28533DBDDF7C2C97` — `BOOL GetVehicleNodeIsSwitchedOff(int nodeID)`
- [GET_VEHICLE_NODE_POSITION](https://natives.borderlinerp.com/natives/PATH/GET_VEHICLE_NODE_POSITION.md) `0x8E8D72FF24DEE1FB` — `void GetVehicleNodePosition(int nodeId, Vector3* outPosition)`
- [IS_NAVMESH_LOADED_IN_AREA](https://natives.borderlinerp.com/natives/PATH/IS_NAVMESH_LOADED_IN_AREA.md) `0xF813C7E63F9062A5` — `BOOL IsNavmeshLoadedInArea(float x1, float y1, float z1, float x2, float y2, float z2)` — Returns whether navmesh for the region is loaded.
- [IS_POINT_ON_ROAD](https://natives.borderlinerp.com/natives/PATH/IS_POINT_ON_ROAD.md) `0x125BF4ABFC536B09` — `BOOL IsPointOnRoad(float x, float y, float z, Vehicle vehicle)` — Gets a value indicating whether the specified position is on a road.
- [IS_VEHICLE_NODE_ID_VALID](https://natives.borderlinerp.com/natives/PATH/IS_VEHICLE_NODE_ID_VALID.md) `0x5829A02AF4F0B3CB` — `BOOL IsVehicleNodeIdValid(int vehicleNodeId)` — Returns true if the id is non zero.
- [_NAVMESH_ACTIVATE_SWAP](https://natives.borderlinerp.com/natives/PATH/_NAVMESH_ACTIVATE_SWAP.md) `0x7C334FF4D9215912` — `BOOL NavmeshActivateSwap(const char* name)`
- [_NAVMESH_ASSIGN_NAVMESH_TO_VEHICLE](https://natives.borderlinerp.com/natives/PATH/_NAVMESH_ASSIGN_NAVMESH_TO_VEHICLE.md) `0x44026E3DB3CED602` — `BOOL NavmeshAssignNavmeshToVehicle(Vehicle vehicle, const char* navMeshName)`
- [_NAVMESH_CLEAR_REQUESTED_PATH](https://natives.borderlinerp.com/natives/PATH/_NAVMESH_CLEAR_REQUESTED_PATH.md) `0x661BB1E1FF77742D` — `BOOL NavmeshClearRequestedPath(int path)` — Called in scripts after finished with requested pathes.
- [_NAVMESH_DEACTIVATE_SWAP](https://natives.borderlinerp.com/natives/PATH/_NAVMESH_DEACTIVATE_SWAP.md) `0x527B97C203BB8606` — `BOOL NavmeshDeactivateSwap(const char* name)`
- [_NAVMESH_DOES_SWAP_EXIST](https://natives.borderlinerp.com/natives/PATH/_NAVMESH_DOES_SWAP_EXIST.md) `0x495CFAB2924237C7` — `BOOL NavmeshDoesSwapExist(const char* name)`
- [_NAVMESH_IS_SWAP_ACTIVE](https://natives.borderlinerp.com/natives/PATH/_NAVMESH_IS_SWAP_ACTIVE.md) `0x5AC0944C156E5F44` — `BOOL NavmeshIsSwapActive(const char* name)`
- [NAVMESH_REQUEST_PATH](https://natives.borderlinerp.com/natives/PATH/NAVMESH_REQUEST_PATH.md) `0x348F211CA2404039` — `int NavmeshRequestPath(Ped ped, float x1, float y1, float z1, float x2, float y2, float z2, int bitFlag)` — Starts a nav mesh query for a path between coordinates with a given ped and returns a handle to be validated by _NAVMESH_REQUESTED_PATH_QUERY_STATUS and then _NAVMESH_REQUESTED_PATH_WAYPOINTS_FOUND Only bit flag values used in scripts ar…
- [_NAVMESH_REQUESTED_PATH_NUM_WAYPOINTS](https://natives.borderlinerp.com/natives/PATH/_NAVMESH_REQUESTED_PATH_NUM_WAYPOINTS.md) `0xD470725E0703D22F` — `int NavmeshRequestedPathNumWaypoints(int path)` — Returns the number of waypoints for a requested path (NAVMESH_REQUEST_PATH) if the query is completed (_NAVMESH_REQUESTED_PATH_QUERY_STATUS).
- [_NAVMESH_REQUESTED_PATH_QUERY_STATUS](https://natives.borderlinerp.com/natives/PATH/_NAVMESH_REQUESTED_PATH_QUERY_STATUS.md) `0x3A0F82F6EE2291C8` — `int NavmeshRequestedPathQueryStatus(int path)` — Returns eNavMeshQueryStatus QS_NOT_FOUND, QS_COMPLETE, QS_PENDING It appears that the pending state of 2 is at least also used when cleaning up a request (_NAVMESH_CLEAR_REQUESTED_PATH) or if a request never completes.
- [_NAVMESH_REQUESTED_PATH_WAYPOINT_BY_INDEX](https://natives.borderlinerp.com/natives/PATH/_NAVMESH_REQUESTED_PATH_WAYPOINT_BY_INDEX.md) `0x430F8319AE56C8A9` — `Vector3 NavmeshRequestedPathWaypointByIndex(int path, int waypointIndex)` — Returns a vector3 waypoint at the specified index for a path.
- [_NAVMESH_REQUESTED_PATH_WAYPOINTS_FOUND](https://natives.borderlinerp.com/natives/PATH/_NAVMESH_REQUESTED_PATH_WAYPOINTS_FOUND.md) `0x8800776E410EB669` — `BOOL NavmeshRequestedPathWaypointsFound(int path)` — Returns true if a path of waypoints was found.
- [_NAVMESH_REQUESTED_PATH_WAYPOINTS_TERRAIN](https://natives.borderlinerp.com/natives/PATH/_NAVMESH_REQUESTED_PATH_WAYPOINTS_TERRAIN.md) `0xF61CFEDEAB627BFA` — `int NavmeshRequestedPathWaypointsTerrain(int path)` — Returns a bit flag for seemingly terrain within the waypoints in the path.
- [REMOVE_NAVMESH_BLOCKING_OBJECT](https://natives.borderlinerp.com/natives/PATH/REMOVE_NAVMESH_BLOCKING_OBJECT.md) `0x46399A7895957C0E` — `void RemoveNavmeshBlockingObject(Object object)`
- [_REMOVE_NAVMESH_BLOCKING_VOLUME](https://natives.borderlinerp.com/natives/PATH/_REMOVE_NAVMESH_BLOCKING_VOLUME.md) `0x2C87C3E1C7B96EE2` — `void RemoveNavmeshBlockingVolume(Volume volume)`
- [REQUEST_PATH_NODES_IN_AREA_THIS_FRAME](https://natives.borderlinerp.com/natives/PATH/REQUEST_PATH_NODES_IN_AREA_THIS_FRAME.md) `0x07FB139B592FA687` — `BOOL RequestPathNodesInAreaThisFrame(float x1, float y1, float x2, float y2)` — Old name: REQUEST_PATHS_PREFER_ACCURATE_BOUNDINGSTRUCT
- [RESET_ROADS_IN_VOLUME](https://natives.borderlinerp.com/natives/PATH/RESET_ROADS_IN_VOLUME.md) `0xD17672447692478E` — `void ResetRoadsInVolume(Volume volume, BOOL p1)`
- [SET_AMBIENT_PED_RANGE_MULTIPLIER_THIS_FRAME](https://natives.borderlinerp.com/natives/PATH/SET_AMBIENT_PED_RANGE_MULTIPLIER_THIS_FRAME.md) `0x0B919E1FB47CC4E0` — `void SetAmbientPedRangeMultiplierThisFrame(float multiplier)`
- [SET_IGNORE_NO_GPS_FLAG](https://natives.borderlinerp.com/natives/PATH/SET_IGNORE_NO_GPS_FLAG.md) `0x72751156E7678833` — `void SetIgnoreNoGpsFlag(BOOL toggle)` — nullsub, doesn't do anything
- [SET_PED_PATHS_BACK_TO_ORIGINAL](https://natives.borderlinerp.com/natives/PATH/SET_PED_PATHS_BACK_TO_ORIGINAL.md) `0xE04B48F2CC926253` — `void SetPedPathsBackToOriginal(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6)`
- [SET_PED_PATHS_IN_AREA](https://natives.borderlinerp.com/natives/PATH/SET_PED_PATHS_IN_AREA.md) `0x34F060F4BF92E018` — `void SetPedPathsInArea(float x1, float y1, float z1, float x2, float y2, float z2, BOOL unknown, Any p7)`
- [SET_ROADS_BACK_TO_ORIGINAL](https://natives.borderlinerp.com/natives/PATH/SET_ROADS_BACK_TO_ORIGINAL.md) `0x1EE7063B80FFC77C` — `void SetRoadsBackToOriginal(float xMin, float yMin, float zMin, float xMax, float yMax, float zMax, Any p6, Any p7)`
- [SET_ROADS_BACK_TO_ORIGINAL_IN_ANGLED_AREA](https://natives.borderlinerp.com/natives/PATH/SET_ROADS_BACK_TO_ORIGINAL_IN_ANGLED_AREA.md) `0x0027501B9F3B407E` — `void SetRoadsBackToOriginalInAngledArea(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8)`
- [SET_ROADS_IN_ANGLED_AREA](https://natives.borderlinerp.com/natives/PATH/SET_ROADS_IN_ANGLED_AREA.md) `0x1A5AA1208AF5DB59` — `void SetRoadsInAngledArea(Any p0, Any p1, Any p2, Any p3, Any p4, Any p5, Any p6, Any p7, Any p8, Any p9, Any p10)`
- [SET_ROADS_IN_AREA](https://natives.borderlinerp.com/natives/PATH/SET_ROADS_IN_AREA.md) `0xBF1A602B5BA52FEE` — `void SetRoadsInArea(float xMin, float yMin, float zMin, float xMax, float yMax, float zMax, Any p6, Any p7, Any p8)`
- [SET_ROADS_IN_VOLUME](https://natives.borderlinerp.com/natives/PATH/SET_ROADS_IN_VOLUME.md) `0xC1799FAFD2FDF52B` — `void SetRoadsInVolume(Volume volume, BOOL p1, BOOL p2, BOOL p3)`
- [_SIMULATED_ROUTE_CREATE](https://natives.borderlinerp.com/natives/PATH/_SIMULATED_ROUTE_CREATE.md) `0xFD5BB35AAB83FD48` — `Any SimulatedRouteCreate(float x1, float y1, float z1, float x2, float y2, float z2, int p6)`
- [_SIMULATED_ROUTE_DELETE](https://natives.borderlinerp.com/natives/PATH/_SIMULATED_ROUTE_DELETE.md) `0x4907D0E4FB26EE65` — `void SimulatedRouteDelete(Any p0)`
- [_SIMULATED_ROUTE_EXISTS](https://natives.borderlinerp.com/natives/PATH/_SIMULATED_ROUTE_EXISTS.md) `0x65A8196B8D7F5E0B` — `BOOL SimulatedRouteExists(Any p0)`
- [SIMULATED_ROUTE_GET_ETA](https://natives.borderlinerp.com/natives/PATH/SIMULATED_ROUTE_GET_ETA.md) `0x2DD5F78D73B24172` — `float SimulatedRouteGetEta(Any p0)`
- [SIMULATED_ROUTE_IS_LOADED](https://natives.borderlinerp.com/natives/PATH/SIMULATED_ROUTE_IS_LOADED.md) `0x240915043CB799D7` — `BOOL SimulatedRouteIsLoaded(Any p0)`
- [SIMULATED_ROUTE_TRAVEL_TO_POINT](https://natives.borderlinerp.com/natives/PATH/SIMULATED_ROUTE_TRAVEL_TO_POINT.md) `0xA1A3DE1C215C7394` — `void SimulatedRouteTravelToPoint(Any p0, float p1, float p2)`
