#ifndef RAGNAROK_SOURCE_UI_NAVIGATION_NAVIGATIONLINK_H #define RAGNAROK_SOURCE_UI_NAVIGATION_NAVIGATIONLINK_H #include #include #include struct NavigationLinkParser { NavigationLinkParser(); ~NavigationLinkParser(); bool HasUnownedItemLink(std::string text); bool HasLink(std::string text); __declspec(noinline) std::string ExpandMessages(std::string text); std::string EncodeNavigationNumber(int value); bool ParseNavigationLink(std::string value, std::string& name, int& x, int& y); const std::string ExtractNavigationLink(std::string value); std::pair RemoveLineBreakTag(std::string value); void SplitMessageArguments(const char* text, std::vector& arguments); std::string FormatMessageArguments(std::string value, int messageId); /* 0000 */ bool m_ready; }; extern NavigationLinkParser* g_navigationLinkParser; // INLINED inline NavigationLinkParser* GetNavigationLinkParser() { return g_navigationLinkParser; } extern std::string g_naviLinkTagBegin; extern std::string g_naviLinkTagEnd; bool CreateNavigationLinkParser(); void DestroyNavigationLinkParser(); int DecodeNavigationNumber(std::string value); std::string FormatNavigationLink(std::string value, bool brackets); void DisplayNavigationLink(std::string& output, std::string value); #endif