elsid
b621bfcef0
Define SharedIterator as proper random access iterator
...
Drop Container template argument as it's always std::vector.
2023-06-01 23:48:49 +02:00
psi29a
8e3e351015
Merge branch 'hide_ptr_registry' into 'master'
...
Make WorldModel a front-end for PtrRegistry
See merge request OpenMW/openmw!3087
2023-06-01 09:32:57 +00:00
psi29a
27a879de9a
Merge branch 'tree_and_furniture' into 'master'
...
Load ESM4::Tree and ESM4::Furniture
See merge request OpenMW/openmw!3040
2023-06-01 09:15:46 +00:00
psi29a
83c8312060
Merge branch 'esm4_cell_fixes' into 'master'
...
A few fixes related to ESM4::Cell
See merge request OpenMW/openmw!3083
2023-06-01 07:51:34 +00:00
psi29a
9306cb2cfd
Merge branch 'rm_cell_store_equality' into 'master'
...
Replace operator== for CellStore with pointer equality
See merge request OpenMW/openmw!3081
2023-06-01 07:51:09 +00:00
elsid
9012207e32
Make WorldModel a front-end for PtrRegistry
2023-05-31 21:44:27 +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
Petr Mikheev
84d7da1f2c
Ignore per-cell water height in exterior ESM4::Cell
2023-05-29 22:39:26 +02:00
Petr Mikheev
5cb4c66266
Avoid using ESM4::Cell with uninitialized fields
2023-05-29 22:37:25 +02:00
Petr Mikheev
01c410d6b1
Remove mPersistentExteriors
index; fix incorrect Rec_Persistent flag check.
2023-05-29 22:16:56 +02:00
psi29a
8976a1594f
Merge branch 'clickbait' into 'master'
...
Replace sSkillNameIds with ESM::Skill::mName
See merge request OpenMW/openmw!3080
2023-05-29 18:13:20 +00:00
Petr Mikheev
1b669db017
Load ESM4::Tree and ESM4::Furniture
2023-05-29 18:47:27 +02:00
Evil Eye
9c60a6fa4d
Replace sSkillNameIds with ESM::Skill::mName
2023-05-29 17:56:14 +02:00
elsid
731ff90c37
Remove unused include
2023-05-29 15:53:19 +02:00
elsid
947e8f0e94
Use CellStore::mStore instead of MWBase::Environment::get()
2023-05-29 15:53:19 +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
2bb17279df
linux build
...
clang format 14.0
Arm64 build
2023-05-29 12:10:41 +02:00
florent.teppe
0e4d21a40c
takes the right terrain bounds.
2023-05-29 11:32:14 +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
c35c7b3640
ESM4::Land loaded, added to store and to land objects
...
it does not work yet. Some things are displayed, but it looks all wrong.
2023-05-29 11:31:37 +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
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
psi29a
4399748889
Merge branch 'clickbait' into 'master'
...
Move more arrays to the ESM::Attribute struct
See merge request OpenMW/openmw!3074
2023-05-29 09:00:22 +00:00
elsid
02adb91859
Simplify WorldModel::getAll
...
There is no need to have generic forEach template function.
2023-05-29 00:01:46 +02:00
Evil Eye
90a3a7b62f
Add mWerewolfGMST
2023-05-28 15:28:34 +02:00
Evil Eye
a5e1c87fb8
Remove sGmstAttributeIds, sGmstAttributeDescIds, sAttributeIcons
2023-05-28 15:10:53 +02:00
elsid
86db640c8b
Increment revision on clearing PtrRegistry
...
Setting it to 0 may not lead to the change detected by clients. Potentially
mRevision may already have value 0. For example on overflow.
2023-05-28 13:04:20 +02:00
elsid
a581e394b4
Check for revision inequality
...
It's not possible to have SafePtr with mLastUpdate from the future. But
theoretically it's possible to get PtrRegistry::mRevision overflow so operator
less would return false when there is a change.
2023-05-28 13:04:20 +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
unknown
14600de185
Remove sAttributeIds and sSkillIds
2023-05-27 21:54:13 +02:00
elsid
d98852fdbe
Use std::count_if to implement WorldModel::countSavedGameRecords
2023-05-27 15:49:36 +02:00
elsid
3a66854c3c
Avoid confusion for generated cell flags
2023-05-27 15:49:36 +02:00
elsid
60139c6bd5
Use WorldModel::mStore instead of MWBase::Environment::get().getESMStore()
2023-05-27 15:49:36 +02:00
elsid
183202cd65
Remove WorldModel::getCellByPosition function
...
It's used in a single place. Move the code there.
2023-05-27 15:49:36 +02:00
elsid
235eb65c97
Rename positionToCellIndex to match return type
2023-05-27 15:49:36 +02:00
elsid
98e80d65b0
Remove unused include
2023-05-27 15:49:36 +02:00
elsid
b6cd6402cc
Use ranged for loop
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
elsid
df6630a15c
Move WorldModel private functions to bottom
...
This is API class. A reader most likely need to know public functions first.
2023-05-27 15:49:36 +02:00
elsid
181c894e4c
Skip already visited cells when looking for ptr
2023-05-26 22:51:03 +02:00
elsid
466a7cedbb
Convert pointer to referece where nullptr is not acceptable
2023-05-26 22:42:50 +02:00
elsid
1b116240a3
Try return existing CellStore from WorldModel::getCellStore first
2023-05-26 22:40:03 +02:00
Petr Mikheev
4ed283bb15
Merge branch 'create_record_types' into 'master'
...
Allow creating Activator, Armor, Clothing, Misc, Weapon records via lua
See merge request OpenMW/openmw!2944
2023-05-25 08:00:13 +00:00
Zackhasacat
ef004e5eba
Allow creating Activator, Armor, Clothing, Misc, Weapon records via lua
2023-05-25 08:00:12 +00:00
Mads Buvik Sandvei
410e8b100a
Elsid comments
2023-05-23 19:30:29 +02:00
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