Commit Graph

20117 Commits (62536d5cf7e4024834bfeb87d3ef00ddf783a831)

Author SHA1 Message Date
elsid 62536d5cf7
Use static QFile::exists instead of creating object 2 years ago
elsid ecb9c35268
Remove unused variable 2 years ago
psi29a 2a50212f87 Merge branch 'fix_launcher_paths' into 'master'
Save original paths in launcher (#7246)

Closes #7246

See merge request OpenMW/openmw!2847
2 years ago
elsid 9280957581
Save original paths
If directory path is a symlink it should be showed and written to config files
as is. Between launcher runs the resulting canonical path may be different so
the resolved path becomes outdated.
2 years ago
elsid ff7fcd752a
Use set to track visited directories instead of removing duplicates 2 years ago
Evil Eye 6e33da6cfe Don't capture temporaries by reference 2 years ago
psi29a b55313c08e Merge branch 'small_ref_id' into 'master'
Make ESM::RefId to be fixed size cheap to copy and support different implementation types

See merge request OpenMW/openmw!2708
2 years ago
elsid 04d7781424
Support not only StringRefId for checking first person body part 2 years ago
elsid e6cf516e12
Support index RefId as pair of record type and std::uint32_t 2 years ago
elsid 86293af084
Support generated RefId as std::uint64_t 2 years ago
elsid 0992624c8b
Support reading and writing typed ESM::RefId to ESM 2 years ago
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.
2 years ago
psi29a 3dc0e71b58 Merge branch 'constant_telekinesis' into 'master'
Remove redundant lookup

See merge request OpenMW/openmw!2843
2 years ago
Evil Eye 0b0f02d08b Remove redundant lookup 2 years ago
elsid c90e4435cd
Remove unused startup script argument 2 years ago
psi29a 5db11d81fe Merge branch 'ref_id_strings' into 'master'
Use RefId high level functions instead of accessing internal data

See merge request OpenMW/openmw!2840
2 years ago
elsid 99069b02e4
Remove unused variable 2 years ago
elsid 1f6d19859a
Use startsWith for ESM::RefId 2 years ago
elsid 1258bdf40a
Use operator<< for ESM::RefId 2 years ago
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
2 years ago
Shi Han a90e3b8c3b Move from std::atoi to std::from_char 2 years ago
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
2 years ago
psi29a a60f657f5a Merge branch 'fast_cell4_load' into 'master'
Lazy loading of ESM4::reference

See merge request OpenMW/openmw!2804
2 years ago
elsid 6a182e7798
Move generation for default values of required records to separate functions 2 years ago
psi29a 2ff4a5a11a Merge branch 'cs_fix_info_collection' into 'master'
Fix loading, inserting and moving topic info records

See merge request OpenMW/openmw!2806
2 years ago
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.
2 years ago
psi29a df89a8c845 Merge branch 'ptr' into 'master'
MWLua refactoring

See merge request OpenMW/openmw!2803
2 years ago
Kindi 65cbf7f17c skip reading if retrievalLimit is 0 2 years ago
Petr Mikheev 2bfffb3063 Move `std::variant<SelfObject*, LObject, GObject>` from mwlua/stats.cpp to mwlua/objectvariant.hpp 2 years ago
Petr Mikheev 0b385d5db9 Create MWWorld::SafePtr 2 years ago
Mitten Orvan 4e6d48d246 Add a bit of high-level developer documentation about the Lua system 2 years ago
elsid e032214fcb
Use common info ordering implementation for engine and editor 2 years ago
elsid e892c62b10
Fix loading, inserting and moving topic info records
Topic info records need to have specific order defined via mNext and mPrev
fields (next and previous records). When loading multiple files a record may be
inserted into middle of the topic but neighborhood records may not be aware of
it. Having the order it's possible to move the records within one topic.

Sort the record once after loading all content files but preserve the order for
all other operations. Use std::map to group info ids by topic to make sure the
topics order is stable. Keep order within a topic for info ids on loading new
records. Use this order later for sorting the records.
2 years ago
psi29a d8d2cb980c Merge branch 'world_model_init' into 'master'
Refactor WorldModel initialization making it C++ core guidelines complaint

See merge request OpenMW/openmw!2825
2 years ago
elsid 899c302b14
Avoid nested ifs 2 years ago
elsid c8402c0b14
Avoid double assignment on info saving 2 years ago
elsid 0d523c3793
Log loading errors 2 years ago
elsid 9598b26462
Make loading error messages copyable 2 years ago
psi29a 6d8f3c7bce Merge branch 'cs_unit_tests' into 'master'
Introduce unit tests for editor

See merge request OpenMW/openmw!2821
2 years ago
psi29a e95f5f2ec1 Merge branch 'cherry-pick-fb3a80be' into 'master'
Cherry pick 'openmw-48-stereo-fixes' into 'master'

See merge request OpenMW/openmw!2829
2 years ago
psi29a 34724c5538 Merge branch 'remove_double_dialogue_store_setup' into 'master'
Set up Store<ESM::Dialogue> once

See merge request OpenMW/openmw!2824
2 years ago
psi29a e37860c1dc Cherry pick 'openmw-48-stereo-fixes' into 'master'
Openmw 48 stereo fixes

See merge request OpenMW/openmw!2815
2 years ago
elsid 4cf5136143
Mark WorldModel copy ctor and assignment operators as delete 2 years ago
elsid 48fde4b517
Use default initializers for WorldModel members 2 years ago
elsid 2f730011dc
Initialize WorldModel::mIdCache in the class initializer list 2 years ago
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.
2 years ago
elsid 55ebd97949
Remove misleading part of the function name 2 years ago
elsid 403bc927fb
Add test for CSMWorld::InfoCollection::load 2 years ago
elsid 6f6e452dfa
Add executable to run CS tests 2 years ago
elsid 59f2fccc9f
Split openmw-cs into binary and library 2 years ago