Mercurial > mm7
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) -------------------------------------------------------- |