[REL] Wrye Bash

Post » Sun May 27, 2012 6:16 am

can someone look over this wizard and tell me what i'm doing wrong?

Spoiler

SelectOne "Choose Compass Visibility", \	"|Reactive", "", "", \	"Always On", "", "", \	"Always Off", "", "", \	"Toggle", "Make sure to edit data\interface\ihud.cfg to define your key!", ""		Case "Reactive"		SelectMany "Choose Reactive", \			"|On Stamina", "", "", \			"On Magicka", "", "", \			"On Health", "", "", \			"|On Stealth", "", ""				Default					bModify_Compass = True					compasscontrolmaster = "REACTIVE"					compasscontrolstamina = "OFF"					compasscontrolmagicka = "OFF"					compasscontrolhealth = "OFF"					compasscontrolstealth = "OFF"				Break				Case "On Stamina"					bModify_Compass = True					compasscontrolmaster = "REACTIVE"					compasscontrolstamina = "ON"				Break				Case "On Magicka"					bModify_Compass = True					compasscontrolmaster = "REACTIVE"					compasscontrolmagicka = "ON"				Break				Case "On Health"					bModify_Compass = True					compasscontrolmaster = "REACTIVE"					compasscontrolhealth = "ON"				Break				Case "On Stealth"					bModify_Compass = True					scompasscontrolmaster = "REACTIVE"					compasscontrolstealth = "ON"				Break		Break	Case "Always On"		bModify_Compass = True		scompasscontrolmaster = "ALWAYS_ON"	Break	Case "Always Off"		bModify_Compass = True		compasscontrolmaster = "ALWAYS_OFF"	Break	Case "Toggle"		bModify_Compass = True		compasscontrolmaster = "TOGGLE"		note Make sure to edit data\interface\ihud.cfg to define your key!	EndSelectEndSelectSelectOne "Choose Crosshair Visibility", \	"|Reactive", "", "", \	"Always On", "", "", \	"Always Off", "", ""		Case "Reactive"		SelectMany "Choose Reactive", \			"On Stamina", "", "", \			"|On Magicka", "", "", \			"On Health", "", "", \			"|On Arrows", "", "", \			"|On Charge", "", "", \			"On Weapon/spell", "", ""							Default					bModify_Crosshair = True					crosshaircontrolmaster = "REACTIVE"					crosshaircontrolstamina = "OFF"					crosshaircontrolmagicka = "OFF"					crosshaircontrolhealth = "OFF"					crosshaircontrolarrows = "OFF"					crosshaircontrolcharge = "OFF"					crosshaircontrolweapon = "OFF"				Break				Case "On Stamina"					bModify_Crosshair = True					crosshaircontrolmaster = "REACTIVE"					crosshaircontrolstamina = "ON"				Break				Case "On Magicka"					bModify_Crosshair = True					crosshaircontrolmaster = "REACTIVE"					crosshaircontrolmagicka = "ON"				Break				Case "On Health"					bModify_Crosshair = True					crosshaircontrolmaster = "REACTIVE"					crosshaircontrolhealth = "ON"				Break				Case "On "					bModify_Crosshair = True					crosshaircontrolmaster = "REACTIVE"					crosshaircontrolarrows = "ON"				Break				Case "On "					bModify_Crosshair = True					crosshaircontrolmaster = "REACTIVE"					crosshaircontrolcharge = "ON"				Break				Case "On "					bModify_Crosshair = True					crosshaircontrolmaster = "REACTIVE"					crosshaircontrolweapon = "ON"				Break		Break	Case "Always On"		bModify_Crosshair = True		crosshaircontrolmaster = "ALWAYS_ON"	Break	Case "Always Off"		bModify_Crosshair = True		crosshaircontrolmaster = "ALWAYS_OFF"	EndSelectEndSelectSelectMany "Choose Marker Visibility", \	"|Location", "", "", \	"|Quests", "", "", \	"|Enimies", "", "", \	"|Player Set", "", ""				Default			bModify_Markers = True			markerslocations = "OFF"			markersquests = "OFF"			markersenemies = "OFF"			markersplayerset = "OFF"		Break		Case "Location"			bModify_Markers = True			markerslocations = "ON"		Break		Case "Quests"			bModify_Markers = True			markersquests = "ON"		Break		Case "Enimies"			bModify_Markers = True			markersenemies = "ON"		Break		Case "Player Set"			bModify_Markers = True			markersplayerset = "ON"		EndSelectSelectMany "Other", \	"|Floating Quest Markers Hide with Compass", "", "", \	"|Enemy Health Visible", "", "", \	"|Stealth Indicators Enabled", "", ""				Default				bModify_FloatingQuestMarker = True				bModify_EnemyHealth = True				bModify_Stealth = True				floakingquestmarkercontrolcompass = "OFF"				healthcontrolmaster = "OFF"				stealthcontrolmaster = "OFF"			Break						Case "Floating Quest Markers Hide with Compass"				bModify_FloatingQuestMarker = True				floakingquestmarkercontrolcompass = "ON"			Break			Case "Enemy Health Visible"				bModify_EnemyHealth = True				healthcontrolmaster = "ON"			Break			Case "Stealth Indicators Enabled"				bModify_Stealth = True				stealthcontrolmaster = "ON"			BreakEndSelect;Inis start here;Compass VisibilityIf bModify_Compass	EditINI('Interface\\ihud.cfg', 'Compass', 'control.master', compasscontrolmaster)	EditINI('Interface\\ihud.cfg', 'Compass', 'control.stamina', compasscontrolstamina)	EditINI('Interface\\ihud.cfg', 'Compass', 'control.magicka', compasscontrolmagicka)	EditINI('Interface\\ihud.cfg', 'Compass', 'control.health', compasscontrolhealth)	EditINI('Interface\\ihud.cfg', 'Compass', 'control.stealth', compasscontrolstealth)EndIf;Crosshair VisibilityIf bModify_Crosshair	EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.master', crosshaircontrolmaster)	EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.stamina', crosshaircontrolstamina)	EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.magicka', crosshaircontrolmagicka)	EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.health', crosshaircontrolhealth)	EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.arrows', crosshaircontrolarrows)	EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.charge', crosshaircontrolcharge)	EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.weapon', crosshaircontrolweapon)EndIf;Marker VisibilityIf bModify_Markers	EditINI('Interface\\ihud.cfg', 'Compass', 'markers.locations', markerslocations)	EditINI('Interface\\ihud.cfg', 'Compass', 'markers.quests', markersquests)	EditINI('Interface\\ihud.cfg', 'Compass', 'markers.enemies', markersenemies)	EditINI('Interface\\ihud.cfg', 'Compass', 'markers.playerset', markersplayerset)EndIf;Other;Floating Quest MarkersIf bModify_FloatingQuestMarker	EditINI('Interface\\ihud.cfg', 'FloatingQuestMarker', 'control.compass', floakingquestmarkercontrolcompass)EndIf;EnemyHealthIf bModify_EnemyHealth	EditINI('Interface\\ihud.cfg', 'EnemyHealth', 'control.master', healthcontrolmaster)EndIf;StealthIf bModify_Stealth	EditINI('Interface\\ihud.cfg', 'Stealth', 'control.master', stealthcontrolmaster)EndIfbreak

if i choose reactive when installing it writes to the ini just fine but if i choose any other option it writes the strings instead of the variable.
User avatar
Robert Devlin
 
Posts: 3521
Joined: Mon Jul 23, 2007 2:19 pm

Post » Sun May 27, 2012 12:25 pm

SelectMany "Choose Reactive"
is missing EndSelect.

Edit: I've never understood how to use 'Default' and 'Dot Operator', thanks, I know how to use 'Default'. :banana:
User avatar
cutiecute
 
Posts: 3432
Joined: Wed Sep 27, 2006 9:51 am

Post » Sun May 27, 2012 7:33 pm

SelectMany "Choose Reactive"
is missing EndSelect.

Edit: I've never understood how to use 'Default' and 'Dot Operator', thanks, I know how to use 'Default'. :banana:

it is part of the case block, case blocks end in Break, with endselect in place of that Break or in addition to that Break i get

Unexpected 'EndSelect'.
User avatar
Queen of Spades
 
Posts: 3383
Joined: Fri Dec 08, 2006 12:06 pm

Post » Sun May 27, 2012 9:08 am

I'd like to report a bug:

Running Wrye Smash 295.5
Mods installed: Only Skyrim HD
The problem: Dragging SkyUI into the installers tab and selecting the "move" option produced the error below. Any subsequent mod that I drag into the window also fails to show up (not sure how to fix this; I set it to not ask me again about moving vs. copying).

Error:

Traceback (most recent call last):
File "E:\Games\Steam\steamapps\common\skyrim\Mopy\bash\basher.py", line 5028, in OnShowPage
self.GetPage(event.GetSelection()).OnShow()
File "E:\Games\Steam\steamapps\common\skyrim\Mopy\bash\basher.py", line 3687, in OnShow
if data.refresh(progress,what,self.fullRefresh):
File "E:\Games\Steam\steamapps\common\skyrim\Mopy\bash\bosh.py", line 8523, in refresh
if 'I' in what: changed |= self.refreshInstallers(progress,fullRefresh)
File "E:\Games\Steam\steamapps\common\skyrim\Mopy\bash\bosh.py", line 8740, in refreshInstallers
changed |= self.applyEmbeddedBCFs(progress=progress)
File "E:\Games\Steam\steamapps\common\skyrim\Mopy\bash\bosh.py", line 8771, in applyEmbeddedBCFs
converter.apply(destArchive,self.crc_installer,bolt.SubProgress(progress,0.0,0.99),installer.crc)
File "E:\Games\Steam\steamapps\common\skyrim\Mopy\bash\bosh.py", line 7726, in apply
self.arrangeFiles(SubProgress(progress,lastStep,0.7))
File "E:\Games\Steam\steamapps\common\skyrim\Mopy\bash\bosh.py", line 7756, in arrangeFiles
raise StateError(u"%s: Missing source file:\n%s" % (self.fullPath.stail, srcFile.s))
bash.bolt.StateError: temp-SkyUI 2.1 BAIN-BCF.7z: Missing source file:
InstallerTemp\28E4D397\SkyUI Extras\Original Fontconfigs\Default\fontconfig.txt
User avatar
Julie Serebrekoff
 
Posts: 3359
Joined: Sun Dec 24, 2006 4:41 am

Post » Sun May 27, 2012 3:19 pm

I'd like to report a bug:

Running Wrye Smash 295.5
Mods installed: Only Skyrim HD
The problem: Dragging SkyUI into the installers tab and selecting the "move" option produced the error below. Any subsequent mod that I drag into the window also fails to show up (not sure how to fix this; I set it to not ask me again about moving vs. copying).

Error:

Traceback (most recent call last):
File "E:\Games\Steam\steamapps\common\skyrim\Mopy\bash\basher.py", line 5028, in OnShowPage
self.GetPage(event.GetSelection()).OnShow()
File "E:\Games\Steam\steamapps\common\skyrim\Mopy\bash\basher.py", line 3687, in OnShow
if data.refresh(progress,what,self.fullRefresh):
File "E:\Games\Steam\steamapps\common\skyrim\Mopy\bash\bosh.py", line 8523, in refresh
if 'I' in what: changed |= self.refreshInstallers(progress,fullRefresh)
File "E:\Games\Steam\steamapps\common\skyrim\Mopy\bash\bosh.py", line 8740, in refreshInstallers
changed |= self.applyEmbeddedBCFs(progress=progress)
File "E:\Games\Steam\steamapps\common\skyrim\Mopy\bash\bosh.py", line 8771, in applyEmbeddedBCFs
converter.apply(destArchive,self.crc_installer,bolt.SubProgress(progress,0.0,0.99),installer.crc)
File "E:\Games\Steam\steamapps\common\skyrim\Mopy\bash\bosh.py", line 7726, in apply
self.arrangeFiles(SubProgress(progress,lastStep,0.7))
File "E:\Games\Steam\steamapps\common\skyrim\Mopy\bash\bosh.py", line 7756, in arrangeFiles
raise StateError(u"%s: Missing source file:\n%s" % (self.fullPath.stail, srcFile.s))
bash.bolt.StateError: temp-SkyUI 2.1 BAIN-BCF.7z: Missing source file:
InstallerTemp\28E4D397\SkyUI Extras\Original Fontconfigs\Default\fontconfig.txt

i had this error as well with skyUI the solution was to delete the BCF file inside the archive, or use the pre-BAINed 2.2 version (check the nexus thread) the BCF file inside the 2.2 skyUI package is for 2.1 and thus throws this error (after fixing this issue the error should go away for any subsequent mods)
User avatar
louise hamilton
 
Posts: 3412
Joined: Wed Jun 07, 2006 9:16 am

Post » Sun May 27, 2012 2:44 pm

@ Romaules, try the following one. :smile:
Spoiler
SelectOne "Choose Compass Visibility", \        "|Reactive", "", "", \        "Always On", "", "", \        "Always Off", "", "", \        "Toggle", "Make sure to edit data\interface\ihud.cfg to define your key!", ""        Case "Reactive"                SelectMany "Choose Reactive", \                        "|On Stamina", "", "", \                        "On Magicka", "", "", \                        "On Health", "", "", \                        "|On Stealth", "", ""                                Default                                        bModify_Compass = True                                        compasscontrolmaster = "REACTIVE"                                        compasscontrolstamina = "OFF"                                        compasscontrolmagicka = "OFF"                                        compasscontrolhealth = "OFF"                                        compasscontrolstealth = "OFF"                                Break                                Case "On Stamina"                                        bModify_Compass = True                                        compasscontrolmaster = "REACTIVE"                                        compasscontrolstamina = "ON"                                Break                                Case "On Magicka"                                        bModify_Compass = True                                        compasscontrolmaster = "REACTIVE"                                        compasscontrolmagicka = "ON"                                Break                                Case "On Health"                                        bModify_Compass = True                                        compasscontrolmaster = "REACTIVE"                                        compasscontrolhealth = "ON"                                Break                                Case "On Stealth"                                        bModify_Compass = True                                        scompasscontrolmaster = "REACTIVE"                                        compasscontrolstealth = "ON"                                Break                EndSelect        Break        Case "Always On"                bModify_Compass = True                scompasscontrolmaster = "ALWAYS_ON"        Break        Case "Always Off"                bModify_Compass = True                compasscontrolmaster = "ALWAYS_OFF"        Break        Case "Toggle"                bModify_Compass = True                compasscontrolmaster = "TOGGLE"                Note "Make sure to edit data\\interface\\ihud.cfg to define your key!"        BreakEndSelectSelectOne "Choose Crosshair Visibility", \        "|Reactive", "", "", \        "Always On", "", "", \        "Always Off", "", ""        Case "Reactive"                SelectMany "Choose Reactive", \                        "On Stamina", "", "", \                        "|On Magicka", "", "", \                        "On Health", "", "", \                        "|On Arrows", "", "", \                        "|On Charge", "", "", \                        "On Weapon/spell", "", ""                                Default                                        bModify_Crosshair = True                                        crosshaircontrolmaster = "REACTIVE"                                        crosshaircontrolstamina = "OFF"                                        crosshaircontrolmagicka = "OFF"                                        crosshaircontrolhealth = "OFF"                                        crosshaircontrolarrows = "OFF"                                        crosshaircontrolcharge = "OFF"                                        crosshaircontrolweapon = "OFF"                                Break                                Case "On Stamina"                                        bModify_Crosshair = True                                        crosshaircontrolmaster = "REACTIVE"                                        crosshaircontrolstamina = "ON"                                Break                                Case "On Magicka"                                        bModify_Crosshair = True                                        crosshaircontrolmaster = "REACTIVE"                                        crosshaircontrolmagicka = "ON"                                Break                                Case "On Health"                                        bModify_Crosshair = True                                        crosshaircontrolmaster = "REACTIVE"                                        crosshaircontrolhealth = "ON"                                Break                                Case "On "                                        bModify_Crosshair = True                                        crosshaircontrolmaster = "REACTIVE"                                        crosshaircontrolarrows = "ON"                                Break                                Case "On "                                        bModify_Crosshair = True                                        crosshaircontrolmaster = "REACTIVE"                                        crosshaircontrolcharge = "ON"                                Break                                Case "On "                                        bModify_Crosshair = True                                        crosshaircontrolmaster = "REACTIVE"                                        crosshaircontrolweapon = "ON"                                Break                EndSelect        Break        Case "Always On"                bModify_Crosshair = True                crosshaircontrolmaster = "ALWAYS_ON"        Break        Case "Always Off"                bModify_Crosshair = True                crosshaircontrolmaster = "ALWAYS_OFF"        BreakEndSelectSelectMany "Choose Marker Visibility", \        "|Location", "", "", \        "|Quests", "", "", \        "|Enimies", "", "", \        "|Player Set", "", ""                Default                        bModify_Markers = True                        markerslocations = "OFF"                        markersquests = "OFF"                        markersenemies = "OFF"                        markersplayerset = "OFF"                Break                Case "Location"                        bModify_Markers = True                        markerslocations = "ON"                Break                Case "Quests"                        bModify_Markers = True                        markersquests = "ON"                Break                Case "Enimies"                        bModify_Markers = True                        markersenemies = "ON"                Break                Case "Player Set"                        bModify_Markers = True                        markersplayerset = "ON"                BreakEndSelectSelectMany "Other", \        "|Floating Quest Markers Hide with Compass", "", "", \        "|Enemy Health Visible", "", "", \        "|Stealth Indicators Enabled", "", ""                        Default                                bModify_FloatingQuestMarker = True                                bModify_EnemyHealth = True                                bModify_Stealth = True                                floakingquestmarkercontrolcompass = "OFF"                                healthcontrolmaster = "OFF"                                stealthcontrolmaster = "OFF"                        Break                        Case "Floating Quest Markers Hide with Compass"                                bModify_FloatingQuestMarker = True                                floakingquestmarkercontrolcompass = "ON"                        Break                        Case "Enemy Health Visible"                                bModify_EnemyHealth = True                                healthcontrolmaster = "ON"                        Break                        Case "Stealth Indicators Enabled"                                bModify_Stealth = True                                stealthcontrolmaster = "ON"                        BreakEndSelect;Inis start here;Compass VisibilityIf bModify_Compass        EditINI('Interface\\ihud.cfg', 'Compass', 'control.master', compasscontrolmaster)        EditINI('Interface\\ihud.cfg', 'Compass', 'control.stamina', compasscontrolstamina)        EditINI('Interface\\ihud.cfg', 'Compass', 'control.magicka', compasscontrolmagicka)        EditINI('Interface\\ihud.cfg', 'Compass', 'control.health', compasscontrolhealth)        EditINI('Interface\\ihud.cfg', 'Compass', 'control.stealth', compasscontrolstealth)EndIf;Crosshair VisibilityIf bModify_Crosshair        EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.master', crosshaircontrolmaster)        EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.stamina', crosshaircontrolstamina)        EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.magicka', crosshaircontrolmagicka)        EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.health', crosshaircontrolhealth)        EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.arrows', crosshaircontrolarrows)        EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.charge', crosshaircontrolcharge)        EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.weapon', crosshaircontrolweapon)EndIf;Marker VisibilityIf bModify_Markers        EditINI('Interface\\ihud.cfg', 'Compass', 'markers.locations', markerslocations)        EditINI('Interface\\ihud.cfg', 'Compass', 'markers.quests', markersquests)        EditINI('Interface\\ihud.cfg', 'Compass', 'markers.enemies', markersenemies)        EditINI('Interface\\ihud.cfg', 'Compass', 'markers.playerset', markersplayerset)EndIf;Other;Floating Quest MarkersIf bModify_FloatingQuestMarker        EditINI('Interface\\ihud.cfg', 'FloatingQuestMarker', 'control.compass', floakingquestmarkercontrolcompass)EndIf;EnemyHealthIf bModify_EnemyHealth        EditINI('Interface\\ihud.cfg', 'EnemyHealth', 'control.master', healthcontrolmaster)EndIf;StealthIf bModify_Stealth        EditINI('Interface\\ihud.cfg', 'Stealth', 'control.master', stealthcontrolmaster)EndIfbreak
@ Danja
Right click header bar, and deselect "Auto-Apply Embedded BCFs".
Seems the package is missing files...not bash bug.
User avatar
Wayne W
 
Posts: 3482
Joined: Sun Jun 17, 2007 5:49 am

Post » Sun May 27, 2012 5:34 pm

@ Romaules, try the following one. :smile:
Spoiler
SelectOne "Choose Compass Visibility", \		"|Reactive", "", "", \		"Always On", "", "", \		"Always Off", "", "", \		"Toggle", "Make sure to edit data\interface\ihud.cfg to define your key!", ""		Case "Reactive"				SelectMany "Choose Reactive", \						"|On Stamina", "", "", \						"On Magicka", "", "", \						"On Health", "", "", \						"|On Stealth", "", ""								Default										bModify_Compass = True										compasscontrolmaster = "REACTIVE"										compasscontrolstamina = "OFF"										compasscontrolmagicka = "OFF"										compasscontrolhealth = "OFF"										compasscontrolstealth = "OFF"								Break								Case "On Stamina"										bModify_Compass = True										compasscontrolmaster = "REACTIVE"										compasscontrolstamina = "ON"								Break								Case "On Magicka"										bModify_Compass = True										compasscontrolmaster = "REACTIVE"										compasscontrolmagicka = "ON"								Break								Case "On Health"										bModify_Compass = True										compasscontrolmaster = "REACTIVE"										compasscontrolhealth = "ON"								Break								Case "On Stealth"										bModify_Compass = True										scompasscontrolmaster = "REACTIVE"										compasscontrolstealth = "ON"								Break				EndSelect				Break		Case "Always On"				bModify_Compass = True				scompasscontrolmaster = "ALWAYS_ON"		Break		Case "Always Off"				bModify_Compass = True				compasscontrolmaster = "ALWAYS_OFF"		Break		Case "Toggle"				bModify_Compass = True				compasscontrolmaster = "TOGGLE"				Note "Make sure to edit data\\interface\\ihud.cfg to define your key!"		BreakEndSelectSelectOne "Choose Crosshair Visibility", \		"|Reactive", "", "", \		"Always On", "", "", \		"Always Off", "", ""		Case "Reactive"				SelectMany "Choose Reactive", \						"On Stamina", "", "", \						"|On Magicka", "", "", \						"On Health", "", "", \						"|On Arrows", "", "", \						"|On Charge", "", "", \						"On Weapon/spell", "", ""								Default										bModify_Crosshair = True										crosshaircontrolmaster = "REACTIVE"										crosshaircontrolstamina = "OFF"										crosshaircontrolmagicka = "OFF"										crosshaircontrolhealth = "OFF"										crosshaircontrolarrows = "OFF"										crosshaircontrolcharge = "OFF"										crosshaircontrolweapon = "OFF"								Break								Case "On Stamina"										bModify_Crosshair = True										crosshaircontrolmaster = "REACTIVE"										crosshaircontrolstamina = "ON"								Break								Case "On Magicka"										bModify_Crosshair = True										crosshaircontrolmaster = "REACTIVE"										crosshaircontrolmagicka = "ON"								Break								Case "On Health"										bModify_Crosshair = True										crosshaircontrolmaster = "REACTIVE"										crosshaircontrolhealth = "ON"								Break								Case "On "										bModify_Crosshair = True										crosshaircontrolmaster = "REACTIVE"										crosshaircontrolarrows = "ON"								Break								Case "On "										bModify_Crosshair = True										crosshaircontrolmaster = "REACTIVE"										crosshaircontrolcharge = "ON"								Break								Case "On "										bModify_Crosshair = True										crosshaircontrolmaster = "REACTIVE"										crosshaircontrolweapon = "ON"								Break				EndSelect		 Break		Case "Always On"				bModify_Crosshair = True				crosshaircontrolmaster = "ALWAYS_ON"		Break		Case "Always Off"				bModify_Crosshair = True				crosshaircontrolmaster = "ALWAYS_OFF"		BreakEndSelectSelectMany "Choose Marker Visibility", \		"|Location", "", "", \		"|Quests", "", "", \		"|Enimies", "", "", \		"|Player Set", "", ""				Default						bModify_Markers = True						markerslocations = "OFF"						markersquests = "OFF"						markersenemies = "OFF"						markersplayerset = "OFF"				Break				Case "Location"						bModify_Markers = True						markerslocations = "ON"				Break				Case "Quests"						bModify_Markers = True						markersquests = "ON"				Break				Case "Enimies"						bModify_Markers = True						markersenemies = "ON"				Break				Case "Player Set"						bModify_Markers = True						markersplayerset = "ON"				BreakEndSelectSelectMany "Other", \		"|Floating Quest Markers Hide with Compass", "", "", \		"|Enemy Health Visible", "", "", \		"|Stealth Indicators Enabled", "", ""						Default								bModify_FloatingQuestMarker = True								bModify_EnemyHealth = True								bModify_Stealth = True								floakingquestmarkercontrolcompass = "OFF"								healthcontrolmaster = "OFF"								stealthcontrolmaster = "OFF"						Break						Case "Floating Quest Markers Hide with Compass"								bModify_FloatingQuestMarker = True								floakingquestmarkercontrolcompass = "ON"						Break						Case "Enemy Health Visible"								bModify_EnemyHealth = True								healthcontrolmaster = "ON"						Break						Case "Stealth Indicators Enabled"								bModify_Stealth = True								stealthcontrolmaster = "ON"						BreakEndSelect;Inis start here;Compass VisibilityIf bModify_Compass		EditINI('Interface\\ihud.cfg', 'Compass', 'control.master', compasscontrolmaster)		EditINI('Interface\\ihud.cfg', 'Compass', 'control.stamina', compasscontrolstamina)		EditINI('Interface\\ihud.cfg', 'Compass', 'control.magicka', compasscontrolmagicka)		EditINI('Interface\\ihud.cfg', 'Compass', 'control.health', compasscontrolhealth)		EditINI('Interface\\ihud.cfg', 'Compass', 'control.stealth', compasscontrolstealth)EndIf;Crosshair VisibilityIf bModify_Crosshair		EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.master', crosshaircontrolmaster)		EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.stamina', crosshaircontrolstamina)		EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.magicka', crosshaircontrolmagicka)		EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.health', crosshaircontrolhealth)		EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.arrows', crosshaircontrolarrows)		EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.charge', crosshaircontrolcharge)		EditINI('Interface\\ihud.cfg', 'Crosshair', 'control.weapon', crosshaircontrolweapon)EndIf;Marker VisibilityIf bModify_Markers		EditINI('Interface\\ihud.cfg', 'Compass', 'markers.locations', markerslocations)		EditINI('Interface\\ihud.cfg', 'Compass', 'markers.quests', markersquests)		EditINI('Interface\\ihud.cfg', 'Compass', 'markers.enemies', markersenemies)		EditINI('Interface\\ihud.cfg', 'Compass', 'markers.playerset', markersplayerset)EndIf;Other;Floating Quest MarkersIf bModify_FloatingQuestMarker		EditINI('Interface\\ihud.cfg', 'FloatingQuestMarker', 'control.compass', floakingquestmarkercontrolcompass)EndIf;EnemyHealthIf bModify_EnemyHealth		EditINI('Interface\\ihud.cfg', 'EnemyHealth', 'control.master', healthcontrolmaster)EndIf;StealthIf bModify_Stealth		EditINI('Interface\\ihud.cfg', 'Stealth', 'control.master', stealthcontrolmaster)EndIfbreak
@ Danja
Right click header bar, and deselect "Auto-Apply Embedded BCFs".
Seems the package is missing files...not bash bug.

thanks that seams to have done the trick, would never have though i would need to give the SelectOne a EndSelect for a case chunk containing a SelectMany. my default still isnt getting applied before the case but it shouldnt mater with this particular ini, and tbh i think im useing the default chunk incorrectly
User avatar
Trevi
 
Posts: 3404
Joined: Fri Apr 06, 2007 8:26 pm

Post » Sun May 27, 2012 7:37 am

Last night I played Oblivion for about 80 min, but I spent at leeast as long making sure that my installed mods were configured right. Most of this time was spent waiting for Bash to do something. As such, over the past couple of hours I've been looking into the UI lag introduced in the SVN with BAPI support, using my phone's stopwatch. My findings are:

1. If UI refresh (RefreshUI()) is disabled, then activating/deactivating a plugin takes ~1.5s.
2. If UI refresh is enabled, then activating/deactivating a plugin takes ~6.5s.

I then followed the code involved in the UI refresh from checkUncheckMod through to PopulateItem, defined on line 1778 in basher.py. I then tried disabling everything that I thought might have an effect:

3. Commenting out the elif block starting on line 1804 that sets the text in the Load Order column speeds up UI refresh by ~0.5s.
4. Commenting out all code blocks referencing calling getBashTags within PopulateItem has no noticeable performance impact.
5. Commenting out the if block starting on line 1898 that deals with getting the plugin's dirty message improves performance by ~4s.

The problem is that the line 1898 if block makes an almost-direct call to BAPI's GetDirtyMessage function, which extracts the message from the masterlist, and this is done every time the mod list UI is refreshed, regardless of what has changed, for every plugin in your load order.

Now, BAPI is largely unoptimised, so I may be able to make some performance improvements on that side of things. However, Bash is using GetDirtyMessage in a very inefficient manner - realistically the function should only need to be called once when the plugin is first found by Bash, and then again whenever the masterlist file is altered (which is never, ATM) or when the plugin is changed (eg. when it's cleaned), and the message should be cached by Bash.

Even better would be for Bash to have different UI refresh functions based on what has changed - as far as the UI is concerned, changing a plugin's activation status only requires changing the state of the checkbox for that plugin (and any children it has), but Bash is currently redrawing the whole list.

It may be that a similar sort of thing is happening in the non-UI ~1.5s lag, since Bash is using BAPI for that too. I can look into that once I've figured out how to fix the GetDirtyMessage usage. Certainly in my own testing application (in C++), it takes ~0.05s to toggle a plugin's activation status using BAPI (tested by timing how long it takes to call the function 1000 times), so the rest of the 1.5s must be coming from either Bash's internal data shenanigans, or it using BAPI inefficiently again.

EDIT: There remains substantial lag when re-ordering plugins using Ctrl-arrow keys when getDirtyMessage is disabled, but drag 'n' drop is acceptably fast now (though the ordering bug remains, I haven't gotten around to that yet). The Ctrl-arrow lag probably has something to do with the looping calls to RefreshUI in OnChar (lines 2001, 2002, OnChar defined on 1976, all in basher.py). No idea why the looping is necessary.

Also, no ETA on any changes from me, I've got exams in 3 weeks and I'm skirting burnout as it is.

EDIT 2: Drag 'n' drop seems more broken than I thought. Moving an active plugin up will cause it to be listed before the game's master file, or just after. If there's already a plugin in one of those places, it is either put after that plugin or before it, and I can't discern any logic to which is chosen. Moving an active plugin down sometimes moves it up, sometimes moves it down, but I'm not seeing it move down by any more than one place. Sometimes one of the plugins you drag a plugin to is moved instead of the plugin you dragged, though with things moving all over the place I could just be misreading that.

Ugh, it seems like every issue we're experiencing leads to an Alice-In-Wonderland-style rabbit hole of bugs and undead code mess.
User avatar
Mari martnez Martinez
 
Posts: 3500
Joined: Sat Aug 11, 2007 9:39 am

Post » Sun May 27, 2012 4:33 pm

EDIT: There remains substantial lag when re-ordering plugins using Ctrl-arrow keys when getDirtyMessage is disabled, but drag 'n' drop is acceptably fast now (though the ordering bug remains, I haven't gotten around to that yet). The Ctrl-arrow lag probably has something to do with the looping calls to RefreshUI in OnChar (lines 2001, 2002, OnChar defined on 1976, all in basher.py). No idea why the looping is necessary.
						self.RefreshUI(refreshSaves=False)					self.RefreshUI([],refreshSaves=True)
It seems that the first is for Mods Tab, and second one only refresh Saves Tab. Not much sure, I know little about python so don't know what '[]' means.
Drag 'n' drop seems more broken than I thought. Moving an active plugin up will cause it to be listed before the game's master file, or just after. If there's already a plugin in one of those places, it is either put after that plugin or before it, and I can't discern any logic to which is chosen. Moving an active plugin down sometimes moves it up, sometimes moves it down, but I'm not seeing it move down by any more than one place. Sometimes one of the plugins you drag a plugin to is moved instead of the plugin you dragged, though with things moving all over the place I could just be misreading that.
As Arthmoor said it works for Skyrim, I've tried patching OnDropIndexes...
if bosh.boss.LoadOrderMethod == bapi.BOSS_API_LOMETHOD_TEXTFILE:	else:	
Skyrim should still work, but for Oblivion, I'm unable to move mod.. only to find if I restart bash, the mod is moved.
I'm confused how bash sorts mods, by boss.LoadOrder for Skyrim, but what for Oblivion? mtime?

Edit: Try this patch ,seems to work for Oblivion.
Spoiler
Index: basher.py===================================================================--- basher.py (revision 2367)+++ basher.py (working copy)@@ -1734,21 +1734,65 @@             if GPath(thisFile) in bosh.modInfos.autoSorted:                 balt.showError(self,_(u"Auto-ordered files cannot be manually moved."))                 return-        start = indexes[0]-        stop = indexes[-1] + 1-        oldOrder = bosh.modInfos.LoadOrder-        # Dummy checks: can't move the game's master file anywhere else but position 0-        if newPos <= 0: return-        master = bosh.modInfos.masterName-        if master in oldOrder[start:stop]: return-        # List of names to move-        toMove = oldOrder[start:stop]-        # oldOrder will only have non-moving plugins now-        del oldOrder[start:stop]-        # create new order-        newOrder = oldOrder[:newPos] + toMove + oldOrder[newPos:]-        #--Save and Refresh-        bosh.boss.LoadOrder = newOrder+        if bosh.boss.LoadOrderMethod == bosh.bapi.BOSS_API_LOMETHOD_TEXTFILE:+            start = indexes[0]+            stop = indexes[-1] + 1+            oldOrder = bosh.modInfos.LoadOrder+            # Dummy checks: can't move the game's master file anywhere else but position 0+            if newPos <= 0: return+            master = bosh.modInfos.masterName+            if master in oldOrder[start:stop]: return+            # List of names to move+            toMove = oldOrder[start:stop]+            # oldOrder will only have non-moving plugins now+            del oldOrder[start:stop]+            # create new order+            newOrder = oldOrder[:newPos] + toMove + oldOrder[newPos:]+            #--Save and Refresh+            bosh.boss.LoadOrder = newOrder+        else:+            # Watch out for errors in range+            if newPos > indexes[0]:   inc = 1+            elif newPos < indexes[0]: inc = -1+            else: return+            howMany = indexes[-1]-indexes[0]+            # Make sure we don't go out of bounds+            target = indexes[0]+            thisFile = self.items[target]+            while True:+                if target < 0: break+                if target + howMany >= len(self.items) - inc: break+                if target == newPos: break+                swapFile = self.items[target]+                if thisFile.cext != swapFile.cext: break+                target += inc+                if inc == 1 and target + howMany <= indexes[-1]: return+                if inc == -1 and target >= indexes[0]: return+                   # Adjust for going up/down+            if inc > 0:+                target += howMany+            else:+                indexes.reverse()+            # Gather time codes+            i = indexes[0]+            times = []+            while i != target + inc:+                info = bosh.modInfos[self.items[i]]+                times.append(info.mtime)+                i += inc+            # Rearrange them for the new load order+            times.reverse()+            newThisTimes = times[:howMany+1]+            newSwapTimes = times[howMany+1:]+            times = newSwapTimes + newThisTimes+            # Apply new times+            i = indexes[0]+            while i != target + inc:+                info = bosh.modInfos[self.items[i]]+                info.setmtime(times.pop())+                i += inc+            # Refresh+            bosh.modInfos.refreshBapi(False,True)         bosh.modInfos.refreshInfoLists()         self.RefreshUI()
Just use the old code for dnd, and add bosh.modInfos.refreshBapi(False,True) to force refresh full load order.
It seems working though, but will break Lojack's fix. :sad:
User avatar
WYatt REed
 
Posts: 3409
Joined: Mon Jun 18, 2007 3:06 pm

Post » Sun May 27, 2012 12:34 pm

@wrinklyninja:
This was the biggest issue that surprised me with the newest Bash/Smash (i.e., the incredible lag for UI refresh). This has never, ever been an issue in earlier versions of the tool going back to 187 (which I used last year for Oblivion) or Flash or Flash NV (also used during the past year). I can pull up 187 running Oblivion from my game last year right now, in fact, and have no problems at all. Same with Flash and FO3, and I just played Flash NV and FONV earlier this winter.

I'm not sure if that perspective helps or not. I just wanted to offer it because Bash never used to have such horrible UI lag, not even with some of the more complex functionality such as BAIN. In the past, it was always almost instantaneous. The lag has to come from some of the newer stuff, or an interaction between some of the newest stuff and the established code.
User avatar
Unstoppable Judge
 
Posts: 3337
Joined: Sat Jul 29, 2006 11:22 pm

Post » Sun May 27, 2012 8:30 am

Thanks for the explanation on the UI lag though. Those are probably the bugs I reported earlier. I wasn't expecting it to take 6s to activate a plugin. It's weird though - after running through the debug batch file, it's much faster... But I had a problem activating a plugin again last night. Turns out it was due to the lag.
User avatar
Dustin Brown
 
Posts: 3307
Joined: Sun Sep 30, 2007 6:55 am

Post » Sun May 27, 2012 12:57 pm

I can't even get Wyre Bash to install, much lees run it. BOSS generates these three suggestions:

Unofficial Skyrim Patch.esp ActiveBash Tag suggestion(s): {{BASH: Delev, Relev}}
Real Wildlife Skyrim 0.1.esp ActiveBash Tag suggestion(s): {{BASH: Relev}}
SkyMoMod_lists.esp ActiveBash Tag suggestion(s): {{BASH: Delev, Relev}}

What do they mean? Is these anything I should do to make my game run better when using these?

I don't seem to be having any in game issues (excepth that First Lesson quest wouldn't run).

Thank you
User avatar
Alberto Aguilera
 
Posts: 3472
Joined: Wed Aug 29, 2007 12:42 am

Post » Sun May 27, 2012 7:25 pm

...
Skyrim should still work, but for Oblivion, I'm unable to move mod.. only to find if I restart bash, the mod is moved.
I'm confused how bash sorts mods, by boss.LoadOrder for Skyrim, but what for Oblivion? mtime?

Edit: Try this patch ,seems to work for Oblivion.
Spoiler
Index: basher.py===================================================================--- basher.py (revision 2367)+++ basher.py (working copy)@@ -1734,21 +1734,65 @@			 if GPath(thisFile) in bosh.modInfos.autoSorted:				 balt.showError(self,_(u"Auto-ordered files cannot be manually moved."))				 return-		start = indexes[0]-		stop = indexes[-1] + 1-		oldOrder = bosh.modInfos.LoadOrder-		# Dummy checks: can't move the game's master file anywhere else but position 0-		if newPos <= 0: return-		master = bosh.modInfos.masterName-		if master in oldOrder[start:stop]: return-		# List of names to move-		toMove = oldOrder[start:stop]-		# oldOrder will only have non-moving plugins now-		del oldOrder[start:stop]-		# create new order-		newOrder = oldOrder[:newPos] + toMove + oldOrder[newPos:]-		#--Save and Refresh-		bosh.boss.LoadOrder = newOrder+		if bosh.boss.LoadOrderMethod == bosh.bapi.BOSS_API_LOMETHOD_TEXTFILE:+			start = indexes[0]+			stop = indexes[-1] + 1+			oldOrder = bosh.modInfos.LoadOrder+			# Dummy checks: can't move the game's master file anywhere else but position 0+			if newPos <= 0: return+			master = bosh.modInfos.masterName+			if master in oldOrder[start:stop]: return+			# List of names to move+			toMove = oldOrder[start:stop]+			# oldOrder will only have non-moving plugins now+			del oldOrder[start:stop]+			# create new order+			newOrder = oldOrder[:newPos] + toMove + oldOrder[newPos:]+			#--Save and Refresh+			bosh.boss.LoadOrder = newOrder+		else:+			# Watch out for errors in range+			if newPos > indexes[0]:   inc = 1+			elif newPos < indexes[0]: inc = -1+			else: return+			howMany = indexes[-1]-indexes[0]+			# Make sure we don't go out of bounds+			target = indexes[0]+			thisFile = self.items[target]+			while True:+				if target < 0: break+				if target + howMany >= len(self.items) - inc: break+				if target == newPos: break+				swapFile = self.items[target]+				if thisFile.cext != swapFile.cext: break+				target += inc+				if inc == 1 and target + howMany <= indexes[-1]: return+				if inc == -1 and target >= indexes[0]: return+				   # Adjust for going up/down+			if inc > 0:+				target += howMany+			else:+				indexes.reverse()+			# Gather time codes+			i = indexes[0]+			times = []+			while i != target + inc:+				info = bosh.modInfos[self.items[i]]+				times.append(info.mtime)+				i += inc+			# Rearrange them for the new load order+			times.reverse()+			newThisTimes = times[:howMany+1]+			newSwapTimes = times[howMany+1:]+			times = newSwapTimes + newThisTimes+			# Apply new times+			i = indexes[0]+			while i != target + inc:+				info = bosh.modInfos[self.items[i]]+				info.setmtime(times.pop())+				i += inc+			# Refresh+			bosh.modInfos.refreshBapi(False,True)		 bosh.modInfos.refreshInfoLists()		 self.RefreshUI()
Just use the old code for dnd, and add bosh.modInfos.refreshBapi(False,True) to force refresh full load order.
It seems working though, but will break Lojack's fix. :sad:
That shouldn't work. The DnD issue is purely limited to the UI. Dnding a plugin then checking its position using another utility (eg. TES4Edit), shows that the plugin has been moved correctly. On UI refresh (eg. when reselecting the Bash window), the correct position is displayed. It's just that the first time the UI is refreshed it isn't done right. The UI's behaviour should not be affected by which game it is running for in such a manner.

So that points the finger at refreshInfoLists or RefreshUI not reading the load order correctly. It's not a BAPI issue, as I checked through BOSS that the LO is being read correctly. I think the problem is in refreshInfoLists' call to to self.ordered (bosh.py, 5202). ordered calls refreshBapi, but that only refreshes the active plugin list if plugins.txt has changed or loadorder.txt has changed (hasChanged, bosh.py, 3904). Neither of these are changed when changing load order in Oblivion.

This would also explain why there's no issue Dnding inactive plugins, and no issue on Skyrim. Thinking/testing as I type, which is why this reads in story mode. One solution would be to include a check for the timestamps of plugins in the Data folder - however this acts counter to the usage of BAPI, and so it would be better if no such check were necessary, and the code instead refreshed its BAPI data when it makes a change, knowing that it had done something that would require a refresh.

------------------------

tl;dr: Here's the fix for drag 'n' drop when running for Oblivion:
Index: basher.py===================================================================--- basher.py    (revision 2367)+++ basher.py    (working copy)@@ -1749,6 +1749,7 @@		 newOrder = oldOrder[:newPos] + toMove + oldOrder[newPos:]		 #--Save and Refresh		 bosh.boss.LoadOrder = newOrder+	    bosh.modInfos.refreshBapi(False, True)		 bosh.modInfos.refreshInfoLists()		 self.RefreshUI()

I did learn what the property thing with LoadOrder is about though - it's effectively shorthand for getter/setter functions, so setting LoadOrder sets the load order.
User avatar
Marguerite Dabrin
 
Posts: 3546
Joined: Tue Mar 20, 2007 11:33 am

Post » Sun May 27, 2012 9:40 am

That's it? A one line fix? *boggle*

Regardless of whether it should or shouldn't matter if the UI is in Skyrim or Oblivion, it does. I've personally verified that Oblivion's UI usage svcks balls but Skyrim's UI usage is buttery smooth, even when it was filled with 500 dummy files.

EDIT: Well, seems so. That does fix DnD positioning in Oblivion at least. No more ending up above the master file or in limbo somewhere requiring a program restart.

One small thing - even though the UI showed the dates changed, when I left the Bash window to type this up and then went back it whined about the mod I was moving around not being the right date and reset it back. So that didn't inform whatever mechanism the "lock load order" checkbox uses.
User avatar
Michael Korkia
 
Posts: 3498
Joined: Mon Jul 23, 2007 7:58 pm

Post » Sun May 27, 2012 9:40 am

That's it? A one line fix? *boggle*

Regardless of whether it should or shouldn't matter if the UI is in Skyrim or Oblivion, it does. I've personally verified that Oblivion's UI usage svcks balls but Skyrim's UI usage is buttery smooth, even when it was filled with 500 dummy files.

EDIT: Well, seems so. That does fix DnD positioning in Oblivion at least. No more ending up above the master file or in limbo somewhere requiring a program restart.

One small thing - even though the UI showed the dates changed, when I left the Bash window to type this up and then went back it whined about the mod I was moving around not being the right date and reset it back. So that didn't inform whatever mechanism the "lock load order" checkbox uses.
So the UI for Skyrim in general is not laggy, it's just when running for Oblivion? Interesting...

I hadn't considered Lock Load Order at all. There's probably a check that needs to happen somewhere for that. I'll take a look.
User avatar
Rhiannon Jones
 
Posts: 3423
Joined: Thu Sep 21, 2006 3:18 pm

Post » Sun May 27, 2012 4:31 am

tl;dr: Here's the fix for drag 'n' drop when running for Oblivion:
I did learn what the property thing with LoadOrder is about though - it's effectively shorthand for getter/setter functions, so setting LoadOrder sets the load order.
After refresh, it reverted to the old one. :sad:
If the one in #159 is too long, you can try this.
Spoiler
Index: basher.py===================================================================--- basher.py    (revision 2367)+++ basher.py    (working copy)@@ -1734,21 +1734,48 @@			 if GPath(thisFile) in bosh.modInfos.autoSorted:				 balt.showError(self,_(u"Auto-ordered files cannot be manually moved."))				 return-	    start = indexes[0]-	    stop = indexes[-1] + 1-	    oldOrder = bosh.modInfos.LoadOrder-	    # Dummy checks: can't move the game's master file anywhere else but position 0-	    if newPos <= 0: return-	    master = bosh.modInfos.masterName-	    if master in oldOrder[start:stop]: return-	    # List of names to move-	    toMove = oldOrder[start:stop]-	    # oldOrder will only have non-moving plugins now-	    del oldOrder[start:stop]-	    # create new order-	    newOrder = oldOrder[:newPos] + toMove + oldOrder[newPos:]-	    #--Save and Refresh-	    bosh.boss.LoadOrder = newOrder+	    # Watch out for errors in range+	    if newPos > indexes[0]:   inc = 1+	    elif newPos < indexes[0]: inc = -1+	    else: return+	    howMany = indexes[-1]-indexes[0]+	    # Make sure we don't go out of bounds+	    target = indexes[0]+	    thisFile = self.items[target]+	    while True:+		    if target < 0: break+		    if target + howMany >= len(self.items) - inc: break+		    if target == newPos: break+		    swapFile = self.items[target]+		    if thisFile.cext != swapFile.cext: break+		    target += inc+	    if inc == 1 and target + howMany <= indexes[-1]: return+	    if inc == -1 and target >= indexes[0]: return+	    # Adjust for going up/down+	    if inc > 0:+		    target += howMany+	    else:+		    indexes.reverse()+	    # Gather time codes+	    i = indexes[0]+	    times = []+	    while i != target + inc:+		    info = bosh.modInfos[self.items[i]]+		    times.append(info.mtime)+		    i += inc+	    # Rearrange them for the new load order+	    times.reverse()+	    newThisTimes = times[:howMany+1]+	    newSwapTimes = times[howMany+1:]+	    times = newSwapTimes + newThisTimes+	    # Apply new times+	    i = indexes[0]+	    while i != target + inc:+		    info = bosh.modInfos[self.items[i]]+		    info.setmtime(times.pop())+		    i += inc+	    # Refresh+	    bosh.modInfos.refreshBapi(False,True)		 bosh.modInfos.refreshInfoLists()		 self.RefreshUI()
Revert the code to old one, but adding bosh.modInfos.refreshBapi(False,True) to force refresh full load order. Oblivion works, but no much sure about Skyrim. If this doesn't work, then either use #159 or think up another one. I really dislike the #159 one.
As for UI lag, I'm feeling bash calls refresh or boss.dll too often. :wallbash:
User avatar
Sarah Kim
 
Posts: 3407
Joined: Tue Aug 29, 2006 2:24 pm

Post » Sun May 27, 2012 2:10 pm

After refresh, it reverted to the old one. :sad:
If the one in #159 is too long, you can try this.
Spoiler
Index: basher.py===================================================================--- basher.py	(revision 2367)+++ basher.py	(working copy)@@ -1734,21 +1734,48 @@			 if GPath(thisFile) in bosh.modInfos.autoSorted:				 balt.showError(self,_(u"Auto-ordered files cannot be manually moved."))				 return-		start = indexes[0]-		stop = indexes[-1] + 1-		oldOrder = bosh.modInfos.LoadOrder-		# Dummy checks: can't move the game's master file anywhere else but position 0-		if newPos <= 0: return-		master = bosh.modInfos.masterName-		if master in oldOrder[start:stop]: return-		# List of names to move-		toMove = oldOrder[start:stop]-		# oldOrder will only have non-moving plugins now-		del oldOrder[start:stop]-		# create new order-		newOrder = oldOrder[:newPos] + toMove + oldOrder[newPos:]-		#--Save and Refresh-		bosh.boss.LoadOrder = newOrder+		# Watch out for errors in range+		if newPos > indexes[0]:   inc = 1+		elif newPos < indexes[0]: inc = -1+		else: return+		howMany = indexes[-1]-indexes[0]+		# Make sure we don't go out of bounds+		target = indexes[0]+		thisFile = self.items[target]+		while True:+			if target < 0: break+			if target + howMany >= len(self.items) - inc: break+			if target == newPos: break+			swapFile = self.items[target]+			if thisFile.cext != swapFile.cext: break+			target += inc+		if inc == 1 and target + howMany <= indexes[-1]: return+		if inc == -1 and target >= indexes[0]: return+		# Adjust for going up/down+		if inc > 0:+			target += howMany+		else:+			indexes.reverse()+		# Gather time codes+		i = indexes[0]+		times = []+		while i != target + inc:+			info = bosh.modInfos[self.items[i]]+			times.append(info.mtime)+			i += inc+		# Rearrange them for the new load order+		times.reverse()+		newThisTimes = times[:howMany+1]+		newSwapTimes = times[howMany+1:]+		times = newSwapTimes + newThisTimes+		# Apply new times+		i = indexes[0]+		while i != target + inc:+			info = bosh.modInfos[self.items[i]]+			info.setmtime(times.pop())+			i += inc+		# Refresh+		bosh.modInfos.refreshBapi(False,True)		 bosh.modInfos.refreshInfoLists()		 self.RefreshUI()
Revert the code to old one, but adding bosh.modInfos.refreshBapi(False,True) to force refresh full load order. Oblivion works, but no much sure about Skyrim. If this doesn't work, then either use #159 or think up another one. I really dislike the #159 one.
As for UI lag, I'm feeling bash calls refresh or boss.dll too often. :wallbash:
Like I said to Arthmoor, I haven't considered Lock Load Order yet.

I'm sorry, but it will be a cold day in hell before I'd advocate the use of your solution, because that's running away from the problem instead of fixing it. Bash + BAPI is designed so that you don't have to have different code depending on which game it's running for - having different code quickly becomes a PITA in terms of maintenance. We're better off trying to find out why the new system isn't working right than trying to shoehorn part of the old system back in some of the time, IMHO. Though saying that the new system was shoehorned in and that's why we've got problems... I also realise that I'm heavily biased in this towards Bash + BAPI.

I believe I posted several paragraphs above concluding that UI lag is indeed due to excessive BAPI calls. That's why it doesn't affect Skyrim so much, because its masterlist is 6 times smaller.
User avatar
Alan Whiston
 
Posts: 3358
Joined: Sun May 06, 2007 4:07 pm

Post » Sun May 27, 2012 1:37 pm

I'm getting bad UI lag with Skyrim. I haven't tried running 296 against Oblivion. But the lag is so bad in Skyrim that when I activate a mod, the screen just flickers and I don't think it's working. Now I know to simply shut down Bash and start it up again and see if the mod got activated. It's inconsistent - sometimes it's fine.
User avatar
GPMG
 
Posts: 3507
Joined: Sat Sep 15, 2007 10:55 am

Post » Sun May 27, 2012 8:30 am

I'm getting bad UI lag with Skyrim. I haven't tried running 296 against Oblivion. But the lag is so bad in Skyrim that when I activate a mod, the screen just flickers and I don't think it's working. Now I know to simply shut down Bash and start it up again and see if the mod got activated. It's inconsistent - sometimes it's fine.
Stop contradicting me, dammit! :P

I wonder why you're seeing it and not Arthmoor?
User avatar
Robyn Howlett
 
Posts: 3332
Joined: Wed Aug 23, 2006 9:01 pm

Post » Sun May 27, 2012 11:06 am

Stop contradicting me, dammit! :tongue:
:(

:lol:
I wonder why you're seeing it and not Arthmoor?

Don't know. I just tried it now. It took 6s for the activation or deactivation to occur (6s to activate, then another 6s to deactivate). I believe this is what you found with your testing, isn't it? I believe I'm on Python 2.7 if that matters.
User avatar
Doniesha World
 
Posts: 3437
Joined: Sun Jan 07, 2007 5:12 pm

Post » Sun May 27, 2012 8:42 am

Stop contradicting me, dammit! :tongue:

I wonder why you're seeing it and not Arthmoor?

I get quite bad lag with the Skyrim UI aswell, often taking very long to activate/deactivate mods. Using the 2367 SVN. Sometimes it works really fast though
User avatar
Emily Jones
 
Posts: 3425
Joined: Mon Jul 17, 2006 3:33 pm

Post » Sun May 27, 2012 5:38 am

I'm using BUM with 295, I don't think I'm having a delay with activating/deactivating mods. I haven't tried it with Oblivion yet. I'm planning to on the next install of it,
User avatar
Brιonα Renae
 
Posts: 3430
Joined: Mon Oct 22, 2007 3:10 am

Post » Sun May 27, 2012 2:47 pm

295 is fine. I'm just getting it with 296 (SVN 2361, I believe). I still use 295.5 with Oblivion.
User avatar
Hannah Whitlock
 
Posts: 3485
Joined: Sat Oct 07, 2006 12:21 am

Post » Sun May 27, 2012 10:45 am

This digging imto the code is most welcome - keep up !

Still totallly busy

My 1,5 cents : at some point a change was introduced (by lojack) to make Bash notice changes in (mod) ini files and such (in the data dir) - which were not "refreshed" before- so have a look at that commit (it was quite a while ago)

Also taking into account vanilla oblivion files (bsaS and such) may contribute to the lag (there is a flag in the ini)
User avatar
BrEezy Baby
 
Posts: 3478
Joined: Sun Mar 11, 2007 4:22 am

Post » Sun May 27, 2012 3:02 pm

Stop contradicting me, dammit! :tongue:

I wonder why you're seeing it and not Arthmoor?
Mysteries of the universe. Skyrim UI responds instantaneously to everything I've thrown at it. Oblivion UI chugs badly. At least your one line fix solved the issue with drag n drop placement in Oblivion. So that's something :P
User avatar
Maria Garcia
 
Posts: 3358
Joined: Sat Jul 01, 2006 6:59 am

PreviousNext

Return to V - Skyrim