From 0eb01591e82082dc5ae59465727474b2b10612bb Mon Sep 17 00:00:00 2001 From: David Cernat Date: Sun, 17 Jan 2021 16:04:12 +0200 Subject: [PATCH] [Client] Move overrideRecord() method for Sound records to right spot --- apps/openmw/mwmp/RecordHelper.cpp | 94 +++++++++++++++---------------- apps/openmw/mwmp/RecordHelper.hpp | 2 +- 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/apps/openmw/mwmp/RecordHelper.cpp b/apps/openmw/mwmp/RecordHelper.cpp index 49544ed74..6c105a0a3 100644 --- a/apps/openmw/mwmp/RecordHelper.cpp +++ b/apps/openmw/mwmp/RecordHelper.cpp @@ -1282,6 +1282,53 @@ void RecordHelper::overrideRecord(const mwmp::ScriptRecord& record) } } +void RecordHelper::overrideRecord(const mwmp::SoundRecord& record) +{ + const ESM::Sound& recordData = record.data; + + if (recordData.mId.empty()) + { + LOG_APPEND(TimedLog::LOG_INFO, "-- Ignoring record override with no id provided"); + return; + } + + bool isExistingId = doesRecordIdExist(recordData.mId); + MWBase::World* world = MWBase::Environment::get().getWorld(); + + if (record.baseId.empty()) + { + world->getModifiableStore().overrideRecord(recordData); + } + else if (doesRecordIdExist(record.baseId)) + { + const ESM::Sound* baseData = world->getStore().get().search(record.baseId); + ESM::Sound finalData = *baseData; + finalData.mId = recordData.mId; + + if (record.baseOverrides.hasSound) + finalData.mSound = recordData.mSound; + + if (record.baseOverrides.hasVolume) + finalData.mData.mVolume = recordData.mData.mVolume; + + if (record.baseOverrides.hasMinRange) + finalData.mData.mMinRange = recordData.mData.mMinRange; + + if (record.baseOverrides.hasMaxRange) + finalData.mData.mMaxRange = recordData.mData.mMaxRange; + + world->getModifiableStore().overrideRecord(finalData); + } + else + { + LOG_APPEND(TimedLog::LOG_INFO, "-- Ignoring record override with invalid baseId %s", record.baseId.c_str()); + return; + } + + if (isExistingId) + world->updatePtrsWithRefId(recordData.mId); +} + void RecordHelper::overrideRecord(const mwmp::SpellRecord& record) { const ESM::Spell &recordData = record.data; @@ -1470,53 +1517,6 @@ void RecordHelper::overrideRecord(const mwmp::WeaponRecord& record) world->updatePtrsWithRefId(recordData.mId); } -void RecordHelper::overrideRecord(const mwmp::SoundRecord& record) -{ - const ESM::Sound& recordData = record.data; - - if (recordData.mId.empty()) - { - LOG_APPEND(TimedLog::LOG_INFO, "-- Ignoring record override with no id provided"); - return; - } - - bool isExistingId = doesRecordIdExist(recordData.mId); - MWBase::World* world = MWBase::Environment::get().getWorld(); - - if (record.baseId.empty()) - { - world->getModifiableStore().overrideRecord(recordData); - } - else if (doesRecordIdExist(record.baseId)) - { - const ESM::Sound* baseData = world->getStore().get().search(record.baseId); - ESM::Sound finalData = *baseData; - finalData.mId = recordData.mId; - - if (record.baseOverrides.hasSound) - finalData.mSound = recordData.mSound; - - if (record.baseOverrides.hasVolume) - finalData.mData.mVolume = recordData.mData.mVolume; - - if (record.baseOverrides.hasMinRange) - finalData.mData.mMinRange = recordData.mData.mMinRange; - - if (record.baseOverrides.hasMaxRange) - finalData.mData.mMaxRange = recordData.mData.mMaxRange; - - world->getModifiableStore().overrideRecord(finalData); - } - else - { - LOG_APPEND(TimedLog::LOG_INFO, "-- Ignoring record override with invalid baseId %s", record.baseId.c_str()); - return; - } - - if (isExistingId) - world->updatePtrsWithRefId(recordData.mId); -} - void RecordHelper::createPlaceholderInteriorCell() { MWBase::World* world = MWBase::Environment::get().getWorld(); diff --git a/apps/openmw/mwmp/RecordHelper.hpp b/apps/openmw/mwmp/RecordHelper.hpp index 77f6f38af..7b4c6b6e1 100644 --- a/apps/openmw/mwmp/RecordHelper.hpp +++ b/apps/openmw/mwmp/RecordHelper.hpp @@ -27,10 +27,10 @@ namespace RecordHelper void overrideRecord(const mwmp::ProbeRecord& record); void overrideRecord(const mwmp::RepairRecord& record); void overrideRecord(const mwmp::ScriptRecord& record); + void overrideRecord(const mwmp::SoundRecord& record); void overrideRecord(const mwmp::SpellRecord& record); void overrideRecord(const mwmp::StaticRecord& record); void overrideRecord(const mwmp::WeaponRecord& record); - void overrideRecord(const mwmp::SoundRecord& record); template void overrideRecord(const RecordType &record)