Browse Source

0x002031c4,CFTTGraphicsDeviceOGLES::setVertexBuffe,317,317,

DESKTOP-AB9OQPJ\RED-10 3 years ago
parent
commit
5cf4c30fe1

+ 2 - 1
jni/.vscode/settings.json

@@ -57,5 +57,6 @@
         "xtree": "cpp",
         "xutility": "cpp"
     },
-    "docwriter.language": "Chinese"
+    "docwriter.language": "Chinese",
+    "docwriter.style": "Auto-detect"
 }

+ 14 - 12
jni/CFTTGraphicsDeviceOGLES.cpp

@@ -363,23 +363,25 @@ void CFTTGraphicsDeviceOGLES::setStencilOp(EFTTStencilOp esfail,
 }
 //-------------------------------------------------------------------------------------------------
 //002031C4 //-_- 经过单元测试,功能正常
+/**
+ * 它为当前绘制调用设置顶点缓冲区
+ * 
+ * @param pGraphBuf 指向缓冲区对象的指针
+ * @param a2 0x1000000
+ * @param a3 大步
+ * @param a4 偏移到缓冲区
+ */
 void CFTTGraphicsDeviceOGLES::setVertexBuffer(CFTTGraphicsBuffer *pGraphBuf, uint a2, uint a3, uint a4) {
+  /* 将缓冲区绑定到 GL_ARRAY_BUFFER。 */
   uchar *r4_pbuf = (uchar *)a4;
   CFTTGraphicsBufferOGLES *pBufOGLES = (CFTTGraphicsBufferOGLES *)pGraphBuf;
   if (CFTTGLES2Wrapper::s_uBoundArrayBuffer != pBufOGLES->bindBuf_10) {
     CFTTGLES2Wrapper::s_uBoundArrayBuffer = pBufOGLES->bindBuf_10;
     glBindBuffer(GL_ARRAY_BUFFER, pBufOGLES->bindBuf_10);
   }
-   //LOGE("CFTTGLES2Wrapper::s_bVertexAttribEnabled[0]=%x",CFTTGLES2Wrapper::s_bVertexAttribEnabled[0]);
-  // LOGE("CFTTGLES2Wrapper::s_bVertexAttribEnabled[0]=%x",CFTTGLES2Wrapper::s_bVertexAttribEnabled[1]);
-  // LOGE("CFTTGLES2Wrapper::s_bVertexAttribEnabled[0]=%x",CFTTGLES2Wrapper::s_bVertexAttribEnabled[2]);
-  // LOGE("CFTTGLES2Wrapper::s_bVertexAttribEnabled[0]=%x",CFTTGLES2Wrapper::s_bVertexAttribEnabled[3]);
-  // LOGE("CFTTGLES2Wrapper::s_bVertexAttribEnabled[0]=%x",CFTTGLES2Wrapper::s_bVertexAttribEnabled[4]);
-  // LOGE("CFTTGLES2Wrapper::s_bVertexAttribEnabled[0]=%x",CFTTGLES2Wrapper::s_bVertexAttribEnabled[5]);
-  // LOGE("CFTTGLES2Wrapper::s_bVertexAttribEnabled[0]=%x",CFTTGLES2Wrapper::s_bVertexAttribEnabled[6]);
-  // LOGE("CFTTGLES2Wrapper::s_bVertexAttribEnabled[0]=%x",CFTTGLES2Wrapper::s_bVertexAttribEnabled[7]);
-
+ 
   // loc_2031EA
+ /*  */
   if (!pBufOGLES->bindBuf_10)
     r4_pbuf = pBufOGLES->pBuf_C + a4;  // 002031EE 04 44  ADD R4, R0
 
@@ -493,7 +495,7 @@ void CFTTGraphicsDeviceOGLES::setVertexBuffer(CFTTGraphicsBuffer *pGraphBuf, uin
       r4_pbuf += 4;
     }
   } else if (CFTTGLES2Wrapper::s_bVertexAttribEnabled[1]) {  // loc_203346
-    CFTTGLES2Wrapper::s_bVertexAttribEnabled[1] = false;
+    CFTTGLES2Wrapper::s_bVertexAttribEnabled[1] = 0;
     glDisableVertexAttribArray(1);
   }
 
@@ -574,11 +576,11 @@ void CFTTGraphicsDeviceOGLES::setVertexBuffer(CFTTGraphicsBuffer *pGraphBuf, uin
   }
 
   // loc_20349E
-  if (a3 >= 0x10000000) {
+  if (a2 >= 0x10000000) {
     // 002034A6
     if (CFTTGLES2Wrapper::s_bVertexAttribEnabled[6]!=1) {
       // 002034AA
-      CFTTGLES2Wrapper::s_bVertexAttribEnabled[6] = 0;
+      CFTTGLES2Wrapper::s_bVertexAttribEnabled[6] = 1;
       glEnableVertexAttribArray(6);
     }
 

+ 17 - 19
jni/CGfxEnv.cpp

@@ -23,9 +23,6 @@ void CGfxEnv::EnableSlicedLoad() {}
 //-------------------------------------------------------------------------------------------------
 // 001A9274 //^_-
 void CGfxEnv::ScanStadiumModelsDirectory() {
-  LOGE("CGfxEnv::ScanStadiumModelsDirectory 001A9274");
-  memset(CGfxEnv::ms_tAvailableModels, 0xFF, sizeof(CGfxEnv::ms_tAvailableModels));
-
   // 1a928a
   if (CGfxEnv::ms_bDirectoriesScanned)
     return;
@@ -79,38 +76,37 @@ void CGfxEnv::ScanStadiumModelsDirectory() {
     else if (strstr(name_r6, "exterior")) {
       // 1a935e
       secttype_r7 = 3;
-    }
-    // 1a9366
-    else if (strstr(name_r6, "surround")) {
+    } else if (strstr(name_r6, "surround")) {  // 1a9366
       // 1a936c
       secttype_r7 = 4;
-    }
-    // 1a9370
-    else if (secttype_r7 == -1) {
+    } else if (secttype_r7 == -1) {  // 1a9370
       continue;
     }
-    TAvailableModel& model = CGfxEnv::ms_tAvailableModels[secttype_r7];
+
+    TAvailableModel* model = &CGfxEnv::ms_tAvailableModels[secttype_r7];
     // 1a9382
-    if (model.InfoCount_1400 > 127)
+    if (model->InfoCount_1400 > 127)
       continue;
 
-    TEnvStadiumModelInfo& modelinfo = model.ModelInfo_0[model.InfoCount_1400];
+    TEnvStadiumModelInfo* modelinfo = &model->ModelInfo_0[model->InfoCount_1400];
 
     // 1a93a2
-    strlcpy(modelinfo.text_0, strlwr(name_r6), 32);
+    strlcpy(modelinfo->text_0, strlwr(name_r6), sizeof(modelinfo->text_0));
+
     // 1a93a8
-    TModelInfoDescription* desc = CGfxEnv::FindModelInfoDescription(modelinfo.text_0);
-    modelinfo.desc_24 = desc;
+    TModelInfoDescription* desc = CGfxEnv::FindModelInfoDescription(modelinfo->text_0);
+    modelinfo->desc_24 = desc;
+
     // 1a93ac
-    if (desc) {
+    if (desc != nullptr) {
       // 1a93b2
-      modelinfo.height_20 = desc->height_48;
+      modelinfo->height_20 = desc->height_48;
       // 1a93b6 1a93c0 1a93c8 1a93cc
       if (desc && !CGfxEnv::ms_pConstructionModels[secttype_r7] && strstr(desc->text_4, "construction"))
         CGfxEnv::ms_pConstructionModels[secttype_r7] = desc;
     } else {
       // 1a93d4
-      modelinfo.height_20 = -1;
+      modelinfo->height_20 = -1;
     }
 
     CGfxEnv::ms_tAvailableModels[secttype_r7].InfoCount_1400++;
@@ -162,7 +158,7 @@ void CGfxEnv::ScanStadiumModelsDirectory() {
     // 1a94c2
     TAvailableModel& model = CGfxEnv::ms_tAvailableModels[i_r0];
     // 1a94c6
-    if (i_r0 - 3 >= 3) {  // 1a94cc
+    if (uint(i_r0 - 3) >= 3) {  // 1a94cc
       // 1a94e2
       memset(&model.EntryCount_1404, 0, 0x1884);
 
@@ -240,6 +236,7 @@ void CGfxEnv::ScanStadiumModelsDirectory() {
   // 1a9684
   for (int i_r6 = 0; i_r6 != 5; i_r6++) {
     TAvailableModel* r4_pModel = &CGfxEnv::ms_tAvailableModels[i_r6];
+
     // 1a964a
     CGfxEnv::InsertionSortStadiumModelInfo(r4_pModel->ModelInfo_0,
                                            r4_pModel->InfoCount_1400);
@@ -258,6 +255,7 @@ void CGfxEnv::ScanStadiumModelsDirectory() {
   }
   CGfxEnv::ms_bDirectoriesScanned = true;
 }
+
 //-------------------------------------------------------------------------------------------------
 // 001A96C8
 void CGfxEnv::CreateStadiumDressingTextures(int) {}

+ 0 - 1
obj/local/armeabi-v7a/objs/cpufeatures/archiver.list.tmp

@@ -1 +0,0 @@
-./obj/local/armeabi-v7a/objs/cpufeatures/cpu-features.o