Mercurial > mm7
comparison Render.cpp @ 52:ac65389dc211
21.01.13
author | Ritor1 |
---|---|
date | Mon, 21 Jan 2013 01:06:55 +0600 |
parents | aac67e0d2c10 |
children | 86d05cff0a35 |
comparison
equal
deleted
inserted
replaced
37:979f13f456dc | 52:ac65389dc211 |
---|---|
2855 { | 2855 { |
2856 v17 = 0; | 2856 v17 = 0; |
2857 v1 = (char *)&pBillboardRenderList[0].uScreenSpaceY; | 2857 v1 = (char *)&pBillboardRenderList[0].uScreenSpaceY; |
2858 do | 2858 do |
2859 { | 2859 { |
2860 billboard.uScreenSpaceX = *((short *)v1 - 1); | 2860 billboard.uScreenSpaceX = *((_WORD *)v1 - 1); |
2861 v2 = *((short *)v1 - 5); | 2861 v2 = *((_WORD *)v1 - 5); |
2862 billboard.uScreenSpaceY = *(short *)v1; | 2862 billboard.uScreenSpaceY = *(_WORD *)v1; |
2863 v3 = *((int *)v1 - 10); | 2863 v3 = *((_WORD *)v1 - 10); |
2864 billboard.uParentBillboardID = v0; | 2864 billboard.uParentBillboardID = v0; |
2865 v4 = *((int *)v1 + 1); | 2865 v4 = *((_WORD *)v1 + 1); |
2866 billboard.field_10 = v3; | 2866 billboard.field_10 = v3; |
2867 v5 = *((int *)v1 - 9); | 2867 v5 = *((_WORD *)v1 - 9); |
2868 billboard.uTintColor = v4; | 2868 billboard.uTintColor = v4; |
2869 v6 = *((short *)v1 - 8); | 2869 v6 = *((_WORD *)v1 - 8); |
2870 billboard.field_14 = v5; | 2870 billboard.field_14 = v5; |
2871 v7 = *((int *)v1 - 6); | 2871 v7 = *((_WORD *)v1 - 6); |
2872 billboard.sZValue = *((int *)v1 - 6); | 2872 billboard.sZValue = *((_WORD *)v1 - 6); |
2873 billboard.uFlags = v2; | 2873 billboard.uFlags = v2; |
2874 if ( v6 != -1 ) | 2874 if ( v6 != -1 ) |
2875 { | 2875 { |
2876 v8 = *((short *)v1 + 1); | 2876 v8 = *((_WORD *)v1 + 1); |
2877 if ( pRenderer->pRenderD3D ) | 2877 if ( pRenderer->pRenderD3D ) |
2878 { | 2878 { |
2879 billboard.sZValue = v7; | 2879 billboard.sZValue = v7; |
2880 billboard.uFlags = v2; | 2880 billboard.uFlags = v2; |
2881 pRenderer->TransformBillboard( | 2881 pRenderer->TransformBillboard( |
2885 (RenderBillboard *)(v1 - 40)); | 2885 (RenderBillboard *)(v1 - 40)); |
2886 } | 2886 } |
2887 else | 2887 else |
2888 { | 2888 { |
2889 if ( *(v1 - 10) & 2 ) | 2889 if ( *(v1 - 10) & 2 ) |
2890 v9 = PaletteManager::Get_Dark_or_Red_LUT(*((short *)v1 - 7), 0, 1); | 2890 v9 = PaletteManager::Get_Dark_or_Red_LUT(*((_WORD *)v1 - 7), 0, 1); |
2891 else | 2891 else |
2892 v9 = GetBillboardPalette((RenderBillboard *)(v1 - 40), *((short *)v1 - 7), v7, *((short *)v1 + 1)); | 2892 v9 = GetBillboardPalette((RenderBillboard *)(v1 - 40), *((_WORD *)v1 - 7), v7, *((_WORD *)v1 + 1)); |
2893 v10 = (*(v1 - 9) & 1) == 0; | 2893 v10 = (*(v1 - 9) & 1) == 0; |
2894 billboard.pPalette = v9; | 2894 billboard.pPalette = v9; |
2895 if ( !v10 ) | 2895 if ( !v10 ) |
2896 billboard.pPalette = pPaletteManager->field_261600[*((short *)v1 - 7)]; | 2896 billboard.pPalette = pPaletteManager->field_261600[*((_WORD *)v1 - 7)]; |
2897 if ( !(billboard.uFlags & 0x40) && billboard.uFlags & 0x80 ) | 2897 if ( !(billboard.uFlags & 0x40) && billboard.uFlags & 0x80 ) |
2898 { | 2898 { |
2899 v11 = GetTickCount(); | 2899 v11 = GetTickCount(); |
2900 v12 = stru_5C6E00->SinCos(v17 + v11); | 2900 v12 = stru_5C6E00->SinCos(v17 + v11); |
2901 v15 = abs(v12); | 2901 v15 = abs(v12); |
2902 v18 = (unsigned __int64)(15i64 * v15) >> 16; | 2902 v18 = (unsigned __int64)(15i64 * v15) >> 16; |
2903 billboard.pPalette2 = PaletteManager::Get_Dark_or_Red_LUT(*((short *)v1 - 7), 15 - v18, 1); | 2903 billboard.pPalette2 = PaletteManager::Get_Dark_or_Red_LUT(*((_WORD *)v1 - 7), 15 - v18, 1); |
2904 } | 2904 } |
2905 v13 = *((short *)v1 - 8); | 2905 v13 = *((_WORD *)v1 - 8); |
2906 if ( v13 >= 0 ) | 2906 if ( v13 >= 0 ) |
2907 pSprites_LOD->pSpriteHeaders[v13]._4ACC38(&billboard, 1); | 2907 pSprites_LOD->pSpriteHeaders[v13]._4ACC38(&billboard, 1); |
2908 } | 2908 } |
2909 } | 2909 } |
2910 v17 += 5; | 2910 v17 += 5; |