Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdint>
- #define assert_size(classobj,classobjsize) static_assert(sizeof(classobj) == classobjsize, #classobj" != "#classobjsize);
- namespace MSVCBinCompat{
- class string
- {
- union
- {
- char* ptr;
- char sbo[16];
- } str_data;
- uint32_t size;
- uint32_t cap;
- };
- class wstring
- {
- union
- {
- wchar_t* ptr;
- wchar_t sbo[8];
- } str_data;
- uint32_t size;
- uint32_t cap;
- };
- template<typename T>
- struct vector{
- T* start;
- T* end;
- T* cap;
- };
- };
- struct _RTL_CRITICAL_SECTION
- {
- uint32_t DebugInfo;
- uint32_t LockCount;
- uint32_t RecursionCount;
- uint32_t OwningThread;
- uint32_t LockSemaphore;
- uint32_t SpinCount;
- };
- namespace plasma{
- template<int C, typename T>
- class Vector{
- public:
- T data[C];
- };
- template<typename T>
- class Matrix{
- public:
- T _m[16];
- };
- class Attribute{
- public:
- int vec_ptr;
- int field_4;
- int field_8;
- int field_C;
- int field_10;
- int field_14;
- int field_18;
- int current_frame;
- MSVCBinCompat::string attribute_name;
- int field_38;
- int field_3C;
- int field_40;
- int field_44;
- };
- template<typename T>
- class DiscreteAttribute{
- public:
- Attribute base;
- MSVCBinCompat::vector<T> data;
- virtual void vf_dtor(uint8_t x){};
- };
- template<typename T>
- class ContinuousAttribute{
- public:
- Attribute base;
- MSVCBinCompat::vector<T> data;
- virtual void vf_dtor(uint8_t x){};
- };
- template<typename T>
- class ContinuousArrayAttribute{
- public:
- Attribute base;
- MSVCBinCompat::vector<T> data;
- virtual void vf_dtor(uint8_t x){};
- };
- class Object{
- public:
- //void* vtable;
- void* plasma_d3d9engine;
- void* some_nodes_linked_list;
- virtual void vf_dtor(uint8_t x){};
- };
- class NamedObject: Object{
- public:
- //void* vtable;
- MSVCBinCompat::wstring name;
- virtual void vf_dtor(uint8_t x){};
- };
- class Node;
- class Widget: NamedObject{
- public:
- int field_20;
- float field_24;
- int field_28;
- int field_2C;
- int field_30;
- int field_34;
- int plasma_D3D9RenderSurface;
- int x_offset;
- int y_offset;
- int field_44;
- int field_48;
- float field_4C;
- float field_50;
- int field_54;
- int field_58;
- float field_5C;
- float field_60;
- int field_64;
- int field_68;
- float width;
- float height;
- int field_74;
- int field_78;
- uint16_t field_7C;
- int field_80;
- int field_84;
- int field_88;
- int field_8C;
- int field_90;
- int field_94;
- int field_98;
- int field_9C;
- int field_A0;
- Matrix<float> some_matrix_1;
- Matrix<float> some_matrix_2;
- int flags;
- int field_128;
- int field_12C;
- char field_130;
- int field_134;
- int field_138;
- int field_13C;
- int field_140;
- Node *node;
- int field_148;
- int field_14C;
- int field_150;
- int field_154;
- int field_158;
- };
- class Keyable: NamedObject{
- public:
- //void* vtable;
- uint32_t field_20;
- uint32_t field_24;
- uint8_t field_28;
- uint8_t field_29;
- uint8_t field_2A;
- uint8_t field_2B;
- uint16_t field_2C;
- uint8_t field_2E;
- uint8_t field_2F;
- uint32_t field_30;
- uint32_t field_34;
- uint32_t field_38;
- uint32_t field_3C;
- uint32_t field_40;
- virtual void vf_dtor(uint8_t x){};
- };
- class Shape: Keyable{
- public:
- int field_44;
- int field_48;
- int field_4C;
- int field_50;
- int field_54;
- virtual void vf_dtor(uint8_t x){};
- virtual void vf1();
- virtual void vf2();
- virtual void vf3();
- virtual void vf4();
- virtual void vf5();
- virtual void vf6();
- virtual void vf7();
- virtual void vf8();
- virtual void vf9();
- virtual void vf10();
- virtual void vf11();
- virtual void vf12();
- virtual void vf13();
- virtual void vf14();
- virtual void vf15();
- virtual void vf16();
- virtual void vf17();
- virtual void vf18();
- };
- class MeshShape: Shape{
- public:
- ContinuousArrayAttribute<Vector<2,float>> positions;
- ContinuousArrayAttribute<Vector<2,float>> textCoords;
- ContinuousArrayAttribute<Vector<4,float>> colors;
- ContinuousArrayAttribute<Vector<4,float>> strokeColors;
- ContinuousArrayAttribute<Vector<4,float>> extrusionBackColors;
- ContinuousArrayAttribute<Vector<4,float>> extrusionFrontColors;
- ContinuousArrayAttribute<float> strokeWidths;
- MSVCBinCompat::vector<int> field_2C4;
- MSVCBinCompat::vector<int> field_2D0;
- ContinuousAttribute<Vector<2,float>> textureTranslation;
- ContinuousAttribute<Vector<2,float>> texturePivot;
- ContinuousAttribute<Vector<3,float>> textureRotation;
- ContinuousAttribute<Matrix<float>> textureDeformation;
- ContinuousAttribute<float> textureOpacity;
- ContinuousAttribute<float> textureBirghtness;
- ContinuousAttribute<float> textureContrast;
- ContinuousAttribute<float> textureSaturation;
- ContinuousAttribute<float> strokeTextureOpacity;
- ContinuousAttribute<float> strokeTextureBrightness;
- ContinuousAttribute<float> strokeTextureContrast;
- ContinuousAttribute<float> strokeTextureSaturation;
- ContinuousAttribute<float> strokeTextureStretch;
- ContinuousAttribute<Matrix<float>> extrusionMatrix;
- DiscreteAttribute<int> texture;
- DiscreteAttribute<int> strokeTexture;
- int field_858;
- int field_85C;
- int field_860;
- int field_864;
- int field_868;
- int field_86C;
- int field_870;
- int field_874;
- int field_878;
- int field_87C;
- int field_880;
- int field_884;
- int field_888;
- int field_88C;
- int field_890;
- int field_894;
- int field_898;
- int field_89C;
- int field_8A0;
- int field_8A4;
- int field_8A8;
- int field_8AC;
- int field_8B0;
- int field_8B4;
- int field_8B8;
- int field_8BC;
- int field_8C0;
- int field_8C4;
- int field_8C8;
- int field_8CC;
- int field_8D0;
- int field_8D4;
- int field_8D8;
- int field_8DC;
- virtual void vf_dtor(uint8_t x){};
- virtual void vf1();
- virtual void vf2();
- virtual void vf3();
- virtual void vf4();
- virtual void vf5();
- virtual void vf6();
- virtual void vf7();
- virtual void vf8();
- virtual void vf9();
- virtual void vf10();
- virtual void vf11();
- virtual void vf12();
- virtual void vf13();
- virtual void vf14();
- virtual void vf15();
- virtual void vf16();
- virtual void vf17();
- virtual void vf18();
- virtual void vf19();
- };
- class SmoothMeshShape: MeshShape{
- public:
- struct{
- int field_0;
- int field_4;
- int field_8;
- int field_C;
- int field_10;
- int field_14;
- int field_18;
- int field_1C;
- int field_20;
- int field_24;
- int field_28;
- int field_2C;
- int field_30;
- int field_34;
- int field_38;
- int field_3C;
- int field_40;
- int field_44;
- int field_48;
- int field_4C;
- int field_50;
- int field_54;
- int field_58;
- int field_5C;
- } substructs[6];;
- int field_B20;
- int field_B24;
- uint16_t field_B28;
- int field_B2C;
- int field_B30;
- int field_B34;
- int field_B38;
- int field_B3C;
- int field_B40;
- int field_B44;
- int field_B48;
- int field_B4C;
- int field_B50;
- int field_B54;
- int field_B58;
- int field_B5C;
- int field_B60;
- int field_B64;
- int field_B68;
- int field_B6C;
- int field_B70;
- int field_B74;
- int field_B78;
- int field_B7C;
- int field_B80;
- int field_B84;
- int field_B88;
- int field_B8C;
- int field_B90;
- int field_B94;
- int field_B98;
- int field_B9C;
- int field_BA0;
- int field_BA4;
- int field_BA8;
- int field_BAC;
- int field_BB0;
- int field_BB4;
- int field_BB8;
- int field_BBC;
- int field_BC0;
- int field_BC4;
- int field_BC8;
- int field_BCC;
- int field_BD0;
- int field_BD4;
- int field_BD8;
- int field_BDC;
- int field_BE0;
- int field_BE4;
- int field_BE8;
- float field_BEC;
- float field_BF0;
- int field_BF4;
- int field_BF8;
- int field_BFC;
- int field_C00;
- int field_C04;
- int field_C08;
- int field_C0C;
- int field_C10;
- int field_C14;
- _RTL_CRITICAL_SECTION CriticalSection;
- };
- class Transformation: Keyable{
- public:
- ContinuousAttribute<Vector<2,float>> translation;
- ContinuousAttribute<Matrix<float>> deformation;
- ContinuousAttribute<Vector<3,float>> rotation;
- ContinuousAttribute<Vector<2,float>> pivot;
- int field_1A4;
- int field_1A8;
- Matrix<float> some_matrix_1;
- Matrix<float> some_matrix_2;
- int field_22C;
- virtual void vf_dtor(uint8_t x){};
- };
- class Display: Keyable{
- plasma::DiscreteAttribute<int> visibility;
- plasma::DiscreteAttribute<int> clipping;
- plasma::ContinuousAttribute<Vector<4,float>> fill;
- plasma::ContinuousAttribute<Vector<4,float>> stroke;
- plasma::ContinuousAttribute<float> blurRadius;
- int field_1FC;
- int field_200;
- int field_204;
- int field_208;
- virtual void vf_dtor(uint8_t x){};
- };
- class Node: NamedObject{
- //void* vtable;
- uint32_t field_20;
- Node* parent_node_or_base_maybe;
- uint32_t children_nodes_linked_list;
- uint32_t unk;
- SmoothMeshShape* shape;
- Transformation* transformation;
- Display* display;
- Widget* related_widget;
- uint32_t field_40;
- uint32_t field_44;
- uint32_t field_48;
- uint32_t field_4C;
- uint32_t field_50;
- uint32_t field_54;
- uint32_t field_58;
- uint32_t field_5C;
- uint32_t field_60;
- uint32_t field_64;
- uint32_t field_68;
- uint32_t field_6C;
- uint32_t field_70;
- uint32_t field_74;
- uint32_t field_78;
- uint32_t field_7C;
- uint32_t field_80;
- uint32_t field_84;
- uint32_t field_88;
- uint32_t field_8C;
- uint32_t field_90;
- uint32_t field_94;
- uint32_t field_98;
- uint32_t field_9C;
- uint32_t field_A0;
- uint32_t field_A4;
- uint32_t field_A8;
- uint32_t field_AC;
- uint32_t field_B0;
- uint32_t field_B4;
- uint32_t field_B8;
- uint32_t field_BC;
- uint32_t field_C0;
- uint32_t field_C4;
- uint32_t field_C8;
- uint32_t field_CC;
- uint32_t field_D0;
- uint32_t field_D4;
- uint32_t field_D8;
- uint32_t field_DC;
- uint32_t field_E0;
- uint32_t field_E4;
- uint32_t field_E8;
- virtual void vf_dtor(char x){};
- };
- };
- //assert_size(plasma::Vector, 0xC) // Can't do this with a templated class even though all the members are pointers.
- assert_size(plasma::Attribute, 0x48)
- assert_size(plasma::Object, 0xC)
- assert_size(plasma::NamedObject, 0x24)
- assert_size(plasma::Node, 0xF0)
- assert_size(plasma::Widget, 0x160)
- assert_size(plasma::Keyable, 0x48)
- assert_size(plasma::Shape, 0x5C)
- assert_size(plasma::MeshShape, 0x8E4)
- assert_size(plasma::SmoothMeshShape, 0xC34)
- assert_size(plasma::Transformation, 0x234)
- assert_size(plasma::Display, 0x210)
- int main() {
- std::cout << std::hex << sizeof(plasma::SmoothMeshShape) << std::endl;
- std::cout << std::hex << offsetof(plasma::MeshShape, strokeTexture) << std::endl;
- }
Add Comment
Please, Sign In to add comment