|
@@ -569,7 +569,84 @@ int FREE_PlayerGetUrgency(CPlayer *, int) { return 0; }
|
|
|
void FREE_ProcessInProgressCore() {}
|
|
|
//-------------------------------------------------------------------------------------------------
|
|
|
// 001D956C
|
|
|
-void FREE_UpdateSuccess() {}
|
|
|
+void FREE_UpdateSuccess(void) {
|
|
|
+ // 001D956C
|
|
|
+ TPoint3D var_30;
|
|
|
+ TPoint3D var_40;
|
|
|
+
|
|
|
+ /*
|
|
|
+ * 描述:寄存嚣加载略有不同,VLDR,VLD1.8这两个不知道到底什么区别
|
|
|
+ * 原始汇编:VLDR D16, [R2]
|
|
|
+ * 自己汇编:VLD1.8 {D16}, [R2]
|
|
|
+ */
|
|
|
+ TPoint3D var_50 = FREE_tInfo.filed_0.point3D_1848;
|
|
|
+ // 001D958E
|
|
|
+ if (FREE_tInfo.filed_0.field_1840 > -1) {
|
|
|
+ // 001D959C
|
|
|
+ int r1_i = FREE_tInfo.filed_0.point3D_1848.dz_8;
|
|
|
+ // 001D95A8
|
|
|
+ if (r1_i <= 0x1000) {
|
|
|
+ // 001D95A8
|
|
|
+ r1_i = 0x1000;
|
|
|
+ }
|
|
|
+ var_50.dz_8 = r1_i;
|
|
|
+ cBallProj.EnsureProj(FREE_tInfo.filed_0.kickTargetTime_1838 + 10);
|
|
|
+ int r0_i = FREE_tInfo.filed_0.kickTargetTime_1838;
|
|
|
+ int r7_i = 0x7FFFFFFF;
|
|
|
+ int r8_i = 600;
|
|
|
+ // r10 = var_50
|
|
|
+ int r5_i = r0_i - 10;
|
|
|
+ int r11_i;
|
|
|
+ // loc_1D963E
|
|
|
+ while (r5_i <= r0_i + 10) {
|
|
|
+ // loc_1D95D4
|
|
|
+ r0_i = cBallProj.field_E4;
|
|
|
+ // 47F7EC - 0x47DFB0 =183C
|
|
|
+ r0_i = r0_i + r5_i;
|
|
|
+ r0_i = r0_i % 512;
|
|
|
+ var_40 = cBallProj.field_E8[r0_i].point3D_0;
|
|
|
+ // r9 = var40
|
|
|
+ if (FREE_tInfo.filed_0.field_183C[0] != 0) {
|
|
|
+ // 001D960E
|
|
|
+ r0_i = XMATH_Distance(&var_40.point_0, &var_50.point_0);
|
|
|
+ } else {
|
|
|
+ // loc_1D9616
|
|
|
+ r0_i = XMATH_Distance3D(&var_40, &var_50);
|
|
|
+ }
|
|
|
+ // loc_1D961C
|
|
|
+ if (r0_i < r7_i) {
|
|
|
+ // 001D9620
|
|
|
+ r7_i = r0_i;
|
|
|
+ r8_i = r5_i;
|
|
|
+ r11_i = var_40.dz_8 - var_50.dz_8;
|
|
|
+ var_30 = var_40;
|
|
|
+ }
|
|
|
+ // loc_1D9636
|
|
|
+ // 47F7E8 - 0x47DFB0 =1838
|
|
|
+ r5_i++;
|
|
|
+ r0_i = FREE_tInfo.filed_0.kickTargetTime_1838;
|
|
|
+ }
|
|
|
+ // 001D9644
|
|
|
+ if (FREE_tInfo.filed_0.field_183C[0] == 0) {
|
|
|
+ // 001D9644
|
|
|
+ cBall.ballMovePrev_10.dz_8 = cBall.ballMovePrev_10.dz_8 - r11_i / r8_i;
|
|
|
+ }
|
|
|
+ // loc_1D9660
|
|
|
+ cBallProj.EnsureProj(r8_i + 1);
|
|
|
+ FREE_tInfo.filed_0.point3D_1848 = var_30;
|
|
|
+ FREE_tInfo.field_1884 = tGame.maybe_sound_0 + r8_i;
|
|
|
+ FREE_tInfo.filed_0.gamestatus_1828 = 7;
|
|
|
+ // 47F834 - 0x47DFB0 =1884
|
|
|
+
|
|
|
+ CStoryCore::m_tStageManager.pStory_5cf4->CreateNPPhoto();
|
|
|
+ // loc_1D96BC
|
|
|
+ } else {
|
|
|
+ // loc_1D96A8
|
|
|
+ FREE_tInfo.filed_0.gamestatus_1828 = 7;
|
|
|
+ CStoryCore::m_tStageManager.pStory_5cf4->CreateNPPhoto();
|
|
|
+ }
|
|
|
+ // loc_1D96BC
|
|
|
+}
|
|
|
//-------------------------------------------------------------------------------------------------
|
|
|
// 001D96E4
|
|
|
int FREE_ProcessLogic() { return 0; }
|
|
@@ -1439,9 +1516,9 @@ void PhysicsTest() {
|
|
|
// loc_16A30C
|
|
|
if (physics_sp218.ppobject_0[r5_i]->field_9E) {
|
|
|
if (physics_sp218.ppobject_0[r5_i]->field_90 != EFreePropType_3) {
|
|
|
- if (FREE_tInfo.filed_0.ugamestatus_1828 <= 8) {
|
|
|
+ if (FREE_tInfo.filed_0.gamestatus_1828 <= 8) {
|
|
|
// check
|
|
|
- if ((1 << FREE_tInfo.filed_0.ugamestatus_1828) & 0x190) {
|
|
|
+ if ((1 << FREE_tInfo.filed_0.gamestatus_1828) & 0x190) {
|
|
|
LOGE("PhysicsTest_2");
|
|
|
tGame.field_6C98 = 0;
|
|
|
tGame.mTLogic_6678.freeproptype_74 =
|