Mercurial > mm7
comparison mm7_1.cpp @ 1179:883eaee77094
sub_424829
author | Ritor1 |
---|---|
date | Wed, 05 Jun 2013 17:40:09 +0600 |
parents | 29a8defbad9e |
children | 02e2a5c1ebc0 42b41aaecd87 |
comparison
equal
deleted
inserted
replaced
1178:f7ad7bd0a806 | 1179:883eaee77094 |
---|---|
2236 int v6; // eax@3 | 2236 int v6; // eax@3 |
2237 int v7; // esi@5 | 2237 int v7; // esi@5 |
2238 int v8; // edx@5 | 2238 int v8; // edx@5 |
2239 //int v9; // ecx@6 | 2239 //int v9; // ecx@6 |
2240 int v10; // eax@12 | 2240 int v10; // eax@12 |
2241 int v11; // edi@13 | 2241 //int v11; // edi@13 |
2242 //int v12; // edx@18 | 2242 //int v12; // edx@18 |
2243 int v13; // eax@22 | 2243 int v13; // eax@22 |
2244 //int v14; // edi@28 | 2244 //int v14; // edi@28 |
2245 int v15; // ecx@29 | 2245 int v15; // ecx@29 |
2246 int v16; // edi@30 | 2246 //int v16; // edi@30 |
2247 //int v17; // edx@35 | 2247 //int v17; // edx@35 |
2248 int v18; // eax@39 | 2248 int v18; // eax@39 |
2249 int v19; // eax@44 | 2249 int v19; // eax@44 |
2250 int v20; // ecx@44 | 2250 int v20; // ecx@44 |
2251 //int v21; // edi@45 | 2251 //int v21; // edi@45 |
2252 int v22; // edi@46 | 2252 int v22; // edi@46 |
2253 __int16 *v23; // ecx@47 | 2253 //__int16 *v23; // ecx@47 |
2254 int v24; // edx@48 | 2254 int v24; // edx@48 |
2255 int v25; // eax@50 | 2255 //int v25; // eax@50 |
2256 int v26; // eax@55 | 2256 int v26; // eax@55 |
2257 signed int v27; // edi@55 | 2257 signed int v27; // edi@55 |
2258 //int v28; // edx@56 | 2258 //int v28; // edx@56 |
2259 int v29; // edx@57 | 2259 int v29; // edx@57 |
2260 int v30; // eax@59 | 2260 //int v30; // eax@59 |
2261 int v31; // eax@64 | 2261 int v31; // eax@64 |
2262 signed int v32; // edi@64 | 2262 signed int v32; // edi@64 |
2263 //int v33; // edx@65 | 2263 //int v33; // edx@65 |
2264 __int16 *v34; // eax@66 | 2264 int v34; // eax@66 |
2265 __int16 v35; // dx@66 | 2265 int v35; // dx@66 |
2266 __int16 v36; // dx@67 | 2266 __int16 v36; // dx@67 |
2267 __int16 v37; // di@67 | 2267 __int16 v37; // di@67 |
2268 __int16 v38; // dx@67 | 2268 __int16 v38; // dx@67 |
2269 //BspRenderer_stru2 *v39; // ecx@69 | 2269 //BspRenderer_stru2 *v39; // ecx@69 |
2270 int v40; // edx@69 | 2270 //int v40; // edx@69 |
2271 int v41; // edi@70 | 2271 //int v41; // edi@70 |
2272 __int16 *v42; // eax@76 | 2272 //__int16 *v42; // eax@76 |
2273 __int16 *v43; // eax@81 | 2273 //__int16 *v43; // eax@81 |
2274 __int16 *v45; // eax@87 | 2274 //__int16 *v45; // eax@87 |
2275 int v46; // edx@87 | 2275 int v46; // edx@87 |
2276 __int16 v47; // cx@88 | 2276 //__int16 v47; // cx@88 |
2277 int v48; // eax@93 | 2277 //int v48; // eax@93 |
2278 int v49; // esi@93 | 2278 int v49; // esi@93 |
2279 __int16 *v50; // ecx@94 | 2279 //__int16 *v50; // ecx@94 |
2280 int v51; // eax@95 | 2280 //int v51; // eax@95 |
2281 //int v52; // eax@97 | 2281 //int v52; // eax@97 |
2282 int v53; // [sp+Ch] [bp-34h]@44 | 2282 int v53; // [sp+Ch] [bp-34h]@44 |
2283 int v54; // [sp+10h] [bp-30h]@0 | 2283 int v54; // [sp+10h] [bp-30h]@0 |
2284 int v55; // [sp+14h] [bp-2Ch]@12 | 2284 int v55; // [sp+14h] [bp-2Ch]@12 |
2285 __int16 *v56; // [sp+14h] [bp-2Ch]@47 | 2285 //__int16 *v56; // [sp+14h] [bp-2Ch]@47 |
2286 __int16 *v57; // [sp+14h] [bp-2Ch]@76 | 2286 //__int16 v57; // [sp+14h] [bp-2Ch]@76 |
2287 __int16 *v58; // [sp+14h] [bp-2Ch]@81 | 2287 //__int16 v58; // [sp+14h] [bp-2Ch]@81 |
2288 __int16 *v59; // [sp+14h] [bp-2Ch]@87 | 2288 int v59; // [sp+14h] [bp-2Ch]@87 |
2289 //BspRenderer_stru2 *v60; // [sp+18h] [bp-28h]@1 | 2289 //BspRenderer_stru2 *v60; // [sp+18h] [bp-28h]@1 |
2290 int v61; // [sp+1Ch] [bp-24h]@29 | 2290 int v61; // [sp+1Ch] [bp-24h]@29 |
2291 int v62; // [sp+20h] [bp-20h]@0 | 2291 int v62; // [sp+20h] [bp-20h]@0 |
2292 signed int v63; // [sp+24h] [bp-1Ch]@3 | 2292 signed int v63; // [sp+24h] [bp-1Ch]@3 |
2293 signed int v64; // [sp+28h] [bp-18h]@3 | 2293 signed int v64; // [sp+28h] [bp-18h]@3 |
2294 int v65; // [sp+2Ch] [bp-14h]@5 | 2294 int v65; // [sp+2Ch] [bp-14h]@5 |
2295 int v66; // [sp+2Ch] [bp-14h]@39 | 2295 //int v66; // [sp+2Ch] [bp-14h]@39 |
2296 int v67; // [sp+30h] [bp-10h]@22 | 2296 //int v67; // [sp+30h] [bp-10h]@22 |
2297 int v68; // [sp+34h] [bp-Ch]@12 | 2297 int v68; // [sp+34h] [bp-Ch]@12 |
2298 int v69; // [sp+34h] [bp-Ch]@29 | 2298 int v69; // [sp+34h] [bp-Ch]@29 |
2299 int v70; // [sp+34h] [bp-Ch]@46 | 2299 int v70; // [sp+34h] [bp-Ch]@46 |
2300 int v71; // [sp+34h] [bp-Ch]@75 | 2300 int v71; // [sp+34h] [bp-Ch]@75 |
2301 int v72; // [sp+34h] [bp-Ch]@80 | 2301 int v72; // [sp+34h] [bp-Ch]@80 |
2302 int v73; // [sp+38h] [bp-8h]@11 | 2302 //int v73; // [sp+38h] [bp-8h]@11 |
2303 //int v74; // [sp+3Ch] [bp-4h]@1 | 2303 //int v74; // [sp+3Ch] [bp-4h]@1 |
2304 int a3a; // [sp+48h] [bp+8h]@76 | 2304 //int a3a; // [sp+48h] [bp+8h]@76 |
2305 int a3b; // [sp+48h] [bp+8h]@87 | 2305 //int a3b; // [sp+48h] [bp+8h]@87 |
2306 | 2306 |
2307 //try graphic engine with function returning 1 always, and without | 2307 //try graphic engine with function returning 1 always, and without |
2308 //return true; | 2308 //return true; |
2309 if ( !pNumVertices ) | 2309 if ( !pNumVertices ) |
2310 return false; | 2310 return false; |
2334 { | 2334 { |
2335 v65 = v6; | 2335 v65 = v6; |
2336 v7 = stru_50B700._screen_space_y[v6]; | 2336 v7 = stru_50B700._screen_space_y[v6]; |
2337 } | 2337 } |
2338 } | 2338 } |
2339 v73 = v8; | |
2340 if ( v8 == v7 ) | 2339 if ( v8 == v7 ) |
2341 return false; | 2340 return false; |
2342 v10 = v65; | 2341 v10 = v65; |
2343 a2->_viewport_space_y = v7; | 2342 a2->_viewport_space_y = v7; |
2344 a2->_viewport_space_w = v8; | 2343 a2->_viewport_space_w = v8; |
2345 v55 = v65; | 2344 v55 = v65; |
2346 if ( pNumVertices > 0 ) | 2345 if ( pNumVertices > 0 ) |
2347 { | 2346 { |
2348 v11 = v65; | 2347 //v11 = v65; |
2349 for ( v68 = 0; v68 < pNumVertices; ++v68 ) | 2348 for ( v68 = 0; v68 < pNumVertices; ++v68 ) |
2350 { | 2349 { |
2351 v10 += v64; | 2350 v10 += v64; |
2352 if ( v10 < pNumVertices ) | 2351 if ( v10 < pNumVertices ) |
2353 { | 2352 { |
2356 } | 2355 } |
2357 else | 2356 else |
2358 { | 2357 { |
2359 v10 -= pNumVertices; | 2358 v10 -= pNumVertices; |
2360 } | 2359 } |
2361 if ( stru_50B700._screen_space_y[v10] <= stru_50B700._screen_space_y[v11] ) | 2360 if ( stru_50B700._screen_space_y[v10] <= stru_50B700._screen_space_y[v65] ) |
2362 { | 2361 { |
2363 v55 = v10; | 2362 v55 = v10; |
2364 v11 = v10; | 2363 v65 = v10; |
2365 } | 2364 } |
2366 if ( stru_50B700._screen_space_y[v10] == v73 ) | 2365 if ( stru_50B700._screen_space_y[v10] == v8 ) |
2367 break; | 2366 break; |
2368 } | 2367 } |
2369 } | 2368 } |
2370 v13 = v55 + v64; | 2369 v13 = v55 + v64; |
2371 v67 = v55 + v64; | 2370 if ( v13 < pNumVertices ) |
2372 if ( v55 + v64 < pNumVertices ) | 2371 { |
2373 { | 2372 if ( v13 < 0 ) |
2374 if ( v13 >= 0 ) | 2373 v13 += pNumVertices; |
2375 goto LABEL_27; | |
2376 v13 += pNumVertices; | |
2377 } | 2374 } |
2378 else | 2375 else |
2379 { | 2376 { |
2380 v13 -= pNumVertices; | 2377 v13 -= pNumVertices; |
2381 } | 2378 } |
2382 v67 = v13; | |
2383 LABEL_27: | |
2384 if ( stru_50B700._screen_space_y[v13] != stru_50B700._screen_space_y[v55] ) | 2379 if ( stru_50B700._screen_space_y[v13] != stru_50B700._screen_space_y[v55] ) |
2385 { | 2380 { |
2386 v62 = stru_50B700._screen_space_x[v55] << 16; | 2381 v62 = stru_50B700._screen_space_x[v55] << 16; |
2387 v54 = ((stru_50B700._screen_space_x[v13] - stru_50B700._screen_space_x[v55]) << 16) / (stru_50B700._screen_space_y[v13] - stru_50B700._screen_space_y[v55]); | 2382 v54 = ((stru_50B700._screen_space_x[v13] - stru_50B700._screen_space_x[v55]) << 16) / (stru_50B700._screen_space_y[v13] - stru_50B700._screen_space_y[v55]); |
2388 a2->array_18[v7] = LOWORD(stru_50B700._screen_space_x[v55]); | 2383 a2->array_18[v7] = LOWORD(stru_50B700._screen_space_x[v55]); |
2389 } | 2384 } |
2390 v15 = v65; | 2385 v15 = v65; |
2391 v61 = v65; | 2386 v61 = v65; |
2392 if ( pNumVertices > 0 ) | 2387 if ( pNumVertices > 0 ) |
2393 { | 2388 { |
2394 v16 = v65; | 2389 //v16 = v65; |
2395 for ( v69 = 0; v69 < pNumVertices; ++v69 ) | 2390 for ( v69 = 0; v69 < pNumVertices; ++v69 ) |
2396 { | 2391 { |
2397 v15 += v63; | 2392 v15 += v63; |
2398 if ( v15 < pNumVertices ) | 2393 if ( v15 < pNumVertices ) |
2399 { | 2394 { |
2402 } | 2397 } |
2403 else | 2398 else |
2404 { | 2399 { |
2405 v15 -= pNumVertices; | 2400 v15 -= pNumVertices; |
2406 } | 2401 } |
2407 if ( stru_50B700._screen_space_y[v15] <= stru_50B700._screen_space_y[v16] ) | 2402 if ( stru_50B700._screen_space_y[v15] <= stru_50B700._screen_space_y[v65] ) |
2408 { | 2403 { |
2409 v61 = v15; | 2404 v61 = v15; |
2410 v16 = v15; | 2405 v65 = v15; |
2411 } | 2406 } |
2412 if ( stru_50B700._screen_space_y[v15] == v73 ) | 2407 if ( stru_50B700._screen_space_y[v15] == v8 ) |
2413 break; | 2408 break; |
2414 } | 2409 } |
2415 } | 2410 } |
2416 v18 = v63 + v61; | 2411 v18 = v63 + v61; |
2417 v66 = v63 + v61; | 2412 if ( v18 < pNumVertices ) |
2418 if ( v63 + v61 < pNumVertices ) | 2413 { |
2419 { | 2414 if ( v18 < 0 ) |
2420 if ( v18 >= 0 ) | 2415 v18 += pNumVertices; |
2421 goto LABEL_44; | |
2422 v18 += pNumVertices; | |
2423 } | 2416 } |
2424 else | 2417 else |
2425 { | 2418 { |
2426 v18 -= pNumVertices; | 2419 v18 -= pNumVertices; |
2427 } | 2420 } |
2428 v66 = v18; | |
2429 LABEL_44: | |
2430 v19 = v18; | 2421 v19 = v18; |
2431 v20 = v61; | 2422 v20 = v61; |
2432 if ( stru_50B700._screen_space_y[v19] != stru_50B700._screen_space_y[v61] ) | 2423 if ( stru_50B700._screen_space_y[v19] != stru_50B700._screen_space_y[v61] ) |
2433 { | 2424 { |
2434 v61 = stru_50B700._screen_space_x[v20] << 16; | 2425 v61 = stru_50B700._screen_space_x[v20] << 16; |
2435 v53 = ((stru_50B700._screen_space_x[v19] - stru_50B700._screen_space_x[v20]) << 16) / stru_50B700._screen_space_y[v19] - stru_50B700._screen_space_y[v20]; | 2426 v53 = ((stru_50B700._screen_space_x[v19] - stru_50B700._screen_space_x[v20]) << 16) / stru_50B700._screen_space_y[v19] - stru_50B700._screen_space_y[v20]; |
2436 a2->array_3D8[v73] = LOWORD(stru_50B700._screen_space_x[v20]); | 2427 a2->array_3D8[v8] = LOWORD(stru_50B700._screen_space_x[v20]); |
2437 } | 2428 } |
2438 v22 = v7; | 2429 v22 = v7; |
2439 if ( v7 <= v73 ) | 2430 if ( v7 <= v8 ) |
2440 { | 2431 { |
2441 v56 = &a2->array_3D8[v7]; | 2432 //v56 = &a2->array_3D8[v7]; |
2442 v23 = &a2->array_18[v7]; | 2433 //v23 = &a2->array_18[v7]; |
2443 for ( v70 = v7; v70 <= v73; ++v70 ) | 2434 for ( v70 = v7; v70 <= v8; ++v70 ) |
2444 { | 2435 { |
2445 v24 = v67; | 2436 v24 = v13; |
2446 if ( v22 < stru_50B700._screen_space_y[v67] || v22 == v73 ) | 2437 if ( v22 >= stru_50B700._screen_space_y[v13] && v22 != v8 ) |
2447 goto LABEL_57; | 2438 { |
2448 v25 = v64 + v67; | 2439 v13 = v64 + v13; |
2449 v67 = v25; | 2440 if ( v13 < pNumVertices ) |
2450 if ( v25 < pNumVertices ) | 2441 { |
2451 { | 2442 if ( v13 < 0 ) |
2452 if ( v25 >= 0 ) | 2443 v13 += pNumVertices; |
2453 goto LABEL_55; | 2444 } |
2454 v25 += pNumVertices; | 2445 else |
2455 } | 2446 { |
2456 else | 2447 v13 -= pNumVertices; |
2457 { | 2448 } |
2458 v25 -= pNumVertices; | 2449 v26 = v13; |
2459 } | 2450 //v27 = stru_50B700._screen_space_y[v26] - stru_50B700._screen_space_y[v24]; |
2460 v67 = v25; | 2451 if ( stru_50B700._screen_space_y[v26] - stru_50B700._screen_space_y[v24] > 0 ) |
2461 LABEL_55: | 2452 { |
2462 v26 = v25; | 2453 v54 = ((stru_50B700._screen_space_x[v26] - stru_50B700._screen_space_x[v24]) << 16) / stru_50B700._screen_space_y[v26] - stru_50B700._screen_space_y[v24]; |
2463 //v27 = stru_50B700._screen_space_y[v26] - stru_50B700._screen_space_y[v24]; | 2454 v62 = stru_50B700._screen_space_x[v24] << 16; |
2464 if ( stru_50B700._screen_space_y[v26] - stru_50B700._screen_space_y[v24] > 0 ) | 2455 } |
2465 { | 2456 } |
2466 v54 = ((stru_50B700._screen_space_x[v26] - stru_50B700._screen_space_x[v24]) << 16) / stru_50B700._screen_space_y[v26] - stru_50B700._screen_space_y[v24]; | 2457 v29 = v18; |
2467 v62 = stru_50B700._screen_space_x[v24] << 16; | 2458 if ( v70 >= stru_50B700._screen_space_y[v18] && v70 != v8 ) |
2468 } | 2459 { |
2469 LABEL_57: | 2460 v18 += v63; |
2470 v29 = v66; | 2461 if ( v18 < pNumVertices ) |
2471 if ( v70 >= stru_50B700._screen_space_y[v66] && v70 != v73 ) | 2462 { |
2472 { | 2463 if ( v18 < 0 ) |
2473 v30 = v63 + v66; | 2464 v18 += pNumVertices; |
2474 v66 += v63; | 2465 } |
2475 if ( v66 >= pNumVertices ) | 2466 else |
2476 { | 2467 { |
2477 v30 -= pNumVertices; | 2468 v18 -= pNumVertices; |
2478 goto LABEL_63; | 2469 } |
2479 } | 2470 v31 = v18; |
2480 if ( v30 < 0 ) | |
2481 { | |
2482 v30 += pNumVertices; | |
2483 LABEL_63: | |
2484 v66 = v30; | |
2485 } | |
2486 v31 = v30; | |
2487 //v32 = stru_50B700._screen_space_y[v31] - stru_50B700._screen_space_y[v29]; | 2471 //v32 = stru_50B700._screen_space_y[v31] - stru_50B700._screen_space_y[v29]; |
2488 if ( stru_50B700._screen_space_y[v31] - stru_50B700._screen_space_y[v29] > 0 ) | 2472 if ( stru_50B700._screen_space_y[v31] - stru_50B700._screen_space_y[v29] > 0 ) |
2489 { | 2473 { |
2490 v53 = ((stru_50B700._screen_space_x[v31] - stru_50B700._screen_space_x[v29]) << 16) / stru_50B700._screen_space_y[v31] - stru_50B700._screen_space_y[v29]; | 2474 v53 = ((stru_50B700._screen_space_x[v31] - stru_50B700._screen_space_x[v29]) << 16) / stru_50B700._screen_space_y[v31] - stru_50B700._screen_space_y[v29]; |
2491 v61 = stru_50B700._screen_space_x[v29] << 16; | 2475 v61 = stru_50B700._screen_space_x[v29] << 16; |
2492 } | 2476 } |
2493 } | 2477 } |
2494 *(__int16 *)((char *)v56 + (int)(char *)a2->array_18 - (char *)a2->array_3D8) = HIWORD(v62); | 2478 //v34 = (char *)a2->array_18 - (char *)a2->array_3D8; |
2495 *v56 = HIWORD(v61); | 2479 //v35 = *(__int16 *)((char *)&a2->array_3D8[v70] + v34); |
2496 v34 = v23 + 480; | 2480 //v35 = HIWORD(v62); |
2497 v35 = v23[480]; | 2481 a2->array_18[v70] = HIWORD(v62); |
2498 if ( *v23 > v35 ) | 2482 a2->array_3D8[v70] = HIWORD(v61); |
2499 { | 2483 //v34 = &a2->array_3D8[v70]; |
2500 v36 = *v23 ^ v35; | 2484 //v35 = a2->array_3D8[v70]; |
2501 v37 = *v34; | 2485 if ( a2->array_18[v70] > a2->array_3D8[v70] ) |
2502 *v23 = v36; | 2486 { |
2487 v36 = a2->array_18[v70] ^ a2->array_3D8[v70]; | |
2488 v37 = a2->array_3D8[v70]; | |
2489 a2->array_18[v70] = v36; | |
2503 v38 = v37 ^ v36; | 2490 v38 = v37 ^ v36; |
2504 *v23 ^= v38; | 2491 a2->array_18[v70] ^= v38; |
2505 *v34 = v38; | 2492 a2->array_3D8[v70] = v38; |
2506 } | 2493 } |
2507 ++v56; | 2494 //++v56; |
2508 v62 += v54; | 2495 v62 += v54; |
2509 v22 = v70 + 1; | 2496 v22 = v70 + 1; |
2510 v61 += v53; | 2497 v61 += v53; |
2511 ++v23; | 2498 //++v23; |
2512 } | 2499 } |
2513 } | 2500 } |
2514 v40 = v73; | 2501 if ( v8 < a3->_viewport_space_y ) |
2515 if ( v73 < a3->_viewport_space_y || (v41 = a3->_viewport_space_w, v7 > v41) ) | 2502 return false; |
2503 if ( v7 > a3->_viewport_space_w ) | |
2516 return false; | 2504 return false; |
2517 if ( v7 < a3->_viewport_space_y ) | 2505 if ( v7 < a3->_viewport_space_y ) |
2518 v7 = a3->_viewport_space_y; | 2506 v7 = a3->_viewport_space_y; |
2519 if ( v73 > v41 ) | 2507 if ( v8 > a3->_viewport_space_w ) |
2520 { | 2508 v8 = a3->_viewport_space_w; |
2521 v40 = a3->_viewport_space_w; | 2509 if ( v7 <= v8 ) |
2522 v73 = a3->_viewport_space_w; | 2510 { |
2523 } | 2511 //a3a = (char *)a2 - (char *)a3; |
2524 if ( v7 <= v40 ) | 2512 //v42 = &a3->array_3D8[v7]; |
2525 { | 2513 //v57 = *(__int16 *)((char *)v42 + a3a); |
2526 a3a = (char *)a2 - (char *)a3; | 2514 for ( v71 = v7; v71 <= v8; ++v71 ) |
2527 v57 = &a2->array_18[v7]; | 2515 { |
2528 v42 = &a3->array_3D8[v7]; | 2516 if ( a2->array_18[v71] >= a3->array_18[v71] && a2->array_18[v71] <= a3->array_3D8[v71] ) |
2529 for ( v71 = v7; v71 <= v40; ++v71 ) | |
2530 { | |
2531 if ( *(__int16 *)((char *)v42 + a3a) >= *(v42 - 480) && a2->array_18[v71] <= a3->array_3D8[v71] ) | |
2532 break; | 2517 break; |
2533 ++v57; | 2518 //++v57; |
2534 ++v7; | 2519 ++v7; |
2535 ++v42; | 2520 //++v42; |
2536 } | 2521 } |
2537 } | 2522 } |
2538 if ( v40 < v7 ) | 2523 if ( v8 < v7 ) |
2539 return false; | 2524 return false; |
2540 v58 = &a2->array_18[v40]; | 2525 //a3a = (char *)a2 - (char *)a3; |
2541 v43 = &a3->array_3D8[v40]; | 2526 //v43 = &a3->array_3D8[v8]; |
2542 for ( v72 = v40; v72 >= v7; --v72 ) | 2527 //v58 = *(__int16 *)((char *)v43 + a3a); |
2543 { | 2528 for ( v72 = v8; v72 >= v7; --v72 ) |
2544 if ( *(__int16 *)((char *)v43 + (int)(char *)a2 - (char *)a3) >= *(v43 - 480) && *v58 <= a3->array_3D8[v72] ) | 2529 { |
2530 if ( a2->array_3D8[v72] >= a3->array_18[v72] && a2->array_18[v72] <= a3->array_3D8[v72] ) | |
2545 break; | 2531 break; |
2546 --v58; | 2532 //--v58; |
2547 --v40; | 2533 --v8; |
2548 --v43; | 2534 //--v43; |
2549 v73 = v40; | 2535 //v8 = v8; |
2550 } | 2536 } |
2551 if ( v7 >= v40 ) | 2537 if ( v7 >= v8 ) |
2552 return false; | 2538 return false; |
2553 a3b = (char *)a3 - (char *)a2; | 2539 //a3b = (char *)a3 - (char *)a2; |
2554 v59 = &a3->array_3D8[v7]; | 2540 v59 = v7; |
2555 v45 = &a2->array_18[v7]; | 2541 //v45 = &a2->array_18[v7]; |
2556 | 2542 |
2557 for ( v46 = v73 - v7 + 1; v46; --v46 ) | 2543 for ( v46 = v8 - v7 + 1; v46; --v46 ) |
2558 { | 2544 { |
2559 v47 = *(__int16 *)((char *)v45 + a3b); | 2545 //v47 = *(__int16 *)((char *)v45 + a3b); |
2560 if ( *v45 < v47 ) | 2546 if ( a2->array_18[v59] < a3->array_18[v59] ) |
2561 *v45 = v47; | 2547 a2->array_18[v59] = a3->array_18[v59]; |
2562 if ( v45[480] > *v59 ) | 2548 if ( a2->array_3D8[v59] > a3->array_3D8[v59] ) |
2563 v45[480] = *v59; | 2549 a2->array_3D8[v59] = a3->array_3D8[v59]; |
2564 ++v59; | 2550 ++v59; |
2565 ++v45; | 2551 //++v45; |
2566 } | 2552 } |
2567 a2->_viewport_space_y = v7; | 2553 a2->_viewport_space_y = v7; |
2568 a2->_viewport_space_w = v73; | 2554 a2->_viewport_space_w = v8; |
2569 a2->field_8 = a2->array_18[v7]; | 2555 a2->field_8 = a2->array_18[v7]; |
2570 v48 = a2->array_3D8[v7]; | 2556 //v48 = a2->array_3D8[v7]; |
2571 a2->field_10 = v7; | 2557 a2->field_10 = v7; |
2572 a2->field_14 = v7; | 2558 a2->field_14 = v7; |
2573 a2->field_C = v48; | 2559 a2->field_C = a2->array_3D8[v7]; |
2574 v49 = v7 + 1; | 2560 v49 = v7 + 1; |
2575 if ( v49 <= v73 ) | 2561 if ( v49 <= v8 ) |
2576 { | 2562 { |
2577 v50 = &a2->array_3D8[v49]; | 2563 //v50 = &a2->array_3D8[v49]; |
2578 for ( v49; v49 <= v73; ++v49 ) | 2564 for ( v49; v49 <= v8; ++v49 ) |
2579 { | 2565 { |
2580 v51 = *(v50 - 480); | 2566 //v51 = a2->array_18[v49]; |
2581 if ( v51 < a2->field_8 ) | 2567 if ( a2->array_18[v49] < a2->field_8 ) |
2582 { | 2568 { |
2583 a2->field_8 = v51; | 2569 a2->field_8 = a2->array_18[v49]; |
2584 a2->field_10 = v49; | 2570 a2->field_10 = v49; |
2585 } | 2571 } |
2586 if ( a2->array_3D8[v49] > a2->field_C ) | 2572 if ( a2->array_3D8[v49] > a2->field_C ) |
2587 { | 2573 { |
2588 a2->field_C = a2->array_3D8[v49]; | 2574 a2->field_C = a2->array_3D8[v49]; |
2589 a2->field_14 = v49; | 2575 a2->field_14 = v49; |
2590 } | 2576 } |
2591 ++v50; | 2577 //++v50; |
2592 } | 2578 } |
2593 } | 2579 } |
2594 return true; | 2580 return true; |
2595 } | 2581 } |
2596 // 50B700: using guessed type int stru_50B700.field_0; | 2582 // 50B700: using guessed type int stru_50B700.field_0; |