|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "engine/clx_sprite.hpp"
|
|
|
|
|
#include "engine/point.hpp"
|
|
|
|
|
#include "engine/surface.hpp"
|
|
|
|
|
#include "spelldat.h"
|
|
|
|
|
|
|
|
|
|
#define SPLICONLENGTH 56
|
|
|
|
|
|
|
|
|
|
namespace devilution {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Draw a large (56x56) spell icon onto the given buffer.
|
|
|
|
|
*
|
|
|
|
|
* @param out Output buffer.
|
|
|
|
|
* @param position Buffer coordinates (bottom-left).
|
|
|
|
|
* @param spell Spell ID.
|
|
|
|
|
*/
|
|
|
|
|
void DrawLargeSpellIcon(const Surface &out, Point position, SpellID spell);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Draw a small (37x38) spell icon onto the given buffer.
|
|
|
|
|
*
|
|
|
|
|
* @param out Output buffer.
|
|
|
|
|
* @param position Buffer coordinates (bottom-left).
|
|
|
|
|
* @param spell Spell ID.
|
|
|
|
|
*/
|
|
|
|
|
void DrawSmallSpellIcon(const Surface &out, Point position, SpellID spell);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Draw an inset 2px border for a large (56x56) spell icon.
|
|
|
|
|
*
|
|
|
|
|
* @param out Output buffer.
|
|
|
|
|
* @param position Buffer coordinates (bottom-left).
|
|
|
|
|
* @param spell Spell ID.
|
|
|
|
|
*/
|
|
|
|
|
void DrawLargeSpellIconBorder(const Surface &out, Point position, uint8_t color);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Draw an inset 2px border for a small (37x38) spell icon.
|
|
|
|
|
*
|
|
|
|
|
* @param out Output buffer.
|
|
|
|
|
* @param position Buffer coordinates (bottom-left).
|
|
|
|
|
* @param spell Spell ID.
|
|
|
|
|
*/
|
|
|
|
|
void DrawSmallSpellIconBorder(const Surface &out, Point position);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Set the color mapping for the `Draw(Small|Large)SpellIcon(Border)` calls.
|
|
|
|
|
*/
|
|
|
|
|
void SetSpellTrans(SpellType t);
|
|
|
|
|
|
|
|
|
|
void LoadLargeSpellIcons();
|
|
|
|
|
void FreeLargeSpellIcons();
|
|
|
|
|
|
|
|
|
|
void LoadSmallSpellIcons();
|
|
|
|
|
void FreeSmallSpellIcons();
|
|
|
|
|
|
|
|
|
|
} // namespace devilution
|