From 462243c4dfb86b7ed67a0df6ddc19552cf3d2ff9 Mon Sep 17 00:00:00 2001 From: Andy Williams Date: Sun, 17 Dec 2017 21:54:00 +0000 Subject: [PATCH] drift the flakes a little --- src/e_mod_main.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/e_mod_main.c b/src/e_mod_main.c index b69b884..4c525fd 100644 --- a/src/e_mod_main.c +++ b/src/e_mod_main.c @@ -289,22 +289,40 @@ _snow_cb_animator(void *data) { Snow *snow; Eina_List *next; + Evas_Coord ww; double d; snow = data; + evas_output_viewport_get(snow->canvas, NULL, NULL, &ww, NULL); + next = snow->flakes; while (next) { Snow_Flake *flake; Evas_Coord x, y; + int drift; flake = next->data; d = ecore_time_get() - flake->start_time; y = 30 * d * flake->speed; + switch (rand() % 22) + { + case 19: + drift = -1; + break; + case 20: + case 21: + drift = 1; + break; + default: + drift = 0; + } evas_object_geometry_get(flake->flake, &x, NULL, NULL, NULL); if (y > snow->height) flake->start_time = ecore_time_get() + (double)(random() % 100) / (double)100; - evas_object_move(flake->flake, x, y); + if (x + drift >= ww) + x = 0; + evas_object_move(flake->flake, x + drift, y); next = eina_list_next(next); }