Petr Mikheev
ff774d6406
Load more ESM4 records
2023-04-09 18:52:11 +02:00
Dan Vukelich
7f2acfe173
Move fix to a more logical place
2023-04-09 10:11:32 -04:00
Mitten.O
85dc0ec481
Create a custom Lua usertype to expose a record store as a read-only array
2023-04-09 15:00:01 +03: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
Petr Mikheev
2365ba2ce0
Disable lazy loading
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
24a241352f
Merge branch 'cellfallout' into 'master'
...
Fix cell refid issues
See merge request OpenMW/openmw!2899
2023-04-06 14:36:28 +00:00
Evil Eye
d4cbef6365
Fix cell refid issues
2023-04-06 12:52:52 +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
3258fa4f98
setworldspace uses serializeText
2023-04-03 14:17:35 +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
4c15064a83
Create new Vec2i RefId for ESM3 exterior cells.
...
Applies the necessary changes to use !2708 for the new Id type
2023-04-03 14:17:16 +02:00
florent.teppe
1e0c3bfdec
fixes integration tests
...
we still want to be able to write using old formats
2023-04-03 14:16:32 +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
6895a452ef
restores the concept of worldspace for MWWorld::Cell
2023-04-03 14:16:04 +02:00
florent.teppe
6c6dbccd0a
fix crash on reset
...
fix tests
2023-04-03 14:16:04 +02:00
florent.teppe
9f597ecfea
No more Cellid used by ESM4 cells
...
and that also means it is no longer used by MWWorld::Cell
fixes tests
2023-04-03 14:16:04 +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
florent.teppe
96e42d1666
Cellstore uses RefId.
2023-04-03 14:16:03 +02:00
florent.teppe
36502eaf75
ESM3 Cells have an Id.
...
Store<ESM::Cell> is updated to use it.
2023-04-03 14:16:03 +02:00
Andrei Kortunov
8c6616214b
Remove redundant quotes
2023-04-03 11:28:03 +04:00
Andrei Kortunov
74126953fc
Do not use a rendering node position as a hit position (bug 7298)
2023-04-01 12:05:01 +04:00
psi29a
0c074990ce
Merge branch 'fix_lazy_load_skyrim' into 'master'
...
Fix lazy load skyrim
See merge request OpenMW/openmw!2861
2023-03-30 21:42:55 +00:00
florent.teppe
a3a7767093
applies review changes
...
filepos changed to an actual file pos
moved lambda declaration out of function call
2023-03-28 17:11:30 +02:00
florent.teppe
464092e323
fix oblivion and skyrim
2023-03-28 17:11:30 +02:00
florent.teppe
34dd24b261
Initial changes to detect when context isn't usable
2023-03-28 17:11:30 +02:00
Petr Mikheev
618b912a20
Dehardcode non-game-specific localization GMSTs; Update l10n files.
2023-03-26 13:43:44 +02:00
Petr Mikheev
8d1e52ed51
Extract engine handlers processing from LuaManager to a new class EngineEvents
2023-03-26 03:38:40 +02:00
Petr Mikheev
4fd07cb58d
Implement MWWorld::Class::isItem(ptr) and remove a hacky MWLua::WorldView::isItem.
2023-03-26 03:38:40 +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
86293af084
Support generated RefId as std::uint64_t
2023-03-19 17:20:48 +01:00
elsid
0992624c8b
Support reading and writing typed ESM::RefId to ESM
2023-03-19 17:20:48 +01: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
psi29a
a60f657f5a
Merge branch 'fast_cell4_load' into 'master'
...
Lazy loading of ESM4::reference
See merge request OpenMW/openmw!2804
2023-03-17 21:46:37 +00:00
elsid
6a182e7798
Move generation for default values of required records to separate functions
2023-03-17 18:31:21 +01:00
psi29a
2ff4a5a11a
Merge branch 'cs_fix_info_collection' into 'master'
...
Fix loading, inserting and moving topic info records
See merge request OpenMW/openmw!2806
2023-03-17 14:40:05 +00:00
fredzio
63d4564455
In 0.46, SetPos was setting position of actors before physics simulation, and from this position movement was simulated. This changed with async physics merging, and at the same time problems started, mostly with abot's scenic travel.
...
Skipping the simulation, switching off collisions, and other approaches were not correct as they either broke some mods, or some core mechanics of the engine such as teleportation or waterwalking. As it turns out, the way to go is to simply do _nothing_ (modulo some gymnastics to account for the 1 frame difference in case of async).
Scripted movement and the unstucking logic tends to collide. Early out of unstuck in case the actor doesn't attempt to move. This means there is no AI package for NPC, which are the case for some boats and striders, or the player is content with their position.
2023-03-16 22:07:26 +01:00
Petr Mikheev
0b385d5db9
Create MWWorld::SafePtr
2023-03-13 23:44:00 +01:00
elsid
e032214fcb
Use common info ordering implementation for engine and editor
2023-03-13 21:57:41 +01:00