Changeset - r1387:87d700a7ee55
[Not reviewed]
master
0 2 0
celestar - 20 years ago 2005-02-20 07:47:42
celestar@openttd.org
(svn r1891) -Fix: [ 1143587 ] carriages of newgrfs can be refitted again
2 files changed with 21 insertions and 4 deletions:
0 comments (0 inline, 0 general)
train_cmd.c
Show inline comments
 
@@ -841,8 +841,12 @@ int32 CmdMoveRailVehicle(int x, int y, u
 
			if (dst_head->subtype == TS_Front_Engine)
 
				UpdateTrainAcceleration(dst_head);
 
			InvalidateWindow(WC_VEHICLE_DETAILS, dst_head->index);
 
			/* Update the refit button */
 
			InvalidateWindowWidget(WC_VEHICLE_VIEW, dst_head->index, 12);
 
		}
 

	
 
		/* I added this to so that the refit buttons get updated */
 
		InvalidateWindowWidget(WC_VEHICLE_VIEW, src_head->index, 12);
 
		InvalidateWindow(WC_VEHICLE_DEPOT, src_head->tile);
 
		RebuildVehicleLists();
 
	}
train_gui.c
Show inline comments
 
@@ -809,16 +809,29 @@ static void TrainViewWndProc(Window *w, 
 
{
 
	switch(e->event) {
 
	case WE_PAINT: {
 
		Vehicle *v;
 
		Vehicle *v, *u;
 
		StringID str;
 

	
 
		v = GetVehicle(w->window_number);
 

	
 
		w->disabled_state = (v->owner == _local_player) ? 0 : 0x380;
 

	
 
		if (v->cargo_cap == 0) {
 
			//we cannot refit this engine
 
			SETBIT(w->disabled_state, 12);
 
		SETBIT(w->disabled_state, 12);
 

	
 
		/* See if any carriage can be refitted */
 
		for ( u = v; u != NULL; u = u->next) {
 
			if (_engine_refit_masks[u->engine_type] != 0) {
 
				CLRBIT(w->disabled_state, 12);
 
				/* We have a refittable carriage, bail out */
 
				break;
 
			}
 
		}
 

	
 
		/* Above code doesn't seem to handle non-newgrf engines, do it separately
 
		TODO: handle engines which are NOT the head of the train, but don't break wagons */
 
		if (v->cargo_cap != 0) {
 
			/* we can refit this engine */
 
			CLRBIT(w->disabled_state, 12);
 
		}
 

	
 
		/* draw widgets & caption */
0 comments (0 inline, 0 general)