]> git.jsancho.org Git - lugaru.git/commitdiff
Friends always follow the player
authorJavier Sancho <jsf@jsancho.org>
Tue, 20 Feb 2018 15:53:52 +0000 (16:53 +0100)
committerJavier Sancho <jsf@jsancho.org>
Tue, 20 Feb 2018 15:53:52 +0000 (16:53 +0100)
Source/Objects/Person.cpp

index 2a4d4ae1b9f4e1f320394c3d63547b4e84b426bb..52c8fc466975df0dac947d754adbe708fa30aae8 100644 (file)
@@ -8362,6 +8362,7 @@ void Person::doAI()
                 }
             }
         }
+
         //stunned
         if (aitype == passivetype && !(numwaypoints > 1) ||
             stunned > 0 ||
@@ -8380,6 +8381,27 @@ void Person::doAI()
             throwkeydown = 0;
         }
 
+        // friends follow player
+        if (stunned < 1 &&
+            isPlayerFriend() &&
+            !Person::players[0]->dead &&
+            distsq(&coords, &Person::players[0]->coords) > 5) {
+            XYZ rotatetarget = Person::players[0]->coords + Person::players[0]->velocity;
+            XYZ targetpoint = Person::players[0]->coords;
+            velocity = (targetpoint - coords);
+            velocity.y += 2;
+            float vellength = findLength(&velocity);
+            if (vellength != 0 &&
+                distsq(&Person::players[0]->coords, &coords) < distsq(&rotatetarget, &coords)) {
+                targetpoint += Person::players[0]->velocity *
+                               findDistance(&Person::players[0]->coords, &coords) / vellength;
+            }
+            targetyaw = roughDirectionTo(coords, targetpoint);
+            lookyaw = targetyaw;
+            forwardkeydown = 1;
+            aitype = searchtype;
+        }
+
         XYZ facing;
         facing = 0;
         facing.z = -1;