Advertisement
expired6978

HUDMenu

Mar 20th, 2014
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.97 KB | None | 0 0
  1. // 18
  2. class HUDObject
  3. {
  4. public:
  5.     virtual ~HUDObject();
  6.  
  7.     virtual void Unk_01(void) = 0;
  8.     virtual void Unk_02(void);
  9.     virtual void Unk_03(void);
  10.     virtual void Unk_04(void);
  11.  
  12.     UInt32          unk04;      // 04
  13.     GFxMovieView    * view;     // 08
  14.     UInt32          unk0C;      // 0C
  15.     GFxValue        unk10;      // 10
  16. };
  17. STATIC_ASSERT(sizeof(HUDObject) == 0x20);
  18.  
  19. // 30
  20. class Compass : public HUDObject
  21. {
  22. public:
  23.     virtual void Unk_01(void);
  24.  
  25.     UInt32  unk20;  // 20
  26.     UInt32  unk24;  // 24
  27.     UInt32  unk28;  // 28
  28.     UInt32  unk2C;  // 2C
  29. };
  30. STATIC_ASSERT(sizeof(Compass) == 0x30);
  31.  
  32. // A0
  33. class FloatingQuestMarker : public HUDObject
  34. {
  35. public:
  36.  
  37. };
  38.  
  39. // 58
  40. class HUDNotifications : public HUDObject
  41. {
  42. public:
  43.  
  44. };
  45.  
  46. // 68
  47. class EnemyHealth : public HUDObject
  48. {
  49. public:
  50.     UInt32          handle;         // 20
  51.     UInt32          unk24;          // 24
  52.     UInt32          unk28;          // 28
  53.     UInt32          unk2C;          // 2C
  54.     GFxValue        unk30;          // 30
  55.     GFxValue        unk40;          // 40
  56.     GFxValue        text;           // 50
  57.     UInt32          unk5C;          // 5C
  58.     UInt32          unk60;          // 60
  59.     UInt32          unk64;          // 64
  60.  
  61.     TESObjectREFR   * GetTarget() const;
  62. };
  63. STATIC_ASSERT(offsetof(EnemyHealth, handle) == 0x20);
  64.  
  65. // 70
  66. class StealthMeter : public HUDObject
  67. {
  68. public:
  69.  
  70. };
  71.  
  72. // 28
  73. class HUDChargeMeter : public HUDObject
  74. {
  75. public:
  76.  
  77. };
  78.  
  79. // 38?
  80. class HUDMeter : public HUDObject
  81. {
  82. public:
  83.     virtual void Unk_01(void);
  84.     virtual void Unk_02(void);
  85.     virtual void Unk_03(void);
  86.     virtual void Unk_05(void);
  87.    
  88.     char    * setMeterPercent;  // 20
  89.     char    * startBlinking;    // 24
  90.     char    * fadeOut;          // 28
  91.     float   unk28;              // 2C
  92.     UInt32  unk2C;              // 30
  93.     UInt32  unk34;              // 34
  94. };
  95. STATIC_ASSERT(sizeof(HUDMeter) == 0x38);
  96.  
  97. // 38
  98. class ActorValueMeter : public HUDMeter
  99. {
  100. public:
  101.    
  102. };
  103.  
  104. // 38
  105. class ShoutMeter : public HUDMeter
  106. {
  107. public:
  108.    
  109. };
  110.  
  111. // 58
  112. class HUDMenu : public IMenu
  113. {
  114. public:
  115.     BSTEventSink<void>  unk1C;  // UserEventEnabledEvent
  116.     tArray<HUDObject*>  hudComponents;  // 20
  117.     UInt32  unk2C;
  118.     UInt32  unk30;
  119.     UInt32  unk34;
  120.     UInt32  unk38;
  121.     UInt32  unk3C;
  122.     UInt32  unk40;
  123.     UInt32  unk44;
  124.     UInt32  unk48;
  125.     UInt32  unk4C;
  126.     UInt32  unk50;
  127.     UInt32  unk54;
  128. };
  129. STATIC_ASSERT(sizeof(HUDMenu) == 0x58);
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142. TESObjectREFR * EnemyHealth::GetTarget() const
  143. {
  144.     TESObjectREFR * refr = NULL;
  145.     UInt32 refHandle = (*g_thePlayer)->targetHandle;
  146.     LookupREFRByHandle(&refHandle, &refr);
  147.     if(!refr) {
  148.         refHandle = handle;
  149.         LookupREFRByHandle(&refHandle, &refr);
  150.     }
  151.  
  152.     return refr;
  153. }
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169. // 720
  170. class PlayerCharacter : public Character
  171. {
  172. public:
  173.     virtual ~PlayerCharacter();
  174.  
  175.     // parents
  176.     BSTEventSink <void *>   menuOpenCloseEvent;         // 19C .?AV?$BSTEventSink@VMenuOpenCloseEvent@@@@
  177.     BSTEventSink <void *>   menuModeChangeEvent;        // 1A0 .?AV?$BSTEventSink@VMenuModeChangeEvent@@@@
  178.     BSTEventSink <void *>   userEventEnabledEvent;      // 1A4 .?AV?$BSTEventSink@VUserEventEnabledEvent@@@@
  179.     BSTEventSource <void *> actorCellEventSource;       // 1A8 .?AV?$BSTEventSource@UBGSActorCellEvent@@@@
  180.     BSTEventSource <void *> actorDeathEventSource;      // 1D8 .?AV?$BSTEventSource@UBGSActorDeathEvent@@@@
  181.     BSTEventSource <void *> positionPlayerEventSource;  // 208 .?AV?$BSTEventSource@UPositionPlayerEvent@@@@
  182.  
  183.     UInt32  pad238[(0x490 - 0x238) >> 2];   // 238
  184.     UInt32  unk490;                         // 490 - Handle
  185.     UInt32  pad494[(0x568 - 0x494) >> 2];   // 494
  186.     UInt32  unk568;                         // 568 - Handle
  187.     UInt32  pad56C[(0x58C - 0x56C) >> 2];   // 56C
  188.     NiNode  * firstPersonSkeleton;          // 58C
  189.     UInt32  pad590[(0x5AC - 0x590) >> 2];
  190.     UInt32  lastRiddenHorseHandle;          // 5AC - Handle
  191.     UInt32  pad5B0[(0x614 - 0x5B0) >> 2];
  192.     PlayerSkills *  skills;                 // 618
  193.     UInt32  targetHandle;                   // 61C
  194.     UInt32  pad618[(0x644 - 0x61C) >> 2];
  195.     TESForm * tempPoison;                   // 644
  196.     UInt32  numTeammates;                   // 648
  197.     UInt32  pad64C[(0x6E0 - 0x64C) >> 2];
  198.     UInt8   unk6E0;                         // 6E0
  199.     UInt8   numPerkPoints;                  // 6E1
  200.     UInt16  unk6E2;                         // 6E2
  201.     UInt32  unk6E4;                         // 6E4
  202.  
  203.     tArray <TintMask *> tintMasks;          // 6E8      // These are the actual tints
  204.     tArray <TintMask *> * overlayTintMasks; // 6F4      // These apply when overlay head parts is enabled
  205.  
  206.     // Overlayed tints should be the same as original tints
  207.     // occasionally they can have no type so index matching
  208.     // is required to set anything on the tint
  209.     TintMask * GetOverlayTintMask(TintMask * original);
  210.  
  211.     // Confirmed - Same as ExtraContainerChanges::EntryData
  212.     // This type is used by scaleform to extend data
  213.     // It can be used to extend more of the "ExtraData"
  214.     struct ObjDesc
  215.     {
  216.         TESForm                 * form;
  217.         tList<BaseExtraList>    * extraData;
  218.         SInt32                  countDelta;
  219.  
  220.         MEMBER_FN_PREFIX(ObjDesc);
  221.         DEFINE_MEMBER_FN(GenerateName, const char *, 0x00475AA0);
  222.     };
  223.  
  224.     MEMBER_FN_PREFIX(PlayerCharacter);
  225.     DEFINE_MEMBER_FN(GetTintList, tArray <TintMask *> *, 0x0055FF90);
  226.     DEFINE_MEMBER_FN(GetNumTints, UInt32, 0x00735F40, UInt32 tintType);
  227.     DEFINE_MEMBER_FN(GetTintMask, TintMask *, 0x00735F00, UInt32 tintType, UInt32 index);
  228.     DEFINE_MEMBER_FN(GetDamage, double, 0x00730810, ObjDesc * pForm);
  229.     DEFINE_MEMBER_FN(GetArmorValue, double, 0x007307E0, ObjDesc * pForm);
  230. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement