From d2b2a25393c00b51c9d6dc7672fb71fe5904a0b1 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Wed, 18 Mar 2026 03:06:23 -0700 Subject: [PATCH] feat: extend macro conditionals to /use command --- src/ui/game_screen.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/ui/game_screen.cpp b/src/ui/game_screen.cpp index 67a045e8..9bc77728 100644 --- a/src/ui/game_screen.cpp +++ b/src/ui/game_screen.cpp @@ -6452,6 +6452,15 @@ void GameScreen::sendChatMessage(game::GameHandler& gameHandler) { while (!useArg.empty() && useArg.front() == ' ') useArg.erase(useArg.begin()); while (!useArg.empty() && useArg.back() == ' ') useArg.pop_back(); + // Handle macro conditionals: /use [mod:shift] ItemName; OtherItem + if (!useArg.empty() && useArg.front() == '[') { + uint64_t dummy = static_cast(-1); + useArg = evaluateMacroConditionals(useArg, gameHandler, dummy); + if (useArg.empty()) { chatInputBuffer[0] = '\0'; return; } + while (!useArg.empty() && useArg.front() == ' ') useArg.erase(useArg.begin()); + while (!useArg.empty() && useArg.back() == ' ') useArg.pop_back(); + } + // Check for bag/slot notation: two numbers separated by whitespace { std::istringstream iss(useArg);