From 8816cc14fd9d62e59cefdaaf28accf4488a4ba9d Mon Sep 17 00:00:00 2001 From: MarcelineVQ Date: Sun, 8 Mar 2026 19:06:18 -0700 Subject: [PATCH] Add "Hide in Cities" toggle to minimap icons dropdown Reads zone ID from 0xB4E314 and suppresses NPC/GO tracking in capital cities (SW, IF, Darn, Org, TB, UC, Alah'Thalas) when enabled. Castle icon converted from WC3-style PNG via png2blp. --- src/main.zig | 1 + src/minimapicons/addon/MinimapIcons.lua | 20 ++++++++++++ .../Interface/Minimap/Tracking/City.blp | Bin 0 -> 2564 bytes src/minimapicons/minimapicons.zig | 29 +++++++++++++++++- 4 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 src/minimapicons/assets/Interface/Minimap/Tracking/City.blp diff --git a/src/main.zig b/src/main.zig index a5be73f..c2b4e52 100644 --- a/src/main.zig +++ b/src/main.zig @@ -96,6 +96,7 @@ fn registerLuaFunctions() void { if (build_opts.minimapicons and minimapicons.isActive()) { const lib = [_]lua.LuaReg{ .{ .name = "SetObjectTypeBlip", .func = @intFromPtr(&minimapicons.luaSetObjectTypeBlip) }, + .{ .name = "SetMinimapCityToggle", .func = @intFromPtr(&minimapicons.luaSetCityToggle) }, .{ .name = null, .func = 0 }, }; lua.openlib(lua.getContext(), "WeirdUtils", &lib, 0); diff --git a/src/minimapicons/addon/MinimapIcons.lua b/src/minimapicons/addon/MinimapIcons.lua index 13105a1..66dbf0a 100644 --- a/src/minimapicons/addon/MinimapIcons.lua +++ b/src/minimapicons/addon/MinimapIcons.lua @@ -121,6 +121,9 @@ local activeNpcCategories = {} -- name -> 1/nil, loaded from WeirdUtils_MinimapI -- that take priority over unfiltered catch-all entries. local function updateDllTracking() if not WeirdUtils.SetObjectTypeBlip then return end + if WeirdUtils.SetMinimapCityToggle then + WeirdUtils.SetMinimapCityToggle(activeNpcCategories["City Toggle"] and 1 or 0) + end for _, cat in ipairs(NPC_CATEGORIES) do local inc = cat.getFilter and cat.getFilter() or nil local exc = cat.getExclude and cat.getExclude() or nil @@ -220,6 +223,23 @@ UIDropDownMenu_Initialize(dropdown, function() npcTitle.notCheckable = 1 UIDropDownMenu_AddButton(npcTitle) + -- City Toggle: suppress NPC/GO tracking in capital cities + local cityInfo = {} + cityInfo.text = "Hide in Cities" + cityInfo.icon = "Interface\\Minimap\\Tracking\\City" + cityInfo.checked = activeNpcCategories["City Toggle"] + cityInfo.keepShownOnClick = 1 + cityInfo.func = function() + if activeNpcCategories["City Toggle"] then + activeNpcCategories["City Toggle"] = nil + else + activeNpcCategories["City Toggle"] = 1 + end + WeirdUtils_MinimapIconsSettings = activeNpcCategories + updateDllTracking() + end + UIDropDownMenu_AddButton(cityInfo) + for _, cat in ipairs(NPC_CATEGORIES) do local catName = cat.name local info = {} diff --git a/src/minimapicons/assets/Interface/Minimap/Tracking/City.blp b/src/minimapicons/assets/Interface/Minimap/Tracking/City.blp new file mode 100644 index 0000000000000000000000000000000000000000..b62bc2779f4c9ab75dee12251e6a3dbc6456b6a3 GIT binary patch literal 2564 zcmeHJT}abW6hB*-BXbLT=0HN&+%~W8f0y7nuP6fP^Mkvz? z`VA7r2TJxm0&s30t)eJqOxpdY9RhmMJ9dZSRaEGz{m~JJ)ZL&2;RDBS)ByVI+ChLY zb|3sZdLZ_DENo`?-Bt%=%c$Tf!%rTvY#4K**fQTX01P`5b$)BaD-AIVhTC0pIKE_w z25I!bV~%%50t5#K-{N?6WNfG)xI7&DEOClh?2hHQsq~;=8Z3L_j~*Bwr~)w5y_WKi zst~#TJ4;No_{e^nV@F<<$}M$#GG&MeW$9cRU+}?NX(2{4adv=Z!j3MfrqaA%5H(F|h50WQ>uQsq>(FXg!05VPR9##T$cBlFpntRFIV|D8SW7R33L0D@Z@e-AglDg`)i54*t6 z%Oz~>=}6_+b{b$6nkU|G$U^ov7uo#!PZ7sT0G8Sh?DFT&yYJtt7wLupMCZxP^M(2) zodz;MC2x_snQacI1KcJ3ltGzl4q#5f@Awnnvw3%hHvl97D$y9nuxD?(>~PMEjk@&Nin8z$yw2i52LNbeZ0kIFbZ+MOIViXndfPWJjt z{k~i@VJ@+kuui9Qa{HHg1E9a}GIN}}$GWE8T3?L<`G?^=b|1Z7f5L<*1MH8_@;x+< zEMKA~2TgfCfT{STjMcpW@kWyPVG#xQtPskfjQrC+isId%-}@yT!MWsrs-UwNpeYHr zRtb&b_d(>Thq(8G3Y8>{Px1dcf V*_Ko~KTQ