UpdateUserStringFromUI and GetUIEditboxToInt Script Commands
//take the UI string from an editbox object and update it if it has changed (or is new). Return 1 if a change has been made, zero otherwise. UpdateUserStringFromUI(objectName, tag) //takes the contents of the UI editbox and converts them to a string. If there are any non-numeric characters in the string, then the return value is invalidValue. Skips leading and trailing whitespace. GetUIEditboxToInt(objectName, invalidValue)
Review Battlefield After Battle
Tile. You can now set up the UI to allow the user to review the battlefield after a battle ends. To do this you should:
- Add a button the the EndBattle control called EndBattleReview
- Create a new UI screen to allow the user to exit after they have finished reviewing. This screen should be called EndReview, and should include a button named EndReviewOK. EndReview should not be modal, but should have the same HANDLER as EndBattle (DeployHandler).
This should allow the player to review the battlefield, with all units shown.
New script command which moves the viewable area (if needed) to show the given item.
//move the UI listbox to show the given item index. Scrolls unless immediate is non-zero, in which case it instantly changes the view ShowUIListboxItem(objectName, index, [immediate])
GetString Control Change
If the UI object GetStringTitle exists, then the title text for the system GetString control will be placed there, rather than in the title of the GetString object window as per default.
Tile. Unit script function that is called each time a unit is moved by dragging when in deployment.
FUNCTION DEPLOY_DRAG_CALLBACK(me, tilex, tiley)
Multiline for UI Edit Controls
Adding a CHATMODE tag to edit controls will now allow them to contain more than one line.
Further INCLUDE Functionality for UI Files
You can now use a prefix to rename included UI file components, allowing reuse of UI fragments. See here:UI
User Music Control
Tile. You can alter the music that is playing using the new script command
//switch to the denoted music track. Must be [0,5] currently as per the MUSIC.TXT file order. SwitchMusic(track)
Can be combined with the new tweak DisableDefaultMusic, which stops all hardcoded changes of music (NOTE: other than the initial playing of the main menu music, and some other changes back to the main menu music when internal code takes the UI back to the main menu).
It is also worth reminding of the existence of the SetMusicFile command
//set a music file to be loaded and used. Looks in local then core files. A ? as filename means leave the existing music entry. SetMusicFile(filename)
New Script Commands: GetMapStyle & DeleteUserCampaign
//place the current map style string into the first work string. GetMapStyle() //delete a user campaign. The filename is expected to include the CAMPAIGNS or MULTIPLAYER path element depending upon where the campaign is. E.g. MULTIPLAYER/MYCAMPAIGN. NOTE: it is good practice to prompt the user to confirm deletion. DeleteUserCampaign(filename)
Including Templates in UI Files
You can now include other files in UI files. Note this should be used with care as objects with the same names are still prohibited. All includes must be the first thing in the UI file. Lines must be of the form
The template files must be in DATA/UI/TEMPLATES
AreNewDownloads Script Command
//returns 1 if there are new user content downloads available, 0 otherwise AreNewDownloads()
Button Text Colour Updates
You can now define different colours for buttons to use when they are being actioned. These colours can be set globally in the UIDEFAULTS.TXT file using
BUTTONOVERCOLOUR <hex> BUTTONDOWNCOLOUR <hex> BUTTONDISABLEDCOLOUR <hex>
You can also over-ride these values on a per-button basis in the UI text file using
OVERCOLOUR <hex> DOWNCOLOUR <hex> DISABLEDCOLOUR <hex>
Tile. There is now a callback when the editor starts. This can be located in either or both the CORE.BSF and scenario scripts. The function is of the same form as PRESTARTBATTLE: