From 22fd19ca98c6c7b2df0c858ce3d8698516d1ec66 Mon Sep 17 00:00:00 2001 From: LupertEverett <86886753+LupertEverett@users.noreply.github.com> Date: Tue, 23 Apr 2024 21:20:22 +0300 Subject: [PATCH] UnrealURL: Correct teleport tag and options parsing --- SurrealEngine/UObject/UnrealURL.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/SurrealEngine/UObject/UnrealURL.cpp b/SurrealEngine/UObject/UnrealURL.cpp index 6c33dabc..3695ef3f 100644 --- a/SurrealEngine/UObject/UnrealURL.cpp +++ b/SurrealEngine/UObject/UnrealURL.cpp @@ -47,17 +47,18 @@ UnrealURL::UnrealURL(const std::string& urlString) if (teleportTagPos != std::string::npos) { mapName = urlString.substr(0, teleportTagPos); + std::string allOptsString = urlString.substr(teleportTagPos + 1); - size_t optionsTagPos = urlString.find_first_of('?'); + size_t optionsTagPos = allOptsString.find_first_of('?'); if (optionsTagPos != std::string::npos) { - teleportTag = urlString.substr(teleportTagPos + 1, optionsTagPos - teleportTagPos + 1); - options = urlString.substr(optionsTagPos + 1); + teleportTag = allOptsString.substr(0, optionsTagPos); + options = allOptsString.substr(optionsTagPos + 1); } else // No options mean that the string consists of only the map name and teleporter tag - teleportTag = urlString.substr(teleportTagPos + 1); + teleportTag = allOptsString; } else {