src/newgrf_station.cpp
changeset 7970 204ece3a05d5
parent 7823 cad4dec2b899
child 8138 7dc73953c47e
equal deleted inserted replaced
7969:9050701304bd 7970:204ece3a05d5
   427 		case 0x48: { // Accepted cargo types
   427 		case 0x48: { // Accepted cargo types
   428 			CargoID cargo_type;
   428 			CargoID cargo_type;
   429 			uint32 value = 0;
   429 			uint32 value = 0;
   430 
   430 
   431 			for (cargo_type = 0; cargo_type < NUM_CARGO; cargo_type++) {
   431 			for (cargo_type = 0; cargo_type < NUM_CARGO; cargo_type++) {
   432 				if (st->goods[cargo_type].acceptance) SETBIT(value, cargo_type);
   432 				if (HASBIT(st->goods[cargo_type].acceptance_pickup, GoodsEntry::PICKUP)) SETBIT(value, cargo_type);
   433 			}
   433 			}
   434 			return value;
   434 			return value;
   435 		}
   435 		}
   436 		case 0x49:
   436 		case 0x49:
   437 			if (!HASBIT(_svc.valid, 5)) { _svc.v49 = GetPlatformInfoHelper(tile, false, true, false); SETBIT(_svc.valid, 5); }
   437 			if (!HASBIT(_svc.valid, 5)) { _svc.v49 = GetPlatformInfoHelper(tile, false, true, false); SETBIT(_svc.valid, 5); }
   465 			case 0x60: return min(ge->cargo.Count(), 4095);
   465 			case 0x60: return min(ge->cargo.Count(), 4095);
   466 			case 0x61: return ge->days_since_pickup;
   466 			case 0x61: return ge->days_since_pickup;
   467 			case 0x62: return ge->rating;
   467 			case 0x62: return ge->rating;
   468 			case 0x63: return ge->cargo.DaysInTransit();
   468 			case 0x63: return ge->cargo.DaysInTransit();
   469 			case 0x64: return ge->last_speed | (ge->last_age << 8);
   469 			case 0x64: return ge->last_speed | (ge->last_age << 8);
   470 			case 0x65: return ge->acceptance << 3;
   470 			case 0x65: return GB(ge->acceptance_pickup, GoodsEntry::ACCEPTANCE, 1) << 3;
   471 		}
   471 		}
   472 	}
   472 	}
   473 
   473 
   474 	/* Handle cargo variables (deprecated) */
   474 	/* Handle cargo variables (deprecated) */
   475 	if (variable >= 0x8C && variable <= 0xEC) {
   475 	if (variable >= 0x8C && variable <= 0xEC) {
   476 		const GoodsEntry *g = &st->goods[GB(variable - 0x8C, 3, 4)];
   476 		const GoodsEntry *g = &st->goods[GB(variable - 0x8C, 3, 4)];
   477 		switch (GB(variable - 0x8C, 0, 3)) {
   477 		switch (GB(variable - 0x8C, 0, 3)) {
   478 			case 0: return g->cargo.Count();
   478 			case 0: return g->cargo.Count();
   479 			case 1: return GB(min(g->cargo.Count(), 4095), 0, 4) | (g->acceptance << 7);
   479 			case 1: return GB(min(g->cargo.Count(), 4095), 0, 4) | (GB(g->acceptance_pickup, GoodsEntry::ACCEPTANCE, 1) << 7);
   480 			case 2: return g->days_since_pickup;
   480 			case 2: return g->days_since_pickup;
   481 			case 3: return g->rating;
   481 			case 3: return g->rating;
   482 			case 4: return g->cargo.Source();
   482 			case 4: return g->cargo.Source();
   483 			case 5: return g->cargo.DaysInTransit();
   483 			case 5: return g->cargo.DaysInTransit();
   484 			case 6: return g->last_speed;
   484 			case 6: return g->last_speed;