Commit Graph

35022 Commits (c2b383ea9289b83c78f244056d8f3e42d56d7a96)
 

Author SHA1 Message Date
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).
2 months ago
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
2 months ago
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
2 months ago
psi29a 69fa1ee808 Merge branch 'soundgenorder' into 'master'
Write SoundGens after their creatures

See merge request OpenMW/openmw!4420
2 months ago
Evil Eye 9395624e5f Write SoundGens after their creatures 2 months ago
psi29a 462e118e0d Merge branch 'teal_update' into 'master'
Update Teal and Cyan version used in CI

See merge request OpenMW/openmw!4417
2 months ago
Alexei Kotov 1fcbcd5bfa Merge branch 'journalFirst' into 'master'
FIX: Serialize journal records first when saving plugins

See merge request OpenMW/openmw!4405
2 months ago
Evil Eye ea52a5f4bd Clarify that topics should be written after journals 2 months ago
Evil Eye 6d182dcdae Compare content files and archives case insensitively when matching existing profiles 2 months ago
AnyOldName3 7556ab6f90 Make the launcher ignore case in bsa names 2 months ago
psi29a cdf7bd74d5 Merge branch 'passivestorage' into 'master'
Activate global storage when setting up the player

See merge request OpenMW/openmw!4413
2 months ago
uramer 244c4b4376 Dono't use self as a type name, as it's reserved in Teal 2 months ago
uramer 7f886f1840 Use stable cyan, print teal versions in CI 2 months ago
uramer bef9fc0a4b Upload Teal artifacts on failure, avoid nested archives 2 months ago
uramer 2bb25ef2d6 Use current cyan commit 2 months ago
psi29a 941a6dcf89 Merge branch 'crime-interface' into 'master'
add OFFENSE_TYPE and commitCrime to lua

Closes #8109

See merge request OpenMW/openmw!4319
2 months ago
Calandiel Elende 9248e37156 add OFFENSE_TYPE and commitCrime to lua 2 months ago
psi29a 9325c80244 Merge branch 'userdataplz' into 'master'
Set SavedDataDeserializer on LocalScripts creation

See merge request OpenMW/openmw!4409
2 months ago
psi29a 083381526f Merge branch 'mourningnote' into 'master'
Play region sounds in quasi exteriors

See merge request OpenMW/openmw!4411
2 months ago
psi29a c60e0539cc Merge branch 'dead_code' into 'master'
Remove dead code

See merge request OpenMW/openmw!4412
2 months ago
psi29a 26af518d67 Merge branch 'vfs_normalized_path_18' into 'master'
Use normalized path in PhysicsSystem (#8138)

See merge request OpenMW/openmw!4410
2 months ago
psi29a 8b3e8676bf Merge branch 'noxt' into 'master'
Remove old dependency on Xt which shouldn't be needed anymore

See merge request OpenMW/openmw!4407
2 months ago
Evil Eye cee373aea8 Don't trigger onStateChanged until the game is in a running state 2 months ago
Alexei Kotov e541e5f6d7 Merge branch 'changelog' into 'master'
Fix changelog typo

See merge request OpenMW/openmw!4416
2 months ago
Evil Eye e1046dc715 Tell the LuaManager the game has started before the player can be teleported 2 months ago
Andrei Kortunov aef9722920 Fix changelog typo 2 months ago
psi29a acce1e6e99 Merge branch 'changelog' into 'master'
Add missing changelog entries

See merge request OpenMW/openmw!4414
2 months ago
Andrei Kortunov 7ef1ea1d6e Add missing changelog entries 2 months ago
Andrei Kortunov 192807609d Remove dead code 2 months ago
psi29a 088c20aa6f Merge branch 'sheath_controllers' into 'master'
Do not disable controllers for melee weapons sheathes

See merge request OpenMW/openmw!4406
2 months ago
Evil Eye 361586d85e Play region sounds in quasi exteriors 2 months ago
Evil Eye 001d39057f Merge branch 'video_logging' into 'master'
Migrate videoplayer to OSG logging system

See merge request OpenMW/openmw!4408
2 months ago
Evil Eye a2fb575678 Set SavedDataDeserializer on LocalScripts creation 2 months ago
elsid d2ab366233
Use normalized path in PhysicsSystem 2 months ago
Andrei Kortunov 1933403400 Migrate videoplayer to OSG logging system 2 months ago
Alexey Sokolov be15db4dfb Remove old dependency on Xt which shouldn't be needed anymore 2 months ago
Andrei Kortunov aab2f4a5bb Do not disable controllers for melee weapons sheathes (bug 8191) 2 months ago
Dave Corley dbb29b2391 FIX: Serialize journal records first when saving plugins 2 months ago
Petr Mikheev bac0018a09 Merge branch 'unloadedcontainers' into 'master'
Fix Lua memory usage

See merge request OpenMW/openmw!4363
2 months ago
Evil Eye 68ebefc2dd Fix Lua memory usage 2 months ago
psi29a 34e32b7392 Merge branch 'thewickedmarkerofthewest' into 'master'
Emulate vanilla closest marker preference (#8187)

Closes #8187

See merge request OpenMW/openmw!4401
3 months ago
psi29a 3e3ff00c72 Merge branch 'dialoguestuff' into 'master'
Improve TESCS dialogue compatibility

Closes #8181

See merge request OpenMW/openmw!4396
3 months ago
Alexei Kotov 77d2f18f83 Emulate vanilla closest marker preference (#8187) 3 months ago
psi29a 4ac1b13871 Merge branch 'vfs_normalized_path_17' into 'master'
Use normalized path for groundcover (#8138)

See merge request OpenMW/openmw!4403
3 months ago
elsid d1ccb4b804
Use normalized path for groundcover 3 months ago
psi29a a50f857eb1 Merge branch 'cyan' into 'master'
Teal CI job hack

See merge request OpenMW/openmw!4402
3 months ago
Evil Eye 86c85d1b75 Force tl 0.15 3 months ago
psi29a 49e178be05 Merge branch 'docs_themes' into 'master'
Update RTD theme

See merge request OpenMW/openmw!4400
3 months ago
Cody Glassman ab682a9469 upgrade theme to fix selector styling 3 months ago
Cody Glassman bf58c03160 docs - update RTD theme 3 months ago