Advertisement
expired6978

customization

Jan 24th, 2016
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.58 KB | None | 0 0
  1. #pragma once
  2.  
  3. #include "f4se_common/Relocation.h"
  4. #include "f4se/GameTypes.h"
  5.  
  6. class Actor;
  7. class TESNPC;
  8. class BGSHeadPart;
  9. class BGSColorForm;
  10. class BGSTextureSet;
  11. class ActorValueInfo;
  12.  
  13. class BGSCharacterTint
  14. {
  15. public:
  16.     class Template
  17.     {
  18.     public:
  19.         // 20
  20.         class Entry
  21.         {
  22.         public:
  23.             virtual ~Entry();
  24.  
  25.             virtual void Unk_01();
  26.             virtual void Unk_02();
  27.             virtual void Unk_03();
  28.             virtual void Load(void * unk1) = 0; // Loads template from plugin stream
  29.  
  30.             BSFixedString   name;       // 08
  31.             void            * unk10;    // 10
  32.             UInt32          unk18;      // 18
  33.             UInt16          unk1C;      // 1C
  34.             UInt8           unk1E;      // 1E
  35.             UInt8           unk1F;      // 1F
  36.         };
  37.  
  38.         // 30
  39.         class Mask : public Entry
  40.         {
  41.         public:
  42.             virtual void Unk_01();
  43.             virtual void Unk_02();
  44.             virtual void Unk_03();
  45.             virtual void Load(void * unk1);
  46.  
  47.             void    * unk20;    // 20
  48.             UInt32  unk28;      // 28
  49.             UInt32  unk2C;      // 2C
  50.         };
  51.  
  52.         // 48
  53.         class Palette : public Entry
  54.         {
  55.         public:
  56.             virtual void Unk_01();
  57.             virtual void Unk_02();
  58.             virtual void Unk_03();
  59.             virtual void Load(void * unk1);
  60.  
  61.             struct ColorData
  62.             {
  63.                 BGSColorForm * colorForm;   // 00
  64.                 float       unk08;          // 08
  65.                 UInt32      unk0C;          // 0C
  66.                 UInt16      unk10;          // 10
  67.                 UInt16      unk12;          // 12
  68.                 UInt32      unk14;          // 14
  69.             };
  70.  
  71.             BSFixedString texturePath;  // 20
  72.             UInt32  unk28;              // 28
  73.             UInt32  unk2C;              // 2C
  74.             tArray<ColorData>   colors; // 30
  75.         };
  76.  
  77.         // 40
  78.         class TexureSet : public Entry
  79.         {
  80.         public:
  81.             virtual void Unk_01();
  82.             virtual void Unk_02();
  83.             virtual void Unk_03();
  84.             virtual void Load(void * unk1);
  85.  
  86.             BSFixedString texturePath;  // 20
  87.             BSFixedString unk28;    // 28
  88.             BSFixedString unk30;    // 30
  89.             UInt32  unk38;      // 38
  90.             UInt32  unk3C;      // 3C
  91.         };
  92.     };
  93.  
  94.     // 18
  95.     class Entry
  96.     {
  97.     public:
  98.         virtual ~Entry();
  99.  
  100.         virtual void Unk_01(void);
  101.         virtual void Unk_02(void);
  102.         virtual void Unk_03(void);
  103.         virtual void Unk_04(void);
  104.         virtual UInt32 GetType(void) = 0;
  105.         virtual void Unk_06(void);
  106.  
  107.         Template * templateEntry;   // 08
  108.         UInt16      unk10;          // 10
  109.         UInt8       unk12;          // 12   divided by 100
  110.         UInt8       pad13;          // 13
  111.         UInt32      pad14;          // 14
  112.     };
  113.  
  114.     // 18
  115.     class MaskEntry : public Entry
  116.     {
  117.     public:
  118.         virtual ~MaskEntry();
  119.  
  120.         virtual void Unk_01(void);
  121.         virtual void Unk_02(void);
  122.         virtual void Unk_03(void);
  123.         virtual void Unk_04(void);
  124.         virtual UInt32 GetType(void);   // 0
  125.         virtual void Unk_06(void);
  126.     };
  127.  
  128.     // 20
  129.     class PaletteEntry : public MaskEntry
  130.     {
  131.     public:
  132.         virtual ~PaletteEntry();
  133.  
  134.         virtual void Unk_01(void);
  135.         virtual void Unk_02(void);
  136.         virtual void Unk_03(void);
  137.         virtual void Unk_04(void);
  138.         virtual UInt32 GetType(void);   // 1
  139.         virtual void Unk_06(void);
  140.  
  141.         SInt32  unk18;  // 18
  142.         SInt16  unk1C;  // 1C
  143.         UInt16  pad1E;  // 1E
  144.     };
  145.  
  146.     // 18
  147.     class TextureSetEntry : public Entry
  148.     {
  149.     public:
  150.         virtual ~TextureSetEntry();
  151.  
  152.         virtual void Unk_01(void);
  153.         virtual void Unk_02(void);
  154.         virtual void Unk_03(void);
  155.         virtual void Unk_04(void);
  156.         virtual UInt32 GetType(void);   // 2
  157.         virtual void Unk_06(void);
  158.     };
  159.  
  160. };
  161.  
  162. // 548
  163. class CharacterCreation
  164. {
  165. public:
  166.     UInt64  unk00;      // 00
  167.     void    * unk08;    // 08
  168.     UInt64  unk10;      // 10       4
  169.     UInt64  unk18;      // 18       1
  170.     UInt64  unk20;      // 20
  171.     UInt64  unk28;      // 28
  172.     UInt64  unk30;      // 30
  173.     UInt64  unk38;      // 38
  174.     UInt64  unk40;      // 40
  175.     UInt64  unk48;      // 48
  176.     UInt64  unk50;      // 50
  177.     Actor   * actor;    // 58
  178.     TESNPC  * npc;      // 60
  179.     TESNPC  * npc2;     // 68
  180.  
  181.     struct TintData
  182.     {
  183.         BSFixedString   category;   // 00
  184.         SInt32          unk08;      // 08
  185.         UInt32          type;       // 0C
  186.         tArray<BGSCharacterTint::Template::Entry*>  entry;      // 10 BGSCharacterTint::Template::Entry
  187.     };
  188.  
  189.     // 40
  190.     struct RegionData
  191.     {
  192.         BSFixedString   name;   // 00
  193.  
  194.         // 20
  195.         struct Type
  196.         {
  197.             BSFixedString   name;           // 00
  198.             BSFixedString   type;           // 08
  199.             BGSTextureSet   * textureSet;   // 10
  200.             UInt32          unk18;          // 18
  201.             float           unk1C;          // 1C
  202.         };
  203.  
  204.         tArray<Type>        types;  // 08
  205.         tArray<float>       unk20;  // 20
  206.         UInt64              unk38;  // 38
  207.     };
  208.  
  209.     struct Data1
  210.     {
  211.         tArray<TESNPC*>         presets;    // 00
  212.         tArray<BGSHeadPart*>    headParts;  // 18
  213.         tArray<void*>           unk30;      // 30
  214.  
  215.         struct Details
  216.         {
  217.             BSFixedString   location;   // 00
  218.             struct Data
  219.             {
  220.                 BSFixedString   name;   // 00
  221.                 BSFixedString   type;   // 08
  222.                 BGSTextureSet   * textureSet;   // 10
  223.                 UInt32          unk18;
  224.                 float           unk1C;
  225.             };
  226.             tArray<Data>    selection;  // 08
  227.         };
  228.         tArray<Details*>        details;    // 48
  229.         tArray<TintData*>       tintData;   // 60
  230.         tArray<BGSTextureSet*>  textures;   // 78
  231.         // ...
  232.     };
  233.     Data1                   * unk70;        // 70
  234.  
  235.     // Used by Scaleform callback to SetHairColor (17)
  236.     tArray<BGSColorForm*>   hairColors;     // 78
  237.  
  238.     struct Data2
  239.     {
  240.         tArray<BGSTextureSet*>  unk00;  // 00
  241.         tArray<BGSColorForm*>   unk18;  // 18
  242.     };
  243.     Data2                   * unk90;        // 90
  244.     UInt64                  unk98;          // 98
  245.     UInt64                  unkA0;          // A0
  246.     UInt64                  unkA8;          // A8
  247.     tArray<BGSHeadPart*>    faces;          // B0
  248.     tArray<BGSHeadPart*>    eyes;           // C8
  249.     tArray<BGSHeadPart*>    hairStyles;     // E0
  250.     tArray<UInt64>          unkF8;          // F8
  251.     UInt64                  unk110[(0x350-0x110)/8];    // 110
  252.  
  253.     BGSCharacterTint::Template::Palette * skinTint;     // 350 BGSCharacterTint::Template::Entry - Skin Tone?
  254.  
  255.     // Used by Scaleform callback to SetDetailColor (31)
  256.     tArray<TintData*> tints;                                        // 358
  257.     tArray<tArray<BGSCharacterTint::Template::Entry*>*> details;    // 370
  258.  
  259.     // ...
  260. };
  261.  
  262. extern RelocPtr <CharacterCreation*> g_characterCreation;
  263.  
  264. // Texture updating notes
  265. // UInt64 unk2;
  266. // call 140017224(player, &unk2);
  267. // node = player->GetRootNode()
  268. // call 14006CEF4(*146CC4360, actorBase, node, (UInt8)1, (UInt8)0, func_140045241, func_1400A7FC7, unk2, staticTextureIndexedArray);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement