aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dat.h2
-rw-r--r--mkfile9
-rw-r--r--vis.c (renamed from main.c)38
3 files changed, 34 insertions, 15 deletions
diff --git a/dat.h b/dat.h
index 38a7179..5c9b45b 100644
--- a/dat.h
+++ b/dat.h
@@ -11,6 +11,8 @@ enum {
KR→,
KR↺,
KR↻,
+ Kzoomin,
+ Kzoomout,
Kcam0,
Kcam1,
Kcam2,
diff --git a/mkfile b/mkfile
index c86d030..6ac7889 100644
--- a/mkfile
+++ b/mkfile
@@ -1,10 +1,11 @@
</$objtype/mkfile
BIN=$home/bin/$objtype
-TARG=3d
+TARG=\
+ vis\
+
OFILES=\
alloc.$O\
- main.$O\
HFILES=dat.h fns.h
@@ -12,7 +13,7 @@ LIB=\
libobj/libobj.a$O\
libgraphics/libgraphics.a$O\
-</sys/src/cmd/mkone
+</sys/src/cmd/mkmany
libgraphics/libgraphics.a$O:
cd libgraphics
@@ -40,4 +41,4 @@ clean nuke:V:
@{cd libobj; mk $target}
uninstall:V:
- rm -f $BIN/$TARG
+ rm -f $BIN/^$TARG
diff --git a/main.c b/vis.c
index 1145ed8..955cdf0 100644
--- a/main.c
+++ b/vis.c
@@ -32,6 +32,8 @@ Rune keys[Ke] = {
[KR→] = 'd',
[KR↺] = 'q',
[KR↻] = 'e',
+ [Kzoomin] = 'z',
+ [Kzoomout] = 'x',
[Kcam0] = KF|1,
[Kcam1] = KF|2,
[Kcam2] = KF|3,
@@ -172,7 +174,7 @@ gouraudshader(FSparams *sp)
else
tc = Pt3(1,1,1,1);
- c.a = fclamp(sp->v.c.a*tc.a, 0, 1);
+ c.a = 1;
c.b = fclamp(sp->v.c.b*tc.b, 0, 1);
c.g = fclamp(sp->v.c.g*tc.g, 0, 1);
c.r = fclamp(sp->v.c.r*tc.r, 0, 1);
@@ -259,7 +261,7 @@ phongshader(FSparams *sp)
tc = Pt3(1,1,1,1);
c = addpt3(ambient, addpt3(diffuse, specular));
- c.a = fclamp(c.a*tc.a, 0, 1);
+ c.a = 1;
c.b = fclamp(c.b*tc.b, 0, 1);
c.g = fclamp(c.g*tc.g, 0, 1);
c.r = fclamp(c.r*tc.r, 0, 1);
@@ -311,7 +313,7 @@ identshader(FSparams *sp)
else
tc = Pt3(1,1,1,1);
- c.a = fclamp(sp->v.c.a*tc.a, 0, 1);
+ c.a = 1;
c.b = fclamp(sp->v.c.b*tc.b, 0, 1);
c.g = fclamp(sp->v.c.g*tc.g, 0, 1);
c.r = fclamp(sp->v.c.r*tc.r, 0, 1);
@@ -435,6 +437,20 @@ getshader(char *name)
}
void
+zoomin(void)
+{
+ maincam->fov = fclamp(maincam->fov - 1*DEG, 1*DEG, 359*DEG);
+ reloadcamera(maincam);
+}
+
+void
+zoomout(void)
+{
+ maincam->fov = fclamp(maincam->fov + 1*DEG, 1*DEG, 359*DEG);
+ reloadcamera(maincam);
+}
+
+void
drawstats(void)
{
int i;
@@ -576,14 +592,10 @@ mouse(void)
mmb();
if((mctl->buttons & 4) != 0)
rmb();
- if((mctl->buttons & 8) != 0){
- maincam->fov = fclamp(maincam->fov - 1*DEG, 1*DEG, 359*DEG);
- reloadcamera(maincam);
- }
- if((mctl->buttons & 16) != 0){
- maincam->fov = fclamp(maincam->fov + 1*DEG, 1*DEG, 359*DEG);
- reloadcamera(maincam);
- }
+ if((mctl->buttons & 8) != 0)
+ zoomin();
+ if((mctl->buttons & 16) != 0)
+ zoomout();
}
void
@@ -673,6 +685,10 @@ handlekeys(void)
placecamera(maincam, maincam->p, maincam->bz, qrotate(maincam->by, maincam->bz, 1*DEG));
if(kdown & 1<<KR↻)
placecamera(maincam, maincam->p, maincam->bz, qrotate(maincam->by, maincam->bz, -1*DEG));
+ if(kdown & 1<<Kzoomin)
+ zoomin();
+ if(kdown & 1<<Kzoomout)
+ zoomout();
if(kdown & 1<<Kcam0)
maincam = &cams[0];
if(kdown & 1<<Kcam1)