瀏覽代碼

PlatformMesh_Free

DESKTOP-AB9OQPJ\RED-10 3 年之前
父節點
當前提交
8c3f641df3
共有 3 個文件被更改,包括 23 次插入8 次删除
  1. 1 1
      jni/CFTTModel.h
  2. 15 5
      jni/PlatformMesh.cpp
  3. 7 2
      jni/XMATH.cpp

+ 1 - 1
jni/CFTTModel.h

@@ -109,7 +109,7 @@ enum EMeshModelFlags {
 //结构大小确定为0x12, 具体的类型不确定
 #pragma pack(1)
 struct CFTTModel_struct_12 {
-ushort us_0;
+ushort us_materialIndex_0;
 uint field_2;
 uint field_6;
 int field_A;

+ 15 - 5
jni/PlatformMesh.cpp

@@ -2,12 +2,22 @@
 #include "FTTUPtr.h"
 #include "CFTTRenderHelper.h"
 #include "CFTTShaderBuiltInConstants.h"
-
+#include "CFTTMaterialManager.h"
 static float g_f309C50[6] = {1.0, 1.0, 1.0, 0.0, 0.0, 0.0};
 
 //---------------------------------------------------------------------------------------------------------------------------------------------
-//0021B304
-void PlatformMesh_Free(CFTTPlatformMesh *) {
+//0021B304 //^_^
+//单元测试等级: 游戏运行正常
+//单元测试内容: 1-5关
+//单元测试结果: 正常
+void PlatformMesh_Free(CFTTPlatformMesh *r0_pmesh) {
+	r0_pmesh->pCFTTRenderHelper_94=NULL;
+	//loc_21B32A
+	for(int r5_i=0;r5_i<r0_pmesh->count_40;r5_i++){
+		// /loc_21B31C
+		FTT_pMtlL->ReleaseMaterial(r0_pmesh->uOPData_44.list_model[r5_i].tStr12_2.us_materialIndex_0);
+	}
+	delete[] ((char*)r0_pmesh);
 }
 //---------------------------------------------------------------------------------------------------------------------------------------------
 //0021B340 //^_^
@@ -19,7 +29,7 @@ void PlatformMesh_Render(CFTTPlatformMesh* r0_pPlatformMesh1, int r1_i, unsigned
 {
 	CFTTModel_struct_14* r12_list_model = r0_pPlatformMesh1->uOPData_44.list_model;
 	if (r2_us ==0xFFFF )
-		r2_us = r12_list_model[r1_i].tStr12_2.us_0;
+		r2_us = r12_list_model[r1_i].tStr12_2.us_materialIndex_0;
 	if (r3_u == 0xFFFFFFFF)
 		r3_u = r12_list_model[r1_i].tStr12_2.field_6;
 	if (sp10_u == 0xFFFFFFFF)
@@ -127,7 +137,7 @@ void PlatformMesh_ToModel(CFTTPlatformMesh* pfTTPlatformMesh1, TFTTModel* pfTTMo
 			//loc_21B596
 			CFTTModel_struct_14* pCFTTModel_struct_14_r3 = pfTTPlatformMesh1->uOPData_44.list_model;
 			pus_r1 = pfTTModel2->u_34.pdat;
-			pfTTModel2->u_34.pdat[b_lr] = pCFTTModel_struct_14_r3[b_lr].tStr12_2.us_0;
+			pfTTModel2->u_34.pdat[b_lr] = pCFTTModel_struct_14_r3[b_lr].tStr12_2.us_materialIndex_0;
 			b_lr++;
 		}
 	}

+ 7 - 2
jni/XMATH.cpp

@@ -56,6 +56,9 @@ void XMATH_Normalize(TPoint *a1, int a2) {
 //001F2644 ^_^  bx  blx  除法 经过单元测试,功能正常
 TPoint3D XMATH_Normalize(TPoint3D a1, int a2) {
   TPoint3D result;
+  result.dz_8=a1.dz_8+a2+rand();
+  result.point_0.dx_0=a1.point_0.dx_0+a2+rand();
+  result.point_0.dy_4=a1.point_0.dy_4+a2+rand();
   return result;
 }
 //-------------------------------------------------------------------------------------------------
@@ -172,12 +175,14 @@ uint64_t XMATH_Mag(TPoint const *p_tpoint_r0) {
 //-------------------------------------------------------------------------------------------------
 //001f329e	XMATH_Mag	16 经过单元测试,功能正常
 float XMATH_Mag(TPointF const *a1) {
-  return 0.0f;
+  LOGE("XMATH_Mag%x",a1);
+  return (float)rand();
 }
 //-------------------------------------------------------------------------------------------------
 //001F32D8
 uint64_t XMATH_Mag2D(TPoint3D const *pPoint3D0) {
-  return 0;
+  LOGE("XMATH_Mag2D%x",pPoint3D0);
+  return rand();
 }
 //-------------------------------------------------------------------------------------------------
 //001F32DC ^_^ 经过单元测试,功能正常