~mdw
/
sgt
/
puzzles
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revamp of the Windows command-line parsing and puzzle-loading code.
[sgt/puzzles]
/
flip.c
diff --git
a/flip.c
b/flip.c
index
bcd2ed0
..
c30e484
100644
(file)
--- a/
flip.c
+++ b/
flip.c
@@
-853,6
+853,11
@@
static char *solve_game(game_state *state, game_state *currstate,
return ret;
}
return ret;
}
+static int game_can_format_as_text_now(game_params *params)
+{
+ return TRUE;
+}
+
static char *game_text_format(game_state *state)
{
return NULL;
static char *game_text_format(game_state *state)
{
return NULL;
@@
-894,14
+899,13
@@
struct game_drawstate {
int tilesize;
};
int tilesize;
};
-static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds,
+static char *interpret_move(game_state *state, game_ui *ui,
const
game_drawstate *ds,
int x, int y, int button)
{
int w = state->w, h = state->h, wh = w * h;
char buf[80], *nullret = NULL;
int x, int y, int button)
{
int w = state->w, h = state->h, wh = w * h;
char buf[80], *nullret = NULL;
- if (button == LEFT_BUTTON || button == CURSOR_SELECT ||
- button == ' ' || button == '\r' || button == '\n') {
+ if (button == LEFT_BUTTON || IS_CURSOR_SELECT(button)) {
int tx, ty;
if (button == LEFT_BUTTON) {
tx = FROMCOORD(x), ty = FROMCOORD(y);
int tx, ty;
if (button == LEFT_BUTTON) {
tx = FROMCOORD(x), ty = FROMCOORD(y);
@@
-931,8
+935,7
@@
static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds,
}
}
}
}
}
}
- else if (button == CURSOR_UP || button == CURSOR_DOWN ||
- button == CURSOR_RIGHT || button == CURSOR_LEFT) {
+ else if (IS_CURSOR_MOVE(button)) {
int dx = 0, dy = 0;
switch (button) {
case CURSOR_UP: dy = -1; break;
int dx = 0, dy = 0;
switch (button) {
case CURSOR_UP: dy = -1; break;
@@
-1019,7
+1022,7
@@
static void game_set_size(drawing *dr, game_drawstate *ds,
ds->tilesize = tilesize;
}
ds->tilesize = tilesize;
}
-static float *game_colours(frontend *fe,
game_state *state,
int *ncolours)
+static float *game_colours(frontend *fe, int *ncolours)
{
float *ret = snewn(3 * NCOLOURS, float);
{
float *ret = snewn(3 * NCOLOURS, float);
@@
-1096,12
+1099,12
@@
static void draw_tile(drawing *dr, game_drawstate *ds,
coords[0] = bx + TILE_SIZE;
coords[1] = by;
coords[0] = bx + TILE_SIZE;
coords[1] = by;
- coords[2] = bx +
TILE_SIZE * animtime
;
- coords[3] = by +
TILE_SIZE * animtime
;
+ coords[2] = bx +
(int)((float)TILE_SIZE * animtime)
;
+ coords[3] = by +
(int)((float)TILE_SIZE * animtime)
;
coords[4] = bx;
coords[5] = by + TILE_SIZE;
coords[4] = bx;
coords[5] = by + TILE_SIZE;
- coords[6] = bx + TILE_SIZE -
TILE_SIZE * animtime
;
- coords[7] = by + TILE_SIZE -
TILE_SIZE * animtime
;
+ coords[6] = bx + TILE_SIZE -
(int)((float)TILE_SIZE * animtime)
;
+ coords[7] = by + TILE_SIZE -
(int)((float)TILE_SIZE * animtime)
;
colour = (tile & 1 ? COL_WRONG : COL_RIGHT);
if (animtime < 0.5)
colour = (tile & 1 ? COL_WRONG : COL_RIGHT);
if (animtime < 0.5)
@@
-1182,7
+1185,7
@@
static void game_redraw(drawing *dr, game_drawstate *ds, game_state *oldstate,
}
if (flashtime)
}
if (flashtime)
- flashframe =
flashtime / FLASH_FRAME
;
+ flashframe =
(int)(flashtime / FLASH_FRAME)
;
else
flashframe = -1;
else
flashframe = -1;
@@
-1248,9
+1251,9
@@
static float game_flash_length(game_state *oldstate, game_state *newstate,
return 0.0F;
}
return 0.0F;
}
-static int game_
wants_statusbar(void
)
+static int game_
status(game_state *state
)
{
{
- return
TRUE
;
+ return
state->completed ? +1 : 0
;
}
static int game_timing_state(game_state *state, game_ui *ui)
}
static int game_timing_state(game_state *state, game_ui *ui)
@@
-1271,7
+1274,7
@@
static void game_print(drawing *dr, game_state *state, int tilesize)
#endif
const struct game thegame = {
#endif
const struct game thegame = {
- "Flip", "games.flip",
+ "Flip", "games.flip",
"flip",
default_params,
game_fetch_preset,
decode_params,
default_params,
game_fetch_preset,
decode_params,
@@
-1286,7
+1289,7
@@
const struct game thegame = {
dup_game,
free_game,
TRUE, solve_game,
dup_game,
free_game,
TRUE, solve_game,
- FALSE, game_text_format,
+ FALSE, game_
can_format_as_text_now, game_
text_format,
new_ui,
free_ui,
encode_ui,
new_ui,
free_ui,
encode_ui,
@@
-1301,8
+1304,9
@@
const struct game thegame = {
game_redraw,
game_anim_length,
game_flash_length,
game_redraw,
game_anim_length,
game_flash_length,
+ game_status,
FALSE, FALSE, game_print_size, game_print,
FALSE, FALSE, game_print_size, game_print,
- game_wants_statusbar,
+ TRUE, /* wants_statusbar */
FALSE, game_timing_state,
FALSE, game_timing_state,
- 0, /*
mouse_prioritie
s */
+ 0, /*
flag
s */
};
};