richk@6719: /* $Id$ */ richk@6719: richk@6719: #ifndef NEWGRF_CANAL_H richk@6719: #define NEWGRF_CANAL_H richk@6719: richk@6719: /** List of different canal 'features'. richk@6719: * Each feature gets an entry in the canal spritegroup table */ richk@6719: enum CanalFeature { richk@6719: CF_WATERSLOPE, richk@6719: CF_LOCKS, richk@6719: CF_DIKES, richk@6719: CF_ICON, richk@6719: CF_DOCKS, rubidium@6872: CF_RIVER_SLOPE, rubidium@6872: CF_RIVER_EDGE, richk@6719: CF_END, richk@6719: }; richk@6719: richk@6719: rubidium@6872: struct WaterFeature { rubidium@6872: const SpriteGroup *group; rubidium@6872: uint8 callbackmask; rubidium@6872: uint8 flags; rubidium@6872: }; rubidium@6872: rubidium@6872: richk@6719: /** Table of canal 'feature' sprite groups */ rubidium@6872: extern WaterFeature _water_feature[CF_END]; richk@6719: richk@6719: richk@6719: /** Lookup the base sprite to use for a canal. richk@6719: * @param feature Which canal feature we want. richk@6719: * @param tile Tile index of canal, if appropriate. richk@6719: * @return Base sprite returned by GRF, or 0 if none. richk@6719: */ richk@6719: SpriteID GetCanalSprite(CanalFeature feature, TileIndex tile); richk@6719: richk@6719: #endif /* NEWGRF_CANAL_H */