diff --git a/src/newgrf_commons.cpp b/src/newgrf_commons.cpp index d0d1c1c5f8..59118a6ffe 100644 --- a/src/newgrf_commons.cpp +++ b/src/newgrf_commons.cpp @@ -141,6 +141,16 @@ uint16 OverrideManagerBase::AddEntityID(byte grf_local_id, uint32 grfid, byte su return invalid_ID; } +/** + * Gives the GRFID of the file the entity belongs to. + * @param entity_id ID of the entity being queried. + * @return GRFID. + */ +uint16 OverrideManagerBase::GetGRFID(uint16 entity_id) const +{ + return mapping_ID[entity_id].grfid; +} + /** * Gives the substitute of the entity, as specified by the grf file * @param entity_id of the entity being queried diff --git a/src/newgrf_commons.h b/src/newgrf_commons.h index d0e556fafb..e38111371c 100644 --- a/src/newgrf_commons.h +++ b/src/newgrf_commons.h @@ -185,6 +185,7 @@ public: void Add(uint8 local_id, uint32 grfid, uint entity_type); virtual uint16 AddEntityID(byte grf_local_id, uint32 grfid, byte substitute_id); + uint16 GetGRFID(uint16 entity_id) const; uint16 GetSubstituteID(uint16 entity_id) const; virtual uint16 GetID(uint8 grf_local_id, uint32 grfid) const; diff --git a/src/newgrf_house.cpp b/src/newgrf_house.cpp index 52eb7b286e..fd0281e4ea 100644 --- a/src/newgrf_house.cpp +++ b/src/newgrf_house.cpp @@ -344,7 +344,7 @@ static uint32 HouseGetVariable(const ResolverObject *object, byte variable, byte if (house_id < NEW_HOUSE_OFFSET) return 0; /* Checking the grffile information via HouseSpec doesn't work * in case the newgrf was removed. */ - return _house_mngr.mapping_ID[house_id].grfid; + return _house_mngr.GetGRFID(house_id); } }