mirror of
https://github.com/EQEmu/Server.git
synced 2026-09-04 22:56:37 +00:00
Bunch of refactoring and walking, AI needs a ton of tweaking to use the new logic
This commit is contained in:
@@ -5,8 +5,28 @@ class Mob;
|
||||
class Client;
|
||||
|
||||
struct RotateCommand;
|
||||
struct MovementCommand;
|
||||
struct MobMovementEntry;
|
||||
struct PlayerPositionUpdateServer_Struct;
|
||||
|
||||
enum ClientRange : int
|
||||
{
|
||||
ClientRangeNone = 0,
|
||||
ClientRangeClose = 1,
|
||||
ClientRangeMedium = 2,
|
||||
ClientRangeCloseMedium = 3,
|
||||
ClientRangeLong = 4,
|
||||
ClientRangeCloseLong = 5,
|
||||
ClientRangeMediumLong = 6,
|
||||
ClientRangeAny = 7
|
||||
};
|
||||
|
||||
enum MobMovementMode : int
|
||||
{
|
||||
MovementWalking = 0,
|
||||
MovementRunning = 1
|
||||
};
|
||||
|
||||
class MobMovementManager
|
||||
{
|
||||
public:
|
||||
@@ -17,10 +37,12 @@ public:
|
||||
void AddClient(Client *c);
|
||||
void RemoveClient(Client *c);
|
||||
|
||||
void RotateTo(Mob *who, float to, float speed);
|
||||
void RotateTo(Mob *who, float to, MobMovementMode mode = MovementRunning);
|
||||
void Teleport(Mob *who, float x, float y, float z, float heading);
|
||||
void NavigateTo(Mob *who, float x, float y, float z, float speed);
|
||||
void NavigateTo(Mob *who, float x, float y, float z, bool force = false, MobMovementMode mode = MovementRunning);
|
||||
void StopNavigation(Mob *who);
|
||||
void SendCommandToClients(Mob *m, float dx, float dy, float dz, float dh, int anim, ClientRange range);
|
||||
float FixHeading(float in);
|
||||
//void Dump(Mob *m, Client *to);
|
||||
//void DumpStats(Client *to);
|
||||
//void ClearStats();
|
||||
@@ -35,10 +57,12 @@ private:
|
||||
MobMovementManager(const MobMovementManager&);
|
||||
MobMovementManager& operator=(const MobMovementManager&);
|
||||
|
||||
void ProcessRotateCommand(Mob *m, RotateCommand &cmd);
|
||||
void SendCommandToAllClients(Mob *m, float dx, float dy, float dz, float dh, int anim);
|
||||
void FillCommandStruct(PlayerPositionUpdateServer_Struct *spu, Mob *m, float dx, float dy, float dz, float dh, int anim);
|
||||
float FixHeading(float in);
|
||||
void UpdatePath(Mob *who, float x, float y, float z, MobMovementMode mode);
|
||||
void PushTeleportTo(MobMovementEntry &ent, float x, float y, float z, float heading);
|
||||
void PushMoveTo(MobMovementEntry &ent, float x, float y, float z, MobMovementMode mode);
|
||||
void PushRotateTo(MobMovementEntry &ent, Mob *who, float to, MobMovementMode mode);
|
||||
void PushStopMoving(MobMovementEntry &ent);
|
||||
|
||||
struct Implementation;
|
||||
std::unique_ptr<Implementation> _impl;
|
||||
|
||||
Reference in New Issue
Block a user