From e549284f6542418ef4bf29e13f7f26e91822ace5 Mon Sep 17 00:00:00 2001 From: davwheat Date: Sun, 28 Oct 2018 16:44:52 +0000 Subject: [PATCH] Removes debugging code and an unused method. Rebuilt + compressed. --- _Resource/VoiceGPS.zip | Bin 2647900 -> 2647970 bytes .../VoiceGPS/VoiceGPS_FiveM.Client.net.dll | Bin 15872 -> 15360 bytes src/VoiceGPS-FiveM.Client/ClientScript.cs | 166 ++++++++++-------- 3 files changed, 97 insertions(+), 69 deletions(-) diff --git a/_Resource/VoiceGPS.zip b/_Resource/VoiceGPS.zip index c2c17105e53893ef3f2aa47d2c16f4095b6d2523..18fd4529526d0f9f481ea69c20d64b97d5d19ad9 100644 GIT binary patch delta 28293 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 n`;q>v7au delta 6566 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 BCeHu> diff --git a/src/VoiceGPS-FiveM.Client/ClientScript.cs b/src/VoiceGPS-FiveM.Client/ClientScript.cs index 9fad63e..6d6e6af 100644 --- a/src/VoiceGPS-FiveM.Client/ClientScript.cs +++ b/src/VoiceGPS-FiveM.Client/ClientScript.cs @@ -76,9 +76,6 @@ private async Task OnTick() _justPlayedArrived = true; await Delay(2000); } -#if DEBUG - //Chat("a"); -#endif _playedStartDriveAudio = false; @@ -89,9 +86,6 @@ private async Task OnTick() _justPlayedArrived = false; if (!_playedStartDriveAudio) { -#if DEBUG - //Chat("b"); -#endif PlayAudio("start"); await Delay(2600); _playedStartDriveAudio = true; @@ -111,10 +105,6 @@ private async Task OnTick() return; } -#if DEBUG - //ShowNotification(DirectionToString(dir)); -#endif - //0 : You arrived at your destination //1 : Going The Wrong wAY...recalculating //2: Follow this lane and wait for more instructions @@ -125,7 +115,7 @@ private async Task OnTick() //7: Take the next return to the right. (distance on p6) //8: Exit motorway - if (_lastDirection != dir || (_lastDirection == dir && _lastDistance < dist)) + if (_lastDirection != dir || (_lastDirection == dir && _lastDistance - dist < -50)) { _justPlayed200M = false; _justPlayedImmediate = false; @@ -192,100 +182,87 @@ private async Task OnTick() } - private string DirectionToString(int direction) - { - switch (direction) - { - default: - return $"Unknown ({direction})"; - case 0: - return $"You have arrived (0)"; - case 1: - return $"Recalculating (1)"; - case 2: - return $"Follow the road (2)"; - case 3: - return $"Left at next junction (3)"; - case 4: - return $"Right at next junction (4)"; - case 5: - return $"Straight at next junction (5)"; - case 6: - return $"Keep left (6)"; - case 7: - return $"Keep right (7)"; - case 8: - return $"Exit motorway (8)"; - } - } + //private string DirectionToString(int direction) + //{ + // switch (direction) + // { + // default: + // return $"Unknown ({direction})"; + // case 0: + // return $"You have arrived (0)"; + // case 1: + // return $"Recalculating (1)"; + // case 2: + // return $"Follow the road (2)"; + // case 3: + // return $"Left at next junction (3)"; + // case 4: + // return $"Right at next junction (4)"; + // case 5: + // return $"Straight at next junction (5)"; + // case 6: + // return $"Keep left (6)"; + // case 7: + // return $"Keep right (7)"; + // case 8: + // return $"Exit motorway (8)"; + // } + //} private async Task PlayDirectionAudio(int dir, int dist) { - //Chat("Attempting to play sound."); - - var streets = GetStreetNameForDirection(dist); - - var roadName = streets.Item1; - var crossingRoadName = streets.Item2; - - var playerPosition = _playerPed.Position; - var hash = 0u; - var crossingRoadHash = 0u; + var dontPlayStreetName = false; + var roadName = ""; - API.GetStreetNameAtCoord( - playerPosition.X, - playerPosition.Y, - playerPosition.Z, - ref hash, ref crossingRoadHash); - - var currentRoad = API.GetStreetNameFromHashKey(hash); - - var dontPlayStreetName = (currentRoad == roadName); - - - roadName = ConvertStreetNameToAudioFileName(roadName); - crossingRoadName = crossingRoadName != null ? ConvertStreetNameToAudioFileName(crossingRoadName) : "N/A"; -#if DEBUG - ShowNotification("Upcoming street: " + roadName + " |X| " + crossingRoadName); -#endif + if (dir == 3 || dir == 4) + { + roadName = GetCorrectTurningRoadName(dir, dist, out dontPlayStreetName); + } switch (dir) { default: // Anything NOT known - Chat(dir.ToString()); + // Chat(dir.ToString()); break; case 6: // Not 100% PlayAudio("keepleft"); + await Delay(900); break; case 7: // Not 100% PlayAudio("keepright"); + await Delay(900); break; case 3: // Turn left at next intersection + // Chat(dir.ToString()); + PlayAudio("turnleft"); + await Delay(900); + if (dist < 175 && dist > 30 && !dontPlayStreetName) { - await Delay(900); PlayAudio("onto"); await Delay(500); PlayAudio("streetnames/" + roadName); await Delay(1250); // Generic time wait to prevent audio overlapping } - break; case 4: // Turn right at next intersection + // Chat(dir.ToString()); + PlayAudio("turnright"); + await Delay(900); + if (dist < 175 && dist > 30 && !dontPlayStreetName) { - await Delay(900); PlayAudio("onto"); await Delay(500); PlayAudio("streetnames/" + roadName); @@ -302,10 +279,11 @@ private async Task PlayDirectionAudio(int dir, int dist) case 1: // Driver went wrong way -- remaking route PlayAudio("recalculating"); + await Delay(1200); break; case 8: - PlayAudio("exitMotorwayToRight"); + //PlayAudio("exitMotorwayToRight"); break; } } @@ -318,7 +296,8 @@ void ToggleVgps() { _lastDirection = 0; _justPlayed200M = _justPlayedArrived = _justPlayedFollowRoad = - _justPlayedImmediate = _justPlayedRecalc = _justPlayed1000M = false; + _justPlayedImmediate = _justPlayedRecalc = _justPlayed1000M = + _playedStartDriveAudio = false; } ShowNotification(_voiceGpsEnabled ? "Voice GPS ~g~ENABLED" : "Voice GPS ~r~DISABLED"); @@ -382,6 +361,7 @@ private Tuple GetStreetNameForDirection(int distance, Vector3? x xyOffset = new Vector3(0, 0, 0); Vector3 coords = Game.PlayerPed.Position + (Game.PlayerPed.ForwardVector * distance) + (Vector3) xyOffset; + // ReSharper disable once InconsistentNaming var roadPositionXY = new Vector2(coords.X, coords.Y); @@ -431,5 +411,53 @@ private string ConvertStreetNameToAudioFileName(string streetName) return streetName; } + + private string GetCorrectTurningRoadName(int direction, int distance, out bool incorrectStreetName) + { + var streets = GetStreetNameForDirection(distance); + var roadName = streets.Item1; + + var playerPosition = _playerPed.Position; + + var hash = 0u; + var crossingRoadHash = 0u; + + API.GetStreetNameAtCoord( + playerPosition.X, + playerPosition.Y, + playerPosition.Z, + ref hash, ref crossingRoadHash); + + var currentRoad = API.GetStreetNameFromHashKey(hash); + + incorrectStreetName = (currentRoad == roadName); + + if (incorrectStreetName) + { + var rightVector = _playerPed.RightVector; + var leftVector = rightVector * -1; + + switch (direction) + { + case 3: + streets = GetStreetNameForDirection(distance, leftVector * 5); + roadName = streets.Item1; + incorrectStreetName = (currentRoad == roadName); + break; + case 4: + streets = GetStreetNameForDirection(distance, rightVector * 5); + roadName = streets.Item1; + incorrectStreetName = (currentRoad == roadName); + break; + } + } + + if (incorrectStreetName) + return null; + + roadName = ConvertStreetNameToAudioFileName(roadName); + + return roadName; + } } }