vanilla-wow-addons – Rev 1
?pathlinks?
local overlayers = {};
local current_locx;
local current_locy;
local current_locx_xact;
local current_locy_xact;
local current_frame;
local current_lm;
local current_viewframe;
local known_frames = {};
function YAOverlay_Register(...)
overlayers[arg[1]] = arg;
end
function YAOverlay_ForceUpdate(self)
if( not self) then
for h,v in pairs(known_frames) do
YAOverlay_OnMapChange(getglobal(h));
YAOverlay_OnMove(getglobal(h), unpack(YatlasOptions.Frames[h].Location));
end
else
YAOverlay_OnMapChange(self);
YAOverlay_OnMove(self, unpack(YatlasOptions.Frames[self:GetName()].Location));
end
end
function YAOverlay_OnMapChange(self)
local lm = self:GetName();
self.overlays = {};
known_frames[lm] = 1;
current_frame = self;
local h = 1;
while h > 0 do
local kid = getglobal(lm.."OBGTexture"..h);
local pa = getglobal(lm.."OTexture"..h);
if(pa and kid) then
kid:ClearAllPoints();
kid:SetPoint("TOPLEFT", pa);
kid:Hide();
h = h + 1;
else
h = 0;
end
end
local map = self:GetMap();
YA_PD_ResetList()
for h,v in pairs(overlayers) do
local gpf = v[2];
if(gpf) then
gpf(v[1], map);
end
end
YAOverlay_UpdateP(self)
end
function YAOverlay_OnMove(self, x,y)
local sx, sy;
current_locx_xact = x;
current_locy_xact = y;
YAOverlay_Update(self);
YAOverlay_UpdateP(self);
end
local keys = function(k)
local r = {};
for h,v in pairs(k) do
tinsert(r,h);
end
return r;
end
function YAOverlay_Update(self)
local i = 0;
local x = current_locx_xact;
local y = current_locy_xact;
local z = self:GetZoom();
local tex, bgtex;
local plist = {};
local num2 = 0;
local lm = self:GetName();
local common_pd = {};
current_lm = lm;
current_frame = self;
current_viewframe = getglobal(lm.."ViewFrame");
if(self.overlays == nil) then
return YAOverlay_OnMapChange(self);
end
if(self.plist == nil) then
self.plist = {};
end
known_frames[lm] = 1;
-- hide everything
for h = 1,self.overlays_allocd do
getglobal(lm.."OTexture"..h):Hide();
getglobal(lm.."OBGTexture"..h):Hide();
getglobal(lm.."OTexture"..h):SetTexCoord(0, 1, 0, 1);
getglobal(lm.."OBGTexture"..h):SetTexCoord(0, 1, 0, 1);
end
YA_PD_ResetList()
for xv = math.floor(x),math.ceil(x+current_viewframe:GetWidth()/z),1 do
if(self.overlays[xv] ~= nil) then
for yv = math.floor(y),math.ceil(y+current_viewframe:GetHeight()/z),1 do
if(self.overlays[xv][yv] ~= nil) then
for k,vv in pairs(self.overlays[xv][yv]) do
if(vv[2] > x and vv[3] > y and
vv[2] < x+current_viewframe:GetWidth()/z and
vv[3] < y+current_viewframe:GetHeight()/z) then
plist[vv[4]..vv[2]..vv[3]] = vv;
end
end
end
end
end
end
local sorted = keys(plist);
local pd_allocfunc = getglobal(self.YA_PD_allocText);
if(not pd_allocfunc) then pd_allocfunc = function () end end
table.sort(sorted)
common_pd = {};
self.overlays_allocd = 1;
for hi,h in ipairs(sorted) do
local v = plist[h];
local modi = 0;
local showornotfunc = overlayers[v[1]][5];
if(YatlasOptions.Frames[lm].Overlays[v[1]] or (showornotfunc and not showornotfunc(v))) then
tex = nil;
else
tex = getglobal(lm.."OTexture"..self.overlays_allocd);
bgtex = getglobal(lm.."OBGTexture"..self.overlays_allocd);
end
if(tex ~= nil and bgtex ~= nil) then
tex:Show();
local otextures;
if((not v[6]) or (not v[6].commonpd)) then
i = i + 1;
num2 = num2 + 1;
otextures = {pd_allocfunc()};
else
if(not common_pd[v[6].commonpd]) then
common_pd[v[6].commonpd] = {pd_allocfunc()};
i = i + 1;
else
modi = -1;
end
otextures = common_pd[v[6].commonpd];
end
if(otextures[1]) then
tinsert(otextures[1].myOTextures, self.overlays_allocd);
end
local func = overlayers[v[1]][3];
if(func ~= nil) then
func({tex, bgtex}, otextures, {v[2], v[3]}, v[4], num2, v[5]);
end
self.overlays_allocd = self.overlays_allocd + 1;
end
end
-- count correctly!
self.overlays_allocd = self.overlays_allocd - 1;
end
function YAOverlay_showmeornot(framename, v)
local showornotfunc = overlayers[v[1]][5];
if(YatlasOptions.Frames[framename].Overlays[v[1]] or (showornotfunc and not showornotfunc(v))) then
return false;
else
return true;
end
end
function YAOverlay_UpdateP(self)
local z = self:GetZoom();
local lm = self:GetName();
local vf = getglobal(lm.."ViewFrame");
local iconsize = YatlasOptions.Frames[lm].IconSize;
if(self.unitlocations.player and self.unitlocations.player[1] == YatlasOptions.Frames[lm].Map) then
local x,y = Yatlas_Big2Mini_Coord(self.unitlocations.player[2],
self.unitlocations.player[3]);
if(x > current_locx_xact and y > current_locy_xact and
x < current_locx_xact+vf:GetWidth()/z and y < current_locy_xact+vf:GetHeight()/z) then
getglobal(lm.."PTexture1"):SetTexture("Interface\\WorldMap\\WorldMapPlayerIcon");
YAOverly_position_texture(getglobal(lm.."PTexture1"), {x, y}, {iconsize/2, iconsize/2} );
getglobal(lm.."PTexture1"):Show();
getglobal(lm.."PTexture1"):SetHeight(iconsize);
getglobal(lm.."PTexture1"):SetWidth(iconsize);
else
getglobal(lm.."PTexture1"):Hide();
end
else
getglobal(lm.."PTexture1"):Hide();
end
end
function YAOverly_position_texture(tx, coord, off)
local z = current_frame:GetZoom();
tx:ClearAllPoints();
tx:SetPoint("TOPLEFT", current_viewframe, "TOPLEFT",
-(current_locx_xact - coord[1])*z - off[1],
(current_locy_xact - coord[2])*z + off[2]);
end
--
function YFOO_Init(frame)
if(not frame) then
frame = this;
end
UIDropDownMenu_Initialize(frame, YFOODropDown_Initialize, "MENU");
UIDropDownMenu_SetButtonWidth(50,frame);
UIDropDownMenu_SetWidth(50,frame);
end
function YFOODropDown_Initialize()
if(UIDROPDOWNMENU_MENU_LEVEL == 1) then
local info = {};
info.text = YATLAS_OVERLAY_SHOWPOINTS_TITLE;
info.notClickable = 1;
info.isTitle = 1;
info.notCheckable = 1;
UIDropDownMenu_AddButton(info);
end
if(YatlasOptions.Frames and YatlasOptions.Frames[current_lm]) then
for h,v in pairs(overlayers) do
local ddf = v[4];
if(ddf) then
ddf(v[1], map);
end
end
end
end
function YFOO_OnClick()
current_lm = this;
while(current_lm and not current_lm.SetLocation) do
current_lm = current_lm:GetParent()
end
current_lm = current_lm:GetName();
if(current_lm == "BigYatlasFrame") then
BigYatlasTooltip:Hide();
end
ToggleDropDownMenu(1, nil, getglobal(this:GetName().."DropDown"), this:GetName(), 0, 0);
end
function YFOODropDown_do_toggle_normal()
YatlasOptions.Frames[current_lm].Overlays[this.value] = UIDropDownMenuButton_GetChecked()
YAOverlay_ForceUpdate(getglobal(current_lm))
end
function YAOverlay_addpoint(frame, x, y, dat)
if(type(frame) ~= "table") then
frame = current_frame;
end
local fx = math.floor(x);
local fy = math.floor(y);
if(frame.overlays[fx] == nil) then frame.overlays[fx] = {}; end
if(frame.overlays[fx][fy] == nil) then frame.overlays[fx][fy] = {}; end
tinsert(frame.overlays[fx][fy],dat);
end
---
---
---
function YAOverlay_getpoints_landmarks(name, map)
-- we got these from map api. don't use if we see Megellan
if(type(Yatlas_Landmarks[map]) == "table" and Magellan_Init == nil) then
for h,v in ipairs(Yatlas_Landmarks[map]) do
local x,y = Yatlas_Big2Mini_Coord(v[1],v[2]);
YAOverlay_addpoint(nil, x, y, {"landmarks",x,y,v[3],Yatlas_Landmarks[map][h]});
end
end
-- we got these...from OURSELVES!
if(type(Yatlas_instances[map]) == "table") then
for h,v in ipairs(Yatlas_instances[map]) do
local x,y = Yatlas_Big2Mini_Coord(v[2],v[3]);
YAOverlay_addpoint(nil, x, y,{"landmarks",x,y,v[1],{nil,nil,nil,nil,-1}});
end
end
-- 'other towns' ...we got these...from OURSELVES!
if(type(Yatlas_towns2[map]) == "table") then
for h,v in ipairs(Yatlas_towns2[map]) do
local x,y = Yatlas_Big2Mini_Coord(v[2],v[3]);
YAOverlay_addpoint(nil, x, y,{"landmarks",x,y,v[1],{nil,nil,nil,nil,-4}});
end
end
end
function YAOverlay_setupicon_landmarks(maptextures, otextures, coord, name, id, dat)
local texture, bg = unpack(maptextures);
local x1, x2, y1, y2;
local r, g, b;
local bgtextname;
if(dat[5] == 4 or dat[5] == 5 or dat[5] < 0) then
x1 = 0; y1 = 0;
x2 = 1; y2 = 1;
r = 0.2;
g = 0.6;
b = 1;
bgtextname = "Interface\\AddOns\\Yatlas\\images\\Icons\\Icon-Circle";
if(dat[5] == 5) then
bgtextname = "Interface\\AddOns\\Yatlas\\images\\Icons\\Icon-Circle2";
elseif(dat[5] == -1) then
r = 0.9;
g = 0.1;
b = 0.9;
elseif(dat[5] == -4) then
r = 0.3;
g = 0.8;
b = 1;
end
else
x1, x2, y1, y2 = WorldMap_GetPOITextureCoords(dat[5]);
r,g,b = 1,1,1;
bgtextname = "Interface\\Minimap\\POIIcons"
end
texture:Show();
YAOverly_position_texture(texture, coord, {YatlasOptions.Frames[current_lm].IconSize/2, YatlasOptions.Frames[current_lm].IconSize/2});
if(id > 32) then
texture:Hide();
else
texture:SetTexture("Interface\\AddOns\\Yatlas\\images\\Icons\\Icon-N"..id);
texture:SetHeight(YatlasOptions.Frames[current_lm].IconSize+1);
texture:SetWidth(YatlasOptions.Frames[current_lm].IconSize+1);
end
bg:Show();
bg:SetHeight(YatlasOptions.Frames[current_lm].IconSize);
bg:SetWidth(YatlasOptions.Frames[current_lm].IconSize);
bg:SetTexture(bgtextname);
bg:SetTexCoord(x1, x2, y1, y2);
bg:SetVertexColor(r, g, b, 1);
local txt, icon, bgicon = unpack(otextures);
if(icon) then
icon:SetTexture("Interface\\AddOns\\Yatlas\\images\\Icons\\Icon-N"..id);
icon:SetHeight(14);
icon:SetWidth(14);
icon:Show();
bgicon:SetTexture(bgtextname);
bgicon:SetTexCoord(x1, x2, y1, y2);
bgicon:SetVertexColor(r, g, b, 1);
bgicon:SetHeight(14);
bgicon:SetWidth(14);
bgicon:Show();
txt:SetText(name);
txt:Show();
end
end
function YAOverlay_config_landmarks(name)
if(UIDROPDOWNMENU_MENU_LEVEL == 1) then
local info = {};
info.text = YATLAS_OVERLAY_LANDMARKS;
info.func = YFOODropDown_do_toggle_normal;
info.checked = YatlasOptions.Frames[current_lm].Overlays and not YatlasOptions.Frames[current_lm].Overlays[name];
info.value = name;
info.keepShownOnClick = 1;
UIDropDownMenu_AddButton(info);
end
end
YAOverlay_Register("landmarks",YAOverlay_getpoints_landmarks,YAOverlay_setupicon_landmarks,
YAOverlay_config_landmarks);
---
function YAOverlay_getpoints_graveyards(name, map)
if(type(Yatlas_graveyards[map]) == "table") then
for h,v in ipairs(Yatlas_graveyards[map]) do
local x,y = Yatlas_Big2Mini_Coord(v[2],v[1]);
YAOverlay_addpoint(nil, x, y, {"graveyards",x,y,"Graveyard",0,{commonpd="Gy"}});
end
end
end
function YAOverlay_setupicon_graveyards(maptextures, otextures, coord, name, id)
local texture, bg = unpack(maptextures);
texture:Hide();
YAOverly_position_texture(texture, coord, {YatlasOptions.Frames[current_lm].IconSize/2, YatlasOptions.Frames[current_lm].IconSize/2});
bg:Show();
bg:SetHeight(YatlasOptions.Frames[current_lm].IconSize);
bg:SetWidth(YatlasOptions.Frames[current_lm].IconSize);
bg:SetTexture("Interface\\AddOns\\Yatlas\\images\\Icons\\Icon-Graveyard");
bg:SetVertexColor(1, 1, 1, 1);
local txt, icon, bgicon = unpack(otextures);
if(icon) then
icon:SetTexture("Interface\\AddOns\\Yatlas\\images\\Icons\\Icon-Blank");
icon:SetHeight(16);
icon:SetWidth(16);
icon:Show()
bgicon:SetTexture("Interface\\AddOns\\Yatlas\\images\\Icons\\Icon-Graveyard");
bgicon:SetVertexColor(1, 1, 1, 1);
bgicon:SetHeight(16);
bgicon:SetWidth(16);
bgicon:Show();
txt:SetText(name);
txt:Show();
end
end
function YAOverlay_config_graveyards(name)
if(UIDROPDOWNMENU_MENU_LEVEL == 1) then
local info = {};
info.text = YATLAS_OVERLAY_GRAVEYARDS;
info.func = YFOODropDown_do_toggle_normal;
info.checked = YatlasOptions.Frames[current_lm].Overlays and not YatlasOptions.Frames[current_lm].Overlays[name];
info.value = name;
info.keepShownOnClick = 1;
UIDropDownMenu_AddButton(info);
end
end
YAOverlay_Register("graveyards",YAOverlay_getpoints_graveyards,
YAOverlay_setupicon_graveyards,YAOverlay_config_graveyards);
---
function YAOverlay_getpoints_mapnotes(name, map)
if(MapNotes_Data and MapNotes_Data[Yatlas_WorldMapIds[map]]) then
for zid,zdat in ipairs(MapNotes_Data[Yatlas_WorldMapIds[map]]) do
local zname = Yatlas_PaperZoneNames[map][zid];
if(zname ~= nil) then
local real_zid;
for h,v in pairs(Yatlas_areadb) do
if(v[2] == zname) then
real_zid = h;
break;
end
end
if(real_zid ~= nil) then
local x1,x2,y1,y2,x,y;
x1 = Yatlas_mapareas[map][real_zid][1];
x2 = Yatlas_mapareas[map][real_zid][2];
y1 = Yatlas_mapareas[map][real_zid][3];
y2 = Yatlas_mapareas[map][real_zid][4];
for i,notes in ipairs(zdat) do
x,y = Yatlas_Big2Mini_Coord(-notes.xPos*(x1-x2) + x1, -notes.yPos*(y1-y2) + y1);
YAOverlay_addpoint(nil, x, y, {"mapnotes",x,y,notes.name,notes.icon});
end
end
end
end
end
end
function YAOverlay_setupicon_mapnotes(maptextures, otextures, coord, name, id, dat)
local texture, bg = unpack(maptextures);
local color = {1,1,1,1};
local iconname = "Icon-Square";
if(dat) then
if(dat >= 5) then
iconname = "Icon-Diamond";
dat = dat - 5;
end
if(dat == 0) then
color = {1,1,0,1};
elseif(dat == 1) then
color = {1,0.1,0.1,1};
elseif(dat == 2) then
color = {0.4,0.2,0.95,1};
elseif(dat == 3) then
color = {0.1, 1, 0.2,1};
elseif(dat == 4) then
color = {1,0.4,0.8,1};
end
end
texture:Show();
YAOverly_position_texture(texture, coord, {YatlasOptions.Frames[current_lm].IconSize/2, YatlasOptions.Frames[current_lm].IconSize/2});
if(id > 32) then
texture:Hide();
else
texture:SetTexture("Interface\\AddOns\\Yatlas\\images\\Icons\\Icon-N"..id);
texture:SetHeight(YatlasOptions.Frames[current_lm].IconSize);
texture:SetWidth(YatlasOptions.Frames[current_lm].IconSize);
end
bg:Show();
bg:SetHeight(YatlasOptions.Frames[current_lm].IconSize);
bg:SetWidth(YatlasOptions.Frames[current_lm].IconSize);
bg:SetTexture("Interface\\AddOns\\Yatlas\\images\\Icons\\"..iconname);
bg:SetVertexColor(unpack(color));
local txt, icon, bgicon = unpack(otextures);
if(icon) then
icon:SetTexture("Interface\\AddOns\\Yatlas\\images\\Icons\\Icon-N"..id);
icon:SetHeight(16);
icon:SetWidth(16);
icon:Show();
bgicon:SetTexture("Interface\\AddOns\\Yatlas\\images\\Icons\\"..iconname);
bgicon:SetVertexColor(unpack(color));
bgicon:SetHeight(16);
bgicon:SetWidth(16);
bgicon:Show();
txt:SetText(name);
txt:Show();
end
end
function YAOverlay_config_mapnotes(name)
if(MapNotes_DeleteNote and UIDROPDOWNMENU_MENU_LEVEL == 1) then
local info = {};
info.text = YATLAS_OVERLAY_MAPNOTES;
info.func = YFOODropDown_do_toggle_normal;
info.checked = YatlasOptions.Frames[current_lm].Overlays
and not YatlasOptions.Frames[current_lm].Overlays[name];
info.value = name;
info.keepShownOnClick = 1;
UIDropDownMenu_AddButton(info);
end
end
YAOverlay_Register("mapnotes",YAOverlay_getpoints_mapnotes,YAOverlay_setupicon_mapnotes,
YAOverlay_config_mapnotes);
---
function YAOverlay_getpoints_gatherer(name, map)
if(GatherItems and GatherItems[Yatlas_WorldMapIds[map]]) then
for zid,zdat in pairs(GatherItems[Yatlas_WorldMapIds[map]]) do
local zname = Yatlas_PaperZoneNames[map][zid];
if(zname ~= nil) then
local real_zid;
for h,v in pairs(Yatlas_areadb) do
if(v[2] == zname) then
real_zid = h;
break;
end
end
local x1,x2,y1,y2,x,y;
x1 = Yatlas_mapareas[map][real_zid][1];
x2 = Yatlas_mapareas[map][real_zid][2];
y1 = Yatlas_mapareas[map][real_zid][3];
y2 = Yatlas_mapareas[map][real_zid][4];
for typ,datz in pairs(zdat) do
for i,notes in ipairs(datz) do
x,y = Yatlas_Big2Mini_Coord(-notes.x*(x1-x2)/100 + x1, -notes.y*(y1-y2)/100 + y1);
local utyp = string.gsub(typ, ".", string.upper, 1)
YAOverlay_addpoint(nil, x, y, {"gatherer",x,y,utyp,notes,{commonpd="g"..typ}});
end
end
end
end
end
end
function YAOverlay_setupicon_gatherer(maptextures, otextures, coord, name, id, dat)
local texture, bg = unpack(maptextures);
local iconname = "Interface\\AddOns\\Yatlas\\images\\Icons\\Icon-Square";
if(Gather_IconSet) then
local gtype = dat.gtype;
local gtype_str = gtype;
if (type(gtype) == "number") then
gtype_str = Gather_DB_TypeIndex[gtype];
end
-- map
local namei = "default";
if(type(Gather_DB_IconIndex[gtype]) == "table") then
for h,v in pairs(Gather_DB_IconIndex[gtype]) do
if(v == dat.icon) then namei = h; break; end
end
elseif(type(dat.icon) == "string") then
namei = dat.icon;
end
local icons = Gather_IconSet["iconic"][gtype_str];
if(icons[namei]) then
iconname = icons[namei];
elseif(icons["default"]) then
iconname = icons["default"];
end
end
texture:Hide();
YAOverly_position_texture(texture, coord, {YatlasOptions.Frames[current_lm].IconSize/2, YatlasOptions.Frames[current_lm].IconSize/2});
bg:Show();
bg:SetHeight(YatlasOptions.Frames[current_lm].IconSize);
bg:SetWidth(YatlasOptions.Frames[current_lm].IconSize);
bg:SetTexture(iconname);
bg:SetVertexColor(1,1,1,1);
local txt, icon, bgicon = unpack(otextures);
if(icon) then
icon:SetTexture("Interface\\AddOns\\Yatlas\\images\\Icons\\Icon-Blank");
icon:SetHeight(16);
icon:SetWidth(16);
icon:Show()
bgicon:SetTexture(iconname);
bgicon:SetVertexColor(1,1,1,1);
bgicon:SetHeight(16);
bgicon:SetWidth(16);
bgicon:Show();
txt:SetText(name);
txt:Show();
end
end
function YAOverlay_config_gatherer(name)
if(Gatherer_AddGatherHere) then
local info = {};
if(UIDROPDOWNMENU_MENU_LEVEL == 1) then
info.text = YATLAS_OVERLAY_GATHERER;
info.func = YFOODropDown_do_toggle_normal;
info.checked = YatlasOptions.Frames[current_lm].Overlays and not YatlasOptions.Frames[current_lm].Overlays[name];
info.value = name;
info.keepShownOnClick = 1;
info.hasArrow = 1;
UIDropDownMenu_AddButton(info);
elseif(UIDROPDOWNMENU_MENU_LEVEL == 2) then
info.text = YATLAS_OVERLAY_GATHERER_TREASURE;
info.func = YFOODropDown_do_toggle_normal;
info.checked = YatlasOptions.Frames[current_lm].Overlays and not YatlasOptions.Frames[current_lm].Overlays[name.."_Treasure"];
info.value = name.."_Treasure";
info.keepShownOnClick = 1;
UIDropDownMenu_AddButton(info, 2);
info = {};
info.text = YATLAS_OVERLAY_GATHERER_ORES;
info.func = YFOODropDown_do_toggle_normal;
info.checked = YatlasOptions.Frames[current_lm].Overlays and not YatlasOptions.Frames[current_lm].Overlays[name.."_Ore"];
info.value = name.."_Ore";
info.keepShownOnClick = 1;
UIDropDownMenu_AddButton(info, 2);
info = {};
info.text = YATLAS_OVERLAY_GATHERER_HERBS;
info.func = YFOODropDown_do_toggle_normal;
info.checked = YatlasOptions.Frames[current_lm].Overlays and not YatlasOptions.Frames[current_lm].Overlays[name.."_Herb"];
info.value = name.."_Herb";
info.keepShownOnClick = 1;
UIDropDownMenu_AddButton(info, 2);
end
end
end
function YAOverlay_showme_gatherer(v)
local gtype = v[5].gtype;
if (type(gtype) == "number") then
gtype = Gather_DB_TypeIndex[gtype];
end
return not YatlasOptions.Frames[current_lm].Overlays["gatherer_"..gtype];
end
YAOverlay_Register("gatherer",YAOverlay_getpoints_gatherer,
YAOverlay_setupicon_gatherer, YAOverlay_config_gatherer,
YAOverlay_showme_gatherer);
---
function YAOverlay_getpoints_ctmapmod(name, map)
if(CT_UserMap_Notes) then
for zid,zonename in pairs(Yatlas_PaperZoneNames[map]) do
if(CT_UserMap_Notes[zonename]) then
local real_zid;
for h,v in pairs(Yatlas_areadb) do
if(v[2] == zonename) then
real_zid = h;
break;
end
end
local x1,x2,y1,y2,x,y,ops;
x1 = Yatlas_mapareas[map][real_zid][1];
x2 = Yatlas_mapareas[map][real_zid][2];
y1 = Yatlas_mapareas[map][real_zid][3];
y2 = Yatlas_mapareas[map][real_zid][4];
for id,dat in ipairs(CT_UserMap_Notes[zonename]) do
ops = {};
x,y = Yatlas_Big2Mini_Coord(-dat.x*(x1-x2) + x1, -dat.y*(y1-y2) + y1);
if(dat.set ~= 1 and dat.set ~= 6) then
ops = {commonpd="g"..dat.name};
end
YAOverlay_addpoint(nil, x, y, {"ctmapmod",x,y,dat.name,dat,ops});
end
end
end
end
end
function YAOverlay_setupicon_ctmapmod(maptextures, otextures, coord, name, id, var)
local texture, bg = unpack(maptextures);
local iconname = "Interface\\AddOns\\Yatlas\\images\\Icons\\Icon-Square";
local iconszw = YatlasOptions.Frames[current_lm].IconSize/2+2;
-- ctmapmod knows best...
if ( var.set == 7 or var.set == 8 ) then
local offset = 0;
if ( var.set == 8 ) then
offset = 29;
end
if ( CT_UserMap_HerbIcons[var.icon+offset] ) then
iconname = "Interface\\AddOns\\CT_MapMod\\Resource\\" .. CT_UserMap_HerbIcons[var.icon+offset];
else
iconname = "Interface\\AddOns\\CT_MapMod\\Resource\\Herb_Bruiseweed";
end
else
iconname = "Interface\\AddOns\\CT_MapMod\\Skin\\" .. CT_UserMap_Icons[var.set];
end
texture:Hide();
YAOverly_position_texture(texture, coord, {iconszw, iconszw});
bg:Show();
bg:SetHeight(iconszw*2);
bg:SetWidth(iconszw*2);
bg:SetTexture(iconname);
bg:SetVertexColor(1,1,1,1);
local txt, icon, bgicon = unpack(otextures);
if(icon) then
icon:SetTexture("Interface\\AddOns\\Yatlas\\images\\Icons\\Icon-Blank");
icon:SetHeight(16);
icon:SetWidth(16);
icon:Show()
bgicon:SetTexture(iconname);
bgicon:SetVertexColor(1,1,1,1);
bgicon:SetHeight(16);
bgicon:SetWidth(16);
bgicon:Show();
txt:SetText(name);
txt:Show();
end
end
function YAOverlay_config_ctmapmod(name)
if(CT_MapMod_AddNote) then
local info = {};
if(UIDROPDOWNMENU_MENU_LEVEL == 1) then
info.text = YATLAS_OVERLAY_CTMAPMOD;
info.func = YFOODropDown_do_toggle_normal;
info.checked = YatlasOptions.Frames[current_lm].Overlays and not YatlasOptions.Frames[current_lm].Overlays[name];
info.value = name;
info.keepShownOnClick = 1;
UIDropDownMenu_AddButton(info);
end
end
end
YAOverlay_Register("ctmapmod",YAOverlay_getpoints_ctmapmod,
YAOverlay_setupicon_ctmapmod, YAOverlay_config_ctmapmod);