diff --git a/Source/UI/Layout/SnapRectangle.cpp b/Source/UI/Layout/SnapRectangle.cpp index 96286a62..ecd3214c 100644 --- a/Source/UI/Layout/SnapRectangle.cpp +++ b/Source/UI/Layout/SnapRectangle.cpp @@ -1,5 +1,9 @@ #include "UI/Layout/SnapRectangle.h" +#include "Utility/Text/TextTokens.h" + +#include +#include #include namespace { @@ -95,3 +99,27 @@ void SnapRectangle::Snap(const SnapRectangle& other, int& dx, int& dy) const { } } } + +// OFFSET: 0x009B5140 +// FUNCTION: fn_13837 +int ParseItemIdTag(const char* text, const char* end, int& length, int& itemId) { + if (std::strncmp(text, "^nItemID^", 9) != 0) { + return 0; + } + + unsigned int digits = 0; + while (text + digits < end && g_colorHexDigit[static_cast(text[9 + digits])] != 0) { + ++digits; + } + + if (digits == 0) { + return 0; + } + + char number[10]; + std::strncpy(number, text + 9, digits); + number[digits] = '\0'; + length = digits + 9; + itemId = std::atoi(number); + return 1; +}