Commit Graph

35083 Commits (7b064920dbc1766a28279b72379b7f6383f88a4f)
 

Author SHA1 Message Date
AnyOldName3 a95b3672cf c h a n g e l o g 2 months ago
Evil Eye a8710b7b42 Don't modify base records from Lua 2 months ago
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
2 months ago
AnyOldName3 31c84e0407 We don't need to capture constexpr stuff 2 months ago
AnyOldName3 7640b6bcf4 Typo 2 months ago
AnyOldName3 b596902329 c a p i t u l a t e
Looks like I forgot to reformat after a typo fix.
2 months ago
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
AnyOldName3 6330d80b9e Don't expect TangentSpaceGenerator to work without texcoords 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
Alexei Kotov 13cca461f2 Maybe fix #8202 2 months ago
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.
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
2 months ago