Guest User

GameDefines.h for Betrayer

a guest
Mar 27th, 2015
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 21.63 KB | None | 0 0
  1. /*
  2. #############################################################################################
  3. # Game: Betrayer                                                                            #
  4. # Version: 1.0.0.0                                                                          #
  5. # ========================================================================================= #
  6. # File: GameDefines.h                                                                       #
  7. #############################################################################################
  8. */
  9.  
  10. #ifdef _MSC_VER
  11.     #pragma pack ( push, 0x4 )
  12. #endif
  13.  
  14. /*
  15. # ========================================================================================= #
  16. # Defines                                                                                  
  17. # ========================================================================================= #
  18. */
  19.  
  20. // Info
  21. #define GAME_NAME               "Betrayer"
  22. #define GAME_NAME_S             "BET"
  23. #define GAME_VERSION            "1.0.0.0" // using a cracked copy, unsure what real version is
  24.  
  25. // Game
  26. #define CLASS_ALIGN             0x4
  27.  
  28. // ProcessEvent Sig
  29. #define ProcessEvent_Pattern    "\x74\x00\x83\xC0\x07\x83\xE0\xF8\xE8\x00\x00\x00\x00\x8B\xC4"
  30. #define ProcessEvent_Mask       "x?xxxxxxx????xx"
  31.  
  32. // UE3 Tables Sigs
  33.                                //A1 ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 25 00 02 00 00
  34.                             //  "\xa1\x00\x00\x00\x00\x8b\x00\x00\x8B\x00\x00\x25\x00\x02\x00\x00"
  35. #define GObjects_Pattern        "\xa1\x00\x00\x00\x00\x8b\x00\x00\x8b\x00\x00\x25\x00\x02\x00\x00"
  36. #define GObjects_Mask           "x????x??x??xxxxx"
  37. #define GObjects_Offset         0x1
  38.  
  39.                                 // 8b\x0d\x??\x??\x??\x??\x83\xcC\x81\x00\x74
  40. #define GNames_Pattern          "\x8b\x0d\x00\x00\x00\x00\x83\x3c\x81\x00\x74"
  41. #define GNames_Mask             "xx????xxxxx"
  42. #define GNames_Offset           0x2
  43.  
  44. // Function Flags ( incomplete )
  45. #define FUNC_Final              0x00000001
  46. #define FUNC_Latent             0x00000008              // ??? 
  47. #define FUNC_Simulated          0x00000100              // ???
  48. #define FUNC_Exec               0x00000200
  49. #define FUNC_Native             0x00000400          // native flag is usually 0x400 AA3 is 0x8000...
  50. #define FUNC_Event              0x00000800
  51.  
  52.  
  53. // Proprerty Flags ( c&p from UE3 source )
  54. #define CPF_Edit                0x0000000000000001      // Property is user-settable in the editor.
  55. #define CPF_Const               0x0000000000000002      // Actor's property always matches class's default actor property.
  56. #define CPF_Input               0x0000000000000004      // Variable is writable by the input system.
  57. #define CPF_ExportObject        0x0000000000000008      // Object can be exported with actor.
  58. #define CPF_OptionalParm        0x0000000000000010      // Optional parameter (if CPF_Param is set).
  59. #define CPF_Net                 0x0000000000000020      // Property is relevant to network replication.
  60. #define CPF_EditConstArray      0x0000000000000040      // Prevent adding/removing of items from dynamic a array in the editor.
  61. #define CPF_Parm                0x0000000000000080      // Function/When call parameter.
  62. #define CPF_OutParm             0x0000000000000100      // Value is copied out after function call.
  63. #define CPF_SkipParm            0x0000000000000200      // Property is a short-circuitable evaluation function parm.
  64. #define CPF_ReturnParm          0x0000000000000400      // Return value.
  65. #define CPF_CoerceParm          0x0000000000000800      // Coerce args into this function parameter.
  66. #define CPF_Native              0x0000000000001000      // Property is native: C++ code is responsible for serializing it.
  67. #define CPF_Transient           0x0000000000002000      // Property is transient: shouldn't be saved, zero-filled at load time.
  68. #define CPF_Config              0x0000000000004000      // Property should be loaded/saved as permanent profile.
  69. #define CPF_Localized           0x0000000000008000      // Property should be loaded as localizable text.
  70. #define CPF_Travel              0x0000000000010000      // Property travels across levels/servers.
  71. #define CPF_EditConst           0x0000000000020000      // Property is uneditable in the editor.
  72. #define CPF_GlobalConfig        0x0000000000040000      // Load config from base class, not subclass.
  73. #define CPF_Component           0x0000000000080000      // Property containts component references.
  74. #define CPF_NeedCtorLink        0x0000000000400000      // Fields need construction/destruction.
  75. #define CPF_NoExport            0x0000000000800000      // Property should not be exported to the native class header file.
  76. #define CPF_NoClear             0x0000000002000000      // Hide clear (and browse) button.
  77. #define CPF_EditInline          0x0000000004000000      // Edit this object reference inline.
  78. #define CPF_EdFindable          0x0000000008000000      // References are set by clicking on actors in the editor viewports.
  79. #define CPF_EditInlineUse       0x0000000010000000      // EditInline with Use button.
  80. #define CPF_Deprecated          0x0000000020000000      // Property is deprecated.  Read it from an archive, but don't save it.
  81. #define CPF_EditInlineNotify    0x0000000040000000      // EditInline, notify outer object on editor change.
  82. #define CPF_RepNotify           0x0000000100000000      // Notify actors when a property is replicated
  83. #define CPF_Interp              0x0000000200000000      // interpolatable property for use with matinee
  84. #define CPF_NonTransactional    0x0000000400000000      // Property isn't transacted
  85.  
  86. // Property SubClasses
  87. #define CCP_UBYTE
  88. #define CCP_UINT
  89. #define CCP_UFLOAT
  90. #define CCP_UBOOL
  91. #define CCP_USTR
  92. #define CCP_UNAME
  93. #define CCP_UDELEGATE
  94. #define CCP_UOBJECT
  95. #define CCP_UCLASS
  96. #define CCP_UINTERFACE
  97. #define CCP_USTRUCT
  98. #define CCP_UARRAY
  99. #define CCP_UMAP
  100.  
  101. /*
  102. # ========================================================================================= #
  103. # Globals                                                                                  
  104. # ========================================================================================= #
  105. */
  106.  
  107. unsigned long GObjects          = NULL;
  108. unsigned long GNames            = NULL;
  109.  
  110.  
  111. /*
  112. # ========================================================================================= #
  113. # Structs                                                                                  
  114. # ========================================================================================= #
  115. */
  116.  
  117. template< class T > struct TArray
  118. {
  119. public:
  120.     T* Data;
  121.     int Count;
  122.     int Max;
  123.  
  124. public:
  125.     TArray()
  126.     {
  127.         Data = NULL;
  128.         Count = Max = 0;
  129.     };
  130.  
  131. public:
  132.     int Num()
  133.     {
  134.         return this->Count;
  135.     };
  136.  
  137.     T& operator() ( int i )
  138.     {
  139.         return this->Data[ i ];
  140.     };
  141.  
  142.     const T& operator() ( int i ) const
  143.     {
  144.         return this->Data[ i ];
  145.     };
  146.  
  147.     void Add ( T InputData )
  148.     {
  149.         Data = (T*) realloc ( Data, sizeof ( T ) * ( Count + 1 ) );
  150.         Data[ Count++ ] = InputData;
  151.         Max = Count;
  152.     };
  153.  
  154.     void Clear()
  155.     {
  156.         free ( Data );
  157.         Count = Max = 0;
  158.     };
  159. };
  160.  
  161. struct FNameEntry
  162. {
  163.     unsigned char   UnknownData00[ 0x10 ]; // need to update this from what ever we got, in our case it was 0x10 for name
  164.     char            Name[ 0x10 ];
  165. };
  166.  
  167. struct FName
  168. {
  169.     int             Index;
  170.     unsigned char   unknownData00[ 0x4 ];                                                          
  171.  
  172.     FName() : Index ( 0 ) {};
  173.  
  174.     FName ( int i ) : Index ( i ) {};
  175.  
  176.     ~FName() {};
  177.  
  178.     FName ( char* FindName )
  179.     {
  180.         static TArray< int > NameCache;
  181.  
  182.         for ( int i = 0; i < NameCache.Count; ++i )
  183.         {
  184.             if ( ! strcmp ( this->Names()->Data[ NameCache ( i ) ]->Name, FindName ) )
  185.             {
  186.                 Index = NameCache ( i );
  187.                 return;
  188.             }
  189.         }
  190.  
  191.         for ( int i = 0; i < this->Names()->Count; ++i )
  192.         {
  193.             if ( this->Names()->Data[ i ] )
  194.             {
  195.                 if ( ! strcmp ( this->Names()->Data[ i ]->Name, FindName ) )
  196.                 {
  197.                     NameCache.Add ( i );
  198.                     Index = i;
  199.                 }
  200.             }
  201.         }
  202.     };
  203.  
  204.     static TArray< FNameEntry* >* Names()
  205.     {
  206.         return (TArray< FNameEntry* >*) GNames;
  207.     };
  208.  
  209.     char* GetName()
  210.     {
  211.         if ( Index < 0 || Index > this->Names()->Num() )
  212.             return "UnknownName";
  213.         else
  214.             return this->Names()->Data[ Index ]->Name;
  215.     };
  216.  
  217.     bool operator == ( const FName& A ) const
  218.     {
  219.         return ( Index == A.Index );
  220.     };
  221. };
  222.  
  223. struct FString : public TArray< wchar_t >
  224. {
  225.     FString() {};
  226.  
  227.     FString ( wchar_t* Other )
  228.     {
  229.         this->Max = this->Count = *Other ? ( wcslen ( Other ) + 1 ) : 0;
  230.        
  231.         if ( this->Count )
  232.             this->Data = Other;
  233.     };
  234.  
  235.     ~FString() {};
  236.  
  237.     FString operator = ( wchar_t* Other )
  238.     {
  239.         if ( this->Data != Other )
  240.         {
  241.             this->Max = this->Count = *Other ? ( wcslen ( Other ) + 1 ) : 0;
  242.  
  243.             if ( this->Count )
  244.                 this->Data = Other;
  245.         }
  246.  
  247.         return *this;
  248.     };
  249. };
  250.  
  251. struct FScriptDelegate
  252. {
  253.     unsigned char UnknownData00[ 0xC ];
  254. };
  255.  
  256. struct FPointer
  257. {
  258.     int Dummy;
  259. };
  260.  
  261. struct FQWord
  262. {
  263.     int A;
  264.     int B;
  265. };
  266.  
  267. /*
  268. # ========================================================================================= #
  269. # Classes                                                                                  
  270. # ========================================================================================= #
  271. */
  272.  
  273. // (0x0000 - 0x003C)
  274. class UObject
  275. {
  276. public:
  277.     struct FPointer         VfTableObject;                          // 0x0000 (0x04) // always first
  278.     unsigned char           unknown_data00[0x1C];                   // 000004 (0x1C)
  279.     int                     ObjectInternalInteger;                  // 0x0020 (0x04)
  280.     unsigned char           unknown_data01[0x4];                    // 0x0024 (0x04)
  281.  
  282.     //struct FQWord         ObjectFlags;                            // 0x0008 (0x08)
  283.     //struct FPointer       HashNext;                               // 0x0010 (0x04)
  284.     //struct FPointer       HashOuterNext;                          // 0x0014 (0x04)
  285.     //struct FPointer       StateFrame;                             // 0x0018 (0x04)
  286.     //class UObject*        Linker;                                 // 0x001C (0x04)
  287.     //struct FPointer       LinkerIndex;                            // 0x0020 (0x04)
  288.     //int                   NetIndex;                               // 0x0024 (0x04)
  289.  
  290.     class UObject*          Outer;                                  // 0x0028 (0x04)
  291.     struct FName            Name;                                   // 0x002C (0x08)
  292.     class UClass*           Class;                                  // 0x0034 (0x04)
  293.     //unsigned long         bDisableStateChanges : 1;               // 0x0038 (0x04)
  294.     class UObject*          ObjectArchetype;                        // 0x003C (0x04) // always last
  295.  
  296. private:
  297.     static UClass* pClassPointer;
  298.  
  299. public:
  300.     static TArray< UObject* >* GObjObjects();
  301.  
  302.     char* GetName();
  303.     char* GetNameCPP();
  304.     char* GetFullName();
  305.     char* GetPackageName();
  306.     UObject* GetPackageObj();
  307.    
  308.     template< class T > static T* FindObject ( char* ObjectFullName );
  309.     template< class T > static unsigned int CountObject ( char* ObjectName );
  310.     static UClass* FindClass ( char* ClassFullName );
  311.  
  312.     bool IsA ( UClass* pClass );
  313.  
  314.     static UClass* StaticClass()
  315.     {
  316.         if ( ! pClassPointer )
  317.             pClassPointer = UObject::FindClass ( "Class Core.Object" );
  318.  
  319.         return pClassPointer;
  320.     };
  321. };
  322.  
  323.     // (0x003C - 0x0040)
  324.     class UField : public UObject
  325.     {
  326.     public:
  327.         class UField*       Next;                                       // 0x003C (0x04)
  328.  
  329.     private:
  330.         static UClass* pClassPointer;
  331.  
  332.     public:
  333.         static UClass* StaticClass()
  334.         {
  335.             if ( ! pClassPointer )
  336.                 pClassPointer = UObject::FindClass ( "Class Core.Field" );
  337.  
  338.             return pClassPointer;
  339.         };
  340.     };
  341.  
  342.         // (0x0040 - 0x004C)
  343.         class UEnum : public UField
  344.         {
  345.         public:
  346.             TArray< FName > Names;                                          // 0x0040 (0x0C)   
  347.  
  348.         private:
  349.             static UClass* pClassPointer;
  350.  
  351.         public:
  352.             static UClass* StaticClass()
  353.             {
  354.                 if ( ! pClassPointer )
  355.                     pClassPointer = UObject::FindClass ( "Class Core.Enum" );
  356.  
  357.                 return pClassPointer;
  358.             };
  359.         };
  360.  
  361.         // (0x0040 - 0x004C)
  362.         class UConst : public UField
  363.         {
  364.         public:
  365.             struct FString      Value;                                      // 0x0040 (0x0C)                                                   
  366.  
  367.         private:
  368.             static UClass* pClassPointer;
  369.  
  370.         public:
  371.             static UClass* StaticClass()
  372.             {
  373.                 if ( ! pClassPointer )
  374.                     pClassPointer = UObject::FindClass ( "Class Core.Const" );
  375.  
  376.                 return pClassPointer;
  377.             };
  378.         };
  379.  
  380.         // (0x0040 - 0x0084) // not 90 its 84
  381.         class UStruct : public UField // copied from BLR GameDefines.h
  382.         {
  383.         public:
  384.             unsigned char           UnknownData00[ 0x8 ];                   // 0x0040 (0x08)
  385.             class UField*           SuperField;                             // 0x0048 (0x04)
  386.             class UField*           Children;                               // 0x004C (0x04)
  387.             unsigned long           PropertySize;                           // 0x0050 (0x04)
  388.             unsigned char           UnknownData01[0x30];                    // 0x0054 (0x30) // NOT 0x3c its actually 0x30
  389.  
  390.         private:
  391.             static UClass* pClassPointer;
  392.  
  393.         public:
  394.             static UClass* StaticClass()
  395.             {
  396.                 if ( ! pClassPointer )
  397.                     pClassPointer = UObject::FindClass ( "Class Core.Struct" );
  398.  
  399.                 return pClassPointer;
  400.             };
  401.         };
  402.        
  403.         /*
  404.         class UStruct : public UField
  405.         {
  406.         public:
  407.             unsigned long           ScriptText;                             // 0x0048 (0x04)
  408.             unsigned long           CppText;                                // 0x004C (0x04)       
  409.             class UField*           Children;                               // 0x0050 (0x04)
  410.             unsigned long           PropertySize;                           // 0x0054 (0x04)
  411.             unsigned char           UnknownData00[ 0x8 ];                   // 0x0058 (0x08)
  412.             TArray< unsigned char > Script;                                 // 0x0060 (0x0C)
  413.             unsigned char           UnknownData01[ 0x28 ];                  // 0x006C (0x28)
  414.  
  415.         private:
  416.             static UClass* pClassPointer;
  417.  
  418.         public:
  419.             static UClass* StaticClass()
  420.             {
  421.                 if ( ! pClassPointer )
  422.                     pClassPointer = UObject::FindClass ( "Class Core.Struct" );
  423.  
  424.                 return pClassPointer;
  425.             };
  426.         };
  427.         */
  428.  
  429.             // (0x0084 - 0x00A0) // not 90 its 84 and its not AC its A0
  430.             class UScriptStruct : public UStruct
  431.             {
  432.             public:
  433.                 unsigned char       UnknownData00[ 0x1C ];                      // 0x0080 (0x1C)
  434.  
  435.             private:
  436.                 static UClass* pClassPointer;
  437.  
  438.             public:
  439.                 static UClass* StaticClass()
  440.                 {
  441.                     if ( ! pClassPointer )
  442.                         pClassPointer = UObject::FindClass ( "Class Core.ScriptStruct" );
  443.  
  444.                     return pClassPointer;
  445.                 };
  446.             };
  447.  
  448.             // (0x0084 - 0x00A8) // not 90 its 80 and its not B4 its A4
  449.             class UFunction : public UStruct
  450.             {
  451.             public:
  452.                 unsigned long       FunctionFlags;                              // 0x0080 (0x04)
  453.                 unsigned short      iNative;                                    // 0x0084 (0x02)
  454.                 unsigned short      RepOffset;                                  // 0x0086 (0x02)
  455.                 //unsigned char     OperPrecedence;                             // 0x0088 (0x01)
  456.                 struct FName        FriendlyName;                               // 0x0088 (0x08)
  457.                 unsigned short      NumParms;                                   // 0x0090 (0x02)
  458.                 unsigned short      ParmsSize;                                  // 0x0092 (0x02)
  459.                 unsigned long       ReturnValueOffset;                          // 0x0094 (0x04)
  460.                 unsigned char       unknown_data00[0x4];                        // 0x0098 (0x04)
  461.                 void*               Func;                                       // 0x009C (0x04)
  462.  
  463.             private:
  464.                 static UClass* pClassPointer;
  465.  
  466.             public:
  467.                 static UClass* StaticClass()
  468.                 {
  469.                     if ( ! pClassPointer )
  470.                         pClassPointer = UObject::FindClass ( "Class Core.Function" );
  471.  
  472.                     return pClassPointer;
  473.                 };
  474.             };
  475.  
  476.             // (0x084 - 0x00CC)
  477.             class UState : public UStruct
  478.             {
  479.             public:
  480.                 unsigned char           UnknownData00[ 0x48 ];                      // 0x0084 (0x48)
  481.  
  482.             private:
  483.                 static UClass* pClassPointer;
  484.  
  485.             public:
  486.                 static UClass* StaticClass()
  487.                 {
  488.                     if ( ! pClassPointer )
  489.                         pClassPointer = UObject::FindClass ( "Class Core.State" );
  490.  
  491.                     return pClassPointer;
  492.                 };
  493.             };
  494.  
  495.                 // (0x00CC - 0x01C8)
  496.                 class UClass : public UState
  497.                 {
  498.                 public:
  499.                     unsigned char           UnknownData00[ 0xFC ];                  // 0x00CC (0xFC)
  500.  
  501.                 private:
  502.                     static UClass* pClassPointer;
  503.  
  504.                 public:
  505.                     static UClass* StaticClass()
  506.                     {
  507.                         if ( ! pClassPointer )
  508.                             pClassPointer = UObject::FindClass ( "Class Core.Class" );
  509.  
  510.                         return pClassPointer;
  511.                     };
  512.                 };
  513.  
  514.         // (0x0048 - 0x0088)
  515.         class UProperty : public UField
  516.         {
  517.         public:
  518.             unsigned long       ArrayDim;                                   // 0x0048 (0x04)                   
  519.             unsigned long       ElementSize;                                // 0x0044 (0x04)
  520.             FQWord              PropertyFlags;                              // 0x0048 (0x08)
  521.             unsigned char       UnknownData00[ 0xC ];                       // 0x0050 (0xC) // why is feckless doing 0x10?
  522.             unsigned long       Offset;                                     // 0x005C (0x04)
  523.             unsigned char       UnknownData01[ 0x1C ];                      // 0x0060 (0x1C)
  524.  
  525.         private:
  526.             static UClass* pClassPointer;
  527.  
  528.         public:
  529.             static UClass* StaticClass()
  530.             {
  531.                 if ( ! pClassPointer )
  532.                     pClassPointer = UObject::FindClass ( "Class Core.Property" );
  533.  
  534.                 return pClassPointer;
  535.             };
  536.         };
  537.  
  538.             // (0x0088 - 0x008C)
  539.             class UByteProperty : public UProperty
  540.             {
  541.             public:
  542.                 class UEnum*        Enum;                                       // 0x0088 (0x04)
  543.  
  544.             private:
  545.                 static UClass* pClassPointer;
  546.  
  547.             public:
  548.                 static UClass* StaticClass()
  549.                 {
  550.                     if ( ! pClassPointer )
  551.                         pClassPointer = UObject::FindClass ( "Class Core.ByteProperty" );
  552.  
  553.                     return pClassPointer;
  554.                 };
  555.             };
  556.  
  557.             // (0x0088 - 0x0088)
  558.             class UIntProperty : public UProperty
  559.             {
  560.             public:
  561.  
  562.             private:
  563.                 static UClass* pClassPointer;
  564.  
  565.             public:
  566.                 static UClass* StaticClass()
  567.                 {
  568.                     if ( ! pClassPointer )
  569.                         pClassPointer = UObject::FindClass ( "Class Core.IntProperty" );
  570.  
  571.                     return pClassPointer;
  572.                 };
  573.             };
  574.  
  575.             // (0x0088 - 0x0088)
  576.             class UFloatProperty : public UProperty
  577.             {
  578.             public:
  579.  
  580.             private:
  581.                 static UClass* pClassPointer;
  582.  
  583.             public:
  584.                 static UClass* StaticClass()
  585.                 {
  586.                     if ( ! pClassPointer )
  587.                         pClassPointer = UObject::FindClass ( "Class Core.FloatProperty" );
  588.  
  589.                     return pClassPointer;
  590.                 };
  591.             };
  592.  
  593.             // (0x0088 - 0x008C)
  594.             class UBoolProperty : public UProperty
  595.             {
  596.             public:
  597.                 unsigned long       BitMask;                                    // 0x0088 (0x04)           
  598.  
  599.             private:
  600.                 static UClass* pClassPointer;
  601.  
  602.             public:
  603.                 static UClass* StaticClass()
  604.                 {
  605.                     if ( ! pClassPointer )
  606.                         pClassPointer = UObject::FindClass ( "Class Core.BoolProperty" );
  607.  
  608.                     return pClassPointer;
  609.                 };
  610.             };
  611.  
  612.             // (0x0088 - 0x0088)
  613.             class UStrProperty : public UProperty
  614.             {
  615.             public:
  616.  
  617.             private:
  618.                 static UClass* pClassPointer;
  619.  
  620.             public:
  621.                 static UClass* StaticClass()
  622.                 {
  623.                     if ( ! pClassPointer )
  624.                         pClassPointer = UObject::FindClass ( "Class Core.StrProperty" );
  625.  
  626.                     return pClassPointer;
  627.                 };
  628.             };
  629.  
  630.             // (0x0088 - 0x0088)
  631.             class UNameProperty : public UProperty
  632.             {
  633.             public:
  634.  
  635.             private:
  636.                 static UClass* pClassPointer;
  637.  
  638.             public:
  639.                 static UClass* StaticClass()
  640.                 {
  641.                     if ( ! pClassPointer )
  642.                         pClassPointer = UObject::FindClass ( "Class Core.NameProperty" );
  643.  
  644.                     return pClassPointer;
  645.                 };
  646.             };
  647.  
  648.             // (0x0088 - 0x0090)
  649.             class UDelegateProperty : public UProperty
  650.             {
  651.             public:
  652.                 unsigned char           UnknownData00[ 0x8 ];                       // 0x0088 (0x08)
  653.  
  654.             private:
  655.                 static UClass* pClassPointer;
  656.  
  657.             public:
  658.                 static UClass* StaticClass()
  659.                 {
  660.                     if ( ! pClassPointer )
  661.                         pClassPointer = UObject::FindClass ( "Class Core.DelegateProperty" );
  662.  
  663.                     return pClassPointer;
  664.                 };
  665.             };
  666.  
  667.             // (0x0088 - 0x008C)
  668.             class UObjectProperty : public UProperty
  669.             {
  670.             public:
  671.                 class UClass*       PropertyClass;                              // 0x0088 (0x04)
  672.  
  673.             private:
  674.                 static UClass* pClassPointer;
  675.  
  676.             public:
  677.                 static UClass* StaticClass()
  678.                 {
  679.                     if ( ! pClassPointer )
  680.                         pClassPointer = UObject::FindClass ( "Class Core.ObjectProperty" );
  681.  
  682.                     return pClassPointer;
  683.                 };
  684.             };
  685.  
  686.                 // (0x008C - 0x0090)
  687.                 class UClassProperty : public UObjectProperty
  688.                 {
  689.                 public:
  690.                     class UClass*       MetaClass;                                  // 0x008C (0x04)
  691.  
  692.                 private:
  693.                     static UClass* pClassPointer;
  694.  
  695.                 public:
  696.                     static UClass* StaticClass()
  697.                     {
  698.                         if ( ! pClassPointer )
  699.                             pClassPointer = UObject::FindClass ( "Class Core.ClassProperty" );
  700.  
  701.                         return pClassPointer;
  702.                     };
  703.                 };
  704.  
  705.             // (0x0088 - 0x008C)
  706.             class UInterfaceProperty : public UProperty
  707.             {
  708.             public:
  709.                 class UClass*       InterfaceClass;                             // 0x0088 (0x04)
  710.  
  711.             private:
  712.                 static UClass* pClassPointer;
  713.  
  714.             public:
  715.                 static UClass* StaticClass()
  716.                 {
  717.                     if ( ! pClassPointer )
  718.                         pClassPointer = UObject::FindClass ( "Class Core.InterfaceProperty" );
  719.  
  720.                     return pClassPointer;
  721.                 };
  722.             };
  723.  
  724.             // (0x0088 - 0x008C)
  725.             class UStructProperty : public UProperty
  726.             {
  727.             public:
  728.                 class UStruct*      Struct;                                     // 0x0088 (0x04)
  729.  
  730.             private:
  731.                 static UClass* pClassPointer;
  732.  
  733.             public:
  734.                 static UClass* StaticClass()
  735.                 {
  736.                     if ( ! pClassPointer )
  737.                         pClassPointer = UObject::FindClass ( "Class Core.StructProperty" );
  738.  
  739.                     return pClassPointer;
  740.                 };
  741.             };
  742.  
  743.             // (0x0088 - 0x008C)
  744.             class UArrayProperty : public UProperty
  745.             {
  746.             public:
  747.                 class UProperty*    Inner;                                      // 0x0088 (0x04)
  748.  
  749.             private:
  750.                 static UClass* pClassPointer;
  751.  
  752.             public:
  753.                 static UClass* StaticClass()
  754.                 {
  755.                     if ( ! pClassPointer )
  756.                         pClassPointer = UObject::FindClass ( "Class Core.ArrayProperty" );
  757.  
  758.                     return pClassPointer;
  759.                 };
  760.             };
  761.  
  762.             // (0x0088 - 0x0090)
  763.             class UMapProperty : public UProperty
  764.             {
  765.             public:
  766.                 class UProperty*    Key;                                        // 0x0088 (0x04)
  767.                 class UProperty*    Value;                                      // 0x008C (0x04)
  768.  
  769.             private:
  770.                 static UClass* pClassPointer;
  771.  
  772.             public:
  773.                 static UClass* StaticClass()
  774.                 {
  775.                     if ( ! pClassPointer )
  776.                         pClassPointer = UObject::FindClass ( "Class Core.MapProperty" );
  777.  
  778.                     return pClassPointer;
  779.                 };
  780.             };
  781.  
  782. /*
  783. # ========================================================================================= #
  784. # Init Core Classes Pointers                                                               
  785. # ========================================================================================= #
  786. */
  787.  
  788. UClass* UObject                         ::pClassPointer = NULL;
  789. UClass*     UField                      ::pClassPointer = NULL;
  790. UClass*         UEnum                   ::pClassPointer = NULL;
  791. UClass*         UConst                  ::pClassPointer = NULL;
  792. UClass*         UStruct                 ::pClassPointer = NULL;
  793. UClass*             UScriptStruct       ::pClassPointer = NULL;
  794. UClass*             UFunction           ::pClassPointer = NULL;
  795. UClass*             UState              ::pClassPointer = NULL;
  796. UClass*                 UClass          ::pClassPointer = NULL;
  797. UClass*         UProperty               ::pClassPointer = NULL;
  798. UClass*         UByteProperty           ::pClassPointer = NULL;
  799. UClass*         UIntProperty            ::pClassPointer = NULL;
  800. UClass*         UFloatProperty          ::pClassPointer = NULL;
  801. UClass*         UBoolProperty           ::pClassPointer = NULL;
  802. UClass*         UStrProperty            ::pClassPointer = NULL;
  803. UClass*         UNameProperty           ::pClassPointer = NULL;
  804. UClass*         UDelegateProperty       ::pClassPointer = NULL;
  805. UClass*         UObjectProperty         ::pClassPointer = NULL;
  806. UClass*             UClassProperty      ::pClassPointer = NULL;
  807. UClass*         UInterfaceProperty      ::pClassPointer = NULL;
  808. UClass*         UStructProperty         ::pClassPointer = NULL;
  809. UClass*         UArrayProperty          ::pClassPointer = NULL;
  810. UClass*         UMapProperty            ::pClassPointer = NULL;
  811.  
  812. /*
  813. # ========================================================================================= #
  814. #
  815. # ========================================================================================= #
  816. */
  817.  
  818. #ifdef _MSC_VER
  819.     #pragma pack ( pop )
  820. #endif
Advertisement
Add Comment
Please, Sign In to add comment