summaryrefslogtreecommitdiff
path: root/src/graphics_x11.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/graphics_x11.c')
-rw-r--r--src/graphics_x11.c66
1 files changed, 41 insertions, 25 deletions
diff --git a/src/graphics_x11.c b/src/graphics_x11.c
index f86b31e..31a78e4 100644
--- a/src/graphics_x11.c
+++ b/src/graphics_x11.c
@@ -166,6 +166,8 @@ void set_aspect_ratio() {
int keypress_handler(int sym) {
char line[1024];
+ radians tmprad;
+ radians tmprad2;
real tmpx;
// real tmpy; //unused atm
real tmpz;
@@ -175,32 +177,40 @@ int keypress_handler(int sym) {
selfcommand(line);
break;
case XK_Up:
- tmpx=WALK_SPEED*sinl(d2r(camera.yr.d+90));
- tmpz=WALK_SPEED*cosl(d2r(camera.yr.d+90));
+ tmprad=d2r((degrees){camera.r.y.d+90});
+ tmprad2=d2r((degrees){camera.r.y.d+90});
+ tmpx=WALK_SPEED*sinl(tmprad.r);
+ tmpz=WALK_SPEED*cosl(tmprad2.r);
camera.p.x+=tmpx;
camera.p.z+=tmpz;
snprintf(line,sizeof(line)-1,"%s move %Lf 0 %Lf 0 0 0 0 0 0\n",global.user,tmpx,tmpz);
selfcommand(line);
break;
case XK_Down:
- tmpx=WALK_SPEED*sinl(d2r(camera.yr.d+270));
- tmpz=WALK_SPEED*cosl(d2r(camera.yr.d+270));
+ tmprad=d2r((degrees){camera.r.y.d+270});
+ tmprad2=d2r((degrees){camera.r.y.d+270});
+ tmpx=WALK_SPEED*sinl(tmprad.r);
+ tmpz=WALK_SPEED*cosl(tmprad2.r);
camera.p.x+=tmpx;
camera.p.z+=tmpz;
snprintf(line,sizeof(line)-1,"%s move %Lf 0 %Lf 0 0 0 0 0 0\n",global.user,tmpx,tmpz);
selfcommand(line);
break;
case XK_Left:
- tmpx=WALK_SPEED*sinl(d2r(camera.yr.d));
- tmpz=WALK_SPEED*cosl(d2r(camera.yr.d));
+ tmprad=d2r(camera.r.y);
+ tmprad2=d2r(camera.r.y);
+ tmpx=WALK_SPEED*sinl(tmprad.r);
+ tmpz=WALK_SPEED*cosl(tmprad2.r);
camera.p.x+=tmpx;
camera.p.z+=tmpz;
snprintf(line,sizeof(line)-1,"%s move %Lf 0 %Lf 0 0 0 0 0 0\n",global.user,tmpx,tmpz);
selfcommand(line);
break;
case XK_Right:
- tmpx=WALK_SPEED*sinl(d2r(camera.yr.d+180));
- tmpz=WALK_SPEED*cosl(d2r(camera.yr.d+180));
+ tmprad=d2r((degrees){camera.r.y.d+180});
+ tmprad2=d2r((degrees){camera.r.y.d+180});
+ tmpx=WALK_SPEED*sinl(tmprad.r);
+ tmpz=WALK_SPEED*cosl(tmprad2.r);
camera.p.x+=tmpx;
camera.p.z+=tmpz;
snprintf(line,sizeof(line)-1,"%s move %Lf 0 %Lf 0 0 0 0 0 0\n",global.user,tmpx,tmpz);
@@ -217,28 +227,34 @@ int keypress_handler(int sym) {
selfcommand(line);
break;
case XK_r:
- camera.xr.d+=5;
- while(camera.xr.d > 360) camera.xr.d-=360;
+ camera.r.x.d+=5;
+ while(camera.r.x.d > 360) camera.r.x.d-=360;
break;
case XK_y:
- camera.xr.d-=5;
- while(camera.xr.d < 0) camera.xr.d+=360;
+ camera.r.x.d-=5;
+ while(camera.r.x.d < 0) camera.r.x.d+=360;
break;
case XK_q:
- camera.yr.d+=5;
- while(camera.yr.d > 360) camera.yr.d-=360;
+ camera.r.y.d+=5;
+ while(camera.r.y.d > 360) camera.r.y.d-=360;
break;
case XK_e:
- camera.yr.d-=5;
- while(camera.yr.d < 0) camera.yr.d+=360;
+ camera.r.y.d-=5;
+ while(camera.r.y.d < 0) camera.r.y.d+=360;
break;
case XK_u:
- camera.zr.d+=5;
- while(camera.zr.d > 360) camera.zr.d-=360;
+ camera.r.z.d+=5;
+ while(camera.r.z.d > 360) camera.r.z.d-=360;
break;
case XK_o:
- camera.zr.d-=5;
- while(camera.zr.d < 0) camera.zr.d+=360;
+ camera.r.z.d-=5;
+ while(camera.r.z.d < 0) camera.r.z.d+=360;
+ break;
+ case XK_p:
+ gra_global.split+=.1;
+ break;
+ case XK_l:
+ gra_global.split-=.1;
break;
case XK_z: camera.zoom+=1; break;
case XK_x: camera.zoom-=1; break;
@@ -274,7 +290,7 @@ int keypress_handler(int sym) {
#endif
int graphics_init() {
- int i,j;
+ int i;
char tmp[64];
Cursor cursor;
XSetWindowAttributes attributes;
@@ -296,7 +312,7 @@ int graphics_init() {
assert(x11_global.dpy);
gra_global.split_screen=SPLIT_SCREEN;
gra_global.split_flip=-1;
- gra_global.split=5;
+ gra_global.split=CAMERA_SEPARATION;
x11_global.root_window=0;
gra_global.red_and_blue=RED_AND_BLUE;
//global.colors[0]=BlackPixel(x11_global.dpy,DefaultScreen(x11_global.dpy));
@@ -372,9 +388,9 @@ int graphics_init() {
//this should be in graphics.c ?
camera.zoom=30.0l;
- camera.xr.d=270;
- camera.yr.d=90;
- camera.zr.d=0;
+ camera.r.x.d=270;
+ camera.r.y.d=90;
+ camera.r.z.d=0;
global.mmz=1;
camera.p.x=0;
camera.p.z=-6;