public void TriggerEvent(GlobalEvents eventType) { int eventID = (int)eventType; foreach (var index in GuideXMLData.GetIDByEvent(eventID)) { enqueueGuide(index); } }
public void TriggerEvent <T>(GlobalEvents eventType, T arg1) { int eventID = (int)eventType; List <int> result = new List <int>(); foreach (var index in GuideXMLData.GetIDByEvent(eventID)) { var arg1_str_list = GuideXMLData.dataMap[index].event_arg1.Split(new char[] { ',' }); foreach (var arg1_str in arg1_str_list) { int len = arg1_str.Length; var arg1_opr = arg1_str.Substring(len - 1, 1); T arg1_value = (T)Utils.GetValue(arg1_str.Substring(0, len - 1), typeof(T)); switch (arg1_opr) { case "+": if (Comparer.Default.Compare(arg1, arg1_value) > 0) { result.Add(index); } break; case "-": if (Comparer.Default.Compare(arg1, arg1_value) < 0) { result.Add(index); } break; case "=": if (Comparer.Default.Compare(arg1, arg1_value) == 0) { result.Add(index); } break; default: break; } } } foreach (var index in result.Distinct()) { enqueueGuide(index); } }