(svn r8858) -Codechange: Replace magic number test with class method for determining if a cargo is valid/active.

pull/155/head
peter1138 18 years ago
parent dfa3c0aae1
commit b3efec2e7d

@ -67,3 +67,9 @@ CargoID GetCargoIDByBitnum(byte bitnum)
assert(_cargo_bitnum_map[bitnum] != CT_INVALID);
return _cargo_bitnum_map[bitnum];
}
bool CargoSpec::IsValid() const
{
return bitnum != INVALID_CARGO;
}

@ -31,6 +31,8 @@ typedef struct CargoSpec {
SpriteID sprite;
uint16 classes;
bool IsValid() const;
} CargoSpec;

@ -820,8 +820,10 @@ static const SpriteGroup *GetVehicleSpriteGroup(EngineID engine, const Vehicle *
if (v == NULL) {
cargo = GC_PURCHASE;
} else {
cargo = GetCargo(v->cargo_type)->bitnum;
assert(cargo != GC_INVALID);
const CargoSpec *cs = GetCargo(v->cargo_type);
assert(cs->IsValid());
cargo = cs->bitnum;
if (v->type == VEH_Train) {
group = GetWagonOverrideSpriteSet(engine, cargo, v->u.rail.first_engine);

@ -515,7 +515,7 @@ static const SpriteGroup *ResolveStation(ResolverObject *object)
/* Pick the first cargo that we have waiting */
for (CargoID cargo = 0; cargo < NUM_CARGO; cargo++) {
const CargoSpec *cs = GetCargo(cargo);
if (cs->bitnum != 0xFF && object->u.station.statspec->spritegroup[cs->bitnum] != NULL &&
if (cs->IsValid() && object->u.station.statspec->spritegroup[cs->bitnum] != NULL &&
GB(object->u.station.st->goods[cargo].waiting_acceptance, 0, 12) != 0) {
ctype = cs->bitnum;
break;

@ -59,7 +59,7 @@ static StationSortListingTypeFunction StationRatingMaxSorter;
static void StationsWndShowStationRating(int x, int y, CargoID type, uint amount, byte rating)
{
const CargoSpec *cs = GetCargo(type);
if (cs->bitnum == 0xFF) return;
if (!cs->IsValid()) return;
int colour = cs->rating_colour;
uint w = (minu(amount, 576) + 5) / 36;
@ -328,7 +328,7 @@ static void PlayerStationsWndProc(Window *w, WindowEvent *e)
cg_ofst = IsWindowWidgetLowered(w, i + STATIONLIST_WIDGET_CARGOSTART) ? 2 : 1;
const CargoSpec *cs = GetCargo(i);
if (cs->bitnum != 0xFF) {
if (cs->IsValid()) {
GfxFillRect(x + cg_ofst, y + cg_ofst, x + cg_ofst + 10 , y + cg_ofst + 7, cs->rating_colour);
DrawStringCentered(x + 6 + cg_ofst, y + cg_ofst, cs->abbrev, 0x10);
}

Loading…
Cancel
Save