mirror of
https://github.com/OpenMW/openmw.git
synced 2026-01-20 06:00:55 +00:00
- Fixed OpenMW-CS incorrectly passing magic effect ids
- Resolved merge conflicts with !4323 - Minor refactor of affectsSkill helper function - Removed redundant class definition
This commit is contained in:
parent
9159788c9b
commit
c6cc1be347
5 changed files with 12 additions and 18 deletions
|
|
@ -319,9 +319,7 @@ namespace CSMWorld
|
|||
switch (subColIndex)
|
||||
{
|
||||
case 0:
|
||||
if (effect.mEffectID.empty())
|
||||
return QVariant();
|
||||
return QString::fromStdString(effect.mEffectID.getRefIdString());
|
||||
return ESM::MagicEffect::refIdToIndex(effect.mEffectID);
|
||||
case 1:
|
||||
{
|
||||
if (effect.mEffectID == ESM::MagicEffect::DrainSkill
|
||||
|
|
@ -373,7 +371,7 @@ namespace CSMWorld
|
|||
{
|
||||
case 0:
|
||||
{
|
||||
effect.mEffectID = ESM::RefId::deserializeText(value.toString().toStdString());
|
||||
effect.mEffectID = ESM::MagicEffect::indexToRefId(value.toInt());
|
||||
if (effect.mEffectID == ESM::MagicEffect::DrainSkill
|
||||
|| effect.mEffectID == ESM::MagicEffect::DamageSkill
|
||||
|| effect.mEffectID == ESM::MagicEffect::RestoreSkill
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ QVariant CSMWorld::IngredEffectRefIdAdapter::getNestedData(
|
|||
switch (subColIndex)
|
||||
{
|
||||
case 0:
|
||||
return effectId.empty() ? QVariant() : QString::fromStdString(effectId.getRefIdString());
|
||||
return ESM::MagicEffect::refIdToIndex(effectId);
|
||||
case 1:
|
||||
{
|
||||
if (effectId == ESM::MagicEffect::DrainSkill || effectId == ESM::MagicEffect::DamageSkill
|
||||
|
|
@ -183,8 +183,7 @@ void CSMWorld::IngredEffectRefIdAdapter::setNestedData(
|
|||
if (subRowIndex < 0 || subRowIndex >= 4)
|
||||
throw std::runtime_error("index out of range");
|
||||
|
||||
ESM::RefId effectId
|
||||
= value.toString().isEmpty() ? ESM::RefId() : ESM::RefId::deserializeText(value.toString().toStdString());
|
||||
ESM::RefId effectId = ESM::MagicEffect::indexToRefId(value.toInt());
|
||||
|
||||
switch (subColIndex)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@
|
|||
namespace ESM
|
||||
{
|
||||
class RefId;
|
||||
class StringRefId;
|
||||
}
|
||||
namespace MWWorld
|
||||
{
|
||||
|
|
|
|||
|
|
@ -62,12 +62,8 @@ namespace ESM
|
|||
MagicEffect::FortifySkill,
|
||||
MagicEffect::AbsorbSkill,
|
||||
};
|
||||
if (effectId.empty())
|
||||
return false;
|
||||
for (size_t i = 0; i < affectsSkillEffects.size(); ++i)
|
||||
if (affectsSkillEffects[i] == effectId)
|
||||
return true;
|
||||
return false;
|
||||
return std::find(affectsSkillEffects.begin(), affectsSkillEffects.end(), effectId)
|
||||
!= affectsSkillEffects.end();
|
||||
}
|
||||
|
||||
void saveImpl(ESMWriter& esm, const std::vector<ActiveSpells::ActiveSpellParams>& spells, NAME tag)
|
||||
|
|
@ -90,7 +86,7 @@ namespace ESM
|
|||
|
||||
for (auto& effect : params.mEffects)
|
||||
{
|
||||
esm.writeHNT("MGEF", effect.mEffectId);
|
||||
esm.writeHNT("MGEF", ESM::MagicEffect::refIdToIndex(effect.mEffectId));
|
||||
if (const ESM::RefId* id = std::get_if<ESM::RefId>(&effect.mArg))
|
||||
{
|
||||
if (!id->empty())
|
||||
|
|
@ -175,8 +171,10 @@ namespace ESM
|
|||
|
||||
while (esm.isNextSub("MGEF"))
|
||||
{
|
||||
int32_t effectId;
|
||||
ActiveEffect effect;
|
||||
esm.getHT(effect.mEffectId);
|
||||
esm.getHT(effectId);
|
||||
effect.mEffectId = ESM::MagicEffect::indexToRefId(effectId);
|
||||
if (format <= MaxActorIdSaveGameFormatVersion)
|
||||
{
|
||||
int32_t arg = -1;
|
||||
|
|
|
|||
|
|
@ -121,8 +121,8 @@ namespace ESM
|
|||
esm.getHNT(actorId, "ACID");
|
||||
mSummonedCreatureMap[SummonKey(ESM::MagicEffect::indexToRefId(magicEffect), source, effectIndex)]
|
||||
= actorId;
|
||||
mSummonedCreatures.emplace(ESM::MagicEffect::indexToRefId(
|
||||
magicEffect), RefNum{ .mIndex = static_cast<uint32_t>(actorId), .mContentFile = -1 });
|
||||
mSummonedCreatures.emplace(ESM::MagicEffect::indexToRefId(magicEffect),
|
||||
RefNum{ .mIndex = static_cast<uint32_t>(actorId), .mContentFile = -1 });
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
Loading…
Reference in a new issue