Container for cargo from the same location and time. More...
#include <cargopacket.h>
Public Member Functions | |
CargoPacket () | |
Create a new packet for savegame loading. | |
CargoPacket (StationID source, TileIndex source_xy, uint16 count, SourceType source_type, SourceID source_id) | |
Creates a new cargo packet. | |
CargoPacket (uint16 count, byte days_in_transit, StationID source, TileIndex source_xy, TileIndex loaded_at_xy, Money feeder_share=0, SourceType source_type=ST_INDUSTRY, SourceID source_id=INVALID_SOURCE) | |
Creates a new cargo packet. | |
~CargoPacket () | |
Destroy the packet. | |
CargoPacket * | Split (uint new_size) |
Split this packet in two and return the split off part. | |
void | Merge (CargoPacket *cp) |
Merge another packet into this one. | |
FORCEINLINE uint16 | Count () const |
Gets the number of 'items' in this packet. | |
FORCEINLINE Money | FeederShare () const |
Gets the amount of money already paid to earlier vehicles in the feeder chain. | |
FORCEINLINE byte | DaysInTransit () const |
Gets the number of days this cargo has been in transit. | |
FORCEINLINE SourceType | SourceSubsidyType () const |
Gets the type of the cargo's source. | |
FORCEINLINE SourceID | SourceSubsidyID () const |
Gets the ID of the cargo's source. | |
FORCEINLINE SourceID | SourceStation () const |
Gets the ID of the station where the cargo was loaded for the first time. | |
FORCEINLINE TileIndex | SourceStationXY () const |
Gets the coordinates of the cargo's source station. | |
FORCEINLINE TileIndex | LoadedAtXY () const |
Gets the coordinates of the cargo's last loading station. | |
Static Public Member Functions | |
static void | InvalidateAllFrom (SourceType src_type, SourceID src) |
Invalidates (sets source_id to INVALID_SOURCE) all cargo packets from given source. | |
static void | InvalidateAllFrom (StationID sid) |
Invalidates (sets source to INVALID_STATION) all cargo packets from given station. | |
static void | AfterLoad () |
Static Public Attributes | |
static const uint16 | MAX_COUNT = UINT16_MAX |
Maximum number of items in a single cargo packet. | |
Private Attributes | |
Money | feeder_share |
Value of feeder pickup to be paid for on delivery of cargo. | |
uint16 | count |
The amount of cargo in this packet. | |
byte | days_in_transit |
Amount of days this packet has been in transit. | |
SourceTypeByte | source_type |
Type of source_id . | |
SourceID | source_id |
Index of source, INVALID_SOURCE if unknown/invalid. | |
StationID | source |
The station where the cargo came from first. | |
TileIndex | source_xy |
The origin of the cargo (first station in feeder chain). | |
TileIndex | loaded_at_xy |
Location where this cargo has been loaded into the vehicle. | |
Friends | |
class | CargoList |
The CargoList caches, thus needs to know about it. | |
class | VehicleCargoList |
class | StationCargoList |
struct SaveLoad * | GetCargoPacketDesc () |
We want this to be saved, right? |
Container for cargo from the same location and time.
Definition at line 37 of file cargopacket.h.
CargoPacket::CargoPacket | ( | StationID | source, | |
TileIndex | source_xy, | |||
uint16 | count, | |||
SourceType | source_type, | |||
SourceID | source_id | |||
) |
Creates a new cargo packet.
source | Source station of the packet. | |
source_xy | Source location of the packet. | |
count | Number of cargo entities to put in this packet. | |
source_type | 'Type' of source the packet comes from (for subsidies). | |
source_id | Actual source of the packet (for subsidies). |
Definition at line 48 of file cargopacket.cpp.
CargoPacket::CargoPacket | ( | uint16 | count, | |
byte | days_in_transit, | |||
StationID | source, | |||
TileIndex | source_xy, | |||
TileIndex | loaded_at_xy, | |||
Money | feeder_share = 0 , |
|||
SourceType | source_type = ST_INDUSTRY , |
|||
SourceID | source_id = INVALID_SOURCE | |||
) |
Creates a new cargo packet.
Initializes the fields that cannot be changed later. Used when loading or splitting packets.
count | Number of cargo entities to put in this packet. | |
days_in_transit | Number of days the cargo has been in transit. | |
source | Station the cargo was initially loaded. | |
source_xy | Station location the cargo was initially loaded. | |
loaded_at_xy | Location the cargo was loaded last. | |
feeder_share | Feeder share the packet has already accumulated. | |
source_type | 'Type' of source the packet comes from (for subsidies). | |
source_id | Actual source of the packet (for subsidies). |
Definition at line 75 of file cargopacket.cpp.
CargoPacket::~CargoPacket | ( | ) | [inline] |
Destroy the packet.
Definition at line 63 of file cargopacket.h.
FORCEINLINE uint16 CargoPacket::Count | ( | ) | const [inline] |
Gets the number of 'items' in this packet.
Definition at line 72 of file cargopacket.h.
References count.
Referenced by StationViewWindow::OrderWaitingCargo().
FORCEINLINE byte CargoPacket::DaysInTransit | ( | ) | const [inline] |
Gets the number of days this cargo has been in transit.
This number isn't really in days, but in 2.5 days (185 ticks) and it is capped at 255.
Definition at line 93 of file cargopacket.h.
References days_in_transit.
Referenced by CargoPayment::PayFinalDelivery(), and CargoPayment::PayTransfer().
FORCEINLINE Money CargoPacket::FeederShare | ( | ) | const [inline] |
Gets the amount of money already paid to earlier vehicles in the feeder chain.
Definition at line 82 of file cargopacket.h.
References feeder_share.
Referenced by CargoPayment::PayFinalDelivery().
void CargoPacket::InvalidateAllFrom | ( | SourceType | src_type, | |
SourceID | src | |||
) | [static] |
Invalidates (sets source_id to INVALID_SOURCE) all cargo packets from given source.
src_type | Type of source. | |
src | Index of source. |
Definition at line 120 of file cargopacket.cpp.
References FOR_ALL_CARGOPACKETS, INVALID_SOURCE, source_id, and source_type.
Referenced by Station::~Station(), and Town::~Town().
void CargoPacket::InvalidateAllFrom | ( | StationID | sid | ) | [static] |
Invalidates (sets source to INVALID_STATION) all cargo packets from given station.
sid | Station that gets removed. |
Definition at line 132 of file cargopacket.cpp.
References FOR_ALL_CARGOPACKETS, and source.
FORCEINLINE TileIndex CargoPacket::LoadedAtXY | ( | ) | const [inline] |
Gets the coordinates of the cargo's last loading station.
Definition at line 138 of file cargopacket.h.
References loaded_at_xy.
Referenced by CargoPayment::PayTransfer().
FORCEINLINE void CargoPacket::Merge | ( | CargoPacket * | cp | ) |
Merge another packet into this one.
cp | Packet to be merged in. |
Definition at line 108 of file cargopacket.cpp.
References count, and feeder_share.
Referenced by CargoList< Tinst >::Append().
FORCEINLINE SourceID CargoPacket::SourceStation | ( | ) | const [inline] |
Gets the ID of the station where the cargo was loaded for the first time.
Definition at line 120 of file cargopacket.h.
References source.
Referenced by StationViewWindow::OrderWaitingCargo().
FORCEINLINE TileIndex CargoPacket::SourceStationXY | ( | ) | const [inline] |
Gets the coordinates of the cargo's source station.
Definition at line 129 of file cargopacket.h.
References source_xy.
Referenced by CargoPayment::PayFinalDelivery().
FORCEINLINE SourceID CargoPacket::SourceSubsidyID | ( | ) | const [inline] |
Gets the ID of the cargo's source.
An IndustryID, TownID or CompanyID.
Definition at line 111 of file cargopacket.h.
References source_id.
Referenced by CargoPayment::PayFinalDelivery().
FORCEINLINE SourceType CargoPacket::SourceSubsidyType | ( | ) | const [inline] |
Gets the type of the cargo's source.
industry, town or head quarter.
Definition at line 102 of file cargopacket.h.
References source_type.
Referenced by CargoPayment::PayFinalDelivery().
FORCEINLINE CargoPacket * CargoPacket::Split | ( | uint | new_size | ) |
Split this packet in two and return the split off part.
new_size | Size of the remaining part. |
Definition at line 93 of file cargopacket.cpp.
References Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_cargopacket_pool >::CanAllocateItem(), CargoPacket(), count, days_in_transit, feeder_share, loaded_at_xy, source, source_id, source_type, and source_xy.
Referenced by CargoList< Tinst >::MoveTo().
friend class CargoList [friend] |
The CargoList caches, thus needs to know about it.
Definition at line 49 of file cargopacket.h.
struct SaveLoad* GetCargoPacketDesc | ( | ) | [friend] |
We want this to be saved, right?
Definition at line 84 of file cargopacket_sl.cpp.
const uint16 CargoPacket::MAX_COUNT = UINT16_MAX [static] |
Maximum number of items in a single cargo packet.
Definition at line 56 of file cargopacket.h.
Referenced by CargoList< Tinst >::Append().