Merge branch 'master' into jgrpp
# Conflicts: # src/bridge_map.h # src/crashlog.cpp # src/industry.h # src/linkgraph/linkgraph_type.h # src/order_type.h # src/saveload/afterload.cpp # src/settings.cpp # src/settings_type.h # src/smallmap_gui.cpp # src/spritecache.cpp # src/stdafx.h # src/table/settings.h.preamble # src/train.h # src/vehicle.cpp # src/viewport.cpp # src/viewport_func.h # src/widgets/station_widget.h # src/zoom_func.h # src/zoom_type.h
This commit is contained in:
@@ -1266,7 +1266,7 @@ void NetworkClientRequestMove(CompanyID company_id, const char *pass)
|
||||
*/
|
||||
void NetworkClientsToSpectators(CompanyID cid)
|
||||
{
|
||||
Backup<CompanyByte> cur_company(_current_company, FILE_LINE);
|
||||
Backup<CompanyID> cur_company(_current_company, FILE_LINE);
|
||||
/* If our company is changing owner, go to spectators */
|
||||
if (cid == _local_company) SetLocalCompany(COMPANY_SPECTATOR);
|
||||
|
||||
|
@@ -2146,15 +2146,17 @@ void ShowNetworkNeedPassword(NetworkPasswordType npt)
|
||||
case NETWORK_GAME_PASSWORD: caption = STR_NETWORK_NEED_GAME_PASSWORD_CAPTION; break;
|
||||
case NETWORK_COMPANY_PASSWORD: caption = STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION; break;
|
||||
}
|
||||
ShowQueryString(STR_EMPTY, caption, NETWORK_PASSWORD_LENGTH, w, CS_ALPHANUMERAL, QSF_NONE);
|
||||
ShowQueryString(STR_EMPTY, caption, NETWORK_PASSWORD_LENGTH, w, CS_ALPHANUMERAL, QSF_PASSWORD);
|
||||
}
|
||||
|
||||
struct NetworkCompanyPasswordWindow : public Window {
|
||||
QueryString password_editbox; ///< Password editbox.
|
||||
Dimension warning_size; ///< How much space to use for the warning text
|
||||
|
||||
NetworkCompanyPasswordWindow(WindowDesc *desc, Window *parent) : Window(desc), password_editbox(lengthof(_settings_client.network.default_company_pass))
|
||||
{
|
||||
this->InitNested(0);
|
||||
this->UpdateWarningStringSize();
|
||||
|
||||
this->parent = parent;
|
||||
this->querystrings[WID_NCP_PASSWORD] = &this->password_editbox;
|
||||
@@ -2163,6 +2165,32 @@ struct NetworkCompanyPasswordWindow : public Window {
|
||||
this->SetFocusedWidget(WID_NCP_PASSWORD);
|
||||
}
|
||||
|
||||
void UpdateWarningStringSize()
|
||||
{
|
||||
assert(this->nested_root->smallest_x > 0);
|
||||
this->warning_size.width = this->nested_root->current_x - (WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT + WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT);
|
||||
this->warning_size.height = GetStringHeight(STR_WARNING_PASSWORD_SECURITY, this->warning_size.width);
|
||||
this->warning_size.height += WD_FRAMETEXT_TOP + WD_FRAMETEXT_BOTTOM + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
|
||||
|
||||
this->ReInit();
|
||||
}
|
||||
|
||||
void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override
|
||||
{
|
||||
if (widget == WID_NCP_WARNING) {
|
||||
*size = this->warning_size;
|
||||
}
|
||||
}
|
||||
|
||||
void DrawWidget(const Rect &r, int widget) const override
|
||||
{
|
||||
if (widget != WID_NCP_WARNING) return;
|
||||
|
||||
DrawStringMultiLine(r.left + WD_FRAMETEXT_LEFT, r.right - WD_FRAMETEXT_RIGHT,
|
||||
r.top + WD_FRAMERECT_TOP, r.bottom - WD_FRAMERECT_BOTTOM,
|
||||
STR_WARNING_PASSWORD_SECURITY, TC_FROMSTRING, SA_CENTER);
|
||||
}
|
||||
|
||||
void OnOk()
|
||||
{
|
||||
if (this->IsWidgetLowered(WID_NCP_SAVE_AS_DEFAULT_PASSWORD)) {
|
||||
@@ -2209,6 +2237,7 @@ static const NWidgetPart _nested_network_company_password_window_widgets[] = {
|
||||
EndContainer(),
|
||||
EndContainer(),
|
||||
EndContainer(),
|
||||
NWidget(WWT_PANEL, COLOUR_GREY, WID_NCP_WARNING), EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_NCP_CANCEL), SetFill(1, 0), SetDataTip(STR_BUTTON_CANCEL, STR_COMPANY_PASSWORD_CANCEL),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_NCP_OK), SetFill(1, 0), SetDataTip(STR_BUTTON_OK, STR_COMPANY_PASSWORD_OK),
|
||||
|
Reference in New Issue
Block a user