1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-02-06 00:40:04 +00:00

3793 Commits

Author SHA1 Message Date
elsid
1a27489904
Add special type for object id 2018-10-13 22:16:35 +03:00
elsid
7c80bb9411
Support multiple threads for async nav mesh updater 2018-10-13 22:16:34 +03:00
elsid
ff478aba6d
Use actor half extent for interior cells 2018-10-13 22:16:33 +03:00
elsid
346e9e3141
Add off mesh connections for doors without teleport 2018-10-13 22:16:33 +03:00
elsid
d02beae5a8
Find path for actors according to their abilities to swim and walk 2018-10-13 22:16:33 +03:00
elsid
dc09674362
Add command and settings option to enable actors paths render 2018-10-13 22:16:32 +03:00
elsid
c95cea414c
Support water for NavMesh 2018-10-13 22:16:32 +03:00
elsid
72f211ef28
Add enums for area type and flags 2018-10-13 22:16:32 +03:00
elsid
fa23b590a4
Add unwalkable areas to NavMesh 2018-10-13 22:16:32 +03:00
elsid
c771986c56
Prioritise NavMesh jobs first to remove and last to add
When player move fast enough, tiles update for specific area square
couldn't catch player move. Tiles to be removed are left in the queue
with lower priority then tiles to be added which are nearest to player.
This can lead to overflow for amount of tiles. So we try to do remove
first. But we detect change type approximately using mixed change type,
because even if we do it precise, change type could change while job
is in queue.
2018-10-13 22:16:31 +03:00
elsid
b33a291a67
Log thread id 2018-10-13 22:16:31 +03:00
elsid
f6a60790f8
Create collision shape for all avoided nodes 2018-10-13 22:16:31 +03:00
elsid
e24d4d7052
Explicitly use RC_NULL_AREA constant to mark unwalkable areas 2018-10-13 22:16:31 +03:00
elsid
330e596c64
Remove useless parameter 2018-10-13 22:16:31 +03:00
elsid
c3298d13a6
Add log sinks (stdout and file) 2018-10-13 22:16:31 +03:00
elsid
84949bedb1
Remove and add tile in single critical section 2018-10-13 22:16:30 +03:00
elsid
144e1a063b
Support animated objects 2018-10-13 22:16:30 +03:00
elsid
4aba0fa85f
Limit number of NavMesh tiles to add by distance from player tile 2018-10-13 22:16:30 +03:00
elsid
d2fd9abd51
Split RecastMesh into tiles 2018-10-13 22:16:30 +03:00
elsid
dbb1d99bff
Add NavMeshItem generation to fix update NavMesh for render 2018-10-13 22:16:30 +03:00
elsid
f268ec5d34
Measure total time for NavMesh build from first pop 2018-10-13 22:16:29 +03:00
elsid
c26773bd29
Log update NavMesh status 2018-10-13 22:16:29 +03:00
elsid
937e8e1803
Allow to create empty RecastMesh 2018-10-13 22:16:29 +03:00
elsid
dd5f4498f6
Increment NavMesh revision on remove or add tile 2018-10-13 22:16:29 +03:00
elsid
ed3a255f65
Do not use NavMesh to find changed tiles 2018-10-13 22:16:28 +03:00
elsid
d1e71f9322
Support btBoxShape for RecastMesh 2018-10-13 22:16:28 +03:00
elsid
70a369f70e
Add command to enable NavMesh render
togglenavmesh or tnm
2018-10-13 22:16:28 +03:00
elsid
1caa18bb4f
Use one recast mesh for all jobs 2018-10-13 22:16:27 +03:00
elsid
794cfc4aa3
Write detournavigator log to file 2018-10-13 22:16:27 +03:00
elsid
dd5e6a61a3
Support btCompoundShape for RecastMesh 2018-10-13 22:16:27 +03:00
elsid
373adc6ec4
Option to enable/disable file names revisions 2018-10-13 22:16:27 +03:00
elsid
f8909218ee
Store recast mesh bounds 2018-10-13 22:16:27 +03:00
elsid
d1d034a1ec
Update NavMesh one by one tile in order from nearest to player 2018-10-13 22:16:26 +03:00
elsid
41caca24ee
Options to enable/disable write recast mesh and nav mesh into file 2018-10-13 22:16:26 +03:00
elsid
6d233ae868
Option in settings to enable/disable detour navigator debug log 2018-10-13 22:16:26 +03:00
elsid
430ba9d7a5
Build NavMesh tile data only for changed tiles 2018-10-13 22:16:25 +03:00
elsid
fafba8ea0c
Use recastnavigation to find path 2018-10-13 22:16:25 +03:00
elsid
4f2bfa1e9d
Add operators for osg types 2018-10-13 22:16:25 +03:00
elsid
c01be7b07f
Add operators for bullet types 2018-10-13 22:16:25 +03:00
jvoisin
ca8744af56 Fix crash in the ESM reader, when SCVR has no variable names
Fixes bug [#4678](https://gitlab.com/OpenMW/openmw/issues/4678)
The `loadSCVR` method assumes that the list of variable
names won't be empty, which it might.
Instead of crashing, we show a warning and ignore the record.
2018-10-12 11:28:14 +02:00
Andrei Kortunov
f9271fd7f0 Fix crash in the ESM reader, when list is empty (bug #4677) 2018-10-12 10:38:32 +04:00
Andrei Kortunov
e06f0b797a Replace all NULLs to nullptr 2018-10-09 10:21:12 +04:00
cc9cii
6ec6b9bc2a OpenMW Integration.
Read the ESM/ESP records but do nothing with them for the moment.
2018-10-07 08:55:30 +11:00
cc9cii
15d5cdf3cf Allow TES4 ESM/ESP to co-exist with TES3 ESM/ESP.
This change aims to allow TES4/TE5 content to OpenMW.  i.e. a standalone TES4 would be implemented quite differently.  That said, the key changes are:

* Use pointers rather than references for ESM readers so that they can be switched to another variant on the fly.
* Content file dependencies to be checked within each group (only 3 groups for now, TES3/TES4/TES5)
2018-10-06 20:38:53 +10:00
cc9cii
3982573035 BSA enhancements.
* Implement hash based lookup for TES3 BSA files.
* Added TES4/TES5 BSA support.
* Implemented a hack (non-portable code) in an attempt to reduce startup time under Windows because  Boost::filesystem seems to take forever on GetFileAttributeW.  This implementation uses FindFirstFile/FindNextFile/FindClose instead.
2018-10-06 13:35:51 +10:00
cc9cii
4cd4cf8479 Resolved conflicts and build fixes. 2018-10-05 21:54:29 +10:00
scrawl
f456174af8 Rename to lowerCaseInPlace
(cherry picked from commit 07b064f61682096aef2f5f7838cd064847f5d24e)

# Conflicts:
#	apps/opencs/model/world/commanddispatcher.cpp
#	apps/opencs/model/world/regionmap.cpp
#	apps/opencs/model/world/scriptcontext.cpp
#	apps/openmw/mwrender/animation.cpp
#	apps/openmw/mwscript/statsextensions.cpp
#	apps/openmw/mwworld/store.cpp
#	components/misc/stringops.hpp
2018-10-05 19:16:46 +10:00
scrawl
b4cdb965dc Move rng to components
(cherry picked from commit 8c810e36203b93780cae198a3f7e2fb33ee54b5d)

# Conflicts:
#	apps/openmw/engine.cpp
#	apps/openmw/mwclass/npc.cpp
#	components/misc/rng.cpp
#	components/sceneutil/lightcontroller.cpp
#	libs/openengine/CMakeLists.txt
2018-10-05 18:53:47 +10:00
dteviot
4b0aeb4066 consolidate random number logic
Note, I suspect Rng::rollClosedProbability() is not needed.  The only difference between it and rollProbability() is that one time in 37k (on Windows), it will give an output of 1.0.
On some versions of Linux, the value of 1.0 will occur about 1 time in 4 billion.

(cherry picked from commit 3f28634d1f617691c672e41a3ee950e6daec8c77)

# Conflicts:
#	apps/openmw/mwclass/creature.cpp
#	apps/openmw/mwclass/npc.cpp
#	apps/openmw/mwgui/pickpocketitemmodel.cpp
#	apps/openmw/mwgui/waitdialog.cpp
#	apps/openmw/mwmechanics/combat.cpp
#	apps/openmw/mwmechanics/mechanicsmanagerimp.cpp
#	components/CMakeLists.txt
#	libs/openengine/misc/rng.cpp
2018-10-05 18:45:57 +10:00
Andrei Kortunov
87394f2ebb Revert "Take in account transformations of NiTriShape and NiSkinData in skinning (bug #4437)"
This reverts commit 09427d3f5ec05aaa00f31da272f725f1cdba6976 since the
fix is not entirely correct.
2018-09-29 16:21:40 +04:00