Exemplo n.º 1
0
    /// <summary>
    /// 是否数据一致
    /// </summary>
    protected override bool toDataEquals(BaseData data)
    {
        AreaClientData mData = (AreaClientData)data;

        if (this.areaID != mData.areaID)
        {
            return(false);
        }

        if (this.name != mData.name)
        {
            return(false);
        }

        if (this.load != mData.load)
        {
            return(false);
        }

        if (this.mark != mData.mark)
        {
            return(false);
        }

        return(true);
    }
Exemplo n.º 2
0
    /// <summary>
    /// 复制(潜拷贝)
    /// </summary>
    protected override void toShadowCopy(BaseData data)
    {
        if (!(data is AreaClientData))
        {
            return;
        }

        AreaClientData mData = (AreaClientData)data;

        this.areaID = mData.areaID;
        this.name   = mData.name;
        this.load   = mData.load;
        this.mark   = mData.mark;
    }
Exemplo n.º 3
0
    /// <summary>
    /// 转文本输出
    /// </summary>
    protected override void toWriteDataString(DataWriter writer)
    {
        writer.writeTabs();
        writer.sb.Append("loginInfo");
        writer.sb.Append(':');
        if (this.loginInfo != null)
        {
            this.loginInfo.writeDataString(writer);
        }
        else
        {
            writer.sb.Append("ClientLoginServerInfoData=null");
        }

        writer.writeEnter();
        writer.writeTabs();
        writer.sb.Append("version");
        writer.sb.Append(':');
        if (this.version != null)
        {
            this.version.writeDataString(writer);
        }
        else
        {
            writer.sb.Append("ClientVersionData=null");
        }

        writer.writeEnter();
        writer.writeTabs();
        writer.sb.Append("areas");
        writer.sb.Append(':');
        writer.sb.Append("Map<int,AreaClientData>");
        if (this.areas != null)
        {
            writer.sb.Append('(');
            writer.sb.Append(this.areas.size());
            writer.sb.Append(')');
            writer.writeEnter();
            writer.writeLeftBrace();
            if (!this.areas.isEmpty())
            {
                int              areasKFreeValue = this.areas.getFreeValue();
                int[]            areasKKeys      = this.areas.getKeys();
                AreaClientData[] areasVValues    = this.areas.getValues();
                for (int areasKI = areasKKeys.Length - 1; areasKI >= 0; --areasKI)
                {
                    int areasK = areasKKeys[areasKI];
                    if (areasK != areasKFreeValue)
                    {
                        AreaClientData areasV = areasVValues[areasKI];
                        writer.writeTabs();
                        writer.sb.Append(areasK);

                        writer.sb.Append(':');
                        if (areasV != null)
                        {
                            areasV.writeDataString(writer);
                        }
                        else
                        {
                            writer.sb.Append("AreaClientData=null");
                        }

                        writer.writeEnter();
                    }
                }
            }
            writer.writeRightBrace();
        }
        else
        {
            writer.sb.Append("=null");
        }

        writer.writeEnter();
        writer.writeTabs();
        writer.sb.Append("lastAreaID");
        writer.sb.Append(':');
        writer.sb.Append(this.lastAreaID);

        writer.writeEnter();
        writer.writeTabs();
        writer.sb.Append("gameInfo");
        writer.sb.Append(':');
        if (this.gameInfo != null)
        {
            this.gameInfo.writeDataString(writer);
        }
        else
        {
            writer.sb.Append("ClientLoginServerInfoData=null");
        }

        writer.writeEnter();
    }
Exemplo n.º 4
0
    /// <summary>
    /// 读取字节流(完整版)
    /// </summary>
    protected override void toReadBytesFull(BytesReadStream stream)
    {
        stream.startReadObj();

        BaseData loginInfoT = stream.readDataFullNotNull();

        if (loginInfoT != null)
        {
            if (loginInfoT is ClientLoginServerInfoData)
            {
                this.loginInfo = (ClientLoginServerInfoData)loginInfoT;
            }
            else
            {
                this.loginInfo = new ClientLoginServerInfoData();
                if (!(loginInfoT.GetType().IsAssignableFrom(typeof(ClientLoginServerInfoData))))
                {
                    stream.throwTypeReadError(typeof(ClientLoginServerInfoData), loginInfoT.GetType());
                }
                this.loginInfo.shadowCopy(loginInfoT);
            }
        }
        else
        {
            this.loginInfo = null;
        }

        if (stream.readBoolean())
        {
            this.version = (ClientVersionData)stream.createData(ClientVersionData.dataID);
            this.version.readBytesFull(stream);
        }
        else
        {
            this.version = null;
        }

        if (stream.readBoolean())
        {
            int areasLen = stream.readLen();
            if (this.areas != null)
            {
                this.areas.clear();
                this.areas.ensureCapacity(areasLen);
            }
            else
            {
                this.areas = new IntObjectMap <AreaClientData>(areasLen);
            }

            IntObjectMap <AreaClientData> areasT = this.areas;
            for (int areasI = areasLen - 1; areasI >= 0; --areasI)
            {
                AreaClientData areasV;
                if (stream.readBoolean())
                {
                    BaseData areasVT = stream.readDataFullNotNull();
                    if (areasVT != null)
                    {
                        if (areasVT is AreaClientData)
                        {
                            areasV = (AreaClientData)areasVT;
                        }
                        else
                        {
                            areasV = new AreaClientData();
                            if (!(areasVT.GetType().IsAssignableFrom(typeof(AreaClientData))))
                            {
                                stream.throwTypeReadError(typeof(AreaClientData), areasVT.GetType());
                            }
                            areasV.shadowCopy(areasVT);
                        }
                    }
                    else
                    {
                        areasV = null;
                    }
                }
                else
                {
                    areasV = null;
                }

                areasT.put(areasV.areaID, areasV);
            }
        }
        else
        {
            this.areas = null;
        }

        this.lastAreaID = stream.readInt();

        if (stream.readBoolean())
        {
            BaseData gameInfoT = stream.readDataFullNotNull();
            if (gameInfoT != null)
            {
                if (gameInfoT is ClientLoginServerInfoData)
                {
                    this.gameInfo = (ClientLoginServerInfoData)gameInfoT;
                }
                else
                {
                    this.gameInfo = new ClientLoginServerInfoData();
                    if (!(gameInfoT.GetType().IsAssignableFrom(typeof(ClientLoginServerInfoData))))
                    {
                        stream.throwTypeReadError(typeof(ClientLoginServerInfoData), gameInfoT.GetType());
                    }
                    this.gameInfo.shadowCopy(gameInfoT);
                }
            }
            else
            {
                this.gameInfo = null;
            }
        }
        else
        {
            this.gameInfo = null;
        }

        stream.endReadObj();
    }
Exemplo n.º 5
0
    /// <summary>
    /// 是否数据一致
    /// </summary>
    protected override bool toDataEquals(BaseData data)
    {
        ClientLoginResultData mData = (ClientLoginResultData)data;

        if (mData.loginInfo != null)
        {
            if (this.loginInfo == null)
            {
                return(false);
            }
            if (!this.loginInfo.dataEquals(mData.loginInfo))
            {
                return(false);
            }
        }
        else
        {
            if (this.loginInfo != null)
            {
                return(false);
            }
        }

        if (mData.version != null)
        {
            if (this.version == null)
            {
                return(false);
            }
            if (!this.version.dataEquals(mData.version))
            {
                return(false);
            }
        }
        else
        {
            if (this.version != null)
            {
                return(false);
            }
        }

        if (mData.areas != null)
        {
            if (this.areas == null)
            {
                return(false);
            }
            if (this.areas.size() != mData.areas.size())
            {
                return(false);
            }
            IntObjectMap <AreaClientData> areasR = mData.areas;
            if (!this.areas.isEmpty())
            {
                int              areasKFreeValue = this.areas.getFreeValue();
                int[]            areasKKeys      = this.areas.getKeys();
                AreaClientData[] areasVValues    = this.areas.getValues();
                for (int areasKI = areasKKeys.Length - 1; areasKI >= 0; --areasKI)
                {
                    int areasK = areasKKeys[areasKI];
                    if (areasK != areasKFreeValue)
                    {
                        AreaClientData areasV = areasVValues[areasKI];
                        AreaClientData areasU = areasR.get(areasK);
                        if (areasU != null)
                        {
                            if (areasV == null)
                            {
                                return(false);
                            }
                            if (!areasV.dataEquals(areasU))
                            {
                                return(false);
                            }
                        }
                        else
                        {
                            if (areasV != null)
                            {
                                return(false);
                            }
                        }
                    }
                }
            }
        }
        else
        {
            if (this.areas != null)
            {
                return(false);
            }
        }

        if (this.lastAreaID != mData.lastAreaID)
        {
            return(false);
        }

        if (mData.gameInfo != null)
        {
            if (this.gameInfo == null)
            {
                return(false);
            }
            if (!this.gameInfo.dataEquals(mData.gameInfo))
            {
                return(false);
            }
        }
        else
        {
            if (this.gameInfo != null)
            {
                return(false);
            }
        }

        return(true);
    }
Exemplo n.º 6
0
    /// <summary>
    /// 复制(深拷贝)
    /// </summary>
    protected override void toCopy(BaseData data)
    {
        if (!(data is ClientLoginResultData))
        {
            return;
        }

        ClientLoginResultData mData = (ClientLoginResultData)data;

        if (mData.loginInfo != null)
        {
            this.loginInfo = (ClientLoginServerInfoData)mData.loginInfo.clone();
        }
        else
        {
            this.loginInfo = null;
            nullObjError("loginInfo");
        }

        if (mData.version != null)
        {
            this.version = (ClientVersionData)BytesControl.createData(ClientVersionData.dataID);
            this.version.copy(mData.version);
        }
        else
        {
            this.version = null;
        }

        if (mData.areas != null)
        {
            if (this.areas != null)
            {
                this.areas.clear();
                this.areas.ensureCapacity(mData.areas.size());
            }
            else
            {
                this.areas = new IntObjectMap <AreaClientData>(mData.areas.size());
            }

            IntObjectMap <AreaClientData> areasT = this.areas;
            if (!mData.areas.isEmpty())
            {
                AreaClientData[] areasVValues = mData.areas.getValues();
                for (int areasVI = areasVValues.Length - 1; areasVI >= 0; --areasVI)
                {
                    AreaClientData areasV = areasVValues[areasVI];
                    if (areasV != null)
                    {
                        AreaClientData areasU;
                        if (areasV != null)
                        {
                            areasU = (AreaClientData)areasV.clone();
                        }
                        else
                        {
                            areasU = null;
                        }

                        areasT.put(areasU.areaID, areasU);
                    }
                }
            }
        }
        else
        {
            this.areas = null;
        }

        this.lastAreaID = mData.lastAreaID;

        if (mData.gameInfo != null)
        {
            this.gameInfo = (ClientLoginServerInfoData)mData.gameInfo.clone();
        }
        else
        {
            this.gameInfo = null;
        }
    }
Exemplo n.º 7
0
    /// <summary>
    /// 写入字节流(简版)
    /// </summary>
    protected override void toWriteBytesSimple(BytesWriteStream stream)
    {
        if (this.loginInfo != null)
        {
            stream.writeDataSimpleNotNull(this.loginInfo);
        }
        else
        {
            nullObjError("loginInfo");
        }

        if (this.version != null)
        {
            stream.writeBoolean(true);
            this.version.writeBytesSimple(stream);
        }
        else
        {
            stream.writeBoolean(false);
        }

        if (this.areas != null)
        {
            stream.writeBoolean(true);
            stream.writeLen(this.areas.size());
            if (!this.areas.isEmpty())
            {
                AreaClientData[] areasVValues = this.areas.getValues();
                for (int areasVI = areasVValues.Length - 1; areasVI >= 0; --areasVI)
                {
                    AreaClientData areasV = areasVValues[areasVI];
                    if (areasV != null)
                    {
                        if (areasV != null)
                        {
                            stream.writeBoolean(true);
                            stream.writeDataSimpleNotNull(areasV);
                        }
                        else
                        {
                            stream.writeBoolean(false);
                        }
                    }
                }
            }
        }
        else
        {
            stream.writeBoolean(false);
        }

        stream.writeInt(this.lastAreaID);

        if (this.gameInfo != null)
        {
            stream.writeBoolean(true);
            stream.writeDataSimpleNotNull(this.gameInfo);
        }
        else
        {
            stream.writeBoolean(false);
        }
    }