(svn r26085) -Codechange: Pass ResolverObjects as reference instead of pointer since they are never NULL.
This commit is contained in:
@@ -39,7 +39,7 @@ HouseOverrideManager _house_mngr(NEW_HOUSE_OFFSET, NUM_HOUSES, INVALID_HOUSE_ID)
|
||||
* @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(HouseID house_id, TileIndex tile, Town
|
||||
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(uint8 parameter, TileIndex tile, HouseI
|
||||
}
|
||||
|
||||
/* 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(uint8 parameter, TileIndex tile, HouseI
|
||||
|
||||
/* 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(uint8 parameter, TileIndex tile, HouseI
|
||||
/* 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(uint8 parameter, TileIndex tile, HouseI
|
||||
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 callback, uint32 param1, uint32 param2, House
|
||||
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, HouseID house_id)
|
||||
|
||||
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 tile, HouseTrigger trigger, byte base_rando
|
||||
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();
|
||||
|
Reference in New Issue
Block a user