home *** CD-ROM | disk | FTP | other *** search
/ Superpower (Alt) / SUPERPOWER.iso / q / util / mbq312 / quack.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-07-16  |  5.6 KB  |  194 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <graphics.h>
  4.  
  5. typedef struct {
  6.     int x,y,z,xl,yl,zl;
  7.     char texture[10];
  8. } cube_t;
  9.  
  10. typedef struct {
  11.     char class[256];
  12.     int ox,oy,oz;
  13.     int angle;
  14. } ent_t;
  15.  
  16. cube_t brush[256];
  17. ent_t  entity[64];
  18. ent_t E;
  19. int gdriver,gmode;
  20. char xmax[256];
  21. char ymax[256];
  22. int  xdiv,ydiv;
  23. char ch;
  24. unsigned char zoommode;
  25. char defaulttex[256];
  26. char workstr[256];
  27. unsigned char numbrushes;
  28. unsigned char numentities;
  29. unsigned char curbrush;
  30. unsigned char curentity;
  31. unsigned char curview;
  32. unsigned char moverate;
  33. unsigned char movemode;        /* actually a boolean */
  34.  
  35. #include "procs.c"
  36.  
  37. void main(void)
  38. {
  39.     numbrushes=0;
  40.     curview=0;
  41.     numentities=0;
  42.     curentity=0;
  43.     curbrush=0;
  44.     moverate=10;
  45.     zoommode=1;
  46.     movemode=0;
  47.     gdriver = DETECT;
  48.  
  49.     strcpy(&defaulttex,"TECH07_2");
  50.     initgraph(&gdriver, &gmode, "");
  51.     if (graphresult()==grOk) {
  52.     outtextxy(0,0,"QUACK beta .93   (c) 1996 FearTheFastFoodPickle! software.");
  53.     itoa(getmaxx()+1,xmax,10);
  54.     itoa(getmaxy()+1,ymax,10);
  55.     strcpy(&workstr,&xmax);
  56.     strcat(&workstr,",");
  57.     strcat(&workstr,&ymax);
  58.     outtextxy(0,10,workstr);
  59.     outtextxy(0,30,"a key, press one.");
  60.     xdiv=getmaxx()/2; ydiv=getmaxy()/2;
  61.     getch();
  62.     cleardevice();
  63.     } else {            
  64.     printf("graphics prob\n");
  65.     exit(-1);
  66.     }
  67.  
  68.     do {
  69.     if (numbrushes>0) drawbrushes();
  70.     if (numentities>0) drawentities();
  71.     do {} while (!kbhit());
  72.     ch=getch();
  73.     
  74.     if (ch=='L') oldload();
  75.     if (ch=='I') insertnewentity();
  76.     if (ch=='a') curentityangle();
  77.     if (ch==13)  curentityclass();
  78.     
  79.     if (ch=='[') {
  80.         curentity++;
  81.         if (curentity==numentities) curentity=0;
  82.     }
  83.     
  84.     if (ch==']') if (curentity>0) curentity--; else curentity=numentities-1;
  85.     
  86.     if (ch=='u') {
  87.         if (curview==0) entity[curentity].oy=entity[curentity].oy-moverate;
  88.         if (curview>0)  entity[curentity].oz=entity[curentity].oz+moverate;
  89.     }
  90.     if (ch=='j') { 
  91.         if (curview==0) entity[curentity].oy=entity[curentity].oy+moverate;
  92.         if (curview>0)  entity[curentity].oz=entity[curentity].oz-moverate;
  93.     }            
  94.     if (ch=='k') { 
  95.         if (curview==0) entity[curentity].ox=entity[curentity].ox+moverate;
  96.         if (curview==1) entity[curentity].oy=entity[curentity].oy+moverate;
  97.         if (curview==2) entity[curentity].ox=entity[curentity].ox+moverate;
  98.     }
  99.     if (ch=='h') {
  100.         if (curview==0) entity[curentity].ox=entity[curentity].ox-moverate;
  101.         if (curview==1) entity[curentity].oy=entity[curentity].oy-moverate;
  102.         if (curview==2) entity[curentity].ox=entity[curentity].ox-moverate;
  103.     }    
  104.  
  105.     if (ch==9) if (movemode==1) movemode=0; else movemode=1;
  106.     if (ch=='!') deletecurbrush();
  107.     if (ch=='z') zoommode=1;
  108.     if (ch=='x') zoommode=2;
  109.     if (ch=='c') zoommode=4;
  110.     if (ch=='v') zoommode=6;
  111.     if (ch=='b') zoommode=8;
  112.     if (ch=='T') getnewdefaulttexture();
  113.     if (ch=='m') getnewmoverate();
  114.     if (ch=='i') insertnewbrush();
  115.     if (ch=='q') curview=0;
  116.     if (ch=='w') curview=1;
  117.     if (ch=='e') curview=2;
  118.     if (ch=='8') {
  119.         if (curview==0) brush[curbrush].yl=brush[curbrush].yl-moverate;
  120.         if (curview>0)  brush[curbrush].zl=brush[curbrush].zl+moverate;
  121.     }    
  122.     if (ch=='2') {
  123.         if (curview==0) brush[curbrush].yl=brush[curbrush].yl+moverate;
  124.         if (curview>0)  brush[curbrush].zl=brush[curbrush].zl-moverate;
  125.     }    
  126.     
  127.     if (ch=='6') {
  128.         if (curview==0) brush[curbrush].xl=brush[curbrush].xl+moverate;
  129.         if (curview==1) brush[curbrush].yl=brush[curbrush].yl+moverate;
  130.         if (curview==2) brush[curbrush].xl=brush[curbrush].xl+moverate;
  131.     }   
  132.     
  133.     if (ch=='4') {
  134.         if (curview==0) brush[curbrush].xl=brush[curbrush].xl-moverate;
  135.         if (curview==1) brush[curbrush].yl=brush[curbrush].yl-moverate;
  136.         if (curview==2) brush[curbrush].xl=brush[curbrush].xl-moverate;
  137.     }            
  138.  
  139.     if (ch==' ') {
  140.         curbrush++;
  141.         if (curbrush>=numbrushes) curbrush=0;   /* i have bad feeling bout this */
  142.     }
  143.     
  144.     if ((ch==8)&&(curbrush>0)) curbrush--;
  145.     if ((ch==8)&&(curbrush==0)&&(numbrushes>0)) curbrush=numbrushes-1;
  146.     if (ch=='s') save();
  147.     if (ch=='l') load();
  148.     if (ch=='t') texture();
  149.     if (ch==0) {
  150.         ch=getch();
  151.         if (ch==72) {
  152.             if (curview==0) brush[curbrush].y=brush[curbrush].y-moverate;
  153.             if (curview>0)  brush[curbrush].z=brush[curbrush].z+moverate;
  154.             if (movemode==1) {
  155.                 if (curview==0) brush[curbrush].yl=brush[curbrush].yl-moverate;
  156.                 if (curview>0)  brush[curbrush].zl=brush[curbrush].zl+moverate;
  157.             }
  158.         }
  159.         if (ch==80) {
  160.             if (curview==0) brush[curbrush].y=brush[curbrush].y+moverate;
  161.             if (curview>0)  brush[curbrush].z=brush[curbrush].z-moverate;
  162.             if (movemode==1) {
  163.                 if (curview==0) brush[curbrush].yl=brush[curbrush].yl+moverate;
  164.                 if (curview>0)  brush[curbrush].zl=brush[curbrush].zl-moverate;
  165.             }
  166.         }
  167.         if (ch==77) {
  168.             if (curview==0) brush[curbrush].x=brush[curbrush].x+moverate;
  169.             if (curview==1) brush[curbrush].y=brush[curbrush].y+moverate;
  170.             if (curview==2) brush[curbrush].x=brush[curbrush].x+moverate;
  171.             if (movemode==1) {
  172.                 if (curview==0) brush[curbrush].xl=brush[curbrush].xl+moverate;
  173.                 if (curview==1) brush[curbrush].yl=brush[curbrush].yl+moverate;
  174.                 if (curview==2) brush[curbrush].xl=brush[curbrush].xl+moverate;
  175.             }
  176.         }
  177.         if (ch==75) {
  178.             if (curview==0) brush[curbrush].x=brush[curbrush].x-moverate;
  179.             if (curview==1) brush[curbrush].y=brush[curbrush].y-moverate;
  180.             if (curview==2) brush[curbrush].x=brush[curbrush].x-moverate;
  181.             if (movemode==1) {
  182.                 if (curview==0) brush[curbrush].xl=brush[curbrush].xl-moverate;
  183.                 if (curview==1) brush[curbrush].yl=brush[curbrush].yl-moverate;
  184.                 if (curview==2) brush[curbrush].xl=brush[curbrush].xl-moverate;
  185.             }
  186.         }
  187.     }
  188.     } while (ch!='Q');
  189.     closegraph();
  190. }
  191.  
  192.  
  193.  
  194.