From 7d3e627687c00b6bd1f2a1be490f7c62d4579b6d Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Sun, 27 Aug 2023 03:08:50 +0100 Subject: [PATCH] TBTR: Fix layout of template edit window info panel in RTL languages --- src/tbtr_template_gui_create.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/tbtr_template_gui_create.cpp b/src/tbtr_template_gui_create.cpp index ddf253419b..7905f064f6 100644 --- a/src/tbtr_template_gui_create.cpp +++ b/src/tbtr_template_gui_create.cpp @@ -306,6 +306,8 @@ public: AutoRestoreBackup dpi_backup(_cur_dpi, &tmp_dpi); int y = ScaleGUITrad(4) - this->vscroll->GetPosition(); + int left = ScaleGUITrad(4); + int right = (r.right - r.left) - ScaleGUITrad(4); bool buildable = true; Money buy_cost = 0; RailTypes types = static_cast(UINT64_MAX); @@ -319,10 +321,10 @@ public: buy_cost += e->GetCost(); } if (!buildable) { - DrawString(8, r.right, y, STR_TMPL_WARNING_VEH_UNAVAILABLE); + DrawString(left, right, y, STR_TMPL_WARNING_VEH_UNAVAILABLE); y += FONT_HEIGHT_NORMAL; } else if (types == RAILTYPES_NONE) { - DrawString(8, r.right, y, STR_TMPL_WARNING_VEH_NO_COMPATIBLE_RAIL_TYPE); + DrawString(left, right, y, STR_TMPL_WARNING_VEH_NO_COMPATIBLE_RAIL_TYPE); y += FONT_HEIGHT_NORMAL; } @@ -330,7 +332,7 @@ public: SetDParam(1, buy_cost); SetDParam(2, STR_TMPL_TEMPLATE_OVR_RUNNING_COST); SetDParam(3, this->virtual_train->GetDisplayRunningCost()); - DrawString(8, r.right, y, STR_TMPL_TEMPLATE_OVR_MULTIPLE); + DrawString(left, right, y, STR_TMPL_TEMPLATE_OVR_MULTIPLE); y += FONT_HEIGHT_NORMAL; /* Draw vehicle performance info */ @@ -341,7 +343,7 @@ public: SetDParam(1, gcache->cached_power); SetDParam(0, gcache->cached_weight); SetDParam(3, gcache->cached_max_te); - DrawString(8, r.right, y, original_acceleration ? STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED : STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE); + DrawString(left, right, y, original_acceleration ? STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED : STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE); uint32 full_cargo_weight = 0; for (Train *train = this->virtual_train; train != nullptr; train = train->Next()) { full_cargo_weight += train->GetCargoWeight(train->cargo_cap); @@ -359,12 +361,12 @@ public: } else { SetDParam(1, STR_EMPTY); } - DrawString(8, r.right, y, STR_VEHICLE_INFO_FULL_WEIGHT_WITH_RATIOS); + DrawString(left, right, y, STR_VEHICLE_INFO_FULL_WEIGHT_WITH_RATIOS); } if (_settings_game.vehicle.train_acceleration_model != AM_ORIGINAL) { y += FONT_HEIGHT_NORMAL; SetDParam(0, GetTrainEstimatedMaxAchievableSpeed(this->virtual_train, gcache->cached_weight + full_cargo_weight, this->virtual_train->GetDisplayMaxSpeed())); - DrawString(8, r.right, y, STR_VEHICLE_INFO_MAX_SPEED_LOADED); + DrawString(left, right, y, STR_VEHICLE_INFO_MAX_SPEED_LOADED); } /* Draw cargo summary */ CargoArray cargo_caps{}; @@ -376,7 +378,7 @@ public: if (cargo_caps[i] > 0) { SetDParam(0, i); SetDParam(1, cargo_caps[i]); - DrawString(8, r.right, y, STR_TMPL_CARGO_SUMMARY, TC_LIGHT_BLUE, SA_LEFT); + DrawString(left, right, y, STR_TMPL_CARGO_SUMMARY, TC_LIGHT_BLUE, SA_LEFT); y += FONT_HEIGHT_NORMAL; } }