Пример #1
0
        private Ja2Data.JsdTile DownloadJsdTile(JsdTile aTileRec, bool aIsHiDefenition)
        {
            Ja2Data.JsdTile _tile  = new Ja2Data.JsdTile(aIsHiDefenition);
            int             _flags = 0;

            foreach (JsdTileTileFlag _flag in aTileRec.JsdTileTileFlag)
            {
                _flags |= _flag.JsdTileFlags.Mask.Value;
            }
            _tile.Flags = (Ja2Data.JsdTile.JsdTileFlags)((byte)_flags);

            _tile.PosRelToBase       = aTileRec.PosRelToBase;
            _tile.Unused             = aTileRec.Unused;
            _tile.VehicleHitLocation = aTileRec.VehicleHitLocation;
            _tile.XPosRelToBase      = (sbyte)aTileRec.XPosRelToBase;
            _tile.YPosRelToBase      = (sbyte)aTileRec.YPosRelToBase;

            List <JsdCell> _cells = this.FJsdCells
                                    .Where(x => x.JsdTileId == aTileRec.JsdTileId)
                                    .ToList();

            _cells.Sort();

            _tile.Shape = _cells.Select(x => x.Value).ToArray();

            return(_tile);
        }
Пример #2
0
        private JsdTile LoadJsdTile(Ja2Data.JsdTile aTile)
        {
            JsdTile _tileRec = new JsdTile();

            _tileRec.PosRelToBase       = aTile.PosRelToBase;
            _tileRec.Unused             = aTile.Unused;
            _tileRec.VehicleHitLocation = aTile.VehicleHitLocation;
            _tileRec.XPosRelToBase      = (short)aTile.XPosRelToBase;
            _tileRec.YPosRelToBase      = (short)aTile.YPosRelToBase;

            _tileRec.DateCreated = DateTime.Now;
            _tileRec.UserId      = this.FUserId;

            var _flags = this.FTilesFlags.Where(x => (x.Mask & (byte)aTile.Flags) != 0);

            foreach (Flag _flag in _flags)
            {
                JsdTileTileFlag _tileToFlag = new JsdTileTileFlag();
                _tileToFlag.JsdTile = _tileRec;
                _tileToFlag.FlagId  = (byte)_flag.Id;
                this.FJsdTileTileFlag.Add(_tileToFlag);
            }

            this.LoadJsdTileCells(aTile.Shape, _tileRec);

            return(_tileRec);
        }
Пример #3
0
        private void LoadJsdTileCells(byte[] aShape, JsdTile aJsdTile)
        {
            for (byte x = 0; x < this.FProfileXSize; x++)
            {
                for (byte y = 0; y < this.FProfileYSize; y++)
                {
                    JsdTileCell _cellsRec = new JsdTileCell();
                    _cellsRec.RowNumber  = x;
                    _cellsRec.CellNumber = y;
                    _cellsRec.Value      = aShape[x * this.FProfileYSize + y];

                    _cellsRec.JsdTile = aJsdTile;
                    this.FJsdTileCell.Add(_cellsRec);
                }
            }
        }
Пример #4
0
        private JsdStructure LoadStructure(Ja2Data.JsdStruct aStruct)
        {
            JsdStructure _structRec = new JsdStructure();

            _structRec.Armour             = aStruct.Armour;
            _structRec.Density            = aStruct.Density;
            _structRec.DestructionPartner = aStruct.DestructionPartner;
            _structRec.HitPoints          = aStruct.HitPoints;
            _structRec.NumberOfTiles      = aStruct.NumberOfTiles;
            _structRec.PartnerDelta       = aStruct.PartnerDelta;
            _structRec.StructureNumber    = aStruct.StructureNumber;
            _structRec.Unused             = aStruct.Unused;
            _structRec.WallOrientation    = aStruct.WallOrientation;
            _structRec.ZTileOffsetX       = aStruct.ZTileOffsetX;
            _structRec.ZTileOffsetY       = aStruct.ZTileOffsetY;

            _structRec.DateCreated = DateTime.Now;
            _structRec.UserId      = this.FUserId;

            var _flags = this.FStructureFlags.Where(x => (x.Mask & (uint)aStruct.Flags) != 0);

            foreach (Flag _flag in _flags)
            {
                JsdStructureStructureFlag _structToFlag = new JsdStructureStructureFlag();
                _structToFlag.JsdStructure = _structRec;
                _structToFlag.FlagId       = (byte)_flag.Id;
                this.FStructureStructuresFlags.Add(_structToFlag);
            }

            foreach (Ja2Data.JsdTile _tile in aStruct.Tiles)
            {
                JsdTile _tileRec = this.LoadJsdTile(_tile);
                _tileRec.JsdStructure = _structRec;
                this.FJsdTile.Add(_tileRec);
            }

            return(_structRec);
        }