Commit Graph

31070 Commits (simplify_debugging)
 

Author SHA1 Message Date
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
1 year 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
1 year ago
psi29a 6db9e5f0d3 Merge branch 'convert_cells_settings' into 'master'
Use settings values for Cells settings (#6876)

See merge request OpenMW/openmw!3048
1 year ago
Alexei Dobrohotov a983977e6a Fix NiSkinData loading for >4.2.1.0 1 year ago
Evil Eye 11f875d9c4 Detect service refusal in constant time 1 year 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.
1 year 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.
1 year 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.
1 year ago
Alexei Dobrohotov 1b5e904285 Read BSMultiBound et al. 1 year ago
Alexei Kotov 401ebfd7f2 Merge branch 'fix_oblivion_loading' into 'master'
Fix Oblivion loading

See merge request OpenMW/openmw!3050
1 year ago
Evil Eye 9728024978 Replace compare with more idiomatic methods 1 year 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
1 year ago
Evil Eye 97bdc20b70 Merge branch 'copy_warn' into 'master'
Fix a gcc warning about copy

See merge request OpenMW/openmw!3046
1 year ago
jvoisin a9bf671992 Fix Oblivion loading
Found by elsid@, and due to !3043
1 year ago
Evil Eye 3138eb406b Fix case sensitive comparison 1 year ago
elsid 8f47da46ec
Show magic effect name instead of IndexRefId 1 year ago
jvoisin 8b654f276d Replace all the `asserts` with `throw` in components/esm4/reader.cpp 1 year ago
elsid bb1d040ac8
Use settings values for Cells settings 1 year 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.
```
1 year ago
Evil Eye 45c84a2426 Merge branch 'fix_libc++_build' into 'master'
Use bool instead of std::stringstream::view

See merge request OpenMW/openmw!3045
1 year ago
elsid 585cf377ed
Use bool instead of std::stringstream::view
view is not supported by libc++ used for macOS builds.
1 year ago
psi29a 6f8c152487 Merge branch 'convert_camera_settings' into 'master'
Use settings values for Camera settings (#6876)

See merge request OpenMW/openmw!3041
1 year 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
1 year ago
psi29a c939781cfd Merge branch 'cs_universal_id_ref_id' into 'master'
Fix verification error reporting in Editor (#7387)

Closes #7387

See merge request OpenMW/openmw!3044
1 year ago
psi29a def5839c8d Merge branch 'assert_again' into 'master'
Replace another `assert` with a `throw`

See merge request OpenMW/openmw!3043
1 year 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.
1 year ago
elsid 0aa569d4fe
Add UniversalId argument type to exception message on invalid access 1 year ago
elsid 292983d57a
Show UniversalId value for all argument types in reports 1 year ago
elsid 7ba397da7d
Use std::span and std::string to define UniversalId related TypeData 1 year ago
elsid ceab7557f3
Add rudimentary support for ESM::RefId in UniversalId
Ideally std::string support should be removed but this may affect too much code.
1 year ago
elsid 4cd5efc6ee
Implement UniversalId with std::variant 1 year ago
elsid f2a3462e59
Fix UniversalId constructor from ESM::RefId 1 year ago
elsid 6541ac43f5
Add UniversalId unit tests 1 year 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
```
1 year ago
Evil Eye ed7b6dc2a7 Clarify CharacterCreation::setValue 1 year 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
1 year ago
psi29a 458ee4abaa Merge branch 'coc_destination' into 'master'
Improve coc destination search in ESM4 cells

See merge request OpenMW/openmw!3034
1 year ago
psi29a e1754b840a Merge branch 'fix_empty_vector' into 'master'
Guard an undefined behaviour

Closes #6725

See merge request OpenMW/openmw!3037
1 year ago
Tetramir 3d574f16a1 Merge branch 'grid_update' into 'master'
Update mHalfGridSize in Scene::changeCellGrid before using it

See merge request OpenMW/openmw!3030
1 year ago
Evil Eye 4e05dd3cd3 Make FontWrapper conditional 1 year ago
Evil Eye 492e336c0c Use string_view in more UI code 1 year ago
Alexei Kotov 08dc48586e Merge branch 'assert_throw' into 'master'
Replace an `assert` with a conditional throw

See merge request OpenMW/openmw!3038
1 year ago
Alexei Dobrohotov 3e8a9d1de4 Read BSTreeNode, handle as NiNode 1 year ago
Evil Eye 5491512905 Use string_view in more places and reduce the number of empty string literals 1 year ago
Petr Mikheev 9b6808f83d Improve coc destination search in ESM4 cells 1 year ago
elsid 5d5e6844d1
Use settings values for Camera settings 1 year 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.
1 year ago
jvoisin cde7aeac3d Replace an `asert` with a conditional throw
The assert is reachable, resulting in a brutal `abort`
instead of a nice exception.
1 year ago
Alexei Kotov 5b36ea0179 Merge branch 'fix_cell_settings_type' into 'master'
Map SettingValueType Cell to float setting type (#7382)

Closes #7382

See merge request OpenMW/openmw!3035
1 year ago
elsid 4be43a2dca
Map SettingValueType Cell to float setting type 1 year ago