Explorar el Código

0x0017012c,CPlayer::ActionTendSetupDest, bugfix

DESKTOP-AB9OQPJ\RED-10 hace 3 años
padre
commit
181c238dbd
Se han modificado 1 ficheros con 30 adiciones y 4 borrados
  1. 30 4
      jni/CPlayer.cpp

+ 30 - 4
jni/CPlayer.cpp

@@ -419,9 +419,33 @@ void CPlayer::ActionUpdateDynamic() {
 //-------------------------------------------------------------------------------------------------
 // 0017012C  //???
 void CPlayer::ActionTendSetupDest(TPoint3D point3D1) {
-  // LOGI("CPlayer::ActionTendSetupDest %p %d %d %d", this,
-  // point3D1.point_0.dx_0, point3D1.point_0.dy_4, point3D1.dz_8); TAnimData *
-  // r10_pAnimData = GetAnimData();
+  TAnimData *r10_pAnimData = GetAnimData();
+  int r1_i = r10_pAnimData->filed_20[s_15A].filed_4;
+  ushort r0_us =r10_pAnimData->filed_20[s_15A].filed_2;
+  r1_i = r1_i * us_122;
+  aPoint3D_178[0] = point3D1;
+  int r7 = (r0_us + u_0.s_2_0.s_0) & 0x3FFF;
+  int r8_i = r1_i / 1024;
+
+  int r0_i = xsin(r7) * r8_i;  // 00170178   MUL.W R0, R0, R8
+  r0_i = r0_i / 2048;
+  point3D_164.point_0.dx_0 = point3D1.point_0.dx_0 - r0_i;  // 00170184   SUB.W           R0, R6, R0,ASR#11
+  int r5 = us_122 * r10_pAnimData->filed_20[s_15A].filed_8;
+
+  r0_i = xcos(r7) * r8_i;  // 00170194   MUL.W           R0, R0, R8
+
+  point3D_164.point_0.dy_4 = point3D1.point_0.dy_4 + (r0_i / 2048);
+  point3D_164.dz_8 = (point3D1.dz_8 - (r5 / 128));
+  if(point3D_164.dz_8<0)
+    point3D_164.dz_8=0;
+  TPoint var_2C;
+  if (r10_pAnimData->filed_54) {
+    GetRootBoneOfs(&var_2C, r10_pAnimData);
+  }
+
+  // loc_1701C4
+  field_170 = ballPosPrev_4.point_0.dx_0;
+  field_174 = ballPosPrev_4.point_0.dy_4;
 }
 //-------------------------------------------------------------------------------------------------
 // 001701D0 ^_^
@@ -704,7 +728,9 @@ void CPlayer::SetAnimFromStateI() {
 }
 //-------------------------------------------------------------------------------------------------
 // 00170DD4 ^_^
-void CPlayer::GetRootBoneOfs(TPoint *pPoint1, TAnimData *pAnimData2) {}
+void CPlayer::GetRootBoneOfs(TPoint *pPoint1, TAnimData *pAnimData2) {
+  LOGE("CPlayer::GetRootBoneOfs%p%p%p",this,pPoint1,pAnimData2);
+}
 //-------------------------------------------------------------------------------------------------
 // 00170E50 ^_^
 void CPlayer::UpdateActOKTime() {}