diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/player_gui.cpp | 247 |
1 files changed, 124 insertions, 123 deletions
diff --git a/src/player_gui.cpp b/src/player_gui.cpp index c9503123c..efcc3eabd 100644 --- a/src/player_gui.cpp +++ b/src/player_gui.cpp @@ -157,60 +157,60 @@ static const Widget _player_finances_small_widgets[] = { static void PlayerFinancesWndProc(Window *w, WindowEvent *e) { switch (e->event) { - case WE_PAINT: { - PlayerID player = (PlayerID)w->window_number; - const Player *p = GetPlayer(player); - - /* Recheck the size of the window as it might need to be resized due to the local player changing */ - int new_height = ((player != _local_player) ? 0 : 12) + ((WP(w, def_d).data_1 != 0) ? 48 : 204); - if (w->height != new_height) { - /* Make window dirty before and after resizing */ - SetWindowDirty(w); - w->height = new_height; - SetWindowDirty(w); - - w->SetWidgetHiddenState(PFW_WIDGET_INCREASE_LOAN, player != _local_player); - w->SetWidgetHiddenState(PFW_WIDGET_REPAY_LOAN, player != _local_player); - } + case WE_PAINT: { + PlayerID player = (PlayerID)w->window_number; + const Player *p = GetPlayer(player); - /* Borrow button only shows when there is any more money to loan */ - w->SetWidgetDisabledState(PFW_WIDGET_INCREASE_LOAN, p->current_loan == _economy.max_loan); + /* Recheck the size of the window as it might need to be resized due to the local player changing */ + int new_height = ((player != _local_player) ? 0 : 12) + ((WP(w, def_d).data_1 != 0) ? 48 : 204); + if (w->height != new_height) { + /* Make window dirty before and after resizing */ + SetWindowDirty(w); + w->height = new_height; + SetWindowDirty(w); - /* Repay button only shows when there is any more money to repay */ - w->SetWidgetDisabledState(PFW_WIDGET_REPAY_LOAN, player != _local_player || p->current_loan == 0); + w->SetWidgetHiddenState(PFW_WIDGET_INCREASE_LOAN, player != _local_player); + w->SetWidgetHiddenState(PFW_WIDGET_REPAY_LOAN, player != _local_player); + } - SetDParam(0, p->index); - SetDParam(1, p->index); - SetDParam(2, LOAN_INTERVAL); - DrawWindowWidgets(w); + /* Borrow button only shows when there is any more money to loan */ + w->SetWidgetDisabledState(PFW_WIDGET_INCREASE_LOAN, p->current_loan == _economy.max_loan); - DrawPlayerEconomyStats(p, (byte)WP(w, def_d).data_1); - } break; + /* Repay button only shows when there is any more money to repay */ + w->SetWidgetDisabledState(PFW_WIDGET_REPAY_LOAN, player != _local_player || p->current_loan == 0); - case WE_CLICK: - switch (e->we.click.widget) { - case PFW_WIDGET_TOGGLE_SIZE: {/* toggle size */ - byte mode = (byte)WP(w, def_d).data_1; - bool stickied = !!(w->flags4 & WF_STICKY); - int oldtop = w->top; ///< current top position of the window before closing it - int oldleft = w->left; ///< current left position of the window before closing it - PlayerID player = (PlayerID)w->window_number; + SetDParam(0, p->index); + SetDParam(1, p->index); + SetDParam(2, LOAN_INTERVAL); + DrawWindowWidgets(w); - DeleteWindow(w); - /* Open up the (toggled size) Finance window at the same position as the previous */ - DoShowPlayerFinances(player, !HasBit(mode, 0), stickied, oldtop, oldleft); - } - break; + DrawPlayerEconomyStats(p, (byte)WP(w, def_d).data_1); + } break; - case PFW_WIDGET_INCREASE_LOAN: /* increase loan */ - DoCommandP(0, 0, _ctrl_pressed, NULL, CMD_INCREASE_LOAN | CMD_MSG(STR_702C_CAN_T_BORROW_ANY_MORE_MONEY)); - break; + case WE_CLICK: + switch (e->we.click.widget) { + case PFW_WIDGET_TOGGLE_SIZE: {/* toggle size */ + byte mode = (byte)WP(w, def_d).data_1; + bool stickied = !!(w->flags4 & WF_STICKY); + int oldtop = w->top; ///< current top position of the window before closing it + int oldleft = w->left; ///< current left position of the window before closing it + PlayerID player = (PlayerID)w->window_number; - case PFW_WIDGET_REPAY_LOAN: /* repay loan */ - DoCommandP(0, 0, _ctrl_pressed, NULL, CMD_DECREASE_LOAN | CMD_MSG(STR_702F_CAN_T_REPAY_LOAN)); + DeleteWindow(w); + /* Open up the (toggled size) Finance window at the same position as the previous */ + DoShowPlayerFinances(player, !HasBit(mode, 0), stickied, oldtop, oldleft); + } + break; + + case PFW_WIDGET_INCREASE_LOAN: /* increase loan */ + DoCommandP(0, 0, _ctrl_pressed, NULL, CMD_INCREASE_LOAN | CMD_MSG(STR_702C_CAN_T_BORROW_ANY_MORE_MONEY)); + break; + + case PFW_WIDGET_REPAY_LOAN: /* repay loan */ + DoCommandP(0, 0, _ctrl_pressed, NULL, CMD_DECREASE_LOAN | CMD_MSG(STR_702F_CAN_T_REPAY_LOAN)); + break; + } break; - } - break; } } @@ -1331,31 +1331,30 @@ void ShowPlayerCompany(PlayerID player) static void BuyCompanyWndProc(Window *w, WindowEvent *e) { switch (e->event) { - case WE_PAINT: { - Player *p = GetPlayer((PlayerID)w->window_number); - SetDParam(0, STR_COMPANY_NAME); - SetDParam(1, p->index); - DrawWindowWidgets(w); - - DrawPlayerFace(p->face, p->player_color, 2, 16); - - SetDParam(0, p->index); - SetDParam(1, p->bankrupt_value); - DrawStringMultiCenter(214, 65, STR_705B_WE_ARE_LOOKING_FOR_A_TRANSPORT, 238); - break; - } + case WE_PAINT: { + Player *p = GetPlayer((PlayerID)w->window_number); + SetDParam(0, STR_COMPANY_NAME); + SetDParam(1, p->index); + DrawWindowWidgets(w); - case WE_CLICK: - switch (e->we.click.widget) { - case 3: - DeleteWindow(w); - break; - case 4: { - DoCommandP(0, w->window_number, 0, NULL, CMD_BUY_COMPANY | CMD_MSG(STR_7060_CAN_T_BUY_COMPANY)); + DrawPlayerFace(p->face, p->player_color, 2, 16); + + SetDParam(0, p->index); + SetDParam(1, p->bankrupt_value); + DrawStringMultiCenter(214, 65, STR_705B_WE_ARE_LOOKING_FOR_A_TRANSPORT, 238); + } break; + + case WE_CLICK: + switch (e->we.click.widget) { + case 3: + DeleteWindow(w); + break; + case 4: { + DoCommandP(0, w->window_number, 0, NULL, CMD_BUY_COMPANY | CMD_MSG(STR_7060_CAN_T_BUY_COMPANY)); + break; + } + } break; - } - } - break; } } @@ -1409,79 +1408,81 @@ extern StringID EndGameGetPerformanceTitleFromValue(uint value); static void EndGameWndProc(Window *w, WindowEvent *e) { switch (e->event) { - case WE_PAINT: { - const Player *p; - uint x, y; + case WE_PAINT: { + const Player *p; + uint x, y; - SetupHighScoreEndWindow(w, &x, &y); + SetupHighScoreEndWindow(w, &x, &y); - if (!IsValidPlayer(_local_player)) break; + if (!IsValidPlayer(_local_player)) break; - p = GetPlayer(_local_player); - /* We need to get performance from last year because the image is shown - * at the start of the new year when these things have already been copied */ - if (WP(w, highscore_d).background_img == SPR_TYCOON_IMG2_BEGIN) { // Tycoon of the century \o/ - SetDParam(0, p->index); - SetDParam(1, p->index); - SetDParam(2, EndGameGetPerformanceTitleFromValue(p->old_economy[0].performance_history)); - DrawStringMultiCenter(x + (640 / 2), y + 107, STR_021C_OF_ACHIEVES_STATUS, 640); - } else { - SetDParam(0, p->index); - SetDParam(1, EndGameGetPerformanceTitleFromValue(p->old_economy[0].performance_history)); - DrawStringMultiCenter(x + (640 / 2), y + 157, STR_021B_ACHIEVES_STATUS, 640); - } - } break; - case WE_CLICK: /* Close the window (and show the highscore window) */ - DeleteWindow(w); - break; - case WE_DESTROY: /* Show the highscore window when this one is closed */ - if (!_networking) DoCommandP(0, 0, 0, NULL, CMD_PAUSE); // unpause - ShowHighscoreTable(w->window_number, WP(w, highscore_d).rank); - break; + p = GetPlayer(_local_player); + /* We need to get performance from last year because the image is shown + * at the start of the new year when these things have already been copied */ + if (WP(w, highscore_d).background_img == SPR_TYCOON_IMG2_BEGIN) { // Tycoon of the century \o/ + SetDParam(0, p->index); + SetDParam(1, p->index); + SetDParam(2, EndGameGetPerformanceTitleFromValue(p->old_economy[0].performance_history)); + DrawStringMultiCenter(x + (640 / 2), y + 107, STR_021C_OF_ACHIEVES_STATUS, 640); + } else { + SetDParam(0, p->index); + SetDParam(1, EndGameGetPerformanceTitleFromValue(p->old_economy[0].performance_history)); + DrawStringMultiCenter(x + (640 / 2), y + 157, STR_021B_ACHIEVES_STATUS, 640); + } + } break; + + case WE_CLICK: /* Close the window (and show the highscore window) */ + DeleteWindow(w); + break; + + case WE_DESTROY: /* Show the highscore window when this one is closed */ + if (!_networking) DoCommandP(0, 0, 0, NULL, CMD_PAUSE); // unpause + ShowHighscoreTable(w->window_number, WP(w, highscore_d).rank); + break; } } static void HighScoreWndProc(Window *w, WindowEvent *e) { switch (e->event) { - case WE_PAINT: { - const HighScore *hs = _highscore_table[w->window_number]; - uint x, y; - uint8 i; + case WE_PAINT: { + const HighScore *hs = _highscore_table[w->window_number]; + uint x, y; + uint8 i; - SetupHighScoreEndWindow(w, &x, &y); + SetupHighScoreEndWindow(w, &x, &y); - SetDParam(0, _patches.ending_year); - SetDParam(1, w->window_number + STR_6801_EASY); - DrawStringMultiCenter(x + (640 / 2), y + 62, !_networking ? STR_0211_TOP_COMPANIES_WHO_REACHED : STR_TOP_COMPANIES_NETWORK_GAME, 500); + SetDParam(0, _patches.ending_year); + SetDParam(1, w->window_number + STR_6801_EASY); + DrawStringMultiCenter(x + (640 / 2), y + 62, !_networking ? STR_0211_TOP_COMPANIES_WHO_REACHED : STR_TOP_COMPANIES_NETWORK_GAME, 500); - /* Draw Highscore peepz */ - for (i = 0; i < lengthof(_highscore_table[0]); i++) { - SetDParam(0, i + 1); - DrawString(x + 40, y + 140 + (i * 55), STR_0212, TC_BLACK); + /* Draw Highscore peepz */ + for (i = 0; i < lengthof(_highscore_table[0]); i++) { + SetDParam(0, i + 1); + DrawString(x + 40, y + 140 + (i * 55), STR_0212, TC_BLACK); - if (hs[i].company[0] != '\0') { - TextColour colour = (WP(w, highscore_d).rank == (int8)i) ? TC_RED : TC_BLACK; // draw new highscore in red + if (hs[i].company[0] != '\0') { + TextColour colour = (WP(w, highscore_d).rank == (int8)i) ? TC_RED : TC_BLACK; // draw new highscore in red - DoDrawString(hs[i].company, x + 71, y + 140 + (i * 55), colour); - SetDParam(0, hs[i].title); - SetDParam(1, hs[i].score); - DrawString(x + 71, y + 160 + (i * 55), STR_HIGHSCORE_STATS, colour); + DoDrawString(hs[i].company, x + 71, y + 140 + (i * 55), colour); + SetDParam(0, hs[i].title); + SetDParam(1, hs[i].score); + DrawString(x + 71, y + 160 + (i * 55), STR_HIGHSCORE_STATS, colour); + } } - } - } break; + } break; - case WE_CLICK: /* Onclick to close window, and in destroy event handle the rest */ - DeleteWindow(w); - break; + case WE_CLICK: /* Onclick to close window, and in destroy event handle the rest */ + DeleteWindow(w); + break; - case WE_DESTROY: /* Get back all the hidden windows */ - if (_game_mode != GM_MENU) ShowVitalWindows(); + case WE_DESTROY: /* Get back all the hidden windows */ + if (_game_mode != GM_MENU) ShowVitalWindows(); - if (!_networking) DoCommandP(0, 0, 0, NULL, CMD_PAUSE); // unpause - break; - } - } + if (!_networking) DoCommandP(0, 0, 0, NULL, CMD_PAUSE); // unpause + break; + } +} static const Widget _highscore_widgets[] = { { WWT_PANEL, RESIZE_NONE, 16, 0, 640, 0, 480, 0x0, STR_NULL}, |