Commit Graph

271 Commits (master)

Author SHA1 Message Date
florent.teppe c39dd576f8 Gets rid of most ESM::CellId 2 years ago
elsid 452d1e7e49
Store original string id for Dialogue records 2 years ago
elsid 90ed24f4c9
Split type traits for ESM4, ESM3 and unite common 2 years ago
elsid 0992624c8b
Support reading and writing typed ESM::RefId to ESM 2 years ago
Shi Han a90e3b8c3b Move from std::atoi to std::from_char 2 years ago
elsid 1857d8a68c
Use target_compile_options to add --coverage 2 years ago
elsid cc066efa11
Fix identation in CMakeLists.txt 2 years ago
elsid 8a62a4fe4d
Support dump for ESM3 CSTA record in esmtool 2 years ago
elsid 4b8941677d
Do not write binary data to std::cout by esmtool 2 years ago
Andrzej Głuszak 9b0a499b58 Remove strerror usages 2 years ago
elsid d541436b15
Support parent, type and value fields in esmtool for ESM4 2 years ago
elsid e7acced5e9
Move metafunctions to check ESM4 field existence to a separate header 2 years ago
elsid 5bb088218e
Restore original formId
To make sure esmtool prints original value and not a result of conversion.
2 years ago
florent.teppe 3780033837 Reverts Cell name to a string 2 years ago
florent.teppe 631fa26872 Applies review advice. 2 years ago
florent.teppe 3b2d9161c4 Applied review advice
better deals with templated functions meant for esm3 used by esm4s.
simplified loading of esm4 and dealing with unhandled record types.
2 years ago
florent.teppe 077cf97bc4 The esm4 reader logic is mutualised
to avoid copy pasting code, readerutils gives functions that take visitors as params to decide how a record must be handled

Check encoder exists, and get value of stateless encoder.

fixes code formatting conventions

Fixed output of record with RefId

also fixed readTypedRecord and readRecord to have the proper return types

Check if the type has a sRecordId
2 years ago
florent.teppe 2c30575b3b CellName is now a RefId, makes more sense that way. 2 years ago
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
2 years ago
psi29a c164437d91 Merge branch 'classism' into 'master'
Use class service flags for autocalc NPCs

Closes #7044

See merge request OpenMW/openmw!2461
2 years ago
jvoisin 3cbf1dc042 First pass with include-what-you-use 2 years ago
Evil Eye 60c26832d2 Use class service flags for autocalc NPCs 2 years ago
Evil Eye e6592aa850 Add key flag on load 2 years ago
clang-format-bot ddb0522bbf
Apply clang-format to code base 2 years ago
elsid 9c291535bb
Dump NIFZ and KFFZ sub records by esmtool 2 years ago
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.
2 years ago
psi29a 20abe6dcf5 Merge branch 'esmtool_string_view' into 'master'
Use std::string_view for esmtool labels

See merge request OpenMW/openmw!2396
2 years ago
elsid 52b7b66e9f
Add comma to the last array element to prevent putting multiple elements on a single line 2 years ago
elsid 4698a4cd2d
Use raw string literals to format command usage messages 2 years ago
elsid 40e899f56d
Use std::string_view for esmtool labels 2 years ago
elsid 6ae15f08e0
Avoid chained operator() calls to prevent formatting issues 2 years ago
elsid a9826342b2
Print ESM4 EditorId and Model by esmtool dump 2 years ago
Project579 c226b35f1f Fix some remaining encoding errors due to std::filesystem transition. 2 years ago
Project579 4e428dee12 Update some settings that accept paths by "std::string" to accept them as "std::filesystem::path" instead. 2 years ago
Project579 a13709c510 Replace implicit convertions from std::filesystem::path to std::string with correctly converting functions. 2 years ago
Project579 864112b5db Fixed Windows build when using MSVC 14.26 and MacOS build. 2 years ago
Project579 6bf4c7a04f Upgraded "input-file" command line option to Files::MaybeQuotedPath from std::string to allow unicode characters on Windows. 2 years ago
Project579 e5c417c968 Make sure all paths are passed as std::filesystem::path instead of std::string where possible. 2 years ago
elsid ac1688f9c1
Remove ESM::Reader base class
This class does not serve any useful purpose now. It was added as a first step
in attempt to define common interface for ESM3 and ESM4 readers. But this is not
going to happen.
2 years ago
elsid 3057fa6bee
Remove redundant components/esm/records.hpp include 2 years ago
elsid 73f885db0e
Cleanup includes 2 years ago
Alexei Kotov e537f2b6f3 Fix display for some package settings 2 years ago
elsid f99ed6f1db
Split components/misc/stringops.hpp into multiple headers
Replace all ciEqual overloads with one having std::string_view as argument.
2 years ago
Evil Eye 3967509cdd Use meaningful names instead of pretending we don't know what snow is 2 years ago
elsid 7e6c13630a Use target_precompile_headers for the most expensive headers 3 years ago
jvoisin 23eccebe9e Convert esmtool from `const std::string&` to `std::string_view` 3 years ago
elsid b67a0a8f2b
Fix uninitialized coverity warnings 3 years ago
elsid d2510284ec
Support TES4 in esmtool dump 3 years ago
elsid 43b2892cc3
Move ESMData, reader and writer out of esmtool Arguments 3 years ago
Evil Eye 6c87219ba3 Print record flags in esmtool 3 years ago
jvoisin 7f3058d501 Use toStringView in esmtool instead of toString 3 years ago
elsid 3305b400dc
Use ESM::NAME instead of const char* and std::string as argument type 3 years ago
ζeh Matt 07eb6db030
Use unique_ptr for ESM records 3 years ago
Bret Curtis 74e7cfc023 remove unused includes: part1
remove unused imports: part2

revert one tidy we will keep for c++20
3 years ago
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
3 years ago
Evil Eye 3c57ffd81f Save repeat and duration 3 years ago
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.
3 years ago
jvoisin 5e3f000b66 Add a std::noboolalpha to a std::boolalpha 3 years ago
elsid 5c9af1742a
Dump moved cell refs in esmtool 4 years ago
elsid f90c4ae22f
Add yaml-like separator between cell refs
To be able to separate records visually.
4 years ago
jvoisin 3925c0fecf Remplace a ton of std::endl with \n
endl is calling flush, which is really nuking performances,
and I care about esmtool's performances because I'm
using it for fuzzing.
4 years ago
jvoisin d651f9e60c Remove some useless variables from esmtool 4 years ago
jvoisin e97e4d07dd Teensy optimisation for esmtool
- Use an unordered_set instead of a list to
  keep track of skipped records.
- Reduce the number of conditions when parsing 4-letters
  records by using a switch-case instead of cascading conditions.
- Add a const
4 years ago
Andrei Kortunov f308dde254 Clean up MSVC warnings 4 years ago
Bret Curtis 355996c2ff supress -> suppress 5 years ago
Andrei Kortunov d0fe15b095 Use meaningful names instead of mSkill1 and mSkill2 5 years ago
Andrei Kortunov 0d66369efb Use overrides, when needed 5 years ago
Andrei Kortunov aacb569acb Use more C++11 in tools code 5 years ago
Capostrophic 4e22f03ece Revise esmtool cell reference output 5 years ago
Capostrophic ad333e88fe Handle enchantment autocalc flag as a flag (bug #5363) 5 years ago
Capostrophic 216a5d27c6 Avoid working with AMBI subrecord in tools unnecessarily (bug #5269) 5 years ago
Andrei Kortunov 5220177ebc Fix ESMTool build 5 years ago
Assumeru 737aa1e4e8 Remove FactionID editing from OpenCS (#2636)
* Remove FactionID editing

* remove useless comments

* rename FactionID to Unknown
5 years ago
Andrei Kortunov 34873b6065 Fix dead code 5 years ago
Andrei Kortunov 6eb8e0cf4d Display magic effects according to research page 5 years ago
Andrei Kortunov 2fc819cdae Encode ID's in all places to UTF-8 (bug #3977) 5 years ago
Andrei Kortunov e679190f31 Introduce a custom format() function to get rid of boost::format() and hackish replace() 6 years ago
Capostrophic 7814bd1b76 Support eight possible blood types (feature #4958) 6 years ago
elsid fa7b304e78
Use auto for map value_type in range-based for loops
To avoid implicit call of copy constructor for
pair<const K, V> to pair<K, V> conversion.
6 years ago
Capostrophic 594ea39f5d Revise AI data handling
Make Hello 16-bit unsigned as it's intended to be
Get rid of redundant mHasAI boolean
Always save AI data subrecord
Adjust creature and NPC default rating values to Morrowind defaults
6 years ago
Capostrophic 832870dc79 esmtool cleanup 6 years ago
Andrei Kortunov 68c170f065 Refactor tools to do not use boost exceptions and exit() command 6 years ago
Andrei Kortunov 4ee15ddcb9 Fix many Coverity Scan warnings 6 years ago
Alf Henrik Sauge feeee50a88 Dropping a separate NPDTstruct12 object and instead use NPDTstruct52
NPDTstruct12 is now only used when loading and saving. Turning auto calc
on and off now no longer switches between to different set of values
7 years ago
tri4ng1e d4d1703bcf
Some PVS-Studio and cppcheck fixes
cppcheck:
[apps/esmtool/record.cpp:697]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[apps/esmtool/record.cpp:1126]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[apps/esmtool/record.cpp:1138]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[apps/niftest/niftest.cpp:36]: (performance) Function parameter 'filename' should be passed by reference.
[apps/niftest/niftest.cpp:41]: (performance) Function parameter 'filename' should be passed by reference.
[apps/opencs/model/prefs/boolsetting.cpp:25]: (warning) Possible leak in public function. The pointer 'mWidget' is not deallocated before it is allocated.
[apps/opencs/model/prefs/shortcuteventhandler.cpp:52]: (warning) Return value of std::remove() ignored. Elements remain in container.
[apps/openmw/mwstate/quicksavemanager.cpp:5]: (performance) Variable 'mSaveName' is assigned in constructor body. Consider performing initialization in initialization list.

PVS-Studio:
apps/opencs/model/filter/parser.cpp  582  warn  V560 A part of conditional expression is always true: allowPredefined.
apps/opencs/view/world/referencecreator.cpp  67  warn  V547 Expression '!errors.empty()' is always false.
apps/opencs/view/world/referencecreator.cpp  74  warn  V547 Expression '!errors.empty()' is always false.
apps/opencs/view/doc/loader.cpp  170  warn  V560 A part of conditional expression is always true: !completed.
apps/opencs/view/doc/loader.cpp  170  warn  V560 A part of conditional expression is always true: !error.empty().
apps/opencs/model/tools/pathgridcheck.cpp  32  err  V517 The use of 'if (A) {...} else if (A) {...}' pattern was detected. There is a probability of logical error presence. Check lines: 32, 34.
apps/opencs/model/world/refidadapterimp.cpp  1376  err  V547 Expression 'subColIndex < 3' is always true.

apps/openmw/mwgui/widgets.hpp  318  warn  V703 It is odd that the 'mEnableRepeat' field in derived class 'MWScrollBar' overwrites field in base class 'ScrollBar'. Check lines: widgets.hpp:318, MyGUI_ScrollBar.h:179.
apps/openmw/mwgui/widgets.hpp  319  warn  V703 It is odd that the 'mRepeatTriggerTime' field in derived class 'MWScrollBar' overwrites field in base class 'ScrollBar'. Check lines: widgets.hpp:319, MyGUI_ScrollBar.h:180.
apps/openmw/mwgui/widgets.hpp  320  warn  V703 It is odd that the 'mRepeatStepTime' field in derived class 'MWScrollBar' overwrites field in base class 'ScrollBar'. Check lines: widgets.hpp:320, MyGUI_ScrollBar.h:181
apps/openmw/mwmechanics/actors.cpp  1425  warn  V547 Expression '!detected' is always true.
apps/openmw/mwmechanics/character.cpp  2155  err  V547 Expression 'mode == 0' is always true.
apps/openmw/mwmechanics/character.cpp  1192  warn  V592 The expression was enclosed by parentheses twice: ((expression)). One pair of parentheses is unnecessary or misprint is present.
apps/openmw/mwmechanics/character.cpp  521  warn  V560 A part of conditional expression is always true: (idle == mIdleState).
apps/openmw/mwmechanics/pathfinding.cpp  317  err  V547 Expression 'mPath.size() >= 2' is always true.
apps/openmw/mwscript/interpretercontext.cpp  409  warn  V560 A part of conditional expression is always false: rank > 9.
apps/openmw/mwgui/windowbase.cpp  28  warn  V560 A part of conditional expression is always true: !visible.
apps/openmw/mwgui/journalwindow.cpp  561  warn  V547 Expression '!mAllQuests' is always false.
apps/openmw/mwgui/referenceinterface.cpp  18  warn  V571 Recurring check. The '!mPtr.isEmpty()' condition was already verified in line 16.
apps/openmw/mwworld/scene.cpp  463  warn  V547 Expression 'adjustPlayerPos' is always true.
apps/openmw/mwworld/worldimp.cpp  409  err  V766 An item with the same key '"sCompanionShare"' has already been added.
apps/openmw/mwworld/cellstore.cpp  691  warn  V519 The 'state.mWaterLevel' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 689, 691.
apps/openmw/mwworld/weather.cpp  1125  warn  V519 The 'mResult.mParticleEffect' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1123, 1125.
apps/openmw/mwworld/weather.cpp  1137  warn  V519 The 'mResult.mParticleEffect' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1135, 1137.

apps/wizard/unshield/unshieldworker.cpp  475  warn  V728 An excessive check can be simplified. The '(A && B) || (!A && !B)' expression is equivalent to the 'bool(A) == bool(B)' expression.
apps/wizard/installationpage.cpp  163  warn  V735 Possibly an incorrect HTML. The "</p" closing tag was encountered, while the "</span" tag was expected.

components/fontloader/fontloader.cpp  427  err  V547 Expression 'i == 1' is always true.
components/nifosg/nifloader.cpp  282  warn  V519 The 'created' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 278, 282.
components/esm/loadregn.cpp  119  err  V586 The 'clear' function is called twice for deallocation of the same resource. Check lines: 112, 119.
components/esm/cellref.cpp  178  warn  V581 The conditional expressions of the 'if' statements situated alongside each other are identical. Check lines: 175, 178.
components/esmterrain/storage.cpp  235  warn  V560 A part of conditional expression is always true: colStart == 0.
components/esmterrain/storage.cpp  237  warn  V560 A part of conditional expression is always true: rowStart == 0.
7 years ago
AnyOldName3 8c74f16247 Restore trailing new lines to shrink PR 7 years ago
AnyOldName3 5ce34f1cbf Move new behaviour into macro to reduce code duplication 7 years ago
AnyOldName3 3c0ec0d6d0 If CMake supports it, sets the debugger working directory for Visual Studio 7 years ago
Bret Curtis c781d1f8ed purge unnecessary imports
add fstream back

add fstream back

add fstream back

add fstream back

add fstream back

add fstream back

add fstream back
8 years ago
MAtahualpa 2d1af3ee4a Update record.cpp
This should be the last instance of "mSkillID". Let's see what Travis says about it...
8 years ago
Roman Proskuryakov d5dfa89060 Rewrite NAME_T into FIXED_STRING. 9 years ago
Marc Zinnschlag 57101c1b19 added namespace and include to previous commit 9 years ago
Alexander Kjäll 32123aec2b
made logarithm function for calculating column widths in the output be more generic 9 years ago
scrawl 9116c701d5 esmtool fix 9 years ago
scrawl b8e11cf197 Merge commit 'pull/upstream/678' into HEAD
Conflicts:
	apps/esmtool/record.cpp
	apps/opencs/model/doc/savingstages.cpp
	apps/opencs/model/world/land.cpp
	apps/opencs/model/world/land.hpp
	apps/opencs/model/world/landtexture.cpp
	apps/openmw/mwworld/store.cpp
	components/esm/loadland.cpp
	components/esm/loadland.hpp
9 years ago
scrawl a47617c21f Fix tab indentations in apps/ and components/ 9 years ago
Marc Zinnschlag 69b9eadb52 refactored loading of land data 9 years ago
Stanislav Bas 8243fb2479 Load methods (for ESM records) accept a deleted flag in ESMTool 10 years ago
Stanislav Bas ede4bfcf52 Rework EsmTool code. Remove explicit NAME handling 10 years ago
scrawl cad18969e3 Merge branch 'master' of https://github.com/OpenMW/openmw into osg
Conflicts:
	apps/openmw/mwmechanics/aicombat.cpp
	apps/openmw/mwmechanics/aitravel.cpp
10 years ago