1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-02-11 15:40:39 +00:00

Merge branch 'everlasting_snow' into 'master'

Use meaningful names instead of pretending we don't know what snow is

See merge request OpenMW/openmw!2152
This commit is contained in:
psi29a 2022-07-17 20:23:56 +00:00
commit 809c6acc1a
6 changed files with 14 additions and 18 deletions

View File

@ -1184,8 +1184,8 @@ void Record<ESM::Region>::print()
std::cout << " Thunder: " << (int)mData.mData.mThunder << std::endl; std::cout << " Thunder: " << (int)mData.mData.mThunder << std::endl;
std::cout << " Ash: " << (int)mData.mData.mAsh << std::endl; std::cout << " Ash: " << (int)mData.mData.mAsh << std::endl;
std::cout << " Blight: " << (int)mData.mData.mBlight << std::endl; std::cout << " Blight: " << (int)mData.mData.mBlight << std::endl;
std::cout << " UnknownA: " << (int)mData.mData.mA << std::endl; std::cout << " Snow: " << (int)mData.mData.mSnow << std::endl;
std::cout << " UnknownB: " << (int)mData.mData.mB << std::endl; std::cout << " Blizzard: " << (int)mData.mData.mBlizzard << std::endl;
std::cout << " Map Color: " << mData.mMapColor << std::endl; std::cout << " Map Color: " << mData.mMapColor << std::endl;
if (!mData.mSleepList.empty()) if (!mData.mSleepList.empty())
std::cout << " Sleep List: " << mData.mSleepList << std::endl; std::cout << " Sleep List: " << mData.mSleepList << std::endl;

View File

@ -38,7 +38,7 @@ void CSMTools::RegionCheckStage::perform (int stage, CSMDoc::Messages& messages)
// test that chances add up to 100 // test that chances add up to 100
int chances = region.mData.mClear + region.mData.mCloudy + region.mData.mFoggy + region.mData.mOvercast + int chances = region.mData.mClear + region.mData.mCloudy + region.mData.mFoggy + region.mData.mOvercast +
region.mData.mRain + region.mData.mThunder + region.mData.mAsh + region.mData.mBlight + region.mData.mRain + region.mData.mThunder + region.mData.mAsh + region.mData.mBlight +
region.mData.mA + region.mData.mB; region.mData.mSnow + region.mData.mBlizzard;
if (chances != 100) if (chances != 100)
messages.add(id, "Weather chances do not add up to 100", "", CSMDoc::Message::Severity_Error); messages.add(id, "Weather chances do not add up to 100", "", CSMDoc::Message::Severity_Error);

View File

@ -1059,8 +1059,8 @@ namespace CSMWorld
case 5: return region.mData.mThunder; case 5: return region.mData.mThunder;
case 6: return region.mData.mAsh; case 6: return region.mData.mAsh;
case 7: return region.mData.mBlight; case 7: return region.mData.mBlight;
case 8: return region.mData.mA; // Snow case 8: return region.mData.mSnow;
case 9: return region.mData.mB; // Blizzard case 9: return region.mData.mBlizzard;
default: break; default: break;
} }
} }
@ -1086,8 +1086,8 @@ namespace CSMWorld
case 5: region.mData.mThunder = chance; break; case 5: region.mData.mThunder = chance; break;
case 6: region.mData.mAsh = chance; break; case 6: region.mData.mAsh = chance; break;
case 7: region.mData.mBlight = chance; break; case 7: region.mData.mBlight = chance; break;
case 8: region.mData.mA = chance; break; case 8: region.mData.mSnow = chance; break;
case 9: region.mData.mB = chance; break; case 9: region.mData.mBlizzard = chance; break;
default: throw std::runtime_error("index out of range"); default: throw std::runtime_error("index out of range");
} }

View File

@ -286,8 +286,8 @@ namespace
mChances.push_back(region.mData.mThunder); mChances.push_back(region.mData.mThunder);
mChances.push_back(region.mData.mAsh); mChances.push_back(region.mData.mAsh);
mChances.push_back(region.mData.mBlight); mChances.push_back(region.mData.mBlight);
mChances.push_back(region.mData.mA); mChances.push_back(region.mData.mSnow);
mChances.push_back(region.mData.mB); mChances.push_back(region.mData.mBlizzard);
} }
RegionWeather::RegionWeather(const ESM::RegionWeatherState& state) RegionWeather::RegionWeather(const ESM::RegionWeatherState& state)

View File

@ -26,15 +26,15 @@ namespace ESM
case fourCC("WEAT"): case fourCC("WEAT"):
{ {
esm.getSubHeader(); esm.getSubHeader();
// May include the additional two bytes (but not necessarily) // Cold weather not included before 1.3
if (esm.getSubSize() == sizeof(mData)) if (esm.getSubSize() == sizeof(mData))
{ {
esm.getT(mData); esm.getT(mData);
} }
else if (esm.getSubSize() == sizeof(mData) - 2) else if (esm.getSubSize() == sizeof(mData) - 2)
{ {
mData.mA = 0; mData.mSnow = 0;
mData.mB = 0; mData.mBlizzard = 0;
esm.getExact(&mData, sizeof(mData) - 2); esm.getExact(&mData, sizeof(mData) - 2);
} }
else else
@ -105,7 +105,7 @@ namespace ESM
{ {
mRecordFlags = 0; mRecordFlags = 0;
mData.mClear = mData.mCloudy = mData.mFoggy = mData.mOvercast = mData.mRain = mData.mClear = mData.mCloudy = mData.mFoggy = mData.mOvercast = mData.mRain =
mData.mThunder = mData.mAsh = mData.mBlight = mData.mA = mData.mB = 0; mData.mThunder = mData.mAsh = mData.mBlight = mData.mSnow = mData.mBlizzard = 0;
mMapColor = 0; mMapColor = 0;

View File

@ -29,11 +29,7 @@ struct Region
struct WEATstruct struct WEATstruct
{ {
// These are probabilities that add up to 100 // These are probabilities that add up to 100
unsigned char mClear, mCloudy, mFoggy, mOvercast, mRain, mThunder, mAsh, mBlight, unsigned char mClear, mCloudy, mFoggy, mOvercast, mRain, mThunder, mAsh, mBlight, mSnow, mBlizzard;
// Unknown weather, probably snow and something. Only
// present in file version 1.3.
// the engine uses mA as "snow" and mB as "blizard"
mA, mB;
}; // 10 bytes }; // 10 bytes
#pragma pack(pop) #pragma pack(pop)