1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-26 09:35:28 +00:00

6903 Commits

Author SHA1 Message Date
florent.teppe
e0fa15b727 Abstracted Land data that can be used by esm3 and esm4. 2023-05-29 11:31:37 +02:00
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.
2023-05-29 11:31:37 +02:00
florent.teppe
93e7b0d946 Terrain has a mandatory worldspace in constructor
getTerrainHeightAt takes a worldspace.

Doesn't change anything for now => Therrain is created with the default ESM3 worldspace, and is never changed.
2023-05-29 11:31:36 +02:00
Evil Eye
90a3a7b62f Add mWerewolfGMST 2023-05-28 15:28:34 +02:00
Evil Eye
a5e1c87fb8 Remove sGmstAttributeIds, sGmstAttributeDescIds, sAttributeIcons 2023-05-28 15:10:53 +02:00
psi29a
16a580eb21 Merge branch 'clickbait' into 'master'
Remove sAttributeIds and sSkillIds

See merge request OpenMW/openmw!3071
2023-05-28 09:14:47 +00:00
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
2023-05-28 09:14:08 +00:00
unknown
14600de185 Remove sAttributeIds and sSkillIds 2023-05-27 21:54:13 +02:00
jvoisin
c98c532213 Replace all asserts in components/esm[34] with throw 2023-05-27 16:10:53 +02:00
elsid
235eb65c97
Rename positionToCellIndex to match return type 2023-05-27 15:49:36 +02:00
psi29a
05555947c3 Merge branch 'specialdedup' into 'master'
Deduplicate specialization code

See merge request OpenMW/openmw!3063
2023-05-26 12:08:05 +00:00
jvoisin
44a65512e8 Replace another assert with a throw 2023-05-26 10:23:58 +00:00
Evil Eye
877f6747be Deduplicate specialization code 2023-05-26 12:16:47 +02:00
elsid
dc8dfe81ce
Add more details to exceptions 2023-05-25 20:56:07 +02:00
Pierre Mossler
e6838cddc7 missing include in attr.cpp 2023-05-25 10:49:27 +00:00
psi29a
d3ed04c551 Merge branch 'lua-activeeffects' into 'master'
Lua: Actor api for active effects and active spells

See merge request OpenMW/openmw!3036
2023-05-25 07:49:08 +00:00
Petr Mikheev
e74161ea8e Merge branch 'slashrslashmarijuanaenthusiasts' into 'master'
Improve Skyrim tree loading (limited)

See merge request OpenMW/openmw!3054
2023-05-24 19:16:55 +00:00
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
2023-05-24 12:45:50 +02:00
Mads Buvik Sandvei
410e8b100a Elsid comments 2023-05-23 19:30:29 +02:00
Mads Buvik Sandvei
5a8c6df633 clang'd 2023-05-23 18:12:06 +02:00
Mads Buvik Sandvei
4bf23f152b Revert use of string_view to std::string for effectIdTo* methods. 2023-05-23 18:12:06 +02:00
Mads Buvik Sandvei
6cfc06d7d8 There is no typo 2023-05-23 18:12:06 +02:00
Mads Buvik Sandvei
9a59330561 refactor effect names in loadmgef. Added a map from effect index to non-gmst effect name for use in lua scripts. 2023-05-23 18:11:59 +02:00
Mads Buvik Sandvei
b791ce9132 Remove redundant qualifiers 2023-05-23 18:11:44 +02:00
Mads Buvik Sandvei
7ba43c9426 actor.ActiveEffects and actor.ActiveSpells 2023-05-23 18:11:44 +02:00
elsid
2f18da08d7
Add missing include 2023-05-23 12:26:16 +02:00
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
2023-05-23 08:21:35 +00:00
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
2023-05-23 08:20:10 +00:00
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
2023-05-23 08:18:41 +00:00
Alexei Dobrohotov
a983977e6a Fix NiSkinData loading for >4.2.1.0 2023-05-23 01:19:22 +03:00
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.
2023-05-22 22:09:08 +02:00
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.
2023-05-22 22:09:08 +02:00
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.
2023-05-22 22:09:06 +02:00
Alexei Dobrohotov
1b5e904285 Read BSMultiBound et al. 2023-05-22 23:05:10 +03:00
Alexei Kotov
401ebfd7f2 Merge branch 'fix_oblivion_loading' into 'master'
Fix Oblivion loading

See merge request OpenMW/openmw!3050
2023-05-22 18:18:35 +00:00
Evil Eye
9728024978 Replace compare with more idiomatic methods 2023-05-22 19:51:27 +02:00
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
2023-05-22 17:33:55 +00:00
jvoisin
a9bf671992 Fix Oblivion loading
Found by elsid@, and due to !3043
2023-05-22 18:24:39 +02:00
Evil Eye
3138eb406b Fix case sensitive comparison 2023-05-22 18:18:01 +02:00
elsid
8f47da46ec
Show magic effect name instead of IndexRefId 2023-05-22 18:02:21 +02:00
jvoisin
8b654f276d Replace all the asserts with throw in components/esm4/reader.cpp 2023-05-22 17:42:32 +02:00
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.
```
2023-05-22 17:18:43 +02:00
psi29a
6f8c152487 Merge branch 'convert_camera_settings' into 'master'
Use settings values for Camera settings (#6876)

See merge request OpenMW/openmw!3041
2023-05-22 09:14:06 +00:00
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
2023-05-22 09:12:45 +00:00
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
```
2023-05-21 20:07:52 +02:00
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
2023-05-21 17:33:56 +00:00
psi29a
e1754b840a Merge branch 'fix_empty_vector' into 'master'
Guard an undefined behaviour

Closes #6725

See merge request OpenMW/openmw!3037
2023-05-21 17:33:13 +00:00
Evil Eye
4e05dd3cd3 Make FontWrapper conditional 2023-05-21 18:21:42 +02:00
Evil Eye
492e336c0c Use string_view in more UI code 2023-05-21 18:14:12 +02:00
Alexei Dobrohotov
3e8a9d1de4 Read BSTreeNode, handle as NiNode 2023-05-21 18:16:06 +03:00