aboutsummaryrefslogtreecommitdiff
path: root/engines/avalanche/xfbutton.cpp
diff options
context:
space:
mode:
authoruruk2013-06-17 10:38:38 +0200
committeruruk2013-06-17 10:38:38 +0200
commita2adda516bdf790651283201a666f253a8bfcc49 (patch)
treebdc6479a6889d15d1b25e47e28f0c86f093a9610 /engines/avalanche/xfbutton.cpp
parent2f0e43bb2e402bbcf65175934d21ade6febaad60 (diff)
downloadscummvm-rg350-a2adda516bdf790651283201a666f253a8bfcc49.tar.gz
scummvm-rg350-a2adda516bdf790651283201a666f253a8bfcc49.tar.bz2
scummvm-rg350-a2adda516bdf790651283201a666f253a8bfcc49.zip
AVALANCHE: Initial PtoC output.
Diffstat (limited to 'engines/avalanche/xfbutton.cpp')
-rw-r--r--engines/avalanche/xfbutton.cpp62
1 files changed, 62 insertions, 0 deletions
diff --git a/engines/avalanche/xfbutton.cpp b/engines/avalanche/xfbutton.cpp
new file mode 100644
index 0000000000..dfbaf5e559
--- /dev/null
+++ b/engines/avalanche/xfbutton.cpp
@@ -0,0 +1,62 @@
+#include "ptoc.h"
+
+
+#include "graph.h"
+
+integer x,y;
+untyped_file f,out;
+
+void load() /* Load2, actually */
+{
+ byte a0; /*absolute $A000:800;*/
+ byte bit;
+ untyped_file f;
+ integer gd,gm;
+
+ gd=3; gm=0; initgraph(gd,gm,"c:\\bp\\bgi");
+
+ assign(f,"d:butnraw.avd"); reset(f,1);
+ seek(f,177);
+ for( bit=0; bit <= 3; bit ++)
+ {;
+ port[0x3c4]=2; port[0x3ce]=4; port[0x3c5]=1 << bit; port[0x3cf]=bit;
+ blockread(f,a0,12080);
+ }
+ close(f);
+ bit=getpixel(0,0);
+}
+
+void grab(integer x1,integer y1,integer x2,integer y2) /* s=930 */
+{
+ word s; pointer p;
+
+ s=imagesize(x1,y1,x2,y2);
+ getmem(p,s);
+ getimage(x1,y1,x2,y2,p);
+ putimage(0,0,p,0);
+ blockwrite(out,p,s);
+ freemem(p,s);
+ rectangle(x1,y1,x2,y2);
+}
+
+int main(int argc, const char* argv[])
+{
+ pio_initialize(argc, argv);
+ assign(f,"d:butnraw.avd");
+ assign(out,"v:buttons.avd"); rewrite(out,1);
+ load();
+ for( x=0; x <= 5; x ++)
+ for( y=0; y <= 3; y ++)
+ {
+ if (!
+ (((x==1) && (y==0))
+ || ((x==4) && (y==2))
+ || ((y==3) && (x>2) && (x<5))))
+ {
+ input >> NL;
+ grab(100+x*83,51+y*22,180+x*83,71+y*22);
+ }
+ }
+ close(out);
+ return EXIT_SUCCESS;
+}