@@ -82,6 +82,18 @@ struct BuildAirToolbarWindow : Window {
if (_settings_client.gui.link_terraform_toolbar) DeleteWindowById(WC_SCEN_LAND_GEN, 0, false);
}
/**
* Some data on this window has become invalid.
* @param data Information about the changed data.
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
*/
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
{
if (!gui_scope) return;
if (!CanBuildVehicleInfrastructure(VEH_AIRCRAFT)) delete this;
virtual void OnClick(Point pt, int widget, int click_count)
switch (widget) {
@@ -116,11 +116,17 @@ struct BuildDocksToolbarWindow : Window
this->SetWidgetsDisabledState(!CanBuildVehicleInfrastructure(VEH_SHIP),
bool can_build = CanBuildVehicleInfrastructure(VEH_SHIP);
this->SetWidgetsDisabledState(!can_build,
WID_DT_DEPOT,
WID_DT_STATION,
WID_DT_BUOY,
WIDGET_LIST_END);
if (!can_build) {
DeleteWindowById(WC_BUILD_STATION, TRANSPORT_WATER);
DeleteWindowById(WC_BUILD_DEPOT, TRANSPORT_WATER);
@@ -435,6 +435,18 @@ struct BuildRailToolbarWindow : Window {
if (!CanBuildVehicleInfrastructure(VEH_TRAIN)) delete this;
* Configures the rail toolbar for railtype given
* @param railtype the railtype to display
@@ -338,11 +338,18 @@ struct BuildRoadToolbarWindow : Window {
this->SetWidgetsDisabledState(!CanBuildVehicleInfrastructure(VEH_ROAD),
bool can_build = CanBuildVehicleInfrastructure(VEH_ROAD);
WID_ROT_DEPOT,
WID_ROT_BUS_STATION,
WID_ROT_TRUCK_STATION,
DeleteWindowById(WC_BUILD_DEPOT, TRANSPORT_ROAD);
DeleteWindowById(WC_BUS_STATION, TRANSPORT_ROAD);
DeleteWindowById(WC_TRUCK_STATION, TRANSPORT_ROAD);
@@ -1304,6 +1304,13 @@ static bool StationCatchmentChanged(int3
return true;
static bool MaxVehiclesChanged(int32 p1)
InvalidateWindowClassesData(WC_BUILD_TOOLBAR);
MarkWholeScreenDirty();
#ifdef ENABLE_NETWORK
@@ -41,6 +41,7 @@ static bool RedrawTownAuthority(int32 p1
static bool InvalidateCompanyInfrastructureWindow(int32 p1);
static bool InvalidateCompanyWindow(int32 p1);
static bool ZoomMinMaxChanged(int32 p1);
static bool MaxVehiclesChanged(int32 p1);
static bool UpdateClientName(int32 p1);
@@ -961,7 +962,7 @@ max = 5000
str = STR_CONFIG_SETTING_MAX_TRAINS
strhelp = STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT
strval = STR_JUST_COMMA
proc = RedrawScreen
proc = MaxVehiclesChanged
cat = SC_BASIC
[SDT_VAR]
@@ -974,7 +975,7 @@ max = 5000
str = STR_CONFIG_SETTING_MAX_ROAD_VEHICLES
strhelp = STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT
@@ -987,7 +988,7 @@ max = 5000
str = STR_CONFIG_SETTING_MAX_AIRCRAFT
strhelp = STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT
@@ -1000,7 +1001,7 @@ max = 5000
str = STR_CONFIG_SETTING_MAX_SHIPS
strhelp = STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT
[SDTG_BOOL]
Status change: