comparison mm7_3.cpp @ 236:99ef31ffa74e

DrawBook_Map_sub remove goto part1
author zipi
date Sun, 17 Feb 2013 18:04:22 +0100
parents c2f2d2644304
children b070b83a897b
comparison
equal deleted inserted replaced
235:0d9d30a1efc9 236:99ef31ffa74e
14625 v84 = viewparams->sPartyPosZ; 14625 v84 = viewparams->sPartyPosZ;
14626 if ( viewparams->field_2C != 384 ) 14626 if ( viewparams->field_2C != 384 )
14627 { 14627 {
14628 if ( viewparams->field_2C == 768 ) 14628 if ( viewparams->field_2C == 768 )
14629 { 14629 {
14630 if ( uCurrentlyLoadedLevelType != LEVEL_Indoor) 14630 if ( uCurrentlyLoadedLevelType == LEVEL_Indoor)
14631 goto LABEL_23; 14631 v5 = 680;
14632 v5 = 680;
14633 } 14632 }
14634 if ( uCurrentlyLoadedLevelType == LEVEL_Indoor) 14633 if ( uCurrentlyLoadedLevelType == LEVEL_Indoor)
14635 goto LABEL_8; 14634 goto LABEL_8;
14636 LABEL_23: 14635 LABEL_23:
14637 v94 = a4 - x_ + 1; 14636 v94 = a4 - x_ + 1;
14718 v93 = (unsigned __int16 *)((char *)v93 + v38); 14717 v93 = (unsigned __int16 *)((char *)v93 + v38);
14719 --v96; 14718 --v96;
14720 } 14719 }
14721 while ( v96 ); 14720 while ( v96 );
14722 } 14721 }
14723 goto LABEL_38; 14722 }
14724 } 14723 else
14725 v6 = viewparams->field_38; 14724 {
14726 v86 = viewparams->field_38; 14725 v6 = viewparams->field_38;
14727 v84 = viewparams->field_3A; 14726 v86 = viewparams->field_38;
14728 if ( uCurrentlyLoadedLevelType != LEVEL_Indoor) 14727 v84 = viewparams->field_3A;
14729 goto LABEL_23; 14728 if ( uCurrentlyLoadedLevelType != LEVEL_Indoor)
14730 v5 = viewparams->field_2C - 34; 14729 goto LABEL_23;
14731 LABEL_8: 14730 v5 = viewparams->field_2C - 34;
14732 black = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0, 0, 0); 14731 LABEL_8:
14733 teal = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0, 0xFFu, 0xFFu); 14732 black = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0, 0, 0);
14734 v7 = (uint *)pIndoor->pMapOutlines; 14733 teal = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0, 0xFFu, 0xFFu);
14735 uNumBlueFacesInBLVMinimap = 0; 14734 v7 = (uint *)pIndoor->pMapOutlines;
14736 v8 = pIndoor->pMapOutlines->uNumOutlines == 0; 14735 uNumBlueFacesInBLVMinimap = 0;
14737 v9 = pIndoor->pMapOutlines->uNumOutlines < 0; 14736 v8 = pIndoor->pMapOutlines->uNumOutlines == 0;
14738 v94 = 0; 14737 v9 = pIndoor->pMapOutlines->uNumOutlines < 0;
14739 if ( !(v9 | v8) ) 14738 v94 = 0;
14740 { 14739 if ( !(v9 | v8) )
14741 i = 0; 14740 {
14742 do 14741 i = 0;
14743 { 14742 do
14744 v10 = (int)((char *)v7 + i + 4); 14743 {
14745 v96 = pIndoor->pFaces[*(short *)((char *)v7 + i + 8)].uAttributes; 14744 v10 = (int)((char *)v7 + i + 4);
14746 if ( BYTE1(v96) & 0x20 || (v11 = pIndoor->pFaces[*(short *)((char *)v7 + i + 10)].uAttributes, BYTE1(v11) & 0x20) ) 14745 v96 = pIndoor->pFaces[*(short *)((char *)v7 + i + 8)].uAttributes;
14747 goto LABEL_17; 14746 if ( !(BYTE1(v96) & 0x20 || (v11 = pIndoor->pFaces[*(short *)((char *)v7 + i + 10)].uAttributes, BYTE1(v11) & 0x20) ))
14748 v12 = *(short *)((char *)v7 + i + 14); 14747 {
14749 if ( !(v12 & 1) ) 14748 v12 = *(short *)((char *)v7 + i + 14);
14750 { 14749 if ( !(v12 & 1) )
14751 if ( !(v96 & 0x80) && (v11 & 0x80u) == 0 ) 14750 {
14752 goto LABEL_17; 14751 if ( !(!(v96 & 0x80) && (v11 & 0x80u) == 0 ))
14753 v96 = (signed int)v94 >> 3; 14752 {
14754 v13 = v94; 14753 v96 = (signed int)v94 >> 3;
14755 *(short *)(v10 + 10) = v12 | 1; 14754 v13 = v94;
14756 pIndoor->_visible_outlines[v96] |= 1 << (7 - v13 % 8); 14755 *(short *)(v10 + 10) = v12 | 1;
14757 } 14756 pIndoor->_visible_outlines[v96] |= 1 << (7 - v13 % 8);
14758 v14 = *(short *)v10; 14757 }
14759 v88 = v5; 14758 }
14760 v15 = &pIndoor->pVertices[v14]; 14759 if ( (!(v12 & 1) && !(!(v96 & 0x80) && (v11 & 0x80u) == 0 )) || v12 & 1)
14761 v16 = v15->x; 14760 {
14762 v17 = v15->y - v84; 14761 v14 = *(short *)v10;
14763 v93 = (unsigned __int16 *)(v16 - v6); 14762 v88 = v5;
14764 v92 = v17; 14763 v15 = &pIndoor->pVertices[v14];
14765 v18 = &pIndoor->pVertices[*(short *)(v10 + 2)]; 14764 v16 = v15->x;
14766 v19 = v18->x; 14765 v17 = v15->y - v84;
14767 v20 = v18->y - v84; 14766 v93 = (unsigned __int16 *)(v16 - v6);
14768 v95 = v19 - v6; 14767 v92 = v17;
14769 v97 = (const void *)v20; 14768 v18 = &pIndoor->pVertices[*(short *)(v10 + 2)];
14770 v88 = (unsigned __int64)((v16 - v6) * (signed __int64)v5) >> 16; 14769 v19 = v18->x;
14771 v87 = (unsigned __int64)((signed int)v92 * (signed __int64)v5) >> 16; 14770 v20 = v18->y - v84;
14772 v93 = (unsigned __int16 *)((unsigned __int64)((v19 - v6) * (signed __int64)v5) >> 16); 14771 v95 = v19 - v6;
14773 v92 = (unsigned __int64)(v20 * (signed __int64)v5) >> 16; 14772 v97 = (const void *)v20;
14774 pRenderer->Line2D( 14773 v88 = (unsigned __int64)((v16 - v6) * (signed __int64)v5) >> 16;
14775 v85 + v88, 14774 v87 = (unsigned __int64)((signed int)v92 * (signed __int64)v5) >> 16;
14776 v90 - v87, 14775 v93 = (unsigned __int16 *)((unsigned __int64)((v19 - v6) * (signed __int64)v5) >> 16);
14777 v85 + ((unsigned __int64)((v19 - v6) * (signed __int64)v5) >> 16), 14776 v92 = (unsigned __int64)(v20 * (signed __int64)v5) >> 16;
14778 v90 - v92, 14777 pRenderer->Line2D(
14779 black); 14778 v85 + v88,
14780 v7 = (uint *)pIndoor->pMapOutlines; 14779 v90 - v87,
14781 LABEL_17: 14780 v85 + ((unsigned __int64)((v19 - v6) * (signed __int64)v5) >> 16),
14782 ++v94; 14781 v90 - v92,
14783 i += 12; 14782 black);
14784 } 14783 v7 = (uint *)pIndoor->pMapOutlines;
14785 while ( (signed int)v94 < (signed int)*v7 ); 14784 }
14786 } 14785 }
14787 v21 = 0; 14786 ++v94;
14788 if ( (signed int)uNumBlueFacesInBLVMinimap > 0 ) 14787 i += 12;
14789 { 14788 }
14790 while ( 1 ) 14789 while ( (signed int)v94 < (signed int)*v7 );
14791 { 14790 }
14792 v22 = pBlueFacesInBLVMinimapIDs[v21]; 14791 v21 = 0;
14793 v87 = v5; 14792 if ( (signed int)uNumBlueFacesInBLVMinimap > 0 )
14794 v23 = (int)&v7[3 * v22 + 1]; 14793 {
14795 v24 = &pIndoor->pVertices[*(short *)v23]; 14794 while ( 1 )
14796 v25 = &pIndoor->pVertices[*(short *)(v23 + 2)]; 14795 {
14797 v26 = v25->x; 14796 v22 = pBlueFacesInBLVMinimapIDs[v21];
14798 v27 = (unsigned __int16 *)(v24->x - v86); 14797 v87 = v5;
14799 v28 = v24->y - v84; 14798 v23 = (int)&v7[3 * v22 + 1];
14800 v29 = v25->y - v84; 14799 v24 = &pIndoor->pVertices[*(short *)v23];
14801 v93 = v27; 14800 v25 = &pIndoor->pVertices[*(short *)(v23 + 2)];
14802 v92 = v28; 14801 v26 = v25->x;
14803 v97 = (const void *)v29; 14802 v27 = (unsigned __int16 *)(v24->x - v86);
14804 v87 = (unsigned __int64)((signed int)v27 * (signed __int64)v5) >> 16; 14803 v28 = v24->y - v84;
14805 v88 = (unsigned __int64)(v28 * (signed __int64)v5) >> 16; 14804 v29 = v25->y - v84;
14806 i = (unsigned __int64)((v26 - v86) * (signed __int64)v5) >> 16; 14805 v93 = v27;
14807 v95 = (unsigned __int64)(v29 * (signed __int64)v5) >> 16; 14806 v92 = v28;
14808 pRenderer->Line2D( 14807 v97 = (const void *)v29;
14809 v85 + ((unsigned __int64)((signed int)v27 * (signed __int64)v5) >> 16), 14808 v87 = (unsigned __int64)((signed int)v27 * (signed __int64)v5) >> 16;
14810 v90 - v88, 14809 v88 = (unsigned __int64)(v28 * (signed __int64)v5) >> 16;
14811 v85 + ((unsigned __int64)((v26 - v86) * (signed __int64)v5) >> 16), 14810 i = (unsigned __int64)((v26 - v86) * (signed __int64)v5) >> 16;
14812 v90 - v95, 14811 v95 = (unsigned __int64)(v29 * (signed __int64)v5) >> 16;
14813 teal); 14812 pRenderer->Line2D(
14814 ++v21; 14813 v85 + ((unsigned __int64)((signed int)v27 * (signed __int64)v5) >> 16),
14815 if ( v21 >= (signed int)uNumBlueFacesInBLVMinimap ) 14814 v90 - v88,
14816 break; 14815 v85 + ((unsigned __int64)((v26 - v86) * (signed __int64)v5) >> 16),
14817 v7 = (uint *)pIndoor->pMapOutlines; 14816 v90 - v95,
14818 } 14817 teal);
14819 v6 = v86; 14818 ++v21;
14820 } 14819 if ( v21 >= (signed int)uNumBlueFacesInBLVMinimap )
14821 LABEL_38: 14820 break;
14821 v7 = (uint *)pIndoor->pMapOutlines;
14822 }
14823 v6 = v86;
14824 }
14825 }
14822 v47 = ((unsigned __int64)((pParty->vPosition.x - v6) * (signed __int64)v5) >> 16) + v85 - 3; 14826 v47 = ((unsigned __int64)((pParty->vPosition.x - v6) * (signed __int64)v5) >> 16) + v85 - 3;
14823 v81 = pParty->vPosition.y - v84; 14827 v81 = pParty->vPosition.y - v84;
14824 v97 = (const void *)((unsigned __int64)((pParty->vPosition.y - v84) * (signed __int64)v5) >> 16); 14828 v97 = (const void *)((unsigned __int64)((pParty->vPosition.y - v84) * (signed __int64)v5) >> 16);
14825 v48 = 1; 14829 v48 = 1;
14826 v49 = v90 - (int)v97 - 3; 14830 v49 = v90 - (int)v97 - 3;
14870 { 14874 {
14871 if ( (signed int)v51 > 1408 ) 14875 if ( (signed int)v51 > 1408 )
14872 { 14876 {
14873 if ( (signed int)v51 >= 1664 ) 14877 if ( (signed int)v51 >= 1664 )
14874 { 14878 {
14875 if ( (signed int)v51 > 1920 ) 14879 if ( (signed int)v51 <= 1920 )
14876 goto LABEL_71; 14880 v73 = 7;
14877 v73 = 7;
14878 } 14881 }
14879 else 14882 else
14880 { 14883 {
14881 v73 = 6; 14884 v73 = 6;
14882 } 14885 }
14898 } 14901 }
14899 else 14902 else
14900 { 14903 {
14901 v73 = 2; 14904 v73 = 2;
14902 } 14905 }
14903 v50 = v73; 14906 if( (signed int)v51 <=1920)
14904 goto LABEL_71; 14907 v50 = v73;
14905 } 14908 }
14906 v50 = 1; 14909 else
14907 } 14910 v50 = 1;
14908 LABEL_71: 14911 }
14909 pRenderer->_4A6776( 14912 pRenderer->_4A6776(
14910 v47, 14913 v47,
14911 v49, 14914 v49,
14912 (Texture *)(pTextureIDs_pMapDirs[v50] != -1 ? (int)&pIcons_LOD->pTextures[pTextureIDs_pMapDirs[v50]] : 0)); 14915 (Texture *)(pTextureIDs_pMapDirs[v50] != -1 ? (int)&pIcons_LOD->pTextures[pTextureIDs_pMapDirs[v50]] : 0));
14913 } 14916 }