Petr Mikheev
43b7e6964a
Add function World::isCellActive
2021-07-09 20:48:54 +02:00
Petr Mikheev
702eb19271
Fixes and refactoring
2021-07-09 20:48:54 +02:00
Petr Mikheev
1268597676
Make loaded but inactive objects available in Lua scripts.
2021-07-09 20:48:54 +02:00
Petr Mikheev
8c6d303730
Saving/loading for Lua scripts (saves format is changed)
2021-07-09 20:24:56 +02:00
Petr Mikheev
914e604e06
Interactions between LuaManager and other parts of OpenMW
2021-07-09 20:24:56 +02:00
Petr Mikheev
3d7e306064
Add apps/openmw/mwlua
2021-07-09 20:03:27 +02:00
Petr Mikheev
7df500c385
Put RefData move constructor to cpp file
2021-07-09 20:03:27 +02:00
Petr Mikheev
6db2450c90
Initial support of generated RefNums with negative mContentFile.
2021-07-09 20:03:27 +02:00
cc9cii
16e1398819
Quick solution to add logic to getNextRef() calls so that moved references are ignored. Currently it is assumed that MVRF records have been all read before the ESM reader context was saved, which is false assumption. Should resolve Issue #6139 .
2021-07-07 08:18:38 +10:00
psi29a
cda0c7ed44
Merge branch 'ghd' into 'master'
...
Great House Dagoth
See merge request OpenMW/openmw!638
2021-07-06 07:22:29 +00:00
cc9cii
1f5b20ef7d
test fix for missing refs
2021-07-06 11:43:30 +10:00
Evil Eye
0a15d7740a
Delay physics for objects created by scripts
2021-07-05 18:34:06 +02:00
psi29a
3588bfcb17
Merge branch 'OpenMW_Bug6067' into 'master'
...
Support moved references records in any order. (Issue #6067 )
See merge request OpenMW/openmw!982
2021-07-05 08:20:37 +00:00
elsid
c7c0d11cab
Trigger navmesh update when any navigator object has been updated
...
Set World::mShouldUpdateNavigator to true when this happens. Previously
assignment to true was missing for object rotation and moving.
2021-07-05 00:20:57 +02:00
cc9cii
6575b95448
Support moved references (i.e. with MVRF sub-records) that do not occur at the beginning of the cell references block.
2021-06-30 15:34:40 +10:00
Evil Eye
4f264af5a9
Merge branch 'staticsload' into 'master'
...
Loads statics before actors II (#5379 )
See merge request OpenMW/openmw!588
2021-06-28 20:25:51 +00:00
fredzio
c795e0bce6
Some actors are supposed to spawn on an object that belongs to an adjacent cell.
...
Since actors can be active in 3x3 grid around the player, we need to
first load all objects in a 5x5 grid around the player.
Split load and unloading in 2 phases. Add an mInactiveCells set into the
scene, which contains all cells inside the aforementioned 5x5 grid.
These cells contains only heightfields and non-animated physics objects.
Animated objects are tied to the scene graph, which doesn't exists yet
in these cells, so we skip them.
2021-06-28 09:36:04 +02:00
Evil Eye
1f658209f8
Merge branch 'DoNotCopyFullDialogue' into 'master'
...
Do not copy full dialogue as we only want to return its id
See merge request OpenMW/openmw!856
2021-06-26 11:59:37 +00:00
psi29a
7d8949ec3f
Merge branch 'positively_glowing' into 'master'
...
Detach objects from the active grid when attempting to get their animation
Closes #6105
See merge request OpenMW/openmw!951
2021-06-25 09:20:25 +00:00
Evil Eye
2be27da791
Merge branch 'const_refs' into 'master'
...
Add a ton of const refs
See merge request OpenMW/openmw!954
2021-06-24 18:57:41 +00:00
jvoisin
5840279f16
Use default
instead of empty constructors/destructors
...
See https://pvs-studio.com/en/docs/warnings/v832/ for details
2021-06-24 00:26:15 +02:00
jvoisin
1123dc46ee
Add a ton of const refs
2021-06-23 23:13:59 +02:00
Evil Eye
692615fd3c
Detach objects from the active grid when attempting to get their animation
2021-06-23 18:08:49 +02:00
Léo Peltier
5c4e1252e9
Handle AutoCalc flag when getting spell cost
...
Fixes #5483
This only applies to "base game" spells.
When adding an AutoCalc spell with TES:CS its cost is computed and
stored inside game files. This stored cost was being used by OpenMW and
the actual cost was never recomputed at runtime whereas Morrowind.exe
discards the stored cost.
While this worked fine in vanilla, mods can update AutoCalc spell
effects without ever updating the stored cost.
The formula was mostly there already but there was a few differences,
namely a 1 second offset in duration.
2021-06-20 13:42:28 +02:00
psi29a
b7886bc036
Merge branch 'SpeedUpInteriorCheck' into 'master'
...
Speedup searching for exterior cells
See merge request OpenMW/openmw!857
2021-06-19 00:29:47 +00:00
psi29a
047d993cf4
Merge branch 'at' into 'master'
...
Use operator[] instead of at() when the idx is checked
See merge request OpenMW/openmw!916
2021-06-19 00:26:48 +00:00
jvoisin
22153cca7b
Reduce a bit the code bloat in hot paths/small functions
...
There is no need to bloat hot/small functions with
a ton of function calls and involving locales
for simple error messages.
2021-06-15 17:57:14 +02:00
jvoisin
8695b6fbc5
Use operator[] instead of at() when the idx is checked
2021-05-29 15:31:32 +02:00
Evil Eye
b8472e1303
Use modified paralyze magnitude to fall and float
2021-05-28 16:55:54 +02:00
psi29a
9dfba37ce9
Merge branch 'fix_big_object_navmesh_update' into 'master'
...
Fix overwhelming recast mesh and navmesh updates for big rotating objects (#6060 )
Closes #6060
See merge request OpenMW/openmw!911
2021-05-27 21:08:33 +00:00
elsid
4a6961b365
Trigger navmesh update on moved player only when player tile has been changed
2021-05-27 16:52:42 +02:00
elsid
3915e5d2cc
Always center loading screen progress bar by height when there is active message box
...
To fix all possible situations when active message box overlaps with loading
screen progress.
The only used condition to center loading screen progress by height is
number of message boxes > 0. No need to pass it through interface.
LoadingScreen can check it inside setLabel function.
2021-05-26 23:29:37 +02:00
psi29a
ae66afb219
Merge branch 'less_verbose' into 'master'
...
Make the code less verbose.
See merge request OpenMW/openmw!874
2021-05-18 08:30:50 +00:00
psi29a
f1f1703441
Merge branch 'fix_navmesh_wait' into 'master'
...
Fix redundant waiting until navmesh is generated
See merge request OpenMW/openmw!861
2021-05-17 10:54:23 +00:00
Frederic Chardon
62c7adc87b
Merge branch 'no_at_boundaries' into 'master'
...
Don't use at() instead [] when length is checked/known
See merge request OpenMW/openmw!866
2021-05-16 11:58:14 +00:00
fredzio
c55db790f3
Make the code less verbose / more readable using for range loop and
...
structured binding.
No functional changes.
2021-05-16 12:42:16 +02:00
psi29a
3d61d7ec9a
Merge branch 'optimize_initial_load' into 'master'
...
Optimize engine initial loading time
See merge request OpenMW/openmw!867
2021-05-15 18:48:17 +00:00
jvoisin
7deb6a6ffd
Use const references when possible in for loops
...
No need for useless copies.
2021-05-15 19:50:01 +02:00
elsid
1e2aae8095
Use stable sort+unique to collect RefIDs for ESMStore records counting
...
The idea is to avoid std::map lookup for each CellRef. Instead generate a
sequence of added and removed RefNums into a vector then order them by RefNum
using a stable sort that preserves relative order of elements with the same
RefNum. RefIDs are stored in a different vector to avoid std::string move ctor
calls when swapping elements while sorting. Reversed iteration over added and
removed RefNums for each unique RefNum is an equivalent to what map-based
algorithm produces. The main benefit from sorting a vector is a data locality
that means less cache misses for each access. Reduces ESMStore::countRecords
perf cycles by 25%.
2021-05-15 18:45:22 +02:00
elsid
9938af2289
Use unordered_map for ref count
...
Reduces ESMStore::countRecords time by 8%.
2021-05-15 18:45:22 +02:00
elsid
f2188d2533
Reduce temporary allocations on ESM loading
...
By moving objects instead of copying when possible.
2021-05-15 18:45:21 +02:00
jvoisin
690d85d0e9
Don't use at() instead [] when length is checked/known
2021-05-15 15:38:17 +02:00
fredzio
fb344d27e0
Use insert_or_assign() instead of hand rolled version.
2021-05-14 23:38:39 +02:00
elsid
59f89d22f8
Apply min distance only for not present tiles
...
To avoid waiting when navmesh update is triggered by transformed object for
already present tiles.
2021-05-14 22:41:11 +02:00
CedricMocquillon
1d362029ce
Do not copy full dialogue as we only want ot return its id
2021-05-13 23:02:26 +02:00
CedricMocquillon
ccaa581f39
According to the comment, an interior cell must have (0,0) but as there is an exterior cell
...
with these coordinates it is not sufficient but it is necessary so I added it
2021-05-13 22:29:52 +02:00
psi29a
fd89582e0c
Merge branch 'navmesh_wait' into 'master'
...
Wait until navmesh is generated within given distance around player (#5500 )
Closes #5500
See merge request OpenMW/openmw!819
2021-05-13 16:56:39 +00:00
psi29a
9b017ef04d
Merge branch 'internal_includes_openmw' into 'master'
...
Clean up some internal includes of the openmw component
See merge request OpenMW/openmw!796
2021-05-07 10:53:25 +00:00
elsid
00de80c884
Merge branch 'deadcode' into 'master'
...
GC some unused code, simplify some other
See merge request OpenMW/openmw!820
2021-05-06 11:03:14 +00:00
fredzio
e99b61d362
Simplify the code
2021-05-06 06:15:00 +02:00