From 3f7bd3010c040294ec5bc01b23d19e47c1fa0fc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Aguilera=20Puerto?= Date: Mon, 22 Jun 2020 04:10:44 +0200 Subject: [PATCH] Fix RevolverBarrelComponent ExposeData not checking if serializer is reading --- .../Ranged/Barrels/RevolverBarrelComponent.cs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/RevolverBarrelComponent.cs b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/RevolverBarrelComponent.cs index 04c2c7c56f..f9caf303b6 100644 --- a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/RevolverBarrelComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/RevolverBarrelComponent.cs @@ -42,8 +42,15 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels { base.ExposeData(serializer); serializer.DataField(ref _caliber, "caliber", BallisticCaliber.Unspecified); - var capacity = serializer.ReadDataField("capacity", 6); - _ammoSlots = new IEntity[capacity]; + + if (serializer.Reading) + { + var capacity = serializer.ReadDataField("capacity", 6); + _ammoSlots = new IEntity[capacity]; + } + + // TODO: Writing? + // Sounds serializer.DataField(ref _soundEject, "soundEject", "/Audio/Guns/MagOut/revolver_magout.ogg"); @@ -60,7 +67,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels { _appearanceComponent = appearanceComponent; } - + _appearanceComponent?.SetData(MagazineBarrelVisuals.MagLoaded, true); } @@ -78,7 +85,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels { return false; } - + if (ammoComponent.Caliber != _caliber) { Owner.PopupMessage(user, Loc.GetString("Wrong caliber")); @@ -208,7 +215,7 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels { return TryInsertBullet(eventArgs.User, eventArgs.Using); } - + [Verb] private sealed class SpinRevolverVerb : Verb {