SpriteID GetCanalSprite(CanalFeature feature, TileIndex tile) { ResolverObject object; const SpriteGroup *group; NewCanalResolver(&object, tile, _water_feature[feature].grffile); group = SpriteGroup::Resolve(_water_feature[feature].group, &object); if (group == NULL) return 0; return group->GetResult(); }
/** * Run a specific callback for canals. * @param callback Callback ID. * @param param1 Callback parameter 1. * @param param2 Callback parameter 2. * @param feature For which feature to run the callback. * @param tile Tile index of canal. * @return Callback result or CALLBACK_FAILED if the callback failed. */ static uint16 GetCanalCallback(CallbackID callback, uint32 param1, uint32 param2, CanalFeature feature, TileIndex tile) { ResolverObject object; const SpriteGroup *group; NewCanalResolver(&object, tile, _water_feature[feature].grffile); object.callback = callback; object.callback_param1 = param1; object.callback_param2 = param2; group = SpriteGroup::Resolve(_water_feature[feature].group, &object); if (group == NULL) return CALLBACK_FAILED; return group->GetCallbackResult(); }