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