1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-28 14:53:58 +00:00

15146 Commits

Author SHA1 Message Date
elsid
0992624c8b
Support reading and writing typed ESM::RefId to ESM 2023-03-19 17:20:48 +01:00
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.
2023-03-19 17:20:43 +01:00
elsid
1f6d19859a
Use startsWith for ESM::RefId 2023-03-18 13:39:52 +01:00
elsid
1258bdf40a
Use operator<< for ESM::RefId 2023-03-18 13:39:50 +01:00
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
2023-03-18 09:30:48 +00:00
Shi Han
a90e3b8c3b Move from std::atoi to std::from_char 2023-03-18 09:30:48 +00:00
psi29a
b4a5e8ed19 Merge branch '9003rd_times_the_charm' into 'master'
Rework again scripted movement. Partially revert and refine !1324

See merge request OpenMW/openmw!1372
2023-03-18 09:13:57 +00:00
psi29a
a60f657f5a Merge branch 'fast_cell4_load' into 'master'
Lazy loading of ESM4::reference

See merge request OpenMW/openmw!2804
2023-03-17 21:46:37 +00:00
elsid
6a182e7798
Move generation for default values of required records to separate functions 2023-03-17 18:31:21 +01:00
psi29a
2ff4a5a11a Merge branch 'cs_fix_info_collection' into 'master'
Fix loading, inserting and moving topic info records

See merge request OpenMW/openmw!2806
2023-03-17 14:40:05 +00:00
fredzio
63d4564455 In 0.46, SetPos was setting position of actors before physics simulation, and from this position movement was simulated. This changed with async physics merging, and at the same time problems started, mostly with abot's scenic travel.
Skipping the simulation, switching off collisions, and other approaches were not correct as they either broke some mods, or some core mechanics of the engine such as teleportation or waterwalking. As it turns out, the way to go is to simply do _nothing_ (modulo some gymnastics to account for the 1 frame difference in case of async).

Scripted movement and the unstucking logic tends to collide. Early out of unstuck in case the actor doesn't attempt to move. This means there is no AI package for NPC, which are the case for some boats and striders, or the player is content with their position.
2023-03-16 22:07:26 +01:00
psi29a
df89a8c845 Merge branch 'ptr' into 'master'
MWLua refactoring

See merge request OpenMW/openmw!2803
2023-03-16 11:21:45 +00:00
Kindi
65cbf7f17c skip reading if retrievalLimit is 0 2023-03-15 04:13:38 +08:00
Petr Mikheev
2bfffb3063 Move std::variant<SelfObject*, LObject, GObject> from mwlua/stats.cpp to mwlua/objectvariant.hpp 2023-03-13 23:44:00 +01:00
Petr Mikheev
0b385d5db9 Create MWWorld::SafePtr 2023-03-13 23:44:00 +01:00
Mitten Orvan
4e6d48d246 Add a bit of high-level developer documentation about the Lua system 2023-03-13 22:41:28 +00:00
elsid
e032214fcb
Use common info ordering implementation for engine and editor 2023-03-13 21:57:41 +01:00
psi29a
d8d2cb980c Merge branch 'world_model_init' into 'master'
Refactor WorldModel initialization making it C++ core guidelines complaint

See merge request OpenMW/openmw!2825
2023-03-13 10:57:03 +00:00
psi29a
e95f5f2ec1 Merge branch 'cherry-pick-fb3a80be' into 'master'
Cherry pick 'openmw-48-stereo-fixes' into 'master'

See merge request OpenMW/openmw!2829
2023-03-13 09:33:55 +00:00
psi29a
e37860c1dc Cherry pick 'openmw-48-stereo-fixes' into 'master'
Openmw 48 stereo fixes

See merge request OpenMW/openmw!2815
2023-03-12 22:20:23 +01:00
elsid
4cf5136143
Mark WorldModel copy ctor and assignment operators as delete 2023-03-12 17:32:43 +01:00
elsid
48fde4b517
Use default initializers for WorldModel members 2023-03-12 17:32:43 +01:00
elsid
2f730011dc
Initialize WorldModel::mIdCache in the class initializer list 2023-03-12 17:32:24 +01:00
elsid
0577d2751b
Set up Store<ESM::Dialogue> once
Store<ESM::Dialogue> is derived from DynamicStore and setUp is called for it
along with other setUp calls for stores derived from DynamicStore.
2023-03-12 15:31:19 +01:00
elsid
1857d8a68c
Use target_compile_options to add --coverage 2023-03-10 15:34:08 +01:00
elsid
cc066efa11
Fix identation in CMakeLists.txt 2023-03-10 15:28:06 +01:00
florent.teppe
170b732854 readers cache keep a stateless encoder
to keep access to the current encoding configuration

build linux
2023-03-10 12:39:47 +01:00
psi29a
0858da3d1f Merge branch 'cellstore' into 'master'
[Refactorring] Merge duplicated `public:` and `private:` sections in cellstore.hpp

See merge request OpenMW/openmw!2800
2023-03-05 20:25:54 +00:00
Petr Mikheev
929fade8be Merge duplicated public: and private: sections in cellstore.hpp 2023-03-05 18:45:53 +01:00
elsid
0040da3497
Do not use std::shared_mutex to wait for job for async physics
std::shared_mutex in combination with std::condition_variable_any may
lead to a situation when notify_all does not wake up all waiting threads
on Windows. Use separate std::mutex and std::condition_variable to
notify about new job. Encapsulate all workers synchronization logic into
a separate type.
2023-03-05 18:07:56 +01:00
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.
2023-03-04 23:40:41 +01:00
psi29a
31ae1cd339 Merge branch 'limit_max_bullet_supported_threads' into 'master'
Limit max bullet supported threads by BT_MAX_THREAD_COUNT - 1

See merge request OpenMW/openmw!2797
2023-03-04 12:42:51 +00:00
elsid
949b9191a5
Limit max bullet supported threads by BT_MAX_THREAD_COUNT - 1
There is a check and assert for number of threads >= BT_MAX_THREAD_COUNT.
btDbvtBroadphase::m_rayTestStacks::size may return BT_MAX_THREAD_COUNT which
triggers the assert.
2023-03-04 02:08:45 +01:00
Petr Mikheev
e007dc9d6b Log reserving texture units 2023-03-04 00:55:34 +01:00
psi29a
88567cd363 Merge branch 'unplugged' into 'master'
Handle sound device changes

Closes #4382

See merge request OpenMW/openmw!2791
2023-03-03 20:41:42 +00:00
psi29a
2f4eb3e299 Merge branch 'string_to_ref_id' into 'master'
Replace std::string and std::string_view by ESM::RefId to avoid getRefIdString call

See merge request OpenMW/openmw!2790
2023-03-03 20:41:19 +00:00
elsid
3d3cccb8e5
Fix clamping physics threads 2023-03-03 18:44:47 +01:00
Evil Eye
027d49cf28 Set thread priority and start thread on fallback usage 2023-03-03 18:00:02 +01:00
Evil Eye
e020af8b4a Switch to new default device if default device changes 2023-03-03 17:31:09 +01:00
elsid
3975003778
Use ESM::RefId as key for Globals::mVariables 2023-03-03 15:44:18 +01:00
elsid
dfcea389be
Add helper functions for string comparison to RefId 2023-03-03 00:39:55 +01:00
Evil Eye
b762807dfb Reopen audio device on disconnect 2023-03-02 22:58:07 +01:00
Evil Eye
754dac6103 Copy alext.h from OpenAL Soft 1.23 2023-03-02 22:57:00 +01:00
Alexei Dobrohotov
6aef366fd3 Attach shaders to geometry that lacks a stateset if necessary 2023-02-28 20:13:16 +03:00
Alexei Dobrohotov
540fa00f12 Don't use ESM4::Lighting fog power as fog density 2023-02-27 05:50:58 +03:00
Cody Glassman
924ba11826 Default shader at root
Assign a default shader to the scene root, otherwise objects without an assigned shader will use the FFP. An example of this is a trishape with no material, resulting in an empty stateset on the drawable level.
2023-02-26 09:32:25 -08:00
psi29a
2aac6abb85 Merge branch 'sun_writes' into 'master'
Sun flickering on Mac (part of #7052)

See merge request OpenMW/openmw!2768
2023-02-26 15:32:07 +00:00
psi29a
e8e97679f7 Merge branch 'vsync' into 'master'
Add support for non-adaptive VSync

Closes #7129

See merge request OpenMW/openmw!2769
2023-02-26 13:28:56 +00:00
uramer
552614768f Fix clang format 2023-02-26 14:07:48 +01:00
Andrei Kortunov
be488649c3 Add support for non-adaptive VSync (feature 7129) 2023-02-26 15:19:19 +04:00