Download

How to change maps list order

Hello my friends.

Just a small help needed here.

How can I change the order of the maps selection list in UDK (I am using UTGame). I want that the maps be listed ordered by name in ascendance, like:

Mission 1
Mission 2
Mission 3
Mission 4

But it is listing inverted, as you can see here on this screenshot:

https://lh3.googleusercontent.com/-R9enci_YVlY/X17LCJKO2kI/AAAAAAAAA4k/C-In71LcMucWk-zRj8Olib4XKKxkh-R2wCK8BGAsYHg/s0/2020-09-13.png

I have been reading through GFxUDKFrontEnd_MapSelect but I could not find anything related to order listing.

The closest I found was this function:


function UpdateListDataProvider()
{
local int i, ListCounter;
local GFxObject DataProvider;
local GFxObject TempObj;
local array<UDKUIResourceDataProvider> ProviderList;
local array<UTUIDataProvider_MapInfo> LocalMapList;

// fill the local map list
MapList.Length = 0;
LocalMapList.Length = 0;
class'UTUIDataStore_MenuItems'.static.GetAllResourceDataProviders(class'UTUIDataProvider_MapInfo', ProviderList);
for (i = 0; i < ProviderList.length; i++)
{
LocalMapList.AddItem(UTUIDataProvider_MapInfo(ProviderList*));
}

// No need to create an object if no maps are available.
if (LocalMapList.Length == 0)
{
return;
}

// Use a counter for the current list index so that items that are filtered are not added in
// the incorrect position.
ListCounter = 0;
DataProvider = Outer.CreateArray();
for (i = 0; i < LocalMapList.Length; i++)
{
if (!LocalMapList*.ShouldBeFiltered())
{
TempObj = CreateObject("Object");
TempObj.SetString("label", Caps(GetMapFriendlyName(LocalMapList*.MapName)));
TempObj.SetString("players", LocalMapList*.NumPlayers);

// If a preview image exists, use that.
if (LocalMapList*.PreviewImageMarkup != "")
{
TempObj.SetString("image", "img://" $ LocalMapList*.PreviewImageMarkup);
}
else
{
// Otherwise, use a placeholder "UDK" map image.
TempObj.SetString("image", "img://" $ class'GFxUDKFrontEnd_LaunchGame'.const.MarkupForNoMapImage);
}

DataProvider.SetElementObject(ListCounter++, TempObj);
MapList.AddItem(LocalMapList*);
}
}
ListMC.SetObject("dataProvider", DataProvider);
ListDataProvider = ListMC.GetObject("dataProvider");

ImgScrollerMC.SetObject("dataProvider", DataProvider);
ImgScrollerMC.SetFloat("selectedIndex", ListMC.GetFloat("selectedIndex"));
}

But anyway there is no reference to listing order.

Any help is welcome.

Thanks!

Its the way you are adding them in this line
LocalMapList.AddItem(UTUIDataProvider_MapInfo(ProviderList*));

got to UTUIDataProvider_MapInfo File and fix way you are filtering what will be in the list and in what order. they should add in the same order they are in your maps folder.

Thanks mate! I will try it.