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