summaryrefslogtreecommitdiff
path: root/src/engine_base.h
diff options
context:
space:
mode:
authorPeterN <peter1138@openttd.org>2021-04-30 12:03:07 +0100
committerGitHub <noreply@github.com>2021-04-30 12:03:07 +0100
commit3dbd6475fec5ebd63b18004bb94048460c4fb4a3 (patch)
tree2b9d79e0aeb4839526b30d4bc171e1715608e3f6 /src/engine_base.h
parent665a3928e2f07e6ee1faed1c8b08fe3a68fbc37a (diff)
downloadopenttd-3dbd6475fec5ebd63b18004bb94048460c4fb4a3.tar.xz
Codechange: Use C++ features for train wagon overrides. (#9141)
This removes the need for C-style array management and allows use of iterators to perform wagon override lookups.
Diffstat (limited to 'src/engine_base.h')
-rw-r--r--src/engine_base.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/engine_base.h b/src/engine_base.h
index 2e434b589..7822111e7 100644
--- a/src/engine_base.h
+++ b/src/engine_base.h
@@ -15,6 +15,12 @@
#include "core/pool_type.hpp"
#include "newgrf_commons.h"
+struct WagonOverride {
+ std::vector<EngineID> engines;
+ CargoID cargo;
+ const SpriteGroup *group;
+};
+
typedef Pool<Engine, EngineID, 64, 64000> EnginePool;
extern EnginePool _engine_pool;
@@ -56,13 +62,11 @@ struct Engine : EnginePool::PoolItem<&_engine_pool> {
* evaluating callbacks.
*/
GRFFilePropsBase<NUM_CARGO + 2> grf_prop;
- uint16 overrides_count;
- struct WagonOverride *overrides;
+ std::vector<WagonOverride> overrides;
uint16 list_position;
- Engine();
+ Engine() {}
Engine(VehicleType type, EngineID base);
- ~Engine();
bool IsEnabled() const;
/**