peter1138@6583: /* $Id$ */ peter1138@6583: rubidium@9111: /** @file newgrf_canal.h Handling of NewGRF canals. */ rubidium@9111: peter1138@6583: #ifndef NEWGRF_CANAL_H peter1138@6583: #define NEWGRF_CANAL_H peter1138@6583: peter1138@6583: /** List of different canal 'features'. peter1138@6583: * Each feature gets an entry in the canal spritegroup table */ peter1138@6583: enum CanalFeature { peter1138@6583: CF_WATERSLOPE, peter1138@6583: CF_LOCKS, peter1138@6583: CF_DIKES, peter1138@6583: CF_ICON, peter1138@6583: CF_DOCKS, peter1138@8360: CF_RIVER_SLOPE, peter1138@8360: CF_RIVER_EDGE, peter1138@6583: CF_END, peter1138@6583: }; peter1138@6583: peter1138@6583: peter1138@8372: struct WaterFeature { peter1138@8372: const SpriteGroup *group; frosch@9750: const GRFFile *grffile; ///< newgrf where 'group' belongs to peter1138@8372: uint8 callbackmask; peter1138@8372: uint8 flags; peter1138@8372: }; peter1138@8372: peter1138@8372: peter1138@6583: /** Table of canal 'feature' sprite groups */ peter1138@8372: extern WaterFeature _water_feature[CF_END]; peter1138@6583: peter1138@6583: peter1138@6583: /** Lookup the base sprite to use for a canal. peter1138@6583: * @param feature Which canal feature we want. peter1138@6583: * @param tile Tile index of canal, if appropriate. peter1138@6583: * @return Base sprite returned by GRF, or 0 if none. peter1138@6583: */ peter1138@6583: SpriteID GetCanalSprite(CanalFeature feature, TileIndex tile); peter1138@6583: peter1138@6583: #endif /* NEWGRF_CANAL_H */