Mads Buvik Sandvei
8c3c5238d7
Preserve refnum when dropping items from inventory to ground.
2023-07-08 17:24:13 +02:00
elsid
6e8dcc16c6
Use settings values for Game settings
2023-07-01 00:59:35 +02:00
florent.teppe
950cc7be83
gets the right worldspace when calculating exterior positions.
2023-06-29 11:09:06 +02:00
Petr Mikheev
801a5a3213
Fix #7385
2023-06-08 22:45:37 +02:00
Petr Mikheev
7cecf2844a
Fix #7411
2023-06-05 22:22:58 +02:00
psi29a
1843345510
Merge branch 'world_model_absent_cell' into 'master'
...
Do not rely on exceptions to handle absent cell
See merge request OpenMW/openmw!3098
2023-06-04 11:28:54 +00:00
elsid
a91f376892
Do not rely on exceptions to handle absent cell
2023-06-02 13:18:09 +02:00
Petr Mikheev
420916327d
Fix the bug "ESMStore::setUp() is called twice" that causes duplicated objects in ESM4 cells
2023-06-01 11:58:03 +02:00
elsid
9012207e32
Make WorldModel a front-end for PtrRegistry
2023-05-31 21:44:27 +02:00
florent.teppe
93e7b0d946
Terrain has a mandatory worldspace in constructor
...
getTerrainHeightAt takes a worldspace.
Doesn't change anything for now => Therrain is created with the default ESM3 worldspace, and is never changed.
2023-05-29 11:31:36 +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
elsid
235eb65c97
Rename positionToCellIndex to match return type
2023-05-27 15:49:36 +02:00
elsid
a04eb9d26c
Move WorldModel::getPtr(const ESM::RefId&, CellStore&) to CellStore
...
The function does not depend on WorldModel.
2023-05-27 15:49:36 +02:00
Mads Buvik Sandvei
410e8b100a
Elsid comments
2023-05-23 19:30:29 +02:00
Petr Mikheev
9b6808f83d
Improve coc destination search in ESM4 cells
2023-05-21 00:42:25 +02:00
Petr Mikheev
169859025c
Don't use getTerrainHeightAt(pos)
when adjusting position in ESM4 cell because this function is currently specific to ESM3.
2023-05-18 02:10:39 +02:00
florent.teppe
a3bd6e7e47
ESM::ExteriorCellIndex => ESM::ExteriorCellLocation
2023-05-12 22:05:55 +02:00
florent.teppe
393357abc0
ESM::Cell::positionToCellIndex returns a ESM::ExteriorCellIndex
...
and takes a worldspace id as input
ESM::getCellSize takes a wordspace as input.
removed useless static in static inline funcs
2023-05-12 22:05:55 +02:00
florent.teppe
3d06cabf6a
indexToPosition moved from world -> esm/util.hpp
2023-05-12 22:05:55 +02:00
florent.teppe
1cf0cd5628
moved mwworld/cellutils.hpp -> esm/util.hpp
2023-05-12 22:05:54 +02:00
florent.teppe
f261f59809
World::indexToPosition is modified to be less error prone.
2023-05-12 22:05:54 +02:00
florent.teppe
75561abfca
Factorises code and fixes preload bug.
2023-05-12 22:05:54 +02:00
florent.teppe
5648e03e9e
function to get cellsize depending on the context.
2023-05-12 22:05:54 +02:00
florent.teppe
141878f30d
int x, int y , ESM::RefId worldspace => ESM::ExteriorCellIndex
...
also removed the changeToExteriorCell that only took a position as input, didn't work with esm4.
2023-05-12 22:05:53 +02:00
florent.teppe
43e247d458
fixes tests
...
fix linux build + clang-tidy
2023-05-12 22:05:53 +02:00
florent.teppe
d8a782425b
can actually load and teleport to esm4 exterior spaces
2023-05-12 22:05:53 +02:00
florent.teppe
eb48f8724f
change grid and preload takes the right exterior
...
also fixes some crashes
2023-05-12 22:05:53 +02:00
florent.teppe
a62e75fd19
Initial attempt at loading esm4 exteriors
2023-05-12 22:05:52 +02:00
Petr Mikheev
93342af1f9
Remove CellStore::searchViaRefNum (replaced with WorldModel::getPtr)
2023-05-11 00:17:22 +02:00
elsid
0601d7213e
Remove ESM::RefId::sEmpty
...
This variable is only required to return empty RefId as const reference. There
is no point in doing so for a type cheap to copy.
2023-04-26 21:15:16 +02:00
elsid
7a7c20d49e
Define single UpdateGuard type in a separate file
2023-04-22 13:22:07 +02:00
Petr Mikheev
227a993b94
Remove createRecord
functions from World because the only forward the argument to ESMStore that can be used directly.
2023-04-20 21:45:49 +02:00
florent.teppe
a3a2685b9a
More MWWorld::CellStore* -> MWWorld::CellStore&
2023-04-20 16:16:17 +02:00
florent.teppe
53cc9f3614
functions return reference instead of ptr
...
because the function can never return an nullptr, we return a reference.
2023-04-20 15:55:40 +02:00
Petr Mikheev
61d207bd78
Allow Lua scripts to extend or override standard activation mechanics
2023-04-16 23:50:27 +02:00
Evil Eye
2deff337d8
Fix global map position
2023-04-13 17:44:23 +02:00
Evil Eye
97fb06d8c9
Add RefId::is
2023-04-13 17:43:13 +02:00
Evil Eye
4e0eb75094
Fix exterior check when finding markers
2023-04-13 17:21:13 +02:00
psi29a
e0e3a2698b
Merge branch 'fix-load-time' into 'master'
...
Initialize the date when loading a cell
Closes #7320
See merge request OpenMW/openmw!2911
2023-04-10 15:31:49 +00:00
Dan Vukelich
7f2acfe173
Move fix to a more logical place
2023-04-09 10:11:32 -04:00
elsid
83e60fef4e
Avoid using findCellPosition for coc command implementation
...
It breaks teleport to interior cells and in general is very fragile because
of using exception for common logic path. Remove the function since it's not
used anywhere else.
2023-04-09 13:39:29 +02:00
Dan Vukelich
1aa5a6fde3
Add missing function call to set dates when changing a cell (eg, when loading a save file)
2023-04-09 02:16:16 -04:00
Petr Mikheev
f09a689a4f
Merge ESM::RefNum and ESM4::FormId
2023-04-09 00:23:32 +02:00
Evil Eye
b027e96dee
Pass a cell id when teleporting to an exterior
2023-04-08 12:13:48 +02:00
psi29a
7cd4024868
Merge branch 'cleanlvllist' into 'master'
...
Remove unused variable from levelledlist
See merge request OpenMW/openmw!2896
2023-04-06 10:02:02 +00:00
fredzio
fbd7ae3e2d
Move getLevelledItem implementaiton in .cpp
2023-04-06 08:52:54 +02:00
elsid
b7b68bd164
Consider empty RefId as absent exterior cell
2023-04-04 01:00:53 +02:00
florent.teppe
21bd28542a
Applies review advice
...
2d coord hash moved to hash.hpp file
format version adds suffix to be more coherent
don't use ESM::RefId::sEmpty
RefId equality with string_view, conversion to refId unecessary
action teleport remove test that mCellId is empty
removes some const references, when copy is enough
invalid refid => empty refid
removes useless change
2023-04-03 14:17:35 +02:00
florent.teppe
d782d37ee2
Make sure Vec2iRefId is trivially copyable on GCC 11.3
...
std::pair<int, int> isn't trivially copyable on some compilers
so a specific struct is defined, it's an int pair, but it should be recognised by GCC 11.3 as trivially copyable
Vec2iRefId => ESM3ExteriorCellRefId
more explcit name and use mX,mY instead of pair
renamed files and enum
2023-04-03 14:17:31 +02:00
florent.teppe
f99e65843a
Removes most cellId.hpp include, simplifies id generation for cells.
2023-04-03 14:16:32 +02:00