diff --git a/src/resources/collections/SWGBitSet.java b/src/resources/collections/SWGBitSet.java index c8fd204a6..cca8dd4dd 100644 --- a/src/resources/collections/SWGBitSet.java +++ b/src/resources/collections/SWGBitSet.java @@ -29,7 +29,6 @@ package resources.collections; import network.packets.swg.zone.baselines.Baseline; import resources.encodables.Encodable; -import resources.network.DeltaBuilder; import resources.objects.SWGObject; import java.nio.ByteBuffer; @@ -45,7 +44,6 @@ public class SWGBitSet extends BitSet implements Encodable { private static final long serialVersionUID = 200L; - private final Baseline.BaselineType baseline; private int view; private int updateType; @@ -56,9 +54,8 @@ public class SWGBitSet extends BitSet implements Encodable { * @param view The baseline number this BitSet resides in * @param updateType The update variable used for sending a delta, it's the operand count that this BitSet resides at within the baseline */ - public SWGBitSet(Baseline.BaselineType baseline, int view, int updateType) { + public SWGBitSet(int view, int updateType) { super(128); // Seems to be the default size for the bitmask sets in packets - this.baseline = baseline; this.view = view; this.updateType = updateType; } @@ -99,8 +96,7 @@ public class SWGBitSet extends BitSet implements Encodable { return; } - DeltaBuilder builder = new DeltaBuilder(target, baseline, view, updateType, encode()); - builder.send(); + target.sendDelta(view, updateType, encode()); } public int[] toList() { diff --git a/src/resources/collections/SWGList.java b/src/resources/collections/SWGList.java index 4c51ea236..99116377e 100644 --- a/src/resources/collections/SWGList.java +++ b/src/resources/collections/SWGList.java @@ -55,8 +55,6 @@ import java.util.List; public class SWGList extends AbstractList implements Encodable, Serializable { private static final long serialVersionUID = 1L; - private BaselineType baseline; - private int view; private int updateType; private transient int updateCount; @@ -78,8 +76,7 @@ public class SWGList extends AbstractList implements Encodable, Serializab * @param view The baseline number this list resides in * @param updateType The update variable used for sending a delta, it's the operand count that this list resides at within the baseline */ - public SWGList(BaselineType baseline, int view, int updateType) { - this.baseline = baseline; + public SWGList(int view, int updateType) { this.view = view; this.updateType = updateType; } @@ -90,8 +87,8 @@ public class SWGList extends AbstractList implements Encodable, Serializab * @param view The baseline number this list resides in * @param strType The {@link StringType} of the string, required only if the element in the list is a String as it's used for encoding either Unicode or ASCII characters */ - public SWGList(BaselineType baseline, int view, int updateType, StringType strType) { - this (baseline, view, updateType); + public SWGList(int view, int updateType, StringType strType) { + this (view, updateType); this.strType = strType; } @@ -267,8 +264,7 @@ public class SWGList extends AbstractList implements Encodable, Serializab return; } - DeltaBuilder builder = new DeltaBuilder(target, baseline, view, updateType, getDeltaData()); - builder.send(); + target.sendDelta(view, updateType, getDeltaData()); // Clear the queue since the delta has been sent to observers through the builder clearDeltaQueue(); } @@ -286,8 +282,7 @@ public class SWGList extends AbstractList implements Encodable, Serializab bb.put(bytes); } - DeltaBuilder builder = new DeltaBuilder(target, baseline, view, updateType, bb.array()); - builder.send(); + target.sendDelta(view, updateType, bb.array()); } public void clearDeltaQueue() { @@ -367,10 +362,8 @@ public class SWGList extends AbstractList implements Encodable, Serializab } } - public BaselineType getBaseline() { return baseline; } - @Override public String toString() { - return "SWGList[" + baseline + "0" + view + ":" + updateType + "]"; + return "SWGList[0" + view + ":" + updateType + "]"; } } diff --git a/src/resources/collections/SWGMap.java b/src/resources/collections/SWGMap.java index 1c9275075..a7aa542c8 100644 --- a/src/resources/collections/SWGMap.java +++ b/src/resources/collections/SWGMap.java @@ -27,9 +27,7 @@ ***********************************************************************************/ package resources.collections; -import network.packets.swg.zone.baselines.Baseline.BaselineType; import resources.encodables.Encodable; -import resources.network.DeltaBuilder; import resources.objects.SWGObject; import resources.player.PlayerState; import utilities.Encoder; @@ -47,8 +45,6 @@ import java.util.concurrent.ConcurrentHashMap; public class SWGMap extends AbstractMap implements Encodable, Serializable { private static final long serialVersionUID = 1L; - private BaselineType baseline; - private int view; private int updateType; private transient int updateCount; @@ -67,14 +63,12 @@ public class SWGMap extends AbstractMap implements Encodable, Serial private Map deltas = new HashMap<>(); private int deltaSize; - public SWGMap(BaselineType baseline, int view, int updateType) { - this.baseline = baseline; + public SWGMap(int view, int updateType) { this.view = view; this.updateType = updateType; } - public SWGMap(BaselineType baseline, int view, int updateType, StringType strType) { - this.baseline = baseline; + public SWGMap(int view, int updateType, StringType strType) { this.view = view; this.updateType = updateType; this.strType = strType; @@ -205,8 +199,7 @@ public class SWGMap extends AbstractMap implements Encodable, Serial return; } - DeltaBuilder builder = new DeltaBuilder(target, baseline, view, updateType, getDeltaData()); - builder.send(); + target.sendDelta(view, updateType, getDeltaData()); // Clear the queue since the delta has been sent to observers through the builder clearDeltaQueue(); } diff --git a/src/resources/collections/SWGSet.java b/src/resources/collections/SWGSet.java index 3bce1eacb..99060d05e 100644 --- a/src/resources/collections/SWGSet.java +++ b/src/resources/collections/SWGSet.java @@ -30,7 +30,6 @@ package resources.collections; import network.packets.Packet; import network.packets.swg.zone.baselines.Baseline; import resources.encodables.Encodable; -import resources.network.DeltaBuilder; import resources.objects.SWGObject; import resources.player.PlayerState; import utilities.Encoder; @@ -51,8 +50,6 @@ import java.util.Set; public class SWGSet extends AbstractSet implements Encodable, Serializable { private static final long serialVersionUID = 1L; - private Baseline.BaselineType baseline; - private int view; private int updateType; private transient int updateCount; @@ -74,8 +71,7 @@ public class SWGSet extends AbstractSet implements Encodable, Serializable * @param view The baseline number this list resides in * @param updateType The update variable used for sending a delta, it's the operand count that this list resides at within the baseline */ - public SWGSet(Baseline.BaselineType baseline, int view, int updateType) { - this.baseline = baseline; + public SWGSet(int view, int updateType) { this.view = view; this.updateType = updateType; } @@ -86,8 +82,8 @@ public class SWGSet extends AbstractSet implements Encodable, Serializable * @param view The baseline number this set resides in * @param strType The {@link StringType} of the string, required only if the element in the set is a String as it's used for encoding either Unicode or ASCII characters */ - public SWGSet(Baseline.BaselineType baseline, int view, int updateType, StringType strType) { - this (baseline, view, updateType); + public SWGSet(int view, int updateType, StringType strType) { + this(view, updateType); this.strType = strType; } @@ -135,8 +131,7 @@ public class SWGSet extends AbstractSet implements Encodable, Serializable return; } - DeltaBuilder builder = new DeltaBuilder(target, baseline, view, updateType, getDeltaData()); - builder.send(); + target.sendDelta(view, updateType, getDeltaData()); // Clear the queue since the delta has been sent to observers through the builder clearDeltaQueue(); } diff --git a/src/resources/encodables/player/Equipment.java b/src/resources/encodables/player/Equipment.java index 005a302f9..941f01fc3 100644 --- a/src/resources/encodables/player/Equipment.java +++ b/src/resources/encodables/player/Equipment.java @@ -29,10 +29,8 @@ package resources.encodables.player; import network.packets.Packet; import network.packets.swg.zone.baselines.Baseline; -import network.packets.swg.zone.baselines.Baseline.BaselineType; import resources.common.CRC; import resources.encodables.Encodable; -import resources.network.BaselineBuilder; import resources.objects.SWGObject; import resources.objects.weapon.WeaponObject; import resources.player.Player; @@ -120,15 +118,11 @@ public class Equipment implements Encodable, Serializable { public void setTemplate(String template) { this.template = template; } private byte[] getWeaponData() { - BaselineBuilder bb = new BaselineBuilder(weapon, BaselineType.WEAO, 3); Player target = weapon.getOwner(); - weapon.createBaseline3(target, bb); - ByteBuffer data3 = bb.buildAsBaselinePacket().encode(); + ByteBuffer data3 = weapon.createBaseline3(target).encode(); data3.position(0); - bb = new BaselineBuilder(weapon, BaselineType.WEAO, 6); - weapon.createBaseline6(target, bb); - ByteBuffer data6 = bb.buildAsBaselinePacket().encode(); + ByteBuffer data6 = weapon.createBaseline6(target).encode(); data6.position(0); ByteBuffer ret = ByteBuffer.allocate(data3.remaining() + data6.remaining()); diff --git a/src/resources/network/BaselineObject.java b/src/resources/network/BaselineObject.java index 197c61547..1378b55af 100644 --- a/src/resources/network/BaselineObject.java +++ b/src/resources/network/BaselineObject.java @@ -94,7 +94,7 @@ public class BaselineObject implements Serializable { } - protected final void sendDelta(int type, int update, Object value) { + public final void sendDelta(int type, int update, Object value) { verifySwgObject(); synchronized (baselineData) { baselineData.set(type-1, null); @@ -103,7 +103,7 @@ public class BaselineObject implements Serializable { builder.send(); } - protected final void sendDelta(int type, int update, Object value, StringType strType) { + public final void sendDelta(int type, int update, Object value, StringType strType) { verifySwgObject(); synchronized (baselineData) { baselineData.set(type-1, null); diff --git a/src/resources/objects/SWGObject.java b/src/resources/objects/SWGObject.java index 08faa5d22..77591738a 100644 --- a/src/resources/objects/SWGObject.java +++ b/src/resources/objects/SWGObject.java @@ -55,7 +55,6 @@ import resources.server_info.Log; import services.CoreManager; import java.io.IOException; import java.io.ObjectInputStream; -import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -67,7 +66,7 @@ import java.util.List; import java.util.Map; import java.util.Set; -public abstract class SWGObject extends BaselineObject implements Serializable, Comparable { +public abstract class SWGObject extends BaselineObject implements Comparable { private static final long serialVersionUID = 1L; @@ -77,7 +76,6 @@ public abstract class SWGObject extends BaselineObject implements Serializable, private final Map containedObjects; private final Map attributes; private final Map dataAttributes; - private final BaselineType objectType; private ContainerPermissions containerPermissions; private transient Set objectsAware; private transient BuildoutArea buildoutArea; @@ -113,7 +111,6 @@ public abstract class SWGObject extends BaselineObject implements Serializable, this.attributes = new LinkedHashMap<>(); this.dataAttributes = new Hashtable<>(); this.containerPermissions = new DefaultPermissions(); - this.objectType = objectType; } private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException { @@ -784,8 +781,6 @@ public abstract class SWGObject extends BaselineObject implements Serializable, } protected void sendBaselines(Player target) { - if (objectType == null) - return; target.sendPacket(createBaseline3(target)); target.sendPacket(createBaseline6(target)); diff --git a/src/resources/objects/cell/CellObject.java b/src/resources/objects/cell/CellObject.java index 420e8dfde..8e73f53d0 100644 --- a/src/resources/objects/cell/CellObject.java +++ b/src/resources/objects/cell/CellObject.java @@ -87,13 +87,7 @@ public class CellObject extends SWGObject { } protected void sendBaselines(Player target) { - BaselineBuilder bb = new BaselineBuilder(this, BaselineType.SCLT, 3); - createBaseline3(target, bb); - bb.sendTo(target); - - bb = new BaselineBuilder(this, BaselineType.SCLT, 6); - createBaseline6(target, bb); - bb.sendTo(target); + super.sendBaselines(target); target.sendPacket(new UpdateCellPermissionMessage((byte) 1, getObjectId())); } diff --git a/src/resources/objects/creature/CreatureObject.java b/src/resources/objects/creature/CreatureObject.java index 6cc10265c..dbb731e8a 100644 --- a/src/resources/objects/creature/CreatureObject.java +++ b/src/resources/objects/creature/CreatureObject.java @@ -104,18 +104,18 @@ public class CreatureObject extends TangibleObject { private long lastTransform = 0; private HologramColour hologramColour = HologramColour.DEFAULT; - private SWGList baseAttributes = new SWGList(BaselineType.CREO, 1, 2); - private SWGList skills = new SWGList(BaselineType.CREO, 1, 3, StringType.ASCII); // SWGSet - private SWGList hamEncumbList = new SWGList(BaselineType.CREO, 4, 2); - private SWGList attributes = new SWGList(BaselineType.CREO, 6, 21); - private SWGList maxAttributes = new SWGList(BaselineType.CREO, 6, 22); - private SWGList equipmentList = new SWGList(BaselineType.CREO, 6, 23); - private SWGList appearanceList = new SWGList(BaselineType.CREO, 6, 33); + private SWGList baseAttributes = new SWGList(1, 2); + private SWGList skills = new SWGList(1, 3, StringType.ASCII); // SWGSet + private SWGList hamEncumbList = new SWGList(4, 2); + private SWGList attributes = new SWGList(6, 21); + private SWGList maxAttributes = new SWGList(6, 22); + private SWGList equipmentList = new SWGList(6, 23); + private SWGList appearanceList = new SWGList(6, 33); - private SWGMap skillMods = new SWGMap<>(BaselineType.CREO, 4, 3, StringType.ASCII); // TODO: SkillMod structure - private SWGMap missionCriticalObjs = new SWGMap<>(BaselineType.CREO, 4, 13); - private SWGMap abilities = new SWGMap<>(BaselineType.CREO, 4, 14, StringType.ASCII); - private SWGMap buffs = new SWGMap<>(BaselineType.CREO, 6, 26); // TODO: Buff structure + private SWGMap skillMods = new SWGMap<>(4, 3, StringType.ASCII); // TODO: SkillMod structure + private SWGMap missionCriticalObjs = new SWGMap<>(4, 13); + private SWGMap abilities = new SWGMap<>(4, 14, StringType.ASCII); + private SWGMap buffs = new SWGMap<>(6, 26); // TODO: Buff structure public CreatureObject(long objectId) { @@ -784,36 +784,21 @@ public class CreatureObject extends TangibleObject { } public void sendBaselines(Player target) { - BaselineBuilder bb = null; + boolean targetSelf = getOwner() == target; - if (getOwner() == target) { - bb = new BaselineBuilder(this, BaselineType.CREO, 1); - createBaseline1(target, bb); - bb.sendTo(target); - } + if (targetSelf) + target.sendPacket(createBaseline1(target)); - bb = new BaselineBuilder(this, BaselineType.CREO, 3); - createBaseline3(target, bb); - bb.sendTo(target); + target.sendPacket(createBaseline3(target)); - if (getOwner() == target) { - bb = new BaselineBuilder(this, BaselineType.CREO, 4); - createBaseline4(target, bb); - bb.sendTo(target); - } + if (targetSelf) + target.sendPacket(createBaseline4(target)); - bb = new BaselineBuilder(this, BaselineType.CREO, 6); - createBaseline6(target, bb); - bb.sendTo(target); + target.sendPacket(createBaseline6(target)); - if (getOwner() == target) { - bb = new BaselineBuilder(this, BaselineType.CREO, 8); - createBaseline8(target, bb); - bb.sendTo(target); - - bb = new BaselineBuilder(this, BaselineType.CREO, 9); - createBaseline9(target, bb); - bb.sendTo(target); + if (targetSelf) { + target.sendPacket(createBaseline8(target)); + target.sendPacket(createBaseline9(target)); } } diff --git a/src/resources/objects/group/GroupObject.java b/src/resources/objects/group/GroupObject.java index ce4cfd9c0..57ba9a66d 100644 --- a/src/resources/objects/group/GroupObject.java +++ b/src/resources/objects/group/GroupObject.java @@ -47,7 +47,7 @@ import java.util.Map; public class GroupObject extends SWGObject { // Extends INTO or TANO? private static final long serialVersionUID = 200L; - private final SWGList groupMembers = new SWGList<>(Baseline.BaselineType.GRUP, 6, 2, Encoder.StringType.ASCII); + private final SWGList groupMembers = new SWGList<>(6, 2, Encoder.StringType.ASCII); private long leader; private short level; private long lootMaster; @@ -65,11 +65,6 @@ public class GroupObject extends SWGObject { // Extends INTO or TANO? pickupPointTimer = new PickupPointTimer(); } - @Override - public void createBaseline3(Player target, BaselineBuilder bb) { - super.createBaseline3(target, bb); - } - @Override public void createBaseline6(Player target, BaselineBuilder bb) { super.createBaseline6(target, bb); // BASE06 -- 2 variables diff --git a/src/resources/objects/player/PlayerObject.java b/src/resources/objects/player/PlayerObject.java index 85ea2c7c9..4865d666c 100644 --- a/src/resources/objects/player/PlayerObject.java +++ b/src/resources/objects/player/PlayerObject.java @@ -56,8 +56,8 @@ public class PlayerObject extends IntangibleObject { private List joinedChannels = new ArrayList<>(); // PLAY 03 - private SWGBitSet flagsList = new SWGBitSet(BaselineType.PLAY, 3, 5); - private SWGBitSet profileFlags = new SWGBitSet(BaselineType.PLAY, 3, 6); + private SWGBitSet flagsList = new SWGBitSet(3, 5); + private SWGBitSet profileFlags = new SWGBitSet(3, 6); private String title = ""; private int bornDate = 0; private int playTime = 0; @@ -66,8 +66,8 @@ public class PlayerObject extends IntangibleObject { private int pvpKills = 0; private long lifetimeGcwPoints = 0; private int lifetimePvpKills = 0; - private SWGList collections = new SWGList<>(BaselineType.PLAY, 3, 16); - private SWGList guildRanks = new SWGList<>(BaselineType.PLAY, 3, 17); + private SWGList collections = new SWGList<>(3, 16); + private SWGList guildRanks = new SWGList<>(3, 17); private boolean showHelmet = true; private boolean showBackpack = true; // PLAY 06 @@ -79,27 +79,27 @@ public class PlayerObject extends IntangibleObject { private int gcwNextUpdate = 0; private String home = ""; // PLAY 08 - private SWGMap experience = new SWGMap<>(BaselineType.PLAY, 8, 0); - private SWGMap waypoints = new SWGMap<>(BaselineType.PLAY, 8, 1); + private SWGMap experience = new SWGMap<>(8, 0); + private SWGMap waypoints = new SWGMap<>(8, 1); private boolean citizen = false; private int guildRankTitle = 0; private int activeQuest = 0; - private SWGMap quests = new SWGMap<>(BaselineType.PLAY, 8, 7); + private SWGMap quests = new SWGMap<>(8, 7); private String profWheelPosition = ""; // PLAY 09 private int experimentFlag = 0; private int craftingStage = 0; private long nearbyCraftStation = 0; - private SWGList draftSchemList = new SWGList<>(BaselineType.PLAY, 9, 3); + private SWGList draftSchemList = new SWGList<>(9, 3); private int experimentPoints = 0; - private SWGList friendsList = new SWGList<>(BaselineType.PLAY, 9, 7, StringType.ASCII); - private SWGList ignoreList = new SWGList<>(BaselineType.PLAY, 9, 8, StringType.ASCII); + private SWGList friendsList = new SWGList<>(9, 7, StringType.ASCII); + private SWGList ignoreList = new SWGList<>(9, 8, StringType.ASCII); private int languageId = 0; - private SWGList defenders = new SWGList<>(BaselineType.PLAY, 9, 17); // TODO: Change to set + private SWGList defenders = new SWGList<>(9, 17); // TODO: Change to set private int killMeter = 0; private long petId = 0; - private SWGList petAbilities = new SWGList<>(BaselineType.PLAY, 9, 21); - private SWGList activePetAbilities = new SWGList<>(BaselineType.PLAY, 9, 22); + private SWGList petAbilities = new SWGList<>(9, 21); + private SWGList activePetAbilities = new SWGList<>(9, 22); private int startPlayTime; public PlayerObject(long objectId) { diff --git a/src/resources/objects/weapon/WeaponObject.java b/src/resources/objects/weapon/WeaponObject.java index 67bb66949..20dedd923 100644 --- a/src/resources/objects/weapon/WeaponObject.java +++ b/src/resources/objects/weapon/WeaponObject.java @@ -85,16 +85,6 @@ public class WeaponObject extends TangibleObject { return super.hashCode() * 7 + type; } - protected void sendBaselines(Player target) { - BaselineBuilder bb = new BaselineBuilder(this, BaselineType.WEAO, 3); - createBaseline3(target, bb); - bb.sendTo(target); - - bb = new BaselineBuilder(this, BaselineType.WEAO, 6); - createBaseline6(target, bb); - bb.sendTo(target); - } - public void createBaseline3(Player target, BaselineBuilder bb) { super.createBaseline3(target, bb); diff --git a/test/resources/collections/SWGListTest.java b/test/resources/collections/SWGListTest.java index d5ebc8470..98916e918 100644 --- a/test/resources/collections/SWGListTest.java +++ b/test/resources/collections/SWGListTest.java @@ -27,7 +27,6 @@ package resources.collections; -import network.packets.swg.zone.baselines.Baseline; import org.junit.Assert; import org.junit.Test; import utilities.Encoder; @@ -49,7 +48,7 @@ public class SWGListTest { strings[i] = "test" + String.valueOf(i); } - SWGList swgList = new SWGList<>(Baseline.BaselineType.PLAY, 3, 6, Encoder.StringType.ASCII); + SWGList swgList = new SWGList<>(3, 6, Encoder.StringType.ASCII); long start = System.nanoTime(); Collections.addAll(swgList, strings); long end = System.nanoTime(); @@ -84,7 +83,7 @@ public class SWGListTest { strings[i] = "test" + String.valueOf(i); } - SWGList swgList = new SWGList<>(Baseline.BaselineType.PLAY, 3, 6, Encoder.StringType.ASCII); + SWGList swgList = new SWGList<>(3, 6, Encoder.StringType.ASCII); Collections.addAll(swgList, strings); long start = System.nanoTime();