diff options
author | spew <devnull@localhost> | 2017-03-01 15:59:26 -0600 |
---|---|---|
committer | spew <devnull@localhost> | 2017-03-01 15:59:26 -0600 |
commit | 0e9973c80f994cd92f099ae1e08fec1b92ecabd1 (patch) | |
tree | a45f14719e1ae9637a236f4a64dc87bba7071401 /sys/src | |
parent | a4895f5e44dc98b96eacf82e379246f79c8b57c4 (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.c | 51 | ||||
-rw-r--r-- | sys/src/games/galaxy/galaxy.h | 2 | ||||
-rw-r--r-- | sys/src/games/galaxy/mkgalaxy.c | 2 | ||||
-rw-r--r-- | sys/src/games/galaxy/quad.c | 8 |
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); */ } |