Merge branch 'infrastructure_sharing-sx' into jgrpp
# Conflicts: # src/settings_type.h # src/table/settings.ini
This commit is contained in:
@@ -658,6 +658,7 @@ uint VehicleCargoList::Unload(uint max_move, StationCargoList *dest, CargoPaymen
|
|||||||
uint VehicleCargoList::Truncate(uint max_move)
|
uint VehicleCargoList::Truncate(uint max_move)
|
||||||
{
|
{
|
||||||
max_move = min(this->count, max_move);
|
max_move = min(this->count, max_move);
|
||||||
|
if (max_move > this->ActionCount(MTA_KEEP)) this->KeepAll();
|
||||||
this->PopCargo(CargoRemoval<VehicleCargoList>(this, max_move));
|
this->PopCargo(CargoRemoval<VehicleCargoList>(this, max_move));
|
||||||
return max_move;
|
return max_move;
|
||||||
}
|
}
|
||||||
|
@@ -1265,6 +1265,9 @@ STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :When enabled, i
|
|||||||
STR_CONFIG_SETTING_SHIP_COLLISION_AVOIDANCE :Ships avoid collisions: {STRING2}
|
STR_CONFIG_SETTING_SHIP_COLLISION_AVOIDANCE :Ships avoid collisions: {STRING2}
|
||||||
STR_CONFIG_SETTING_SHIP_COLLISION_AVOIDANCE_HELPTEXT :When enabled, ships try to avoid passing through each other. Requires 90° turns to be forbidden.
|
STR_CONFIG_SETTING_SHIP_COLLISION_AVOIDANCE_HELPTEXT :When enabled, ships try to avoid passing through each other. Requires 90° turns to be forbidden.
|
||||||
|
|
||||||
|
STR_CONFIG_SETTING_NO_TRAIN_CRASH_OTHER_COMPANY :Trains from different companies may not crash into each other: {STRING2}
|
||||||
|
STR_CONFIG_SETTING_NO_TRAIN_CRASH_OTHER_COMPANY_HELPTEXT :This setting is primarily to prevent untrusted players deliberately causing crashes involving other companies' trains in multi-player rail infrastructure sharing games.
|
||||||
|
|
||||||
STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Airports never expire: {STRING2}
|
STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Airports never expire: {STRING2}
|
||||||
STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Enabling this setting makes each airport type stay available forever after its introduction
|
STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Enabling this setting makes each airport type stay available forever after its introduction
|
||||||
|
|
||||||
|
@@ -1724,6 +1724,7 @@ static SettingsContainer &GetSettingsTree()
|
|||||||
disasters->Add(new SettingEntry("difficulty.vehicle_breakdowns"));
|
disasters->Add(new SettingEntry("difficulty.vehicle_breakdowns"));
|
||||||
disasters->Add(new SettingEntry("vehicle.improved_breakdowns"));
|
disasters->Add(new SettingEntry("vehicle.improved_breakdowns"));
|
||||||
disasters->Add(new SettingEntry("vehicle.plane_crashes"));
|
disasters->Add(new SettingEntry("vehicle.plane_crashes"));
|
||||||
|
disasters->Add(new SettingEntry("vehicle.no_train_crash_other_company"));
|
||||||
}
|
}
|
||||||
|
|
||||||
SettingsPage *genworld = main->Add(new SettingsPage(STR_CONFIG_SETTING_GENWORLD));
|
SettingsPage *genworld = main->Add(new SettingsPage(STR_CONFIG_SETTING_GENWORLD));
|
||||||
|
@@ -514,6 +514,7 @@ struct VehicleSettings {
|
|||||||
bool pay_for_repair; ///< pay for repairing vehicle
|
bool pay_for_repair; ///< pay for repairing vehicle
|
||||||
uint8 repair_cost; ///< cost of repairing vehicle
|
uint8 repair_cost; ///< cost of repairing vehicle
|
||||||
bool ship_collision_avoidance; ///< ships try to avoid colliding with each other
|
bool ship_collision_avoidance; ///< ships try to avoid colliding with each other
|
||||||
|
bool no_train_crash_other_company; ///< trains cannot crash with trains from other companies
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Settings related to the economy. */
|
/** Settings related to the economy. */
|
||||||
|
@@ -1289,6 +1289,15 @@ strhelp = STR_CONFIG_SETTING_SHIP_COLLISION_AVOIDANCE_HELPTEXT
|
|||||||
patxname = ""ship_collision_avoidance.vehicle.ship_collision_avoidance""
|
patxname = ""ship_collision_avoidance.vehicle.ship_collision_avoidance""
|
||||||
cat = SC_BASIC
|
cat = SC_BASIC
|
||||||
|
|
||||||
|
[SDT_BOOL]
|
||||||
|
base = GameSettings
|
||||||
|
var = vehicle.no_train_crash_other_company
|
||||||
|
def = false
|
||||||
|
str = STR_CONFIG_SETTING_NO_TRAIN_CRASH_OTHER_COMPANY
|
||||||
|
strhelp = STR_CONFIG_SETTING_NO_TRAIN_CRASH_OTHER_COMPANY_HELPTEXT
|
||||||
|
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_INFRA_SHARING)
|
||||||
|
patxname = ""infra_sharing.vehicle.no_train_crash_other_company""
|
||||||
|
|
||||||
; station.join_stations
|
; station.join_stations
|
||||||
[SDT_NULL]
|
[SDT_NULL]
|
||||||
length = 1
|
length = 1
|
||||||
|
@@ -3298,6 +3298,11 @@ static Vehicle *FindTrainCollideEnum(Vehicle *v, void *data)
|
|||||||
/* not a train or in depot */
|
/* not a train or in depot */
|
||||||
if (v->type != VEH_TRAIN || Train::From(v)->track == TRACK_BIT_DEPOT) return NULL;
|
if (v->type != VEH_TRAIN || Train::From(v)->track == TRACK_BIT_DEPOT) return NULL;
|
||||||
|
|
||||||
|
if (_settings_game.vehicle.no_train_crash_other_company) {
|
||||||
|
/* do not crash into trains of another company. */
|
||||||
|
if (v->owner != tcc->v->owner) return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* get first vehicle now to make most usual checks faster */
|
/* get first vehicle now to make most usual checks faster */
|
||||||
Train *coll = Train::From(v)->First();
|
Train *coll = Train::From(v)->First();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user