int board_width, board_height;
int board_pad_x, board_pad_y;
+ int **damaged;
+
int cell_width, cell_height;
- rr_robot_t drag_robot;
+ rr_robot_t active_robot;
rr_client_t *client;
/* Button currently pressed or 0 if none */
guint8 button;
- /* ID of update timer, or 0 if none */
- guint32 timer;
+ double time;
+ double zap_time;
+ double drift_correct;
+ guint timer;
- grr_icon_t *cell_icon;
+ grr_icon_t *cell1_icon;
+ grr_icon_t *cell2_icon;
grr_icon_t *wall_icon;
+
grr_icon_t *robot_icon[RR_NUM_ROBOTS];
grr_icon_t *target_icon[RR_NUM_TARGETS];
};
GtkWidgetClass parent_class;
};
-GtkWidget*
+grr_board_view_t *
grr_board_view_new (rr_board_t *board);
void
GtkType
grr_board_view_get_type (void);
+void
+grr_board_view_set_active_robot (grr_board_view_t *view, rr_robot_t robot);
+
+void
+grr_board_view_move_active (grr_board_view_t *view, rr_direction_t dir);
+
+void
+grr_board_view_undo (grr_board_view_t *view);
+
+void
+grr_board_view_mark_damage (grr_board_view_t *view, int i, int j);
+
+void
+grr_board_view_set_timer (grr_board_view_t *view, double time);
+
+void
+grr_board_view_start_timer (grr_board_view_t *view);
+
+void
+grr_board_view_stop_timer (grr_board_view_t *view);
+
+void
+grr_board_view_zap_timer (grr_board_view_t *view);
+
+void
+grr_board_view_transform_pixel_to_cell (grr_board_view_t *view,
+ int pixel_x, int pixel_y,
+ int *cell_x, int *cell_y);
+
+void
+grr_board_view_transform_cell_to_pixel (grr_board_view_t *view,
+ int cell_x, int cell_y,
+ int *pixel_x, int *pixel_y);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */