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