Mercurial > might-and-magic-trilogy
comparison Mouse.cpp @ 47:8a8dd0164b12
BLV render
cd check fix
author | Nomad |
---|---|
date | Tue, 23 Oct 2012 13:51:21 +0200 |
parents | bcc051713d20 |
children |
comparison
equal
deleted
inserted
replaced
46:79a30ee1ecdb | 47:8a8dd0164b12 |
---|---|
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 { |