Parcourir la source

0x00128c40,CFESEditPlayer::SetupEditMode_HAIRSTYLE bugfix

DESKTOP-AB9OQPJ\RED-10 il y a 3 ans
Parent
commit
af06c5f42b
3 fichiers modifiés avec 36 ajouts et 11 suppressions
  1. 33 10
      jni/CFESEditPlayer.cpp
  2. 2 1
      jni/CUITileItemSelector.cpp
  3. 1 0
      jni/CUITileManager.cpp

+ 33 - 10
jni/CFESEditPlayer.cpp

@@ -81,7 +81,30 @@ static const int dword_2FE1F0[6] = {1, 2, 4, 5, 7, 8};
 
 // 0033632C
 int s_iPlayerRot[6] = {0, 0, 0, 0, 0x2000, 0x2000};
-
+void test111(){
+  m_iHairStylePosition[0]=rand();
+  m_iHairStylePosition[1]=rand();
+  m_iHairStylePosition[2]=rand();
+
+  m_iHairStylePosition[3]=rand();
+  m_iHairStylePosition[4]=rand();
+  m_iHairStylePosition[5]=rand();
+  m_iHairStylePosition[6]=rand();
+  m_iHairStylePosition[7]=rand();
+  m_iHairStylePosition[8]=rand();
+  m_iHairStylePosition[9]=rand();
+  m_iHairStylePosition[10]=rand();
+   m_iHairStylePosition[11]=rand();
+  m_iHairStylePosition[12]=rand();
+
+  m_iHairStylePosition[13]=rand();
+  m_iHairStylePosition[14]=rand();
+  m_iHairStylePosition[15]=rand();
+  m_iHairStylePosition[16]=rand();
+  m_iHairStylePosition[17]=rand();
+  m_iHairStylePosition[18]=rand();
+  m_iHairStylePosition[19]=rand();
+}
 //-------------------------------------------------------------------------------------------------
 // 00128200 //^_^
 //单元测试等级:目测游戏表现
@@ -1013,7 +1036,7 @@ void CFESEditPlayer::SetupEditMode_HAIRCOLOUR(void) {
 void CFESEditPlayer::SetupEditMode_HAIRSTYLE(void) {
   // 00128C40
   uint r6_i = 1;
-  char r11_i = 0;
+  uchar r11_i = 0;
   this->field_F8 = 1;
   // loc_128D7A
   while (r11_i != 20) {
@@ -1026,15 +1049,15 @@ void CFESEditPlayer::SetupEditMode_HAIRSTYLE(void) {
     snprintf(var_128, 256, "H%i.png", r7_i);
     CUITileItemSelector* r4_pTileItemSelector =
         new CUITileItemSelector(80, 80, -8355712, var_128, EUITileAction_58, r7_i);
-    int r0_i = r11_i;
-    r0_i = r11_i / 5u;
+   
+    uint r0_i = r11_i / 5u;
     int r1_i = r0_i * 3;
     r0_i = r0_i * 5;
     char r0_c = r11_i - r0_i;
     r1_i = r10_i + r1_i * 32;
-    r0_i = r0_c;
+
     r1_i = r1_i - r9_i / 2;
-    r0_i = (uint)r0_i << 7u;
+    r0_i = (uint)r0_c << 7u;
     r0_i = r0_i + r8_i / 2;
     r0_i = r0_i - 256;
     float s0_f = r0_i;
@@ -1045,7 +1068,7 @@ void CFESEditPlayer::SetupEditMode_HAIRSTYLE(void) {
     r1_i = 32 - r7_i;
     int r2_i = r7_i - 32;
     r1_i = r6_i >> r1_i;
-    uint64 r0r3_ull = CStoryProfile::m_tData.field_210[1];
+    uint* pr0r3 = (uint*)&CStoryProfile::m_tData.field_210[1];
     /*
      * 此处原汇编比较的是r2,自己这边比较的是r7
      * 原始汇编:CMP             R2, #0
@@ -1055,11 +1078,11 @@ void CFESEditPlayer::SetupEditMode_HAIRSTYLE(void) {
       r1_i = (uint)r6_i << (uint)r2_i;
     }
     r2_i = r6_i << (uint)r7_i;
-    r1_i = r1_i & (r0r3_ull >> 32u);
-    if (r2_i >= 0) {
+    r1_i = r1_i & (pr0r3[1]);
+    if (r7_i >= 0x20) {
       r2_i = 0;
     }
-    r0_i = r0r3_ull & r2_i;
+    r0_i = pr0r3[0] & r2_i;
     r0_i = r0_i | r1_i;
     if (r0_i == 0) {
       r4_pTileItemSelector->m_i_358 = STY_tConfig.PlayerCustomisationNumber_54D4[1][r7_i];

+ 2 - 1
jni/CUITileItemSelector.cpp

@@ -10,7 +10,8 @@ CUITileItemSelector::CUITileItemSelector(int, int, int, TUITBText, EUITileAction
 }
 //-------------------------------------------------------------------------------------------------
 //0013D6E4
-CUITileItemSelector::CUITileItemSelector(int, int, int, char const*, EUITileAction, int) {
+CUITileItemSelector::CUITileItemSelector(int a1, int a2, int a3, char const*a4, EUITileAction a5, int a6) {
+  LOGE("CUITileItemSelector%p%x%x%x%p%x%x",this,a1,a2,a3,a4,a5,a6);
 }
 //-------------------------------------------------------------------------------------------------
 //0013D74C 0013D750

+ 1 - 0
jni/CUITileManager.cpp

@@ -65,6 +65,7 @@ void CUITileManager::AddTile(float f1,
                              bool b4,
                              float f5,
                              EHUDPosition ePos6) {
+  LOGE("CUITileManager::AddTile%p%x%x%p%x%x%x",this,f1,f2,pTile3,b4,f5,ePos6);
 }
 //-------------------------------------------------------------------------------------------------
 //00147C10 //^_^