Kaynağa Gözat

FREE_AddVisualFeedback_Pass bugfix

DESKTOP-AB9OQPJ\RED-10 3 yıl önce
ebeveyn
işleme
c6331aaffc
1 değiştirilmiş dosya ile 58 ekleme ve 2 silme
  1. 58 2
      jni/FREE.cpp

+ 58 - 2
jni/FREE.cpp

@@ -13,8 +13,12 @@
 #include "fpoint.h"
 #include "memctrl.h"
 #include "sub.h"
+#include "CBallProj.h"
+#include "XSYS.h"
+#include "SNDGAME.h"
 // FREE_tInfo  0x1D20
 // FREE_tGoal  0x7634
+int FREE_iTeam ;
 TFreeGoal FREE_tGoal;
 TFreeInfo FREE_tInfo;
 CFTTModel *FREE_pStarModel;
@@ -657,10 +661,62 @@ void FREE_RenderPreSelectedPlayer() {}
 void FREE_RenderProcess() {}
 //-------------------------------------------------------------------------------------------------
 // 001DC0E4
-void FREE_AddVisualFeedback(int, EVFEffect, int) {}
+void FREE_AddVisualFeedback(int a1, EVFEffect a2, int a3) {
+  LOGE("FREE_AddVisualFeedback%x%x%x",a1,a2,a3);
+}
 //-------------------------------------------------------------------------------------------------
 // 001DC290
-void FREE_AddVisualFeedback_Pass() {}
+void FREE_AddVisualFeedback_Pass() {
+  
+  TPoint var_1C = cBallProj.field_E8[((cBallProj.field_E4 + 1) % 512)].point3D_0.point_0;
+  CPlayer* r7_pplayer = tGame.mTMath_6734.pPlayer_134[FREE_iTeam];
+  int r0_i = XMATH_Distance(&tGame.mTLogic_6678.field_64, &var_1C);
+  // 3A2278 - 0x39BB88 = 66F0
+  int r2_i = tGame.mTLogic_6678.field_78;  //[2]
+  TAnimData* anims = CAnimManager::s_tAnimData;
+  int r1_i = (ushort)anims[r2_i].u_C.filed_C;
+  r1_i = r1_i & 1032u;
+  int r4_i;
+  EVFEffect r5_i;
+  /*
+    * 描述: 原汇编r5= 1有归并,自己汇编分成了两处, 寄存嚣分配有出入
+    * 原始汇编:    loc_1DC30A
+    *                     MOVS            R5, #1
+                          B               loc_1DC31A
+     * 自已汇编:   BLE             loc_E2EC
+                   MOVS            R4, #1
+     */
+  //    bool bC30A = false;
+  // 001DC2FC
+  if (r1_i == 0) {
+    // loc_1DC302
+    if (r0_i > 819200) {
+      // 001DC308
+      r4_i = 8;
+      r5_i = EVFEffect_1;
+    } else {
+      // loc_1DC30E
+      r4_i = 9;
+      if (r0_i < 327680) {
+        // 001DC316
+        r4_i = 10;
+      }
+      r5_i = EVFEffect_2;
+    }
+  } else {
+    r4_i = 11;
+    r5_i = EVFEffect_1;
+  }
+
+  // loc_1DC30A
+  // loc_1DC31A
+  CPlayer* r0_pplayer = &tGame.CPlayer_3050[0];
+  r2_i = r7_pplayer - r0_pplayer;
+  FREE_AddVisualFeedback(r4_i, r5_i, r2_i);
+  r0_i = XSYS_Random(2);
+  r0_i = r0_i + 3;
+  SNDGAME_Crowd_PlayReaction(r0_i);
+}
 //-------------------------------------------------------------------------------------------------
 // 001DC354
 void FREE_AddVisualFeedback_Goal() {}