[gnome-games/gnibbles-clutter] Also resizing warp on configure event



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]