diff options
Diffstat (limited to 'src/cargo_type.h')
-rw-r--r-- | src/cargo_type.h | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/cargo_type.h b/src/cargo_type.h index 94bc9dbb6..4fd424d35 100644 --- a/src/cargo_type.h +++ b/src/cargo_type.h @@ -55,7 +55,31 @@ enum CargoTypes { CT_INVALID = 0xFF }; -/** Array for storing amounts of cargo */ -typedef uint CargoArray[NUM_CARGO]; +/** Class for storing amounts of cargo */ +struct CargoArray { +private: + uint amount[NUM_CARGO]; + +public: + FORCEINLINE CargoArray() + { + this->Clear(); + } + + FORCEINLINE void Clear() + { + memset(this->amount, 0, sizeof(this->amount)); + } + + FORCEINLINE uint &operator[](CargoID cargo) + { + return this->amount[cargo]; + } + + FORCEINLINE const uint &operator[](CargoID cargo) const + { + return this->amount[cargo]; + } +}; #endif /* CARGO_TYPE_H */ |