Changeset - r382:c78a7dbc2e04
[Not reviewed]
master
0 2 0
darkvater - 20 years ago 2004-11-13 21:42:35
darkvater@openttd.org
(svn r572) -newgrf: Support for custom (newGRF-yielded) refit masks for trains and aircrafts (pasky).
2 files changed with 64 insertions and 20 deletions:
0 comments (0 inline, 0 general)
aircraft_gui.c
Show inline comments
 
@@ -219,17 +219,39 @@ static void AircraftRefitWndProc(Window 
 
		x = 6;
 
		y = 25;
 
		sel = WP(w,refit_d).sel;
 
		b = _aircraft_refit_types[_opt.landscape];
 
		do {
 
			color = 16;
 
			if (sel == 0) {
 
				cargo = *b;
 
				color = 12;
 

	
 
#define show_cargo(ctype) { \
 
		color = 16; \
 
		if (sel == 0) { \
 
			cargo = ctype; \
 
			color = 12; \
 
		} \
 
		sel--; \
 
		DrawString(x, y, _cargoc.names_s[ctype], color); \
 
		y += 10; \
 
		}
 

	
 
		if (_engine_refit_masks[v->engine_type]) {
 
			uint32 mask = _engine_refit_masks[v->engine_type];
 
			int cid = 0;
 

	
 
			for (; mask; mask >>= 1, cid++) {
 
				if (!(mask & 1)) // not this cid
 
					continue;
 
				if (!(_local_cargo_id_landscape[cid] & (1 << _opt.landscape))) // not in this landscape
 
					continue;
 

	
 
				show_cargo(_local_cargo_id_ctype[cid]);
 
			}
 
			sel--;
 
			DrawString(x,y,_cargoc.names_s[*b], color);
 
			y += 10;
 
		} while (*++b != 0xFF);
 

	
 
		} else { // generic refit list
 
			b = _aircraft_refit_types[_opt.landscape];
 
			do {
 
				show_cargo(*b);
 
			} while (*++b != 0xFF);
 
		}
 

	
 
#undef show_cargo
 

	
 
		WP(w,refit_d).cargo = cargo;
 

	
train_gui.c
Show inline comments
 
@@ -623,17 +623,39 @@ static void RailVehicleRefitWndProc(Wind
 
		x = 6;
 
		y = 25;
 
		sel = WP(w,refit_d).sel;
 
		b = _rail_vehicle_refit_types[_opt.landscape];
 
		do {
 
			color = 16;
 
			if (sel == 0) {
 
				cargo = *b;
 
				color = 12;
 

	
 
#define show_cargo(ctype) { \
 
		color = 16; \
 
		if (sel == 0) { \
 
			cargo = ctype; \
 
			color = 12; \
 
		} \
 
		sel--; \
 
		DrawString(x, y, _cargoc.names_s[ctype], color); \
 
		y += 10; \
 
		}
 

	
 
		if (_engine_refit_masks[v->engine_type]) {
 
			uint32 mask = _engine_refit_masks[v->engine_type];
 
			int cid = 0;
 

	
 
			for (; mask; mask >>= 1, cid++) {
 
				if (!(mask & 1)) // not this cid
 
					continue;
 
				if (!(_local_cargo_id_landscape[cid] & (1 << _opt.landscape))) // not in this landscape
 
					continue;
 

	
 
				show_cargo(_local_cargo_id_ctype[cid]);
 
			}
 
			sel--;
 
			DrawString(x,y,_cargoc.names_s[*b], color);
 
			y += 10;
 
		} while (*++b != 255);
 

	
 
		} else { // generic refit list
 
			b = _rail_vehicle_refit_types[_opt.landscape];
 
			do {
 
				show_cargo(*b);
 
			} while (*++b != 255);
 
		}
 

	
 
#undef show_cargo
 

	
 
		WP(w,refit_d).cargo = cargo;
 

	
0 comments (0 inline, 0 general)