# HG changeset patch # User Patric Stout # Date 2021-06-18 11:27:59 # Node ID de2f5a4c7565814d7a752ff932b5d79db2a306e0 # Parent 816ed8e1547f1e20dcc77727e10fa18a50d55320 Codechange: using "until" in function names can be confusing IsSavegameVersionUntil() did a [0, N] check, not [0, N) as the name suggests. Until can be a confusing word, where people consider it to be including the upperbound. Dictionary states it means "before", excluding the upperbound. There are long debates about who is right. So, simply remove away from this ambiguity, and call it "before" and "before or at". This makes the world easier for everyone. diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -3106,7 +3106,7 @@ bool AfterLoadGame() } } - if (IsSavegameVersionUntil(SLV_ENDING_YEAR)) { + if (IsSavegameVersionBeforeOrAt(SLV_ENDING_YEAR)) { /* Update station docking tiles. Was only needed for pre-SLV_MULTITLE_DOCKS * savegames, but a bug in docking tiles touched all savegames between * SLV_MULTITILE_DOCKS and SLV_ENDING_YEAR. */ diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -618,14 +618,14 @@ typedef void *SaveLoadAddrProc(void *bas /** SaveLoad type struct. Do NOT use this directly but use the SLE_ macros defined just below! */ struct SaveLoad { std::string name; ///< Name of this field (optional, used for tables). - SaveLoadType cmd; ///< the action to take with the saved/loaded type, All types need different action - VarType conv; ///< type of the variable to be saved, int - uint16 length; ///< (conditional) length of the variable (eg. arrays) (max array size is 65536 elements) - SaveLoadVersion version_from; ///< save/load the variable starting from this savegame version - SaveLoadVersion version_to; ///< save/load the variable until this savegame version - size_t size; ///< the sizeof size. - SaveLoadAddrProc *address_proc; ///< callback proc the get the actual variable address in memory - size_t extra_data; ///< extra data for the callback proc + SaveLoadType cmd; ///< The action to take with the saved/loaded type, All types need different action. + VarType conv; ///< Type of the variable to be saved; this field combines both FileVarType and MemVarType. + uint16 length; ///< (Conditional) length of the variable (eg. arrays) (max array size is 65536 elements). + SaveLoadVersion version_from; ///< Save/load the variable starting from this savegame version. + SaveLoadVersion version_to; ///< Save/load the variable before this savegame version. + size_t size; ///< The sizeof size. + SaveLoadAddrProc *address_proc; ///< Callback proc the get the actual variable address in memory. + size_t extra_data; ///< Extra data for the callback proc. std::shared_ptr handler; ///< Custom handler for Save/Load procs. }; @@ -641,7 +641,7 @@ struct SaveLoadCompat { std::string name; ///< Name of the field. uint16 length; ///< Length of the NULL field. SaveLoadVersion version_from; ///< Save/load the variable starting from this savegame version. - SaveLoadVersion version_to; ///< Save/load the variable until this savegame version. + SaveLoadVersion version_to; ///< Save/load the variable before this savegame version. }; /** @@ -1001,7 +1001,7 @@ static inline bool IsSavegameVersionBefo * @param major Major number of the version to check against. * @return Savegame version is at most the specified version. */ -static inline bool IsSavegameVersionUntil(SaveLoadVersion major) +static inline bool IsSavegameVersionBeforeOrAt(SaveLoadVersion major) { extern SaveLoadVersion _sl_version; return _sl_version <= major;