Remove unused code an cleanup more

This commit is contained in:
Andreas Schmitt
2021-06-13 03:07:48 +02:00
parent 2801527895
commit edf0e8eddd

View File

@@ -2580,11 +2580,12 @@ static WindowDesc _station_rating_tooltip_desc(
_nested_station_rating_tooltip_widgets, lengthof(_nested_station_rating_tooltip_widgets) _nested_station_rating_tooltip_widgets, lengthof(_nested_station_rating_tooltip_widgets)
); );
static const int STATION_RATING_AGE[] = { 0, 10, 20, 33 }; static const int _station_rating_age[] = { 0, 10, 20, 33 };
static const int STATION_RATING_WAITUNITS[] = { -90, -38, 14, 66, 118, 170 }; static const int _station_rating_wait_units[] = { -90, -38, 14, 66, 118, 170 };
struct StationRatingTooltipWindow : public Window struct StationRatingTooltipWindow : public Window
{ {
private:
const Station *st; const Station *st;
const CargoSpec *cs; const CargoSpec *cs;
bool newgrf_rating_used; bool newgrf_rating_used;
@@ -2610,10 +2611,12 @@ public:
{ {
const int scr_top = GetMainViewTop() + 2; const int scr_top = GetMainViewTop() + 2;
const int scr_bot = GetMainViewBottom() - 2; const int scr_bot = GetMainViewBottom() - 2;
Point pt;
Point pt {};
pt.y = Clamp(_cursor.pos.y + _cursor.total_size.y + _cursor.total_offs.y + 5, scr_top, scr_bot); pt.y = Clamp(_cursor.pos.y + _cursor.total_size.y + _cursor.total_offs.y + 5, scr_top, scr_bot);
if (pt.y + sm_height > scr_bot) pt.y = std::min(_cursor.pos.y + _cursor.total_offs.y - 5, scr_bot) - sm_height; if (pt.y + sm_height > scr_bot) pt.y = std::min(_cursor.pos.y + _cursor.total_offs.y - 5, scr_bot) - sm_height;
pt.x = sm_width >= _screen.width ? 0 : Clamp(_cursor.pos.x - (sm_width >> 1), 0, _screen.width - sm_width); pt.x = sm_width >= _screen.width ? 0 : Clamp(_cursor.pos.x - (sm_width >> 1), 0, _screen.width - sm_width);
return pt; return pt;
} }
@@ -2627,6 +2630,7 @@ public:
SetDParam(0, this->cs->name); SetDParam(0, this->cs->name);
GetString(this->data[0], STR_STATION_RATING_TOOLTIP_RATING_DETAILS, lastof(this->data[0])); GetString(this->data[0], STR_STATION_RATING_TOOLTIP_RATING_DETAILS, lastof(this->data[0]));
if (!ge->HasRating()) { if (!ge->HasRating()) {
this->data[1][0] = '\0'; this->data[1][0] = '\0';
return; return;
@@ -2636,14 +2640,14 @@ public:
int total_rating = 0; int total_rating = 0;
if (HasBit(cs->callback_mask, CBM_CARGO_STATION_RATING_CALC)) { if (HasBit(cs->callback_mask, CBM_CARGO_STATION_RATING_CALC)) {
uint last_speed = ge->HasVehicleEverTriedLoading() ? ge->last_speed : 0xFF; const uint last_speed = ge->HasVehicleEverTriedLoading() ? ge->last_speed : 0xFF;
const uint32 var18 = std::min(ge->time_since_pickup, (byte)0xFF) | (std::min(ge->max_waiting_cargo, (uint)0xFFFF) << 8) | (std::min(last_speed, (uint)0xFF) << 24);
const uint32 var10 = (ge->last_vehicle_type == VEH_INVALID) ? 0x0 : (ge->last_vehicle_type + 0x10);
const uint16 callback = GetCargoCallback(CBID_CARGO_STATION_RATING_CALC, var10, var18, this->cs);
uint32 var18 = std::min(ge->time_since_pickup, (byte)0xFF) | (std::min(ge->max_waiting_cargo, (uint)0xFFFF) << 8) | (std::min(last_speed, (uint)0xFF) << 24);
uint32 var10 = (ge->last_vehicle_type == VEH_INVALID) ? 0x0 : (ge->last_vehicle_type + 0x10);
uint16 callback = GetCargoCallback(CBID_CARGO_STATION_RATING_CALC, var10, var18, this->cs);
int newgrf_rating = 0;
if (callback != CALLBACK_FAILED) { if (callback != CALLBACK_FAILED) {
newgrf_rating = GB(callback, 0, 14); int newgrf_rating = GB(callback, 0, 14);
if (HasBit(callback, 14)) newgrf_rating -= 0x4000; if (HasBit(callback, 14)) newgrf_rating -= 0x4000;
this->newgrf_rating_used = true; this->newgrf_rating_used = true;
@@ -2694,28 +2698,28 @@ public:
if (!this->newgrf_rating_used) { if (!this->newgrf_rating_used) {
uint waitunits = ge->max_waiting_cargo; int wait_units_stage = 0;
int waitunits_stage = 0;
(ge->max_waiting_cargo > 2000) || (ge->max_waiting_cargo > 2000) ||
(waitunits_stage = 1, ge->max_waiting_cargo > 1000) || (wait_units_stage = 1, ge->max_waiting_cargo > 1000) ||
(waitunits_stage = 2, ge->max_waiting_cargo > 500) || (wait_units_stage = 2, ge->max_waiting_cargo > 500) ||
(waitunits_stage = 3, ge->max_waiting_cargo > 250) || (wait_units_stage = 3, ge->max_waiting_cargo > 250) ||
(waitunits_stage = 4, ge->max_waiting_cargo > 125) || (wait_units_stage = 4, ge->max_waiting_cargo > 125) ||
(waitunits_stage = 5, true); (wait_units_stage = 5, true);
total_rating += STATION_RATING_WAITUNITS[waitunits_stage]; total_rating += _station_rating_wait_units[wait_units_stage];
SetDParam(0, STR_STATION_RATING_TOOLTIP_WAITUNITS_0 + waitunits_stage); SetDParam(0, STR_STATION_RATING_TOOLTIP_WAITUNITS_0 + wait_units_stage);
SetDParam(1, ge->max_waiting_cargo); SetDParam(1, ge->max_waiting_cargo);
SetDParam(2, this->RoundRating(STATION_RATING_WAITUNITS[waitunits_stage])); SetDParam(2, RoundRating(_station_rating_wait_units[wait_units_stage]));
GetString(this->data[line_nr], GetString(this->data[line_nr],
STR_STATION_RATING_TOOLTIP_WAITUNITS, STR_STATION_RATING_TOOLTIP_WAITUNITS,
lastof(this->data[line_nr])); lastof(this->data[line_nr]));
line_nr++; line_nr++;
int b = ge->last_speed - 15; const int b = ge->last_speed - 15;
int r_speed = b >= 0 ? b >> 2 : 0; const int r_speed = b >= 0 ? b >> 2 : 0;
int r_speed_round = this->RoundRating(r_speed); const int r_speed_round = RoundRating(r_speed);
total_rating += r_speed; total_rating += r_speed;
if (ge->last_speed == 255) { if (ge->last_speed == 255) {
SetDParam(0, STR_STATION_RATING_TOOLTIP_SPEED_3); SetDParam(0, STR_STATION_RATING_TOOLTIP_SPEED_3);
} }
@@ -2757,10 +2761,10 @@ public:
(age_stage = 2, ge->last_age >= 10) || (age_stage = 2, ge->last_age >= 10) ||
(age_stage = 3, true); (age_stage = 3, true);
total_rating += STATION_RATING_AGE[age_stage]; total_rating += _station_rating_age[age_stage];
SetDParam(0, STR_STATION_RATING_TOOLTIP_AGE_0 + age_stage); SetDParam(0, STR_STATION_RATING_TOOLTIP_AGE_0 + age_stage);
SetDParam(1, ge->last_age); SetDParam(1, ge->last_age);
SetDParam(2, this->RoundRating(STATION_RATING_AGE[age_stage])); SetDParam(2, RoundRating(_station_rating_age[age_stage]));
GetString(this->data[line_nr], STR_STATION_RATING_TOOLTIP_AGE, lastof(this->data[line_nr])); GetString(this->data[line_nr], STR_STATION_RATING_TOOLTIP_AGE, lastof(this->data[line_nr]));
line_nr++; line_nr++;
@@ -2771,6 +2775,7 @@ public:
else { else {
SetDParam(0, STR_STATION_RATING_TOOLTIP_STATUE_NO); SetDParam(0, STR_STATION_RATING_TOOLTIP_STATUE_NO);
} }
GetString(this->data[line_nr], STR_STATION_RATING_TOOLTIP_STATUE, lastof(this->data[line_nr])); GetString(this->data[line_nr], STR_STATION_RATING_TOOLTIP_STATUE, lastof(this->data[line_nr]));
line_nr++; line_nr++;
@@ -2783,7 +2788,7 @@ public:
void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override
{ {
if (widget != WID_LI_BACKGROUND) return; if (widget != 0) return;
size->height = WD_FRAMETEXT_TOP + WD_FRAMETEXT_BOTTOM + 2; size->height = WD_FRAMETEXT_TOP + WD_FRAMETEXT_BOTTOM + 2;
@@ -2802,24 +2807,24 @@ public:
void DrawWidget(const Rect &r, int widget) const override void DrawWidget(const Rect &r, int widget) const override
{ {
uint icon_size = ScaleGUITrad(10);
uint line_height = std::max((uint)FONT_HEIGHT_NORMAL, icon_size) + 2;
uint text_ofs = (line_height - FONT_HEIGHT_NORMAL) >> 1;
uint icon_ofs = (line_height - icon_size) >> 1;
GfxDrawLine(r.left, r.top, r.right, r.top, PC_BLACK); GfxDrawLine(r.left, r.top, r.right, r.top, PC_BLACK);
GfxDrawLine(r.left, r.bottom, r.right, r.bottom, PC_BLACK); GfxDrawLine(r.left, r.bottom, r.right, r.bottom, PC_BLACK);
GfxDrawLine(r.left, r.top, r.left, r.bottom, PC_BLACK); GfxDrawLine(r.left, r.top, r.left, r.bottom, PC_BLACK);
GfxDrawLine(r.right, r.top, r.right, r.bottom, PC_BLACK); GfxDrawLine(r.right, r.top, r.right, r.bottom, PC_BLACK);
int y = r.top + WD_FRAMETEXT_TOP + 1; int y = r.top + WD_FRAMETEXT_TOP + 1;
int left0 = r.left + WD_FRAMETEXT_LEFT + 1; const int left0 = r.left + WD_FRAMETEXT_LEFT + 1;
int right0 = r.right - WD_FRAMETEXT_RIGHT - 1; const int right0 = r.right - WD_FRAMETEXT_RIGHT - 1;
DrawString(left0, right0, y, this->data[0], TC_LIGHT_BLUE, SA_CENTER); DrawString(left0, right0, y, this->data[0], TC_LIGHT_BLUE, SA_CENTER);
y += FONT_HEIGHT_NORMAL + WD_PAR_VSEP_NORMAL; y += FONT_HEIGHT_NORMAL + WD_PAR_VSEP_NORMAL;
for (uint i = 1; i <= RATING_TOOLTIP_MAX_LINES; i++) { for (uint i = 1; i <= RATING_TOOLTIP_MAX_LINES; i++) {
if (StrEmpty(this->data[i])) break; if (StrEmpty(this->data[i])) break;
int left = left0, right = right0; int left = left0, right = right0;
if (this->newgrf_rating_used && i >= 2 && i <= 4) { if (this->newgrf_rating_used && i >= 2 && i <= 4) {
if (_current_text_dir == TD_RTL) { if (_current_text_dir == TD_RTL) {
right -= RATING_TOOLTIP_NEWGRF_INDENT; right -= RATING_TOOLTIP_NEWGRF_INDENT;
@@ -2828,7 +2833,9 @@ public:
left += RATING_TOOLTIP_NEWGRF_INDENT; left += RATING_TOOLTIP_NEWGRF_INDENT;
} }
} }
DrawString(left, right, y, this->data[i], TC_BLACK); DrawString(left, right, y, this->data[i], TC_BLACK);
y += FONT_HEIGHT_NORMAL + WD_PAR_VSEP_NORMAL; y += FONT_HEIGHT_NORMAL + WD_PAR_VSEP_NORMAL;
} }
} }