TFreeControl.h 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. // _TFreeControl_H_ - [2020-06-22 11:41:46]
  2. #ifndef _TFreeControl_H_
  3. #define _TFreeControl_H_
  4. #include "ACT.h"
  5. #include "global_func.h"
  6. enum EFreePropType {
  7. EFreePropType_0,
  8. EFreePropType_1,
  9. EFreePropType_2,
  10. EFreePropType_3,
  11. EFreePropType_4,
  12. EFreePropType_5,
  13. };
  14. struct TAnim {
  15. int m_iTick_0;
  16. int m_iAnimID_4;
  17. int m_iRot_8;
  18. };
  19. // sizeof(TDest) == 0x1C
  20. struct TFreeMoveInfo {
  21. int m_iTick_0;
  22. TPoint m_tDestPoint_4;
  23. int m_iFace_C;
  24. int m_iUrgency_10;
  25. TPoint m_tMoveInfluence_14;
  26. };
  27. // sizeof = 0x548
  28. struct TFreePlayer
  29. {
  30. int filed_0;
  31. TPoint m_tPoint_4;
  32. int m_iHoldPosTime_C;
  33. int m_iRot_10;
  34. bool m_iTeamMoveInfluence_14;
  35. TPoint m_tPoint_18;
  36. int m_iMoveResponseTime_20;
  37. int m_iKickResponseTime_24;
  38. bool m_bStatic_28;
  39. int m_iNodeTDestSetLoopIndex_2C;
  40. TFreeMoveInfo m_tPlayerDesk_30[32];
  41. int m_iNodeAnimSetLoopIndex_3B0;
  42. TAnim m_tAnim_3B4[32];
  43. int m_iAction_534;
  44. int m_iActionPassTarget_538;
  45. int m_iActionControlCount_53C;
  46. int m_iActionControlRot_540;
  47. float m_fActionControlKickAhead_544;
  48. };
  49. struct TMoveInfluence {
  50. TPoint m_tMoveInfluencePoint_0;
  51. int m_iMoveInfluenceDelayMin_8;
  52. int m_iMoveInfluenceDelayMax_C;
  53. };
  54. struct TFreeProp {
  55. TPoint3D m_tPoint3D_0;
  56. EFreePropType m_iType_C;
  57. int m_iRot_10;
  58. };
  59. //0x7634
  60. struct TFreeGoal {
  61. int m_iVersion_0;
  62. float m_f_4;
  63. int m_iWeather_8;
  64. int m_iMaxPhaseCount_C;
  65. bool m_bIndirect_10;
  66. int m_iTeamPlayerIndex_14[2]; // 14 遍历两只球队成员node对象时用到的计数器跳出循环时的值
  67. // 18
  68. TFreePlayer m_tTeamPlayerInfo_1C[2][11]; // 0x3A18 * 2; 0x548 * 0xB
  69. TPoint3D m_tBallPos_744C;
  70. int m_iUserPlayer_7458;
  71. int m_iKickPlayer_745C;
  72. int m_iAnimID_7460;
  73. int m_iKickRot_7464;
  74. int m_iShotAnimID_7468;
  75. int m_iShotAnimPlayer_746C;
  76. float m_fShotAnimDistance_7470;
  77. int m_iTEAMMoveResponseTime_7474;
  78. int m_iTEAMKickResponseTime_7478;
  79. int m_iCPUPlayerCloseDownCount_747C;
  80. float m_fCPUCloseDownDist_7480;
  81. int m_iCPUGKRating_7484;
  82. float m_fCPUGKSaveAlwaysDistance_7488;
  83. int m_iCPUGKSaveResponseTime_748C;
  84. float m_fCPUGKSaveSpeed_7490;
  85. float m_fCPUGKSaveDistance_7494;
  86. int m_iCPUGKPosResponseTime_7498;
  87. int m_iCPUKickResponseTime_749C;
  88. int m_iCPUMoveResponseTime_74A0;
  89. TMoveInfluence m_tMoveInfluence_74A4[2];
  90. float m_fTEAMPassForceShotDist_74C4;
  91. float m_fTEAMPassForceShotSpace_74C8;
  92. int m_iShootBias_74CC;
  93. int m_iShootScale_74D0;
  94. int m_iPassBias_74D4;
  95. int m_iPassScale_74D8;
  96. int m_iControlWhenShootBias_74DC;
  97. int m_iControlWhenShootScale_74E0;
  98. int m_iControlWhenPassBias_74E4;
  99. int m_iControlWhenPassScale_74E8;
  100. int m_iControlRepeatReduce_74EC;
  101. int m_iPropCount_74F0;
  102. TFreeProp m_tFreeProp_74F4[16]; // 数组
  103. };
  104. //sizeof:0x410
  105. class TFreeControl {
  106. public:
  107. TFreeControl& operator=(TFreeControl const&); //001D5E10
  108. CPlayer* m_pPlayer_0;
  109. TKickSetup field_4;
  110. TPoint PointArr_1C[120];
  111. int cBuff_3DC[9];
  112. int field_400;
  113. int field_404;
  114. int field_408;
  115. int field_40C;
  116. };
  117. struct TFreeInfo_0
  118. {
  119. bool b_0;
  120. bool b_1;
  121. bool b_2;
  122. bool b_3;
  123. bool uc_4;
  124. bool uc_5;
  125. uchar uc_6;
  126. uchar unuse_7;
  127. bool b_8;
  128. bool b_9;
  129. bool b_A;
  130. bool b_B;
  131. bool b_C;
  132. uchar uc_D;
  133. uchar uc_E;
  134. uchar uc_F;
  135. int field_10;
  136. int field_14[1536];
  137. int field_1814;
  138. TFreeGoal *pFREE_tGoal_1818; //此处是FREE_tGoal的指针
  139. int field_181C;
  140. int field_1820;
  141. int field_1824;
  142. uint ugamestatus_1828; //这个变量应该表示游戏的状态
  143. int field_182C;
  144. int field_1830;
  145. int field_1834;
  146. int field_1838;
  147. uchar field_183C[4];
  148. int field_1840;
  149. int field_1844;
  150. TPoint field_1848;
  151. int field_1850;
  152. int field_1854;
  153. int field_1858;
  154. short field_185C;
  155. char field_185E;
  156. int field_1860;
  157. int field_1864;
  158. };
  159. struct TFreeInfo_1C9C{
  160. char field_1C9C;
  161. int field_1CA0;
  162. char field_1CA4;
  163. int field_1CA8;
  164. int field_1CAC;
  165. char field_1CB0;//001D57E6 LDRB R0, [R5,R0] 001D41C2 STRH R4, [R6,R1],可能有两种数据类型
  166. char field_1CB1;
  167. TPoint3D m_pt3D_1CB4;
  168. TPoint3D m_pt3D_1CC0;
  169. int field_1CCC;
  170. int field_1CD0;
  171. int field_1CD4;
  172. int field_1CD8;
  173. int field_1CDC;
  174. int field_1CE0;
  175. int field_1CE4;
  176. int field_1CE8;
  177. int field_1CEC;
  178. int field_1CF0;
  179. uchar field_1CF4;
  180. uchar field_1CF5;
  181. uchar field_1CF6;
  182. uchar field_1CF7;
  183. int m_iCPUPlayerCloseDownCount_1CF8;
  184. float m_fCPUCloseDownDist_1CFC;
  185. int m_iCPUGKRating_1D00;
  186. float m_fCPUGKSaveAlwaysDistance_1D04;
  187. int m_iCPUGKSaveResponseTime_1D08;
  188. float m_fCPUGKSaveSpeed_1D0C;
  189. float m_fCPUGKSaveDistance_1D10;
  190. int m_iCPUGKPosResponseTime_1D14;
  191. int m_iCPUKickResponseTime_1D18;
  192. int m_iCPUMoveResponseTime_1D1C;
  193. };
  194. /*
  195. 001D59AC TFreeInfo::operator=(TFreeInfo const&);
  196. */
  197. //sizeof:0x1D20
  198. class TFreeInfo {
  199. public:
  200. TFreeInfo& operator=(TFreeInfo const&); //001D59AC
  201. TFreeInfo_0 filed_0;
  202. int field_1868;
  203. int field_186C;
  204. TPoint field_1870;
  205. int field_1878;
  206. int field_187C;
  207. int field_1880;
  208. int field_1884;
  209. int field_1888;
  210. TFreeControl field_188C;
  211. TFreeInfo_1C9C field_1C9C;
  212. };
  213. #endif //_CAM_H_