// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ . // ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌· // ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀ // ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌ // ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀ // Magicbane Emulator Project © 2013 - 2022 // www.magicbane.com package engine.net.client.msg; import engine.Enum.GameObjectType; import engine.net.AbstractConnection; import engine.net.ByteBufferReader; import engine.net.ByteBufferWriter; import engine.net.client.Protocol; import engine.objects.AbstractCharacter; import engine.objects.PlayerCharacter; public class UpdateStateMsg extends ClientNetMsg { private int charType; private int charUUID; private int activity; //1 dead,2 unconscious, 3 Sleeping, 4 resting,5 casting,6 IDLE,7 casting? , 8 nothing 9 unknown, private int speed; // 1 low, 2 high (walk,run) private int aware; // 1 low, 2 high (combat off,combat on) private int mode; // 0 unknown, 1 water, 2 ground, 3 flight. private int fighting; // 1 disengaged, 2 engaged. private int headlights; // LFGroup/LFGuild/Recruiting Icons /** * This is the general purpose constructor. */ public UpdateStateMsg() { super(Protocol.UPDATESTATE); this.fighting = 1; this.headlights = 0; } public UpdateStateMsg(AbstractCharacter ac) { super(Protocol.UPDATESTATE); this.fighting = 1; this.headlights = 0; setPlayer(ac); } /** * This constructor is used by NetMsgFactory. It attempts to deserialize the * ByteBuffer into a message. If a BufferUnderflow occurs (based on reading * past the limit) then this constructor Throws that Exception to the * caller. */ public UpdateStateMsg(AbstractConnection origin, ByteBufferReader reader) { super(Protocol.UPDATESTATE, origin, reader); } /** * Serializes the subclass specific items to the supplied NetMsgWriter. */ @Override protected void _serialize(ByteBufferWriter writer) { writer.putInt(this.charType); writer.putInt(this.charUUID); writer.putInt(this.activity); writer.putInt(this.speed); writer.putInt(this.aware); writer.putInt(this.mode); writer.putInt(this.fighting); writer.putInt(this.headlights); } /** * Deserializes the subclass specific items from the supplied NetMsgReader. */ @Override protected void _deserialize(ByteBufferReader reader) { this.charType = reader.getInt(); this.charUUID = reader.getInt(); this.activity = reader.getInt(); this.speed = reader.getInt(); this.aware = reader.getInt(); this.mode = reader.getInt(); this.fighting = reader.getInt(); this.headlights = reader.getInt(); } /** * Sets this Msg's charUUID, sitStand, walkRun and combatToggle parameters * based on supplied AbstractCharacter * * @param ac */ public final void setPlayer(AbstractCharacter ac) { PlayerCharacter player; this.charType = ac.getObjectType().ordinal(); this.charUUID = ac.getObjectUUID(); this.activity = ac.getIsSittingAsInt(); this.speed = ac.getIsWalkingAsInt(); this.aware = ac.getIsCombatAsInt(); if (ac.getObjectType() == GameObjectType.PlayerCharacter) { player = (PlayerCharacter) ac; this.headlights = player.getHeadlightsAsInt(); } else this.headlights = 0; this.mode = ac.getIsFlightAsInt(); } /** * @return the charUUID */ public int getPlayerUUID() { return charUUID; } /** * @return the sitStand */ public int getActivity() { return activity; } /** * @param activity the sitStand to set */ public void setActivity(int activity) { this.activity = activity; } /** * @return the walkRun */ public int getSpeed() { return speed; } /** * @param speed the walkRun to set */ public void setSpeed(int speed) { this.speed = speed; } /** * @return the combatToggle */ public int getAware() { return aware; } /** * @param aware the combatToggle to set */ public void setAware(int aware) { this.aware = aware; } /** * @return the unknown01 */ public int getMode() { return mode; } /** * @param mode the unknown01 to set */ public void setMode(int mode) { this.mode = mode; } /** * @return the unknown02 */ public int getFighting() { return fighting; } /** * @param fighting the unknown02 to set */ public void setFighting(int fighting) { this.fighting = fighting; } /** * @return the unknown03 */ public int getHeadlights() { return headlights; } /** * @param headlights the headlights to set */ public void setHeadlights(int headlights) { this.headlights = headlights; } }