Also would like to know if there is any detailed info on the new BAIN installer feature yet?
EDIT: I guess what I am asking is if anyone has made an example package to install yet? A Testing dummy archive so to speak.
Here's an example for http://tesnexus.com/downloads/file.php?id=18305, I just took the OBMM script and converted it to a BAIN wizard. http://rapidshare.com/files/356508515/All_Natural_0-9-8-WIZARD-BCF.7z.html is a BCF to convert All Natural to work with the script, just re-arranges a few things and adds the script in.
NOTE: I tried to make the BCF using the current version of Bash, but keep getting errors like these associated with extracting to a temp directory. I had to make the BCF using an old version:
Traceback (most recent call last): File "C:\Program Files (x86)\Bethesda Softworks\Oblivion\Mopy\basher.py", line 6278, in Execute installer.unpackToProject(archive,project,SubProgress(progress,0,0.8)) File "C:\Program Files (x86)\Bethesda Softworks\Oblivion\Mopy\bosh.py", line 10432, in unpackToProject self.unpackToTemp(archive,files,SubProgress(progress,0,0.9)) File "C:\Program Files (x86)\Bethesda Softworks\Oblivion\Mopy\bosh.py", line 10389, in unpackToTemp raise StateError(_("%s: Extraction failed\n%s") % (archive.s,"\n".join(errorLine)))bolt.StateError: All_Natural_0-9-8-18305.7z: Extraction failedError:Cannot use absolute pathnames for this command
or similar.
So the same bug will prevent you from applying the BCF using the current version. So... to make the wizard work, you half to slightly modify the directory structure for All Natural. Make a new folder called '00 Core - SI', and move 'All Natural - SI.esp' to it and rename it to 'All Natural.esp'. Then make a file called 'wizard.txt' in the root of All Natural, with the following:
; Example Wrye Bash (Version 278 and higher) BAIN wizard install fileRequireVersions '1.2.0.416', '0.0.18.0', '' ; Only listed requirement in the readme is OBSE v0018, but OBSE requires 1.2.416DeSelectAll ;Don't install anything, except the core components (non-SI version, select '00 Core - SI' to override All Natural.esp with the SI version)SelectSubPackage "00 Core"bRL = FalsebWeather = False; Ask if we're just doing an install for Real Lights, not the rest of ANSelectMany "Select which components of All Natural to install", \ "|Real Lights", "Real Lights was an incredibly ambitious project by Josef K. which aimed to replace all the fake lighting (invisible lights with no actual light source) with real lights with real light sources. For example, with Real Lights locations have candles or other light sources that emit light instead of generic white light coming from mid-air.\n\nSadly Real Lights was abandoned long ago and has some issues with save game bloating. However, the mod has now been included in All Natural and has been recently updated to fix all the problems it previously had. The All Natural version of Real Lights is the most updated and safe version of Real Lights and no one should use the older stand-alone version. The Real Lights segment of All Natural is the only segment you can actually use independently, so even if you want to use, say, Enhanced Weather, you can use the Real Lights plugin from All Natural. Instructions on how to do this are included in the installation section of the readme.", '', \ "|Weather Systems", "Install all the remaining components of All Natural other than Real Lights.", '' Case "Real Lights" bRL = True Break Case "Weather Systems" bWeather = True BreakEndSelectIf bRL & !(bWeather) ;ONLY install Real Lights, deselect some esps/esms we don't need from '00 Core' DeSelectEspm "All Natural Base.esm" DeSelectEspm "All Natural.esp" Note "Rename 'All Natural.bsa' to 'All Natural - Real Lights.bsa' or Real Lights will not function." SelectSubPackage "01 Real Lights" Return ;Signals the end of the install wizardElif !(bRL) & !(bWeather) ;For some reason they said not to install anything... Cancel "No All Natural components selected to install"EndIf; See if they wanted to install Real Lights along with the weather systemIf bRL SelectSubPackage "01 Real Lights" ;Detect if the Ayleid Steps patch is needed If DataFileExists('The Ayleid Steps.esp') SelectSubPackage "04 Real Lights - The Ayleid Steps Patch" EndIfEndIf;Detect if Nascosto Isles patch is neededIf DataFileExists('Nascosto Isles 3.esp') SelectSubPackage "05 Nascosto Isles Weather Patch"EndIf;Detect if Kvatch Rebuilt patch is neededIf DataFileExists('Kvatch Rebuilt.esp') SelectSubPackage "06 Kvatch Rebuilt Patch"EndIf;Detect if the Gates to Aesgaard (1 or 2) patches is(are) neededIf DataFileExists('GTAesgaard.esp') SelectSubPackage "07 Gates to Aesgaard Patch"EndIfIf DataFileExists('GTAesgaard_2.esp') SelectSubPackage "08 Gates to Aesgaard 2 Patch"EndIf;Detect if the Shivering Isles patch is neededIf DataFileExists('DLCShiveringIsles.esp') ;Overrides 'All Natural.esp' with the SI version SelectSubPackage "00 Core - SI"EndIf;Ask which weather mods' weathers to installbEW = FalsebAWS = FalsebNW = FalseSelectMany "Select which weather mods you want to use.", \ "|Enhanced Weather", '', '', \ "|Natural Weather", '', '', \ "|Atmospheric Weather System", '', '' Case "Enhanced Weather" bEW = True Break Case "Natural Weather" bNW = True Break Case "Atmospheric Weather System" bAWS = True BreakEndSelectIf bEW & bAWS & bNW SelectSubPackage "02 EW + NW + AWS"Elif bEW & bAWS SelectSubPackage "02 EW + AWS"Elif bEW & bNW SelectSubPackage "02 EW + NW"Elif bAWS & bNW SelectSubPackage "02 NW + AWS"Elif bEW SelectSubPackage "02 Enhanced Weather"Elif bNW SelectSubPackage "02 Natural Weather"Elif bAWS SelectSubPackage "02 Atmospheric Weather System"EndIf;Ask about using the filter patch to apply AN to other modsSelectOne "Do you want to use the Wrye Bash Filter patch?", \ "|Yes", "Bash Filter Option for applying All Natural's weather system to other mods. See the readme for an explination on how to use", '', \ "No", "Don't use the filter patch.", '' Case "Yes" SelectSubPackage "03 Bash Filter For various Mods" BreakEndSelect
Also, I'm embarassed to say I found 2 major bugs in the wizard code that needs fixing. I've emailed PacificMorrowind the fixes, but for those that can't wait:
In 'belt.py', line 530 it should look like:
self.AddFunction('!', self.Not )self.operators.append('!') ; INSERT THIS LINE HERE FOR THE FIXself.AddFunction('CompareOblivionVersion', self.FunctionCompareOblivionVersion)
This will make the ! function work right
In 'ScriptParser.py' line 578:
params = []newexpr = [] ; INSERT THIS LINE HEREwhile parens > 0:
In 'ScriptParser.py' line 610 it should be:
newline.append(self._EvalStep2(newexpr))newexpr = [] ; INSERT THIS LINE
In 'ScriptParser.py' line 613 should be:
else: if parens > 0: ; THIS LINE USED TO BE 'newline.append(i)' newexpr.append(i) ; INSERT THIS LINE else: ; AND THIS LINE newline.append(i) ; AND THIS LINE
These two changes fix the way the parser handles parenthesis, so it will do it correctly now.
I'm not sure how I let those bugs get in there, it's so much easier to spot them after not looking at the code for a few weeks.