1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-02-24 13:39:43 +00:00
Commit graph

18424 commits

Author SHA1 Message Date
Petr Mikheev
067d71f7eb Fix heap use after free in components/lua/storage.cpp 2022-01-23 22:37:04 +01:00
Petr Mikheev
203ee492c8 Remove getRefIdRef because it is the same as getRefId. 2022-01-23 21:01:44 +01:00
Bret Curtis
74e7cfc023 remove unused includes: part1
remove unused imports: part2

revert one tidy we will keep for c++20
2022-01-23 17:30:25 +01:00
Bret Curtis
cdbab2325f rename esmterrain to esm3terrain 2022-01-23 17:19:30 +01:00
Bret Curtis
d1fb854521 move most of the files from esm to esm3, keep common code in esm; this is make space for a future with esm4
esm typo

esm typo
2022-01-23 17:04:48 +01:00
elsid
4b59ff2060
Include headers instead of source files 2022-01-23 15:40:30 +01:00
Petr Mikheev
24989e7bc1 Validate that object exists before onActorActive Lua handler 2022-01-23 11:30:22 +01:00
uramer
a85f2b0b2a Remove unnecessary mGuiCursorEnabled; from sensor manager 2022-01-22 13:28:07 +01:00
elsid
3f14011087
Support multiple parents for NIF nodes
Choose a parent base on which node is used to iterate over children nodes.
This leads to duplicate handing of child nodes. A node will be handled so many
times how many parents it has.

For example:
p1 p2
 \ /
  c

Will be handled as:
p1 p2
|  |
c  c

If c has children they will be handled X times c is handled.
2022-01-22 01:02:31 +01:00
elsid
580edf18b9 Use weak_ptr for Actor and Projectile simulations (#6515) 2022-01-21 00:28:56 +00:00
uramer
183ca3079e Merge gyroaxis into gyro manager 2022-01-20 15:42:01 +01:00
uramer
57ac592973 Fix warning 2022-01-19 22:35:32 +01:00
uramer
15e9c6615c Disable controller gyro with older SDL 2022-01-19 21:32:46 +01:00
uramer
4021d23cff Refactor sensor manager axis correction 2022-01-19 18:09:37 +01:00
Cody Glassman
9cafc31c0d Restore ripples with soft particles 2022-01-19 11:32:38 +00:00
uramer
a496f16cdb Implement gyro camera for controllers 2022-01-18 22:47:49 +01:00
uramer
9fa0faf944 Refactor sensor manager to match controller manager gyro API 2022-01-18 21:11:25 +01:00
uramer
55f95f1ea3 Enable controller gyro and capture the values 2022-01-18 20:23:16 +01:00
Petr Mikheev
9d0e427ec1 Merge branch 'dispose_lua_ui_correctly' into 'master'
Dispose Lua UI elements correctly

See merge request OpenMW/openmw!1561
2022-01-18 08:12:56 +00:00
uramer
cc528d2e08 Dispose Lua UI elements correctly 2022-01-18 08:12:56 +00:00
uramer
d1d8f058ac Lua bindings for Colours 2022-01-17 22:35:06 +00:00
psi29a
4e93716584 Merge branch 'always_bigobj' into 'master'
Always use /bigobj, clean up scattered uses into one

See merge request OpenMW/openmw!1476
2022-01-17 08:05:19 +00:00
uramer
886dee57ee Always use /bigobj, clean up scattered uses into one 2022-01-17 08:05:19 +00:00
wareya
20cbf941fb re-introduce short circuiting, but only under certain circumstances 2022-01-16 17:58:04 -05:00
wareya
784b1888a9 Merge branch 'upstream' into movement_tweaks 2022-01-16 17:19:20 -05:00
psi29a
fd7e0b74cc Merge branch '6303-jail-stuck-attack' into 'master'
#6303 Made player stop attacking and sheathe weapon when going to jail

See merge request OpenMW/openmw!1551
2022-01-16 10:15:47 +00:00
Artem Nykolenko
a5cdc889a2 #6303 Made player stop attacking and sheathe weapon when going to jail 2022-01-16 10:15:47 +00:00
uramer
c07fb75bf7 Merge branch 'lua_settings' into 'master'
Permanent storage for Lua

See merge request OpenMW/openmw!1489
2022-01-15 21:52:09 +00:00
jvoisin
2142e4b241 Merge branch 'scale_your_guar' into 'master'
Make scaleObject a no-op when not changing scale

Closes #6551

See merge request OpenMW/openmw!1559
2022-01-15 17:17:18 +00:00
uramer
ae641811cf Merge branch 'lua_vector' into 'master'
Use double precision for vectors serialization in Lua

See merge request OpenMW/openmw!1558
2022-01-15 16:14:04 +00:00
Petr Mikheev
4677912997 Remove incorrect destructor that was added in !1557. 2022-01-15 13:59:22 +01:00
Evil Eye
5fcb2cabc8 Make scaleObject a no-op when not changing scale 2022-01-15 13:04:15 +01:00
Petr Mikheev
1b7e923b2c Lua fixes 2022-01-15 12:01:30 +00:00
Petr Mikheev
97d56e198f Use double precision for vectors serialization in Lua 2022-01-15 11:25:30 +01:00
Petr Mikheev
a182fdeea1 Permanent storage for Lua data 2022-01-11 11:21:03 +01:00
psi29a
781b014183 Merge branch 'toggable_daynightswitch' into 'master'
Toggable day night switch (#5928)

Closes #5928

See merge request OpenMW/openmw!1549
2022-01-11 09:34:19 +00:00
Cody Glassman
8ec0a52605 Toggable day night switch (#5928) 2022-01-11 09:34:19 +00:00
Petr Mikheev
2d1b100239 Change terminology of gameSecond/gameHour to simulationTime/gameTime 2022-01-10 21:03:35 +01:00
Josquin Frei
d9672f7d46 Add serialization for TransformM and TransformQ 2022-01-10 12:42:03 +00:00
psi29a
a1f8db7600 Merge branch 'bright_spells' into 'master'
Replicate Morrowind spell lighting (#4949)

Closes #4949

See merge request OpenMW/openmw!1544
2022-01-09 11:07:14 +00:00
cody glassman
8216410e7d add white ambient to spell VFX as in Morrowind 2022-01-08 16:19:42 -08:00
cody glassman
e32d3d11ce ensure readbuffer is bound before using glReadPixels 2022-01-08 16:12:24 -08:00
psi29a
011a26684a Merge branch 'fix_wizard_dialogs' into 'master'
Fix wizard dialogs

See merge request OpenMW/openmw!1519
2022-01-07 14:35:12 +00:00
Josquin Frei
63a8bc5f9b Fix wizard dialogs 2022-01-07 14:35:11 +00:00
Cody Glassman
cdae1c4c97 Heavily mitigate jittery objects far from origin 2022-01-06 22:01:28 +00:00
psi29a
d8d7a3b372 Merge branch 'softparticles_patch' into 'master'
Shadervisitor adjustments and Mac OS fix for soft particles

See merge request OpenMW/openmw!1380
2022-01-06 13:13:52 +00:00
Evil Eye
cd6edb961a Remove dead code 2022-01-05 17:22:22 +01:00
psi29a
e0612db01c Merge branch 'viewport_update' into 'master'
Use updated resolutions when setting projection matrix

See merge request OpenMW/openmw!1533
2022-01-05 10:43:30 +00:00
Cody Glassman
a7166aa05c Use updated resolutions when setting projection matrix 2022-01-05 10:43:30 +00:00
psi29a
24b9c91ef8 Merge branch 'fix_copy_init' into 'master'
Fix unnecessary-copy-initialization

See merge request OpenMW/openmw!1531
2022-01-05 09:05:57 +00:00
psi29a
5eba352c98 Merge branch 'correct_depth_function' into 'master'
Use correct depth functions (#6537)

Closes #6537

See merge request OpenMW/openmw!1534
2022-01-05 08:38:05 +00:00
psi29a
d8cc08a7a0 Merge branch 'ripple_fix' into 'master'
Fix persistent ripples (#6531)

Closes #6531

See merge request OpenMW/openmw!1535
2022-01-05 08:37:27 +00:00
glassmancody.info
909aa43ba1 update sky particle node correctly 2022-01-04 14:10:39 -08:00
jvoisin
27af776735 Fix unnecessary float-to-double promotion 2022-01-04 22:01:52 +00:00
glassmancody.info
2c52695361 fix regression where LEQUAL was used instead of LESS for depth function 2022-01-04 12:23:37 -08:00
jvoisin
421e6629ad Fix unnecessary-copy-initialization
> warning: the variable 'key' is copy-constructed from a const reference but is
only used as const reference; consider making it a const reference
[performance-unnecessary-copy-initialization]

Found by clang-tidy.
2022-01-04 20:42:09 +01:00
psi29a
476d8b7e86 Merge branch 'fix_asan_error' into 'master'
Fix ASAN error: heap-use-after-free

See merge request OpenMW/openmw!1495
2022-01-04 10:29:37 +00:00
psi29a
0766e1310b Merge branch 'lunacy' into 'master'
Don't touch base stats when turning into a werewolf

Closes #6333

See merge request OpenMW/openmw!1511
2022-01-04 10:27:48 +00:00
psi29a
e16245278e Merge branch 'lit_ur' into 'master'
Fix Dagoth Ur's Fire Shield not being visible

See merge request OpenMW/openmw!1514
2022-01-04 10:22:45 +00:00
psi29a
0dc4a668c3 Merge branch 'moralizing' into 'master'
Fix demoralize and rally being swapped

Closes #6532

See merge request OpenMW/openmw!1524
2022-01-04 08:49:10 +00:00
Evil Eye
aab0473c28 Only prevent recasting by the actor who cast the spell 2022-01-03 21:05:14 +01:00
Evil Eye
97ab7cf457 Fix demoralize and rally being swapped 2022-01-03 19:17:56 +01:00
Petr Mikheev
0f246e7365 Use a separate instance of Lua i18n for every context 2022-01-02 09:58:51 +01:00
Evil Eye
dc946d0a47 Fix Dagoth Ur's Fire Shield not being visible 2021-12-27 22:30:25 +01:00
elsid
ba281a0da0 Fix coverity issues 2021-12-27 16:08:00 +00:00
Evil Eye
debdcf2953 Don't touch base stats when turning into a werewolf 2021-12-27 00:47:33 +01:00
Evil Eye
c166341ec0 Merge branch 'gh_sync' into 'master'
Resovles #6519 Do not display effects duration for ingredient

See merge request OpenMW/openmw!1506
2021-12-26 19:50:20 +00:00
psi29a
81c9ef947f Resovles #6519 Do not display effects duration for ingredient 2021-12-26 19:50:19 +00:00
psi29a
01ac96e900 Merge branch 'stats_gave_me_a_headache' into 'master'
Make Set- and ModStat behave as they should

Closes #2036

See merge request OpenMW/openmw!1410
2021-12-26 19:47:09 +00:00
Evil Eye
ac747f02f3 Don't teleport NPCs to unknown cells 2021-12-26 15:27:25 +00:00
psi29a
5c67c5316d Merge branch 'issue_6501' into 'master'
Fix Stuttering in the dialogue menu #6501

See merge request OpenMW/openmw!1492
2021-12-25 16:00:15 +00:00
Evil Eye
c1f59b1221 Automatically drop workaround when the format is next updated 2021-12-24 23:17:50 +01:00
myrix
88fc038ceb with mutable, without World and ESMStore interface change 2021-12-24 12:04:26 +03:00
myrix
9c7835e27f explicit instantiation error fix 2021-12-24 02:04:26 +03:00
myrix
27cc7a5172 caching dialog keyword search in Store<ESM::Dialogue> 2021-12-24 00:54:00 +03:00
Evil Eye
55b066d2bd Preserve the original caster if classic reflected absorb spells behaviour is on 2021-12-21 10:50:28 +01:00
elsid
ed3286994c
Fix ASAN error: heap-use-after-free
=================================================================
==20931==ERROR: AddressSanitizer: heap-use-after-free on address 0x607000206030 at pc 0x7fc8b0f3a72b bp 0x7ffcee176860 sp 0x7ffcee176008
READ of size 13 at 0x607000206030 thread T0
    #0 0x7fc8b0f3a72a in __interceptor_strlen /build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:389
    #1 0x562e069a0af7 in QString::fromUtf8(char const*, int) /usr/include/qt/QtCore/qstring.h:706
    #2 0x562e069a0af7 in Launcher::AdvancedPage::AdvancedPage(Config::GameSettings&, QWidget*) /home/elsid/dev/openmw/apps/launcher/advancedpage.cpp:29
    #3 0x562e06959613 in Launcher::MainDialog::createPages() /home/elsid/dev/openmw/apps/launcher/maindialog.cpp:127
    #4 0x562e069691d2 in Launcher::MainDialog::setup() /home/elsid/dev/openmw/apps/launcher/maindialog.cpp:228
    #5 0x562e06969d88 in Launcher::MainDialog::showFirstRunDialog() /home/elsid/dev/openmw/apps/launcher/maindialog.cpp:188
    #6 0x562e06957025 in main /home/elsid/dev/openmw/apps/launcher/main.cpp:35
    #7 0x7fc8ad0d9b24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24)
    #8 0x562e0690fced in _start (/home/elsid/dev/openmw/build/gcc/asan/openmw-launcher+0x56ced)

0x607000206030 is located 16 bytes inside of 64-byte region [0x607000206020,0x607000206060)
freed by thread T0 here:
    #0 0x7fc8b0fb3f19 in __interceptor_free /build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cpp:127
    #1 0x7fc8b0de3388  (/usr/lib/libopenal.so.1+0x40388)

previously allocated by thread T0 here:
    #0 0x7fc8b0fb4fd6 in __interceptor_posix_memalign /build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cpp:226
    #1 0x7fc8b0e379cb  (/usr/lib/libopenal.so.1+0x949cb)

SUMMARY: AddressSanitizer: heap-use-after-free /build/gcc/src/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:389 in __interceptor_strlen
Shadow bytes around the buggy address:
  0x0c0e80038bb0: 00 00 00 00 00 00 00 00 00 fa fa fa fa fa 00 00
  0x0c0e80038bc0: 00 00 00 00 00 00 00 fa fa fa fa fa 00 00 00 00
  0x0c0e80038bd0: 00 00 00 00 00 fa fa fa fa fa 00 00 00 00 00 00
  0x0c0e80038be0: 00 00 02 fa fa fa fa fa 00 00 00 00 00 00 00 00
  0x0c0e80038bf0: 02 fa fa fa fa fa fd fd fd fd fd fd fd fd fa fa
=>0x0c0e80038c00: fa fa fa fa fd fd[fd]fd fd fd fd fd fa fa fa fa
  0x0c0e80038c10: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0e80038c20: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0e80038c30: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0e80038c40: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c0e80038c50: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==20931==ABORTING
2021-12-20 23:32:47 +01:00
myrix
3a9cfbfa53 HyperTextParser as a class with proper keyword search caching 2021-12-19 14:00:49 +03:00
myrix
0688f55171 optimized keyword parsing 2021-12-18 20:07:41 +03:00
Evil Eye
a2964f2244 Don't consider underwater sneaking to be sneaking 2021-12-18 15:16:37 +01:00
psi29a
6bd89cb6ef Merge branch 'im_walking_on_water_whoa_oh' into 'master'
Move target checking code so it applies to all sources

Closes #6486

See merge request OpenMW/openmw!1472
2021-12-17 09:11:30 +00:00
psi29a
0aa103c6d8 Merge branch 'fix_build' into 'master'
Fix build on ubuntu 18.04

See merge request OpenMW/openmw!1487
2021-12-17 07:36:31 +00:00
psi29a
844266b58e Merge branch 'restrict_navmesh_cache_writes' into 'master'
Do not write shapes to navmeshdb when writing is disabled (#6498)

Closes #6498

See merge request OpenMW/openmw!1486
2021-12-17 07:28:53 +00:00
psi29a
307bc57cde Merge branch 'launcher_navmesh_cache_progress' into 'master'
Fix navmesh cache progress bar jumps (#6499)

Closes #6499

See merge request OpenMW/openmw!1485
2021-12-17 07:23:08 +00:00
elsid
b0c2317d34
Fix build on ubuntu 18.04
/<<BUILDDIR>>/openmw-0.47.0+git202112160802~ubuntu18.04.1/apps/navmeshtool/worldspacedata.cpp:213:109: error: class template argument deduction failed:
             heightfields.emplace_back(std::vector(std::begin(landData.mHeights), std::end(landData.mHeights)));
                                                                                                             ^
/<<BUILDDIR>>/openmw-0.47.0+git202112160802~ubuntu18.04.1/apps/navmeshtool/worldspacedata.cpp:213:109: error: no matching function for call to ‘vector(float*, float*)’
In file included from /usr/include/c++/7/vector:64:0,
                 from /<<BUILDDIR>>/openmw-0.47.0+git202112160802~ubuntu18.04.1/components/esm/loadpgrd.hpp:5,
                 from /<<BUILDDIR>>/openmw-0.47.0+git202112160802~ubuntu18.04.1/components/misc/convert.hpp:5,
                 from /<<BUILDDIR>>/openmw-0.47.0+git202112160802~ubuntu18.04.1/components/bullethelpers/collisionobject.hpp:4,
                 from /<<BUILDDIR>>/openmw-0.47.0+git202112160802~ubuntu18.04.1/apps/navmeshtool/worldspacedata.hpp:4,
                 from /<<BUILDDIR>>/openmw-0.47.0+git202112160802~ubuntu18.04.1/apps/navmeshtool/worldspacedata.cpp:1:
/usr/include/c++/7/bits/stl_vector.h:411:2: note: candidate: template<class _Tp, class _Alloc, class _InputIterator, class> vector(_InputIterator, _InputIterator, const _Alloc&)-> std::vector<_Tp, _Alloc>
  vector(_InputIterator __first, _InputIterator __last,
  ^~~~~~
2021-12-17 00:06:38 +01:00
elsid
aaf6c82e33
Do not write shapes to navmeshdb when writing is disabled 2021-12-16 22:57:35 +01:00
elsid
8fedca5780
Fix navmesh cache progress bar jumps
When initial approximation of maximum progress based on numer of cells is too
high comparing to real number of navmesh tiles.
2021-12-16 21:48:50 +01:00
uramer
2bc81e47a6 Remove all MyGUI version checks 2021-12-16 19:22:07 +01:00
psi29a
cc97c4450a Merge branch 'which-gpu-are-you' into 'master'
Log OpenGL Vendor, Renderer and Version on startup

See merge request OpenMW/openmw!1482
2021-12-16 08:02:24 +00:00
psi29a
dc4d73e76c Merge branch 'msgboxvanillastyle' into 'master'
Vanilla style encumbrance messagebox

Closes #6191

See merge request OpenMW/openmw!1437
2021-12-16 07:59:43 +00:00
AnyOldName3
d66907ba67 Log OpenGL Vendor, Renderer and Version on startup 2021-12-15 22:17:38 +00:00
psi29a
92c9ae3eb7 Merge branch 'locked_and_loaded' into 'master'
Change the legalities of opening unlocked objects

Closes #6493

See merge request OpenMW/openmw!1479
2021-12-15 13:13:24 +00:00
Petr Mikheev
db72380ba9 Allow Lua scripts to handle input actions when UI is opened. Also fixes #6456. 2021-12-15 02:38:54 +01:00
Petr Mikheev
7549496162 A few small fixes + expose makeReadOnly to Lua + an option to apply makeReadOnly during deserialize 2021-12-15 02:38:54 +01:00
Evil Eye
a204b4da96 Change the legalities of opening unlocked objects 2021-12-14 21:06:40 +01:00
uramer
c865114b9b Lua UI Layers 2021-12-14 17:38:06 +00:00
kuyondo
2fce89e64f changes 2021-12-14 22:40:05 +08:00
psi29a
0f17f14cec Merge branch 'no_more_i_yield' into 'master'
Explicitely add the initial actor to the set of its allies

See merge request OpenMW/openmw!1474
2021-12-11 16:36:54 +00:00
Evil Eye
ff9f010d99 Explicitely add the initial actor to the set of its allies 2021-12-11 15:30:57 +01:00
elsid
96eb8d7be9
Write generated navmesh to navmeshdb
Perform all request to db in a single thread to avoid blocking navmesh
generator threads due to slow write operations.

Write to db navmesh for all changes except update as it done for memory cache.

Batch multiple db operations into a single transaction to speed up writing by
not executing fsync after each insert/update query. All reads are performed in
the same transaction so they see uncommited data.
2021-12-11 00:22:04 +01:00