Enumerations | Functions | Variables

# grf.cpp File Reference

Reading graphics data from (New)GRF files. More...

`#include "../stdafx.h"`
`#include "../gfx_func.h"`
`#include "../fileio_func.h"`
`#include "../debug.h"`
`#include "../strings_func.h"`
`#include "table/strings.h"`
`#include "../error.h"`
`#include "../core/math_func.hpp"`
`#include "../core/alloc_type.hpp"`
`#include "../core/bitmath_func.hpp"`
`#include "grf.hpp"`

Go to the source code of this file.

## Enumerations
enum | SpriteColourComponent { SCC_RGB = 1 << 0, SCC_ALPHA = 1 << 1, SCC_PAL = 1 << 2, SCC_MASK = SCC_RGB | SCC_ALPHA | SCC_PAL }
| The different colour components a sprite can have. More...
## Functions
static bool | WarnCorruptSprite (uint8 file_slot, size_t file_pos, int line)
| We found a corrupted sprite.
bool | DecodeSingleSprite (SpriteLoader::Sprite *sprite, uint8 file_slot, size_t file_pos, SpriteType sprite_type, int64 num, byte type, ZoomLevel zoom_lvl, byte colour_fmt, byte container_format)
| Decode the image data of a single sprite.
uint8 | LoadSpriteV1 (SpriteLoader::Sprite *sprite, uint8 file_slot, size_t file_pos, SpriteType sprite_type, bool load_32bpp)
uint8 | LoadSpriteV2 (SpriteLoader::Sprite *sprite, uint8 file_slot, size_t file_pos, SpriteType sprite_type, bool load_32bpp)
## Variables
const byte | _palmap_w2d []

## Detailed Description

Reading graphics data from (New)GRF files.

Definition in file grf.cpp.

## Enumeration Type Documentation

enum SpriteColourComponent

The different colour components a sprite can have.

Enumerator:

  SCC_RGB | Sprite has RGB.
  SCC_ALPHA | Sprite has alpha.
  SCC_PAL | Sprite has palette data.
  SCC_MASK | Mask of valid colour bits.

Definition at line 27 of file grf.cpp.

## Function Documentation

bool DecodeSingleSprite | ( | SpriteLoader::Sprite * | sprite,
|  | uint8 | file_slot,
|  | size_t | file_pos,
|  | SpriteType | sprite_type,
|  | int64 | num,
|  | byte | type,
|  | ZoomLevel | zoom_lvl,
|  | byte | colour_fmt,
|  | byte | container_format |
| ) |  |  |

Decode the image data of a single sprite.

Parameters:

  `[in,out]` | sprite | Filled with the sprite image data.
  | file_slot | File slot.
  | file_pos | File position.
  | sprite_type | Type of the sprite we're decoding.
  | num | Size of the decompressed sprite.
  | type | Type of the encoded sprite.
  | zoom_lvl | Requested zoom level.
  | colour_fmt | Colour format of the sprite.
  | container_format | Container format of the GRF this sprite is in.

Returns:
  True if the sprite was successfully loaded.

Definition at line 68 of file grf.cpp.

References _palette_remap_grf, SpriteLoader::CommonPixel::a, SpriteLoader::Sprite::AllocateData(), SpriteLoader::CommonPixel::b, SpriteLoader::Sprite::data, DEBUG, FioGetFilename(), FioReadByte(), SpriteLoader::CommonPixel::g, SpriteLoader::Sprite::height, SpriteLoader::CommonPixel::m, min(), SpriteLoader::CommonPixel::r, SCC_ALPHA, SCC_PAL, SCC_RGB, ST_FONT, ST_NORMAL, WarnCorruptSprite(), and SpriteLoader::Sprite::width.

static bool WarnCorruptSprite | ( | uint8 | file_slot,
|  | size_t | file_pos,
|  | int | line |
| ) |  |  | `[static]`

We found a corrupted sprite.

This means that the sprite itself contains invalid data or is too small for the given dimensions.

Parameters:

  | file_slot | the file the errored sprite is in
  | file_pos | the location in the file of the errored sprite
  | line | the line where the error occurs.

Returns:
  always false (to tell loading the sprite failed)

Definition at line 43 of file grf.cpp.

References DEBUG, FioGetFilename(), INVALID_STRING_ID, SetDParamStr(), ShowErrorMessage(), and WL_ERROR.

Referenced by DecodeSingleSprite().