Author Topic: It's already 2020 in Australia! Where are the fireworks, folks?  (Read 8190 times)

0 Members and 1 Guest are viewing this topic.

FellippeHeitor

  • Guest
It's already 2020 in Australia! Where are the fireworks, folks?
« on: December 31, 2019, 10:44:59 am »
No, really, no one?

Marked as best answer by on Today at 12:16:26 pm

Offline Dimster

  • Forum Resident
  • Posts: 500
    • View Profile
Saw the Sidney fireworks - beautiful - I'd love to visit that city one day. Ah, found my New Years resolution.

Offline Pete

  • Forum Resident
  • Posts: 2361
  • Cuz I sez so, varmint!
    • View Profile
Re: It's already 2020 in Australia! Where are the fireworks, folks?
« Reply #2 on: December 31, 2019, 02:16:11 pm »
In New York, we have a massive fireworks display, thanks to Trump. We also have a tradition of the ball drop at midnight, from Time Square. So President Trump is responsible for all of the fireworks, but it's fair to say that former president Obama was responsible for dropping the ball!

Pete

Happy New Year!

Code: QB64: [Select]
  1. SCREEN 0, 0, 0, 0
  2. WIDTH 80, 43
  3. c = _WIDTH / 2
  4. PRINT "^";
  5. PRINT CHR$(179);
  6. FOR i = _HEIGHT TO 6 STEP -1
  7.     _DELAY i / 450
  8.     PCOPY 0, 1
  9.     CLS
  10.     SCREEN 0, 0, 1, 0
  11.     LOCATE i - 1, c
  12.     PRINT "^";
  13.     LOCATE i, c
  14.     PRINT CHR$(179);
  15.     PCOPY 1, 0
  16. SCREEN 0, 0, 1, 1
  17. FOR j = 1 TO 50
  18.     LOCATE i + RND * 9 - 4, c + RND * 30 - 14
  19.     _DELAY .025
  20.     COLOR RND * 14 + 17, 0: PRINT "*"
  21. COLOR 7, 0
  22. SCREEN 0, 0, 0, 0
  23. msg$ = "HAPPY NEW YEAR!"
  24. LOCATE i, c - LEN(msg$) \ 2
  25. PRINT msg$
  26. FOR h = i TO _HEIGHT
  27.     _DELAY (_HEIGHT - h + 1) / 450
  28.     PCOPY 0, 1
  29.     CLS
  30.     SCREEN 0, 0, 1, 0
  31.     LOCATE h, c - LEN(msg$) \ 2
  32.     PRINT msg$;
  33.     PCOPY 1, 0
Want to learn how to write code on cave walls? https://www.tapatalk.com/groups/qbasic/qbasic-f1/

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
    • View Profile
Re: It's already 2020 in Australia! Where are the fireworks, folks?
« Reply #3 on: December 31, 2019, 04:03:44 pm »
How do you top 2018's code show?
Code: QB64: [Select]
  1. _TITLE "Happy Trails 2020" 'from Happy Trails 2018
  2. ' 2017-12-29 another redesign of fireworks
  3. ' 2017-12-28 redesign fireworks
  4. ' now with lake refelction 2017-12-27 forget the bouncing sparks
  5. ' combine Welcome Plasma Font with landscape
  6. '_title "Fireworks 3 translation to QB64 2017-12-26 bplus"
  7. 'fireworks 3.bas SmallBASIC 0.12.2 [B+=MGA] 2015-05-09
  8. 'fireworks 2.bas 2016-05-05 now with Gravity, Newtonian bounce, smoke debris
  9. 'fireworks 3.bas try with map variables make bursts around a central point
  10.  
  11.  
  12. CONST xmax = 1200
  13. CONST ymax = 720
  14. CONST waterline = 600 ' 600 = ratio 5 to 1 sky to water
  15. '                       raise and lower waterline as desired  highest about 400?
  16. CONST lTail = 15
  17. CONST bluey = 5 * 256 ^ 2 + 256 * 5 + 5
  18. CONST debrisMax = 28000
  19.  
  20. SCREEN _NEWIMAGE(xmax, ymax, 32)
  21. _SCREENMOVE 120, 20
  22.  
  23. TYPE fireWorkType
  24.     x AS INTEGER
  25.     y AS INTEGER
  26.     seed AS INTEGER
  27.     age AS INTEGER
  28.     life AS INTEGER
  29.  
  30.  
  31. TYPE debrisType
  32.     x AS SINGLE
  33.     y AS SINGLE
  34.     c AS LONG
  35.  
  36. COMMON SHARED fw() AS fireWorkType
  37. COMMON SHARED debris() AS debrisType
  38. COMMON SHARED cN, pR!, pG!, pB!
  39.  
  40. SCREEN _NEWIMAGE(xmax, ymax, 32)
  41.  
  42. 'prepare message font
  43. mess$ = " Happy New Year 2020"
  44. PRINT mess$
  45. w = 8 * LEN(mess$): h = 16
  46. DIM p(w, h)
  47. black&& = POINT(0, 10)
  48. FOR y = 0 TO h
  49.     FOR x = 0 TO w
  50.         IF POINT(x, y) <> black&& THEN
  51.             p(x, y) = 1
  52.         END IF
  53.     NEXT
  54. xo = 0: yo = 15: m = 7.2
  55. resetPlasma
  56.  
  57. 'prepare landscape
  58. land& = _NEWIMAGE(xmax, ymax, 32)
  59. _DEST land&
  60. drawLandscape
  61.  
  62. 'prepare fire works
  63. nFW = 3
  64. DIM fw(1 TO 10) AS fireWorkType
  65. FOR i = 1 TO nFW
  66.     initFireWork (i)
  67.  
  68. ''debris feild
  69. 'DIM debris(debrisMax) AS debrisType
  70.  
  71. 'OK start the show
  72.     'cls screen with land image
  73.     _PUTIMAGE , land&, 0
  74.  
  75.     'draw fireworks
  76.     FOR f = 1 TO nFW
  77.         IF fw(f).age <= fw(f).life THEN drawfw (f) ELSE initFireWork f
  78.     NEXT
  79.  
  80.     ''debris
  81.     'FOR i = 0 TO debrisStack
  82.     '    PSET (debris(i).x, debris(i).y), debris(i).c
  83.     '    debris(i).x = debris(i).x + RND * 3 - 1.5
  84.     '    debris(i).y = debris(i).y + RND * 3.5 - 1.5
  85.     '    IF debris(i).x < 0 OR debris(i).y < 0 OR debris(i).x > xmax OR debris(i).y > waterline + RND * 20 THEN NewDebris (i)
  86.     'NEXT
  87.  
  88.     'text message in plasma
  89.     FOR y = 0 TO h - 1
  90.         FOR x = 0 TO w - 1
  91.             IF p(x, y) THEN
  92.                 changePlasma
  93.             ELSE
  94.                 COLOR 0
  95.             END IF
  96.             LINE (xo + x * m, yo + y * m)-(xo + x * m + m, yo + y * m + m), , BF
  97.         NEXT
  98.     NEXT
  99.     lc = lc + 1
  100.     IF lc MOD 200 = 0 THEN resetPlasma
  101.  
  102.     'reflect sky
  103.     skyWaterRatio = waterline / (ymax - waterline) - .05
  104.     FOR y = waterline TO ymax
  105.         FOR x = 0 TO xmax
  106.             c&& = POINT(x, waterline - ((y - waterline - 1) * skyWaterRatio) + RND * 5)
  107.             PSET (x, y + 1), c&& + bluey
  108.         NEXT
  109.     NEXT
  110.  
  111.     _DISPLAY
  112.     _LIMIT 200 'no limit needed on my system!
  113.  
  114.     ''accumulate debris
  115.     'IF lc MOD 2000 THEN
  116.     '    IF debrisStack < debrisMax THEN
  117.     '        FOR i = 1 TO 2
  118.     '            NewDebris i + debrisStack
  119.     '        NEXT
  120.     '        debrisStack = debrisStack + 2
  121.     '    END IF
  122.     'END IF
  123.  
  124. 'SUB NewDebris (i)
  125. '    debris(i).x = RND * xmax
  126. '    debris(i).y = RND * ymax
  127. '    c = RND * 155
  128. '    debris(i).c = _RGB32(c, c, c)
  129. 'END SUB
  130.  
  131. SUB changePlasma ()
  132.     cN = cN + .01
  133.     COLOR _RGB(127 + 127 * SIN(pR! * .3 * cN), 127 + 127 * SIN(pG! * .3 * cN), 127 + 127 * SIN(pB! * .3 * cN))
  134.  
  135. SUB resetPlasma ()
  136.     pR! = RND ^ 2: pG! = RND ^ 2: pB! = RND ^ 2
  137.  
  138. SUB drawLandscape
  139.     'the sky
  140.     FOR i = 0 TO ymax
  141.         midInk 0, 0, 0, 78, 28, 68, i / ymax
  142.         LINE (0, i)-(xmax, i)
  143.     NEXT
  144.     'the land
  145.     startH = waterline - 80
  146.     rr = 10: gg = 20: bb = 15
  147.     FOR mountain = 1 TO 6
  148.         Xright = 0
  149.         y = startH
  150.         WHILE Xright < xmax
  151.             ' upDown = local up / down over range, change along Y
  152.             ' range = how far up / down, along X
  153.             upDown = (RND * .8 - .35) * (1 / (1 * mountain))
  154.             range = Xright + rand&&(5, 35) * 2.5 / mountain
  155.             lastx = Xright - 1
  156.             FOR X = Xright TO range
  157.                 y = y + upDown
  158.                 COLOR _RGB32(rr, gg, bb)
  159.                 LINE (lastx, y)-(X, ymax), , BF 'just lines weren't filling right
  160.                 lastx = X
  161.             NEXT
  162.             Xright = range
  163.         WEND
  164.         rr = rand&&(rr + 5, rr): gg = rand&&(gg + 5, gg): bb = rand&&(bb + 4, bb)
  165.         IF rr < 0 THEN rr = 0
  166.         IF gg < 0 THEN gg = 0
  167.         IF bb < 0 THEN bb = 0
  168.         startH = startH + rand&&(1, 10)
  169.     NEXT
  170.     'LINE (0, waterline)-(xmax, ymax), _RGB32(0, 0, 0), BF
  171.  
  172. SUB midInk (r1, g1, b1, r2, g2, b2, fr)
  173.     COLOR _RGB(r1 + (r2 - r1) * fr, g1 + (g2 - g1) * fr, b1 + (b2 - b1) * fr)
  174.  
  175. FUNCTION rand&& (lo&&, hi&&)
  176.     rand&& = INT(RND * (hi&& - lo&& + 1)) + lo&&
  177.  
  178. SUB drawfw (i)
  179.     'here's how to "save" a bunch of random numbers without data and arrays but tons of redundant calculations
  180.     RANDOMIZE USING fw(i).seed 'this repeats all random numbers generated by seed in same sequence
  181.     'recreate our firework from scratch!
  182.     red = rand&&(200, 255)
  183.     green = rand&&(200, 255)
  184.     blue = rand&&(200, 255)
  185.     x = rand&&(1, 4)
  186.     IF x = 1 THEN
  187.         red = 0
  188.     ELSEIF x = 2 THEN
  189.         green = 0
  190.     ELSEIF x = 3 THEN
  191.         blue = 0
  192.     ELSE
  193.         x = rand&&(1, 4)
  194.         IF x = 1 THEN
  195.             red = 0: green = 0
  196.         ELSEIF x = 2 THEN
  197.             green = 0: blue = 0
  198.         ELSEIF x = 3 THEN
  199.             blue = 0: red = 0
  200.         END IF
  201.     END IF
  202.     ne = rand&&(80, 300)
  203.     DIM embers(ne, 1)
  204.     FOR e = 0 TO ne
  205.         r = RND * 3
  206.         embers(e, 0) = r * COS(e * _PI(2) / 101)
  207.         embers(e, 1) = r * SIN(e * _PI(2) / 101)
  208.     NEXT
  209.     start = fw(i).age - lTail ' don't let tails get longer than lTail const
  210.     IF start < 1 THEN start = 1
  211.     FOR e = 0 TO ne
  212.         cx = fw(i).x: cy = fw(i).y: dx = embers(e, 0): dy = embers(e, 1)
  213.         FOR t = 1 TO fw(i).age
  214.             cx = cx + dx
  215.             cy = cy + dy
  216.             IF t >= start THEN
  217.                 'too much like a flower?
  218.                 midInk 60, 60, 60, red, green, blue, (t - start) / lTail
  219.                 'midInk 60, 60, 60, 128, 160, 150, (t - start) / lTail
  220.                 fcirc cx, cy, (t - start) / lTail
  221.             END IF
  222.  
  223.             dx = dx * .99 'air resitance
  224.             dy = dy + .01 'gravity
  225.         NEXT
  226.         COLOR _RGB32(255, 255, 255)
  227.         'COLOR _RGB32(red, green, blue)
  228.         cx = cx + dx: cy = cy + dy
  229.         fcirc cx, cy, (t - start) / lTail
  230.     NEXT
  231.     fw(i).age = fw(i).age + 1
  232.  
  233. SUB initFireWork (i)
  234.     fw(i).x = rand&&(.1 * xmax, .9 * xmax)
  235.     fw(i).y = rand&&(.1 * ymax, .5 * ymax)
  236.     fw(i).seed = rand&&(0, 32000)
  237.     fw(i).age = 0
  238.     fw(i).life = rand&&(20, 120)
  239.  
  240. 'Steve McNeil's  copied from his forum   note: Radius is too common a name
  241. SUB fcirc (CX AS LONG, CY AS LONG, R AS LONG)
  242.     DIM subRadius AS LONG, RadiusError AS LONG
  243.     DIM X AS LONG, Y AS LONG
  244.  
  245.     subRadius = ABS(R)
  246.     RadiusError = -subRadius
  247.     X = subRadius
  248.     Y = 0
  249.  
  250.     IF subRadius = 0 THEN PSET (CX, CY): EXIT SUB
  251.  
  252.     ' Draw the middle span here so we don't draw it twice in the main loop,
  253.     ' which would be a problem with blending turned on.
  254.     LINE (CX - X, CY)-(CX + X, CY), , BF
  255.  
  256.     WHILE X > Y
  257.         RadiusError = RadiusError + Y * 2 + 1
  258.         IF RadiusError >= 0 THEN
  259.             IF X <> Y + 1 THEN
  260.                 LINE (CX - Y, CY - X)-(CX + Y, CY - X), , BF
  261.                 LINE (CX - Y, CY + X)-(CX + Y, CY + X), , BF
  262.             END IF
  263.             X = X - 1
  264.             RadiusError = RadiusError - X * 2
  265.         END IF
  266.         Y = Y + 1
  267.         LINE (CX - X, CY - Y)-(CX + X, CY - Y), , BF
  268.         LINE (CX - X, CY + Y)-(CX + X, CY + Y), , BF
  269.     WEND
  270.  

Offline Pete

  • Forum Resident
  • Posts: 2361
  • Cuz I sez so, varmint!
    • View Profile
Re: It's already 2020 in Australia! Where are the fireworks, folks?
« Reply #4 on: December 31, 2019, 04:07:27 pm »
Yeah, but in mine, you can see the skyrocket going up! So basically we have the same effect, yours minus my visible rocket; Oh, and mine has far fewer lines of code. :D :D :D

Pete
Want to learn how to write code on cave walls? https://www.tapatalk.com/groups/qbasic/qbasic-f1/

FellippeHeitor

  • Guest
Re: It's already 2020 in Australia! Where are the fireworks, folks?
« Reply #5 on: December 31, 2019, 05:49:22 pm »
Happy New Year, guys!

To another decade of BASIC/QB64 going strong.

Offline Petr

  • Forum Resident
  • Posts: 1720
  • The best code is the DNA of the hops.
    • View Profile
Re: It's already 2020 in Australia! Where are the fireworks, folks?
« Reply #6 on: December 31, 2019, 06:00:30 pm »
Happy New Year!

Offline Pete

  • Forum Resident
  • Posts: 2361
  • Cuz I sez so, varmint!
    • View Profile
Re: It's already 2020 in Australia! Where are the fireworks, folks?
« Reply #7 on: December 31, 2019, 07:43:23 pm »
H A P P Y   N E W   Y E A R ! ! ! !

GREAT fireworks B+!

Wow, you're a tough grader. I'd have given him at least an A-.

Pete
Want to learn how to write code on cave walls? https://www.tapatalk.com/groups/qbasic/qbasic-f1/

Offline TempodiBasic

  • Forum Resident
  • Posts: 1792
    • View Profile
Re: It's already 2020 in Australia! Where are the fireworks, folks?
« Reply #8 on: January 01, 2020, 03:25:29 am »
Happy New Year to
QB64coders and QB64Developers
so that QB64 can be alive long!


@Pete
but that rocket seems to be a strong 1 in the set of binary bits


@Bplus
Cool! More the water than the  sky for me!
Programming isn't difficult, only it's  consuming time and coffee

Offline Pete

  • Forum Resident
  • Posts: 2361
  • Cuz I sez so, varmint!
    • View Profile
Re: It's already 2020 in Australia! Where are the fireworks, folks?
« Reply #9 on: January 01, 2020, 01:46:32 pm »
Is the contest over? Have the contest judges come by yet? If so, please be kind... and offer at least a second place prize, so B+ doesn't feel too dejected. :D

Pete
Want to learn how to write code on cave walls? https://www.tapatalk.com/groups/qbasic/qbasic-f1/

Offline Bert22306

  • Forum Regular
  • Posts: 206
    • View Profile
Re: It's already 2020 in Australia! Where are the fireworks, folks?
« Reply #10 on: January 01, 2020, 03:00:26 pm »
By now, it's a new year for everyone. Happy New Year!

And then, on a more controversial note, Happy New Decade!

Yes, even the ancient Romans knew that when a child is born, he or she is not instantly one year old. Hence, a Year Zero, and a Decade Zero, actually do exist. The traditional date for the birth of Jesus Christ was established as being 25 December of the year 753 "ab urbe condita," or "after the city was founded," by the monk Dionysius Exiguus, ca. 525 AD. Hence that becomes year zero. The year 754 AUC, by convention, is year 1 AD. Makes no difference whether we are religious or not. It's the way this calendar was conceived.

So, if we count the years AD (or now also called Common Era) as being calendar years after the birth of Christ, the beginning of the new decade is indeed today, as opposed to next year.

Hey Pete! Times Square.

Offline Pete

  • Forum Resident
  • Posts: 2361
  • Cuz I sez so, varmint!
    • View Profile
Re: It's already 2020 in Australia! Where are the fireworks, folks?
« Reply #11 on: January 01, 2020, 03:47:19 pm »
This forum can't handle Pete squared! :D

Darn it Bert, now you have me thinking how the people who celebrated New Years BC figured out what the hell year it was???

Pete

Want to learn how to write code on cave walls? https://www.tapatalk.com/groups/qbasic/qbasic-f1/

Offline TempodiBasic

  • Forum Resident
  • Posts: 1792
    • View Profile
Re: It's already 2020 in Australia! Where are the fireworks, folks?
« Reply #12 on: January 01, 2020, 05:45:54 pm »
HI
I have found some time to type on keyboard of pc but I have not lernt how to make fireworks, so this is the result
Code: QB64: [Select]
  1. DIM Min AS INTEGER, Max AS INTEGER, Ste AS INTEGER, cb AS INTEGER
  2. CONST titl = "Happy New Year 2020", MaxP = 20, Xt = 30
  3. _TITLE titl
  4. Min = 1
  5. Max = 25
  6. Ste = 1
  7. cb = 0
  8. cf = 0
  9.     FOR a = Min TO Max STEP Ste
  10.         IF a = 16 THEN cf = a - 15 ELSE cf = a
  11.         title titl, a, Xt, cf, cb
  12.         IF (Ste = 1 AND a < 16) OR (Ste = -1 AND a > 16) THEN
  13.             rocket a, cf, Ste
  14.         ELSEIF (Ste = 1 AND a > 15) OR (Ste = -1 AND a < 16) THEN
  15.             boom a
  16.         END IF
  17.  
  18.         COLOR 2, 2: _PRINTSTRING (1, 25), SPACE$(80)
  19.         COLOR 15, 0
  20.         'frame per second FPS :-)
  21.         _DELAY .3
  22.         CLS
  23.     NEXT
  24.     SWAP Min, Max
  25.     Ste = -Ste
  26.  
  27. SUB boom (yR AS INTEGER)
  28.     STATIC FirePieces(1 TO 2, 1 TO MaxP, 1 TO 3) AS INTEGER, cf AS INTEGER
  29.     DIM k AS INTEGER
  30.     IF cf = 0 THEN
  31.         cf = INT(RND * 14) + 1
  32.         IF FirePieces(1, 1, 1) = 0 THEN InitFire FirePieces(), cf
  33.     END IF
  34.  
  35.     FOR b = 1 TO MaxP
  36.         FOR c = 1 TO 2
  37.             COLOR FirePieces(c, b, 3), 0
  38.             IF FirePieces(c, b, 2) > 0 AND FirePieces(c, b, 2) < 80 THEN
  39.                 IF FirePieces(c, b, 1) > 0 AND FirePieces(c, b, 1) < 25 THEN
  40.                     _PRINTSTRING (FirePieces(c, b, 2), FirePieces(c, b, 1)), ""
  41.  
  42.                     SELECT CASE b MOD 4
  43.                         CASE 0
  44.                             FirePieces(c, b, 1) = FirePieces(c, b, 1) - 1
  45.                             FirePieces(c, b, 2) = FirePieces(c, b, 2) - 1
  46.                         CASE 1
  47.  
  48.                             FirePieces(c, b, 1) = FirePieces(c, b, 1) - 1
  49.                             FirePieces(c, b, 2) = FirePieces(c, b, 2) + 1
  50.                         CASE 2
  51.  
  52.                             FirePieces(c, b, 1) = FirePieces(c, b, 1) + 1
  53.                             FirePieces(c, b, 2) = FirePieces(c, b, 2) - 1
  54.                         CASE 3
  55.                             FirePieces(c, b, 1) = FirePieces(c, b, 1) + 1
  56.                             FirePieces(c, b, 2) = FirePieces(c, b, 2) + 1
  57.                     END SELECT
  58.                 END IF
  59.             END IF
  60.             IF yR = 1 OR yR = 25 THEN cf = 0: FirePieces(c, 1, 1) = 0
  61.         NEXT
  62.     NEXT
  63.  
  64.  
  65. SUB InitFire (FP() AS INTEGER, cfB AS INTEGER)
  66.     DIM c AS INTEGER, k AS INTEGER
  67.     FOR c = 1 TO MaxP
  68.         IF c MOD 2 THEN k = -1 ELSE k = 1
  69.         FP(1, c, 1) = 12 'row
  70.         FP(1, c, 2) = 14 'column
  71.         FP(1, c, 3) = cfB ' color
  72.         FP(2, c, 1) = 12 'row
  73.         FP(2, c, 2) = 64 'column
  74.         FP(2, c, 3) = cfB ' color
  75.     NEXT
  76.  
  77. SUB rocket (yR AS INTEGER, cfR AS INTEGER, Dr AS INTEGER)
  78.     STATIC cf AS INTEGER
  79.     IF cf = 0 THEN cf = cfR
  80.     COLOR cf, 0
  81.     IF Dr = 1 THEN
  82.         _PRINTSTRING (14, 25 - yR - 1), "^"
  83.         _PRINTSTRING (14, 25 - yR), "º"
  84.         _PRINTSTRING (64, 25 - yR - 1), "^"
  85.         _PRINTSTRING (64, 25 - yR), "º"
  86.     ELSE
  87.         _PRINTSTRING (14, yR - 1), "^"
  88.         _PRINTSTRING (14, yR), "º"
  89.         _PRINTSTRING (64, yR - 1), "^"
  90.         _PRINTSTRING (64, yR), "º"
  91.     END IF
  92.     COLOR 15, 0
  93.  
  94. SUB title (tit AS STRING, Xt AS INTEGER, Yt AS INTEGER, cfT AS INTEGER, cbT AS INTEGER)
  95.     COLOR cfT, cbT
  96.     _PRINTSTRING (Yt, Xt), tit
Happy New travel around the sun! ;-)
Programming isn't difficult, only it's  consuming time and coffee

Offline Pete

  • Forum Resident
  • Posts: 2361
  • Cuz I sez so, varmint!
    • View Profile
Re: It's already 2020 in Australia! Where are the fireworks, folks?
« Reply #13 on: January 01, 2020, 07:31:49 pm »
I feel so violated!!!

Pete :D

I meant validated.
Want to learn how to write code on cave walls? https://www.tapatalk.com/groups/qbasic/qbasic-f1/

Offline Bert22306

  • Forum Regular
  • Posts: 206
    • View Profile
Re: It's already 2020 in Australia! Where are the fireworks, folks?
« Reply #14 on: January 01, 2020, 09:08:33 pm »
I feel so violated!!!

Pete :D

I meant validated.

Ooooh! (As Fellippe famously scoffed, in the recent past, "You native English speakers!")