1
0
Fork 0
forked from len0rd/rockbox

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
This commit is contained in:
Franklin Wei 2017-01-13 19:11:33 -05:00
parent 79e8cd4cfe
commit 8e4429853d
3 changed files with 319 additions and 111 deletions

View file

@ -1162,18 +1162,17 @@ static char *interpret_move(const game_state *state, game_ui *ui,
{
if(ui->dragpoint < 0)
{
if(ui->cursorpoint < 0)
{
ui->cursorpoint = 0;
return "";
}
/* We're selecting a point here. */
/* Search all the points and find the closest one (2-D) in
* the given direction. */
int i, best;
long bestd;
if(ui->cursorpoint < 0)
{
ui->cursorpoint = 0;
}
/*
* Begin drag. We drag the vertex _nearest_ to the pointer,
* 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,
/* Figure out if this point falls into a 90 degree
* range extending from the current point */
float angle = atan2(-dy, dx); /* adjust for raster coordinates */
float angle = atan2(-dy, dx); /* negate y to adjust for raster coordinates */
/* offset to [0..2*PI] */
if(angle < 0)
@ -1494,6 +1493,8 @@ static void game_redraw(drawing *dr, game_drawstate *ds,
ds->bg = bg;
game_compute_size(&state->params, ds->tilesize, &w, &h);
clip(dr, 0, 0, w, h);
draw_rect(dr, 0, 0, w, h, bg);
/*