Esempio n. 1
0
        //游戏配置
        //游戏配置
        public CParameterGame GetParameterGame(tagGameKind pGameKind)
        {
            //寻找现存

            if (m_ParameterGameMap.ContainsKey(pGameKind.wKindID))
            {
                return(m_ParameterGameMap[pGameKind.wKindID]);
            }

            //创建对象

            //创建对象
            CParameterGame pParameterGame = new CParameterGame();

            //配置对象
            //		pParameterGame->InitParameter(pGameKind->szProcessName);

            //加载参数
            pParameterGame.LoadParameter();

            //设置数组
            m_ParameterGameMap[pGameKind.wKindID] = pParameterGame;

            return(pParameterGame);
        }
Esempio n. 2
0
        //插入类型
        public bool InsertGameKind(tagGameKind pGameKind)
        {
            //效验参数
            //ASSERT(pGameKind!=0);
            //if (pGameKind == null) return false;

            //变量定义
            CGameKindItem pGameKindItem = null;
            bool          bInsert       = false;

            if (m_GameKindItemMap.ContainsKey(pGameKind.wKindID))
            {
                pGameKindItem = m_GameKindItemMap[pGameKind.wKindID];
            }
            else
            {
                pGameKindItem = new CGameKindItem();
                bInsert       = true;
            }

            if (pGameKindItem == null)
            {
                return(false);
            }

            //设置数据
            var buf = StructConverterByteArray.StructToBytes(pGameKind);

            pGameKindItem.m_GameKind = (tagGameKind)StructConverterByteArray.BytesToStruct(buf, typeof(tagGameKind));
            //memcpy(&pGameKindItem.m_GameKind, pGameKind, sizeof(tagGameKind));

            //插入处理
            if (bInsert == true)
            {
                //设置索引
                m_GameKindItemMap[pGameKind.wKindID] = pGameKindItem;

                //插入子项
                if (m_pIServerListDataSink != null)
                {
                    m_pIServerListDataSink.OnGameItemInsert(pGameKindItem);
                }
            }
            else
            {
                //更新子项
                if (m_pIServerListDataSink != null)
                {
                    m_pIServerListDataSink.OnGameItemUpdate(pGameKindItem);
                }
            }

            return(true);
        }
Esempio n. 3
0
//类型信息
        bool onSocketListKind(byte[] data, int size)
        {
            ////更新数据
            tagGameKind tempStruct = new tagGameKind();
            int         itemSize   = Marshal.SizeOf(tempStruct);

            if (size % itemSize != 0)
            {
                return(false);
            }
            byte[]          pNetInfo        = new byte[itemSize];
            int             iItemCount      = size / itemSize;
            CServerListData pServerListData = CServerListData.shared();

            for (int i = 0; i < iItemCount; i++)
            {
                Buffer.BlockCopy(data, i * itemSize, pNetInfo, 0, itemSize);
                tagGameKind pGameKind = (tagGameKind)StructConverterByteArray.BytesToStruct(pNetInfo, typeof(tagGameKind));
                pServerListData.InsertGameKind(pGameKind);
            }
            return(true);
        }