elsid
3affe9913f
Limit the number of simultaneously open not actively used content files
...
Use LRU cache for ESMReaders. When cache capacity is reached close least
recently used ESMReader. Remember the file name if a reader was open. Once the
reader requested again open the file if there is stored name for it. Put
released ESMReader to the back of the free items list. Close ESMReader's from
the front of the free items list.
Cached item can be used only by one client at the same time. If the same item is
requested twice exception is thrown. This should never happen in practice. If
this happens need to fix the client logic.
It's allowed to go over the capacity limit when requesting different readers.
Ideally this should never happen but there will be system error anyway
signalizing about too many open files. Need to fix client logic in this case.
All places that were using a vector of ESMReaders now using the cache. Cache is
local for each use case and there is no need for a thread safety.
2022-06-03 01:29:03 +02:00
Evil Eye
3c83117e99
Replace new with make_unique in openmw
2022-05-29 13:24:48 +02:00
elsid
df092b558b
Replace shared_ptr by unique_ptr
2022-04-08 22:42:22 +02:00
elsid
bbfdb347bd
Skip load cell ref when there is no need
...
Primarily to avoid temporary allocations by ESMReader::getHString.
2022-04-08 19:16:38 +02:00
Evil Eye
649c2f8286
Fix stats not working right for saves started before version 17
2022-02-14 18:38:37 +01:00
psi29a
6f7a067e0c
Merge branch 'esmrename' into 'master'
...
esm refactor work
See merge request OpenMW/openmw!1575
2022-01-27 17:52:42 +00:00
Petr Mikheev
203ee492c8
Remove getRefIdRef
because it is the same as getRefId
.
2022-01-23 21:01:44 +01:00
Bret Curtis
d1fb854521
move most of the files from esm to esm3, keep common code in esm; this is make space for a future with esm4
...
esm typo
esm typo
2022-01-23 17:04:48 +01:00
psi29a
c844e5d045
Merge branch 'racer_recursion_limited' into 'master'
...
Check if a leveled creature is in an unloaded cell before deciding it doesn't exist
Closes #4376
See merge request OpenMW/openmw!1420
(cherry picked from commit 782371cb2e7f6653d72305090033557b53bbcf3a)
6d945da7 Check if a leveled creature is in an unloaded cell before deciding it doesn't exist
2021-12-06 13:58:35 +00:00
elsid
c4cd2f36c3
Move convertMagicEffects into separate file
...
As completely unrelated to EsmLoader.
2021-11-29 22:45:35 +01:00
Bo Svensson
a62b22cd31
isolates groundcover content files ( #3208 )
...
Specifications developed in PR #3206 require that groundcover content files must not be allowed to corrupt normal content files. With this PR we simply isolate our existing loading logic by instantiating a separate `ESMStore` for `Groundcover`. In addition, we remove some outdated workarounds.
2021-11-13 23:37:53 +01:00
Evil Eye
dc1fe62dde
Overhaul magic effects to work with onApply and onEnd events
2021-09-29 19:25:10 +02:00
elsid
e910dd7a25
Rename CellRef::getRefIdPtr -> getRefIdRef and return reference
...
Return value can't be nullptr. Pointer complicates the code because has to be
dereferenced.
Also move function definition to hpp to make it easier for compiler to optimize
calls.
2021-09-06 22:52:08 +02:00
fredzio
88a5ca440b
Change moveObject() to take a osg::Vec3f argument instead of 3 floats
...
for readability.
2021-07-30 23:24:49 +02:00
psi29a
42e50e487a
Merge branch 'cleaning' into 'master'
...
Improve save cleaning
See merge request OpenMW/openmw!1015
2021-07-16 08:53:06 +00:00
Evil Eye
86c50ece92
Improve save cleaning
2021-07-12 20:51:13 +02:00
elsid
cfdbd0d471
Indicate moved cell refs explicitly
...
This is less error prone approach than use of MovedCellRef fields.
Also make separate functions for skipping and reading moved cell refs to avoid
passing special flags logic and null pointers for unused arguments.
2021-07-12 18:56:42 +02:00
Petr Mikheev
1268597676
Make loaded but inactive objects available in Lua scripts.
2021-07-09 20:48:54 +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
cc9cii
1f5b20ef7d
test fix for missing refs
2021-07-06 11:43:30 +10:00
jvoisin
1123dc46ee
Add a ton of const refs
2021-06-23 23:13:59 +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
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
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
Evil Eye
8ae4ee291f
Attempt to fix restocking items in old saves
2021-03-04 22:52:03 +01:00
Petr Mikheev
157b14cdaa
Fix #5821 : NPCs from mods getting removed if mod order was changed
2021-01-29 22:53:02 +01:00
Andrei Kortunov
f40e227686
Remove redundant formatting changes
2021-01-26 22:29:41 +04:00
Andrei Kortunov
d12a0fdcb3
Mark only instances from groundcover files as groundcover objects
2021-01-26 22:29:41 +04:00
Andrei Kortunov
14cf0ce1dc
Implement instanced groundcover
2021-01-26 22:29:41 +04:00
Andrei Kortunov
8084a336b5
Replace zeroes and nulls by nullptrs
2020-11-29 11:14:07 +04:00
Assumeru
72549651e0
Rework container resolution ( #3006 )
...
* Rework container resolution
* add optional argument to getCount
* remove now-redundant changes
* undo worldimp changes
* move save-fixing code to InventoryState
* replace Rng instances with Seeds
2020-10-13 17:46:32 +02:00
bzzt lost a hitlab login
9f0398c021
intersection by refnum tag + enable paging for acti,door,cont
...
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt lost a hitlab login
340d626589
static moving support
...
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:28 +02:00
bzzt
c0f128bcb3
disablesupprort
...
Signed-off-by: Bret Curtis <psi29a@gmail.com>
2020-06-13 00:22:27 +02:00
unknown
3b4782959e
Allow targeting non-unique actors with StartScript (bug #2311 )
2020-05-10 14:57:06 +02:00
Capostrophic
c6e431d862
Avoid copying strings in SearchVisitor and readReferenceCollection
2019-10-28 19:28:14 +03:00
Andrei Kortunov
c51aba0b13
Recharge items outside of player's inventory (bug #4077 )
2019-10-07 22:59:43 +04:00
Andrei Kortunov
abe1009e98
Do not resolve container's content during search
2019-05-06 23:05:31 +04:00
Andrei Kortunov
28252bb359
Merge branch 'hashRefID' into 'master'
...
Remove string copy in CellStore::search
See merge request OpenMW/openmw!77
2019-04-24 16:46:13 +00:00
Andrei Kortunov
413207f9af
Reset old record, if its ID does not match with ID of new record (bug #4932 )
2019-04-08 22:24:49 +04:00
fredzio
93ffdc915d
SearchVisitor copy a new std::string everytime CellsStore::search is
...
called. Use a reference instead
2019-03-05 06:07:59 +01:00
Andrei Kortunov
fcdb0c16bf
Update jail state once instead of for every single hour
2019-02-23 09:17:06 +04:00
Andrei Kortunov
e8b3ae8706
Improve ResetActors command (bug #4723 )
2018-11-20 21:53:27 +04:00
elsid
ed89126828
Fix warning implicit conversion changes singedness
2018-10-13 22:16:24 +03:00
Andrei Kortunov
e06f0b797a
Replace all NULLs to nullptr
2018-10-09 10:21:12 +04:00
Andrei Kortunov
8af021d729
Restore dynamic stats for actors in inactive cells (bug #1875 )
2018-09-26 07:46:28 +04:00
Capostrophic
7ef6fa9f61
Remove deprecated GMST get* functions
2018-08-29 18:38:12 +03:00