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:
parent
79e8cd4cfe
commit
8e4429853d
3 changed files with 319 additions and 111 deletions
|
@ -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);
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue