Commit Graph

7083 Commits (f398896ec8562a8115f82705e6bac7f932b75a0b)

Author SHA1 Message Date
psi29a 83c8312060 Merge branch 'esm4_cell_fixes' into 'master'
A few fixes related to ESM4::Cell

See merge request OpenMW/openmw!3083
2 years ago
Evil Eye 08f35fe839 Add ESM::Skill::mWerewolfValue 2 years ago
Evil Eye 7b0680de5f Resolve attribute GMST members 2 years ago
Evil Eye eea730768b Replace sIconNames with ESM::Skill::mIcon 2 years ago
Evil Eye 9c819b5705 Disallow formatting of UString 2 years ago
Petr Mikheev 5cb4c66266 Avoid using ESM4::Cell with uninitialized fields 2 years ago
Petr Mikheev 19fb9f8e14 Handle editor marker bit in BSXFlags 2 years ago
Petr Mikheev 788a4d32aa Handle DoubleSided and TreeAnim flags in BSLightingShaderProperty. 2 years ago
Petr Mikheev fd90a8c9b4 Hide Nif nodes with name "EditorMarker". 2 years ago
Petr Mikheev 1b669db017 Load ESM4::Tree and ESM4::Furniture 2 years ago
Evil Eye 9c60a6fa4d Replace sSkillNameIds with ESM::Skill::mName 2 years ago
florent.teppe 9f9a6c06e0 Fix get vertex Height for esm4 2 years ago
florent.teppe 5dfa06acf8 removes unused variable
it was already mostly unused, it was usefull only in the constructor, even though it was a paramater of the constructor, so it could have been removed.
2 years ago
florent.teppe 12304d36aa std::cout => Log(Debug::Verbose) 2 years ago
florent.teppe ad8cfde4e0 ESM::LandData no longer a virtual interface
instead it is constructed from ESM::Land or ESM4::Land
2 years ago
fteppe 22dc383f63 fixes errors and warnings
Applies review comments

getWorldspaceTerrain => returns a reference because never null
crashfix in navigator
updateLandPositions fixes naming of it
const ESM4::Land* MWWorld::Store<ESM4::Land>::search(ESM::ExteriorCellLocation cellLocation) const removes useless else
ExteriorCellLocation uses default initializers
get terrain height returns -MAX_FLOAT when there is no esm4 terrain.

applied review comments

use default initlializer when possible
factorise code
uses pattern matching in for loop.
2 years ago
florent.teppe f600730459 fixes functions that were virtual but not tagged as override. 2 years ago
florent.teppe 7d88a240d3 no default terrain for esm4 exterior. 2 years ago
florent.teppe 2bb17279df linux build
clang format 14.0

Arm64 build
2 years ago
florent.teppe a9e0489867 fixes stutters => bugs in the way cells were updated. 2 years ago
florent.teppe 0e4d21a40c takes the right terrain bounds. 2 years ago
florent.teppe 7bc4fc6bf9 Fix issues on terrain change
terrain Preloader now preloads the right terrain
2 years ago
florent.teppe 427b6ea39a fix bug in "fixColour" and "fixNormal"
fix issue in vtx texture selection
2 years ago
florent.teppe c2e652b8a0 getLand taken out of loop where it's value would always be the same. 2 years ago
florent.teppe feb60f5ad8 One landsize variable instead of two.
fixes issues in constant values.
2 years ago
florent.teppe d0211acf9e Fixes bug in terrain loading + collision heightmap works
although terrain rendering is 100% broken right now
2 years ago
florent.teppe c35c7b3640 ESM4::Land loaded, added to store and to land objects
it does not work yet. Some things are displayed, but it looks all wrong.
2 years ago
florent.teppe fffcf52316 land manager cache's key is an ExteriorCellLocation
ESM4::Land is now a ESM::LandData
2 years ago
florent.teppe e0fa15b727 Abstracted Land data that can be used by esm3 and esm4. 2 years ago
florent.teppe 1b718f09c5 adding worldspace info to terrain data structures
Rendering manager can have multiple terrain, one for each queried worldspace
Terrain::World has a worldspace member
storage functions require a worldspace parameter.
2 years ago
florent.teppe 93e7b0d946 Terrain has a mandatory worldspace in constructor
getTerrainHeightAt takes a worldspace.

Doesn't change anything for now => Therrain is created with the default ESM3 worldspace, and is never changed.
2 years ago
Evil Eye 90a3a7b62f Add mWerewolfGMST 2 years ago
Evil Eye a5e1c87fb8 Remove sGmstAttributeIds, sGmstAttributeDescIds, sAttributeIcons 2 years ago
psi29a 16a580eb21 Merge branch 'clickbait' into 'master'
Remove sAttributeIds and sSkillIds

See merge request OpenMW/openmw!3071
2 years ago
psi29a 052972033c Merge branch 'get_rid_of_asserts_in_esm' into 'master'
Replace all asserts in components/esm[34] with throw

See merge request OpenMW/openmw!3069
2 years ago
unknown 14600de185 Remove sAttributeIds and sSkillIds 2 years ago
jvoisin c98c532213 Replace all asserts in components/esm[34] with throw 2 years ago
elsid 235eb65c97
Rename positionToCellIndex to match return type 2 years ago
psi29a 05555947c3 Merge branch 'specialdedup' into 'master'
Deduplicate specialization code

See merge request OpenMW/openmw!3063
2 years ago
jvoisin 44a65512e8 Replace another assert with a throw 2 years ago
Evil Eye 877f6747be Deduplicate specialization code 2 years ago
elsid dc8dfe81ce
Add more details to exceptions 2 years ago
Pierre Mossler e6838cddc7 missing include in attr.cpp 2 years ago
psi29a d3ed04c551 Merge branch 'lua-activeeffects' into 'master'
Lua: Actor api for active effects and active spells

See merge request OpenMW/openmw!3036
2 years ago
Petr Mikheev e74161ea8e Merge branch 'slashrslashmarijuanaenthusiasts' into 'master'
Improve Skyrim tree loading (limited)

See merge request OpenMW/openmw!3054
2 years ago
elsid 89eccab7f1
Add missing include
In file included from /home/elsid/dev/openmw/apps/openmw_test_suite/settings/testvalues.cpp:1:
/home/elsid/dev/openmw/components/misc/strings/conversion.hpp: In function ‘std::string Misc::StringUtils::toHex(std::string_view)’:
/home/elsid/dev/openmw/components/misc/strings/conversion.hpp:139:87: error: ‘uint8_t’ in namespace ‘std’ does not name a type; did you mean ‘wint_t’?
  139 |             const std::ptrdiff_t space = static_cast<std::ptrdiff_t>(static_cast<std::uint8_t>(v) <= 0xf);
      |                                                                                       ^~~~~~~
      |                                                                                       wint_t
/home/elsid/dev/openmw/components/misc/strings/conversion.hpp:140:97: error: ‘uint8_t’ in namespace ‘std’ does not name a type; did you mean ‘wint_t’?
  140 |             const auto [ptr, ec] = std::to_chars(out + space, out + space + 2, static_cast<std::uint8_t>(v), 16);
      |                                                                                                 ^~~~~~~
      |                                                                                                 wint_t
2 years ago
Mads Buvik Sandvei 410e8b100a Elsid comments 2 years ago
Mads Buvik Sandvei 5a8c6df633 clang'd 2 years ago
Mads Buvik Sandvei 4bf23f152b Revert use of string_view to std::string for effectIdTo* methods. 2 years ago
Mads Buvik Sandvei 6cfc06d7d8 There is no typo 2 years ago
Mads Buvik Sandvei 9a59330561 refactor effect names in loadmgef. Added a map from effect index to non-gmst effect name for use in lua scripts. 2 years ago
Mads Buvik Sandvei b791ce9132 Remove redundant qualifiers 2 years ago
Mads Buvik Sandvei 7ba43c9426 actor.ActiveEffects and actor.ActiveSpells 2 years ago
elsid 2f18da08d7
Add missing include 2 years ago
psi29a 2545185d52 Merge branch 'cs_show_magic_effect_name' into 'master'
Show magic effect name instead of IndexRefId (#7366)

Closes #7366

See merge request OpenMW/openmw!3049
2 years ago
psi29a 64b07ee9f4 Merge branch 'esmtool_dawnguard_dragonborn' into 'master'
Partial support esmtool dump for Dragonborn.esm and Dawnguard.esm from Skyrim

See merge request OpenMW/openmw!3052
2 years ago
psi29a a61f955e9f Merge branch 'case.ext' into 'master'
Fix a regression and use more starts_with and ends_with

See merge request OpenMW/openmw!3051
2 years ago
Alexei Dobrohotov a983977e6a Fix NiSkinData loading for >4.2.1.0 2 years ago
elsid 7c16ecb258
Skip more unknown ESM4 subrecords
CNAM from HDPT is a part of Dawnguard.esm.
ATKR from RACE is a part of Dawnguard.esm.
CIS2 from SCRL is a part of Dragonborn.esm.
SPMV from RACE is a part of Dragonborn.esm.
2 years ago
elsid e537d1d0d4
Ignore missing localization string files by esmtool
Dawnguard.esm from Skyrim depends on files stored in Dawnguard.bsa which is not
processed by esmtool.
2 years ago
elsid 358b7ad3ec
Keep ESM4 localized strings in memory
Size of the files is in order of megabytes at max. Storing offset lookup table
to read from file on demand is less efficient than reading from memory for such
size.

Read and store offsets first. Sort them to read values sequentially. Memoize
last offset and value to avoid reading the same value twice. Use seek only when
current possition does not match offset. Optimize seek for short distance by
calling read instead.
2 years ago
Alexei Dobrohotov 1b5e904285 Read BSMultiBound et al. 2 years ago
Alexei Kotov 401ebfd7f2 Merge branch 'fix_oblivion_loading' into 'master'
Fix Oblivion loading

See merge request OpenMW/openmw!3050
2 years ago
Evil Eye 9728024978 Replace compare with more idiomatic methods 2 years ago
jvoisin 7f191a2a8a Merge branch 'if_all_the_asserts' into 'master'
Replace all the `asserts` with `throw` in components/esm4/reader.cpp

See merge request OpenMW/openmw!3047
2 years ago
jvoisin a9bf671992 Fix Oblivion loading
Found by elsid@, and due to !3043
2 years ago
Evil Eye 3138eb406b Fix case sensitive comparison 2 years ago
elsid 8f47da46ec
Show magic effect name instead of IndexRefId 2 years ago
jvoisin 8b654f276d Replace all the `asserts` with `throw` in components/esm4/reader.cpp 2 years ago
jvoisin 6da3c3e200 Fix a gcc warning about copy
```
/home/jvoisin/dev/openmw/openmw/components/fontloader/fontloader.cpp:532:29: warning: loop variable '[key, value]' creates a copy from type 'std::pair<const int, int> const' [-Wrange-loop-construct]
            for (const auto [key, value] : additional)
                            ^
/home/jvoisin/dev/openmw/openmw/components/fontloader/fontloader.cpp:532:18: note: use reference type 'std::pair<const int, int> const &' to prevent copying
            for (const auto [key, value] : additional)
                 ^~~~~~~~~~~~~~~~~~~~~~~~~
                            &
1 warning generated.
```
2 years ago
psi29a 6f8c152487 Merge branch 'convert_camera_settings' into 'master'
Use settings values for Camera settings (#6876)

See merge request OpenMW/openmw!3041
2 years ago
psi29a dab616f4e2 Merge branch 'guiew' into 'master'
Use string_view in more places and reduce the number of empty string literals

See merge request OpenMW/openmw!3042
2 years ago
jvoisin 534e20cf3a Replace another `assert` with a `throw`
It fixes the following crash:

```nasm
[----------------------------------registers-----------------------------------]
RAX: 0xffffffffffffffe4
RBX: 0x7fffffffbd88 --> 0x0
RCX: 0x555555861f01 --> 0xd6000055555582fa
RDX: 0x1
RSI: 0x0
RDI: 0xff
RBP: 0x2e94
RSP: 0x7fffffff9bb0 --> 0x0
RIP: 0x55555574e286 (<_ZN4ESM44Cell4loadERNS_6ReaderE+182>:	mov    eax,DWORD PTR [rax+0xc])
R8 : 0x0
R9 : 0x555555836bd0 --> 0x555555861f90 --> 0x100000000000000
R10: 0xffffffff
R11: 0x0
R12: 0x7fffffffbd88 --> 0x0
R13: 0x7fffffffbd30 --> 0x7fffffffbd28 --> 0xff0001
R14: 0x7fffffff9da0 --> 0x10fc
R15: 0x7fffffff9ea8 --> 0x7fffffff9eb8 --> 0x0
EFLAGS: 0x10206 (carry PARITY adjust zero sign trap INTERRUPT direction overflow)
[-------------------------------------code-------------------------------------]
   0x55555574e27c <_ZN4ESM44Cell4loadERNS_6ReaderE+172>:	mov    rdi,r12
   0x55555574e27f <_ZN4ESM44Cell4loadERNS_6ReaderE+175>:	xor    esi,esi
   0x55555574e281 <_ZN4ESM44Cell4loadERNS_6ReaderE+177>:	call   0x5555557edfb0 <_ZNK4ESM46Reader3grpEm>
=> 0x55555574e286 <_ZN4ESM44Cell4loadERNS_6ReaderE+182>:	mov    eax,DWORD PTR [rax+0xc]
   0x55555574e289 <_ZN4ESM44Cell4loadERNS_6ReaderE+185>:	cmp    eax,0xff
   0x55555574e28e <_ZN4ESM44Cell4loadERNS_6ReaderE+190>:	ja     0x55555574e314 <_ZN4ESM44Cell4loadERNS_6ReaderE+324>
   0x55555574e294 <_ZN4ESM44Cell4loadERNS_6ReaderE+196>:	cmp    al,0x5
   0x55555574e296 <_ZN4ESM44Cell4loadERNS_6ReaderE+198>:	jne    0x55555574e314 <_ZN4ESM44Cell4loadERNS_6ReaderE+324>
[------------------------------------stack-------------------------------------]
0000| 0x7fffffff9bb0 --> 0x0
0008| 0x7fffffff9bb8 --> 0x0
0016| 0x7fffffff9bc0 --> 0x0
0024| 0x7fffffff9bc8 --> 0x0
0032| 0x7fffffff9bd0 --> 0x0
0040| 0x7fffffff9bd8 --> 0x0
0048| 0x7fffffff9be0 --> 0x0
0056| 0x7fffffff9be8 --> 0x0
[------------------------------------------------------------------------------]
Legend: code, data, rodata, value
Stopped reason: SIGSEGV
0x000055555574e286 in ESM4::Cell::load (this=0x7fffffff9da0, reader=...) at /home/jvoisin/dev/openmw/openmw/components/esm4/loadcell.cpp:68
68	   if (reader.grp().type == ESM4::Grp_ExteriorSubCell && reader.grp().label.grid[1] == 0
gdb-peda$ bt
    this=<optimized out>, reader=...) at /home/jvoisin/dev/openmw/openmw/apps/esmtool/tes4.cpp:547
    recordInvocable=...) at /home/jvoisin/dev/openmw/openmw/./components/esm4/readerutils.hpp:31
    at /home/jvoisin/dev/openmw/openmw/./components/esm4/readerutils.hpp:23
    at ../csu/libc-start.c:381
```
2 years ago
psi29a 364bc91f5b Merge branch 'fix_element_destroy' into 'master'
Fix bug in LuaUi::Element::destroy() that sometimes leads to an infinite loop on UI cleanup

See merge request OpenMW/openmw!3033
2 years ago
psi29a e1754b840a Merge branch 'fix_empty_vector' into 'master'
Guard an undefined behaviour

Closes #6725

See merge request OpenMW/openmw!3037
2 years ago
Evil Eye 4e05dd3cd3 Make FontWrapper conditional 2 years ago
Evil Eye 492e336c0c Use string_view in more UI code 2 years ago
Alexei Dobrohotov 3e8a9d1de4 Read BSTreeNode, handle as NiNode 2 years ago
Evil Eye 5491512905 Use string_view in more places and reduce the number of empty string literals 2 years ago
elsid 5d5e6844d1
Use settings values for Camera settings 2 years ago
jvoisin 81bd034a9e Guard an undefined behaviour
`std::vector.back()` on an empty `std::vector` is undefined.
This should fix #6725.

Thanks to @Capostrophic for the investigation.
2 years ago
jvoisin cde7aeac3d Replace an `asert` with a conditional throw
The assert is reachable, resulting in a brutal `abort`
instead of a nice exception.
2 years ago
Petr Mikheev c6eed2a6c6 Fix bug in LuaUi::Element::destroy() that sometimes leads to an infinite loop on UI cleanup 2 years ago
psi29a 1ce35fa9e7 Merge branch 'lua-bounding-box' into 'master'
Expose game object's bounding box in lua api

See merge request OpenMW/openmw!3009
2 years ago
Petr Mikheev be26fbdacb Explicitly intialize the fields in `ESM4::Cell` that don't have default constructors. 2 years ago
glassmancody.info a7b7f99d72 Expose game object's bounding box in lua api 2 years ago
Petr Mikheev 61232f4b75 Fix uninitialized mWaterLevel in esm4/loadwrld.cpp 2 years ago
Petr Mikheev 493858127a Drop NIF root node transformation for Skyrim models the same way as for Morrowind models. 2 years ago
Petr Mikheev 29031d0586 Increase ESM4 active grid 2 years ago
elsid 15f3e3ae71
Support ESM4 IDLE record 2 years ago
elsid 584c0dbcdc
Support reading bool GMST by ESM4 2 years ago
elsid 010db45a10
Read ESM::FormId using ESM4::Reader::getFormId 2 years ago
elsid a90aa7d8b2
Count navmeshdb reads for each reading job 2 years ago
elsid 5ae8b9cae1
Report raw navmesh cache counters 2 years ago
elsid a8a76f9a05
Fix BulletShape copy constructor and use for BulletShapeInstance
Copy mVisualCollisionType.
2 years ago
elsid 04d439485b
Log more info about navmesh shapes and jobs 2 years ago
psi29a ab17d0947a Merge branch 'esm4-exterior' into 'master'
Loading ESM4 Exteriors

See merge request OpenMW/openmw!2986
2 years ago
psi29a c15710c35b Merge branch 'settings_values_index' into 'master'
Use typed settings storage for settings window (#6876)

See merge request OpenMW/openmw!2997
2 years ago
florent.teppe a3bd6e7e47 ESM::ExteriorCellIndex => ESM::ExteriorCellLocation 2 years ago
florent.teppe 393357abc0 ESM::Cell::positionToCellIndex returns a ESM::ExteriorCellIndex
and takes a worldspace id as input
ESM::getCellSize takes a wordspace as input.
removed useless static in static inline funcs
2 years ago
florent.teppe 559830f59a applies review comments
Removes ToLowercase after .serializeText
removed unused variable
!ptr => ptr == nullptr
better indentation + error message on throw
friend struct std::hash<...> useless on struct with all public fields.
2 years ago
florent.teppe 3d06cabf6a indexToPosition moved from world -> esm/util.hpp 2 years ago
florent.teppe 1cf0cd5628 moved mwworld/cellutils.hpp -> esm/util.hpp 2 years ago
florent.teppe 75561abfca Factorises code and fixes preload bug. 2 years ago
florent.teppe 5648e03e9e function to get cellsize depending on the context. 2 years ago
florent.teppe 93b3d9238c mWater level disabled for skyrim. 2 years ago
florent.teppe 3de08e654f Better handling of water levels for exterior cells.
Especially for skyrim and it's weird water level values in exteriors.
If we don't have a valid exterior water level we use the world's water level
2 years ago
florent.teppe 56cb2a83ec removed sDefaultWorldspace, only sDefaultWorldspaceId now.
sDefaultWorldspaceId is a StringRefId to be able to getvalue easily.
2 years ago
florent.teppe 141878f30d int x, int y , ESM::RefId worldspace => ESM::ExteriorCellIndex
also removed the changeToExteriorCell that only took a position as input, didn't work with esm4.
2 years ago
florent.teppe 1d03b54694 maps with tuple key instead of map of map
instead of using a map with key as exterior and map of <int ,int >, Cell as value we use a single map with a tuple x,y,exterior as key
2 years ago
florent.teppe d8a782425b can actually load and teleport to esm4 exterior spaces 2 years ago
florent.teppe a62e75fd19 Initial attempt at loading esm4 exteriors 2 years ago
jvoisin 0270cfb733 Merge branch 'throw_with_more_info' into 'master'
show which file is not found

See merge request OpenMW/openmw!3011
2 years ago
Bret Curtis 95fff7b77b show which file is not found 2 years ago
Elias Howell bf8fafa79a fixed some typos and spelling errors 2 years ago
elsid 258ae9d98e
Add settings index to provide lookup by category and name 2 years ago
psi29a cdc753df70 Merge branch 'lua_refactoring' into 'master'
MWLua refactoring

See merge request OpenMW/openmw!2956
2 years ago
jvoisin c7a3f43915 Minor header cleanup
This has been done via CLion's "unused include directive",
set to "detect completely unused".
2 years ago
elsid 0601d7213e
Remove ESM::RefId::sEmpty
This variable is only required to return empty RefId as const reference. There
is no point in doing so for a type cheap to copy.
2 years ago
Petr Mikheev 4562b8c06b Add headers for all `.cpp` files in mwlua; move packages initilaization from LuaManager to luabindings.cpp 2 years ago
Petr Mikheev c362b2efa6 Use LuaUtil::cast for casting sol::object to prevent crashing on type mismatch in Lua scripts. 2 years ago
Petr Mikheev 61578ca39b Add function LuaUtil::cast 2 years ago
psi29a 957318d0b9 Merge branch 'remove_cruft' into 'master'
remove boost::locale::conv

See merge request OpenMW/openmw!2970
2 years ago
psi29a 50bd6cf263 remove boost::locale::conv 2 years ago
Bret Curtis 0db31207dc remove remaining boost::filesystem cruft 2 years ago
elsid 35f4bcd31e
Run openmw_settings_access_benchmark in CI
Add benchmarks to access 2 and 3 settings. Use settings with max memory address
distance assuming Settings::Values is single memory location object.

Use settings-default.cfg from the source code repository to initialize settings.
2 years ago
elsid 0a678224cd
Add category to error message 2 years ago
elsid 05d09d9927
Fix msvc warning 2 years ago
elsid 8e487c283c
Store default settings values 2 years ago
Tetramir 6936c3a1c8 Merge branch 'fix_esm4' into 'master'
Fix regressions in ESM4 reader caused by !2902

See merge request OpenMW/openmw!2957
2 years ago
Petr Mikheev 7b6f0cefb9 Fix regressions in ESM4 reader caused by !2902 2 years ago
Mads Buvik Sandvei 7d69bea7dc Move InitializeStereoOperation to components/stereo 2 years ago
Mads Buvik Sandvei fe066069d7 /components/ code should not access the stereo manager without checking whether or not stereo is enabled first. Stereo component code should not read settings itself, but rather take settings as parameters. 2 years ago
elsid 7a7c20d49e
Define single UpdateGuard type in a separate file 2 years ago
elsid 472a36d92a
Cleanup detournavigator includes 2 years ago
elsid 2cbbdc2879
Add missing files to components/detournavigator list 2 years ago
florent.teppe 3bbf60373a Keep things coherent between references and and cell table 2 years ago
psi29a 70ddca78bf Merge branch 'ref_id_print_tests' into 'master'
Add more tests for printing RefId and clarify some constants

See merge request OpenMW/openmw!2945
2 years ago
elsid 7db14b3392
Add more tests for printing RefId and clarify some constants 2 years ago
elsid c97df7d770
Check FormIdRefId value in constructor 2 years ago
Petr Mikheev 3546d2b3e5 Make Store<ESM4::Reference> to use FormId instead of RefId 2 years ago
Petr Mikheev 00beb06391 Initial Lua bindings for ESM4 types; bindings for ESM4Door. 2 years ago
elsid b8525e8e3d
Fix code format 2 years ago
psi29a ed4e75df65 Merge branch 'fix_includes' into 'master'
Add missing and remove redundant includes

See merge request OpenMW/openmw!2938
2 years ago
fall-leaf cc7e29c9a2 opensuse build fix 2 years ago
elsid b33d12b8e1
Add missing and remove redundant includes 2 years ago
Evil Eye 97fb06d8c9 Add RefId::is 2 years ago
elsid 20129568e6
Replace VisitorCellIdIsESM3Ext with RefId::getIf function 2 years ago
elsid 8f84431840
Do not initialize settings storage for editor 2 years ago
elsid bdc2eb5250
Check only original default settings
When more than 1 user config layers are used we still want to check only the
first layer of default settings loaded from settings-default.cfg.
2 years ago
psi29a ad25e9b154 Merge branch 'settings_storage' into 'master'
Typed settings storage (#6876)

See merge request OpenMW/openmw!2651
2 years ago
Petr Mikheev ff774d6406 Load more ESM4 records 2 years ago
Petr Mikheev f09a689a4f Merge ESM::RefNum and ESM4::FormId 2 years ago
elsid bd10becb65
Use lexicographical comparison in ESM3ExteriorCellRefId::operator< 2 years ago
psi29a ebb5820dd1 Merge branch 'pathgridgraph' into 'master'
Refactor pathgrid indices to use size_t instead of int

See merge request OpenMW/openmw!2900
2 years ago
Evil Eye 8d8207b734 Refactor pathgrid indices to use size_t instead of int 2 years ago
elsid 794050df63
Fix and add tests for ESM3ExteriorCellRefId serialization and text representation 2 years ago
psi29a aad9ce53db Merge branch 'esm4_gmst' into 'master'
Support loading ESM4 GMST records

See merge request OpenMW/openmw!2892
2 years ago
elsid dbed00842e
Split components/esm4/common.hpp header 2 years ago
elsid 87ac85223a
Support loading ESM4 GMST records 2 years ago
florent.teppe 0d17e20490 Implements serialize/deserialize
fixes test compilation.
2 years ago
florent.teppe 21bd28542a Applies review advice
2d coord hash moved to hash.hpp file
format version adds suffix to be more coherent
don't use ESM::RefId::sEmpty
RefId equality with string_view, conversion to refId unecessary
action teleport remove test that mCellId is empty
removes some const references, when copy is enough
invalid refid => empty refid
removes useless change
2 years ago
florent.teppe d782d37ee2 Make sure Vec2iRefId is trivially copyable on GCC 11.3
std::pair<int, int> isn't trivially copyable on some compilers
so a specific struct is defined, it's an int pair, but it should be recognised by GCC 11.3 as trivially copyable

Vec2iRefId => ESM3ExteriorCellRefId

more explcit name and use mX,mY instead of pair
renamed files and enum
2 years ago
florent.teppe 53b14c8b42 fix tests
hopefully also fixes clang tidy
2 years ago
florent.teppe 4c15064a83 Create new Vec2i RefId for ESM3 exterior cells.
Applies the necessary changes to use !2708 for the new Id type
2 years ago
florent.teppe 1e0c3bfdec fixes integration tests
we still want to be able to write using old formats
2 years ago
florent.teppe f99e65843a Removes most cellId.hpp include, simplifies id generation for cells. 2 years ago
florent.teppe c2182c2fcc Get Rid of ESM::CellId almost everywhere
it was a competing concept from using RefIds for cell.
There is almost no point to it now, except to load older data.
2 years ago
florent.teppe fb6701ac1a ESM::CellId is no longer stored on saves. 2 years ago
florent.teppe c39dd576f8 Gets rid of most ESM::CellId 2 years ago
florent.teppe 6895a452ef restores the concept of worldspace for MWWorld::Cell 2 years ago
florent.teppe 9f597ecfea No more Cellid used by ESM4 cells
and that also means it is no longer used by MWWorld::Cell
fixes tests
2 years ago
florent.teppe 3f678c3b0a Dest Door and teleport use ESM::RefId
This changes a lot of files as a consequence.
Still buggy, moving to exterior doesn't bring to the right place yet
coc "seyda neen" doesn't work. SO I broke somehting when fetching a cell from a name
2 years ago
florent.teppe 36502eaf75 ESM3 Cells have an Id.
Store<ESM::Cell> is updated to use it.
2 years ago
Andrei Kortunov 8c6616214b Remove redundant quotes 2 years ago
psi29a ee970db9e0 Merge branch 'player_cell_id_test' into 'master'
Test more ESM::Player records

See merge request OpenMW/openmw!2888
2 years ago
psi29a 0a791528bc Merge branch 'fix_index_ref_id_hash' into 'master'
Shift record type value for IndexRefId hash

See merge request OpenMW/openmw!2885
2 years ago
elsid 9162eaa019
Test more ESM::Player records 2 years ago
elsid 171a25645a
Make sure there are tests for all RefId types 2 years ago
elsid 258aec223a
Shift record type value for IndexRefId hash 2 years ago
Mads Buvik Sandvei e666f36b60 [Multiview] Fix transparent pass and vertex shader 2 years ago
psi29a 1a1f983930 Merge branch 'omwscripts_in_launcher' into 'master'
Support adding Lua mods in subdirectories in the launcher

See merge request OpenMW/openmw!2874
2 years ago
psi29a 119163e74b Merge branch 'fixemptycollisioncrash' into 'master'
Make empty collision shape for objects without any triangles.

Closes #7077

See merge request OpenMW/openmw!2871
2 years ago
psi29a 0c074990ce Merge branch 'fix_lazy_load_skyrim' into 'master'
Fix lazy load skyrim

See merge request OpenMW/openmw!2861
2 years ago
uramer ee1551f02c Merge branch 'l10n' into 'master'
Dehardcode non-game-specific localization GMSTs

See merge request OpenMW/openmw!2855
2 years ago
fredzio 37c4587ca4 Display directories that contains omwscripts.
Display newly added omwscripts as new.
2 years ago
unelsson 3d4da02b18 Don't mess around with btEmptyShape. Use nullptr instead. 2 years ago
elsid 3e99deb0e8
Use typed settings storage for detournavigator 2 years ago
elsid db7d0adfe8
Define settings values based on documentation
Using docs/source/reference/modding/settings/*.rst and
files/settings-default.cfg files content.
2 years ago
elsid 3bad40153c
Define typed settings storage with single time initialization
To make sure loaded settings have valid values doing the check once per loading.
And to make access more efficient.
2 years ago
florent.teppe a3a7767093 applies review changes
filepos changed to an actual file pos
moved lambda declaration out of function call
2 years ago
florent.teppe 464092e323 fix oblivion and skyrim 2 years ago
florent.teppe 34dd24b261 Initial changes to detect when context isn't usable 2 years ago
unelsson 0a1af644af Make empty collision shape for objects without any triangles. 2 years ago
psi29a cd6413c060 Merge branch 'fix_dialogue_title' into 'master'
Show original dialogue name

See merge request OpenMW/openmw!2862
2 years ago
Petr Mikheev 0769e3daf0 Fix #7294 (launcher creates new contentlist everytime) 2 years ago
elsid 452d1e7e49
Store original string id for Dialogue records 2 years ago
elsid 06f42ba69c
Use fixed size enum type for ESM::Dialogue::mType 2 years ago
elsid 4716583f3e
Set ESM::Dialogue::mType on blank and skip load 2 years ago
elsid 90ed24f4c9
Split type traits for ESM4, ESM3 and unite common 2 years ago