diff --git a/src/org/apollo/net/release/r377/MouseClickedMessageDecoder.java b/src/org/apollo/net/release/r377/MouseClickedMessageDecoder.java new file mode 100644 index 00000000..5ee162ec --- /dev/null +++ b/src/org/apollo/net/release/r377/MouseClickedMessageDecoder.java @@ -0,0 +1,32 @@ +package org.apollo.net.release.r377; + +import org.apollo.game.message.impl.MouseClickedMessage; +import org.apollo.net.codec.game.DataType; +import org.apollo.net.codec.game.GamePacket; +import org.apollo.net.codec.game.GamePacketReader; +import org.apollo.net.release.MessageDecoder; + +/** + * A {@link org.apollo.net.release.MessageDecoder} for the {@link org.apollo.game.message.impl.MouseClickedMessage} + * + * @author Stuart + */ +public final class MouseClickedMessageDecoder extends MessageDecoder { + + @Override + public MouseClickedMessage decode(GamePacket packet) { + GamePacketReader reader = new GamePacketReader(packet); + int value = (int)reader.getUnsigned(DataType.INT); + + long delay = (value >> 20) * 50; + + boolean rightMouseButton = ((value >> 19) & 0x1) == 1; + + int cords = (value & 0x3FFFF); + int x = cords % 765; + int y = cords / 765; + + return new MouseClickedMessage(delay, rightMouseButton, x, y); + } + +} \ No newline at end of file diff --git a/src/org/apollo/net/release/r377/Release377.java b/src/org/apollo/net/release/r377/Release377.java index 75bccec9..f80d9d12 100644 --- a/src/org/apollo/net/release/r377/Release377.java +++ b/src/org/apollo/net/release/r377/Release377.java @@ -128,7 +128,8 @@ public final class Release377 extends Release { register(36, new MagicOnItemMessageDecoder()); register(187, new FocusUpdateMessageDecoder()); - register(19, new FlaggedMouseEventMessageDecoder()); + register(19, new MouseClickedMessageDecoder()); + register(171, new FlaggedMouseEventMessageDecoder()); register(140, new ArrowKeyMessageDecoder()); register(176, new PrivacyOptionMessageDecoder());