1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-25 06:35:30 +00:00

29 Commits

Author SHA1 Message Date
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
Andrei Kortunov
c989fac67b Add bound for pointers cache size, as it specified in docs 2021-04-10 11:20:12 +04:00
psi29a
09373a757d Merge branch 'radioactive' into 'master'
Container base record mutations

See merge request OpenMW/openmw!353

(cherry picked from commit 8b33765dd414680f0074b3e115b52b291b4cb7cb)

275908a0 mutate container base records
16fca11d add changelog entry
2020-10-20 16:56:22 +00:00
unknown
3b4782959e Allow targeting non-unique actors with StartScript (bug #2311) 2020-05-10 14:57:06 +02:00
Andrei Kortunov
c51aba0b13 Recharge items outside of player's inventory (bug #4077) 2019-10-07 22:59:43 +04:00
Andrei Kortunov
fcdb0c16bf Update jail state once instead of for every single hour 2019-02-23 09:17:06 +04:00
Andrei Kortunov
8af021d729 Restore dynamic stats for actors in inactive cells (bug #1875) 2018-09-26 07:46:28 +04:00
scrawl
c883a73d30 Several warning fixes 2015-01-23 15:34:47 +01:00
scrawl
27a05027f4 Fixes #1172: Added basic loading/saving progress bar
The progress is not particularly accurate. It simply uses the current / total number of records written/read as indication. Cell records are currently the largest by far, but there is a good chance that could be optimized using a change tracking system.
2014-04-28 11:29:57 +02:00
Marc Zinnschlag
9b18e01507 keep track of which cells have state that needs to be saved 2014-02-24 10:03:04 +01:00
Marc Zinnschlag
367919200f moved CellRefList into a separate file 2014-02-23 20:11:05 +01:00
Marc Zinnschlag
29c3a288e3 load and save of reference in cells (without CustomData state) 2014-01-27 13:27:42 +01:00
scrawl
03cf383be7 Merge branch 'master' of https://github.com/zinnschlag/openmw into savedgame
Conflicts:
	apps/openmw/mwgui/referenceinterface.cpp
	apps/openmw/mwmechanics/actors.cpp
	apps/openmw/mwmechanics/mechanicsmanagerimp.cpp
	apps/openmw/mwmechanics/mechanicsmanagerimp.hpp
	apps/openmw/mwscript/cellextensions.cpp
	apps/openmw/mwworld/cells.cpp
	apps/openmw/mwworld/cells.hpp
	apps/openmw/mwworld/cellstore.cpp
	apps/openmw/mwworld/store.cpp
	apps/openmw/mwworld/worldimp.cpp
2014-01-24 18:28:35 +01:00
Marc Zinnschlag
22cb4784b5 store cell state in saved game files (no references yet) 2014-01-23 11:29:40 +01:00
scrawl
bf6d302fba Confiscate stolen items when caught 2014-01-11 03:29:41 +01:00
scrawl
ea3b88951a Implement divine/almsivi intervention magic effects 2014-01-01 02:22:11 +01:00
Marc Zinnschlag
e94fcce622 accessing references via their ID now also works for references in containers in active cells 2013-08-15 14:45:13 +02:00
scrawl
45006ea193 Fix inventory/container content loading so that it's done for dynamically spawned objects as well 2013-07-31 00:02:24 +02:00
scrawl
c41f119ba6 Added new game button 2013-05-15 17:54:18 +02:00
Mark Siewert
8ea9f00e6f Merge remote-tracking branch 'upstream/master' into multiple_esm_esp
Conflicts:
	apps/openmw/mwrender/terrain.cpp
	apps/openmw/mwworld/cells.cpp
	apps/openmw/mwworld/cells.hpp
	apps/openmw/mwworld/cellstore.cpp
	apps/openmw/mwworld/cellstore.hpp
	apps/openmw/mwworld/containerstore.cpp
	apps/openmw/mwworld/localscripts.cpp
	apps/openmw/mwworld/scene.cpp
	apps/openmw/mwworld/worldimp.cpp
	apps/openmw/mwworld/worldimp.hpp
	components/esm_store/reclists.hpp
	components/esm_store/store.cpp
	extern/shiny

- Re-implement some patches that were broken by the removal of reclists.hpp and store.cpp/.hpp.
- NOTE: Not everything works as before, I'll have to test some more stuff before we are back to where we were.
2012-11-25 14:12:44 +01:00
Mark Siewert
42eefaf36f - Add support for loading references from multiple esm/esp files. Full reference ID mangling coming soon (currently, moved references are simply cloned).
- Reference loader now (partially) supports MVRF tag.
2012-11-10 21:43:41 +01:00
greye
2057f5619e move ESMStore to MWWorld 2012-11-05 17:18:01 +04:00
Marc Zinnschlag
4c39fefd1e Issue #107: World is accessed only through the interface class from now on; some include cleanup 2012-07-03 12:30:50 +02:00
Marc Zinnschlag
89ac0fa232 Issue #312: Implemented ID-search caching to speed up some badly written scripts 2012-06-21 11:43:18 +02:00
Marc Zinnschlag
5562653578 provisionally fill up containers on cell load 2012-03-10 12:36:29 +01:00
Marc Zinnschlag
b866323cf3 Issue #31: create new exterior cells on the fly 2011-09-27 10:08:07 +02:00
Marc Zinnschlag
af4f48fd3f Issue #28: implemented access to references outside of the active cells 2011-09-22 12:44:17 +02:00
Marc Zinnschlag
aa87370d8f Issue #28: moved cell-specific getPtr function from World to Cells 2011-09-22 11:59:39 +02:00
Marc Zinnschlag
e8632a799d Feature #28: refactored out cell management into a separate class 2011-09-08 11:02:55 +02:00