package net.scapeemulator.game.msg.decoder.inter;
import java.io.IOException;
import net.scapeemulator.game.msg.MessageDecoder;
import net.scapeemulator.game.msg.impl.inter.InterfaceInputMessage;
import net.scapeemulator.game.net.game.DataOrder;
import net.scapeemulator.game.net.game.DataType;
import net.scapeemulator.game.net.game.GameFrame;
import net.scapeemulator.game.net.game.GameFrameReader;
/**
* Written by Hadyn Richard
*/
public final class InterfaceInputMessageDecoder extends MessageDecoder<InterfaceInputMessage> {
public InterfaceInputMessageDecoder() {
super(132);
}
@Override
public InterfaceInputMessage decode(GameFrame frame) throws IOException {
GameFrameReader reader = new GameFrameReader(frame);
int hash = (int) reader.getUnsigned(DataType.INT, DataOrder.MIDDLE);
int id = hash >> 16, componentId = hash & 0xffff;
int dynamicId = (int) reader.getSigned(DataType.SHORT, DataOrder.LITTLE);
return new InterfaceInputMessage(id, componentId, dynamicId);
}
}