Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define TURN_SPEED_MS_DEGREE 5.6333332 /2
- float ShouldTurn(vect loc, float follow_distance)
- {
- bool turn = true;
- int direction = 0;
- UpdatePlayerLoc();
- float desired_heading = GetDesiredHeading(loc);
- float heading = PlayerLoc.rot * 57.2957795;
- float correction = heading - desired_heading;
- if (GetDistanceVect(loc) < follow_distance)
- StopWalking();
- if (!CheckCombatFlag() && (GetTime()-iCombat) < 2000)
- return false;
- UpdatePlayer();
- if (!Player.currenthealth)
- //break;
- return 0;
- UpdatePlayerLoc();
- desired_heading = GetDesiredHeading(loc);
- heading = PlayerLoc.rot * 57.2957795;
- correction = heading - desired_heading;
- float right = 360;
- float left = 360;
- IsStuck();
- if (desired_heading < heading)
- {
- right = heading - desired_heading;
- left = 360 - heading + desired_heading;
- }
- else
- {
- left = desired_heading - heading;
- right = heading + 360 - desired_heading ;
- }
- float var = 0;
- if (left <= right)
- var = left;
- else
- var = right;
- if (var < atof(Config.GetVar("turn_tolerance")))
- {
- turn = false;
- StopTurning();
- return desired_heading;
- }
- if (left <= right)
- {
- var = left;
- if (IsTurningRight())
- StopTurning();
- TurnLeft(var * TURN_SPEED_MS_DEGREE);
- }
- else
- {
- var = right;
- if (IsTurningLeft())
- StopTurning();
- TurnRight(var * TURN_SPEED_MS_DEGREE);
- }
- if (var > 45)
- {
- StopWalking();
- }
- return desired_heading;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement