Files @ r6071:3dcae6ddc2c7
Branch filter:

Location: cpp/openttd-patchpack/source/src/fontcache.h

tron
(svn r8802) -Fix

-Fix: When inserting an order for a ship while checking the distance between the new order and the order it is inserted after adhere the order types to determine the correct type of destination (i.e. station or depot)
Also do a better job in determining the preceding order
NOTE: 0.5 candidate
/* $Id$ */

#ifndef FONTCACHE_H
#define FONTCACHE_H

/** Get the SpriteID mapped to the given font size and key */
SpriteID GetUnicodeGlyph(FontSize size, uint32 key);

/** Map a SpriteID to the font size and key */
void SetUnicodeGlyph(FontSize size, uint32 key, SpriteID sprite);

/** Initialize the glyph map */
void InitializeUnicodeGlyphMap(void);

#ifdef WITH_FREETYPE

typedef struct FreeTypeSettings {
	char small_font[260];
	char medium_font[260];
	char large_font[260];
	uint small_size;
	uint medium_size;
	uint large_size;
} FreeTypeSettings;

extern FreeTypeSettings _freetype;

void InitFreeType(void);
const struct Sprite *GetGlyph(FontSize size, uint32 key);
uint GetGlyphWidth(FontSize size, uint32 key);

#else

/* Stub for initializiation */
static inline void InitFreeType(void) {}

/** Get the Sprite for a glyph */
static inline const Sprite *GetGlyph(FontSize size, uint32 key)
{
	SpriteID sprite = GetUnicodeGlyph(size, key);
	if (sprite == 0) sprite = GetUnicodeGlyph(size, '?');
	return GetSprite(sprite);
}


/** Get the width of a glyph */
static inline uint GetGlyphWidth(FontSize size, uint32 key)
{
	SpriteID sprite = GetUnicodeGlyph(size, key);
	if (sprite == 0) sprite = GetUnicodeGlyph(size, '?');
	return SpriteExists(sprite) ? GetSprite(sprite)->width + (size != FS_NORMAL) : 0;
}

#endif /* WITH_FREETYPE */

#endif /* FONTCACHE_H */