Cargo transport monitoring declarations. More...
#include "cargo_type.h"
#include "company_func.h"
#include "industry.h"
#include "town.h"
#include <map>
Go to the source code of this file.
Typedefs | |
typedef uint32 | CargoMonitorID |
Unique number for a company / cargo type / (town or industry). | |
typedef std::map < CargoMonitorID, uint32 > | CargoMonitorMap |
Map type for storing and updating active cargo monitor numbers and their amounts. | |
Enumerations | |
enum | CargoCompanyBits { CCB_TOWN_IND_NUMBER_START = 0, CCB_TOWN_IND_NUMBER_LENGTH = 16, CCB_IS_INDUSTRY_BIT = 16, CCB_IS_INDUSTRY_BIT_VALUE = 1ul << CCB_IS_INDUSTRY_BIT, CCB_CARGO_TYPE_START = 19, CCB_CARGO_TYPE_LENGTH = 5, CCB_COMPANY_START = 24, CCB_COMPANY_LENGTH = 8 } |
Constants for encoding and extracting cargo monitors. More... | |
Functions | |
static CargoMonitorID | EncodeCargoIndustryMonitor (CompanyID company, CargoID ctype, IndustryID ind) |
Encode a cargo monitor for pickup or delivery at an industry. | |
static CargoMonitorID | EncodeCargoTownMonitor (CompanyID company, CargoID ctype, TownID town) |
Encode a cargo monitoring number for pickup or delivery at a town. | |
static CompanyID | DecodeMonitorCompany (CargoMonitorID num) |
Extract the company from the cargo monitor. | |
static CargoID | DecodeMonitorCargoType (CargoMonitorID num) |
Extract the cargo type from the cargo monitor. | |
static bool | MonitorMonitorsIndustry (CargoMonitorID num) |
Does the cargo number monitor an industry or a town? | |
static IndustryID | DecodeMonitorIndustry (CargoMonitorID num) |
Extract the industry number from the cargo monitor. | |
static TownID | DecodeMonitorTown (CargoMonitorID num) |
Extract the town number from the cargo monitor. | |
void | ClearCargoPickupMonitoring (CompanyID company=INVALID_OWNER) |
Clear all pick-up cargo monitors. | |
void | ClearCargoDeliveryMonitoring (CompanyID company=INVALID_OWNER) |
Clear all delivery cargo monitors. | |
uint32 | GetDeliveryAmount (CargoMonitorID monitor, bool keep_monitoring) |
Get the amount of cargo delivered for the given cargo monitor since activation or last query. | |
uint32 | GetPickupAmount (CargoMonitorID monitor, bool keep_monitoring) |
Get the amount of cargo picked up for the given cargo monitor since activation or last query. | |
void | AddCargoDelivery (CargoID cargo_type, CompanyID company, uint32 amount, SourceType src_type, SourceID src, const Station *st) |
Cargo was delivered to its final destination, update the pickup and delivery maps. | |
Variables | |
CargoMonitorMap | _cargo_pickups |
Map of monitored pick-ups to the amount since last query/activation. | |
CargoMonitorMap | _cargo_deliveries |
Map of monitored deliveries to the amount since last query/activation. |
Cargo transport monitoring declarations.
Definition in file cargomonitor.h.
typedef uint32 CargoMonitorID |
Unique number for a company / cargo type / (town or industry).
Encoding is as follows:
Definition at line 21 of file cargomonitor.h.
typedef std::map<CargoMonitorID, uint32> CargoMonitorMap |
Map type for storing and updating active cargo monitor numbers and their amounts.
Definition at line 34 of file cargomonitor.h.
enum CargoCompanyBits |
Constants for encoding and extracting cargo monitors.
CCB_TOWN_IND_NUMBER_START |
Start bit of the town or industry number. |
CCB_TOWN_IND_NUMBER_LENGTH |
Number of bits of the town or industry number. |
CCB_IS_INDUSTRY_BIT |
Bit indicating the town/industry number is an industry. |
CCB_IS_INDUSTRY_BIT_VALUE |
Value of the CCB_IS_INDUSTRY_BIT bit. |
CCB_CARGO_TYPE_START |
Start bit of the cargo type field. |
CCB_CARGO_TYPE_LENGTH |
Number of bits of the cargo type field. |
CCB_COMPANY_START |
Start bit of the company field. |
CCB_COMPANY_LENGTH |
Number of bits of the company field. |
Definition at line 41 of file cargomonitor.h.
void AddCargoDelivery | ( | CargoID | cargo_type, | |
CompanyID | company, | |||
uint32 | amount, | |||
SourceType | src_type, | |||
SourceID | src, | |||
const Station * | st | |||
) |
Cargo was delivered to its final destination, update the pickup and delivery maps.
cargo_type | type of cargo. | |
company | company delivering the cargo. | |
amount | Amount of cargo delivered. | |
src_type | type of src. | |
src | index of source. | |
st | station where the cargo is delivered to. |
Definition at line 119 of file cargomonitor.cpp.
References _cargo_deliveries, _cargo_pickups, SmallVector< T, S >::Begin(), EncodeCargoIndustryMonitor(), EncodeCargoTownMonitor(), SmallVector< T, S >::End(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, Station::industries_near, INVALID_SOURCE, ST_INDUSTRY, ST_TOWN, and BaseStation::town.
Referenced by DeliverGoods().
void ClearCargoDeliveryMonitoring | ( | CompanyID | company | ) |
Clear all delivery cargo monitors.
company | clear all delivery monitors for this company or if INVALID_OWNER is passed, all delivery monitors are cleared regardless of company. |
Definition at line 58 of file cargomonitor.cpp.
References _cargo_deliveries, and ClearCargoMonitoring().
Referenced by ChangeOwnershipOfCompanyItems(), InitializeEconomy(), and LoadDelivery().
void ClearCargoPickupMonitoring | ( | CompanyID | company | ) |
Clear all pick-up cargo monitors.
company | clear all pick-up monitors for this company or if INVALID_OWNER is passed, all pick-up monitors are cleared regardless of company. |
Definition at line 48 of file cargomonitor.cpp.
References _cargo_pickups, and ClearCargoMonitoring().
Referenced by ChangeOwnershipOfCompanyItems(), InitializeEconomy(), and LoadPickup().
static CargoID DecodeMonitorCargoType | ( | CargoMonitorID | num | ) | [inline, static] |
Extract the cargo type from the cargo monitor.
num | Cargo monitoring number to decode. |
Definition at line 105 of file cargomonitor.h.
References CCB_CARGO_TYPE_LENGTH, CCB_CARGO_TYPE_START, and GB().
static CompanyID DecodeMonitorCompany | ( | CargoMonitorID | num | ) | [inline, static] |
Extract the company from the cargo monitor.
num | Cargo monitoring number to decode. |
Definition at line 95 of file cargomonitor.h.
References CCB_COMPANY_LENGTH, CCB_COMPANY_START, and GB().
Referenced by ClearCargoMonitoring().
static IndustryID DecodeMonitorIndustry | ( | CargoMonitorID | num | ) | [inline, static] |
Extract the industry number from the cargo monitor.
num | Cargo monitoring number to decode. |
Definition at line 125 of file cargomonitor.h.
References CCB_TOWN_IND_NUMBER_LENGTH, CCB_TOWN_IND_NUMBER_START, GB(), and MonitorMonitorsIndustry().
static TownID DecodeMonitorTown | ( | CargoMonitorID | num | ) | [inline, static] |
Extract the town number from the cargo monitor.
num | Cargo monitoring number to decode. |
Definition at line 136 of file cargomonitor.h.
References CCB_TOWN_IND_NUMBER_LENGTH, CCB_TOWN_IND_NUMBER_START, GB(), and MonitorMonitorsIndustry().
static CargoMonitorID EncodeCargoIndustryMonitor | ( | CompanyID | company, | |
CargoID | ctype, | |||
IndustryID | ind | |||
) | [inline, static] |
Encode a cargo monitor for pickup or delivery at an industry.
company | Company performing the transport. | |
ctype | Cargo type being transported. | |
ind | Industry providing or accepting the cargo. |
Definition at line 60 of file cargomonitor.h.
References CCB_CARGO_TYPE_LENGTH, CCB_CARGO_TYPE_START, CCB_COMPANY_LENGTH, CCB_COMPANY_START, CCB_IS_INDUSTRY_BIT, CCB_TOWN_IND_NUMBER_LENGTH, CCB_TOWN_IND_NUMBER_START, SB(), and SetBit().
Referenced by AddCargoDelivery().
static CargoMonitorID EncodeCargoTownMonitor | ( | CompanyID | company, | |
CargoID | ctype, | |||
TownID | town | |||
) | [inline, static] |
Encode a cargo monitoring number for pickup or delivery at a town.
company | Company performing the transport. | |
ctype | Cargo type being transported. | |
town | Town providing or accepting the cargo. |
Definition at line 79 of file cargomonitor.h.
References CCB_CARGO_TYPE_LENGTH, CCB_CARGO_TYPE_START, CCB_COMPANY_LENGTH, CCB_COMPANY_START, CCB_TOWN_IND_NUMBER_LENGTH, CCB_TOWN_IND_NUMBER_START, and SB().
Referenced by AddCargoDelivery().
uint32 GetDeliveryAmount | ( | CargoMonitorID | monitor, | |
bool | keep_monitoring | |||
) |
Get the amount of cargo delivered for the given cargo monitor since activation or last query.
monitor | Cargo monitor to query. | |
keep_monitoring | After returning from this call, continue monitoring. |
Definition at line 93 of file cargomonitor.cpp.
References _cargo_deliveries, and GetAmount().
uint32 GetPickupAmount | ( | CargoMonitorID | monitor, | |
bool | keep_monitoring | |||
) |
Get the amount of cargo picked up for the given cargo monitor since activation or last query.
monitor | Monitoring number to query. | |
keep_monitoring | After returning from this call, continue monitoring. |
Definition at line 105 of file cargomonitor.cpp.
References _cargo_pickups, and GetAmount().
static bool MonitorMonitorsIndustry | ( | CargoMonitorID | num | ) | [inline, static] |
Does the cargo number monitor an industry or a town?
num | Cargo monitoring number to decode. |
Definition at line 115 of file cargomonitor.h.
References CCB_IS_INDUSTRY_BIT, and HasBit().
Referenced by DecodeMonitorIndustry(), and DecodeMonitorTown().