%FFP author: "Martijn W. van der Lee (martijn@v-d-l.com)" title: "Snapper" dialog: color=x11.silver /////////////////////////////////////////////////////// // C O N T R O L S /////////////////////////////////////////////////////// ctl[CTL_LOGO]: None ctl[ 1]: PushButton,"&Snap" ,size=(40,10),pos=(180,5) ctl[ 2]: Bitmap ,size=(X/2,Y/2),pos=(230,20) ctl[ 3]: "&Effect",textcolor=x11.black ,size=(100,10),pos=(255,5) ,range=(0,100) /////////////////////////////////////////////////////// // B U T T O N H A N D L E R /////////////////////////////////////////////////////// onCtl(n): { int ifFileNr; int iLoop; int iSize=100; if(ifFileNr = fopen("snap.bmp", "w")) { // 32x32x24 header fputc(0x42,ifFileNr);fputc(0x4D,ifFileNr); fputc(0x36,ifFileNr);fputc(0x0C,ifFileNr); for(iLoop = 0; iLoop < 6; iLoop++) fputc(0x00,ifFileNr); fputc(0x36,ifFileNr);fputc(0x00,ifFileNr); fputc(0x00,ifFileNr);fputc(0x00,ifFileNr); fputc(0x28,ifFileNr);fputc(0x00,ifFileNr); fputc(0x00,ifFileNr);fputc(0x00,ifFileNr); fputc(iSize,ifFileNr);fputc(0x00,ifFileNr); fputc(0x00,ifFileNr);fputc(0x00,ifFileNr); fputc(iSize,ifFileNr);fputc(0x00,ifFileNr); fputc(0x00,ifFileNr);fputc(0x00,ifFileNr); fputc(0x01,ifFileNr);fputc(0x00,ifFileNr); fputc(0x18,ifFileNr); for(iLoop = 0; iLoop < 6; iLoop++) fputc(0x00,ifFileNr); fputc(0x0C,ifFileNr); fputc(0x00,ifFileNr);fputc(0x00,ifFileNr); fputc(0xC4,ifFileNr);fputc(0x0E,ifFileNr); fputc(0x00,ifFileNr);fputc(0x00,ifFileNr); fputc(0xC4,ifFileNr);fputc(0x0E,ifFileNr); for(iLoop = 0; iLoop < 10; iLoop++) fputc(0x00,ifFileNr); // bitmap data for(y = iSize-1; y >= 0; y--) for(x = 0; x < iSize; x++) for(z = 2; z >= 0; z--) fputc(pget((x * xmax) / (iSize-1), (y * ymax) / (iSize-1), z) & 0xFD, ifFileNr); if(fclose(ifFileNr)) ErrorOk("Can't close snap file."); // Display snap setCtlImage(2,"snap.bmp",0); } else ErrorOk("Failed to create snap."); return(false); } ForEveryTile: { for(x = 0; x < xmax; x++) for(y = 0; y < ymax; y++) for(z = 0; z < zmax; z++) pset(x, y, z, mix(rnd(0, 255), src(x, y, z), ctl(3), 100)); return(true); }