Exemple #1
0
        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()));
            }
        }
Exemple #2
0
        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()));
            }
        }
Exemple #3
0
        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()));
            }
        }
Exemple #4
0
        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()));
            }
        }