/* puzzle.c generated by valac 0.34.0.4-5c9b2, the Vala compiler
 * generated from puzzle.vala, do not modify */

/* -*- Mode: vala; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
 *
 * Copyright (C) 2010-2013 Robert Ancell
 *
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 2 of the License, or (at your option) any later
 * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
 * license.
 */

#include <glib.h>
#include <glib-object.h>
#include <float.h>
#include <math.h>


#define TYPE_TILE (tile_get_type ())
#define TILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TILE, Tile))
#define TILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TILE, TileClass))
#define IS_TILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TILE))
#define IS_TILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TILE))
#define TILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TILE, TileClass))

typedef struct _Tile Tile;
typedef struct _TileClass TileClass;
typedef struct _TilePrivate TilePrivate;

#define TYPE_PUZZLE (puzzle_get_type ())
#define PUZZLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PUZZLE, Puzzle))
#define PUZZLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PUZZLE, PuzzleClass))
#define IS_PUZZLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PUZZLE))
#define IS_PUZZLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PUZZLE))
#define PUZZLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PUZZLE, PuzzleClass))

typedef struct _Puzzle Puzzle;
typedef struct _PuzzleClass PuzzleClass;
typedef struct _PuzzlePrivate PuzzlePrivate;
#define _g_timer_destroy0(var) ((var == NULL) ? NULL : (var = (g_timer_destroy (var), NULL)))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define __g_list_free__g_object_unref0_0(var) ((var == NULL) ? NULL : (var = (_g_list_free__g_object_unref0_ (var), NULL)))

struct _Tile {
	GObject parent_instance;
	TilePrivate * priv;
	gint north;
	gint west;
	gint east;
	gint south;
	guint x;
	guint y;
};

struct _TileClass {
	GObjectClass parent_class;
};

struct _Puzzle {
	GObject parent_instance;
	PuzzlePrivate * priv;
};

struct _PuzzleClass {
	GObjectClass parent_class;
};

struct _PuzzlePrivate {
	guint _size;
	Tile** board;
	gint board_length1;
	gint board_length2;
	gdouble clock_elapsed;
	GTimer* clock;
	guint clock_timeout;
	gboolean _paused;
};


static gpointer tile_parent_class = NULL;
static gpointer puzzle_parent_class = NULL;

GType tile_get_type (void) G_GNUC_CONST;
enum  {
	TILE_DUMMY_PROPERTY
};
Tile* tile_new (guint x, guint y);
Tile* tile_construct (GType object_type, guint x, guint y);
static void tile_finalize (GObject* obj);
GType puzzle_get_type (void) G_GNUC_CONST;
#define PUZZLE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_PUZZLE, PuzzlePrivate))
enum  {
	PUZZLE_DUMMY_PROPERTY,
	PUZZLE_SIZE,
	PUZZLE_ELAPSED,
	PUZZLE_PAUSED,
	PUZZLE_IS_SOLVED,
	PUZZLE_CAN_MOVE_UP,
	PUZZLE_CAN_MOVE_DOWN,
	PUZZLE_CAN_MOVE_LEFT,
	PUZZLE_CAN_MOVE_RIGHT
};
Puzzle* puzzle_new (guint size);
Puzzle* puzzle_construct (GType object_type, guint size);
static void puzzle_start_clock (Puzzle* self);
static void _g_object_unref0_ (gpointer var);
static void _g_list_free__g_object_unref0_ (GList* self);
Tile* puzzle_get_tile (Puzzle* self, guint x, guint y);
void puzzle_get_tile_location (Puzzle* self, Tile* tile, guint* x, guint* y);
guint puzzle_get_size (Puzzle* self);
gboolean puzzle_tile_fits (Puzzle* self, guint x0, guint y0, guint x1, guint y1);
gboolean puzzle_can_switch (Puzzle* self, guint x0, guint y0, guint x1, guint y1);
void puzzle_switch_tiles (Puzzle* self, guint x0, guint y0, guint x1, guint y1);
gboolean puzzle_get_is_solved (Puzzle* self);
static void puzzle_stop_clock (Puzzle* self);
void puzzle_move_up (Puzzle* self);
gboolean puzzle_get_can_move_up (Puzzle* self);
void puzzle_move_down (Puzzle* self);
gboolean puzzle_get_can_move_down (Puzzle* self);
void puzzle_move_left (Puzzle* self);
gboolean puzzle_get_can_move_left (Puzzle* self);
void puzzle_move_right (Puzzle* self);
gboolean puzzle_get_can_move_right (Puzzle* self);
void puzzle_solve (Puzzle* self);
static gboolean puzzle_timeout_cb (Puzzle* self);
static void puzzle_continue_clock (Puzzle* self);
static gboolean _puzzle_timeout_cb_gsource_func (gpointer self);
gdouble puzzle_get_elapsed (Puzzle* self);
gboolean puzzle_get_paused (Puzzle* self);
void puzzle_set_paused (Puzzle* self, gboolean value);
static void g_cclosure_user_marshal_VOID__OBJECT_UINT_UINT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
static void puzzle_finalize (GObject* obj);
static void _vala_puzzle_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
static void _vala_puzzle_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);


Tile* tile_construct (GType object_type, guint x, guint y) {
	Tile * self = NULL;
	guint _tmp0_ = 0U;
	guint _tmp1_ = 0U;
#line 24 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	self = (Tile*) g_object_new (object_type, NULL);
#line 26 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0_ = x;
#line 26 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	self->x = _tmp0_;
#line 27 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp1_ = y;
#line 27 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	self->y = _tmp1_;
#line 24 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	return self;
#line 158 "puzzle.c"
}


Tile* tile_new (guint x, guint y) {
#line 24 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	return tile_construct (TYPE_TILE, x, y);
#line 165 "puzzle.c"
}


static void tile_class_init (TileClass * klass) {
#line 12 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	tile_parent_class = g_type_class_peek_parent (klass);
#line 12 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	G_OBJECT_CLASS (klass)->finalize = tile_finalize;
#line 174 "puzzle.c"
}


static void tile_instance_init (Tile * self) {
}


static void tile_finalize (GObject* obj) {
	Tile * self;
#line 12 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_TILE, Tile);
#line 12 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	G_OBJECT_CLASS (tile_parent_class)->finalize (obj);
#line 188 "puzzle.c"
}


GType tile_get_type (void) {
	static volatile gsize tile_type_id__volatile = 0;
	if (g_once_init_enter (&tile_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (TileClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tile_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Tile), 0, (GInstanceInitFunc) tile_instance_init, NULL };
		GType tile_type_id;
		tile_type_id = g_type_register_static (G_TYPE_OBJECT, "Tile", &g_define_type_info, 0);
		g_once_init_leave (&tile_type_id__volatile, tile_type_id);
	}
	return tile_type_id__volatile;
}


static gpointer _g_object_ref0 (gpointer self) {
#line 136 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	return self ? g_object_ref (self) : NULL;
#line 207 "puzzle.c"
}


static void _g_object_unref0_ (gpointer var) {
#line 98 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
#line 214 "puzzle.c"
}


static void _g_list_free__g_object_unref0_ (GList* self) {
#line 98 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_list_foreach (self, (GFunc) _g_object_unref0_, NULL);
#line 98 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_list_free (self);
#line 223 "puzzle.c"
}


Puzzle* puzzle_construct (GType object_type, guint size) {
	Puzzle * self = NULL;
	guint _tmp0_ = 0U;
	guint _tmp1_ = 0U;
	guint _tmp2_ = 0U;
	Tile** _tmp3_ = NULL;
	GList* tiles = NULL;
#line 98 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	self = (Puzzle*) g_object_new (object_type, NULL);
#line 100 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0_ = size;
#line 100 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	self->priv->_size = _tmp0_;
#line 101 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp1_ = size;
#line 101 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp2_ = size;
#line 101 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp3_ = g_new0 (Tile*, ((_tmp1_ * 2) * _tmp2_) + 1);
#line 101 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	self->priv->board = (_vala_array_free (self->priv->board, self->priv->board_length1 * self->priv->board_length2, (GDestroyNotify) g_object_unref), NULL);
#line 101 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	self->priv->board = _tmp3_;
#line 101 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	self->priv->board_length1 = _tmp1_ * 2;
#line 101 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	self->priv->board_length2 = _tmp2_;
#line 254 "puzzle.c"
	{
		gint x = 0;
#line 102 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		x = 0;
#line 259 "puzzle.c"
		{
			gboolean _tmp4_ = FALSE;
#line 102 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp4_ = TRUE;
#line 102 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			while (TRUE) {
#line 266 "puzzle.c"
				gint _tmp6_ = 0;
				guint _tmp7_ = 0U;
#line 102 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!_tmp4_) {
#line 271 "puzzle.c"
					gint _tmp5_ = 0;
#line 102 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp5_ = x;
#line 102 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					x = _tmp5_ + 1;
#line 277 "puzzle.c"
				}
#line 102 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp4_ = FALSE;
#line 102 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp6_ = x;
#line 102 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp7_ = size;
#line 102 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!(((guint) _tmp6_) < _tmp7_)) {
#line 102 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					break;
#line 289 "puzzle.c"
				}
				{
					gint y = 0;
#line 103 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					y = 0;
#line 295 "puzzle.c"
					{
						gboolean _tmp8_ = FALSE;
#line 103 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						_tmp8_ = TRUE;
#line 103 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						while (TRUE) {
#line 302 "puzzle.c"
							gint _tmp10_ = 0;
							guint _tmp11_ = 0U;
							Tile** _tmp12_ = NULL;
							gint _tmp12__length1 = 0;
							gint _tmp12__length2 = 0;
							gint _tmp13_ = 0;
							gint _tmp14_ = 0;
							gint _tmp15_ = 0;
							gint _tmp16_ = 0;
							Tile* _tmp17_ = NULL;
							Tile* _tmp18_ = NULL;
#line 103 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!_tmp8_) {
#line 316 "puzzle.c"
								gint _tmp9_ = 0;
#line 103 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp9_ = y;
#line 103 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								y = _tmp9_ + 1;
#line 322 "puzzle.c"
							}
#line 103 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp8_ = FALSE;
#line 103 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp10_ = y;
#line 103 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp11_ = size;
#line 103 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!(((guint) _tmp10_) < _tmp11_)) {
#line 103 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								break;
#line 334 "puzzle.c"
							}
#line 104 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp12_ = self->priv->board;
#line 104 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp12__length1 = self->priv->board_length1;
#line 104 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp12__length2 = self->priv->board_length2;
#line 104 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp13_ = x;
#line 104 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp14_ = y;
#line 104 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp15_ = x;
#line 104 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp16_ = y;
#line 104 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp17_ = tile_new ((guint) _tmp15_, (guint) _tmp16_);
#line 104 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_g_object_unref0 (_tmp12_[(_tmp13_ * _tmp12__length2) + _tmp14_]);
#line 104 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp12_[(_tmp13_ * _tmp12__length2) + _tmp14_] = _tmp17_;
#line 104 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp18_ = _tmp12_[(_tmp13_ * _tmp12__length2) + _tmp14_];
#line 358 "puzzle.c"
						}
					}
				}
			}
		}
	}
	{
		gint x = 0;
#line 107 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		x = 0;
#line 369 "puzzle.c"
		{
			gboolean _tmp19_ = FALSE;
#line 107 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp19_ = TRUE;
#line 107 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			while (TRUE) {
#line 376 "puzzle.c"
				gint _tmp21_ = 0;
				guint _tmp22_ = 0U;
#line 107 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!_tmp19_) {
#line 381 "puzzle.c"
					gint _tmp20_ = 0;
#line 107 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp20_ = x;
#line 107 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					x = _tmp20_ + 1;
#line 387 "puzzle.c"
				}
#line 107 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp19_ = FALSE;
#line 107 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp21_ = x;
#line 107 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp22_ = size;
#line 107 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!(((guint) _tmp21_) < _tmp22_)) {
#line 107 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					break;
#line 399 "puzzle.c"
				}
				{
					gint y = 0;
#line 109 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					y = 0;
#line 405 "puzzle.c"
					{
						gboolean _tmp23_ = FALSE;
#line 109 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						_tmp23_ = TRUE;
#line 109 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						while (TRUE) {
#line 412 "puzzle.c"
							gint _tmp25_ = 0;
							guint _tmp26_ = 0U;
							gint32 n = 0;
							gint32 _tmp27_ = 0;
							gint _tmp28_ = 0;
							gint _tmp34_ = 0;
							guint _tmp35_ = 0U;
#line 109 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!_tmp23_) {
#line 422 "puzzle.c"
								gint _tmp24_ = 0;
#line 109 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp24_ = y;
#line 109 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								y = _tmp24_ + 1;
#line 428 "puzzle.c"
							}
#line 109 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp23_ = FALSE;
#line 109 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp25_ = y;
#line 109 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp26_ = size;
#line 109 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!(((guint) _tmp25_) <= _tmp26_)) {
#line 109 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								break;
#line 440 "puzzle.c"
							}
#line 111 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp27_ = g_random_int_range ((gint32) 0, (gint32) 10);
#line 111 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							n = _tmp27_;
#line 112 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp28_ = y;
#line 112 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if ((_tmp28_ - 1) >= 0) {
#line 450 "puzzle.c"
								Tile** _tmp29_ = NULL;
								gint _tmp29__length1 = 0;
								gint _tmp29__length2 = 0;
								gint _tmp30_ = 0;
								gint _tmp31_ = 0;
								Tile* _tmp32_ = NULL;
								gint32 _tmp33_ = 0;
#line 113 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp29_ = self->priv->board;
#line 113 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp29__length1 = self->priv->board_length1;
#line 113 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp29__length2 = self->priv->board_length2;
#line 113 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp30_ = x;
#line 113 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp31_ = y;
#line 113 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp32_ = _tmp29_[(_tmp30_ * _tmp29__length2) + (_tmp31_ - 1)];
#line 113 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp33_ = n;
#line 113 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp32_->south = (gint) _tmp33_;
#line 474 "puzzle.c"
							}
#line 114 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp34_ = y;
#line 114 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp35_ = size;
#line 114 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (((guint) _tmp34_) < _tmp35_) {
#line 482 "puzzle.c"
								Tile** _tmp36_ = NULL;
								gint _tmp36__length1 = 0;
								gint _tmp36__length2 = 0;
								gint _tmp37_ = 0;
								gint _tmp38_ = 0;
								Tile* _tmp39_ = NULL;
								gint32 _tmp40_ = 0;
#line 115 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp36_ = self->priv->board;
#line 115 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp36__length1 = self->priv->board_length1;
#line 115 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp36__length2 = self->priv->board_length2;
#line 115 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp37_ = x;
#line 115 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp38_ = y;
#line 115 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp39_ = _tmp36_[(_tmp37_ * _tmp36__length2) + _tmp38_];
#line 115 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp40_ = n;
#line 115 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp39_->north = (gint) _tmp40_;
#line 506 "puzzle.c"
							}
						}
					}
				}
			}
		}
	}
	{
		gint x = 0;
#line 118 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		x = 0;
#line 518 "puzzle.c"
		{
			gboolean _tmp41_ = FALSE;
#line 118 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp41_ = TRUE;
#line 118 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			while (TRUE) {
#line 525 "puzzle.c"
				gint _tmp43_ = 0;
				guint _tmp44_ = 0U;
#line 118 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!_tmp41_) {
#line 530 "puzzle.c"
					gint _tmp42_ = 0;
#line 118 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp42_ = x;
#line 118 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					x = _tmp42_ + 1;
#line 536 "puzzle.c"
				}
#line 118 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp41_ = FALSE;
#line 118 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp43_ = x;
#line 118 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp44_ = size;
#line 118 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!(((guint) _tmp43_) <= _tmp44_)) {
#line 118 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					break;
#line 548 "puzzle.c"
				}
				{
					gint y = 0;
#line 120 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					y = 0;
#line 554 "puzzle.c"
					{
						gboolean _tmp45_ = FALSE;
#line 120 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						_tmp45_ = TRUE;
#line 120 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						while (TRUE) {
#line 561 "puzzle.c"
							gint _tmp47_ = 0;
							guint _tmp48_ = 0U;
							gint32 n = 0;
							gint32 _tmp49_ = 0;
							gint _tmp50_ = 0;
							gint _tmp56_ = 0;
							guint _tmp57_ = 0U;
#line 120 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!_tmp45_) {
#line 571 "puzzle.c"
								gint _tmp46_ = 0;
#line 120 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp46_ = y;
#line 120 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								y = _tmp46_ + 1;
#line 577 "puzzle.c"
							}
#line 120 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp45_ = FALSE;
#line 120 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp47_ = y;
#line 120 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp48_ = size;
#line 120 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!(((guint) _tmp47_) < _tmp48_)) {
#line 120 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								break;
#line 589 "puzzle.c"
							}
#line 122 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp49_ = g_random_int_range ((gint32) 0, (gint32) 10);
#line 122 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							n = _tmp49_;
#line 123 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp50_ = x;
#line 123 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if ((_tmp50_ - 1) >= 0) {
#line 599 "puzzle.c"
								Tile** _tmp51_ = NULL;
								gint _tmp51__length1 = 0;
								gint _tmp51__length2 = 0;
								gint _tmp52_ = 0;
								gint _tmp53_ = 0;
								Tile* _tmp54_ = NULL;
								gint32 _tmp55_ = 0;
#line 124 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp51_ = self->priv->board;
#line 124 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp51__length1 = self->priv->board_length1;
#line 124 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp51__length2 = self->priv->board_length2;
#line 124 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp52_ = x;
#line 124 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp53_ = y;
#line 124 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp54_ = _tmp51_[((_tmp52_ - 1) * _tmp51__length2) + _tmp53_];
#line 124 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp55_ = n;
#line 124 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp54_->east = (gint) _tmp55_;
#line 623 "puzzle.c"
							}
#line 125 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp56_ = x;
#line 125 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp57_ = size;
#line 125 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (((guint) _tmp56_) < _tmp57_) {
#line 631 "puzzle.c"
								Tile** _tmp58_ = NULL;
								gint _tmp58__length1 = 0;
								gint _tmp58__length2 = 0;
								gint _tmp59_ = 0;
								gint _tmp60_ = 0;
								Tile* _tmp61_ = NULL;
								gint32 _tmp62_ = 0;
#line 126 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp58_ = self->priv->board;
#line 126 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp58__length1 = self->priv->board_length1;
#line 126 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp58__length2 = self->priv->board_length2;
#line 126 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp59_ = x;
#line 126 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp60_ = y;
#line 126 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp61_ = _tmp58_[(_tmp59_ * _tmp58__length2) + _tmp60_];
#line 126 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp62_ = n;
#line 126 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp61_->west = (gint) _tmp62_;
#line 655 "puzzle.c"
							}
						}
					}
				}
			}
		}
	}
#line 131 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	tiles = NULL;
#line 665 "puzzle.c"
	{
		gint x = 0;
#line 132 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		x = 0;
#line 670 "puzzle.c"
		{
			gboolean _tmp63_ = FALSE;
#line 132 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp63_ = TRUE;
#line 132 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			while (TRUE) {
#line 677 "puzzle.c"
				gint _tmp65_ = 0;
				guint _tmp66_ = 0U;
#line 132 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!_tmp63_) {
#line 682 "puzzle.c"
					gint _tmp64_ = 0;
#line 132 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp64_ = x;
#line 132 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					x = _tmp64_ + 1;
#line 688 "puzzle.c"
				}
#line 132 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp63_ = FALSE;
#line 132 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp65_ = x;
#line 132 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp66_ = size;
#line 132 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!(((guint) _tmp65_) < _tmp66_)) {
#line 132 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					break;
#line 700 "puzzle.c"
				}
				{
					gint y = 0;
#line 134 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					y = 0;
#line 706 "puzzle.c"
					{
						gboolean _tmp67_ = FALSE;
#line 134 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						_tmp67_ = TRUE;
#line 134 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						while (TRUE) {
#line 713 "puzzle.c"
							gint _tmp69_ = 0;
							guint _tmp70_ = 0U;
							Tile** _tmp71_ = NULL;
							gint _tmp71__length1 = 0;
							gint _tmp71__length2 = 0;
							gint _tmp72_ = 0;
							gint _tmp73_ = 0;
							Tile* _tmp74_ = NULL;
							Tile* _tmp75_ = NULL;
							Tile** _tmp76_ = NULL;
							gint _tmp76__length1 = 0;
							gint _tmp76__length2 = 0;
							gint _tmp77_ = 0;
							gint _tmp78_ = 0;
							Tile* _tmp79_ = NULL;
#line 134 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!_tmp67_) {
#line 731 "puzzle.c"
								gint _tmp68_ = 0;
#line 134 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp68_ = y;
#line 134 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								y = _tmp68_ + 1;
#line 737 "puzzle.c"
							}
#line 134 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp67_ = FALSE;
#line 134 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp69_ = y;
#line 134 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp70_ = size;
#line 134 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!(((guint) _tmp69_) < _tmp70_)) {
#line 134 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								break;
#line 749 "puzzle.c"
							}
#line 136 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp71_ = self->priv->board;
#line 136 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp71__length1 = self->priv->board_length1;
#line 136 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp71__length2 = self->priv->board_length2;
#line 136 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp72_ = x;
#line 136 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp73_ = y;
#line 136 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp74_ = _tmp71_[(_tmp72_ * _tmp71__length2) + _tmp73_];
#line 136 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp75_ = _g_object_ref0 (_tmp74_);
#line 136 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							tiles = g_list_append (tiles, _tmp75_);
#line 137 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp76_ = self->priv->board;
#line 137 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp76__length1 = self->priv->board_length1;
#line 137 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp76__length2 = self->priv->board_length2;
#line 137 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp77_ = x;
#line 137 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp78_ = y;
#line 137 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_g_object_unref0 (_tmp76_[(_tmp77_ * _tmp76__length2) + _tmp78_]);
#line 137 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp76_[(_tmp77_ * _tmp76__length2) + _tmp78_] = NULL;
#line 137 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp79_ = _tmp76_[(_tmp77_ * _tmp76__length2) + _tmp78_];
#line 783 "puzzle.c"
						}
					}
				}
			}
		}
	}
	{
		gint x = 0;
#line 142 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		x = 0;
#line 794 "puzzle.c"
		{
			gboolean _tmp80_ = FALSE;
#line 142 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp80_ = TRUE;
#line 142 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			while (TRUE) {
#line 801 "puzzle.c"
				gint _tmp82_ = 0;
				guint _tmp83_ = 0U;
#line 142 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!_tmp80_) {
#line 806 "puzzle.c"
					gint _tmp81_ = 0;
#line 142 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp81_ = x;
#line 142 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					x = _tmp81_ + 1;
#line 812 "puzzle.c"
				}
#line 142 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp80_ = FALSE;
#line 142 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp82_ = x;
#line 142 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp83_ = size;
#line 142 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!(((guint) _tmp82_) < _tmp83_)) {
#line 142 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					break;
#line 824 "puzzle.c"
				}
				{
					gint y = 0;
#line 144 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					y = 0;
#line 830 "puzzle.c"
					{
						gboolean _tmp84_ = FALSE;
#line 144 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						_tmp84_ = TRUE;
#line 144 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						while (TRUE) {
#line 837 "puzzle.c"
							gint _tmp86_ = 0;
							guint _tmp87_ = 0U;
							gint32 n = 0;
							GList* _tmp88_ = NULL;
							guint _tmp89_ = 0U;
							gint32 _tmp90_ = 0;
							Tile* tile = NULL;
							GList* _tmp91_ = NULL;
							gint32 _tmp92_ = 0;
							gconstpointer _tmp93_ = NULL;
							Tile* _tmp94_ = NULL;
							Tile** _tmp95_ = NULL;
							gint _tmp95__length1 = 0;
							gint _tmp95__length2 = 0;
							gint _tmp96_ = 0;
							guint _tmp97_ = 0U;
							gint _tmp98_ = 0;
							Tile* _tmp99_ = NULL;
							Tile* _tmp100_ = NULL;
							Tile* _tmp101_ = NULL;
							Tile* _tmp102_ = NULL;
#line 144 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!_tmp84_) {
#line 861 "puzzle.c"
								gint _tmp85_ = 0;
#line 144 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp85_ = y;
#line 144 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								y = _tmp85_ + 1;
#line 867 "puzzle.c"
							}
#line 144 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp84_ = FALSE;
#line 144 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp86_ = y;
#line 144 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp87_ = size;
#line 144 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!(((guint) _tmp86_) < _tmp87_)) {
#line 144 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								break;
#line 879 "puzzle.c"
							}
#line 146 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp88_ = tiles;
#line 146 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp89_ = g_list_length (_tmp88_);
#line 146 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp90_ = g_random_int_range ((gint32) 0, (gint32) _tmp89_);
#line 146 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							n = _tmp90_;
#line 147 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp91_ = tiles;
#line 147 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp92_ = n;
#line 147 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp93_ = g_list_nth_data (_tmp91_, (guint) _tmp92_);
#line 147 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp94_ = _g_object_ref0 ((Tile*) _tmp93_);
#line 147 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							tile = _tmp94_;
#line 148 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp95_ = self->priv->board;
#line 148 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp95__length1 = self->priv->board_length1;
#line 148 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp95__length2 = self->priv->board_length2;
#line 148 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp96_ = x;
#line 148 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp97_ = size;
#line 148 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp98_ = y;
#line 148 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp99_ = tile;
#line 148 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp100_ = _g_object_ref0 (_tmp99_);
#line 148 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_g_object_unref0 (_tmp95_[((_tmp96_ + _tmp97_) * _tmp95__length2) + _tmp98_]);
#line 148 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp95_[((_tmp96_ + _tmp97_) * _tmp95__length2) + _tmp98_] = _tmp100_;
#line 148 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp101_ = _tmp95_[((_tmp96_ + _tmp97_) * _tmp95__length2) + _tmp98_];
#line 149 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp102_ = tile;
#line 149 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							tiles = g_list_remove (tiles, _tmp102_);
#line 144 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_g_object_unref0 (tile);
#line 927 "puzzle.c"
						}
					}
				}
			}
		}
	}
#line 153 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	puzzle_start_clock (self);
#line 98 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	__g_list_free__g_object_unref0_0 (tiles);
#line 98 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	return self;
#line 940 "puzzle.c"
}


Puzzle* puzzle_new (guint size) {
#line 98 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	return puzzle_construct (TYPE_PUZZLE, size);
#line 947 "puzzle.c"
}


Tile* puzzle_get_tile (Puzzle* self, guint x, guint y) {
	Tile* result = NULL;
	Tile** _tmp0_ = NULL;
	gint _tmp0__length1 = 0;
	gint _tmp0__length2 = 0;
	guint _tmp1_ = 0U;
	guint _tmp2_ = 0U;
	Tile* _tmp3_ = NULL;
	Tile* _tmp4_ = NULL;
#line 156 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 158 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0_ = self->priv->board;
#line 158 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0__length1 = self->priv->board_length1;
#line 158 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0__length2 = self->priv->board_length2;
#line 158 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp1_ = x;
#line 158 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp2_ = y;
#line 158 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp3_ = _tmp0_[(_tmp1_ * _tmp0__length2) + _tmp2_];
#line 158 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp4_ = _g_object_ref0 (_tmp3_);
#line 158 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	result = _tmp4_;
#line 158 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	return result;
#line 980 "puzzle.c"
}


void puzzle_get_tile_location (Puzzle* self, Tile* tile, guint* x, guint* y) {
	guint _vala_x = 0U;
	guint _vala_y = 0U;
	guint _tmp0_ = 0U;
#line 161 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_if_fail (self != NULL);
#line 161 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_if_fail (tile != NULL);
#line 163 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_vala_y = (guint) 0;
#line 163 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0_ = _vala_y;
#line 163 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_vala_x = _tmp0_;
#line 998 "puzzle.c"
	{
		gboolean _tmp1_ = FALSE;
#line 164 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_vala_x = (guint) 0;
#line 164 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp1_ = TRUE;
#line 164 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		while (TRUE) {
#line 1007 "puzzle.c"
			guint _tmp3_ = 0U;
			guint _tmp4_ = 0U;
			guint _tmp5_ = 0U;
#line 164 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			if (!_tmp1_) {
#line 1013 "puzzle.c"
				guint _tmp2_ = 0U;
#line 164 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp2_ = _vala_x;
#line 164 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_vala_x = _tmp2_ + 1;
#line 1019 "puzzle.c"
			}
#line 164 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp1_ = FALSE;
#line 164 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp3_ = _vala_x;
#line 164 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp4_ = puzzle_get_size (self);
#line 164 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp5_ = _tmp4_;
#line 164 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			if (!(_tmp3_ < (_tmp5_ * 2))) {
#line 164 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				break;
#line 1033 "puzzle.c"
			}
			{
				gboolean _tmp6_ = FALSE;
#line 165 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_vala_y = (guint) 0;
#line 165 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp6_ = TRUE;
#line 165 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				while (TRUE) {
#line 1043 "puzzle.c"
					guint _tmp8_ = 0U;
					guint _tmp9_ = 0U;
					guint _tmp10_ = 0U;
					Tile** _tmp11_ = NULL;
					gint _tmp11__length1 = 0;
					gint _tmp11__length2 = 0;
					guint _tmp12_ = 0U;
					guint _tmp13_ = 0U;
					Tile* _tmp14_ = NULL;
					Tile* _tmp15_ = NULL;
#line 165 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					if (!_tmp6_) {
#line 1056 "puzzle.c"
						guint _tmp7_ = 0U;
#line 165 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						_tmp7_ = _vala_y;
#line 165 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						_vala_y = _tmp7_ + 1;
#line 1062 "puzzle.c"
					}
#line 165 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp6_ = FALSE;
#line 165 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp8_ = _vala_y;
#line 165 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp9_ = puzzle_get_size (self);
#line 165 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp10_ = _tmp9_;
#line 165 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					if (!(_tmp8_ < _tmp10_)) {
#line 165 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						break;
#line 1076 "puzzle.c"
					}
#line 166 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp11_ = self->priv->board;
#line 166 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp11__length1 = self->priv->board_length1;
#line 166 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp11__length2 = self->priv->board_length2;
#line 166 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp12_ = _vala_x;
#line 166 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp13_ = _vala_y;
#line 166 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp14_ = _tmp11_[(_tmp12_ * _tmp11__length2) + _tmp13_];
#line 166 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp15_ = tile;
#line 166 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					if (_tmp14_ == _tmp15_) {
#line 167 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						if (x) {
#line 167 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							*x = _vala_x;
#line 1098 "puzzle.c"
						}
#line 167 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						if (y) {
#line 167 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							*y = _vala_y;
#line 1104 "puzzle.c"
						}
#line 167 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						return;
#line 1108 "puzzle.c"
					}
				}
			}
		}
	}
#line 161 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (x) {
#line 161 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		*x = _vala_x;
#line 1118 "puzzle.c"
	}
#line 161 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (y) {
#line 161 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		*y = _vala_y;
#line 1124 "puzzle.c"
	}
}


gboolean puzzle_tile_fits (Puzzle* self, guint x0, guint y0, guint x1, guint y1) {
	gboolean result = FALSE;
	Tile* tile = NULL;
	Tile** _tmp0_ = NULL;
	gint _tmp0__length1 = 0;
	gint _tmp0__length2 = 0;
	guint _tmp1_ = 0U;
	guint _tmp2_ = 0U;
	Tile* _tmp3_ = NULL;
	Tile* _tmp4_ = NULL;
	Tile* _tmp5_ = NULL;
	gboolean _tmp6_ = FALSE;
	gboolean _tmp7_ = FALSE;
	gboolean _tmp8_ = FALSE;
	guint _tmp9_ = 0U;
	gboolean _tmp26_ = FALSE;
	gboolean _tmp27_ = FALSE;
	gboolean _tmp28_ = FALSE;
	guint _tmp29_ = 0U;
	guint _tmp30_ = 0U;
	guint _tmp31_ = 0U;
	gboolean _tmp48_ = FALSE;
	gboolean _tmp49_ = FALSE;
	gboolean _tmp50_ = FALSE;
	guint _tmp51_ = 0U;
	gboolean _tmp68_ = FALSE;
	gboolean _tmp69_ = FALSE;
	gboolean _tmp70_ = FALSE;
	guint _tmp71_ = 0U;
	guint _tmp72_ = 0U;
	guint _tmp73_ = 0U;
#line 170 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 172 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0_ = self->priv->board;
#line 172 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0__length1 = self->priv->board_length1;
#line 172 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0__length2 = self->priv->board_length2;
#line 172 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp1_ = x0;
#line 172 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp2_ = y0;
#line 172 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp3_ = _tmp0_[(_tmp1_ * _tmp0__length2) + _tmp2_];
#line 172 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp4_ = _g_object_ref0 (_tmp3_);
#line 172 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	tile = _tmp4_;
#line 173 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp5_ = tile;
#line 173 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp5_ == NULL) {
#line 174 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		result = FALSE;
#line 174 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_g_object_unref0 (tile);
#line 174 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		return result;
#line 1188 "puzzle.c"
	}
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp9_ = x1;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp9_ > ((guint) 0)) {
#line 1194 "puzzle.c"
		gboolean _tmp10_ = FALSE;
		guint _tmp11_ = 0U;
		guint _tmp12_ = 0U;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp11_ = x1;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp12_ = x0;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		if ((_tmp11_ - 1) == _tmp12_) {
#line 1204 "puzzle.c"
			guint _tmp13_ = 0U;
			guint _tmp14_ = 0U;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp13_ = y1;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp14_ = y0;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp10_ = _tmp13_ == _tmp14_;
#line 1213 "puzzle.c"
		} else {
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp10_ = FALSE;
#line 1217 "puzzle.c"
		}
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp8_ = !_tmp10_;
#line 1221 "puzzle.c"
	} else {
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp8_ = FALSE;
#line 1225 "puzzle.c"
	}
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp8_) {
#line 1229 "puzzle.c"
		Tile** _tmp15_ = NULL;
		gint _tmp15__length1 = 0;
		gint _tmp15__length2 = 0;
		guint _tmp16_ = 0U;
		guint _tmp17_ = 0U;
		Tile* _tmp18_ = NULL;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp15_ = self->priv->board;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp15__length1 = self->priv->board_length1;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp15__length2 = self->priv->board_length2;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp16_ = x1;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp17_ = y1;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp18_ = _tmp15_[((_tmp16_ - 1) * _tmp15__length2) + _tmp17_];
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp7_ = _tmp18_ != NULL;
#line 1250 "puzzle.c"
	} else {
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp7_ = FALSE;
#line 1254 "puzzle.c"
	}
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp7_) {
#line 1258 "puzzle.c"
		Tile** _tmp19_ = NULL;
		gint _tmp19__length1 = 0;
		gint _tmp19__length2 = 0;
		guint _tmp20_ = 0U;
		guint _tmp21_ = 0U;
		Tile* _tmp22_ = NULL;
		gint _tmp23_ = 0;
		Tile* _tmp24_ = NULL;
		gint _tmp25_ = 0;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp19_ = self->priv->board;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp19__length1 = self->priv->board_length1;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp19__length2 = self->priv->board_length2;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp20_ = x1;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp21_ = y1;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp22_ = _tmp19_[((_tmp20_ - 1) * _tmp19__length2) + _tmp21_];
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp23_ = _tmp22_->east;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp24_ = tile;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp25_ = _tmp24_->west;
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp6_ = _tmp23_ != _tmp25_;
#line 1288 "puzzle.c"
	} else {
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp6_ = FALSE;
#line 1292 "puzzle.c"
	}
#line 176 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp6_) {
#line 177 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		result = FALSE;
#line 177 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_g_object_unref0 (tile);
#line 177 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		return result;
#line 1302 "puzzle.c"
	}
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp29_ = x1;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp30_ = puzzle_get_size (self);
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp31_ = _tmp30_;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp29_ < (_tmp31_ - 1)) {
#line 1312 "puzzle.c"
		gboolean _tmp32_ = FALSE;
		guint _tmp33_ = 0U;
		guint _tmp34_ = 0U;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp33_ = x1;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp34_ = x0;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		if ((_tmp33_ + 1) == _tmp34_) {
#line 1322 "puzzle.c"
			guint _tmp35_ = 0U;
			guint _tmp36_ = 0U;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp35_ = y1;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp36_ = y0;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp32_ = _tmp35_ == _tmp36_;
#line 1331 "puzzle.c"
		} else {
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp32_ = FALSE;
#line 1335 "puzzle.c"
		}
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp28_ = !_tmp32_;
#line 1339 "puzzle.c"
	} else {
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp28_ = FALSE;
#line 1343 "puzzle.c"
	}
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp28_) {
#line 1347 "puzzle.c"
		Tile** _tmp37_ = NULL;
		gint _tmp37__length1 = 0;
		gint _tmp37__length2 = 0;
		guint _tmp38_ = 0U;
		guint _tmp39_ = 0U;
		Tile* _tmp40_ = NULL;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp37_ = self->priv->board;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp37__length1 = self->priv->board_length1;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp37__length2 = self->priv->board_length2;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp38_ = x1;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp39_ = y1;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp40_ = _tmp37_[((_tmp38_ + 1) * _tmp37__length2) + _tmp39_];
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp27_ = _tmp40_ != NULL;
#line 1368 "puzzle.c"
	} else {
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp27_ = FALSE;
#line 1372 "puzzle.c"
	}
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp27_) {
#line 1376 "puzzle.c"
		Tile** _tmp41_ = NULL;
		gint _tmp41__length1 = 0;
		gint _tmp41__length2 = 0;
		guint _tmp42_ = 0U;
		guint _tmp43_ = 0U;
		Tile* _tmp44_ = NULL;
		gint _tmp45_ = 0;
		Tile* _tmp46_ = NULL;
		gint _tmp47_ = 0;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp41_ = self->priv->board;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp41__length1 = self->priv->board_length1;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp41__length2 = self->priv->board_length2;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp42_ = x1;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp43_ = y1;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp44_ = _tmp41_[((_tmp42_ + 1) * _tmp41__length2) + _tmp43_];
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp45_ = _tmp44_->west;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp46_ = tile;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp47_ = _tmp46_->east;
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp26_ = _tmp45_ != _tmp47_;
#line 1406 "puzzle.c"
	} else {
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp26_ = FALSE;
#line 1410 "puzzle.c"
	}
#line 178 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp26_) {
#line 179 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		result = FALSE;
#line 179 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_g_object_unref0 (tile);
#line 179 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		return result;
#line 1420 "puzzle.c"
	}
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp51_ = y1;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp51_ > ((guint) 0)) {
#line 1426 "puzzle.c"
		gboolean _tmp52_ = FALSE;
		guint _tmp53_ = 0U;
		guint _tmp54_ = 0U;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp53_ = x1;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp54_ = x0;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		if (_tmp53_ == _tmp54_) {
#line 1436 "puzzle.c"
			guint _tmp55_ = 0U;
			guint _tmp56_ = 0U;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp55_ = y1;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp56_ = y0;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp52_ = (_tmp55_ - 1) == _tmp56_;
#line 1445 "puzzle.c"
		} else {
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp52_ = FALSE;
#line 1449 "puzzle.c"
		}
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp50_ = !_tmp52_;
#line 1453 "puzzle.c"
	} else {
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp50_ = FALSE;
#line 1457 "puzzle.c"
	}
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp50_) {
#line 1461 "puzzle.c"
		Tile** _tmp57_ = NULL;
		gint _tmp57__length1 = 0;
		gint _tmp57__length2 = 0;
		guint _tmp58_ = 0U;
		guint _tmp59_ = 0U;
		Tile* _tmp60_ = NULL;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp57_ = self->priv->board;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp57__length1 = self->priv->board_length1;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp57__length2 = self->priv->board_length2;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp58_ = x1;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp59_ = y1;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp60_ = _tmp57_[(_tmp58_ * _tmp57__length2) + (_tmp59_ - 1)];
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp49_ = _tmp60_ != NULL;
#line 1482 "puzzle.c"
	} else {
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp49_ = FALSE;
#line 1486 "puzzle.c"
	}
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp49_) {
#line 1490 "puzzle.c"
		Tile** _tmp61_ = NULL;
		gint _tmp61__length1 = 0;
		gint _tmp61__length2 = 0;
		guint _tmp62_ = 0U;
		guint _tmp63_ = 0U;
		Tile* _tmp64_ = NULL;
		gint _tmp65_ = 0;
		Tile* _tmp66_ = NULL;
		gint _tmp67_ = 0;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp61_ = self->priv->board;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp61__length1 = self->priv->board_length1;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp61__length2 = self->priv->board_length2;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp62_ = x1;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp63_ = y1;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp64_ = _tmp61_[(_tmp62_ * _tmp61__length2) + (_tmp63_ - 1)];
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp65_ = _tmp64_->south;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp66_ = tile;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp67_ = _tmp66_->north;
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp48_ = _tmp65_ != _tmp67_;
#line 1520 "puzzle.c"
	} else {
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp48_ = FALSE;
#line 1524 "puzzle.c"
	}
#line 180 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp48_) {
#line 181 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		result = FALSE;
#line 181 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_g_object_unref0 (tile);
#line 181 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		return result;
#line 1534 "puzzle.c"
	}
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp71_ = y1;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp72_ = puzzle_get_size (self);
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp73_ = _tmp72_;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp71_ < (_tmp73_ - 1)) {
#line 1544 "puzzle.c"
		gboolean _tmp74_ = FALSE;
		guint _tmp75_ = 0U;
		guint _tmp76_ = 0U;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp75_ = x1;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp76_ = x0;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		if (_tmp75_ == _tmp76_) {
#line 1554 "puzzle.c"
			guint _tmp77_ = 0U;
			guint _tmp78_ = 0U;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp77_ = y1;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp78_ = y0;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp74_ = (_tmp77_ + 1) == _tmp78_;
#line 1563 "puzzle.c"
		} else {
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp74_ = FALSE;
#line 1567 "puzzle.c"
		}
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp70_ = !_tmp74_;
#line 1571 "puzzle.c"
	} else {
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp70_ = FALSE;
#line 1575 "puzzle.c"
	}
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp70_) {
#line 1579 "puzzle.c"
		Tile** _tmp79_ = NULL;
		gint _tmp79__length1 = 0;
		gint _tmp79__length2 = 0;
		guint _tmp80_ = 0U;
		guint _tmp81_ = 0U;
		Tile* _tmp82_ = NULL;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp79_ = self->priv->board;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp79__length1 = self->priv->board_length1;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp79__length2 = self->priv->board_length2;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp80_ = x1;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp81_ = y1;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp82_ = _tmp79_[(_tmp80_ * _tmp79__length2) + (_tmp81_ + 1)];
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp69_ = _tmp82_ != NULL;
#line 1600 "puzzle.c"
	} else {
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp69_ = FALSE;
#line 1604 "puzzle.c"
	}
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp69_) {
#line 1608 "puzzle.c"
		Tile** _tmp83_ = NULL;
		gint _tmp83__length1 = 0;
		gint _tmp83__length2 = 0;
		guint _tmp84_ = 0U;
		guint _tmp85_ = 0U;
		Tile* _tmp86_ = NULL;
		gint _tmp87_ = 0;
		Tile* _tmp88_ = NULL;
		gint _tmp89_ = 0;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp83_ = self->priv->board;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp83__length1 = self->priv->board_length1;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp83__length2 = self->priv->board_length2;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp84_ = x1;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp85_ = y1;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp86_ = _tmp83_[(_tmp84_ * _tmp83__length2) + (_tmp85_ + 1)];
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp87_ = _tmp86_->north;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp88_ = tile;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp89_ = _tmp88_->south;
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp68_ = _tmp87_ != _tmp89_;
#line 1638 "puzzle.c"
	} else {
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp68_ = FALSE;
#line 1642 "puzzle.c"
	}
#line 182 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp68_) {
#line 183 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		result = FALSE;
#line 183 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_g_object_unref0 (tile);
#line 183 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		return result;
#line 1652 "puzzle.c"
	}
#line 185 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	result = TRUE;
#line 185 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_g_object_unref0 (tile);
#line 185 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	return result;
#line 1660 "puzzle.c"
}


gboolean puzzle_can_switch (Puzzle* self, guint x0, guint y0, guint x1, guint y1) {
	gboolean result = FALSE;
	gboolean _tmp0_ = FALSE;
	guint _tmp1_ = 0U;
	guint _tmp2_ = 0U;
	Tile* t0 = NULL;
	Tile** _tmp5_ = NULL;
	gint _tmp5__length1 = 0;
	gint _tmp5__length2 = 0;
	guint _tmp6_ = 0U;
	guint _tmp7_ = 0U;
	Tile* _tmp8_ = NULL;
	Tile* _tmp9_ = NULL;
	Tile* t1 = NULL;
	Tile** _tmp10_ = NULL;
	gint _tmp10__length1 = 0;
	gint _tmp10__length2 = 0;
	guint _tmp11_ = 0U;
	guint _tmp12_ = 0U;
	Tile* _tmp13_ = NULL;
	Tile* _tmp14_ = NULL;
	gboolean _tmp15_ = FALSE;
	Tile* _tmp16_ = NULL;
	gboolean _tmp18_ = FALSE;
	gboolean _tmp19_ = FALSE;
	Tile* _tmp20_ = NULL;
	gboolean _tmp29_ = FALSE;
	gboolean _tmp30_ = FALSE;
	Tile* _tmp31_ = NULL;
#line 188 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 190 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp1_ = x0;
#line 190 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp2_ = x1;
#line 190 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp1_ == _tmp2_) {
#line 1701 "puzzle.c"
		guint _tmp3_ = 0U;
		guint _tmp4_ = 0U;
#line 190 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp3_ = y0;
#line 190 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp4_ = y1;
#line 190 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp0_ = _tmp3_ == _tmp4_;
#line 1710 "puzzle.c"
	} else {
#line 190 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp0_ = FALSE;
#line 1714 "puzzle.c"
	}
#line 190 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp0_) {
#line 191 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		result = FALSE;
#line 191 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		return result;
#line 1722 "puzzle.c"
	}
#line 193 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp5_ = self->priv->board;
#line 193 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp5__length1 = self->priv->board_length1;
#line 193 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp5__length2 = self->priv->board_length2;
#line 193 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp6_ = x0;
#line 193 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp7_ = y0;
#line 193 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp8_ = _tmp5_[(_tmp6_ * _tmp5__length2) + _tmp7_];
#line 193 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp9_ = _g_object_ref0 (_tmp8_);
#line 193 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	t0 = _tmp9_;
#line 194 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp10_ = self->priv->board;
#line 194 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp10__length1 = self->priv->board_length1;
#line 194 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp10__length2 = self->priv->board_length2;
#line 194 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp11_ = x1;
#line 194 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp12_ = y1;
#line 194 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp13_ = _tmp10_[(_tmp11_ * _tmp10__length2) + _tmp12_];
#line 194 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp14_ = _g_object_ref0 (_tmp13_);
#line 194 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	t1 = _tmp14_;
#line 197 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp16_ = t0;
#line 197 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp16_ == NULL) {
#line 1760 "puzzle.c"
		Tile* _tmp17_ = NULL;
#line 197 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp17_ = t1;
#line 197 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp15_ = _tmp17_ == NULL;
#line 1766 "puzzle.c"
	} else {
#line 197 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp15_ = FALSE;
#line 1770 "puzzle.c"
	}
#line 197 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp15_) {
#line 198 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		result = FALSE;
#line 198 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_g_object_unref0 (t1);
#line 198 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_g_object_unref0 (t0);
#line 198 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		return result;
#line 1782 "puzzle.c"
	}
#line 201 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp20_ = t0;
#line 201 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp20_ != NULL) {
#line 1788 "puzzle.c"
		guint _tmp21_ = 0U;
		guint _tmp22_ = 0U;
		guint _tmp23_ = 0U;
#line 201 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp21_ = x1;
#line 201 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp22_ = puzzle_get_size (self);
#line 201 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp23_ = _tmp22_;
#line 201 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp19_ = _tmp21_ < _tmp23_;
#line 1800 "puzzle.c"
	} else {
#line 201 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp19_ = FALSE;
#line 1804 "puzzle.c"
	}
#line 201 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp19_) {
#line 1808 "puzzle.c"
		guint _tmp24_ = 0U;
		guint _tmp25_ = 0U;
		guint _tmp26_ = 0U;
		guint _tmp27_ = 0U;
		gboolean _tmp28_ = FALSE;
#line 201 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp24_ = x0;
#line 201 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp25_ = y0;
#line 201 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp26_ = x1;
#line 201 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp27_ = y1;
#line 201 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp28_ = puzzle_tile_fits (self, _tmp24_, _tmp25_, _tmp26_, _tmp27_);
#line 201 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp18_ = !_tmp28_;
#line 1826 "puzzle.c"
	} else {
#line 201 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp18_ = FALSE;
#line 1830 "puzzle.c"
	}
#line 201 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp18_) {
#line 202 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		result = FALSE;
#line 202 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_g_object_unref0 (t1);
#line 202 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_g_object_unref0 (t0);
#line 202 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		return result;
#line 1842 "puzzle.c"
	}
#line 203 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp31_ = t1;
#line 203 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp31_ != NULL) {
#line 1848 "puzzle.c"
		guint _tmp32_ = 0U;
		guint _tmp33_ = 0U;
		guint _tmp34_ = 0U;
#line 203 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp32_ = x0;
#line 203 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp33_ = puzzle_get_size (self);
#line 203 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp34_ = _tmp33_;
#line 203 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp30_ = _tmp32_ < _tmp34_;
#line 1860 "puzzle.c"
	} else {
#line 203 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp30_ = FALSE;
#line 1864 "puzzle.c"
	}
#line 203 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp30_) {
#line 1868 "puzzle.c"
		guint _tmp35_ = 0U;
		guint _tmp36_ = 0U;
		guint _tmp37_ = 0U;
		guint _tmp38_ = 0U;
		gboolean _tmp39_ = FALSE;
#line 203 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp35_ = x1;
#line 203 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp36_ = y1;
#line 203 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp37_ = x0;
#line 203 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp38_ = y0;
#line 203 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp39_ = puzzle_tile_fits (self, _tmp35_, _tmp36_, _tmp37_, _tmp38_);
#line 203 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp29_ = !_tmp39_;
#line 1886 "puzzle.c"
	} else {
#line 203 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp29_ = FALSE;
#line 1890 "puzzle.c"
	}
#line 203 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp29_) {
#line 204 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		result = FALSE;
#line 204 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_g_object_unref0 (t1);
#line 204 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_g_object_unref0 (t0);
#line 204 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		return result;
#line 1902 "puzzle.c"
	}
#line 206 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	result = TRUE;
#line 206 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_g_object_unref0 (t1);
#line 206 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_g_object_unref0 (t0);
#line 206 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	return result;
#line 1912 "puzzle.c"
}


void puzzle_switch_tiles (Puzzle* self, guint x0, guint y0, guint x1, guint y1) {
	gboolean _tmp0_ = FALSE;
	guint _tmp1_ = 0U;
	guint _tmp2_ = 0U;
	Tile* t0 = NULL;
	Tile** _tmp5_ = NULL;
	gint _tmp5__length1 = 0;
	gint _tmp5__length2 = 0;
	guint _tmp6_ = 0U;
	guint _tmp7_ = 0U;
	Tile* _tmp8_ = NULL;
	Tile* _tmp9_ = NULL;
	Tile* t1 = NULL;
	Tile** _tmp10_ = NULL;
	gint _tmp10__length1 = 0;
	gint _tmp10__length2 = 0;
	guint _tmp11_ = 0U;
	guint _tmp12_ = 0U;
	Tile* _tmp13_ = NULL;
	Tile* _tmp14_ = NULL;
	Tile** _tmp15_ = NULL;
	gint _tmp15__length1 = 0;
	gint _tmp15__length2 = 0;
	guint _tmp16_ = 0U;
	guint _tmp17_ = 0U;
	Tile* _tmp18_ = NULL;
	Tile* _tmp19_ = NULL;
	Tile* _tmp20_ = NULL;
	Tile** _tmp21_ = NULL;
	gint _tmp21__length1 = 0;
	gint _tmp21__length2 = 0;
	guint _tmp22_ = 0U;
	guint _tmp23_ = 0U;
	Tile* _tmp24_ = NULL;
	Tile* _tmp25_ = NULL;
	Tile* _tmp26_ = NULL;
	Tile* _tmp27_ = NULL;
	Tile* _tmp31_ = NULL;
	gboolean _tmp35_ = FALSE;
	gboolean _tmp36_ = FALSE;
#line 209 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_if_fail (self != NULL);
#line 211 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp1_ = x0;
#line 211 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp2_ = x1;
#line 211 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp1_ == _tmp2_) {
#line 1964 "puzzle.c"
		guint _tmp3_ = 0U;
		guint _tmp4_ = 0U;
#line 211 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp3_ = y0;
#line 211 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp4_ = y1;
#line 211 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp0_ = _tmp3_ == _tmp4_;
#line 1973 "puzzle.c"
	} else {
#line 211 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp0_ = FALSE;
#line 1977 "puzzle.c"
	}
#line 211 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp0_) {
#line 212 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		return;
#line 1983 "puzzle.c"
	}
#line 214 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp5_ = self->priv->board;
#line 214 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp5__length1 = self->priv->board_length1;
#line 214 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp5__length2 = self->priv->board_length2;
#line 214 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp6_ = x0;
#line 214 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp7_ = y0;
#line 214 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp8_ = _tmp5_[(_tmp6_ * _tmp5__length2) + _tmp7_];
#line 214 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp9_ = _g_object_ref0 (_tmp8_);
#line 214 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	t0 = _tmp9_;
#line 215 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp10_ = self->priv->board;
#line 215 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp10__length1 = self->priv->board_length1;
#line 215 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp10__length2 = self->priv->board_length2;
#line 215 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp11_ = x1;
#line 215 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp12_ = y1;
#line 215 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp13_ = _tmp10_[(_tmp11_ * _tmp10__length2) + _tmp12_];
#line 215 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp14_ = _g_object_ref0 (_tmp13_);
#line 215 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	t1 = _tmp14_;
#line 216 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp15_ = self->priv->board;
#line 216 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp15__length1 = self->priv->board_length1;
#line 216 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp15__length2 = self->priv->board_length2;
#line 216 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp16_ = x0;
#line 216 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp17_ = y0;
#line 216 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp18_ = t1;
#line 216 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp19_ = _g_object_ref0 (_tmp18_);
#line 216 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_g_object_unref0 (_tmp15_[(_tmp16_ * _tmp15__length2) + _tmp17_]);
#line 216 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp15_[(_tmp16_ * _tmp15__length2) + _tmp17_] = _tmp19_;
#line 216 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp20_ = _tmp15_[(_tmp16_ * _tmp15__length2) + _tmp17_];
#line 217 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp21_ = self->priv->board;
#line 217 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp21__length1 = self->priv->board_length1;
#line 217 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp21__length2 = self->priv->board_length2;
#line 217 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp22_ = x1;
#line 217 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp23_ = y1;
#line 217 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp24_ = t0;
#line 217 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp25_ = _g_object_ref0 (_tmp24_);
#line 217 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_g_object_unref0 (_tmp21_[(_tmp22_ * _tmp21__length2) + _tmp23_]);
#line 217 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp21_[(_tmp22_ * _tmp21__length2) + _tmp23_] = _tmp25_;
#line 217 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp26_ = _tmp21_[(_tmp22_ * _tmp21__length2) + _tmp23_];
#line 219 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp27_ = t0;
#line 219 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp27_ != NULL) {
#line 2061 "puzzle.c"
		Tile* _tmp28_ = NULL;
		guint _tmp29_ = 0U;
		guint _tmp30_ = 0U;
#line 220 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp28_ = t0;
#line 220 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp29_ = x1;
#line 220 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp30_ = y1;
#line 220 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		g_signal_emit_by_name (self, "tile-moved", _tmp28_, _tmp29_, _tmp30_);
#line 2073 "puzzle.c"
	}
#line 221 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp31_ = t1;
#line 221 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp31_ != NULL) {
#line 2079 "puzzle.c"
		Tile* _tmp32_ = NULL;
		guint _tmp33_ = 0U;
		guint _tmp34_ = 0U;
#line 222 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp32_ = t1;
#line 222 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp33_ = x0;
#line 222 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp34_ = y0;
#line 222 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		g_signal_emit_by_name (self, "tile-moved", _tmp32_, _tmp33_, _tmp34_);
#line 2091 "puzzle.c"
	}
#line 224 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp35_ = puzzle_get_is_solved (self);
#line 224 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp36_ = _tmp35_;
#line 224 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp36_) {
#line 226 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		puzzle_stop_clock (self);
#line 227 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		g_signal_emit_by_name (self, "solved");
#line 2103 "puzzle.c"
	}
#line 209 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_g_object_unref0 (t1);
#line 209 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_g_object_unref0 (t0);
#line 2109 "puzzle.c"
}


void puzzle_move_up (Puzzle* self) {
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
#line 242 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_if_fail (self != NULL);
#line 244 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0_ = puzzle_get_can_move_up (self);
#line 244 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp1_ = _tmp0_;
#line 244 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (!_tmp1_) {
#line 245 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		return;
#line 2126 "puzzle.c"
	}
	{
		gint y = 0;
#line 246 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		y = 1;
#line 2132 "puzzle.c"
		{
			gboolean _tmp2_ = FALSE;
#line 246 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp2_ = TRUE;
#line 246 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			while (TRUE) {
#line 2139 "puzzle.c"
				gint _tmp4_ = 0;
				guint _tmp5_ = 0U;
				guint _tmp6_ = 0U;
#line 246 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!_tmp2_) {
#line 2145 "puzzle.c"
					gint _tmp3_ = 0;
#line 246 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp3_ = y;
#line 246 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					y = _tmp3_ + 1;
#line 2151 "puzzle.c"
				}
#line 246 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp2_ = FALSE;
#line 246 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp4_ = y;
#line 246 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp5_ = puzzle_get_size (self);
#line 246 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp6_ = _tmp5_;
#line 246 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!(((guint) _tmp4_) < _tmp6_)) {
#line 246 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					break;
#line 2165 "puzzle.c"
				}
				{
					gint x = 0;
#line 247 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					x = 0;
#line 2171 "puzzle.c"
					{
						gboolean _tmp7_ = FALSE;
#line 247 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						_tmp7_ = TRUE;
#line 247 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						while (TRUE) {
#line 2178 "puzzle.c"
							gint _tmp9_ = 0;
							guint _tmp10_ = 0U;
							guint _tmp11_ = 0U;
							gint _tmp12_ = 0;
							gint _tmp13_ = 0;
							gint _tmp14_ = 0;
							gint _tmp15_ = 0;
#line 247 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!_tmp7_) {
#line 2188 "puzzle.c"
								gint _tmp8_ = 0;
#line 247 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp8_ = x;
#line 247 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								x = _tmp8_ + 1;
#line 2194 "puzzle.c"
							}
#line 247 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp7_ = FALSE;
#line 247 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp9_ = x;
#line 247 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp10_ = puzzle_get_size (self);
#line 247 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp11_ = _tmp10_;
#line 247 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!(((guint) _tmp9_) < _tmp11_)) {
#line 247 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								break;
#line 2208 "puzzle.c"
							}
#line 248 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp12_ = x;
#line 248 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp13_ = y;
#line 248 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp14_ = x;
#line 248 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp15_ = y;
#line 248 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							puzzle_switch_tiles (self, (guint) _tmp12_, (guint) _tmp13_, (guint) _tmp14_, (guint) (_tmp15_ - 1));
#line 2220 "puzzle.c"
						}
					}
				}
			}
		}
	}
}


void puzzle_move_down (Puzzle* self) {
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
#line 262 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_if_fail (self != NULL);
#line 264 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0_ = puzzle_get_can_move_down (self);
#line 264 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp1_ = _tmp0_;
#line 264 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (!_tmp1_) {
#line 265 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		return;
#line 2243 "puzzle.c"
	}
	{
		gint y = 0;
		guint _tmp2_ = 0U;
		guint _tmp3_ = 0U;
#line 266 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp2_ = puzzle_get_size (self);
#line 266 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp3_ = _tmp2_;
#line 266 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		y = ((gint) _tmp3_) - 2;
#line 2255 "puzzle.c"
		{
			gboolean _tmp4_ = FALSE;
#line 266 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp4_ = TRUE;
#line 266 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			while (TRUE) {
#line 2262 "puzzle.c"
				gint _tmp6_ = 0;
#line 266 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!_tmp4_) {
#line 2266 "puzzle.c"
					gint _tmp5_ = 0;
#line 266 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp5_ = y;
#line 266 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					y = _tmp5_ - 1;
#line 2272 "puzzle.c"
				}
#line 266 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp4_ = FALSE;
#line 266 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp6_ = y;
#line 266 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!(_tmp6_ >= 0)) {
#line 266 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					break;
#line 2282 "puzzle.c"
				}
				{
					gint x = 0;
#line 267 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					x = 0;
#line 2288 "puzzle.c"
					{
						gboolean _tmp7_ = FALSE;
#line 267 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						_tmp7_ = TRUE;
#line 267 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						while (TRUE) {
#line 2295 "puzzle.c"
							gint _tmp9_ = 0;
							guint _tmp10_ = 0U;
							guint _tmp11_ = 0U;
							gint _tmp12_ = 0;
							gint _tmp13_ = 0;
							gint _tmp14_ = 0;
							gint _tmp15_ = 0;
#line 267 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!_tmp7_) {
#line 2305 "puzzle.c"
								gint _tmp8_ = 0;
#line 267 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp8_ = x;
#line 267 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								x = _tmp8_ + 1;
#line 2311 "puzzle.c"
							}
#line 267 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp7_ = FALSE;
#line 267 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp9_ = x;
#line 267 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp10_ = puzzle_get_size (self);
#line 267 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp11_ = _tmp10_;
#line 267 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!(((guint) _tmp9_) < _tmp11_)) {
#line 267 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								break;
#line 2325 "puzzle.c"
							}
#line 268 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp12_ = x;
#line 268 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp13_ = y;
#line 268 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp14_ = x;
#line 268 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp15_ = y;
#line 268 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							puzzle_switch_tiles (self, (guint) _tmp12_, (guint) _tmp13_, (guint) _tmp14_, (guint) (_tmp15_ + 1));
#line 2337 "puzzle.c"
						}
					}
				}
			}
		}
	}
}


void puzzle_move_left (Puzzle* self) {
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
#line 282 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_if_fail (self != NULL);
#line 284 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0_ = puzzle_get_can_move_left (self);
#line 284 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp1_ = _tmp0_;
#line 284 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (!_tmp1_) {
#line 285 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		return;
#line 2360 "puzzle.c"
	}
	{
		gint x = 0;
#line 286 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		x = 1;
#line 2366 "puzzle.c"
		{
			gboolean _tmp2_ = FALSE;
#line 286 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp2_ = TRUE;
#line 286 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			while (TRUE) {
#line 2373 "puzzle.c"
				gint _tmp4_ = 0;
				guint _tmp5_ = 0U;
				guint _tmp6_ = 0U;
#line 286 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!_tmp2_) {
#line 2379 "puzzle.c"
					gint _tmp3_ = 0;
#line 286 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp3_ = x;
#line 286 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					x = _tmp3_ + 1;
#line 2385 "puzzle.c"
				}
#line 286 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp2_ = FALSE;
#line 286 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp4_ = x;
#line 286 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp5_ = puzzle_get_size (self);
#line 286 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp6_ = _tmp5_;
#line 286 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!(((guint) _tmp4_) < _tmp6_)) {
#line 286 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					break;
#line 2399 "puzzle.c"
				}
				{
					gint y = 0;
#line 287 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					y = 0;
#line 2405 "puzzle.c"
					{
						gboolean _tmp7_ = FALSE;
#line 287 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						_tmp7_ = TRUE;
#line 287 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						while (TRUE) {
#line 2412 "puzzle.c"
							gint _tmp9_ = 0;
							guint _tmp10_ = 0U;
							guint _tmp11_ = 0U;
							gint _tmp12_ = 0;
							gint _tmp13_ = 0;
							gint _tmp14_ = 0;
							gint _tmp15_ = 0;
#line 287 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!_tmp7_) {
#line 2422 "puzzle.c"
								gint _tmp8_ = 0;
#line 287 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp8_ = y;
#line 287 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								y = _tmp8_ + 1;
#line 2428 "puzzle.c"
							}
#line 287 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp7_ = FALSE;
#line 287 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp9_ = y;
#line 287 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp10_ = puzzle_get_size (self);
#line 287 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp11_ = _tmp10_;
#line 287 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!(((guint) _tmp9_) < _tmp11_)) {
#line 287 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								break;
#line 2442 "puzzle.c"
							}
#line 288 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp12_ = x;
#line 288 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp13_ = y;
#line 288 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp14_ = x;
#line 288 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp15_ = y;
#line 288 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							puzzle_switch_tiles (self, (guint) _tmp12_, (guint) _tmp13_, (guint) (_tmp14_ - 1), (guint) _tmp15_);
#line 2454 "puzzle.c"
						}
					}
				}
			}
		}
	}
}


void puzzle_move_right (Puzzle* self) {
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
#line 302 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_if_fail (self != NULL);
#line 304 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0_ = puzzle_get_can_move_right (self);
#line 304 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp1_ = _tmp0_;
#line 304 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (!_tmp1_) {
#line 305 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		return;
#line 2477 "puzzle.c"
	}
	{
		gint x = 0;
		guint _tmp2_ = 0U;
		guint _tmp3_ = 0U;
#line 306 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp2_ = puzzle_get_size (self);
#line 306 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp3_ = _tmp2_;
#line 306 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		x = ((gint) _tmp3_) - 2;
#line 2489 "puzzle.c"
		{
			gboolean _tmp4_ = FALSE;
#line 306 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp4_ = TRUE;
#line 306 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			while (TRUE) {
#line 2496 "puzzle.c"
				gint _tmp6_ = 0;
#line 306 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!_tmp4_) {
#line 2500 "puzzle.c"
					gint _tmp5_ = 0;
#line 306 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp5_ = x;
#line 306 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					x = _tmp5_ - 1;
#line 2506 "puzzle.c"
				}
#line 306 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp4_ = FALSE;
#line 306 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp6_ = x;
#line 306 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!(_tmp6_ >= 0)) {
#line 306 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					break;
#line 2516 "puzzle.c"
				}
				{
					gint y = 0;
#line 307 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					y = 0;
#line 2522 "puzzle.c"
					{
						gboolean _tmp7_ = FALSE;
#line 307 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						_tmp7_ = TRUE;
#line 307 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						while (TRUE) {
#line 2529 "puzzle.c"
							gint _tmp9_ = 0;
							guint _tmp10_ = 0U;
							guint _tmp11_ = 0U;
							gint _tmp12_ = 0;
							gint _tmp13_ = 0;
							gint _tmp14_ = 0;
							gint _tmp15_ = 0;
#line 307 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!_tmp7_) {
#line 2539 "puzzle.c"
								gint _tmp8_ = 0;
#line 307 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp8_ = y;
#line 307 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								y = _tmp8_ + 1;
#line 2545 "puzzle.c"
							}
#line 307 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp7_ = FALSE;
#line 307 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp9_ = y;
#line 307 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp10_ = puzzle_get_size (self);
#line 307 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp11_ = _tmp10_;
#line 307 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!(((guint) _tmp9_) < _tmp11_)) {
#line 307 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								break;
#line 2559 "puzzle.c"
							}
#line 308 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp12_ = x;
#line 308 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp13_ = y;
#line 308 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp14_ = x;
#line 308 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp15_ = y;
#line 308 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							puzzle_switch_tiles (self, (guint) _tmp12_, (guint) _tmp13_, (guint) (_tmp14_ + 1), (guint) _tmp15_);
#line 2571 "puzzle.c"
						}
					}
				}
			}
		}
	}
}


void puzzle_solve (Puzzle* self) {
	GList* wrong_tiles = NULL;
	GList* _tmp30_ = NULL;
#line 311 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_if_fail (self != NULL);
#line 313 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	wrong_tiles = NULL;
#line 2588 "puzzle.c"
	{
		gint x = 0;
#line 314 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		x = 0;
#line 2593 "puzzle.c"
		{
			gboolean _tmp0_ = FALSE;
#line 314 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp0_ = TRUE;
#line 314 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			while (TRUE) {
#line 2600 "puzzle.c"
				gint _tmp2_ = 0;
				guint _tmp3_ = 0U;
				guint _tmp4_ = 0U;
#line 314 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!_tmp0_) {
#line 2606 "puzzle.c"
					gint _tmp1_ = 0;
#line 314 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp1_ = x;
#line 314 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					x = _tmp1_ + 1;
#line 2612 "puzzle.c"
				}
#line 314 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp0_ = FALSE;
#line 314 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp2_ = x;
#line 314 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp3_ = puzzle_get_size (self);
#line 314 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp4_ = _tmp3_;
#line 314 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!(((guint) _tmp2_) < (_tmp4_ * 2))) {
#line 314 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					break;
#line 2626 "puzzle.c"
				}
				{
					gint y = 0;
#line 316 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					y = 0;
#line 2632 "puzzle.c"
					{
						gboolean _tmp5_ = FALSE;
#line 316 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						_tmp5_ = TRUE;
#line 316 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						while (TRUE) {
#line 2639 "puzzle.c"
							gint _tmp7_ = 0;
							guint _tmp8_ = 0U;
							guint _tmp9_ = 0U;
							Tile* tile = NULL;
							Tile** _tmp10_ = NULL;
							gint _tmp10__length1 = 0;
							gint _tmp10__length2 = 0;
							gint _tmp11_ = 0;
							gint _tmp12_ = 0;
							Tile* _tmp13_ = NULL;
							Tile* _tmp14_ = NULL;
							gboolean _tmp15_ = FALSE;
							Tile* _tmp16_ = NULL;
							Tile** _tmp26_ = NULL;
							gint _tmp26__length1 = 0;
							gint _tmp26__length2 = 0;
							gint _tmp27_ = 0;
							gint _tmp28_ = 0;
							Tile* _tmp29_ = NULL;
#line 316 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!_tmp5_) {
#line 2661 "puzzle.c"
								gint _tmp6_ = 0;
#line 316 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp6_ = y;
#line 316 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								y = _tmp6_ + 1;
#line 2667 "puzzle.c"
							}
#line 316 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp5_ = FALSE;
#line 316 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp7_ = y;
#line 316 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp8_ = puzzle_get_size (self);
#line 316 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp9_ = _tmp8_;
#line 316 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!(((guint) _tmp7_) < _tmp9_)) {
#line 316 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								break;
#line 2681 "puzzle.c"
							}
#line 318 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp10_ = self->priv->board;
#line 318 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp10__length1 = self->priv->board_length1;
#line 318 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp10__length2 = self->priv->board_length2;
#line 318 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp11_ = x;
#line 318 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp12_ = y;
#line 318 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp13_ = _tmp10_[(_tmp11_ * _tmp10__length2) + _tmp12_];
#line 318 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp14_ = _g_object_ref0 (_tmp13_);
#line 318 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							tile = _tmp14_;
#line 319 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp16_ = tile;
#line 319 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (_tmp16_ != NULL) {
#line 2703 "puzzle.c"
								gboolean _tmp17_ = FALSE;
								Tile* _tmp18_ = NULL;
								guint _tmp19_ = 0U;
								gint _tmp20_ = 0;
#line 319 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp18_ = tile;
#line 319 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp19_ = _tmp18_->x;
#line 319 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp20_ = x;
#line 319 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								if (_tmp19_ != ((guint) _tmp20_)) {
#line 319 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
									_tmp17_ = TRUE;
#line 2718 "puzzle.c"
								} else {
									Tile* _tmp21_ = NULL;
									guint _tmp22_ = 0U;
									gint _tmp23_ = 0;
#line 319 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
									_tmp21_ = tile;
#line 319 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
									_tmp22_ = _tmp21_->y;
#line 319 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
									_tmp23_ = y;
#line 319 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
									_tmp17_ = _tmp22_ != ((guint) _tmp23_);
#line 2731 "puzzle.c"
								}
#line 319 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp15_ = _tmp17_;
#line 2735 "puzzle.c"
							} else {
#line 319 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp15_ = FALSE;
#line 2739 "puzzle.c"
							}
#line 319 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (_tmp15_) {
#line 2743 "puzzle.c"
								Tile* _tmp24_ = NULL;
								Tile* _tmp25_ = NULL;
#line 320 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp24_ = tile;
#line 320 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp25_ = _g_object_ref0 (_tmp24_);
#line 320 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								wrong_tiles = g_list_append (wrong_tiles, _tmp25_);
#line 2752 "puzzle.c"
							}
#line 321 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp26_ = self->priv->board;
#line 321 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp26__length1 = self->priv->board_length1;
#line 321 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp26__length2 = self->priv->board_length2;
#line 321 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp27_ = x;
#line 321 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp28_ = y;
#line 321 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_g_object_unref0 (_tmp26_[(_tmp27_ * _tmp26__length2) + _tmp28_]);
#line 321 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp26_[(_tmp27_ * _tmp26__length2) + _tmp28_] = NULL;
#line 321 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp29_ = _tmp26_[(_tmp27_ * _tmp26__length2) + _tmp28_];
#line 316 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_g_object_unref0 (tile);
#line 2772 "puzzle.c"
						}
					}
				}
			}
		}
	}
#line 325 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp30_ = wrong_tiles;
#line 2781 "puzzle.c"
	{
		GList* tile_collection = NULL;
		GList* tile_it = NULL;
#line 325 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		tile_collection = _tmp30_;
#line 325 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		for (tile_it = tile_collection; tile_it != NULL; tile_it = tile_it->next) {
#line 2789 "puzzle.c"
			Tile* _tmp31_ = NULL;
			Tile* tile = NULL;
#line 325 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp31_ = _g_object_ref0 ((Tile*) tile_it->data);
#line 325 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			tile = _tmp31_;
#line 2796 "puzzle.c"
			{
				Tile** _tmp32_ = NULL;
				gint _tmp32__length1 = 0;
				gint _tmp32__length2 = 0;
				Tile* _tmp33_ = NULL;
				guint _tmp34_ = 0U;
				Tile* _tmp35_ = NULL;
				guint _tmp36_ = 0U;
				Tile* _tmp37_ = NULL;
				Tile* _tmp38_ = NULL;
				Tile* _tmp39_ = NULL;
				Tile* _tmp40_ = NULL;
				Tile* _tmp41_ = NULL;
				guint _tmp42_ = 0U;
				Tile* _tmp43_ = NULL;
				guint _tmp44_ = 0U;
#line 327 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp32_ = self->priv->board;
#line 327 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp32__length1 = self->priv->board_length1;
#line 327 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp32__length2 = self->priv->board_length2;
#line 327 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp33_ = tile;
#line 327 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp34_ = _tmp33_->x;
#line 327 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp35_ = tile;
#line 327 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp36_ = _tmp35_->y;
#line 327 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp37_ = tile;
#line 327 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp38_ = _g_object_ref0 (_tmp37_);
#line 327 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_g_object_unref0 (_tmp32_[(_tmp34_ * _tmp32__length2) + _tmp36_]);
#line 327 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp32_[(_tmp34_ * _tmp32__length2) + _tmp36_] = _tmp38_;
#line 327 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp39_ = _tmp32_[(_tmp34_ * _tmp32__length2) + _tmp36_];
#line 328 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp40_ = tile;
#line 328 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp41_ = tile;
#line 328 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp42_ = _tmp41_->x;
#line 328 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp43_ = tile;
#line 328 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp44_ = _tmp43_->y;
#line 328 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				g_signal_emit_by_name (self, "tile-moved", _tmp40_, _tmp42_, _tmp44_);
#line 325 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_g_object_unref0 (tile);
#line 2851 "puzzle.c"
			}
		}
	}
#line 331 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	puzzle_stop_clock (self);
#line 311 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	__g_list_free__g_object_unref0_0 (wrong_tiles);
#line 2859 "puzzle.c"
}


static void puzzle_start_clock (Puzzle* self) {
	GTimer* _tmp0_ = NULL;
#line 334 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_if_fail (self != NULL);
#line 336 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0_ = self->priv->clock;
#line 336 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp0_ == NULL) {
#line 2871 "puzzle.c"
		GTimer* _tmp1_ = NULL;
#line 337 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp1_ = g_timer_new ();
#line 337 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_g_timer_destroy0 (self->priv->clock);
#line 337 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		self->priv->clock = _tmp1_;
#line 2879 "puzzle.c"
	}
#line 338 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	puzzle_timeout_cb (self);
#line 2883 "puzzle.c"
}


static void puzzle_stop_clock (Puzzle* self) {
	GTimer* _tmp0_ = NULL;
	guint _tmp1_ = 0U;
	GTimer* _tmp3_ = NULL;
#line 341 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_if_fail (self != NULL);
#line 343 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0_ = self->priv->clock;
#line 343 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp0_ == NULL) {
#line 344 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		return;
#line 2899 "puzzle.c"
	}
#line 345 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp1_ = self->priv->clock_timeout;
#line 345 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp1_ != ((guint) 0)) {
#line 2905 "puzzle.c"
		guint _tmp2_ = 0U;
#line 346 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp2_ = self->priv->clock_timeout;
#line 346 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		g_source_remove (_tmp2_);
#line 2911 "puzzle.c"
	}
#line 347 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	self->priv->clock_timeout = (guint) 0;
#line 348 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp3_ = self->priv->clock;
#line 348 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_timer_stop (_tmp3_);
#line 349 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_signal_emit_by_name (self, "tick");
#line 2921 "puzzle.c"
}


static void puzzle_continue_clock (Puzzle* self) {
	GTimer* _tmp0_ = NULL;
#line 352 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_if_fail (self != NULL);
#line 354 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0_ = self->priv->clock;
#line 354 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp0_ == NULL) {
#line 2933 "puzzle.c"
		GTimer* _tmp1_ = NULL;
#line 355 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp1_ = g_timer_new ();
#line 355 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_g_timer_destroy0 (self->priv->clock);
#line 355 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		self->priv->clock = _tmp1_;
#line 2941 "puzzle.c"
	} else {
		GTimer* _tmp2_ = NULL;
#line 357 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp2_ = self->priv->clock;
#line 357 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		g_timer_continue (_tmp2_);
#line 2948 "puzzle.c"
	}
#line 358 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	puzzle_timeout_cb (self);
#line 2952 "puzzle.c"
}


static gboolean _puzzle_timeout_cb_gsource_func (gpointer self) {
	gboolean result;
	result = puzzle_timeout_cb ((Puzzle*) self);
#line 367 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	return result;
#line 2961 "puzzle.c"
}


static gboolean puzzle_timeout_cb (Puzzle* self) {
	gboolean result = FALSE;
	gdouble elapsed = 0.0;
	GTimer* _tmp0_ = NULL;
	gdouble _tmp1_ = 0.0;
	gint next = 0;
	gdouble wait = 0.0;
	guint _tmp2_ = 0U;
#line 361 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 364 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0_ = self->priv->clock;
#line 364 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp1_ = g_timer_elapsed (_tmp0_, NULL);
#line 364 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	elapsed = _tmp1_;
#line 365 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	next = (gint) (elapsed + 1.0);
#line 366 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	wait = next - elapsed;
#line 367 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp2_ = g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) ((gint) (wait * 1000)), _puzzle_timeout_cb_gsource_func, g_object_ref (self), g_object_unref);
#line 367 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	self->priv->clock_timeout = _tmp2_;
#line 369 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_signal_emit_by_name (self, "tick");
#line 371 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	result = FALSE;
#line 371 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	return result;
#line 2995 "puzzle.c"
}


guint puzzle_get_size (Puzzle* self) {
	guint result;
	guint _tmp0_ = 0U;
#line 36 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_val_if_fail (self != NULL, 0U);
#line 36 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0_ = self->priv->_size;
#line 36 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	result = _tmp0_;
#line 36 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	return result;
#line 3010 "puzzle.c"
}


gdouble puzzle_get_elapsed (Puzzle* self) {
	gdouble result;
	GTimer* _tmp0_ = NULL;
	gdouble _tmp1_ = 0.0;
	GTimer* _tmp2_ = NULL;
	gdouble _tmp3_ = 0.0;
#line 47 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_val_if_fail (self != NULL, 0.0);
#line 49 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0_ = self->priv->clock;
#line 49 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp0_ == NULL) {
#line 50 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		result = 0.0;
#line 50 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		return result;
#line 3030 "puzzle.c"
	}
#line 51 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp1_ = self->priv->clock_elapsed;
#line 51 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp2_ = self->priv->clock;
#line 51 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp3_ = g_timer_elapsed (_tmp2_, NULL);
#line 51 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	result = _tmp1_ + _tmp3_;
#line 51 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	return result;
#line 3042 "puzzle.c"
}


gboolean puzzle_get_paused (Puzzle* self) {
	gboolean result;
	gboolean _tmp0_ = FALSE;
#line 70 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 70 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0_ = self->priv->_paused;
#line 70 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	result = _tmp0_;
#line 70 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	return result;
#line 3057 "puzzle.c"
}


void puzzle_set_paused (Puzzle* self, gboolean value) {
	gboolean _tmp0_ = FALSE;
	GTimer* _tmp1_ = NULL;
#line 58 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_if_fail (self != NULL);
#line 60 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp0_ = value;
#line 60 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	self->priv->_paused = _tmp0_;
#line 61 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_tmp1_ = self->priv->clock;
#line 61 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (_tmp1_ != NULL) {
#line 3074 "puzzle.c"
		gboolean _tmp2_ = FALSE;
#line 63 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		_tmp2_ = value;
#line 63 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		if (_tmp2_) {
#line 64 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			puzzle_stop_clock (self);
#line 3082 "puzzle.c"
		} else {
#line 66 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			puzzle_continue_clock (self);
#line 3086 "puzzle.c"
		}
	}
#line 68 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_signal_emit_by_name (self, "paused-changed");
#line 58 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_object_notify ((GObject *) self, "paused");
#line 3093 "puzzle.c"
}


gboolean puzzle_get_is_solved (Puzzle* self) {
	gboolean result;
#line 80 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 3101 "puzzle.c"
	{
		gint x = 0;
#line 84 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		x = 0;
#line 3106 "puzzle.c"
		{
			gboolean _tmp0_ = FALSE;
#line 84 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp0_ = TRUE;
#line 84 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			while (TRUE) {
#line 3113 "puzzle.c"
				gint _tmp2_ = 0;
				guint _tmp3_ = 0U;
				guint _tmp4_ = 0U;
#line 84 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!_tmp0_) {
#line 3119 "puzzle.c"
					gint _tmp1_ = 0;
#line 84 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp1_ = x;
#line 84 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					x = _tmp1_ + 1;
#line 3125 "puzzle.c"
				}
#line 84 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp0_ = FALSE;
#line 84 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp2_ = x;
#line 84 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp3_ = puzzle_get_size (self);
#line 84 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp4_ = _tmp3_;
#line 84 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!(((guint) _tmp2_) < _tmp4_)) {
#line 84 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					break;
#line 3139 "puzzle.c"
				}
				{
					gint y = 0;
#line 86 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					y = 0;
#line 3145 "puzzle.c"
					{
						gboolean _tmp5_ = FALSE;
#line 86 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						_tmp5_ = TRUE;
#line 86 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
						while (TRUE) {
#line 3152 "puzzle.c"
							gint _tmp7_ = 0;
							guint _tmp8_ = 0U;
							guint _tmp9_ = 0U;
							Tile* tile = NULL;
							Tile** _tmp10_ = NULL;
							gint _tmp10__length1 = 0;
							gint _tmp10__length2 = 0;
							gint _tmp11_ = 0;
							gint _tmp12_ = 0;
							Tile* _tmp13_ = NULL;
							Tile* _tmp14_ = NULL;
							Tile* _tmp15_ = NULL;
#line 86 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!_tmp5_) {
#line 3167 "puzzle.c"
								gint _tmp6_ = 0;
#line 86 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_tmp6_ = y;
#line 86 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								y = _tmp6_ + 1;
#line 3173 "puzzle.c"
							}
#line 86 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp5_ = FALSE;
#line 86 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp7_ = y;
#line 86 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp8_ = puzzle_get_size (self);
#line 86 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp9_ = _tmp8_;
#line 86 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (!(((guint) _tmp7_) < _tmp9_)) {
#line 86 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								break;
#line 3187 "puzzle.c"
							}
#line 88 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp10_ = self->priv->board;
#line 88 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp10__length1 = self->priv->board_length1;
#line 88 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp10__length2 = self->priv->board_length2;
#line 88 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp11_ = x;
#line 88 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp12_ = y;
#line 88 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp13_ = _tmp10_[(_tmp11_ * _tmp10__length2) + _tmp12_];
#line 88 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp14_ = _g_object_ref0 (_tmp13_);
#line 88 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							tile = _tmp14_;
#line 89 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_tmp15_ = tile;
#line 89 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							if (_tmp15_ == NULL) {
#line 90 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								result = FALSE;
#line 90 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								_g_object_unref0 (tile);
#line 90 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
								return result;
#line 3215 "puzzle.c"
							}
#line 86 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
							_g_object_unref0 (tile);
#line 3219 "puzzle.c"
						}
					}
				}
			}
		}
	}
#line 94 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	result = TRUE;
#line 94 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	return result;
#line 3230 "puzzle.c"
}


gboolean puzzle_get_can_move_up (Puzzle* self) {
	gboolean result;
#line 233 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 3238 "puzzle.c"
	{
		gint x = 0;
#line 235 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		x = 0;
#line 3243 "puzzle.c"
		{
			gboolean _tmp0_ = FALSE;
#line 235 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp0_ = TRUE;
#line 235 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			while (TRUE) {
#line 3250 "puzzle.c"
				gint _tmp2_ = 0;
				guint _tmp3_ = 0U;
				guint _tmp4_ = 0U;
				Tile** _tmp5_ = NULL;
				gint _tmp5__length1 = 0;
				gint _tmp5__length2 = 0;
				gint _tmp6_ = 0;
				Tile* _tmp7_ = NULL;
#line 235 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!_tmp0_) {
#line 3261 "puzzle.c"
					gint _tmp1_ = 0;
#line 235 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp1_ = x;
#line 235 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					x = _tmp1_ + 1;
#line 3267 "puzzle.c"
				}
#line 235 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp0_ = FALSE;
#line 235 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp2_ = x;
#line 235 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp3_ = puzzle_get_size (self);
#line 235 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp4_ = _tmp3_;
#line 235 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!(((guint) _tmp2_) < _tmp4_)) {
#line 235 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					break;
#line 3281 "puzzle.c"
				}
#line 236 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp5_ = self->priv->board;
#line 236 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp5__length1 = self->priv->board_length1;
#line 236 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp5__length2 = self->priv->board_length2;
#line 236 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp6_ = x;
#line 236 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp7_ = _tmp5_[(_tmp6_ * _tmp5__length2) + 0];
#line 236 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (_tmp7_ != NULL) {
#line 237 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					result = FALSE;
#line 237 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					return result;
#line 3299 "puzzle.c"
				}
			}
		}
	}
#line 238 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	result = TRUE;
#line 238 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	return result;
#line 3308 "puzzle.c"
}


gboolean puzzle_get_can_move_down (Puzzle* self) {
	gboolean result;
#line 253 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 3316 "puzzle.c"
	{
		gint x = 0;
#line 255 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		x = 0;
#line 3321 "puzzle.c"
		{
			gboolean _tmp0_ = FALSE;
#line 255 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp0_ = TRUE;
#line 255 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			while (TRUE) {
#line 3328 "puzzle.c"
				gint _tmp2_ = 0;
				guint _tmp3_ = 0U;
				guint _tmp4_ = 0U;
				Tile** _tmp5_ = NULL;
				gint _tmp5__length1 = 0;
				gint _tmp5__length2 = 0;
				gint _tmp6_ = 0;
				guint _tmp7_ = 0U;
				guint _tmp8_ = 0U;
				Tile* _tmp9_ = NULL;
#line 255 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!_tmp0_) {
#line 3341 "puzzle.c"
					gint _tmp1_ = 0;
#line 255 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp1_ = x;
#line 255 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					x = _tmp1_ + 1;
#line 3347 "puzzle.c"
				}
#line 255 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp0_ = FALSE;
#line 255 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp2_ = x;
#line 255 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp3_ = puzzle_get_size (self);
#line 255 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp4_ = _tmp3_;
#line 255 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!(((guint) _tmp2_) < _tmp4_)) {
#line 255 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					break;
#line 3361 "puzzle.c"
				}
#line 256 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp5_ = self->priv->board;
#line 256 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp5__length1 = self->priv->board_length1;
#line 256 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp5__length2 = self->priv->board_length2;
#line 256 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp6_ = x;
#line 256 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp7_ = puzzle_get_size (self);
#line 256 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp8_ = _tmp7_;
#line 256 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp9_ = _tmp5_[(_tmp6_ * _tmp5__length2) + (_tmp8_ - 1)];
#line 256 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (_tmp9_ != NULL) {
#line 257 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					result = FALSE;
#line 257 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					return result;
#line 3383 "puzzle.c"
				}
			}
		}
	}
#line 258 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	result = TRUE;
#line 258 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	return result;
#line 3392 "puzzle.c"
}


gboolean puzzle_get_can_move_left (Puzzle* self) {
	gboolean result;
#line 273 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 3400 "puzzle.c"
	{
		gint y = 0;
#line 275 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		y = 0;
#line 3405 "puzzle.c"
		{
			gboolean _tmp0_ = FALSE;
#line 275 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp0_ = TRUE;
#line 275 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			while (TRUE) {
#line 3412 "puzzle.c"
				gint _tmp2_ = 0;
				guint _tmp3_ = 0U;
				guint _tmp4_ = 0U;
				Tile** _tmp5_ = NULL;
				gint _tmp5__length1 = 0;
				gint _tmp5__length2 = 0;
				gint _tmp6_ = 0;
				Tile* _tmp7_ = NULL;
#line 275 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!_tmp0_) {
#line 3423 "puzzle.c"
					gint _tmp1_ = 0;
#line 275 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp1_ = y;
#line 275 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					y = _tmp1_ + 1;
#line 3429 "puzzle.c"
				}
#line 275 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp0_ = FALSE;
#line 275 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp2_ = y;
#line 275 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp3_ = puzzle_get_size (self);
#line 275 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp4_ = _tmp3_;
#line 275 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!(((guint) _tmp2_) < _tmp4_)) {
#line 275 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					break;
#line 3443 "puzzle.c"
				}
#line 276 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp5_ = self->priv->board;
#line 276 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp5__length1 = self->priv->board_length1;
#line 276 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp5__length2 = self->priv->board_length2;
#line 276 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp6_ = y;
#line 276 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp7_ = _tmp5_[(0 * _tmp5__length2) + _tmp6_];
#line 276 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (_tmp7_ != NULL) {
#line 277 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					result = FALSE;
#line 277 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					return result;
#line 3461 "puzzle.c"
				}
			}
		}
	}
#line 278 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	result = TRUE;
#line 278 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	return result;
#line 3470 "puzzle.c"
}


gboolean puzzle_get_can_move_right (Puzzle* self) {
	gboolean result;
#line 293 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 3478 "puzzle.c"
	{
		gint y = 0;
#line 295 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		y = 0;
#line 3483 "puzzle.c"
		{
			gboolean _tmp0_ = FALSE;
#line 295 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			_tmp0_ = TRUE;
#line 295 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
			while (TRUE) {
#line 3490 "puzzle.c"
				gint _tmp2_ = 0;
				guint _tmp3_ = 0U;
				guint _tmp4_ = 0U;
				Tile** _tmp5_ = NULL;
				gint _tmp5__length1 = 0;
				gint _tmp5__length2 = 0;
				guint _tmp6_ = 0U;
				guint _tmp7_ = 0U;
				gint _tmp8_ = 0;
				Tile* _tmp9_ = NULL;
#line 295 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!_tmp0_) {
#line 3503 "puzzle.c"
					gint _tmp1_ = 0;
#line 295 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					_tmp1_ = y;
#line 295 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					y = _tmp1_ + 1;
#line 3509 "puzzle.c"
				}
#line 295 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp0_ = FALSE;
#line 295 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp2_ = y;
#line 295 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp3_ = puzzle_get_size (self);
#line 295 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp4_ = _tmp3_;
#line 295 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (!(((guint) _tmp2_) < _tmp4_)) {
#line 295 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					break;
#line 3523 "puzzle.c"
				}
#line 296 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp5_ = self->priv->board;
#line 296 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp5__length1 = self->priv->board_length1;
#line 296 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp5__length2 = self->priv->board_length2;
#line 296 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp6_ = puzzle_get_size (self);
#line 296 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp7_ = _tmp6_;
#line 296 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp8_ = y;
#line 296 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				_tmp9_ = _tmp5_[((_tmp7_ - 1) * _tmp5__length2) + _tmp8_];
#line 296 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
				if (_tmp9_ != NULL) {
#line 297 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					result = FALSE;
#line 297 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
					return result;
#line 3545 "puzzle.c"
				}
			}
		}
	}
#line 298 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	result = TRUE;
#line 298 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	return result;
#line 3554 "puzzle.c"
}


static void g_cclosure_user_marshal_VOID__OBJECT_UINT_UINT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
	typedef void (*GMarshalFunc_VOID__OBJECT_UINT_UINT) (gpointer data1, gpointer arg_1, guint arg_2, guint arg_3, gpointer data2);
	register GMarshalFunc_VOID__OBJECT_UINT_UINT callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_return_if_fail (n_param_values == 4);
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	if (G_CCLOSURE_SWAP_DATA (closure)) {
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		data1 = closure->data;
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		data2 = param_values->data[0].v_pointer;
#line 3573 "puzzle.c"
	} else {
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		data1 = param_values->data[0].v_pointer;
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		data2 = closure->data;
#line 3579 "puzzle.c"
	}
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	callback = (GMarshalFunc_VOID__OBJECT_UINT_UINT) (marshal_data ? marshal_data : cc->callback);
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	callback (data1, g_value_get_object (param_values + 1), g_value_get_uint (param_values + 2), g_value_get_uint (param_values + 3), data2);
#line 3585 "puzzle.c"
}


static void puzzle_class_init (PuzzleClass * klass) {
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	puzzle_parent_class = g_type_class_peek_parent (klass);
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_type_class_add_private (klass, sizeof (PuzzlePrivate));
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	G_OBJECT_CLASS (klass)->get_property = _vala_puzzle_get_property;
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	G_OBJECT_CLASS (klass)->set_property = _vala_puzzle_set_property;
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	G_OBJECT_CLASS (klass)->finalize = puzzle_finalize;
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), PUZZLE_SIZE, g_param_spec_uint ("size", "size", "size", 0, G_MAXUINT, 0U, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), PUZZLE_ELAPSED, g_param_spec_double ("elapsed", "elapsed", "elapsed", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), PUZZLE_PAUSED, g_param_spec_boolean ("paused", "paused", "paused", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), PUZZLE_IS_SOLVED, g_param_spec_boolean ("is-solved", "is-solved", "is-solved", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), PUZZLE_CAN_MOVE_UP, g_param_spec_boolean ("can-move-up", "can-move-up", "can-move-up", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), PUZZLE_CAN_MOVE_DOWN, g_param_spec_boolean ("can-move-down", "can-move-down", "can-move-down", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), PUZZLE_CAN_MOVE_LEFT, g_param_spec_boolean ("can-move-left", "can-move-left", "can-move-left", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_object_class_install_property (G_OBJECT_CLASS (klass), PUZZLE_CAN_MOVE_RIGHT, g_param_spec_boolean ("can-move-right", "can-move-right", "can-move-right", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_signal_new ("tile_moved", TYPE_PUZZLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__OBJECT_UINT_UINT, G_TYPE_NONE, 3, TYPE_TILE, G_TYPE_UINT, G_TYPE_UINT);
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_signal_new ("solved", TYPE_PUZZLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_signal_new ("paused_changed", TYPE_PUZZLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	g_signal_new ("tick", TYPE_PUZZLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 3624 "puzzle.c"
}


static void puzzle_instance_init (Puzzle * self) {
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	self->priv = PUZZLE_GET_PRIVATE (self);
#line 55 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	self->priv->_paused = FALSE;
#line 3633 "puzzle.c"
}


static void puzzle_finalize (GObject* obj) {
	Puzzle * self;
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_PUZZLE, Puzzle);
#line 38 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	self->priv->board = (_vala_array_free (self->priv->board, self->priv->board_length1 * self->priv->board_length2, (GDestroyNotify) g_object_unref), NULL);
#line 42 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	_g_timer_destroy0 (self->priv->clock);
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	G_OBJECT_CLASS (puzzle_parent_class)->finalize (obj);
#line 3647 "puzzle.c"
}


GType puzzle_get_type (void) {
	static volatile gsize puzzle_type_id__volatile = 0;
	if (g_once_init_enter (&puzzle_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (PuzzleClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) puzzle_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Puzzle), 0, (GInstanceInitFunc) puzzle_instance_init, NULL };
		GType puzzle_type_id;
		puzzle_type_id = g_type_register_static (G_TYPE_OBJECT, "Puzzle", &g_define_type_info, 0);
		g_once_init_leave (&puzzle_type_id__volatile, puzzle_type_id);
	}
	return puzzle_type_id__volatile;
}


static void _vala_puzzle_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
	Puzzle * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_PUZZLE, Puzzle);
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	switch (property_id) {
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		case PUZZLE_SIZE:
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		g_value_set_uint (value, puzzle_get_size (self));
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		break;
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		case PUZZLE_ELAPSED:
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		g_value_set_double (value, puzzle_get_elapsed (self));
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		break;
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		case PUZZLE_PAUSED:
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		g_value_set_boolean (value, puzzle_get_paused (self));
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		break;
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		case PUZZLE_IS_SOLVED:
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		g_value_set_boolean (value, puzzle_get_is_solved (self));
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		break;
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		case PUZZLE_CAN_MOVE_UP:
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		g_value_set_boolean (value, puzzle_get_can_move_up (self));
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		break;
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		case PUZZLE_CAN_MOVE_DOWN:
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		g_value_set_boolean (value, puzzle_get_can_move_down (self));
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		break;
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		case PUZZLE_CAN_MOVE_LEFT:
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		g_value_set_boolean (value, puzzle_get_can_move_left (self));
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		break;
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		case PUZZLE_CAN_MOVE_RIGHT:
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		g_value_set_boolean (value, puzzle_get_can_move_right (self));
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		break;
#line 3716 "puzzle.c"
		default:
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		break;
#line 3722 "puzzle.c"
	}
}


static void _vala_puzzle_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
	Puzzle * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_PUZZLE, Puzzle);
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
	switch (property_id) {
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		case PUZZLE_PAUSED:
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		puzzle_set_paused (self, g_value_get_boolean (value));
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		break;
#line 3738 "puzzle.c"
		default:
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
#line 31 "/home/mcatanzaro/src/jhbuild/checkout/gnome-tetravex/src/puzzle.vala"
		break;
#line 3744 "puzzle.c"
	}
}


static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	if ((array != NULL) && (destroy_func != NULL)) {
		int i;
		for (i = 0; i < array_length; i = i + 1) {
			if (((gpointer*) array)[i] != NULL) {
				destroy_func (((gpointer*) array)[i]);
			}
		}
	}
}


static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}



