Guest User

Untitled

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