mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r25553) -Fix [FS#5530]: provide a warning when no vehicles are available, and tell what to do in that case
This commit is contained in:
parent
79ddda1b10
commit
1efc64fa7d
|
@ -30,6 +30,7 @@
|
||||||
#include "company_base.h"
|
#include "company_base.h"
|
||||||
#include "vehicle_func.h"
|
#include "vehicle_func.h"
|
||||||
#include "articulated_vehicles.h"
|
#include "articulated_vehicles.h"
|
||||||
|
#include "error.h"
|
||||||
|
|
||||||
#include "table/strings.h"
|
#include "table/strings.h"
|
||||||
#include "table/engines.h"
|
#include "table/engines.h"
|
||||||
|
@ -1098,3 +1099,25 @@ bool IsEngineRefittable(EngineID engine)
|
||||||
CargoID default_cargo = e->GetDefaultCargoType();
|
CargoID default_cargo = e->GetDefaultCargoType();
|
||||||
return default_cargo != CT_INVALID && ei->refit_mask != 1U << default_cargo;
|
return default_cargo != CT_INVALID && ei->refit_mask != 1U << default_cargo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check for engines that have an appropriate availability.
|
||||||
|
*/
|
||||||
|
void CheckEngines()
|
||||||
|
{
|
||||||
|
const Engine *e;
|
||||||
|
Date min_date = INT32_MAX;
|
||||||
|
|
||||||
|
FOR_ALL_ENGINES(e) {
|
||||||
|
if (!e->IsEnabled()) continue;
|
||||||
|
|
||||||
|
/* We have an available engine... yay! */
|
||||||
|
if (e->flags & ENGINE_AVAILABLE && e->company_avail != 0) return;
|
||||||
|
|
||||||
|
/* Okay, try to find the earliest date. */
|
||||||
|
min_date = min(min_date, e->info.base_intro);
|
||||||
|
}
|
||||||
|
|
||||||
|
SetDParam(0, min_date);
|
||||||
|
ShowErrorMessage(STR_ERROR_NO_VEHICLES_AVAILABLE, STR_ERROR_NO_VEHICLES_AVAILABLE_EXPLANATION, WL_WARNING);
|
||||||
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
void SetupEngines();
|
void SetupEngines();
|
||||||
void StartupEngines();
|
void StartupEngines();
|
||||||
|
void CheckEngines();
|
||||||
|
|
||||||
/* Original engine data counts and offsets */
|
/* Original engine data counts and offsets */
|
||||||
extern const uint8 _engine_counts[4];
|
extern const uint8 _engine_counts[4];
|
||||||
|
|
|
@ -4316,6 +4316,9 @@ STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}Can't ch
|
||||||
|
|
||||||
STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... vehicle is destroyed
|
STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... vehicle is destroyed
|
||||||
|
|
||||||
|
STR_ERROR_NO_VEHICLES_AVAILABLE :{WHITE}No vehicles are available yet
|
||||||
|
STR_ERROR_NO_VEHICLES_AVAILABLE_EXPLANATION :{WHITE}Start a new game after {DATE_SHORT} or use a NewGRF that provides early vehicles
|
||||||
|
|
||||||
# Specific vehicle errors
|
# Specific vehicle errors
|
||||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Can't make train pass signal at danger...
|
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Can't make train pass signal at danger...
|
||||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Can't reverse direction of train...
|
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Can't reverse direction of train...
|
||||||
|
|
|
@ -926,6 +926,7 @@ static void MakeNewGameDone()
|
||||||
|
|
||||||
if (_settings_client.gui.pause_on_newgame) DoCommandP(0, PM_PAUSED_NORMAL, 1, CMD_PAUSE);
|
if (_settings_client.gui.pause_on_newgame) DoCommandP(0, PM_PAUSED_NORMAL, 1, CMD_PAUSE);
|
||||||
|
|
||||||
|
CheckEngines();
|
||||||
MarkWholeScreenDirty();
|
MarkWholeScreenDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue