Advertisement
Guest User

GameDefines

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