OpenTTD Source  20241124-master-g9399a92a4f
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.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_t GetCanalCallback (CallbackID callback, uint32_t param1, uint32_t 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_t GetCanalCallback ( CallbackID  callback,
uint32_t  param1,
uint32_t  param2,
CanalFeature  feature,
TileIndex  tile 
)
static

Run a specific callback for canals.

Parameters
callbackCallback ID.
param1Callback parameter 1.
param2Callback parameter 2.
featureFor which feature to run the callback.
tileTile index of canal.
Returns
Callback result or CALLBACK_FAILED if the callback failed.

Definition at line 158 of file newgrf_canal.cpp.

◆ GetCanalSprite()

SpriteID GetCanalSprite ( CanalFeature  feature,
TileIndex  tile 
)

Lookup the base sprite to use for a canal.

Parameters
featureWhich canal feature we want.
tileTile 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
tileTile index of the canal/water tile.
featureFor which feature to get the new sprite offset.
cur_offsetCurrent sprite offset.
Returns
New sprite offset.

Definition at line 171 of file newgrf_canal.cpp.

References _water_feature, CBM_CANAL_SPRITE_OFFSET, and HasBit().