Data Structures | Functions | Variables

# newgrf_canal.cpp File Reference

Implementation of NewGRF canals. More...

`#include "stdafx.h"`
`#include "debug.h"`
`#include "newgrf_spritegroup.h"`
`#include "newgrf_canal.h"`
`#include "water_map.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.
static uint16 | GetCanalCallback (CallbackID callback, uint32 param1, uint32 param2, CanalFeature feature, TileIndex tile)
| Run a specific callback for canals.
uint | GetCanalSpriteOffset (CanalFeature feature, TileIndex tile, uint cur_offset)
| Get the new sprite offset for a water tile.
## 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

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 130 of file newgrf_canal.cpp.

References CALLBACK_FAILED, and SpriteGroup::Resolve().

Referenced by GetCanalSpriteOffset().

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 112 of file newgrf_canal.cpp.

References SpriteGroup::Resolve().

Referenced by DrawCanalWater(), DrawWaterEdges(), and DrawWaterLock().

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 146 of file newgrf_canal.cpp.

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

Referenced by DrawWaterSprite(), and DrawWaterTileStruct().