Commit Graph

7526 Commits (7cea0344b28125c5afbff74c234d4c942597f552)

Author SHA1 Message Date
Evil Eye 79b3855c5b Move TimeStamp to ESM3 and remove sized reads 1 year ago
Petr Mikheev 9a9f9d7081 Adjust FormId in FormIdRefId and for items in containers when loading saves 1 year ago
Petr Mikheev 2b601eea6d Fix crash related to async content loading (#7508) 1 year ago
elsid dd54857610
Add missing array include 1 year ago
elsid c9c32d9a0d
Cleanup includes 1 year ago
Andrei Kortunov d8ec78d732 Fix some Coverity warnings 1 year ago
psi29a 81deb3796b Merge branch 'loadSSEAlchemyTable' into 'master'
Load SSE alchemy table

See merge request OpenMW/openmw!3267
1 year ago
alekulyn d2896945e8 Load SSE alchemy table 1 year ago
psi29a a6d6e16d48 Merge branch 'readsize' into 'master'
Disallow implicitly sized reads of ESM structs

See merge request OpenMW/openmw!3100
1 year ago
elsid 9acb93ab29
Use settings values for Map settings 1 year ago
elsid bdb4808588
Remove unused local map hud widget size setting
Unused since d1a3cc98ff
1 year ago
psi29a e76ce6b696 Merge branch 'fix_find_path' into 'master'
Remove stepping from findSmoothPath and other tweaks (#7241 , #7485)

Closes #7485 and #7241

See merge request OpenMW/openmw!3264
1 year ago
psi29a 3e16ef7445 Merge branch 'esm4_achr' into 'master'
Load ESM4 actors (no rendering yet)

See merge request OpenMW/openmw!3278
1 year ago
psi29a f5677aa352 Merge branch 'settings_values_input' into 'master'
Use settings values for Input settings (#6876)

See merge request OpenMW/openmw!3265
1 year ago
psi29a e073eab05e Merge branch 'more_evade_directions' into 'master'
Use more evade directions and filter by supporting animation (#7450)

Closes #7450

See merge request OpenMW/openmw!3210
1 year ago
Petr Mikheev 9b511fdf7a Load ESM4 actors 1 year ago
Mads Buvik Sandvei 364f2a98e9 Use refnum instead of slot for items during spellcast 1 year ago
psi29a 2c989e4057 Merge branch 'coverityfixes' into 'master'
Correct some things based on Coverity's output

See merge request OpenMW/openmw!3272
1 year ago
psi29a a99aa38d45 Merge branch 'mnam' into 'master'
Read STAT::MNAM

See merge request OpenMW/openmw!3273
1 year ago
psi29a 466b2f1b74 Merge branch 'mantlingtalos' into 'master'
Copy triangle data from NiSkinPartition, a.k.a. SKYRIM TREES

See merge request OpenMW/openmw!3235
1 year ago
Alexei Kotov 32022e9b5c Read STAT::MNAM 1 year ago
Alexei Kotov 353b06325e Fix unintended sign extension in compressed BSA hash generation
Which, however, never happens with non-ASCII characters
1 year ago
Alexei Kotov a8119f3863 Fix vertex color emissive lighting mode handling 1 year ago
Alexei Kotov 0d70ae5028 Clean up primitive set copying 1 year ago
Alexei Kotov 3f252eab5d Copy triangle data from NiSkinPartition 1 year ago
elsid 6c18723bc7
Use settings values for Input settings 1 year ago
elsid e00eb50587
Remove stepping from findSmoothPath
This is not used anyway. There are features like smooth movement which remove
all redundant points.

Use single findStraightPath call instead of multiple.
1 year ago
elsid 767a14587c
Add more debug logging on navmesh generation 1 year ago
elsid b4868c6094
Filter evade directions by supported animations
To avoid trying those which will not lead to any actor movement due to absent
animation.
1 year ago
elsid 9817f4ca9a
Find closest position on navmesh to start and end before poly path
Start and end might not be located on navmesh and findPath may give wrong
results.
1 year ago
elsid 3dfea1dc1b
Make OutputTransformIterator more generic 1 year ago
elsid de3a6ca6e6
Use std::span for findPath pathBuffer 1 year ago
elsid c334176d73
Use std::span for makeSmoothPath polygonPath 1 year ago
elsid 548c38f54d
Remove unused code 1 year ago
elsid 350027c588
Remove redundant NavMesh argument from findSmoothPath 1 year ago
elsid fcea153947
Transform path coordinates outside findSmoothPath 1 year ago
Alexei Kotov d6e420fb48 Handle BSShader specular flag 1 year ago
psi29a 62ef209185 Merge branch 'readingbooksbutnotquite' into 'master'
Read bhkLimitedHingeConstraint

See merge request OpenMW/openmw!3254
1 year ago
psi29a 686281d276 Merge branch 'helgenkeepcalm' into 'master'
NIF additions relevant to Helgen Keep

See merge request OpenMW/openmw!3252
1 year ago
psi29a dc405df0a5 Merge branch 'morrowind_tests' into 'master'
Add Morrowind specific tests

See merge request OpenMW/openmw!2117
1 year ago
Evil Eye 6e5d84ce37 inline 1 year ago
elsid 5a0ad8cdd7
Add Morrowind specific tests 1 year ago
elsid 9bff292a29
Log path to navmesh.db 1 year ago
Evil Eye 9d4877d432 Treat std::array like regular arrays 1 year ago
psi29a c80a8d5293 Merge branch 'amaranth' into 'master'
Add polygon offset to decals in Skyrim models, reducing Z-fighting

See merge request OpenMW/openmw!3237
1 year ago
psi29a 9410eed9e5 Merge branch 'bump-cmake-version' into 'master'
Bump required CMake version to 3.16

See merge request OpenMW/openmw!3242
1 year ago
Evil Eye 45ba05c0ed Disallow implicitly sized reads of ESM structs 1 year ago
Alexei Kotov 6b6a3bcfca Make decal rendering more accurate for Skyrim models, reducing Z-fighting 1 year ago
psi29a ec9b4c4563 Merge branch 'caius4friends' into 'master'
Fix dialogue insertion again

See merge request OpenMW/openmw!3212
1 year ago
psi29a 03dbe1c9f3 Merge branch 'stringrefidskills' into 'master'
Assign StringRefIds to skills

See merge request OpenMW/openmw!3146
1 year ago
Alexei Kotov 6c4957fe4a Read bhkLimitedHingeConstraint 1 year ago
Alexei Kotov d2c797aee9 Read BSDamageStage 1 year ago
Alexei Kotov 5a3dce160c Read NiBoolTimelineInterpolator 1 year ago
Alexei Kotov 4265524ad5 Read BSRangeNode and BSBlastNode 1 year ago
Alexei Kotov fa39f04a3a Read BSBehaviorGraphExtraData 1 year ago
Alexei Kotov e710e94304 Read BSLightingShaderPropertyColorController 1 year ago
Alexei Kotov c34157fc28 Fix bhkConstraintMotorCInfo loading 1 year ago
AnyOldName3 34fcfb63cf Eliminate redundant version checks 1 year ago
psi29a baa67893b6 Merge branch 'settings_values_gui' into 'master'
Use settings values for GUI settings (#6876)

See merge request OpenMW/openmw!3238
1 year ago
psi29a 85822eca45 Merge branch 'darkmagic' into 'master'
Implement the NegativeLight flag

Closes #7477

See merge request OpenMW/openmw!3240
1 year ago
Alexei Kotov 727e5c5af2 Read IDLM model data 1 year ago
Alexei Kotov 1e7fef979a Skip MISC destruction data 1 year ago
Alexei Kotov 09f6032c9b Skip TACT::VMAD/MODS 1 year ago
Alexei Kotov 332f38b7ab Read SCRL::YNAM/ZNAM 1 year ago
Alexei Kotov 7e1e43f9c6 Allow GMSTs with empty EDID 1 year ago
Alexei Kotov 22cc7f3020 Skip LIGH destruction data 1 year ago
Evil Eye 2a1d520c9e Address feedback 1 year ago
Evil Eye 7573004efc Implement the NegativeLight flag 1 year ago
elsid d113f0fc44
Use settings values for GUI settings 1 year ago
Alexei Kotov 25f5c5651d Sort ESM3ExteriorCellRefIds earlier than StringRefIds
Causes inconsistency with the serialized type enumeration, but necessary for COC to work correctly
1 year ago
psi29a 98bb9fc125 Merge branch 'deserializedeez' into 'master'
Make RefId::deserializeText return an empty RefId if no pre-existing StringRefId can be found

See merge request OpenMW/openmw!3226
1 year ago
psi29a abb71eeb53 Merge branch 'plannedobsolescence' into 'master'
Allow compilation with MYGUI_DONT_USE_OBSOLETE

See merge request OpenMW/openmw!3232
1 year ago
psi29a 5bc06b3678 Merge branch 'bhkconstraint' into 'master'
Read bhkRagdollConstraint and bhkHingeConstraint

See merge request OpenMW/openmw!3231
1 year ago
Evil Eye a0127dd7e4 Allow compilation with MYGUI_DONT_USE_OBSOLETE 1 year ago
Alexei Kotov 65fe89d8af Read NiTextureTransformController 1 year ago
Alexei Kotov ed8fd81714 Don't mess with A/B hardcoding in constraints 1 year ago
Alexei Kotov eb3e762c50 Read bhkHingeConstraint 1 year ago
Alexei Kotov 83be42893d Read bhkRagdollConstraint 1 year ago
Alexei Kotov 723f5c58e1 Add bhkConstraint 1 year ago
Alexei Kotov d8f50553af Move Skyrim shader property controllers to controllers 1 year ago
Evil Eye cd8f2355c0 Only allow StringRefId for Skill ids 1 year ago
psi29a ce84fdf5f5 Merge branch 'limitedpower' into 'master'
Cap global map cell size (bug #6222)

Closes #6222

See merge request OpenMW/openmw!3225
1 year ago
Evil Eye 7b909c8d24 Create getRefIds 2 years ago
Evil Eye 967b5d205b Use StringRefId for skills 2 years ago
Evil Eye ac9378fa08 Replace Skill::mIndex with Skill::refIdToIndex 2 years ago
Evil Eye c59032fd66 Make RefId::deserializeText return an empty RefId if no pre-existing StringRefId can be found 2 years ago
psi29a 7952b27c26 Merge branch 'xptl' into 'master'
Skip REFR::XPTL

See merge request OpenMW/openmw!3224
2 years ago
Alexei Dobrohotov 39c84c84da Cap global map cell size (bug #6222) 2 years ago
psi29a 3a1ae9df58 Merge branch 'nsaids-for-shared-memory-structs' into 'master'
Share the dump directory for crash and freeze dumps

See merge request OpenMW/openmw!3221
2 years ago
psi29a 41abbae3e7 Merge branch 'sittingontheoverlap' into 'master'
Allow subrecords to overlap the following record (bug #6025)

Closes #6025

See merge request OpenMW/openmw!3215
2 years ago
Alexei Dobrohotov c6882dbc6b Skip REFR::XPTL
Needed by Yukichigai Unofficial Patch
2 years ago
AnyOldName3 f239988c06 Remove unused function 2 years ago
AnyOldName3 899f0a4633 Remove redundant explicit null terminator 2 years ago
AnyOldName3 677c17530e I don't like reformatting things over and over. 2 years ago
AnyOldName3 1bdcb5d6d9 Share the dump directory for crash and freeze dumps
This means the shared memory struct is just 255 bytes longer than a few
commits ago instead of 32K.

Also introduce a function for putting path strings in the shared memory
as there was too much copied and pasted code and it was error-prone.

Also free some handles once we're done with them so they don't leak.
2 years ago
Evil Eye 4eac137109 Change control flow to be easier to understand 2 years ago
Alexei Dobrohotov 5adda00f5e Content selector: allow using non-primary game files as addon files 2 years ago
psi29a 1268dde8fe Merge branch 'metermarker' into 'master'
Don't discard collision for the entire tree if BSXFlags marker flag is set

See merge request OpenMW/openmw!3216
2 years ago
Alexei Dobrohotov d589b46f96 Launcher, content selector: support ESM4 files
Cell name loader ignores ESM4 files
2 years ago
alekulyn b085a52681 Add template Nif record 2 years ago
alekulyn 4b90352c2f Add RC value to BSLightingShaderPropertyFloatController and change the revelant RC value in niffile 2 years ago
alekulyn 589726d4f8 Enchanting table fully ready 2 years ago
alekulyn ed532b5aca Add BSEffectShaderPropertyFloatController record reading 2 years ago
alekulyn 7ea2ea96b6 Read new nodes pt1 2 years ago
Alexei Dobrohotov 2de8c6b3c0 Don't discard collision for the entire tree if BSXFlags marker flag is set 2 years ago
Alexei Dobrohotov 66fd1f8862 Allow subrecords to overlap the following record (bug #6025) 2 years ago
psi29a d9027f7eef Merge branch 'falloutfalloffnthtimesthecharm' into 'master'
BSEffectShader/NoLighting fixes

See merge request OpenMW/openmw!3211
2 years ago
Evil Eye d3c1928f01 Fix dialogue insertion again 2 years ago
Alexei Dobrohotov 52a16e0e93 BSEffectShader/NoLighting fixes
Don't hijack BSShader::NoLighting for BSEffectShader functionality
(Fallout meshes break if you use the actual emissive color as a base color)
Don't use falloff for textureless NoLighting objects
Use falloff flag for BSEffectShader
2 years ago
psi29a a755fa0f34 Merge branch 'cleanup_includes' into 'master'
Cleanup includes

See merge request OpenMW/openmw!3203
2 years ago
psi29a 81f8d16982 Merge branch 'loadBsTriShape' into 'master'
Load BSTriShape NIF nodes

See merge request OpenMW/openmw!3099
2 years ago
alekulyn 74aa7b947a Load BSTriShape NIF nodes 2 years ago
psi29a da592356f1 Merge branch 'no-crash-dump-in-temp' into 'master'
Don't put crash dumps in Temp on Windows

Closes #7455

See merge request OpenMW/openmw!3200
2 years ago
elsid f6fce5ee15
Cleanup includes 2 years ago
psi29a cab47d0a2a Merge branch 'settings_values_general' into 'master'
Use settings values for General settings (#6876)

See merge request OpenMW/openmw!3198
2 years ago
psi29a 2a534576de Merge branch 'fix-the-comments-again' into 'master'
Restore and clarify comments damaged by !2971

Closes #7350 and #7349

See merge request OpenMW/openmw!2979
2 years ago
AnyOldName3 106dbba086 Restore and clarify comments damaged by !2971 2 years ago
Petr Mikheev fb7ba40385 Merge branch 'lua-bb-once-and-for-all' into 'master'
Lua - Fix BB once and for all

See merge request OpenMW/openmw!3143
2 years ago
AnyOldName3 48368f79b6 Update Windows crash dump path once we know where we're logging
Manual rewrite of 5102f4b11d
2 years ago
AnyOldName3 72d99237e3 This would never have happened had clang format not tried making this function wrogn in the first place 2 years ago
AnyOldName3 1bcbc4f53f Undo clang format change because clang format in CI disagrees with clang format on my computer 2 years ago
AnyOldName3 3bb3f58c73 Don't put crash dumps in Temp on Windows
Well... unless we fail to get the user profile directory.

Also put freeze dumps in a more appropriately-named file.

Discussed in https://gitlab.com/OpenMW/openmw/-/issues/7455

Manual rewrite of c21695c951

As well as that, I found a bug where the crash dump path was being converted from a std::filesystem::path to a utf8-encoded std::string, then passed to the crash catcher, which converted it to a std::filesystem::path implicitly, but using the system eight-bit code page, which wouldn't usually be UTF-8. That's now fixed by passing the function that expects a path a path instead of a string.
2 years ago
elsid ebb8fdc698
Use settings values for General settings 2 years ago
glassmancody.info a659d2eaeb lua - fix bounding box once and for all 2 years ago
elsid a6dbd819a1
Fix writing IndexRefId to ESM3
Use correct enum value.
2 years ago
psi29a 050fc20379 Merge branch 'settings_values_game' into 'master'
Use settings values for Game settings (#6876)

See merge request OpenMW/openmw!3188
2 years ago
psi29a 6601b0cb15 Merge branch 'fastandloose' into 'master'
Drop support for --fs-strict

Closes #7394

See merge request OpenMW/openmw!3093
2 years ago
elsid 6e8dcc16c6
Use settings values for Game settings 2 years ago
elsid 86e5b94ef6
Convert setting value int to CollisionShapeType on initialization 2 years ago
psi29a fc5d73648a Merge branch 'schooled' into 'master'
Merge magic schools into skills

See merge request OpenMW/openmw!3148
2 years ago
alekulyn 683fb0a342 Templated nif reader function modelled after cc9cii's reader 2 years ago
Evil Eye 73c2387708 Merge schools into skills 2 years ago
psi29a 31efad1dd0 Merge branch 'fix_model_path' into 'master'
Fix #7403: incorrect model path for records created by Lua scripts

Closes #7403

See merge request OpenMW/openmw!3151
2 years ago
psi29a dd0d66513d Merge branch 'clickbait' into 'master'
Mostly dehardcode attributes

See merge request OpenMW/openmw!3164
2 years ago
psi29a 558b3cbf60 Merge branch 'particles_fix' into 'master'
Create a stateset for every particle system to create its own defineMap

Closes #7304

See merge request OpenMW/openmw!3162
2 years ago
Andrei Kortunov a08d921c4c Create a stateset for every particle system to create its own defineMap 2 years ago
psi29a 47b1247fa2 Merge branch 'l10n' into 'master'
Make configurable whether GMST strings have priority over built-in interface messages

See merge request OpenMW/openmw!3134
2 years ago
psi29a abdd4f5207 Merge branch 'lua_potion_magic' into 'master'
Lua: Add effects to potionRecord, ingredientRecord

See merge request OpenMW/openmw!3160
2 years ago
Zackhasacat 611a6429a9 Lua: Add effects to potionRecord, ingredientRecord 2 years ago
psi29a 68415a952e Merge branch 'lua_quat' into 'master'
Breaking change in Lua API: change obj.rotation from Euler angles to Quaternion

See merge request OpenMW/openmw!3123
2 years ago
Andrei Kortunov 2ea7eb4ba8 Simplify file_time_type to time_t conversion 2 years ago
Evil Eye bac6777fae Reduce the number of magic numbers 2 years ago
Petr Mikheev 2f16a8d27c Fix incorrect model part for records created by Lua scripts 2 years ago
Bret Curtis d582a26e4c Set the default to CLAMP_TO_EDGE in case it was not explicity called for 2 years ago
Bret Curtis 30da8a27ba small revert, "It is copying a texture, it is not a default initialized one. The source texture may or may not want GL_CLAMP_TO_EDGE." 2 years ago
Bret Curtis 0b1a0ad1a8 only 4 deep 2 years ago
Bret Curtis ff6944701f Be more explicit about use of CLAMP_TO_EDGE instead of defaulting to GL CLAMP 2 years ago
elsid 04215ca9ec
Use settings values for Fog settings 2 years ago
psi29a 1630e04d1b Merge branch 'fix_7423' into 'master'
Fix #7422, #7423, #7424

Closes #7424, #7423, and #7422

See merge request OpenMW/openmw!3136
2 years ago
psi29a 807893eb45 Merge branch 'clickbait' into 'master'
Mostly dehardcode skills

See merge request OpenMW/openmw!3112
2 years ago
Petr Mikheev ab7eebb356 Fix #7423 (too strict fallback validation) 2 years ago
Petr Mikheev 718d5e4a71 Add setting "gmst overrides l10n" 2 years ago
Petr Mikheev 96399b3d23 Add fallbacks to Store<ESM::GameSetting> 2 years ago
Petr Mikheev be45b8199e Whitelist and type validation for fallbacks 2 years ago
Petr Mikheev 3b43cc2aea Lua: change obj.rotation from Euler angles to Quaternion 2 years ago
Evil Eye 3c588900dd Apply elsid's suggestion and revert 3a888ef543 2 years ago
elsid 180dd7dc64
Log worldspace in RecastContext 2 years ago
elsid f9e9368fda
Add operator<< for DetourSettings 2 years ago
elsid dd08154b23
Add operator<< for DetourNavigator::AreaCosts 2 years ago
elsid ce5fbd6b68
Write separator between Detour status flags 2 years ago
psi29a 25a719700b Merge branch 'esmtool_fallout_nv' into 'master'
Support FalloutNV.esm

See merge request OpenMW/openmw!3065
2 years ago
psi29a ec2f0e4645 Merge branch 'fragile' into 'master'
More closely replicate Morrowind.exe's locks

Closes #7415

See merge request OpenMW/openmw!3116
2 years ago
elsid 11204d35d6
Use zlib directly for ESM4
Fallback to decompression by block of fixed size when decompressing the
whole archive fails.
2 years ago
elsid f841a1377f
Skip ATTR subrecord in CLAS record
Present in FalloutNV.esm.
2 years ago
psi29a 2686e586e5 Merge branch 'dev-7019' into 'master'
Fix improper access of stereo manager by other shared components

See merge request OpenMW/openmw!2437
2 years ago
Evil Eye f5a20d1e9c Change include guard name 2 years ago
Evil Eye e8ddccaefe Use std::transform 2 years ago
Evil Eye e791d2b498 Fix unit tests 2 years ago
Evil Eye eeda48ec50 Drop support for --fs-strict 2 years ago
Evil Eye da4e04522b More closely replicate Morrowind.exe's locks 2 years ago
Evil Eye 65b22975c9 Remove SkillEnum 2 years ago
Evil Eye 16c0f0d5cc Use a regular TypedDynamicStore for ESM:Skill 2 years ago
elsid 7d11a18907
Allow any integer number >= 0 for antialiasing level
There is wider support than just specific powers of two. The supported level
will be detected anyway.
2 years ago
psi29a 25c1e6abee Merge branch 'clickbait' into 'master'
Use std::array in various ESM structs

See merge request OpenMW/openmw!3103
2 years ago
psi29a 2f5bfb4df2 Merge branch 'fix-#7410' into 'master'
fix #7410

Closes #7410

See merge request OpenMW/openmw!3104
2 years ago
elsid e8ef1a2a0c
Add default initialization for ESM4::TeleportDest::flags 2 years ago
elsid 67e32abd4f
Add default initialization to ESM::Position members 2 years ago
florent.teppe 04e026c53f getRecNameString now constexpr
getTypeDescription uses a static constexpr variable so we don't return ref to temp memory.
2 years ago
Evil Eye e01a3076dd Use std::array in NpcStats 2 years ago
Evil Eye a5bb6c7d8d Use std::array in NPDTstruct52 2 years ago
Evil Eye dd83da5eba Use std::array in FADTstruct 2 years ago
Evil Eye 7be005c9a5 Use std::array in CLDTstruct 2 years ago
Evil Eye 8a474b9807 Use std::array in RADTstruct 2 years ago
psi29a 55cd30ea3b Merge branch 'string_ref_id_utf8' into 'master'
Support UTF-8 by StringRefId::toDebugString (#7407)

Closes #7407

See merge request OpenMW/openmw!3096
2 years ago
psi29a cc213fb437 Merge branch 'loadBsInvMarker' into 'master'
Load BSInvMarker NIF nodes

See merge request OpenMW/openmw!3092
2 years ago
psi29a 4335667d32 Merge branch 'esm4_cleanup' into 'master'
Clean up components/esm4

See merge request OpenMW/openmw!3086
2 years ago
psi29a 0bb652d7ce Merge branch 'clickbait' into 'master'
Resolve Attribute GMSTs

See merge request OpenMW/openmw!3090
2 years ago
alekulyn dc860ca302 Load BSInvMarker NIF nodes 2 years ago
elsid 78b3f7288a
Support UTF-8 by StringRefId::toDebugString 2 years ago
jvoisin 3152078c7e Restore missing std::endl removed by an overeager regex 2 years ago
jvoisin 0e33730f5d Remove useless logging
As suggested in https://gitlab.com/OpenMW/openmw/-/merge_requests/3086#note_1413234840
2 years ago
jvoisin a58dc6fd30 Use the logging system instead of std::cout in components/esm4
- Remove debug-related includes
- Add some trivial missing includes
- Remove useless {}
- Move the known-but-skipped-records are the end of the switch-cases
- Always throw on unknown records
2 years ago
psi29a 27a879de9a Merge branch 'tree_and_furniture' into 'master'
Load ESM4::Tree and ESM4::Furniture

See merge request OpenMW/openmw!3040
2 years ago
psi29a 83c8312060 Merge branch 'esm4_cell_fixes' into 'master'
A few fixes related to ESM4::Cell

See merge request OpenMW/openmw!3083
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
Petr Mikheev 5cb4c66266 Avoid using ESM4::Cell with uninitialized fields 2 years ago
Petr Mikheev 19fb9f8e14 Handle editor marker bit in BSXFlags 2 years ago
Petr Mikheev 788a4d32aa Handle DoubleSided and TreeAnim flags in BSLightingShaderProperty. 2 years ago
Petr Mikheev fd90a8c9b4 Hide Nif nodes with name "EditorMarker". 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
florent.teppe 9f9a6c06e0 Fix get vertex Height for esm4 2 years ago
florent.teppe 5dfa06acf8 removes unused variable
it was already mostly unused, it was usefull only in the constructor, even though it was a paramater of the constructor, so it could have been removed.
2 years ago
florent.teppe 12304d36aa std::cout => Log(Debug::Verbose) 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
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 f600730459 fixes functions that were virtual but not tagged as override. 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 427b6ea39a fix bug in "fixColour" and "fixNormal"
fix issue in vtx texture selection
2 years ago
florent.teppe c2e652b8a0 getLand taken out of loop where it's value would always be the same. 2 years ago
florent.teppe feb60f5ad8 One landsize variable instead of two.
fixes issues in constant values.
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 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
Evil Eye 90a3a7b62f Add mWerewolfGMST 2 years ago
Evil Eye a5e1c87fb8 Remove sGmstAttributeIds, sGmstAttributeDescIds, sAttributeIcons 2 years ago
psi29a 16a580eb21 Merge branch 'clickbait' into 'master'
Remove sAttributeIds and sSkillIds

See merge request OpenMW/openmw!3071
2 years ago
psi29a 052972033c Merge branch 'get_rid_of_asserts_in_esm' into 'master'
Replace all asserts in components/esm[34] with throw

See merge request OpenMW/openmw!3069
2 years ago
unknown 14600de185 Remove sAttributeIds and sSkillIds 2 years ago
jvoisin c98c532213 Replace all asserts in components/esm[34] with throw 2 years ago
elsid 235eb65c97
Rename positionToCellIndex to match return type 2 years ago
psi29a 05555947c3 Merge branch 'specialdedup' into 'master'
Deduplicate specialization code

See merge request OpenMW/openmw!3063
2 years ago
jvoisin 44a65512e8 Replace another assert with a throw 2 years ago
Evil Eye 877f6747be Deduplicate specialization code 2 years ago
elsid dc8dfe81ce
Add more details to exceptions 2 years ago
Pierre Mossler e6838cddc7 missing include in attr.cpp 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
Petr Mikheev e74161ea8e Merge branch 'slashrslashmarijuanaenthusiasts' into 'master'
Improve Skyrim tree loading (limited)

See merge request OpenMW/openmw!3054
2 years ago
elsid 89eccab7f1
Add missing include
In file included from /home/elsid/dev/openmw/apps/openmw_test_suite/settings/testvalues.cpp:1:
/home/elsid/dev/openmw/components/misc/strings/conversion.hpp: In function ‘std::string Misc::StringUtils::toHex(std::string_view)’:
/home/elsid/dev/openmw/components/misc/strings/conversion.hpp:139:87: error: ‘uint8_t’ in namespace ‘std’ does not name a type; did you mean ‘wint_t’?
  139 |             const std::ptrdiff_t space = static_cast<std::ptrdiff_t>(static_cast<std::uint8_t>(v) <= 0xf);
      |                                                                                       ^~~~~~~
      |                                                                                       wint_t
/home/elsid/dev/openmw/components/misc/strings/conversion.hpp:140:97: error: ‘uint8_t’ in namespace ‘std’ does not name a type; did you mean ‘wint_t’?
  140 |             const auto [ptr, ec] = std::to_chars(out + space, out + space + 2, static_cast<std::uint8_t>(v), 16);
      |                                                                                                 ^~~~~~~
      |                                                                                                 wint_t
2 years ago
Mads Buvik Sandvei 410e8b100a Elsid comments 2 years ago
Mads Buvik Sandvei 5a8c6df633 clang'd 2 years ago
Mads Buvik Sandvei 4bf23f152b Revert use of string_view to std::string for effectIdTo* methods. 2 years ago
Mads Buvik Sandvei 6cfc06d7d8 There is no typo 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 b791ce9132 Remove redundant qualifiers 2 years ago
Mads Buvik Sandvei 7ba43c9426 actor.ActiveEffects and actor.ActiveSpells 2 years ago
elsid 2f18da08d7
Add missing include 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 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
Alexei Dobrohotov a983977e6a Fix NiSkinData loading for >4.2.1.0 2 years ago
elsid 7c16ecb258
Skip more unknown ESM4 subrecords
CNAM from HDPT is a part of Dawnguard.esm.
ATKR from RACE is a part of Dawnguard.esm.
CIS2 from SCRL is a part of Dragonborn.esm.
SPMV from RACE is a part of Dragonborn.esm.
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
Alexei Dobrohotov 1b5e904285 Read BSMultiBound et al. 2 years ago
Alexei Kotov 401ebfd7f2 Merge branch 'fix_oblivion_loading' into 'master'
Fix Oblivion loading

See merge request OpenMW/openmw!3050
2 years ago
Evil Eye 9728024978 Replace compare with more idiomatic methods 2 years ago
jvoisin 7f191a2a8a Merge branch 'if_all_the_asserts' into 'master'
Replace all the `asserts` with `throw` in components/esm4/reader.cpp

See merge request OpenMW/openmw!3047
2 years ago
jvoisin a9bf671992 Fix Oblivion loading
Found by elsid@, and due to !3043
2 years ago
Evil Eye 3138eb406b Fix case sensitive comparison 2 years ago
elsid 8f47da46ec
Show magic effect name instead of IndexRefId 2 years ago
jvoisin 8b654f276d Replace all the `asserts` with `throw` in components/esm4/reader.cpp 2 years ago
jvoisin 6da3c3e200 Fix a gcc warning about copy
```
/home/jvoisin/dev/openmw/openmw/components/fontloader/fontloader.cpp:532:29: warning: loop variable '[key, value]' creates a copy from type 'std::pair<const int, int> const' [-Wrange-loop-construct]
            for (const auto [key, value] : additional)
                            ^
/home/jvoisin/dev/openmw/openmw/components/fontloader/fontloader.cpp:532:18: note: use reference type 'std::pair<const int, int> const &' to prevent copying
            for (const auto [key, value] : additional)
                 ^~~~~~~~~~~~~~~~~~~~~~~~~
                            &
1 warning generated.
```
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
jvoisin 534e20cf3a Replace another `assert` with a `throw`
It fixes the following crash:

```nasm
[----------------------------------registers-----------------------------------]
RAX: 0xffffffffffffffe4
RBX: 0x7fffffffbd88 --> 0x0
RCX: 0x555555861f01 --> 0xd6000055555582fa
RDX: 0x1
RSI: 0x0
RDI: 0xff
RBP: 0x2e94
RSP: 0x7fffffff9bb0 --> 0x0
RIP: 0x55555574e286 (<_ZN4ESM44Cell4loadERNS_6ReaderE+182>:	mov    eax,DWORD PTR [rax+0xc])
R8 : 0x0
R9 : 0x555555836bd0 --> 0x555555861f90 --> 0x100000000000000
R10: 0xffffffff
R11: 0x0
R12: 0x7fffffffbd88 --> 0x0
R13: 0x7fffffffbd30 --> 0x7fffffffbd28 --> 0xff0001
R14: 0x7fffffff9da0 --> 0x10fc
R15: 0x7fffffff9ea8 --> 0x7fffffff9eb8 --> 0x0
EFLAGS: 0x10206 (carry PARITY adjust zero sign trap INTERRUPT direction overflow)
[-------------------------------------code-------------------------------------]
   0x55555574e27c <_ZN4ESM44Cell4loadERNS_6ReaderE+172>:	mov    rdi,r12
   0x55555574e27f <_ZN4ESM44Cell4loadERNS_6ReaderE+175>:	xor    esi,esi
   0x55555574e281 <_ZN4ESM44Cell4loadERNS_6ReaderE+177>:	call   0x5555557edfb0 <_ZNK4ESM46Reader3grpEm>
=> 0x55555574e286 <_ZN4ESM44Cell4loadERNS_6ReaderE+182>:	mov    eax,DWORD PTR [rax+0xc]
   0x55555574e289 <_ZN4ESM44Cell4loadERNS_6ReaderE+185>:	cmp    eax,0xff
   0x55555574e28e <_ZN4ESM44Cell4loadERNS_6ReaderE+190>:	ja     0x55555574e314 <_ZN4ESM44Cell4loadERNS_6ReaderE+324>
   0x55555574e294 <_ZN4ESM44Cell4loadERNS_6ReaderE+196>:	cmp    al,0x5
   0x55555574e296 <_ZN4ESM44Cell4loadERNS_6ReaderE+198>:	jne    0x55555574e314 <_ZN4ESM44Cell4loadERNS_6ReaderE+324>
[------------------------------------stack-------------------------------------]
0000| 0x7fffffff9bb0 --> 0x0
0008| 0x7fffffff9bb8 --> 0x0
0016| 0x7fffffff9bc0 --> 0x0
0024| 0x7fffffff9bc8 --> 0x0
0032| 0x7fffffff9bd0 --> 0x0
0040| 0x7fffffff9bd8 --> 0x0
0048| 0x7fffffff9be0 --> 0x0
0056| 0x7fffffff9be8 --> 0x0
[------------------------------------------------------------------------------]
Legend: code, data, rodata, value
Stopped reason: SIGSEGV
0x000055555574e286 in ESM4::Cell::load (this=0x7fffffff9da0, reader=...) at /home/jvoisin/dev/openmw/openmw/components/esm4/loadcell.cpp:68
68	   if (reader.grp().type == ESM4::Grp_ExteriorSubCell && reader.grp().label.grid[1] == 0
gdb-peda$ bt
    this=<optimized out>, reader=...) at /home/jvoisin/dev/openmw/openmw/apps/esmtool/tes4.cpp:547
    recordInvocable=...) at /home/jvoisin/dev/openmw/openmw/./components/esm4/readerutils.hpp:31
    at /home/jvoisin/dev/openmw/openmw/./components/esm4/readerutils.hpp:23
    at ../csu/libc-start.c:381
```
2 years ago
psi29a 364bc91f5b Merge branch 'fix_element_destroy' into 'master'
Fix bug in LuaUi::Element::destroy() that sometimes leads to an infinite loop on UI cleanup

See merge request OpenMW/openmw!3033
2 years ago
psi29a e1754b840a Merge branch 'fix_empty_vector' into 'master'
Guard an undefined behaviour

Closes #6725

See merge request OpenMW/openmw!3037
2 years ago
Evil Eye 4e05dd3cd3 Make FontWrapper conditional 2 years ago
Evil Eye 492e336c0c Use string_view in more UI code 2 years ago
Alexei Dobrohotov 3e8a9d1de4 Read BSTreeNode, handle as NiNode 2 years ago
Evil Eye 5491512905 Use string_view in more places and reduce the number of empty string literals 2 years ago
elsid 5d5e6844d1
Use settings values for Camera settings 2 years ago
jvoisin 81bd034a9e Guard an undefined behaviour
`std::vector.back()` on an empty `std::vector` is undefined.
This should fix #6725.

Thanks to @Capostrophic for the investigation.
2 years ago
jvoisin cde7aeac3d Replace an `asert` with a conditional throw
The assert is reachable, resulting in a brutal `abort`
instead of a nice exception.
2 years ago
Petr Mikheev c6eed2a6c6 Fix bug in LuaUi::Element::destroy() that sometimes leads to an infinite loop on UI cleanup 2 years ago
psi29a 1ce35fa9e7 Merge branch 'lua-bounding-box' into 'master'
Expose game object's bounding box in lua api

See merge request OpenMW/openmw!3009
2 years ago
Petr Mikheev be26fbdacb Explicitly intialize the fields in `ESM4::Cell` that don't have default constructors. 2 years ago
glassmancody.info a7b7f99d72 Expose game object's bounding box in lua api 2 years ago
Petr Mikheev 61232f4b75 Fix uninitialized mWaterLevel in esm4/loadwrld.cpp 2 years ago
Petr Mikheev 493858127a Drop NIF root node transformation for Skyrim models the same way as for Morrowind models. 2 years ago
Petr Mikheev 29031d0586 Increase ESM4 active grid 2 years ago
elsid 15f3e3ae71
Support ESM4 IDLE record 2 years ago
elsid 584c0dbcdc
Support reading bool GMST by ESM4 2 years ago
elsid 010db45a10
Read ESM::FormId using ESM4::Reader::getFormId 2 years ago
elsid a90aa7d8b2
Count navmeshdb reads for each reading job 2 years ago
elsid 5ae8b9cae1
Report raw navmesh cache counters 2 years ago
elsid a8a76f9a05
Fix BulletShape copy constructor and use for BulletShapeInstance
Copy mVisualCollisionType.
2 years ago
elsid 04d439485b
Log more info about navmesh shapes and jobs 2 years ago
psi29a ab17d0947a Merge branch 'esm4-exterior' into 'master'
Loading ESM4 Exteriors

See merge request OpenMW/openmw!2986
2 years ago
psi29a c15710c35b Merge branch 'settings_values_index' into 'master'
Use typed settings storage for settings window (#6876)

See merge request OpenMW/openmw!2997
2 years ago
florent.teppe a3bd6e7e47 ESM::ExteriorCellIndex => ESM::ExteriorCellLocation 2 years ago
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
2 years ago
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.
2 years ago
florent.teppe 3d06cabf6a indexToPosition moved from world -> esm/util.hpp 2 years ago
florent.teppe 1cf0cd5628 moved mwworld/cellutils.hpp -> esm/util.hpp 2 years ago
florent.teppe 75561abfca Factorises code and fixes preload bug. 2 years ago
florent.teppe 5648e03e9e function to get cellsize depending on the context. 2 years ago
florent.teppe 93b3d9238c mWater level disabled for skyrim. 2 years ago
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
2 years ago
florent.teppe 56cb2a83ec removed sDefaultWorldspace, only sDefaultWorldspaceId now.
sDefaultWorldspaceId is a StringRefId to be able to getvalue easily.
2 years ago
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.
2 years ago
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
2 years ago
florent.teppe d8a782425b can actually load and teleport to esm4 exterior spaces 2 years ago
florent.teppe a62e75fd19 Initial attempt at loading esm4 exteriors 2 years ago
jvoisin 0270cfb733 Merge branch 'throw_with_more_info' into 'master'
show which file is not found

See merge request OpenMW/openmw!3011
2 years ago
Bret Curtis 95fff7b77b show which file is not found 2 years ago
Elias Howell bf8fafa79a fixed some typos and spelling errors 2 years ago
elsid 258ae9d98e
Add settings index to provide lookup by category and name 2 years ago
psi29a cdc753df70 Merge branch 'lua_refactoring' into 'master'
MWLua refactoring

See merge request OpenMW/openmw!2956
2 years ago
jvoisin c7a3f43915 Minor header cleanup
This has been done via CLion's "unused include directive",
set to "detect completely unused".
2 years ago
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.
2 years ago
Petr Mikheev 4562b8c06b Add headers for all `.cpp` files in mwlua; move packages initilaization from LuaManager to luabindings.cpp 2 years ago
Petr Mikheev c362b2efa6 Use LuaUtil::cast for casting sol::object to prevent crashing on type mismatch in Lua scripts. 2 years ago
Petr Mikheev 61578ca39b Add function LuaUtil::cast 2 years ago
psi29a 957318d0b9 Merge branch 'remove_cruft' into 'master'
remove boost::locale::conv

See merge request OpenMW/openmw!2970
2 years ago
psi29a 50bd6cf263 remove boost::locale::conv 2 years ago
Bret Curtis 0db31207dc remove remaining boost::filesystem cruft 2 years ago
elsid 35f4bcd31e
Run openmw_settings_access_benchmark in CI
Add benchmarks to access 2 and 3 settings. Use settings with max memory address
distance assuming Settings::Values is single memory location object.

Use settings-default.cfg from the source code repository to initialize settings.
2 years ago
elsid 0a678224cd
Add category to error message 2 years ago
elsid 05d09d9927
Fix msvc warning 2 years ago
elsid 8e487c283c
Store default settings values 2 years ago
Tetramir 6936c3a1c8 Merge branch 'fix_esm4' into 'master'
Fix regressions in ESM4 reader caused by !2902

See merge request OpenMW/openmw!2957
2 years ago
Petr Mikheev 7b6f0cefb9 Fix regressions in ESM4 reader caused by !2902 2 years ago
Mads Buvik Sandvei 7d69bea7dc Move InitializeStereoOperation to components/stereo 2 years ago
Mads Buvik Sandvei fe066069d7 /components/ code should not access the stereo manager without checking whether or not stereo is enabled first. Stereo component code should not read settings itself, but rather take settings as parameters. 2 years ago
elsid 7a7c20d49e
Define single UpdateGuard type in a separate file 2 years ago
elsid 472a36d92a
Cleanup detournavigator includes 2 years ago
elsid 2cbbdc2879
Add missing files to components/detournavigator list 2 years ago
florent.teppe 3bbf60373a Keep things coherent between references and and cell table 2 years ago
psi29a 70ddca78bf Merge branch 'ref_id_print_tests' into 'master'
Add more tests for printing RefId and clarify some constants

See merge request OpenMW/openmw!2945
2 years ago
elsid 7db14b3392
Add more tests for printing RefId and clarify some constants 2 years ago
elsid c97df7d770
Check FormIdRefId value in constructor 2 years ago
Petr Mikheev 3546d2b3e5 Make Store<ESM4::Reference> to use FormId instead of RefId 2 years ago
Petr Mikheev 00beb06391 Initial Lua bindings for ESM4 types; bindings for ESM4Door. 2 years ago
elsid b8525e8e3d
Fix code format 2 years ago
psi29a ed4e75df65 Merge branch 'fix_includes' into 'master'
Add missing and remove redundant includes

See merge request OpenMW/openmw!2938
2 years ago
fall-leaf cc7e29c9a2 opensuse build fix 2 years ago
elsid b33d12b8e1
Add missing and remove redundant includes 2 years ago
Evil Eye 97fb06d8c9 Add RefId::is 2 years ago
elsid 20129568e6
Replace VisitorCellIdIsESM3Ext with RefId::getIf function 2 years ago
elsid 8f84431840
Do not initialize settings storage for editor 2 years ago
elsid bdc2eb5250
Check only original default settings
When more than 1 user config layers are used we still want to check only the
first layer of default settings loaded from settings-default.cfg.
2 years ago
psi29a ad25e9b154 Merge branch 'settings_storage' into 'master'
Typed settings storage (#6876)

See merge request OpenMW/openmw!2651
2 years ago
Petr Mikheev ff774d6406 Load more ESM4 records 2 years ago
Petr Mikheev f09a689a4f Merge ESM::RefNum and ESM4::FormId 2 years ago
elsid bd10becb65
Use lexicographical comparison in ESM3ExteriorCellRefId::operator< 2 years ago
psi29a ebb5820dd1 Merge branch 'pathgridgraph' into 'master'
Refactor pathgrid indices to use size_t instead of int

See merge request OpenMW/openmw!2900
2 years ago
Evil Eye 8d8207b734 Refactor pathgrid indices to use size_t instead of int 2 years ago
elsid 794050df63
Fix and add tests for ESM3ExteriorCellRefId serialization and text representation 2 years ago
psi29a aad9ce53db Merge branch 'esm4_gmst' into 'master'
Support loading ESM4 GMST records

See merge request OpenMW/openmw!2892
2 years ago
elsid dbed00842e
Split components/esm4/common.hpp header 2 years ago
elsid 87ac85223a
Support loading ESM4 GMST records 2 years ago
florent.teppe 0d17e20490 Implements serialize/deserialize
fixes test compilation.
2 years ago
florent.teppe 21bd28542a Applies review advice
2d coord hash moved to hash.hpp file
format version adds suffix to be more coherent
don't use ESM::RefId::sEmpty
RefId equality with string_view, conversion to refId unecessary
action teleport remove test that mCellId is empty
removes some const references, when copy is enough
invalid refid => empty refid
removes useless change
2 years ago
florent.teppe d782d37ee2 Make sure Vec2iRefId is trivially copyable on GCC 11.3
std::pair<int, int> isn't trivially copyable on some compilers
so a specific struct is defined, it's an int pair, but it should be recognised by GCC 11.3 as trivially copyable

Vec2iRefId => ESM3ExteriorCellRefId

more explcit name and use mX,mY instead of pair
renamed files and enum
2 years ago
florent.teppe 53b14c8b42 fix tests
hopefully also fixes clang tidy
2 years ago
florent.teppe 4c15064a83 Create new Vec2i RefId for ESM3 exterior cells.
Applies the necessary changes to use !2708 for the new Id type
2 years ago
florent.teppe 1e0c3bfdec fixes integration tests
we still want to be able to write using old formats
2 years ago
florent.teppe f99e65843a Removes most cellId.hpp include, simplifies id generation for cells. 2 years ago
florent.teppe c2182c2fcc Get Rid of ESM::CellId almost everywhere
it was a competing concept from using RefIds for cell.
There is almost no point to it now, except to load older data.
2 years ago
florent.teppe fb6701ac1a ESM::CellId is no longer stored on saves. 2 years ago
florent.teppe c39dd576f8 Gets rid of most ESM::CellId 2 years ago
florent.teppe 6895a452ef restores the concept of worldspace for MWWorld::Cell 2 years ago
florent.teppe 9f597ecfea No more Cellid used by ESM4 cells
and that also means it is no longer used by MWWorld::Cell
fixes tests
2 years ago
florent.teppe 3f678c3b0a Dest Door and teleport use ESM::RefId
This changes a lot of files as a consequence.
Still buggy, moving to exterior doesn't bring to the right place yet
coc "seyda neen" doesn't work. SO I broke somehting when fetching a cell from a name
2 years ago
florent.teppe 36502eaf75 ESM3 Cells have an Id.
Store<ESM::Cell> is updated to use it.
2 years ago
Andrei Kortunov 8c6616214b Remove redundant quotes 2 years ago
psi29a ee970db9e0 Merge branch 'player_cell_id_test' into 'master'
Test more ESM::Player records

See merge request OpenMW/openmw!2888
2 years ago
psi29a 0a791528bc Merge branch 'fix_index_ref_id_hash' into 'master'
Shift record type value for IndexRefId hash

See merge request OpenMW/openmw!2885
2 years ago
elsid 9162eaa019
Test more ESM::Player records 2 years ago
elsid 171a25645a
Make sure there are tests for all RefId types 2 years ago
elsid 258aec223a
Shift record type value for IndexRefId hash 2 years ago
Mads Buvik Sandvei e666f36b60 [Multiview] Fix transparent pass and vertex shader 2 years ago
psi29a 1a1f983930 Merge branch 'omwscripts_in_launcher' into 'master'
Support adding Lua mods in subdirectories in the launcher

See merge request OpenMW/openmw!2874
2 years ago
psi29a 119163e74b Merge branch 'fixemptycollisioncrash' into 'master'
Make empty collision shape for objects without any triangles.

Closes #7077

See merge request OpenMW/openmw!2871
2 years ago
psi29a 0c074990ce Merge branch 'fix_lazy_load_skyrim' into 'master'
Fix lazy load skyrim

See merge request OpenMW/openmw!2861
2 years ago
uramer ee1551f02c Merge branch 'l10n' into 'master'
Dehardcode non-game-specific localization GMSTs

See merge request OpenMW/openmw!2855
2 years ago
fredzio 37c4587ca4 Display directories that contains omwscripts.
Display newly added omwscripts as new.
2 years ago
unelsson 3d4da02b18 Don't mess around with btEmptyShape. Use nullptr instead. 2 years ago
elsid 3e99deb0e8
Use typed settings storage for detournavigator 2 years ago
elsid db7d0adfe8
Define settings values based on documentation
Using docs/source/reference/modding/settings/*.rst and
files/settings-default.cfg files content.
2 years ago
elsid 3bad40153c
Define typed settings storage with single time initialization
To make sure loaded settings have valid values doing the check once per loading.
And to make access more efficient.
2 years ago
florent.teppe a3a7767093 applies review changes
filepos changed to an actual file pos
moved lambda declaration out of function call
2 years ago
florent.teppe 464092e323 fix oblivion and skyrim 2 years ago
florent.teppe 34dd24b261 Initial changes to detect when context isn't usable 2 years ago
unelsson 0a1af644af Make empty collision shape for objects without any triangles. 2 years ago
psi29a cd6413c060 Merge branch 'fix_dialogue_title' into 'master'
Show original dialogue name

See merge request OpenMW/openmw!2862
2 years ago
Petr Mikheev 0769e3daf0 Fix #7294 (launcher creates new contentlist everytime) 2 years ago
elsid 452d1e7e49
Store original string id for Dialogue records 2 years ago
elsid 06f42ba69c
Use fixed size enum type for ESM::Dialogue::mType 2 years ago
elsid 4716583f3e
Set ESM::Dialogue::mType on blank and skip load 2 years ago
elsid 90ed24f4c9
Split type traits for ESM4, ESM3 and unite common 2 years ago
elsid d5954aba68
Add suffix to the format version name 2 years ago
Petr Mikheev 618b912a20 Dehardcode non-game-specific localization GMSTs; Update l10n files. 2 years ago
psi29a 8f80895b59 Merge branch 'build_fix' into 'master'
Add missing include

See merge request OpenMW/openmw!2860
2 years ago
Andrei Kortunov e1bee039ac Add missing include 2 years ago
elsid b7fdca0fe6
Use serialized ESM::RefId for Lua records 2 years ago
elsid cd4027ffd6
Do not use ESM::RefId::getRefIdString for spell id 2 years ago
psi29a 9a20193eb5 Merge branch 'savedgamecell' into 'master'
Fix cell name format in save menu

See merge request OpenMW/openmw!2853
2 years ago
Evil Eye 54d6fb29c2 Don't store a save's cell name as a RefID 2 years ago
psi29a db1b260323 Merge branch 'gmst_l10n' into 'master'
Support links to GMSTs in l10n files; extract Morrowind-specific l10n files to a separate directory

See merge request OpenMW/openmw!2822
2 years ago
psi29a 1741a06cd1 Merge branch 'launcher_log' into 'master'
Setup launcher configuration manager and logging before initializing UI

See merge request OpenMW/openmw!2851
2 years ago
elsid 9815f930d9
Setup launcher configuration manager and logging before initializing UI 2 years ago
elsid d1e8e56619
Make QuickKey type a fixed size enum class 2 years ago
elsid eb79b29512
Use ranged for loop 2 years ago
elsid 2135eba103
Fix loading ESM3 QuickKeys 2 years ago
elsid 0b852edc7f
Remove redundant inline 2 years ago
elsid 8dd6b16fee
Avoid double lookup 2 years ago
elsid 04d7781424
Support not only StringRefId for checking first person body part 2 years ago
elsid e6cf516e12
Support index RefId as pair of record type and std::uint32_t 2 years ago
elsid 86293af084
Support generated RefId as std::uint64_t 2 years ago
elsid 0992624c8b
Support reading and writing typed ESM::RefId to ESM 2 years ago
elsid 069d4255b9
Make ESM::RefId to be fixed size cheap to copy
Use std::variant. Store refId strings in unordered_set and use pointer to an
item there. Inserts to unordered_set do not invalidate pointers to values so the
pointer is always valid. Elements are not removed. Assume there is finite number
of string refIds.
2 years ago
elsid 3a0443c472
Make constexpr Misc::NotNullptr member functions 2 years ago
psi29a d64eea2fc6 Merge branch '7113-move-from-std-atoi-to-std-from_char' into 'master'
Move from std::atoi to std::from_char

Closes #7113

See merge request OpenMW/openmw!2760
2 years ago
Shi Han a90e3b8c3b Move from std::atoi to std::from_char 2 years ago
psi29a 9664a57cad Merge branch 'esmtool_strings' into 'master'
Use relative to content file path to find strings file

See merge request OpenMW/openmw!2837
2 years ago
elsid 67e96d48ba
Use relative to content file path to find strings file
To be used by esmtool when VFS is not used.
2 years ago
elsid 83d212fe0f
Use SFINAE to avoid conflicts between visit functions 2 years ago
psi29a a60f657f5a Merge branch 'fast_cell4_load' into 'master'
Lazy loading of ESM4::reference

See merge request OpenMW/openmw!2804
2 years ago
psi29a 2ff4a5a11a Merge branch 'cs_fix_info_collection' into 'master'
Fix loading, inserting and moving topic info records

See merge request OpenMW/openmw!2806
2 years ago
Petr Mikheev 0b385d5db9 Create MWWorld::SafePtr 2 years ago
elsid e032214fcb
Use common info ordering implementation for engine and editor 2 years ago
elsid e892c62b10
Fix loading, inserting and moving topic info records
Topic info records need to have specific order defined via mNext and mPrev
fields (next and previous records). When loading multiple files a record may be
inserted into middle of the topic but neighborhood records may not be aware of
it. Having the order it's possible to move the records within one topic.

Sort the record once after loading all content files but preserve the order for
all other operations. Use std::map to group info ids by topic to make sure the
topics order is stable. Keep order within a topic for info ids on loading new
records. Use this order later for sorting the records.
2 years ago
psi29a 9b184a1698 Merge branch 'loadammo' into 'master'
Updates to ESM4::Ammunition loading

See merge request OpenMW/openmw!2830
2 years ago
Alexei Dobrohotov 3d87bc185d Updates to ESM4::Ammunition loading 2 years ago
psi29a e37860c1dc Cherry pick 'openmw-48-stereo-fixes' into 'master'
Openmw 48 stereo fixes

See merge request OpenMW/openmw!2815
2 years ago
Petr Mikheev 58fdd687a8 Support links to GMST in l10n files 2 years ago
psi29a efebb8efd8 Merge branch 'cmake_fixes' into 'master'
Formatting and coverage related CMake files fixes

See merge request OpenMW/openmw!2811
2 years ago
elsid 1cc4909144
Add --coverage to components_qt, benchmarks and openmw-cs 2 years ago
elsid 1857d8a68c
Use target_compile_options to add --coverage 2 years ago
elsid cc066efa11
Fix identation in CMakeLists.txt 2 years ago
florent.teppe 170b732854 readers cache keep a stateless encoder
to keep access to the current encoding configuration

build linux
2 years ago
psi29a ff7a098e74 Merge branch 'justbenormal' into 'master'
Unify collision shape transformations

See merge request OpenMW/openmw!2808
2 years ago
psi29a b9f1d5d4e7 Merge branch 'seventeenth-times-the-charm' into 'master'
Fix #7264

Closes #7264

See merge request OpenMW/openmw!2805
2 years ago
Alexei Dobrohotov 562461a659 Unify collision shape transformations 2 years ago
psi29a eca26e8b18 Merge branch 'Support-BA2-file-format' into 'master'
Support ba2 file format

See merge request OpenMW/openmw!2787
2 years ago
Alexei Dobrohotov 2277bdc1ae Improve btTriangleMesh abuse (bug #6027, part 2) 2 years ago
AnyOldName3 ccdb1bf6b7 Ensure shader requirements are pushed at least once for subgraph
Shaders, if deemed necessary, get attached to the node mentioned by the
top of the requirements stack. Previously an empty stack was incorrectly
assumed to mean no shaders were required, but we found out that was
wrong. We need to put shaders *somewhere*, and the root of the subgraph
we're modifying should be the best place.
2 years ago
AnyOldName3 aee1edaf9e Partially revert "Attach shaders to geometry that lacks a stateset if necessary"
This reverts commit 6aef366fd3.
2 years ago
Cédric Mocquillon 19fbba080d Add a check if the requested file is not found 2 years ago
Cédric Mocquillon 7f936ad18f Some cleanup on includes 2 years ago
Cédric Mocquillon 64ce6eb6bc Merge the two identical conditions 2 years ago
Cédric Mocquillon 1a7b2cd611 Fix remaining bugs 2 years ago
AnyOldName3 4aa40897ca Revert "Apply ShaderVisitor to Rig/MorphGeometry source geometry"
This reverts commit 471f6abf6c.

The commit should be redundant as of 20e799dadc
2 years ago
Alexei Dobrohotov 20e799dadc Use Rig/MorphGeometry state for its child geometry
Cherry-pick of ed44095cdc from 0.48 branch
2 years ago
Evil Eye c6a545766c Remove redundant string_view 2 years ago
unknown 868a398b86 Allow comparison operators of arbitrary length 2 years ago
florent.teppe 214cb8d8fe Only loads ESM4::reference when they are needed
and only those from the cell they are a part of.
The cell stores where it starts in the file for quick access later.
2 years ago