mirror of
https://github.com/ProjectSWGCore/Holocore.git
synced 2026-09-26 11:13:20 -04:00
Added new SWGBitSet collection for bitmask lists, Fixed owner being set for newly created PlayerObject causing issues in the long run, Fixed a lot of SWGList issues that could lead to a crash
This commit is contained in:
@@ -30,6 +30,7 @@ package resources.objects.player;
|
||||
import network.packets.swg.zone.UpdatePostureMessage;
|
||||
import network.packets.swg.zone.baselines.Baseline.BaselineType;
|
||||
import network.packets.swg.zone.chat.ChatSystemMessage;
|
||||
import resources.collections.SWGBitSet;
|
||||
import resources.collections.SWGList;
|
||||
import resources.collections.SWGMap;
|
||||
import resources.network.BaselineBuilder;
|
||||
@@ -49,8 +50,8 @@ public class PlayerObject extends IntangibleObject {
|
||||
|
||||
private String biography = "";
|
||||
// PLAY 03
|
||||
private SWGList<Integer> flagsList = new SWGList<>(BaselineType.PLAY, 3, 5, StringType.UNSPECIFIED, true);
|
||||
private SWGList<Integer> profileFlags = new SWGList<>(BaselineType.PLAY, 3, 6, StringType.UNSPECIFIED, true);
|
||||
private SWGBitSet flagsList = new SWGBitSet(BaselineType.PLAY, 3, 5);
|
||||
private SWGBitSet profileFlags = new SWGBitSet(BaselineType.PLAY, 3, 6);
|
||||
private String title = "";
|
||||
private int bornDate = 0;
|
||||
private int playTime = 0;
|
||||
@@ -98,7 +99,6 @@ public class PlayerObject extends IntangibleObject {
|
||||
public PlayerObject(long objectId) {
|
||||
super(objectId, BaselineType.PLAY);
|
||||
setVolume(0);
|
||||
initFlags();
|
||||
}
|
||||
|
||||
public void addWaypoint(WaypointObject waypoint) {
|
||||
@@ -123,7 +123,7 @@ public class PlayerObject extends IntangibleObject {
|
||||
return waypoints;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void updateWaypoint(WaypointObject obj) {
|
||||
synchronized(waypoints) {
|
||||
waypoints.update(obj.getObjectId(), this);
|
||||
@@ -349,20 +349,20 @@ public class PlayerObject extends IntangibleObject {
|
||||
|
||||
public void setFlagBitmask(PlayerFlags ... flags) {
|
||||
for (PlayerFlags flag : flags)
|
||||
flagsList.set(0, flagsList.get(0) | flag.getFlag());
|
||||
sendDelta(3, 5, flagsList);
|
||||
flagsList.set(flag.getFlag());
|
||||
flagsList.sendDeltaMessage(this);
|
||||
}
|
||||
|
||||
public void clearFlagBitmask(PlayerFlags ... flags) {
|
||||
for (PlayerFlags flag : flags)
|
||||
flagsList.set(0, flagsList.get(0) & ~flag.getFlag());
|
||||
sendDelta(3, 5, flagsList);
|
||||
flagsList.clear(flag.getFlag());
|
||||
flagsList.sendDeltaMessage(this);
|
||||
}
|
||||
|
||||
public void toggleFlag(PlayerFlags ... flags) {
|
||||
for (PlayerFlags flag : flags)
|
||||
flagsList.set(0, flagsList.get(0) ^ flag.getFlag());
|
||||
sendDelta(3, 5, flagsList);
|
||||
flagsList.flip(flag.getFlag());
|
||||
flagsList.sendDeltaMessage(this);
|
||||
}
|
||||
|
||||
private int getProfessionIcon() {
|
||||
@@ -391,17 +391,7 @@ public class PlayerObject extends IntangibleObject {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
private void initFlags() {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
profileFlags.add(0);
|
||||
flagsList.add(0);
|
||||
}
|
||||
|
||||
profileFlags.setUpdateCount(0);
|
||||
flagsList.setUpdateCount(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
return super.equals(o);
|
||||
|
||||
Reference in New Issue
Block a user