/* You "System Include" this because you want the wallpaper routine to stay in mem even if this task is killed. */ #define NUM_STARS GR_WIDTH * GR_HEIGHT / 2160 // Derived from ratio for 600 for 1440x900 class Star { U16 x, y; } wall_stars[NUM_STARS]; U0 (*old_wall_paper)(CTask *task); U0 WallPaperStars(CTask *task) { I64 i; CDC *dc = DCAlias(gr.dc2, task); dc->color = YELLOW; for (i = 0; i < NUM_STARS; i++) { GrPlot(dc, wall_stars[i].x, wall_stars[i].y); if (++wall_stars[i].y > GR_HEIGHT) { wall_stars[i].y = 0; wall_stars[i].x = RandU16 % GR_WIDTH; } } DCDel(dc); //Uncomment the following if you wish. Will draw the old wallpaper over this one. //old_wall_paper(task); if (gr_palette[0] > gr_palette[15]) task->text_attr = WHITE << 4 + WHITE; else task->text_attr = BLACK << 4 + BLACK; } U0 WallInit() { I64 i; if (Fs != sys_task) { "\nMust be System Included. (SHIFT-F5 / RightClick->System Include) \n"; return; } old_wall_paper = gr.fp_wall_paper; for (i = 0; i < NUM_STARS; i++) { wall_stars[i].x = RandU16 % GR_WIDTH; wall_stars[i].y = RandU16 % GR_HEIGHT; } gr.fp_wall_paper = &WallPaperStars; } WallInit;