summaryrefslogtreecommitdiff
path: root/NET/worlds/network/roomChangeCmd.java
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-02-12 22:33:32 -0800
committerFuwn <[email protected]>2026-02-12 22:33:32 -0800
commitc7a9d4a6bd53ed7d61731770f2f10e8b9fd435f9 (patch)
treedf9f48bf128a6c0186a8e91857d6ff30fe0e9f18 /NET/worlds/network/roomChangeCmd.java
downloadworldsplayer-c7a9d4a6bd53ed7d61731770f2f10e8b9fd435f9.tar.xz
worldsplayer-c7a9d4a6bd53ed7d61731770f2f10e8b9fd435f9.zip
Initial commit
Diffstat (limited to 'NET/worlds/network/roomChangeCmd.java')
-rw-r--r--NET/worlds/network/roomChangeCmd.java77
1 files changed, 77 insertions, 0 deletions
diff --git a/NET/worlds/network/roomChangeCmd.java b/NET/worlds/network/roomChangeCmd.java
new file mode 100644
index 0000000..fa2d58c
--- /dev/null
+++ b/NET/worlds/network/roomChangeCmd.java
@@ -0,0 +1,77 @@
+package NET.worlds.network;
+
+import NET.worlds.scape.Drone;
+import NET.worlds.scape.Room;
+import java.io.IOException;
+
+public class roomChangeCmd extends receivedNetPacket {
+ public static final byte ROOMCHNGCMD = 5;
+ protected int _roomID;
+ protected short _x;
+ protected short _y;
+ protected short _z;
+ protected short _direction;
+
+ public roomChangeCmd() {
+ this._commandType = 5;
+ }
+
+ public roomChangeCmd(Room room, short x, short y, short z, short direction) {
+ super(null, 5);
+ this._roomID = room.getNetworkRoom().getRoomID();
+
+ assert this._roomID != 0;
+
+ this._x = x;
+ this._y = y;
+ this._z = z;
+ this._direction = direction;
+ }
+
+ @Override
+ void parseNetData(ServerInputStream data) throws IOException {
+ this._roomID = data.readUnsignedShort();
+ this._x = data.readShort();
+ this._y = data.readShort();
+ this._z = data.readShort();
+ this._direction = data.readShort();
+ }
+
+ @Override
+ int packetSize() {
+ return 10 + super.packetSize();
+ }
+
+ @Override
+ void send(ServerOutputStream o) throws IOException {
+ super.send(o);
+ o.writeShort(this._roomID);
+ o.writeShort(this._x);
+ o.writeShort(this._y);
+ o.writeShort(this._z);
+ o.writeShort(this._direction);
+ }
+
+ @Override
+ void process(WorldServer _serv) throws Exception {
+ NetworkObject o = _serv.getObject(this._objID);
+ if (o instanceof Drone) {
+ assert this._roomID != 0;
+
+ Room newroom = null;
+ NetworkRoom netroom = _serv.getNetworkRoom(this._roomID);
+ if (netroom != null) {
+ newroom = netroom.getRoom();
+ }
+
+ this._direction = (short)(90 - this._direction);
+ this._direction = (short)(360 - this._direction);
+ ((Drone)o).roomChange(newroom, this._x, this._y, this._z, this._direction);
+ }
+ }
+
+ @Override
+ public String toString(WorldServer serv) {
+ return "ROOMCHNG " + this._objID.toString(serv) + " in " + this._roomID + " @ " + this._x + "," + this._y + "," + this._z + "," + this._direction;
+ }
+}