Advertisement
dcomicboy

All Classes

Jul 6th, 2012
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.05 KB | None | 0 0
  1. /*******************************************************/
  2. /* Classes */
  3. /*******************************************************/
  4.  
  5. #include "Message.h"
  6.  
  7. class cPlayerMgr; class cLTDrawPrim;
  8. class cClientWeapon; class cClientWeaponMgr;
  9. class PlayerInfo; class CILTDrawPrim;
  10. struct CharacterFX; class cLTCientShellBase;
  11. class cGameClientShell; class cClientWeapon;
  12. class cClientInfoMgr; class c_player;
  13. class PointerTo; class _Object;
  14. class CILTDrawPrim; class LTObjectInfo;
  15. class cLTDrawPrim; class cLTBase;
  16. class cLTModel; struct __Object;
  17.  
  18. cLTModel* pLTModel;
  19. cLTBase* pLTBase;
  20. cLTDrawPrim* pLTDrawPrim;
  21. cGameClientShell* pGameClientShell;
  22. cClientInfoMgr* pClientInfoMgr;
  23. cPlayerMgr* pPlayerManager;
  24. CModelLT* g_ModelLT;
  25.  
  26. #define M_PI 3.14159265358979323846f
  27. #define DegToRad(degree) ((degree) * (3.141592654f / 180.0f))
  28. #define PITCH 0
  29. #define YAW 1
  30. #define ROLL 2
  31. #define PACKBOOL(name) union {bool name; unsigned int padding_##name;}
  32. int CanUse3DNow = -1;
  33.  
  34. struct __Object
  35. {
  36. public:
  37. DWORD Unknown; //0x0000
  38. float xBound1; //0x0004
  39. float yBound1; //0x0008
  40. float zBound1; //0x000C
  41. float xBound2; //0x0010
  42. float yBound2; //0x0014
  43. float zBound2; //0x0018
  44. char unknown28[172]; //0x001C
  45. LTVector Pos; //0x00C8
  46. LTRotation Rot; //0x00D4
  47. char unknown228[180]; //0x00E4
  48. LTVector Vel; //0x0198
  49. CHAR Pad[4];
  50. D3DXVECTOR3 origin;
  51. };
  52.  
  53. cLTModel* GetLTModel()
  54. {
  55. return pLTModel;
  56. }
  57.  
  58. cLTBase* GetLTBase()
  59. {
  60. return pLTBase;
  61. }
  62.  
  63. cLTDrawPrim* GetLTDrawPrim()
  64. {
  65. return pLTDrawPrim;
  66. }
  67.  
  68. bool ValidPointer(void* p)
  69. {
  70. return !IsBadReadPtr(p, 4) && p;
  71. }
  72.  
  73. class cCharacterFX
  74. {
  75. public:
  76. char unk1[16];
  77. int* Object; //0x10
  78. char unk2[44];
  79. int IsPlayer; //0x40
  80. char unk3[40];
  81. unsigned char Index; //0x6C
  82. char unknown112[8]; //0x0070
  83. float fStartPitch; //0x0078
  84. float fStartYaw; //0x007C
  85. char unknown128[1224]; //0x0080
  86. BYTE unk1287; //0x0548
  87. bool bIsDead; //0x0549
  88. bool bSpawnSheild; //0x054A
  89. BYTE unk5563; //0x054B
  90. char unknown1356[12]; //0x054C
  91. int* hHitbox; //0x0558
  92. char unknown1372[96]; //0x055C
  93. WORD wUnk; //0x05BC
  94. WORD nHealth; //0x05BE
  95. WORD nArmor; //0x05C0
  96. };
  97.  
  98. class cSFXList
  99. {
  100. public:
  101. unsigned long unk0;
  102. unsigned long* List;
  103. unsigned long unk1;
  104. int Num;
  105. };
  106.  
  107. class cSFXMgr
  108. {
  109. public:
  110. cSFXList SFXList[0x3D];
  111. };
  112.  
  113. class cGameClientShell
  114. {
  115. public:
  116. virtual void Function0();
  117. virtual void Function1();
  118. virtual void Function2();
  119. virtual void Function3();
  120. virtual void Function4();
  121. virtual void Function5();
  122. virtual void Function6();
  123. virtual void Function7();
  124. virtual void Function8();
  125. virtual void Function9();
  126. virtual void Function10();
  127. virtual void Function11();
  128. virtual void Function12();
  129. virtual void Function13();
  130. virtual void Function14();
  131. virtual void Function15();
  132. virtual void Function16();
  133. virtual void Function17();
  134. virtual void Function18();
  135. virtual void Function19();
  136. virtual void Function20();
  137. virtual void Function21();
  138. virtual void Function22();
  139. virtual void Function23();
  140. virtual void Function24();
  141. virtual void Function25();
  142. virtual void Function26();
  143. virtual void Function27();
  144. virtual void Function28();
  145. virtual void Function29();
  146. virtual void Function30();
  147. virtual void Function31();
  148. virtual void Function32();
  149. virtual void Function33();
  150. virtual void Function34();
  151. virtual void Function35();
  152. virtual void Function36();
  153. virtual void Function37();
  154. virtual void Function38();
  155. virtual void Function39();
  156. virtual void Function40();
  157. virtual void Function41();
  158. virtual void Function42();
  159. virtual void Function43();
  160. virtual void Function44();
  161. virtual void Function45();
  162. virtual DWORD GetClientInfoMgr();
  163. virtual DWORD GetInterfaceManager();
  164. virtual DWORD GetPlayerManager();
  165. virtual void Function49();
  166. virtual void Function50();
  167. virtual void Function51();
  168. virtual void Function52();
  169. virtual void Function53();
  170. virtual void Function54();
  171. virtual void Function55();
  172. virtual void Function56();
  173. virtual cSFXMgr* GetSFXMgr();
  174. };
  175.  
  176. class PointerTo
  177. {
  178. public:
  179. CHAR pad[4];
  180. PlayerInfo *first;
  181. __int32 index;
  182. };
  183.  
  184. class _Object
  185. {
  186. public:
  187. CHAR Pad[4];
  188. D3DXVECTOR3 origin;
  189. };
  190.  
  191. class cClientInfo
  192. {
  193. public:
  194. __int32 pPing; //0x0000
  195. __int32 Index; //0x0004
  196. char _0x0008[8];
  197. char pName[12]; //0x0010
  198. char _0x001C[12];
  199. int* Object; //0x0028
  200. __int32 pKills; //0x002C
  201. __int32 pDeaths; //0x0030
  202. char _0x0034[52];
  203. __int32 pFTMission; //0x0068
  204. char _0x006C[4];
  205. __int32 pTeam; //0x0070
  206. char _0x0074[4];
  207. BYTE pIsDead; //0x0078
  208. char _0x0079[319];
  209. __int32 pRank; //0x01B8
  210. char _0x01BC[80];
  211. __int32 pFTScore; //0x020C
  212. BYTE pFTSpawn; //0x0210
  213. char _0x0211[3];
  214. __int32 pFTLongestLife; //0x0214
  215. __int32 pFTKill; //0x0218
  216. char _0x021C[84];
  217. cClientInfo* PlayerNext; //0x0270
  218. };//Size=0x0274
  219.  
  220. class CILTDrawPrim
  221. {
  222. public:
  223. virtual HRESULT Project(float x, float y, float z, D3DXVECTOR3 *pProjectOut, D3DXVECTOR3 *pTransformOut);
  224. char unknown[17232]; //0x0004
  225. D3DXMATRIX World; //0x4354
  226. D3DXMATRIX View; //0x4394
  227. D3DXMATRIX Projection; //0x43D4
  228. };
  229.  
  230. class cWeaponInfo
  231. {
  232. public:
  233. char unknown0[12]; //0x0000
  234. DWORD dwClientWeaponType; //0x000C
  235. char unknown16[16]; //0x0010
  236. DWORD dwAlt_InstDamage; //0x0020
  237. DWORD dwInstDamage; //0x0024
  238. DWORD UNK; //0x0028
  239. char unknown44[104]; //0x002C
  240. DWORD dwFireSnd; //0x0094
  241. char unknown152[108]; //0x0098
  242. float fFireDelay1; //0x0104
  243. float ffiredelay1; //0x0108
  244. DWORD dwMaxAmmo3; //0x010C
  245. DWORD dwMaxAmmo2; //0x0110
  246. char unknown276[276]; //0x0114
  247. DWORD dwCrossHairA; //0x0228
  248. DWORD dwCrossHairR; //0x022C
  249. DWORD dwCrossHairG; //0x0230
  250. DWORD dwCrossHairB; //0x0234
  251. BYTE TripleShotMode; //0x0238
  252. char unknown569[3]; //0x0239
  253. DWORD dwTripleShotRoundNum; //0x023C
  254. float fDamageRFacter; //0x0240
  255. char unknown580[28]; //0x0244
  256. DWORD dwInfiAmmo2;
  257. DWORD dwInfiniteAmmo; //0x0264
  258. DWORD dwHideWhenEmpty; //0x0268
  259. DWORD dwIsAmmo; //0x026C
  260. char unknown624[4]; //0x0270
  261. DWORD dwShotsPerClip; //0x0274
  262. char unknown632[52]; //0x0278
  263. float fZoomTime; //0x02AC
  264. DWORD dwMinPerturb; //0x02B0
  265. DWORD dwMaxPerturb; //0x02B4
  266. float fDuckPerturb; //0x02B8
  267. float fMoveDuckPerturb; //0x02BC
  268. DWORD dwZoomedMinPerturb; //0x02C0
  269. DWORD dwZoomedMaxPerturb; //0x02C4
  270. DWORD dwRange; //0x02C8
  271. char unknown716[12]; //0x02CC
  272. DWORD VectorsPerRound; //0x02D8
  273. char unknown732[40]; //0x02DC
  274. float fPerturbIncSpeed; //0x0304
  275. float fPerturbDecSpeed; //0x0308
  276. char unknown780[4]; //0x030C
  277. float fZoomedPerturbIncSpeed; //0x0310
  278. float fZoomedPerturbDecSpeed; //0x0314
  279. char unknown792[4]; //0x0318
  280. float fBaseCamRecoilPitch; //0x031C
  281. float fBaseCamRecoilAccelPitch; //0x0320
  282. char unknown804[36]; //0x0324
  283. float fTripleShotMaxCamRecoilPitch; //0x0348
  284. float fTripleShotBaseCamRecoilPitch; //0x034C
  285. char unknown848[8]; //0x0350
  286. DWORD dwTripleShotMinPerturb; //0x0358
  287. DWORD dwTripleShotMaxPerturb; //0x035C
  288. float fTripleShotPerturbIncSpeed; //0x0360
  289. float fTripleShotPerturbDecSpeed; //0x0364
  290. char unknown872[112]; //0x0368
  291. DWORD dwFireRate; //0x03D8
  292. DWORD dwMoveSpeed; //0x03DC
  293. DWORD ID03B39CC0; //0x03E0
  294. char unknown996[32]; //0x03E4
  295. BYTE DisableCrosshair; //0x0404
  296. char unknown1029[27]; //0x0405
  297. float fCameraSwayXFreq; //0x0420
  298. float fCameraSwayYFreq; //0x0424
  299. char unknown1064[12]; //0x0428
  300. DWORD dwTargetCrosshairFlag; //0x0434
  301. DWORD dwEffectRange; //0x0438
  302. char unknown1084[192]; //0x043C
  303. DWORD dwFireDelay; //0x04FC
  304. };
  305.  
  306. class cWeaponMgr
  307. {
  308. public:
  309. char unknown0[5564];
  310. cWeaponInfo** Weapons; //15BC
  311. __int32 WeaponCount; //15C0
  312. };
  313.  
  314. class cClientWeaponMgr
  315. {
  316. public:
  317.  
  318. cClientWeapon** WeaponList; //0000
  319. __int32 MaxWeapons; //0004
  320. __int32 WeapIndex; //0008
  321. cClientWeapon* CurrentWeapon; //000C
  322. BYTE WeaponsEnabled; //0010
  323. BYTE WeaponsVisible; //0011
  324. char unknown16[20];
  325. __int32 nCurrentWeaponID; //0x0024
  326. };
  327.  
  328. class cPlayerMgr
  329. {
  330. public:
  331. char pad[24];
  332. cClientWeaponMgr* WeaponMgr; //0018
  333. char unknown0[48];
  334. float Pitch; //0048
  335. float Yaw; //004C
  336. float Roll;
  337. char unknown3[220];
  338. int* CameraObject; //012C
  339. __inline cClientWeapon* GetCurrentWeapon()
  340. {
  341. if(WeaponMgr && WeaponMgr->CurrentWeapon)
  342. return WeaponMgr->CurrentWeapon;
  343.  
  344. return NULL;
  345. }
  346. };
  347.  
  348. class PlayerInfo
  349. {
  350. public:
  351. __int32 Unknown0;
  352. __int32 index;
  353. __int32 Unknown1;
  354. __int32 Unknown2;
  355. CHAR Name[12];
  356. CHAR unknown3[12];
  357. _Object *obj;
  358. CHAR unknown4[68];
  359. __int32 Team;
  360. __int32 unknown5;
  361. __int8 IsDead;
  362. };
  363.  
  364. class pPlayerInfo
  365. {
  366. public:
  367. __int32 Unknown0;
  368. __int32 index;
  369. __int32 Unknown1;
  370. __int32 Unknown2;
  371. CHAR Name[12];
  372. CHAR unknown3[12];
  373. __Object* Object;
  374. CHAR unknown4[68];
  375. __int32 Team;
  376. __int32 unknown5;
  377. __int8 IsDead;
  378. };
  379.  
  380. class cLTClientShellBase
  381. {
  382. public:
  383. cLTBase* ILTBase; //0x0000
  384. char unknown4[16];
  385. cLTDrawPrim** ILTDrawPrim; //0x0014
  386. char unknown24[4];
  387. cLTModel** ILTModel; //0x001C
  388. char unknown32[136];
  389. cGameClientShell* ILTGameClientShell; //0x00A8
  390. };
  391.  
  392. struct CharacterFX
  393. {
  394. char unknown0[16]; //0x0000
  395. union
  396. {
  397. __Object* ObjInfo; //0x0010 (HOBJECT)
  398. HOBJECT hObj; //0x0010
  399. };
  400. char unknown20[40]; //0x0014
  401. union
  402. {
  403. __Object* ServObjInfo; //0x003C
  404. HOBJECT hServObj; //0x003C
  405. };
  406. PACKBOOL(bIsPlayer); //0x0040
  407. char unknown96[12]; //0x0060
  408. unsigned int nID; //0x006C
  409. char unknown112[8]; //0x0070
  410. float fStartPitch; //0x0078
  411. float fStartYaw; //0x007C
  412. float fPitchVel; //0x0080
  413. float fYawVel; //0x0084
  414. float fPitchAccel; //0x0088
  415. float fYawAccel; //0x008C
  416. char unknown144[1192]; //0x0090
  417. DWORD nSpawnShield; //0x0538
  418. char unknown1340[12]; //0x053C
  419. HOBJECT hHitbox; //0x0548
  420. char unknown1356[98]; //0x054C
  421. short nHealth; //0x05AE
  422. short nArmor; //0x05B0
  423. char unknown1458[62]; //0x05B2
  424. float fPitch; //0x05F0
  425. float fYaw; //0x05F4
  426. char unknown1528[440]; //0x05F8
  427. PACKBOOL(bIsShooting); //0x07B0
  428. }; //Size is at least 0x7E0
  429. //0x00F8 = model
  430.  
  431.  
  432. D3DXMATRIX* MatrixMultiply(D3DXMATRIX* pOut, const D3DXMATRIX* pM1, const D3DXMATRIX* pM2)
  433. {
  434. for (int i = 0; i < 4; ++i)
  435. {
  436. for (int j = 0; j < 4; ++j)
  437. {
  438. (*pOut)(i, j) = 0.0f;
  439. for (int k = 0; k < 4; ++k)
  440. (*pOut)(i, j) += (*pM1)(i, k) * (*pM2)(k, j);
  441. }
  442. }
  443. return pOut;
  444. }
  445.  
  446. __declspec(naked) D3DXVECTOR3* _3DNowVec3TransformCoord(D3DXVECTOR3* pOut, const D3DXVECTOR3* pV, const D3DXMATRIX* pM)
  447. {
  448. __asm
  449. {
  450. push ebp
  451. mov ebp, esp
  452. femms
  453. mov eax,dword ptr [ebp+0Ch]
  454. mov edx,dword ptr [ebp+10h]
  455. mov ecx,dword ptr [ebp+8]
  456. movq mm0,mmword ptr [eax]
  457. movq mm1,mm0
  458. punpckldq mm0,mm0
  459. punpckhdq mm1,mm1
  460. movd mm2,dword ptr [eax+8]
  461. punpckldq mm2,mm2
  462. movq mm3,mm0
  463. pfmul mm0,mmword ptr [edx]
  464. movq mm4,mm1
  465. pfmul mm1,mmword ptr [edx+10h]
  466. movq mm5,mm2
  467. pfmul mm2,mmword ptr [edx+20h]
  468. pfadd mm0,mmword ptr [edx+30h]
  469. pfmul mm3,mmword ptr [edx+8]
  470. pfadd mm1,mm2
  471. pfmul mm4,mmword ptr [edx+18h]
  472. pfmul mm5,mmword ptr [edx+28h]
  473. pfadd mm3,mmword ptr [edx+38h]
  474. pfadd mm0,mm1
  475. pfadd mm4,mm5
  476. pfadd mm3,mm4
  477. movq mm5,mm3
  478. punpckhdq mm5,mm5
  479. pfrcp mm4,mm5
  480. pfrcpit1 mm5,mm4
  481. pfrcpit2 mm5,mm4
  482. pfmul mm0,mm5
  483. pfmul mm3,mm5
  484. movq mmword ptr [ecx],mm0
  485. movd dword ptr [ecx+8],mm3
  486. femms
  487. mov eax,dword ptr [ebp+8]
  488. pop ebp
  489. ret
  490. }
  491. }
  492.  
  493. D3DXVECTOR3* Vec3TransformCoord(D3DXVECTOR3* pOut, const D3DXVECTOR3* pV, const D3DXMATRIX* pM)
  494. {
  495. if (CanUse3DNow == -1)
  496. CanUse3DNow = IsProcessorFeaturePresent(PF_3DNOW_INSTRUCTIONS_AVAILABLE);
  497.  
  498. if (!CanUse3DNow)
  499. {
  500. pOut->x = (pV->x * pM->_11) + (pV->y * pM->_21) + (pV->z * pM->_31) + pM->_41;
  501. pOut->y = (pV->x * pM->_12) + (pV->y * pM->_22) + (pV->z * pM->_32) + pM->_42;
  502. pOut->z = (pV->x * pM->_13) + (pV->y * pM->_23) + (pV->z * pM->_33) + pM->_43;
  503. (*pOut) /= (pV->x * pM->_14) + (pV->y * pM->_24) + (pV->z * pM->_34) + pM->_44;
  504. return pOut;
  505. } else {
  506. return _3DNowVec3TransformCoord(pOut, pV, pM);
  507. }
  508. }
  509.  
  510. D3DXVECTOR3* Vec3Project(D3DXVECTOR3* pOut, const D3DXVECTOR3* pV, const D3DVIEWPORT9* pViewport, const D3DXMATRIX* pProjection, const D3DXMATRIX* pView, const D3DXMATRIX* pWorld)
  511. {
  512. D3DXMATRIX m1, m2;
  513. D3DXVECTOR3 vec;
  514.  
  515. MatrixMultiply(&m1, pWorld, pView);
  516. MatrixMultiply(&m2, &m1, pProjection);
  517. Vec3TransformCoord(&vec, pV, &m2);
  518. pOut->x = pViewport->X + (1.0f + vec.x) * pViewport->Width / 2.0f;
  519. pOut->y = pViewport->Y + (1.0f - vec.y) * pViewport->Height / 2.0f;
  520. pOut->z = pViewport->MinZ + vec.z * (pViewport->MaxZ - pViewport->MinZ);
  521. return pOut;
  522. }
  523.  
  524. typedef PlayerInfo *(__thiscall *lpGetPlayerByIndex)(unsigned long ulThis, INT index, INT unk);
  525. lpGetPlayerByIndex GetPlayerByIndex;
  526.  
  527. typedef PlayerInfo *(__thiscall *lpGetLocalPlayer)(unsigned long ulThis);
  528. lpGetLocalPlayer GetLocalPlayer;
  529.  
  530.  
  531.  
  532. typedef cClientInfo *(__thiscall *lpGetPlayerByIndex2)(unsigned long ulThis, INT index, INT unk);
  533. lpGetPlayerByIndex2 GetPlayerByIndex2;
  534.  
  535. typedef cClientInfo *(__thiscall *lpGetLocalPlayer2)(unsigned long ulThis);
  536. lpGetLocalPlayer2 GetLocalPlayer2;
  537.  
  538.  
  539.  
  540. typedef pPlayerInfo *(__thiscall *lpGetPlayerByIndex3)(unsigned long ulThis, INT index, INT unk);
  541. lpGetPlayerByIndex3 GetPlayerByIndex3;
  542.  
  543. typedef pPlayerInfo *(__thiscall *lpGetLocalPlayer3)(unsigned long ulThis);
  544. lpGetLocalPlayer3 GetLocalPlayer3;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement