1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-16 17:59:56 +00:00
Commit graph

35 commits

Author SHA1 Message Date
Andrei Kortunov
93e50cc7aa Improve format version in content selector 2024-01-01 18:16:58 +04:00
elsid
80e6d6cbe3
Support variable size strings in ESM3 2023-02-13 10:18:32 +01:00
elsid
2e64155c0f
Use signed type for left record and files size in ESM3 reader context
Otherwise reading some of the records like ESM::CellRef without a subrecord
after could lead to underflow of ESM_Context::leftRec which makes
ESM::ESMReader::hasMoreSubs to return true and load hangs for a while trying to
read the same subrecord many times.

Fix ESM::Variant tests since it's now required to have a record for any ESM
data. Add 16 (size of record header) to all expected data sizes.
2023-02-11 16:09:14 +01:00
elsid
2bbed8cc06
Fix gcc warning: array subscript 5 is outside array bounds of ‘const char [5]’
In function ‘bool ESM::operator==(const FixedString<capacity>&, const T* const&) [with long unsigned int capacity = 5; T = char; <template-parameter-1-3> = void]’,
    inlined from ‘testing::AssertionResult testing::internal::CmpHelperEQ(const char*, const char*, const T1&, const T2&) [with T1 = ESM::FixedString<5>; T2 = const char*]’ at /home/elsid/dev/googletest/build/gcc/release/install/include/gtest/gtest.h:1358:11,
    inlined from ‘static testing::AssertionResult testing::internal::EqHelper::Compare(const char*, const char*, const T1&, const T2&) [with T1 = ESM::FixedString<5>; T2 = const char*; typename std::enable_if<((! std::is_integral<_Tp>::value) || (! std::is_pointer<_Dp>::value))>::type* <anonymous> = 0]’ at /home/elsid/dev/googletest/build/gcc/release/install/include/gtest/gtest.h:1377:64,
    inlined from ‘virtual void {anonymous}::EsmFixedString_equality_operator_for_not_convertible_to_uint32_with_const_char_pointer_Test::TestBody()’ at apps/openmw_test_suite/esm/test_fixed_string.cpp:165:9:
components/esm/esmcommon.hpp:134:19: warning: array subscript 5 is outside array bounds of ‘const char [5]’ [-Warray-bounds]
  134 |         return rhs[capacity] == '\0';
      |                ~~~^
apps/openmw_test_suite/esm/test_fixed_string.cpp: In member function ‘virtual void {anonymous}::EsmFixedString_equality_operator_for_not_convertible_to_uint32_with_const_char_pointer_Test::TestBody()’:
apps/openmw_test_suite/esm/test_fixed_string.cpp:164:20: note: at offset 5 into object ‘other’ of size 5
  164 |         const char other[5] = { 'a', 'b', 'c', 'd', '\0' };
      |                    ^~~~~
2023-01-06 22:09:07 +01:00
clang-format-bot
ddb0522bbf
Apply clang-format to code base 2022-09-22 21:35:26 +03: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
elsid
da0a1ac9ba
Do compile time checks in compile time instead of tests 2022-08-03 21:47:00 +02:00
Evil Eye
61ea678a96 Implement ignored records 2022-04-16 16:28:39 +02: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
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
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
cc9cii
4b3de46bfa Use enums in place of magic numbers. Ensure Creature and NPC cell references are always saved as persistent. 2021-07-06 12:37:02 +10:00
elsid
b806445a36
Use existing min implementation 2021-05-09 13:58:05 +02:00
jvoisin
8a56ba6aaa Fix compilation 2021-05-07 13:58:30 +02:00
elsid
fbeccc2908 Apply 1 suggestion(s) to 1 file(s) 2021-05-07 09:28:47 +00:00
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
2021-05-06 22:41:20 +02:00
Andrei Kortunov
822764d0fa Rework fixed strings handling 2020-10-05 21:52:22 +04:00
Bret Curtis
8c2f3ff007 clean up code; purge const_cast 2020-04-19 16:31:54 +02:00
Azdul
7940317e42 Make sure that proper operator function is used for char[N] argument 2019-02-03 09:32:32 +01:00
Roman Proskuryakov
d5dfa89060 Rewrite NAME_T into FIXED_STRING. 2016-05-07 23:27:33 +03:00
Nikolay Kasyanov
3e45e9a48a Remove no longer required strnlen wrapper
It was used for MinGW & OS X < 10.7. Minimal OS X version was bumped to
10.7 and MinGW support was recently dropped (see
1eaa64c49c).
2015-03-18 23:37:54 +02:00
scrawl
9d3f0b2ed5 Remove some unused code, include cleanup 2015-01-27 23:12:13 +01:00
Nathan Aclander
33ce03dfc5 Should be compared against uint only 2015-01-24 17:17:05 -08:00
scrawl
c883a73d30 Several warning fixes 2015-01-23 15:34:47 +01:00
Bret Curtis
ab224f93c9 remove our stdint.h version that uses boost and force usage of system stdint.h 2014-03-05 17:08:58 +01:00
Marc Zinnschlag
16570ce87b moved header record struct to separate file 2013-03-12 09:16:03 +01:00
Marc Zinnschlag
731ac6a160 removed redundant copy of Header::Data 2013-03-12 08:30:51 +01:00
Marc Zinnschlag
9e68a420ae restructuring tes3 record structs 2013-03-12 08:15:20 +01:00
Marc Zinnschlag
b085c4f749 removing more leftovers 2013-03-11 16:53:42 +01:00
Marc Zinnschlag
2e1a1fd11a removing some remains of the removed GMST fixing feature 2013-03-11 16:30:47 +01:00
Marc Zinnschlag
64d517dd79 removed unused file type information from esm component 2013-03-11 14:42:49 +01:00
Mark Siewert
2175f13b67 - Add tracking for dependencies between plugins.
- Add reference number mangling required for moving references around.
2012-11-17 00:21:51 +01:00
Mark Siewert
42eefaf36f - Add support for loading references from multiple esm/esp files. Full reference ID mangling coming soon (currently, moved references are simply cloned).
- Reference loader now (partially) supports MVRF tag.
2012-11-10 21:43:41 +01:00
greye
3494e17b7c wipe record superclass 2012-10-01 00:51:54 +04:00
greye
1339787863 remove underscores from filenames in esm 2012-09-23 23:12:10 +04:00
Renamed from components/esm/esm_common.hpp (Browse further)