Advertisement
Guest User

GameDefines.h

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