# HG changeset patch # User peter1138 # Date 1172224580 0 # Node ID 7b95b092af6d7fbb6ed9267c7995a95eacadccc4 # Parent 38184d805f9ed8a421aec4607c0e0b59578e60e3 (svn r8858) -Codechange: Replace magic number test with class method for determining if a cargo is valid/active. diff --git a/src/cargotype.cpp b/src/cargotype.cpp --- a/src/cargotype.cpp +++ b/src/cargotype.cpp @@ -67,3 +67,9 @@ assert(_cargo_bitnum_map[bitnum] != CT_INVALID); return _cargo_bitnum_map[bitnum]; } + + +bool CargoSpec::IsValid() const +{ + return bitnum != INVALID_CARGO; +} diff --git a/src/cargotype.h b/src/cargotype.h --- a/src/cargotype.h +++ b/src/cargotype.h @@ -31,6 +31,8 @@ SpriteID sprite; uint16 classes; + + bool IsValid() const; } CargoSpec; diff --git a/src/newgrf_engine.cpp b/src/newgrf_engine.cpp --- a/src/newgrf_engine.cpp +++ b/src/newgrf_engine.cpp @@ -820,8 +820,10 @@ 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); diff --git a/src/newgrf_station.cpp b/src/newgrf_station.cpp --- a/src/newgrf_station.cpp +++ b/src/newgrf_station.cpp @@ -515,7 +515,7 @@ /* 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; diff --git a/src/station_gui.cpp b/src/station_gui.cpp --- a/src/station_gui.cpp +++ b/src/station_gui.cpp @@ -59,7 +59,7 @@ 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 @@ 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); }