1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-27 21:35:24 +00:00

25 Commits

Author SHA1 Message Date
elsid
9012207e32
Make WorldModel a front-end for PtrRegistry 2023-05-31 21:44:27 +02:00
elsid
a581e394b4
Check for revision inequality
It's not possible to have SafePtr with mLastUpdate from the future. But
theoretically it's possible to get PtrRegistry::mRevision overflow so operator
less would return false when there is a change.
2023-05-28 13:04:20 +02:00
elsid
ce91784085
Move Ptr registry into a separate type
There is no dependency on the rest of the WorldModel state.
2023-05-28 13:04:17 +02:00
Petr Mikheev
8d1e52ed51 Extract engine handlers processing from LuaManager to a new class EngineEvents 2023-03-26 03:38:40 +02:00
elsid
069d4255b9
Make ESM::RefId to be fixed size cheap to copy
Use std::variant. Store refId strings in unordered_set and use pointer to an
item there. Inserts to unordered_set do not invalidate pointers to values so the
pointer is always valid. Elements are not removed. Assume there is finite number
of string refIds.
2023-03-19 17:20:43 +01:00
Petr Mikheev
0b385d5db9 Create MWWorld::SafePtr 2023-03-13 23:44:00 +01:00
Bo Svensson
6fb376f1cf
templatise ptr.hpp (#3185)
With this PR we consolidate identical logic for Ptr and ConstPtr with the help of a template.
2021-10-25 09:08:50 +02:00
Bo Svensson
ef906cbfa8
improves MWClass mapping (#3166)
Currently, we use a peculiar mapping of ESM classes by their std::type_info::name. This mapping is an undefined behaviour because std::type_info::name is strictly implementation defined. It could return a non-unique value on some platforms. With this PR we use the unsigned int sRecordId of the ESM class as a more efficient lookup type that does not build on undefined behaviour. We can expect marginally faster save-game loading with these changes as well.
2021-10-11 13:46:21 +02:00
Andrei Kortunov
8084a336b5 Replace zeroes and nulls by nullptrs 2020-11-29 11:14:07 +04:00
Rafael Moura
ecbde7b11e Added ConstContainerStoreIterator
using base template for ContainerStoreIterators

less template arguments for ContainerStoreIteratorBase
2017-02-18 13:47:18 +00:00
scrawl
388aed1748 Accept a ConstPtr in findContainer, collision script functions, getUnderwater functions 2015-12-18 17:56:48 +01:00
scrawl
d4eba794c3 Add ConstPtr 2015-12-17 23:34:52 +01:00
scrawl
67bd6cd708 Remove empty line at the beginning of files
git ls-files -z | xargs -0 sed -i '1{/^$/d}'
2015-08-18 23:06:12 +02:00
scrawl
039398c8ae Basic RefData and CellRef change tracking
Wrapped item charge handling in getItemHealth function
2014-05-25 14:30:07 +02:00
Emanuel Guevel
20cfdd4b43 Move LiveCellRefBase ctor where it belongs to 2014-05-22 20:50:00 +02:00
Marc Zinnschlag
f220867144 make Ptr a bit more pointer-like 2014-02-23 18:17:41 +01:00
Marc Zinnschlag
dd674566a2 store content of containers in saved game files 2014-01-31 13:25:32 +01:00
scrawl
5a287a7e01 Remove no longer accurate flagAsModified calls. Container items are now modified via ContainerStore, not RefData. 2013-12-27 00:41:19 +01:00
Chris Robinson
21121d5ba5 Store the object class in the LiveCellRef 2013-08-16 04:18:48 -07:00
Chris Robinson
2853b56ed5 Throw an exception when trying to get an empty Ptr's type 2013-08-15 04:52:01 -07:00
Chris Robinson
48c07fbd98 Remove some unnecessary fields from Ptr 2013-08-14 17:05:42 -07:00
Chris Robinson
11166a1a17 Don't store the type name string in the Ptr
This should get rid of all heap allocations caused by constructing or copying
Ptr objects.
2013-08-14 00:45:28 -07:00
Marc Zinnschlag
3dcfcf46cb Issue #217: container change tracking 2012-03-21 12:48:05 +01:00
Marc Zinnschlag
a0ee2954bd Issue #217: moved some functino implementations from ptr.hpp to ptr.cpp 2012-03-21 12:29:07 +01:00
Marc Zinnschlag
0adbe258fd Issue #217: made Ptr track container; fixed a cmake script bug 2012-03-21 12:20:19 +01:00