Advertisement
expired6978

EffectSetting

Jun 17th, 2012
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.32 KB | None | 0 0
  1. class TESObjectWEAP;
  2. class BGSHazard;
  3. class TESNPC;
  4. class TESImageSpaceModifier;
  5. class BGSExplosion;
  6. class BGSDualCastData;
  7.  
  8. class EffectSetting : public TESForm
  9. {
  10. public:
  11.     enum { kTypeID = kFormType_EffectSetting };
  12.  
  13.     // parents
  14.     TESFullName             fullName;           // 14
  15.     BGSMenuDisplayObject    menuDisplayObject;  // 1C
  16.     BGSKeywordForm          keywordForm;        // 24
  17.  
  18.     // members
  19.  
  20.     // 98
  21.     struct Properties
  22.     {
  23.         enum {
  24.             kEffectType_Hostile =           0x00000001,
  25.             kEffectType_Recover =           0x00000002,
  26.             kEffectType_Detrimental =       0x00000004,
  27.             kEffectType_NoHitEvent =        0x00000010,
  28.             kEffectType_DispelKeywords =    0x00000100,
  29.             kEffectType_NoDuration =        0x00000200,
  30.             kEffectType_NoMagnitude =       0x00000400,
  31.             kEffectType_NoArea =            0x00000800,
  32.             kEffectType_FXPersist =         0x00001000,
  33.             kEffectType_GloryVisuals =      0x00004000,
  34.             kEffectType_HideInUI =          0x00008000,
  35.             kEffectType_NoRecast =          0x00020000,
  36.             kEffectType_Magnitude =         0x00200000,
  37.             kEffectType_Duration =          0x00400000,
  38.             kEffectType_Painless =          0x04000000,
  39.             kEffectType_NoHitEffect =       0x08000000,
  40.             kEffectType_NoDeathDispel =     0x10000000
  41.         };
  42.  
  43.         enum {
  44.             kArchetype_ValueMod = 0,
  45.             kArchetype_Script,
  46.             kArchetype_Dispel,
  47.             kArchetype_CureDisease,
  48.             kArchetype_Absorb,
  49.             kArchetype_DualValueMod,
  50.             kArchetype_Calm,
  51.             kArchetype_Demoralize,
  52.             kArchetype_Frenzy,
  53.             kArchetype_Disarm,
  54.             kArchetype_CommandSummoned,
  55.             kArchetype_Invisibility,
  56.             kArchetype_Light,
  57.             kArchetype_Lock = 15,
  58.             kArchetype_Open,
  59.             kArchetype_BoundWeapon,
  60.             kArchetype_SummonCreature,
  61.             kArchetype_DetectLife,
  62.             kArchetype_Telekinesis,
  63.             kArchetype_Paralysis,
  64.             kArchetype_Reanimate,
  65.             kArchetype_SoulTrap,
  66.             kArchetype_TurnUndead,
  67.             kArchetype_Guide,
  68.             kArchetype_WerewolfFeed,
  69.             kArchetype_CureParalysis,
  70.             kArchetype_CureAddiction,
  71.             kArchetype_CurePoison,
  72.             kArchetype_Concussion,
  73.             kArchetype_ValueAndParts,
  74.             kArchetype_AccumulateMagnitude,
  75.             kArchetype_Stagger,
  76.             kArchetype_PeakValueMod,
  77.             kArchetype_Cloak,
  78.             kArchetype_Werewolf,
  79.             kArchetype_SlowTime,
  80.             kArchetype_Rally,
  81.             kArchetype_EnhanceWeapon,
  82.             kArchetype_SpawnHazard,
  83.             kArchetype_Etherealize,
  84.             kArchetype_Banish
  85.         };
  86.  
  87.         enum {
  88.             kCastingType_ConstantEffect = 0,
  89.             kCastingType_FireAndForget,
  90.             kCastingType_Concentration
  91.         };
  92.  
  93.         enum {
  94.             kDeliveryType_Self = 0,
  95.             kDeliveryType_Contact,
  96.             kDeliveryType_Aimed,
  97.             kDeliveryType_TargetActor,
  98.             kDeliveryType_TargetLocation
  99.         };
  100.  
  101.         enum {
  102.             kVolume_Loud = 0,
  103.             kVolume_Normal,
  104.             kVolume_Silent,
  105.             kVolume_VeryLoud
  106.         };
  107.  
  108.         struct ObjectType {
  109.             UInt32 type;
  110.             union {
  111.                 SpellItem*          spell; // Cloak
  112.                 TESObjectWEAP*      weapon; // Bound Weapon
  113.                 EnchantmentItem*    enchantment; // Enhance Weapon
  114.                 TESRace*            race; // Werewolf
  115.                 BGSHazard*          hazard; // Guide, Spawn Hazard
  116.                 TESNPC*             actorBase; // Summon Creature
  117.                 TESObjectLIGH*      light; // Light
  118.             } object;
  119.         };
  120.  
  121.         UInt32                  flags;              // 00 - init'd to 0
  122.         float                   baseCost;           // 04 - init'd to 0
  123.         ObjectType              primaryObject;      // 08 - init'd to 0
  124.         UInt32                  school;             // 0C - init'd to FFFFFFFF
  125.         UInt32                  resistance;         // 10 - init'd to FFFFFFFF
  126.         UInt16                  unk14;              // 14 - init'd to 0
  127.         UInt8                   pad16[2];           // 16
  128.         TESObjectLIGH*          light;              // 18 - init'd to 0
  129.         float                   taperWeight;        // 1C - init'd to 0
  130.         TESEffectShader*        hitShader;          // 20 - init'd to 0
  131.         TESEffectShader*        enchantShader;      // 24 - init'd to 0
  132.         UInt32                  level;              // 28 - init'd to 0
  133.         UInt32                  area;               // 2C - init'd to 0
  134.         float                   castingTime;        // 30 - init'd to 0
  135.         float                   taperCurve;         // 34 - init'd to 0
  136.         float                   taperDuration;      // 38 - init'd to 0
  137.         float                   secondAVWeight;     // 3C - init'd to 0 float - Always 0
  138.         UInt32                  archetype;          // 40 - init'd to 0
  139.         UInt32                  primaryValue;       // 44 - init'd to FFFFFFFF
  140.         BGSProjectile*          projectile;         // 48 - init'd to 0
  141.         BGSExplosion*           explosion;          // 4C - init'd to 0
  142.         UInt32                  castType;           // 50 - init'd to 3 cast type?
  143.         UInt32                  deliveryType;       // 54 - init'd to 5 cast type?
  144.         UInt32                  secondaryValue;     // 58 - init'd to FFFFFFFF
  145.         BGSArtObject*           castingArt;         // 5C - init'd to 0
  146.         BGSArtObject*           hitEffectArt;       // 60 - init'd to 0
  147.         BGSImpactDataSet*       impactDataSet;      // 64 - init'd to 0
  148.         float                   skillUsageMult;     // 68 - init'd to 0
  149.         BGSDualCastData*        dualCastData;       // 6C - init'd to 0
  150.         float                   dualCastingScale;   // 70 - init'd to 1
  151.         BGSArtObject*           enchantArt;         // 74 - init'd to 0
  152.         UInt32                  unk78;              // 78 - init'd to 0
  153.         UInt32                  unk7C;              // 7C - init'd to 0
  154.         SpellItem*              equipAbility;       // 80 - init'd to 0
  155.         TESImageSpaceModifier*  imageSpaceMod;      // 84 - init'd to 0
  156.         BGSPerk*                perk;               // 88 - init'd to 0
  157.         UInt32                  soundVolume;        // 8C - init'd to 1
  158.         float                   aiScore;            // 90 - init'd to 0
  159.         float                   delayTime;          // 94 - init'd to 0
  160.     };
  161.  
  162.     struct SoundInfo
  163.     {
  164.         UInt32      value;
  165.         TESSound*   sound;
  166.     };
  167.  
  168.     UInt32                      unk30;      // 30
  169.     UInt32                      unk34;      // 34
  170.     Properties                  properties;     // 38
  171.     tList<EffectSetting>        counterEffects;
  172.     tArray<SoundInfo>           sounds;     // D8
  173.     StringCache::Ref            description;        // E4
  174.     UInt32                      unkE8;      // E8
  175.     UInt32                      unkEC;      // EC
  176.     void                        * unkF0;    // F0 - linked list
  177.  
  178.     UInt32 school() { return properties.school; }
  179.     UInt32 level() { return properties.level; }
  180. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement