/* * This file is part of the OdinMS MapleStory Private Server * Copyright (C) 2012 Patrick Huy and Matthias Butz * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package server.movement; import java.awt.Point; import tools.data.MaplePacketLittleEndianWriter; public class AbsoluteLifeMovement extends AbstractLifeMovement { private Point pixelsPerSecond, offset; private short unk, fh; public AbsoluteLifeMovement(int type, Point position, int duration, int newstate) { super(type, position, duration, newstate); } public void setPixelsPerSecond(Point wobble) { this.pixelsPerSecond = wobble; } public void setOffset(Point wobble) { this.offset = wobble; } public void setFh(short fh) { this.fh = fh; } public void setUnk(short unk) { this.unk = unk; } public short getUnk() { return unk; } public void defaulted() { unk = 0; fh = 0; pixelsPerSecond = new Point(0, 0); offset = new Point(0, 0); } @Override public void serialize(MaplePacketLittleEndianWriter lew) { lew.write(getType()); lew.writePos(getPosition()); lew.writePos(pixelsPerSecond); lew.writeShort(unk); if (getType() == 14) { lew.writeShort(fh); } if (getType() != 44) { lew.writePos(offset); } lew.write(getNewstate()); lew.writeShort(getDuration()); } }