summaryrefslogtreecommitdiff
path: root/settings_gui.c
diff options
context:
space:
mode:
authordarkvater <darkvater@openttd.org>2004-09-04 13:06:09 +0000
committerdarkvater <darkvater@openttd.org>2004-09-04 13:06:09 +0000
commit85628544eeac566a70bf3f218bc078c096c65c50 (patch)
tree4c8dfe7c2804e783d4308382ce2f15c7f96bd43f /settings_gui.c
parentb4cf633f66491956dcb94e7fa39e687f9341b7e1 (diff)
downloadopenttd-85628544eeac566a70bf3f218bc078c096c65c50.tar.xz
(svn r157) -Feature: [1009708] Percent-based service intervals. Send a vehicle to depot after it has lost X% of its reliability (mivlad)
Diffstat (limited to 'settings_gui.c')
-rw-r--r--settings_gui.c37
1 files changed, 33 insertions, 4 deletions
diff --git a/settings_gui.c b/settings_gui.c
index 8fdc80464..58dea0b8e 100644
--- a/settings_gui.c
+++ b/settings_gui.c
@@ -684,6 +684,34 @@ int32 InvisibleTreesActive(int32 p1)
return 0;
}
+int32 InValidateDetailsWindow(int32 p1)
+{
+ InvalidateWindowClasses(WC_VEHICLE_DETAILS);
+ return 0;
+}
+
+/* Check service intervals of vehicles, p1 is value of % or day based servicing */
+int32 CheckInterval(int32 p1)
+{
+ bool warning;
+ if (p1) {
+ warning = ( (IS_INT_INSIDE(_patches.servint_trains, 5, 90+1) || _patches.servint_trains == 0) &&
+ (IS_INT_INSIDE(_patches.servint_roadveh, 5, 90+1) || _patches.servint_roadveh == 0) &&
+ (IS_INT_INSIDE(_patches.servint_aircraft, 5, 90+1) || _patches.servint_aircraft == 0) &&
+ (IS_INT_INSIDE(_patches.servint_ships, 5, 90+1) || _patches.servint_ships == 0) );
+ } else {
+ warning = ( (IS_INT_INSIDE(_patches.servint_trains, 30, 800+1) || _patches.servint_trains == 0) &&
+ (IS_INT_INSIDE(_patches.servint_roadveh, 30, 800+1) || _patches.servint_roadveh == 0) &&
+ (IS_INT_INSIDE(_patches.servint_aircraft, 30, 800+1) || _patches.servint_aircraft == 0) &&
+ (IS_INT_INSIDE(_patches.servint_ships, 30, 800+1) || _patches.servint_ships == 0) );
+ }
+
+ if (!warning)
+ ShowErrorMessage(-1, STR_CONFIG_PATCHES_SERVICE_INTERVAL_INCOMPATIBLE, 0, 0);
+
+ return InValidateDetailsWindow(0);
+}
+
typedef int32 PatchButtonClick(int32);
typedef struct PatchEntry {
@@ -754,10 +782,11 @@ static const PatchEntry _patches_vehicles[] = {
{PE_UINT8, 0, STR_CONFIG_PATCHES_MAX_AIRCRAFT, &_patches.max_aircraft, 0, 240, 10},
{PE_UINT8, 0, STR_CONFIG_PATCHES_MAX_SHIPS, &_patches.max_ships, 0, 240, 10},
- {PE_UINT16, PF_0ISDIS, STR_CONFIG_PATCHES_SERVINT_TRAINS, &_patches.servint_trains, 30, 1200, 10},
- {PE_UINT16, PF_0ISDIS, STR_CONFIG_PATCHES_SERVINT_ROADVEH, &_patches.servint_roadveh, 30, 1200, 10},
- {PE_UINT16, PF_0ISDIS, STR_CONFIG_PATCHES_SERVINT_AIRCRAFT, &_patches.servint_aircraft, 30, 1200, 10},
- {PE_UINT16, PF_0ISDIS, STR_CONFIG_PATCHES_SERVINT_SHIPS, &_patches.servint_ships, 30, 1200, 10},
+ {PE_BOOL, 0, STR_CONFIG_PATCHES_SERVINT_ISPERCENT, &_patches.servint_ispercent, 0, 0, 0, &CheckInterval},
+ {PE_UINT16, PF_0ISDIS, STR_CONFIG_PATCHES_SERVINT_TRAINS, &_patches.servint_trains, 5, 800, 5, &InValidateDetailsWindow},
+ {PE_UINT16, PF_0ISDIS, STR_CONFIG_PATCHES_SERVINT_ROADVEH, &_patches.servint_roadveh, 5, 800, 5, &InValidateDetailsWindow},
+ {PE_UINT16, PF_0ISDIS, STR_CONFIG_PATCHES_SERVINT_AIRCRAFT, &_patches.servint_aircraft, 5, 800, 5, &InValidateDetailsWindow},
+ {PE_UINT16, PF_0ISDIS, STR_CONFIG_PATCHES_SERVINT_SHIPS, &_patches.servint_ships, 5, 800, 5, &InValidateDetailsWindow},
};
static const PatchEntry _patches_stations[] = {