Exemple #1
0
        public void DeserializeJSON(string json)
        {
            var jsonResponse = (dynamic)null;

            try
            {
                jsonResponse = (dynamic)JsonConvert.DeserializeObject <JObject>(json);

                faceNbr  = jsonResponse.faceNbr;
                colorNbr = jsonResponse.colorNbr;

                nbrProps = jsonResponse.propSpec.Count;
            }
            catch
            {
                nbrProps = 0;
            }

            propSpec = new AssetSpec[nbrProps];

            for (var j = 0; j < nbrProps; j++)
            {
                var id  = (Int32)jsonResponse.propSpec[j].id;
                var crc = (UInt32)jsonResponse.propSpec[j].crc;

                propSpec[j] = new AssetSpec(id, crc);
            }
        }
        public bool Open(AssetSpec assetSpec)
        {
            try
            {
                if (AssetLoader.assetsCache.ContainsKey(assetSpec.id))
                {
                    assetRec = AssetLoader.assetsCache[assetSpec.id];
                }
                else
                {
                    using (var dbContext = Database.For <ThePalaceEntities>())
                    {
                        assetRec = dbContext.Assets.AsNoTracking()
                                   .Where(a => a.AssetId == assetSpec.id)
                                   .Where(a => (int)assetSpec.crc == 0 || a.AssetCrc == (int)assetSpec.crc)
                                   .Where(a => (a.Flags & (Int32)ServerAssetFlags.HighResProp) == 0)
                                   .AsEnumerable()
                                   .Select(a => new AssetRec
                        {
                            //type = LegacyAssetTypes.RT_PROP,
                            propSpec = new AssetSpec(a.AssetId, (UInt32)a.AssetCrc),
                            name     = a.Name,
                            flags    = (UInt32)a.Flags,
                            size     = (UInt32)(a.Data?.Length ?? 0),
                            data     = a.Data,
                        })
                                   .FirstOrDefault();
                    }
                }

                if (assetRec != null && assetRec.size > 0)
                {
                    assetRec.nbrBlocks = (UInt16)((assetRec.size / _chunkMaxSize) + ((assetRec.size % _chunkMaxSize) > 0 ? 1 : 0));
                    assetRec.blockSize = (UInt32)((assetRec.size - _bytesRead > _chunkMaxSize) ?
                                                  ((_chunkMaxSize > assetRec.size - _bytesRead) ? assetRec.size - _bytesRead : _chunkMaxSize) :
                                                  (assetRec.size - _bytesRead > 0) ? assetRec.size - _bytesRead : 0);

                    AlignBytes((int)assetRec.size);

                    if (assetRec.size <= 9000)
                    {
                        AssetLoader.assetsCache[assetSpec.id] = assetRec;
                    }

                    _stream = new MemoryStream(assetRec.data);

                    return(true);
                }
            }
            catch (Exception ex)
            {
                ex.DebugLog();
            }

            return(false);
        }
        public void Deserialize(Packet packet)
        {
            nbrProps = (Int16)packet.ReadSInt32();

            propSpec = new AssetSpec[nbrProps];

            for (var j = 0; j < nbrProps; j++)
            {
                propSpec[j] = new AssetSpec(packet);
            }
        }
Exemple #4
0
        public void Deserialize(Packet packet)
        {
            faceNbr  = packet.ReadSInt16();
            colorNbr = packet.ReadSInt16();
            nbrProps = packet.ReadSInt32() % 10;

            propSpec = new AssetSpec[nbrProps];

            for (var j = 0; j < nbrProps; j++)
            {
                propSpec[j] = new AssetSpec(packet);
            }
        }
        public void DeserializeJSON(string json)
        {
            var jsonResponse = (dynamic)null;

            try
            {
                jsonResponse = (dynamic)JsonConvert.DeserializeObject <JObject>(json);

                assetType = (LegacyAssetTypes)jsonResponse.assetType;
                assetSpec = new AssetSpec(jsonResponse.assetSpec.id, jsonResponse.assetSpec.crc);
            }
            catch
            {
            }
        }
Exemple #6
0
        public static void OutboundQueueTransfer(SessionState sessionState, AssetSpec assetSpec)
        {
            var assetStream = new AssetStream();

            if (assetStream.Open(assetSpec))
            {
                lock (outboundQueue)
                {
                    outboundQueue.Enqueue(new AssetState
                    {
                        sessionState = sessionState,
                        assetStream  = assetStream,
                    });
                }

                ThreadController.manageAssetsOutboundQueueSignalEvent.Set();
            }
        }
Exemple #7
0
        public void DeserializeJSON(string json)
        {
            var jsonResponse = (dynamic)null;

            try
            {
                jsonResponse = (dynamic)JsonConvert.DeserializeObject <JObject>(json);

                var id  = (Int32)jsonResponse.propSpec.id;
                var crc = (UInt32)jsonResponse.propSpec.crc;
                var v   = (Int16)jsonResponse.loc.v;
                var h   = (Int16)jsonResponse.loc.h;

                propSpec = new AssetSpec(id, crc);
                loc      = new Point(h, v);
            }
            catch
            {
            }
        }
 public void Deserialize(Packet packet)
 {
     assetType = (LegacyAssetTypes)packet.ReadSInt32();
     assetSpec = new AssetSpec(packet);
 }
Exemple #9
0
 public void Deserialize(Packet packet)
 {
     propSpec = new AssetSpec(packet);
     loc      = new Point(packet);
 }
Exemple #10
0
 public static void CheckAssets(SessionState sessionState, AssetSpec propSpec)
 {
     CheckAssets(sessionState, new AssetSpec[] { propSpec });
 }