mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-10 08:00:05 +00:00
(svn r13210) -Codechange: make town (previously named t) a private member of the different Town guis and assign it only once, at creation
This commit is contained in:
parent
b4128cbc25
commit
1e79665b45
@ -133,6 +133,7 @@ static int GetNthSetBit(uint32 bits, int n)
|
|||||||
|
|
||||||
struct TownAuthorityWindow : Window {
|
struct TownAuthorityWindow : Window {
|
||||||
private:
|
private:
|
||||||
|
Town *town;
|
||||||
int sel_index;
|
int sel_index;
|
||||||
|
|
||||||
enum TownAuthorityWidget {
|
enum TownAuthorityWidget {
|
||||||
@ -149,6 +150,7 @@ public:
|
|||||||
TownAuthorityWindow(const WindowDesc *desc, WindowNumber window_number) :
|
TownAuthorityWindow(const WindowDesc *desc, WindowNumber window_number) :
|
||||||
Window(desc, window_number), sel_index(-1)
|
Window(desc, window_number), sel_index(-1)
|
||||||
{
|
{
|
||||||
|
this->town = GetTown(this->window_number);
|
||||||
this->vscroll.cap = 5;
|
this->vscroll.cap = 5;
|
||||||
|
|
||||||
this->FindWindowPlacementAndResize(desc);
|
this->FindWindowPlacementAndResize(desc);
|
||||||
@ -156,9 +158,8 @@ public:
|
|||||||
|
|
||||||
virtual void OnPaint()
|
virtual void OnPaint()
|
||||||
{
|
{
|
||||||
const Town *t = GetTown(this->window_number);
|
|
||||||
int numact;
|
int numact;
|
||||||
uint buttons = GetMaskOfTownActions(&numact, _local_player, t);
|
uint buttons = GetMaskOfTownActions(&numact, _local_player, this->town);
|
||||||
|
|
||||||
SetVScrollCount(this, numact + 1);
|
SetVScrollCount(this, numact + 1);
|
||||||
|
|
||||||
@ -178,13 +179,13 @@ public:
|
|||||||
|
|
||||||
const Player *p;
|
const Player *p;
|
||||||
FOR_ALL_PLAYERS(p) {
|
FOR_ALL_PLAYERS(p) {
|
||||||
if (p->is_active && (HasBit(t->have_ratings, p->index) || t->exclusivity == p->index)) {
|
if (p->is_active && (HasBit(this->town->have_ratings, p->index) || this->town->exclusivity == p->index)) {
|
||||||
DrawPlayerIcon(p->index, 2, y);
|
DrawPlayerIcon(p->index, 2, y);
|
||||||
|
|
||||||
SetDParam(0, p->index);
|
SetDParam(0, p->index);
|
||||||
SetDParam(1, p->index);
|
SetDParam(1, p->index);
|
||||||
|
|
||||||
int r = t->ratings[p->index];
|
int r = this->town->ratings[p->index];
|
||||||
StringID str;
|
StringID str;
|
||||||
(str = STR_3035_APPALLING, r <= RATING_APPALLING) || // Apalling
|
(str = STR_3035_APPALLING, r <= RATING_APPALLING) || // Apalling
|
||||||
(str++, r <= RATING_VERYPOOR) || // Very Poor
|
(str++, r <= RATING_VERYPOOR) || // Very Poor
|
||||||
@ -196,7 +197,7 @@ public:
|
|||||||
(str++, true); // Outstanding
|
(str++, true); // Outstanding
|
||||||
|
|
||||||
SetDParam(2, str);
|
SetDParam(2, str);
|
||||||
if (t->exclusivity == p->index) { // red icon for player with exclusive rights
|
if (this->town->exclusivity == p->index) { // red icon for player with exclusive rights
|
||||||
DrawSprite(SPR_BLOT, PALETTE_TO_RED, 18, y);
|
DrawSprite(SPR_BLOT, PALETTE_TO_RED, 18, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -235,12 +236,11 @@ public:
|
|||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case TWA_COMMAND_LIST: {
|
case TWA_COMMAND_LIST: {
|
||||||
const Town *t = GetTown(this->window_number);
|
|
||||||
int y = (pt.y - 0x6B) / 10;
|
int y = (pt.y - 0x6B) / 10;
|
||||||
|
|
||||||
if (!IsInsideMM(y, 0, 5)) return;
|
if (!IsInsideMM(y, 0, 5)) return;
|
||||||
|
|
||||||
y = GetNthSetBit(GetMaskOfTownActions(NULL, _local_player, t), y + this->vscroll.pos - 1);
|
y = GetNthSetBit(GetMaskOfTownActions(NULL, _local_player, this->town), y + this->vscroll.pos - 1);
|
||||||
if (y >= 0) {
|
if (y >= 0) {
|
||||||
this->sel_index = y;
|
this->sel_index = y;
|
||||||
this->SetDirty();
|
this->SetDirty();
|
||||||
@ -250,7 +250,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
case TWA_EXECUTE:
|
case TWA_EXECUTE:
|
||||||
DoCommandP(GetTown(this->window_number)->xy, this->window_number, this->sel_index, NULL, CMD_DO_TOWN_ACTION | CMD_MSG(STR_00B4_CAN_T_DO_THIS));
|
DoCommandP(this->town->xy, this->window_number, this->sel_index, NULL, CMD_DO_TOWN_ACTION | CMD_MSG(STR_00B4_CAN_T_DO_THIS));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -275,6 +275,7 @@ static void ShowTownAuthorityWindow(uint town)
|
|||||||
|
|
||||||
struct TownViewWindow : Window {
|
struct TownViewWindow : Window {
|
||||||
private:
|
private:
|
||||||
|
Town *town;
|
||||||
|
|
||||||
enum TownViewWidget {
|
enum TownViewWidget {
|
||||||
TVW_CAPTION = 1,
|
TVW_CAPTION = 1,
|
||||||
@ -289,13 +290,13 @@ private:
|
|||||||
public:
|
public:
|
||||||
TownViewWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number)
|
TownViewWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number)
|
||||||
{
|
{
|
||||||
const Town *t = GetTown(this->window_number);
|
this->town = GetTown(this->window_number);
|
||||||
|
bool ingame = _game_mode != GM_EDITOR;
|
||||||
|
|
||||||
this->flags4 |= WF_DISABLE_VP_SCROLL;
|
this->flags4 |= WF_DISABLE_VP_SCROLL;
|
||||||
InitializeWindowViewport(this, 3, 17, 254, 86, t->xy, ZOOM_LVL_TOWN);
|
InitializeWindowViewport(this, 3, 17, 254, 86, this->town->xy, ZOOM_LVL_TOWN);
|
||||||
|
|
||||||
bool ingame = _game_mode != GM_EDITOR;
|
if (this->town->larger_town) this->widget[TVW_CAPTION].data = STR_CITY;
|
||||||
if (t->larger_town) this->widget[TVW_CAPTION].data = STR_CITY;
|
|
||||||
this->SetWidgetHiddenState(TVW_DELETE, ingame); // hide delete button on game mode
|
this->SetWidgetHiddenState(TVW_DELETE, ingame); // hide delete button on game mode
|
||||||
this->SetWidgetHiddenState(TVW_EXPAND, ingame); // hide expand button on game mode
|
this->SetWidgetHiddenState(TVW_EXPAND, ingame); // hide expand button on game mode
|
||||||
this->SetWidgetHiddenState(TVW_SHOWAUTORITY, !ingame); // hide autority button on editor mode
|
this->SetWidgetHiddenState(TVW_SHOWAUTORITY, !ingame); // hide autority button on editor mode
|
||||||
@ -314,24 +315,22 @@ public:
|
|||||||
|
|
||||||
virtual void OnPaint()
|
virtual void OnPaint()
|
||||||
{
|
{
|
||||||
const Town *t = GetTown(this->window_number);
|
|
||||||
|
|
||||||
/* disable renaming town in network games if you are not the server */
|
/* disable renaming town in network games if you are not the server */
|
||||||
this->SetWidgetDisabledState(TVW_CHANGENAME, _networking && !_network_server);
|
this->SetWidgetDisabledState(TVW_CHANGENAME, _networking && !_network_server);
|
||||||
|
|
||||||
SetDParam(0, t->index);
|
SetDParam(0, this->town->index);
|
||||||
this->DrawWidgets();
|
this->DrawWidgets();
|
||||||
|
|
||||||
SetDParam(0, t->population);
|
SetDParam(0, this->town->population);
|
||||||
SetDParam(1, t->num_houses);
|
SetDParam(1, this->town->num_houses);
|
||||||
DrawString(2, 107, STR_2006_POPULATION, TC_FROMSTRING);
|
DrawString(2, 107, STR_2006_POPULATION, TC_FROMSTRING);
|
||||||
|
|
||||||
SetDParam(0, t->act_pass);
|
SetDParam(0, this->town->act_pass);
|
||||||
SetDParam(1, t->max_pass);
|
SetDParam(1, this->town->max_pass);
|
||||||
DrawString(2, 117, STR_200D_PASSENGERS_LAST_MONTH_MAX, TC_FROMSTRING);
|
DrawString(2, 117, STR_200D_PASSENGERS_LAST_MONTH_MAX, TC_FROMSTRING);
|
||||||
|
|
||||||
SetDParam(0, t->act_mail);
|
SetDParam(0, this->town->act_mail);
|
||||||
SetDParam(1, t->max_mail);
|
SetDParam(1, this->town->max_mail);
|
||||||
DrawString(2, 127, STR_200E_MAIL_LAST_MONTH_MAX, TC_FROMSTRING);
|
DrawString(2, 127, STR_200E_MAIL_LAST_MONTH_MAX, TC_FROMSTRING);
|
||||||
|
|
||||||
this->DrawViewport();
|
this->DrawViewport();
|
||||||
@ -339,14 +338,12 @@ public:
|
|||||||
|
|
||||||
virtual void OnClick(Point pt, int widget)
|
virtual void OnClick(Point pt, int widget)
|
||||||
{
|
{
|
||||||
Town *t = GetTown(this->window_number);
|
|
||||||
|
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case TVW_CENTERVIEW: /* scroll to location */
|
case TVW_CENTERVIEW: /* scroll to location */
|
||||||
if (_ctrl_pressed) {
|
if (_ctrl_pressed) {
|
||||||
ShowExtraViewPortWindow(t->xy);
|
ShowExtraViewPortWindow(this->town->xy);
|
||||||
} else {
|
} else {
|
||||||
ScrollMainWindowToTile(t->xy);
|
ScrollMainWindowToTile(this->town->xy);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -360,11 +357,11 @@ public:
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case TVW_EXPAND: /* expand town - only available on Scenario editor */
|
case TVW_EXPAND: /* expand town - only available on Scenario editor */
|
||||||
ExpandTown(t);
|
ExpandTown(this->town);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TVW_DELETE: /* delete town - only available on Scenario editor */
|
case TVW_DELETE: /* delete town - only available on Scenario editor */
|
||||||
delete t;
|
delete this->town;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user