Bunch of refactoring and walking, AI needs a ton of tweaking to use the new logic

This commit is contained in:
KimLS
2018-10-12 00:03:58 -07:00
parent 29ea65a71e
commit 1785120796
17 changed files with 787 additions and 474 deletions
+29 -5
View File
@@ -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;