1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-25 15:54:31 +01:00

Expose DrawTextBasic() and DrawTextEllipsised()

This commit is contained in:
Gymnasiast
2020-08-26 14:44:30 +02:00
parent 8b19d943a4
commit e1b778832b
3 changed files with 21 additions and 13 deletions

View File

@@ -13,6 +13,7 @@
#include "../common.h"
#include "../interface/Colour.h"
#include "../interface/ZoomLevel.hpp"
#include "Text.h"
#include <optional>
#include <vector>

View File

@@ -115,18 +115,18 @@ static void DrawText(
DrawText(dpi, coords, paint, buffer);
}
static void DrawTextCompat(
void DrawTextBasic(
rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, rct_string_id format, const void* args, uint8_t colour,
TextAlignment alignment, bool underline = false)
TextAlignment alignment, bool underline)
{
TextPaint textPaint = { colour, FONT_SPRITE_BASE_MEDIUM, underline, alignment };
gCurrentFontSpriteBase = FONT_SPRITE_BASE_MEDIUM;
DrawText(dpi, coords, textPaint, format, args);
}
static void DrawTextEllipsisedCompat(
void DrawTextEllipsised(
rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, int32_t width, rct_string_id format, void* args, uint8_t colour,
TextAlignment alignment, bool underline = false)
TextAlignment alignment, bool underline)
{
TextPaint textPaint = { colour, FONT_SPRITE_BASE_MEDIUM, underline, alignment };
gCurrentFontSpriteBase = FONT_SPRITE_BASE_MEDIUM;
@@ -148,56 +148,56 @@ void gfx_draw_string(rct_drawpixelinfo* dpi, const_utf8string buffer, uint8_t co
void gfx_draw_string_left(
rct_drawpixelinfo* dpi, rct_string_id format, void* args, uint8_t colour, const ScreenCoordsXY& coords)
{
DrawTextCompat(dpi, coords, format, args, colour, TextAlignment::LEFT);
DrawTextBasic(dpi, coords, format, args, colour, TextAlignment::LEFT);
}
void gfx_draw_string_centred(
rct_drawpixelinfo* dpi, rct_string_id format, const ScreenCoordsXY& coords, uint8_t colour, const void* args)
{
DrawTextCompat(dpi, coords, format, args, colour, TextAlignment::CENTRE);
DrawTextBasic(dpi, coords, format, args, colour, TextAlignment::CENTRE);
}
void gfx_draw_string_right(
rct_drawpixelinfo* dpi, rct_string_id format, void* args, uint8_t colour, const ScreenCoordsXY& coords)
{
DrawTextCompat(dpi, coords, format, args, colour, TextAlignment::RIGHT);
DrawTextBasic(dpi, coords, format, args, colour, TextAlignment::RIGHT);
}
// Underline
void draw_string_left_underline(
rct_drawpixelinfo* dpi, rct_string_id format, void* args, uint8_t colour, const ScreenCoordsXY& coords)
{
DrawTextCompat(dpi, coords, format, args, colour, TextAlignment::LEFT, true);
DrawTextBasic(dpi, coords, format, args, colour, TextAlignment::LEFT, true);
}
void draw_string_centred_underline(
rct_drawpixelinfo* dpi, rct_string_id format, void* args, uint8_t colour, const ScreenCoordsXY& coords)
{
DrawTextCompat(dpi, coords, format, args, colour, TextAlignment::CENTRE, true);
DrawTextBasic(dpi, coords, format, args, colour, TextAlignment::CENTRE, true);
}
void draw_string_right_underline(
rct_drawpixelinfo* dpi, rct_string_id format, void* args, uint8_t colour, const ScreenCoordsXY& coords)
{
DrawTextCompat(dpi, coords, format, args, colour, TextAlignment::RIGHT, true);
DrawTextBasic(dpi, coords, format, args, colour, TextAlignment::RIGHT, true);
}
// Ellipsised
void gfx_draw_string_left_clipped(
rct_drawpixelinfo* dpi, rct_string_id format, void* args, uint8_t colour, const ScreenCoordsXY& coords, int32_t width)
{
DrawTextEllipsisedCompat(dpi, coords, width, format, args, colour, TextAlignment::LEFT);
DrawTextEllipsised(dpi, coords, width, format, args, colour, TextAlignment::LEFT);
}
void gfx_draw_string_centred_clipped(
rct_drawpixelinfo* dpi, rct_string_id format, void* args, uint8_t colour, const ScreenCoordsXY& coords, int32_t width)
{
DrawTextEllipsisedCompat(dpi, coords, width, format, args, colour, TextAlignment::CENTRE);
DrawTextEllipsised(dpi, coords, width, format, args, colour, TextAlignment::CENTRE);
}
void gfx_draw_string_right_clipped(
rct_drawpixelinfo* dpi, rct_string_id format, void* args, uint8_t colour, const ScreenCoordsXY& coords, int32_t width)
{
DrawTextEllipsisedCompat(dpi, coords, width, format, args, colour, TextAlignment::RIGHT);
DrawTextEllipsised(dpi, coords, width, format, args, colour, TextAlignment::RIGHT);
}
// Wrapping

View File

@@ -48,3 +48,10 @@ public:
int32_t GetWidth();
int32_t GetLineCount();
};
void DrawTextBasic(
rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, rct_string_id format, const void* args, uint8_t colour,
TextAlignment alignment, bool underline = false);
void DrawTextEllipsised(
rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, int32_t width, rct_string_id format, void* args, uint8_t colour,
TextAlignment alignment, bool underline = false);