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.
52 lines
1.4 KiB
52 lines
1.4 KiB
/** |
|
* @file common.h |
|
* |
|
* Common functions for QoL features |
|
*/ |
|
#pragma once |
|
|
|
#include <SDL.h> |
|
|
|
namespace devilution { |
|
|
|
struct CelOutputBuffer; |
|
|
|
/** |
|
* @brief Return width (in pixels) of the passed in string, when printed with smaltext.cel. Does not consider line breaks. |
|
* @param s String for which to compute width |
|
* @return Pixel width of the string |
|
*/ |
|
int GetTextWidth(const char *s); |
|
|
|
/** |
|
* @brief Quickly draw a horizontal line (via memset). Does not clip to output buffer. |
|
* @param out Destination buffer |
|
* @param x Start X coordinate (left end) |
|
* @param y Vertical location of line |
|
* @param width Number of pixels to fill |
|
* @param col Color index to use for filling |
|
*/ |
|
void FastDrawHorizLine(const CelOutputBuffer &out, int x, int y, int width, Uint8 col); |
|
|
|
/** |
|
* @brief Quickly draw a vertical line. Does not clip to output buffer. |
|
* @param out Destination buffer |
|
* @param x Horizontal location of line |
|
* @param y Start Y coordinate (top end) |
|
* @param height Number of pixels to fill |
|
* @param col Color index to use for filling |
|
*/ |
|
void FastDrawVertLine(const CelOutputBuffer &out, int x, int y, int height, Uint8 col); |
|
|
|
/** |
|
* @brief Prints integer into buffer, using ',' as thousands separator. |
|
* @param out Destination buffer |
|
* @param n Number to print |
|
* @return Address of first character after printed number |
|
*/ |
|
char *PrintWithSeparator(char *out, long long n); |
|
|
|
void FreeQol(); |
|
void InitQol(); |
|
|
|
} // namespace devilution
|
|
|