private string GetSubValue(ValueViewModel vvm, object sv) { if (vvm.DataType == DataTypeType.String) { return(string.Format("\"{0}\"", sv)); } return(sv.ToString()); }
private string GetValueDataType(short address) { var q = from v in this.ValueList where v.Address == address select v; ValueViewModel vvm = q.FirstOrDefault(); return(vvm.DataType.ToString()); }
private object GetCurrentValue(short address) { var q = from v in this.ValueList where v.Address == address select v; ValueViewModel vvm = q.FirstOrDefault(); if (vvm == null) { return(""); } StringBuilder sb = new StringBuilder(); if (vvm.SubValue1 != null) { sb.Append(GetSubValue(vvm, vvm.SubValue1)); } if (vvm.SubValue2 != null) { sb.Append(GetSubValue(vvm, vvm.SubValue2)); } if (vvm.SubValue3 != null) { sb.Append(GetSubValue(vvm, vvm.SubValue3)); } if (vvm.SubValue4 != null) { sb.Append(GetSubValue(vvm, vvm.SubValue4)); } if (vvm.SubValue5 != null) { sb.Append(GetSubValue(vvm, vvm.SubValue5)); } return(sb.ToString()); }
private void BuildVariables() { List <ValueViewModel> valueList = new List <ValueViewModel>(); foreach (Value value in this.ParsedContent.ValuesList) { ValueViewModel valueViewModel = new ValueViewModel() { Address = value.Address, AddressHex = (short)(value.Address - ParsedContent.BaseAddress + ParsedContent.StartOfValues), AddressHexBase = (short)(value.Address + ParsedContent.StartOfValues), DataType = value.DataType, Reference = value.Reference }; if (value.SubValues.Count > 0) { if (valueViewModel.DataType == DataTypeType.Float) { valueViewModel.SubValue1 = BitConverter.ToSingle(BitConverter.GetBytes((Int32)(value.SubValues[0])), 0); } else { valueViewModel.SubValue1 = value.SubValues[0]; } } if (value.SubValues.Count > 1) { valueViewModel.SubValue2 = value.SubValues[1]; } if (value.SubValues.Count > 2) { valueViewModel.SubValue3 = value.SubValues[2]; } if (value.SubValues.Count > 3) { valueViewModel.SubValue4 = value.SubValues[3]; } if (value.SubValues.Count > 4) { valueViewModel.SubValue5 = value.SubValues[4]; } valueList.Add(valueViewModel); //build variables list if (!variables.ContainsKey(value.Address)) { Variable v = new Variable() { Address = value.Address, DataType = value.DataType.ToString() //Name = "var" + value.DataType.ToString() + value.Address.ToString() }; switch (v.DataType.ToLower()) { case ("int"): v.Name = "nVar" + v.Address.ToString(); break; case ("string"): v.Name = "szVar" + v.Address.ToString(); break; case ("point"): v.Name = "ptVar" + v.Address.ToString(); break; case ("character"): v.Name = "cVar" + v.Address.ToString(); break; case ("float"): v.Name = "fVar" + v.Address.ToString(); break; case ("quaternion"): v.Name = "qVar" + v.Address.ToString(); break; } variables.Add(value.Address, v); } } this.ValueList = valueList; //work out which variables are static for (int i = 0; i < ParsedContent.OpCodeList.Count; i++) { Operation operation = ParsedContent.OpCodeList[i]; if (operation.OpCode == OpCodeType.OP_GETTOP) { if (variables.ContainsKey(operation.DataIndex.Value)) { variables[operation.DataIndex.Value].Static = false; } } } }