Vehicle repair costs patch: implement save/load changes.

This commit is contained in:
Jonathan G Rennison
2015-08-04 23:56:37 +01:00
parent 0a7441e56c
commit 6bb8d5087d
5 changed files with 8 additions and 5 deletions

View File

@@ -45,6 +45,7 @@ std::vector<uint32> _sl_xv_discardable_chunk_ids; ///< list of chunks
static const uint32 _sl_xv_slxi_chunk_version = 0; ///< current version os SLXI chunk static const uint32 _sl_xv_slxi_chunk_version = 0; ///< current version os SLXI chunk
const SlxiSubChunkInfo _sl_xv_sub_chunk_infos[] = { const SlxiSubChunkInfo _sl_xv_sub_chunk_infos[] = {
{ XSLFI_VEHICLE_REPAIR_COST, XSCF_NULL, 1, 1, "vehicle_repair_cost", NULL, NULL, NULL },
{ XSLFI_NULL, XSCF_NULL, 0, 0, NULL, NULL, NULL, NULL },// This is the end marker { XSLFI_NULL, XSCF_NULL, 0, 0, NULL, NULL, NULL, NULL },// This is the end marker
}; };

View File

@@ -21,6 +21,7 @@
*/ */
enum SlXvFeatureIndex { enum SlXvFeatureIndex {
XSLFI_NULL = 0, ///< Unused value, to indicate that no extended feature test is in use XSLFI_NULL = 0, ///< Unused value, to indicate that no extended feature test is in use
XSLFI_VEHICLE_REPAIR_COST, ///< Vehicle repair costs patch
XSLFI_SIZE, ///< Total count of features, including null feature XSLFI_SIZE, ///< Total count of features, including null feature
}; };

View File

@@ -92,7 +92,6 @@ enum SLRefType {
/** Highest possible savegame version. */ /** Highest possible savegame version. */
#define SL_MAX_VERSION UINT16_MAX #define SL_MAX_VERSION UINT16_MAX
#define SL_REPAIRCOST 200
/** Flags of a chunk. */ /** Flags of a chunk. */
enum ChunkType { enum ChunkType {

View File

@@ -369,7 +369,7 @@ void AfterLoadVehicles(bool part_of_load)
} }
} }
if (IsSavegameVersionBefore(SL_REPAIRCOST)) { if (SlXvIsFeatureMissing(XSLFI_VEHICLE_REPAIR_COST)) {
/* repair cost is value for new vehicles and each week +/256 part for old */ /* repair cost is value for new vehicles and each week +/256 part for old */
FOR_ALL_VEHICLES(v) { FOR_ALL_VEHICLES(v) {
if (!v->IsPrimaryVehicle()) continue; if (!v->IsPrimaryVehicle()) continue;
@@ -706,7 +706,7 @@ const SaveLoad *GetVehicleDescription(VehicleType vt)
SLEG_CONDVAR( _cargo_loaded_at_xy, SLE_UINT32, 51, 67), SLEG_CONDVAR( _cargo_loaded_at_xy, SLE_UINT32, 51, 67),
SLE_CONDVAR(Vehicle, value, SLE_FILE_I32 | SLE_VAR_I64, 0, 64), SLE_CONDVAR(Vehicle, value, SLE_FILE_I32 | SLE_VAR_I64, 0, 64),
SLE_CONDVAR(Vehicle, value, SLE_INT64, 65, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, value, SLE_INT64, 65, SL_MAX_VERSION),
SLE_CONDVAR(Vehicle, repair_cost, SLE_INT64, SL_REPAIRCOST, SL_MAX_VERSION), SLE_CONDVAR_X(Vehicle, repair_cost, SLE_INT64, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_VEHICLE_REPAIR_COST)),
SLE_CONDVAR(Vehicle, random_bits, SLE_UINT8, 2, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, random_bits, SLE_UINT8, 2, SL_MAX_VERSION),
SLE_CONDVAR(Vehicle, waiting_triggers, SLE_UINT8, 2, SL_MAX_VERSION), SLE_CONDVAR(Vehicle, waiting_triggers, SLE_UINT8, 2, SL_MAX_VERSION),

View File

@@ -3941,17 +3941,17 @@ cat = SC_BASIC
[SDT_BOOL] [SDT_BOOL]
base = GameSettings base = GameSettings
var = vehicle.pay_for_repair var = vehicle.pay_for_repair
from = SL_REPAIRCOST
def = true def = true
str = STR_CONFIG_SETTING_PAY_FOR_REPAIR_VEHICLE str = STR_CONFIG_SETTING_PAY_FOR_REPAIR_VEHICLE
strhelp = STR_CONFIG_SETTING_PAY_FOR_REPAIR_VEHICLE_HELPTEXT strhelp = STR_CONFIG_SETTING_PAY_FOR_REPAIR_VEHICLE_HELPTEXT
cat = SC_EXPERT cat = SC_EXPERT
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_VEHICLE_REPAIR_COST)
patxname = ""vehicle_repair_cost.vehicle.pay_for_repair""
[SDT_VAR] [SDT_VAR]
base = GameSettings base = GameSettings
var = vehicle.repair_cost var = vehicle.repair_cost
type = SLE_UINT8 type = SLE_UINT8
from = SL_REPAIRCOST
def = 100 def = 100
min = 1 min = 1
max = 255 max = 255
@@ -3960,6 +3960,8 @@ str = STR_CONFIG_SETTING_REPAIR_COST
strhelp = STR_CONFIG_SETTING_REPAIR_COST_HELPTEXT strhelp = STR_CONFIG_SETTING_REPAIR_COST_HELPTEXT
strval = STR_JUST_INT strval = STR_JUST_INT
cat = SC_EXPERT cat = SC_EXPERT
extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_VEHICLE_REPAIR_COST)
patxname = ""vehicle_repair_cost.vehicle.repair_cost""
[SDT_END] [SDT_END]