~mdw
/
sgt
/
puzzles
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Dariusz Olszewski's changes to support compiling for PocketPC. This
[sgt/puzzles]
/
net.c
diff --git
a/net.c
b/net.c
index
f8811a7
..
bf0f7e7
100644
(file)
--- a/
net.c
+++ b/
net.c
@@
-46,7
+46,11
@@
#define PREFERRED_TILE_SIZE 32
#define TILE_SIZE (ds->tilesize)
#define TILE_BORDER 1
#define PREFERRED_TILE_SIZE 32
#define TILE_SIZE (ds->tilesize)
#define TILE_BORDER 1
+#ifdef SMALL_SCREEN
+#define WINDOW_OFFSET 4
+#else
#define WINDOW_OFFSET 16
#define WINDOW_OFFSET 16
+#endif
#define ROTATE_TIME 0.13F
#define FLASH_FRAME 0.07F
#define ROTATE_TIME 0.13F
#define FLASH_FRAME 0.07F
@@
-80,7
+84,7
@@
struct game_params {
struct game_state {
int width, height, wrapping, completed;
int last_rotate_x, last_rotate_y, last_rotate_dir;
struct game_state {
int width, height, wrapping, completed;
int last_rotate_x, last_rotate_y, last_rotate_dir;
- int used_solve
, just_used_solve
;
+ int used_solve;
unsigned char *tiles;
unsigned char *barriers;
};
unsigned char *tiles;
unsigned char *barriers;
};
@@
-150,12
+154,16
@@
static const struct game_params net_presets[] = {
{7, 7, FALSE, TRUE, 0.0},
{9, 9, FALSE, TRUE, 0.0},
{11, 11, FALSE, TRUE, 0.0},
{7, 7, FALSE, TRUE, 0.0},
{9, 9, FALSE, TRUE, 0.0},
{11, 11, FALSE, TRUE, 0.0},
+#ifndef SMALL_SCREEN
{13, 11, FALSE, TRUE, 0.0},
{13, 11, FALSE, TRUE, 0.0},
+#endif
{5, 5, TRUE, TRUE, 0.0},
{7, 7, TRUE, TRUE, 0.0},
{9, 9, TRUE, TRUE, 0.0},
{11, 11, TRUE, TRUE, 0.0},
{5, 5, TRUE, TRUE, 0.0},
{7, 7, TRUE, TRUE, 0.0},
{9, 9, TRUE, TRUE, 0.0},
{11, 11, TRUE, TRUE, 0.0},
+#ifndef SMALL_SCREEN
{13, 11, TRUE, TRUE, 0.0},
{13, 11, TRUE, TRUE, 0.0},
+#endif
};
static int game_fetch_preset(int i, char **name, game_params **params)
};
static int game_fetch_preset(int i, char **name, game_params **params)
@@
-521,9
+529,7
@@
static int net_solver(int w, int h, unsigned char *tiles,
* classes) by finding the representative of each tile and
* setting equivalence[one]=the_other.
*/
* classes) by finding the representative of each tile and
* setting equivalence[one]=the_other.
*/
- equivalence = snewn(w * h, int);
- for (i = 0; i < w*h; i++)
- equivalence[i] = i; /* initially all distinct */
+ equivalence = snew_dsf(w * h);
/*
* On a non-wrapping grid, we instantly know that all the edges
/*
* On a non-wrapping grid, we instantly know that all the edges
@@
-1526,7
+1532,7
@@
static game_state *new_game(midend *me, game_params *params, char *desc)
h = state->height = params->height;
state->wrapping = params->wrapping;
state->last_rotate_dir = state->last_rotate_x = state->last_rotate_y = 0;
h = state->height = params->height;
state->wrapping = params->wrapping;
state->last_rotate_dir = state->last_rotate_x = state->last_rotate_y = 0;
- state->completed = state->used_solve =
state->just_used_solve =
FALSE;
+ state->completed = state->used_solve = FALSE;
state->tiles = snewn(state->width * state->height, unsigned char);
memset(state->tiles, 0, state->width * state->height);
state->barriers = snewn(state->width * state->height, unsigned char);
state->tiles = snewn(state->width * state->height, unsigned char);
memset(state->tiles, 0, state->width * state->height);
state->barriers = snewn(state->width * state->height, unsigned char);
@@
-1606,7
+1612,6
@@
static game_state *dup_game(game_state *state)
ret->wrapping = state->wrapping;
ret->completed = state->completed;
ret->used_solve = state->used_solve;
ret->wrapping = state->wrapping;
ret->completed = state->completed;
ret->used_solve = state->used_solve;
- ret->just_used_solve = state->just_used_solve;
ret->last_rotate_dir = state->last_rotate_dir;
ret->last_rotate_x = state->last_rotate_x;
ret->last_rotate_y = state->last_rotate_y;
ret->last_rotate_dir = state->last_rotate_dir;
ret->last_rotate_x = state->last_rotate_x;
ret->last_rotate_y = state->last_rotate_y;
@@
-1804,7
+1809,7
@@
static game_ui *new_ui(game_state *state)
ui->cur_y = ui->cy = state->height / 2;
ui->cur_visible = FALSE;
get_random_seed(&seed, &seedsize);
ui->cur_y = ui->cy = state->height / 2;
ui->cur_visible = FALSE;
get_random_seed(&seed, &seedsize);
- ui->rs = random_
init
(seed, seedsize);
+ ui->rs = random_
new
(seed, seedsize);
sfree(seed);
return ui;
sfree(seed);
return ui;
@@
-2019,11
+2024,10
@@
static game_state *execute_move(game_state *from, char *move)
int tx, ty, n, noanim, orig;
ret = dup_game(from);
int tx, ty, n, noanim, orig;
ret = dup_game(from);
- ret->just_used_solve = FALSE;
if (move[0] == 'J' || move[0] == 'S') {
if (move[0] == 'S')
if (move[0] == 'J' || move[0] == 'S') {
if (move[0] == 'S')
- ret->
just_used_solve = ret->
used_solve = TRUE;
+ ret->used_solve = TRUE;
move++;
if (*move == ';')
move++;
if (*move == ';')
@@
-2138,7
+2142,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;
{
float *ret;
@@
-2653,13
+2657,6
@@
static float game_anim_length(game_state *oldstate,
int last_rotate_dir;
/*
int last_rotate_dir;
/*
- * Don't animate an auto-solve move.
- */
- if ((dir > 0 && newstate->just_used_solve) ||
- (dir < 0 && oldstate->just_used_solve))
- return 0.0F;
-
- /*
* Don't animate if last_rotate_dir is zero.
*/
last_rotate_dir = dir==-1 ? oldstate->last_rotate_dir :
* Don't animate if last_rotate_dir is zero.
*/
last_rotate_dir = dir==-1 ? oldstate->last_rotate_dir :
@@
-2690,11
+2687,6
@@
static float game_flash_length(game_state *oldstate,
return 0.0F;
}
return 0.0F;
}
-static int game_wants_statusbar(void)
-{
- return TRUE;
-}
-
static int game_timing_state(game_state *state, game_ui *ui)
{
return TRUE;
static int game_timing_state(game_state *state, game_ui *ui)
{
return TRUE;
@@
-2840,7
+2832,7
@@
static void game_print(drawing *dr, game_state *state, int tilesize)
#endif
const struct game thegame = {
#endif
const struct game thegame = {
- "Net", "games.net",
+ "Net", "games.net",
"net",
default_params,
game_fetch_preset,
decode_params,
default_params,
game_fetch_preset,
decode_params,
@@
-2871,7
+2863,7
@@
const struct game thegame = {
game_anim_length,
game_flash_length,
TRUE, FALSE, game_print_size, game_print,
game_anim_length,
game_flash_length,
TRUE, 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 */
};
};