mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-11-04 02:26:41 +00:00 
			
		
		
		
	Store path points in deque
This commit is contained in:
		
							parent
							
								
									925d909fea
								
							
						
					
					
						commit
						9b3756f8bc
					
				
					 3 changed files with 5 additions and 7 deletions
				
			
		| 
						 | 
					@ -148,8 +148,7 @@ bool MWMechanics::AiPackage::pathTo(const MWWorld::Ptr& actor, const osg::Vec3f&
 | 
				
			||||||
                if (destInLOS && mPathFinder.getPath().size() > 1)
 | 
					                if (destInLOS && mPathFinder.getPath().size() > 1)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    // get point just before dest
 | 
					                    // get point just before dest
 | 
				
			||||||
                    auto pPointBeforeDest = mPathFinder.getPath().rbegin();
 | 
					                    auto pPointBeforeDest = mPathFinder.getPath().rbegin() + 1;
 | 
				
			||||||
                    ++pPointBeforeDest;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    // if start point is closer to the target then last point of path (excluding target itself) then go straight on the target
 | 
					                    // if start point is closer to the target then last point of path (excluding target itself) then go straight on the target
 | 
				
			||||||
                    if (distance(start, dest) <= distance(dest, *pPointBeforeDest))
 | 
					                    if (distance(start, dest) <= distance(dest, *pPointBeforeDest))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -298,8 +298,7 @@ namespace MWMechanics
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                // if 2nd waypoint of new path == 1st waypoint of old,
 | 
					                // if 2nd waypoint of new path == 1st waypoint of old,
 | 
				
			||||||
                // delete 1st waypoint of new path.
 | 
					                // delete 1st waypoint of new path.
 | 
				
			||||||
                const auto iter = ++mPath.begin();
 | 
					                if (mPath[1] == oldStart)
 | 
				
			||||||
                if (*iter == oldStart)
 | 
					 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    mPath.pop_front();
 | 
					                    mPath.pop_front();
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
#ifndef GAME_MWMECHANICS_PATHFINDING_H
 | 
					#ifndef GAME_MWMECHANICS_PATHFINDING_H
 | 
				
			||||||
#define GAME_MWMECHANICS_PATHFINDING_H
 | 
					#define GAME_MWMECHANICS_PATHFINDING_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <list>
 | 
					#include <deque>
 | 
				
			||||||
#include <cassert>
 | 
					#include <cassert>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <components/esm/defs.hpp>
 | 
					#include <components/esm/defs.hpp>
 | 
				
			||||||
| 
						 | 
					@ -95,7 +95,7 @@ namespace MWMechanics
 | 
				
			||||||
                return mPath.size();
 | 
					                return mPath.size();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            const std::list<osg::Vec3f>& getPath() const
 | 
					            const std::deque<osg::Vec3f>& getPath() const
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                return mPath;
 | 
					                return mPath;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					@ -172,7 +172,7 @@ namespace MWMechanics
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        private:
 | 
					        private:
 | 
				
			||||||
            std::list<osg::Vec3f> mPath;
 | 
					            std::deque<osg::Vec3f> mPath;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            const ESM::Pathgrid *mPathgrid;
 | 
					            const ESM::Pathgrid *mPathgrid;
 | 
				
			||||||
            const MWWorld::CellStore* mCell;
 | 
					            const MWWorld::CellStore* mCell;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue