--local _; -- function VUHDO_sendCtraMessage(aMessage) C_ChatInfo.SendAddonMessage("CTRA", aMessage, VUHDO_getAddOnDistribution()); end -- return the ordinality of aUnits main tank entry, returns nil if unit is no main tank local function VUHDO_getMainTankNumber(aUnit) for tMTNumber, tMTName in pairs(VUHDO_MAINTANK_NAMES) do if tMTName == VUHDO_RAID[aUnit]["name"] then return tMTNumber; end end return nil; end -- function VUHDO_ctraBroadCastMaintanks() local tMtNumber; for tUnit, tInfo in pairs(VUHDO_RAID) do tMtNumber = VUHDO_getMainTankNumber(tUnit); VUHDO_sendCtraMessage(tMtNumber and format("SET %d %s", tMtNumber, tInfo["name"]) or ("R " .. tInfo["name"])); end end -- function VUHDO_parseCtraMessage(_, aMessage) -- Setting main tanks if "SET " == strsub(aMessage, 1, 4) then local _, _, tNum, tName = strfind(aMessage, "^SET (%d+) (.+)$"); if tNum and tName then for tKey, _ in pairs(VUHDO_MAINTANK_NAMES) do if VUHDO_MAINTANK_NAMES[tKey] == tName then VUHDO_MAINTANK_NAMES[tKey] = nil; end end VUHDO_MAINTANK_NAMES[tonumber(tNum)] = tName; VUHDO_normalRaidReload(); end -- Removing main tanks elseif "R " == strsub(aMessage, 1, 2) then local _, _, tName = strfind(aMessage, "^R (.+)$"); if tName then for tKey, _ in pairs(VUHDO_MAINTANK_NAMES) do if VUHDO_MAINTANK_NAMES[tKey] == tName then VUHDO_MAINTANK_NAMES[tKey] = nil; break; end end VUHDO_normalRaidReload(); end end end