function widget:GetInfo() return { name = "Emotes", desc = "Draws emotes on the map with with lua commands - /luaui emotelist", author = "TheFatController", date = "April 03, 2007", license = "GNU GPL, v2 or later", layer = 0, enabled = true -- loaded by default? } end local eng101List = {} local awesomeList = {} local unsmithList = {} local madmaxList = {} local goleftList = {} local rolleyesList = {} local mikeList = {} local mysteryList = {} local picScale = 0.5 local picWidth = 0 local picHeight = 0 function linePoints(x1, y1, x2, y2) return { x1 = x1, y1 = y1, x2 = x2, y2 = y2 } end function addline(lineList,x1, y1, x2, y2) table.insert(lineList,linePoints((x1*picScale),(y1*picScale),(x2*picScale),(y2*picScale))) end function widget:Initialize() eng101() awesome() unsmith() madmax() goleft() rolleyes() mike() iiam() end function getHW(lineList) if (table.getn(lineList) == 0) then return false end local bx1 = lineList[1].x1 local by1 = lineList[1].y1 local bx2 = lineList[1].x2 local by2 = lineList[1].y2 for _,lineInfo in ipairs(lineList) do if (lineInfo.x1 < bx1) then bx1 = lineInfo.x1 end if (lineInfo.y1 < by1) then by1 = lineInfo.y1 end if (lineInfo.x2 > bx2) then bx2 = lineInfo.x2 end if (lineInfo.y2 > by2) then by2 = lineInfo.y2 end end picWidth = math.abs(bx1 - bx2) picHeight = math.abs(by1 - by2) end function iiam() picScale = 0.6 addline(mysteryList,130,35,125,45) addline(mysteryList,125,15,130,25) addline(mysteryList,190,55,175,40) addline(mysteryList,115,45,125,45) addline(mysteryList,110,55,95,55) addline(mysteryList,110,70,110,55) addline(mysteryList,130,35,130,25) addline(mysteryList,110,65,95,65) addline(mysteryList,35,60,55,60) addline(mysteryList,175,70,165,60) addline(mysteryList,110,60,95,60) addline(mysteryList,175,70,190,55) addline(mysteryList,95,70,110,70) addline(mysteryList,55,160,70,145) addline(mysteryList,150,50,165,50) addline(mysteryList,100,55,100,70) addline(mysteryList,175,40,165,50) addline(mysteryList,150,60,165,60) addline(mysteryList,105,55,105,70) addline(mysteryList,95,55,95,70) addline(mysteryList,65,15,80,5) addline(mysteryList,70,105,70,145) addline(mysteryList,95,30,105,30) addline(mysteryList,120,30,130,30) addline(mysteryList,140,10,125,5) addline(mysteryList,150,65,135,90) addline(mysteryList,35,50,55,50) addline(mysteryList,110,35,115,45) addline(mysteryList,125,15,125,45) addline(mysteryList,95,35,100,45) addline(mysteryList,110,25,115,15) addline(mysteryList,110,25,110,35) addline(mysteryList,100,45,100,15) addline(mysteryList,210,120,185,120) addline(mysteryList,35,60,25,70) addline(mysteryList,55,50,65,15) addline(mysteryList,35,50,25,40) addline(mysteryList,105,25,95,25) addline(mysteryList,10,55,25,40) addline(mysteryList,255,50,255,0) addline(mysteryList,70,105,55,60) addline(mysteryList,125,5,80,5) addline(mysteryList,230,5,230,0) addline(mysteryList,120,35,130,35) addline(mysteryList,150,65,150,35) addline(mysteryList,130,25,120,25) addline(mysteryList,85,160,120,125) addline(mysteryList,230,15,230,55) addline(mysteryList,150,35,140,10) addline(mysteryList,120,105,135,90) addline(mysteryList,25,70,10,55) addline(mysteryList,55,160,85,160) addline(mysteryList,120,105,120,125) addline(mysteryList,270,15,245,15) addline(mysteryList,340,25,350,15) addline(mysteryList,315,55,315,15) addline(mysteryList,315,0,315,5) addline(mysteryList,255,50,275,50) addline(mysteryList,350,15,370,15) addline(mysteryList,340,50,360,50) addline(mysteryList,240,120,220,120) addline(mysteryList,455,25,445,15) addline(mysteryList,215,125,215,155) addline(mysteryList,105,35,95,35) addline(mysteryList,210,120,215,125) addline(mysteryList,350,35,340,25) addline(mysteryList,370,45,360,35) addline(mysteryList,445,15,425,15) addline(mysteryList,420,45,430,50) addline(mysteryList,360,35,350,35) addline(mysteryList,430,50,455,50) addline(mysteryList,290,145,275,170) addline(mysteryList,295,120,290,145) addline(mysteryList,215,125,220,120) addline(mysteryList,275,145,290,145) addline(mysteryList,270,120,270,140) addline(mysteryList,270,140,275,145) addline(mysteryList,455,50,455,25) addline(mysteryList,245,125,240,120) addline(mysteryList,185,120,185,155) addline(mysteryList,430,35,455,35) addline(mysteryList,430,35,420,45) addline(mysteryList,245,125,245,155) addline(mysteryList,430,135,400,135) addline(mysteryList,405,155,400,150) addline(mysteryList,430,135,430,125) addline(mysteryList,405,155,430,155) addline(mysteryList,470,120,450,135) addline(mysteryList,400,150,400,125) addline(mysteryList,450,120,450,155) addline(mysteryList,430,125,425,120) addline(mysteryList,405,120,400,125) addline(mysteryList,405,120,425,120) addline(mysteryList,115,15,125,15) addline(mysteryList,105,35,100,45) addline(mysteryList,100,15,105,25) addline(mysteryList,90,45,100,45) addline(mysteryList,105,35,105,25) addline(mysteryList,85,35,90,45) addline(mysteryList,85,25,90,15) addline(mysteryList,85,25,85,35) addline(mysteryList,90,15,100,15) addline(mysteryList,95,25,100,15) addline(mysteryList,95,25,95,35) addline(mysteryList,120,35,125,45) addline(mysteryList,120,25,125,15) addline(mysteryList,120,25,120,35) addline(mysteryList,365,155,365,105) addline(mysteryList,380,120,355,120) addline(mysteryList,365,155,385,155) addline(mysteryList,360,50,370,45) addline(mysteryList,315,130,325,120) addline(mysteryList,325,120,345,120) addline(mysteryList,315,155,335,155) addline(mysteryList,325,140,315,130) addline(mysteryList,345,150,335,140) addline(mysteryList,335,140,325,140) addline(mysteryList,335,155,345,150) addline(mysteryList,505,145,490,170) addline(mysteryList,510,120,505,145) addline(mysteryList,490,145,505,145) addline(mysteryList,485,120,485,140) addline(mysteryList,485,140,490,145) end function mike() picScale = 0.6 addline(mikeList,110,120,170,125) addline(mikeList,235,115,220,125) addline(mikeList,60,130,75,130) addline(mikeList,295,155,300,150) addline(mikeList,300,125,305,105) addline(mikeList,305,105,240,60) addline(mikeList,280,55,300,100) addline(mikeList,110,120,75,130) addline(mikeList,65,215,150,235) addline(mikeList,160,305,185,300) addline(mikeList,215,5,255,25) addline(mikeList,175,5,215,5) addline(mikeList,220,110,220,95) addline(mikeList,105,35,135,15) addline(mikeList,100,35,105,35) addline(mikeList,65,55,100,35) addline(mikeList,135,15,175,5) addline(mikeList,210,55,180,60) addline(mikeList,180,110,220,125) addline(mikeList,205,90,220,95) addline(mikeList,120,200,240,215) addline(mikeList,150,235,250,230) addline(mikeList,180,60,145,60) addline(mikeList,225,85,235,95) addline(mikeList,250,230,240,215) addline(mikeList,195,100,205,90) addline(mikeList,235,115,235,95) addline(mikeList,195,100,195,115) addline(mikeList,140,300,160,305) addline(mikeList,240,215,160,175) addline(mikeList,65,215,65,165) addline(mikeList,295,155,290,220) addline(mikeList,230,280,275,245) addline(mikeList,50,90,65,55) addline(mikeList,45,115,60,130) addline(mikeList,115,305,140,300) addline(mikeList,25,235,5,190) addline(mikeList,5,190,10,150) addline(mikeList,25,235,85,290) addline(mikeList,85,290,115,305) addline(mikeList,10,150,45,115) addline(mikeList,255,25,280,55) addline(mikeList,170,125,230,150) addline(mikeList,300,150,300,125) addline(mikeList,260,155,230,150) addline(mikeList,45,95,50,90) addline(mikeList,65,215,10,180) addline(mikeList,210,55,240,60) addline(mikeList,185,300,230,280) addline(mikeList,290,220,275,245) addline(mikeList,90,220,90,165) addline(mikeList,50,165,50,205) addline(mikeList,105,35,145,60) addline(mikeList,15,180,125,200) addline(mikeList,210,120,220,110) addline(mikeList,225,230,225,210) addline(mikeList,200,195,200,230) addline(mikeList,45,95,45,115) addline(mikeList,260,155,295,155) addline(mikeList,150,235,160,175) addline(mikeList,180,110,190,90) addline(mikeList,50,165,95,165) addline(mikeList,190,90,205,80) addline(mikeList,180,235,180,185) addline(mikeList,115,225,125,170) addline(mikeList,30,190,30,175) addline(mikeList,10,180,50,165) addline(mikeList,160,175,95,165) addline(mikeList,205,80,225,85) addline(mikeList,210,100,215,100) addline(mikeList,210,105,215,105) addline(mikeList,210,100,210,105) addline(mikeList,215,105,215,100) addline(mikeList,100,80,105,80) addline(mikeList,100,85,105,85) addline(mikeList,110,65,90,60) addline(mikeList,120,275,150,280) addline(mikeList,70,75,90,60) addline(mikeList,180,275,150,280) addline(mikeList,85,105,70,95) addline(mikeList,70,75,70,95) addline(mikeList,100,70,85,75) addline(mikeList,100,80,100,85) addline(mikeList,110,80,100,70) addline(mikeList,105,85,105,80) addline(mikeList,105,95,110,80) addline(mikeList,85,260,120,275) addline(mikeList,85,75,85,90) addline(mikeList,85,105,110,105) addline(mikeList,85,90,90,95) addline(mikeList,125,90,110,65) addline(mikeList,110,105,125,90) addline(mikeList,90,95,105,95) end function eng101() picScale = 0.7 addline(eng101List,140,200,180,180) addline(eng101List,100,200,140,200) addline(eng101List,100,200,70,180) addline(eng101List,180,180,200,145) addline(eng101List,200,145,200,100) addline(eng101List,70,180,50,145) addline(eng101List,50,145,50,105) addline(eng101List,50,105,100,50) addline(eng101List,100,50,145,50) addline(eng101List,145,50,180,70) addline(eng101List,180,70,200,100) addline(eng101List,60,95,60,50) addline(eng101List,35,5,105,5) addline(eng101List,80,30,100,50) addline(eng101List,30,80,105,5) addline(eng101List,5,60,35,5) addline(eng101List,5,60,5,115) addline(eng101List,5,80,30,80) addline(eng101List,5,115,20,125) addline(eng101List,20,125,20,170) addline(eng101List,5,170,20,170) addline(eng101List,5,170,5,155) addline(eng101List,5,155,20,155) addline(eng101List,220,130,200,140) addline(eng101List,220,110,220,130) addline(eng101List,220,110,200,110) addline(eng101List,220,130,245,5) addline(eng101List,220,110,240,5) addline(eng101List,240,5,245,5) addline(eng101List,80,155,100,180) addline(eng101List,100,180,125,180) addline(eng101List,125,180,180,145) addline(eng101List,180,145,180,100) addline(eng101List,135,125,180,100) addline(eng101List,80,140,135,125) addline(eng101List,80,155,80,140) addline(eng101List,90,165,180,120) addline(eng101List,100,110,100,100) addline(eng101List,110,110,110,100) addline(eng101List,140,85,140,75) addline(eng101List,150,85,150,75) addline(eng101List,150,85,140,85) addline(eng101List,150,75,140,75) addline(eng101List,110,110,100,110) addline(eng101List,110,100,100,100) addline(eng101List,150,75,140,85) addline(eng101List,150,85,140,75) addline(eng101List,110,100,100,110) addline(eng101List,110,110,100,100) end function rolleyes() picScale = 0.4 addline(rolleyesList,55,220,100,235) addline(rolleyesList,15,150,25,185) addline(rolleyesList,100,235,150,235) addline(rolleyesList,150,235,190,225) addline(rolleyesList,225,190,235,150) addline(rolleyesList,235,150,235,100) addline(rolleyesList,220,60,235,100) addline(rolleyesList,15,150,15,100) addline(rolleyesList,15,100,35,55) addline(rolleyesList,65,30,100,15) addline(rolleyesList,150,15,185,30) addline(rolleyesList,100,15,150,15) addline(rolleyesList,90,140,105,130) addline(rolleyesList,50,70,65,60) addline(rolleyesList,65,60,90,60) addline(rolleyesList,90,60,105,70) addline(rolleyesList,115,85,115,110) addline(rolleyesList,40,110,40,90) addline(rolleyesList,50,130,65,140) addline(rolleyesList,65,140,90,140) addline(rolleyesList,70,90,85,90) addline(rolleyesList,70,65,85,65) addline(rolleyesList,90,85,90,70) addline(rolleyesList,65,85,65,70) addline(rolleyesList,65,85,90,85) addline(rolleyesList,65,80,90,80) addline(rolleyesList,65,75,90,75) addline(rolleyesList,65,70,90,70) addline(rolleyesList,150,140,175,140) addline(rolleyesList,135,130,150,140) addline(rolleyesList,125,110,125,90) addline(rolleyesList,200,85,200,110) addline(rolleyesList,175,60,190,70) addline(rolleyesList,150,60,175,60) addline(rolleyesList,135,70,150,60) addline(rolleyesList,175,140,190,130) addline(rolleyesList,80,190,160,190) addline(rolleyesList,85,195,165,195) addline(rolleyesList,165,195,180,180) addline(rolleyesList,160,190,180,175) addline(rolleyesList,35,55,65,30) addline(rolleyesList,185,30,220,60) addline(rolleyesList,25,185,55,220) addline(rolleyesList,190,225,225,190) addline(rolleyesList,105,130,115,110) addline(rolleyesList,105,70,115,85) addline(rolleyesList,40,90,50,70) addline(rolleyesList,40,110,50,130) addline(rolleyesList,190,130,200,110) addline(rolleyesList,190,70,200,85) addline(rolleyesList,125,90,135,70) addline(rolleyesList,125,110,135,130) addline(rolleyesList,85,90,90,85) addline(rolleyesList,65,70,70,65) addline(rolleyesList,85,65,90,70) addline(rolleyesList,65,85,70,90) addline(rolleyesList,150,85,150,70) addline(rolleyesList,175,85,175,70) addline(rolleyesList,155,65,170,65) addline(rolleyesList,155,90,170,90) addline(rolleyesList,170,90,175,85) addline(rolleyesList,150,70,155,65) addline(rolleyesList,170,65,175,70) addline(rolleyesList,150,85,155,90) addline(rolleyesList,150,85,175,85) addline(rolleyesList,150,80,175,80) addline(rolleyesList,150,75,175,75) addline(rolleyesList,150,70,175,70) end function unsmith() picScale = 0.5 addline(unsmithList,70,265,165,265) addline(unsmithList,165,265,215,240) addline(unsmithList,215,240,245,190) addline(unsmithList,245,190,245,105) addline(unsmithList,245,105,215,55) addline(unsmithList,145,5,215,55) addline(unsmithList,80,5,145,5) addline(unsmithList,40,35,80,5) addline(unsmithList,5,90,40,35) addline(unsmithList,5,195,5,90) addline(unsmithList,5,195,25,235) addline(unsmithList,25,235,70,265) addline(unsmithList,55,215,150,215) addline(unsmithList,150,215,170,205) addline(unsmithList,55,215,40,200) addline(unsmithList,65,130,65,100) addline(unsmithList,35,130,35,115) addline(unsmithList,35,130,65,130) addline(unsmithList,35,115,50,100) addline(unsmithList,50,100,65,100) addline(unsmithList,130,140,130,110) addline(unsmithList,130,140,150,140) addline(unsmithList,150,140,160,125) addline(unsmithList,160,125,150,110) addline(unsmithList,130,110,150,110) addline(unsmithList,55,210,40,195) addline(unsmithList,150,210,170,200) addline(unsmithList,55,210,150,210) end function madmax() picScale = 0.8 addline(madmaxList,75,15,105,5) addline(madmaxList,25,190,70,225) addline(madmaxList,170,225,215,190) addline(madmaxList,70,225,100,235) addline(madmaxList,115,205,130,190) addline(madmaxList,55,175,70,195) addline(madmaxList,135,5,170,15) addline(madmaxList,105,5,135,5) addline(madmaxList,5,100,15,65) addline(madmaxList,5,140,25,190) addline(madmaxList,135,235,170,225) addline(madmaxList,100,235,135,235) addline(madmaxList,90,205,115,205) addline(madmaxList,70,195,90,205) addline(madmaxList,40,90,60,110) addline(madmaxList,170,15,205,40) addline(madmaxList,225,65,225,95) addline(madmaxList,215,190,230,145) addline(madmaxList,35,40,75,15) addline(madmaxList,5,140,5,100) addline(madmaxList,85,155,120,155) addline(madmaxList,130,165,120,155) addline(madmaxList,130,190,130,165) addline(madmaxList,140,70,140,90) addline(madmaxList,40,70,40,90) addline(madmaxList,40,70,90,70) addline(madmaxList,60,110,85,110) addline(madmaxList,230,65,230,155) addline(madmaxList,140,70,210,70) addline(madmaxList,195,100,210,70) addline(madmaxList,155,100,195,100) addline(madmaxList,140,90,155,100) addline(madmaxList,90,70,100,80) addline(madmaxList,100,100,100,80) addline(madmaxList,85,110,100,100) addline(madmaxList,0,65,230,65) addline(madmaxList,5,60,235,60) addline(madmaxList,5,55,235,55) addline(madmaxList,5,50,240,50) addline(madmaxList,10,45,240,45) addline(madmaxList,10,40,235,40) addline(madmaxList,235,55,235,155) addline(madmaxList,240,45,240,155) addline(madmaxList,245,50,245,160) addline(madmaxList,250,55,250,165) addline(madmaxList,190,75,190,95) addline(madmaxList,175,75,190,75) addline(madmaxList,175,75,175,95) addline(madmaxList,55,140,55,175) addline(madmaxList,65,125,55,140) addline(madmaxList,65,125,80,140) addline(madmaxList,175,95,190,95) addline(madmaxList,85,75,85,95) addline(madmaxList,70,75,70,95) addline(madmaxList,70,95,85,95) addline(madmaxList,70,75,85,75) addline(madmaxList,85,155,80,140) addline(madmaxList,100,180,105,155) addline(madmaxList,80,200,95,180) addline(madmaxList,95,180,100,155) addline(madmaxList,65,185,85,155) addline(madmaxList,105,205,110,180) addline(madmaxList,60,180,85,150) addline(madmaxList,55,150,70,130) addline(madmaxList,55,160,75,135) addline(madmaxList,110,205,115,185) addline(madmaxList,115,185,130,175) addline(madmaxList,110,180,130,170) addline(madmaxList,85,200,100,180) addline(madmaxList,235,40,250,55) addline(madmaxList,230,150,250,165) addline(madmaxList,0,65,10,40) addline(madmaxList,65,140,65,145) addline(madmaxList,70,170,75,170) addline(madmaxList,95,180,100,180) addline(madmaxList,110,180,115,185) end function goleft() picScale = 0.3 addline(goleftList,235,10,235,240) addline(goleftList,15,10,235,10) addline(goleftList,15,240,235,240) addline(goleftList,15,10,15,240) addline(goleftList,70,100,100,100) addline(goleftList,100,100,100,65) addline(goleftList,70,65,100,65) addline(goleftList,70,100,70,65) addline(goleftList,150,100,180,100) addline(goleftList,180,100,180,65) addline(goleftList,150,65,180,65) addline(goleftList,150,100,150,65) addline(goleftList,70,165,70,215) addline(goleftList,175,215,175,165) addline(goleftList,80,195,165,195) addline(goleftList,80,185,165,185) addline(goleftList,165,215,165,195) addline(goleftList,80,215,80,195) addline(goleftList,70,165,80,165) addline(goleftList,70,215,80,215) addline(goleftList,165,165,175,165) addline(goleftList,165,215,175,215) addline(goleftList,80,185,80,165) addline(goleftList,165,185,165,165) end function awesome() picScale = 0.5 addline(awesomeList,32,144,192,144) addline(awesomeList,40,144,56,184) addline(awesomeList,56,184,88,216) addline(awesomeList,88,216,112,224) addline(awesomeList,112,224,136,224) addline(awesomeList,136,224,168,208) addline(awesomeList,168,208,184,192) addline(awesomeList,192,176,192,144) addline(awesomeList,184,192,192,176) addline(awesomeList,104,200,96,216) addline(awesomeList,128,184,104,200) addline(awesomeList,152,184,128,184) addline(awesomeList,152,184,176,200) addline(awesomeList,24,112,88,112) addline(awesomeList,128,112,200,112) addline(awesomeList,88,112,88,88) addline(awesomeList,24,88,24,112) addline(awesomeList,200,112,200,88) addline(awesomeList,128,88,128,112) addline(awesomeList,128,88,152,64) addline(awesomeList,40,64,24,88) addline(awesomeList,88,88,72,64) addline(awesomeList,72,64,40,64) addline(awesomeList,200,88,184,64) addline(awesomeList,184,64,152,64) addline(awesomeList,144,240,200,216) addline(awesomeList,104,240,144,240) addline(awesomeList,200,216,232,176) addline(awesomeList,240,144,232,176) addline(awesomeList,240,96,216,48) addline(awesomeList,240,96,240,144) addline(awesomeList,184,24,216,48) addline(awesomeList,184,24,144,8) addline(awesomeList,104,8,144,8) addline(awesomeList,104,8,56,32) addline(awesomeList,24,64,56,32) addline(awesomeList,24,64,8,104) addline(awesomeList,32,200,8,152) addline(awesomeList,8,104,8,152) addline(awesomeList,104,240,64,224) addline(awesomeList,32,200,64,224) addline(awesomeList,64,88,72,64) addline(awesomeList,64,72,72,88) addline(awesomeList,56,80,80,72) addline(awesomeList,56,80,80,80) addline(awesomeList,64,88,80,80) addline(awesomeList,72,64,56,80) addline(awesomeList,200,88,184,64) addline(awesomeList,176,88,184,64) addline(awesomeList,176,72,184,88) addline(awesomeList,168,80,192,72) addline(awesomeList,168,80,192,80) addline(awesomeList,176,88,192,80) addline(awesomeList,184,64,168,80) end function drawList(lineList) local x,y = Spring.GetMouseState() local getOver,getCo = Spring.TraceScreenRay(x,y) getHW(lineList) if (getOver == "ground") then x = (getCo[1] - (picWidth / 2)) y = (getCo[3] - (picHeight / 2)) for _,l in ipairs(lineList) do Spring.MarkerAddLine((x+l.x1),0,(y+l.y1),(x+l.x2),0,(y+l.y2)) end end end function widget:TextCommand(command) if (string.find(command, 'emotelist') == 1) then Spring.SendCommands({"echo Emotelist: awesome, eng101, goleft, iiam, madmax, rolleyes, unsmith, mike"}) elseif (string.find(command, 'awesome') == 1) then drawList(awesomeList) elseif (string.find(command, 'eng101') == 1) then drawList(eng101List) elseif (string.find(command, 'unsmith') == 1) then drawList(unsmithList) elseif (string.find(command, 'madmax') == 1) then drawList(madmaxList) elseif (string.find(command, 'goleft') == 1) then drawList(goleftList) elseif (string.find(command, 'rolleyes') == 1) then drawList(rolleyesList) elseif (string.find(command, 'mike') == 1) then drawList(mikeList) elseif (string.find(command, 'iiam') == 1) then drawList(mysteryList) end end