diff options
author | frosch <frosch@openttd.org> | 2014-03-03 20:02:31 +0000 |
---|---|---|
committer | frosch <frosch@openttd.org> | 2014-03-03 20:02:31 +0000 |
commit | 6b61c4608fab00c7bfc78c296b3c85f611681f59 (patch) | |
tree | 9919983ecf008602a497445b2b3e05b5c32892b8 /src/newgrf_railtype.cpp | |
parent | b935cb84156f18b51196288ff6d12f8ca5b26630 (diff) | |
download | openttd-6b61c4608fab00c7bfc78c296b3c85f611681f59.tar.xz |
(svn r26388) -Codechange: Move resolving of Action 3 into ResolverObject constructor.
Diffstat (limited to 'src/newgrf_railtype.cpp')
-rw-r--r-- | src/newgrf_railtype.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/newgrf_railtype.cpp b/src/newgrf_railtype.cpp index de735193f..f43689698 100644 --- a/src/newgrf_railtype.cpp +++ b/src/newgrf_railtype.cpp @@ -79,15 +79,17 @@ RailTypeScopeResolver::RailTypeScopeResolver(ResolverObject &ro, TileIndex tile, /** * Resolver object for rail types. + * @param rti Railtype. NULL in NewGRF Inspect window. * @param tile %Tile containing the track. For track on a bridge this is the southern bridgehead. * @param context Are we resolving sprites for the upper halftile, or on a bridge? - * @param grffile The GRF to do the lookup for. + * @param rtsg Railpart of interest * @param param1 Extra parameter (first parameter of the callback, except railtypes do not have callbacks). * @param param2 Extra parameter (second parameter of the callback, except railtypes do not have callbacks). */ -RailTypeResolverObject::RailTypeResolverObject(TileIndex tile, TileContext context, const GRFFile *grffile, uint32 param1, uint32 param2) - : ResolverObject(grffile, CBID_NO_CALLBACK, param1, param2), railtype_scope(*this, tile, context) +RailTypeResolverObject::RailTypeResolverObject(const RailtypeInfo *rti, TileIndex tile, TileContext context, RailTypeSpriteGroup rtsg, uint32 param1, uint32 param2) + : ResolverObject(rti != NULL ? rti->grffile[rtsg] : NULL, CBID_NO_CALLBACK, param1, param2), railtype_scope(*this, tile, context) { + this->root_spritegroup = rti != NULL ? rti->group[rtsg] : NULL; } /** @@ -104,8 +106,8 @@ SpriteID GetCustomRailSprite(const RailtypeInfo *rti, TileIndex tile, RailTypeSp if (rti->group[rtsg] == NULL) return 0; - RailTypeResolverObject object(tile, context, rti->grffile[rtsg]); - const SpriteGroup *group = SpriteGroup::Resolve(rti->group[rtsg], object); + RailTypeResolverObject object(rti, tile, context, rtsg); + const SpriteGroup *group = object.Resolve(); if (group == NULL || group->GetNumResults() == 0) return 0; return group->GetResult(); @@ -127,9 +129,9 @@ SpriteID GetCustomSignalSprite(const RailtypeInfo *rti, TileIndex tile, SignalTy uint32 param1 = gui ? 0x10 : 0x00; uint32 param2 = (type << 16) | (var << 8) | state; - RailTypeResolverObject object(tile, TCX_NORMAL, rti->grffile[RTSG_SIGNALS], param1, param2); + RailTypeResolverObject object(rti, tile, TCX_NORMAL, RTSG_SIGNALS, param1, param2); - const SpriteGroup *group = SpriteGroup::Resolve(rti->group[RTSG_SIGNALS], object); + const SpriteGroup *group = object.Resolve(); if (group == NULL || group->GetNumResults() == 0) return 0; return group->GetResult(); |