81 assert(engine < TOTAL_NUM_ENGINES); |
81 assert(engine < TOTAL_NUM_ENGINES); |
82 assert(cargo < NUM_GLOBAL_CID); |
82 assert(cargo < NUM_GLOBAL_CID); |
83 |
83 |
84 wos = &_engine_wagon_overrides[engine]; |
84 wos = &_engine_wagon_overrides[engine]; |
85 wos->overrides_count++; |
85 wos->overrides_count++; |
86 ReallocT(&wos->overrides, wos->overrides_count); |
86 wos->overrides = ReallocT(wos->overrides, wos->overrides_count); |
87 |
87 |
88 wo = &wos->overrides[wos->overrides_count - 1]; |
88 wo = &wos->overrides[wos->overrides_count - 1]; |
89 /* FIXME: If we are replacing an override, release original SpriteGroup |
89 /* FIXME: If we are replacing an override, release original SpriteGroup |
90 * to prevent leaks. But first we need to refcount the SpriteGroup. |
90 * to prevent leaks. But first we need to refcount the SpriteGroup. |
91 * --pasky */ |
91 * --pasky */ |
92 wo->group = group; |
92 wo->group = group; |
93 wo->cargo = cargo; |
93 wo->cargo = cargo; |
94 wo->trains = trains; |
94 wo->trains = trains; |
95 MallocT(&wo->train_id, trains); |
95 wo->train_id = MallocT<byte>(trains); |
96 memcpy(wo->train_id, train_id, trains); |
96 memcpy(wo->train_id, train_id, trains); |
97 } |
97 } |
98 |
98 |
99 static const SpriteGroup *GetWagonOverrideSpriteSet(EngineID engine, CargoID cargo, byte overriding_engine) |
99 static const SpriteGroup *GetWagonOverrideSpriteSet(EngineID engine, CargoID cargo, byte overriding_engine) |
100 { |
100 { |