Commit Graph

20587 Commits (1d5b73f20a57ff8b62d8e980dd77b4fa51f5c2fe)

Author SHA1 Message Date
psi29a 9306cb2cfd Merge branch 'rm_cell_store_equality' into 'master'
Replace operator== for CellStore with pointer equality

See merge request OpenMW/openmw!3081
2 years ago
Andrei Kortunov 9001dc8f88 Remove redundant single quotes 2 years ago
elsid 9012207e32
Make WorldModel a front-end for PtrRegistry 2 years ago
Evil Eye 08f35fe839 Add ESM::Skill::mWerewolfValue 2 years ago
Evil Eye 7b0680de5f Resolve attribute GMST members 2 years ago
Evil Eye eea730768b Replace sIconNames with ESM::Skill::mIcon 2 years ago
Evil Eye 9c819b5705 Disallow formatting of UString 2 years ago
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.
2 years ago
Petr Mikheev 84d7da1f2c Ignore per-cell water height in exterior ESM4::Cell 2 years ago
Petr Mikheev 5cb4c66266 Avoid using ESM4::Cell with uninitialized fields 2 years ago
elsid 97fed756c8
Properly support portable configuration for bulletobjectool and navmeshtool 2 years ago
Petr Mikheev 01c410d6b1 Remove `mPersistentExteriors` index; fix incorrect Rec_Persistent flag check. 2 years ago
psi29a 8976a1594f Merge branch 'clickbait' into 'master'
Replace sSkillNameIds with ESM::Skill::mName

See merge request OpenMW/openmw!3080
2 years ago
elsid 4cbaa722dd Merge branch 'wazabear/lambdascope' into 'master'
Fix lambda scope for postprocess bindings

See merge request OpenMW/openmw!3070
2 years ago
Cody Glassman 6747619cb1 Fix lambda scope for postprocess bindings 2 years ago
Petr Mikheev bf49855d9f Test handling of BSXFlags in bulletnifloader 2 years ago
Petr Mikheev 788a4d32aa Handle DoubleSided and TreeAnim flags in BSLightingShaderProperty. 2 years ago
Petr Mikheev 1b669db017 Load ESM4::Tree and ESM4::Furniture 2 years ago
Evil Eye 9c60a6fa4d Replace sSkillNameIds with ESM::Skill::mName 2 years ago
elsid 731ff90c37
Remove unused include 2 years ago
elsid 947e8f0e94
Use CellStore::mStore instead of MWBase::Environment::get() 2 years ago
psi29a df57f8004b Merge branch 'default' into 'master'
Replace some empty constructors and destructors with default

See merge request OpenMW/openmw!3078
2 years ago
Evil Eye 9214ffb50b Replace some empty constructors and destructors with default 2 years ago
florent.teppe ff9e04062d Applies changes from previous commit
from commit bb1d040ac8
Was lost during rebase.
2 years ago
florent.teppe ad8cfde4e0 ESM::LandData no longer a virtual interface
instead it is constructed from ESM::Land or ESM4::Land
2 years ago
florent.teppe 4c4ed77bd7 Fixes Quad tree terrain missing in some places
the function that queried if data existed or not didn't take the worlspace into account.
2 years ago
florent.teppe b29be74491 ground cover manager and object paging exists per worldspace.
They don't work though. But at least it doesn't crash. You get a morrowind world on top of the skyrim world.
But it fixes the crashes.
2 years ago
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.
2 years ago
florent.teppe 7d88a240d3 no default terrain for esm4 exterior. 2 years ago
florent.teppe 2bb17279df linux build
clang format 14.0

Arm64 build
2 years ago
florent.teppe a9e0489867 fixes stutters => bugs in the way cells were updated. 2 years ago
florent.teppe 0e4d21a40c takes the right terrain bounds. 2 years ago
florent.teppe 7bc4fc6bf9 Fix issues on terrain change
terrain Preloader now preloads the right terrain
2 years ago
florent.teppe d0211acf9e Fixes bug in terrain loading + collision heightmap works
although terrain rendering is 100% broken right now
2 years ago
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.
2 years ago
florent.teppe fffcf52316 land manager cache's key is an ExteriorCellLocation
ESM4::Land is now a ESM::LandData
2 years ago
florent.teppe e0fa15b727 Abstracted Land data that can be used by esm3 and esm4. 2 years ago
florent.teppe e09cf6ac61 enable terrain takes a worldspace as input
enable terrain anslo switches the worldspace.
2 years ago
florent.teppe 1b718f09c5 adding worldspace info to terrain data structures
Rendering manager can have multiple terrain, one for each queried worldspace
Terrain::World has a worldspace member
storage functions require a worldspace parameter.
2 years ago
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.
2 years ago
psi29a 4399748889 Merge branch 'clickbait' into 'master'
Move more arrays to the ESM::Attribute struct

See merge request OpenMW/openmw!3074
2 years ago
elsid 02adb91859
Simplify WorldModel::getAll
There is no need to have generic forEach template function.
2 years ago
psi29a c368c188f2 Merge branch 'fix_position_cell_crash' into 'master'
Use sDefaultWorldspaceId as fallback worldspace for PositionCell command

See merge request OpenMW/openmw!3073
2 years ago
Evil Eye 90a3a7b62f Add mWerewolfGMST 2 years ago
Evil Eye a5e1c87fb8 Remove sGmstAttributeIds, sGmstAttributeDescIds, sAttributeIcons 2 years ago
elsid 06af4cb56a
Use sDefaultWorldspaceId as fallback worldspace for PositionCell command
store is nullptr at this point because there was no cell found.
2 years ago
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.
2 years ago
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.
2 years ago
elsid ce91784085
Move Ptr registry into a separate type
There is no dependency on the rest of the WorldModel state.
2 years ago
unknown 14600de185 Remove sAttributeIds and sSkillIds 2 years ago
elsid d98852fdbe
Use std::count_if to implement WorldModel::countSavedGameRecords 2 years ago
elsid 3a66854c3c
Avoid confusion for generated cell flags 2 years ago
elsid 60139c6bd5
Use WorldModel::mStore instead of MWBase::Environment::get().getESMStore() 2 years ago
elsid 183202cd65
Remove WorldModel::getCellByPosition function
It's used in a single place. Move the code there.
2 years ago
elsid 235eb65c97
Rename positionToCellIndex to match return type 2 years ago
elsid 98e80d65b0
Remove unused include 2 years ago
elsid b6cd6402cc
Use ranged for loop 2 years ago
elsid a04eb9d26c
Move WorldModel::getPtr(const ESM::RefId&, CellStore&) to CellStore
The function does not depend on WorldModel.
2 years ago
elsid df6630a15c
Move WorldModel private functions to bottom
This is API class. A reader most likely need to know public functions first.
2 years ago
elsid 181c894e4c
Skip already visited cells when looking for ptr 2 years ago
elsid 466a7cedbb
Convert pointer to referece where nullptr is not acceptable 2 years ago
elsid 1b116240a3
Try return existing CellStore from WorldModel::getCellStore first 2 years ago
Evil Eye 877f6747be Deduplicate specialization code 2 years ago
elsid dc8dfe81ce
Add more details to exceptions 2 years ago
elsid d852ac20f5
Log loading content file 2 years ago
Mads Buvik Sandvei 85a30c9ad0 Fix signature of MWMechanics::MagicEffects::get. Fix a mistake in the docs. 2 years ago
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
2 years ago
Zackhasacat ef004e5eba Allow creating Activator, Armor, Clothing, Misc, Weapon records via lua 2 years ago
psi29a d3ed04c551 Merge branch 'lua-activeeffects' into 'master'
Lua: Actor api for active effects and active spells

See merge request OpenMW/openmw!3036
2 years ago
Mads Buvik Sandvei 40170d8953 is_automagical false line for ActorStore 2 years ago
Evil Eye 17c8e63d3a Fix invalid memory usage in stats tooltip 2 years ago
Mads Buvik Sandvei 97ea626ba2 Clang'd 2 years ago
Mads Buvik Sandvei 4f88988131 Moved check for actor/non-actor to ActorStore constructor. Refactor ActorSpells type to be an ActorStore type. 2 years ago
Mads Buvik Sandvei 410e8b100a Elsid comments 2 years ago
Mads Buvik Sandvei 4bf23f152b Revert use of string_view to std::string for effectIdTo* methods. 2 years ago
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. 2 years ago
Mads Buvik Sandvei 151521bb68 Unused function 2 years ago
Mads Buvik Sandvei 448658ce5b Check class validity before using it. 2 years ago
Mads Buvik Sandvei 87250bfabf clang warnings/errors 2 years ago
Mads Buvik Sandvei 7ba43c9426 actor.ActiveEffects and actor.ActiveSpells 2 years ago
psi29a 01705485b8 Merge branch 'grow_limit' into 'master'
[Needs testing] Migrate Grow Limit editor feature to a more modern code

See merge request OpenMW/openmw!2637
2 years ago
psi29a 87b15c22f3 Merge branch 'fixcolladaregression' into 'master'
Fix regression with Collada-animated creatures

See merge request OpenMW/openmw!2882
2 years ago
Nelsson Huotari 4abd47f430 Fix regression with Collada-animated creatures 2 years ago
psi29a 2545185d52 Merge branch 'cs_show_magic_effect_name' into 'master'
Show magic effect name instead of IndexRefId (#7366)

Closes #7366

See merge request OpenMW/openmw!3049
2 years ago
psi29a 30305d7bea Merge branch 'topicloop' into 'master'
Detect service refusal in constant time

See merge request OpenMW/openmw!3053
2 years ago
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
2 years ago
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
2 years ago
Evil Eye 11f875d9c4 Detect service refusal in constant time 2 years ago
elsid e537d1d0d4
Ignore missing localization string files by esmtool
Dawnguard.esm from Skyrim depends on files stored in Dawnguard.bsa which is not
processed by esmtool.
2 years ago
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.
2 years ago
Evil Eye 9728024978 Replace compare with more idiomatic methods 2 years ago
elsid 8f47da46ec
Show magic effect name instead of IndexRefId 2 years ago
elsid bb1d040ac8
Use settings values for Cells settings 2 years ago
elsid 585cf377ed
Use bool instead of std::stringstream::view
view is not supported by libc++ used for macOS builds.
2 years ago
psi29a 6f8c152487 Merge branch 'convert_camera_settings' into 'master'
Use settings values for Camera settings (#6876)

See merge request OpenMW/openmw!3041
2 years ago
psi29a dab616f4e2 Merge branch 'guiew' into 'master'
Use string_view in more places and reduce the number of empty string literals

See merge request OpenMW/openmw!3042
2 years ago
elsid 63e01d86a3
Use string based UniversalId to check script for blacklist
Blacklist is a vector of strings and isBlacklisted internally calls getId which
throws exception for RefId based UniversalId.
2 years ago
elsid 0aa569d4fe
Add UniversalId argument type to exception message on invalid access 2 years ago
elsid 292983d57a
Show UniversalId value for all argument types in reports 2 years ago
elsid 7ba397da7d
Use std::span and std::string to define UniversalId related TypeData 2 years ago