Changeset - r6330:580a9866f98b
[Not reviewed]
master
0 1 0
peter1138 - 17 years ago 2007-03-18 22:11:24
peter1138@openttd.org
(svn r9302) -Codechange: Use cargo class to test for passengers when deciding on the livery scheme to use.
1 file changed with 2 insertions and 2 deletions:
0 comments (0 inline, 0 general)
src/vehicle.cpp
Show inline comments
 
@@ -2487,56 +2487,56 @@ static SpriteID GetEngineColourMap(Engin
 
							} 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;
 
				scheme = IsCargoInClass(cargo_type, CC_PASSENGERS) ? LS_BUS : LS_TRUCK;
 
				break;
 
			}
 

	
 
			case VEH_SHIP: {
 
				const ShipVehicleInfo *svi = ShipVehInfo(engine_type);
 
				if (cargo_type == CT_INVALID) cargo_type = svi->cargo_type;
 
				scheme = (cargo_type == CT_PASSENGERS) ? LS_PASSENGER_SHIP : LS_FREIGHT_SHIP;
 
				scheme = IsCargoInClass(cargo_type, CC_PASSENGERS) ? LS_PASSENGER_SHIP : LS_FREIGHT_SHIP;
 
				break;
 
			}
 

	
 
			case VEH_AIRCRAFT: {
 
				const AircraftVehicleInfo *avi = AircraftVehInfo(engine_type);
 
				if (cargo_type == CT_INVALID) cargo_type = CT_PASSENGERS;
 
				switch (avi->subtype) {
 
					case AIR_HELI: scheme = LS_HELICOPTER; break;
 
					case AIR_CTOL: scheme = LS_SMALL_PLANE; break;
 
					case AIR_CTOL | AIR_FAST: scheme = LS_LARGE_PLANE; break;
 
				}
 
				break;
 
			}
 
		}
 

	
 
		/* Switch back to the default scheme if the resolved scheme is not in use */
 
		if (!p->livery[scheme].in_use) scheme = LS_DEFAULT;
 
	}
 

	
 
	bool twocc = HASBIT(EngInfo(engine_type)->misc_flags, EF_USES_2CC);
 

	
 
	if (map == PAL_NONE) map = twocc ? (SpriteID)SPR_2CCMAP_BASE : (SpriteID)PALETTE_RECOLOR_START;
 

	
 
	map += p->livery[scheme].colour1;
0 comments (0 inline, 0 general)