aboutsummaryrefslogtreecommitdiff
path: root/engines/avalanche/oldfiler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/avalanche/oldfiler.cpp')
-rw-r--r--engines/avalanche/oldfiler.cpp453
1 files changed, 250 insertions, 203 deletions
diff --git a/engines/avalanche/oldfiler.cpp b/engines/avalanche/oldfiler.cpp
index c813f37648..581f68abfb 100644
--- a/engines/avalanche/oldfiler.cpp
+++ b/engines/avalanche/oldfiler.cpp
@@ -11,7 +11,7 @@
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
@@ -34,251 +34,298 @@
namespace Avalanche {
const char more[] = " (more) ";
-const string up = string('-')+'\30'+more+'\30';
-const string down = string('+')+'\31'+more+'\31';
+const string up = string('-') + '\30' + more + '\30';
+const string down = string('+') + '\31' + more + '\31';
const graphcursmasktype fletch = /* Mask 4 in Avalot */
- {(
- (255,511,1023,2047,1023,4607,14591,31871,65031,65283,65281,65280,65280,65409,65473,65511),
- (0,10240,20480,24576,26624,17408,512,256,128,88,32,86,72,20,16,0)),
- 0,
- 0};
+{
+ (
+ (255, 511, 1023, 2047, 1023, 4607, 14591, 31871, 65031, 65283, 65281, 65280, 65280, 65409, 65473, 65511),
+ (0, 10240, 20480, 24576, 26624, 17408, 512, 256, 128, 88, 32, 86, 72, 20, 16, 0)),
+ 0,
+ 0
+};
string cdir;
-matrix<0,2,1,18,varying_string<15> > info;
-matrix<0,2,1,100,varying_string<15> > possible;
+matrix<0, 2, 1, 18, varying_string<15> > info;
+matrix<0, 2, 1, 100, varying_string<15> > possible;
byte fv;
-array<0,2,byte> light,page_;
-array<0,2,boolean> blank;
-byte chtcode,where;
+array<0, 2, byte> light, page_;
+array<0, 2, boolean> blank;
+byte chtcode, where;
string answer;
-void split(string x)
-{
- byte fv;
-;
- x=copy(x,4,255); if (x=="") {; blank[0]=true; return; }
- x=x+'\\'; possible[0][1]="b\\"; fv=2;
- while (pos("\\",x)!=0)
- {;
- possible[0][fv]=string('b')+copy(x,1,pos("\\",x)-1); fv += 1;
- x=copy(x,pos("\\",x)+1,255);
- }
- possible[0][fv-1]="";
+void split(string x) {
+ byte fv;
+ ;
+ x = copy(x, 4, 255);
+ if (x == "") {
+ ;
+ blank[0] = true;
+ return;
+ }
+ x = x + '\\';
+ possible[0][1] = "b\\";
+ fv = 2;
+ while (pos("\\", x) != 0) {
+ ;
+ possible[0][fv] = string('b') + copy(x, 1, pos("\\", x) - 1);
+ fv += 1;
+ x = copy(x, pos("\\", x) + 1, 255);
+ }
+ possible[0][fv - 1] = "";
}
-void block(integer x1,integer y1,integer x2,integer y2, string x)
-{;
- bar(x1,y1,x2,y2);
- setcolor( 9); outtextxy(x1+(x2-x1) / 2-1,y1+5,x);
- setcolor(15); outtextxy(x1+(x2-x1) / 2+1,y1+6,x);
+void block(integer x1, integer y1, integer x2, integer y2, string x) {
+ ;
+ bar(x1, y1, x2, y2);
+ setcolor(9);
+ outtextxy(x1 + (x2 - x1) / 2 - 1, y1 + 5, x);
+ setcolor(15);
+ outtextxy(x1 + (x2 - x1) / 2 + 1, y1 + 6, x);
}
-void message(string x)
-{;
- block(5,189,640,200,x);
+void message(string x) {
+ ;
+ block(5, 189, 640, 200, x);
}
-void bigbar(byte x)
-{;
- bar(15+210*x,36,210+210*x,187);
+void bigbar(byte x) {
+ ;
+ bar(15 + 210 * x, 36, 210 + 210 * x, 187);
}
void getem();
-static void sub_getem(char prefix, string spec, byte attrib,byte infonum)
-{
- searchrec s; byte fv;
-;
- fv=0;
- findfirst(spec,attrib,s);
- while ((doserror==0) && (fv<100))
- {;
- if (((s.attr & attrib)>0) && (s.name[1]!='.'))
- {; /* circumvent inclusive searching! */
- fv += 1;
- possible[infonum][fv]=string(prefix)+s.name;
- }
- findnext(s);
- }
- if (fv==0) blank[infonum]=true;
+static void sub_getem(char prefix, string spec, byte attrib, byte infonum) {
+ searchrec s;
+ byte fv;
+ ;
+ fv = 0;
+ findfirst(spec, attrib, s);
+ while ((doserror == 0) && (fv < 100)) {
+ ;
+ if (((s.attr & attrib) > 0) && (s.name[1] != '.')) {
+ ; /* circumvent inclusive searching! */
+ fv += 1;
+ possible[infonum][fv] = string(prefix) + s.name;
+ }
+ findnext(s);
+ }
+ if (fv == 0) blank[infonum] = true;
}
void getem()
-{;
- message("Please wait... scanning directory...");
- sub_getem('a',"*.asg",archive+hidden,1); /* Scan for .ASG files */
- sub_getem('f',"*.*",directory,2); /* Scan for sub-directories */
+{
+ ;
+ message("Please wait... scanning directory...");
+ sub_getem('a', "*.asg", archive + hidden, 1); /* Scan for .ASG files */
+ sub_getem('f', "*.*", directory, 2); /* Scan for sub-directories */
}
-void minisc(string& x) /* Converts to lower-case */
-{
- byte fv;
-;
- for( fv=1; fv <= length(x); fv ++)
- if ((x[fv]>='A') && (x[fv]<='Z')) x[fv] += 32;
+void minisc(string &x) { /* Converts to lower-case */
+ byte fv;
+ ;
+ for (fv = 1; fv <= length(x); fv ++)
+ if ((x[fv] >= 'A') && (x[fv] <= 'Z')) x[fv] += 32;
}
-void showall()
-{
- byte fv,ff;
-;
- for( fv=0; fv <= 2; fv ++)
- {;
- bigbar(fv); /* blank out anything else */
- if (blank[fv])
- {; /* nothing here at all */
-/* setcolor(14);
- outtextxy(113+210*fv,43,'(Nothing here!)'); */
- setcolor(14); settextstyle(0,0,2);
- outtextxy(113+210*fv, 77,"Nothing");
- outtextxy(113+210*fv,100,"here!");
- settextstyle(0,0,1);
- } else
- {; /* something here- what? */
- setcolor(11);
- for( ff=0; ff <= 15; ff ++)
- {;
- info[fv][ff+2]=possible[fv][page_[fv]*15+ff+1]; minisc(info[fv][ff+2]);
- }
- if (page_[fv]>0) info[fv][1]=up; else info[fv][1]="";
- if (possible[fv][page_[fv]*15+17]!="")
- info[fv][18]=down; else info[fv][18]="";
- for( ff=1; ff <= 18; ff ++)
- {;
- outtextxy(113+210*fv,35+ff*8,copy(info[fv][ff],2,255));
- }
- }
- }
- block(5,12,640,22,cdir);
+void showall() {
+ byte fv, ff;
+ ;
+ for (fv = 0; fv <= 2; fv ++) {
+ ;
+ bigbar(fv); /* blank out anything else */
+ if (blank[fv]) {
+ ; /* nothing here at all */
+ /* setcolor(14);
+ outtextxy(113+210*fv,43,'(Nothing here!)'); */
+ setcolor(14);
+ settextstyle(0, 0, 2);
+ outtextxy(113 + 210 * fv, 77, "Nothing");
+ outtextxy(113 + 210 * fv, 100, "here!");
+ settextstyle(0, 0, 1);
+ } else {
+ ; /* something here- what? */
+ setcolor(11);
+ for (ff = 0; ff <= 15; ff ++) {
+ ;
+ info[fv][ff + 2] = possible[fv][page_[fv] * 15 + ff + 1];
+ minisc(info[fv][ff + 2]);
+ }
+ if (page_[fv] > 0) info[fv][1] = up;
+ else info[fv][1] = "";
+ if (possible[fv][page_[fv] * 15 + 17] != "")
+ info[fv][18] = down;
+ else info[fv][18] = "";
+ for (ff = 1; ff <= 18; ff ++) {
+ ;
+ outtextxy(113 + 210 * fv, 35 + ff * 8, copy(info[fv][ff], 2, 255));
+ }
+ }
+ }
+ block(5, 12, 640, 22, cdir);
}
-void changedir(string x)
-{;
+void changedir(string x) {
+ ;
- chdir(x); getdir(0,cdir);
+ chdir(x);
+ getdir(0, cdir);
}
-void drawup()
-{
- integer gd;
-;
- block( 15, 0,630,10,"Choose an .ASG file to load or save.");
- block( 15,24,210,34,"Looking back:");
- block(225,24,420,34,"Here:");
- block(435,24,630,34,"Looking forwards:");
- for( gd=0; gd <= 2; gd ++) bigbar(gd); /* just to tide us over the wait... */
- showall();
+void drawup() {
+ integer gd;
+ ;
+ block(15, 0, 630, 10, "Choose an .ASG file to load or save.");
+ block(15, 24, 210, 34, "Looking back:");
+ block(225, 24, 420, 34, "Here:");
+ block(435, 24, 630, 34, "Looking forwards:");
+ for (gd = 0; gd <= 2; gd ++) bigbar(gd); /* just to tide us over the wait... */
+ showall();
}
-void setup()
-{;
- settextjustify(1,1); setfillstyle(1,1);
- fillchar(blank,sizeof(blank),'\0'); fillchar( info,sizeof( info),'\0');
- fillchar(possible,sizeof(possible),'\0');
- fillchar( page_,sizeof( page_),'\0');
- split(cdir); getem(); drawup();
+void setup() {
+ ;
+ settextjustify(1, 1);
+ setfillstyle(1, 1);
+ fillchar(blank, sizeof(blank), '\0');
+ fillchar(info, sizeof(info), '\0');
+ fillchar(possible, sizeof(possible), '\0');
+ fillchar(page_, sizeof(page_), '\0');
+ split(cdir);
+ getem();
+ drawup();
}
-void setup1()
-{
- integer gd,gm;
-;
- gd=3; gm=0; initgraph(gd,gm,""); answer="";
- getdir(0,cdir); resetmouse; setgraphicscursor(fletch);
- fillchar(light,sizeof(light),'\0');
- setup();
+void setup1() {
+ integer gd, gm;
+ ;
+ gd = 3;
+ gm = 0;
+ initgraph(gd, gm, "");
+ answer = "";
+ getdir(0, cdir);
+ resetmouse;
+ setgraphicscursor(fletch);
+ fillchar(light, sizeof(light), '\0');
+ setup();
}
-void clickwait()
-{
- const array<1,4,varying_string<30> > msg =
- {{"change to another drive.",
- "return to a lower directory.",
- "use the file named.",
- "enter a sub-directory."}};
- byte oldcht; /* Click Here To... code */
-;
- showmousecursor; oldcht=177;
- do {
- if (mousey<38) chtcode=1; else
- switch (mousex) {
- case 0 ... 210: chtcode=2; break;
- case 211 ... 421: chtcode=3; break;
- default: chtcode=4;
- }
- if (oldcht!=chtcode)
- {;
- hidemousecursor; message(string("Click here to ")+msg[chtcode]);
- showmousecursor; oldcht=chtcode;
- }
- } while (!leftmousekeypressed);
- hidemousecursor; where=((mousey-39) / 8)+1;
+void clickwait() {
+ const array<1, 4, varying_string<30> > msg = {
+ {
+ "change to another drive.",
+ "return to a lower directory.",
+ "use the file named.",
+ "enter a sub-directory."
+ }
+ };
+ byte oldcht; /* Click Here To... code */
+ ;
+ showmousecursor;
+ oldcht = 177;
+ do {
+ if (mousey < 38) chtcode = 1;
+ else
+ switch (mousex) {
+ case 0 ... 210:
+ chtcode = 2;
+ break;
+ case 211 ... 421:
+ chtcode = 3;
+ break;
+ default:
+ chtcode = 4;
+ }
+ if (oldcht != chtcode) {
+ ;
+ hidemousecursor;
+ message(string("Click here to ") + msg[chtcode]);
+ showmousecursor;
+ oldcht = chtcode;
+ }
+ } while (!leftmousekeypressed);
+ hidemousecursor;
+ where = ((mousey - 39) / 8) + 1;
}
-void blip()
-{;
- sound(32); delay(3); nosound;
+void blip() {
+ ;
+ sound(32);
+ delay(3);
+ nosound;
}
-void do_cht()
-{
- char r; byte fv; string x;
-;
- if (chtcode==1)
- {; /* change drives */
- message("Enter the drive letter (e.g. A)...");
- r=readkey();
- changedir(string(r)+':'); setup();
- } else
- {;
- x=info[chtcode-2][where]; r=x[1]; x=copy(x,2,255);
- switch (r) {
- case 'b': {; /* back some dirs */
- if (x=='\\') x="";
- for( fv=where-1; fv >= 3; fv --)
- x=copy(info[0][fv],2,255)+'\\'+x;
- changedir(string('\\')+x);
- setup();
- }
- break;
- case 'f': {; /* sub-directory */
- changedir(x);
- setup();
- }
- break;
- case '+': {; /* scroll one panel down */
- page_[chtcode-2] += 1;
- drawup();
- }
- break;
- case '-': {; /* scroll one panel up */
- page_[chtcode-2] -= 1;
- drawup();
- }
- break;
- case 'a': answer=x; break;
- }
- }
+void do_cht() {
+ char r;
+ byte fv;
+ string x;
+ ;
+ if (chtcode == 1) {
+ ; /* change drives */
+ message("Enter the drive letter (e.g. A)...");
+ r = readkey();
+ changedir(string(r) + ':');
+ setup();
+ } else {
+ ;
+ x = info[chtcode - 2][where];
+ r = x[1];
+ x = copy(x, 2, 255);
+ switch (r) {
+ case 'b': {
+ ; /* back some dirs */
+ if (x == '\\') x = "";
+ for (fv = where - 1; fv >= 3; fv --)
+ x = copy(info[0][fv], 2, 255) + '\\' + x;
+ changedir(string('\\') + x);
+ setup();
+ }
+ break;
+ case 'f': {
+ ; /* sub-directory */
+ changedir(x);
+ setup();
+ }
+ break;
+ case '+': {
+ ; /* scroll one panel down */
+ page_[chtcode - 2] += 1;
+ drawup();
+ }
+ break;
+ case '-': {
+ ; /* scroll one panel up */
+ page_[chtcode - 2] -= 1;
+ drawup();
+ }
+ break;
+ case 'a':
+ answer = x;
+ break;
+ }
+ }
}
-int main(int argc, const char* argv[])
-{pio_initialize(argc, argv);
-;
- setup1();
- do {
- clickwait();
- do_cht();
- } while (!(answer!=""));
- if (length(cdir)>3) cdir=cdir+'\\';
- answer=cdir+answer;
- closegraph();
- output << "Routine completed." << NL;
- output << "Answer: " << answer << NL;
- output << "Hit Enter:"; input >> NL;
-return EXIT_SUCCESS;
+int main(int argc, const char *argv[]) {
+ pio_initialize(argc, argv);
+ ;
+ setup1();
+ do {
+ clickwait();
+ do_cht();
+ } while (!(answer != ""));
+ if (length(cdir) > 3) cdir = cdir + '\\';
+ answer = cdir + answer;
+ closegraph();
+ output << "Routine completed." << NL;
+ output << "Answer: " << answer << NL;
+ output << "Hit Enter:";
+ input >> NL;
+ return EXIT_SUCCESS;
}
} // End of namespace Avalanche. \ No newline at end of file