1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2026-01-20 15:00:55 +00:00
Commit graph

8870 commits

Author SHA1 Message Date
Telvanni 4Life
c6cc1be347 - Fixed OpenMW-CS incorrectly passing magic effect ids
- Resolved merge conflicts with !4323
- Minor refactor of affectsSkill helper function
- Removed redundant class definition
2026-01-08 14:36:38 -05:00
Telvanni 4Life
9159788c9b Address reviewer feedback and ran clang-format on modified files:
- Changed reverse lookup map constructor for gmsts, names, and ESM::MagicEffectIds to be more generic.
- Changed refIdToIndex to use map instead of array traversal.
- Removed redundant check from refIdToGmstString.
- Removed sMagicEffectNames and associated map. Removed dead code from loadmgef.cpp/hpp.
- Changed return types of magic effect bindings to RefId.
- Reverted ESMStore search to find.
- Changed std::map to std::unordered_map for faster lookups in resistance and weakness functions.
- Changed loadmgef To methods to pass RefId by value.
- Removed StringRefId alias MagicEffectId.
- Changed all effectId arguments in PR to pass-by-value.
- Removed ESM::MagicEffect::refIdToName function.
- Changed effect key type from long to ESM::RefId in OpGetEffect of mwscript.
- Removed superfluous MWWorld::Store<ESM::GameSettings> argument to MagicEffect store's setUp method.
- Removed transformation code from decompose for ENAM and IRDT structs.
- Changed resistance and weakness maps to initialization to use initialization instead of assignment.
- Changed sGmstEffectIds to constexpr array since all parameters are known at compile time.
- Changed getBoundItemsMap to use an unordered_map and have string_view values.
- MagicEffect store definition removed (uses standard template class TypedDynamicStore).
- Fixed bug in calculating sun damage that would have made vampires daywalkers in Mournhold.
- Removed polymorphic EffectKey constructor and added overload to getOrDefault.
- Placed ESM spec IRDT and ENAM structs in anonymous namespace.
- Added exception if attempting to serialize ENAM subrecords with out of bounds index.
- Added include format statements to satisfy Ubuntu CI linker.
2026-01-08 07:44:06 -05:00
Telvanni 4Life
8820c1b08b Cleaned up loadmgef and addressed potential memory corruption issues to string view lifetimes. 2026-01-08 07:40:43 -05:00
Telvanni 4Life
495207e2a5 Triune Tests of Strength, Block, and Breathing Water. The ending of the words is ALMSIVI. 2026-01-08 07:40:39 -05:00
Telvanni 4Life
2c76043cf5 - Changed sol magic bindings to use RefIds instead of integer indexes for magic effects.
- Fixed silly namespace oversight causing linker errors.
- Fixed type mismatches occluded by linker errors.
- Fixed unit tests.
2026-01-08 07:40:02 -05:00
Telvanni 4Life
3e586ed693 Changed IRDTstruct (alchemical ingredient magic effects) to use RefIds instead of int for effectId.
Changed various structs (ENAMstruct, EffectKey, SummonKey) to use RefId instead of strict StringRefId to account for null effects.
2026-01-08 07:33:38 -05:00
Telvanni 4Life
c581ab3242 Changed magic effects to use RefIds in activespells, magiceffects, creaturestats, and summoning. 2026-01-08 07:27:11 -05:00
Telvanni 4Life
90fce49d17 Changed MagicEffect from IndexedStore to TypedDynamicStore in ESMStore. 2026-01-08 07:16:37 -05:00
Telvanni 4Life
bf5e7ba3f6 Changed ActiveSpells and ENAM struct to use only RefIds. Serialization still uses indexes for backward compatibility. 2026-01-08 07:16:30 -05:00
Telvanni 4Life
85c15ff643 Changed magic effects to use RefIds in loadmgef 2026-01-08 07:07:52 -05:00
psi29a
f0e31e69dd Merge branch 'refnumhitman' into 'master'
Replace ActorIds with RefNums

Closes #7602

See merge request OpenMW/openmw!4323
2026-01-08 09:23:20 +00:00
AnyOldName3
115ee7a353 c a p i t u l a t e 2026-01-07 15:16:01 +00:00
AnyOldName3
18cc753517 Add comment highlighting known fragile code
We know we can't make the struct bigger as everything caught fire when we gave freeze dumps their own path, and was fixed when we switched to a common directory and just separate filenames.
Switching to wchar_t and stopping using UTF-8 here would cause a similar size increase, so similar problems are to be expected.
2026-01-07 15:12:22 +00:00
AnyOldName3
16efa6e5b5 Support long paths on Windows
Apparently we'd never bothered opting in, despite nearly everything in all out apps being entirely compatible and designed with long paths in mind.

GetModuleFileNameW is a bit awkward as it's just about the only Win32 function that returns the minimum of the buffer size and the string size - nearly everything else returns the full size even if it won't fit, so you can pass it a null pointer and a size of zero, and it'll tell you how much space you need to allocate.

I pretty much just copied the mostly-working long-path-friendly call site in the crash catcher to windowspath.cpp, but I also noticed that if the function failed and returned zero, the original implementation would loop forever, so I fixed that.

There was some code that could be ditched from the catch monitor as \\?\ is a prefix you can use to opt into long paths for a single API call instead of using the manifest to set it everywhere.
2026-01-07 15:12:22 +00:00
AnyOldName3
7d9eee3f33 Merge branch 'gogregistry' into 'master'
Detect the GOG Galaxy version of Morrowind on Windows

See merge request OpenMW/openmw!5041
2026-01-07 15:10:58 +00:00
psi29a
f11b96a905 Merge branch 'registry' into 'master'
Detect Steam installations on Windows and Linux

See merge request OpenMW/openmw!4885
2026-01-07 09:03:16 +00:00
Alexei Kotov
9efef817dc Merge branch 'navmeshtool_worldspaces' into 'master'
Somewhat reduce navmeshtool peak memory usage

See merge request OpenMW/openmw!5076
2025-12-31 00:37:51 +03:00
Alexei Kotov
efbdd0cd5e Merge branch 'vfs_normalized_path_26' into 'master'
Use normalized path in SoundManager (#8138)

See merge request OpenMW/openmw!5048
2025-12-27 23:18:02 +03:00
elsid
e9468267fc
Process worldspaces sequentially by navmeshtool
Gathering all cells data for all worldspaces may consume a lot memory if
interior cells processing is enabled.
2025-12-27 16:18:01 +01:00
Evil Eye
dbeaa25985 Fix mistakes 2025-12-26 11:40:35 +01:00
Evil Eye
63f5c9777e Fix rebase induced issues 2025-12-26 11:07:31 +01:00
Evil Eye
20ddb848d4 Stop using actor ids in the essimporter and tests 2025-12-26 11:07:31 +01:00
Evil Eye
9cb437c9d3 Remove actor ids 2025-12-26 11:07:30 +01:00
Evil Eye
c4bc040b4b Replace actor ids in magic effects with refnums 2025-12-26 11:07:30 +01:00
Evil Eye
8020bfcafd Track projectile casters using RefNum 2025-12-26 11:07:30 +01:00
Evil Eye
1d24ad54d9 Replace actor ids with RefNums in ai packages 2025-12-26 11:07:30 +01:00
Evil Eye
1bcc403544 Use a RefMum to track spawned levelled creatures 2025-12-26 11:07:29 +01:00
elsid
07621574d0
Report number of StringRefIds 2025-12-25 13:26:23 +01:00
elsid
fc297f741a
Remove redundant includes 2025-12-25 13:05:16 +01:00
elsid
64c24800c6
Simplify initialization 2025-12-25 13:04:45 +01:00
jvoisin
dbcedf614d Merge branch 'recindex' into 'master'
Rename all remaining recIndex variations to recordIndex

See merge request OpenMW/openmw!5059
2025-12-24 20:31:05 +00:00
Evil Eye
8107fc451f Remove dead code 2025-12-22 17:24:29 +01:00
Evil Eye
699abf7858 Detect the GOG Galaxy version of Morrowind on Windows 2025-12-21 12:14:19 +01:00
Evil Eye
fa315a9f64 Adopt long path changes from !5054 2025-12-21 12:13:14 +01:00
Alexei Kotov
a6195698ae recIndex => recordIndex 2025-12-21 00:40:12 +03:00
Alexei Kotov
7ca6fbb952 Merge branch 'dialoguefilters' into 'master'
Expose info conditions to Lua

Closes #8076

See merge request OpenMW/openmw!5045
2025-12-19 04:33:39 +03:00
Evil Eye
60e6b94498 Fix the spelling of mercantile 2025-12-19 04:30:51 +03:00
AnyOldName3
f9bc7691e0 Merge branch 'recordrenaming' into 'master'
Make NIF base record members conform to the naming conventions

See merge request OpenMW/openmw!5051
2025-12-18 14:20:19 +00:00
jvoisin
77beed0a6c Merge branch 'bgsm' into 'master'
Don't read terrain parameters for BGSM v1/v2

See merge request OpenMW/openmw!5050
2025-12-18 12:43:01 +00:00
psi29a
7281f3e3f6 Merge branch 'near-far-wherever-you-are' into 'master'
Ensure near plane doesn't go past far plane when there are no shadow receivers

See merge request OpenMW/openmw!5047
2025-12-18 10:43:53 +00:00
Alexei Kotov
a0b73d5e62 Make NIF base record members conform to the naming conventions 2025-12-16 13:23:30 +03:00
Alexei Kotov
1e5979b80f Merge branch 'nifresizepurge' into 'master'
Reserve capacity for the remaining NIF collections

See merge request OpenMW/openmw!5049
2025-12-16 12:11:19 +03:00
Alexei Kotov
76ce47a890 Merge branch 'l10nformat' into 'master'
Replace format args with icu in engine messages

See merge request OpenMW/openmw!5032
2025-12-16 12:07:06 +03:00
Alexei Kotov
3927eaef66 Reserve capacity for controller NIF collections 2025-12-15 15:20:59 +03:00
Alexei Kotov
02d9c26289 Reserve capacity for node NIF collections 2025-12-15 15:20:59 +03:00
Alexei Kotov
17e279cf0d Don't read terrain parameters for BGSM v1/v2
This fixes parsing of most BGSM files from Fallout 4.
2025-12-15 14:50:47 +03:00
Alexei Kotov
7332b4e232 Reserve capacity for extra data NIF collections 2025-12-15 10:44:45 +03:00
Alexei Kotov
ea506019dc Reserve capacity for data NIF collections 2025-12-15 10:44:37 +03:00
Alexei Kotov
137382b424 Reserve capacity for physics NIF collections 2025-12-15 10:44:27 +03:00
elsid
5af72ba2c4
Remove unused vfs path symbols 2025-12-14 19:27:39 +01:00