mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-09 19:10:38 +00:00
(svn r12932) -Fix [FS#1970]: Articulated engines ignored GRF engine overrides.
This commit is contained in:
parent
4097d81323
commit
3e0b6199c4
@ -11,20 +11,6 @@
|
||||
#include "newgrf_engine.h"
|
||||
#include "vehicle_func.h"
|
||||
|
||||
static EngineID GetNewEngineID(const GRFFile *file, VehicleType type, uint16 internal_id)
|
||||
{
|
||||
const Engine *e = NULL;
|
||||
FOR_ALL_ENGINES(e) {
|
||||
if (e->grffile != file) continue;
|
||||
if (e->type != type) continue;
|
||||
if (e->internal_id != internal_id) continue;
|
||||
|
||||
return e->index;
|
||||
}
|
||||
|
||||
return INVALID_ENGINE;
|
||||
}
|
||||
|
||||
uint CountArticulatedParts(EngineID engine_type, bool purchase_window)
|
||||
{
|
||||
if (!HasBit(EngInfo(engine_type)->callbackmask, CBM_VEHICLE_ARTIC_ENGINE)) return 0;
|
||||
|
@ -359,6 +359,28 @@ static Engine *GetNewEngine(const GRFFile *file, VehicleType type, uint16 intern
|
||||
return e;
|
||||
}
|
||||
|
||||
EngineID GetNewEngineID(const GRFFile *file, VehicleType type, uint16 internal_id)
|
||||
{
|
||||
extern uint32 GetNewGRFOverride(uint32 grfid);
|
||||
|
||||
const GRFFile *grf_match = NULL;
|
||||
if (_patches.dynamic_engines) {
|
||||
uint32 override = _grf_id_overrides[file->grfid];
|
||||
if (override != 0) grf_match = GetFileByGRFID(override);
|
||||
}
|
||||
|
||||
const Engine *e = NULL;
|
||||
FOR_ALL_ENGINES(e) {
|
||||
if (_patches.dynamic_engines && e->grffile != file && (grf_match == NULL || e->grffile != grf_match)) continue;
|
||||
if (e->type != type) continue;
|
||||
if (e->internal_id != internal_id) continue;
|
||||
|
||||
return e->index;
|
||||
}
|
||||
|
||||
return INVALID_ENGINE;
|
||||
}
|
||||
|
||||
/** Map the colour modifiers of TTDPatch to those that Open is using.
|
||||
* @param grf_sprite pointer to the structure been modified
|
||||
*/
|
||||
|
@ -59,4 +59,6 @@ uint ListPositionOfEngine(EngineID engine);
|
||||
void AlterRailVehListOrder(EngineID engine, EngineID target);
|
||||
void CommitRailVehListOrderChanges();
|
||||
|
||||
EngineID GetNewEngineID(const GRFFile *file, VehicleType type, uint16 internal_id);
|
||||
|
||||
#endif /* NEWGRF_ENGINE_H */
|
||||
|
Loading…
Reference in New Issue
Block a user