diff --git a/src/openrct2/drawing/ScrollingText.cpp b/src/openrct2/drawing/ScrollingText.cpp index 0d35edea29..a054247a43 100644 --- a/src/openrct2/drawing/ScrollingText.cpp +++ b/src/openrct2/drawing/ScrollingText.cpp @@ -17,6 +17,7 @@ #include "TTF.h" #include +#include #pragma pack(push, 1) /* size: 0xA12 */ @@ -38,6 +39,7 @@ assert_struct_size(rct_draw_scroll_text, 0xA12); static rct_draw_scroll_text _drawScrollTextList[MAX_SCROLLING_TEXT_ENTRIES]; static uint8_t _characterBitmaps[FONT_SPRITE_GLYPH_COUNT + SPR_G2_GLYPH_COUNT][8]; static uint32_t _drawSCrollNextIndex = 0; +static std::mutex _scrollingTextMutex; static void scrolling_text_set_bitmap_for_sprite( utf8* text, int32_t scroll, uint8_t* bitmap, const int16_t* scrollPositionOffsets); @@ -1472,6 +1474,8 @@ void scrolling_text_invalidate() */ int32_t scrolling_text_setup(paint_session* session, rct_string_id stringId, uint16_t scroll, uint16_t scrollingMode) { + std::scoped_lock lock(_scrollingTextMutex); + assert(scrollingMode < MAX_SCROLLING_TEXT_MODES); rct_drawpixelinfo* dpi = &session->DPI;