X-Git-Url: https://git.jsancho.org/?p=lugaru.git;a=blobdiff_plain;f=Source%2FObjects%2FPerson.cpp;fp=Source%2FObjects%2FPerson.cpp;h=52c8fc466975df0dac947d754adbe708fa30aae8;hp=2a4d4ae1b9f4e1f320394c3d63547b4e84b426bb;hb=741d22aa77b9d20c67ccda3285235c71f988cfe6;hpb=b156744d80db4f6ff49391edb09e919fb30f8a9b diff --git a/Source/Objects/Person.cpp b/Source/Objects/Person.cpp index 2a4d4ae..52c8fc4 100644 --- a/Source/Objects/Person.cpp +++ b/Source/Objects/Person.cpp @@ -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;