summaryrefslogtreecommitdiff
path: root/apps/plugins/puzzles/untangle.c
diff options
context:
space:
mode:
authorFranklin Wei <git@fwei.tk>2017-01-13 19:11:33 -0500
committerFranklin Wei <git@fwei.tk>2017-01-13 23:22:51 -0500
commit8e4429853d1ac024ac2b8069636cc210cf5bab1b (patch)
tree13528d977018df1d5c2daf819004bd9f49f6f5b8 /apps/plugins/puzzles/untangle.c
parent79e8cd4cfe852836c46bea5216ab308439688689 (diff)
downloadrockbox-8e4429853d1ac024ac2b8069636cc210cf5bab1b.tar.gz
rockbox-8e4429853d1ac024ac2b8069636cc210cf5bab1b.zip
puzzles: antialiased line drawing and optional "shortcuts" for undo/redo
- line drawing should eventually be moved to xlcd, but for now it's very nonportable code - fixes a minor issue with the configuration screens Change-Id: I897f01b7210cbbec32665c2bc67920c965ea0bec
Diffstat (limited to 'apps/plugins/puzzles/untangle.c')
-rw-r--r--apps/plugins/puzzles/untangle.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/apps/plugins/puzzles/untangle.c b/apps/plugins/puzzles/untangle.c
index 839013809b..d46afcbe66 100644
--- a/apps/plugins/puzzles/untangle.c
+++ b/apps/plugins/puzzles/untangle.c
@@ -1162,18 +1162,17 @@ static char *interpret_move(const game_state *state, game_ui *ui,
1162 { 1162 {
1163 if(ui->dragpoint < 0) 1163 if(ui->dragpoint < 0)
1164 { 1164 {
1165 if(ui->cursorpoint < 0)
1166 {
1167 ui->cursorpoint = 0;
1168 return "";
1169 }
1170
1171 /* We're selecting a point here. */ 1165 /* We're selecting a point here. */
1172 /* Search all the points and find the closest one (2-D) in 1166 /* Search all the points and find the closest one (2-D) in
1173 * the given direction. */ 1167 * the given direction. */
1174 int i, best; 1168 int i, best;
1175 long bestd; 1169 long bestd;
1176 1170
1171 if(ui->cursorpoint < 0)
1172 {
1173 ui->cursorpoint = 0;
1174 }
1175
1177 /* 1176 /*
1178 * Begin drag. We drag the vertex _nearest_ to the pointer, 1177 * Begin drag. We drag the vertex _nearest_ to the pointer,
1179 * just in case one is nearly on top of another and we want 1178 * just in case one is nearly on top of another and we want
@@ -1196,7 +1195,7 @@ static char *interpret_move(const game_state *state, game_ui *ui,
1196 /* Figure out if this point falls into a 90 degree 1195 /* Figure out if this point falls into a 90 degree
1197 * range extending from the current point */ 1196 * range extending from the current point */
1198 1197
1199 float angle = atan2(-dy, dx); /* adjust for raster coordinates */ 1198 float angle = atan2(-dy, dx); /* negate y to adjust for raster coordinates */
1200 1199
1201 /* offset to [0..2*PI] */ 1200 /* offset to [0..2*PI] */
1202 if(angle < 0) 1201 if(angle < 0)
@@ -1494,6 +1493,8 @@ static void game_redraw(drawing *dr, game_drawstate *ds,
1494 ds->bg = bg; 1493 ds->bg = bg;
1495 1494
1496 game_compute_size(&state->params, ds->tilesize, &w, &h); 1495 game_compute_size(&state->params, ds->tilesize, &w, &h);
1496
1497 clip(dr, 0, 0, w, h);
1497 draw_rect(dr, 0, 0, w, h, bg); 1498 draw_rect(dr, 0, 0, w, h, bg);
1498 1499
1499 /* 1500 /*