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
florent.teppe
c2182c2fcc
Get Rid of ESM::CellId almost everywhere
...
it was a competing concept from using RefIds for cell.
There is almost no point to it now, except to load older data.
2023-04-03 14:16:05 +02:00
florent.teppe
c39dd576f8
Gets rid of most ESM::CellId
2023-04-03 14:16:05 +02:00
florent.teppe
1bbf4a3acf
fixes teleport to exterior cells.
...
fixes linux compile
fix compile bis
2023-04-03 14:16:04 +02:00
florent.teppe
502e4ad892
Fix coc to exterior cells
2023-04-03 14:16:03 +02:00
florent.teppe
3f678c3b0a
Dest Door and teleport use ESM::RefId
...
This changes a lot of files as a consequence.
Still buggy, moving to exterior doesn't bring to the right place yet
coc "seyda neen" doesn't work. SO I broke somehting when fetching a cell from a name
2023-04-03 14:16:03 +02:00
psi29a
b55313c08e
Merge branch 'small_ref_id' into 'master'
...
Make ESM::RefId to be fixed size cheap to copy and support different implementation types
See merge request OpenMW/openmw!2708
2023-03-20 08:54:36 +00: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
elsid
c90e4435cd
Remove unused startup script argument
2023-03-19 00:45:50 +01:00
psi29a
b4a5e8ed19
Merge branch '9003rd_times_the_charm' into 'master'
...
Rework again scripted movement. Partially revert and refine !1324
See merge request OpenMW/openmw!1372
2023-03-18 09:13:57 +00:00