src/newgrf.cpp
changeset 6701 d4c3cb84e494
parent 6699 ff3ea89c64e4
child 6702 57fdddcffcfc
equal deleted inserted replaced
6700:0cee66ecb04a 6701:d4c3cb84e494
   259 	if (str >= 0x200F && str <= 0x201F) return str + (STR_200F_TALL_OFFICE_BLOCK - 0x200F);
   259 	if (str >= 0x200F && str <= 0x201F) return str + (STR_200F_TALL_OFFICE_BLOCK - 0x200F);
   260 
   260 
   261 	return str;
   261 	return str;
   262 }
   262 }
   263 
   263 
       
   264 static uint8 MapDOSColour(uint8 colour)
       
   265 {
       
   266 	if (_use_dos_palette) return colour;
       
   267 
       
   268 	if (colour < 10) {
       
   269 		static uint8 dos_to_win_colour_map[] = { 0, 215, 216, 136, 88, 106, 32, 33, 40, 245 };
       
   270 		return dos_to_win_colour_map[colour];
       
   271 	}
       
   272 
       
   273 	if (colour >= 245 && colour < 254) return colour - 28;
       
   274 
       
   275 	return colour;
       
   276 }
       
   277 
   264 
   278 
   265 typedef bool (*VCI_Handler)(uint engine, int numinfo, int prop, byte **buf, int len);
   279 typedef bool (*VCI_Handler)(uint engine, int numinfo, int prop, byte **buf, int len);
   266 
   280 
   267 #define FOR_EACH_OBJECT for (i = 0; i < numinfo; i++)
   281 #define FOR_EACH_OBJECT for (i = 0; i < numinfo; i++)
   268 
   282 
  1603 		case 0x12: /* Base cargo price */
  1617 		case 0x12: /* Base cargo price */
  1604 			FOR_EACH_OBJECT cs[i].initial_payment = grf_load_dword(&buf);
  1618 			FOR_EACH_OBJECT cs[i].initial_payment = grf_load_dword(&buf);
  1605 			break;
  1619 			break;
  1606 
  1620 
  1607 		case 0x13: /* Colour for station rating bars */
  1621 		case 0x13: /* Colour for station rating bars */
  1608 			FOR_EACH_OBJECT cs[i].rating_colour = grf_load_byte(&buf);
  1622 			FOR_EACH_OBJECT cs[i].rating_colour = MapDOSColour(grf_load_byte(&buf));
  1609 			break;
  1623 			break;
  1610 
  1624 
  1611 		case 0x14: /* Colour for cargo graph */
  1625 		case 0x14: /* Colour for cargo graph */
  1612 			FOR_EACH_OBJECT cs[i].legend_colour = grf_load_byte(&buf);
  1626 			FOR_EACH_OBJECT cs[i].legend_colour = MapDOSColour(grf_load_byte(&buf));
  1613 			break;
  1627 			break;
  1614 
  1628 
  1615 		case 0x15: /* Freight status */
  1629 		case 0x15: /* Freight status */
  1616 			FOR_EACH_OBJECT cs[i].is_freight = grf_load_byte(&buf) != 0;
  1630 			FOR_EACH_OBJECT cs[i].is_freight = grf_load_byte(&buf) != 0;
  1617 			break;
  1631 			break;