Commit Graph

7083 Commits (f398896ec8562a8115f82705e6bac7f932b75a0b)

Author SHA1 Message Date
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