Breadth path list overflow

Tutorials and discussions about Mapping - Introduce your own ones!
Post Reply
User avatar
Barbie
Godlike
Posts: 2802
Joined: Fri Sep 25, 2015 9:01 pm
Location: moved without proper hashing

Breadth path list overflow

Post by Barbie »

Recently I noticed the message "Breadth path list overflow from InventorySpot48" in the log file. Does it have any relevance?
InventorySpot48 as T3D

Code: Select all

Begin Actor Class=InventorySpot Name=InventorySpot48
    markedItem=Health'MyLevel.Health18'
    upstreamPaths(0)=130
    Paths(0)=2765
    PrunedPaths(0)=2771
    PrunedPaths(1)=2766
    PrunedPaths(2)=2768
    PrunedPaths(3)=2767
    PrunedPaths(4)=2769
    PrunedPaths(5)=2764
    PrunedPaths(6)=2770
    visitedWeight=10000000
    bestPathWeight=134
    nextNavigationPoint=InventorySpot'MyLevel.InventorySpot47'
    previousPath=PathNode'MyLevel.PathNode70'
    Level=LevelInfo'MyLevel.LevelInfo0'
    Tag=InventorySpot
    Region=(Zone=ZoneInfo'MyLevel.ZoneInfo7',iLeaf=862,ZoneNumber=14)
    Location=(X=-7.100012,Y=-72.899994,Z=-347.000000)
    OldLocation=(X=-7.100012,Y=-72.899994,Z=-347.000000)
    Name=InventorySpot48
End Actor
"Multiple exclamation marks," he went on, shaking his head, "are a sure sign of a diseased mind." --Terry Pratchett
User avatar
sektor2111
Godlike
Posts: 6410
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Breadth path list overflow

Post by sektor2111 »

UnRoute
Spoiler

Code: Select all

//debugf(" start at %s with %d to place %s with %d",nextnode->GetName(),nextnode->visitedWeight, startnode->GetName(), startnode->visitedWeight);
							int numList = 0; //TEMP FIXME
							while ( nextnode->nextOrdered && (nextnode->nextOrdered->visitedWeight < startnode->visitedWeight) )
							{
								numList++;
								if ( numList > 500 )
								{
									debugf( TEXT("Breadth path list overflow from %s"), start->GetName() );
									return 0;
								}
								nextnode = nextnode->nextOrdered;
							}
It does a rejection in that moment for seeker exactly like that problem with 1000 Nodes - "return 0" (aka None).
Here for me is a bit of fog as long as I don't understand every operator there.
User avatar
Barbie
Godlike
Posts: 2802
Joined: Fri Sep 25, 2015 9:01 pm
Location: moved without proper hashing

Re: Breadth path list overflow

Post by Barbie »

Where have you dug out that piece of code? ;o) That loop searches for a NavigationPoint that has an equal or bigger "visitedWeight" than the current NavigationPoint. If such cannot be found within 500 loops, the function issues the message and exists.

But I have no knowledge how the routing network is created nor how it its processed in run time.
"Multiple exclamation marks," he went on, shaking his head, "are a sure sign of a diseased mind." --Terry Pratchett
User avatar
sektor2111
Godlike
Posts: 6410
Joined: Sun May 09, 2010 6:15 pm
Location: On the roof.

Re: Breadth path list overflow

Post by sektor2111 »

Clowns were using even a "Counter" for clocking like in XC_Core but I don't have any clue why the heck they have removed clocking system and not bringing it in UScript Side for coders related to performance testing. So to speak it was allowed only a limited number of cycles in purpose to not have lags, but... 200 pawns seekers are devastators, and I know the results... I was so "young"...
But because probably you could see more programming languages I might show you tiny things if you hit me on Skype... That code in normal conditions takes around 0.0003xx milliseconds and even more faster depending on machine speed...
I gotta admit I did not checked deeper if some Native is not available by chance forgotten to be shown in actor or somewhere else. My Problem is here:
Spoiler

Code: Select all

		if ( bSinglePath && ( n > 4) )
			return 0;
		if ( n > 1000 )
		{
			debugf(NAME_DevPath, TEXT("1000 navigation nodes searched from %s!"), start->GetName() );
			return 0;
		}
		//debugf("Done with %s",currentnode->GetName());
They predicted Terminator 3 but not I7 CPU systems which actually might go to 5000 without even to blink.

EDIT:
After checking a bit pathing possibilities, it looks like first area with Queen doesn't support navigation from any kind, only directly reachable targets can be found - DevPath went retarded again. I wouldn't be surprised about a crash, so geometry is "great" here... (if is about map FightOn)
Post Reply