1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-02-12 00:40:23 +00:00

514 Commits

Author SHA1 Message Date
Sam Hellawell
b43c7238e9 Fix infinite fall into void (#1415) 2024-05-15 05:01:58 +01:00
elsid
01166b1f26
Split ESM headers 2024-05-03 01:55:20 +02:00
elsid
404940b6e0
Make sure proper number of cells is preloaded
Limit the number of exterior cells around a cell to be preloded based on current
and max cache size not just max cache size. Avoid doing break from inner loop
only.

Log when truncation happens but only once during process lifetime to warn a user.
2024-04-29 02:03:32 +02:00
elsid
2220868fa9
Preload surrounding exterior cells for the teleport door destination
When player teleports to the exterior cell, multiple cells are loaded not only
the target so better to have them preloaded too.
2024-04-29 01:02:49 +02:00
elsid
5b0eb0b5b0
Log ptr for which agent bounds are not supported
To make it easier to find what NPC or mod makes this happen.
2024-04-20 14:15:26 +02:00
elsid
ae41ebfc83
Report CellPreloader stats 2024-03-29 14:05:26 +01:00
Cody Glassman
56b31ceaf5 add ignore list to raycasts 2024-02-12 07:52:47 -08:00
Evil Eye
4ef68a8938 Split Class::getModel into Class::getCorrectedModel and Class::getModel so preloading can use string_view 2024-01-27 16:26:31 +01:00
Alexei Kotov
9e3b427a98 Unbreak un-paging (#7768) 2024-01-08 23:41:51 +03:00
Alexei Kotov
2fbdde34c6 Set paged refs' base node to null (#6335) 2024-01-02 02:31:47 +03:00
Evil Eye
e63933efa6 Use NAM9 for stack count 2023-12-31 17:12:46 +00:00
Andrei Kortunov
6f68df9ac2 Avoid redundant copies 2023-12-06 23:45:25 +04:00
Petr Mikheev
c67b866a11 Replace const ESM::RefNum& -> ESM::RefNum 2023-09-15 19:38:09 +02:00
elsid
52ab47771c
Initialize expiry delay for all GenericResourceManager instances 2023-08-29 20:25:21 +02:00
elsid
eb77fd1813
Add height field to navigator in ESM4 cells 2023-08-13 02:26:45 +02:00
florent.teppe
950cc7be83 gets the right worldspace when calculating exterior positions. 2023-06-29 11:09:06 +02:00
elsid
cfab425fb2
Replace operator== for CellStore with pointer quality
Equality operator is confusing and redundant in this case.

It should not be possible to have 2 CellStores for the same cell. There is no
copy constructor defined so it's not possible to get a copy. It's possible to
independently create second store when another one already exist but it would
mean a bug.

Explicitly delete CellStore copy and move constructors and assignment operators
to enforce this.
2023-05-30 08:46:44 +02:00
florent.teppe
ad8cfde4e0 ESM::LandData no longer a virtual interface
instead it is constructed from ESM::Land or ESM4::Land
2023-05-29 12:10:42 +02:00
fteppe
22dc383f63 fixes errors and warnings
Applies review comments

getWorldspaceTerrain => returns a reference because never null
crashfix in navigator
updateLandPositions fixes naming of it
const ESM4::Land* MWWorld::Store<ESM4::Land>::search(ESM::ExteriorCellLocation cellLocation) const removes useless else
ExteriorCellLocation uses default initializers
get terrain height returns -MAX_FLOAT when there is no esm4 terrain.

applied review comments

use default initlializer when possible
factorise code
uses pattern matching in for loop.
2023-05-29 12:10:42 +02:00
florent.teppe
7d88a240d3 no default terrain for esm4 exterior. 2023-05-29 12:10:41 +02:00
florent.teppe
7bc4fc6bf9 Fix issues on terrain change
terrain Preloader now preloads the right terrain
2023-05-29 11:32:14 +02:00
florent.teppe
d0211acf9e Fixes bug in terrain loading + collision heightmap works
although terrain rendering is 100% broken right now
2023-05-29 11:32:13 +02:00
florent.teppe
e0fa15b727 Abstracted Land data that can be used by esm3 and esm4. 2023-05-29 11:31:37 +02:00
florent.teppe
e09cf6ac61 enable terrain takes a worldspace as input
enable terrain anslo switches the worldspace.
2023-05-29 11:31:37 +02:00
elsid
235eb65c97
Rename positionToCellIndex to match return type 2023-05-27 15:49:36 +02:00
elsid
bb1d040ac8
Use settings values for Cells settings 2023-05-22 17:36:23 +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
29031d0586 Increase ESM4 active grid 2023-05-18 00:38:41 +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
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
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
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
jvoisin
5299065cad Simplify a funny-written function 2023-05-01 21:13:15 +02:00
elsid
7a7c20d49e
Define single UpdateGuard type in a separate file 2023-04-22 13:22:07 +02:00
Andrei Kortunov
6ce0d9e9b9 Localize testcells/testinteriorcells progress text 2023-04-21 09:46:02 +04:00
florent.teppe
5bb9bfd224 CellPreloader::preload(CellStore& 2023-04-20 16:58:19 +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