Jump to content

LW Meld Timers


TerribleName

Recommended Posts

I've been searching for awhile now for how Long War inhibits the UI panels from showing up on meld containers. I know it was initially changed to permit 3 canisters per mission to spawn, but I'm fine with limiting it to 2. Every call to meld timers that I can find looks intact (moved the break in UISpecialMissionHUD.Init back to after the calls, literally replaced the entire XGBattle_SP.InitMeldContainers with vanilla code, commented out meld mutators, compared every other function I can find). Did LW make changes outside of XComGame.upk to the meld UI?



Link to comment
Share on other sites

The function we changed to inhibit the large meld timers in the upper right is UISpecialMissionHUD.Init.

 

Original code :

//foreach AllActors(class'XComMeldContainerActor', kMeldActor)
2F 61 30 20 0E 62 00 00 00 43 27 00 00 4A 16 E6 00 
 
    //m_kMeldStats = Spawn(class'UISpecialMissionHUD_MeldStats', self)
    0F 01 40 27 00 00 1C 12 FC FF FF 20 FB 27 00 00 17 4A 4A 4A 4A 4A 4A 16 
 
    //m_kMeldStats.Init(_controllerRef, _manager, self)
    19 01 40 27 00 00 1D 00 00 00 00 00 00 1B 8D 41 00 00 00 00 00 00 00 45 27 00 00 00 44 27 00 00 17 16 
 
    //goto J0xE6
    06 E6 00 
 
    //IN
    31 
 
    //IP
    30 

LW code :

//foreach AllActors(class'XComMeldContainerActor', kMeldActor)
2F 61 30 20 0E 62 00 00 00 43 27 00 00 4A 16 E6 00 
 
//goto J0xE6
06 E6 00 
 
//m_kMeldStats = Spawn(class'UISpecialMissionHUD_MeldStats', self)
0F 01 40 27 00 00 1C 12 FC FF FF 20 FB 27 00 00 17 4A 4A 4A 4A 4A 4A 16 
 
//m_kMeldStats.Init(_controllerRef, _manager, self)
19 01 40 27 00 00 1D 00 00 00 00 00 00 1B 8D 41 00 00 00 00 00 00 00 45 27 00 00 00 44 27 00 00 17 16 
 
//IN
31 
 
//IP
30 
The vanilla code is a little odd because it has a goto/break after the first iteration of the loop. This appears to be how Firaxis implemented a search for the only instance of the class'UISpecialMissionHUD_MeldStats Actor, then Spawn/Init.
All I did was move the goto/break to before the Spawn/Init, thus disabling the UIHUD.
Edited by Amineri
Link to comment
Share on other sites

Then something else in the changes made since the original EW LW release has permanently broken the meld UI, because putting the break statement back was the first thing I did, but the big meld panels still won't turn back on. No idea why. I was hoping maybe it was because those UI elements were repurposed or commented out somewhere else I hadn't thought to look and you had the design notes documenting it. Oh well.

 

Edit: Do you know what changes were made in UICollection_Tactical_SF.upk? I assume thats the file that actually holds all of the panel elements and it gets overwritten when installing Long War, starting in B10. I don't know how to deal with SF files so I'm at a loss for how to poke around inside them.

Edited by TerribleName
Link to comment
Share on other sites

Ah, there was another chunk of code related to the big meld timers, it seems.

 

In XComPresentationLayer.NeedsSpecialMission.

 

Vanilla :

//foreach AllActors(class'XComMeldContainerActor', kMeldActor)
2F 61 30 20 0E 62 00 00 00 39 75 00 00 4A 16 AC 00 
 
    //IP
    30 
 
    //return true
    04 27 
 
    //IN
    31 
 
    //IP
    30 
LW

//foreach AllActors(class'XComMeldContainerActor', kMeldActor)
2F 61 30 20 0E 62 00 00 00 39 75 00 00 4A 16 AC 00 
 
    //null ops
    0B 0B 0B  
 
    //IN
    31 
 
    //IP
    30 

 

Link to comment
Share on other sites

As proven by the snapshot below...

 

http://s17.postimg.org/6n6o7sjj3/Meld_Timers_RE_Activated.png

 

Following Amineri's hex-code hints given above, i was able to create a PatcherGui fix for the stuff!

And *THAT's* what i was also missing greatly -- the after action report "Collected Box"!! :D

 

Code below...

MOD_NAME = Meld Timers Re-Activated
AUTHOR = Zyxpsilon (Referenced by Amineri)
DESCRIPTION = Two are simply better than none!

UPK_FILE=XComGame.UPK

[BEFORE_HEX]
2F 61 30 20 0E 62 00 00 00 43 27 00 00 4A 16 E6 00 06 E6 00 0F 01 40 27 00 00 1C 12 FC FF FF 20 FB 27 00 00 17 4A 4A 4A 4A 4A 4A 16 19 01 40 27 00 00 1D 00 00 00 00 00 00 1B 8D 41 00 00 00 00 00 00 00 45 27 00 00 00 44 27 00 00 17 16 31 30
[AFTER_HEX]
2F 61 30 20 0E 62 00 00 00 43 27 00 00 4A 16 E6 00 0F 01 40 27 00 00 1C 12 FC FF FF 20 FB 27 00 00 17 4A 4A 4A 4A 4A 4A 16 19 01 40 27 00 00 1D 00 00 00 00 00 00 1B 8D 41 00 00 00 00 00 00 00 45 27 00 00 00 44 27 00 00 17 16 06 E6 00 31 30

[BEFORE_HEX]
2F 61 30 20 0E 62 00 00 00 39 75 00 00 4A 16 AC 00 0B 0B 0B 31 30
[AFTER_HEX]
2F 61 30 20 0E 62 00 00 00 39 75 00 00 4A 16 AC 00 30 04 27 31 30

Thanks a lot, beauty!

Edited by Zyxpsilon
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...