OpenTTD Source: src/newgrf_canal.cpp File Reference

OpenTTD Source 13.1

Data Structures | Functions | Variables
newgrf_canal.cpp File Reference
`#include "stdafx.h"`
`#include "debug.h"`
`#include "newgrf_spritegroup.h"`
`#include "newgrf_canal.h"`
`#include "water.h"`
`#include "water_map.h"`
`#include "spritecache.h"`
`#include "safeguards.h"`

Go to the source code of this file.

## Data Structures
struct | CanalScopeResolver
| Scope resolver of a canal tile. More...
struct | CanalResolverObject
| Resolver object for canals. More...

## Functions
SpriteID | GetCanalSprite (CanalFeature feature, TileIndex tile)
| Lookup the base sprite to use for a canal. More...
static uint16 | GetCanalCallback (CallbackID callback, uint32 param1, uint32 param2, CanalFeature feature, TileIndex tile)
| Run a specific callback for canals. More...
uint | GetCanalSpriteOffset (CanalFeature feature, TileIndex tile, uint cur_offset)
| Get the new sprite offset for a water tile. More...

## Variables
WaterFeature | _water_feature [CF_END]
| Table of canal 'feature' sprite groups.

## Detailed Description

Implementation of NewGRF canals.

Definition in file newgrf_canal.cpp.

## Function Documentation

## ◆ GetCanalCallback()

static uint16 GetCanalCallback | ( | CallbackID | callback,
|  | uint32 | param1,
|  | uint32 | param2,
|  | CanalFeature | feature,
|  | TileIndex | tile
| ) |  |
| static

Run a specific callback for canals.

Parameters

  callback | Callback ID.
  param1 | Callback parameter 1.
  param2 | Callback parameter 2.
  feature | For which feature to run the callback.
  tile | Tile index of canal.

Returns
  Callback result or CALLBACK_FAILED if the callback failed.

Definition at line 158 of file newgrf_canal.cpp.

Referenced by GetCanalSpriteOffset().

## ◆ GetCanalSprite()

SpriteID GetCanalSprite | ( | CanalFeature | feature,
|  | TileIndex | tile
| ) |  |

Lookup the base sprite to use for a canal.

Parameters

  feature | Which canal feature we want.
  tile | Tile index of canal, if appropriate.

Returns
  Base sprite returned by GRF, or `0` if none.

Definition at line 140 of file newgrf_canal.cpp.

References SpriteGroup::Resolve().

## ◆ GetCanalSpriteOffset()

uint GetCanalSpriteOffset | ( | CanalFeature | feature,
|  | TileIndex | tile,
|  | uint | cur_offset
| ) |  |

Get the new sprite offset for a water tile.

Parameters

  tile | Tile index of the canal/water tile.
  feature | For which feature to get the new sprite offset.
  cur_offset | Current sprite offset.

Returns
  New sprite offset.

Definition at line 171 of file newgrf_canal.cpp.

References _water_feature, CALLBACK_FAILED, CBID_CANALS_SPRITE_OFFSET, CBM_CANAL_SPRITE_OFFSET, GetCanalCallback(), and HasBit().