1 #include "detaillevels.h"
2 
3 DETAIL_LEVELS LocalDetailLevels;
4 MENU_DETAIL_LEVEL_OPTIONS MenuDetailLevelOptions;
5 
6 extern int GlobalLevelOfDetail_Hierarchical;
7 
8 
SetToDefaultDetailLevels(void)9 extern void SetToDefaultDetailLevels(void)
10 {
11 #if 0
12 	LocalDetailLevels.BloodCollidesWithEnvironment=1;
13 	LocalDetailLevels.DrawLightCoronas=1;
14 	LocalDetailLevels.DrawHierarchicalDecals=1;
15 	LocalDetailLevels.ExplosionsDeformToEnvironment=1;
16 	LocalDetailLevels.GhostFlameThrowerCollisions=0;
17 
18 	LocalDetailLevels.MaximumAllowedNumberOfDecals = 1024;
19 	LocalDetailLevels.AlienEnergyViewThreshold = 0;
20 	LocalDetailLevels.NumberOfSmokeParticlesFromLargeExplosion=10;
21 	LocalDetailLevels.NumberOfSmokeParticlesFromSmallExplosion=5;
22 
23 	GlobalLevelOfDetail_Hierarchical = 65536;
24 #endif
25 
26 	MenuDetailLevelOptions.DecalNumber = 3;
27 	MenuDetailLevelOptions.LightCoronas = 1;
28 	MenuDetailLevelOptions.DecalsOnCharacters = 1;
29 	MenuDetailLevelOptions.DeformableExplosions = 1;
30 	MenuDetailLevelOptions.CharacterComplexity = 3;
31 	MenuDetailLevelOptions.ParticleComplexity = 1;
32 	SetDetailLevelsFromMenu();
33 }
34 
SetToMinimalDetailLevels(void)35 extern void SetToMinimalDetailLevels(void)
36 {
37 #if 0
38 	LocalDetailLevels.BloodCollidesWithEnvironment=0;
39 	LocalDetailLevels.DrawLightCoronas=0;
40 	LocalDetailLevels.DrawHierarchicalDecals=0;
41 	LocalDetailLevels.ExplosionsDeformToEnvironment=0;
42 	LocalDetailLevels.GhostFlameThrowerCollisions=0;
43 
44 	LocalDetailLevels.MaximumAllowedNumberOfDecals = 16;
45 	LocalDetailLevels.AlienEnergyViewThreshold = 450;
46 	LocalDetailLevels.NumberOfSmokeParticlesFromLargeExplosion=5;
47 	LocalDetailLevels.NumberOfSmokeParticlesFromSmallExplosion=2;
48 
49 	GlobalLevelOfDetail_Hierarchical = 128*65536;
50 #endif
51 
52 	MenuDetailLevelOptions.DecalNumber = 0;
53 	MenuDetailLevelOptions.LightCoronas = 0;
54 	MenuDetailLevelOptions.DecalsOnCharacters = 0;
55 	MenuDetailLevelOptions.DeformableExplosions = 0;
56 	MenuDetailLevelOptions.CharacterComplexity = 0;
57 	MenuDetailLevelOptions.ParticleComplexity = 0;
58 	SetDetailLevelsFromMenu();
59 }
60 
61 
SetDetailLevelsFromMenu(void)62 extern void SetDetailLevelsFromMenu(void)
63 {
64 	switch (MenuDetailLevelOptions.DecalNumber)
65 	{
66 		default:
67 		case 0:
68 		{
69 			LocalDetailLevels.MaximumAllowedNumberOfDecals = 16;
70 			break;
71 		}
72 		case 1:
73 		{
74 			LocalDetailLevels.MaximumAllowedNumberOfDecals = 128;
75 			break;
76 		}
77 		case 2:
78 		{
79 			LocalDetailLevels.MaximumAllowedNumberOfDecals = 512;
80 			break;
81 		}
82 		case 3:
83 		{
84 			LocalDetailLevels.MaximumAllowedNumberOfDecals = 1024;
85 			break;
86 		}
87 	}
88 
89 	LocalDetailLevels.DrawLightCoronas = MenuDetailLevelOptions.LightCoronas;
90 	LocalDetailLevels.DrawHierarchicalDecals = MenuDetailLevelOptions.DecalsOnCharacters;
91 	LocalDetailLevels.ExplosionsDeformToEnvironment = MenuDetailLevelOptions.DeformableExplosions;
92 
93 	switch (MenuDetailLevelOptions.CharacterComplexity)
94 	{
95 		default:
96 		case 0:
97 		{
98 			GlobalLevelOfDetail_Hierarchical = 65536*128;
99 			break;
100 		}
101 		case 1:
102 		{
103 			GlobalLevelOfDetail_Hierarchical = 65536*4;
104 			break;
105 		}
106 		case 2:
107 		{
108 			GlobalLevelOfDetail_Hierarchical = 65536*2;
109 			break;
110 		}
111 		case 3:
112 		{
113 			GlobalLevelOfDetail_Hierarchical = 65536;
114 			break;
115 		}
116 	}
117 
118 	switch (MenuDetailLevelOptions.ParticleComplexity)
119 	{
120 		default:
121 		case 0:
122 		{
123 			LocalDetailLevels.BloodCollidesWithEnvironment=0;
124 			LocalDetailLevels.AlienEnergyViewThreshold = 300;
125 			LocalDetailLevels.NumberOfSmokeParticlesFromLargeExplosion=5;
126 			LocalDetailLevels.NumberOfSmokeParticlesFromSmallExplosion=2;
127 			LocalDetailLevels.GhostFlameThrowerCollisions=0;
128 			break;
129 		}
130 		case 1:
131 		{
132 			LocalDetailLevels.BloodCollidesWithEnvironment=1;
133 			LocalDetailLevels.AlienEnergyViewThreshold = 0;
134 			LocalDetailLevels.NumberOfSmokeParticlesFromLargeExplosion=10;
135 			LocalDetailLevels.NumberOfSmokeParticlesFromSmallExplosion=5;
136 			LocalDetailLevels.GhostFlameThrowerCollisions=1;
137 			break;
138 		}
139 	}
140 
141 }
142 
143 
144 
145 
146 
147 
148 
149 
150 
151 
152 
153 
154 
155 
156 
157 
158 
159 
160 
161 
162 
163