Closed ghost closed 5 years ago
Sorry for the delayed reaction. Case sensitivity in Wine is quite unfortunate. The reason why data started with uppercase originally is that it is uppercase in clean Fallout 3 and Fallout New Vegas installs from GoG. I'll add dynamic check on top of your commit to keep backward compatibility. Thanks for insight
Thanks for pointing that out. The reason why I switched it to lowercase is because mixed-case files/folders do not merge in Linux due to case-sensitivity. One approach is to rename all files/folders to lowercase (depth-first, that is child-up) so that the final overlay will merge files properly. Here's a one-liner I use on all of the mod folders:
find . -depth -execdir prename 'y/A-Z/a-z/' '{}' \;
@remyabel I like your approach. It's simple and solves the problem now. I have already wasted vast amounts of time on this and ultimately failed, because I din't want to mess with original files in any way (and renaming overlay is useless, because conflicts can't be resolved efficiently). But optional switch with big warning should be safe, because there can't be case conflicts in single mod. I'll probably do this.
Now that I think about it, if overlay-over-overlay is possible, I could create overlay from MODDATADIR and rename files there (it should be reasonably fast, becasue not actual data would be copied) and then create overlay from lowercase directories from first overlay. It's quite enterprisey and might not even work or be slow, but it's time to test!
The script currently errors out if
$LOADORDERFILE
doesn't exist, so we fix that. The reason whyData
should be lowercase is that if someone renames the contents of their "9999 Fallout New Vegas" folder all to lowercase, the script won't findloadorder.txt
.