Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00012 #ifndef CARGO_TYPE_H
00013 #define CARGO_TYPE_H
00014
00015 #include "core/enum_type.hpp"
00016
00022 typedef byte CargoID;
00023
00025 enum CargoTypes {
00026
00027 CT_PASSENGERS = 0,
00028 CT_COAL = 1,
00029 CT_MAIL = 2,
00030 CT_OIL = 3,
00031 CT_LIVESTOCK = 4,
00032 CT_GOODS = 5,
00033 CT_GRAIN = 6,
00034 CT_WOOD = 7,
00035 CT_IRON_ORE = 8,
00036 CT_STEEL = 9,
00037 CT_VALUABLES = 10,
00038
00039
00040 CT_WHEAT = 6,
00041 CT_HILLY_UNUSED = 8,
00042 CT_PAPER = 9,
00043 CT_GOLD = 10,
00044 CT_FOOD = 11,
00045
00046
00047 CT_RUBBER = 1,
00048 CT_FRUIT = 4,
00049 CT_MAIZE = 6,
00050 CT_COPPER_ORE = 8,
00051 CT_WATER = 9,
00052 CT_DIAMONDS = 10,
00053
00054
00055 CT_SUGAR = 1,
00056 CT_TOYS = 3,
00057 CT_BATTERIES = 4,
00058 CT_CANDY = 5,
00059 CT_TOFFEE = 6,
00060 CT_COLA = 7,
00061 CT_COTTON_CANDY = 8,
00062 CT_BUBBLES = 9,
00063 CT_PLASTIC = 10,
00064 CT_FIZZY_DRINKS = 11,
00065
00066 NUM_CARGO = 32,
00067
00068 CT_AUTO_REFIT = 0xFD,
00069 CT_NO_REFIT = 0xFE,
00070 CT_INVALID = 0xFF,
00071 };
00072
00074 struct CargoArray {
00075 private:
00076 uint amount[NUM_CARGO];
00077
00078 public:
00080 inline CargoArray()
00081 {
00082 this->Clear();
00083 }
00084
00086 inline void Clear()
00087 {
00088 memset(this->amount, 0, sizeof(this->amount));
00089 }
00090
00095 inline uint &operator[](CargoID cargo)
00096 {
00097 return this->amount[cargo];
00098 }
00099
00104 inline const uint &operator[](CargoID cargo) const
00105 {
00106 return this->amount[cargo];
00107 }
00108 };
00109
00110
00112 enum SourceType {
00113 ST_INDUSTRY,
00114 ST_TOWN,
00115 ST_HEADQUARTERS,
00116 };
00117 typedef SimpleTinyEnumT<SourceType, byte> SourceTypeByte;
00118
00119 typedef uint16 SourceID;
00120 static const SourceID INVALID_SOURCE = 0xFFFF;
00121
00122 #endif