OpenTTD Source 20260206-master-g4d4e37dbf1
grf.cpp File Reference

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

#include "../stdafx.h"
#include "../gfx_func.h"
#include "../debug.h"
#include "../settings_type.h"
#include "../strings_func.h"
#include "../error.h"
#include "../spritecache.h"
#include "grf.hpp"
#include "table/strings.h"
#include "../safeguards.h"

Go to the source code of this file.

Functions

static bool WarnCorruptSprite (const SpriteFile &file, size_t file_pos, int line)
 We found a corrupted sprite.
bool DecodeSingleSprite (SpriteLoader::Sprite *sprite, SpriteFile &file, size_t file_pos, SpriteType sprite_type, int64_t num, uint8_t type, ZoomLevel zoom_lvl, SpriteComponents colour_fmt, uint8_t container_format)
 Decode the image data of a single sprite.
static ZoomLevels LoadSpriteV1 (SpriteLoader::SpriteCollection &sprite, SpriteFile &file, size_t file_pos, SpriteType sprite_type, bool load_32bpp, ZoomLevels &avail_8bpp)
static ZoomLevels LoadSpriteV2 (SpriteLoader::SpriteCollection &sprite, SpriteFile &file, size_t file_pos, SpriteType sprite_type, bool load_32bpp, SpriteCacheCtrlFlags control_flags, ZoomLevels &avail_8bpp, ZoomLevels &avail_32bpp)

Variables

const uint8_t _palmap_w2d []

Detailed Description

Reading graphics data from (New)GRF files.

Definition in file grf.cpp.

Function Documentation

◆ DecodeSingleSprite()

bool DecodeSingleSprite ( SpriteLoader::Sprite * sprite,
SpriteFile & file,
size_t file_pos,
SpriteType sprite_type,
int64_t num,
uint8_t type,
ZoomLevel zoom_lvl,
SpriteComponents colour_fmt,
uint8_t container_format )

Decode the image data of a single sprite.

Parameters
[in,out]spriteFilled with the sprite image data.
fileThe file with the sprite data.
file_posFile position.
sprite_typeType of the sprite we're decoding.
numSize of the decompressed sprite.
typeType of the encoded sprite.
zoom_lvlRequested zoom level.
colour_fmtColour format of the sprite.
container_formatContainer format of the GRF this sprite is in.
Returns
True if the sprite was successfully loaded.

Definition at line 57 of file grf.cpp.

References SpriteLoader::CommonPixel::a, SpriteLoader::Sprite::AllocateData(), Alpha, SpriteLoader::CommonPixel::b, SpriteLoader::Sprite::data, Debug, Font, SpriteLoader::CommonPixel::g, RandomAccessFile::GetSimplifiedFilename(), SpriteLoader::Sprite::height, SpriteLoader::CommonPixel::m, SpriteFile::NeedsPaletteRemap(), Normal, Palette, SpriteLoader::CommonPixel::r, RandomAccessFile::ReadByte(), RGB, BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), WarnCorruptSprite(), and SpriteLoader::Sprite::width.

◆ LoadSpriteV1()

ZoomLevels LoadSpriteV1 ( SpriteLoader::SpriteCollection & sprite,
SpriteFile & file,
size_t file_pos,
SpriteType sprite_type,
bool load_32bpp,
ZoomLevels & avail_8bpp )
static

Definition at line 215 of file grf.cpp.

◆ LoadSpriteV2()

ZoomLevels LoadSpriteV2 ( SpriteLoader::SpriteCollection & sprite,
SpriteFile & file,
size_t file_pos,
SpriteType sprite_type,
bool load_32bpp,
SpriteCacheCtrlFlags control_flags,
ZoomLevels & avail_8bpp,
ZoomLevels & avail_32bpp )
static

Definition at line 256 of file grf.cpp.

◆ WarnCorruptSprite()

bool WarnCorruptSprite ( const SpriteFile & file,
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
fileThe file the errored sprite is in.
file_posthe location in the file of the errored sprite
linethe line where the error occurs.
Returns
always false (to tell loading the sprite failed)

Definition at line 33 of file grf.cpp.

References Debug, GetEncodedString(), RandomAccessFile::GetSimplifiedFilename(), ShowErrorMessage(), and WL_ERROR.

Referenced by DecodeSingleSprite().