Mercurial > mm7
comparison UI/Books/UIMapBook.cpp @ 2069:259df09dfb50
32bits almost there
author | Nomad |
---|---|
date | Tue, 03 Dec 2013 20:18:17 +0200 |
parents | 7a9477135943 |
children | a869b0376b48 |
comparison
equal
deleted
inserted
replaced
2061:b2a434d65344 | 2069:259df09dfb50 |
---|---|
309 unsigned __int16 *v67; // esi@96 | 309 unsigned __int16 *v67; // esi@96 |
310 int v68; // edi@98 | 310 int v68; // edi@98 |
311 unsigned __int16 v69; // cx@99 | 311 unsigned __int16 v69; // cx@99 |
312 signed int v73; // [sp-4h] [bp-48068h]@59 | 312 signed int v73; // [sp-4h] [bp-48068h]@59 |
313 unsigned __int16 v74; // [sp-4h] [bp-48068h]@79 | 313 unsigned __int16 v74; // [sp-4h] [bp-48068h]@79 |
314 unsigned short map_texture_16[147456]; // [sp+Ch] [bp-48058h]@23 | 314 //unsigned short map_texture_16[320 * 460 + 256]; // [sp+Ch] [bp-48058h]@23 |
315 int v76; // [sp+4800Ch] [bp-58h]@23 | 315 int v76; // [sp+4800Ch] [bp-58h]@23 |
316 unsigned __int16 *v77; // [sp+48010h] [bp-54h]@27 | 316 //unsigned __int16 *v77; // [sp+48010h] [bp-54h]@27 |
317 unsigned __int16 *pPalette_16; // [sp+48014h] [bp-50h]@23 | 317 unsigned __int16 *pPalette_16; // [sp+48014h] [bp-50h]@23 |
318 int map_tile_X; // [sp+48020h] [bp-44h]@23 | 318 int map_tile_X; // [sp+48020h] [bp-44h]@23 |
319 unsigned __int16* render16_data; | 319 //unsigned __int16* render16_data; |
320 unsigned char* texture8_data; | 320 unsigned char* texture8_data; |
321 unsigned char* curr_line; | 321 unsigned char* curr_line; |
322 int scale_increment; | 322 int scale_increment; |
323 int scaled_posX; | 323 int scaled_posX; |
324 int scaled_posY; | 324 int scaled_posY; |
337 signed int screenWidth; // [sp+48054h] [bp-10h]@8 | 337 signed int screenWidth; // [sp+48054h] [bp-10h]@8 |
338 unsigned int v95; // [sp+48058h] [bp-Ch]@16 | 338 unsigned int v95; // [sp+48058h] [bp-Ch]@16 |
339 int map_tile_Y; // [sp+4805Ch] [bp-8h]@10 | 339 int map_tile_Y; // [sp+4805Ch] [bp-8h]@10 |
340 const void *v97; // [sp+48060h] [bp-4h]@16 | 340 const void *v97; // [sp+48060h] [bp-4h]@16 |
341 unsigned short *a4a; // [sp+4806Ch] [bp+8h]@85 | 341 unsigned short *a4a; // [sp+4806Ch] [bp+8h]@85 |
342 int a5a; // [sp+48070h] [bp+Ch]@86 | 342 //int a5a; // [sp+48070h] [bp+Ch]@86 |
343 | 343 |
344 screenCenter_X = (signed int)(tl_x + br_x) / 2; | 344 screenCenter_X = (signed int)(tl_x + br_x) / 2; |
345 screenCenterY = (signed int)(tl_y + br_y) / 2; | 345 screenCenterY = (signed int)(tl_y + br_y) / 2; |
346 pRenderer->SetRasterClipRect(tl_x, tl_y, br_x, br_y); | 346 pRenderer->SetRasterClipRect(tl_x, tl_y, br_x, br_y); |
347 pCenterX = viewparams->sViewCenterX; | 347 pCenterX = viewparams->sViewCenterX; |
364 } | 364 } |
365 if ( uCurrentlyLoadedLevelType != LEVEL_Indoor) | 365 if ( uCurrentlyLoadedLevelType != LEVEL_Indoor) |
366 { | 366 { |
367 screenWidth = br_x - tl_x + 1; | 367 screenWidth = br_x - tl_x + 1; |
368 screenHeight = br_y - tl_y + 1; | 368 screenHeight = br_y - tl_y + 1; |
369 render16_data = &pRenderer->pTargetSurface[tl_x + tl_y * pRenderer->uTargetSurfacePitch]; | 369 //render16_data = &pRenderer->pTargetSurface[tl_x + tl_y * pRenderer->uTargetSurfacePitch]; |
370 texture8_data = pIcons_LOD->pTextures[viewparams->uTextureID_LocationMap].pLevelOfDetail0_prolly_alpha_mask; | 370 texture8_data = pIcons_LOD->pTextures[viewparams->uTextureID_LocationMap].pLevelOfDetail0_prolly_alpha_mask; |
371 pPalette_16 = pIcons_LOD->pTextures[viewparams->uTextureID_LocationMap].pPalette16; | 371 pPalette_16 = pIcons_LOD->pTextures[viewparams->uTextureID_LocationMap].pPalette16; |
372 scale_increment = (1 << (pIcons_LOD->pTextures[viewparams->uTextureID_LocationMap].uWidthLn2 + 16)) / viewparams->uMapBookMapZoom; | 372 scale_increment = (1 << (pIcons_LOD->pTextures[viewparams->uTextureID_LocationMap].uWidthLn2 + 16)) / viewparams->uMapBookMapZoom; |
373 | 373 |
374 v30 = (double)(1 << (16 - pIcons_LOD->pTextures[viewparams->uTextureID_LocationMap].uWidthLn2)); | 374 v30 = (double)(1 << (16 - pIcons_LOD->pTextures[viewparams->uTextureID_LocationMap].uWidthLn2)); |
388 curr_line=&texture8_data[scaled_posY*textr_width]; | 388 curr_line=&texture8_data[scaled_posY*textr_width]; |
389 stepX_r=teal; | 389 stepX_r=teal; |
390 for( uint j = 0; j < screenWidth; ++j ) | 390 for( uint j = 0; j < screenWidth; ++j ) |
391 { | 391 { |
392 scaled_posX=stepX_r>>16; | 392 scaled_posX=stepX_r>>16; |
393 map_texture_16[i*screenWidth+j]=pPalette_16[*(curr_line+scaled_posX)]; | 393 //map_texture_16[i*screenWidth+j]=pPalette_16[*(curr_line+scaled_posX)]; |
394 pRenderer->WritePixel16(tl_x + j, tl_y + i, pPalette_16[*(curr_line+scaled_posX)]); | |
394 stepX_r+=scale_increment; | 395 stepX_r+=scale_increment; |
395 } | 396 } |
396 stepY_r+=scale_increment; | 397 stepY_r+=scale_increment; |
397 scaled_posY=stepY_r>>16; | 398 scaled_posY=stepY_r>>16; |
398 } | 399 } |
399 } | 400 } |
400 //move visible square to render | 401 |
402 /*//move visible square to render | |
401 for( uint i = 0; i < screenHeight; ++i ) | 403 for( uint i = 0; i < screenHeight; ++i ) |
402 { | 404 { |
403 if ( screenWidth > 0 ) | 405 if ( screenWidth > 0 ) |
404 memcpy((void*)&render16_data[pRenderer->uTargetSurfacePitch * i],(void*)&map_texture_16[i*screenWidth], screenWidth*2); | 406 memcpy((void*)&render16_data[pRenderer->uTargetSurfacePitch * i],(void*)&map_texture_16[i*screenWidth], screenWidth*2); |
405 } | 407 }*/ |
406 } | 408 } |
407 else | 409 else |
408 { | 410 { |
409 black = TargetColor(0, 0, 0); | 411 black = Color16(0, 0, 0); |
410 teal = TargetColor(0, 0xFFu, 0xFFu); | 412 teal = Color16(0, 0xFFu, 0xFFu); |
411 uNumBlueFacesInBLVMinimap = 0; | 413 uNumBlueFacesInBLVMinimap = 0; |
412 if ( pIndoor->pMapOutlines->uNumOutlines ) | 414 if ( pIndoor->pMapOutlines->uNumOutlines ) |
413 { | 415 { |
414 for ( uint i = 0; i < pIndoor->pMapOutlines->uNumOutlines; ++i ) | 416 for ( uint i = 0; i < pIndoor->pMapOutlines->uNumOutlines; ++i ) |
415 { | 417 { |
533 if ( v54 >= pRenderer->raster_clip_x && v54 <= pRenderer->raster_clip_z | 535 if ( v54 >= pRenderer->raster_clip_x && v54 <= pRenderer->raster_clip_z |
534 && v55 >= pRenderer->raster_clip_y && v55 <= pRenderer->raster_clip_w ) | 536 && v55 >= pRenderer->raster_clip_y && v55 <= pRenderer->raster_clip_w ) |
535 { | 537 { |
536 if ( viewparams->uMapBookMapZoom > 512 ) | 538 if ( viewparams->uMapBookMapZoom > 512 ) |
537 { | 539 { |
538 pRenderer->RasterLine2D(v54 - 1, v55 - 1, v54 - 1, v55 + 1, TargetColor(0xFFu, 0xFFu, 0xFFu)); | 540 pRenderer->RasterLine2D(v54 - 1, v55 - 1, v54 - 1, v55 + 1, Color16(0xFFu, 0xFFu, 0xFFu)); |
539 pRenderer->RasterLine2D(v54, v55 - 1, v54, v55 + 1, TargetColor(0xFFu, 0xFFu, 0xFFu)); | 541 pRenderer->RasterLine2D(v54, v55 - 1, v54, v55 + 1, Color16(0xFFu, 0xFFu, 0xFFu)); |
540 pRenderer->RasterLine2D(v54 + 1, v55 - 1, v54 + 1, v55 + 1, TargetColor(0xFFu, 0xFFu, 0xFFu)); | 542 pRenderer->RasterLine2D(v54 + 1, v55 - 1, v54 + 1, v55 + 1, Color16(0xFFu, 0xFFu, 0xFFu)); |
541 } | 543 } |
542 else | 544 else |
543 pRenderer->RasterLine2D(v54, screenCenterY - (int)v97, | 545 pRenderer->RasterLine2D(v54, screenCenterY - (int)v97, |
544 ((unsigned __int64)((signed int)v93 * (signed __int64)viewparams->uMapBookMapZoom) >> 16) + screenCenter_X, | 546 ((unsigned __int64)((signed int)v93 * (signed __int64)viewparams->uMapBookMapZoom) >> 16) + screenCenter_X, |
545 screenCenterY - (int)v97, TargetColor(0xFFu, 0xFFu, 0xFFu)); | 547 screenCenterY - (int)v97, Color16(0xFFu, 0xFFu, 0xFFu)); |
546 } | 548 } |
547 } | 549 } |
548 } | 550 } |
549 } | 551 } |
550 if ( uCurrentlyLoadedLevelType == LEVEL_Outdoor) | 552 if ( uCurrentlyLoadedLevelType == LEVEL_Outdoor) |
551 { | 553 { |
552 screenCenterY = br_x - tl_x + 1; | 554 screenCenterY = br_x - tl_x + 1; |
553 v95 = br_y - tl_y + 1; | 555 v95 = br_y - tl_y + 1; |
554 v77 = &pRenderer->pTargetSurface[tl_x + tl_y * pRenderer->uTargetSurfacePitch]; | 556 //v77 = &pRenderer->pTargetSurface[tl_x + tl_y * pRenderer->uTargetSurfacePitch]; |
555 black = (1 << (pIcons_LOD->pTextures[viewparams->uTextureID_LocationMap].uWidthLn2 + 16)) / viewparams->uMapBookMapZoom; | 557 black = (1 << (pIcons_LOD->pTextures[viewparams->uTextureID_LocationMap].uWidthLn2 + 16)) / viewparams->uMapBookMapZoom; |
556 v57 = (double)(1 << (16 - pIcons_LOD->pTextures[viewparams->uTextureID_LocationMap].uWidthLn2)); | 558 v57 = (double)(1 << (16 - pIcons_LOD->pTextures[viewparams->uTextureID_LocationMap].uWidthLn2)); |
557 v60 = (int)((signed __int64)((double)(viewparams->sViewCenterX - (22528 / (viewparams->uMapBookMapZoom / 384)) + 32768) / v57)) << 16; | 559 v60 = (int)((signed __int64)((double)(viewparams->sViewCenterX - (22528 / (viewparams->uMapBookMapZoom / 384)) + 32768) / v57)) << 16; |
558 teal = v60 >> 16; | 560 teal = v60 >> 16; |
559 pPalette_16 = (unsigned __int16 *)(v60 >> 16); | 561 pPalette_16 = (unsigned __int16 *)(v60 >> 16); |
560 v97 = (const void *)((int)((signed __int64)((double)(viewparams->sViewCenterX - (22528 / (viewparams->uMapBookMapZoom / 384)) + 32768) / v57)) << 16); | 562 v97 = (const void *)((int)((signed __int64)((double)(viewparams->sViewCenterX - (22528 / (viewparams->uMapBookMapZoom / 384)) + 32768) / v57)) << 16); |
561 v62 = (int)((signed __int64)((double)(32768 - (22528 / (viewparams->uMapBookMapZoom / 384)) - pCenterY) / v57)) << 16; | 563 v62 = (int)((signed __int64)((double)(32768 - (22528 / (viewparams->uMapBookMapZoom / 384)) - pCenterY) / v57)) << 16; |
562 v63 = (signed __int16)((signed __int64)((double)(32768 - (22528 / (viewparams->uMapBookMapZoom / 384)) - pCenterY) / v57)); | 564 v63 = (signed __int16)((signed __int64)((double)(32768 - (22528 / (viewparams->uMapBookMapZoom / 384)) - pCenterY) / v57)); |
563 a4a = map_texture_16; | 565 |
566 | |
567 for (int y = 0; y < (signed int)v95; ++y) | |
568 { | |
569 map_tile_Y = (v63 - 80) / 4; | |
570 v64 = teal; | |
571 for (int x = 0; x < screenCenterY; ++x) | |
572 { | |
573 map_tile_X = (v64 - 80) / 4; | |
574 if ( !pOutdoor->_47F04C(map_tile_X, map_tile_Y) ) | |
575 { | |
576 if ( pOutdoor->_47F097(map_tile_X, map_tile_Y) ) | |
577 { | |
578 if ( !((x + screenCenter_X) % 2) ) | |
579 //*a4a = Color16(12, 12, 12); | |
580 pRenderer->WritePixel16(tl_x + x, tl_y + y, Color16(12, 12, 12)); | |
581 } | |
582 else | |
583 //*a4a = 0; | |
584 pRenderer->WritePixel16(tl_x + x, tl_y + y, Color16(0, 0, 0)); | |
585 } | |
586 v97 = (char *)v97 + black; | |
587 v64 = (signed int)v97 >> 16; | |
588 } | |
589 | |
590 v62 += black; | |
591 v97 = (const void *)v60; | |
592 v63 = v62 >> 16; | |
593 teal = (unsigned int)pPalette_16; | |
594 } | |
595 /*a4a = map_texture_16; | |
564 for ( screenCenter_X = 0; screenCenter_X < (signed int)v95; ++screenCenter_X ) | 596 for ( screenCenter_X = 0; screenCenter_X < (signed int)v95; ++screenCenter_X ) |
565 { | 597 { |
566 if ( screenCenterY > 0 ) | 598 if ( screenCenterY > 0 ) |
567 { | 599 { |
568 map_tile_Y = (v63 - 80) / 4; | 600 map_tile_Y = (v63 - 80) / 4; |
573 if ( !pOutdoor->_47F04C(map_tile_X, map_tile_Y) ) | 605 if ( !pOutdoor->_47F04C(map_tile_X, map_tile_Y) ) |
574 { | 606 { |
575 if ( pOutdoor->_47F097(map_tile_X, map_tile_Y) ) | 607 if ( pOutdoor->_47F097(map_tile_X, map_tile_Y) ) |
576 { | 608 { |
577 if ( !((a5a + screenCenter_X) % 2) ) | 609 if ( !((a5a + screenCenter_X) % 2) ) |
578 *a4a = TargetColor(0xCu, 0xCu, 0xCu); | 610 *a4a = Color16(0xCu, 0xCu, 0xCu); |
579 } | 611 } |
580 else | 612 else |
581 *a4a = 0; | 613 *a4a = 0; |
582 } | 614 } |
583 ++a4a; | 615 ++a4a; |
589 v97 = (const void *)v60; | 621 v97 = (const void *)v60; |
590 a4a += screenCenterY - a5a; | 622 a4a += screenCenterY - a5a; |
591 v63 = v62 >> 16; | 623 v63 = v62 >> 16; |
592 teal = (unsigned int)pPalette_16; | 624 teal = (unsigned int)pPalette_16; |
593 } | 625 } |
626 | |
594 v66 = map_texture_16; | 627 v66 = map_texture_16; |
595 if ( (signed int)v95 > 0 ) | 628 if ( (signed int)v95 > 0 ) |
596 { | 629 { |
597 v67 = v77; | 630 v67 = v77; |
598 result = 2 * (pRenderer->uTargetSurfacePitch - screenCenterY); | 631 result = 2 * (pRenderer->uTargetSurfacePitch - screenCenterY); |
609 ++v67; | 642 ++v67; |
610 } | 643 } |
611 } | 644 } |
612 v67 = (unsigned __int16 *)((char *)v67 + result); | 645 v67 = (unsigned __int16 *)((char *)v67 + result); |
613 } | 646 } |
614 } | 647 }*/ |
615 } | 648 } |
616 } | 649 } |
617 | 650 |
618 //----- (00444564) -------------------------------------------------------- | 651 //----- (00444564) -------------------------------------------------------- |
619 const char * GetMapBookHintText() | 652 const char * GetMapBookHintText() |