comparison mm7_3.cpp @ 63:a96ebf3123d2

23.01.13 (Rotate)
author Ritor1
date Wed, 23 Jan 2013 13:14:10 +0600
parents 979f13f456dc
children 31feb3432bbd
comparison
equal deleted inserted replaced
51:63cfe63ac4c5 63:a96ebf3123d2
9358 v11 > a4->vWorldViewPosition.x ? (v15 = 0) : (v15 = 1), 9358 v11 > a4->vWorldViewPosition.x ? (v15 = 0) : (v15 = 1),
9359 !(v13 & v14 & v15 & v12)); 9359 !(v13 & v14 & v15 & v12));
9360 } 9360 }
9361 9361
9362 //----- (00481FC9) -------------------------------------------------------- 9362 //----- (00481FC9) --------------------------------------------------------
9363 int __fastcall sub_481FC9(RenderVertexSoft *_ECX, RenderVertexSoft *a2, RenderVertexSoft *a3, stru148 *a4) 9363 int __fastcall sub_481FC9(RenderVertexSoft *a1, RenderVertexSoft *a2, RenderVertexSoft *a3, stru148 *a4)
9364 { 9364 {
9365 __debugbreak(); 9365 float arg_0, arg_4, var_4, var_8, var_c, var_10, var_14;
9366 return 0; 9366
9367 /*signed int result; // eax@5 9367 if (a1->vWorldPosition.y == a2->vWorldPosition.y && a2->vWorldPosition.y == a3->vWorldPosition.y)
9368 __int64 v11; // ST08_8@6 9368 a4->flags |= 0x10;
9369 __int64 v12; // ST08_8@6 9369 var_c = a1->vWorldViewPosition.x - a2->vWorldViewPosition.x;
9370 __int64 v13; // ST08_8@6 9370 var_14 = a1->vWorldViewPosition.y - a2->vWorldViewPosition.y;
9371 __int64 v14; // ST08_8@6 9371 arg_0 = a1->vWorldViewPosition.z - a2->vWorldViewPosition.z;
9372 9372 var_10 = a3->vWorldViewPosition.x - a2->vWorldViewPosition.x;
9373 __asm { fld dword ptr [ecx+8] } 9373 var_8 = a3->vWorldViewPosition.y - a2->vWorldViewPosition.y;
9374 _ESI = a2; 9374 var_4 = a3->vWorldViewPosition.z - a2->vWorldViewPosition.z;
9375 _EDX = a3; 9375 arg_4 = a3->vWorldPosition.y - a2->vWorldPosition.y;
9376 __asm { fcomp dword ptr [esi+8] } 9376 if (((a3->vWorldPosition.y - a2->vWorldPosition.y) * (a1->vWorldPosition.x - a2->vWorldPosition.x) - (a3->vWorldPosition.x - a2->vWorldPosition.x) * (a1->vWorldPosition.y - a2->vWorldPosition.y)) * (pIndoorCamera->pos.y - a2->vWorldPosition.z) +
9377 _EDI = a4; 9377 ((a3->vWorldPosition.z - a2->vWorldPosition.z) * (a1->vWorldPosition.y - a2->vWorldPosition.y) - (a3->vWorldPosition.y - a2->vWorldPosition.y) * (a1->vWorldPosition.z - a2->vWorldPosition.z)) * (pIndoorCamera->pos.x - a2->vWorldPosition.x) +
9378 __asm { fnstsw ax } 9378 ((a3->vWorldPosition.x - a2->vWorldPosition.x) * (a1->vWorldPosition.z - a2->vWorldPosition.z) - (a3->vWorldPosition.z - a2->vWorldPosition.z) * (a1->vWorldPosition.x - a2->vWorldPosition.x)) * (pIndoorCamera->pos.z - a2->vWorldPosition.y) < 0)
9379 if ( !__SETP__(HIBYTE(_AX) & 0x44, 0) ) 9379 {
9380 { 9380 arg_4 = var_4 * var_14 - var_8 * arg_0;
9381 __asm 9381 a4->v_18.x = floorf(arg_4 + 0.5f);
9382 { 9382 arg_4 = var_10 * arg_0 - var_4 * var_c;
9383 fld dword ptr [esi+8] 9383 a4->v_18.y = floorf(arg_4 + 0.5f);
9384 fcomp dword ptr [edx+8] 9384 arg_4 = var_8 * var_c - var_10 * var_14;
9385 fnstsw ax 9385 a4->v_18.z = floorf(arg_4 + 0.5f);
9386 } 9386 a4->_486089_normalize_v_18();
9387 if ( !__SETP__(HIBYTE(_AX) & 0x44, 0) ) 9387 arg_4 = -(a4->v_18.x * a2->vWorldViewPosition.x) - a4->v_18.y * a2->vWorldViewPosition.y - a4->v_18.z * a2->vWorldViewPosition.z;
9388 *(int *)&a4->flags |= 0x10u; 9388 a4->field_24 = floorf(arg_4 + 0.5f);
9389 } 9389 return true;
9390 __asm
9391 {
9392 fld dword ptr [ecx+0Ch]
9393 fsub dword ptr [esi+0Ch]
9394 fstp [ebp+var_C]
9395 fld dword ptr [ecx+10h]
9396 fsub dword ptr [esi+10h]
9397 fstp [ebp+var_14]
9398 fld dword ptr [ecx+14h]
9399 fsub dword ptr [esi+14h]
9400 fstp [ebp+arg_0]
9401 fld dword ptr [edx+0Ch]
9402 fsub dword ptr [esi+0Ch]
9403 fstp [ebp+var_10]
9404 fld dword ptr [edx+10h]
9405 fsub dword ptr [esi+10h]
9406 fstp [ebp+var_8]
9407 fld dword ptr [edx+14h]
9408 fsub dword ptr [esi+14h]
9409 fstp [ebp+var_4]
9410 fld dword ptr [ecx]
9411 fsub dword ptr [esi]
9412 fld dword ptr [ecx+4]
9413 fsub dword ptr [esi+4]
9414 fld dword ptr [ecx+8]
9415 fsub dword ptr [esi+8]
9416 fld dword ptr [edx]
9417 fsub dword ptr [esi]
9418 fld dword ptr [edx+4]
9419 fsub dword ptr [esi+4]
9420 fld dword ptr [edx+8]
9421 fsub dword ptr [esi+8]
9422 fstp [ebp+arg_4]
9423 fld st
9424 fmul st, st(3)
9425 fld [ebp+arg_4]
9426 fmul st, st(5)
9427 fsubp st(1), st
9428 fild pIndoorCamera->pos.x
9429 fsub dword ptr [esi]
9430 fmulp st(1), st
9431 fld [ebp+arg_4]
9432 fmul st, st(6)
9433 fld st(3)
9434 fmul st, st(5)
9435 fsubp st(1), st
9436 fild pIndoorCamera->pos.y
9437 fsub dword ptr [esi+4]
9438 fmulp st(1), st
9439 faddp st(1), st
9440 fld st(2)
9441 fmul st, st(5)
9442 fld st(2)
9443 fmul st, st(7)
9444 fsubp st(1), st
9445 fild pIndoorCamera->pos.z
9446 fsub dword ptr [esi+8]
9447 fmulp st(1), st
9448 faddp st(1), st
9449 fcomp ds:flt_4D84E8
9450 fstp st
9451 fstp st
9452 fstp st
9453 fnstsw ax
9454 fstp st
9455 fstp st
9456 }
9457 if ( __SETP__(HIBYTE(_AX) & 0x41, 0) )
9458 {
9459 __asm
9460 {
9461 fld [ebp+var_4]
9462 fmul [ebp+var_14]
9463 fld [ebp+var_8]
9464 fmul [ebp+arg_0]
9465 fsubp st(1), st
9466 fstp [ebp+arg_4]
9467 fld [ebp+arg_4]
9468 fadd ds:flt_4D87D0
9469 fstp [ebp+var_20]
9470 fld [ebp+var_10]
9471 fmul [ebp+arg_0]
9472 fld [ebp+var_4]
9473 fmul [ebp+var_C]
9474 }
9475 _EDI->v_18.x = v11;
9476 __asm
9477 {
9478 fsubp st(1), st
9479 fstp [ebp+arg_4]
9480 fld [ebp+arg_4]
9481 fadd ds:flt_4D87D0
9482 fstp [ebp+var_20]
9483 fld [ebp+var_8]
9484 fmul [ebp+var_C]
9485 fld [ebp+var_10]
9486 fmul [ebp+var_14]
9487 }
9488 _EDI->v_18.y = v12;
9489 __asm
9490 {
9491 fsubp st(1), st
9492 fstp [ebp+arg_4]
9493 fld [ebp+arg_4]
9494 fadd ds:flt_4D87D0
9495 fstp [ebp+var_20]
9496 }
9497 _EDI->v_18.z = v13;
9498 stru148::_486089_normalize_v_18(_EDI);
9499 __asm
9500 {
9501 fild dword ptr [edi+18h]
9502 fmul dword ptr [esi+0Ch]
9503 fchs
9504 fild dword ptr [edi+1Ch]
9505 fmul dword ptr [esi+10h]
9506 fsubp st(1), st
9507 fild dword ptr [edi+20h]
9508 fmul dword ptr [esi+14h]
9509 fsubp st(1), st
9510 fstp [ebp+arg_4]
9511 fld [ebp+arg_4]
9512 fadd ds:flt_4D87D0
9513 fstp [ebp+var_20]
9514 }
9515 _EDI->field_24 = v14;
9516 result = 1;
9517 } 9390 }
9518 else 9391 else
9519 { 9392 return false;
9520 result = 0;
9521 }
9522 return result;*/
9523 } 9393 }
9524 9394
9525 9395
9526 9396
9527 //----- (004823F4) -------------------------------------------------------- 9397 //----- (004823F4) --------------------------------------------------------