File diff r24596:eddf98238034 → r24597:afde5721a3b6
src/newgrf_station.cpp
Show inline comments
 
@@ -116,19 +116,19 @@ uint32 GetPlatformInfo(Axis axis, byte t
 
		y -= length / 2;
 
		x = Clamp(x, -8, 7);
 
		y = Clamp(y, -8, 7);
 
		SB(retval,  0, 4, y & 0xF);
 
		SB(retval,  4, 4, x & 0xF);
 
	} else {
 
		SB(retval,  0, 4, min(15, y));
 
		SB(retval,  4, 4, min(15, length - y - 1));
 
		SB(retval,  8, 4, min(15, x));
 
		SB(retval, 12, 4, min(15, platforms - x - 1));
 
		SB(retval,  0, 4, std::min(15, y));
 
		SB(retval,  4, 4, std::min(15, length - y - 1));
 
		SB(retval,  8, 4, std::min(15, x));
 
		SB(retval, 12, 4, std::min(15, platforms - x - 1));
 
	}
 
	SB(retval, 16, 4, min(15, length));
 
	SB(retval, 20, 4, min(15, platforms));
 
	SB(retval, 16, 4, std::min(15, length));
 
	SB(retval, 20, 4, std::min(15, platforms));
 
	SB(retval, 24, 4, tile);
 

	
 
	return retval;
 
}
 

	
 

	
 
@@ -421,13 +421,13 @@ uint32 Station::GetNewGRFVariable(const 
 
				default:   return 0;
 
			}
 
		}
 
		const GoodsEntry *ge = &this->goods[c];
 

	
 
		switch (variable) {
 
			case 0x60: return min(ge->cargo.TotalCount(), 4095);
 
			case 0x60: return std::min(ge->cargo.TotalCount(), 4095u);
 
			case 0x61: return ge->HasVehicleEverTriedLoading() ? ge->time_since_pickup : 0;
 
			case 0x62: return ge->HasRating() ? ge->rating : 0xFFFFFFFF;
 
			case 0x63: return ge->cargo.DaysInTransit();
 
			case 0x64: return ge->HasVehicleEverTriedLoading() ? ge->last_speed | (ge->last_age << 8) : 0xFF00;
 
			case 0x65: return GB(ge->status, GoodsEntry::GES_ACCEPTANCE, 1) << 3;
 
			case 0x69: {
 
@@ -441,13 +441,13 @@ uint32 Station::GetNewGRFVariable(const 
 

	
 
	/* Handle cargo variables (deprecated) */
 
	if (variable >= 0x8C && variable <= 0xEC) {
 
		const GoodsEntry *g = &this->goods[GB(variable - 0x8C, 3, 4)];
 
		switch (GB(variable - 0x8C, 0, 3)) {
 
			case 0: return g->cargo.TotalCount();
 
			case 1: return GB(min(g->cargo.TotalCount(), 4095), 0, 4) | (GB(g->status, GoodsEntry::GES_ACCEPTANCE, 1) << 7);
 
			case 1: return GB(std::min(g->cargo.TotalCount(), 4095u), 0, 4) | (GB(g->status, GoodsEntry::GES_ACCEPTANCE, 1) << 7);
 
			case 2: return g->time_since_pickup;
 
			case 3: return g->rating;
 
			case 4: return g->cargo.Source();
 
			case 5: return g->cargo.DaysInTransit();
 
			case 6: return g->last_speed;
 
			case 7: return g->last_age;
 
@@ -517,13 +517,13 @@ uint32 Waypoint::GetNewGRFVariable(const
 
		default:
 
			cargo = st->goods[this->station_scope.cargo_type].cargo.TotalCount();
 
			break;
 
	}
 

	
 
	if (HasBit(this->station_scope.statspec->flags, SSF_DIV_BY_STATION_SIZE)) cargo /= (st->train_station.w + st->train_station.h);
 
	cargo = min(0xfff, cargo);
 
	cargo = std::min(0xfffu, cargo);
 

	
 
	if (cargo > this->station_scope.statspec->cargo_threshold) {
 
		if (group->num_loading > 0) {
 
			uint set = ((cargo - this->station_scope.statspec->cargo_threshold) * group->num_loading) / (4096 - this->station_scope.statspec->cargo_threshold);
 
			return group->loading[set];
 
		}