mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-04-01 04:20:20 +00:00
Merge branch 'dripdrop' into 'master'
Drop support for save game format 4 Closes #6624 See merge request OpenMW/openmw!3737
This commit is contained in:
commit
14c8103a9e
@ -133,7 +133,6 @@
|
|||||||
Feature #6447: Add LOD support to Object Paging
|
Feature #6447: Add LOD support to Object Paging
|
||||||
Feature #6491: Add support for Qt6
|
Feature #6491: Add support for Qt6
|
||||||
Feature #6556: Lua API for sounds
|
Feature #6556: Lua API for sounds
|
||||||
Feature #6624: Drop support for old saves
|
|
||||||
Feature #6726: Lua API for creating new objects
|
Feature #6726: Lua API for creating new objects
|
||||||
Feature #6864: Lua file access API
|
Feature #6864: Lua file access API
|
||||||
Feature #6922: Improve launcher appearance
|
Feature #6922: Improve launcher appearance
|
||||||
@ -165,6 +164,7 @@
|
|||||||
Feature #7698: Implement sAbsorb, sDamage, sDrain, sFortify and sRestore
|
Feature #7698: Implement sAbsorb, sDamage, sDrain, sFortify and sRestore
|
||||||
Feature #7709: Improve resolution selection in Launcher
|
Feature #7709: Improve resolution selection in Launcher
|
||||||
Task #5896: Do not use deprecated MyGUI properties
|
Task #5896: Do not use deprecated MyGUI properties
|
||||||
|
Task #6624: Drop support for saves made prior to 0.45
|
||||||
Task #7113: Move from std::atoi to std::from_char
|
Task #7113: Move from std::atoi to std::from_char
|
||||||
Task #7117: Replace boost::scoped_array with std::vector
|
Task #7117: Replace boost::scoped_array with std::vector
|
||||||
Task #7151: Do not use std::strerror to get errno error message
|
Task #7151: Do not use std::strerror to get errno error message
|
||||||
|
@ -29,7 +29,7 @@ namespace ESM
|
|||||||
void AiTravel::load(ESMReader& esm)
|
void AiTravel::load(ESMReader& esm)
|
||||||
{
|
{
|
||||||
esm.getHNT("DATA", mData.mX, mData.mY, mData.mZ);
|
esm.getHNT("DATA", mData.mX, mData.mY, mData.mZ);
|
||||||
esm.getHNOT(mHidden, "HIDD");
|
esm.getHNT(mHidden, "HIDD");
|
||||||
mRepeat = false;
|
mRepeat = false;
|
||||||
esm.getHNOT(mRepeat, "REPT");
|
esm.getHNOT(mRepeat, "REPT");
|
||||||
}
|
}
|
||||||
@ -258,7 +258,7 @@ namespace ESM
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
esm.getHNOT(mLastAiPackage, "LAST");
|
esm.getHNT(mLastAiPackage, "LAST");
|
||||||
|
|
||||||
if (count > 1 && esm.getFormatVersion() <= MaxOldAiPackageFormatVersion)
|
if (count > 1 && esm.getFormatVersion() <= MaxOldAiPackageFormatVersion)
|
||||||
{
|
{
|
||||||
|
@ -27,7 +27,7 @@ namespace ESM
|
|||||||
inline constexpr FormatVersion MaxOldCountFormatVersion = 30;
|
inline constexpr FormatVersion MaxOldCountFormatVersion = 30;
|
||||||
inline constexpr FormatVersion CurrentSaveGameFormatVersion = 31;
|
inline constexpr FormatVersion CurrentSaveGameFormatVersion = 31;
|
||||||
|
|
||||||
inline constexpr FormatVersion MinSupportedSaveGameFormatVersion = 4;
|
inline constexpr FormatVersion MinSupportedSaveGameFormatVersion = 5;
|
||||||
inline constexpr FormatVersion OpenMW0_48SaveGameFormatVersion = 21;
|
inline constexpr FormatVersion OpenMW0_48SaveGameFormatVersion = 21;
|
||||||
inline constexpr FormatVersion OpenMW0_49SaveGameFormatVersion = CurrentSaveGameFormatVersion;
|
inline constexpr FormatVersion OpenMW0_49SaveGameFormatVersion = CurrentSaveGameFormatVersion;
|
||||||
}
|
}
|
||||||
|
@ -30,16 +30,12 @@ namespace ESM
|
|||||||
mPaidCrimeId = -1;
|
mPaidCrimeId = -1;
|
||||||
esm.getHNOT(mPaidCrimeId, "PAYD");
|
esm.getHNOT(mPaidCrimeId, "PAYD");
|
||||||
|
|
||||||
bool checkPrevItems = true;
|
while (esm.peekNextSub("BOUN"))
|
||||||
while (checkPrevItems)
|
|
||||||
{
|
{
|
||||||
ESM::RefId boundItemId = esm.getHNORefId("BOUN");
|
ESM::RefId boundItemId = esm.getHNRefId("BOUN");
|
||||||
ESM::RefId prevItemId = esm.getHNORefId("PREV");
|
ESM::RefId prevItemId = esm.getHNRefId("PREV");
|
||||||
|
|
||||||
if (!boundItemId.empty())
|
mPreviousItems[boundItemId] = prevItemId;
|
||||||
mPreviousItems[boundItemId] = prevItemId;
|
|
||||||
else
|
|
||||||
checkPrevItems = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (esm.getFormatVersion() <= MaxOldSkillsAndAttributesFormatVersion)
|
if (esm.getFormatVersion() <= MaxOldSkillsAndAttributesFormatVersion)
|
||||||
@ -103,10 +99,10 @@ namespace ESM
|
|||||||
esm.writeHNT("CURD", mCurrentCrimeId);
|
esm.writeHNT("CURD", mCurrentCrimeId);
|
||||||
esm.writeHNT("PAYD", mPaidCrimeId);
|
esm.writeHNT("PAYD", mPaidCrimeId);
|
||||||
|
|
||||||
for (PreviousItems::const_iterator it = mPreviousItems.begin(); it != mPreviousItems.end(); ++it)
|
for (const auto& [bound, prev] : mPreviousItems)
|
||||||
{
|
{
|
||||||
esm.writeHNRefId("BOUN", it->first);
|
esm.writeHNRefId("BOUN", bound);
|
||||||
esm.writeHNRefId("PREV", it->second);
|
esm.writeHNRefId("PREV", prev);
|
||||||
}
|
}
|
||||||
|
|
||||||
esm.writeHNT("WWAT", mSaveAttributes);
|
esm.writeHNT("WWAT", mSaveAttributes);
|
||||||
|
@ -33,8 +33,7 @@ namespace ESM
|
|||||||
float mSaveAttributes[Attribute::Length];
|
float mSaveAttributes[Attribute::Length];
|
||||||
float mSaveSkills[Skill::Length];
|
float mSaveSkills[Skill::Length];
|
||||||
|
|
||||||
typedef std::map<ESM::RefId, ESM::RefId> PreviousItems; // previous equipped items, needed for bound spells
|
std::map<ESM::RefId, ESM::RefId> mPreviousItems; // previous equipped items, needed for bound spells
|
||||||
PreviousItems mPreviousItems;
|
|
||||||
|
|
||||||
void load(ESMReader& esm);
|
void load(ESMReader& esm);
|
||||||
void save(ESMWriter& esm) const;
|
void save(ESMWriter& esm) const;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user