Esempio n. 1
0
        public override VehicleEntry ConvertTo(byte[] rawData, ref int id)
        {
            id = DBCRecordConverter.GetInt32(rawData, 0);
            VehicleEntry vehicleEntry = new VehicleEntry()
            {
                Id         = DBCRecordConverter.GetUInt32(rawData, 0),
                Flags      = (VehicleFlags)DBCRecordConverter.GetUInt32(rawData, 1),
                TurnSpeed  = DBCRecordConverter.GetFloat(rawData, 2),
                PitchSpeed = DBCRecordConverter.GetFloat(rawData, 3),
                PitchMin   = DBCRecordConverter.GetFloat(rawData, 4),
                PitchMax   = DBCRecordConverter.GetFloat(rawData, 5)
            };
            int num1 = 0;
            int num2 = 0;

            for (int index = 0; index < vehicleEntry.Seats.Length; ++index)
            {
                uint uint32 = DBCRecordConverter.GetUInt32(rawData, 6 + index);
                if (uint32 > 0U)
                {
                    VehicleSeatEntry vehicleSeatEntry = NPCMgr.GetVehicleSeatEntry(uint32);
                    vehicleEntry.Seats[index] = vehicleSeatEntry;
                    ++num2;
                    num1 = index;
                }
            }

            vehicleEntry.SeatCount = num2;
            if (num1 < 7)
            {
                Array.Resize <VehicleSeatEntry>(ref vehicleEntry.Seats, num1 + 1);
            }
            vehicleEntry.PowerType = (VehiclePowerType)DBCRecordConverter.GetInt32(rawData, 37);
            return(vehicleEntry);
        }
Esempio n. 2
0
        public override VehicleEntry ConvertTo(byte[] rawData, ref int id)
        {
            id = GetInt32(rawData, 0);
            var vehicle = new VehicleEntry {
                Id         = GetUInt32(rawData, 0),
                Flags      = (VehicleFlags)GetUInt32(rawData, 1),
                TurnSpeed  = GetFloat(rawData, 2),
                PitchSpeed = GetFloat(rawData, 3),
                PitchMin   = GetFloat(rawData, 4),
                PitchMax   = GetFloat(rawData, 5)
            };

            var lastSeatId = 0;
            var count      = 0;

            for (var i = 0; i < vehicle.Seats.Length; i++)
            {
                var seatId = GetUInt32(rawData, 6 + i);
                if (seatId <= 0)
                {
                    continue;
                }

                var seatEntry = NPCMgr.GetVehicleSeatEntry(seatId);
                vehicle.Seats[i] = seatEntry;
                count++;
                lastSeatId = i;
            }

            vehicle.SeatCount = count;
            if (lastSeatId < 7)
            {
                Array.Resize(ref vehicle.Seats, (int)lastSeatId + 1);
            }

            vehicle.PowerType = (VehiclePowerType)GetInt32(rawData, 37);

            return(vehicle);
        }