Advertisement
Guest User

GameDefines

a guest
Aug 18th, 2015
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.53 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. // unsigned char UnknownData00[ 0x10 ];
  159. // wchar_t Name[ 0x10 ];
  160. //};
  161.  
  162. struct FNameEntry
  163. {
  164. DWORD Flags;
  165. UCHAR Unknown[12];
  166.  
  167. union
  168. {
  169. wchar_t *NamePtr;
  170. wchar_t Name[1024];
  171. };
  172.  
  173. };
  174.  
  175. struct FName
  176. {
  177. int Index;
  178. unsigned char unknownData00[ 0x4 ];
  179.  
  180. FName() : Index ( 0 ) {};
  181.  
  182. FName ( int i ) : Index ( i ) {};
  183.  
  184. ~FName() {};
  185.  
  186. FName ( wchar_t* FindName )
  187. {
  188. static TArray< int > NameCache;
  189.  
  190. for ( int i = 0; i < NameCache.Count; ++i )
  191. {
  192. if (this->Names()->Data[NameCache(i)]->Flags == 0x4000)
  193. {
  194. if (!wcscmp(this->Names()->Data[NameCache(i)]->NamePtr, FindName))
  195. {
  196. Index = NameCache(i);
  197. return;
  198. }
  199. else
  200. {
  201. if (!wcscmp(this->Names()->Data[NameCache(i)]->Name, FindName))
  202. {
  203. Index = NameCache(i);
  204. return;
  205. }
  206. }
  207. }
  208. }
  209.  
  210. for ( int i = 0; i < this->Names()->Count; ++i )
  211. {
  212. if ( this->Names()->Data[ i ] )
  213. {
  214. if (this->Names()->Data[i]->Flags == 0x4000)
  215. {
  216. if (!wcscmp(this->Names()->Data[i]->NamePtr, FindName))
  217. {
  218. NameCache.Add(i);
  219. Index = i;
  220. }
  221. }
  222. else
  223. {
  224. if (!wcscmp(this->Names()->Data[i]->Name, FindName))
  225. {
  226. NameCache.Add(i);
  227. Index = i;
  228. }
  229. }
  230.  
  231. }
  232. }
  233. };
  234.  
  235. static TArray< FNameEntry* >* Names()
  236. {
  237. return (TArray< FNameEntry* >*) GNames;
  238. };
  239.  
  240. wchar_t* GetName()
  241. {
  242. if ( Index < 0 || Index > this->Names()->Num() )
  243. return L"UnknownName";
  244. else
  245. {
  246. if (this->Names()->Data[Index]->Flags == 0x4000)
  247. {
  248. return this->Names()->Data[Index]->NamePtr;
  249. }
  250. else
  251. {
  252. return this->Names()->Data[Index]->Name;
  253. }
  254. }
  255.  
  256. };
  257.  
  258. bool operator == ( const FName& A ) const
  259. {
  260. return ( Index == A.Index );
  261. };
  262. };
  263.  
  264. struct FString : public TArray< wchar_t >
  265. {
  266. FString() {};
  267.  
  268. FString ( wchar_t* Other )
  269. {
  270. this->Max = this->Count = *Other ? ( wcslen ( Other ) + 1 ) : 0;
  271.  
  272. if ( this->Count )
  273. this->Data = Other;
  274. };
  275.  
  276. ~FString() {};
  277.  
  278. FString operator = ( wchar_t* Other )
  279. {
  280. if ( this->Data != Other )
  281. {
  282. this->Max = this->Count = *Other ? ( wcslen ( Other ) + 1 ) : 0;
  283.  
  284. if ( this->Count )
  285. this->Data = Other;
  286. }
  287.  
  288. return *this;
  289. };
  290. };
  291.  
  292. struct FScriptDelegate
  293. {
  294. unsigned char UnknownData00[ 0xC ];
  295. };
  296.  
  297. struct FPointer
  298. {
  299. int Dummy;
  300. };
  301.  
  302. struct FQWord
  303. {
  304. int A;
  305. int B;
  306. };
  307.  
  308. /*
  309. # ========================================================================================= #
  310. # Classes
  311. # ========================================================================================= #
  312. */
  313.  
  314. // (0x0000 - 0x0040)
  315. class UObject
  316. {
  317. public:
  318. //struct FPointer VfTableObject; // 0x0000 (0x04)
  319. //int ObjectInternalInteger; // 0x0004 (0x04)
  320. //struct FQWord ObjectFlags; // 0x0008 (0x08)
  321. //struct FPointer HashNext; // 0x0010 (0x04)
  322. //struct FPointer HashOuterNext; // 0x0014 (0x04)
  323. //struct FPointer StateFrame; // 0x0018 (0x04)
  324. //class UObject* Linker; // 0x001C (0x04)
  325. //struct FPointer LinkerIndex; // 0x0020 (0x04)
  326. //int NetIndex; // 0x0024 (0x04)
  327. //int nDynRefsIndex; // 0x0028 (0x04)
  328. //class UObject* Outer; // 0x002C (0x04)
  329. //struct FName Name; // 0x0030 (0x08)
  330. //class UClass* Class; // 0x0038 (0x04)
  331. //class UObject* ObjectArchetype; // 0x003C (0x04)
  332. /*struct FPointer VfTableObject;
  333. struct FPointer HashNext;
  334. struct FQWord ObjectFlags;
  335. int NetIndex;
  336. class UObject* Outer;
  337. struct FName Name;
  338. class UClass* Class;
  339. class UObject* Linker;
  340. class UObject* ObjectArchetype;
  341. int nDynRefsIndex;
  342. struct FPointer StateFrame;
  343. int ObjectInternalInteger;
  344. struct FPointer LinkerIndex;
  345. struct FPointer HashOuterNext;*/
  346. struct FPointer VfTableObject; // 0x0000 (0x04)
  347. UCHAR unknownData04[0x10]; // 0x0004 (0x10)
  348. int ObjectInternalInteger; // 0x0014 (0x04)
  349. UCHAR unknownData018[0x08]; // 0x0018 (0x08)
  350. class UObject* Outer; // 0x0020 (0x04)
  351. class UObject* ObjectArchetype; // 0x0024 (0x04)
  352. class UClass* Class; // 0x0028 (0x04)
  353. UCHAR unknownData028[0x08]; // 0x002C (0x08)
  354. struct FName Name; // 0x0034 (0x08)
  355.  
  356. private:
  357. static UClass* pClassPointer;
  358.  
  359. public:
  360. static TArray< UObject* >* GObjObjects();
  361.  
  362. char* GetName();
  363. char* GetNameCPP();
  364. char* GetFullName();
  365. char* GetPackageName();
  366. UObject* GetPackageObj();
  367.  
  368. template< class T > static T* FindObject ( char* ObjectFullName );
  369. template< class T > static unsigned int CountObject ( char* ObjectName );
  370. static UClass* FindClass ( char* ClassFullName );
  371.  
  372. bool IsA ( UClass* pClass );
  373.  
  374. static UClass* StaticClass()
  375. {
  376. if ( ! pClassPointer )
  377. pClassPointer = UObject::FindClass ( "Class Core.Object" );
  378.  
  379. return pClassPointer;
  380. };
  381. };
  382.  
  383. // (0x0040 - 0x0048)
  384. class UField : public UObject
  385. {
  386. public:
  387. class UField* Next; // 0x0044 (0x04)
  388.  
  389. private:
  390. static UClass* pClassPointer;
  391.  
  392. public:
  393. static UClass* StaticClass()
  394. {
  395. if ( ! pClassPointer )
  396. pClassPointer = UObject::FindClass ( "Class Core.Field" );
  397.  
  398. return pClassPointer;
  399. };
  400. };
  401.  
  402. // (0x0048 - 0x0054)
  403. class UEnum : public UField
  404. {
  405. public:
  406. TArray< FName > Names; // 0x0048 (0x0C)
  407.  
  408. private:
  409. static UClass* pClassPointer;
  410.  
  411. public:
  412. static UClass* StaticClass()
  413. {
  414. if ( ! pClassPointer )
  415. pClassPointer = UObject::FindClass ( "Class Core.Enum" );
  416.  
  417. return pClassPointer;
  418. };
  419. };
  420.  
  421. // (0x0048 - 0x0054)
  422. class UConst : public UField
  423. {
  424. public:
  425. struct FString Value; // 0x0048 (0x0C)
  426.  
  427. private:
  428. static UClass* pClassPointer;
  429.  
  430. public:
  431. static UClass* StaticClass()
  432. {
  433. if ( ! pClassPointer )
  434. pClassPointer = UObject::FindClass ( "Class Core.Const" );
  435.  
  436. return pClassPointer;
  437. };
  438. };
  439.  
  440. // (0x0048 - 0x0094)
  441. class UStruct : public UField
  442. {
  443. public:
  444. unsigned long ScriptText; // 0x0048 (0x04)
  445. unsigned long CppText; // 0x004C (0x04)
  446. class UField* SuperField; // 0x0040 (0x04)
  447. class UField* Children; // 0x0050 (0x04)
  448. unsigned long PropertySize; // 0x0054 (0x04)
  449. unsigned char UnknownData00[ 0x8 ]; // 0x0058 (0x08)
  450. TArray< unsigned char > Script; // 0x0060 (0x0C)
  451. unsigned char UnknownData01[ 0x28 ]; // 0x006C (0x28)
  452.  
  453. private:
  454. static UClass* pClassPointer;
  455.  
  456. public:
  457. static UClass* StaticClass()
  458. {
  459. if ( ! pClassPointer )
  460. pClassPointer = UObject::FindClass ( "Class Core.Struct" );
  461.  
  462. return pClassPointer;
  463. };
  464. };
  465.  
  466. // (0x0094 - 0x00B0)
  467. class UScriptStruct : public UStruct
  468. {
  469. public:
  470. unsigned char UnknownData00[ 0x1C ]; // 0x0094 (0x1C)
  471.  
  472. private:
  473. static UClass* pClassPointer;
  474.  
  475. public:
  476. static UClass* StaticClass()
  477. {
  478. if ( ! pClassPointer )
  479. pClassPointer = UObject::FindClass ( "Class Core.ScriptStruct" );
  480.  
  481. return pClassPointer;
  482. };
  483. };
  484.  
  485. // (0x0094 - 0x00B4)
  486. class UFunction : public UStruct
  487. {
  488. public:
  489. unsigned long FunctionFlags; // 0x0094 (0x04)
  490. unsigned short iNative; // 0x0098 (0x02)
  491. unsigned short RepOffset; // 0x009A (0x02)
  492. unsigned char OperPrecedence; // 0x009C (0x01)
  493. struct FName FriendlyName; // 0x00A0 (0x08)
  494. unsigned char NumParms; // 0x00A8 (0x01)
  495. unsigned short ParmsSize; // 0x00AC (0x02)
  496. unsigned short ReturnValueOffset; // 0x00AE (0x02)
  497. void* Func; // 0x00B0 (0x04)
  498.  
  499. private:
  500. static UClass* pClassPointer;
  501.  
  502. public:
  503. static UClass* StaticClass()
  504. {
  505. if ( ! pClassPointer )
  506. pClassPointer = UObject::FindClass ( "Class Core.Function" );
  507.  
  508. return pClassPointer;
  509. };
  510. };
  511.  
  512. // (0x0094 - 0x00E8)
  513. class UState : public UStruct
  514. {
  515. public:
  516. unsigned char UnknownData00[ 0x54 ]; // 0x0094 (0x54)
  517.  
  518. private:
  519. static UClass* pClassPointer;
  520.  
  521. public:
  522. static UClass* StaticClass()
  523. {
  524. if ( ! pClassPointer )
  525. pClassPointer = UObject::FindClass ( "Class Core.State" );
  526.  
  527. return pClassPointer;
  528. };
  529. };
  530.  
  531. // (0x00E8 - 0x01F8)
  532. class UClass : public UState
  533. {
  534. public:
  535. unsigned char UnknownData00[ 0x110 ]; // 0x00E8 (0x110)
  536.  
  537. private:
  538. static UClass* pClassPointer;
  539.  
  540. public:
  541. static UClass* StaticClass()
  542. {
  543. if ( ! pClassPointer )
  544. pClassPointer = UObject::FindClass ( "Class Core.Class" );
  545.  
  546. return pClassPointer;
  547. };
  548. };
  549.  
  550. // (0x0048 - 0x0088)
  551. class UProperty : public UField
  552. {
  553. public:
  554. unsigned long ArrayDim; // 0x0048 (0x04)
  555. unsigned long ElementSize; // 0x004C (0x04)
  556. FQWord PropertyFlags; // 0x0050 (0x08)
  557. unsigned char UnknownData00[ 0x10 ]; // 0x0058 (0x10)
  558. unsigned long Offset; // 0x0068 (0x04)
  559. unsigned char UnknownData01[ 0x1C ]; // 0x006C (0x1C)
  560.  
  561. private:
  562. static UClass* pClassPointer;
  563.  
  564. public:
  565. static UClass* StaticClass()
  566. {
  567. if ( ! pClassPointer )
  568. pClassPointer = UObject::FindClass ( "Class Core.Property" );
  569.  
  570. return pClassPointer;
  571. };
  572. };
  573.  
  574. // (0x0088 - 0x008C)
  575. class UByteProperty : public UProperty
  576. {
  577. public:
  578. class UEnum* Enum; // 0x0088 (0x04)
  579.  
  580. private:
  581. static UClass* pClassPointer;
  582.  
  583. public:
  584. static UClass* StaticClass()
  585. {
  586. if ( ! pClassPointer )
  587. pClassPointer = UObject::FindClass ( "Class Core.ByteProperty" );
  588.  
  589. return pClassPointer;
  590. };
  591. };
  592.  
  593. // (0x0088 - 0x0088)
  594. class UIntProperty : public UProperty
  595. {
  596. public:
  597.  
  598. private:
  599. static UClass* pClassPointer;
  600.  
  601. public:
  602. static UClass* StaticClass()
  603. {
  604. if ( ! pClassPointer )
  605. pClassPointer = UObject::FindClass ( "Class Core.IntProperty" );
  606.  
  607. return pClassPointer;
  608. };
  609. };
  610.  
  611. // (0x0088 - 0x0088)
  612. class UFloatProperty : public UProperty
  613. {
  614. public:
  615.  
  616. private:
  617. static UClass* pClassPointer;
  618.  
  619. public:
  620. static UClass* StaticClass()
  621. {
  622. if ( ! pClassPointer )
  623. pClassPointer = UObject::FindClass ( "Class Core.FloatProperty" );
  624.  
  625. return pClassPointer;
  626. };
  627. };
  628.  
  629. // (0x0088 - 0x008C)
  630. class UBoolProperty : public UProperty
  631. {
  632. public:
  633. unsigned long BitMask; // 0x0088 (0x04)
  634.  
  635. private:
  636. static UClass* pClassPointer;
  637.  
  638. public:
  639. static UClass* StaticClass()
  640. {
  641. if ( ! pClassPointer )
  642. pClassPointer = UObject::FindClass ( "Class Core.BoolProperty" );
  643.  
  644. return pClassPointer;
  645. };
  646. };
  647.  
  648. // (0x0088 - 0x0088)
  649. class UStrProperty : public UProperty
  650. {
  651. public:
  652.  
  653. private:
  654. static UClass* pClassPointer;
  655.  
  656. public:
  657. static UClass* StaticClass()
  658. {
  659. if ( ! pClassPointer )
  660. pClassPointer = UObject::FindClass ( "Class Core.StrProperty" );
  661.  
  662. return pClassPointer;
  663. };
  664. };
  665.  
  666. // (0x0088 - 0x0088)
  667. class UNameProperty : public UProperty
  668. {
  669. public:
  670.  
  671. private:
  672. static UClass* pClassPointer;
  673.  
  674. public:
  675. static UClass* StaticClass()
  676. {
  677. if ( ! pClassPointer )
  678. pClassPointer = UObject::FindClass ( "Class Core.NameProperty" );
  679.  
  680. return pClassPointer;
  681. };
  682. };
  683.  
  684. // (0x0088 - 0x0090)
  685. class UDelegateProperty : public UProperty
  686. {
  687. public:
  688. unsigned char UnknownData00[ 0x8 ]; // 0x0088 (0x08)
  689.  
  690. private:
  691. static UClass* pClassPointer;
  692.  
  693. public:
  694. static UClass* StaticClass()
  695. {
  696. if ( ! pClassPointer )
  697. pClassPointer = UObject::FindClass ( "Class Core.DelegateProperty" );
  698.  
  699. return pClassPointer;
  700. };
  701. };
  702.  
  703. // (0x0088 - 0x008C)
  704. class UObjectProperty : public UProperty
  705. {
  706. public:
  707. class UClass* PropertyClass; // 0x0088 (0x04)
  708.  
  709. private:
  710. static UClass* pClassPointer;
  711.  
  712. public:
  713. static UClass* StaticClass()
  714. {
  715. if ( ! pClassPointer )
  716. pClassPointer = UObject::FindClass ( "Class Core.ObjectProperty" );
  717.  
  718. return pClassPointer;
  719. };
  720. };
  721.  
  722. // (0x008C - 0x0090)
  723. class UClassProperty : public UObjectProperty
  724. {
  725. public:
  726. class UClass* MetaClass; // 0x008C (0x04)
  727.  
  728. private:
  729. static UClass* pClassPointer;
  730.  
  731. public:
  732. static UClass* StaticClass()
  733. {
  734. if ( ! pClassPointer )
  735. pClassPointer = UObject::FindClass ( "Class Core.ClassProperty" );
  736.  
  737. return pClassPointer;
  738. };
  739. };
  740.  
  741. // (0x0088 - 0x008C)
  742. class UInterfaceProperty : public UProperty
  743. {
  744. public:
  745. class UClass* InterfaceClass; // 0x0088 (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.InterfaceProperty" );
  755.  
  756. return pClassPointer;
  757. };
  758. };
  759.  
  760. // (0x0088 - 0x008C)
  761. class UStructProperty : public UProperty
  762. {
  763. public:
  764. class UStruct* Struct; // 0x0088 (0x04)
  765.  
  766. private:
  767. static UClass* pClassPointer;
  768.  
  769. public:
  770. static UClass* StaticClass()
  771. {
  772. if ( ! pClassPointer )
  773. pClassPointer = UObject::FindClass ( "Class Core.StructProperty" );
  774.  
  775. return pClassPointer;
  776. };
  777. };
  778.  
  779. // (0x0088 - 0x008C)
  780. class UArrayProperty : public UProperty
  781. {
  782. public:
  783. class UProperty* Inner; // 0x0088 (0x04)
  784.  
  785. private:
  786. static UClass* pClassPointer;
  787.  
  788. public:
  789. static UClass* StaticClass()
  790. {
  791. if ( ! pClassPointer )
  792. pClassPointer = UObject::FindClass ( "Class Core.ArrayProperty" );
  793.  
  794. return pClassPointer;
  795. };
  796. };
  797.  
  798. // (0x0088 - 0x0090)
  799. class UMapProperty : public UProperty
  800. {
  801. public:
  802. class UProperty* Key; // 0x0088 (0x04)
  803. class UProperty* Value; // 0x008C (0x04)
  804.  
  805. private:
  806. static UClass* pClassPointer;
  807.  
  808. public:
  809. static UClass* StaticClass()
  810. {
  811. if ( ! pClassPointer )
  812. pClassPointer = UObject::FindClass ( "Class Core.MapProperty" );
  813.  
  814. return pClassPointer;
  815. };
  816. };
  817.  
  818. /*
  819. # ========================================================================================= #
  820. # Init Core Classes Pointers
  821. # ========================================================================================= #
  822. */
  823.  
  824. UClass* UObject ::pClassPointer = NULL;
  825. UClass* UField ::pClassPointer = NULL;
  826. UClass* UEnum ::pClassPointer = NULL;
  827. UClass* UConst ::pClassPointer = NULL;
  828. UClass* UStruct ::pClassPointer = NULL;
  829. UClass* UScriptStruct ::pClassPointer = NULL;
  830. UClass* UFunction ::pClassPointer = NULL;
  831. UClass* UState ::pClassPointer = NULL;
  832. UClass* UClass ::pClassPointer = NULL;
  833. UClass* UProperty ::pClassPointer = NULL;
  834. UClass* UByteProperty ::pClassPointer = NULL;
  835. UClass* UIntProperty ::pClassPointer = NULL;
  836. UClass* UFloatProperty ::pClassPointer = NULL;
  837. UClass* UBoolProperty ::pClassPointer = NULL;
  838. UClass* UStrProperty ::pClassPointer = NULL;
  839. UClass* UNameProperty ::pClassPointer = NULL;
  840. UClass* UDelegateProperty ::pClassPointer = NULL;
  841. UClass* UObjectProperty ::pClassPointer = NULL;
  842. UClass* UClassProperty ::pClassPointer = NULL;
  843. UClass* UInterfaceProperty ::pClassPointer = NULL;
  844. UClass* UStructProperty ::pClassPointer = NULL;
  845. UClass* UArrayProperty ::pClassPointer = NULL;
  846. UClass* UMapProperty ::pClassPointer = NULL;
  847.  
  848. /*
  849. # ========================================================================================= #
  850. #
  851. # ========================================================================================= #
  852. */
  853.  
  854. #ifdef _MSC_VER
  855. #pragma pack ( pop )
  856. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement