Merge branch 'master' into jgrpp
This commit is contained in:
@@ -166,8 +166,8 @@ check_ipo_supported(RESULT IPO_FOUND)
|
|||||||
show_options()
|
show_options()
|
||||||
|
|
||||||
if(UNIX AND NOT APPLE AND NOT OPTION_DEDICATED)
|
if(UNIX AND NOT APPLE AND NOT OPTION_DEDICATED)
|
||||||
if(NOT SDL_FOUND AND NOT SDL2_FOUND)
|
if(NOT SDL_FOUND AND NOT SDL2_FOUND AND NOT ALLEGRO_FOUND)
|
||||||
message(FATAL_ERROR "SDL or SDL2 is required for this platform")
|
message(FATAL_ERROR "SDL, SDL2 or Allegro is required for this platform")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
|
@@ -296,7 +296,7 @@ struct DepotWindow : Window {
|
|||||||
~DepotWindow()
|
~DepotWindow()
|
||||||
{
|
{
|
||||||
DeleteWindowById(WC_BUILD_VEHICLE, this->window_number);
|
DeleteWindowById(WC_BUILD_VEHICLE, this->window_number);
|
||||||
DeleteWindowById(GetWindowClassForVehicleType(this->type), VehicleListIdentifier(VL_DEPOT_LIST, this->type, this->owner, GetDepotIndex(this->window_number)).Pack(), false);
|
DeleteWindowById(GetWindowClassForVehicleType(this->type), VehicleListIdentifier(VL_DEPOT_LIST, this->type, this->owner, this->GetDepotIndex()).Pack(), false);
|
||||||
OrderBackup::Reset(this->window_number);
|
OrderBackup::Reset(this->window_number);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -426,10 +426,8 @@ struct DepotWindow : Window {
|
|||||||
{
|
{
|
||||||
if (widget != WID_D_CAPTION) return;
|
if (widget != WID_D_CAPTION) return;
|
||||||
|
|
||||||
/* locate the depot struct */
|
|
||||||
TileIndex tile = this->window_number;
|
|
||||||
SetDParam(0, this->type);
|
SetDParam(0, this->type);
|
||||||
SetDParam(1, (this->type == VEH_AIRCRAFT) ? GetStationIndex(tile) : GetDepotIndex(tile));
|
SetDParam(1, this->GetDepotIndex());
|
||||||
}
|
}
|
||||||
|
|
||||||
struct GetDepotVehiclePtData {
|
struct GetDepotVehiclePtData {
|
||||||
@@ -812,11 +810,8 @@ struct DepotWindow : Window {
|
|||||||
case WID_D_SELL_ALL:
|
case WID_D_SELL_ALL:
|
||||||
/* Only open the confirmation window if there are anything to sell */
|
/* Only open the confirmation window if there are anything to sell */
|
||||||
if (this->vehicle_list.size() != 0 || this->wagon_list.size() != 0) {
|
if (this->vehicle_list.size() != 0 || this->wagon_list.size() != 0) {
|
||||||
TileIndex tile = this->window_number;
|
SetDParam(0, this->type);
|
||||||
byte vehtype = this->type;
|
SetDParam(1, this->GetDepotIndex());
|
||||||
|
|
||||||
SetDParam(0, vehtype);
|
|
||||||
SetDParam(1, (vehtype == VEH_AIRCRAFT) ? GetStationIndex(tile) : GetDepotIndex(tile));
|
|
||||||
ShowQuery(
|
ShowQuery(
|
||||||
STR_DEPOT_CAPTION,
|
STR_DEPOT_CAPTION,
|
||||||
STR_DEPOT_SELL_CONFIRMATION_TEXT,
|
STR_DEPOT_SELL_CONFIRMATION_TEXT,
|
||||||
@@ -842,7 +837,7 @@ struct DepotWindow : Window {
|
|||||||
if (str == nullptr) return;
|
if (str == nullptr) return;
|
||||||
|
|
||||||
/* Do depot renaming */
|
/* Do depot renaming */
|
||||||
DoCommandP(0, GetDepotIndex(this->window_number), 0, CMD_RENAME_DEPOT | CMD_MSG(STR_ERROR_CAN_T_RENAME_DEPOT), nullptr, str);
|
DoCommandP(0, this->GetDepotIndex(), 0, CMD_RENAME_DEPOT | CMD_MSG(STR_ERROR_CAN_T_RENAME_DEPOT), nullptr, str);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool OnRightClick(Point pt, int widget) override
|
bool OnRightClick(Point pt, int widget) override
|
||||||
@@ -1080,6 +1075,16 @@ struct DepotWindow : Window {
|
|||||||
|
|
||||||
return ES_NOT_HANDLED;
|
return ES_NOT_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the DepotID of the current window.
|
||||||
|
* In the case of airports, this is the station ID.
|
||||||
|
* @return Depot or station ID of this window.
|
||||||
|
*/
|
||||||
|
inline uint16 GetDepotIndex() const
|
||||||
|
{
|
||||||
|
return (this->type == VEH_AIRCRAFT) ? ::GetStationIndex(this->window_number) : ::GetDepotIndex(this->window_number);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static void DepotSellAllConfirmationCallback(Window *win, bool confirmed)
|
static void DepotSellAllConfirmationCallback(Window *win, bool confirmed)
|
||||||
|
@@ -625,7 +625,7 @@ no_entry_cost: // jump here at the beginning if the node has no parent (it is th
|
|||||||
{
|
{
|
||||||
int min_speed = 0;
|
int min_speed = 0;
|
||||||
int max_speed = tf->GetSpeedLimit(&min_speed);
|
int max_speed = tf->GetSpeedLimit(&min_speed);
|
||||||
int max_veh_speed = v->GetDisplayMaxSpeed();
|
int max_veh_speed = std::min<int>(v->GetDisplayMaxSpeed(), v->current_order.GetMaxSpeed());
|
||||||
if (max_speed < max_veh_speed) {
|
if (max_speed < max_veh_speed) {
|
||||||
extra_cost += YAPF_TILE_LENGTH * (max_veh_speed - max_speed) * (4 + tf->m_tiles_skipped) / max_veh_speed;
|
extra_cost += YAPF_TILE_LENGTH * (max_veh_speed - max_speed) * (4 + tf->m_tiles_skipped) / max_veh_speed;
|
||||||
}
|
}
|
||||||
|
@@ -197,7 +197,7 @@ public:
|
|||||||
|
|
||||||
/* add min/max speed penalties */
|
/* add min/max speed penalties */
|
||||||
int min_speed = 0;
|
int min_speed = 0;
|
||||||
int max_veh_speed = v->GetDisplayMaxSpeed();
|
int max_veh_speed = std::min<int>(v->GetDisplayMaxSpeed(), v->current_order.GetMaxSpeed() * 2);
|
||||||
int max_speed = F.GetSpeedLimit(&min_speed);
|
int max_speed = F.GetSpeedLimit(&min_speed);
|
||||||
if (max_speed < max_veh_speed) segment_cost += YAPF_TILE_LENGTH * (max_veh_speed - max_speed) * (4 + F.m_tiles_skipped) / max_veh_speed;
|
if (max_speed < max_veh_speed) segment_cost += YAPF_TILE_LENGTH * (max_veh_speed - max_speed) * (4 + F.m_tiles_skipped) / max_veh_speed;
|
||||||
if (min_speed > max_veh_speed) segment_cost += YAPF_TILE_LENGTH * (min_speed - max_veh_speed);
|
if (min_speed > max_veh_speed) segment_cost += YAPF_TILE_LENGTH * (min_speed - max_veh_speed);
|
||||||
|
Reference in New Issue
Block a user