rendered paste body private void updatePlayerPositions() {
if(opponent != null) {
if(opponent.getCurrentPos().equals(getCurrentPos())) {
inCombat = true;
opponent.inCombat = true;
combatView = 9;
opponent.combatView = 8;
}
}
outStream.createPacket(255);
outStream.initBitAccess();
outStream.writeBits(10, getCurrentPos().getX());
outStream.writeBits(12, getCurrentPos().getY());
outStream.writeBits(4, inCombat ? combatView : walkingQueue.getNextDirection());
outStream.writeBits(8, playersInArea.size() - 1); // Players in area minus this player
for(Connection c : playersInArea) {
if(c == this)
continue;
if(c.walkingQueue.hasNextStep()) {
outStream.writeBits(1, 1);
outStream.writeBits(1, 0);
outStream.writeBits(3, c.inCombat ? c.combatView : c.walkingQueue.getNextDirection());
} else {
outStream.writeBits(1, 0);
}
}
for(Connection c : newPlayersInArea) {
if(c.appearanceUpdateRequired || firstUpdateRequired) {
outStream.writeBits(11, c.playerId);
int xOffset = c.getCurrentPos().getX() - getCurrentPos().getX();
int yOffset = c.getCurrentPos().getY() - getCurrentPos().getY();
outStream.writeBits(5, xOffset < 0 ? xOffset + 32 : xOffset);
outStream.writeBits(5, yOffset < 0 ? yOffset + 32 : yOffset);
outStream.writeBits(4, c.inCombat ? c.combatView : c.walkingQueue.getNextDirection());
outStream.writeBits(1, 0);
}
}
outStream.finishBitAccess();
outStream.sendPacket();
}