#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub enum MacroIcon {
DefaultIcon,
DPS1,
DPS2,
DPS3,
Tank1,
Tank2,
Tank3,
Healer1,
Healer2,
Healer3,
CrafterPurple1,
CrafterPurple2,
CrafterPurple3,
CrafterYellow1,
CrafterYellow2,
CrafterYellow3,
CrafterGreen1,
CrafterGreen2,
CrafterGreen3,
ItemHammer,
ItemSword,
ItemShield,
ItemRing,
ItemShoes,
ItemHat,
ItemBottle,
ItemBread,
Gatherer1,
Gatherer2,
Gatherer3,
Number0,
Number1,
Number2,
Number3,
Number4,
Number5,
Number6,
Number7,
Number8,
Number9,
Number10,
InverseNumber0,
InverseNumber1,
InverseNumber2,
InverseNumber3,
InverseNumber4,
InverseNumber5,
InverseNumber6,
InverseNumber7,
InverseNumber8,
InverseNumber9,
InverseNumber10,
SymbolArrowLeft,
SymbolArrowRight,
SymbolArrowUp,
SymbolArrowDown,
SymbolCircle,
SymbolTriangle,
SymbolSquare,
SymbolX,
SymbolNo,
SymbolWarning,
SymbolCheck,
SymbolStar,
SymbolQuestion,
SymbolExclamation,
SymbolPlus,
SymbolMinus,
SymbolClock,
SymbolBulb,
SymbolCog,
SymbolSearch,
SymbolSpeech,
SymbolHeart,
SymbolSpade,
SymbolClub,
SymbolDiamond,
SymbolDice,
CrystalFire,
CrystalIce,
CrystalWind,
CrystalEarth,
CrystalLightning,
CrystalWater,
NoIcon,
}
pub fn macro_icon_from_key_and_id(key: &str, id: &str) -> Option<MacroIcon> {
match (key, id) {
("000", "0000000") => Some(MacroIcon::NoIcon),
("001", "00101D1") => Some(MacroIcon::DefaultIcon),
("002", "0010235") => Some(MacroIcon::DPS1),
("003", "0010236") => Some(MacroIcon::DPS1),
("004", "0010237") => Some(MacroIcon::DPS1),
("005", "0010249") => Some(MacroIcon::Tank1),
("006", "001024A") => Some(MacroIcon::Tank2),
("007", "001024B") => Some(MacroIcon::Tank3),
("008", "001025D") => Some(MacroIcon::Healer1),
("009", "001025E") => Some(MacroIcon::Healer2),
("00A", "001025F") => Some(MacroIcon::Healer3),
("00B", "00101E5") => Some(MacroIcon::CrafterPurple1),
("00C", "00101E6") => Some(MacroIcon::CrafterPurple2),
("00D", "00101E7") => Some(MacroIcon::CrafterPurple3),
("00E", "00101F9") => Some(MacroIcon::CrafterYellow1),
("00F", "00101FA") => Some(MacroIcon::CrafterYellow2),
("010", "00101FB") => Some(MacroIcon::CrafterYellow3),
("011", "001020D") => Some(MacroIcon::CrafterGreen1),
("012", "001020E") => Some(MacroIcon::CrafterGreen2),
("013", "001020F") => Some(MacroIcon::CrafterGreen3),
("014", "00005E9") => Some(MacroIcon::ItemHammer),
("015", "000061B") => Some(MacroIcon::ItemSword),
("016", "000064D") => Some(MacroIcon::ItemShield),
("017", "000067E") => Some(MacroIcon::ItemRing),
("018", "00006B1") => Some(MacroIcon::ItemShoes),
("019", "00006E2") => Some(MacroIcon::ItemHat),
("01A", "0000715") => Some(MacroIcon::ItemBottle),
("01B", "0000746") => Some(MacroIcon::ItemBread),
("01C", "0010221") => Some(MacroIcon::Gatherer1),
("01D", "0010222") => Some(MacroIcon::Gatherer2),
("01E", "0010223") => Some(MacroIcon::Gatherer3),
("01F", "0010271") => Some(MacroIcon::Number0),
("020", "0010272") => Some(MacroIcon::Number1),
("021", "0010273") => Some(MacroIcon::Number2),
("022", "0010274") => Some(MacroIcon::Number3),
("023", "0010275") => Some(MacroIcon::Number4),
("024", "0010276") => Some(MacroIcon::Number5),
("025", "0010277") => Some(MacroIcon::Number6),
("026", "0010278") => Some(MacroIcon::Number7),
("027", "0010279") => Some(MacroIcon::Number8),
("028", "001027A") => Some(MacroIcon::Number9),
("029", "001027B") => Some(MacroIcon::Number10),
("02A", "0010285") => Some(MacroIcon::InverseNumber0),
("02B", "0010286") => Some(MacroIcon::InverseNumber1),
("02C", "0010287") => Some(MacroIcon::InverseNumber2),
("02D", "0010288") => Some(MacroIcon::InverseNumber3),
("02E", "0010289") => Some(MacroIcon::InverseNumber4),
("02F", "001028A") => Some(MacroIcon::InverseNumber5),
("030", "001028B") => Some(MacroIcon::InverseNumber6),
("031", "001028C") => Some(MacroIcon::InverseNumber7),
("032", "001028D") => Some(MacroIcon::InverseNumber8),
("033", "001028E") => Some(MacroIcon::InverseNumber9),
("034", "001028F") => Some(MacroIcon::InverseNumber10),
("035", "00102FD") => Some(MacroIcon::SymbolArrowLeft),
("036", "00102FE") => Some(MacroIcon::SymbolArrowRight),
("037", "00102FF") => Some(MacroIcon::SymbolArrowUp),
("038", "0010300") => Some(MacroIcon::SymbolArrowDown),
("039", "0010301") => Some(MacroIcon::SymbolCircle),
("03A", "0010302") => Some(MacroIcon::SymbolTriangle),
("03B", "0010303") => Some(MacroIcon::SymbolSquare),
("03C", "0010304") => Some(MacroIcon::SymbolX),
("03D", "0010305") => Some(MacroIcon::SymbolNo),
("03E", "0010306") => Some(MacroIcon::SymbolWarning),
("03F", "0010307") => Some(MacroIcon::SymbolCheck),
("040", "0010308") => Some(MacroIcon::SymbolStar),
("041", "0010309") => Some(MacroIcon::SymbolQuestion),
("042", "001030A") => Some(MacroIcon::SymbolExclamation),
("043", "001030B") => Some(MacroIcon::SymbolPlus),
("044", "001030C") => Some(MacroIcon::SymbolMinus),
("045", "001030D") => Some(MacroIcon::SymbolClock),
("046", "001030E") => Some(MacroIcon::SymbolBulb),
("047", "001030F") => Some(MacroIcon::SymbolCog),
("048", "0010310") => Some(MacroIcon::SymbolSearch),
("049", "0010311") => Some(MacroIcon::SymbolSpeech),
("04A", "0010312") => Some(MacroIcon::SymbolHeart),
("04B", "0010313") => Some(MacroIcon::SymbolSpade),
("04C", "0010314") => Some(MacroIcon::SymbolClub),
("04D", "0010315") => Some(MacroIcon::SymbolDiamond),
("04E", "0010316") => Some(MacroIcon::SymbolDice),
("04F", "0004E27") => Some(MacroIcon::CrystalFire),
("050", "0004E29") => Some(MacroIcon::CrystalIce),
("051", "0004E2A") => Some(MacroIcon::CrystalWind),
("052", "0004E2C") => Some(MacroIcon::CrystalEarth),
("053", "0004E2B") => Some(MacroIcon::CrystalLightning),
("054", "0004E28") => Some(MacroIcon::CrystalWater),
_ => None,
}
}
pub fn macro_icon_to_key_and_id(macro_icon: &MacroIcon) -> (&str, &str) {
match macro_icon {
MacroIcon::NoIcon => ("000", "0000000"),
MacroIcon::DefaultIcon => ("001", "00101D1"),
MacroIcon::DPS1 => ("002", "0010235"),
MacroIcon::DPS2 => ("003", "0010236"),
MacroIcon::DPS3 => ("004", "0010237"),
MacroIcon::Tank1 => ("005", "0010249"),
MacroIcon::Tank2 => ("006", "001024A"),
MacroIcon::Tank3 => ("007", "001024B"),
MacroIcon::Healer1 => ("008", "001025D"),
MacroIcon::Healer2 => ("009", "001025E"),
MacroIcon::Healer3 => ("00A", "001025F"),
MacroIcon::CrafterPurple1 => ("00B", "00101E5"),
MacroIcon::CrafterPurple2 => ("00C", "00101E6"),
MacroIcon::CrafterPurple3 => ("00D", "00101E7"),
MacroIcon::CrafterYellow1 => ("00E", "00101F9"),
MacroIcon::CrafterYellow2 => ("00F", "00101FA"),
MacroIcon::CrafterYellow3 => ("010", "00101FB"),
MacroIcon::CrafterGreen1 => ("011", "001020D"),
MacroIcon::CrafterGreen2 => ("012", "001020E"),
MacroIcon::CrafterGreen3 => ("013", "001020F"),
MacroIcon::ItemHammer => ("014", "00005E9"),
MacroIcon::ItemSword => ("015", "000061B"),
MacroIcon::ItemShield => ("016", "000064D"),
MacroIcon::ItemRing => ("017", "000067E"),
MacroIcon::ItemShoes => ("018", "00006B1"),
MacroIcon::ItemHat => ("019", "00006E2"),
MacroIcon::ItemBottle => ("01A", "0000715"),
MacroIcon::ItemBread => ("01B", "0000746"),
MacroIcon::Gatherer1 => ("01C", "0010221"),
MacroIcon::Gatherer2 => ("01D", "0010222"),
MacroIcon::Gatherer3 => ("01E", "0010223"),
MacroIcon::Number0 => ("01F", "0010271"),
MacroIcon::Number1 => ("020", "0010272"),
MacroIcon::Number2 => ("021", "0010273"),
MacroIcon::Number3 => ("022", "0010274"),
MacroIcon::Number4 => ("023", "0010275"),
MacroIcon::Number5 => ("024", "0010276"),
MacroIcon::Number6 => ("025", "0010277"),
MacroIcon::Number7 => ("026", "0010278"),
MacroIcon::Number8 => ("027", "0010279"),
MacroIcon::Number9 => ("028", "001027A"),
MacroIcon::Number10 => ("029", "001027B"),
MacroIcon::InverseNumber0 => ("02A", "0010285"),
MacroIcon::InverseNumber1 => ("02B", "0010286"),
MacroIcon::InverseNumber2 => ("02C", "0010287"),
MacroIcon::InverseNumber3 => ("02D", "0010288"),
MacroIcon::InverseNumber4 => ("02E", "0010289"),
MacroIcon::InverseNumber5 => ("02F", "001028A"),
MacroIcon::InverseNumber6 => ("030", "001028B"),
MacroIcon::InverseNumber7 => ("031", "001028C"),
MacroIcon::InverseNumber8 => ("032", "001028D"),
MacroIcon::InverseNumber9 => ("033", "001028E"),
MacroIcon::InverseNumber10 => ("034", "001028F"),
MacroIcon::SymbolArrowLeft => ("035", "00102FD"),
MacroIcon::SymbolArrowRight => ("036", "00102FE"),
MacroIcon::SymbolArrowUp => ("037", "00102FF"),
MacroIcon::SymbolArrowDown => ("038", "0010300"),
MacroIcon::SymbolCircle => ("039", "0010301"),
MacroIcon::SymbolTriangle => ("03A", "0010302"),
MacroIcon::SymbolSquare => ("03B", "0010303"),
MacroIcon::SymbolX => ("03C", "0010304"),
MacroIcon::SymbolNo => ("03D", "0010305"),
MacroIcon::SymbolWarning => ("03E", "0010306"),
MacroIcon::SymbolCheck => ("03F", "0010307"),
MacroIcon::SymbolStar => ("040", "0010308"),
MacroIcon::SymbolQuestion => ("041", "0010309"),
MacroIcon::SymbolExclamation => ("042", "001030A"),
MacroIcon::SymbolPlus => ("043", "001030B"),
MacroIcon::SymbolMinus => ("044", "001030C"),
MacroIcon::SymbolClock => ("045", "001030D"),
MacroIcon::SymbolBulb => ("046", "001030E"),
MacroIcon::SymbolCog => ("047", "001030F"),
MacroIcon::SymbolSearch => ("048", "0010310"),
MacroIcon::SymbolSpeech => ("049", "0010311"),
MacroIcon::SymbolHeart => ("04A", "0010312"),
MacroIcon::SymbolSpade => ("04B", "0010313"),
MacroIcon::SymbolClub => ("04C", "0010314"),
MacroIcon::SymbolDiamond => ("04D", "0010315"),
MacroIcon::SymbolDice => ("04E", "0010316"),
MacroIcon::CrystalFire => ("04F", "0004E27"),
MacroIcon::CrystalIce => ("050", "0004E29"),
MacroIcon::CrystalWind => ("051", "0004E2A"),
MacroIcon::CrystalEarth => ("052", "0004E2C"),
MacroIcon::CrystalLightning => ("053", "0004E2B"),
MacroIcon::CrystalWater => ("054", "0004E28"),
}
}