You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

59 lines
1.5 KiB

#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