v2 / vlib / v / fmt / tests / too_long_infix_expressions_keep.vv
41 lines · 39 sloc · 1.11 KB · 6e9ec99b50ff3a3fa9bd59f3be71b00560e56391
Raw
1module main
2
3struct Abc {
4pub mut:
5 x int
6 y int
7 angle int
8}
9
10fn s_adjustsoundparams(listener &Abc, source &Abc, vol &int, sep &int) int {
11 approx_dist := 0
12 adx := 0
13 ady := 0
14 angle := 0
15 adx = C.abs(listener.x - source.x)
16 ady = C.abs(listener.y - source.y)
17 approx_dist = adx + ady - ((if adx < ady { adx } else { ady }) >> 1)
18 if gamemap != 8 && approx_dist > (1200 * (1 << 16)) {
19 return 0
20 }
21 angle = r_pointtoangle2(listener.x, listener.y, source.x, source.y)
22 if angle > listener.angle {
23 angle = angle - listener.angle
24 } else {
25 angle = angle + (4294967295 - listener.angle)
26 }
27 angle >>= 19
28 *sep = 128 - (fixedmul((96 * (1 << 16)), finesine[angle]) >> 16)
29 if approx_dist < (200 * (1 << 16)) {
30 *vol = snd_SfxVolume
31 } else if gamemap == 8 {
32 if approx_dist > (1200 * (1 << 16)) {
33 approx_dist = (1200 * (1 << 16))
34 }
35 *vol = 15 + ((snd_SfxVolume - 15) * (((1200 * (1 << 16)) -
36 approx_dist) >> 16)) / (((1200 * (1 << 16)) - (200 * (1 << 16))) >> 16)
37 } else {
38 *vol = (snd_SfxVolume * (((1200 * (1 << 16)) - approx_dist) >> 16)) / (((1200 * (1 << 16)) - (200 * (1 << 16))) >> 16)
39 }
40 return *vol > 0
41}
42