1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-19 22:53:53 +00:00
Commit graph

5934 commits

Author SHA1 Message Date
psi29a
cf1764f255 Merge branch 'constrained_file_stream' into 'master'
Avoid redundant conversion to const char* and use make_shared

See merge request OpenMW/openmw!1763
2022-04-11 07:26:53 +00:00
elsid
6481324eb1
Read when need to skip few bytes 2022-04-11 01:55:05 +02:00
elsid
5eb8c4aebe
Avoid redundant conversion to const char* and use make_shared 2022-04-10 22:33:08 +02:00
elsid
db44f91fd5
Remove redundant include from esm3/esmreader.hpp 2022-04-10 22:16:32 +02:00
ζeh Matt
b39aea4346
Move extremeEdges into queue instead of copying 2022-04-10 20:56:52 +03:00
ζeh Matt
19df9c3d17
Use vector for edge queue 2022-04-10 20:38:59 +03:00
elsid
c3a924de23
Fix skip DATA in cell ref loading 2022-04-10 19:16:30 +02:00
ζeh Matt
0790af962e
Cleanup code in mwshadowtechnique.cpp 2022-04-10 20:16:15 +03:00
elsid
6b464a9330
Check ESMReader value size in compile time 2022-04-10 19:16:11 +02:00
Benjamin Winger
21ffbcc4b4 Lua i18n updates 2022-04-10 07:57:02 +00:00
elsid
4509b05bc8
Use std::make_shared instead of new
make_shared allocates single storage for ref counter and the object.
std::shared_ptr<T>(new T) allocates 2 storages.
2022-04-08 22:50:09 +02:00
elsid
bbfdb347bd
Skip load cell ref when there is no need
Primarily to avoid temporary allocations by ESMReader::getHString.
2022-04-08 19:16:38 +02:00
elsid
7038c82690
Configure mav navmeshdb file size from the launcher 2022-04-07 16:38:01 +02:00
psi29a
1ac7eaa6b0 Merge branch 'NiFltAnimationNode' into 'master'
Add NiFltAnimationNode support

Closes #6684

See merge request OpenMW/openmw!1732
2022-04-06 23:59:04 +00:00
psi29a
fc5605fc7f Merge branch 'navmeshtool_binary_log' into 'master'
Send status of navmeshtool to launcher using type binary messages

See merge request OpenMW/openmw!1630
2022-04-06 23:40:45 +00:00
psi29a
f5bc78cac3 Merge branch 'lua_ui_flex' into 'master'
Lua UI Flex widget

Closes #6646

See merge request OpenMW/openmw!1743
2022-04-06 23:29:23 +00:00
psi29a
8d3d01902a Merge branch 'optimizer' into 'master'
Optimizer-related fixes

See merge request OpenMW/openmw!1744
2022-04-06 23:00:17 +00:00
Wolfgang Lieff
373776170d refactor for NiFltAnimationNode 2022-04-07 00:49:08 +02:00
Bret Curtis
af41560c3f reverse the reverse flag check; set duration to 0.2f which matches openmw to morrowind speed which is measured in 1/5 seconds 2022-04-07 00:09:11 +02:00
Bret Curtis
0db5415976 refactor to use mInternal, support Flag_Reverse and updated changelog/authors.md 2022-04-07 00:09:11 +02:00
Wolfgang Lieff
ead73fce31 initial NiFltAnimationNode support 2022-04-07 00:09:11 +02:00
uramer
02bbd226b8 Less primary/secondary coordinate boilerplate in Flex 2022-04-06 23:36:44 +02:00
Petr Mikheev
eca64b48e8 Bitwise operations in Lua 2022-04-06 21:55:05 +02:00
Alexei Dobrohotov
eafa66ff40 Don't consider NiCollisionSwitch unoptimizeable 2022-04-06 06:42:06 +03:00
Alexei Dobrohotov
81e9212db9 Slightly optimize MergeGroupsVisitor's xenophobia 2022-04-06 06:37:42 +03:00
uramer
3c74a20335 Refactor horizontal/vertical cases in Flex 2022-04-05 17:51:04 +02:00
Alexei Dobrohotov
c28f997c87 Make NiPlanarCollider finite-size 2022-04-05 01:33:36 +03:00
Alexei Dobrohotov
9d8f6064a1 Detail the unused parts of controlled.cpp defs 2022-04-05 01:33:36 +03:00
uramer
788745e004 Make coordinate calculation more robust, implement Flex widget type 2022-04-04 23:10:03 +02:00
elsid
2d5ccc804b
Exchange binary messages between navmeshtool and launcher 2022-03-30 19:24:54 +02:00
Petr Mikheev
fbc84465c5 Merge branch 'futureproof_layers' into 'master'
Add layer size, make layers API more flexible

See merge request OpenMW/openmw!1724
2022-03-29 20:11:11 +00:00
psi29a
1f14f97d17 Merge branch 'navmeshdb_max_file_size' into 'master'
Limit max navmeshdb file size (#6649)

Closes #6649

See merge request OpenMW/openmw!1716
2022-03-27 09:07:56 +00:00
psi29a
1542a0392c Merge branch 'gloss' into 'master'
Gloss-mapping

Closes #6541

See merge request OpenMW/openmw!1552
2022-03-24 11:22:58 +00:00
uramer
5d1fe6c2bc Add layer size, make layers API more flexible 2022-03-23 15:04:49 +01:00
psi29a
6d55317d57 Merge branch 'refactor/prng-2' into 'master'
Save random state and refactor usage of generators

See merge request OpenMW/openmw!1715
2022-03-23 09:50:54 +00:00
psi29a
d2f2393de8 Merge branch 'opacity_color_bindings' into 'master'
Bindings for image color and widget alpha (#6654)

Closes #6654

See merge request OpenMW/openmw!1723
2022-03-23 08:32:15 +00:00
ζeh Matt
d7de17a1ac
Add a comment explaining the pick of the prng 2022-03-22 17:09:36 +02:00
Cody Glassman
b3e0275e89 Lua UI API: Let image manager handle missing textures 2022-03-22 05:41:26 +00:00
glassmancody.info
26c7e308ed mygui bindings for color and alpha 2022-03-21 22:00:32 -07:00
ζeh Matt
5df76f5051
Remove unnecessary debug output 2022-03-21 17:49:42 +02:00
ζeh Matt
f8f3bb2421
Use std::minstd_rand and split serialization from save/load 2022-03-21 17:49:42 +02:00
ζeh Matt
151770ccf1
Separate global vs world rng functions and use custom prng 2022-03-21 17:49:42 +02:00
ζeh Matt
08fae7be6e
Pass the prng from world where appropriate 2022-03-21 17:49:42 +02:00
ζeh Matt
b502dc12f0
Add prng to World instance and serialize state in Save 2022-03-21 17:49:42 +02:00
uramer
8e81b6c645 Fix updating UI image resource 2022-03-19 21:26:02 +01:00
psi29a
40b1d81050 Merge branch 'order_please' into 'master'
Base dialogue order solely on mPrev

Closes #6670

See merge request OpenMW/openmw!1714
2022-03-19 12:24:42 +00:00
elsid
5b9dd10cbe
Limit max navmeshdb file size
Use "pragma max_page_count" to define max allowed file size in combination with
"pragma page_size" based on a new setting "max navmeshdb file size".

* Stop navmeshtool on the first db error.
* Disable writes to db in the engine on first "database or disk is full"
  SQLite3 error. There is no special error code for this error.
* Change default "write to navmeshdb" to true.
* Use time intervals for transaction duration instead of number of changes.
2022-03-18 19:08:46 +01:00
Evil Eye
484a7c7b7e Base dialogue order solely on mPrev 2022-03-16 18:09:21 +01:00
Petr Mikheev
fa115418eb [Lua] Remove queries 2022-03-15 23:35:36 +01:00
Petr Mikheev
d251c4e2a1 [Lua] Change behavior of obj.type 2022-03-15 23:35:36 +01:00
uramer
36c46ada6f Pass unhandled Lua UI events to the parent 2022-03-14 19:07:23 +00:00
AnyOldName3
696be1cc39 Merge branch 'fix_6589' into 'master'
Add default value for `user-data` in openmw.cfg

Closes #6589

See merge request OpenMW/openmw!1632
2022-03-13 18:51:34 +00:00
duncanspumpkin
3a117cac22 Switch to a constexpr for FourCC constant
Add static asssert on wrong size
2022-03-08 14:48:37 +00:00
jvoisin
8a182c130a Merge branch 'refactor/prng' into 'master'
Refactor and rename some things around Misc::Rng

See merge request OpenMW/openmw!1710
2022-03-07 10:19:41 +00:00
Matt
54e114d83e Avoid string copies for ESM::Variant::getString 2022-03-06 17:38:58 +00:00
ζeh Matt
d83a381f79
Refactor and rename some things around Misc::Rng 2022-03-06 17:28:28 +02:00
Martin Otto
96e48e5492 Make settings loader differentiate between engine and editor (fixes #6658). 2022-03-04 09:44:52 +00:00
psi29a
3afa46b25e Merge branch 'CPP20_support' into 'master'
Support C++20

See merge request OpenMW/openmw!1705
2022-03-01 11:11:37 +00:00
Bret Curtis
6601274992 constify weakcache overloaded operators 2022-03-01 10:53:01 +01:00
psi29a
3558196098 Merge branch 'Newer-Bsa-formats-no-longer-load' into 'master'
#6651 Newer bsa formats no longer load

Closes #6651

See merge request OpenMW/openmw!1703
2022-03-01 07:22:04 +00:00
Cédric Mocquillon
ff7ad93bac Avoid missusing of CompressedBSAFile with private inheritance 2022-02-27 20:40:35 +01:00
uramer
67879bac55 MR feedack 2022-02-26 17:01:46 +01:00
Cédric Mocquillon
fe13fa850e Fix bug on memorystream 2022-02-26 14:38:33 +01:00
uramer
a7bb87d8a1 Use StringUtils::format 2022-02-25 18:18:27 +01:00
uramer
e7ed709e5e Fix Lua TextEdit skin 2022-02-25 18:18:26 +01:00
uramer
fc50724f5c Render text and images correctly in templates with slots 2022-02-25 18:18:26 +01:00
uramer
e092ee2624 Document the Lua Image widget, add UI texture resources 2022-02-25 18:18:26 +01:00
elsid
42d6032c8b
Support compilation with c++20 2022-02-24 00:49:40 +01:00
elsid
3c66a927d8
Fix coverity issue about uninitialized members of LevelledListBase
* Remove explicit constructor.
* Use static constexpr where possible.
* Use CRTP to get RecName.
2022-02-23 20:39:05 +01:00
elsid
595c2e0a8e
Use unique_ptr to manage AiPackage lifetime 2022-02-23 00:39:30 +01:00
elsid
f516e34688
Remove used-defined constructors from ESM4 types
To avoid explicit initialization. It should happen in the load functions anyway.

* Move all non-zero initializations to corresponding class definition.
* Replace std::vector by std::array when it has constant size.
2022-02-22 20:11:45 +01:00
Petr Mikheev
ff7ac7192b Merge branch 'ui_pairs' into 'master'
Implement pairs and ipairs for ui.content and ui.layers. Document all iterable types in a uniform way.

See merge request OpenMW/openmw!1643
2022-02-21 20:43:29 +00:00
uramer
a1abc84f59 Implement pairs and ipairs for ui.content and ui.layers. Document all iterable types in a uniform way. 2022-02-21 20:43:27 +00:00
uramer
cc6dce5443 Support controller touchpads (Resolves https://gitlab.com/OpenMW/openmw/-/issues/6639) 2022-02-21 19:49:00 +00:00
jvoisin
a55f1ad103 Merge branch 'bullet_object_tool' into 'master'
Add a tool to load and print information about all bullet objects in all cells

See merge request OpenMW/openmw!1627
2022-02-20 14:09:26 +00:00
psi29a
b03f9e430c Merge branch 'navmesh_disk_rm_unused_tiles' into 'master'
Add navmeshtool flag to remove unused tiles from navmesh disk cache

See merge request OpenMW/openmw!1671
2022-02-19 13:56:44 +00:00
psi29a
1c1581bdab Merge branch 'check_esm4_compilation' into 'master'
Check ESM4 compilation

See merge request OpenMW/openmw!1677
2022-02-19 12:18:43 +00:00
psi29a
fd2b2e4871 Merge branch 'fix_esm4_quest_init' into 'master'
Remove user-defined constructor from ESM4::Quest

See merge request OpenMW/openmw!1676
2022-02-19 12:15:43 +00:00
psi29a
dbab48d7da Merge branch 'nif' into 'master'
NIF stuff

See merge request OpenMW/openmw!1674
2022-02-19 12:12:40 +00:00
psi29a
6f5c6171dd Merge branch 'navmeshdb_sqlite_open_nomutex' into 'master'
Use SQLITE_OPEN_NOMUTEX for navmeshdb

See merge request OpenMW/openmw!1673
2022-02-19 12:09:20 +00:00
elsid
57c1f2e231
Make sure everything compiles in ESM4 2022-02-19 02:52:49 +01:00
elsid
96463cbb02
Remove malformed and unused esm4/records.hpp file 2022-02-19 02:52:49 +01:00
elsid
cccfb14785
Remove user-defined constructor from ESM4::Quest
To avoid explicit initialization. It should happen in the load functions anyway.
2022-02-19 02:08:30 +01:00
Alexei Dobrohotov
54df5031b7 Add XYZ rotation axis order support 2022-02-19 02:22:08 +03:00
elsid
8b4362ece7
Disable navmesh disk cache when db is failed to open 2022-02-18 22:41:45 +01:00
elsid
5913036638
Use SQLITE_OPEN_NOMUTEX 2022-02-18 22:39:26 +01:00
Alexei Dobrohotov
76ba5025e3 Clarify root node transformation discard 2022-02-19 00:39:02 +03:00
elsid
ab1a6e034e
Add navmeshtool flag to remove unused tiles from navmesh disk cache
* Remove tiles outside processing range. Useful when new content profile map
  has different bounds.
* Remove ignored tiles. For a case when content profile maps have intersection
  but there is no more data for navmesh.
* Remove older tiles at the same worldspace position. If navmesh tile data has
  changed with new content, the old ones unlikely to be used.
* Vacuum the database when there are modifications. SQLite leaves empty pages
  in the file on database modification. Vacuum cleans up unused pages reducing
  the file size.
2022-02-18 21:57:23 +01:00
elsid
67741402b5
Replace reference to const std::string by std::string_view for navmeshdb related arguments 2022-02-18 21:45:50 +01:00
elsid
52b3a87dae
Make constexpr variable defined in header inline 2022-02-18 21:01:53 +01:00
elsid
9584cb7ac2
Use fixed size types for serialization 2022-02-18 21:01:53 +01:00
Alexei Dobrohotov
dd473d06df Implement gloss-mapping (feature #6541) 2022-02-18 06:24:06 +03:00
psi29a
b011809056 Merge branch 'master' into 'sort_me_baby_one_more_time'
# Conflicts:
#   components/nif/niffile.cpp
2022-02-17 09:24:50 +00:00
psi29a
b73eaadf20 Merge branch 'use_utf8_string_view' into 'master'
Avoid extra copy for Utf8Encoder::getUtf8 result

See merge request OpenMW/openmw!1661
2022-02-16 20:58:12 +00:00
psi29a
3af037d2ae Merge branch 'esm4' into 'master'
ESM4 Support

See merge request OpenMW/openmw!1610
2022-02-16 20:57:24 +00:00
elsid
b96c41df07
Initialize string_view with explicit size
Otherwise size is detected by null terminating character.
2022-02-16 17:11:25 +01:00
Bret Curtis
0f43455dc3 merge in master 2022-02-16 16:57:59 +01:00
elsid
139ae9325a Fix compile errors by using StatelessUtf8Encoder 2022-02-16 16:41:23 +01:00
elsid
4a06351c3b update to_utf8 and translation to make use of new stateless utf8 2022-02-16 10:48:49 +01:00
elsid
875d9dcead
Fix buffer resizing by StatelessUtf8Encoder 2022-02-15 23:02:32 +01:00
psi29a
8a0fb4d633 Merge branch 'stateless_utf8_encoder' into 'master'
Add StatelessUtf8Encoder to support caller provided buffer for output

See merge request OpenMW/openmw!1660
2022-02-15 08:35:31 +00:00
psi29a
776b286286 Merge branch 'esm_name' into 'master'
Use ESM::NAME instead of const char* and std::string as argument type

See merge request OpenMW/openmw!1659
2022-02-15 08:11:12 +00:00
elsid
3305b400dc
Use ESM::NAME instead of const char* and std::string as argument type 2022-02-14 23:40:40 +01:00
elsid
c044bef6a7
Add StatelessUtf8Encoder to support caller provided buffer for output 2022-02-14 23:19:49 +01:00
elsid
fbbf871067
Avoid extra copy for Utf8Encoder::getUtf8 result 2022-02-14 23:01:32 +01:00
elsid
b617d0aec4 Merge branch 'fix_empty_utf8' into 'master'
Fix out of bounds access for std::string_view

See merge request OpenMW/openmw!1658
2022-02-14 21:42:10 +00:00
elsid
071ab3f650
Fix out of bounds access for std::string_view 2022-02-14 19:56:50 +01:00
Evil Eye
649c2f8286 Fix stats not working right for saves started before version 17 2022-02-14 18:38:37 +01:00
psi29a
149ef56b60 Merge branch 'utf8_encoder_tests' into 'master'
Add tests for Utf8Encoder

See merge request OpenMW/openmw!1654
2022-02-14 06:39:39 +00:00
elsid
7884a01026
Add tests for Utf8Encoder 2022-02-13 17:19:08 +01:00
psi29a
a2a741c71f Merge branch 'lua_require' into 'master'
Allow `require` to return not a table in Lua

See merge request OpenMW/openmw!1650
2022-02-13 15:30:37 +00:00
psi29a
cd8967e265 Merge branch 'utf8_encoder_string_view' into 'master'
Use std::string_view for argument and return type of Utf8Encoder functions

See merge request OpenMW/openmw!1652
2022-02-12 18:07:26 +00:00
elsid
c75e938c46
Return string_view from Utf8Encoder functions
To avoid redundant std::string constructions.
2022-02-12 17:11:54 +01:00
elsid
c9c7fb7e49
Remove redundant functions from Utf8Encoder interface 2022-02-12 13:47:46 +01:00
Petr Mikheev
6876851766 Allow require to return not a table in Lua 2022-02-12 12:02:17 +01:00
elsid
2a87cf1720
Replace unordered_map by switch statement
Add handling for missing Nif::BSLightingShaderType::ShaderType_SkinTint. Use
string_view instead of string to avoid lifetime issues for returning value.
osg::Object::setUserValue will anyway copy string.
2022-02-11 22:12:39 +01:00
elsid
e1fe501013
Use proper type for Record::recType 2022-02-11 21:52:00 +01:00
elsid
283b68025c
Avoid possible race condition on NIFFile::sLoadUnsupportedFiles
Its value is written from the main thread but other threads read it.
2022-02-11 21:41:08 +01:00
elsid
fbd95516f4
Repalce raw for-loops by corresponding algorithms 2022-02-11 21:41:08 +01:00
elsid
082810f924
Store record type as a part of construct function type 2022-02-11 21:41:08 +01:00
elsid
d097c16206
Use unique_ptr to manage nif record lifetime 2022-02-11 20:40:38 +01:00
glassmancody.info
712107de2d nisortadjust support 2022-02-10 11:59:49 -08:00
uramer
ede9d27437 Element-wise multiplication and division of Lua vectors 2022-02-10 19:43:27 +00:00
Alexei Dobrohotov
85053941b3 Properly postprocess NiSortAdjustNode 2022-02-09 13:55:32 +03:00
psi29a
9183fa897e Merge branch 'particle_vertex_palooza' into 'master'
Support vertex emitters (#6592)

Closes #6592

See merge request OpenMW/openmw!1638
2022-02-09 08:35:09 +00:00
glassmancody.info
27d2daabc1 move depth define to header, missing on mac 2022-02-08 14:12:17 -08:00
glassmancody.info
a05e029aa0 search for stencil enabled flag correctly 2022-02-08 13:49:05 -08:00
glassmancody.info
88f02913d5 use vertex emitters on array particle controllers when appropriate 2022-02-07 19:46:42 -08:00
glassmancody.info
8c2c322d92 add stencil to water RTTs, reword some comments 2022-02-07 14:35:15 -08:00
glassmancody.info
bbc9c53423 support morrowind stenciling 2022-02-07 11:51:59 -08:00
Evil Eye
7a7a95407a Merge branch 'lua_pairs' into 'master'
Proper support of `pairs` and `ipairs` in Lua; fix bug in `makeReadOnly`.

See merge request OpenMW/openmw!1628
2022-02-06 22:10:21 +00:00
Petr Mikheev
a294adcdaf Proper support of pairs and ipairs in Lua; fix bug in makeReadOnly. 2022-02-06 22:10:20 +00:00
Petr Mikheev
5f74df75c6 Add default value for config. 2022-02-06 23:09:06 +01:00
uramer
581c3f4882 Update and document Lua Text and TextEdit widget types, fix some issues with Lua UI 2022-02-06 20:22:38 +00:00
Petr Mikheev
ac5cd6c80a Add default value for user-data in openmw.cfg 2022-02-06 21:07:14 +01:00
elsid
e7f3524924
Add a tool to load and print information about all bullet objects in all cells 2022-02-04 16:14:52 +01:00
psi29a
becffef142 Merge branch 'cull_navmesh_objects' into 'master'
Cull navmesh objects by scene bounds (#5858)

Closes #5858

See merge request OpenMW/openmw!1625
2022-02-04 14:07:13 +00:00
elsid
0b644a897e
Explicitly bind TileCachedRecastMeshManager with mutex 2022-02-03 22:24:26 +01:00
elsid
05b54cbfb8
Cull navmesh objects by scene bounds
If object is too big iteration over all tiles covering it can take too much
time. Limit bounds to a square around a player position to cover only tiles
that will be present in navmesh based on max tiles number option.

Each object is associated with a set of tiles its present in. Culling can
reduce this set but it has to be update when bounds change position. Do this
in TileCachedRecastMeshManager::setBounds updating the set and adding/removing
objects to the corresponding CachedRecastMeshManagers.
2022-02-03 22:09:37 +01:00
elsid
563f3f87dd
Reduce critical sections size 2022-02-03 21:44:37 +01:00
elsid
a5b078e9a7
Allow to represent empty range with TilesPositionsRange 2022-02-03 21:43:56 +01:00
elsid
1b2954f2db
Remove unused z coordinate 2022-02-03 21:43:53 +01:00
elsid
1a52a2a029
Clamp tile position 2022-02-03 02:44:04 +01:00
elsid
542717394a
Remove objects, water and heightfields when no longer required 2022-02-03 02:43:35 +01:00
Petr Mikheev
6084dbfc3a Add a warning if replace==config is used. 2022-02-03 00:07:30 +01:00
Petr Mikheev
5b23ba3faf Fix defaulted in ConfigurationManager::mergeComposingVariables 2022-02-02 23:47:11 +01:00
Petr Mikheev
9c1ff16b62 Add config variable user-data="?userdata?". Allows to override paths to saves and screenshots. 2022-02-02 23:47:11 +01:00
Petr Mikheev
5ff2fc55ac Make ConfigurationManager::getUserConfigPath to return the actual config path where the settings, logs, and Lua storage are stored. 2022-02-02 23:47:11 +01:00
Petr Mikheev
a453e5c198 Reuse the same code to load settings in apps/openmw, apps/launcher, apps/opencs 2022-02-02 23:47:11 +01:00
Petr Mikheev
1bcc4a8bcc Read settings.cfg from all active config dirs 2022-02-02 23:47:11 +01:00