|
@@ -2,6 +2,12 @@
|
|
|
#include "CCircle2dShader.h"
|
|
|
#include "CFTTMaterialManager.h"
|
|
|
#include "TPitchLineCircle.h"
|
|
|
+#include "CGraphicsTexLoadOptions.h"
|
|
|
+#include "CFTTRenderToTexture.h"
|
|
|
+#include "CFTTGraphicsDevice.h"
|
|
|
+#include "FTTSPtr.h"
|
|
|
+#include "FTT2D.h"
|
|
|
+#include <algorithm>
|
|
|
#include "memctrl.h"
|
|
|
|
|
|
CGfxPitchLines* CGfxPitchLines::ms_pInstance = nullptr;
|
|
@@ -21,6 +27,594 @@ void CGfxPitchLines::Init() {
|
|
|
//-------------------------------------------------------------------------------------------------
|
|
|
//001BC1DC
|
|
|
void CGfxPitchLines::Initialise() {
|
|
|
+ tVec_PLP_0.Resize(2666);
|
|
|
+
|
|
|
+ for (ushort r1_us = 0; r1_us <= 42; r1_us++) { // loc_1BC2A4
|
|
|
+ // loc_1BC21A
|
|
|
+ LOGE("分支1");
|
|
|
+ float fs0 = (float)r1_us;
|
|
|
+ float fs2 = fs0 + fs0;
|
|
|
+ float fs22 = fs0 * 62.0f;
|
|
|
+ float fs28 = fs2 + -42.0f;
|
|
|
+ for (ushort r6_us = 0; r6_us < 62; r6_us++) { // loc_1BC292
|
|
|
+
|
|
|
+ fs0 = (float)r6_us;
|
|
|
+ // loc_1BC23C
|
|
|
+ fs2 = fs0 + fs0;
|
|
|
+ fs0 = fs22 + fs0;
|
|
|
+
|
|
|
+ CGfxPitchLinePatch tPitchLinePatch_C8_sp80;
|
|
|
+ //memset(&tPitchLinePatch_C8_sp80, 0, sizeof(CGfxPitchLinePatch)); //此行代码是我自己加的,因为后面有部分数据未初始化
|
|
|
+
|
|
|
+ tPitchLinePatch_C8_sp80.pCGfxPitchLinePatch_0 = nullptr;
|
|
|
+ tPitchLinePatch_C8_sp80.pFTTUPtr_Texture_4 = nullptr;
|
|
|
+ memset(&tPitchLinePatch_C8_sp80.tFTTVector_TPitchLineRect_20, 0, sizeof(FTTVector<TPitchLineRect>));
|
|
|
+ memset(&tPitchLinePatch_C8_sp80.tFTTVector_TPitchLineCircle_34, 0, sizeof(FTTVector<TPitchLineCircle>));
|
|
|
+ tPitchLinePatch_C8_sp80.uyTransform_48=0;
|
|
|
+ tPitchLinePatch_C8_sp80.field_49=0;
|
|
|
+ tPitchLinePatch_C8_sp80.field_4A=0;
|
|
|
+ tPitchLinePatch_C8_sp80.field_4B=0;
|
|
|
+ tPitchLinePatch_C8_sp80.fUV_x_4C=0;
|
|
|
+
|
|
|
+ tPitchLinePatch_C8_sp80.tFTTVector_TPitchLineRect_20.field_10 = 2.0f;
|
|
|
+ tPitchLinePatch_C8_sp80.vec32_Centre_8.float_0 = fs28;
|
|
|
+
|
|
|
+ tPitchLinePatch_C8_sp80.tFTTVector_TPitchLineCircle_34.field_10 = 2.0f;
|
|
|
+
|
|
|
+ tPitchLinePatch_C8_sp80.vec32_Centre_8.float_4 = 0.0f;
|
|
|
+ tPitchLinePatch_C8_sp80.vec32_Centre_8.float_8 = fs2 + -61.0f;
|
|
|
+
|
|
|
+ tPitchLinePatch_C8_sp80.vec32_Dimensions_14.float_0 = 2.20000005f;
|
|
|
+ tPitchLinePatch_C8_sp80.vec32_Dimensions_14.float_4 = 0.0f;
|
|
|
+ tPitchLinePatch_C8_sp80.vec32_Dimensions_14.float_8 = 2.20000005f;
|
|
|
+
|
|
|
+ //memset(&tPitchLinePatch_C8_sp80.tFTTVector_TPitchLineRect_20, 0, sizeof(FTTVector<TPitchLineRect>));
|
|
|
+
|
|
|
+
|
|
|
+ // memset(&tPitchLinePatch_C8_sp80.tFTTVector_TPitchLineCircle_34, 0, sizeof(FTTVector<TPitchLineCircle>));
|
|
|
+
|
|
|
+
|
|
|
+ //tPitchLinePatch_C8_sp80.uyTransform_48 = 0;
|
|
|
+
|
|
|
+ tVec_PLP_0.list_0[(uint)fs0] = std::move(tPitchLinePatch_C8_sp80);
|
|
|
+ } // 001BC2A0
|
|
|
+ }
|
|
|
+ CFTTVector32 vec32_1;
|
|
|
+ vec32_1.float_0 = -1212416.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = 0.0f;
|
|
|
+
|
|
|
+ CFTTVector32 vec32_2;
|
|
|
+ vec32_2.float_0 = 1212416.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = 0.0f;
|
|
|
+
|
|
|
+ AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC2DE
|
|
|
+
|
|
|
+ vec32_1.float_0 = -1212416.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = 1802240.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = -1212416.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = -1802240.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC2FC
|
|
|
+
|
|
|
+ vec32_1.float_0 = 1212416.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = 1802240.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = 1212416.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = -1802240.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC316
|
|
|
+
|
|
|
+ vec32_1.float_0 = -1212416.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = -1802240.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = 1212416.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = -1802240.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC330
|
|
|
+
|
|
|
+ vec32_1.float_0 = -1212416.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = 1802240.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = 1212416.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = 1802240.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC348
|
|
|
+
|
|
|
+ vec32_1.float_0 = -720896.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = -1802240.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = -720896.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = -1212416.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC35E
|
|
|
+
|
|
|
+ vec32_1.float_0 = 720896.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = -1802240.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = 720896.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = -1212416.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC376
|
|
|
+
|
|
|
+ vec32_1.float_0 = -720896.0f; // 1
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = -1212416.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = 720896.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = -1212416.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC38C
|
|
|
+
|
|
|
+ vec32_1.float_0 = -327680.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = -1802240.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = -327680.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = -1605632.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC3A4
|
|
|
+
|
|
|
+ vec32_1.float_0 = 327680.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = -1802240.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = 327680.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = -1605632.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC3BC
|
|
|
+
|
|
|
+ vec32_1.float_0 = -327680.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = -1605632.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = 327680.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = -1605632.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC3D2
|
|
|
+
|
|
|
+ vec32_1.float_0 = -720896.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = 1802240.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = -720896.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = 1212416.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC3EC
|
|
|
+
|
|
|
+ vec32_1.float_0 = 720896.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = 1802240.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = 720896.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = 1212416.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC404
|
|
|
+
|
|
|
+ vec32_1.float_0 = -720896.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = 1212416.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = 720896.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = 1212416.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC41C
|
|
|
+
|
|
|
+ vec32_1.float_0 = -327680.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = 1802240.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = -327680.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = 1605632.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC434
|
|
|
+
|
|
|
+ vec32_1.float_0 = 327680.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = 1802240.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = 327680.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = 1605632.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC44C
|
|
|
+
|
|
|
+ vec32_1.float_0 = -327680.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = 1605632.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = 327680.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = 1605632.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 4300.0f, 1, 16384.0f); // 001BC44C
|
|
|
+
|
|
|
+ vec32_1.float_0 = -1343488.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = 425984.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = -1245184.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = 425984.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 6450.0f, 3, 16384.0f); // 001BC486
|
|
|
+
|
|
|
+ vec32_1.float_0 = -1343488.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = 32768.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = -1245184.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = 32768.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 6450.0f, 3, 16384.0f); // 001BC4A4
|
|
|
+
|
|
|
+ vec32_1.float_0 = -1245184.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = 32768.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = -1245184.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = 425984.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 6450.0f, 7, 16384.0f); // 001BC4BE
|
|
|
+
|
|
|
+ vec32_1.float_0 = -1343488.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = -425984.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = -1245184.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = -425984.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 6450.0f, 3, 16384.0f); // 001BC4D8
|
|
|
+
|
|
|
+ vec32_1.float_0 = -1343488.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = -32768.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = -1245184.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = -32768.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 6450.0f, 3, 16384.0f); // 001BC4F6
|
|
|
+
|
|
|
+ vec32_1.float_0 = -1245184.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = -425984.0f;
|
|
|
+
|
|
|
+ vec32_2.float_0 = -1245184.0f;
|
|
|
+ vec32_2.float_4 = 0.0f;
|
|
|
+ vec32_2.float_8 = -32768.0f;
|
|
|
+ AddRect(vec32_1, vec32_2, 6450.0f, 7, 16384.0f); // 001BC50E
|
|
|
+
|
|
|
+ vec32_1.float_0 = 0.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = 0.0f;
|
|
|
+ AddCircle(vec32_1, 0.0f, 4096.0f, 0.0f, -1.0f); // 001BC52E
|
|
|
+
|
|
|
+ vec32_1.float_0 = 0.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = -1409024.0f;
|
|
|
+ AddCircle(vec32_1, 0.0f, 4096.0f, 0.0f, -1.0f); // 001BC542
|
|
|
+
|
|
|
+ vec32_1.float_0 = 0.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = 1409024.0f;
|
|
|
+ AddCircle(vec32_1, 0.0f, 4096.0f, 0.0f, -1.0f); // 001BC554
|
|
|
+
|
|
|
+ vec32_1.float_0 = 0.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = -1409024.0f;
|
|
|
+ AddCircle(vec32_1, 325530.0f, 329830.0f, 0.643501163f, 1.854590416f); // 001BC56E
|
|
|
+
|
|
|
+ vec32_1.float_0 = 0.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = 1409024.0f;
|
|
|
+ AddCircle(vec32_1, 325530.0f, 329830.0f, 3.785093784f, 1.854590416f); // 001BC582
|
|
|
+
|
|
|
+ vec32_1.float_0 = 0.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = 0.0f;
|
|
|
+ AddCircle(vec32_1, 325530.0f, 329830.0f, 0.0f, -1.0f); // 001BC594
|
|
|
+
|
|
|
+ vec32_1.float_0 = -1212416.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = -1802240.0f;
|
|
|
+ AddCircle(vec32_1, 30618.0f, 34918.0f, 0.0f, 1.570796371f); // 001BC5B2
|
|
|
+
|
|
|
+ vec32_1.float_0 = 1212416.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = -1802240.0f;
|
|
|
+ AddCircle(vec32_1, 30618.0f, 34918.0f, 1.570796371f, 1.570796371f); // 001BC5C6
|
|
|
+
|
|
|
+ vec32_1.float_0 = -1212416.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = 1802240.0f;
|
|
|
+ AddCircle(vec32_1, 30618.0f, 34918.0f, 4.712388992f, 1.570796371f); // 001BC5DC
|
|
|
+
|
|
|
+ vec32_1.float_0 = 1212416.0f;
|
|
|
+ vec32_1.float_4 = 0.0f;
|
|
|
+ vec32_1.float_8 = 1802240.0f;
|
|
|
+ AddCircle(vec32_1, 30618.0f, 34918.0f, 3.141592741f, 1.570796371f); // 001BC5F0
|
|
|
+ // 001BC5F2
|
|
|
+ for (int ir6 = 0; ir6 != 2666; ir6++) { // loc_1BC720
|
|
|
+ for (uchar r4_uc = 0; r4_uc < tVec_Rect_28.use_count_C; r4_uc++) { // loc_1BC648
|
|
|
+ // loc_1BC606
|
|
|
+
|
|
|
+ tVec_PLP_0.list_0[ir6].AddRect(tVec_Rect_28.list_0[r4_uc]); // 001BC642
|
|
|
+ }
|
|
|
+
|
|
|
+ // 001BC652
|
|
|
+ for (uchar r4_uc = 0; r4_uc < tVec_Circle_3C.use_count_C; r4_uc++) { // loc_1BC714
|
|
|
+ // loc_1BC6D8
|
|
|
+ /// !!!! 注意这里的TPitchLineCircle 析构函数应为空 否则崩溃
|
|
|
+
|
|
|
+ tVec_PLP_0.list_0[ir6].AddCircle(tVec_Circle_3C.list_0[r4_uc]); // 001BC70E
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 001BC72A
|
|
|
+ for (int r4_i = 0; r4_i != 2666; r4_i++) { // loc_1BC77A
|
|
|
+ // loc_1BC738
|
|
|
+ if (tVec_PLP_0.list_0[r4_i].pCGfxPitchLinePatch_0 == nullptr) {
|
|
|
+ for (int ir6 = r4_i + 1; ir6 != 2666; ir6++) { // loc_1BC770
|
|
|
+ // loc_1BC74E
|
|
|
+ if (tVec_PLP_0.list_0[ir6].pCGfxPitchLinePatch_0 == nullptr) {
|
|
|
+ // 001BC75C
|
|
|
+ if (tVec_PLP_0.list_0[r4_i].TestDuplicate(&tVec_PLP_0.list_0[ir6])) {
|
|
|
+ // 001BC762
|
|
|
+ LOGE("分支5");
|
|
|
+ tVec_PLP_0.list_0[ir6].pCGfxPitchLinePatch_0 = &tVec_PLP_0.list_0[r4_i];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 001BC77E
|
|
|
+ CFTTTexLoadOptions opt_C8 = g_tGlobalTexLoadOptions.mTexLoadOptions_4;
|
|
|
+ opt_C8.eMinFilter_18 = EFTTTex_MinFilter_6;
|
|
|
+ CFTTTexture* r5_pTexture = CFTTTexture::LoadName("data/models/pitch/lineatlas.png", opt_C8, true);
|
|
|
+ // 001BC7B0
|
|
|
+ if (pTexture_Atlas_58 != nullptr) {
|
|
|
+ delete pTexture_Atlas_58;
|
|
|
+ }
|
|
|
+ // loc_1BC7BE
|
|
|
+ pTexture_Atlas_58 = r5_pTexture;
|
|
|
+
|
|
|
+ for (int r4_i = 0; r4_i != 2666; r4_i++) { // loc_1BC7D6
|
|
|
+ // loc_1BC7C8
|
|
|
+ if (tVec_PLP_0.list_0[r4_i].pCGfxPitchLinePatch_0 != nullptr) {
|
|
|
+
|
|
|
+ tVec_PLP_0.list_0[r4_i].pCGfxPitchLinePatch_0->CheckBlank();
|
|
|
+ } else {
|
|
|
+
|
|
|
+ tVec_PLP_0.list_0[r4_i].CheckBlank();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 001BC7DE
|
|
|
+ uint r6_count = 0;
|
|
|
+ for (int ir2 = 0; ir2 != 2666; ir2++) { // loc_1BC7FC
|
|
|
+ // loc_1BC7EA
|
|
|
+ if (tVec_PLP_0.list_0[ir2].pCGfxPitchLinePatch_0 == nullptr) {
|
|
|
+ // 001BC7F0
|
|
|
+ LOGE("分支9");
|
|
|
+ r6_count += (tVec_PLP_0.list_0[ir2].bIsBlank_5C ^ 1);
|
|
|
+ } // loc_1BC7F8 +
|
|
|
+ }
|
|
|
+
|
|
|
+ // 001BC800
|
|
|
+ int r5_count = 0;
|
|
|
+ for (int ir0 = 0; ir0 != 2666; ir0++) { // loc_1BC81E
|
|
|
+ // loc_1BC808
|
|
|
+ if (tVec_PLP_0.list_0[ir0].pCGfxPitchLinePatch_0 == nullptr) {
|
|
|
+
|
|
|
+ r5_count += tVec_PLP_0.list_0[ir0].bIsBlank_5C;
|
|
|
+ } else {
|
|
|
+
|
|
|
+ r5_count += tVec_PLP_0.list_0[ir0].pCGfxPitchLinePatch_0->bIsBlank_5C;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 001BC822
|
|
|
+ if (pTexture_Atlas_58 == nullptr) {
|
|
|
+ // 001BC828
|
|
|
+ for (int ir4 = 0; ir4 != 2666; ir4++) { // loc_1BC83C
|
|
|
+ // loc_1BC82C
|
|
|
+ if (tVec_PLP_0.list_0[ir4].pCGfxPitchLinePatch_0 == nullptr) {
|
|
|
+
|
|
|
+ tVec_PLP_0.list_0[ir4].Render();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // loc_1BC840
|
|
|
+ for (int ir4 = 0; ir4 != 2666; ir4++) { // loc_1BC850
|
|
|
+ // loc_1BC844
|
|
|
+ LOGE("分支13");
|
|
|
+ tVec_PLP_0.list_0[ir4].CheckBlank();
|
|
|
+ }
|
|
|
+
|
|
|
+ // 001BC854
|
|
|
+ float fs16 = (float)r6_count;
|
|
|
+ float fs0 = ceilf(sqrtf(fs16)); // 001BC87C
|
|
|
+ uint r4_ui = (uint)fs0;
|
|
|
+
|
|
|
+ //001BC880
|
|
|
+ float fs18 = r4_ui;
|
|
|
+ fs16 = ceilf(fs16 / fs18);
|
|
|
+
|
|
|
+ // 001BC89C
|
|
|
+ fs0 = ceilf(Log2(fs18 * 72.0f));
|
|
|
+ uint r6_i = fs0;
|
|
|
+
|
|
|
+ // 001BC8BA
|
|
|
+ float fs2 = ceilf(Log2(fs16 * 72.0f));
|
|
|
+ uint r2_ui = 1 << r6_i;
|
|
|
+ //sp20=r6_i
|
|
|
+ //sp1c=r2_ui
|
|
|
+ uint r10_ui = (uint)fs2;
|
|
|
+ fs0 = (float)r2_ui;
|
|
|
+ float fs4 = 64.0f / fs0; // 001BC90A VDIV.F32 S4, S16, S0
|
|
|
+ float fs12 = fs4 *0.0909090936f;
|
|
|
+ float fs24 = 4.0f / fs0;
|
|
|
+
|
|
|
+ uint r0_i = 1 << (uint)fs2; // 001BC91A
|
|
|
+ //sp18=r0_i
|
|
|
+ fs2 = (float)r0_i;
|
|
|
+ float fs20 = fs12 * 0.5f;
|
|
|
+ float fs26 = 72.0f / fs0;
|
|
|
+ float fs6 = 64.0f / fs2;
|
|
|
+ float fs8 = fs6 * 0.0909090936f; // 001BC934 VMUL.F32 S8, S6, S8
|
|
|
+ float fs28 = 4.0f / fs2;
|
|
|
+ float fs22 = fs8 * 0.5f;
|
|
|
+ float fs30 = 72.0f / fs2; // 001BC940 VDIV.F32 S30, S30, S2
|
|
|
+ fs0 = fs20 + fs20;
|
|
|
+ fs2 = fs22 + fs22;
|
|
|
+ float fs17 = fs4 - fs0;
|
|
|
+ float fs19 = fs6 - fs2;
|
|
|
+ //LOGE("001BC954");
|
|
|
+ // 001BC954
|
|
|
+ int r7_i=0;
|
|
|
+ for (uint r6_ui = 0; r6_ui != 2666; r6_ui++) { // loc_1BC9B8
|
|
|
+ // loc_1BC956
|
|
|
+ if (tVec_PLP_0.list_0[r6_ui].pCGfxPitchLinePatch_0 == nullptr &&
|
|
|
+ tVec_PLP_0.list_0[r6_ui].bIsBlank_5C == false) {
|
|
|
+ // 001BC968
|
|
|
+ LOGE("分支14");
|
|
|
+ uint r0_ui = r7_i / r4_ui;
|
|
|
+ uint r1_ui = r7_i - (r0_ui * r4_ui);
|
|
|
+ fs0 = (float)r0_ui;
|
|
|
+ fs4 = fs28;
|
|
|
+ fs2 = (float)r1_ui;
|
|
|
+ fs4 += fs30 * fs0;
|
|
|
+ fs0 = fs24;
|
|
|
+ fs0 += fs26 * fs2;
|
|
|
+ fs2 = fs22 + fs4;
|
|
|
+ fs0 = fs20 + fs0; // 001BC99A VADD.F32 S0, S20, S0
|
|
|
+ fs4 = fs19 + fs2;
|
|
|
+ fs6 = fs17 + fs0;
|
|
|
+
|
|
|
+ tVec_PLP_0.list_0[r6_ui].fUV_x_4C = fs0;
|
|
|
+ tVec_PLP_0.list_0[r6_ui].fUV_y_50 = fs6;
|
|
|
+ tVec_PLP_0.list_0[r6_ui].fUV_z_54 = fs2;
|
|
|
+ tVec_PLP_0.list_0[r6_ui].fUV_w_58 = fs4;
|
|
|
+ r7_i++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 001BC9BE
|
|
|
+ if (pTexture_Atlas_58 == nullptr) {
|
|
|
+ // 001BC9C8
|
|
|
+ if (r6_i > r10_ui) {
|
|
|
+ LOGE("分支15");
|
|
|
+ r10_ui = r6_i;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 001BC9FA
|
|
|
+ CFTTRenderToTexture* r1_pRendTex = g_pGraphicsDevice->createRenderToTexture(EFTTTexFormat_2,
|
|
|
+ r2_ui,
|
|
|
+ r0_i,
|
|
|
+ r10_ui + 1,
|
|
|
+ 0,
|
|
|
+ EFTTRTTZBufMode_1,
|
|
|
+ false,
|
|
|
+ EFTTTextureType_0,
|
|
|
+ 1);
|
|
|
+
|
|
|
+ FTTSPtr<CFTTRenderToTexture> var_124_sp24(r1_pRendTex);
|
|
|
+ var_124_sp24.pType_0->BeginRenderToTexture(g_tBlankCanvasClearSettings);
|
|
|
+ FTT2D_Begin();
|
|
|
+ FTT2D_SetDefaultMatBlend(EFTT2D_Blend_0);
|
|
|
+ int r7_i=0;
|
|
|
+ // 001BCA1C
|
|
|
+ for (uint r6_i = 0; r6_i < 2666; r6_i++) { // loc_1BCABC
|
|
|
+ // loc_1BCA38
|
|
|
+ if (tVec_PLP_0.list_0[r6_i].pCGfxPitchLinePatch_0 != nullptr || tVec_PLP_0.list_0[r6_i].bIsBlank_5C)
|
|
|
+ continue;
|
|
|
+ LOGE("分支16");
|
|
|
+ // 001BCA48
|
|
|
+ FTT2D_SetTexture(tVec_PLP_0.list_0[r6_i].pFTTUPtr_Texture_4.pType_0, 0);
|
|
|
+
|
|
|
+ uint r0_ui = r7_i / r4_ui;
|
|
|
+ uint r1_ui = (r7_i++) - (r0_ui * r4_ui);
|
|
|
+ uint r2_ui = 1 | (r0_ui << 1);
|
|
|
+ float fs0 = (float)r2_ui;
|
|
|
+ float fs4 = (float)r0_ui;
|
|
|
+ r2_ui = 1 | (r1_ui << 1);
|
|
|
+ float fs6 = (float)r1_ui;
|
|
|
+ float fs2 = (float)r2_ui;
|
|
|
+ fs2 = fs2 * 4.0f;
|
|
|
+ fs0 += fs4 * 64.0f; // 001BCAA4 VMLA.F32 S0, S4, S16
|
|
|
+ fs2 += fs6 * 64.0f;
|
|
|
+
|
|
|
+ /*
|
|
|
+ void FTT2D_DrawTexturedRect(float f1, float f2, float f3, float f4,
|
|
|
+ uint argb5,
|
|
|
+ float f6, float f7, float f8) {
|
|
|
+ */
|
|
|
+ FTT2D_DrawTexturedRect(fs2, fs0, 64.0f, 64.0f,
|
|
|
+ 0xFFFFFFFF,
|
|
|
+ 0.0f,
|
|
|
+ -999999.0f,
|
|
|
+ -999999.0f);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 001BCAC2
|
|
|
+ FTT2D_End();
|
|
|
+
|
|
|
+ // 001BCACE
|
|
|
+ CFTTTexture* r6_pTexture = var_124_sp24.pType_0->EndRenderToTexture(EFTTRTTCopyMode_2);
|
|
|
+ if (pTexture_Atlas_58 != nullptr) {
|
|
|
+ LOGE("分支17");
|
|
|
+ delete pTexture_Atlas_58;
|
|
|
+ }
|
|
|
+ // loc_1BCADE
|
|
|
+ pTexture_Atlas_58 = r6_pTexture;
|
|
|
+ r6_pTexture->SetMinFilter(EFTTTex_MinFilter_6);
|
|
|
+ }
|
|
|
+
|
|
|
+ // loc_1BCAF2
|
|
|
+ for (int r4_i = 0; r4_i < 2666; r4_i++) { // loc_1BCB02
|
|
|
+ // loc_1BCAF6
|
|
|
+ LOGE("分支18");
|
|
|
+ tVec_PLP_0.list_0[r4_i].Cleanup();
|
|
|
+ }
|
|
|
+
|
|
|
+ // 001BCB06
|
|
|
+ tVec_Rect_28.Clear(true);
|
|
|
+
|
|
|
+ // 001BCB10
|
|
|
+ tVec_Circle_3C.Clear(true);
|
|
|
+
|
|
|
+ // 001BCB1A
|
|
|
+ field_50 = r5_count;
|
|
|
+ field_54 = (uint)(2666.0f - (float)r5_count);
|
|
|
+ tVec_pPLP_14.Reserve(r5_count);
|
|
|
+
|
|
|
+ // 001BCB42
|
|
|
+ CGfxPitchLinePatch* var_124;
|
|
|
+ CGfxPitchLinePatch* r1_patch;
|
|
|
+ for (int r4_i = 0; r4_i != 2666; r4_i++) { // loc_1BCB68
|
|
|
+ // loc_1BCB48
|
|
|
+
|
|
|
+ r1_patch = tVec_PLP_0.list_0[r4_i].pCGfxPitchLinePatch_0;
|
|
|
+ if (r1_patch == nullptr) {
|
|
|
+
|
|
|
+ r1_patch = &tVec_PLP_0.list_0[r4_i];
|
|
|
+ }
|
|
|
+
|
|
|
+ if (r1_patch->bIsBlank_5C) {
|
|
|
+ // 001BCB5C
|
|
|
+
|
|
|
+ var_124 = &tVec_PLP_0.list_0[r4_i];
|
|
|
+ tVec_pPLP_14.Insert(var_124);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
//-------------------------------------------------------------------------------------------------
|
|
|
//001BCB94 //^_^
|
|
@@ -33,11 +627,15 @@ CGfxPitchLines* CGfxPitchLines::Get() {
|
|
|
}
|
|
|
//-------------------------------------------------------------------------------------------------
|
|
|
//001BCEA4
|
|
|
-void CGfxPitchLines::AddRect(CFTTVector32, CFTTVector32, float, uchar, float) {
|
|
|
+void CGfxPitchLines::AddRect(CFTTVector32 a1, CFTTVector32 a2, float a3, uchar a4, float a5) {
|
|
|
+ LOGE("CGfxPitchLines::AddRect%p%x%x%x %x%x%x %x%x%x",this,a1.float_0,a1.float_4,a1.float_8,
|
|
|
+ a2.float_0,a2.float_4,a2.float_8,a3,a4,a5);
|
|
|
}
|
|
|
//-------------------------------------------------------------------------------------------------
|
|
|
//001BD0D8
|
|
|
-void CGfxPitchLines::AddCircle(CFTTVector32 vec32_1, float f2, float f3, float f4, float f5) {
|
|
|
+void CGfxPitchLines::AddCircle(CFTTVector32 a1, float a2, float a3, float a4, float a5) {
|
|
|
+ LOGE("CGfxPitchLines::AddCircle%p%x%x%x %x%x%x%x",this,a1.float_0,a1.float_4,a1.float_8,
|
|
|
+ a2,a3,a4,a5);
|
|
|
}
|
|
|
//-------------------------------------------------------------------------------------------------
|
|
|
//001BD5E6 //^_^
|