From fda1a590f6978f906ed21b6732f80c9aefa02b47 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Sat, 24 Apr 2021 13:06:59 +0200 Subject: [PATCH] Change: use icons to indicate you/host in Online Players GUI --- media/baseset/openttd.grf | Bin 510525 -> 510635 bytes media/baseset/openttd/openttdgui.nfo | 4 +- media/baseset/openttd/openttdgui.png | Bin 44464 -> 44530 bytes src/lang/english.txt | 4 +- src/network/network_gui.cpp | 60 +++++++++++++++++++++++---- src/table/sprites.h | 4 +- 6 files changed, 59 insertions(+), 13 deletions(-) diff --git a/media/baseset/openttd.grf b/media/baseset/openttd.grf index c4511f55ea9f87c7dd7e3e4f73e79e404801d053..837e4b12d2553699331ad6ba878d38afda6aa109 100644 GIT binary patch delta 176 zcmdlxMSk^Ec@`Fi|MweNT3HxdS(sW`m|Iy`wz9Aqlriq#Zd%5wF}FU4fsu=g0R)&C z7#LnKUtnWpU|?iqJi*D#&(D8>djr=7kq(Umh8K)Ca2*iARK0-bgajkw1C|>cjEpas zAF$kDXJX`kz{<$*f}M$<{{_nft{0pScs6j|(0HK3$SBD0pT{w?s35. // -1 * 0 0C "OpenTTD GUI graphics" - -1 * 3 05 15 \b 189 // OPENTTD_SPRITE_COUNT + -1 * 3 05 15 \b 191 // OPENTTD_SPRITE_COUNT -1 sprites/openttdgui.png 8bpp 66 8 64 31 -31 7 normal -1 sprites/openttdgui.png 8bpp 146 8 64 31 -31 7 normal -1 sprites/openttdgui.png 8bpp 226 8 64 31 -31 7 normal @@ -194,3 +194,5 @@ -1 sprites/openttdgui.png 8bpp 539 440 12 10 0 0 normal -1 sprites/openttdgui.png 8bpp 553 440 12 10 0 0 normal -1 sprites/openttdgui.png 8bpp 567 440 12 10 0 0 normal + -1 sprites/openttdgui.png 8bpp 581 440 10 10 0 0 normal + -1 sprites/openttdgui.png 8bpp 593 440 10 10 0 0 normal diff --git a/media/baseset/openttd/openttdgui.png b/media/baseset/openttd/openttdgui.png index dc0976a971647fa6adad1ed1506030aaf2c60bf8..5b80c3326047f00565f11a27cc8cad879228a9f1 100644 GIT binary patch delta 19226 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 W+82l{QLL#xKcA+>vHA^Ht&5n))fV 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 diff --git a/src/lang/english.txt b/src/lang/english.txt index 33ccca2a41..dbf0a82d0f 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -2137,8 +2137,6 @@ STR_NETWORK_CLIENT_LIST_PLAYER_NAME :{BLACK}Name STR_NETWORK_CLIENT_LIST_PLAYER_NAME_TOOLTIP :{BLACK}Your player name STR_NETWORK_CLIENT_LIST_PLAYER_NAME_EDIT_TOOLTIP :{BLACK}Edit your player name STR_NETWORK_CLIENT_LIST_PLAYER_NAME_QUERY_CAPTION :Your player name -STR_NETWORK_CLIENT_LIST_PLAYER_HOST :{WHITE}(host) {BLACK}{RAW_STRING} -STR_NETWORK_CLIENT_LIST_PLAYER_SELF :{WHITE}(you) {BLACK}{RAW_STRING} STR_NETWORK_CLIENT_LIST_ADMIN_CLIENT_TOOLTIP :{BLACK}Administrative actions to perform for this client STR_NETWORK_CLIENT_LIST_ADMIN_COMPANY_TOOLTIP :{BLACK}Administrative actions to perform for this company STR_NETWORK_CLIENT_LIST_JOIN_TOOLTIP :{BLACK}Join this company @@ -2148,6 +2146,8 @@ STR_NETWORK_CLIENT_LIST_CHAT_SPECTATOR_TOOLTIP :{BLACK}Send a m STR_NETWORK_CLIENT_LIST_SPECTATORS :Spectators STR_NETWORK_CLIENT_LIST_NEW_COMPANY :(New company) STR_NETWORK_CLIENT_LIST_NEW_COMPANY_TOOLTIP :{BLACK}Create a new company and join it +STR_NETWORK_CLIENT_LIST_PLAYER_ICON_SELF_TOOLTIP :{BLACK}This is you +STR_NETWORK_CLIENT_LIST_PLAYER_ICON_HOST_TOOLTIP :{BLACK}This is the host of the game STR_NETWORK_CLIENT_LIST_ADMIN_CLIENT_KICK :Kick STR_NETWORK_CLIENT_LIST_ADMIN_CLIENT_BAN :Ban diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp index e76500f091..68208ee3fc 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -1756,6 +1756,8 @@ private: uint line_height; ///< Current lineheight of each entry in the matrix. uint line_count; ///< Amount of lines in the matrix. int hover_index; ///< Index of the current line we are hovering over, or -1 if none. + int player_self_index; ///< The line the current player is on. + int player_host_index; ///< The line the host is on. std::map>> buttons; ///< Per line which buttons are available. @@ -1870,7 +1872,7 @@ private: { ButtonCommon *chat_button = new CompanyButton(SPR_CHAT, company_id == COMPANY_SPECTATOR ? STR_NETWORK_CLIENT_LIST_CHAT_SPECTATOR_TOOLTIP : STR_NETWORK_CLIENT_LIST_CHAT_COMPANY_TOOLTIP, COLOUR_ORANGE, company_id, &NetworkClientListWindow::OnClickCompanyChat); - if (_network_server) this->buttons[line_count].emplace_back(new CompanyButton(SPR_ADMIN, STR_NETWORK_CLIENT_LIST_ADMIN_COMPANY_TOOLTIP, COLOUR_RED, company_id, &NetworkClientListWindow::OnClickCompanyAdmin)); + if (_network_server) this->buttons[line_count].emplace_back(new CompanyButton(SPR_ADMIN, STR_NETWORK_CLIENT_LIST_ADMIN_COMPANY_TOOLTIP, COLOUR_RED, company_id, &NetworkClientListWindow::OnClickCompanyAdmin, company_id == COMPANY_SPECTATOR)); this->buttons[line_count].emplace_back(chat_button); if (own_ci->client_playas != company_id) this->buttons[line_count].emplace_back(new CompanyButton(SPR_JOIN, STR_NETWORK_CLIENT_LIST_JOIN_TOOLTIP, COLOUR_ORANGE, company_id, &NetworkClientListWindow::OnClickCompanyJoin)); @@ -1884,6 +1886,12 @@ private: if (_network_server) this->buttons[line_count].emplace_back(new ClientButton(SPR_ADMIN, STR_NETWORK_CLIENT_LIST_ADMIN_CLIENT_TOOLTIP, COLOUR_RED, ci->client_id, &NetworkClientListWindow::OnClickClientAdmin, _network_own_client_id == ci->client_id)); if (_network_own_client_id != ci->client_id) this->buttons[line_count].emplace_back(new ClientButton(SPR_CHAT, STR_NETWORK_CLIENT_LIST_CHAT_CLIENT_TOOLTIP, COLOUR_ORANGE, ci->client_id, &NetworkClientListWindow::OnClickClientChat)); + if (ci->client_id == _network_own_client_id) { + this->player_self_index = this->line_count; + } else if (ci->client_id == CLIENT_ID_SERVER) { + this->player_host_index = this->line_count; + } + this->line_count += 1; } @@ -1900,6 +1908,8 @@ private: this->buttons.clear(); this->line_count = 0; + this->player_host_index = -1; + this->player_self_index = -1; /* As spectator, show a line to create a new company. */ if (own_ci->client_playas == COMPANY_SPECTATOR && !NetworkMaxCompaniesReached()) { @@ -1959,7 +1969,10 @@ private: public: NetworkClientListWindow(WindowDesc *desc, WindowNumber window_number) : - Window(desc) + Window(desc), + hover_index(-1), + player_self_index(-1), + player_host_index(-1) { this->CreateNestedTree(); this->vscroll = this->GetScrollbar(WID_CL_SCROLLBAR); @@ -2057,6 +2070,30 @@ public: { switch (widget) { case WID_CL_MATRIX: { + int index = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_CL_MATRIX); + + bool rtl = _current_text_dir == TD_RTL; + NWidgetBase *widget_matrix = this->GetWidget(WID_CL_MATRIX); + + Dimension d = GetSpriteSize(SPR_COMPANY_ICON); + uint text_left = widget_matrix->pos_x + (rtl ? (uint)WD_FRAMERECT_LEFT : d.width + 8); + uint text_right = widget_matrix->pos_x + widget_matrix->current_x - (rtl ? d.width + 8 : (uint)WD_FRAMERECT_RIGHT); + + Dimension d2 = GetSpriteSize(SPR_PLAYER_SELF); + uint offset_x = CLIENT_OFFSET_LEFT - d2.width - 3; + + uint player_icon_x = rtl ? text_right - offset_x - d2.width : text_left + offset_x; + + if (IsInsideMM(pt.x, player_icon_x, player_icon_x + d2.width)) { + if (index == this->player_self_index) { + GuiShowTooltips(this, STR_NETWORK_CLIENT_LIST_PLAYER_ICON_SELF_TOOLTIP, 0, nullptr, close_cond); + return true; + } else if (index == this->player_host_index) { + GuiShowTooltips(this, STR_NETWORK_CLIENT_LIST_PLAYER_ICON_HOST_TOOLTIP, 0, nullptr, close_cond); + return true; + } + } + ButtonCommon *button = this->GetButtonAtPoint(pt); if (button == nullptr) return false; @@ -2267,17 +2304,22 @@ public: this->DrawButtons(x, y, button_find->second); } - StringID client_string = STR_JUST_RAW_STRING; - - if (ci->client_id == CLIENT_ID_SERVER) { - client_string = STR_NETWORK_CLIENT_LIST_PLAYER_HOST; - } + SpriteID player_icon = 0; if (ci->client_id == _network_own_client_id) { - client_string = STR_NETWORK_CLIENT_LIST_PLAYER_SELF; + player_icon = SPR_PLAYER_SELF; + } else if (ci->client_id == CLIENT_ID_SERVER) { + player_icon = SPR_PLAYER_HOST; + } + + if (player_icon != 0) { + Dimension d2 = GetSpriteSize(player_icon); + uint offset_x = CLIENT_OFFSET_LEFT - 3; + int offset_y = std::max(0, ((int)(this->line_height + 1) - (int)d2.height) / 2); + DrawSprite(player_icon, PALETTE_TO_GREY, rtl ? text_right - offset_x : text_left + offset_x - d2.width, y + offset_y); } SetDParamStr(0, ci->client_name); - DrawString(rtl ? x : text_left + CLIENT_OFFSET_LEFT, rtl ? text_right - CLIENT_OFFSET_LEFT : x, y + text_y_offset, client_string, TC_BLACK); + DrawString(rtl ? x : text_left + CLIENT_OFFSET_LEFT, rtl ? text_right - CLIENT_OFFSET_LEFT : x, y + text_y_offset, STR_JUST_RAW_STRING, TC_BLACK); } y += this->line_height; diff --git a/src/table/sprites.h b/src/table/sprites.h index 039d50b9de..b7bb910203 100644 --- a/src/table/sprites.h +++ b/src/table/sprites.h @@ -54,7 +54,7 @@ static const SpriteID SPR_LARGE_SMALL_WINDOW = 682; /** Extra graphic spritenumbers */ static const SpriteID SPR_OPENTTD_BASE = 4896; -static const uint16 OPENTTD_SPRITE_COUNT = 189; +static const uint16 OPENTTD_SPRITE_COUNT = 191; /* Halftile-selection sprites */ static const SpriteID SPR_HALFTILE_SELECTION_FLAT = SPR_OPENTTD_BASE; @@ -169,6 +169,8 @@ static const SpriteID SPR_GOTO_LOCATION = SPR_OPENTTD_BASE + 185; static const SpriteID SPR_CHAT = SPR_OPENTTD_BASE + 186; static const SpriteID SPR_ADMIN = SPR_OPENTTD_BASE + 187; static const SpriteID SPR_JOIN = SPR_OPENTTD_BASE + 188; +static const SpriteID SPR_PLAYER_SELF = SPR_OPENTTD_BASE + 189; +static const SpriteID SPR_PLAYER_HOST = SPR_OPENTTD_BASE + 190; static const SpriteID SPR_IMG_CARGOFLOW = SPR_OPENTTD_BASE + 174;