Holy crap, Fizzy.
That’s perfect.
I’ll work on folding it in.
I’ve got the actual parsing of the macro almost done.
I have a table with lines.
Lines are defined as a command followed by a set of 0-n command objects.
That set is delimited by semi-colons.
Next is parsing out the conditional sets.
Then it’s just a matter of interpreting it all, which shouldn’t be too difficult.
I kinda want to tie the abilities in to the known spells/talents/items to give warnings about things that aren’t going to work, but I’m not sure that’ll be in a first release.
Test output thru today’s work.
["18"] = {
{
["cmd"] = "#showtooltip",
["cmdObjTbl"] = {
{
["cObjConds"] = false,
["cObjVerb"] = false,
}, -- [1]
},
["cmdType"] = "D",
["rawLine"] = "#showtooltip",
}, -- [1]
{
["cmd"] = "/cast",
["cmdObjTbl"] = {
{
["cObjConds"] = "[combat][mod:shift]",
["cObjVerb"] = "Disengage",
}, -- [1]
{
["cObjConds"] = "[mod:alt]",
["cObjVerb"] = "Traveler's Tundra Mammoth",
}, -- [2]
{
["cObjConds"] = "[mod]",
["cObjVerb"] = "Albino Drake",
}, -- [3]
{
["cObjConds"] = false,
["cObjVerb"] = "Vicious War Spider",
}, -- [4]
},
["cmdType"] = "S",
["rawLine"] = "/cast [combat][mod:shift]Disengage;[mod:alt]Traveler's Tundra Mammoth;[mod]Albino Drake;Vicious War Spider",
}, -- [2]
}
Tomorrow I tackle parsing the conditionals into “and” and “or” groups.