PathFollower doesnt fully finish the route

Forum rules
Please construct and post a simple demo whenever possible for all bug reports. Please provide links to everything.

If you can include a wad demonstrating the problem, please do so. Bug reports that include fully-constructed demos have a much better chance of being investigated in a timely manner than those that don't.

Please make a new topic for every bug. Don't combine multiple bugs into a single topic. Thanks!

Post a reply

Smilies
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :geek: :ugeek: :!: :?: :idea: :arrow: :| :mrgreen: :3: :wub: >:( :blergh:
View more smilies

BBCode is ON
[img] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: PathFollower doesnt fully finish the route

Re: PathFollower doesnt fully finish the route

by Graf Zahl » Sun Nov 17, 2019 6:30 am

This needs to be thorougly tested with maps that use the feature. If the fix works, it should be added, but only if we are certain that nothing will break.

Re: PathFollower doesnt fully finish the route

by phantombeta » Sun Nov 17, 2019 6:28 am

Should this be closed as [Won't change] or [Can't fix]?

Re: PathFollower doesnt fully finish the route

by Graf Zahl » Sat Sep 07, 2019 1:37 am

Also, you can be dead certain that changing this after more than 15 years will break older maps.

Re: PathFollower doesnt fully finish the route

by _mental_ » Mon Aug 26, 2019 7:32 am

Could you post a sample to reproduce this bug?

PathFollower doesnt fully finish the route

by Xabis » Wed Aug 21, 2019 9:09 pm

Hello,

Looks like PathFollower doesnt fully finish the final step at the end of the route, leaving it at the previous tick's interpolation position and angle.

I fixed this in a local override for my project, but thought the dev team should be made aware.

My fix:

Code: Select all

if (Time > 1.) {
	Time -= 1.;
	bJustStepped = true;
	PrevNode = CurrNode;
	CurrNode = CurrNode.Next;
	if (CurrNode != null)
		NewNode();
	if (CurrNode == null || CurrNode.Next == null || (Options & MP_LINEAR) == 0 && CurrNode.Next.Next == null) {
		//Do final interpolation to bring follower to its true end
		Time = 1.;
		CurrNode = PrevNode;
		Interpolate();
		CurrNode = null;
		Deactivate(self);
	}
}

Top