private Object readFieldValue(EexType etype, int i) { switch (etype) { case EexType.EexString: return(fieldArray[i]["v"].Value <string>()); case EexType.EexBoolean: return(fieldArray[i]["v"].Value <bool>()); case EexType.EexInteger: return(fieldArray[i]["v"].Value <int>()); case EexType.EexUShort: return(fieldArray[i]["v"].Value <ushort>()); case EexType.EexUShortArray: { JArray ja = (JArray)fieldArray[i]["v"]; ushort[] result = new ushort[ja.Count]; for (int j = 0; j < ja.Count; j++) { result[j] = ja[j].Value <ushort>(); } return(result); } default: throw new EexReaderException(String.Format("unknow type={0}", etype.ToString())); } }
public Object newFieldValue(int fieldId) { ParaTypeInfo TypeInfo = CScenario.GetParaTypeInfo(fieldId); EexType etype = ScriptConfig.Instance.getEexType(fieldId); switch (etype) { case EexType.EexString: { string ret = ""; return(ret); } case EexType.EexBoolean: { return(false); } case EexType.EexInteger: if (!TypeInfo.isAllowNULL) { return(0); } else { return(TypeInfo.DefIndex == 0x10000 ? 0xFFFF : TypeInfo.DefIndex); } case EexType.EexUShort: if (!TypeInfo.isAllowNULL) { return((ushort)0); } else { return(TypeInfo.DefIndex == 0x10000 ? (ushort)0xFFFF : (ushort)TypeInfo.DefIndex); } case EexType.EexUShortArray: { ushort[] result = new ushort[0]; return(result); } default: throw new EexReaderException(String.Format("unknow type={0}", etype.ToString())); } }
public Object readFieldValue(EexType etype) { switch (etype) { case EexType.EexString: return(readCString()); case EexType.EexBoolean: { int readInt = readUShort(); if (readInt == 1) { return(true); } if (readInt == 0) { return(false); } throw new EexReaderException("readFieldBoolean,boolValue=" + readInt.ToString()); } case EexType.EexInteger: return(readInt32()); case EexType.EexUShort: return(readUShort()); case EexType.EexUShortArray: { int readInt = readUShort(); ushort[] result = new ushort[readInt]; for (int i = 0; i < readInt; i++) { result[i] = readUShort(); } return(result); } default: throw new EexReaderException(String.Format("unknow type={0}", etype.ToString())); } }
private void writeFieldValue(EexType etype, Object obj) { switch (etype) { case EexType.EexString: writeCString((string)obj); break; case EexType.EexBoolean: { ushort uByte = (ushort)(((bool)obj)?1:0); writeUShort(uByte); } break; case EexType.EexInteger: writeInt32((int)obj); break; case EexType.EexUShort: writeUShort((ushort)obj); break; case EexType.EexUShortArray: { ushort[] v = (ushort[])obj; writeUShort((ushort)v.Length); for (int i = 0; i < v.Length; i++) { writeUShort(v[i]); } } break; default: throw new ApplicationException(String.Format("unknow type={0}", etype.ToString())); } }