Fallout 4
0 of 0

File information

Last updated

Original upload

Created by

InkBlack

Uploaded by

inkblack85

Virus scan

Safe to use

Tags for this mod

About this mod

For people using controllers, the DEF_UI style menu in the pip-boy has always been bugged. The "back" button is visually bugged & there's no way to back out of a submenu. This fixes those problems in Horizon's version of Pipboy_InvPage.swf.
This fix was originally made by u/ngliii74, they were cool to explain the fix on their mod page.

Requirements
Permissions and credits
Following the instructions to ngliii74's Controller Support Tweak, I just edited the Horizon v1.9 Pipboy_InvPage.swf to include this bug fix.

I tried to simplify the edits but it seems that ngliii74 found the simplest solutions, so cheers for that and showing us controller users some love.

I'm gonna run down a detailed explanation of the edit so Zawinul or others can fix this bug in the future.

I used JPEXS to edit the .swf. The "edit action script" worked great for this edit. However, I needed to save and reload the file after each edit. (this edit feature is experimental, afterall, so that's what you gotta do).

this bug fix consists of 3 edits to the original DEF_UI/Horizon Pipboy_InvPage.swf and one addition of a small piece of code which ngliii74 called "rollup" and I've used the same name. However, this fix does not include ngliii74's additional edit, which was to change the "back" button for Keyboard as well (this was their personal preference and not a bug fix proper).

For photos to help see what to do, check out ngliii74's original page


Here's how it's done.

find the following bit of code in Pipboy_InvPage.swf by using the search function in JPEXS. (copy this code to a .txt and save it for later)


private function lyrKeyUp(param1:KeyboardEvent) : *
{
if(param1.keyCode == Keyboard.SPACE)
{
if(this.subcat)
{
BGSExternalInterface.call(this.codeObj,"PlaySound","UIMenuQuantity");
this.subcat = false;
this.List_mc.filterer.itemFilter = this.oldfil;
this.List_mc.InvalidateData();
this.List_mc.scrollPosition = this.List_mc.maxScrollPosition;
this.SetButtons();
}
}
}

edit the above function by telling it to do "rollup" instead, like this: (save your edit, close JPEXS and reload the .swf to make the next edit)

private function lyrKeyUp(param1:KeyboardEvent) : *
{
if(param1.keyCode == Keyboard.SPACE)
{
this.RollUp();
}
}

(save your edit, close JPEXS and reload the .swf to make the next edit)

next Add the new function "rollup".( It's essentially the function from above). Scroll to the bottom of the Pipboy_InvPage.swf and add this new code to the bottom, and make sure it's added correctly, Not literally at the buttom.


private function RollUp() : *
{
if(this.subcat)
{
BGSExternalInterface.call(this.codeObj,"PlaySound","UIMenuQuantity");
this.subcat = false;
this.List_mc.filterer.itemFilter = this.oldfil;
this.List_mc.InvalidateData();
this.List_mc.scrollPosition = this.List_mc.maxScrollPosition;
this.SetButtons();
}
}


(this just takes the original function we told to do "rollup" and moves all it's arguments into Rollup.)
(FYI, it might seems like this step is redundant, but the fix wouldn't work without doing it this way)
(save your edit, close JPEXS and reload the .swf to make the next edit)

Now we have to make 2 more changes.

Find (in the same .swf):


  if(param1 == "LShoulder")
{
if(this.CycleApparelDamageButton.ButtonVisible)
{
this.CycleApparelDamage();
}
else if(this.ComponentToggleButton.ButtonVisible)
{
this.ToggleComponentViewMode();
}
}


and add this new argument, like so:

if(param1 == "LShoulder")
{
if(this.CycleApparelDamageButton.ButtonVisible)
{
this.CycleApparelDamage();
}
else if(this.ComponentToggleButton.ButtonVisible)
{
this.ToggleComponentViewMode();
}
else if(this.BackButton.ButtonVisible)
{
this.RollUp();
}
}


(save your edit, close JPEXS and reload the .swf to make the next edit)

Next, find the following info

  this.BackButton = new BSButtonHintData("$Back","Space","Space","Space",1,this.lyrKeyUp);

And change 3 things; "Space" "Space" and "lyrkeyup", you see?:

  this.BackButton = new BSButtonHintData("$Back","Space","PSN_L1","Xenon_L1",1,this.RollUp);

now is says "PSN_L1" "Xenon_L1" and "RollUp".
Save and your done!