/* FLY-DEAL Version 3.0 fr TOS 12.07.1992 written '92 by Axel Schlter Eine neue Alertbox mit den Flydeals */ #include #include "fly_prot.h" /* Alles was man so braucht .... */ int FLY_I0[]={ 0x0,0x0,0x0,0x0,0x0,0x700,0x0,0xF80,0x0,0xF80,0x0,0xF80,0x0,0xF80,0x0,0xF80, 0x0,0xF80,0x0,0xF80,0x0,0xF80,0x0,0xF80,0x79,0xEF9C,0xEFB,0xEFBC,0x1EFB,0xEFBC, 0x1EFB,0xEF7C,0x16AA,0xAF7C,0x1EFB,0xEF7C,0xD75,0xDCBC,0x38E,0x37F8,0x1FFF, 0xDFF8,0x1FFF,0x7FF0,0x1FFF,0xFFF0,0x1FFD,0xFFE0,0x1FFF,0xFFC0,0xFFD,0xFF80, 0x7FF,0xFE00,0x1FF,0xF400,0x15F,0xFC00,0x1FF,0xFC00,0x1FF,0xFC00,0x0,0x0}; int FLY_I1[]={ 0x0,0x0,0x1F,0xFE00,0x7F,0xFF80,0xFF,0xFFC0,0x1FF,0xFFE0,0x1F8,0x7E0,0x1F0, 0x3E0,0x1F0,0x3E0,0xE0,0x3E0,0x0,0x7C0,0x0,0xFC0,0x0,0x1F80,0x0,0x3F00,0x0, 0x7E00,0x0,0xFC00,0x1,0xF800,0x3,0xF000,0x3,0xE000,0x7,0xC000,0x7,0xC000, 0x7,0xC000,0x7,0xC000,0x7,0xC000,0x3,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0xC000, 0xF,0xE000,0xF,0xE000,0x7,0xC000,0x0,0x0}; int FLY_I2[]={ 0x7F,0xFE00,0xC0,0x300,0x1BF,0xFD80,0x37F,0xFEC0,0x6FF,0xFF60,0xDFF,0xFFB0, 0x1BFF,0xFFD8,0x37FF,0xFFEC,0x6FFF,0xFFF6,0xDFFF,0xFFFB,0xB181,0x860D,0xA081,0x205, 0xA4E7,0x3265,0xA7E7,0x3265,0xA3E7,0x3265,0xB1E7,0x3205,0xB8E7,0x320D,0xBCE7,0x327D, 0xA4E7,0x327D,0xA0E7,0x27D,0xB1E7,0x867D,0xBFFF,0xFFFD,0xDFFF,0xFFFB,0x6FFF,0xFFF6, 0x37FF,0xFFEC,0x1BFF,0xFFD8,0xDFF,0xFFB0,0x6FF,0xFF60,0x37F,0xFEC0,0x1BF,0xFD80, 0xC0,0x300,0x7F,0xFE00}; BITBLK fly_bitblk []={FLY_I0,4,32,0,0,1,FLY_I1,4,32,0,0,1,FLY_I2,4,32,0,0,1}; OBJECT fly_object []={ -1, 1,13, G_BOX, LASTOB,OUTLINED, 0x21100L, 0,0, 44,9, 5 , 2, 4, G_BOX, NONE,NORMAL, 0xFF0100L,2,1,5,2, 3 ,-1,-1, G_IMAGE, HIDETREE,NORMAL,(long)&fly_bitblk[0],0,0,4,2, 4 ,-1,-1, G_IMAGE, HIDETREE,NORMAL,(long)&fly_bitblk[1],0,0,4,2, 1 ,-1,-1, G_IMAGE, HIDETREE,NORMAL,(long)&fly_bitblk[2],0,0,4,2, 6 ,-1,-1, G_STRING,HIDETREE,NORMAL,(long)"111111111111111111111111111111",9,1,30,1, 7 ,-1,-1, G_STRING,HIDETREE,NORMAL,(long)"111111111111111111111111111111",9,2,30,1, 8 ,-1,-1, G_STRING,HIDETREE,NORMAL,(long)"111111111111111111111111111111",9,3,30,1, 9 ,-1,-1, G_STRING,HIDETREE,NORMAL,(long)"111111111111111111111111111111",9,4,30,1, 10,-1,-1, G_STRING,HIDETREE,NORMAL,(long)"111111111111111111111111111111",9,5,30,1, 11,-1,-1, 0x121A, HIDETREE|0x5, NORMAL,(long)"1234567890",2,7,12,1, 12,-1,-1, 0x121A, HIDETREE|0x5, NORMAL,(long)"1234567890",16,7, 12,1, 13,-1,-1, 0x121A, HIDETREE|0x5, NORMAL,(long)"1234567890",30,7, 12,1, 0 ,-1,-1, 0x1119, 0x60,OUTLINED, 0xFF1101L, 42,0, 2,1}; int FLY_alert(int DefButt,char Strings[]) { long *memsize; char *teil,SaveStr[200], *text,*buttons; int pos=0,image,exit; memcpy((void *)SaveStr,(void *)Strings,strlen(Strings)); image =atoi(strtok(SaveStr,(char*)"}")+1); text =strtok(NULL,(char*)"}"); buttons=strtok(NULL,(char*)"}"); teil=strtok(text,(char*)"|")+1; while(teil!=NULL) { ALERT[TEXT1+pos].ob_flags&=~HIDETREE; ALERT[TEXT1+pos].ob_spec.free_string=teil; teil=strtok(NULL,(char*)"|"); pos++; } pos=0; teil=strtok(buttons,(char*)"|")+1; while(teil!=NULL) { ALERT[BUTTON1+pos].ob_flags&=~HIDETREE; ALERT[BUTTON1+pos].ob_spec.free_string=teil; teil=strtok(NULL,(char*)"|"); pos++; } if(image>0) {image--;ALERT[IACHTUNG+image].ob_flags&=~HIDETREE;} ALERT[BUTTON1+DefButt].ob_flags|=DEFAULT; memsize=FLY_deal_start(ALERT); exit=FLY_deal_do(0,memsize,RADIONOEXIT); FLY_deal_stop(memsize); ALERT[exit].ob_state=NORMAL; for(pos=2;pos<13;pos++) ALERT[pos].ob_flags|=HIDETREE; ALERT[BUTTON1+DefButt].ob_flags&=~DEFAULT; ALERT[IACHTUNG+image].ob_flags|=HIDETREE; return(exit-10); } /* Prgrammteil zum Abfragen des Cookie's fr einen Grožbildschirmsimulator */ int getcookie(long cookie,long *p_value) { long oldstack,*cookiejar; oldstack=Super(0L); cookiejar=*((long **)0x5a0l); Super((void *)oldstack); if(!cookiejar) return(ERROR); do { if(cookiejar[0]==cookie) { if(p_value) *p_value=cookiejar[1]; return(ALLES_OK); } else { cookiejar=&(cookiejar[2]); } }while(cookiejar[-2]); return(ERROR); } int ask_for_infoscrn(int *x,int *y,int *b,int *h) { INFOVSCR infoscrn; if ((getcookie(0x65534352L,(long*)&infoscrn))==ALLES_OK) { *x=infoscrn.X; *y=infoscrn.Y; *b=infoscrn.W; *h=infoscrn.H; return(ALLES_OK); } return(ERROR); }