@@ -26,6 +26,14 @@ SND_NOFILTER = (<< 1 13)
26
26
SND_PREVIEW = (<< 1 14)
27
27
SND_DUCKING = (<< 1 15)
28
28
29
+ COLMASK_H = (<< 1 0)
30
+ COLMASK_S = (<< 1 1)
31
+ COLMASK_V = (<< 1 2)
32
+ COLMASK_HS = (| $COLMASK_H $COLMASK_S)
33
+ COLMASK_HV = (| $COLMASK_H $COLMASK_V)
34
+ COLMASK_SV = (| $COLMASK_S $COLMASK_V)
35
+ COLMASK_HSV = (| $COLMASK_H $COLMASK_S $COLMASK_V)
36
+
29
37
// creates locals as varname[1..N]
30
38
setlist = [
31
39
local s
@@ -94,27 +102,12 @@ editbindmod = [
94
102
95
103
quine = [echo (format " quine = [%1]" $quine)]; setcomplete quine 1
96
104
97
- // Returns given RGB color as an INT color
98
- // usage: (rgbtoint R G B)
99
- rgbtoint = [+ (<< $arg1 16) (<< $arg2 8) $arg3]
100
-
101
- // 1:<hsv>
102
- hsvtohex = [
103
- local _hsv
104
- _hsv = (hsvtorgb $arg1)
105
- tohex (tool_colour_toint [@(at $_hsv 0) @(at $_hsv 1) @(at $_hsv 2)])
106
- ]
107
-
108
- // 1:<int>
109
- inttohsv = [
110
- local _r _g _b
111
- inttorgb $arg1 _r _g _b
112
- rgbtohsv [@(divf $_r 255) @(divf $_g 255) @(divf $_b 255)]
113
- ]
105
+ // 1:<hue> 2:<saturation> 3:<value>
106
+ hsvtohex = [tohex (intcolourhsv $arg1 $arg2 $arg3) 6]
114
107
115
108
// Returns given RGB color as a HEX color
116
109
// usage: (rgbtohex R G B)
117
- rgbtohex = [tohex (rgbtoint $arg1 $arg2 $arg3) 6]
110
+ rgbtohex = [tohex (intcolour $arg1 $arg2 $arg3) 6]
118
111
119
112
// Returns given INT color as an RGB color
120
113
// usage: (inttorgb <value> R-var G-var B-var)
@@ -133,203 +126,6 @@ inttorgba = [
133
126
$arg5 = (& $arg1 0xFF)
134
127
]
135
128
136
- // usage: (rgbtohsl R-var G-var B-var)
137
- // Returns: [H-var S-var L-var]
138
- rgbtohsl = [
139
- local r g b h s l
140
- r = (divf $arg1 255)
141
- g = (divf $arg2 255)
142
- b = (divf $arg3 255)
143
-
144
- l = (divf (+f (maxf $r $g $b) (minf $r $g $b)) 2)
145
-
146
- if (=f $r $g $b) [
147
- s = 0
148
- ] [
149
- if (<f $l 0.5) [
150
- s = (divf (-f (maxf $r $g $b) (minf $r $g $b)) (+f (maxf $r $g $b) (minf $r $g $b)))
151
- ] [ // > 0.5
152
- s = (divf (-f (maxf $r $g $b) (minf $r $g $b)) (-f 2 (maxf $r $g $b) (minf $r $g $b)))
153
- ]
154
- ]
155
-
156
- if (=f (maxf $r $g $b) $r) [
157
- h = (divf (-f $g $b) (-f (maxf $r $g $b) (minf $r $g $b)))
158
- ]
159
-
160
- if (=f (maxf $r $g $b) $g) [
161
- h = (+f 2 (divf (-f $b $r) (-f (maxf $r $g $b) (minf $r $g $b))))
162
- ]
163
-
164
- if (=f (maxf $r $g $b) $b) [
165
- h = (+f 4 (divf (-f $r $g) (-f (maxf $r $g $b) (minf $r $g $b))))
166
- ]
167
-
168
- h = (*f $h 60)
169
-
170
- if (<f $h 0) [
171
- h = (+f $h 360)
172
- ]
173
-
174
- result (concat $h $s $l)
175
- ]
176
-
177
- // usage: (hsltorgb H-var S-var L-var)
178
- // Returns: [R-var G-var B-var]
179
- hsltorgb = [
180
- local r g b h s l t1 t2 tr tg tb
181
- h = (divf $arg1 360)
182
- s = $arg2
183
- l = $arg3
184
-
185
- if (>f $s 0) [
186
- if (<f $l 0.5) [
187
- t1 = (*f $l (+f 1 $s))
188
- ] [ // > 0.5
189
- t1 = (-f (+f $l $s) (*f $l $s))
190
- ]
191
-
192
- t2 = (-f (*f 2 $l) $t1)
193
-
194
- tr = (+f $h (divf 1 3))
195
- tg = $h
196
- tb = (-f $h (divf 1 3))
197
-
198
- if (<f $tr 0) [tr = (+f $tr 1)] [if (>f $tr 1) [tr = (-f $tr 1)]]
199
- if (<f $tg 0) [tg = (+f $tg 1)] [if (>f $tg 1) [tg = (-f $tg 1)]]
200
- if (<f $tb 0) [tb = (+f $tb 1)] [if (>f $tb 1) [tb = (-f $tb 1)]]
201
-
202
- if (<f (*f 6 $tr) 1) [ // RED
203
- r = (+f $t2 (*f (*f (-f $t1 - $t2) 6) $tr))
204
- ] [ // > 1
205
- if (<f (*f 2 $tr) 1) [
206
- r = $t1
207
- ] [ // > 1
208
- if (<f (*f 3 $tr) 2) [
209
- r = (+f $t2 (*f (*f (-f $t1 $t2) (-f (divf 4 6) $tr)) 6))
210
- ] [ // > 1
211
- r = $t2
212
- ]
213
- ]
214
- ]
215
-
216
- if (<f (*f 6 $tg) 1) [ // GREEN
217
- g = (+f $t2 (*f (*f (-f $t1 - $t2) 6) $tg))
218
- ] [ // > 1
219
- if (<f (*f 2 $tg) 1) [
220
- g = $t1
221
- ] [ // > 1
222
- if (<f (*f 3 $tg) 2) [
223
- g = (+f $t2 (*f (*f (-f $t1 $t2) (-f (divf 4 6) $tg)) 6))
224
- ] [ // > 1
225
- g = $t2
226
- ]
227
- ]
228
- ]
229
-
230
- if (<f (*f 6 $tb) 1) [ // BLUE
231
- b = (+f $t2 (*f (*f (-f $t1 - $t2) 6) $tb))
232
- ] [ // > 1
233
- if (<f (*f 2 $tb) 1) [
234
- b = $t1
235
- ] [ // > 1
236
- if (<f (*f 3 $tb) 2) [
237
- b = (+f $t2 (*f (*f (-f $t1 $t2) (-f (divf 4 6) $tb)) 6))
238
- ] [ // > 1
239
- b = $t2
240
- ]
241
- ]
242
- ]
243
- ] [
244
- r = $l
245
- g = $l
246
- b = $l
247
- ]
248
-
249
- result (concat (round (*f $r 255)) (round (*f $g 255)) (round (*f $b 255)))
250
- ]
251
-
252
- // 1:<rgb> 2:<range>
253
- rgbtohsv = [
254
- local range
255
- range = $arg2
256
-
257
- if $range [] [
258
- range = 1
259
- ]
260
-
261
- local col_r col_g col_b col_max col_min
262
- col_r = (divf (at $arg1 0) $range)
263
- col_g = (divf (at $arg1 1) $range)
264
- col_b = (divf (at $arg1 2) $range)
265
-
266
- col_max = (maxf $col_r $col_g $col_b)
267
- col_min = (minf $col_r $col_g $col_b)
268
-
269
- local delta
270
- delta = (-f $col_max $col_min)
271
-
272
- local hue sat val
273
-
274
- caseif (=f $delta 0) [
275
- hue = 0
276
- ] (=f $col_max $col_r) [
277
- hue = (divf (-f $col_g $col_b) $delta)
278
- ] (=f $col_max $col_g) [
279
- hue = (+f (divf (-f $col_b $col_r) $delta) 2)
280
- ] (=f $col_max $col_b) [
281
- hue = (+f (divf (-f $col_r $col_g) $delta) 4)
282
- ]
283
-
284
- hue = (*f $hue 60)
285
-
286
- if (<f $hue 0) [
287
- hue = (+f $hue 360)
288
- ]
289
-
290
- hue = (toint (round $hue))
291
-
292
- if $delta [
293
- sat = (divf $delta $col_max)
294
- ] [
295
- sat = 0
296
- ]
297
-
298
- val = $col_max
299
-
300
- concat $hue $sat $val
301
- ]
302
-
303
- // 1:<hsv> 2:<range>
304
- hsvtorgb = [
305
- local range
306
- range = $arg2
307
-
308
- if $range [] [
309
- range = 1
310
- ]
311
-
312
- local hue sat val
313
- hue = (at $arg1 0)
314
- sat = (at $arg1 1)
315
- val = (at $arg1 2)
316
-
317
- local C X m
318
- C = (*f $val $sat)
319
- X = (*f $C (-f 1 (absf (-f (modf (divf $hue 60) 2) 1))))
320
- m = (-f $val $C)
321
-
322
- local hue_sel
323
- hue_sel = (div $hue 60)
324
-
325
- local col_r col_g col_b
326
- col_r = (*f (+f (at [@C @X 0 0 @X @C] $hue_sel) $m) $range)
327
- col_g = (*f (+f (at [@X @C @C @X 0 0] $hue_sel) $m) $range)
328
- col_b = (*f (+f (at [0 0 @X @C @C @X] $hue_sel) $m) $range)
329
-
330
- concat $col_r $col_g $col_b
331
- ]
332
-
333
129
//pluralize
334
130
//pluralizes words (appends " s" ) depending upon value passed to it (e.g. pluralise 1 " word" outputs " word" ; pluralize 2 "word" outputs "words")
335
131
//Arguments:
0 commit comments