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

1260 commits

Author SHA1 Message Date
elsid
06f42ba69c
Use fixed size enum type for ESM::Dialogue::mType 2023-03-26 19:07:25 +02:00
Andrei Kortunov
11484205f5 Use constexpr to do not generate an invalid code in templates 2023-03-23 14:29:26 +04:00
elsid
04d7781424
Support not only StringRefId for checking first person body part 2023-03-19 17:49:41 +01:00
elsid
e6cf516e12
Support index RefId as pair of record type and std::uint32_t 2023-03-19 17:20:48 +01:00
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
99069b02e4
Remove unused variable 2023-03-18 13:40:45 +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
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.
2023-03-13 21:57:38 +01:00
elsid
899c302b14
Avoid nested ifs 2023-03-13 11:31:16 +01:00
elsid
d03bec60e9
Avoid redundant conversion from RefId to string and back 2023-03-03 15:44:19 +01:00
elsid
191f207e78
Avoid redundant conversion to lower case for CommandDispatcher::mSelection items 2023-03-03 15:44:19 +01:00
elsid
7daef583cb
Use ESM::RefId as key for ScriptContext::mLocals 2023-03-03 15:44:18 +01:00
elsid
693f4c40f4
Use ESM::RefId as key for Data::mRefLoadCache 2023-03-03 15:44:18 +01:00
elsid
419a86f0b9
Use ESM::RefId for actor parts
To avoid redundant conversion RefId to string and back.
2023-03-03 15:44:14 +01:00
elsid
dfcea389be
Add helper functions for string comparison to RefId 2023-03-03 00:39:55 +01:00
elsid
c03d3360d9
Remove redundant virtual modifiers, add override and final modifiers 2023-02-28 21:18:38 +01:00
elsid
a09612264c
Fix setRecordId overload declaration
To match other declarations arguments order.
2023-02-27 23:35:50 +01:00
elsid
4ed0960856
Remove redundant IdAccessor type
Use overloaded free functions instead.
2023-02-25 13:49:22 +01:00
elsid
b5ec584be2
Replace ESM::RefId::sEmpty by default constructed RefId where possible
Static const is only required to provide a reference or a pointer when it is not
possible with default constructed temporary.
2023-02-18 01:07:15 +01:00
psi29a
d846a9fc15 Merge branch 'cs_optimize_saving' into 'master'
Fix editor saving performance

See merge request OpenMW/openmw!2741
2023-02-17 13:30:20 +00:00
elsid
e618026c69
Use ESM::RefId as index key in collections 2023-02-17 11:08:46 +01:00
elsid
b2299ef914
Optimize saving in editor 2023-02-17 11:05:25 +01:00
psi29a
18d488d968 Merge branch 'ref_id_class' into 'master'
Convert RefId to class

See merge request OpenMW/openmw!2739
2023-02-15 23:41:58 +00:00
elsid
996153f78d
Convert RefId to class 2023-02-15 23:20:44 +01:00
elsid
b6a2fd8fc1
Simplify InfoCollection
There was additional logic to create topic infos index by topic id to make
getTopicInfos and removeDialogueInfos functions faster. In practice it makes
loading slower.

Move infos index by topic to CSMWorld::Data and use only on loading.
2023-02-15 23:10:35 +01:00
elsid
080700f8fe
Name all custom ESM format versions and add tests 2023-02-10 19:54:15 +01:00
psi29a
3f9cae7947 Merge branch 'dragdetails' into 'master'
[OpenMW-CS] Generate record filters based on cell content and column header

Closes #7161

See merge request OpenMW/openmw!2617
2023-02-03 09:29:36 +00:00
florent.teppe
3780033837 Reverts Cell name to a string 2023-01-21 18:39:42 +01:00
unelsson
fc64ab0f5a Promise constness 2023-01-17 02:55:03 +02:00
unelsson
6a864cd9f6 Implement basic filter generation from the dragged table cell (cell content and column header) 2023-01-16 23:47:32 +02:00
unelsson
bc1027ee95 First draft of getting the exact drag start location 2023-01-16 23:47:32 +02:00
unelsson
7f8a84f2f2 Move Response column earlier 2023-01-14 16:19:37 +02:00
elsid
c173348cbe
Use default initializers for ESM::RefNum members
Instead of unset function that is removed now and assignments all over the code.
2023-01-10 00:44:51 +01:00
florent.teppe
0de6b79966 Fixes issue with topic info edition.
Also future proofs reference on RefId's string.
2023-01-08 12:59:47 +01:00
florent.teppe
1b66be9c70 Fix dangling reference. 2023-01-02 19:47:12 +01:00
florent.teppe
1ef1de974d script blacklist => RefId
Applies changes from review

Fixed clang format

Clang format + review.
2022-12-27 19:16:21 +01:00
florent.teppe
2c30575b3b CellName is now a RefId, makes more sense that way. 2022-12-27 19:16:21 +01:00
florent.teppe
6ff90b34a8 Fixed an issue with RefId in CellRefs where Ids wouldn't be loaded
Fixed multiple issues from the review.
2022-12-27 19:15:58 +01:00
florent.teppe
0f3499f504 Renamed string => Id, makes more sense considering the new underlying type
Fixes unnecessary copies, and issues with case sensitive comparisons.

fixed modification that wasn't necessary

Fixed type mismatch, and unecessary copy
2022-12-27 19:15:57 +01:00
florent.teppe
30a020883e Avoids unecessary copies
Fixed issue with lowerCase

Oups fixed compialtion on openMW_test_suite
2022-12-27 19:15:57 +01:00
florent.teppe
65cdd489fb create a specific esm reader function for RefID to avoid allocation for string and then again for RefId
Fixed some types

removed useless header

applied clang format

fixed compile tests

fixed clang tidy, and closer to logic before this MR

Removed hardcoded refids

unless there is a returned value we don't use static RefIds
can use == between RefId and hardcoded string

Fix clang format

Fixed a few instances where std::string was used, when only const std::string& was needed

removed unused variable
2022-12-27 19:15:57 +01:00
fteppe
09d461a8cd fixed Topic selected event
Fix rebase
2022-12-27 19:15:56 +01:00
fteppe
20da0892ef openMW_test_suite compiles and runs
Slowly moving through the open-cs errors

Good progress in openCS

Very good progress on openCS

Getting closer with openCS

OpenCS compiles and runs! Didn't have time to test it all though

ix openMW

everything compiles on windows??

Fix gcc

Fix Clang
2022-12-27 19:15:55 +01:00
jvoisin
1a326294c0 Run IWYU on the opencs 2022-10-31 21:04:01 +01:00
elsid
843753da14
Remove unused includes 2022-10-09 16:44:18 +02:00
Evil Eye
e6592aa850 Add key flag on load 2022-09-30 12:16:45 +02:00
clang-format-bot
88ec8a9523
Apply clang-format 2022-09-25 18:23:43 +02:00
Andrei Kortunov
3163d9ed56 Fix topic infos creation 2022-09-25 15:17:20 +04:00
clang-format-bot
ddb0522bbf
Apply clang-format to code base 2022-09-22 21:35:26 +03:00
elsid
410a2881fe
Add comma to the last array element to prevent putting multiple elements on a single line 2022-09-14 00:36:02 +02:00
elsid
51314db2f1
Remove AI_CNDT from AI package types
AI_CNDT is a label of subrecord containing cell name. It's not AI package type.
2022-09-13 00:05:12 +02:00
elsid
52b7b66e9f
Add comma to the last array element to prevent putting multiple elements on a single line 2022-09-12 21:00:51 +02:00
Project579
a13709c510 Replace implicit convertions from std::filesystem::path to std::string with correctly converting functions. 2022-09-11 14:41:20 +02:00
Project579
4d47e8d055 openmw-cs: model: world: data: Remove dead code. 2022-09-11 14:41:20 +02:00
Project579
e5c417c968 Make sure all paths are passed as std::filesystem::path instead of std::string where possible. 2022-09-11 14:41:15 +02:00
Project579
5446571aec Circumvent QT MOC bugs by including the filesystem header in a specific order. 2022-09-11 02:19:07 +02:00
Project579
4bb07282c9 Replace all remaining occurrences of boost::filesystem with std::filesystem. 2022-09-11 02:19:00 +02:00
Evil Eye
fb9bc5f535 Use string_view in Fallback::Map 2022-08-28 17:20:49 +02:00
mpeco
9040209046 functor-based Qt signal-slot syntax construction set: changing visibility of certain slots for connecting on external/derived classes 2022-08-23 17:14:12 -03:00
mpeco
78700eee57 functor-based Qt signal-slot syntax construction set 2022-08-23 17:14:12 -03:00
elsid
2a79a8074a
Use forward declarations 2022-08-19 22:05:15 +02:00
elsid
b3882777ab
Cleanup opencs includes 2022-08-19 19:25:03 +02:00
Alexei Kotov
e537f2b6f3 Fix display for some package settings 2022-08-14 19:51:43 +03:00
elsid
f99ed6f1db
Split components/misc/stringops.hpp into multiple headers
Replace all ciEqual overloads with one having std::string_view as argument.
2022-08-03 22:06:24 +02:00
elsid
228a0dc723
Avoid redundant lowerCase call 2022-08-03 00:19:16 +02:00
elsid
ba69146ced
Use std::string_view to avoid redundant std::string construction 2022-08-03 00:18:55 +02:00
Alexei Kotov
0d18f76271 Editor: Decouple levelled list columns (bug #6705) 2022-07-30 12:48:29 +03:00
Evil Eye
3967509cdd Use meaningful names instead of pretending we don't know what snow is 2022-07-17 19:54:59 +02:00
Andrei Kortunov
a5b0ef0912 Avoid possible null dereference 2022-07-12 13:43:47 +04:00
Andrei Kortunov
42b9a6daaf Do not use an invalid iterator 2022-07-12 12:45:11 +04:00
elsid
bef15edf0b
Remove redundant ostream, istream, iostream and sstream includes
* Replace by std::to_string and operator+ where possible.
* Move the code requiring to include <sstream> from .hpp to .cpp files.
2022-07-05 01:41:28 +02:00
Andrei Kortunov
aa349f2ed9 Initialize some missing variables 2022-07-03 15:44:50 +04:00
jvoisin
8b9ed57348 Clean up Qt includes 2022-06-17 11:56:54 +02:00
Petr Mikheev
a70d5831c5 Lua scripts configuration in omwaddon 2022-06-05 01:36:39 +02:00
Evil Eye
db1a372e5b Replace new with make_unique in opencs 2022-05-29 13:25:17 +02:00
Michał Plichta
5ee5e8f2f7
Correct CS typo described in #6704 2022-05-24 19:24:39 +02:00
elsid
98f53eca65
Fix gcc warning: -Wuninitialized
/home/elsid/dev/openmw/apps/opencs/model/world/data.cpp: In constructor ‘CSMWorld::Data::Data(ToUTF8::FromType, bool, const Files::PathContainer&, const std::vector<std::__cxx11::basic_string<char> >&, const boost::filesystem::path&)’:
/home/elsid/dev/openmw/apps/opencs/model/world/data.cpp:69:36: warning: member ‘CSMWorld::Data::mCells’ is used uninitialized [-Wuninitialized]
   69 | : mEncoder (encoding), mPathgrids (mCells), mRefs (mCells),
      |                                    ^~~~~~
2022-05-16 22:26:19 +02:00
cody glassman
04843fed6d moddable post-processing pipeline 2022-05-15 10:03:58 -07:00
Evil Eye
a64979e25d Replace empty std::string assignments 2022-05-04 22:33:39 +02:00
elsid
db44f91fd5
Remove redundant include from esm3/esmreader.hpp 2022-04-10 22:16:32 +02:00
elsid
45db56b382
Rework fixed string
* Avoid inheritance.
* Define equality operators out of the class definition.
* Replace toString with toStringView where it doesn't make sense to create a string.
2022-01-28 18:39:09 +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
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
Evil Eye
52f9634624 Allow the CS to handle the repeat flag for all types 2021-11-20 11:03:08 +01:00
Evil Eye
751e8cf76b Do a bounds check before calling functions defined in cctype 2021-11-14 11:26:15 +01:00
Bo Svensson
6cf74f7041
refactors ESM::Land (#3213)
With this PR we reduce coupling, simplify code, encapsulate a variable and separate actual `ESM` data from its context.
2021-11-04 16:55:32 +01:00
Evil Eye
9b565c4cf9 Remove dead code 2021-10-28 22:16:43 +02:00
elsid
18d3102148
Do not use union to access FIXED_STRING<4> as int
https://en.cppreference.com/w/cpp/language/union:
> It's undefined behavior to read from the member of the union that wasn't most recently written.
2021-10-17 17:16:21 +02:00
Evil Eye
d680aa26e9 Disallow switch fallthrough 2021-10-03 21:58:10 +02:00
psi29a
782e0710af Merge branch 'OpenCS-preserve-blocked' into 'master'
OpenCS - Preserve "blocked" record flags when saving. #6288

Closes #6288

See merge request OpenMW/openmw!1052
2021-09-27 19:21:20 +00:00
Evil Eye
831055f878 Merge branch 'OpenCS-fix-modify' into 'master'
OpenCS - Re-implement the fix for Issue #6067.

See merge request OpenMW/openmw!1173
2021-09-19 19:23:30 +00:00
psi29a
18f5762a76 Merge branch 'master' into 'OpenCS-preserve-blocked'
# Conflicts:
#   CHANGELOG.md
2021-09-18 15:20:26 +00:00
Cédric Mocquillon
d4e26746a3 Use recurse subdirectory iterator to iterate over the VFS without exposing internal details 2021-09-14 18:09:54 +02:00
elsid
6b7434ca69
Pass std::string_view instead of const std::string&
* Starting with Actor::getBodyPartMesh and ending with
  Misc::StringUtils::ciEqual.
* Add tests for Misc::StringUtils::ciEqual.
2021-09-09 18:39:50 +02:00
elsid
a8c16071dc
Fix -Wreturn-local-addr warning
/home/elsid/dev/openmw/apps/opencs/model/world/actoradapter.cpp: In member function ‘const string& CSMWorld::ActorAdapter::ActorData::getPart(ESM::PartReferenceType) const’:
/home/elsid/dev/openmw/apps/opencs/model/world/actoradapter.cpp:142:20: error: returning reference to temporary [-Werror=return-local-addr]
  142 |             return "";
      |                    ^~
2021-09-04 18:04:45 +02:00
jvoisin
d4e3575f1d Don't use const for objects returned by value.
This prevents the usage of std::move semantics,
and makes clang-tidy sad.
2021-09-01 22:23:50 +02:00
cc9cii
0a5571f19e Disable editing for blocked records in both table and dialogue edit widget. 2021-08-29 15:27:59 +10:00
cc9cii
2eb210f31a Partially undo commit 71be4cdd20 so that moved references retain the original refnum. This is consistent with vanilla CS's behaviour. 2021-08-28 16:12:40 +10:00