Преглед на файлове

Improved style of AIPlayer modifications.

Daniel Buckmaster преди 11 години
родител
ревизия
d315b1fa5a
променени са 2 файла, в които са добавени 28 реда и са изтрити 38 реда
  1. 23 27
      Engine/source/T3D/aiPlayer.cpp
  2. 5 11
      Engine/source/T3D/aiPlayer.h

+ 23 - 27
Engine/source/T3D/aiPlayer.cpp

@@ -104,7 +104,7 @@ AIPlayer::AIPlayer()
    mJump = None;
    mNavSize = Regular;
    mLinkTypes = LinkData(AllFlags);
-#endif // TORQUE_NAVIGATION_ENABLED
+#endif
 
    mIsAiControlled = true;
 }
@@ -145,20 +145,20 @@ void AIPlayer::initPersistFields()
 #ifdef TORQUE_NAVIGATION_ENABLED
    addGroup("Pathfinding");
 
-   addField("allowWalk", TypeBool, Offset(mLinkTypes.walk, AIPlayer),
-      "Allow the character to walk on dry land.");
-   addField("allowJump", TypeBool, Offset(mLinkTypes.jump, AIPlayer),
-      "Allow the character to use jump links.");
-   addField("allowDrop", TypeBool, Offset(mLinkTypes.drop, AIPlayer),
-      "Allow the character to use drop links.");
-   addField("allowSwim", TypeBool, Offset(mLinkTypes.swim, AIPlayer),
-      "Allow the character tomove in water.");
-   addField("allowLedge", TypeBool, Offset(mLinkTypes.ledge, AIPlayer),
-      "Allow the character to jump ledges.");
-   addField("allowClimb", TypeBool, Offset(mLinkTypes.climb, AIPlayer),
-      "Allow the character to use climb links.");
-   addField("allowTeleport", TypeBool, Offset(mLinkTypes.teleport, AIPlayer),
-      "Allow the character to use teleporters.");
+      addField("allowWalk", TypeBool, Offset(mLinkTypes.walk, AIPlayer),
+         "Allow the character to walk on dry land.");
+      addField("allowJump", TypeBool, Offset(mLinkTypes.jump, AIPlayer),
+         "Allow the character to use jump links.");
+      addField("allowDrop", TypeBool, Offset(mLinkTypes.drop, AIPlayer),
+         "Allow the character to use drop links.");
+      addField("allowSwim", TypeBool, Offset(mLinkTypes.swim, AIPlayer),
+         "Allow the character tomove in water.");
+      addField("allowLedge", TypeBool, Offset(mLinkTypes.ledge, AIPlayer),
+         "Allow the character to jump ledges.");
+      addField("allowClimb", TypeBool, Offset(mLinkTypes.climb, AIPlayer),
+         "Allow the character to use climb links.");
+      addField("allowTeleport", TypeBool, Offset(mLinkTypes.teleport, AIPlayer),
+         "Allow the character to use teleporters.");
 
    endGroup("Pathfinding");
 #endif // TORQUE_NAVIGATION_ENABLED
@@ -179,15 +179,15 @@ bool AIPlayer::onAdd()
    return true;
 }
 
-#ifdef TORQUE_NAVIGATION_ENABLED
 void AIPlayer::onRemove()
 {
+#ifdef TORQUE_NAVIGATION_ENABLED
    clearPath();
    clearCover();
    clearFollow();
+#endif
    Parent::onRemove();
 }
-#endif // TORQUE_NAVIGATION_ENABLED
 
 /**
  * Sets the speed at which this AI moves
@@ -209,7 +209,7 @@ void AIPlayer::stopMove()
    clearPath();
    clearCover();
    clearFollow();
-#endif // TORQUE_NAVIGATION_ENABLED
+#endif
 }
 
 /**
@@ -408,11 +408,7 @@ bool AIPlayer::getAIMove(Move *movePtr)
       if (mFabs(xDiff) < mMoveTolerance && mFabs(yDiff) < mMoveTolerance) 
       {
          mMoveState = ModeStop;
-#ifdef TORQUE_NAVIGATION_ENABLED
          onReachDestination();
-#else
-         throwCallback("onReachDestination");
-#endif // TORQUE_NAVIGATION_ENABLED
       }
       else 
       {
@@ -481,11 +477,7 @@ bool AIPlayer::getAIMove(Move *movePtr)
                if ( mMoveState != ModeSlowing || locationDelta == 0 )
                {
                   mMoveState = ModeStuck;
-#ifdef TORQUE_NAVIGATION_ENABLED
                   onStuck();
-#else
-                  throwCallback("onMoveStuck");
-#endif // TORQUE_NAVIGATION_ENABLED
                }
             }
          }
@@ -558,7 +550,6 @@ void AIPlayer::throwCallback( const char *name )
    Con::executef(getDataBlock(), name, getIdString());
 }
 
-#ifdef TORQUE_NAVIGATION_ENABLED
 /**
  * Called when we get within mMoveTolerance of our destination set using
  * setMoveDestination(). Only fires the script callback if we are at the end
@@ -566,6 +557,7 @@ void AIPlayer::throwCallback( const char *name )
  */
 void AIPlayer::onReachDestination()
 {
+#ifdef TORQUE_NAVIGATION_ENABLED
    if(!mPathData.path.isNull())
    {
       if(mPathData.index == mPathData.path->size() - 1)
@@ -589,6 +581,7 @@ void AIPlayer::onReachDestination()
       }
    }
    else
+#endif
       throwCallback("onReachDestination");
 }
 
@@ -598,12 +591,15 @@ void AIPlayer::onReachDestination()
  */
 void AIPlayer::onStuck()
 {
+#ifdef TORQUE_NAVIGATION_ENABLED
    if(!mPathData.path.isNull())
       repath();
    else
+#endif
       throwCallback("onMoveStuck");
 }
 
+#ifdef TORQUE_NAVIGATION_ENABLED
 // --------------------------------------------------------------------------------------------
 // Pathfinding
 // --------------------------------------------------------------------------------------------

+ 5 - 11
Engine/source/T3D/aiPlayer.h

@@ -67,11 +67,6 @@ private:
    void throwCallback( const char *name );
 
 #ifdef TORQUE_NAVIGATION_ENABLED
-public:
-   /// Get cover we are moving to.
-   CoverPoint *getCover() { return mCoverData.cover; }
-
-private:
    /// Should we jump?
    enum JumpStates {
       None,  ///< No, don't jump.
@@ -109,9 +104,7 @@ private:
       /// Pointer to a cover point.
       SimObjectPtr<CoverPoint> cover;
       /// Default constructor.
-      CoverData() : cover(NULL)
-      {
-      }
+      CoverData() : cover(NULL) {}
    };
 
    /// Current cover we're trying to get to.
@@ -144,11 +137,11 @@ private:
 
    /// Move to the specified node in the current path.
    void moveToNode(S32 node);
+#endif // TORQUE_NAVIGATION_ENABLED
 
 protected:
    virtual void onReachDestination();
    virtual void onStuck();
-#endif // TORQUE_NAVIGATION_ENABLED
 
 public:
    DECLARE_CONOBJECT( AIPlayer );
@@ -159,9 +152,7 @@ public:
    static void initPersistFields();
 
    bool onAdd();
-#ifdef TORQUE_NAVIGATION_ENABLED
    void onRemove();
-#endif // TORQUE_NAVIGATION_ENABLED
 
    virtual bool getAIMove( Move *move );
 
@@ -210,6 +201,9 @@ public:
    void updateNavMesh();
    NavMesh *getNavMesh() const { return mNavMesh; }
 
+   /// Get cover we are moving to.
+   CoverPoint *getCover() { return mCoverData.cover; }
+
    /// Types of link we can use.
    LinkData mLinkTypes;