Changeset - r9670:5af59efc52b3
[Not reviewed]
master
0 3 0
rubidium - 16 years ago 2008-07-20 19:21:18
rubidium@openttd.org
(svn r13759) -Fix [FS#2147]: selecting non-full length vehicles in the depot gui would place the "mouse pointer" out of the center of the vehicle making it hard to "aim".
3 files changed with 18 insertions and 2 deletions:
0 comments (0 inline, 0 general)
src/depot_gui.cpp
Show inline comments
 
@@ -513,6 +513,20 @@ struct DepotWindow : Window {
 
					this->sel = v->index;
 
					this->SetDirty();
 
					SetObjectToPlaceWnd(image, GetVehiclePalette(v), VHM_DRAG, this);
 

	
 
					switch (v->type) {
 
						case VEH_TRAIN:
 
							_cursor.short_vehicle_offset = 16 - v->u.rail.cached_veh_length * 2;
 
							break;
 

	
 
						case VEH_ROAD:
 
							_cursor.short_vehicle_offset = 16 - v->u.road.cached_veh_length * 2;
 
							break;
 

	
 
						default:
 
							_cursor.short_vehicle_offset = 0;
 
							break;
 
					}
 
					_cursor.vehchain = _ctrl_pressed;
 
				}
 
			} break;
src/gfx.cpp
Show inline comments
 
@@ -1008,7 +1008,7 @@ void DrawMouseCursor()
 
	}
 

	
 
	w = _cursor.size.x;
 
	x = _cursor.pos.x + _cursor.offs.x;
 
	x = _cursor.pos.x + _cursor.offs.x + _cursor.short_vehicle_offset;
 
	if (x < 0) {
 
		w += x;
 
		x = 0;
 
@@ -1036,7 +1036,7 @@ void DrawMouseCursor()
 

	
 
	/* Draw cursor on screen */
 
	_cur_dpi = &_screen;
 
	DrawSprite(_cursor.sprite, _cursor.pal, _cursor.pos.x, _cursor.pos.y);
 
	DrawSprite(_cursor.sprite, _cursor.pal, _cursor.pos.x + _cursor.short_vehicle_offset, _cursor.pos.y);
 

	
 
	_video_driver->MakeDirty(_cursor.draw_pos.x, _cursor.draw_pos.y, _cursor.draw_size.x, _cursor.draw_size.y);
 

	
 
@@ -1287,6 +1287,7 @@ static void SetCursorSprite(SpriteID cur
 
	cv->offs.y = p->y_offs;
 

	
 
	cv->dirty = true;
 
	cv->short_vehicle_offset = 0;
 
}
 

	
 
static void SwitchAnimatedCursor()
src/gfx_type.h
Show inline comments
 
@@ -113,6 +113,7 @@ struct AnimCursor {
 
struct CursorVars {
 
	Point pos, size, offs, delta; ///< position, size, offset from top-left, and movement
 
	Point draw_pos, draw_size;    ///< position and size bounding-box for drawing
 
	int short_vehicle_offset;     ///< offset of the X for short vehicles
 
	SpriteID sprite; ///< current image of cursor
 
	SpriteID pal;
 

	
0 comments (0 inline, 0 general)