1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-15 21:49:56 +00:00
Commit graph

99 commits

Author SHA1 Message Date
elsid
4d868bec92
Use osg::Vec3f to store path nodes in Pathfinder 2018-10-13 22:16:20 +03:00
Andrei Kortunov
e06f0b797a Replace all NULLs to nullptr 2018-10-09 10:21:12 +04:00
Andrei Kortunov
75835c8326 Prevent NPC from chosing farther pathgrid node 2018-07-29 18:18:05 +04:00
tri4ng1e
d310d36ea3
[Fix] Some PVS-Studio and cppcheck fixes 2018-04-18 12:36:10 +00:00
tri4ng1e
d4d1703bcf
Some PVS-Studio and cppcheck fixes
cppcheck:
[apps/esmtool/record.cpp:697]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[apps/esmtool/record.cpp:1126]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[apps/esmtool/record.cpp:1138]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[apps/niftest/niftest.cpp:36]: (performance) Function parameter 'filename' should be passed by reference.
[apps/niftest/niftest.cpp:41]: (performance) Function parameter 'filename' should be passed by reference.
[apps/opencs/model/prefs/boolsetting.cpp:25]: (warning) Possible leak in public function. The pointer 'mWidget' is not deallocated before it is allocated.
[apps/opencs/model/prefs/shortcuteventhandler.cpp:52]: (warning) Return value of std::remove() ignored. Elements remain in container.
[apps/openmw/mwstate/quicksavemanager.cpp:5]: (performance) Variable 'mSaveName' is assigned in constructor body. Consider performing initialization in initialization list.

PVS-Studio:
apps/opencs/model/filter/parser.cpp  582  warn  V560 A part of conditional expression is always true: allowPredefined.
apps/opencs/view/world/referencecreator.cpp  67  warn  V547 Expression '!errors.empty()' is always false.
apps/opencs/view/world/referencecreator.cpp  74  warn  V547 Expression '!errors.empty()' is always false.
apps/opencs/view/doc/loader.cpp  170  warn  V560 A part of conditional expression is always true: !completed.
apps/opencs/view/doc/loader.cpp  170  warn  V560 A part of conditional expression is always true: !error.empty().
apps/opencs/model/tools/pathgridcheck.cpp  32  err  V517 The use of 'if (A) {...} else if (A) {...}' pattern was detected. There is a probability of logical error presence. Check lines: 32, 34.
apps/opencs/model/world/refidadapterimp.cpp  1376  err  V547 Expression 'subColIndex < 3' is always true.

apps/openmw/mwgui/widgets.hpp  318  warn  V703 It is odd that the 'mEnableRepeat' field in derived class 'MWScrollBar' overwrites field in base class 'ScrollBar'. Check lines: widgets.hpp:318, MyGUI_ScrollBar.h:179.
apps/openmw/mwgui/widgets.hpp  319  warn  V703 It is odd that the 'mRepeatTriggerTime' field in derived class 'MWScrollBar' overwrites field in base class 'ScrollBar'. Check lines: widgets.hpp:319, MyGUI_ScrollBar.h:180.
apps/openmw/mwgui/widgets.hpp  320  warn  V703 It is odd that the 'mRepeatStepTime' field in derived class 'MWScrollBar' overwrites field in base class 'ScrollBar'. Check lines: widgets.hpp:320, MyGUI_ScrollBar.h:181
apps/openmw/mwmechanics/actors.cpp  1425  warn  V547 Expression '!detected' is always true.
apps/openmw/mwmechanics/character.cpp  2155  err  V547 Expression 'mode == 0' is always true.
apps/openmw/mwmechanics/character.cpp  1192  warn  V592 The expression was enclosed by parentheses twice: ((expression)). One pair of parentheses is unnecessary or misprint is present.
apps/openmw/mwmechanics/character.cpp  521  warn  V560 A part of conditional expression is always true: (idle == mIdleState).
apps/openmw/mwmechanics/pathfinding.cpp  317  err  V547 Expression 'mPath.size() >= 2' is always true.
apps/openmw/mwscript/interpretercontext.cpp  409  warn  V560 A part of conditional expression is always false: rank > 9.
apps/openmw/mwgui/windowbase.cpp  28  warn  V560 A part of conditional expression is always true: !visible.
apps/openmw/mwgui/journalwindow.cpp  561  warn  V547 Expression '!mAllQuests' is always false.
apps/openmw/mwgui/referenceinterface.cpp  18  warn  V571 Recurring check. The '!mPtr.isEmpty()' condition was already verified in line 16.
apps/openmw/mwworld/scene.cpp  463  warn  V547 Expression 'adjustPlayerPos' is always true.
apps/openmw/mwworld/worldimp.cpp  409  err  V766 An item with the same key '"sCompanionShare"' has already been added.
apps/openmw/mwworld/cellstore.cpp  691  warn  V519 The 'state.mWaterLevel' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 689, 691.
apps/openmw/mwworld/weather.cpp  1125  warn  V519 The 'mResult.mParticleEffect' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1123, 1125.
apps/openmw/mwworld/weather.cpp  1137  warn  V519 The 'mResult.mParticleEffect' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1135, 1137.

apps/wizard/unshield/unshieldworker.cpp  475  warn  V728 An excessive check can be simplified. The '(A && B) || (!A && !B)' expression is equivalent to the 'bool(A) == bool(B)' expression.
apps/wizard/installationpage.cpp  163  warn  V735 Possibly an incorrect HTML. The "</p" closing tag was encountered, while the "</span" tag was expected.

components/fontloader/fontloader.cpp  427  err  V547 Expression 'i == 1' is always true.
components/nifosg/nifloader.cpp  282  warn  V519 The 'created' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 278, 282.
components/esm/loadregn.cpp  119  err  V586 The 'clear' function is called twice for deallocation of the same resource. Check lines: 112, 119.
components/esm/cellref.cpp  178  warn  V581 The conditional expressions of the 'if' statements situated alongside each other are identical. Check lines: 175, 178.
components/esmterrain/storage.cpp  235  warn  V560 A part of conditional expression is always true: colStart == 0.
components/esmterrain/storage.cpp  237  warn  V560 A part of conditional expression is always true: rowStart == 0.
2018-04-18 12:36:10 +00:00
scrawl
c50b18b3bb
Move PathgridGraph out of CellStore
By definition this is not 'Mutable state of a cell' and does not belong in CellStore.

This change should improve startup times (graph is now loaded on demand) and edits to 'pathgrid.hpp' no longer cause the entirety of OpenMW to be rebuilt.
2017-11-27 21:20:31 +00:00
Allofich
ff3e307059 Pass parameters by const reference 2017-04-20 23:47:03 +09:00
Leon Krieg
739cd5ba45 Fixed more spelling mistakes 2016-12-15 13:09:40 +01:00
mrcheko
aa441f2648 AiPackage: fix path recalc on cell change
AiTravel: remove unneeded code
2016-09-06 01:11:10 +03:00
mrcheko
0775ed75ea fix zero div in getXAngleToDir 2016-09-03 17:50:06 +03:00
mrcheko
612c7f1a2f Revert "Revert "Merge pull request #993 from mrcheko/pathfinding""
This reverts commit 3732979eec.
2016-08-19 22:15:26 +03:00
scrawl
3732979eec Revert "Merge pull request #993 from mrcheko/pathfinding"
This reverts commit 5190275b37, reversing
changes made to d7845012bf.
2016-08-14 18:04:33 +02:00
mrcheko
59a1a6d117 checkWayIsClear: remove PATHFIND_CAUTION_DIST check 2016-07-16 19:07:48 +03:00
mrcheko
05794505c8 travis build fix 2016-07-10 17:25:50 +03:00
mrcheko
d2fe6fe857 Merge remote-tracking branch 'refs/remotes/origin/master' into pathfinding
# Conflicts:
#	apps/openmw/mwmechanics/aiactivate.cpp
#	apps/openmw/mwmechanics/aicombat.cpp
#	apps/openmw/mwmechanics/aicombat.hpp
#	apps/openmw/mwmechanics/aifollow.cpp
#	apps/openmw/mwmechanics/aipackage.cpp
#	apps/openmw/mwmechanics/aipackage.hpp
#	apps/openmw/mwmechanics/aiwander.cpp
#	apps/openmw/mwmechanics/aiwander.hpp
2016-07-09 22:59:54 +03:00
Allofich
b1be3596dc Cleanup of #include statements 2016-06-18 10:56:28 +09:00
Austin Salgat
38f5a225ea Refactor PathFinder functions to be useable by AiWander
This avoids having to duplicate the distanceSquared and getClosestPoint functions.
2016-04-10 20:44:08 -05:00
mrcheko
d7d5cc6689 Merge remote-tracking branch 'upstream/master' into pathfinding
Conflicts:
	apps/openmw/mwmechanics/aicombat.cpp
	apps/openmw/mwmechanics/aifollow.cpp
	apps/openmw/mwmechanics/aipackage.cpp
	apps/openmw/mwmechanics/aipackage.hpp
	apps/openmw/mwmechanics/aiwander.cpp
	apps/openmw/mwmechanics/pathfinding.hpp

Ogre::Vector3->osg::Vec3f; REACTION_INTERVAL->AI_REACTION_TIME; MakeOgreVec3->MakeOsgVec3
2015-12-29 19:15:40 +03:00
dteviot
5369d20682 Moved pathfinding logic from AiCombat to Pathfinding. 2015-09-19 15:34:02 +12:00
dteviot
8e2fe1985d Fixed errors pointed out by Zini.
1. Removed "Actor" from name of function  isActorNearInactiveCell().
2. Corrected case of CoordinateConverter member function names.
2015-09-12 14:17:46 +12:00
dteviot
39c2ba8efe Pathfinding bugfix.
Observed at Ebonheart (coe 1, -13).  Especially at the western tower. Guards try to walk though tower door.
Cause: buildPath() adds destination (even when unreachable) when only using single node from pathgrid.
2015-08-30 16:12:51 +12:00
dteviot
5dd0ad6841 Fixed rest of travis errors. 2015-08-21 22:41:31 +12:00
dteviot
85bc41dedb replaced FLT_MAX with numeric_limits. 2015-08-21 19:34:28 +12:00
dteviot
3b231b85bb removed incorrect optimization.
Now it fixes #2871
2015-08-21 06:55:54 +12:00
dteviot
c0d3804b4f Correctly handle disjoint pathgrid (Fixes #2871)
Bugfix:
When
1. Cell has multiple subgrids  (i.e. path grid is disjoint)
2. Distance between destination and pathgrid point 0 is less than distance to points of subgrid closest to start point
Then getClosestReachablePoint() returns pathgrid point 0 as the end point.
This is invalid, this end point cannot be reached from the start point.
2015-08-20 21:50:58 +12:00
scrawl
dca08b0b42 Remove a firing assert (Fixes #2871) 2015-08-18 14:51:32 +02:00
dteviot
4d9d8a060d Pathing bugfix.
When path contains one one point from path grid, point is no longer being discarded.
2015-08-16 18:56:28 +12:00
dteviot
942a987d52 centralize the world/cell coordinate conversion logic. 2015-08-16 18:55:02 +12:00
dteviot
5049c9ab6a removed unnecessary tests. 2015-08-16 17:41:33 +12:00
dteviot
e42a2478dc Removed tests that are not necessary. 2015-08-09 17:58:40 +12:00
dteviot
21e249cb92 pass parameters as const & 2015-08-04 18:14:36 +12:00
dteviot
1ed6e95c07 Got rid of some radians to degrees to radians conversions. 2015-07-19 18:01:25 +12:00
mrcheko
c773ed9f9a move checkWayIsClear to pathfinding; move shortcut logic to separate func (AiPackage::shortcutPath); rework AiPackage::pathTo 2015-07-04 18:00:16 +03:00
scrawl
c719b7038e Merge branch 'master' of https://github.com/OpenMW/openmw into osg 2015-06-18 15:00:21 +02:00
scrawl
cad18969e3 Merge branch 'master' of https://github.com/OpenMW/openmw into osg
Conflicts:
	apps/openmw/mwmechanics/aicombat.cpp
	apps/openmw/mwmechanics/aitravel.cpp
2015-06-14 16:32:13 +02:00
dteviot
520fbd63c4 simplified pathfinding code.
remove mIsPathConstructed.  Instead call !mPath.empty().
2015-06-14 15:14:02 +12:00
dteviot
cb8ca2f03a Moved logic for building a Sync'ed path from AiCombat to PathFinding.
Is now used by AiFollow, which should fix "running in circles" bug caused when recalc a path and closest way point is the one NPC has just passed.
2015-06-11 18:31:35 +12:00
scrawl
4bb3cbf0fb Remove last remains of Ogre 2015-06-03 23:04:35 +02:00
scrawl
7bacb9418d Various math code ported to osg 2015-06-03 19:41:19 +02:00
dteviot
eb1090a1b6 Waypoint check only considers X & Y distance (Fixes #2423)
When pathfinder checks if actor has reached a waypoint, ignore actor's altitude.
2015-03-23 20:09:46 +13:00
dteviot
ca8c8c6aa4 fixing MSVC 2013 warning C4244: & C4305
conversion from 'const float' to 'int', possible loss of data
conversion from 'double' to 'int', possible loss of data
conversion from 'float' to 'int', possible loss of data
2015-03-08 17:42:07 +13:00
scrawl
a17252eab3 Remove unused checkWaypoint function
It was an almost exact copy of the checkPathCompleted function anyway.
2015-01-07 02:34:28 +01:00
scrawl
4d9100091d Reduce default pathing arrival tolerance to 32 units (Fixes #1605) 2015-01-07 02:34:28 +01:00
terrorfisch
c4badcea6e removed warning 2014-10-10 23:51:29 +02:00
terrorfisch
bbca942601 -improved trigonometric precision
-cleanup
2014-10-10 23:31:01 +02:00
scrawl
7252cb63a6 Fix cppcheck issues 2014-09-26 17:48:14 +02:00
scrawl
8d8015ce18 Remove a squareroot in pathfinding 2014-06-15 14:18:16 +02:00
Thomas
2c74ea381e Moved pathfinding code to aiPackage, implemented it's use with aiFollow and aiPursue 2014-05-12 21:05:32 -04:00
mrcheko
6a3dddfb9a merge master 2014-04-27 13:49:31 +04:00
mrcheko
f811abb752 pathgrid shortcutting extended 2014-04-20 20:35:07 +04:00