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

35181 commits

Author SHA1 Message Date
psi29a
a11e683a40 Merge branch 'content-lists-could-provide-duplicate-fallback-archives' into 'master'
Gracefully handle content lists that specify duplicate BSAs

Closes #8200

See merge request OpenMW/openmw!4421
2024-10-25 11:08:41 +00:00
AnyOldName3
31c84e0407 We don't need to capture constexpr stuff 2024-10-25 00:49:46 +00:00
AnyOldName3
7640b6bcf4 Typo 2024-10-25 00:32:12 +00:00
AnyOldName3
b596902329 c a p i t u l a t e
Looks like I forgot to reformat after a typo fix.
2024-10-25 00:53:27 +01:00
AnyOldName3
c2b383ea92 Store original representation of paths in content lists
Also compare against existing content lists in a more forgiving way.

The first improvement makes it possible to use relative paths in openmw.cfg without the launcher canonicalising them.
This was really annoying if you used a relative path on purpose.
It also stops the launcher converting all paths to Qt's convention, where forward slashes are used on Windows even though they're not native.
The engine doesn't care, so you could always put either in the config file, but the launcher wouldn't stand for that, and would make them match.

To make this work, we need to store a path's originalRepresentation in the content list, compare paths loaded from openmw.cfg based on their originalRepresentation, and convert paths from originalRepresentation to absolute value when loading them from a content list.

The second improvement means that paths that are equivalent, but expressed differently (e.g. mismatched case on Windows, mismatched separators on Windows, or mild differences like unnecessary `./`es and doubled separators) don't trigger the creation of a new effectively-identical content list.

To make this work, we had to switch the comparison to lexicaly normalise the path first.
It could only be lexical normalisation as originalRepresentation might be absolute, relative, or absolute-but-based-on-a-path-slug, and we didn't want slugs to break things or relative paths to count as equivalent to absolute ones that refer to the same file.
The comparison is case-insensitive on Windows, and case-sensitive elsewhere.
This isn't strictly right, as you can have case-sensitive things mounted on Windows or tell a Linux directory to be case-insensitive, but we can't tell when that might happen based on a lexical path as it depends on real directory properties (and might differ for different parts of the path, which is too much hassle to support).
2024-10-25 00:49:59 +01:00
AnyOldName3
6330d80b9e Don't expect TangentSpaceGenerator to work without texcoords 2024-10-24 13:36:49 +01:00
Alexei Kotov
e9627e9b0c Merge branch 'cifileprofiles' into 'master'
Compare content files and archives case insensitively when matching existing profiles

See merge request OpenMW/openmw!4419
2024-10-24 03:23:10 +00:00
psi29a
cd2f261ff5 Merge branch 'case-insensitive-bsa-name' into 'master'
Make the launcher ignore case in bsa names

Closes #8201

See merge request OpenMW/openmw!4418
2024-10-23 22:23:27 +00:00
psi29a
69fa1ee808 Merge branch 'soundgenorder' into 'master'
Write SoundGens after their creatures

See merge request OpenMW/openmw!4420
2024-10-23 22:21:22 +00:00
Alexei Kotov
13cca461f2 Maybe fix #8202 2024-10-23 22:23:28 +03:00
AnyOldName3
0537b53d21 Gracefully handle content lists that specify duplicate BSAs
Previously, if fed bad data, or a content list predated a BSA being moved to a non-user config file, or possibly in other situations (but not any of the obvious ones as those had other guards), the `selectedArchives` list could be longer than the number of archives available due to duplicate entries.

This ensures they're handled like entries specifying no-longer-present archives, and just skips the duplicates.
The same would happen elsewhere in similar situations, but those code paths aren't always taken.
2024-10-22 22:40:16 +01:00
Evil Eye
9395624e5f Write SoundGens after their creatures 2024-10-22 21:25:52 +02:00
psi29a
462e118e0d Merge branch 'teal_update' into 'master'
Update Teal and Cyan version used in CI

See merge request OpenMW/openmw!4417
2024-10-22 07:16:23 +00:00
Alexei Kotov
1fcbcd5bfa Merge branch 'journalFirst' into 'master'
FIX: Serialize journal records first when saving plugins

See merge request OpenMW/openmw!4405
2024-10-22 01:37:02 +00:00
Evil Eye
ea52a5f4bd Clarify that topics should be written after journals 2024-10-21 19:57:18 +02:00
Evil Eye
6d182dcdae Compare content files and archives case insensitively when matching existing profiles 2024-10-21 19:42:37 +02:00
AnyOldName3
7556ab6f90 Make the launcher ignore case in bsa names 2024-10-21 18:07:13 +01:00
psi29a
cdf7bd74d5 Merge branch 'passivestorage' into 'master'
Activate global storage when setting up the player

See merge request OpenMW/openmw!4413
2024-10-21 11:01:26 +00:00
uramer
244c4b4376 Dono't use self as a type name, as it's reserved in Teal 2024-10-20 18:27:28 +02:00
uramer
7f886f1840 Use stable cyan, print teal versions in CI 2024-10-20 18:27:27 +02:00
uramer
bef9fc0a4b Upload Teal artifacts on failure, avoid nested archives 2024-10-20 18:27:27 +02:00
uramer
2bb25ef2d6 Use current cyan commit 2024-10-20 18:27:27 +02:00
psi29a
941a6dcf89 Merge branch 'crime-interface' into 'master'
add OFFENSE_TYPE and commitCrime to lua

Closes #8109

See merge request OpenMW/openmw!4319
2024-10-20 09:37:27 +00:00
Calandiel Elende
9248e37156 add OFFENSE_TYPE and commitCrime to lua 2024-10-20 09:37:27 +00:00
psi29a
9325c80244 Merge branch 'userdataplz' into 'master'
Set SavedDataDeserializer on LocalScripts creation

See merge request OpenMW/openmw!4409
2024-10-20 09:36:13 +00:00
psi29a
083381526f Merge branch 'mourningnote' into 'master'
Play region sounds in quasi exteriors

See merge request OpenMW/openmw!4411
2024-10-20 09:35:27 +00:00
psi29a
c60e0539cc Merge branch 'dead_code' into 'master'
Remove dead code

See merge request OpenMW/openmw!4412
2024-10-20 09:34:49 +00:00
psi29a
26af518d67 Merge branch 'vfs_normalized_path_18' into 'master'
Use normalized path in PhysicsSystem (#8138)

See merge request OpenMW/openmw!4410
2024-10-20 09:34:37 +00:00
psi29a
8b3e8676bf Merge branch 'noxt' into 'master'
Remove old dependency on Xt which shouldn't be needed anymore

See merge request OpenMW/openmw!4407
2024-10-20 09:34:16 +00:00
Evil Eye
cee373aea8 Don't trigger onStateChanged until the game is in a running state 2024-10-20 10:50:18 +02:00
Alexei Kotov
e541e5f6d7 Merge branch 'changelog' into 'master'
Fix changelog typo

See merge request OpenMW/openmw!4416
2024-10-19 21:31:44 +00:00
Evil Eye
e1046dc715 Tell the LuaManager the game has started before the player can be teleported 2024-10-19 19:15:23 +02:00
Andrei Kortunov
aef9722920 Fix changelog typo 2024-10-19 21:06:46 +04:00
psi29a
acce1e6e99 Merge branch 'changelog' into 'master'
Add missing changelog entries

See merge request OpenMW/openmw!4414
2024-10-19 11:56:18 +00:00
Andrei Kortunov
7ef1ea1d6e Add missing changelog entries 2024-10-19 15:09:47 +04:00
Andrei Kortunov
192807609d Remove dead code 2024-10-19 15:03:29 +04:00
psi29a
088c20aa6f Merge branch 'sheath_controllers' into 'master'
Do not disable controllers for melee weapons sheathes

See merge request OpenMW/openmw!4406
2024-10-19 09:29:44 +00:00
Evil Eye
361586d85e Play region sounds in quasi exteriors 2024-10-19 10:43:50 +02:00
Evil Eye
001d39057f Merge branch 'video_logging' into 'master'
Migrate videoplayer to OSG logging system

See merge request OpenMW/openmw!4408
2024-10-19 08:28:49 +00:00
Evil Eye
a2fb575678 Set SavedDataDeserializer on LocalScripts creation 2024-10-18 18:25:43 +02:00
elsid
d2ab366233
Use normalized path in PhysicsSystem 2024-10-18 13:45:29 +02:00
Andrei Kortunov
1933403400 Migrate videoplayer to OSG logging system 2024-10-18 10:20:22 +04:00
Alexey Sokolov
be15db4dfb Remove old dependency on Xt which shouldn't be needed anymore 2024-10-16 14:28:34 +01:00
Andrei Kortunov
aab2f4a5bb Do not disable controllers for melee weapons sheathes (bug 8191) 2024-10-16 17:13:33 +04:00
Dave Corley
dbb29b2391 FIX: Serialize journal records first when saving plugins 2024-10-16 02:01:58 -07:00
Petr Mikheev
bac0018a09 Merge branch 'unloadedcontainers' into 'master'
Fix Lua memory usage

See merge request OpenMW/openmw!4363
2024-10-15 21:18:13 +00:00
Evil Eye
68ebefc2dd Fix Lua memory usage 2024-10-15 21:18:13 +00:00
psi29a
34e32b7392 Merge branch 'thewickedmarkerofthewest' into 'master'
Emulate vanilla closest marker preference (#8187)

Closes #8187

See merge request OpenMW/openmw!4401
2024-10-15 07:43:00 +00:00
psi29a
3e3ff00c72 Merge branch 'dialoguestuff' into 'master'
Improve TESCS dialogue compatibility

Closes #8181

See merge request OpenMW/openmw!4396
2024-10-15 07:42:47 +00:00
AnyOldName3
62199c2dad Install the local openmw.cfg template on Windows
The Windows global config path is really really dumb and the whole concept of having a global path on an OS where it's so easy to have different incompatible versions installed side-by-side (instead of a single canonical OS-wide OpenMW install from the system package manager) is really dumb, too.

We've therefore only used local `openmw.cfg`s on Windows for a very long time.

However, it appears that we were installing the global `openmw.cfg` template instead of the local template.
That's wrong and we shouldn't do it, so I've stopped it.

I've left the separate `openmw.cfg` and `openmw.cfg.install` in the build directory as that makes doing development for portable installs with the same build system as doing the development for the installer easier.
2024-10-14 23:05:52 +01:00