summaryrefslogtreecommitdiff
path: root/sys/src
diff options
context:
space:
mode:
authorspew <devnull@localhost>2017-03-01 15:59:26 -0600
committerspew <devnull@localhost>2017-03-01 15:59:26 -0600
commit0e9973c80f994cd92f099ae1e08fec1b92ecabd1 (patch)
treea45f14719e1ae9637a236f4a64dc87bba7071401 /sys/src
parenta4895f5e44dc98b96eacf82e379246f79c8b57c4 (diff)
games/galaxy: Change button 2 to reposition the galaxy, remove "move" from the button 3 menu
Diffstat (limited to 'sys/src')
-rw-r--r--sys/src/games/galaxy/galaxy.c51
-rw-r--r--sys/src/games/galaxy/galaxy.h2
-rw-r--r--sys/src/games/galaxy/mkgalaxy.c2
-rw-r--r--sys/src/games/galaxy/quad.c8
4 files changed, 26 insertions, 37 deletions
diff --git a/sys/src/games/galaxy/galaxy.c b/sys/src/games/galaxy/galaxy.c
index cfb19161d..28fc38a21 100644
--- a/sys/src/games/galaxy/galaxy.c
+++ b/sys/src/games/galaxy/galaxy.c
@@ -35,8 +35,7 @@ Cursor pausecursor={
enum {
STK = 8192,
- MOVE = 0,
- ZOOM,
+ ZOOM = 0,
SPEED,
GRAV,
SAVE,
@@ -57,7 +56,7 @@ double
LIM = 10,
dt²;
char *file;
-int showv, showa, throttle, moving;
+int showv, showa, throttle;
char *menustr[] = {
[SAVE] "save",
@@ -65,7 +64,6 @@ char *menustr[] = {
[ZOOM] "zoom",
[SPEED] "speed",
[GRAV] "gravity",
- [MOVE] "move",
[EXIT] "exit",
[MEND] nil
};
@@ -313,31 +311,24 @@ getinput(char *info, char *sug)
}
void
-move(void)
+domove(void)
{
- Point od;
+ Point oldp, off;
+
setcursor(mc, &crosscursor);
+ pause(0, 0);
+ oldp = mc->xy;
for(;;) {
- for(;;) {
- readmouse(mc);
- if(mc->buttons & 1)
- break;
- if(mc->buttons & 4) {
- moving = 0;
- setcursor(mc, cursor);
- return;
- }
- }
- moving = 1;
- od = subpt(orig, mc->xy);
- for(;;) {
- readmouse(mc);
- if(!(mc->buttons & 1))
- break;
- orig = addpt(od, mc->xy);
- drawglxy();
- }
+ readmouse(mc);
+ if(mc->buttons != 2)
+ break;
+ off = subpt(mc->xy, oldp);
+ oldp = mc->xy;
+ orig = addpt(orig, off);
+ drawglxy();
}
+ setcursor(mc, cursor);
+ pause(1, 0);
}
void
@@ -413,9 +404,6 @@ domenu(void)
break;
G *= z;
break;
- case MOVE:
- move();
- break;
case EXIT:
threadexitsall(nil);
break;
@@ -434,6 +422,9 @@ mousethread(void*)
case 1:
dobody();
break;
+ case 2:
+ domove();
+ break;
case 4:
domenu();
break;
@@ -488,8 +479,6 @@ kbdthread(void*)
showa ^= 1;
break;
case ' ':
- if(moving)
- break;
paused ^= 1;
if(paused) {
cursor = &pausecursor;
@@ -537,7 +526,7 @@ Again:
b->a.y = b->newa.y;
b->newa.x = b->newa.y = 0;
STATS(calcs = 0;)
- quadcalc(space, b, LIM);
+ quadcalc(b, space, LIM);
STATS(avgcalcs += calcs;)
}
STATS(avgcalcs /= glxy.l;)
diff --git a/sys/src/games/galaxy/galaxy.h b/sys/src/games/galaxy/galaxy.h
index 0ba6f21cb..bf9b5cfec 100644
--- a/sys/src/games/galaxy/galaxy.h
+++ b/sys/src/games/galaxy/galaxy.h
@@ -64,7 +64,7 @@ void readglxy(int);
void writeglxy(int);
int Bfmt(Fmt*);
-void quadcalc(QB, Body*, double);
+void quadcalc(Body*, QB, double);
int quadins(Body*, double);
void growquads(void);
void quadsinit(void);
diff --git a/sys/src/games/galaxy/mkgalaxy.c b/sys/src/games/galaxy/mkgalaxy.c
index 22aa32a2f..a937286a0 100644
--- a/sys/src/games/galaxy/mkgalaxy.c
+++ b/sys/src/games/galaxy/mkgalaxy.c
@@ -12,7 +12,7 @@ double
av, avrand;
int new, c = 1;
-void quadcalc(QB, Body*, double){}
+void quadcalc(Body*, QB, double){}
Image *randcol(void){ return nil; }
void
diff --git a/sys/src/games/galaxy/quad.c b/sys/src/games/galaxy/quad.c
index e677e3628..edb8c3aa6 100644
--- a/sys/src/games/galaxy/quad.c
+++ b/sys/src/games/galaxy/quad.c
@@ -84,7 +84,7 @@ quadins(Body *nb, double size)
}
void
-quadcalc(QB qb, Body *b, double size)
+quadcalc(Body *b, QB qb, double size)
{
double fx÷❨m₁m₂❩, fy÷❨m₁m₂❩, dx, dy, h, G÷h³;
@@ -121,9 +121,9 @@ quadcalc(QB qb, Body *b, double size)
return;
}
size /= 2;
- quadcalc(qb.q->c[0], b, size);
- quadcalc(qb.q->c[1], b, size);
- quadcalc(qb.q->c[2], b, size);
+ quadcalc(b, qb.q->c[0], size);
+ quadcalc(b, qb.q->c[1], size);
+ quadcalc(b, qb.q->c[2], size);
qb = qb.q->c[3];
break; /* quadcalc(q->q[3], b, size); */
}