[gnome-games/gnibbles-clutter] Also resizing warp on configure event
- From: Guillaume Béland <guillaubel src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnome-games/gnibbles-clutter] Also resizing warp on configure event
- Date: Tue, 11 Aug 2009 17:42:13 +0000 (UTC)
commit 5b03bc66e95d7d986ca6de29550058a002bbdc5d
Author: Guillaume Beland <guillaume beland gmail com>
Date: Tue Aug 11 13:37:57 2009 -0400
Also resizing warp on configure event
gnibbles/boni.c | 2 --
gnibbles/main.c | 2 ++
gnibbles/warpmanager.c | 25 +++++++++++++++++++++++++
gnibbles/warpmanager.h | 2 ++
4 files changed, 29 insertions(+), 2 deletions(-)
---
diff --git a/gnibbles/boni.c b/gnibbles/boni.c
index 4d362f3..c571429 100644
--- a/gnibbles/boni.c
+++ b/gnibbles/boni.c
@@ -198,11 +198,9 @@ gnibbles_boni_resize (GnibblesBoni *boni, gint newtile)
for (i = 0; i < boni->numbonuses; i++) {
clutter_actor_get_position (boni->bonuses[i]->actor, &x_pos, &y_pos);
-
clutter_actor_set_position (boni->bonuses[i]->actor,
(x_pos / properties->tilesize) * newtile,
(y_pos / properties->tilesize) * newtile);
-
gtk_clutter_texture_set_from_pixbuf (CLUTTER_TEXTURE(boni->bonuses[i]->actor),
boni_pixmaps[boni->bonuses[i]->type],
&err);
diff --git a/gnibbles/main.c b/gnibbles/main.c
index f406f9f..c588600 100644
--- a/gnibbles/main.c
+++ b/gnibbles/main.c
@@ -287,6 +287,8 @@ configure_event_cb (GtkWidget * widget, GdkEventConfigure * event, gpointer data
if (board) {
gnibbles_board_resize (board, tilesize);
gnibbles_boni_resize (boni, tilesize);
+ if (warpmanager)
+ gnibbles_warpmanager_resize (warpmanager, tilesize);
for (i=0; i<properties->numworms; i++)
gnibbles_worm_resize (worms[i], tilesize);
}
diff --git a/gnibbles/warpmanager.c b/gnibbles/warpmanager.c
index 2f3aad1..ea232f0 100644
--- a/gnibbles/warpmanager.c
+++ b/gnibbles/warpmanager.c
@@ -23,6 +23,7 @@
#include <stdlib.h>
#include <gtk/gtk.h>
+#include <clutter-gtk/clutter-gtk.h>
#include "gnibbles.h"
#include "warp.h"
@@ -30,10 +31,14 @@
#include "boni.h"
#include "main.h"
#include "board.h"
+#include "properties.h"
extern GnibblesBoard *board;
extern GnibblesBoni *boni;
+extern GnibblesProperties *properties;
+extern GdkPixbuf *boni_pixmaps[];
+
GnibblesWarpManager *
gnibbles_warpmanager_new (void)
{
@@ -148,3 +153,23 @@ gnibbles_warpmanager_worm_change_pos (GnibblesWarpManager * warpmanager,
}
}
}
+
+void
+gnibbles_warpmanager_resize (GnibblesWarpManager *warpmanager, gint newtile)
+{
+ int i;
+ gfloat x_pos, y_pos;
+ GError *err = NULL;
+
+ for (i = 0; i < warpmanager->numwarps; i++) {
+ clutter_actor_get_position (warpmanager->warps[i]->actor, &x_pos, &y_pos);
+ clutter_actor_set_position (warpmanager->warps[i]->actor,
+ (x_pos / properties->tilesize) * newtile,
+ (y_pos / properties->tilesize) * newtile);
+ gtk_clutter_texture_set_from_pixbuf (CLUTTER_TEXTURE (warpmanager->warps[i]->actor),
+ boni_pixmaps[WARP],
+ &err);
+ if (err)
+ gnibbles_error (err->message);
+ }
+}
diff --git a/gnibbles/warpmanager.h b/gnibbles/warpmanager.h
index 88544a8..91b3b56 100644
--- a/gnibbles/warpmanager.h
+++ b/gnibbles/warpmanager.h
@@ -44,5 +44,7 @@ void gnibbles_warpmanager_add_warp (GnibblesWarpManager * warpmanager,
void gnibbles_warpmanager_worm_change_pos (GnibblesWarpManager * warpmanager,
GnibblesWorm * worm);
+void gnibbles_warpmanager_resize (GnibblesWarpManager *warpmanager,
+ gint tilesize);
#endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]