Mercurial > might-and-magic-trilogy
comparison Mouse.cpp @ 49:25fabc49627b
Слияние
author | Ritor1 |
---|---|
date | Tue, 23 Oct 2012 17:34:20 +0600 |
parents | 8a8dd0164b12 |
children |
comparison
equal
deleted
inserted
replaced
48:6a62c4005f0e | 49:25fabc49627b |
---|---|
388 pCursorBitmap3_sysmembits_16bit = 0; | 388 pCursorBitmap3_sysmembits_16bit = 0; |
389 } | 389 } |
390 } | 390 } |
391 | 391 |
392 //----- (00469E3B) -------------------------------------------------------- | 392 //----- (00469E3B) -------------------------------------------------------- |
393 unsigned __int16 *Mouse::_469E3B() | 393 void Mouse::DrawCursorToTarget() |
394 { | 394 { |
395 unsigned __int16 *result; // eax@1 | 395 if (!pCursorBitmap3_sysmembits_16bit) |
396 int v2; // esi@3 | 396 return; |
397 unsigned int v3; // edx@3 | 397 |
398 int v4; // edi@4 | 398 auto pSrc = pCursorBitmap3_sysmembits_16bit; |
399 unsigned __int16 *v5; // ebx@5 | 399 for (uint y = field_44; y < field_4C; ++y) |
400 unsigned __int16 *v6; // esi@6 | 400 for (uint x = field_40; x < field_48; ++x) |
401 unsigned int v7; // [sp+4h] [bp-Ch]@2 | 401 pRenderer->pTargetSurface[y * pRenderer->uTargetSurfacePitch + x] = *pSrc++; |
402 unsigned __int16 *v8; // [sp+8h] [bp-8h]@2 | |
403 unsigned __int16 *v9; // [sp+Ch] [bp-4h]@2 | |
404 | |
405 result = this->pCursorBitmap3_sysmembits_16bit; | |
406 if ( result ) | |
407 { | |
408 v9 = this->pCursorBitmap3_sysmembits_16bit; | |
409 v7 = pRenderer->uTargetSurfacePitch; | |
410 v8 = pRenderer->pTargetSurface; | |
411 result = (unsigned __int16 *)this->field_44; | |
412 if ( (signed int)result < this->field_4C ) | |
413 { | |
414 v2 = this->field_48; | |
415 v3 = pRenderer->uTargetSurfacePitch * (int)result; | |
416 do | |
417 { | |
418 v4 = this->field_40; | |
419 if ( v4 < v2 ) | |
420 { | |
421 v5 = &v8[v3 + v4]; | |
422 do | |
423 { | |
424 v6 = v9; | |
425 ++v9; | |
426 ++v4; | |
427 *v5 = *v6; | |
428 v2 = this->field_48; | |
429 ++v5; | |
430 } | |
431 while ( v4 < v2 ); | |
432 } | |
433 v3 += v7; | |
434 result = (unsigned __int16 *)((char *)result + 1); | |
435 } | |
436 while ( (signed int)result < this->field_4C ); | |
437 } | |
438 } | |
439 return result; | |
440 } | 402 } |
441 | 403 |
442 //----- (00469EA4) -------------------------------------------------------- | 404 //----- (00469EA4) -------------------------------------------------------- |
443 void Mouse::_469EA4() | 405 void Mouse::_469EA4() |
444 { | 406 { |
778 { | 740 { |
779 void *v1; // ebx@1 | 741 void *v1; // ebx@1 |
780 int v2; // eax@2 | 742 int v2; // eax@2 |
781 int v3; // esi@4 | 743 int v3; // esi@4 |
782 char result; // al@5 | 744 char result; // al@5 |
783 const char *v5; // eax@6 | 745 //const char *v5; // eax@6 |
784 std::string v6; // [sp-18h] [bp-12Ch]@9 | 746 //std::string v6; // [sp-18h] [bp-12Ch]@9 |
785 const char *v7; // [sp-8h] [bp-11Ch]@9 | 747 const char *v7; // [sp-8h] [bp-11Ch]@9 |
786 int v8; // [sp-4h] [bp-118h]@9 | 748 int v8; // [sp-4h] [bp-118h]@9 |
787 DDSURFACEDESC2 Dst; // [sp+Ch] [bp-108h]@1 | 749 DDSURFACEDESC2 Dst; // [sp+Ch] [bp-108h]@1 |
788 int v10; // [sp+88h] [bp-8Ch]@2 | 750 int v10; // [sp+88h] [bp-8Ch]@2 |
789 int v11; // [sp+8Ch] [bp-88h]@2 | 751 int v11; // [sp+8Ch] [bp-88h]@2 |
826 result = 0; | 788 result = 0; |
827 return false; | 789 return false; |
828 } | 790 } |
829 else | 791 else |
830 { | 792 { |
831 v5 = std__string_720990.c_str(); | 793 if ( !LoadCursor("micon1") ) |
832 if ( !std__string_720990.size() ) | |
833 v5 = (const char *)&dword_4D86F0; | |
834 if ( !LoadCursor(v5) ) | |
835 { | 794 { |
836 MessageBoxW(nullptr, L"Could not load async mouse cursor image", L"E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\MouseAsync.cpp:182", 0); | 795 MessageBoxW(nullptr, L"Could not load async mouse cursor image", L"E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\MouseAsync.cpp:182", 0); |
837 } | 796 } |
838 result = 1; | 797 result = 1; |
839 return true; | 798 return true; |