#include #include #include #include #include #include #include #include "splitit.h" extern int rs_trloc[]; extern OBJECT *rs_trindex[]; extern void fix_objects(void); extern char p_to_nul[]; extern TEDINFO rs_tedinfo[]; extern ICONBLK rs_iconblk[]; extern int bbk000[]; extern BITBLK rs_bitblk[]; extern OBJECT rs_object[]; #define SHOW 1 #define HIDE 0 #define TRUE 1 #define FALSE 0 #define READ 0 #define WRITE 1 /************************************** Message to user in (c) ***************************************/ void mess(char *c) { char a[40]; graf_mouse(ARROW,0); strcpy(a,"[3]["); strcat(a,c); strcat(a,"][OK]"); form_alert(1,a); graf_mouse(POINT_HAND,0); } int mess2( char *c1, /* Line one of message */ char *c2, /* Line two */ char *b1, /* Button one text */ char *b2, /* Button two text */ int db ) /* Default Button # */ { char a[80]; graf_mouse(ARROW,0); strcpy(a,"[2]["); strcat(a,c1); strcat(a,"|"); strcat(a,c2); strcat(a,"]["); strcat(a,b1); strcat(a,"|"); strcat(a,b2); strcat(a,"]"); db = form_alert(db+1,a) - 1; graf_mouse(POINT_HAND,0); return(db); } void messi(int i) { char m[16]; sprintf(m,"%d",i); mess(m); } void messl(long l) { char m[16]; sprintf(m,"%ld",l); mess(m); } /******************************* GEM Related Functions *******************************/ /*********************************** Will put dialog box on screen and return exit object after erasing it. ***********************************/ void erase_dialog( int x, int y, int w, int h ) { int sx,sy; sx=x+(w/2); sy=y+(h/2); form_dial(FMD_SHRINK,sx,sy,0,0,x,y,w,h); form_dial(FMD_FINISH,sx,sy,0,0,x,y,w,h); } #define DDRC 0 #define DDRN 1 #4YHLY[HMY[HBNY]X[Z[BX[ Z[BJ Z[BJKZ[BJZ[BJ Z[B\XKKʈ KS T U QK MKP KS TKSK L TH ‚X\Y]JB^‚Z[B\ N‚BYܛW[\[^؛[K u%splitit.hpF: F)c&2 II'UD !C#O$Rā2:R% b(eG'S0q 3I&7T!L1hLɰ $LfTJ! QզJPe &SO8JkO$ D$]Aes"yRLeER \2v,]o epộ3L0%":(ҧ=W3B#PQUMj^Lqh7m.rYsplititr.c4F9|Hp) #Ҹæ2 x)3 ̡N1 Ơ #/t|qS͖]@!BĎTIr,CF7[Rܣ="aN: pC Edscȑ%YT`UH` * 8bU \1XHQI"F0@(MSN)oб֮Yr[vڶ .t-zԫְ,IPQN;˸@ 3o&e)#MKˡZ_5H+v|u,eԈaČA:.6y $L`C 2ؐULuف\ޥi4ա'UW4 Z`]@hnQ^jEj 6@YRms񙑆s :$UcWv7ZVKC!mnpw@gp(b&u-nZ 9\"5v}@C<L,NlJG*Tb h]:xJ 0 %ڪ:뫷ky֊뮽 찴j+hժ૮Fhk 8ذ;b[R -Zc|K, 35+j{Z0;/ ZoPFΐm1p'E([P28l#)],/:6mŭJň6U""$PQJYJ(LF2 * ]e xP!PQ_x`Z:* x @@ d0P 6dTB xQ0AO @x=[{d(5b;:06`g .Z9,91Z_w 3@ C=/qy.ݸ8F{cbF.pz.l3Fvp 'W$C~eGIQD0h THQł@$S,ؠbEAxQ *@b 4aAI 1GX  c@'gdƍD&*I4F  0g_eR ѨpB, ]l!B {P\.5ơKt1(a1e?QA8AĜ=92j0&ϑNޘ#B*(U) Īw]¸uq $-b~;/*qmU^b$Dktρ0_by]nCi&j&ryF ^j),"ʧ|ܨꬨ 8, t,tБ4N}" B di B h$檯*(Gt!bԪZL6K|wgZBO6,3ְbC:S$N%d'X,[<1 yĐL])c%\ˤ$y]D?%Yz%vQk~Yf}\ ߽`3`k:TP']$7Ti\`]-,,`߹ܰ|ˍ𣠠ـo[)QY״Byd{3JYv$\~7rϩp;f0g6 h?r_a-jn䀚.Ӷh:HSׂ2I3z_np8rK%m xڹaCCd;ר.d<^-n-rh3$DB$DB$s$D>T     OZ$Π7VE-d񤣶&Q<`#XAUkOj`}c`6fcJnE*)>ڸ~`>di(PT%1K)J?F+B +XZشz&LK,|3Y|H$Q?OF\AZ=[olg6;N`3z] ',f'6Nng{%~t)Z迥ڦe >{+A6`qjr9X 2I> D|% K~Tb9 ݱ`Yt';1eB6Kf]&d$bA=xq*;?Auh :%"j%J ,;v?PMm@)8]BRiF̣/|zJHٮb6@juv %< J$ŪbGWL#F{ Q9!BNEb1E_} f2e(MPMQhj\g&7ЮU]0hvW&LnaIԤ{˽K9P,z68^W7V.x~<AE:s\@ _s|쌲Pd;1X{< [j3}ʮheT67\\bJ\?HYC:;~T:d]8J&ק8`xY}nür{hՏ\7;(([(=3eL=_9A~\*ǥ aԏ^"&rg{ksh_4ͲVWMQnkoSN\Zjj:e3/K˘!X-M #|:7b4=uFk6A>X2b"]>ޟ %eYhhl%^}k=^OgZ#dJ5̫~,h~ϭ~<Ũ}$L˽~% 4p8Pp9UWžU}>UH |_ l8%q*ߛ!Ъ= E7lPa&w\Aojl;kyFg8cgKCBݏssg"*9iõ~OfzO?+?_OBh?ȸIp#_RhhRC\~@:˂#x@0ťMgOy`?%dJ|+Zj7SkݿQ6ESJ񮜰A6'UMF3gyǙ,/ T=ἠlY {0qO\V9$Nq@҇`_|# ~Wtxq (\>0m8`*+hMoy@a55.fn*oKw?I,WGy>WH+9 |헀ˎࠓκ@C:G*7JԊPK-?W^Rq֕lIS5D}'YY?TDe7&|A j6ȝt&$Sxcp&؁"GxO=,Vm//=0) { dta = Fgetdta(); size = dta->filesize; buf = malloc(size); dial_file(sifile,size,x,y,w,h); Dsetdrv(sdrv); Dsetpath(spath); fds=Fopen(sifile,READ); Dsetdrv(ddrv); Dsetpath(dpath); if (j==0) { Fread(fds,16,filename); if (!create(filename)) { erase_dialog(x,y,w,h); return; } } fd=Fopen(filename,WRITE); Fseek(0,fd,2); if (j == 0) { Fread(fds,size-16,buf); Fwrite(fd,size-16,(char *)buf); } else { Fread(fds,size,buf); Fwrite(fd,size,buf); } Fclose(fd); Fclose(fds); free(buf); if (dflag) { Dsetdrv(sdrv); Dsetpath(spath); Fdelete(sifile); } } else { erase_dialog(x,y,w,h); return; } } } erase_dialog(x,y,w,h); } } /************************* BINC: convert binary to C source code **************************/ void binc(void) { static char *sname = "FILENAME.EXT"; static char dname[16]; static char *ext = "*.*\0 "; static char *dext = "*.C\0 "; char path[64]; int drv,fd,fds,i,j; int buf[6],x,y,w,h; char *line = " 0x1234,0x1234,0x1234,0x1234,0x1234,0x1234 /* 00000 ABCDEFGHIJKL */\015\012"; DTA *dta; unsigned long size,ds,ls,count; char *cbuf; line[0] = '\011'; cbuf = (char *)buf; ls = strlen(line); if (fileselect(sname,ext)) { drv = Dgetdrv(); Dgetpath(path,0); if (path[0] != '\\') strinc(path,0,'\\'); strcpy(dname,sname); *(strchr(dname,'.')+1)='C'; *(strchr(dname,'.')+2)='\0'; mess("Select destination path"); if (fileselect(dname,dext)) if (create(dname)) { fd = Fopen(dname,WRITE); Dsetdrv(drv); Dsetpath(path); if (Fsfirst(sname,7)>=0) { dta = Fgetdta(); size = dta->filesize; draw_dialog(FILEDIAL,&x,&y,&w,&h,DDRC,HIDE); dial_file(sname,size,x,y,w,h); fds = Fopen(sname,READ); *strchr(sname,'.') = '\0'; ds = 12 + strlen(sname); Fwrite(fd,4,"int "); Fwrite(fd,strlen(sname),sname); Fwrite(fd,8,"[] = {\015\012"); dial_file(dname,ds,x,y,w,h); count = 0; while (size != 0) { if (size<12) { Fread(fds,size,cbuf); j = (unsigned int)(size+1) / 2; size = 0; } else { Fread(fds,12,cbuf); j = 6; size -= 12; } for(i=0;i