1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2026-01-31 19:48:27 +00:00
Commit graph

8888 commits

Author SHA1 Message Date
jvoisin
65430c0a4d Merge branch 'gmstsshouldbereported' into 'master'
Properly report gmst.yaml loading again

See merge request OpenMW/openmw!5108
2026-01-28 13:51:54 +00:00
Alexei Kotov
fd91d03e48 Merge branch 'wide-debug-string' into 'master'
Fix DebugOutput

Closes #8944

See merge request OpenMW/openmw!5131
2026-01-28 02:51:31 +03:00
AnyOldName3
c2069f5186 Fix stdout/stderr, too.
Although Windows as a whole got support for CP_UTF8 after Windows 10 (so some Enterprise IoT builds are non-EoL and don't support it for some functions), using it for SetConsoleOutputCP has been allowed since Windows 8, which is older than we support.
2026-01-27 14:31:31 +00:00
AnyOldName3
0520928a67 Undo something clang-format did because clang-format doesn't like it 2026-01-27 00:32:03 +00:00
AnyOldName3
c1f9bd2931 Fix DebugOutput
https://gitlab.com/OpenMW/openmw/-/issues/8944
2026-01-27 00:28:49 +00:00
Telvanni 4Life
b5c3da685a Refactored ESM::GameSettings searches for generic effect names to use mName parameter of MGEF. 2026-01-26 15:21:36 -05:00
Telvanni 4Life
e873273a48 Added mName member to MGEF to hold effect GMST name. 2026-01-26 15:21:36 -05:00
AnyOldName3
3512054da7 Merge branch 'ci-tweaks-2022-rebased-2026-plus-msbuild' into 'master'
CI tweaks 2022

See merge request OpenMW/openmw!5085
2026-01-23 00:07:09 +00:00
jvoisin
851f69609f Merge branch 'sanitizeWidgetInputs' into 'master'
Clamp widget extension size and position calculation to prevent crashes, performance problems

See merge request OpenMW/openmw!5004
2026-01-21 22:02:02 +00:00
Aussiemon
1cb8965f27 Clamp widget extension size and position calculation to prevent crashes, performance problems 2026-01-21 22:02:02 +00:00
AnyOldName3
9a1107072b Add more files to naughty list
After a very tedious process, I got a log of the PeakPagedMemorySize64 of every TU (provided it lived long enough to do a query).

Everything that reported over a billion has been added to the list.
One file was removed because it didn't actually use that much.

This wasn't entirely foolproof - I can run it again single-threaded so cooperation over codegen threads won't throw the numbers off if this turns out not to fully solve the problem.
2026-01-21 19:16:27 +00:00
Alexei Kotov
dc022d10d4 Merge branch 'Assign-RefIds-to-MagicEffects' into 'master'
Assign StringRefIds to magic effects

See merge request OpenMW/openmw!5064
2026-01-18 01:50:55 +03:00
AnyOldName3
3cf755266f Prefer add_compile_definitions
add_definitions is really add_any_compiler_flag_you_want
2026-01-17 00:50:12 +00:00
AnyOldName3
24d07da29c Rejig components defines
OPENMW_DOC_BASEURL is only used in a CMake-configured file, so it only needs to be a CMake variable, which it already is.
There's no benefit to making it visible to every TU in components.

MYGUI_DONT_USE_OBSOLETE should be visible in everything that transitively includes MyGUI just in case.
This should really be set up by MyGUI's CMake config or embedded in a generated MyGUI header rather than being our responsibility, but while we're forced to deal with it, it's closer to right to make it a PUBLIC define on components rather than a directory-scoped define in the components directory.
2026-01-15 18:35:12 +00:00
Alexei Kotov
aa544de3b4 Properly report gmst.yaml loading again 2026-01-15 14:12:22 +03:00
Alexei Kotov
c0c7ec1c8f Merge branch 'macos_deprecation_fixes' into 'master'
Fix macos deprecation warnings

See merge request OpenMW/openmw!5082
2026-01-09 19:02:17 +03:00
Bret Curtis
5b45c9a56c do the thing to the thing, no only one place and let it propagate 2026-01-09 12:14:45 +01:00
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
Bret Curtis
52b129fe39 fix macos deprecation warnings 2026-01-06 09:50:23 +01: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