(svn r3107) -NewGRF: Move train y-position offset adjustment to remove code duplication, and make it apply only to vehicles with a custom image.
This commit is contained in:
		@@ -364,6 +364,8 @@ int GetTrainImage(const Vehicle *v, byte direction)
 | 
				
			|||||||
	return base;
 | 
						return base;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int _traininfo_vehicle_pitch;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void DrawTrainEngine(int x, int y, EngineID engine, uint32 image_ormod)
 | 
					void DrawTrainEngine(int x, int y, EngineID engine, uint32 image_ormod)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	const RailVehicleInfo *rvi = RailVehInfo(engine);
 | 
						const RailVehicleInfo *rvi = RailVehInfo(engine);
 | 
				
			||||||
@@ -373,7 +375,11 @@ void DrawTrainEngine(int x, int y, EngineID engine, uint32 image_ormod)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if (is_custom_sprite(img)) {
 | 
						if (is_custom_sprite(img)) {
 | 
				
			||||||
		image = GetCustomVehicleIcon(engine, 6);
 | 
							image = GetCustomVehicleIcon(engine, 6);
 | 
				
			||||||
		if (image == 0) img = orig_rail_vehicle_info[engine].image_index;
 | 
							if (image == 0) {
 | 
				
			||||||
 | 
								img = orig_rail_vehicle_info[engine].image_index;
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								y += _traininfo_vehicle_pitch;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (image == 0) {
 | 
						if (image == 0) {
 | 
				
			||||||
		image = (6 & _engine_sprite_and[img]) + _engine_sprite_base[img];
 | 
							image = (6 & _engine_sprite_and[img]) + _engine_sprite_base[img];
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -188,7 +188,7 @@ static void engine_drawing_loop(int *x, int *y, int *pos, int *sel,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		if (IS_INT_INSIDE(--*pos, -show_max, 0)) {
 | 
							if (IS_INT_INSIDE(--*pos, -show_max, 0)) {
 | 
				
			||||||
			DrawString(*x + 59, *y + 2, GetCustomEngineName(i), *sel == 0 ? 0xC : 0x10);
 | 
								DrawString(*x + 59, *y + 2, GetCustomEngineName(i), *sel == 0 ? 0xC : 0x10);
 | 
				
			||||||
			DrawTrainEngine(*x + 29, *y + 6 + _traininfo_vehicle_pitch, i,
 | 
								DrawTrainEngine(*x + 29, *y + 6, i,
 | 
				
			||||||
				SPRITE_PALETTE(PLAYER_SPRITE_COLOR(_local_player)));
 | 
									SPRITE_PALETTE(PLAYER_SPRITE_COLOR(_local_player)));
 | 
				
			||||||
			*y += 14;
 | 
								*y += 14;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -358,7 +358,7 @@ static void DrawTrainImage(const Vehicle *v, int x, int y, int count, int skip,
 | 
				
			|||||||
			if (x + width + 4 <= max_x) {
 | 
								if (x + width + 4 <= max_x) {
 | 
				
			||||||
				if (v->vehstatus & VS_CRASHED)
 | 
									if (v->vehstatus & VS_CRASHED)
 | 
				
			||||||
					ormod = PALETTE_CRASH;
 | 
										ormod = PALETTE_CRASH;
 | 
				
			||||||
				DrawSprite(image | ormod, x + 14, y + 6 + _traininfo_vehicle_pitch);
 | 
									DrawSprite(image | ormod, x + 14, y + 6 + (is_custom_sprite(RailVehInfo(v->engine_type)->image_index) ? _traininfo_vehicle_pitch : 0));
 | 
				
			||||||
				if (v->index == selection)
 | 
									if (v->index == selection)
 | 
				
			||||||
					DrawFrameRect(x - 1, y - 1, x + width + 4, y + 12, 15, FR_BORDERONLY);
 | 
										DrawFrameRect(x - 1, y - 1, x + width + 4, y + 12, 15, FR_BORDERONLY);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
@@ -1409,8 +1409,7 @@ static void PlayerTrainsWndProc(Window *w, WindowEvent *e)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			assert(v->type == VEH_Train && v->owner == owner);
 | 
								assert(v->type == VEH_Train && v->owner == owner);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			DrawTrainImage(
 | 
								DrawTrainImage(v, x + 21, y + 6, w->hscroll.cap, 0, INVALID_VEHICLE);
 | 
				
			||||||
				v, x + 21, y + 6 + _traininfo_vehicle_pitch, w->hscroll.cap, 0, INVALID_VEHICLE);
 | 
					 | 
				
			||||||
			DrawVehicleProfitButton(v, x, y + 13);
 | 
								DrawVehicleProfitButton(v, x, y + 13);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			SetDParam(0, v->unitnumber);
 | 
								SetDParam(0, v->unitnumber);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user