 About

On the minimap the units are displayed as icons, which also appear when you zoom out. Mod developers can set icons for different types of units (such as in the picture above, with different icons for land, air, sea, and commanders), or go so far as to give every unit its own icon.

The different types icons will be shown for friendly units, and enemy units within Line Of Sight. For enemy units in radar range Spring will use the 'default' icon.
How to specify different types of icons

The custom icons specification, gamedata/icontypes.tdf, should look like this:

[icontypes]
{
	[default]
	{
		// Spring replaces missing or incorrect bitmaps by the radar dot. 
		size=1;
		radiusadjust=1;
		distance=1;
	}
	[type1]
	{
		bitmap=icons/type1.bmp;
		size=2;
		radiusadjust=0;
		distance=3;
	}
	[type2]
	{
		bitmap=icons/type2.bmp;
		size=2;
		radiusadjust=0;
		distance=0.5;
	}
	// other type definitions may follow 
}

bitmap is the location of the custom icon bitmap. If it is missing or incorrect, Spring replaces it with the standard radar dot. The bitmap will get blended with the team color, so there is no special team color channel. In order to look nice, the bitmap will need to have an alpha channel for transparancy.

size is a number that acts as multiplier for the icon size. The bigger the number, the bigger the icon will be. Default is 1.

radiusadjust is a boolean (0 or 1) that tells Spring whether or not the icon should scale with the unit radius. Default is 0 (false).

distance is a number that acts as a multiplier for the distance at which the unit will show up as an icon. The bigger the number, the further away the camera has to be from the unit for it to turn into an icon. Default is 1.

The "default" icon type is a bit special; every unit that misses an 'iconType' tag (see below) or has one that doesn't match a type specified in gamedate/icontypes.tdf gets assigned to the "default" type. If the "default" type is not specified, Spring will create it with the default values.

Furthermore, enemy units that are within radar range, but not in your Line Of Sight, will be shown as the default icon. Thus if there is a bitmap specified for the "default" icon type it will override the standard radar blip.
How to assign icon types to units

To assign units to a specific icon type, add the following line to their FBI file:

iconType=type1;

You can replace "type1" with icontypes defined in gamedata/icontypes.tdf. If the tag "iconType" is missing, Spring sets it to the icontype "default".


Example files

You can grab http://teake.home.fmf.nl/temp/unit_icons.zip21 as a starting set for unit icons.

Mod Development:Cursors

Cursors for Spring are stored in the anims subdirectory. They are simply in Windows .BMP format. To make animated cursors, just make a sequence where the filenames start with '_0' at the end of the first in the sequence, going on sequentially until the last frame.

Here's a list of the various cursor names used in the game:
Sequence name 	Description
cursorattack_0 	Attack Command Cursor
cursorcapture_0 	Capture Command Cursor
cursordefend_0 	Guard Command Cursor
cursormove_0 	Move Command Cursor
cursornormal_0 	Default (unactive) cursor
cursorpatrol_0 	Patrol Command Cursor
cursorpickup_0 	Load Command Cursor
cursorreclamate_0 	Reclaim Command Cursor
cursorrepair_0 	Repair Command Cursor
cursorrevive_0 	Revive (resurrect) Command Cursor
cursorunload_0 	Unload Command Cursor

Cursors should generally be limited to 16x16 to 32x32 pixels in size, but there is no limit. To make transparent sections, use the color (in RGB order) 84, 84, 252. Even if there is only one cursor in your sequence, it must have the _0 at the end of its name. All cursors must also be present in one form or another, even if they are not used by your mod or else Spring will whine. 


