diff --git a/src/newgrf_house.cpp b/src/newgrf_house.cpp --- a/src/newgrf_house.cpp +++ b/src/newgrf_house.cpp @@ -39,7 +39,7 @@ HouseOverrideManager _house_mngr(NEW_HOU * @param initial_random_bits Random bits during construction checks. * @param watched_cargo_triggers Cargo types that triggered the watched cargo callback. */ -HouseScopeResolver::HouseScopeResolver(ResolverObject *ro, HouseID house_id, TileIndex tile, Town *town, +HouseScopeResolver::HouseScopeResolver(ResolverObject &ro, HouseID house_id, TileIndex tile, Town *town, bool not_yet_constructed, uint8 initial_random_bits, uint32 watched_cargo_triggers) : ScopeResolver(ro) { @@ -78,8 +78,8 @@ HouseResolverObject::HouseResolverObject CallbackID callback, uint32 param1, uint32 param2, bool not_yet_constructed, uint8 initial_random_bits, uint32 watched_cargo_triggers) : ResolverObject(GetHouseSpecGrf(house_id), callback, param1, param2), - house_scope(this, house_id, tile, town, not_yet_constructed, initial_random_bits, watched_cargo_triggers), - town_scope(this, town, not_yet_constructed) // Don't access StorePSA if house is not yet constructed. + house_scope(*this, house_id, tile, town, not_yet_constructed, initial_random_bits, watched_cargo_triggers), + town_scope(*this, town, not_yet_constructed) // Don't access StorePSA if house is not yet constructed. { } @@ -352,7 +352,7 @@ static uint32 GetDistanceFromNearbyHouse } /* Land info for nearby tiles. */ - case 0x62: return GetNearbyTileInformation(parameter, this->tile, this->ro->grffile->grf_version >= 8); + case 0x62: return GetNearbyTileInformation(parameter, this->tile, this->ro.grffile->grf_version >= 8); /* Current animation frame of nearby house tiles */ case 0x63: { @@ -362,7 +362,7 @@ static uint32 GetDistanceFromNearbyHouse /* Cargo acceptance history of nearby stations */ case 0x64: { - CargoID cid = GetCargoTranslation(parameter, this->ro->grffile); + CargoID cid = GetCargoTranslation(parameter, this->ro.grffile); if (cid == CT_INVALID) return 0; /* Extract tile offset. */ @@ -400,7 +400,7 @@ static uint32 GetDistanceFromNearbyHouse /* Information about the grf local classid if the house has a class */ uint houseclass = 0; if (hs->class_id != HOUSE_NO_CLASS) { - houseclass = (hs->grf_prop.grffile == this->ro->grffile ? 1 : 2) << 8; + houseclass = (hs->grf_prop.grffile == this->ro.grffile ? 1 : 2) << 8; houseclass |= _class_mapping[hs->class_id].class_id; } /* old house type or grf-local houseid */ @@ -408,7 +408,7 @@ static uint32 GetDistanceFromNearbyHouse if (this->house_id < NEW_HOUSE_OFFSET) { local_houseid = this->house_id; } else { - local_houseid = (hs->grf_prop.grffile == this->ro->grffile ? 1 : 2) << 8; + local_houseid = (hs->grf_prop.grffile == this->ro.grffile ? 1 : 2) << 8; local_houseid |= hs->grf_prop.local_id; } return houseclass << 16 | local_houseid; @@ -440,7 +440,7 @@ uint16 GetHouseCallback(CallbackID callb HouseResolverObject object(house_id, tile, town, callback, param1, param2, not_yet_constructed, initial_random_bits, watched_cargo_triggers); - const SpriteGroup *group = SpriteGroup::Resolve(HouseSpec::Get(house_id)->grf_prop.spritegroup[0], &object); + const SpriteGroup *group = SpriteGroup::Resolve(HouseSpec::Get(house_id)->grf_prop.spritegroup[0], object); if (group == NULL) return CALLBACK_FAILED; return group->GetCallbackResult(); @@ -490,7 +490,7 @@ void DrawNewHouseTile(TileInfo *ti, Hous HouseResolverObject object(house_id, ti->tile, Town::GetByTile(ti->tile)); - const SpriteGroup *group = SpriteGroup::Resolve(hs->grf_prop.spritegroup[0], &object); + const SpriteGroup *group = SpriteGroup::Resolve(hs->grf_prop.spritegroup[0], object); if (group != NULL && group->type == SGT_TILELAYOUT) { /* Limit the building stage to the number of stages supplied. */ const TileLayoutSpriteGroup *tlgroup = (const TileLayoutSpriteGroup *)group; @@ -615,7 +615,7 @@ static void DoTriggerHouse(TileIndex til HouseResolverObject object(hid, tile, Town::GetByTile(tile), CBID_RANDOM_TRIGGER); object.trigger = trigger; - const SpriteGroup *group = SpriteGroup::Resolve(hs->grf_prop.spritegroup[0], &object); + const SpriteGroup *group = SpriteGroup::Resolve(hs->grf_prop.spritegroup[0], object); if (group == NULL) return; byte new_random_bits = Random();