CBall.h 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. // CBall - [2020-04-13 11:57:46]
  2. #ifndef _CBALL_H_
  3. #define _CBALL_H_
  4. #include "common.h"
  5. #include "XMATH.h"
  6. #include "TGame.h"
  7. /*
  8. 00156E3C CBall::UpdateFrame()
  9. 00156F38 CBall::CheckEvents()
  10. 001575DC CBall::ClampSpeed(int,int)
  11. 00157648 CBall::Stop()
  12. 00157668 CBall::SetVel(int,int,int)
  13. 00157678 CBall::SetVelRel(int,int,int)
  14. 00157698 CBall::AdjustKickToPos(TPoint)
  15. 001577B4 CBall::SetBallMoveToPosSpin(TPoint3D *,int,int,TPoint3D,TPoint3D,int,int)
  16. 0015799E CBall::operator=(CBall const&)
  17. 00157A3C CBall::SetBallMoveToPosLowSpin(TPoint3D *,int,int,TPoint3D,TPoint3D,int,int)
  18. 00157C94 CBall::GetPassPowerX(int,int)
  19. 00157D08 CBall::GetPassLength(int,int)
  20. 00157DA4 CBall::SetBallMoveToPos(TPoint3D *,TPoint3D,TPoint3D,int,int,int)
  21. 00157EAC CBall::SetBallMoveToPosLow(TPoint3D *,TPoint3D,TPoint3D,int,int)
  22. 00157FF4 CBall::AirResistanceInit()
  23. 0015806C CBall::ProjectionPassLengthInit()
  24. 00158148 CBall::PlayNetSound()
  25. 0015818C CBall::CornerFlagCollision(int,int)
  26. 00158228 CBall::PointBallTest(TPoint *,int)
  27. 00158254 CBall::DoBallGoalBounce()
  28. 00158638 CBall::Deflect()
  29. 001586DC CBall::CheckPostXYCol(TPoint3D)
  30. 001588E8 CBall::CheckPostYZCol(TPoint3D)
  31. 0015897C CBall::DoBallPostCollisions()
  32. 001589CC CBall::BannerCollisionX(int)
  33. 00158A60 CBall::BannerCollisionY(int)
  34. 001592A0 CBall::CounterBallSpinZ(int)
  35. 001592F8 CBall::ApplySpin(TPoint3D *,TPoint3D *,int,int)
  36. 00159334 CBall::ApplyExactSpin(TPoint3D *,TPoint3D *,int,int)
  37. 00159370 CBall::ApplyGroundSpin(TPoint3D *,TPoint3D *)
  38. 00159404 CBall::CalcSpeed()
  39. 0015946C CBall::CalcVars()
  40. 001595A4 CBall::CheckBallInGoal()
  41. 0xDC
  42. */
  43. class CBall {
  44. public:
  45. void UpdateFrame(); // 00156E3C
  46. void CheckEvents(); // 00156F38
  47. void ClampSpeed(int, int); // 001575DC
  48. void Stop(); // 00157648
  49. __attribute__((noinline)) void SetVel(int, int, int); // 00157668
  50. void SetVelRel(int, int, int); // 00157678
  51. void AdjustKickToPos(TPoint); // 00157698
  52. int SetBallMoveToPosSpin(TPoint3D *, int, int, TPoint3D, TPoint3D, int, int); // 001577B4
  53. CBall &operator=(CBall const &); // 0015799E
  54. int SetBallMoveToPosLowSpin(TPoint3D *, int, int, TPoint3D, TPoint3D, int, int); // 00157A3C
  55. int GetPassPowerX(int, int); // 00157C94
  56. int GetPassLength(int, int); // 00157D08
  57. int SetBallMoveToPos(TPoint3D *, TPoint3D, TPoint3D, int, int, int); // 00157DA4
  58. int SetBallMoveToPosLow(TPoint3D *, TPoint3D, TPoint3D, int, int); // 00157EAC
  59. void AirResistanceInit(); // 00157FF4
  60. void ProjectionPassLengthInit(); // 0015806C
  61. void PlayNetSound(); // 00158148
  62. void CornerFlagCollision(int, int); // 0015818C
  63. int PointBallTest(TPoint *, int); // 00158228
  64. void DoBallGoalBounce(); // 00158254
  65. void Deflect(); // 00158638
  66. bool CheckPostXYCol(TPoint3D); // 001586DC
  67. bool CheckPostYZCol(TPoint3D); // 001588E8
  68. bool DoBallPostCollisions(); // 0015897C
  69. bool BannerCollisionX(int); // 001589CC
  70. bool BannerCollisionY(int); // 00158A60
  71. void CounterBallSpinZ(int); // 001592A0
  72. void ApplySpin(TPoint3D *, TPoint3D *, int, int); // 001592F8
  73. void ApplyExactSpin(TPoint3D *, TPoint3D *, int, int); // 00159334
  74. void ApplyGroundSpin(TPoint3D *, TPoint3D *); // 00159370
  75. void CalcSpeed(); // 00159404
  76. void CalcVars(); // 0015946C
  77. void CheckBallInGoal(); // 001595A4
  78. bool field_0;
  79. uint8 field_1;
  80. uint8 field_2;
  81. uint8 field_3;
  82. TPoint3D ballPosPrev_4; // 0016FB3E 此处可断定,类型为TPoint3D
  83. TPoint3D ballMovePrev_10;
  84. TPoint3D point3D_1C;
  85. uint speedXY_28; // point3D_10 的xy坐标的距离
  86. TPoint3D point3D_2C;
  87. TPoint3D point3D_38;
  88. TPoint3D point3D_44;
  89. uint speedXYZ_50; // point3D_10 的xyz坐标的距离
  90. TPoint3D point3D_54;
  91. TPoint point_60;
  92. TQuat quat_68;
  93. TPoint3D point3D_78;
  94. TPoint3D point3D_84;
  95. int field_90;
  96. int HeightTime_94;
  97. TPoint TimePos_98;
  98. int field_A0;
  99. int field_A4;
  100. int field_A8;
  101. int field_AC;
  102. int field_B0;
  103. int field_B4;
  104. int field_B8;
  105. int field_BC;
  106. int field_C0;
  107. TPoint TimePos_C4;
  108. int HeightTime_CC;
  109. TPoint TimePos_D0;
  110. int HeightTime_D8;
  111. static uint16 s_iAirResistanceDistMult[201];
  112. static int16 s_iAirResistanceMult[201];
  113. static int s_iPassProjectionLength[180][360];
  114. static int s_iPassProjectionLength_COKTime[360];
  115. };
  116. extern CBall cBall; // 00356A70
  117. extern TPoint G_vGoalPos[2];
  118. #endif //_CBALL_H_