mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-10-31 15:20:10 +00:00
(svn r16315) -Codechange: move the autorenew settings to a new CompanySettings struct
This commit is contained in:
parent
87ff51f15b
commit
d489f93473
@ -156,7 +156,7 @@
|
||||
company = ResolveCompanyID(company);
|
||||
if (company == COMPANY_INVALID) return false;
|
||||
|
||||
return ::GetCompany((CompanyID)company)->engine_renew;
|
||||
return ::GetCompany((CompanyID)company)->settings.engine_renew;
|
||||
}
|
||||
|
||||
/* static */ bool AICompany::SetAutoRenewMonths(int16 months)
|
||||
@ -169,7 +169,7 @@
|
||||
company = ResolveCompanyID(company);
|
||||
if (company == COMPANY_INVALID) return 0;
|
||||
|
||||
return ::GetCompany((CompanyID)company)->engine_renew_months;
|
||||
return ::GetCompany((CompanyID)company)->settings.engine_renew_months;
|
||||
}
|
||||
|
||||
/* static */ bool AICompany::SetAutoRenewMoney(uint32 money)
|
||||
@ -182,5 +182,5 @@
|
||||
company = ResolveCompanyID(company);
|
||||
if (company == COMPANY_INVALID) return 0;
|
||||
|
||||
return ::GetCompany((CompanyID)company)->engine_renew_money;
|
||||
return ::GetCompany((CompanyID)company)->settings.engine_renew_money;
|
||||
}
|
||||
|
@ -100,7 +100,7 @@
|
||||
|
||||
/* static */ bool AIGroup::HasWagonRemoval()
|
||||
{
|
||||
return ::GetCompany(_current_company)->renew_keep_length;
|
||||
return ::GetCompany(_current_company)->settings.renew_keep_length;
|
||||
}
|
||||
|
||||
/* static */ bool AIGroup::SetAutoReplace(GroupID group_id, EngineID engine_id_old, EngineID engine_id_new)
|
||||
|
@ -1448,7 +1448,7 @@ static inline bool CheckSendAircraftToHangarForReplacement(const Vehicle *v)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (c->money < (c->engine_renew_money + (2 * DoCommand(0, new_engine, 0, DC_QUERY_COST, CMD_BUILD_AIRCRAFT).GetCost()))) {
|
||||
if (c->money < (c->settings.engine_renew_money + (2 * DoCommand(0, new_engine, 0, DC_QUERY_COST, CMD_BUILD_AIRCRAFT).GetCost()))) {
|
||||
/* We lack enough money to request the replacement right away.
|
||||
* We want 2*(the price of the new vehicle) and not looking at the value of the vehicle we are going to sell.
|
||||
* The reason is that we don't want to send a whole lot of vehicles to the hangars when we only have enough money to replace a single one.
|
||||
|
@ -624,7 +624,7 @@ CommandCost CmdAutoreplaceVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1
|
||||
}
|
||||
|
||||
const Company *c = GetCompany(_current_company);
|
||||
bool wagon_removal = c->renew_keep_length;
|
||||
bool wagon_removal = c->settings.renew_keep_length;
|
||||
|
||||
/* Test whether any replacement is set, before issuing a whole lot of commands that would end in nothing changed */
|
||||
Vehicle *w = v;
|
||||
|
@ -267,7 +267,7 @@ public:
|
||||
|
||||
if (this->window_number == VEH_TRAIN) {
|
||||
/* set on/off for renew_keep_length */
|
||||
SetDParam(1, c->renew_keep_length ? STR_CONFIG_SETTING_ON : STR_CONFIG_SETTING_OFF);
|
||||
SetDParam(1, c->settings.renew_keep_length ? STR_CONFIG_SETTING_ON : STR_CONFIG_SETTING_OFF);
|
||||
|
||||
/* set wagon/engine button */
|
||||
SetDParam(2, this->wagon_btnstate ? STR_ENGINES : STR_WAGONS);
|
||||
@ -347,7 +347,7 @@ public:
|
||||
}
|
||||
|
||||
case RVW_WIDGET_TRAIN_WAGONREMOVE_TOGGLE: // toggle renew_keep_length
|
||||
DoCommandP(0, 5, GetCompany(_local_company)->renew_keep_length ? 0 : 1, CMD_SET_AUTOREPLACE);
|
||||
DoCommandP(0, 5, GetCompany(_local_company)->settings.renew_keep_length ? 0 : 1, CMD_SET_AUTOREPLACE);
|
||||
break;
|
||||
|
||||
case RVW_WIDGET_START_REPLACE: { // Start replacing
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include "autoreplace_type.h"
|
||||
#include "economy_type.h"
|
||||
#include "tile_type.h"
|
||||
#include "settings_type.h"
|
||||
|
||||
struct CompanyEconomyEntry {
|
||||
Money income;
|
||||
@ -78,10 +79,7 @@ struct Company : PoolItem<Company, CompanyByte, &_Company_pool> {
|
||||
CompanyEconomyEntry cur_economy;
|
||||
CompanyEconomyEntry old_economy[24];
|
||||
EngineRenewList engine_renew_list; ///< Defined later
|
||||
bool engine_renew;
|
||||
bool renew_keep_length;
|
||||
int16 engine_renew_months;
|
||||
uint32 engine_renew_money;
|
||||
CompanySettings settings; ///< settings specific for each company
|
||||
uint16 *num_engines; ///< caches the number of engines of each type the company owns (no need to save this)
|
||||
|
||||
inline bool IsValid() const { return this->name_1 != 0; }
|
||||
|
@ -78,9 +78,7 @@ void SetLocalCompany(CompanyID new_company)
|
||||
/* Do not update the settings if we are in the intro GUI */
|
||||
if (IsValidCompanyID(new_company) && _game_mode != GM_MENU) {
|
||||
const Company *c = GetCompany(new_company);
|
||||
_settings_client.gui.autorenew = c->engine_renew;
|
||||
_settings_client.gui.autorenew_months = c->engine_renew_months;
|
||||
_settings_client.gui.autorenew_money = c->engine_renew_money;
|
||||
_settings_client.company = c->settings;
|
||||
InvalidateWindow(WC_GAME_OPTIONS, 0);
|
||||
}
|
||||
|
||||
@ -568,12 +566,12 @@ CommandCost CmdSetAutoReplace(TileIndex tile, DoCommandFlag flags, uint32 p1, ui
|
||||
Company *c = GetCompany(_current_company);
|
||||
switch (GB(p1, 0, 3)) {
|
||||
case 0:
|
||||
if (c->engine_renew == HasBit(p2, 0)) return CMD_ERROR;
|
||||
if (c->settings.engine_renew == HasBit(p2, 0)) return CMD_ERROR;
|
||||
|
||||
if (flags & DC_EXEC) {
|
||||
c->engine_renew = HasBit(p2, 0);
|
||||
c->settings.engine_renew = HasBit(p2, 0);
|
||||
if (IsLocalCompany()) {
|
||||
_settings_client.gui.autorenew = c->engine_renew;
|
||||
_settings_client.company.engine_renew = c->settings.engine_renew;
|
||||
InvalidateWindow(WC_GAME_OPTIONS, 0);
|
||||
}
|
||||
}
|
||||
@ -581,12 +579,12 @@ CommandCost CmdSetAutoReplace(TileIndex tile, DoCommandFlag flags, uint32 p1, ui
|
||||
|
||||
case 1:
|
||||
if (Clamp((int16)p2, -12, 12) != (int16)p2) return CMD_ERROR;
|
||||
if (c->engine_renew_months == (int16)p2) return CMD_ERROR;
|
||||
if (c->settings.engine_renew_months == (int16)p2) return CMD_ERROR;
|
||||
|
||||
if (flags & DC_EXEC) {
|
||||
c->engine_renew_months = (int16)p2;
|
||||
c->settings.engine_renew_months = (int16)p2;
|
||||
if (IsLocalCompany()) {
|
||||
_settings_client.gui.autorenew_months = c->engine_renew_months;
|
||||
_settings_client.company.engine_renew_months = c->settings.engine_renew_months;
|
||||
InvalidateWindow(WC_GAME_OPTIONS, 0);
|
||||
}
|
||||
}
|
||||
@ -594,12 +592,12 @@ CommandCost CmdSetAutoReplace(TileIndex tile, DoCommandFlag flags, uint32 p1, ui
|
||||
|
||||
case 2:
|
||||
if (ClampU(p2, 0, 2000000) != p2) return CMD_ERROR;
|
||||
if (c->engine_renew_money == p2) return CMD_ERROR;
|
||||
if (c->settings.engine_renew_money == p2) return CMD_ERROR;
|
||||
|
||||
if (flags & DC_EXEC) {
|
||||
c->engine_renew_money = p2;
|
||||
c->settings.engine_renew_money = p2;
|
||||
if (IsLocalCompany()) {
|
||||
_settings_client.gui.autorenew_money = c->engine_renew_money;
|
||||
_settings_client.company.engine_renew_money = c->settings.engine_renew_money;
|
||||
InvalidateWindow(WC_GAME_OPTIONS, 0);
|
||||
}
|
||||
}
|
||||
@ -630,24 +628,24 @@ CommandCost CmdSetAutoReplace(TileIndex tile, DoCommandFlag flags, uint32 p1, ui
|
||||
if (ClampU(p2, 0, 2000000) != p2) return CMD_ERROR;
|
||||
|
||||
if (flags & DC_EXEC) {
|
||||
c->engine_renew = HasBit(p1, 15);
|
||||
c->engine_renew_months = (int16)GB(p1, 16, 16);
|
||||
c->engine_renew_money = p2;
|
||||
c->settings.engine_renew = HasBit(p1, 15);
|
||||
c->settings.engine_renew_months = (int16)GB(p1, 16, 16);
|
||||
c->settings.engine_renew_money = p2;
|
||||
|
||||
if (IsLocalCompany()) {
|
||||
_settings_client.gui.autorenew = c->engine_renew;
|
||||
_settings_client.gui.autorenew_months = c->engine_renew_months;
|
||||
_settings_client.gui.autorenew_money = c->engine_renew_money;
|
||||
_settings_client.company.engine_renew = c->settings.engine_renew;
|
||||
_settings_client.company.engine_renew_months = c->settings.engine_renew_months;
|
||||
_settings_client.company.engine_renew_money = c->settings.engine_renew_money;
|
||||
InvalidateWindow(WC_GAME_OPTIONS, 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 5:
|
||||
if (c->renew_keep_length == HasBit(p2, 0)) return CMD_ERROR;
|
||||
if (c->settings.renew_keep_length == HasBit(p2, 0)) return CMD_ERROR;
|
||||
|
||||
if (flags & DC_EXEC) {
|
||||
c->renew_keep_length = HasBit(p2, 0);
|
||||
c->settings.renew_keep_length = HasBit(p2, 0);
|
||||
if (IsLocalCompany()) {
|
||||
InvalidateWindow(WC_REPLACE_VEHICLE, VEH_TRAIN);
|
||||
}
|
||||
@ -750,8 +748,8 @@ CommandCost CmdCompanyCtrl(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
|
||||
/* This is the client (or non-dedicated server) who wants a new company */
|
||||
if (cid == _network_own_client_id) {
|
||||
/* Create p1 and p2 here because SetLocalCompany resets the gui.autorenew* settings. */
|
||||
uint32 p1 = (_settings_client.gui.autorenew << 15 ) | (_settings_client.gui.autorenew_months << 16) | 4;
|
||||
uint32 p2 = _settings_client.gui.autorenew_money;
|
||||
uint32 p1 = (_settings_client.company.engine_renew << 15 ) | (_settings_client.company.engine_renew_months << 16) | 4;
|
||||
uint32 p2 = _settings_client.company.engine_renew_money;
|
||||
assert(_local_company == COMPANY_SPECTATOR);
|
||||
SetLocalCompany(c->index);
|
||||
if (!StrEmpty(_settings_client.network.default_company_pass)) {
|
||||
|
@ -755,15 +755,12 @@ static void MakeNewGameDone()
|
||||
DoStartupNewCompany(false);
|
||||
|
||||
Company *c = GetCompany(COMPANY_FIRST);
|
||||
c->engine_renew = _settings_client.gui.autorenew;
|
||||
c->engine_renew_months = _settings_client.gui.autorenew_months;
|
||||
c->engine_renew_money = _settings_client.gui.autorenew_money;
|
||||
c->settings = _settings_client.company;
|
||||
|
||||
IConsoleCmdExec("exec scripts/game_start.scr 0");
|
||||
|
||||
SetLocalCompany(COMPANY_FIRST);
|
||||
_current_company = _local_company;
|
||||
DoCommandP(0, (_settings_client.gui.autorenew << 15 ) | (_settings_client.gui.autorenew_months << 16) | 4, _settings_client.gui.autorenew_money, CMD_SET_AUTOREPLACE);
|
||||
|
||||
InitializeRailGUI();
|
||||
|
||||
@ -854,7 +851,8 @@ static void StartScenario()
|
||||
|
||||
SetLocalCompany(COMPANY_FIRST);
|
||||
_current_company = _local_company;
|
||||
DoCommandP(0, (_settings_client.gui.autorenew << 15 ) | (_settings_client.gui.autorenew_months << 16) | 4, _settings_client.gui.autorenew_money, CMD_SET_AUTOREPLACE);
|
||||
Company *c = GetCompany(COMPANY_FIRST);
|
||||
c->settings = _settings_client.company;
|
||||
|
||||
MarkWholeScreenDirty();
|
||||
}
|
||||
|
@ -661,10 +661,10 @@ bool AfterLoadGame()
|
||||
* of course, we do need to initialize them for older savegames. */
|
||||
if (CheckSavegameVersion(16)) {
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
c->engine_renew_list = NULL;
|
||||
c->engine_renew = false;
|
||||
c->engine_renew_months = -6;
|
||||
c->engine_renew_money = 100000;
|
||||
c->engine_renew_list = NULL;
|
||||
c->settings.engine_renew = false;
|
||||
c->settings.engine_renew_months = 6;
|
||||
c->settings.engine_renew_money = 100000;
|
||||
}
|
||||
|
||||
/* When loading a game, _local_company is not yet set to the correct value.
|
||||
@ -675,9 +675,7 @@ bool AfterLoadGame()
|
||||
*/
|
||||
if (!_network_dedicated && IsValidCompanyID(COMPANY_FIRST)) {
|
||||
c = GetCompany(COMPANY_FIRST);
|
||||
c->engine_renew = _settings_client.gui.autorenew;
|
||||
c->engine_renew_months = _settings_client.gui.autorenew_months;
|
||||
c->engine_renew_money = _settings_client.gui.autorenew_money;
|
||||
c->settings = _settings_client.company;
|
||||
}
|
||||
}
|
||||
|
||||
@ -950,7 +948,7 @@ bool AfterLoadGame()
|
||||
* replaced, shall keep their old length. In all prior versions, just default
|
||||
* to false */
|
||||
if (CheckSavegameVersionOldStyle(16, 1)) {
|
||||
FOR_ALL_COMPANIES(c) c->renew_keep_length = false;
|
||||
FOR_ALL_COMPANIES(c) c->settings.renew_keep_length = false;
|
||||
}
|
||||
|
||||
/* In version 17, ground type is moved from m2 to m4 for depots and
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include "../company_base.h"
|
||||
#include "../company_func.h"
|
||||
#include "../company_manager_face.h"
|
||||
#include "../settings_type.h"
|
||||
|
||||
#include "saveload.h"
|
||||
|
||||
@ -133,11 +134,11 @@ static const SaveLoad _company_desc[] = {
|
||||
|
||||
/* Engine renewal settings */
|
||||
SLE_CONDNULL(512, 16, 18),
|
||||
SLE_CONDREF(Company, engine_renew_list, REF_ENGINE_RENEWS, 19, SL_MAX_VERSION),
|
||||
SLE_CONDVAR(Company, engine_renew, SLE_BOOL, 16, SL_MAX_VERSION),
|
||||
SLE_CONDVAR(Company, engine_renew_months, SLE_INT16, 16, SL_MAX_VERSION),
|
||||
SLE_CONDVAR(Company, engine_renew_money, SLE_UINT32, 16, SL_MAX_VERSION),
|
||||
SLE_CONDVAR(Company, renew_keep_length, SLE_BOOL, 2, SL_MAX_VERSION), // added with 16.1, but was blank since 2
|
||||
SLE_CONDREF(Company, engine_renew_list, REF_ENGINE_RENEWS, 19, SL_MAX_VERSION),
|
||||
SLE_CONDVAR(Company, settings.engine_renew, SLE_BOOL, 16, SL_MAX_VERSION),
|
||||
SLE_CONDVAR(Company, settings.engine_renew_months, SLE_INT16, 16, SL_MAX_VERSION),
|
||||
SLE_CONDVAR(Company, settings.engine_renew_money, SLE_UINT32, 16, SL_MAX_VERSION),
|
||||
SLE_CONDVAR(Company, settings.renew_keep_length, SLE_BOOL, 2, SL_MAX_VERSION),
|
||||
|
||||
/* Reserve extra space in savegame here. (currently 63 bytes) */
|
||||
SLE_CONDNULL(63, 2, SL_MAX_VERSION),
|
||||
|
@ -726,19 +726,19 @@ static bool CheckInterval(int32 p1)
|
||||
|
||||
static bool EngineRenewUpdate(int32 p1)
|
||||
{
|
||||
DoCommandP(0, 0, _settings_client.gui.autorenew, CMD_SET_AUTOREPLACE);
|
||||
DoCommandP(0, 0, _settings_client.company.engine_renew, CMD_SET_AUTOREPLACE);
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool EngineRenewMonthsUpdate(int32 p1)
|
||||
{
|
||||
DoCommandP(0, 1, _settings_client.gui.autorenew_months, CMD_SET_AUTOREPLACE);
|
||||
DoCommandP(0, 1, _settings_client.company.engine_renew_months, CMD_SET_AUTOREPLACE);
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool EngineRenewMoneyUpdate(int32 p1)
|
||||
{
|
||||
DoCommandP(0, 2, _settings_client.gui.autorenew_money, CMD_SET_AUTOREPLACE);
|
||||
DoCommandP(0, 2, _settings_client.company.engine_renew_money, CMD_SET_AUTOREPLACE);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -1254,9 +1254,9 @@ static SettingEntry _settings_vehicles_routing[] = {
|
||||
static SettingsPage _settings_vehicles_routing_page = {_settings_vehicles_routing, lengthof(_settings_vehicles_routing)};
|
||||
|
||||
static SettingEntry _settings_vehicles_autorenew[] = {
|
||||
SettingEntry("gui.autorenew"),
|
||||
SettingEntry("gui.autorenew_months"),
|
||||
SettingEntry("gui.autorenew_money"),
|
||||
SettingEntry("company.engine_renew"),
|
||||
SettingEntry("company.engine_renew_months"),
|
||||
SettingEntry("company.engine_renew_money"),
|
||||
};
|
||||
/** Autorenew sub-page */
|
||||
static SettingsPage _settings_vehicles_autorenew_page = {_settings_vehicles_autorenew, lengthof(_settings_vehicles_autorenew)};
|
||||
|
@ -78,9 +78,6 @@ struct GUISettings {
|
||||
bool auto_euro; ///< automatically switch to euro in 2002
|
||||
byte drag_signals_density; ///< many signals density
|
||||
Year semaphore_build_before; ///< build semaphore signals automatically before this year
|
||||
bool autorenew; ///< should autorenew be enabled for new companies?
|
||||
int16 autorenew_months; ///< how many months from EOL of vehicles should autorenew trigger for new companies?
|
||||
int32 autorenew_money; ///< how much money before autorenewing for new companies?
|
||||
byte news_message_timeout; ///< how much longer than the news message "age" should we keep the message in the history
|
||||
bool show_track_reservation; ///< highlight reserved tracks.
|
||||
uint8 default_signal_type; ///< the signal type to build by default.
|
||||
@ -341,6 +338,14 @@ struct StationSettings {
|
||||
byte station_spread; ///< amount a station may spread
|
||||
};
|
||||
|
||||
/** Settings that can be set per company. */
|
||||
struct CompanySettings {
|
||||
bool engine_renew; ///< is autorenew enabled
|
||||
int16 engine_renew_months; ///< months before/after the maximum vehicle age a vehicle should be renewed
|
||||
uint32 engine_renew_money; ///< minimum amount of money before autorenew is used
|
||||
bool renew_keep_length; ///< sell some wagons if after autoreplace the train is longer than before
|
||||
};
|
||||
|
||||
/** All settings together for the game. */
|
||||
struct GameSettings {
|
||||
DifficultySettings difficulty; ///< settings related to the difficulty
|
||||
@ -360,6 +365,7 @@ struct GameSettings {
|
||||
struct ClientSettings {
|
||||
GUISettings gui; ///< settings related to the GUI
|
||||
NetworkSettings network; ///< settings related to the network
|
||||
CompanySettings company; ///< default values for per-company settings
|
||||
};
|
||||
|
||||
/** The current settings for this game. */
|
||||
|
@ -547,9 +547,9 @@ const SettingDesc _settings[] = {
|
||||
SDTC_BOOL(gui.vehicle_income_warn, S, 0, true, STR_CONFIG_SETTING_WARN_INCOME_LESS, NULL),
|
||||
SDTC_VAR(gui.order_review_system, SLE_UINT8, S, MS, 2, 0, 2, 0, STR_CONFIG_SETTING_ORDER_REVIEW, NULL),
|
||||
SDTC_BOOL(gui.lost_train_warn, S, 0, true, STR_CONFIG_SETTING_WARN_LOST_TRAIN, NULL),
|
||||
SDTC_BOOL(gui.autorenew, S, 0, false, STR_CONFIG_SETTING_AUTORENEW_VEHICLE, EngineRenewUpdate),
|
||||
SDTC_VAR(gui.autorenew_months, SLE_INT16, S, 0, 6, -12, 12, 0, STR_CONFIG_SETTING_AUTORENEW_MONTHS, EngineRenewMonthsUpdate),
|
||||
SDTC_VAR(gui.autorenew_money, SLE_UINT, S, CR,100000, 0, 2000000, 0, STR_CONFIG_SETTING_AUTORENEW_MONEY, EngineRenewMoneyUpdate),
|
||||
SDTC_BOOL(company.engine_renew, S, 0, false, STR_CONFIG_SETTING_AUTORENEW_VEHICLE, EngineRenewUpdate),
|
||||
SDTC_VAR(company.engine_renew_months, SLE_INT16, S, 0, 6, -12, 12, 0, STR_CONFIG_SETTING_AUTORENEW_MONTHS, EngineRenewMonthsUpdate),
|
||||
SDTC_VAR(company.engine_renew_money, SLE_UINT, S, CR,100000, 0, 2000000, 0, STR_CONFIG_SETTING_AUTORENEW_MONEY, EngineRenewMoneyUpdate),
|
||||
SDTC_BOOL(gui.always_build_infrastructure, S, 0, false, STR_CONFIG_SETTING_ALWAYS_BUILD_INFRASTRUCTURE, RedrawScreen),
|
||||
SDTC_BOOL(gui.new_nonstop, S, 0, false, STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT, NULL),
|
||||
SDTC_VAR(gui.stop_location, SLE_UINT8, S, MS, 2, 0, 2, 1, STR_CONFIG_SETTING_STOP_LOCATION, NULL),
|
||||
|
@ -64,8 +64,8 @@ bool Vehicle::NeedsAutorenewing(const Company *c) const
|
||||
* argument rather than finding it again. */
|
||||
assert(c == GetCompany(this->owner));
|
||||
|
||||
if (!c->engine_renew) return false;
|
||||
if (this->age - this->max_age < (c->engine_renew_months * 30)) return false;
|
||||
if (!c->settings.engine_renew) return false;
|
||||
if (this->age - this->max_age < (c->settings.engine_renew_months * 30)) return false;
|
||||
if (this->age == 0) return false; // rail cars don't age and lacks a max age
|
||||
|
||||
return true;
|
||||
@ -642,9 +642,9 @@ void CallVehicleTicks()
|
||||
int z = v->z_pos;
|
||||
|
||||
const Company *c = GetCompany(_current_company);
|
||||
SubtractMoneyFromCompany(CommandCost(EXPENSES_NEW_VEHICLES, (Money)c->engine_renew_money));
|
||||
SubtractMoneyFromCompany(CommandCost(EXPENSES_NEW_VEHICLES, (Money)c->settings.engine_renew_money));
|
||||
CommandCost res = DoCommand(0, v->index, 0, DC_EXEC, CMD_AUTOREPLACE_VEHICLE);
|
||||
SubtractMoneyFromCompany(CommandCost(EXPENSES_NEW_VEHICLES, -(Money)c->engine_renew_money));
|
||||
SubtractMoneyFromCompany(CommandCost(EXPENSES_NEW_VEHICLES, -(Money)c->settings.engine_renew_money));
|
||||
|
||||
if (!IsLocalCompany()) continue;
|
||||
|
||||
@ -906,7 +906,7 @@ void AgeVehicle(Vehicle *v)
|
||||
if (v->Previous() != NULL || v->owner != _local_company || (v->vehstatus & VS_CRASHED) != 0) return;
|
||||
|
||||
/* Don't warn if a renew is active */
|
||||
if (GetCompany(v->owner)->engine_renew && GetEngine(v->engine_type)->company_avail != 0) return;
|
||||
if (GetCompany(v->owner)->settings.engine_renew && GetEngine(v->engine_type)->company_avail != 0) return;
|
||||
|
||||
StringID str;
|
||||
if (age == -DAYS_IN_LEAP_YEAR) {
|
||||
|
Loading…
Reference in New Issue
Block a user