comparison mm7_4.cpp @ 59:5159d2e6f559

BLV render
author Nomad
date Fri, 26 Oct 2012 02:38:26 +0200
parents 41cbaabde2cb
children 30ec77bbd018
comparison
equal deleted inserted replaced
58:41cbaabde2cb 59:5159d2e6f559
592 while ( 1 ) 592 while ( 1 )
593 { 593 {
594 v11 = &v10->pFaces[v39]; 594 v11 = &v10->pFaces[v39];
595 v12 = v11->uPolygonType; 595 v12 = v11->uPolygonType;
596 if ( (v12 == 3 || v12 == 4) 596 if ( (v12 == 3 || v12 == 4)
597 && !(BYTE3(v11->uFaceAttributes) & 0x20) 597 && !(v11->uAttributes & 0x20000000)
598 && v8 <= v11->pBoundingBox.x2 598 && v8 <= v11->pBoundingBox.x2
599 && v8 >= v11->pBoundingBox.x1 599 && v8 >= v11->pBoundingBox.x1
600 && v7 <= v11->pBoundingBox.y2 600 && v7 <= v11->pBoundingBox.y2
601 && v7 >= v11->pBoundingBox.y1 ) 601 && v7 >= v11->pBoundingBox.y1 )
602 { 602 {
740 LABEL_56: 740 LABEL_56:
741 if ( v27 ) 741 if ( v27 )
742 { 742 {
743 v32 = &pOutdoor->pBModels[dword_721160[v27]].pFaces[dword_721110[v27]]; 743 v32 = &pOutdoor->pBModels[dword_721160[v27]].pFaces[dword_721110[v27]];
744 *a5 = 0; 744 *a5 = 0;
745 if ( v32->uFaceAttributes & 0x10 ) 745 if ( v32->uAttributes & 0x10 )
746 *a5 = 1; 746 *a5 = 1;
747 } 747 }
748 v33 = dword_7211B0[v27]; 748 v33 = dword_7211B0[v27];
749 result = dword_7211B0[0]; 749 result = dword_7211B0[0];
750 if ( v33 >= dword_7211B0[0] ) 750 if ( v33 >= dword_7211B0[0] )
823 while ( 1 ) 823 while ( 1 )
824 { 824 {
825 v7 = (ODMFace *)((char *)v6->pFaces + v30); 825 v7 = (ODMFace *)((char *)v6->pFaces + v30);
826 v8 = v7->uPolygonType; 826 v8 = v7->uPolygonType;
827 if ( (v8 == 5 || v8 == 6) 827 if ( (v8 == 5 || v8 == 6)
828 && !(BYTE3(v7->uFaceAttributes) & 0x20) 828 && !(BYTE3(v7->uAttributes) & 0x20)
829 && v4 <= v7->pBoundingBox.x2 829 && v4 <= v7->pBoundingBox.x2
830 && v4 >= v7->pBoundingBox.x1 830 && v4 >= v7->pBoundingBox.x1
831 && v40 <= v7->pBoundingBox.y2 831 && v40 <= v7->pBoundingBox.y2
832 && v40 >= v7->pBoundingBox.y1 ) 832 && v40 >= v7->pBoundingBox.y1 )
833 { 833 {
5883 pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640, 480, WINDOW_MainMenu, 0, 0); 5883 pGUIWindow_CurrentMenu = GUIWindow::Create(0, 0, 640, 480, WINDOW_MainMenu, 0, 0);
5884 uControlParama = 0; 5884 uControlParama = 0;
5885 uXa = 8; 5885 uXa = 8;
5886 do 5886 do
5887 { 5887 {
5888 pGUIWindow_CurrentMenu->CreateButton(uXa, 120u, 145u, 25u, 1, 0, 0x3Cu, uControlParama, 0, nullstring, 0); 5888 pGUIWindow_CurrentMenu->CreateButton(uXa, 120u, 145u, 25u, 1, 0, 0x3Cu, uControlParama, 0, "", 0);
5889 uXa += 158; 5889 uXa += 158;
5890 ++uControlParama; 5890 ++uControlParama;
5891 } 5891 }
5892 while ( (signed int)uXa < 640 ); 5892 while ( (signed int)uXa < 640 );
5893 pCreationUI_BtnPressLeft[0] = pGUIWindow_CurrentMenu->CreateButton( 5893 pCreationUI_BtnPressLeft[0] = pGUIWindow_CurrentMenu->CreateButton(
5898 1, 5898 1,
5899 0, 5899 0,
5900 0xABu, 5900 0xABu,
5901 0, 5901 0,
5902 0, 5902 0,
5903 nullstring, 5903 "",
5904 pTexture_presleft, 5904 pTexture_presleft,
5905 0); 5905 0);
5906 pCreationUI_BtnPressLeft[1] = pGUIWindow_CurrentMenu->CreateButton( 5906 pCreationUI_BtnPressLeft[1] = pGUIWindow_CurrentMenu->CreateButton(
5907 169u, 5907 169u,
5908 32u, 5908 32u,
5911 1, 5911 1,
5912 0, 5912 0,
5913 0xABu, 5913 0xABu,
5914 1u, 5914 1u,
5915 0, 5915 0,
5916 nullstring, 5916 "",
5917 pTexture_presleft, 5917 pTexture_presleft,
5918 0); 5918 0);
5919 pCreationUI_BtnPressLeft[2] = pGUIWindow_CurrentMenu->CreateButton( 5919 pCreationUI_BtnPressLeft[2] = pGUIWindow_CurrentMenu->CreateButton(
5920 327u, 5920 327u,
5921 32u, 5921 32u,
5924 1, 5924 1,
5925 0, 5925 0,
5926 0xABu, 5926 0xABu,
5927 2u, 5927 2u,
5928 0, 5928 0,
5929 nullstring, 5929 "",
5930 pTexture_presleft, 5930 pTexture_presleft,
5931 0); 5931 0);
5932 pCreationUI_BtnPressLeft[3] = pGUIWindow_CurrentMenu->CreateButton( 5932 pCreationUI_BtnPressLeft[3] = pGUIWindow_CurrentMenu->CreateButton(
5933 486u, 5933 486u,
5934 32u, 5934 32u,
5937 1, 5937 1,
5938 0, 5938 0,
5939 0xABu, 5939 0xABu,
5940 3u, 5940 3u,
5941 0, 5941 0,
5942 nullstring, 5942 "",
5943 pTexture_presleft, 5943 pTexture_presleft,
5944 0); 5944 0);
5945 pCreationUI_BtnPressRight[0] = pGUIWindow_CurrentMenu->CreateButton( 5945 pCreationUI_BtnPressRight[0] = pGUIWindow_CurrentMenu->CreateButton(
5946 74u, 5946 74u,
5947 32u, 5947 32u,
5950 1, 5950 1,
5951 0, 5951 0,
5952 0xACu, 5952 0xACu,
5953 0, 5953 0,
5954 0, 5954 0,
5955 nullstring, 5955 "",
5956 pTexture_pressrigh, 5956 pTexture_pressrigh,
5957 0); 5957 0);
5958 pCreationUI_BtnPressRight[1] = pGUIWindow_CurrentMenu->CreateButton( 5958 pCreationUI_BtnPressRight[1] = pGUIWindow_CurrentMenu->CreateButton(
5959 233u, 5959 233u,
5960 32u, 5960 32u,
5963 1, 5963 1,
5964 0, 5964 0,
5965 0xACu, 5965 0xACu,
5966 1u, 5966 1u,
5967 0, 5967 0,
5968 nullstring, 5968 "",
5969 pTexture_pressrigh, 5969 pTexture_pressrigh,
5970 0); 5970 0);
5971 pCreationUI_BtnPressRight[2] = pGUIWindow_CurrentMenu->CreateButton( 5971 pCreationUI_BtnPressRight[2] = pGUIWindow_CurrentMenu->CreateButton(
5972 391u, 5972 391u,
5973 32u, 5973 32u,
5976 1, 5976 1,
5977 0, 5977 0,
5978 0xACu, 5978 0xACu,
5979 2u, 5979 2u,
5980 0, 5980 0,
5981 nullstring, 5981 "",
5982 pTexture_pressrigh, 5982 pTexture_pressrigh,
5983 0); 5983 0);
5984 pCreationUI_BtnPressRight[3] = pGUIWindow_CurrentMenu->CreateButton( 5984 pCreationUI_BtnPressRight[3] = pGUIWindow_CurrentMenu->CreateButton(
5985 549u, 5985 549u,
5986 32u, 5986 32u,
5989 1, 5989 1,
5990 0, 5990 0,
5991 0xACu, 5991 0xACu,
5992 3u, 5992 3u,
5993 0, 5993 0,
5994 nullstring, 5994 "",
5995 pTexture_pressrigh, 5995 pTexture_pressrigh,
5996 0); 5996 0);
5997 pCreationUI_BtnPressLeft2[0] = pGUIWindow_CurrentMenu->CreateButton( 5997 pCreationUI_BtnPressLeft2[0] = pGUIWindow_CurrentMenu->CreateButton(
5998 10u, 5998 10u,
5999 103u, 5999 103u,
6002 1, 6002 1,
6003 0, 6003 0,
6004 0x90u, 6004 0x90u,
6005 0, 6005 0,
6006 0, 6006 0,
6007 nullstring, 6007 "",
6008 pTexture_presleft, 6008 pTexture_presleft,
6009 0); 6009 0);
6010 pCreationUI_BtnPressLeft2[1] = pGUIWindow_CurrentMenu->CreateButton( 6010 pCreationUI_BtnPressLeft2[1] = pGUIWindow_CurrentMenu->CreateButton(
6011 169u, 6011 169u,
6012 103u, 6012 103u,
6015 1, 6015 1,
6016 0, 6016 0,
6017 0x90u, 6017 0x90u,
6018 1u, 6018 1u,
6019 0, 6019 0,
6020 nullstring, 6020 "",
6021 pTexture_presleft, 6021 pTexture_presleft,
6022 0); 6022 0);
6023 pCreationUI_BtnPressLeft2[2] = pGUIWindow_CurrentMenu->CreateButton( 6023 pCreationUI_BtnPressLeft2[2] = pGUIWindow_CurrentMenu->CreateButton(
6024 327u, 6024 327u,
6025 103u, 6025 103u,
6028 1, 6028 1,
6029 0, 6029 0,
6030 0x90u, 6030 0x90u,
6031 2u, 6031 2u,
6032 0, 6032 0,
6033 nullstring, 6033 "",
6034 pTexture_presleft, 6034 pTexture_presleft,
6035 0); 6035 0);
6036 pCreationUI_BtnPressLeft2[3] = pGUIWindow_CurrentMenu->CreateButton( 6036 pCreationUI_BtnPressLeft2[3] = pGUIWindow_CurrentMenu->CreateButton(
6037 486u, 6037 486u,
6038 103u, 6038 103u,
6041 1, 6041 1,
6042 0, 6042 0,
6043 0x90u, 6043 0x90u,
6044 3u, 6044 3u,
6045 0, 6045 0,
6046 nullstring, 6046 "",
6047 pTexture_presleft, 6047 pTexture_presleft,
6048 0); 6048 0);
6049 pCreationUI_BtnPressRight2[0] = pGUIWindow_CurrentMenu->CreateButton( 6049 pCreationUI_BtnPressRight2[0] = pGUIWindow_CurrentMenu->CreateButton(
6050 74u, 6050 74u,
6051 103u, 6051 103u,
6054 1, 6054 1,
6055 0, 6055 0,
6056 0x91u, 6056 0x91u,
6057 0, 6057 0,
6058 0, 6058 0,
6059 nullstring, 6059 "",
6060 pTexture_pressrigh, 6060 pTexture_pressrigh,
6061 0); 6061 0);
6062 pCreationUI_BtnPressRight2[1] = pGUIWindow_CurrentMenu->CreateButton( 6062 pCreationUI_BtnPressRight2[1] = pGUIWindow_CurrentMenu->CreateButton(
6063 233u, 6063 233u,
6064 103u, 6064 103u,
6067 1, 6067 1,
6068 0, 6068 0,
6069 0x91u, 6069 0x91u,
6070 1u, 6070 1u,
6071 0, 6071 0,
6072 nullstring, 6072 "",
6073 pTexture_pressrigh, 6073 pTexture_pressrigh,
6074 0); 6074 0);
6075 pCreationUI_BtnPressRight2[2] = pGUIWindow_CurrentMenu->CreateButton( 6075 pCreationUI_BtnPressRight2[2] = pGUIWindow_CurrentMenu->CreateButton(
6076 391u, 6076 391u,
6077 103u, 6077 103u,
6080 1, 6080 1,
6081 0, 6081 0,
6082 0x91u, 6082 0x91u,
6083 2u, 6083 2u,
6084 0, 6084 0,
6085 nullstring, 6085 "",
6086 pTexture_pressrigh, 6086 pTexture_pressrigh,
6087 0); 6087 0);
6088 pCreationUI_BtnPressRight2[3] = pGUIWindow_CurrentMenu->CreateButton( 6088 pCreationUI_BtnPressRight2[3] = pGUIWindow_CurrentMenu->CreateButton(
6089 549u, 6089 549u,
6090 103u, 6090 103u,
6093 1, 6093 1,
6094 0, 6094 0,
6095 0x91u, 6095 0x91u,
6096 3u, 6096 3u,
6097 0, 6097 0,
6098 nullstring, 6098 "",
6099 pTexture_pressrigh, 6099 pTexture_pressrigh,
6100 0); 6100 0);
6101 uControlParamb = 0; 6101 uControlParamb = 0;
6102 uXb = 8; 6102 uXb = 8;
6103 do 6103 do
6104 { 6104 {
6105 pGUIWindow_CurrentMenu->CreateButton(uXb, 308u, 150u, v0, 1, 0, 0x48u, uControlParamb, 0, nullstring, 0); 6105 pGUIWindow_CurrentMenu->CreateButton(uXb, 308u, 150u, v0, 1, 0, 0x48u, uControlParamb, 0, "", 0);
6106 pGUIWindow_CurrentMenu->CreateButton( 6106 pGUIWindow_CurrentMenu->CreateButton(
6107 uXb, 6107 uXb,
6108 v0 + 308, 6108 v0 + 308,
6109 150u, 6109 150u,
6110 v0, 6110 v0,
6111 1, 6111 1,
6112 0, 6112 0,
6113 0x49u, 6113 0x49u,
6114 uControlParamb, 6114 uControlParamb,
6115 0, 6115 0,
6116 nullstring, 6116 "",
6117 0); 6117 0);
6118 pGUIWindow_CurrentMenu->CreateButton( 6118 pGUIWindow_CurrentMenu->CreateButton(
6119 uXb, 6119 uXb,
6120 2 * v0 + 308, 6120 2 * v0 + 308,
6121 150u, 6121 150u,
6123 1, 6123 1,
6124 0, 6124 0,
6125 0x4Au, 6125 0x4Au,
6126 uControlParamb, 6126 uControlParamb,
6127 0, 6127 0,
6128 nullstring, 6128 "",
6129 0); 6129 0);
6130 pGUIWindow_CurrentMenu->CreateButton( 6130 pGUIWindow_CurrentMenu->CreateButton(
6131 uXb, 6131 uXb,
6132 3 * v0 + 308, 6132 3 * v0 + 308,
6133 150u, 6133 150u,
6135 1, 6135 1,
6136 0, 6136 0,
6137 0x4Bu, 6137 0x4Bu,
6138 uControlParamb, 6138 uControlParamb,
6139 0, 6139 0,
6140 nullstring, 6140 "",
6141 0); 6141 0);
6142 uXb += 158; 6142 uXb += 158;
6143 ++uControlParamb; 6143 ++uControlParamb;
6144 } 6144 }
6145 while ( (signed int)uXb < 640 ); 6145 while ( (signed int)uXb < 640 );
6146 pGUIWindow_CurrentMenu->CreateButton(5u, 21u, 0x99u, 0x16Du, 1, 0, 0x76u, 0, 0x31u, nullstring, 0); 6146 pGUIWindow_CurrentMenu->CreateButton(5u, 21u, 0x99u, 0x16Du, 1, 0, 0x76u, 0, 0x31u, "", 0);
6147 pGUIWindow_CurrentMenu->CreateButton(163u, 21u, 0x99u, 0x16Du, 1, 0, 0x76u, 1u, 0x32u, nullstring, 0); 6147 pGUIWindow_CurrentMenu->CreateButton(163u, 21u, 0x99u, 0x16Du, 1, 0, 0x76u, 1u, 0x32u, "", 0);
6148 pGUIWindow_CurrentMenu->CreateButton(321u, 21u, 0x99u, 0x16Du, 1, 0, 0x76u, 2u, 0x33u, nullstring, 0); 6148 pGUIWindow_CurrentMenu->CreateButton(321u, 21u, 0x99u, 0x16Du, 1, 0, 0x76u, 2u, 0x33u, "", 0);
6149 pGUIWindow_CurrentMenu->CreateButton(479u, 21u, 0x99u, 0x16Du, 1, 0, 0x76u, 3u, 0x34u, nullstring, 0); 6149 pGUIWindow_CurrentMenu->CreateButton(479u, 21u, 0x99u, 0x16Du, 1, 0, 0x76u, 3u, 0x34u, "", 0);
6150 uXc = 23; 6150 uXc = 23;
6151 uControlParamc = 2; 6151 uControlParamc = 2;
6152 do 6152 do
6153 { 6153 {
6154 pGUIWindow_CurrentMenu->CreateButton(uXc, 169u, 120u, 20u, 1, 0, 0, uControlParamc - 2, 0, nullstring, 0); 6154 pGUIWindow_CurrentMenu->CreateButton(uXc, 169u, 120u, 20u, 1, 0, 0, uControlParamc - 2, 0, "", 0);
6155 pGUIWindow_CurrentMenu->CreateButton( 6155 pGUIWindow_CurrentMenu->CreateButton(
6156 uXc, 6156 uXc,
6157 v0 + 169, 6157 v0 + 169,
6158 120u, 6158 120u,
6159 20u, 6159 20u,
6160 1, 6160 1,
6161 0, 6161 0,
6162 0, 6162 0,
6163 uControlParamc - 1, 6163 uControlParamc - 1,
6164 0, 6164 0,
6165 nullstring, 6165 "",
6166 0); 6166 0);
6167 pGUIWindow_CurrentMenu->CreateButton( 6167 pGUIWindow_CurrentMenu->CreateButton(
6168 uXc, 6168 uXc,
6169 2 * v0 + 169, 6169 2 * v0 + 169,
6170 120u, 6170 120u,
6172 1, 6172 1,
6173 0, 6173 0,
6174 0, 6174 0,
6175 uControlParamc, 6175 uControlParamc,
6176 0, 6176 0,
6177 nullstring, 6177 "",
6178 0); 6178 0);
6179 pGUIWindow_CurrentMenu->CreateButton( 6179 pGUIWindow_CurrentMenu->CreateButton(
6180 uXc, 6180 uXc,
6181 3 * v0 + 169, 6181 3 * v0 + 169,
6182 120u, 6182 120u,
6184 1, 6184 1,
6185 0, 6185 0,
6186 0, 6186 0,
6187 uControlParamc + 1, 6187 uControlParamc + 1,
6188 0, 6188 0,
6189 nullstring, 6189 "",
6190 0); 6190 0);
6191 pGUIWindow_CurrentMenu->CreateButton( 6191 pGUIWindow_CurrentMenu->CreateButton(
6192 uXc, 6192 uXc,
6193 4 * v0 + 169, 6193 4 * v0 + 169,
6194 120u, 6194 120u,
6196 1, 6196 1,
6197 0, 6197 0,
6198 0, 6198 0,
6199 uControlParamc + 2, 6199 uControlParamc + 2,
6200 0, 6200 0,
6201 nullstring, 6201 "",
6202 0); 6202 0);
6203 pGUIWindow_CurrentMenu->CreateButton( 6203 pGUIWindow_CurrentMenu->CreateButton(
6204 uXc, 6204 uXc,
6205 5 * v0 + 169, 6205 5 * v0 + 169,
6206 120u, 6206 120u,
6208 1, 6208 1,
6209 0, 6209 0,
6210 0, 6210 0,
6211 uControlParamc + 3, 6211 uControlParamc + 3,
6212 0, 6212 0,
6213 nullstring, 6213 "",
6214 0); 6214 0);
6215 pGUIWindow_CurrentMenu->CreateButton( 6215 pGUIWindow_CurrentMenu->CreateButton(
6216 uXc, 6216 uXc,
6217 6 * v0 + 169, 6217 6 * v0 + 169,
6218 120u, 6218 120u,
6220 1, 6220 1,
6221 0, 6221 0,
6222 0, 6222 0,
6223 uControlParamc + 4, 6223 uControlParamc + 4,
6224 0, 6224 0,
6225 nullstring, 6225 "",
6226 0); 6226 0);
6227 uControlParamc += 7; 6227 uControlParamc += 7;
6228 uXc += 158; 6228 uXc += 158;
6229 } 6229 }
6230 while ( (signed int)uControlParamc < 30 ); 6230 while ( (signed int)uControlParamc < 30 );
6231 pGUIWindow_CurrentMenu->_41D08F(28, 0, 7, 40); 6231 pGUIWindow_CurrentMenu->_41D08F(28, 0, 7, 40);
6232 pGUIWindow_CurrentMenu->CreateButton(323u, 417u, 65u, v0, 1, 0, 0x41u, 0, 0, nullstring, 0); 6232 pGUIWindow_CurrentMenu->CreateButton(323u, 417u, 65u, v0, 1, 0, 0x41u, 0, 0, "", 0);
6233 pGUIWindow_CurrentMenu->CreateButton(323u, v0 + 417, 65u, v0, 1, 0, 0x41u, 0xCu, 0, nullstring, 0); 6233 pGUIWindow_CurrentMenu->CreateButton(323u, v0 + 417, 65u, v0, 1, 0, 0x41u, 0xCu, 0, "", 0);
6234 pGUIWindow_CurrentMenu->CreateButton(323u, 2 * v0 + 417, 65u, v0, 1, 0, 0x41u, 0x14u, 0, nullstring, 0); 6234 pGUIWindow_CurrentMenu->CreateButton(323u, 2 * v0 + 417, 65u, v0, 1, 0, 0x41u, 0x14u, 0, "", 0);
6235 pGUIWindow_CurrentMenu->CreateButton(388u, 417u, 65u, v0, 1, 0, 0x41u, 0x18u, 0, nullstring, 0); 6235 pGUIWindow_CurrentMenu->CreateButton(388u, 417u, 65u, v0, 1, 0, 0x41u, 0x18u, 0, "", 0);
6236 pGUIWindow_CurrentMenu->CreateButton(388u, v0 + 417, 65u, v0, 1, 0, 0x41u, 0x1Cu, 0, nullstring, 0); 6236 pGUIWindow_CurrentMenu->CreateButton(388u, v0 + 417, 65u, v0, 1, 0, 0x41u, 0x1Cu, 0, "", 0);
6237 pGUIWindow_CurrentMenu->CreateButton(388u, 2 * v0 + 417, 65u, v0, 1, 0, 0x41u, 0x20u, 0, nullstring, 0); 6237 pGUIWindow_CurrentMenu->CreateButton(388u, 2 * v0 + 417, 65u, v0, 1, 0, 0x41u, 0x20u, 0, "", 0);
6238 pGUIWindow_CurrentMenu->CreateButton(453u, 417u, 65u, v0, 1, 0, 0x41u, 0x10u, 0, nullstring, 0); 6238 pGUIWindow_CurrentMenu->CreateButton(453u, 417u, 65u, v0, 1, 0, 0x41u, 0x10u, 0, "", 0);
6239 pGUIWindow_CurrentMenu->CreateButton(453u, v0 + 417, 65u, v0, 1, 0, 0x41u, 8u, 0, nullstring, 0); 6239 pGUIWindow_CurrentMenu->CreateButton(453u, v0 + 417, 65u, v0, 1, 0, 0x41u, 8u, 0, "", 0);
6240 pGUIWindow_CurrentMenu->CreateButton(453u, 2 * v0 + 417, 65u, v0, 1, 0, 0x41u, 4u, 0, nullstring, 0); 6240 pGUIWindow_CurrentMenu->CreateButton(453u, 2 * v0 + 417, 65u, v0, 1, 0, 0x41u, 4u, 0, "", 0);
6241 uControlParamd = 0; 6241 uControlParamd = 0;
6242 do 6242 do
6243 { 6243 {
6244 uXd = -5; 6244 uXd = -5;
6245 if ( uControlParamd <= 3 ) 6245 if ( uControlParamd <= 3 )
6252 1, 6252 1,
6253 0, 6253 0,
6254 0x40u, 6254 0x40u,
6255 uControlParamd, 6255 uControlParamd,
6256 0, 6256 0,
6257 nullstring, 6257 "",
6258 0); 6258 0);
6259 ++uControlParamd; 6259 ++uControlParamd;
6260 } 6260 }
6261 while ( uControlParamd < 9 ); 6261 while ( uControlParamd < 9 );
6262 pPlayerCreationUI_BtnOK = pGUIWindow_CurrentMenu->CreateButton( 6262 pPlayerCreationUI_BtnOK = pGUIWindow_CurrentMenu->CreateButton(
6267 1, 6267 1,
6268 0, 6268 0,
6269 0x42u, 6269 0x42u,
6270 0, 6270 0,
6271 0xDu, 6271 0xDu,
6272 nullstring, 6272 "",
6273 (Texture *)(uTextureID_BUTTMAKE != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_BUTTMAKE] : 0), 6273 (Texture *)(uTextureID_BUTTMAKE != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_BUTTMAKE] : 0),
6274 0); 6274 0);
6275 pPlayerCreationUI_BtnReset = pGUIWindow_CurrentMenu->CreateButton( 6275 pPlayerCreationUI_BtnReset = pGUIWindow_CurrentMenu->CreateButton(
6276 527u, 6276 527u,
6277 431u, 6277 431u,
6280 1, 6280 1,
6281 0, 6281 0,
6282 0x43u, 6282 0x43u,
6283 0, 6283 0,
6284 0x43u, 6284 0x43u,
6285 nullstring, 6285 "",
6286 (Texture *)(uTextureID_BUTTMAKE2 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_BUTTMAKE2] : 0), 6286 (Texture *)(uTextureID_BUTTMAKE2 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_BUTTMAKE2] : 0),
6287 0); 6287 0);
6288 pPlayerCreationUI_BtnMinus = pGUIWindow_CurrentMenu->CreateButton( 6288 pPlayerCreationUI_BtnMinus = pGUIWindow_CurrentMenu->CreateButton(
6289 523u, 6289 523u,
6290 393u, 6290 393u,
6293 1, 6293 1,
6294 0, 6294 0,
6295 0x3Fu, 6295 0x3Fu,
6296 0, 6296 0,
6297 0x2Du, 6297 0x2Du,
6298 nullstring, 6298 "",
6299 pTexture_buttminu, 6299 pTexture_buttminu,
6300 0); 6300 0);
6301 pPlayerCreationUI_BtnPlus = pGUIWindow_CurrentMenu->CreateButton( 6301 pPlayerCreationUI_BtnPlus = pGUIWindow_CurrentMenu->CreateButton(
6302 613u, 6302 613u,
6303 393u, 6303 393u,
6306 1, 6306 1,
6307 0, 6307 0,
6308 0x3Eu, 6308 0x3Eu,
6309 1u, 6309 1u,
6310 0x2Bu, 6310 0x2Bu,
6311 nullstring, 6311 "",
6312 pTexture_buttplus, 6312 pTexture_buttplus,
6313 0); 6313 0);
6314 pFontCChar = LoadFont("cchar.fnt", "FONTPAL", 0); 6314 pFontCChar = LoadFont("cchar.fnt", "FONTPAL", 0);
6315 } 6315 }
6316 // 4E28F8: using guessed type int pCurrentScreen; 6316 // 4E28F8: using guessed type int pCurrentScreen;
6712 pString, 6712 pString,
6713 v21.pPixels, 6713 v21.pPixels,
6714 (signed __int16)v21.uWidth); 6714 (signed __int16)v21.uWidth);
6715 free(pString); 6715 free(pString);
6716 pWindow_MainMenu = GUIWindow::Create(0, 0, 640, 480, WINDOW_MainMenu, 0, (int)ptr); 6716 pWindow_MainMenu = GUIWindow::Create(0, 0, 640, 480, WINDOW_MainMenu, 0, (int)ptr);
6717 pWindow_MainMenu->CreateButton(0, 0, 0, 0, 1, 0, 0x71u, 0, 0x1Bu, nullstring, 0); 6717 pWindow_MainMenu->CreateButton(0, 0, 0, 0, 1, 0, 0x71u, 0, 0x1Bu, "", 0);
6718 pCurrentScreen = 9; 6718 pCurrentScreen = 9;
6719 SetCurrentMenuID(MENU_Credits); 6719 SetCurrentMenuID(MENU_Credits);
6720 pRenderer->BeginScene(); 6720 pRenderer->BeginScene();
6721 pRenderer->DrawTextureRGB(0, 0, &v16); 6721 pRenderer->DrawTextureRGB(0, 0, &v16);
6722 pRenderer->Clip(a2, a3, a2 + v20, a3 + a4); 6722 pRenderer->Clip(a2, a3, a2 + v20, a3 + a4);
6853 } 6853 }
6854 else 6854 else
6855 { 6855 {
6856 result = 1; 6856 result = 1;
6857 } 6857 }
6858 v3->vNormal.x = v.x; 6858 v3->face_plane.vNormal.x = v.x;
6859 v3->vNormal.y = v.y; 6859 v3->face_plane.vNormal.y = v.y;
6860 v3->vNormal.z = v.z; 6860 v3->face_plane.vNormal.z = v.z;
6861 v3->field_10 = *(float *)&a3; 6861 v3->face_plane.dist = *(float *)&a3;
6862 v3->field_14 = result; 6862 v3->polygonType = (PolygonType)result;
6863 return result; 6863 return result;
6864 } 6864 }
6865 6865
6866 //----- (0049B0C9) -------------------------------------------------------- 6866 //----- (0049B0C9) --------------------------------------------------------
6867 int stru154::_49B0C9(Vec3_float_ *pNormal, float a3) 6867 int stru154::_49B0C9(Vec3_float_ *pNormal, float dist)
6868 { 6868 {
6869 signed int v3; // esi@1 6869 signed int v3; // esi@1
6870 signed int result; // eax@9 6870 signed int result; // eax@9
6871 double v5; // st7@12 6871 double v5; // st7@12
6872 double v6; // st6@12 6872 double v6; // st6@12
6896 result = 1; 6896 result = 1;
6897 } 6897 }
6898 v5 = pNormal->z; 6898 v5 = pNormal->z;
6899 v6 = pNormal->y; 6899 v6 = pNormal->y;
6900 v7 = pNormal->x; 6900 v7 = pNormal->x;
6901 this->field_14 = result; 6901 this->polygonType = (PolygonType)result;
6902 this->vNormal.x = v7; 6902 this->face_plane.vNormal.x = v7;
6903 this->field_10 = a3; 6903 this->face_plane.dist = dist;
6904 this->vNormal.y = v6; 6904 this->face_plane.vNormal.y = v6;
6905 this->vNormal.z = v5; 6905 this->face_plane.vNormal.z = v5;
6906 return result; 6906 return result;
6907 } 6907 }
6908 6908
6909 //----- (0049B13D) -------------------------------------------------------- 6909 //----- (0049B13D) --------------------------------------------------------
6910 int stru154::_49B13D(ODMFace *pFace, BSPVertexBuffer *pVertices, Vec3_float_ *a3, float *a4) 6910 int stru154::_49B13D(ODMFace *pFace, BSPVertexBuffer *pVertices, Vec3_float_ *a3, float *a4)
7977 sub_4AE5F1(v2); 7977 sub_4AE5F1(v2);
7978 ++pBLVRenderParams->field_84; 7978 ++pBLVRenderParams->field_84;
7979 v6 = stru_F8AD28.pDeltaUV[0]; 7979 v6 = stru_F8AD28.pDeltaUV[0];
7980 v116 = stru_F8AD28.pDeltaUV[1]; 7980 v116 = stru_F8AD28.pDeltaUV[1];
7981 v7 = 0; 7981 v7 = 0;
7982 for ( i = bUseLoResSprites; v7 < stru_F8AD28.field_AC; *(int *)v9 = v10 ) 7982 for ( i = bUseLoResSprites; v7 < stru_F8AD28.uNumLightsApplied; *(int *)v9 = v10 )
7983 { 7983 {
7984 v8 = v116; 7984 v8 = v116;
7985 stru_F8AD28._blv_lights_xs[v7] += v6; 7985 stru_F8AD28._blv_lights_xs[v7] += v6;
7986 v9 = 4 * v7 + 16297672; 7986 v9 = 4 * v7 + 16297672;
7987 v10 = v8 - stru_F8AD28._blv_lights_ys[v7++]; 7987 v10 = v8 - stru_F8AD28._blv_lights_ys[v7++];
8476 v10 = v4->pLevelOfDetail0; 8476 v10 = v4->pLevelOfDetail0;
8477 LOBYTE(v2->uAttributes) |= 0x80u; 8477 LOBYTE(v2->uAttributes) |= 0x80u;
8478 v48 = v9; 8478 v48 = v9;
8479 v50 = v10; 8479 v50 = v10;
8480 sub_4AF412(); 8480 sub_4AF412();
8481 ++pBLVRenderParams->field_80; 8481 ++pBLVRenderParams->uNumFacesRenderedThisFrame;
8482 v11 = sr_sub_47C24C_get_palette(v2, v4->palette_id2, 0, 1); 8482 v11 = sr_sub_47C24C_get_palette(v2, v4->palette_id2, 0, 1);
8483 v12 = stru_F8A590._viewport_space_y; 8483 v12 = stru_F8A590._viewport_space_y;
8484 v51 = v11; 8484 v51 = v11;
8485 v60 = stru_F8A590._viewport_space_y; 8485 v60 = stru_F8A590._viewport_space_y;
8486 if ( stru_F8A590._viewport_space_y <= stru_F8A590.field_4 ) 8486 if ( stru_F8A590._viewport_space_y <= stru_F8A590.field_4 )
8742 int v16; // [sp+14h] [bp-8h]@1 8742 int v16; // [sp+14h] [bp-8h]@1
8743 int v17; // [sp+18h] [bp-4h]@1 8743 int v17; // [sp+18h] [bp-4h]@1
8744 8744
8745 v2 = a1 >> SLOBYTE(stru_F8AD28.field_38); 8745 v2 = a1 >> SLOBYTE(stru_F8AD28.field_38);
8746 v3 = a2 >> SLOBYTE(stru_F8AD28.field_38); 8746 v3 = a2 >> SLOBYTE(stru_F8AD28.field_38);
8747 v17 = stru_F8AD28.field_2C; 8747 v17 = stru_F8AD28.uCurrentAmbientLightLevel;
8748 v4 = 0; 8748 v4 = 0;
8749 v15 = v2; 8749 v15 = v2;
8750 v16 = 0; 8750 v16 = 0;
8751 if ( stru_F8AD28.field_AC > 0 ) 8751 if ( stru_F8AD28.uNumLightsApplied > 0 )
8752 { 8752 {
8753 do 8753 do
8754 { 8754 {
8755 v5 = v16; 8755 v5 = v16;
8756 v13 = abs(v2 - stru_F8AD28._blv_lights_xs[v16]); 8756 v13 = abs(v2 - stru_F8AD28._blv_lights_xs[v16]);
8779 if ( (signed int)v11 < stru_F8AD28._blv_lights_radii[v5] ) 8779 if ( (signed int)v11 < stru_F8AD28._blv_lights_radii[v5] )
8780 v17 += 30 * (v11 * stru_F8AD28._blv_lights_inv_radii[v5] - 65536); 8780 v17 += 30 * (v11 * stru_F8AD28._blv_lights_inv_radii[v5] - 65536);
8781 ++v16; 8781 ++v16;
8782 v2 = v15; 8782 v2 = v15;
8783 } 8783 }
8784 while ( v16 < stru_F8AD28.field_AC ); 8784 while ( v16 < stru_F8AD28.uNumLightsApplied );
8785 v4 = 0; 8785 v4 = 0;
8786 } 8786 }
8787 if ( stru_F8AD28.field_3E4 != v4 ) 8787 if ( stru_F8AD28.field_3E4 != v4 )
8788 v17 -= stru_F8AD28.field_3E8 * (v2 - stru_F8AD28.field_3F0) + stru_F8AD28.field_3EC * (v3 - stru_F8AD28.field_3F4); 8788 v17 -= stru_F8AD28.field_3E8 * (v2 - stru_F8AD28.field_3F0) + stru_F8AD28.field_3EC * (v3 - stru_F8AD28.field_3F4);
8789 if ( v17 >= v4 ) 8789 if ( v17 >= v4 )
8923 stru_F8AD28.vec_14.y = v67.y; 8923 stru_F8AD28.vec_14.y = v67.y;
8924 stru_F8AD28.vec_14.z = v67.z; 8924 stru_F8AD28.vec_14.z = v67.z;
8925 stru_F8AD28.vec_20.x = v66.x; 8925 stru_F8AD28.vec_20.x = v66.x;
8926 stru_F8AD28.vec_20.y = v66.y; 8926 stru_F8AD28.vec_20.y = v66.y;
8927 stru_F8AD28.vec_20.z = v66.z; 8927 stru_F8AD28.vec_20.z = v66.z;
8928 stru_F8AD28.field_3F8 = v2->field_22; 8928 stru_F8AD28.uDefaultAmbientLightLevel = v2->field_22;
8929 if ( pBLVRenderParams->sPartyRotX ) 8929 if ( pBLVRenderParams->sPartyRotX )
8930 { 8930 {
8931 v74 = (unsigned __int64)(stru_F8AD28.plane_4.vNormal.y * (signed __int64)pBLVRenderParams->sSineY) >> 16; 8931 v74 = (unsigned __int64)(stru_F8AD28.plane_4.vNormal.y * (signed __int64)pBLVRenderParams->sSineY) >> 16;
8932 v74 = ((unsigned __int64)(stru_F8AD28.plane_4.vNormal.x * (signed __int64)pBLVRenderParams->sCosineY) >> 16) - v74; 8932 v74 = ((unsigned __int64)(stru_F8AD28.plane_4.vNormal.x * (signed __int64)pBLVRenderParams->sCosineY) >> 16) - v74;
8933 X = (unsigned __int64)(stru_F8AD28.plane_4.vNormal.z * (signed __int64)pBLVRenderParams->sSineNegX) >> 16; 8933 X = (unsigned __int64)(stru_F8AD28.plane_4.vNormal.z * (signed __int64)pBLVRenderParams->sSineNegX) >> 16;
9044 v16 = 0.0039215689; 9044 v16 = 0.0039215689;
9045 v17 = 116 * v1->uSectorID; 9045 v17 = 116 * v1->uSectorID;
9046 v69 = v17; 9046 v69 = v17;
9047 v74 = 0; 9047 v74 = 0;
9048 v73 = 0; 9048 v73 = 0;
9049 stru_F8AD28.field_2C = (stru_F8AD28.field_3F8 + *(__int16 *)((char *)&pIndoor->pSectors->uMinAmbientLightLevel + v17)) << 16; 9049 stru_F8AD28.uCurrentAmbientLightLevel = (stru_F8AD28.uDefaultAmbientLightLevel + *(__int16 *)((char *)&pIndoor->pSectors->uMinAmbientLightLevel + v17)) << 16;
9050 v70 = uNumMobileLightsApplied; 9050 v70 = pMobileLightsStack->uNumLightsActive;
9051 if ( uNumMobileLightsApplied > 0 ) 9051 if ( pMobileLightsStack->uNumLightsActive > 0 )
9052 { 9052 {
9053 v18 = (char *)&pMobileLights[0].vPosition.y; 9053 v18 = (char *)&pMobileLightsStack->pLights[0].vPosition.y;
9054 do 9054 do
9055 { 9055 {
9056 if ( v74 >= 20 ) 9056 if ( v74 >= 20 )
9057 break; 9057 break;
9058 v19 = *((short *)v18 + 2); 9058 v19 = *((short *)v18 + 2);
9097 v16 = 0.0039215689; 9097 v16 = 0.0039215689;
9098 stru_F8AD28._blv_lights_light_dot_faces[v24] = abs(v23); 9098 stru_F8AD28._blv_lights_light_dot_faces[v24] = abs(v23);
9099 v28 = v74; 9099 v28 = v74;
9100 v29 = v18[9]; 9100 v29 = v18[9];
9101 ++v74; 9101 ++v74;
9102 stru_F8AD28._blv_lights_smthngs[v28] = v29; 9102 stru_F8AD28._blv_lights_types[v28] = v29;
9103 } 9103 }
9104 } 9104 }
9105 } 9105 }
9106 } 9106 }
9107 } 9107 }
9165 v68 = (BLVFaceExtra *)v32->uBlue; 9165 v68 = (BLVFaceExtra *)v32->uBlue;
9166 stru_F8AD28._blv_lights_bs[v39] = (double)(signed int)v68 * v16; 9166 stru_F8AD28._blv_lights_bs[v39] = (double)(signed int)v68 * v16;
9167 v16 = 0.0039215689; 9167 v16 = 0.0039215689;
9168 stru_F8AD28._blv_lights_light_dot_faces[v39] = abs(v38); 9168 stru_F8AD28._blv_lights_light_dot_faces[v39] = abs(v38);
9169 v40 = v74++; 9169 v40 = v74++;
9170 stru_F8AD28._blv_lights_smthngs[v40] = 1; 9170 stru_F8AD28._blv_lights_types[v40] = 1;
9171 } 9171 }
9172 } 9172 }
9173 } 9173 }
9174 } 9174 }
9175 } 9175 }
9182 break; 9182 break;
9183 v17 = v69; 9183 v17 = v69;
9184 } 9184 }
9185 } 9185 }
9186 v73 = 0; 9186 v73 = 0;
9187 if ( uNumStationaryLightsApplied > 0 ) 9187 if ( pStationaryLightsStack->uNumLightsActive > 0 )
9188 { 9188 {
9189 v41 = (char *)&pStationaryLights[0].vPosition.y; 9189 v41 = (char *)&pStationaryLightsStack->pLights[0].vPosition.y;
9190 do 9190 do
9191 { 9191 {
9192 if ( v74 >= 20 ) 9192 if ( v74 >= 20 )
9193 break; 9193 break;
9194 v42 = *((short *)v41 + 2); 9194 v42 = *((short *)v41 + 2);
9233 stru_F8AD28._blv_lights_gs[v48] = v51 * v16; 9233 stru_F8AD28._blv_lights_gs[v48] = v51 * v16;
9234 stru_F8AD28._blv_lights_bs[v48] = (double)(signed int)v68 * v16; 9234 stru_F8AD28._blv_lights_bs[v48] = (double)(signed int)v68 * v16;
9235 v16 = 0.0039215689; 9235 v16 = 0.0039215689;
9236 stru_F8AD28._blv_lights_light_dot_faces[v48] = abs(v47); 9236 stru_F8AD28._blv_lights_light_dot_faces[v48] = abs(v47);
9237 v52 = v74++; 9237 v52 = v74++;
9238 stru_F8AD28._blv_lights_smthngs[v52] = 1; 9238 stru_F8AD28._blv_lights_types[v52] = 1;
9239 } 9239 }
9240 } 9240 }
9241 } 9241 }
9242 } 9242 }
9243 } 9243 }
9245 } 9245 }
9246 } 9246 }
9247 ++v73; 9247 ++v73;
9248 v41 += 12; 9248 v41 += 12;
9249 } 9249 }
9250 while ( v73 < uNumStationaryLightsApplied ); 9250 while ( v73 < pStationaryLightsStack->uNumLightsActive );
9251 } 9251 }
9252 stru_F8AD28.field_AC = v74; 9252 stru_F8AD28.uNumLightsApplied = v74;
9253 v53 = v1->pBounding.x2; 9253 v53 = v1->pBounding.x2;
9254 if ( pBLVRenderParams->vPartyPos.x <= v53 ) 9254 if ( pBLVRenderParams->vPartyPos.x <= v53 )
9255 { 9255 {
9256 v55 = v1->pBounding.x1; 9256 v55 = v1->pBounding.x1;
9257 if ( pBLVRenderParams->vPartyPos.x >= v55 ) 9257 if ( pBLVRenderParams->vPartyPos.x >= v55 )
9350 stru_F8AD28.vec_14.x = 65536; 9350 stru_F8AD28.vec_14.x = 65536;
9351 stru_F8AD28.vec_14.y = 0; 9351 stru_F8AD28.vec_14.y = 0;
9352 stru_F8AD28.vec_14.z = 0; 9352 stru_F8AD28.vec_14.z = 0;
9353 stru_F8AD28.vec_20.x = 0; 9353 stru_F8AD28.vec_20.x = 0;
9354 stru_F8AD28.vec_20.z = 0; 9354 stru_F8AD28.vec_20.z = 0;
9355 stru_F8AD28.field_3F8 = 0; 9355 stru_F8AD28.uDefaultAmbientLightLevel = 0;
9356 if ( pBLVRenderParams->sPartyRotX ) 9356 if ( pBLVRenderParams->sPartyRotX )
9357 { 9357 {
9358 v0 = ((unsigned __int64)(stru_F8AD28.plane_4.vNormal.x * (signed __int64)pBLVRenderParams->sCosineY) >> 16) 9358 v0 = ((unsigned __int64)(stru_F8AD28.plane_4.vNormal.x * (signed __int64)pBLVRenderParams->sCosineY) >> 16)
9359 - ((unsigned __int64)(stru_F8AD28.plane_4.vNormal.y * (signed __int64)pBLVRenderParams->sSineY) >> 16); 9359 - ((unsigned __int64)(stru_F8AD28.plane_4.vNormal.y * (signed __int64)pBLVRenderParams->sSineY) >> 16);
9360 stru_F8AD28.rotated_normal.x = ((unsigned __int64)(v0 * (signed __int64)pBLVRenderParams->sCosineNegX) >> 16) 9360 stru_F8AD28.rotated_normal.x = ((unsigned __int64)(v0 * (signed __int64)pBLVRenderParams->sCosineNegX) >> 16)
9448 stru_F8AD28.field_A8 = -(((unsigned __int64)(stru_F8AD28.vec_70.x * (signed __int64)v5) >> 16) 9448 stru_F8AD28.field_A8 = -(((unsigned __int64)(stru_F8AD28.vec_70.x * (signed __int64)v5) >> 16)
9449 + ((unsigned __int64)(stru_F8AD28.vec_70.y * (signed __int64)v3) >> 16) 9449 + ((unsigned __int64)(stru_F8AD28.vec_70.y * (signed __int64)v3) >> 16)
9450 + ((unsigned __int64)(stru_F8AD28.vec_70.z * (signed __int64)v7) >> 16)); 9450 + ((unsigned __int64)(stru_F8AD28.vec_70.z * (signed __int64)v7) >> 16));
9451 stru_F8AD28.field_38 = 0; 9451 stru_F8AD28.field_38 = 0;
9452 stru_F8AD28.field_3E4 = 0; 9452 stru_F8AD28.field_3E4 = 0;
9453 stru_F8AD28.field_2C = 0; 9453 stru_F8AD28.uCurrentAmbientLightLevel = 0;
9454 stru_F8AD28.field_AC = 0; 9454 stru_F8AD28.uNumLightsApplied = 0;
9455 stru_F8AD28.field_34 = 0; 9455 stru_F8AD28.field_34 = 0;
9456 return result; 9456 return result;
9457 } 9457 }
9458 9458
9459 9459
10810 v31 = *(int *)v29; 10810 v31 = *(int *)v29;
10811 v32 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu); 10811 v32 = GenerateColorAsCloseAsPossibleToR8G8B8InTargetFormat(0xFFu, 0xFFu, 0x9Bu);
10812 sprintfex(pTmpBuf, &byte_4F0F98, v32, v31, v30); 10812 sprintfex(pTmpBuf, &byte_4F0F98, v32, v31, v30);
10813 sprintfex(pTmpBuf2, dword_F8B1A4, pTmpBuf, 100 * (unsigned __int8)v29[8]); 10813 sprintfex(pTmpBuf2, dword_F8B1A4, pTmpBuf, 100 * (unsigned __int8)v29[8]);
10814 ptr_F8B1E8 = pTmpBuf2; 10814 ptr_F8B1E8 = pTmpBuf2;
10815 v15 = nullstring; 10815 v15 = "";
10816 goto LABEL_45; 10816 goto LABEL_45;
10817 } 10817 }
10818 if ( v28 != 10 ) 10818 if ( v28 != 10 )
10819 goto LABEL_41; 10819 goto LABEL_41;
10820 } 10820 }
10826 LABEL_33: 10826 LABEL_33:
10827 v15 = (&dword_721660)[8 * v23]; 10827 v15 = (&dword_721660)[8 * v23];
10828 if ( !v15 ) 10828 if ( !v15 )
10829 { 10829 {
10830 v16->uControlParam = 0; 10830 v16->uControlParam = 0;
10831 v15 = nullstring; 10831 v15 = "";
10832 } 10832 }
10833 goto LABEL_49; 10833 goto LABEL_49;
10834 } 10834 }
10835 v18 = v17 - 13; 10835 v18 = v17 - 13;
10836 if ( v18 ) 10836 if ( v18 )
10846 { 10846 {
10847 v15 = (&dword_721660)[8 * v58->evtb]; 10847 v15 = (&dword_721660)[8 * v58->evtb];
10848 if ( !v15 ) 10848 if ( !v15 )
10849 { 10849 {
10850 v16->uControlParam = 0; 10850 v16->uControlParam = 0;
10851 v15 = nullstring; 10851 v15 = "";
10852 } 10852 }
10853 if ( uDialogueType != 84 ) 10853 if ( uDialogueType != 84 )
10854 goto LABEL_49; 10854 goto LABEL_49;
10855 sprintfex(pTmpBuf, format_4E2D80, v55, pItemsTable->pItems[dword_F8B1A8].pUnidentifiedName); 10855 sprintfex(pTmpBuf, format_4E2D80, v55, pItemsTable->pItems[dword_F8B1A8].pUnidentifiedName);
10856 sprintfex(pTmpBuf2, ptr_F8B1E8, pTmpBuf); 10856 sprintfex(pTmpBuf2, ptr_F8B1E8, pTmpBuf);
10873 { 10873 {
10874 v23 = v58->evte; 10874 v23 = v58->evte;
10875 goto LABEL_33; 10875 goto LABEL_33;
10876 } 10876 }
10877 LABEL_41: 10877 LABEL_41:
10878 v15 = nullstring; 10878 v15 = "";
10879 goto LABEL_49; 10879 goto LABEL_49;
10880 } 10880 }
10881 v15 = pGlobalTXT_LocalizationStrings[122]; 10881 v15 = pGlobalTXT_LocalizationStrings[122];
10882 } 10882 }
10883 LABEL_49: 10883 LABEL_49:
10979 1, 10979 1,
10980 0, 10980 0,
10981 0x195u, 10981 0x195u,
10982 a2, 10982 a2,
10983 0, 10983 0,
10984 nullstring, 10984 "",
10985 0); 10985 0);
10986 } 10986 }
10987 10987
10988 //----- (004B3703) -------------------------------------------------------- 10988 //----- (004B3703) --------------------------------------------------------
10989 int __thiscall sub_4B3703(void *_this) 10989 int __thiscall sub_4B3703(void *_this)
11699 0, 11699 0,
11700 0, 11700 0,
11701 pGlobalTXT_LocalizationStrings[34], 11701 pGlobalTXT_LocalizationStrings[34],
11702 (Texture *)(uTextureID_506438 != -1 ? &pIcons_LOD->pTextures[uTextureID_506438] : 0), 11702 (Texture *)(uTextureID_506438 != -1 ? &pIcons_LOD->pTextures[uTextureID_506438] : 0),
11703 0); 11703 0);
11704 pDialogueWindow->CreateButton(0, 0, 0, 0, 1, 0, 0x51u, 0, 0, nullstring, 0); 11704 pDialogueWindow->CreateButton(0, 0, 0, 0, 1, 0, 0x51u, 0, 0, "", 0);
11705 pDialogueWindow->CreateButton( 11705 pDialogueWindow->CreateButton(
11706 0x1E0u, 11706 0x1E0u,
11707 0xA0u, 11707 0xA0u,
11708 0x8Cu, 11708 0x8Cu,
11709 0x1Eu, 11709 0x1Eu,
11729 uDialogueType = 78; 11729 uDialogueType = 78;
11730 ptr_F8B1E8 = (char *)pNPCTopics[a4 + 168].pText; 11730 ptr_F8B1E8 = (char *)pNPCTopics[a4 + 168].pText;
11731 _4B254D_SkillMasteryTeacher(a4); 11731 _4B254D_SkillMasteryTeacher(a4);
11732 pDialogueWindow->Release(); 11732 pDialogueWindow->Release();
11733 pDialogueWindow = GUIWindow::Create(0, 0, 640, 0x15Eu, WINDOW_MainMenu, v1, 0); 11733 pDialogueWindow = GUIWindow::Create(0, 0, 640, 0x15Eu, WINDOW_MainMenu, v1, 0);
11734 v2 = nullstring; 11734 v2 = "";
11735 ptr_5076F4 = pDialogueWindow->CreateButton( 11735 ptr_5076F4 = pDialogueWindow->CreateButton(
11736 0x1D7u, 11736 0x1D7u,
11737 0x1BDu, 11737 0x1BDu,
11738 0xA9u, 11738 0xA9u,
11739 0x23u, 11739 0x23u,
11743 0, 11743 0,
11744 0, 11744 0,
11745 pGlobalTXT_LocalizationStrings[34], 11745 pGlobalTXT_LocalizationStrings[34],
11746 (Texture *)(uTextureID_506438 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_506438] : 0), 11746 (Texture *)(uTextureID_506438 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_506438] : 0),
11747 0); 11747 0);
11748 pDialogueWindow->CreateButton(0, 0, 0, 0, 1, 0, 0x51u, 0, 0, nullstring, 0); 11748 pDialogueWindow->CreateButton(0, 0, 0, 0, 1, 0, 0x51u, 0, 0, "", 0);
11749 if ( dword_F8B1A8 ) 11749 if ( dword_F8B1A8 )
11750 v2 = pGlobalTXT_LocalizationStrings[535]; 11750 v2 = pGlobalTXT_LocalizationStrings[535];
11751 pDialogueWindow->CreateButton(0x1E0u, 0xA0u, 0x8Cu, 0x1Eu, 1, 0, 0xAFu, 0x4Fu, 0, v2, 0); 11751 pDialogueWindow->CreateButton(0x1E0u, 0xA0u, 0x8Cu, 0x1Eu, 1, 0, 0xAFu, 0x4Fu, 0, v2, 0);
11752 pDialogueWindow->_41D08F(1, 1, 0, 2); 11752 pDialogueWindow->_41D08F(1, 1, 0, 2);
11753 dword_F8B19C = -1; 11753 dword_F8B19C = -1;
11776 0, 11776 0,
11777 0, 11777 0,
11778 pGlobalTXT_LocalizationStrings[34], 11778 pGlobalTXT_LocalizationStrings[34],
11779 (Texture *)(uTextureID_506438 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_506438] : 0), 11779 (Texture *)(uTextureID_506438 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_506438] : 0),
11780 0); 11780 0);
11781 pDialogueWindow->CreateButton(0, 0, 0, 0, 1, 0, 0x51u, 0, 0, nullstring, 0); 11781 pDialogueWindow->CreateButton(0, 0, 0, 0, 1, 0, 0x51u, 0, 0, "", 0);
11782 if ( *(&pNPCStats->field_13A5C + 5 * v1->uProfession) ) 11782 if ( *(&pNPCStats->field_13A5C + 5 * v1->uProfession) )
11783 { 11783 {
11784 pDialogueWindow->CreateButton( 11784 pDialogueWindow->CreateButton(
11785 0x1E0u, 11785 0x1E0u,
11786 0xA0u, 11786 0xA0u,
11905 0, 11905 0,
11906 0, 11906 0,
11907 pGlobalTXT_LocalizationStrings[74],// "End Conversation" 11907 pGlobalTXT_LocalizationStrings[74],// "End Conversation"
11908 (Texture *)(uTextureID_506438 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_506438] : 0), 11908 (Texture *)(uTextureID_506438 != -1 ? (int)&pIcons_LOD->pTextures[uTextureID_506438] : 0),
11909 0); 11909 0);
11910 pDialogueWindow->CreateButton(8u, 8u, 0x1C2u, 0x140u, 1, 0, 0x51u, 0, 0, nullstring, 0); 11910 pDialogueWindow->CreateButton(8u, 8u, 0x1C2u, 0x140u, 1, 0, 0x51u, 0, 0, "", 0);
11911 if ( array_5913D8[6] == (NPCData *)1 && dword_591080 ) 11911 if ( array_5913D8[6] == (NPCData *)1 && dword_591080 )
11912 { 11912 {
11913 result = (GUIButton *)sub_4B3B42(dword_F8B198); 11913 result = (GUIButton *)sub_4B3B42(dword_F8B198);
11914 } 11914 }
11915 else 11915 else
11916 { 11916 {
11917 if ( v17->joins ) 11917 if ( v17->joins )
11918 { 11918 {
11919 v1 = 1; 11919 v1 = 1;
11920 pDialogueWindow->CreateButton(480u, 160u, 140u, 30u, 1, 0, 0xAFu, 0xDu, 0, nullstring, 0); 11920 pDialogueWindow->CreateButton(480u, 160u, 140u, 30u, 1, 0, 0xAFu, 0xDu, 0, "", 0);
11921 } 11921 }
11922 v5 = (void *)v17->bDrawSomeAnim; 11922 v5 = (void *)v17->bDrawSomeAnim;
11923 if ( v5 ) 11923 if ( v5 )
11924 { 11924 {
11925 if ( v1 < 4 ) 11925 if ( v1 < 4 )
11934 1, 11934 1,
11935 0, 11935 0,
11936 0xAFu, 11936 0xAFu,
11937 0x13u, 11937 0x13u,
11938 0, 11938 0,
11939 nullstring, 11939 "",
11940 0); 11940 0);
11941 } 11941 }
11942 } 11942 }
11943 v7 = (void *)v17->evtb; 11943 v7 = (void *)v17->evtb;
11944 if ( v7 ) 11944 if ( v7 )
11955 1, 11955 1,
11956 0, 11956 0,
11957 0xAFu, 11957 0xAFu,
11958 0x14u, 11958 0x14u,
11959 0, 11959 0,
11960 nullstring, 11960 "",
11961 0); 11961 0);
11962 } 11962 }
11963 } 11963 }
11964 v9 = (void *)v17->evtc; 11964 v9 = (void *)v17->evtc;
11965 if ( v9 ) 11965 if ( v9 )
11976 1, 11976 1,
11977 0, 11977 0,
11978 0xAFu, 11978 0xAFu,
11979 0x15u, 11979 0x15u,
11980 0, 11980 0,
11981 nullstring, 11981 "",
11982 0); 11982 0);
11983 } 11983 }
11984 } 11984 }
11985 v11 = (void *)v17->evtd; 11985 v11 = (void *)v17->evtd;
11986 if ( v11 ) 11986 if ( v11 )
11997 1, 11997 1,
11998 0, 11998 0,
11999 0xAFu, 11999 0xAFu,
12000 0x16u, 12000 0x16u,
12001 0, 12001 0,
12002 nullstring, 12002 "",
12003 0); 12003 0);
12004 } 12004 }
12005 } 12005 }
12006 v13 = (void *)v17->evte; 12006 v13 = (void *)v17->evte;
12007 if ( v13 ) 12007 if ( v13 )
12018 1, 12018 1,
12019 0, 12019 0,
12020 0xAFu, 12020 0xAFu,
12021 0x17u, 12021 0x17u,
12022 0, 12022 0,
12023 nullstring, 12023 "",
12024 0); 12024 0);
12025 } 12025 }
12026 } 12026 }
12027 v15 = (void *)v17->evtf; 12027 v15 = (void *)v17->evtf;
12028 if ( v15 ) 12028 if ( v15 )
12039 1, 12039 1,
12040 0, 12040 0,
12041 0xAFu, 12041 0xAFu,
12042 0x18u, 12042 0x18u,
12043 0, 12043 0,
12044 nullstring, 12044 "",
12045 0); 12045 0);
12046 } 12046 }
12047 } 12047 }
12048 pDialogueWindow->_41D08F(v1, 1, 0, 2); 12048 pDialogueWindow->_41D08F(v1, 1, 0, 2);
12049 v4 = 1; 12049 v4 = 1;
13558 //v2 = (signed __int64)(p2DEvents_minus1__20[13 * (unsigned int)v0->ptr_1C] * 500.0); 13558 //v2 = (signed __int64)(p2DEvents_minus1__20[13 * (unsigned int)v0->ptr_1C] * 500.0);
13559 v2 = (signed __int64)(p2DEvents[(unsigned int)v0->ptr_1C - 1].fPriceMultiplier * 500.0); 13559 v2 = (signed __int64)(p2DEvents[(unsigned int)v0->ptr_1C - 1].fPriceMultiplier * 500.0);
13560 v63 = v2 * (100 - v1->GetMerchant()) / 100; 13560 v63 = v2 * (100 - v1->GetMerchant()) / 100;
13561 if ( v63 < v2 / 3 ) 13561 if ( v63 < v2 / 3 )
13562 v63 = v2 / 3; 13562 v63 = v2 / 3;
13563 strcpy(Dest, nullstring); 13563 strcpy(Dest, "");
13564 strcpy(v46, nullstring); 13564 strcpy(v46, "");
13565 strcpy(v47, nullstring); 13565 strcpy(v47, "");
13566 strcpy(v48, nullstring); 13566 strcpy(v48, "");
13567 strcpy(v49, nullstring); 13567 strcpy(v49, "");
13568 if ( dword_F8B19C != 1 ) 13568 if ( dword_F8B19C != 1 )
13569 { 13569 {
13570 if ( dword_F8B19C != 18 ) 13570 if ( dword_F8B19C != 18 )
13571 { 13571 {
13572 if ( sub_4B1784_check_if_player_concious__draw_warning_else_mess_with_dlg_win() ) 13572 if ( sub_4B1784_check_if_player_concious__draw_warning_else_mess_with_dlg_win() )
14149 } 14149 }
14150 return result; 14150 return result;
14151 } 14151 }
14152 v63 = 1; 14152 v63 = 1;
14153 v41 = pDialogueWindow->GetControl(pDialogueWindow->pStartingPosActiveItem); 14153 v41 = pDialogueWindow->GetControl(pDialogueWindow->pStartingPosActiveItem);
14154 strcpy(a1, nullstring); 14154 strcpy(a1, "");
14155 v41->uHeight = 0; 14155 v41->uHeight = 0;
14156 v41->uY = 0; 14156 v41->uY = 0;
14157 if ( v1->_4B6FF9() ) 14157 if ( v1->_4B6FF9() )
14158 { 14158 {
14159 sprintfex(a1, "%s %d %s", pGlobalTXT_LocalizationStrings[104], HIDWORD(v60), pGlobalTXT_LocalizationStrings[97]); 14159 sprintfex(a1, "%s %d %s", pGlobalTXT_LocalizationStrings[104], HIDWORD(v60), pGlobalTXT_LocalizationStrings[97]);
14610 v58 = (Player *)-1; 14610 v58 = (Player *)-1;
14611 v62 = 0; 14611 v62 = 0;
14612 v17 = LOBYTE(pFontArrus->uFontHeight) - 3; 14612 v17 = LOBYTE(pFontArrus->uFontHeight) - 3;
14613 v59 = pDialogueWindow; 14613 v59 = pDialogueWindow;
14614 v54 = v17; 14614 v54 = v17;
14615 strcpy(&Dest, nullstring); 14615 strcpy(&Dest, "");
14616 sprintfex(pTmpBuf2, pGlobalTXT_LocalizationStrings[405], s1); 14616 sprintfex(pTmpBuf2, pGlobalTXT_LocalizationStrings[405], s1);
14617 v18 = pFontArrus->CalcTextHeight(pTmpBuf2, &v53, 0, 0); 14617 v18 = pFontArrus->CalcTextHeight(pTmpBuf2, &v53, 0, 0);
14618 v19 = v16->pNumPresenceButton; 14618 v19 = v16->pNumPresenceButton;
14619 v20 = v18 + v17 + 146; 14619 v20 = v18 + v17 + 146;
14620 v21 = v16->pStartingPosActiveItem; 14620 v21 = v16->pStartingPosActiveItem;
14706 { 14706 {
14707 v31 = a1; 14707 v31 = a1;
14708 ++v62; 14708 ++v62;
14709 ++s1; 14709 ++s1;
14710 a1 += 100; 14710 a1 += 100;
14711 strcpy(v31, nullstring); 14711 strcpy(v31, "");
14712 if ( v24 ) 14712 if ( v24 )
14713 { 14713 {
14714 v24->uW = 0; 14714 v24->uW = 0;
14715 v24->uHeight = 0; 14715 v24->uHeight = 0;
14716 v24->uY = 0; 14716 v24->uY = 0;
15111 int v6; // esi@5 15111 int v6; // esi@5
15112 unsigned int v7; // eax@7 15112 unsigned int v7; // eax@7
15113 int v8; // eax@10 15113 int v8; // eax@10
15114 SpriteFrame *v9; // eax@16 15114 SpriteFrame *v9; // eax@16
15115 SpriteFrame *v10; // ebx@18 15115 SpriteFrame *v10; // ebx@18
15116 int *v11; // eax@18 15116 //int *v11; // eax@18
15117 int v12; // ecx@28 15117 int v12; // ecx@28
15118 //IndoorCameraD3D **v14; // eax@36 15118 //IndoorCameraD3D **v14; // eax@36
15119 double v15; // st7@36 15119 double v15; // st7@36
15120 float v16; // eax@36 15120 float v16; // eax@36
15121 //double v17; // ST30_8@36 15121 //double v17; // ST30_8@36
15191 v9 = pSpriteFrameTable->GetFrameBy_x(v31, v8); 15191 v9 = pSpriteFrameTable->GetFrameBy_x(v31, v8);
15192 else 15192 else
15193 v9 = pSpriteFrameTable->GetFrame(v31, v8); 15193 v9 = pSpriteFrameTable->GetFrame(v31, v8);
15194 v41 = 0; 15194 v41 = 0;
15195 v10 = v9; 15195 v10 = v9;
15196 v11 = (int *)v9->uFlags; 15196 //v11 = (int *)v9->uFlags;
15197 if ( (unsigned __int8)v11 & 2 ) 15197 if (v9->uFlags & 2)
15198 v41 = 2; 15198 v41 = 2;
15199 if ( (unsigned int)v11 & 0x40000 ) 15199 if (v9->uFlags & 0x40000)
15200 v41 |= 0x40u; 15200 v41 |= 0x40u;
15201 if ( (unsigned int)v11 & 0x20000 ) 15201 if (v9->uFlags & 0x20000)
15202 LOBYTE(v41) = v41 | 0x80; 15202 LOBYTE(v41) = v41 | 0x80;
15203 v0 = (RenderBillboard *)(256 << v6); 15203 v0 = (RenderBillboard *)(256 << v6);
15204 if ( (unsigned int)v0 & (unsigned int)v11 ) 15204 if ( (unsigned int)v0 & v9->uFlags)
15205 v41 |= 4u; 15205 v41 |= 4u;
15206 if ( v10->uGlowRadius ) 15206 if ( v10->uGlowRadius )
15207 { 15207 {
15208 LOBYTE(v11) = byte_4E94D3; 15208 //LOBYTE(v11) = byte_4E94D3;
15209 pMobileLightsStack->AddLight( 15209 pMobileLightsStack->AddLight(
15210 a1a, 15210 a1a,
15211 a2, 15211 a2,
15212 a3, 15212 a3,
15213 a5, 15213 a5,
15214 v10->uGlowRadius, 15214 v10->uGlowRadius,
15215 0xFFu, 15215 0xFFu,
15216 0xFFu, 15216 0xFFu,
15217 0xFFu, 15217 0xFFu,
15218 v11); 15218 byte_4E94D3);
15219 } 15219 }
15220 v12 = 0; 15220 v12 = 0;
15221 if ( pStru170->uNumVisibleNotEmptySectors <= 0 ) 15221 if ( pStru170->uNumVisibleNotEmptySectors <= 0 )
15222 continue; 15222 continue;
15223 while (pStru170->pVisibleSectorIDs_toDrawDecorsActorsEtcFrom[v12] != p->uSectorID) 15223 while (pStru170->pVisibleSectorIDs_toDrawDecorsActorsEtcFrom[v12] != p->uSectorID)
15250 a5a = (unsigned __int64)(v10->scale * (signed __int64)v21) >> 16; 15250 a5a = (unsigned __int64)(v10->scale * (signed __int64)v21) >> 16;
15251 } 15251 }
15252 else 15252 else
15253 { 15253 {
15254 //v14 = &pGame->pIndoorCameraD3D; 15254 //v14 = &pGame->pIndoorCameraD3D;
15255 v0->flt_8 = pGame->pIndoorCameraD3D->flt_D0; 15255 v0->fov_x = pGame->pIndoorCameraD3D->fov_x;
15256 v15 = pGame->pIndoorCameraD3D->flt_D4; 15256 v15 = pGame->pIndoorCameraD3D->fov_y;
15257 v16 = v0->flt_8; 15257 v16 = v0->fov_x;
15258 v0->flt_C = v15; 15258 v0->fov_y = v15;
15259 //v17 = v16 + 6.7553994e15; 15259 //v17 = v16 + 6.7553994e15;
15260 LODWORD(v18) = 0; 15260 LODWORD(v18) = 0;
15261 HIDWORD(v18) = floorf(v16 + 0.5f); 15261 HIDWORD(v18) = floorf(v16 + 0.5f);
15262 v19 = v18 / x; 15262 v19 = v18 / x;
15263 v0->field_0 = (unsigned __int64)(v10->scale * v18 / x) >> 16; 15263 v0->field_0 = (unsigned __int64)(v10->scale * v18 / x) >> 16;
15629 15629
15630 v1 = uHouseID; 15630 v1 = uHouseID;
15631 v25 = uHouseID; 15631 v25 = uHouseID;
15632 GameUI_StatusBar_TimedString[0] = 0; 15632 GameUI_StatusBar_TimedString[0] = 0;
15633 pStatusBarString[0] = 0; 15633 pStatusBarString[0] = 0;
15634 ShowStatusBarString(nullstring, 2u); 15634 ShowStatusBarString("", 2u);
15635 if ( pMessageQueue_50CBD0->uNumMessages ) 15635 if ( pMessageQueue_50CBD0->uNumMessages )
15636 pMessageQueue_50CBD0->uNumMessages = pMessageQueue_50CBD0->pMessages[0].field_8 != 0; 15636 pMessageQueue_50CBD0->uNumMessages = pMessageQueue_50CBD0->pMessages[0].field_8 != 0;
15637 viewparams->bRedrawGameUI = 1; 15637 viewparams->bRedrawGameUI = 1;
15638 uDialogueType = 0; 15638 uDialogueType = 0;
15639 pKeyActionMap->_459ED1(3); 15639 pKeyActionMap->_459ED1(3);