<1>/* Graphics Not Rendered in HTML */ #define MAP_HEIGHT 2048 #define MAP_WIDTH 2048 #define TREES_NUM 256 I64 tree_x[TREES_NUM],tree_y[TREES_NUM]; U0 DrawIt(CTask *task,CDC *dc) { I64 i,h,v; task->horz_scroll.min=0; task->horz_scroll.max=MAP_WIDTH-task->pix_width; task->vert_scroll.min=0; task->vert_scroll.max=MAP_HEIGHT-task->pix_height; TaskDerivedValsUpdate(task); h=task->horz_scroll.pos; v=task->vert_scroll.pos; dc->color=BROWN; dc->thick=4; GrLine3(dc,2-h,2-v,0,MAP_WIDTH-3-h,2-v,0); GrLine3(dc,2-h,MAP_HEIGHT-3-v,0,MAP_WIDTH-3-h,MAP_HEIGHT-3-v,0); GrLine3(dc,2-h,2-v,0,2-h,MAP_HEIGHT-3-v,0); GrLine3(dc,MAP_WIDTH-3-h,2-v,0,MAP_WIDTH-3-h,MAP_HEIGHT-3-v,0); //Check bounds if you wish better performance. for (i=0;i<TREES_NUM;i++) Sprite3(dc,tree_x[i]-h,tree_y[i]-v,0,<Tree>); } U0 Init() { I64 i; for (i=0;i<TREES_NUM;i++) { tree_x[i]=RandU16%MAP_WIDTH; tree_y[i]=RandU16%MAP_HEIGHT; } } U0 ScrollBars() { SettingsPush; //See SettingsPush Init; Fs->draw_it=&DrawIt; WinBorder(ON); DocCursor; DocClear; DocScroll; Fs->horz_scroll.pos=0; Fs->vert_scroll.pos=0; GetChar(,FALSE); SettingsPop; //If you care, you might want to //save the original state of the //scroll bars. } ScrollBars;