diff --git a/src/company_cmd.cpp b/src/company_cmd.cpp index 6aaa860c2c..467dbde3ba 100644 --- a/src/company_cmd.cpp +++ b/src/company_cmd.cpp @@ -581,7 +581,14 @@ Company *DoStartupNewCompany(DoStartupNewCompanyFlag flags, CompanyID company) c->avail_railtypes = GetCompanyRailtypes(c->index); c->avail_roadtypes = GetCompanyRoadTypes(c->index); c->inaugurated_year = _cur_year; - RandomCompanyManagerFaceBits(c->face, (GenderEthnicity)Random(), false, false); // create a random company manager face + + /* If starting a player company in singleplayer and a favorite company manager face is selected, choose it. Otherwise, use a random face. + * In a network game, we'll choose the favorite face later in CmdCompanyCtrl to sync it to all clients. */ + if (_company_manager_face != 0 && !is_ai && !_networking) { + c->face = _company_manager_face; + } else { + RandomCompanyManagerFaceBits(c->face, (GenderEthnicity)Random(), false, false); + } SetDefaultCompanySettings(c->index); ClearEnginesHiddenFlagOfCompany(c->index); @@ -871,6 +878,10 @@ CommandCost CmdCompanyCtrl(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 NetworkChangeCompanyPassword(_local_company, _settings_client.network.default_company_pass); } + /* In network games, we need to try setting the company manager face here to sync it to all clients. + * If a favorite company manager face is selected, choose it. Otherwise, use a random face. */ + if (_company_manager_face != 0) DoCommandP(0, 0, _company_manager_face, CMD_SET_COMPANY_MANAGER_FACE); + /* Now that we have a new company, broadcast our company settings to * all clients so everything is in sync */ SyncCompanySettings(); diff --git a/src/framerate_gui.cpp b/src/framerate_gui.cpp index 28f8886e13..0ba9a796d5 100644 --- a/src/framerate_gui.cpp +++ b/src/framerate_gui.cpp @@ -358,15 +358,15 @@ static const NWidgetPart _framerate_window_widgets[] = { EndContainer(), NWidget(WWT_PANEL, COLOUR_GREY), NWidget(NWID_VERTICAL), SetPadding(6), SetPIP(0, 3, 0), - NWidget(WWT_TEXT, COLOUR_GREY, WID_FRW_RATE_GAMELOOP), SetDataTip(STR_FRAMERATE_RATE_GAMELOOP, STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP), - NWidget(WWT_TEXT, COLOUR_GREY, WID_FRW_RATE_DRAWING), SetDataTip(STR_FRAMERATE_RATE_BLITTER, STR_FRAMERATE_RATE_BLITTER_TOOLTIP), - NWidget(WWT_TEXT, COLOUR_GREY, WID_FRW_RATE_FACTOR), SetDataTip(STR_FRAMERATE_SPEED_FACTOR, STR_FRAMERATE_SPEED_FACTOR_TOOLTIP), + NWidget(WWT_TEXT, COLOUR_GREY, WID_FRW_RATE_GAMELOOP), SetDataTip(STR_FRAMERATE_RATE_GAMELOOP, STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP), SetFill(1, 0), SetResize(1, 0), + NWidget(WWT_TEXT, COLOUR_GREY, WID_FRW_RATE_DRAWING), SetDataTip(STR_FRAMERATE_RATE_BLITTER, STR_FRAMERATE_RATE_BLITTER_TOOLTIP), SetFill(1, 0), SetResize(1, 0), + NWidget(WWT_TEXT, COLOUR_GREY, WID_FRW_RATE_FACTOR), SetDataTip(STR_FRAMERATE_SPEED_FACTOR, STR_FRAMERATE_SPEED_FACTOR_TOOLTIP), SetFill(1, 0), SetResize(1, 0), EndContainer(), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(WWT_PANEL, COLOUR_GREY), NWidget(NWID_VERTICAL), SetPadding(6), SetPIP(0, 3, 0), - NWidget(NWID_HORIZONTAL), SetPIP(0, 6, 0), + NWidget(NWID_HORIZONTAL), SetPIP(0, 8, 0), NWidget(WWT_EMPTY, COLOUR_GREY, WID_FRW_TIMES_NAMES), SetScrollbar(WID_FRW_SCROLLBAR), NWidget(WWT_EMPTY, COLOUR_GREY, WID_FRW_TIMES_CURRENT), SetScrollbar(WID_FRW_SCROLLBAR), NWidget(WWT_EMPTY, COLOUR_GREY, WID_FRW_TIMES_AVERAGE), SetScrollbar(WID_FRW_SCROLLBAR), @@ -374,7 +374,7 @@ static const NWidgetPart _framerate_window_widgets[] = { NWidget(WWT_EMPTY, COLOUR_GREY, WID_FRW_ALLOCSIZE), SetScrollbar(WID_FRW_SCROLLBAR), EndContainer(), EndContainer(), - NWidget(WWT_TEXT, COLOUR_GREY, WID_FRW_INFO_DATA_POINTS), SetDataTip(STR_FRAMERATE_DATA_POINTS, 0x0), + NWidget(WWT_TEXT, COLOUR_GREY, WID_FRW_INFO_DATA_POINTS), SetDataTip(STR_FRAMERATE_DATA_POINTS, 0x0), SetFill(1, 0), SetResize(1, 0), EndContainer(), EndContainer(), NWidget(NWID_VERTICAL), @@ -964,7 +964,7 @@ struct FrametimeGraphWindow : Window { (int)Scinterlate(x_zero, x_max, 0, (int64)draw_horz_scale, (int64)draw_horz_scale - (int64)time_sum), (int)Scinterlate(y_zero, y_max, 0, (int64)draw_vert_scale, (int64)value) }; - assert(newpoint.x <= lastpoint.x); + if (newpoint.x > lastpoint.x) continue; // don't draw backwards GfxDrawLine(lastpoint.x, lastpoint.y, newpoint.x, newpoint.y, c_lines); lastpoint = newpoint; diff --git a/src/lang/korean.txt b/src/lang/korean.txt index c4d244f45c..acad5d96ce 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -519,7 +519,7 @@ STR_ABOUT_MENU_SCREENSHOT :스크린샷 STR_ABOUT_MENU_SHOW_FRAMERATE :프레임레이트 보기 STR_ABOUT_MENU_SHOW_TOGGLE_MODIFIER_KEYS :보조 키 창 STR_ABOUT_MENU_ABOUT_OPENTTD :'OpenTTD'에 대해서 -STR_ABOUT_MENU_SPRITE_ALIGNER :스프라이트 정렬도구 +STR_ABOUT_MENU_SPRITE_ALIGNER :스프라이트 정렬 도구 STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :박스 경계선 보기 전환 STR_ABOUT_MENU_TOGGLE_DIRTY_BLOCKS :시각적 업데이트 블록 표시 전환 @@ -3987,7 +3987,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :회사 소유 # About OpenTTD window STR_ABOUT_OPENTTD :{WHITE}OpenTTD에 대해서 STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved -STR_ABOUT_VERSION :{BLACK}OpenTTD 버전 {REV} +STR_ABOUT_VERSION :{BLACK}OpenTTD {REV} 버전 STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} OpenTTD 개발팀 # Framerate display window diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp index 7768e87c9e..ea36e9db39 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -1728,6 +1728,11 @@ public: this->FinishInitNested(window_number); } + void OnInit() override + { + RebuildList(); + } + void OnInvalidateData(int data = 0, bool gui_scope = true) override { this->RebuildList();