Mercurial > might-and-magic-trilogy
comparison LightmapBuilder.cpp @ 3:540178ef9b18
Main menu functionality
author | Nomad |
---|---|
date | Wed, 10 Oct 2012 19:10:15 +0200 |
parents | 2ca04ccb612a |
children | e62134245ab0 |
comparison
equal
deleted
inserted
replaced
2:2ca04ccb612a | 3:540178ef9b18 |
---|---|
167 a6 = *((float *)v19 + 100) * 255.0; | 167 a6 = *((float *)v19 + 100) * 255.0; |
168 //v32 = a6 + 6.7553994e15; | 168 //v32 = a6 + 6.7553994e15; |
169 a6 = *((float *)v19 + 120) * 255.0; | 169 a6 = *((float *)v19 + 120) * 255.0; |
170 //v31 = a6 + 6.7553994e15; | 170 //v31 = a6 + 6.7553994e15; |
171 //v38 = __PAIR__(LODWORD(v32), LODWORD(v31)); | 171 //v38 = __PAIR__(LODWORD(v32), LODWORD(v31)); |
172 v38 = __PAIR__((int)floorf(a6), (int)floorf(a6)); | 172 v38 = __PAIR__((int)floorf(a6 + 0.5f), (int)floorf(a6 + 0.5f)); |
173 //v22 = LODWORD(v31) | ((LODWORD(v32) | (LODWORD(v33) << 8)) << 8); | 173 //v22 = LODWORD(v31) | ((LODWORD(v32) | (LODWORD(v33) << 8)) << 8); |
174 v22 = (int)floorf(a6) | (((int)floorf(a6) | ((int)floorf(a6) << 8)) << 8); | 174 v22 = (int)floorf(a6 + 0.5f) | (((int)floorf(a6 + 0.5f) | ((int)floorf(a6 + 0.5f) << 8)) << 8); |
175 if (!v22) | 175 if (!v22) |
176 v22 = 0x00FFFFFF; | 176 v22 = 0x00FFFFFF; |
177 v27 = a7; | 177 v27 = a7; |
178 v23 = (int)a5; | 178 v23 = (int)a5; |
179 v26 = (Vec3_float_ *)a9; | 179 v26 = (Vec3_float_ *)a9; |
361 a1.z = a5; | 361 a1.z = a5; |
362 a1.y = v30; | 362 a1.y = v30; |
363 a1.Normalize(); | 363 a1.Normalize(); |
364 //v64 = v62 + 6.7553994e15; | 364 //v64 = v62 + 6.7553994e15; |
365 //LODWORD(a5) = LODWORD(v64); | 365 //LODWORD(a5) = LODWORD(v64); |
366 LODWORD(a5) = floorf(v62); | 366 LODWORD(a5) = floorf(v62 + 0.5f); |
367 //v64 = v61 + 6.7553994e15; | 367 //v64 = v61 + 6.7553994e15; |
368 //arg0c = LODWORD(v64); | 368 //arg0c = LODWORD(v64); |
369 arg0c = floorf(v61); | 369 arg0c = floorf(v61 + 0.5f); |
370 //v64 = v60 + 6.7553994e15; | 370 //v64 = v60 + 6.7553994e15; |
371 //arg8 = LODWORD(v64); | 371 //arg8 = LODWORD(v64); |
372 arg8 = floorf(v60); | 372 arg8 = floorf(v60 + 0.5f); |
373 auto v64 /*HIDWORD(v64)*/ = abs(*(int *)(v25 + 8) - (signed)LODWORD(a5)); | 373 auto v64 /*HIDWORD(v64)*/ = abs(*(int *)(v25 + 8) - (signed)LODWORD(a5)); |
374 arg0a = abs(*(int *)(v25 + 4) - arg0c); | 374 arg0a = abs(*(int *)(v25 + 4) - arg0c); |
375 v31 = abs(*(int *)v25 - arg8); | 375 v31 = abs(*(int *)v25 - arg8); |
376 LODWORD(a5) = v31; | 376 LODWORD(a5) = v31; |
377 v32 = arg0a; | 377 v32 = arg0a; |
845 stru_F8AD28._blv_lights_zs[*pSlot] = pLight->vPosition.z; | 845 stru_F8AD28._blv_lights_zs[*pSlot] = pLight->vPosition.z; |
846 stru_F8AD28._blv_lights_rs[*pSlot] = (double)pLight->uLightColorR * 0.0039215689; | 846 stru_F8AD28._blv_lights_rs[*pSlot] = (double)pLight->uLightColorR * 0.0039215689; |
847 stru_F8AD28._blv_lights_gs[*pSlot] = (double)pLight->uLightColorG * 0.0039215689; | 847 stru_F8AD28._blv_lights_gs[*pSlot] = (double)pLight->uLightColorG * 0.0039215689; |
848 stru_F8AD28._blv_lights_bs[*pSlot] = (double)pLight->uLightColorB * 0.0039215689; | 848 stru_F8AD28._blv_lights_bs[*pSlot] = (double)pLight->uLightColorB * 0.0039215689; |
849 //pLighta = v13; | 849 //pLighta = v13; |
850 stru_F8AD28._blv_lights_light_dot_faces[*pSlot] = abs((int)floorf(v13));//COERCE_UNSIGNED_INT64(pLighta + 6.7553994e15)); | 850 stru_F8AD28._blv_lights_light_dot_faces[*pSlot] = abs((int)floorf(v13 + 0.5f));//COERCE_UNSIGNED_INT64(pLighta + 6.7553994e15)); |
851 result = (BLVFace *)*pSlot; | 851 result = (BLVFace *)*pSlot; |
852 stru_F8AD28._blv_lights_smthngs[(*pSlot)++] = v7->field_B; | 852 stru_F8AD28._blv_lights_smthngs[(*pSlot)++] = v7->field_B; |
853 LOBYTE(result) = 1; | 853 LOBYTE(result) = 1; |
854 } | 854 } |
855 else | 855 else |
1039 int v26; // [sp+2Ch] [bp-4h]@1 | 1039 int v26; // [sp+2Ch] [bp-4h]@1 |
1040 | 1040 |
1041 v7 = a5; | 1041 v7 = a5; |
1042 LODWORD(a5) = *(unsigned int *)(LODWORD(a5) + 8); | 1042 LODWORD(a5) = *(unsigned int *)(LODWORD(a5) + 8); |
1043 //v24 = a5 + 6.7553994e15; | 1043 //v24 = a5 + 6.7553994e15; |
1044 v26 = floorf(a5);//LODWORD(v24); | 1044 v26 = floorf(a5 + 0.5f);//LODWORD(v24); |
1045 LODWORD(a5) = *(unsigned int *)(LODWORD(v7) + 4); | 1045 LODWORD(a5) = *(unsigned int *)(LODWORD(v7) + 4); |
1046 //v24 = a5 + 6.7553994e15; | 1046 //v24 = a5 + 6.7553994e15; |
1047 auto _v24 = floorf(a5); | 1047 auto _v24 = floorf(a5 + 0.5f); |
1048 LODWORD(a5) = *(unsigned int *)LODWORD(v7); | 1048 LODWORD(a5) = *(unsigned int *)LODWORD(v7); |
1049 //v23 = a5 + 6.7553994e15; | 1049 //v23 = a5 + 6.7553994e15; |
1050 auto _v23 = floorf(a5); | 1050 auto _v23 = floorf(a5 + 0.5f); |
1051 //*(_QWORD *)((char *)&v24 + 4) = __PAIR__(LODWORD(v24), LODWORD(v23)); | 1051 //*(_QWORD *)((char *)&v24 + 4) = __PAIR__(LODWORD(v24), LODWORD(v23)); |
1052 v26 = abs((signed)LODWORD(a1.z) - v26); | 1052 v26 = abs((signed)LODWORD(a1.z) - v26); |
1053 //v25 = abs((signed)LODWORD(a1.y) - (signed)LODWORD(v24)); | 1053 //v25 = abs((signed)LODWORD(a1.y) - (signed)LODWORD(v24)); |
1054 //v8 = abs((int)a1.x - (signed)LODWORD(v23)); | 1054 //v8 = abs((int)a1.x - (signed)LODWORD(v23)); |
1055 v25 = abs((signed)LODWORD(a1.y) - (signed)_v24); | 1055 v25 = abs((signed)LODWORD(a1.y) - (signed)_v24); |
1642 else | 1642 else |
1643 { | 1643 { |
1644 a5a = ((double)a1->field_A - v15->field_2C) * v15->field_4 + v15->field_24 - 0.5; | 1644 a5a = ((double)a1->field_A - v15->field_2C) * v15->field_4 + v15->field_24 - 0.5; |
1645 //v20 = a5a + 6.7553994e15; | 1645 //v20 = a5a + 6.7553994e15; |
1646 //a5b = (double)SLODWORD(v20); | 1646 //a5b = (double)SLODWORD(v20); |
1647 a5b = (double)floorf(a5a); | 1647 a5b = (double)floorf(a5a + 0.5f); |
1648 a1a = ((double)a1->field_A - *(float *)(v14 + 44)) * *(float *)(v14 + 4) + *(float *)(v14 + 36) + 0.5; | 1648 a1a = ((double)a1->field_A - *(float *)(v14 + 44)) * *(float *)(v14 + 4) + *(float *)(v14 + 36) + 0.5; |
1649 //v21 = a1a + 6.7553994e15; | 1649 //v21 = a1a + 6.7553994e15; |
1650 //v22 = (double)SLODWORD(v21); | 1650 //v22 = (double)SLODWORD(v21); |
1651 v22 = (double)floorf(a1a); | 1651 v22 = (double)floorf(a1a + 0.5f); |
1652 result = v9->field_8; | 1652 result = v9->field_8; |
1653 v23 = v9->field_C; | 1653 v23 = v9->field_C; |
1654 v24 = -((a3a - a2a) / (v22 - a5b)); | 1654 v24 = -((a3a - a2a) / (v22 - a5b)); |
1655 v9->field_10 = ((double)result - a5b) * v24 + a3a; | 1655 v9->field_10 = ((double)result - a5b) * v24 + a3a; |
1656 v9->field_14 = a2a - (v22 - (double)(result + v23)) * v24; | 1656 v9->field_14 = a2a - (v22 - (double)(result + v23)) * v24; |
1999 //v31 = v6; | 1999 //v31 = v6; |
2000 *((float *)&v30 + 1) = (double)v30 * v4->flt_C14; | 2000 *((float *)&v30 + 1) = (double)v30 * v4->flt_C14; |
2001 a1c = (double)a1b * v4->flt_C14 * arg4->x; | 2001 a1c = (double)a1b * v4->flt_C14 * arg4->x; |
2002 //v29 = a1c + 6.7553994e15; | 2002 //v29 = a1c + 6.7553994e15; |
2003 //arg4a = LODWORD(v29); | 2003 //arg4a = LODWORD(v29); |
2004 arg4a = floorf(a1c); | 2004 arg4a = floorf(a1c + 0.5f); |
2005 | 2005 |
2006 a1d = v6 * v7->y; | 2006 a1d = v6 * v7->y; |
2007 v29 = a1d + 6.7553994e15; | 2007 v29 = a1d + 6.7553994e15; |
2008 LODWORD(v31) = LODWORD(v29); | 2008 LODWORD(v31) = LODWORD(v29); |
2009 | 2009 |