Changeset - r22423:7fe76492aff2
[Not reviewed]
master
0 4 0
frosch - 8 years ago 2016-08-15 18:33:52
frosch@openttd.org
(svn r27630) -Codechange: Deduplicate code to attach vehicle to cursor.
4 files changed with 23 insertions and 9 deletions:
0 comments (0 inline, 0 general)
src/depot_gui.cpp
Show inline comments
 
@@ -505,16 +505,12 @@ struct DepotWindow : Window {
 
					this->sel = INVALID_VEHICLE;
 
					TrainDepotMoveVehicle(v, sel, gdvp.head);
 
				} else if (v != NULL) {
 
					bool rtl = _current_text_dir == TD_RTL;
 
					int image = v->GetImage(rtl ? DIR_E : DIR_W, EIT_IN_DEPOT);
 
					SetObjectToPlaceWnd(image, GetVehiclePalette(v), HT_DRAG, this);
 
					SetObjectToPlaceWnd(SPR_CURSOR_MOUSE, PAL_NONE, HT_DRAG, this);
 
					SetMouseCursorVehicle(v, EIT_IN_DEPOT);
 
					_cursor.vehchain = _ctrl_pressed;
 

	
 
					this->sel = v->index;
 
					this->SetDirty();
 

	
 
					_cursor.sprite_pos[0].x = v->IsGroundVehicle() ? (16 - v->GetGroundVehicleCache()->cached_veh_length * 2) * (rtl ? -1 : 1) : 0;
 
					_cursor.vehchain = _ctrl_pressed;
 
					UpdateCursorSize();
 
				}
 
				break;
 
			}
src/group_gui.cpp
Show inline comments
 
@@ -627,8 +627,8 @@ public:
 

	
 
				this->vehicle_sel = v->index;
 

	
 
				int image = v->GetImage(_current_text_dir == TD_RTL ? DIR_E : DIR_W, EIT_IN_LIST);
 
				SetObjectToPlaceWnd(image, GetVehiclePalette(v), HT_DRAG, this);
 
				SetObjectToPlaceWnd(SPR_CURSOR_MOUSE, PAL_NONE, HT_DRAG, this);
 
				SetMouseCursorVehicle(v, EIT_IN_LIST);
 
				_cursor.vehchain = true;
 

	
 
				this->SetDirty();
src/vehicle_gui.cpp
Show inline comments
 
@@ -2861,3 +2861,20 @@ int GetVehicleWidth(Vehicle *v, EngineIm
 

	
 
	return vehicle_width;
 
}
 

	
 
/**
 
 * Set the mouse cursor to look like a vehicle.
 
 * @param v Vehicle
 
 * @param image_type Type of vehicle image to use.
 
 */
 
void SetMouseCursorVehicle(const Vehicle *v, EngineImageType image_type)
 
{
 
	bool rtl = _current_text_dir == TD_RTL;
 

	
 
	_cursor.sprite_count = 1;
 
	_cursor.sprite_seq[0].sprite = v->GetImage(rtl ? DIR_E : DIR_W, EIT_IN_DEPOT);
 
	_cursor.sprite_seq[0].pal = GetVehiclePalette(v);
 
	_cursor.sprite_pos[0].x = v->IsGroundVehicle() ? (16 - v->GetGroundVehicleCache()->cached_veh_length * 2) * (rtl ? -1 : 1) : 0;
 

	
 
	UpdateCursorSize();
 
}
src/vehicle_gui.h
Show inline comments
 
@@ -100,5 +100,6 @@ void StartStopVehicle(const Vehicle *v, 
 
Vehicle *CheckClickOnVehicle(const struct ViewPort *vp, int x, int y);
 

	
 
void DrawVehicleImage(const Vehicle *v, int left, int right, int y, VehicleID selection, EngineImageType image_type, int skip);
 
void SetMouseCursorVehicle(const Vehicle *v, EngineImageType image_type);
 

	
 
#endif /* VEHICLE_GUI_H */
0 comments (0 inline, 0 general)