(svn r19307) -Add: Let railtypes specify their own smallmap colour. No legend support yet.

This commit is contained in:
peter1138 2010-03-03 19:07:34 +00:00
parent c3d3e7d383
commit 1025d003b3
4 changed files with 30 additions and 0 deletions

View File

@ -2583,6 +2583,10 @@ static ChangeInfoResult RailTypeChangeInfo(uint id, int numinfo, int prop, ByteR
rti->acceleration_type = Clamp(buf->ReadByte(), 0, 2);
break;
case 0x16: // Map colour
rti->map_colour = MapDOSColour(buf->ReadByte());
break;
default:
ret = CIR_UNKNOWN;
break;
@ -2637,6 +2641,7 @@ static ChangeInfoResult RailTypeReserveInfo(uint id, int numinfo, int prop, Byte
case 0x11: // Curve speed advantage
case 0x12: // Station graphic
case 0x15: // Acceleration model
case 0x16: // Map colour
buf->ReadByte();
break;

View File

@ -203,6 +203,11 @@ struct RailtypeInfo {
*/
RailTypeLabel label;
/**
* Colour on mini-map
*/
byte map_colour;
/**
* Sprite groups for resolving sprites
*/

View File

@ -419,6 +419,14 @@ static inline uint32 GetSmallMapRoutesPixels(TileIndex tile, TileType t)
case STATION_DOCK: return MKCOLOUR(0x98989898);
default: return MKCOLOUR(0xFFFFFFFF);
}
} else if (t == MP_RAILWAY) {
AndOr andor = {
GetRailTypeInfo(GetRailType(tile))->map_colour * MKCOLOUR(0x00010100),
_smallmap_contours_andor[t].mand
};
const SmallMapColourScheme *cs = &_heightmap_schemes[_settings_client.gui.smallmap_land_colour];
return ApplyMask(cs->default_colour, &andor);
}
/* Ground colour */

View File

@ -90,6 +90,9 @@ static const RailtypeInfo _original_railtypes[] = {
/* rail type label */
'RAIL',
/* map colour */
0x0A,
{ NULL },
},
@ -170,6 +173,9 @@ static const RailtypeInfo _original_railtypes[] = {
/* rail type label */
'ELRL',
/* map colour */
0x0A,
{ NULL },
},
@ -246,6 +252,9 @@ static const RailtypeInfo _original_railtypes[] = {
/* rail type label */
'MONO',
/* map colour */
0x0A,
{ NULL },
},
@ -322,6 +331,9 @@ static const RailtypeInfo _original_railtypes[] = {
/* rail type label */
'MGLV',
/* map colour */
0x0A,
{ NULL },
},
};