home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <stdlib.h>
- #include <graphics.h>
-
- typedef struct {
- int x,y,z,xl,yl,zl;
- char texture[10];
- } cube_t;
-
- typedef struct {
- char class[256];
- int ox,oy,oz;
- int angle;
- } ent_t;
-
- cube_t brush[256];
- ent_t entity[64];
- ent_t E;
- int gdriver,gmode;
- char xmax[256];
- char ymax[256];
- int xdiv,ydiv;
- char ch;
- unsigned char zoommode;
- char defaulttex[256];
- char workstr[256];
- unsigned char numbrushes;
- unsigned char numentities;
- unsigned char curbrush;
- unsigned char curentity;
- unsigned char curview;
- unsigned char moverate;
- unsigned char movemode; /* actually a boolean */
-
- #include "procs.c"
-
- void main(void)
- {
- numbrushes=0;
- curview=0;
- numentities=0;
- curentity=0;
- curbrush=0;
- moverate=10;
- zoommode=1;
- movemode=0;
- gdriver = DETECT;
-
- strcpy(&defaulttex,"TECH07_2");
- initgraph(&gdriver, &gmode, "");
- if (graphresult()==grOk) {
- outtextxy(0,0,"QUACK beta .93 (c) 1996 FearTheFastFoodPickle! software.");
- itoa(getmaxx()+1,xmax,10);
- itoa(getmaxy()+1,ymax,10);
- strcpy(&workstr,&xmax);
- strcat(&workstr,",");
- strcat(&workstr,&ymax);
- outtextxy(0,10,workstr);
- outtextxy(0,30,"a key, press one.");
- xdiv=getmaxx()/2; ydiv=getmaxy()/2;
- getch();
- cleardevice();
- } else {
- printf("graphics prob\n");
- exit(-1);
- }
-
- do {
- if (numbrushes>0) drawbrushes();
- if (numentities>0) drawentities();
- do {} while (!kbhit());
- ch=getch();
-
- if (ch=='L') oldload();
- if (ch=='I') insertnewentity();
- if (ch=='a') curentityangle();
- if (ch==13) curentityclass();
-
- if (ch=='[') {
- curentity++;
- if (curentity==numentities) curentity=0;
- }
-
- if (ch==']') if (curentity>0) curentity--; else curentity=numentities-1;
-
- if (ch=='u') {
- if (curview==0) entity[curentity].oy=entity[curentity].oy-moverate;
- if (curview>0) entity[curentity].oz=entity[curentity].oz+moverate;
- }
- if (ch=='j') {
- if (curview==0) entity[curentity].oy=entity[curentity].oy+moverate;
- if (curview>0) entity[curentity].oz=entity[curentity].oz-moverate;
- }
- if (ch=='k') {
- if (curview==0) entity[curentity].ox=entity[curentity].ox+moverate;
- if (curview==1) entity[curentity].oy=entity[curentity].oy+moverate;
- if (curview==2) entity[curentity].ox=entity[curentity].ox+moverate;
- }
- if (ch=='h') {
- if (curview==0) entity[curentity].ox=entity[curentity].ox-moverate;
- if (curview==1) entity[curentity].oy=entity[curentity].oy-moverate;
- if (curview==2) entity[curentity].ox=entity[curentity].ox-moverate;
- }
-
- if (ch==9) if (movemode==1) movemode=0; else movemode=1;
- if (ch=='!') deletecurbrush();
- if (ch=='z') zoommode=1;
- if (ch=='x') zoommode=2;
- if (ch=='c') zoommode=4;
- if (ch=='v') zoommode=6;
- if (ch=='b') zoommode=8;
- if (ch=='T') getnewdefaulttexture();
- if (ch=='m') getnewmoverate();
- if (ch=='i') insertnewbrush();
- if (ch=='q') curview=0;
- if (ch=='w') curview=1;
- if (ch=='e') curview=2;
- if (ch=='8') {
- if (curview==0) brush[curbrush].yl=brush[curbrush].yl-moverate;
- if (curview>0) brush[curbrush].zl=brush[curbrush].zl+moverate;
- }
- if (ch=='2') {
- if (curview==0) brush[curbrush].yl=brush[curbrush].yl+moverate;
- if (curview>0) brush[curbrush].zl=brush[curbrush].zl-moverate;
- }
-
- if (ch=='6') {
- if (curview==0) brush[curbrush].xl=brush[curbrush].xl+moverate;
- if (curview==1) brush[curbrush].yl=brush[curbrush].yl+moverate;
- if (curview==2) brush[curbrush].xl=brush[curbrush].xl+moverate;
- }
-
- if (ch=='4') {
- if (curview==0) brush[curbrush].xl=brush[curbrush].xl-moverate;
- if (curview==1) brush[curbrush].yl=brush[curbrush].yl-moverate;
- if (curview==2) brush[curbrush].xl=brush[curbrush].xl-moverate;
- }
-
- if (ch==' ') {
- curbrush++;
- if (curbrush>=numbrushes) curbrush=0; /* i have bad feeling bout this */
- }
-
- if ((ch==8)&&(curbrush>0)) curbrush--;
- if ((ch==8)&&(curbrush==0)&&(numbrushes>0)) curbrush=numbrushes-1;
- if (ch=='s') save();
- if (ch=='l') load();
- if (ch=='t') texture();
- if (ch==0) {
- ch=getch();
- if (ch==72) {
- if (curview==0) brush[curbrush].y=brush[curbrush].y-moverate;
- if (curview>0) brush[curbrush].z=brush[curbrush].z+moverate;
- if (movemode==1) {
- if (curview==0) brush[curbrush].yl=brush[curbrush].yl-moverate;
- if (curview>0) brush[curbrush].zl=brush[curbrush].zl+moverate;
- }
- }
- if (ch==80) {
- if (curview==0) brush[curbrush].y=brush[curbrush].y+moverate;
- if (curview>0) brush[curbrush].z=brush[curbrush].z-moverate;
- if (movemode==1) {
- if (curview==0) brush[curbrush].yl=brush[curbrush].yl+moverate;
- if (curview>0) brush[curbrush].zl=brush[curbrush].zl-moverate;
- }
- }
- if (ch==77) {
- if (curview==0) brush[curbrush].x=brush[curbrush].x+moverate;
- if (curview==1) brush[curbrush].y=brush[curbrush].y+moverate;
- if (curview==2) brush[curbrush].x=brush[curbrush].x+moverate;
- if (movemode==1) {
- if (curview==0) brush[curbrush].xl=brush[curbrush].xl+moverate;
- if (curview==1) brush[curbrush].yl=brush[curbrush].yl+moverate;
- if (curview==2) brush[curbrush].xl=brush[curbrush].xl+moverate;
- }
- }
- if (ch==75) {
- if (curview==0) brush[curbrush].x=brush[curbrush].x-moverate;
- if (curview==1) brush[curbrush].y=brush[curbrush].y-moverate;
- if (curview==2) brush[curbrush].x=brush[curbrush].x-moverate;
- if (movemode==1) {
- if (curview==0) brush[curbrush].xl=brush[curbrush].xl-moverate;
- if (curview==1) brush[curbrush].yl=brush[curbrush].yl-moverate;
- if (curview==2) brush[curbrush].xl=brush[curbrush].xl-moverate;
- }
- }
- }
- } while (ch!='Q');
- closegraph();
- }
-
-
-
-