directory restructure
nescience
new version progress

major rewrite of entire plugin. The aim is to turn this into a
foundational resource for any kind of enchantment-based plugin
manipulations, and use it as a framework for Enchanting Awakened 2.0
changes.

Some key changes:
- Fixed PersistentWeaponEnchantments so that it's no longer extending
standard map (that was silly of me)
- Began adding basic messaging interface for other plugins to
communicate with this and share information
- Integrated SerializeForm.h from [PluginLibrary]
- Serialization framework built into EnchantmentInfoEntry

In Progress:
- Effectively recognize and store the base enchantments combined to make
any player crafted enchantment. (This has proven to be a significant
challenge, and I've tried many strategies, but finally have found
something that will work)
- - - To accomplish the above goal:
- - - - - - Hooked internal CreateEnchantment function to allow me to
recognize each enchantment as it's chosen in the Enchanting menu along
with the new combined enchantment that the player can craft
- - - - - - Decoded TESTrackedStatEvent and set that up so I can detect
whenever a new item is crafted. Will be used in conjunction with the
CreateEnchantment hook above to determine the collection of base
enchantments used to make a player-crafted enchantment
- - - - - - TODO: now need to reconfigure functions that determine base
enchantments after the craft event and store all parent forms in the
enchantment's EnchantmentInfoEntry correctly
- - - - - - The whole point of all this is so that I can know which
enchantments have been combined into a player enchantment, and thus
award learning experience correctly for Enchanting Awakened 2.0 (player
will get experience with all base enchantments included on a
player-enchanted item).

I tried about fifty other ways to determine base enchantments but none
worked, including Flash menu injection, etc... the biggest problem was
that stuff like Fire Damage + Soul Trap would never be distinguishable
from Fiery Soul Trap enchantment (which uses the two same effects as the
other two enchantments). Now I should be able to determine these
differences for any case.

This was also just a good excuse to learn some more about function
hooking and decoding things :D