mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-12 10:30:28 +00:00
(svn r25894) -Change: Unify behaviour when clicking on different items in the goto dropdown list when giving orders (adf88)
This commit is contained in:
parent
fe550c2db3
commit
dc10b6c167
@ -500,6 +500,7 @@ private:
|
||||
OPOS_GOTO,
|
||||
OPOS_CONDITIONAL,
|
||||
OPOS_SHARE,
|
||||
OPOS_END,
|
||||
};
|
||||
|
||||
/** Displayed planes of the #NWID_SELECTION widgets. */
|
||||
@ -572,16 +573,18 @@ private:
|
||||
/**
|
||||
* Handle the click on the goto button.
|
||||
*/
|
||||
void OrderClick_Goto()
|
||||
void OrderClick_Goto(OrderPlaceObjectState type)
|
||||
{
|
||||
assert(type > OPOS_NONE && type < OPOS_END);
|
||||
|
||||
static const HighLightStyle goto_place_style[OPOS_END - 1] = {
|
||||
HT_RECT | HT_VEHICLE, // OPOS_GOTO
|
||||
HT_NONE, // OPOS_CONDITIONAL
|
||||
HT_VEHICLE, // OPOS_SHARE
|
||||
};
|
||||
SetObjectToPlaceWnd(ANIMCURSOR_PICKSTATION, PAL_NONE, goto_place_style[type - 1], this);
|
||||
this->goto_type = type;
|
||||
this->SetWidgetDirty(WID_O_GOTO);
|
||||
this->ToggleWidgetLoweredState(WID_O_GOTO);
|
||||
if (this->IsWidgetLowered(WID_O_GOTO)) {
|
||||
SetObjectToPlaceWnd(ANIMCURSOR_PICKSTATION, PAL_NONE, HT_RECT | HT_VEHICLE, this);
|
||||
this->goto_type = OPOS_GOTO;
|
||||
} else {
|
||||
ResetObjectToPlace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -639,26 +642,6 @@ private:
|
||||
DoCommandP(this->vehicle->tile, this->vehicle->index + (this->OrderGetSel() << 20), order.Pack(), CMD_INSERT_ORDER | CMD_MSG(STR_ERROR_CAN_T_INSERT_NEW_ORDER));
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the click on the conditional order button.
|
||||
*/
|
||||
void OrderClick_Conditional()
|
||||
{
|
||||
this->SetWidgetDirty(WID_O_GOTO);
|
||||
SetObjectToPlaceWnd(ANIMCURSOR_PICKSTATION, PAL_NONE, HT_NONE, this);
|
||||
this->goto_type = OPOS_CONDITIONAL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the click on the share button.
|
||||
*/
|
||||
void OrderClick_Share()
|
||||
{
|
||||
this->SetWidgetDirty(WID_O_GOTO);
|
||||
SetObjectToPlaceWnd(ANIMCURSOR_PICKSTATION, PAL_NONE, HT_VEHICLE, this);
|
||||
this->goto_type = OPOS_SHARE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the click on the unload button.
|
||||
*/
|
||||
@ -830,7 +813,7 @@ public:
|
||||
if (order->IsType(OT_GOTO_STATION)) station_orders++;
|
||||
}
|
||||
|
||||
if (station_orders < 2) this->OrderClick_Goto();
|
||||
if (station_orders < 2) this->OrderClick_Goto(OPOS_GOTO);
|
||||
}
|
||||
this->OnInvalidateData(VIWD_MODIFY_ORDERS);
|
||||
}
|
||||
@ -1273,7 +1256,11 @@ public:
|
||||
|
||||
case WID_O_GOTO:
|
||||
if (this->GetWidget<NWidgetLeaf>(widget)->ButtonHit(pt)) {
|
||||
this->OrderClick_Goto();
|
||||
if (this->goto_type != OPOS_NONE) {
|
||||
ResetObjectToPlace();
|
||||
} else {
|
||||
this->OrderClick_Goto(OPOS_GOTO);
|
||||
}
|
||||
} else {
|
||||
int sel;
|
||||
switch (this->goto_type) {
|
||||
@ -1397,10 +1384,10 @@ public:
|
||||
|
||||
case WID_O_GOTO:
|
||||
switch (index) {
|
||||
case 0: this->OrderClick_Goto(); break;
|
||||
case 0: this->OrderClick_Goto(OPOS_GOTO); break;
|
||||
case 1: this->OrderClick_NearestDepot(); break;
|
||||
case 2: this->OrderClick_Conditional(); break;
|
||||
case 3: this->OrderClick_Share(); break;
|
||||
case 2: this->OrderClick_Goto(OPOS_CONDITIONAL); break;
|
||||
case 3: this->OrderClick_Goto(OPOS_SHARE); break;
|
||||
default: NOT_REACHED();
|
||||
}
|
||||
break;
|
||||
@ -1463,7 +1450,7 @@ public:
|
||||
switch (hotkey) {
|
||||
case OHK_SKIP: this->OrderClick_Skip(); break;
|
||||
case OHK_DELETE: this->OrderClick_Delete(); break;
|
||||
case OHK_GOTO: this->OrderClick_Goto(); break;
|
||||
case OHK_GOTO: this->OrderClick_Goto(OPOS_GOTO); break;
|
||||
case OHK_NONSTOP: this->OrderClick_Nonstop(-1); break;
|
||||
case OHK_FULLLOAD: this->OrderClick_FullLoad(-1); break;
|
||||
case OHK_UNLOAD: this->OrderClick_Unload(-1); break;
|
||||
|
Loading…
Reference in New Issue
Block a user