Jump to content
⚠ Known Issue: Media on User Profiles ×

UI Mod - Up to 6 Interceptors/Continent


Amineri

Recommended Posts

I rewrote the offset code, fixing their bug, and now the shiplist is properly centered. However, the default spacing does not leave enough room for six interceptor window sprites, so I'll have to rework them a bit to squeeze them together.

 

I'm getting about the top 1/3 of the sixth interceptor window at the bottom. Making progress!

Link to comment
Share on other sites

I'm not 100% sure, but I think the the SWF files and UE conspire between them to rescale everything to make it resolution independent. Actionscript places items at a 1/20 pixel accuracy, which allows for subpixel shifts (changes the aliasing on the edges).

 

Properly speaking, the defined numbers between the ship launch sprites was 2275 twips (1 twip ~= 1/20 pixel), which should have been 138.75 pixels between windows. However, at my 1920x1080 resolution, there were ~203 pixels between sprites, which means that something somewhere is rescaling for resolution.

 

Anyhow, I squeezed the windows together, so that the combined sprite was around 82% of the original size. I also reversed the depth order so that the on mouse-over, the bottom "CLICK TO LAUNCH" text goes in front of the window below.

 

Here is the final result! ((It would be better without that "expanding window" thingie, but I can live with it as it is))

 

It looks beautiful for six interceptors, but my centering code rewrite isn't doing the correct thing -- with fewer interceptors, the display is shifted further up. Sigggghhhhh.....

 

http://wiki.tesnexus.com/images/7/7d/Six_Ints_Launch_Window_Final.jpg

Edited by Amineri
Link to comment
Share on other sites

Shouldn't this be as easy as concatenating a string value onto the ship or weapon string when AS_AddShip is called in UIMissionControl_UFORadarContactAlert ?

I'm looking at the function:

 

simulated function UpdateData()
{
local TIntJet kJet;

global.UpdateData();
// End:0x18A
foreach m_kInterceptMgr.m_kSquadron.arrJets(kJet)
{
AS_AddShip(kJet.txtJetName.StrValue, kJet.txtOffense.StrValue, class'UIUtilities'.static.GetHTMLColoredText(kJet.txtStatus.StrValue, kJet.txtStatus.iState), class'UIUtilities'.static.GetShipIconLabel(kJet.EShipType), kJet.iState == 1);
}
// End:0x1DA
if(manager.IsMouseActive())
{
AS_ActivateShipList(Caps(m_kInterceptMgr.m_strLabelLaunchFightersPC));
}
// End:0x204
else
{
AS_ActivateShipList(Caps(m_kInterceptMgr.m_strLabelLaunchFighters));
}
// End:0x233
if(!manager.IsMouseActive())
{
RealizeSelected(0);
}
//return;
}

in the state ShipSelection. I think removing the conditional as to which string get selected (based on having a mouse or not) should be safe. You could then concatenate the number of kills onto either the kJet.txtJetName.StrValue or kJet.txtOffense.StrValue, along with some descriptive text.

 

Even better, in my opinion, would be displaying the overall hit% chance with the weapon, taking into account both the weapon accuracy and the accuracy gained from the ship/pilot experience.

Link to comment
Share on other sites

Okay, I finally got the offset issue figured out. The positioning is a little bit lower than you'd expect if there is only one interceptor available (for some reason the code has a conditional with a completely different formula for 1 interceptor than for >1), but it's definitely usable and not terribly jarring, I don't think.

 

From here I'm going to start in on making the wiki page describing all of the changes needed. For whatever reason the coders seems deadset on hard-coding in the value "4" for max interceptors (in the upk code), so there are no less than 12 separate small edits needed to change the value everywhere. Zany-ness!

 

I'll put up screenshots with all possible number of interceptors with the wiki page.

 

Thank you everyone, for the help and encouragement :)

Link to comment
Share on other sites

@ Amineri

 

I don't know if it's fixable, but the sprites for the interceptors on the Situation Room map are contained in swf #35 (command135.swf), sprite 27, called from I believe DoInitAction 174. I believe you said that it only displays one interceptor if you have more than four, so perhaps a fix would be to make it show four if there are four or more.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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