Changeset - r4604:56d029090928
[Not reviewed]
master
0 4 0
peter1138 - 18 years ago 2006-09-15 17:36:54
peter1138@openttd.org
(svn r6456) - Replace single colour scheme for passenger wagons with separate schemes for each of steam, diesel or electric engines. Savegames from the previous revision will not load.
4 files changed with 21 insertions and 6 deletions:
0 comments (0 inline, 0 general)
lang/english.txt
Show inline comments
 
@@ -2153,49 +2153,51 @@ STR_COMPANY_PASSWORD_TOOLTIP            
 
STR_SET_COMPANY_PASSWORD                                        :Set company password
 
STR_7073_WORLD_RECESSION_FINANCIAL                              :{BIGFONT}{BLACK}World Recession!{}{}Financial experts fear worst as economy slumps!
 
STR_7074_RECESSION_OVER_UPTURN_IN                               :{BIGFONT}{BLACK}Recession Over!{}{}Upturn in trade gives confidence to industries as economy strengthens!
 
STR_7075_TOGGLE_LARGE_SMALL_WINDOW                              :{BLACK}Toggle large/small window size
 
STR_7076_COMPANY_VALUE                                          :{GOLD}Company value: {WHITE}{CURRENCY64}
 
STR_7077_BUY_25_SHARE_IN_COMPANY                                :{BLACK}Buy 25% share in company
 
STR_7078_SELL_25_SHARE_IN_COMPANY                               :{BLACK}Sell 25% share in company
 
STR_7079_BUY_25_SHARE_IN_THIS_COMPANY                           :{BLACK}Buy 25% share in this company
 
STR_707A_SELL_25_SHARE_IN_THIS_COMPANY                          :{BLACK}Sell 25% share in this company
 
STR_707B_CAN_T_BUY_25_SHARE_IN_THIS                             :{WHITE}Can't buy 25% share in this company...
 
STR_707C_CAN_T_SELL_25_SHARE_IN                                 :{WHITE}Can't sell 25% share in this company...
 
STR_707D_OWNED_BY                                               :{WHITE}({COMMA}% owned by {COMPANY})
 
STR_707E_OWNED_BY_OWNED_BY                                      :{WHITE}({COMMA}% owned by {COMPANY}{}   {COMMA}% owned by {COMPANY})
 
STR_707F_HAS_BEEN_TAKEN_OVER_BY                                 :{BLACK}{BIGFONT}{COMPANY} has been taken over by {COMPANY}!
 
STR_7080_PROTECTED                                              :{WHITE}This company is not old enough to trade shares yet...
 

	
 
STR_LIVERY_DEFAULT                                              :Standard Livery
 
STR_LIVERY_STEAM                                                :Steam Engine
 
STR_LIVERY_DIESEL                                               :Diesel Engine
 
STR_LIVERY_ELECTRIC                                             :Electric Engine
 
STR_LIVERY_MONORAIL                                             :Monorail Engine
 
STR_LIVERY_MAGLEV                                               :Maglev Engine
 
STR_LIVERY_DMU                                                  :DMU
 
STR_LIVERY_EMU                                                  :EMU
 
STR_LIVERY_PASSENGER_WAGON                                      :Passenger Coach
 
STR_LIVERY_PASSENGER_WAGON_STEAM                                :Passenger Coach (Steam)
 
STR_LIVERY_PASSENGER_WAGON_DIESEL                               :Passenger Coach (Diesel)
 
STR_LIVERY_PASSENGER_WAGON_ELECTRIC                             :Passenger Coach (Electric)
 
STR_LIVERY_FREIGHT_WAGON                                        :Freight Wagon
 
STR_LIVERY_BUS                                                  :Bus
 
STR_LIVERY_TRUCK                                                :Lorry
 
STR_LIVERY_PASSENGER_SHIP                                       :Passenger Ferry
 
STR_LIVERY_FREIGHT_SHIP                                         :Freight Ship
 
STR_LIVERY_HELICOPTER                                           :Helicopter
 
STR_LIVERY_SMALL_PLANE                                          :Small Aeroplane
 
STR_LIVERY_LARGE_PLANE                                          :Large Aeroplane
 

	
 
##id 0x8000
 
STR_8000_KIRBY_PAUL_TANK_STEAM                                  :Kirby Paul Tank (Steam)
 
STR_8001_MJS_250_DIESEL                                         :MJS 250 (Diesel)
 
STR_8002_PLODDYPHUT_CHOO_CHOO                                   :Ploddyphut Choo-Choo
 
STR_8003_POWERNAUT_CHOO_CHOO                                    :Powernaut Choo-Choo
 
STR_8004_MIGHTYMOVER_CHOO_CHOO                                  :Mightymover Choo-Choo
 
STR_8005_PLODDYPHUT_DIESEL                                      :Ploddyphut Diesel
 
STR_8006_POWERNAUT_DIESEL                                       :Powernaut Diesel
 
STR_8007_WILLS_2_8_0_STEAM                                      :Wills 2-8-0 (Steam)
 
STR_8008_CHANEY_JUBILEE_STEAM                                   :Chaney 'Jubilee' (Steam)
 
STR_8009_GINZU_A4_STEAM                                         :Ginzu 'A4' (Steam)
 
STR_800A_SH_8P_STEAM                                            :SH '8P' (Steam)
 
STR_800B_MANLEY_MOREL_DMU_DIESEL                                :Manley-Morel DMU (Diesel)
 
STR_800C_DASH_DIESEL                                            :'Dash' (Diesel)
 
STR_800D_SH_HENDRY_25_DIESEL                                    :SH/Hendry '25' (Diesel)
livery.h
Show inline comments
 
/* $Id$ */
 

	
 
#ifndef LIVERY_H
 
#define LIVERY_H
 

	
 

	
 
/* List of different livery schemes. */
 
typedef enum LiverySchemes {
 
	LS_DEFAULT,
 

	
 
	/* Rail vehicles */
 
	LS_STEAM,
 
	LS_DIESEL,
 
	LS_ELECTRIC,
 
	LS_MONORAIL,
 
	LS_MAGLEV,
 
	LS_DMU,
 
	LS_EMU,
 
	LS_PASSENGER_WAGON,
 
	LS_PASSENGER_WAGON_STEAM,
 
	LS_PASSENGER_WAGON_DIESEL,
 
	LS_PASSENGER_WAGON_ELECTRIC,
 
	LS_FREIGHT_WAGON,
 

	
 
	/* Road vehicles */
 
	LS_BUS,
 
	LS_TRUCK,
 

	
 
	/* Ships */
 
	LS_PASSENGER_SHIP,
 
	LS_FREIGHT_SHIP,
 

	
 
	/* Aircraft */
 
	LS_HELICOPTER,
 
	LS_SMALL_PLANE,
 
	LS_LARGE_PLANE,
 

	
 
	LS_END
 
} LiveryScheme;
 

	
 

	
 
/* List of different livery classes, used only by the livery GUI. */
 
typedef enum LiveryClasses {
 
	LC_OTHER,
 
	LC_RAIL,
 
	LC_ROAD,
player_gui.c
Show inline comments
 
@@ -248,58 +248,58 @@ void ShowPlayerFinances(PlayerID player)
 
/* List of colours for the livery window */
 
static const StringID _colour_dropdown[] = {
 
	STR_00D1_DARK_BLUE,
 
	STR_00D2_PALE_GREEN,
 
	STR_00D3_PINK,
 
	STR_00D4_YELLOW,
 
	STR_00D5_RED,
 
	STR_00D6_LIGHT_BLUE,
 
	STR_00D7_GREEN,
 
	STR_00D8_DARK_GREEN,
 
	STR_00D9_BLUE,
 
	STR_00DA_CREAM,
 
	STR_00DB_MAUVE,
 
	STR_00DC_PURPLE,
 
	STR_00DD_ORANGE,
 
	STR_00DE_BROWN,
 
	STR_00DF_GREY,
 
	STR_00E0_WHITE,
 
	INVALID_STRING_ID
 
};
 

	
 
/* Association of liveries to livery classes */
 
static const LiveryClass livery_class[LS_END] = {
 
	LC_OTHER,
 
	LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL,
 
	LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL,
 
	LC_ROAD, LC_ROAD,
 
	LC_SHIP, LC_SHIP,
 
	LC_AIRCRAFT, LC_AIRCRAFT, LC_AIRCRAFT,
 
};
 

	
 
/* Number of liveries in each class, used to determine the height of the livery window */
 
static const byte livery_height[] = {
 
	1,
 
	9,
 
	11,
 
	2,
 
	2,
 
	3,
 
};
 

	
 
typedef struct livery_d {
 
	uint32 sel;
 
	LiveryClass livery_class;
 
} livery_d;
 
assert_compile(WINDOW_CUSTOM_SIZE >= sizeof(livery_d));
 

	
 
static void ShowColourDropDownMenu(Window *w, uint32 widget)
 
{
 
	uint32 used_colours = 0;
 
	const Livery *livery;
 
	LiveryScheme scheme;
 

	
 
	/* Disallow other player colours for the primary colour */
 
	if (HASBIT(WP(w, livery_d).sel, LS_DEFAULT) && widget == 10) {
 
		const Player *p;
 
		FOR_ALL_PLAYERS(p) {
 
			if (p->is_active && p->index != _local_player) SETBIT(used_colours, p->player_color);
 
		}
 
	}
vehicle.c
Show inline comments
 
@@ -2301,50 +2301,61 @@ UnitID GetFreeUnitNumber(byte type)
 

	
 
	return unit;
 
}
 

	
 
static PalSpriteID GetEngineColourMap(EngineID engine_type, PlayerID player, EngineID parent_engine_type, CargoID cargo_type)
 
{
 
	SpriteID map;
 
	const Player *p = GetPlayer(player);
 
	LiveryScheme scheme = LS_DEFAULT;
 

	
 
	/* The default livery is always available for use, but its in_use flag determines
 
	 * whether any _other_ liveries are in use. */
 
	if (p->livery[LS_DEFAULT].in_use) {
 
		/* Determine the livery scheme to use */
 
		switch (GetEngine(engine_type)->type) {
 
			case VEH_Train: {
 
				switch (_engine_info[engine_type].railtype) {
 
					case RAILTYPE_RAIL:
 
					case RAILTYPE_ELECTRIC:
 
					{
 
						const RailVehicleInfo *rvi = RailVehInfo(engine_type);
 

	
 
						if (cargo_type == CT_INVALID) cargo_type = rvi->cargo_type;
 
						if (rvi->flags & RVI_WAGON) {
 
							scheme = (cargo_type == CT_PASSENGERS || cargo_type == CT_MAIL || cargo_type == CT_VALUABLES) ?
 
								LS_PASSENGER_WAGON : LS_FREIGHT_WAGON;
 
							if (cargo_type == CT_PASSENGERS || cargo_type == CT_MAIL || cargo_type == CT_VALUABLES) {
 
								if (parent_engine_type == INVALID_ENGINE) {
 
									scheme = LS_PASSENGER_WAGON_STEAM;
 
								} else {
 
									switch (RailVehInfo(parent_engine_type)->engclass) {
 
										case 0: scheme = LS_PASSENGER_WAGON_STEAM; break;
 
										case 1: scheme = LS_PASSENGER_WAGON_DIESEL; break;
 
										case 2: scheme = LS_PASSENGER_WAGON_ELECTRIC; break;
 
									}
 
								}
 
							} else {
 
								scheme = LS_FREIGHT_WAGON;
 
							}
 
						} else {
 
							bool is_mu = HASBIT(_engine_info[engine_type].misc_flags, EF_RAIL_IS_MU);
 

	
 
							switch (rvi->engclass) {
 
								case 0: scheme = LS_STEAM; break;
 
								case 1: scheme = is_mu ? LS_DMU : LS_DIESEL; break;
 
								case 2: scheme = is_mu ? LS_EMU : LS_ELECTRIC; break;
 
							}
 
						}
 
						break;
 
					}
 

	
 
					case RAILTYPE_MONO: scheme = LS_MONORAIL; break;
 
					case RAILTYPE_MAGLEV: scheme = LS_MAGLEV; break;
 
				}
 
				break;
 
			}
 

	
 
			case VEH_Road: {
 
				const RoadVehicleInfo *rvi = RoadVehInfo(engine_type);
 
				if (cargo_type == CT_INVALID) cargo_type = rvi->cargo_type;
 
				scheme = (cargo_type == CT_PASSENGERS) ? LS_BUS : LS_TRUCK;
 
				break;
 
			}
0 comments (0 inline, 0 general)