diff --git a/src/viewport.cpp b/src/viewport.cpp --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -1309,8 +1309,9 @@ static void ViewportAddSigns(DrawPixelIn * @param center the (preferred) center of the viewport sign * @param top the new top of the sign * @param str the string to show in the sign + * @param str_small the string to show when zoomed out. STR_NULL means same as \a str */ -void ViewportSign::UpdatePosition(int center, int top, StringID str) +void ViewportSign::UpdatePosition(int center, int top, StringID str, StringID str_small) { if (this->width_normal != 0) this->MarkDirty(); @@ -1323,6 +1324,9 @@ void ViewportSign::UpdatePosition(int ce this->center = center; /* zoomed out version */ + if (str_small != STR_NULL) { + GetString(buffer, str_small, lastof(buffer)); + } this->width_small = VPSM_LEFT + Align(GetStringBoundingBox(buffer, FS_SMALL).width, 2) + VPSM_RIGHT; this->MarkDirty();