Skip to content

Commit

Permalink
312.1 Bug fixes for 312 [2024/01/07] [Infernio]
Browse files Browse the repository at this point in the history
This release fixes a few critical bugs and regressions that made their
way into 312. There's potentially a couple more fixups coming for FO4,
but they're all related to Bashed Patch building, which is experimental
in FO4, so I'm fine with including those only in the WIP builds.
  • Loading branch information
Infernio committed Jan 7, 2024
2 parents 801ef0d + e915436 commit 24fbabf
Show file tree
Hide file tree
Showing 23 changed files with 72 additions and 56 deletions.
2 changes: 1 addition & 1 deletion Mopy/Docs/Wrye Bash Advanced Readme.html
Expand Up @@ -12824,7 +12824,7 @@ <h3 id="international-format">Translator File Format <a class="back2top" href="#
</div>

<div id="footer">
<div id="version">Wrye Bash v312</div>
<div id="version">Wrye Bash v312.1</div>
<a href="Wrye Bash General Readme.html">General</a>&#160;&#x2726;&#160;Advanced&#160;&#x2726;&#160;<a href="Wrye Bash Technical Readme.html">Technical</a>&#160;&#x2726;&#160;<a href="Wrye Bash Version History.html">Versions</a>
<div id="oldie">Javascript disabled, menu and slideshows nonfunctional.</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion Mopy/Docs/Wrye Bash General Readme.html
Expand Up @@ -2733,7 +2733,7 @@ <h2 id="advanced">Advanced Readme Topics <a class="back2top" href="#contents">Ba
</div>

<div id="footer">
<div id="version">Wrye Bash v312</div>
<div id="version">Wrye Bash v312.1</div>
General&#160;&#x2726;&#160;<a href="Wrye Bash Advanced Readme.html">Advanced</a>&#160;&#x2726;&#160;<a href="Wrye Bash Technical Readme.html">Technical</a>&#160;&#x2726;&#160;<a href="Wrye Bash Version History.html">Versions</a>
<div id="oldie">Javascript disabled, menu and slideshows nonfunctional.</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion Mopy/Docs/Wrye Bash Technical Readme.html
Expand Up @@ -1296,7 +1296,7 @@ <h4>Example File</h4>
</div>

<div id="footer">
<div id="version">Wrye Bash v312</div>
<div id="version">Wrye Bash v312.1</div>
<a href="Wrye Bash General Readme.html">General</a>&#160;&#x2726;&#160;<a href="Wrye Bash Advanced Readme.html">Advanced</a>&#160;&#x2726;&#160;Technical&#160;&#x2726;&#160;<a href="Wrye Bash Version History.html">Versions</a>
<div id="oldie">Javascript disabled, menu and slideshows nonfunctional.</div>
</div>
Expand Down
6 changes: 5 additions & 1 deletion Mopy/Docs/Wrye Bash Version History.html
Expand Up @@ -35,6 +35,10 @@

<p class="history-veranc">All versions by Wrye unless otherwise noted.

<h3>312.1 Bug fixes for 312 [2024/01/07] [Infernio]</h3>
<p>This release fixes a few critical bugs and regressions that made
their way into 312.</p>

<h3>312 Starfield [2024/01/04] [Various community members]</h3>
<ul>
<li><a href="https://github.com/wrye-bash/wrye-bash/issues/670">#670</a>: Support &#x27;scattered&#x27; FOMOD packages [Infernio]</li>
Expand Down Expand Up @@ -4363,7 +4367,7 @@ <h3>0.01 [2006/04/13]</h3>
</div>

<div id="footer">
<div id="version">Wrye Bash v312</div>
<div id="version">Wrye Bash v312.1</div>
<a href="Wrye Bash General Readme.html">General</a>&#160;&#x2726;&#160;<a href="Wrye Bash Advanced Readme.html">Advanced</a>&#160;&#x2726;&#160;<a href="Wrye Bash Technical Readme.html">Technical</a>&#160;&#x2726;&#160;Versions
<div id="oldie">Javascript disabled, menu and slideshows nonfunctional.</div>
</div>
Expand Down
12 changes: 6 additions & 6 deletions Mopy/bash/basher/belt.py
Expand Up @@ -46,10 +46,10 @@ class WizInstallInfo(object):
'select_sub_packages', 'ini_edits', 'should_install')
# canceled: Set to true if the user canceled the wizard, or if an error
# occurred
# select_plugins: List of plugins to 'select' for install
# select_plugins: Set of plugins to 'select' for install
# rename_plugins: Dictionary of renames for plugins. In the format of:
# 'original name':'new name'
# select_sub_packages: List of sub-packages to 'select' for install
# select_sub_packages: Set of sub-packages to 'select' for install
# ini_edits: Dictionary of INI edits to apply/create. In the format of:
# 'ini file': {
# 'section': {
Expand All @@ -63,9 +63,9 @@ class WizInstallInfo(object):

def __init__(self):
self.canceled = False
self.select_plugins = []
self.select_plugins = set()
self.rename_plugins: FNDict[FName, FName] = FNDict()
self.select_sub_packages = {}
self.select_sub_packages = set()
self.ini_edits = bolt.LowerDict()
self.should_install = False

Expand Down Expand Up @@ -356,7 +356,7 @@ def __init__(self, parent, sublist, plugin_enabled, plugin_renames_, bAuto,
for index, (key, do_enable) in enumerate(plugin_enabled.items()):
if do_enable:
self.plugin_selection.lb_check_at_index(index, True)
self._wiz_parent.ret.select_plugins.append(key)
self._wiz_parent.ret.select_plugins.add(key)
# Ini tweaks
self.listInis = ListBox(self, onSelect=self._on_select_ini,
choices=list(iniedits))
Expand Down Expand Up @@ -499,7 +499,7 @@ def __init__(self, wiz_parent, installer, bAuto):
self.parser_finished = False
##: Figure out why BAIN insists on including an empty sub-package
# everywhere. Broke this part of the code, hence the 'if s' below.
self.sublist = bolt.FNDict.fromkeys([*installer.subNames][:1], False)
self.sublist = bolt.FNDict.fromkeys([*installer.subNames][1:], False)
# all plugins mapped to their must-install state - initially False
self._plugin_enabled = FNDict.fromkeys( # type:FNDict[(f:=FName),f]
sorted(fn_ for sub_plugins in installer.espmMap.values() for fn_ in
Expand Down
7 changes: 4 additions & 3 deletions Mopy/bash/basher/installer_links.py
Expand Up @@ -355,11 +355,12 @@ def Execute(self):
sel_package.subActives[index + 1] = select
idetails.refreshCurrent(sel_package)
# Check the plugins that were selected by the wizard
espm_strs = idetails.gEspmList.lb_get_str_items()
espm_fns = list(map(FName,
idetails.gEspmList.lb_get_str_items()))
sel_package.espmNots = set()
for index, espm in enumerate(idetails.espm_checklist_fns):
do_check = espm_strs[index] in ret.select_plugins or bool(
sel_package.espmNots.add(espm)) # bool(None) == False
do_check = (espm_fns[index] in ret.select_plugins
or bool(sel_package.espmNots.add(espm)))
idetails.gEspmList.lb_check_at_index(index, do_check)
idetails.refreshCurrent(sel_package)
#Rename the plugins that need renaming
Expand Down
2 changes: 1 addition & 1 deletion Mopy/bash/bass.py
Expand Up @@ -37,7 +37,7 @@

# The name of the locale we ended up with after localize.setup_locale()
active_locale = None
AppVersion = '312' # must represent a valid float
AppVersion = '312.1' # must represent a valid float
is_standalone = False # whether or not we're on standalone

#--Global dictionaries - do _not_ reassign !
Expand Down
4 changes: 2 additions & 2 deletions Mopy/bash/bolt.py
Expand Up @@ -2780,7 +2780,7 @@ def copy_or_reflink(a: str | os.PathLike, b: str | os.PathLike):
a, b = os.fspath(a), os.fspath(b) # reflink needs strings
try:
reflink(a, b)
except (OSError, ReflinkImpossibleError):
except (OSError, ReflinkImpossibleError, NotImplementedError):
shutil.copyfile(a, b)
def copy_or_reflink2(a: str | os.PathLike, b: str | os.PathLike):
"""Behaves like shutil.copy2, but uses a reflink if possible. See
Expand All @@ -2793,7 +2793,7 @@ def copy_or_reflink2(a: str | os.PathLike, b: str | os.PathLike):
final_b = os.path.join(final_b, os.path.basename(a))
reflink(a, final_b)
shutil.copystat(a, final_b)
except (OSError, ReflinkImpossibleError):
except (OSError, ReflinkImpossibleError, NotImplementedError):
shutil.copy2(a, b)
else:
def copy_or_reflink(a: str | os.PathLike, b: str | os.PathLike):
Expand Down
4 changes: 2 additions & 2 deletions Mopy/bash/bosh/bain.py
Expand Up @@ -1294,7 +1294,7 @@ def _fs_install(self, dest_src, srcDirJoin, progress, subprogressPlus,
for store in stores:
if fname_key := store.data_path_to_info(dest, would_be=True):
try: # FName
dest_path = join_data_dir(fname_key)
dest_path = store.store_dir.join(fname_key)
except TypeError: # info is present, possibly ghosted
dest_path = fname_key.abs_path
fname_key = fname_key.fn_key
Expand Down Expand Up @@ -1325,7 +1325,7 @@ def _fs_install(self, dest_src, srcDirJoin, progress, subprogressPlus,
inf = store.new_info(owned_file, owner=self.fn_key,
# we refresh info sets in cached_lo_append_if_missing
_in_refresh=True)
data_sizeCrcDate_update[dest][2] = inf.mtime
data_sizeCrcDate_update[dest][2] = inf.file_mod_time
mtimes.append(owned_file)
except FileError as error: # repeated from refresh
store.corrupted[owned_file] = error.message
Expand Down
5 changes: 3 additions & 2 deletions Mopy/bash/game/enderal/vanilla_files.py
Expand Up @@ -22,10 +22,11 @@
# =============================================================================
"""This module lists the files installed in the Data folder in a completely
vanilla Enderal setup."""
import os

# Entries for other languages manually added from SteamDB:
# https://steamdb.info/sub/302557/depots/
vanilla_files = {
vanilla_files = {f.replace('\\', os.sep) for f in {
'1.5.9.0patchnote and Japanes localization updates.txt',
'credits.txt',
'Interface\\.idea\\Interface.iml',
Expand Down Expand Up @@ -588,4 +589,4 @@
'Video\\Enderal_Credits.bik',
'Video\\MQ17BlackGuardian.bik',
'Video\\MQP03NearDeathExperience.bik',
}
}}
5 changes: 3 additions & 2 deletions Mopy/bash/game/enderalse/vanilla_files.py
Expand Up @@ -22,10 +22,11 @@
# =============================================================================
"""This module lists the files installed in the Data folder in a completely
vanilla Enderal SE setup."""
import os

# Entries for other languages manually added from SteamDB:
# https://steamdb.info/app/976620/depots/
vanilla_files = {
vanilla_files = {f.replace('\\', os.sep) for f in {
'Enderal - Forgotten Stories.ini',
'Enderal Credits.txt',
'Enderal SE v2.0.12.4 Changelog.txt',
Expand Down Expand Up @@ -523,4 +524,4 @@
'Video\\MQ17BlackGuardian.bik',
'Video\\MQP03NearDeathExperience.bik',
'_Enderal - Forgotten Stories.ini',
}
}}
5 changes: 3 additions & 2 deletions Mopy/bash/game/fallout3/vanilla_files.py
Expand Up @@ -22,8 +22,9 @@
# =============================================================================
"""This module lists the files installed in the Data folder in a completely
vanilla Fallout 3 setup."""
import os

vanilla_files = {
vanilla_files = {f.replace('\\', os.sep) for f in {
'Credits.txt',
'CreditsWacky.txt',
'LODSettings\\aaaForgotten1.DLODSettings',
Expand Down Expand Up @@ -139,4 +140,4 @@
'Video\\B29.bik',
'Video\\Fallout INTRO Vsk.bik',
'DLCList.txt',
}
}}
5 changes: 3 additions & 2 deletions Mopy/bash/game/fallout4/vanilla_files.py
Expand Up @@ -22,10 +22,11 @@
# =============================================================================
"""This module lists the files installed in the Data folder in a completely
vanilla Fallout 4 setup."""
import os

# Entries for other languages manually added from SteamDB:
# https://steamdb.info/app/377160/depots/
vanilla_files = {
vanilla_files = {f.replace('\\', os.sep) for f in {
'ccBGSFO4001-PipBoy(Black) - Main.ba2',
'ccBGSFO4001-PipBoy(Black) - Textures.ba2',
'ccBGSFO4003-PipBoy(Camo01) - Main.ba2',
Expand Down Expand Up @@ -97,4 +98,4 @@
'Video\\MainMenuLoop.bk2',
'Video\\PERCEPTION.bk2',
'Video\\STRENGTH.bk2',
}
}}
5 changes: 3 additions & 2 deletions Mopy/bash/game/falloutnv/vanilla_files.py
Expand Up @@ -22,8 +22,9 @@
# =============================================================================
"""This module lists the files installed in the Data folder in a completely
vanilla Fallout NV setup."""
import os

vanilla_files = {
vanilla_files = {f.replace('\\', os.sep) for f in {
'Credits.txt',
'CreditsWacky.txt',
'DLCList.txt',
Expand Down Expand Up @@ -291,4 +292,4 @@
'Sound\\songs\\radionv\\MUS_Where_Have_You_Been_All_My_Life.mp3',
'Sound\\songs\\radionv\\MUS_Why_Dont_You_Do_Right.mp3',
'Video\\FNVIntro.bik',
}
}}
5 changes: 3 additions & 2 deletions Mopy/bash/game/morrowind/vanilla_files.py
Expand Up @@ -22,8 +22,9 @@
# =============================================================================
"""This module lists the files installed in the Data folder in a completely
vanilla Morrowind setup."""
import os

vanilla_files = {
vanilla_files = {f.replace('\\', os.sep) for f in {
#-- Morrowind GOTY both normal and WS versions
'Fonts\\century_gothic_big.fnt',
'Fonts\\century_gothic_big_0_Lod_A.tex',
Expand Down Expand Up @@ -7280,4 +7281,4 @@
'Sound\\Vo\\n\\f\\bhlo_nf008.mp3',
'Sound\\Vo\\n\\f\\bhlo_nf009.mp3',
'Sound\\Vo\\n\\f\\bidl_nf021.mp3'
}
}}
5 changes: 3 additions & 2 deletions Mopy/bash/game/nehrim/vanilla_files.py
Expand Up @@ -22,8 +22,9 @@
# =============================================================================
"""This module lists the files installed in the Data folder in a completely
vanilla Nehrim setup."""
import os

vanilla_files = {
vanilla_files = {f.replace('\\', os.sep) for f in {
'Credits.txt',
'Music\\Battle\\Battle_01.mp3',
'Music\\Battle\\Battle_02.mp3',
Expand Down Expand Up @@ -136,4 +137,4 @@
'Video\\Nehrim Outro.bik',
'Video\\Oblivion iv logo.bik',
'Video\\OblivionIntro.bik',
}
}}
5 changes: 3 additions & 2 deletions Mopy/bash/game/oblivion/vanilla_files.py
Expand Up @@ -22,8 +22,9 @@
# =============================================================================
"""This module lists the files installed in the Data folder in a completely
vanilla Oblivion setup."""
import os

vanilla_files = {
vanilla_files = {f.replace('\\', os.sep) for f in {
# Verified correct for all WS language variants:
# English, French, German, Italian, Spanish
'Credits.txt',
Expand Down Expand Up @@ -85,4 +86,4 @@
'Video\\Oblivion Legal.bik',
'Video\\OblivionIntro.bik',
'Video\\OblivionOutro.bik',
}
}}
5 changes: 3 additions & 2 deletions Mopy/bash/game/skyrim/vanilla_files.py
Expand Up @@ -22,8 +22,9 @@
# =============================================================================
"""This module lists the files installed in the Data folder in a completely
vanilla Skyrim setup."""
import os

vanilla_files = {
vanilla_files = {f.replace('\\', os.sep) for f in {
'DialogueViews\\0001A2A8.xml',
'DialogueViews\\0001A2D8.xml',
'DialogueViews\\0001A2DA.xml',
Expand Down Expand Up @@ -15353,4 +15354,4 @@
'Strings\\Update_English.ILSTRINGS',
'Strings\\Update_English.STRINGS',
'Video\\BGS_Logo.bik',
}
}}
9 changes: 5 additions & 4 deletions Mopy/bash/game/skyrimse/vanilla_files.py
Expand Up @@ -22,12 +22,13 @@
# =============================================================================
"""This module lists the files installed in the Data folder in a completely
vanilla Skyrim SE setup."""
import os

# Import vanilla_files from Skyrim, then edit as needed
from ..skyrim.vanilla_files import vanilla_files

# remove removed files
vanilla_files -= {
vanilla_files -= {f.replace('\\', os.sep) for f in {
'Interface\\Translate_ENGLISH.txt',
'LSData\\DtC6dal.dat',
'LSData\\DtC6dl.dat',
Expand Down Expand Up @@ -55,10 +56,10 @@
'Strings\\Update_English.DLSTRINGS',
'Strings\\Update_English.ILSTRINGS',
'Strings\\Update_English.STRINGS',
}
}}

# add new ones
vanilla_files |= {
vanilla_files |= {f.replace('\\', os.sep) for f in {
'Scripts\\Source\\Backup\\QF_C00_0004B2D9_BACKUP_05272016_113428AM.psc',
'Scripts\\Source\\Backup\\QF_C00JorrvaskrFight_000BC0BD_BACKUP_05272016_113715AM.psc',
}
}}
5 changes: 3 additions & 2 deletions Mopy/bash/game/starfield/vanilla_files.py
Expand Up @@ -22,8 +22,9 @@
# =============================================================================
"""This module lists the files installed in the Data folder in a completely
vanilla Starfield setup."""
import os

vanilla_files = {
vanilla_files = {f.replace('\\', os.sep) for f in {
'BlueprintShips-Starfield - Localization.ba2',
'BlueprintShips-Starfield.esm',
'Constellation - Localization.ba2',
Expand Down Expand Up @@ -120,4 +121,4 @@
'video\\PowerVision_SunlessSpace.bk2',
'video\\PowerVision_Supernova.bk2',
'video\\PowerVision_VoidForm.bk2',
}
}}
12 changes: 6 additions & 6 deletions Mopy/bash_default.ini
@@ -1,9 +1,9 @@
;# ____ _ _ _ ____ __ ___
;# | _ \ | | (_) (_) |___ \/_ |__ \
;# | |_) | __ _ ___| |__ _ _ __ _ __) || | ) |
;# | _ < / _` / __| '_ \ | | '_ \| | |__ < | | / /
;# | |_) | (_| \__ \ | | |_| | | | | | ___) || |/ /_
;# |____/ \__,_|___/_| |_(_)_|_| |_|_| |____/ |_|____|
;# ____ _ _ _ ____ __ ___ __
;# | _ \ | | (_) (_) |___ \/_ |__ \ /_ |
;# | |_) | __ _ ___| |__ _ _ __ _ __) || | ) | | |
;# | _ < / _` / __| '_ \ | | '_ \| | |__ < | | / / | |
;# | |_) | (_| \__ \ | | |_| | | | | | ___) || |/ /_ _| |
;# |____/ \__,_|___/_| |_(_)_|_| |_|_| |____/ |_|____(_)_|

;--This is the generic version of Bash.ini. You must copy or rename it to
; "bash.ini" before it can be used. It is distributed as bash_default.ini so
Expand Down
12 changes: 6 additions & 6 deletions Mopy/bash_default_Russian.ini
@@ -1,9 +1,9 @@
;# ____ _ _ _ ____ __ ___
;# | _ \ | | (_) (_) |___ \/_ |__ \
;# | |_) | __ _ ___| |__ _ _ __ _ __) || | ) |
;# | _ < / _` / __| '_ \ | | '_ \| | |__ < | | / /
;# | |_) | (_| \__ \ | | |_| | | | | | ___) || |/ /_
;# |____/ \__,_|___/_| |_(_)_|_| |_|_| |____/ |_|____|
;# ____ _ _ _ ____ __ ___ __
;# | _ \ | | (_) (_) |___ \/_ |__ \ /_ |
;# | |_) | __ _ ___| |__ _ _ __ _ __) || | ) | | |
;# | _ < / _` / __| '_ \ | | '_ \| | |__ < | | / / | |
;# | |_) | (_| \__ \ | | |_| | | | | | ___) || |/ /_ _| |
;# |____/ \__,_|___/_| |_(_)_|_| |_|_| |____/ |_|____(_)_|

;--Это стандартная версия файла настроек Wrye Bash.
; Если вы хотите, чтобы эти значения повлияли на Wrye Bash, то
Expand Down
4 changes: 2 additions & 2 deletions scripts/bump_ver.py
Expand Up @@ -34,8 +34,8 @@
from bash import bass

def setup_parser(parser):
parser.add_argument('new_version', type=int, nargs='?', metavar='ver',
default=int(bass.AppVersion) + 1,
parser.add_argument('new_version', type=str, nargs='?', metavar='ver',
default=str(int(bass.AppVersion) + 1),
help='The version to bump to. Defaults to the current version plus '
'one.')

Expand Down

0 comments on commit 24fbabf

Please sign in to comment.