Latest Updates

From Archon Wiki
Revision as of 20:35, 20 September 2017 by Phil (talk | contribs)
Jump to navigation Jump to search

Multiplayer UI Callbacks

There are a number of callbacks for MP UI use

FUNCTION MULTIPLAYER_USERDATA_CALLBACK()
{
	// this should fill the work array with up to 16 values
	// generally this would be driven by custom UI
	// these values are then available in the working array immediately after the battle loads
}

FUNCTION MULTIPLAYER_USERDATA_TOOLTIP_CALLBACK()
{
	// this is called with the user data in the work array, and should fill the UI string with the appropriate tooltip
	// only adds a tooltip if it returns != 0
	return 1 ;
}

FUNCTION MULTIPLAYER_USERDATA_ACCEPT_CALLBACK()
{
	// this is called with the user data in the work array
	// if returns 0 then no side string is shown in the accept list
	// if returns !=0 then appends the contents of the first UI string to the list entry
	return 0 ;
}


WriteScenarioFile

This function can allow a scenario file to be created from the combination of a header string and the contents of a file. The command looks for the file in <campaign>/DATA/SCRIPTS and then DATA/SCRIPTS. It then creates a new .BSF file named for the scenario which is made up of the header followed by the contents of the template file.

The calling script must handle overwrite confirms etc (if needed).

//create a scenario file for the current editor scenario. The file is the headerSource followed by the contents of the templateFilename file. If overwrite !=0 then will overwrite any existing file, otherwise not. Returns -1 (failed), 0 (exists), 1 success. See wiki for more details.
WriteScenarioFile(templateFilename, headerSource, overwrite)

The header can include (e.g.) globals or defines which are then referenced in the template script.

Editor Font Customisation

You can now set up aliases for the fonts used in various modes for the main list (ScenEdTileList). Aliases must be in the global chunk (at the top) of the font file. They are of the form:

ALIAS <name>=<actualFont>

So an example (for the tile list in the editor) would be:

ALIAS SmoothFont_EdTileSet=MyEdTileFont

Note you will get an error if the aliased font does not exist. The currently defined aliases are

SmoothFont_EdTileSet
SmallFont_EdObjSet
Default_EdUnitSet
Default_EdBonusSet
Default_EdCarrySet

If no alias is defined, then the base (pre-underscore) name will be used for the font (e.g. SmoothFont for SmoothFont_EdTileSet).

Load/Save and Options Layout

If you include a screen whose root is called SystemMenu, then the default load/save etc functionality will be disabled somewhat. ESC will open this SystemMenu, or close either the LoadSave, Options, or SystemMenu screen (whichever is at the top level). This allows for finer control of the layout and use of the loadsave screens.

Note, you can open a correctly set up loadsave or options screen by using custom command values 0 or 1 respectively. E.g.

COMMAND CUSTOM 1 attached to a button will open the options screen.

Unit Orientation

If you include a TerrainFollow attrib in the squads file, then for units with this attrib as non-zero they will align themselves with the terrain (i.e. hills etc)

Formation Change

All units now call the formation callback, not just those with more than 1 man remaining.

Editor Unit Loading

Set the tweak EditorDefaultLoading to zero to require the CTRL key to load units onto other units. For editor ease of use for games where units cannot carry other units.

Editor Unit Values

You can now set up to 4 user values on units in the editor. These are stored in 4 attribs called System_EditorData0 to System_EditorData3. Users should set them onto the units in the editor in the usual way using SetAttrib. To facilitate editor functionality the new script command GetEditorLastUnit() is available.

Editor Display Callback

FUNCTION HELPER_UNIT_EDITOR_DISPLAY(side, unit)

This new function in the helper script is called for each unit on the map in the editor. If it returns non-zero then the system will include the contents of the first UI string in the information that is shown over the unit (e.g. Fixed, Carryover, etc).