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
elsid
df092b558b
Replace shared_ptr by unique_ptr
2022-04-08 22:42:22 +02: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
jvoisin
1123dc46ee
Add a ton of const refs
2021-06-23 23:13:59 +02:00
unknown
3b4782959e
Allow targeting non-unique actors with StartScript (bug #2311 )
2020-05-10 14:57:06 +02:00
Andrei Kortunov
2e7712a390
Fix C5204 warnings by adding default virtual destructors
2020-03-26 14:49:12 +04:00
elsid
1e4565a15c
Avoid using temporary vector to get items owned by
2020-02-11 22:24:18 +01: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
e8b3ae8706
Improve ResetActors command (bug #4723 )
2018-11-20 21:53:27 +04:00
elsid
fafba8ea0c
Use recastnavigation to find path
2018-10-13 22:16:25 +03: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
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
Andrei Kortunov
9943bd4d74
AiWander fast forwarding improvements (bug #3638 )
2017-11-11 15:31:06 +04:00
Bret Curtis
d785344fad
purge all instances of <boost/shared_ptr.hpp>, clean up unused headers
2017-06-09 19:08:53 +02:00
scrawl
a7d4928593
Properly handle moved references in respawning code ( Fixes #3600 )
2016-10-18 23:51:45 +02:00
MiroslavR
4a3529488b
Fix possible reference duplication when the refID is modified by a plugin (Bug #3471 )
2016-07-22 03:58:23 +02:00
scrawl
d96e49c04a
Do not set change flag when running forEach on an empty cell
2016-07-02 20:44:14 +02:00
scrawl
6f9ca0f68f
Add basic cell preloader class
...
Not properly in use yet, but seems to be working.
2016-02-07 00:14:13 +01:00
scrawl
c9a67ab423
Do not add scripts from levelled creatures twice (Bug #2806 )
...
Do not insert objects from within a CellStore visitor
2016-02-05 18:29:33 +01:00
scrawl
1905f0bf2d
Add support for placing BodyParts in a cell (Bug #3118 )
2016-01-02 01:30:06 +01:00
scrawl
bc50587e71
Remove comment
2015-12-18 14:33:15 +01:00
scrawl
19d87c78f2
Add CellStore::forEachConst
2015-12-17 23:59:18 +01:00
scrawl
2fe2f53b02
Set the changed flag in CellStore::search ( Fixes #3089 )
2015-12-17 22:37:41 +01:00
scrawl
04b6571d7d
Fix logic for scripting access of deleted objects
2015-12-17 20:34:50 +01:00
Chris Robinson
a47bdecac7
Add missing include
...
Since Ptr is used directly in the header, a forward declaration isn't good
enough.
2015-12-10 17:47:55 -08:00
scrawl
51b892195b
Restore getReadOnlyDoors()
2015-12-06 21:58:25 +01:00
scrawl
a517f4f9ba
Add CellStore::forEachType to help with porting over game logic to the new interfaces
2015-12-06 20:32:39 +01:00
scrawl
176a3c16f4
Resolve moved references loaded from a save game
2015-12-06 20:00:24 +01:00
scrawl
671561ea37
Write moved references to the save game file (not resolved on loading yet)
2015-12-06 19:11:25 +01:00
scrawl
5e99a3eda6
Rename CellStore Functor to Visitor
2015-12-06 18:13:04 +01:00
scrawl
811df1e97b
Pass the ESM reader list to CellStore constructor
2015-12-06 18:03:55 +01:00
scrawl
3aa53f3cb4
Object cell movement tracker works. Savegame handling is still missing and some game functionality is still stubbed out.
2015-12-04 19:46:02 +01:00
scrawl
64b4926127
Add reference moving logic - untested
2015-12-04 18:29:41 +01:00
scrawl
7a983340bf
Add comment
2015-12-04 18:29:41 +01:00
scrawl
fc449233be
Restore support for inserting objects into a cell
2015-12-04 18:29:41 +01:00
scrawl
0975f60d59
Stub out CellStore::get<T> accessors in preparation of reference movement between cells
2015-12-04 18:29:41 +01:00
scrawl
278076e609
Include cleanup
2015-07-25 04:14:22 +02:00
scrawl
4f6e5345cc
Include cleanup
2015-07-24 23:28:36 +02:00
scrawl
22f01b1232
Merge branch 'master' of https://github.com/OpenMW/openmw into osg
...
Conflicts:
apps/launcher/graphicspage.cpp
apps/opencs/editor.cpp
apps/opencs/model/doc/document.cpp
apps/opencs/view/render/cell.cpp
apps/opencs/view/render/mousestate.cpp
apps/opencs/view/render/textoverlay.cpp
apps/opencs/view/render/worldspacewidget.cpp
apps/openmw/mwclass/creature.cpp
apps/openmw/mwclass/npc.cpp
apps/openmw/mwgui/inventorywindow.cpp
apps/openmw/mwgui/loadingscreen.cpp
apps/openmw/mwgui/mapwindow.cpp
apps/openmw/mwgui/pickpocketitemmodel.cpp
apps/openmw/mwgui/waitdialog.cpp
apps/openmw/mwmechanics/combat.cpp
apps/openmw/mwmechanics/mechanicsmanagerimp.cpp
apps/openmw/mwrender/globalmap.cpp
apps/openmw/mwworld/physicssystem.cpp
apps/openmw/mwworld/refdata.cpp
apps/openmw/mwworld/scene.cpp
apps/openmw/mwworld/worldimp.cpp
components/sdlutil/sdlinputwrapper.cpp
extern/shiny/Main/Factory.cpp
extern/shiny/Main/MaterialInstance.cpp
extern/shiny/Main/Platform.cpp
extern/shiny/Main/ShaderSet.cpp
2015-05-23 20:33:44 +02:00
scrawl
19988d5e45
Remove RefData::getHandle
2015-05-12 04:04:54 +02:00
scrawl
eef8f71797
Add a comment
2015-05-11 16:38:16 +02:00
Jordan Ayers
5edafc2a4c
Cleanup: Add const to read-only CellRefList access.
...
OMW Bug #1533
2015-02-22 12:25:10 -06:00
Jordan Ayers
399259a95c
Improve CellStore exception messages.
2015-02-22 12:12:54 -06:00
Jordan Ayers
c21b59ecff
Teleportation: Avoid marking searched cells as changed.
...
OMW Bug #1533
Only mark cells with the target marker / evidence chest as 'changed'.
2015-02-21 17:55:05 -06:00
Alexander "Ace" Olofsson
0af5c7b379
Starting to clean up some heavy includes
2014-12-19 09:23:16 +01:00
scrawl
f49fde3d5d
Add support for undeleting references ( Fixes #2193 )
...
Deleted references should be accessible via an explicit reference, and can be undeleted using "setdelete 0". Also the Resurrect function implicitely undeletes the given reference.
2014-12-06 21:08:18 +01:00