1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-25 15:35:23 +00:00

4086 Commits

Author SHA1 Message Date
Mads Buvik Sandvei
9a59330561 refactor effect names in loadmgef. Added a map from effect index to non-gmst effect name for use in lua scripts. 2023-05-23 18:11:59 +02:00
psi29a
64b07ee9f4 Merge branch 'esmtool_dawnguard_dragonborn' into 'master'
Partial support esmtool dump for Dragonborn.esm and Dawnguard.esm from Skyrim

See merge request OpenMW/openmw!3052
2023-05-23 08:20:10 +00:00
psi29a
a61f955e9f Merge branch 'case.ext' into 'master'
Fix a regression and use more starts_with and ends_with

See merge request OpenMW/openmw!3051
2023-05-23 08:18:41 +00:00
elsid
358b7ad3ec
Keep ESM4 localized strings in memory
Size of the files is in order of megabytes at max. Storing offset lookup table
to read from file on demand is less efficient than reading from memory for such
size.

Read and store offsets first. Sort them to read values sequentially. Memoize
last offset and value to avoid reading the same value twice. Use seek only when
current possition does not match offset. Optimize seek for short distance by
calling read instead.
2023-05-22 22:09:06 +02:00
Evil Eye
9728024978 Replace compare with more idiomatic methods 2023-05-22 19:51:27 +02:00
elsid
bb1d040ac8
Use settings values for Cells settings 2023-05-22 17:36:23 +02:00
psi29a
458ee4abaa Merge branch 'coc_destination' into 'master'
Improve coc destination search in ESM4 cells

See merge request OpenMW/openmw!3034
2023-05-21 17:33:36 +00:00
Petr Mikheev
9b6808f83d Improve coc destination search in ESM4 cells 2023-05-21 00:42:25 +02:00
Petr Mikheev
1d55844f26 Update mHalfGridSize in Scene::changeCellGrid before using it. 2023-05-19 17:58:59 +02:00
Petr Mikheev
690c752984 Unload active cells when teleporting to another exterior worldspace 2023-05-19 14:33:16 +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
Petr Mikheev
29031d0586 Increase ESM4 active grid 2023-05-18 00:38:41 +02:00
Petr Mikheev
ac65246389 Speedup ESM4 cell loading; load objects from permanent cells (exterior doors in particular) 2023-05-18 00:38:41 +02:00
psi29a
5fba79ece3 Merge branch 'teleport' into 'master'
Additional Lua bindings for cells and fixes for teleporting

See merge request OpenMW/openmw!3017
2023-05-17 07:57:57 +00:00
Petr Mikheev
63906059f1 Fix #7378 (dropped objects vanish when saving and reloading) 2023-05-14 14:53:01 +02:00
Petr Mikheev
ce7f6f31c9 Additional Lua bindings for cells 2023-05-13 20:59:55 +02:00
Petr Mikheev
e53f907a53 Set CharacterController::mSmoothedSpeed to zero after teleporting. 2023-05-13 15:26:39 +02:00
florent.teppe
7c6471b0dc getExteriorCellLocation() added to MWWorld::Cell 2023-05-12 23:24:36 +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
559830f59a applies review comments
Removes ToLowercase after .serializeText
removed unused variable
!ptr => ptr == nullptr
better indentation + error message on throw
friend struct std::hash<...> useless on struct with all public fields.
2023-05-12 22:05:55 +02:00
florent.teppe
39cfe9c2fb Removed unused variable, factorised code. 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
1fdecaaa34 seperate permanent and non permanent exterior cells. 2023-05-12 22:05:54 +02:00
florent.teppe
f731c5eadb preloader compatible with esm4 exteriors. 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
3de08e654f Better handling of water levels for exterior cells.
Especially for skyrim and it's weird water level values in exteriors.
If we don't have a valid exterior water level we use the world's water level
2023-05-12 22:05:54 +02:00
florent.teppe
56cb2a83ec removed sDefaultWorldspace, only sDefaultWorldspaceId now.
sDefaultWorldspaceId is a StringRefId to be able to getvalue easily.
2023-05-12 22:05:53 +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
1d03b54694 maps with tuple key instead of map of map
instead of using a map with key as exterior and map of <int ,int >, Cell as value we use a single map with a tuple x,y,exterior as key
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
81d9686541 crashfix dynamic exterior cells 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
f3adcab9c5 Update CellStore::mMergedRefs lazily. 2023-05-11 01:00:50 +02:00
Petr Mikheev
93342af1f9 Remove CellStore::searchViaRefNum (replaced with WorldModel::getPtr) 2023-05-11 00:17:22 +02:00
Petr Mikheev
270ead937b Remove check in cellstore.cpp that causes Lua teleport command to fail. 2023-05-11 00:17:22 +02:00
psi29a
1f0aede634 Merge branch 'celloverride' into 'master'
Fix cell overrides and remove unused, incomplete erase method

See merge request OpenMW/openmw!3001
2023-05-07 19:50:36 +00:00
Evil Eye
22ba0a1cf0 Improve variable names 2023-05-07 17:27:28 +02:00
Petr Mikheev
86fce41a39 Keep refnum when moving objects to/from inventory (#6148) 2023-05-07 17:19:44 +02:00
Evil Eye
2a48642fe3 Fix cell overrides and remove unused, incomplete erase method 2023-05-05 16:39:24 +02:00
Evil Eye
3cf0977c0b Remove dialogue related instances of getRefIdString 2023-05-04 19:46:49 +02:00
jvoisin
5299065cad Simplify a funny-written function 2023-05-01 21:13:15 +02:00
jvoisin
c7a3f43915 Minor header cleanup
This has been done via CLion's "unused include directive",
set to "detect completely unused".
2023-04-30 16:26:03 +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