Skip to content

Commit cb416a4

Browse files
committed
Improve system level KV displays
CPU/GPU level correspond to effect/shader detail. Made those accessible again without complete mode. DX level KVs are still complete mode only because that's basically obsolete at this point
1 parent ee46c4c commit cb416a4

File tree

5 files changed

+144
-121
lines changed

5 files changed

+144
-121
lines changed

build.bat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ SET filename.kz=kreedzclimbing
2525
SET filename.psa=portal_stillalive
2626
SET filename.asrd=reactivedrop
2727
SET filename.p2sixense=portal2_sixense
28-
:: No official name for this either
28+
:: Officially still just portal2.fgd, but we need it separate
2929
SET filename.p2edu=portal2_edu
3030

3131
SET game=%1

fgd/base_entity.fgd

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@
3030
gmod_allowphysgun(boolean) : "Allow Physics Gun" : 1
3131
gmod_allowtools(string) : "Sandbox Tool Whitelist" : ""
3232

33-
mincpulevel(integer) : "Min CPU Level" : 0
34-
maxcpulevel(integer) : "Max CPU Level" : 0
35-
mingpulevel(integer) : "Min GPU Level" : 0
36-
maxgpulevel(integer) : "Max GPU Level" : 0
33+
mincpulevel(integer) : "Minimum Effect Detail Level" : 0
34+
maxcpulevel(integer) : "Maximum Effect Detail Level" : 0
35+
mingpulevel(integer) : "Minimum Shader Detail Level" : 0
36+
maxgpulevel(integer) : "Maximum Shader Detail Level" : 0
3737
fademindist(float) : "Fade Min Dist" : 0
3838
fademaxdist(float) : "Fade Max Dist" : 0
3939
fadescale(float) : "Fade Scale": 0

fgd/bases/DXLevelChoice.fgd

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,35 @@
1-
@BaseClass = DXLevelChoice
1+
// Basically obsolete at this point, even the slowest systems will support DX9.
2+
// Black Mesa is deferred, these probably don't do anything there...
3+
@BaseClass appliesto(+complete, until_L4D, !Mesa) = DXLevelChoice
24
[
3-
mindxlevel[engine](integer) : "Minimum DX Level" : 0
4-
mindxlevel[complete](choices) : "Minimum DX Level" : 0 =
5+
mindxlevel(choices) : "Minimum DirectX Level" : 0 : "Prevents this entity from rendering if the user's DirectX level is lower than the specified value." =
56
[
6-
0 : "Default (lowest)"
7-
60 : "DirectX 6.0"
7+
0 : "Default (Lowest)"
8+
60 : "DirectX 6.0"
89
70 : "DirectX 7.0"
9-
80 : "DirectX 8.0 (4600Ti)"
10-
81 : "DirectX 8.1 (FX5200)"
11-
90 : "DirectX 9.0 SM2.0"
12-
95 : "DirectX 9.5 SM3.0"
13-
100: "DirectX 10.0"
10+
80 : "DirectX 8.0"
11+
81 : "Directx 8.1"
12+
90 : "DirectX 9.0"
13+
92 : "Mac/Linux (''9.2'')"
14+
95 : "DirectX 9.0c (''9.5'')"
15+
// Only relevant in P2 and later which don't have this keyvalue
16+
// 97 : "PlayStation 3 (''97'')"
17+
98 : "Xbox 360 (''9.8'')"
1418
]
15-
maxdxlevel[engine](integer) : "Maximum DX Level" : 0
16-
maxdxlevel[complete](choices) : "Maximum DX Level" : 0 =
19+
maxdxlevel(choices) : "Maximum DirectX Level" : 0 : "Prevents this entity from rendering if the user's DirectX level is higher than the specified value." =
1720
[
18-
0: "Default (lowest)"
19-
60: "DirectX 6.0"
20-
70: "DirectX 7.0"
21-
80: "DirectX 8.0 (4600Ti)"
22-
81: "DirectX 8.1 (FX5200)"
23-
90: "DirectX 9.0 SM2.0"
24-
95: "DirectX 9.5 SM3.0"
25-
100: "DirectX 10.0"
21+
0 : "Default (Highest)"
22+
60 : "DirectX 6.0"
23+
70 : "DirectX 7.0"
24+
80 : "DirectX 8.0"
25+
81 : "Directx 8.1"
26+
90 : "DirectX 9.0"
27+
92 : "Mac/Linux (''9.2'')"
28+
95 : "DirectX 9.0c (''9.5'')"
29+
// 97 : "PlayStation 3 (''97'')"
30+
98 : "Xbox 360 (''9.8'')"
2631
]
32+
33+
mindxlevel[engine](integer): "Minimum DirectX Level": 0
34+
maxdxlevel[engine](integer): "Maximum DirectX Level": 0
2735
]

fgd/bases/SystemLevelChoice.fgd

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,45 @@
11

2-
@BaseClass appliesto(complete) = SystemLevelChoice
2+
@BaseClass appliesto(since_L4D) = SystemLevelChoice
33
[
4-
mincpulevel(choices) : "Minimum CPU Level" : 0 =
4+
mincpulevel(choices) : "Minimum Effect Detail Level" : 0 : "Prevents this entity from rendering if the user's Effect Detail setting is lower than the specified value." =
55
[
6-
0: "default (low)"
7-
1: "low"
8-
2: "medium"
9-
3: "high"
6+
0: "Default (Low)"
7+
1: "Low"
8+
2: "Medium"
9+
3: "High"
1010
]
1111

12-
maxcpulevel(choices) : "Maximum CPU Level" : 0 =
12+
maxcpulevel(choices) : "Maximum Effect Detail Level" : 0 : "Prevents this entity from rendering if the user's Effect Detail setting is higher than the specified value." =
1313
[
14-
0: "default (high)"
15-
1: "low"
16-
2: "medium"
17-
3: "high"
14+
0: "Default (High)"
15+
1: "Low"
16+
2: "Medium"
17+
3: "High"
1818
]
1919

20-
mingpulevel(choices) : "Minimum GPU Level" : 0 =
20+
mingpulevel(choices) : "Minimum Shader Detail Level" : 0 : "Prevents this entity from rendering if the user's Shader Detail setting is lower than the specified value." =
2121
[
22-
0: "default (very low)"
23-
1: "very low"
24-
2: "low"
25-
3: "medium"
26-
4: "high"
22+
0: "Default (Low)"
23+
1: "Low"
24+
2: "Medium"
25+
3: "High"
26+
4: "Very High"
2727
]
2828

29-
maxgpulevel(choices) : "Maximum GPU Level" : 0 =
29+
maxgpulevel(choices) : "Maximum Shader Detail Level" : 0 : "Prevents this entity from rendering if the user's Shader Detail setting is higher than the specified value." =
3030
[
31-
0: "default (high)"
32-
1: "very low"
33-
2: "low"
34-
3: "medium"
35-
4: "high"
31+
0: "Default (Very High)"
32+
1: "Low"
33+
2: "Medium"
34+
3: "High"
35+
4: "Very High"
3636
]
3737

38-
disablex360(boolean) : "Disable X360" : 0
38+
mincpulevel[engine](integer): "Minimum Effect Detail Level": 0
39+
maxcpulevel[engine](integer): "Maximum Effect Detail Level": 0
40+
mingpulevel[engine](integer): "Minimum Shader Detail Level": 0
41+
maxgpulevel[engine](integer): "Maximum Shader Detail Level": 0
3942

40-
41-
mincpulevel[engine](integer): "Minimum CPU Level": 0
42-
maxcpulevel[engine](integer): "Maximum CPU Level": 0
43-
mingpulevel[engine](integer): "Minimum GPU Level": 0
44-
maxgpulevel[engine](integer): "Maximum GPU Level": 0
43+
// Most modders won't need this...
44+
disablex360[complete](boolean) : "Disable on Xbox 360" : 0 : "Prevents this entity from rendering if the game is running on Xbox 360."
4545
]

fgd/point/prop/prop_static.fgd

Lines changed: 82 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -49,73 +49,6 @@
4949

5050
preventpropcombine[PROPCOMBINE](boolean) : "Disable Prop Combine" : 0 : "Prevent this static prop from combining with any other static props in vbsp."
5151

52-
linedivider_levels[!engine, +complete](string) readonly : "----------------------------------------------------------------------------------------------------------" : ""
53-
54-
mincpulevel[engine](integer): "Minimum CPU Level": 0
55-
maxcpulevel[engine](integer): "Maximum CPU Level": 0
56-
mingpulevel[engine](integer): "Minimum GPU Level": 0
57-
maxgpulevel[engine](integer): "Maximum GPU Level": 0
58-
mindxlevel[engine](integer): "Minimum DX Level": 0
59-
maxdxlevel[engine](integer): "Maximum DX Level": 0
60-
61-
// DXlevel is used in v6 and 7 only, the replaced by cpu/gpu for 8+.
62-
63-
mindxlevel[+complete, since_TF2, until_L4D2, MESA](choices) : "Minimum DX Level" : 0 =
64-
[
65-
0 : "default (lowest)"
66-
70 : "dx7"
67-
80 : "dx8.0 (4600Ti)"
68-
81 : "dx8.1 (FX5200)"
69-
90 : "dx9 SM2.0"
70-
95 : "dx9 SM3.0"
71-
]
72-
maxdxlevel[+complete, since_TF2, until_L4D2, MESA](choices) : "Maximum DX Level" : 0 =
73-
[
74-
0 : "default (highest)"
75-
60 : "dx6"
76-
70 : "dx7"
77-
80 : "dx8.0 (4600Ti)"
78-
81 : "dx8.1 (FX5200)"
79-
90 : "dx9 SM2.0"
80-
95 : "dx9 SM3.0"
81-
]
82-
83-
mincpulevel[+complete, since_L4D2](choices) : "Minimum CPU Level" : 0 =
84-
[
85-
0: "default (low)"
86-
1: "low"
87-
2: "medium"
88-
3: "high"
89-
]
90-
91-
maxcpulevel[+complete, since_L4D2](choices) : "Maximum CPU Level" : 0 =
92-
[
93-
0: "default (high)"
94-
1: "low"
95-
2: "medium"
96-
3: "high"
97-
]
98-
99-
mingpulevel[+complete, since_L4D2](choices) : "Minimum GPU Level" : 0 =
100-
[
101-
0: "default (very low)"
102-
1: "very low"
103-
2: "low"
104-
3: "medium"
105-
4: "high"
106-
]
107-
108-
maxgpulevel[+complete, since_L4D2](choices) : "Maximum GPU Level" : 0 =
109-
[
110-
0: "default (high)"
111-
1: "very low"
112-
2: "low"
113-
3: "medium"
114-
4: "high"
115-
]
116-
117-
disablex360[+complete, since_L4D2](boolean) : "Disable on Xbox 360" : 0
118-
11952
linedivider_light[!engine](string) readonly : "----------------------------------------------------------------------------------------------------------" : ""
12053

12154
disableshadows(boolean) : "Disable Shadows" : 0 : "Prevent this prop from obstructing light to cast shadows."
@@ -153,4 +86,86 @@
15386
"Using 0 here turns off the forcible fades. " +
15487
"Numbers smaller than 1 cause the prop to fade out at further distances, " +
15588
"and greater than 1 cause it to fade out at closer distances."
89+
90+
91+
// Needs to appear post-L4D, or if complete mode is enabled
92+
linedivider_levels[!engine, since_L4D, complete](string) readonly : "----------------------------------------------------------------------------------------------------------" : ""
93+
94+
// DXlevel KVs were added in Orange Box (lump v6) and removed in L4D (lump v8).
95+
// All pre-Orange Box games have since been updated.
96+
97+
// Basically obsolete at this point, even the slowest systems will support DX9.
98+
// Black Mesa is deferred, these probably don't do anything there...
99+
mindxlevel[+complete, until_L4D, !MESA](choices) : "Minimum DirectX Level" : 0 : "Prevents this entity from rendering if the user's DirectX level is lower than the specified value." =
100+
[
101+
0 : "Default (Lowest)"
102+
60 : "DirectX 6.0"
103+
70 : "DirectX 7.0"
104+
80 : "DirectX 8.0"
105+
81 : "Directx 8.1"
106+
90 : "DirectX 9.0"
107+
92 : "Mac/Linux (''9.2'')"
108+
95 : "DirectX 9.0c (''9.5'')"
109+
// Only relevant in P2 and later which don't have this keyvalue
110+
// 97 : "PlayStation 3 (''97'')"
111+
98 : "Xbox 360 (''9.8'')"
112+
]
113+
maxdxlevel[+complete, until_L4D, !MESA](choices) : "Maximum DirectX Level" : 0 : "Prevents this entity from rendering if the user's DirectX level is higher than the specified value." =
114+
[
115+
0 : "Default (Highest)"
116+
60 : "DirectX 6.0"
117+
70 : "DirectX 7.0"
118+
80 : "DirectX 8.0"
119+
81 : "Directx 8.1"
120+
90 : "DirectX 9.0"
121+
92 : "Mac/Linux (''9.2'')"
122+
95 : "DirectX 9.0c (''9.5'')"
123+
// 97 : "PlayStation 3 (''97'')"
124+
98 : "Xbox 360 (''9.8'')"
125+
]
126+
127+
mindxlevel[until_L4D, +engine](integer): "Minimum DirectX Level": 0
128+
maxdxlevel[until_L4D, +engine](integer): "Maximum DirectX Level": 0
129+
130+
mincpulevel[since_L4D](choices) : "Minimum Effect Detail Level" : 0 : "Prevents this entity from rendering if the user's Effect Detail setting is lower than the specified value." =
131+
[
132+
0: "Default (Low)"
133+
1: "Low"
134+
2: "Medium"
135+
3: "High"
136+
]
137+
138+
maxcpulevel[since_L4D](choices) : "Maximum Effect Detail Level" : 0 : "Prevents this entity from rendering if the user's Effect Detail setting is higher than the specified value." =
139+
[
140+
0: "Default (High)"
141+
1: "Low"
142+
2: "Medium"
143+
3: "High"
144+
]
145+
146+
mingpulevel[since_L4D](choices) : "Minimum Shader Detail Level" : 0 : "Prevents this entity from rendering if the user's Shader Detail setting is lower than the specified value." =
147+
[
148+
0: "Default (Low)"
149+
1: "Low"
150+
2: "Medium"
151+
3: "High"
152+
4: "Very High"
153+
]
154+
155+
maxgpulevel[since_L4D](choices) : "Maximum Shader Detail Level" : 0 : "Prevents this entity from rendering if the user's Shader Detail setting is higher than the specified value." =
156+
[
157+
0: "Default (Very High)"
158+
1: "Low"
159+
2: "Medium"
160+
3: "High"
161+
4: "Very High"
162+
]
163+
164+
mincpulevel[since_L4D, +engine](integer): "Minimum Effect Detail Level": 0
165+
maxcpulevel[since_L4D, +engine](integer): "Maximum Effect Detail Level": 0
166+
mingpulevel[since_L4D, +engine](integer): "Minimum Shader Detail Level": 0
167+
maxgpulevel[since_L4D, +engine](integer): "Maximum Shader Detail Level": 0
168+
169+
// Most modders won't need this...
170+
disablex360[complete](boolean) : "Disable on Xbox 360" : 0 : "Prevents this entity from rendering if the game is running on Xbox 360."
156171
]

0 commit comments

Comments
 (0)