mirror of
				https://github.com/TES3MP/openmw-tes3mp.git
				synced 2025-10-31 20:56:42 +00:00 
			
		
		
		
	Remove unused magic effect flags and update esmtool output
This commit is contained in:
		
							parent
							
								
									921ef6cd9c
								
							
						
					
					
						commit
						1d19d36bd6
					
				
					 3 changed files with 14 additions and 33 deletions
				
			
		|  | @ -764,34 +764,19 @@ std::string magicEffectFlags(int flags) | |||
| { | ||||
|     std::string properties = ""; | ||||
|     if (flags == 0) properties += "[None] "; | ||||
|     // Enchanting & SpellMaking occur on the same list of effects.
 | ||||
|     // "EXTRA SPELL" appears in the construction set under both the
 | ||||
|     // spell making and enchanting tabs as an allowed effect.  Since
 | ||||
|     // most of the effects without this flags are defective in various
 | ||||
|     // ways, it's still very unclear what these flag bits are.
 | ||||
|     if (flags & ESM::MagicEffect::SpellMaking) properties += "SpellMaking "; | ||||
|     if (flags & ESM::MagicEffect::Enchanting) properties += "Enchanting "; | ||||
|     if (flags & 0x00000040) properties += "RangeNoSelf "; | ||||
|     if (flags & 0x00000080) properties += "RangeTouch "; | ||||
|     if (flags & 0x00000100) properties += "RangeTarget "; | ||||
|     if (flags & 0x00001000) properties += "Unknown2 "; | ||||
|     if (flags & 0x00000001) properties += "AffectSkill "; | ||||
|     if (flags & 0x00000002) properties += "AffectAttribute "; | ||||
|     if (flags & ESM::MagicEffect::TargetAttribute) properties += "TargetAttribute "; | ||||
|     if (flags & ESM::MagicEffect::TargetSkill) properties += "TargetSkill "; | ||||
|     if (flags & ESM::MagicEffect::NoDuration) properties += "NoDuration "; | ||||
|     if (flags & 0x00000008) properties += "NoMagnitude "; | ||||
|     if (flags & 0x00000010) properties += "Negative "; | ||||
|     if (flags & 0x00000020) properties += "Unknown1 "; | ||||
|     // ESM componet says 0x800 is negative, but none of the magic
 | ||||
|     // effects have this flags set.
 | ||||
|     if (flags & ESM::MagicEffect::Negative) properties += "Unused "; | ||||
|     // Since only Chameleon has this flag it could be anything
 | ||||
|     // that uniquely distinguishes Chameleon.
 | ||||
|     if (flags & 0x00002000) properties += "Chameleon "; | ||||
|     if (flags & 0x00004000) properties += "Bound "; | ||||
|     if (flags & 0x00008000) properties += "Summon "; | ||||
|     // Calm, Demoralize, Frenzy, Lock, Open, Rally, Soultrap, Turn Unded
 | ||||
|     if (flags & 0x00010000) properties += "Unknown3 "; | ||||
|     if (flags & 0x00020000) properties += "Absorb "; | ||||
|     if (flags & ESM::MagicEffect::NoMagnitude) properties += "NoMagnitude "; | ||||
|     if (flags & ESM::MagicEffect::Harmful) properties += "Harmful "; | ||||
|     if (flags & ESM::MagicEffect::ContinuousVfx) properties += "ContinuousVFX "; | ||||
|     if (flags & ESM::MagicEffect::CastSelf) properties += "CastSelf "; | ||||
|     if (flags & ESM::MagicEffect::CastTouch) properties += "CastTouch "; | ||||
|     if (flags & ESM::MagicEffect::CastTarget) properties += "CastTarget "; | ||||
|     if (flags & ESM::MagicEffect::UncappedDamage) properties += "UncappedDamage "; | ||||
|     if (flags & ESM::MagicEffect::NonRecastable) properties += "NonRecastable "; | ||||
|     if (flags & ESM::MagicEffect::Unreflectable) properties += "Unreflectable "; | ||||
|     if (flags & ESM::MagicEffect::CasterLinked) properties += "CasterLinked "; | ||||
|     if (flags & 0xFFFC0000) properties += "Invalid "; | ||||
|     properties += str(boost::format("(0x%08X)") % flags); | ||||
|     return properties; | ||||
|  |  | |||
|  | @ -62,7 +62,7 @@ void MWMechanics::Alchemy::applyTools (int flags, float& value) const | |||
| { | ||||
|     bool magnitude = !(flags & ESM::MagicEffect::NoMagnitude); | ||||
|     bool duration = !(flags & ESM::MagicEffect::NoDuration); | ||||
|     bool negative = flags & (ESM::MagicEffect::Negative | ESM::MagicEffect::Harmful); | ||||
|     bool negative = flags & (ESM::MagicEffect::Harmful); | ||||
| 
 | ||||
|     int tool = negative ? ESM::Apparatus::Retort : ESM::Apparatus::Albemic; | ||||
| 
 | ||||
|  |  | |||
|  | @ -28,11 +28,7 @@ struct MagicEffect | |||
|         UncappedDamage = 0x1000, // Negates multiple cap behaviours. Allows an effect to reduce an attribute below zero; removes the normal minimum effect duration of 1 second.
 | ||||
|         NonRecastable = 0x4000,	// Does not land if parent spell is already affecting target. Shows "you cannot re-cast" message for self target.
 | ||||
|         Unreflectable = 0x10000, // Cannot be reflected, the effect always lands normally.
 | ||||
|         CasterLinked = 0x20000,	// Must quench if caster is dead, or not an NPC/creature. Not allowed in containter/door trap spells.
 | ||||
|         SpellMaking = 0x0200, | ||||
|         Enchanting = 0x0400, | ||||
|         Negative = 0x0800 // A harmful effect. Will determine whether
 | ||||
|                           // eg. NPCs regard this spell as an attack. (same as 0x10?)
 | ||||
|         CasterLinked = 0x20000	// Must quench if caster is dead, or not an NPC/creature. Not allowed in containter/door trap spells.
 | ||||
|     }; | ||||
|     enum MagnitudeDisplayType | ||||
|     { | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue