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