Integrate gCommonStringFormatBuffer

This commit is contained in:
Ted John 2016-09-04 15:55:37 +01:00
parent b38416426f
commit 6a665330c2
15 changed files with 28 additions and 27 deletions

View File

@ -263,8 +263,6 @@
#define RCT2_ADDRESS_CURRENT_SUPPORT_SEGMENTS 0x0141E9B4
#define RCT2_ADDRESS_CURRENT_PAINT_TILE_MAX_HEIGHT 0x0141E9D8
#define RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER 0x0141ED68
// size: 500 chars
#define RCT2_ADDRESS_TOOLTIP_TEXT_BUFFER 0x0141FE44
#define RCT2_ADDRESS_TOOLTIP_TEXT_HEIGHT 0x01420044
@ -608,6 +606,7 @@
#define RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT 0x0141E9AC
#define RCT2_ADDRESS_GAME_COMMAND_ERROR_TITLE 0x0141E9AE
#define RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER 0x0141ED68
#define RCT2_ADDRESS_NEXT_EXPENDITURE_TYPE 0x0141F56C
#define RCT2_ADDRESS_WATER_RAISE_COST 0x0141F738
#define RCT2_ADDRESS_WATER_LOWER_COST 0x0141F73C

View File

@ -246,7 +246,7 @@ int gfx_wrap_string(utf8 *text, int width, int *outNumLines, int *outFontHeight)
*/
void gfx_draw_string_left_clipped(rct_drawpixelinfo* dpi, rct_string_id format, void* args, int colour, int x, int y, int width)
{
char* buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char);
char* buffer = gCommonStringFormatBuffer;
format_string(buffer, format, args);
gCurrentFontSpriteBase = FONT_SPRITE_BASE_MEDIUM;
@ -271,7 +271,7 @@ void gfx_draw_string_left_clipped(rct_drawpixelinfo* dpi, rct_string_id format,
*/
void gfx_draw_string_centred_clipped(rct_drawpixelinfo *dpi, rct_string_id format, void *args, int colour, int x, int y, int width)
{
char* buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char);
char* buffer = gCommonStringFormatBuffer;
format_string(buffer, format, args);
gCurrentFontSpriteBase = FONT_SPRITE_BASE_MEDIUM;
@ -300,7 +300,7 @@ void gfx_draw_string_centred_clipped(rct_drawpixelinfo *dpi, rct_string_id forma
*/
void gfx_draw_string_right(rct_drawpixelinfo* dpi, rct_string_id format, void* args, int colour, int x, int y)
{
char* buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char);
char* buffer = gCommonStringFormatBuffer;
format_string(buffer, format, args);
// Measure text width
@ -348,7 +348,7 @@ int gfx_draw_string_centred_wrapped(rct_drawpixelinfo *dpi, void *args, int x, i
gfx_draw_string(dpi, buffer, colour, dpi->x, dpi->y);
buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char);
buffer = gCommonStringFormatBuffer;
format_string(buffer, format, args);
gCurrentFontSpriteBase = FONT_SPRITE_BASE_MEDIUM;
@ -397,7 +397,7 @@ int gfx_draw_string_left_wrapped(rct_drawpixelinfo *dpi, void *args, int x, int
char* buffer = RCT2_ADDRESS(0x009C383D, char);
gfx_draw_string(dpi, buffer, colour, dpi->x, dpi->y);
buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char);
buffer = gCommonStringFormatBuffer;
format_string(buffer, format, args);
gCurrentFontSpriteBase = FONT_SPRITE_BASE_MEDIUM;
@ -426,7 +426,7 @@ int gfx_draw_string_left_wrapped(rct_drawpixelinfo *dpi, void *args, int x, int
*/
void gfx_draw_string_left(rct_drawpixelinfo *dpi, rct_string_id format, void *args, int colour, int x, int y)
{
char* buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char);
char* buffer = gCommonStringFormatBuffer;
format_string(buffer, format, args);
gCurrentFontSpriteBase = FONT_SPRITE_BASE_MEDIUM;
gfx_draw_string(dpi, buffer, colour, x, y);
@ -438,7 +438,7 @@ void gfx_draw_string_left(rct_drawpixelinfo *dpi, rct_string_id format, void *ar
void gfx_draw_string_left_centred(rct_drawpixelinfo *dpi, rct_string_id format, void *args, int colour, int x, int y)
{
gCurrentFontSpriteBase = FONT_SPRITE_BASE_MEDIUM;
char *buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char);
char *buffer = gCommonStringFormatBuffer;
format_string(buffer, format, args);
int height = string_get_height_raw(buffer);
gfx_draw_string(dpi, buffer, colour, x, y - (height / 2));
@ -655,7 +655,7 @@ int string_get_height_raw(char *buffer)
void gfx_draw_string_centred_wrapped_partial(rct_drawpixelinfo *dpi, int x, int y, int width, int colour, rct_string_id format, void *args, int ticks)
{
int numLines, fontSpriteBase, lineHeight, lineY;
utf8 *buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, utf8);
utf8 *buffer = gCommonStringFormatBuffer;
gCurrentFontSpriteBase = FONT_SPRITE_BASE_MEDIUM;
gfx_draw_string(dpi, RCT2_ADDRESS(0x009C383D, char), colour, dpi->x, dpi->y);

View File

@ -220,7 +220,7 @@ int chat_history_draw_string(rct_drawpixelinfo *dpi, void *args, int x, int y, i
char* buffer = RCT2_ADDRESS(0x009C383D, char);
gfx_draw_string(dpi, buffer, 255, dpi->x, dpi->y);
buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char);
buffer = gCommonStringFormatBuffer;
format_string(buffer, STR_STRING, args);
gCurrentFontSpriteBase = FONT_SPRITE_BASE_MEDIUM;
@ -252,7 +252,7 @@ int chat_string_wrapped_get_height(void *args, int width)
gCurrentFontSpriteBase = FONT_SPRITE_BASE_MEDIUM;
char* buffer = RCT2_ADDRESS(0x009C383D, char);
buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char);
buffer = gCommonStringFormatBuffer;
format_string(buffer, STR_STRING, args);
gCurrentFontSpriteBase = FONT_SPRITE_BASE_MEDIUM;

View File

@ -538,7 +538,7 @@ static void widget_groupbox_draw(rct_drawpixelinfo *dpi, rct_window *w, int widg
if (widget_is_disabled(w, widgetIndex))
colour |= 0x40;
gfx_draw_string_left(dpi, widget->text, gCommonFormatArgs, colour, l, t);
textRight = l + gfx_get_string_width(RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char)) + 1;
textRight = l + gfx_get_string_width(gCommonStringFormatBuffer) + 1;
}
// Border

View File

@ -31,6 +31,7 @@
#include "localisation.h"
#include "../management/marketing.h"
char gCommonStringFormatBuffer[256];
uint8 gCommonFormatArgs[80];
uint8 gMapTooltipFormatArgs[40];

View File

@ -63,6 +63,7 @@ extern const char real_name_initials[16];
extern const char *real_names[1024];
extern utf8 *gUserStrings;
extern char gCommonStringFormatBuffer[256];
extern uint8 gCommonFormatArgs[80];
extern uint8 gMapTooltipFormatArgs[40];

View File

@ -88,14 +88,14 @@ void banner_paint(uint8 direction, int height, rct_map_element* map_element)
string_id = STR_BANNER_TEXT_FORMAT;
}
if (gConfigGeneral.upper_case_banners) {
format_string_to_upper(RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char), string_id, gCommonFormatArgs);
format_string_to_upper(gCommonStringFormatBuffer, string_id, gCommonFormatArgs);
} else {
format_string(RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char), string_id, gCommonFormatArgs);
format_string(gCommonStringFormatBuffer, string_id, gCommonFormatArgs);
}
gCurrentFontSpriteBase = FONT_SPRITE_BASE_TINY;
uint16 string_width = gfx_get_string_width(RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char));
uint16 string_width = gfx_get_string_width(gCommonStringFormatBuffer);
uint16 scroll = (gCurrentTicks / 2) % string_width;
sub_98199C(scrolling_text_setup(string_id, scroll, scrollingMode), 0, 0, 1, 1, 0x15, height + 22, boundBoxOffsetX, boundBoxOffsetY, boundBoxOffsetZ, get_current_rotation());

View File

@ -397,14 +397,14 @@ static void sub_6A4101(rct_map_element * map_element, uint16 height, uint32 ebp,
string_id = STR_RIDE_ENTRANCE_NAME;
}
if (gConfigGeneral.upper_case_banners) {
format_string_to_upper(RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char), string_id, gCommonFormatArgs);
format_string_to_upper(gCommonStringFormatBuffer, string_id, gCommonFormatArgs);
} else {
format_string(RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char), string_id, gCommonFormatArgs);
format_string(gCommonStringFormatBuffer, string_id, gCommonFormatArgs);
}
gCurrentFontSpriteBase = FONT_SPRITE_BASE_TINY;
uint16 string_width = gfx_get_string_width(RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char));
uint16 string_width = gfx_get_string_width(gCommonStringFormatBuffer);
uint16 scroll = (gCurrentTicks / 2) % string_width;
sub_98199C(scrolling_text_setup(string_id, scroll, scrollingMode), 0, 0, 1, 1, 21, height + 7, boundBoxOffsets.x, boundBoxOffsets.y, boundBoxOffsets.z, get_current_rotation());

View File

@ -11690,7 +11690,7 @@ money32 set_peep_name(int flags, int state, uint16 sprite_index, uint8* text_1,
rct_peep* peep = GET_PEEP(sprite_index);
set_format_arg(0, uint32, peep->id);
utf8* curName = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, utf8);
utf8* curName = gCommonStringFormatBuffer;
rct_string_id curId = peep->name_string_idx;
format_string(curName, curId, gCommonFormatArgs);

View File

@ -221,7 +221,7 @@ void scenario_begin()
} else {
rct_stex_entry* stex = g_stexEntries[0];
if ((intptr_t)stex != -1) {
char *buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char);
char *buffer = gCommonStringFormatBuffer;
// Set localised park name
format_string(buffer, stex->park_name, 0);

View File

@ -1435,7 +1435,7 @@ static void window_editor_object_selection_scrollpaint(rct_window *w, rct_drawpi
x = gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER ? 0 : 15;
char *bufferWithColour = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char);
char *bufferWithColour = gCommonStringFormatBuffer;
char *buffer = utf8_write_codepoint(bufferWithColour, colour);
if (*listItem->flags & OBJECT_SELECTION_FLAG_6) {
colour = w->colours[1] & 0x7F;

View File

@ -734,7 +734,7 @@ static void window_ride_list_refresh_list(rct_window *w)
int current_list_position = list_index;
switch (w->list_information_type) {
case INFORMATION_TYPE_STATUS:
bufferA = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char);
bufferA = gCommonStringFormatBuffer;
bufferB = RCT2_ADDRESS(0x0141EF68, char);
format_string_to_upper(bufferA, ride->name, &ride->name_arguments);
while (--current_list_position >= 0) {

View File

@ -527,7 +527,7 @@ static void draw_category_heading(rct_window *w, rct_drawpixelinfo *dpi, int lef
gfx_draw_string_centred(dpi, stringId, centreX, y, baseColour, NULL);
// Get string dimensions
utf8 *buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, utf8);
utf8 *buffer = gCommonStringFormatBuffer;
format_string(buffer, stringId, NULL);
int categoryStringHalfWidth = (gfx_get_string_width(buffer) / 2) + 4;
int strLeft = centreX - categoryStringHalfWidth;

View File

@ -88,14 +88,14 @@ void window_tooltip_show(rct_string_id id, int x, int y)
return;
RCT2_GLOBAL(0x0142006C, sint32) = -1;
char* buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char);
char* buffer = gCommonStringFormatBuffer;
format_string(buffer, id, gCommonFormatArgs);
gCurrentFontSpriteBase = FONT_SPRITE_BASE_MEDIUM;
int tooltip_text_width;
tooltip_text_width = gfx_get_string_width_new_lined(buffer);
buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, char);
buffer = gCommonStringFormatBuffer;
tooltip_text_width = min(tooltip_text_width, 196);
gCurrentFontSpriteBase = FONT_SPRITE_BASE_MEDIUM;

View File

@ -5273,7 +5273,7 @@ void game_command_set_banner_name(int* eax, int* ebx, int* ecx, int* edx, int* e
return;
}
utf8 *buffer = RCT2_ADDRESS(RCT2_ADDRESS_COMMON_STRING_FORMAT_BUFFER, utf8);
utf8 *buffer = gCommonStringFormatBuffer;
utf8 *dst = buffer;
dst = utf8_write_codepoint(dst, FORMAT_COLOUR_CODE_START + banner->text_colour);
strncpy(dst, newName, 32);