mirror of
https://github.com/ACEmulator/ACE
synced 2026-08-17 12:26:06 -04:00
* Fixing bug with monsters running away from players * Improving motion interpreter and move to manager * Fixing rotating monsters * Disabling initial physics updates again, to avoid some performance issues with lag in the dires/caul
95 lines
4.2 KiB
C#
95 lines
4.2 KiB
C#
using System;
|
|
|
|
namespace ACE.Server.Physics.Animation
|
|
{
|
|
[Flags]
|
|
public enum MovementParamFlags: uint
|
|
{
|
|
CanWalk = 0x00001,
|
|
CanRun = 0x00002,
|
|
CanSidestep = 0x00004,
|
|
CanWalkBackwards = 0x00008,
|
|
CanCharge = 0x00010,
|
|
FailWalk = 0x00020,
|
|
UseFinalHeading = 0x00040,
|
|
Sticky = 0x00080,
|
|
MoveAway = 0x00100,
|
|
MoveTowards = 0x00200,
|
|
UseSpheres = 0x00400,
|
|
SetHoldKey = 0x00800,
|
|
Autonomous = 0x01000,
|
|
ModifyRawState = 0x02000,
|
|
ModifyInterpretedState = 0x04000,
|
|
CancelMoveTo = 0x08000,
|
|
StopCompletely = 0x10000,
|
|
DisableJumpDuringLink = 0x20000,
|
|
}
|
|
|
|
public static class MovementParamFlagsHelper
|
|
{
|
|
public static MovementParamFlags Get(MovementParameters mvp)
|
|
{
|
|
var flags = new MovementParamFlags();
|
|
if (mvp.CanWalk)
|
|
flags |= MovementParamFlags.CanWalk;
|
|
if (mvp.CanRun)
|
|
flags |= MovementParamFlags.CanRun;
|
|
if (mvp.CanSidestep)
|
|
flags |= MovementParamFlags.CanSidestep;
|
|
if (mvp.CanWalkBackwards)
|
|
flags |= MovementParamFlags.CanWalkBackwards;
|
|
if (mvp.CanCharge)
|
|
flags |= MovementParamFlags.CanCharge;
|
|
if (mvp.FailWalk)
|
|
flags |= MovementParamFlags.FailWalk;
|
|
if (mvp.UseFinalHeading)
|
|
flags |= MovementParamFlags.UseFinalHeading;
|
|
if (mvp.Sticky)
|
|
flags |= MovementParamFlags.Sticky;
|
|
if (mvp.MoveAway)
|
|
flags |= MovementParamFlags.MoveAway;
|
|
if (mvp.MoveTowards)
|
|
flags |= MovementParamFlags.MoveTowards;
|
|
if (mvp.UseSpheres)
|
|
flags |= MovementParamFlags.UseSpheres;
|
|
if (mvp.SetHoldKey)
|
|
flags |= MovementParamFlags.SetHoldKey;
|
|
if (mvp.Autonomous)
|
|
flags |= MovementParamFlags.Autonomous;
|
|
if (mvp.ModifyRawState)
|
|
flags |= MovementParamFlags.ModifyRawState;
|
|
if (mvp.ModifyInterpretedState)
|
|
flags |= MovementParamFlags.ModifyInterpretedState;
|
|
if (mvp.CancelMoveTo)
|
|
flags |= MovementParamFlags.CancelMoveTo;
|
|
if (mvp.StopCompletely)
|
|
flags |= MovementParamFlags.StopCompletely;
|
|
if (mvp.DisableJumpDuringLink)
|
|
flags |= MovementParamFlags.DisableJumpDuringLink;
|
|
|
|
return flags;
|
|
}
|
|
|
|
public static void Set(MovementParameters mvp, MovementParamFlags flags)
|
|
{
|
|
mvp.CanWalk = flags.HasFlag(MovementParamFlags.CanWalk);
|
|
mvp.CanRun = flags.HasFlag(MovementParamFlags.CanRun);
|
|
mvp.CanSidestep = flags.HasFlag(MovementParamFlags.CanSidestep);
|
|
mvp.CanWalkBackwards = flags.HasFlag(MovementParamFlags.CanWalkBackwards);
|
|
mvp.CanCharge = flags.HasFlag(MovementParamFlags.CanCharge);
|
|
mvp.FailWalk = flags.HasFlag(MovementParamFlags.FailWalk);
|
|
mvp.UseFinalHeading = flags.HasFlag(MovementParamFlags.UseFinalHeading);
|
|
mvp.Sticky = flags.HasFlag(MovementParamFlags.Sticky);
|
|
mvp.MoveAway = flags.HasFlag(MovementParamFlags.MoveAway);
|
|
mvp.MoveTowards = flags.HasFlag(MovementParamFlags.MoveTowards);
|
|
mvp.UseSpheres = flags.HasFlag(MovementParamFlags.UseSpheres);
|
|
mvp.SetHoldKey = flags.HasFlag(MovementParamFlags.SetHoldKey);
|
|
mvp.Autonomous = flags.HasFlag(MovementParamFlags.Autonomous);
|
|
mvp.ModifyRawState = flags.HasFlag(MovementParamFlags.ModifyRawState);
|
|
mvp.ModifyInterpretedState = flags.HasFlag(MovementParamFlags.ModifyInterpretedState);
|
|
mvp.CancelMoveTo = flags.HasFlag(MovementParamFlags.CancelMoveTo);
|
|
mvp.StopCompletely = flags.HasFlag(MovementParamFlags.StopCompletely);
|
|
mvp.DisableJumpDuringLink = flags.HasFlag(MovementParamFlags.DisableJumpDuringLink);
|
|
}
|
|
}
|
|
}
|