/// <summary> /// Update move type /// </summary> /// <param name="moveType">new move type</param> public void updateMoveType(byte moveType) { predictionTime = DateTime.Now; /* * NV: Would be nice to have all other possible values filled out for this at some point... *Looks at Suiv* * More specifically, 10, 13 and 22 - 10 and 13 seem to be tied to spinning with mouse. 22 seems random (ping mabe?) * Also TODO: Tie this with CurrentMovementMode stat and persistance (ie, log off walking, log back on and still walking) * Values of CurrentMovementMode and their effects: 0: slow moving feet not animating 1: rooted cant sit 2: walk 3: run 4: swim 5: crawl 6: sneak 7: flying 8: sitting 9: rooted can sit 10: same as 0 11: sleeping 12: lounging 13: same as 0 14: same as 0 15: same as 0 16: same as 0 */ switch (moveType) { case 1: // Forward Start moveDirection = MoveDirection.Forwards; break; case 2: // Forward Stop moveDirection = MoveDirection.None; break; case 3: // Reverse Start moveDirection = MoveDirection.Backwards; break; case 4: // Reverse Stop moveDirection = MoveDirection.None; break; case 5: // Strafe Right Start strafeDirection = SpinOrStrafeDirection.Right; break; case 6: // Strafe Stop (Right) strafeDirection = SpinOrStrafeDirection.None; break; case 7: // Strafe Left Start strafeDirection = SpinOrStrafeDirection.Left; break; case 8: // Strafe Stop (Left) strafeDirection = SpinOrStrafeDirection.None; break; case 9: // Turn Right Start spinDirection = SpinOrStrafeDirection.Right; break; case 10: // Mouse Turn Right Start break; case 11: // Turn Stop (Right) spinDirection = SpinOrStrafeDirection.None; break; case 12: // Turn Left Start spinDirection = SpinOrStrafeDirection.Left; break; case 13: // Mouse Turn Left Start break; case 14: // Turn Stop (Left) spinDirection = SpinOrStrafeDirection.None; break; case 15: // Jump Start // NV: TODO: This! break; case 16: // Jump Stop break; case 17: // Elevate Up Start break; case 18: // Elevate Up Stop break; case 19: // ? 19 = 20 = 22 = 31 = 32 break; case 20: // ? 19 = 20 = 22 = 31 = 32 break; case 21: // Full Stop break; case 22: // ? 19 = 20 = 22 = 31 = 32 break; case 23: // Switch To Frozen Mode break; case 24: // Switch To Walk Mode moveMode = MoveMode.Walk; break; case 25: // Switch To Run Mode moveMode = MoveMode.Run; break; case 26: // Switch To Swim Mode break; case 27: // Switch To Crawl Mode prevMoveMode = moveMode; moveMode = MoveMode.Crawl; break; case 28: // Switch To Sneak Mode prevMoveMode = moveMode; moveMode = MoveMode.Sneak; break; case 29: // Switch To Fly Mode break; case 30: // Switch To Sit Ground Mode prevMoveMode = moveMode; moveMode = MoveMode.Sit; Stats.NanoDelta.CalcTrickle(); Stats.HealDelta.CalcTrickle(); Stats.NanoInterval.CalcTrickle(); Stats.HealInterval.CalcTrickle(); break; case 31: // ? 19 = 20 = 22 = 31 = 32 break; case 32: // ? 19 = 20 = 22 = 31 = 32 break; case 33: // Switch To Sleep Mode moveMode = MoveMode.Sleep; break; case 34: // Switch To Lounge Mode moveMode = MoveMode.Lounge; break; case 35: // Leave Swim Mode break; case 36: // Leave Sneak Mode moveMode = prevMoveMode; break; case 37: // Leave Sit Mode moveMode = prevMoveMode; Stats.NanoDelta.CalcTrickle(); Stats.HealDelta.CalcTrickle(); Stats.NanoInterval.CalcTrickle(); Stats.HealInterval.CalcTrickle(); break; case 38: // Leave Frozen Mode break; case 39: // Leave Fly Mode break; case 40: // Leave Crawl Mode moveMode = prevMoveMode; break; case 41: // Leave Sleep Mode break; case 42: // Leave Lounge Mode break; default: //Console.WriteLine("Unknown MoveType: " + moveType); break; } //Console.WriteLine((moveDirection != 0 ? moveMode.ToString() : "Stand") + "ing in the direction " + moveDirection.ToString() + (spinDirection != 0 ? " while spinning " + spinDirection.ToString() : "") + (strafeDirection != 0 ? " and strafing " + strafeDirection.ToString() : "")); }
public MoveMode prevMoveMode = MoveMode.Run; // Run should be an appropriate default for now /// <summary> /// Stop movement (before teleporting for example) /// </summary> public void stopMovement() { // This should be used to stop the interpolating and save last interpolated value of movement before teleporting rawCoord = Coordinates; rawHeading = Heading; spinDirection = SpinOrStrafeDirection.None; strafeDirection = SpinOrStrafeDirection.None; moveDirection = MoveDirection.None; }